//===========================================================================// // File: btl4vid.hpp // // Project: BattleTech // // Contents: Implementation details for the BT video renderer // //---------------------------------------------------------------------------// // Date Who Modification // // -------- --- ---------------------------------------------------------- // // // //---------------------------------------------------------------------------// // Copyright (C) 1995, Virtual World Entertainment, Inc. // // All Rights reserved worldwide // // This unpublished sourcecode is PROPRIETARY and CONFIDENTIAL // //===========================================================================// #if !defined(BTL4VID_HPP) # define BTL4VID_HPP # if !defined(L4VIDEO_HPP) # include # endif # include # include //########################################################################### //####################### BTL4VideoRenderer ############################# //########################################################################### class BTL4VideoRenderer: public DPLRenderer { public: BTL4VideoRenderer( RendererRate calibration_rate, RendererComplexity calibration_complexity, RendererPriority calibration_priority, InterestType interest_type, InterestDepth depth_calibration ); ~BTL4VideoRenderer(); protected: void LoadMissionImplementation(Mission *mission); // // (A diagnostic ExecuteImplementation wrapper briefly lived here to // count dynamic renderables per frame; it cannot exist, because // DPLRenderer::ExecuteImplementation is PRIVATE -- virtual dispatch // reaches it, but a subclass cannot chain it by name. The question // it was built to answer got answered by the wire instead: zero // vr_flush_dcs_artic records because NO dynamic renderable existed // -- the engine rejects Skeleton resources, so chaining the base for // the mech built nothing. See MakeEntityRenderables.) // // // The bottom of this virtual chain is // VideoRenderer::MakeEntityRenderables (VIDREND.CPP:231), whose own // comment says it is only reached when nobody above could figure out // what to build -- and it just complains. The engine's DPLRenderer // layer knows the ENGINE classes; the game's own classes are ours. // void MakeEntityRenderables( Entity *entity, ResourceDescription *model_resource, ViewFrom view_type); // // The mech's model resource is a SKELETON, not an object, and the // engine rejects it ("wrong video resource type") because building // one is the GAME renderer's job. Shape taken from the surviving // sibling header CODE/RP/RP_L4/RPL4VID.HPP. // dpl_DCS * ReadSKLFile( Entity *entity, dpl_DCS *parent_dcs, const char *skeleton_filename, ViewFrom view_type, int *eye_count, int *joint_count); dpl_DCS * RecurseSKLFile( Entity *entity, dpl_DCS *parent_dcs, NotationFile *skeleton, const char *page_name, int recursion_depth, ViewFrom view_type, dpl_ZONE *zone, int *node_count, int *object_count, int *eye_count, int *joint_count); protected: int reserved[16]; }; #endif