From 2186d5f3f95cd74a070a490d899291648d58667a Mon Sep 17 00:00:00 2001 From: Steven Fuller Date: Sun, 1 Jul 2001 00:55:22 +0000 Subject: Initial revision --- 3dc/win95/fragchnk.cpp | 255 ------------------------------------------------- 1 file changed, 255 deletions(-) delete mode 100644 3dc/win95/fragchnk.cpp (limited to '3dc/win95/fragchnk.cpp') diff --git a/3dc/win95/fragchnk.cpp b/3dc/win95/fragchnk.cpp deleted file mode 100644 index dc998d7..0000000 --- a/3dc/win95/fragchnk.cpp +++ /dev/null @@ -1,255 +0,0 @@ -#include "fragchnk.hpp" - -//macro for helping to force inclusion of chunks when using libraries -FORCE_CHUNK_INCLUDE_IMPLEMENT(fragchnk) - -RIF_IMPLEMENT_DYNCREATE("FRAGTYPE",Fragment_Type_Chunk) - -CHUNK_WITH_CHILDREN_LOADER("FRAGTYPE",Fragment_Type_Chunk) - -/* -Children for Fragment_Type_Chunk : - -Fragment_Type_Data_Chunk "FRGTYPDC" -Fragment_Type_Shape_Chunk "FRGTYPSC" -Fragment_Type_Sound_Chunk "FRGSOUND" -*/ - - -const char* Fragment_Type_Chunk::get_name() -{ - Fragment_Type_Data_Chunk* ftdc=(Fragment_Type_Data_Chunk*)lookup_single_child("FRGTYPDC"); - - if(ftdc) - return ftdc->frag_type_name; - else - return 0; - -} - -//////////////////////////////////////////////////////////////////////// -RIF_IMPLEMENT_DYNCREATE("FRGTYPDC",Fragment_Type_Data_Chunk) - -Fragment_Type_Data_Chunk::Fragment_Type_Data_Chunk(Chunk_With_Children* parent,const char* name) -:Chunk(parent,"FRGTYPDC") -{ - frag_type_name=new char[strlen(name)+1]; - strcpy(frag_type_name,name); - pad1=pad2=pad3=0; -} - -Fragment_Type_Data_Chunk::Fragment_Type_Data_Chunk(Chunk_With_Children* const parent,const char* data,size_t const ) -:Chunk(parent,"FRGTYPDC") -{ - int length=strlen(data)+1; - frag_type_name=new char[length]; - strcpy(frag_type_name,data); - data+=(length+3)&~3; - - pad1=*(int*)data; - data+=4; - pad2=*(int*)data; - data+=4; - pad3=*(int*)data; - data+=4; -} - -Fragment_Type_Data_Chunk::~Fragment_Type_Data_Chunk() -{ - if(frag_type_name) delete frag_type_name; -} - -void Fragment_Type_Data_Chunk::fill_data_block(char* data_start) -{ - strncpy (data_start, identifier, 8); - data_start += 8; - *((int *) data_start) = chunk_size; - data_start += 4; - - strcpy(data_start,frag_type_name); - data_start+=(strlen(frag_type_name)+4)&~3; - - *(int*)data_start=pad1; - data_start+=4; - *(int*)data_start=pad2; - data_start+=4; - *(int*)data_start=pad3; - data_start+=4; - -} - -size_t Fragment_Type_Data_Chunk::size_chunk() -{ - chunk_size=12+12; - chunk_size+=(strlen(frag_type_name)+4)&~3; - return chunk_size; -} - - -//////////////////////////////////////////////////////////////////////// -RIF_IMPLEMENT_DYNCREATE("FRGTYPSC",Fragment_Type_Shape_Chunk) - -Fragment_Type_Shape_Chunk::Fragment_Type_Shape_Chunk(Chunk_With_Children* parent,const char* _name,int number,ChunkVectorInt _location) -:Chunk(parent,"FRGTYPSC") -{ - name=new char[strlen(_name)+1]; - strcpy(name,_name); - num_fragments=number; - location=_location; - pad1=pad2=pad3=0; -} - -#if UseOldChunkLoader -Fragment_Type_Shape_Chunk::Fragment_Type_Shape_Chunk(Chunk_With_Children* const parent,const char* data,size_t const ) -:Chunk(parent,"FRGTYPSC") -{ - int length=strlen(data)+1; - name=new char[length]; - strcpy(name,data); - data+=(length+3)&~3; - - num_fragments=*(int*)data; - data+=4; - - location=*(ChunkVector*)data; - data+=sizeof(ChunkVector); - - - pad1=*(int*)data; - data+=4; - pad2=*(int*)data; - data+=4; - pad3=*(int*)data; - data+=4; -}; -#else -Fragment_Type_Shape_Chunk::Fragment_Type_Shape_Chunk(Chunk_With_Children* const parent,const char* data,size_t const ) -:Chunk(parent,"FRGTYPSC") -{ - int length=strlen(data)+1; - name=new char[length]; - strcpy(name,data); - data+=(length+3)&~3; - - num_fragments=*(int*)data; - data+=4; - - location=*(ChunkVectorInt*)data; - data+=sizeof(ChunkVectorInt); - - - pad1=*(int*)data; - data+=4; - pad2=*(int*)data; - data+=4; - pad3=*(int*)data; - data+=4; -} -#endif - -Fragment_Type_Shape_Chunk::~Fragment_Type_Shape_Chunk() -{ - if(name) delete name; -} - -void Fragment_Type_Shape_Chunk::fill_data_block(char* data_start) -{ - strncpy (data_start, identifier, 8); - data_start += 8; - *((int *) data_start) = chunk_size; - data_start += 4; - - strcpy(data_start,name); - data_start+=(strlen(name)+4)&~3; - - *(int*)data_start=num_fragments; - data_start+=4; - - *(ChunkVectorInt*)data_start=location; - data_start+=sizeof(ChunkVectorInt); - - *(int*)data_start=pad1; - data_start+=4; - *(int*)data_start=pad2; - data_start+=4; - *(int*)data_start=pad3; - data_start+=4; - -} - -size_t Fragment_Type_Shape_Chunk::size_chunk() -{ - chunk_size=12+16+sizeof(ChunkVectorInt); - chunk_size+=(strlen(name)+4)&~3; - return chunk_size; -} - -//////////////////////////////////////////////////////////////////////// -RIF_IMPLEMENT_DYNCREATE("FRGSOUND",Fragment_Type_Sound_Chunk) - -Fragment_Type_Sound_Chunk::Fragment_Type_Sound_Chunk(Chunk_With_Children* parent) -:Chunk(parent,"FRGSOUND") -{ - wav_name=0; - inner_range=5000; - outer_range=40000; - max_volume=127; - pitch=0; - pad=0; -} - -Fragment_Type_Sound_Chunk::Fragment_Type_Sound_Chunk(Chunk_With_Children* const parent,const char* data,size_t const ) -:Chunk(parent,"FRGSOUND") -{ - inner_range=*(unsigned long*)data; - data+=4; - outer_range=*(unsigned long*)data; - data+=4; - - max_volume=*(int*)data; - data+=4; - pitch=*(int*)data; - data+=4; - pad=*(int*)data; - data+=4; - - wav_name=new char[strlen(data)+1]; - strcpy(wav_name,data); - -} - -Fragment_Type_Sound_Chunk::~Fragment_Type_Sound_Chunk() -{ - if(wav_name) delete wav_name; -} - -void Fragment_Type_Sound_Chunk::fill_data_block(char* data_start) -{ - strncpy (data_start, identifier, 8); - data_start += 8; - *((int *) data_start) = chunk_size; - data_start += 4; - - *(unsigned long*)data_start=inner_range; - data_start+=4; - *(unsigned long*)data_start=outer_range; - data_start+=4; - - *(int*)data_start=max_volume; - data_start+=4; - *(int*)data_start=pitch; - data_start+=4; - *(int*)data_start=pad; - data_start+=4; - - strcpy(data_start,wav_name); - -} - -size_t Fragment_Type_Sound_Chunk::size_chunk() -{ - chunk_size=12+20; - chunk_size+=(strlen(wav_name)+4)&~3; - return chunk_size; -} - -- cgit v1.3