diff options
| author | Steven Fuller <relnev@icculus.org> | 2001-07-01 00:55:22 +0000 |
|---|---|---|
| committer | Patryk Obara <dreamer.tan@gmail.com> | 2019-08-20 02:09:04 +0200 |
| commit | 2186d5f3f95cd74a070a490d899291648d58667a (patch) | |
| tree | 55241a1afa3e1a22e0b6593a8dead0b703800f44 /src/win95/wpchunk.hpp | |
| parent | 218ca90543758a20ac326e444ca0643174ca7384 (diff) | |
Initial revision
Diffstat (limited to 'src/win95/wpchunk.hpp')
| -rw-r--r-- | src/win95/wpchunk.hpp | 107 |
1 files changed, 107 insertions, 0 deletions
diff --git a/src/win95/wpchunk.hpp b/src/win95/wpchunk.hpp new file mode 100644 index 0000000..dbd34c4 --- /dev/null +++ b/src/win95/wpchunk.hpp @@ -0,0 +1,107 @@ +#ifndef wpchunk_hpp +#define wpchunk_hpp 1 + +#include "chunk.hpp" +#include "chnktype.hpp" +#include "obchunk.hpp" + +struct WaypointLink +{ + int index; + int flags; +}; + +struct ModuleLink +{ + ~ModuleLink(); + + char* module_name; + int flags; +}; + +#define WaypointFlag_CentreDefinedByUser 0x80000000 +#define WaypointFlag_FirstGroundWaypoint 0x40000000 +struct ChunkWaypoint +{ + ChunkWaypoint(); + ~ChunkWaypoint(); + + int index; + ChunkVectorInt min,max; //relative to centre + ChunkVectorInt centre; //relative to world + + int NumWPLinks; + WaypointLink* WayLinks; + + int NumModLinks; + ModuleLink* ModLinks; + + int flags,spare2; + +}; + +class Module_Waypoint_Chunk : public Chunk +{ + public : + Module_Waypoint_Chunk(Chunk_With_Children*,const char *,size_t); + Module_Waypoint_Chunk(Chunk_With_Children*); + ~Module_Waypoint_Chunk(); + + virtual size_t size_chunk(); + virtual void fill_data_block(char* data_start); + + //Copies waypoint data and deletes the old waypoint_chunk + void TransferWaypointData(Module_Waypoint_Chunk*); + + int NumWaypoints; + ChunkWaypoint* Waypoints; + + ChunkWaypoint* AlienWaypoints; + ChunkWaypoint* GroundWaypoints; + + short NumAlienWaypoints; + short NumGroundWaypoints; + + int spare1; + int spare2; +}; + +class AI_Module_Master_Chunk : public Chunk +{ + public : + AI_Module_Master_Chunk(Chunk_With_Children*,const char*,size_t); + AI_Module_Master_Chunk(Object_Module_Data_Chunk*); + + virtual size_t size_chunk(); + virtual void fill_data_block(char* data_start); + + void AddModule(Object_Chunk*); + Object_Chunk* get_my_object_chunk(); + + List<Object_Chunk*> ModuleList; +}; + +class AI_Module_Slave_Chunk : public Chunk +{ + public : + AI_Module_Slave_Chunk(Chunk_With_Children*,const char*,size_t); + AI_Module_Slave_Chunk(Object_Module_Data_Chunk*,Object_Chunk*); + ~AI_Module_Slave_Chunk(); + + virtual size_t size_chunk(); + virtual void fill_data_block(char* data_start); + virtual void post_input_processing(); + + Object_Chunk* get_my_object_chunk(); + + Object_Chunk* MasterModule; + #if UseOldChunkLoader + char* MasterModuleName; + #endif + int MasterModuleIndex; +}; + + +#endif + + |
