aboutsummaryrefslogtreecommitdiff
path: root/engines/tinsel/scn.h
blob: 2e497653513e787c37d381732dcc233161f4a926 (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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
/* ScummVM - Graphic Adventure Engine
 *
 * ScummVM is the legal property of its developers, whose names
 * are too numerous to list here. Please refer to the COPYRIGHT
 * file distributed with this source distribution.
 *
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public License
 * as published by the Free Software Foundation; either version 2
 * of the License, or (at your option) any later version.

 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 *
 * $URL$
 * $Id$
 *
 */

#ifndef TINSEL_SCN_H	// prevent multiple includes
#define TINSEL_SCN_H

#include "tinsel/dw.h"

namespace Tinsel {

#define	INDEX_FILENAME		"index"		// name of scene index file
#define PSX_INDEX_FILENAME	"index.dat" // name of scene index in psx version
#define	INDEXFILE_LENGTH	12			// length of filenames in the MEMHANDLE structure

#define	GLOBALS_FILENAME	"gdata"		// name of globals file
#define HOPPER_FILENAME		"hopper"
#define CD_ID_FILENAME		"volume"

#define BMOVIE_EXTENSION	".bmv"

// chunk identifier numbers

// V2 chunks

#define	CHUNK_STRING			0x33340001L	// same in V1 and V2
#define	CHUNK_BITMAP			0x33340002L	// same in V1 and V2
#define	CHUNK_CHARPTR			0x33340003L	// not used!
#define	CHUNK_CHARMATRIX		0x33340004L	// not used!
#define	CHUNK_PALETTE			0x33340005L	// not used!
#define	CHUNK_IMAGE				0x33340006L	// not used!
#define	CHUNK_ANI_FRAME			0x33340007L	// not used!
#define	CHUNK_FILM				0x33340008L	// not used!
#define	CHUNK_FONT				0x33340009L	// not used!
#define	CHUNK_PCODE				0x3334000AL
#define	CHUNK_ENTRANCE			0x3334000BL	// not used!
#define	CHUNK_POLYGONS			0x3334000CL	// not used!
#define	CHUNK_ACTORS			0x3334000DL	// not used!

#define CHUNK_PROCESSES			0x3334000EL // Tinsel 2 only

// Following chunk Ids should be decremented by 1 for Tinsel 1
#define	CHUNK_SCENE				0x3334000FL
#define	CHUNK_TOTAL_ACTORS		0x33340010L
#define	CHUNK_TOTAL_GLOBALS		0x33340011L
#define	CHUNK_TOTAL_OBJECTS		0x33340012L
#define	CHUNK_OBJECTS			0x33340013L
#define	CHUNK_MIDI				0x33340014L	// not used!
#define	CHUNK_SAMPLE			0x33340015L	// not used!
#define	CHUNK_TOTAL_POLY		0x33340016L

// Following chunks are Tinsel 2 only
#define CHUNK_NUM_PROCESSES		0x33340017L	// Master scene only
#define CHUNK_MASTER_SCRIPT		0x33340018L
#define CHUNK_CDPLAY_FILENUM	0x33340019L
#define CHUNK_CDPLAY_HANDLE		0x3334001AL
#define CHUNK_CDPLAY_FILENAME	0x3334001BL
#define CHUNK_MUSIC_FILENAME	0x3334001CL
#define CHUNK_MUSIC_SCRIPT		0x3334001DL
#define CHUNK_MUSIC_SEGMENT		0x3334001EL
#define CHUNK_SCENE_HOPPER		0x3334001FL	// Hopper file only
#define CHUNK_SCENE_HOPPER2		0x33340030L	// Hopper file only
#define CHUNK_TIME_STAMPS		0x33340020L

// This single chunk is common to all Tinsel versions
#define	CHUNK_MBSTRING			0x33340022L

// This is a base, subsequent numbers may also get used
#define CHUNK_GRAB_NAME			0x33340100L

#define	INDEX_FILENAME		"index"	// name of index file

byte *FindChunk(SCNHANDLE handle, uint32 chunk);
int ExtractActor(SCNHANDLE hFilm);

} // end of namespace Tinsel

#endif /* TINSEL_SCN_H */