//===========================================================================// // File: subsystm.hh // // Project: MUNGA Brick: Entity Manager // // Contents: Interface specification of entity subsystem class // //---------------------------------------------------------------------------// // Date Who Modification // // -------- --- ---------------------------------------------------------- // // 01/24/95 JMA Initial coding. // //---------------------------------------------------------------------------// // Copyright (C) 1995, Virtual World Entertainment, Inc. All Rights reserved // // PROPRIETARY AND CONFIDENTIAL // //===========================================================================// #if !defined(SUBSYSTM_HPP) # define SUBSYSTM_HPP # if !defined(SIMULATE_HPP) # include # endif # if !defined(RESOURCE_HPP) # include # endif # if !defined(DAMAGE_HPP) # include # endif class Entity; class NotationFile; //########################################################################## //#################### Subsystem::ModelResource ###################### //########################################################################## struct Subsystem__SubsystemResource { char subsystemName[32]; RegisteredClass::ClassID classID; size_t subsystemModelSize; int segmentIndex; LWord subsystemFlags; }; //########################################################################## //######################## Subsystem ################################# //########################################################################## class Subsystem: public Simulation { //########################################################################## // Shared Data Support // public: static Derivation ClassDerivations; static SharedData DefaultData; //########################################################################## // Construction and Destruction Support // public: typedef Subsystem__SubsystemResource SubsystemResource; ~Subsystem(); static ResourceDescription::ResourceID CreateStreamedSubsystem( NotationFile *model_file, const char* model_name, const char* subsystem_name, SubsystemResource *subsystem_resource, NotationFile *subsystem_file, const ResourceDirectories *directories ); protected: Subsystem( Entity *entity, int subsystem_id, SubsystemResource *model, SharedData &shared_data ); Subsystem( Entity *entity, int subsystem_id, const char *subsystem_name, RegisteredClass::ClassID class_id, SharedData &shared_data ); //########################################################################## // Flag Support // public: enum { DontReplicateBit = Simulation::NextBit, NextBit }; enum { DontReplicateFlag = 1<TakeDamage(damage); } DamageZone *damageZone; virtual void DeathReset(int /*reset_command*/) {} virtual void DeathShutdown(int /*shutdown_command*/) {} }; //########################################################################## // Tool support // int Get_Segment_Index( NotationFile *model_file, const char* model_name, const ResourceDirectories *directories, const char *desired_page ); #endif