diff options
| author | Rebellion Developments <rebellion@nomail> | 2000-03-16 11:25:00 +0100 |
|---|---|---|
| committer | Patryk Obara <dreamer.tan@gmail.com> | 2019-08-19 05:45:17 +0200 |
| commit | 218ca90543758a20ac326e444ca0643174ca7384 (patch) | |
| tree | 16bfe3e5307f9f515489000f28728224291a0e3b /3dc/win95/ENVCHUNK.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/ENVCHUNK.HPP')
| -rw-r--r-- | 3dc/win95/ENVCHUNK.HPP | 201 |
1 files changed, 201 insertions, 0 deletions
diff --git a/3dc/win95/ENVCHUNK.HPP b/3dc/win95/ENVCHUNK.HPP new file mode 100644 index 0000000..ee4b578 --- /dev/null +++ b/3dc/win95/ENVCHUNK.HPP @@ -0,0 +1,201 @@ +#ifndef _envchunk_hpp +#define _envchunk_hpp 1 + +#include "chunk.hpp" +#include "chnktype.hpp" +#include "mishchnk.hpp" + + +class Environment_Data_Header_Chunk; + +class Environment_Data_Chunk : public Lockable_Chunk_With_Children +{ +public: + + // empty constructor + Environment_Data_Chunk (Chunk_With_Children * parent); + // constructor from buffer + Environment_Data_Chunk (Chunk_With_Children * const parent,const char *, size_t const); + + Environment_Data_Header_Chunk * get_header(); + + // functions for the locking functionality + + BOOL file_equals (HANDLE &); + const char * get_head_id(); + void set_lock_user(char *); + + void post_input_processing(); + +private: + + friend class File_Chunk; + friend class GodFather_Chunk; + friend class RIF_File_Chunk; + + + + +}; + +/////////////////////////////////////////////// + +class Environment_Data_Header_Chunk : public Chunk +{ +public: + // constructor from buffer + Environment_Data_Header_Chunk (Chunk_With_Children * parent, const char * pdata, size_t psize); + + virtual size_t size_chunk () + { + chunk_size = 36; + return chunk_size; + } + + virtual BOOL output_chunk (HANDLE &); + + virtual void fill_data_block (char * data_start); + + void prepare_for_output(); + +private: + + friend class Environment_Data_Chunk; + friend class File_Chunk; + + int flags; + + int version_no; + + char lock_user[17]; + + + // constructor from parent + Environment_Data_Header_Chunk (Environment_Data_Chunk * parent) + : Chunk (parent, "ENDTHEAD"), + flags (0), version_no (0) + {} + +}; + +/////////////////////////////////////////////// + +class Environment_Scale_Chunk : public Chunk +{ + +public: + + // constructor from data + Environment_Scale_Chunk (Environment_Data_Chunk * parent, double _scale) + : Chunk (parent, "ENVSDSCL"), + scale (_scale) + {} + + // constructor from buffer + Environment_Scale_Chunk (Chunk_With_Children * parent, const char * sdata, size_t /*ssize*/) + : Chunk (parent, "ENVSDSCL"), + scale ( *((double *) sdata) ) + {} + + virtual size_t size_chunk () + { + chunk_size = 20; + return chunk_size; + } + + virtual void fill_data_block (char * data_start); + + const double scale; + +private: + + friend class Environment_Data_Chunk; + + + + +}; + +/////////////////////////////////////////////// + +class Special_Objects_Chunk : public Chunk_With_Children +{ + +public: + + Special_Objects_Chunk(Chunk_With_Children * parent) + : Chunk_With_Children (parent, "SPECLOBJ") + {} + // constructor from buffer + Special_Objects_Chunk (Chunk_With_Children * const parent,const char *, size_t const); +private: + + friend class Environment_Data_Chunk; + friend class AVP_Generator_Chunk; + + + +}; + +/////////////////////////////////////////////// +class Environment_Acoustics_Chunk : public Chunk +{ +public: + Environment_Acoustics_Chunk(Environment_Data_Chunk * parent); + Environment_Acoustics_Chunk(Chunk_With_Children* parent, const char * data, size_t ); + virtual void fill_data_block(char*); + virtual size_t size_chunk() + {return chunk_size=24;} + + int env_index; + float reverb; + int spare; +private: + friend class Environment_Data_Chunk; + + + +}; +/////////////////////////////////////////////// +class Sound_Directory_Chunk : public Chunk +{ +public : + Sound_Directory_Chunk(Environment_Data_Chunk* parent,const char* dir); + ~Sound_Directory_Chunk(); + // constructor from buffer + Sound_Directory_Chunk (Chunk_With_Children * const parent,const char *, size_t const); + char* directory; + + size_t size_chunk() + { + return (chunk_size =12 + ((strlen (directory)+4)&~3)); + } + + void fill_data_block(char* data_start); + +private: + + friend class Environment_Data_Chunk; + + + +}; + +/////////////////////Available shape set collections//////////////////////////////////////// +class Random_Texture_ID_Chunk : public Chunk +{ +public : + Random_Texture_ID_Chunk(Chunk_With_Children* parent,const char* _name); + Random_Texture_ID_Chunk(Chunk_With_Children* parent,const char* data, size_t); + ~Random_Texture_ID_Chunk(); + + void fill_data_block(char* data); + size_t size_chunk(); + + char* name; + List<int> random_types; + + int spare1,spare2; + +}; +#endif
\ No newline at end of file |
