//===========================================================================// // File: jmover.hh // // Project: MUNGA Brick: Model Manager // // Contents: Interface specification for moving entity class // //---------------------------------------------------------------------------// // Date Who Modification // // -------- --- ---------------------------------------------------------- // // 01/21/95 JMA Initial coding. // //---------------------------------------------------------------------------// // Copyright (C) 1995, Virtual World Entertainment, Inc. // // All Rights reserved worldwide // // This unpublished sourcecode is PROPRIETARY and CONFIDENTIAL // //===========================================================================// #if !defined(TURRET_HPP) # define TURRET_HPP # if !defined(JMOVER_HPP) # include # endif //########################################################################## //################## Turret::ModelResource ########################### //########################################################################## struct Turret__ModelResource: JointedMover::ModelResource { char turretJointName[32]; char gunJointName[32]; ResourceDescription::ResourceID explosionResourceID; Scalar rotationSpeedMin, rotationSpeedMax, elevationSpeedMin, elevationSpeedMax, rateSkillMin, rateSkillMax, rateAdjMin, rateAdjMax, accuracySkillMin, accuracySkillMax, accuracyAdjMin, accuracyAdjMax; }; #if 0 //########################################################################## //################## Turret::ModelResource ########################### //########################################################################## class Turret__MakeMessage: JointedMover::MakeMessage { public: char teamName[32]; char roleName[32]; }; #endif //########################################################################## //######################### Turret ################################### //########################################################################## class Turret: public JointedMover { //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Shared Data support // public: static Derivation ClassDerivations; static SharedData DefaultData; #if 0 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Message Support // private: static const HandlerEntry MessageHandlerEntries[]; protected: static MessageHandlerSet MessageHandlers; //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Attribute Support // public: enum{ NextAttributeID }; private: static const IndexEntry AttributePointers[]; protected: static AttributeIndexSet AttributeIndex; #endif //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Model Support // public: typedef Turret__ModelResource ModelResource; typedef void (Turret::*Performance)(Scalar time_slice); void SetPerformance(Performance performance) { Check(this); activePerformance = (Simulation::Performance)performance; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Construction and Destruction // public: static Logical CreateMakeMessage( MemoryStream &creation_stream, NotationFile *model_file, const ResourceDirectories *directories ); static ResourceDescription::ResourceID CreateModelResource( ResourceFile *resource_file, const char* model_name, NotationFile *model_file, const ResourceDirectories *directories, ModelResource* model = NULL ); static Turret* Make(MakeMessage *creation_message); Turret( MakeMessage *creation_message, SharedData &virtual_data ); ~Turret(); Logical TestInstance() const; }; #endif