summaryrefslogtreecommitdiff
path: root/3dc/win95/wpchunk.hpp
diff options
context:
space:
mode:
authorRebellion Developments <rebellion@nomail>2000-03-16 11:25:00 +0100
committerPatryk Obara <dreamer.tan@gmail.com>2019-08-19 05:45:17 +0200
commit218ca90543758a20ac326e444ca0643174ca7384 (patch)
tree16bfe3e5307f9f515489000f28728224291a0e3b /3dc/win95/wpchunk.hpp
Import Aliens vs Predator - Gold (Build 116)
Source code release, imported from: https://www.gamefront.com/games/aliens-vs-predator-3/file/avp-gold-complete-source-code All text files were converted to Unix format.
Diffstat (limited to '3dc/win95/wpchunk.hpp')
-rw-r--r--3dc/win95/wpchunk.hpp107
1 files changed, 107 insertions, 0 deletions
diff --git a/3dc/win95/wpchunk.hpp b/3dc/win95/wpchunk.hpp
new file mode 100644
index 0000000..dbd34c4
--- /dev/null
+++ b/3dc/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
+
+