1 #ifndef wpchunk_hpp 2 #define wpchunk_hpp 1 3 4 #include "chunk.hpp" 5 #include "chnktype.hpp" 6 #include "obchunk.hpp" 7 8 struct WaypointLink 9 { 10 int index; 11 int flags; 12 }; 13 14 struct ModuleLink 15 { 16 ~ModuleLink(); 17 18 char* module_name; 19 int flags; 20 }; 21 22 #define WaypointFlag_CentreDefinedByUser 0x80000000 23 #define WaypointFlag_FirstGroundWaypoint 0x40000000 24 struct ChunkWaypoint 25 { 26 ChunkWaypoint(); 27 ~ChunkWaypoint(); 28 29 int index; 30 ChunkVectorInt min,max; //relative to centre 31 ChunkVectorInt centre; //relative to world 32 33 int NumWPLinks; 34 WaypointLink* WayLinks; 35 36 int NumModLinks; 37 ModuleLink* ModLinks; 38 39 int flags,spare2; 40 41 }; 42 43 class Module_Waypoint_Chunk : public Chunk 44 { 45 public : 46 Module_Waypoint_Chunk(Chunk_With_Children*,const char *,size_t); 47 Module_Waypoint_Chunk(Chunk_With_Children*); 48 ~Module_Waypoint_Chunk(); 49 50 virtual size_t size_chunk(); 51 virtual void fill_data_block(char* data_start); 52 53 //Copies waypoint data and deletes the old waypoint_chunk 54 void TransferWaypointData(Module_Waypoint_Chunk*); 55 56 int NumWaypoints; 57 ChunkWaypoint* Waypoints; 58 59 ChunkWaypoint* AlienWaypoints; 60 ChunkWaypoint* GroundWaypoints; 61 62 short NumAlienWaypoints; 63 short NumGroundWaypoints; 64 65 int spare1; 66 int spare2; 67 }; 68 69 class AI_Module_Master_Chunk : public Chunk 70 { 71 public : 72 AI_Module_Master_Chunk(Chunk_With_Children*,const char*,size_t); 73 AI_Module_Master_Chunk(Object_Module_Data_Chunk*); 74 75 virtual size_t size_chunk(); 76 virtual void fill_data_block(char* data_start); 77 78 void AddModule(Object_Chunk*); 79 Object_Chunk* get_my_object_chunk(); 80 81 List<Object_Chunk*> ModuleList; 82 }; 83 84 class AI_Module_Slave_Chunk : public Chunk 85 { 86 public : 87 AI_Module_Slave_Chunk(Chunk_With_Children*,const char*,size_t); 88 AI_Module_Slave_Chunk(Object_Module_Data_Chunk*,Object_Chunk*); 89 ~AI_Module_Slave_Chunk(); 90 91 virtual size_t size_chunk(); 92 virtual void fill_data_block(char* data_start); 93 virtual void post_input_processing(); 94 95 Object_Chunk* get_my_object_chunk(); 96 97 Object_Chunk* MasterModule; 98 int MasterModuleIndex; 99 }; 100 101 102 #endif 103 104 105