summaryrefslogtreecommitdiff
path: root/src/win95/toolchnk.cpp
blob: b4a897be83be7ae42dcc51c4189b6533554c474f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#include "toolchnk.hpp"

#ifdef cencon
#define new my_new
#endif

//macro for helping to force inclusion of chunks when using libraries
FORCE_CHUNK_INCLUDE_IMPLEMENT(toolchnk)

RIF_IMPLEMENT_DYNCREATE("CAMORIGN",Camera_Origin_Chunk)

Camera_Origin_Chunk::Camera_Origin_Chunk(Chunk_With_Children* parent)
:Chunk(parent,"CAMORIGN")
{
	location.x=0;
	location.y=0;
	location.z=0;
	ChunkMatrix identity={1,0,0,0,1,0,0,0,1};
	orientation=identity;
}

Camera_Origin_Chunk::Camera_Origin_Chunk(Chunk_With_Children* parent,const char* data,size_t )
:Chunk(parent,"CAMORIGN")
{
	location=*(ChunkVector*)data;
	data+=sizeof(ChunkVector);
	orientation=*(ChunkMatrix*)data;
}

void Camera_Origin_Chunk::fill_data_block(char * data_start)
{
	strncpy (data_start, identifier, 8);
	data_start += 8;
	*((int *) data_start) = chunk_size;
	data_start += 4;

	*(ChunkVector*)data_start=location;
	data_start+=sizeof(ChunkVector);
	*(ChunkMatrix*)data_start=orientation;
}