1 #ifndef _hierplace_hpp 2 #define _hierplace_hpp 1 3 4 #include "chunk.hpp" 5 #include "chnktype.hpp" 6 7 class Placed_Hierarchy_Data_Chunk; 8 9 class Placed_Hierarchy_Chunk : public Chunk_With_Children 10 { 11 public : 12 13 Placed_Hierarchy_Chunk(Chunk_With_Children* parent,const char* _name,int _hierarchy_index,ChunkVectorInt& _location,ChunkQuat& _orientation); 14 Placed_Hierarchy_Chunk(Chunk_With_Children * const parent,const char* ,const size_t); 15 16 get_data_chunk()17 Placed_Hierarchy_Data_Chunk* get_data_chunk() 18 { 19 return (Placed_Hierarchy_Data_Chunk*)lookup_single_child("PLACHIDT"); 20 } 21 }; 22 23 class Placed_Hierarchy_Data_Chunk : public Chunk 24 { 25 public : 26 Placed_Hierarchy_Data_Chunk(Chunk_With_Children* parent,const char* , const size_t); 27 Placed_Hierarchy_Data_Chunk(Chunk_With_Children* parent,const char* _name,int _hierarchy_index,ChunkVectorInt& _location,ChunkQuat& _orientation); 28 ~Placed_Hierarchy_Data_Chunk(); 29 30 void fill_data_block(char*); 31 size_t size_chunk(); 32 33 34 35 char* name; 36 37 int hierarchy_index; 38 39 ChunkVectorInt location; 40 ChunkQuat orientation; 41 42 ObjectID id; 43 44 int num_extra_data; 45 int* extra_data; 46 47 48 }; 49 50 struct Timed_Sound_Description 51 { 52 int sound_index; 53 int start_time; //in ms 54 int end_time; //in ms 55 }; 56 57 58 #define HierarchySequenceFlag_Loop 0x00000001 59 #define HierarchySequenceFlag_InitialSequence 0x00000002 60 #define HierarchySequenceFlag_Playing 0x00000004 61 class Placed_Hierarchy_Sequence_Chunk : public Chunk 62 { 63 public: 64 Placed_Hierarchy_Sequence_Chunk(Chunk_With_Children* parent,const char* , const size_t); 65 Placed_Hierarchy_Sequence_Chunk(Chunk_With_Children* parent,int _index); 66 ~Placed_Hierarchy_Sequence_Chunk(); 67 68 void fill_data_block(char*); 69 size_t size_chunk(); 70 71 72 int index; 73 int sequence; 74 int sub_sequence; 75 int time; //time to play sequence in ms 76 int flags; 77 78 int sound_list_size; 79 Timed_Sound_Description* sound_list; 80 81 82 int num_extra_data; 83 int* extra_data; 84 }; 85 86 87 #endif 88