aboutsummaryrefslogtreecommitdiff
path: root/engines/saga/itedata.h
blob: 1ad73f7137ba20c69aa7fce4f1c79a33723b4165 (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
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
/* 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.
 *
 */

// Actor data table header file

#ifndef SAGA_ITEDATA_H
#define SAGA_ITEDATA_H

namespace Saga {

enum ActorFlags {
	kProtagonist	= 0x01,	// (1<<0) Actor is protagonist
	kFollower		= 0x02,	// (1<<1) Actor is follower
	kCycle			= 0x04, // (1<<2) Actor stand has a cycle
	kFaster			= 0x08, // (1<<3) Actor is fast
	kFastest		= 0x10, // (1<<4) Actor is faster
	kExtended		= 0x20, // (1<<5) Actor uses extended sprites
	kUsable			= 0x40, // (1<<6) Actor can be used
	kNoScale		= 0x80  // (1<<7) Actor is not scaled
};

struct ActorTableData {
	byte flags;
	byte nameIndex;
	int32 sceneIndex;
	int16 x;
	int16 y;
	int16 z;
	int32 spriteListResourceId;
	int32 frameListResourceId;
	byte scriptEntrypointNumber;
	byte speechColor;
	byte currentAction;
	byte facingDirection;
	byte actionDirection;
};

#define ITE_ACTORCOUNT 181

extern ActorTableData ITE_ActorTable[ITE_ACTORCOUNT];

enum {
	kObjUseWith = 0x01,
	kObjNotFlat = 0x02
};

struct ObjectTableData {
	byte nameIndex;
	int32 sceneIndex;
	int16 x;
	int16 y;
	int16 z;
	int32 spriteListResourceId;
	byte scriptEntrypointNumber;
	uint16 interactBits;
};

struct IteFxTable {
	byte res;
	byte vol;
};

struct IntroDialogue {
	uint32 i_voice_rn;
	const char *i_str;
};

struct IntroCredit {
	Common::Language lang;
	int game;
	int type;
	const char *string;
};

enum {
	kITECreditsHeader,
	kITECreditsText
};

enum {
	kITECreditsPC           = (1 << 0),
	kITECreditsPCCD         = (1 << 1),
	kITECreditsMac          = (1 << 2),
	kITECreditsWyrmKeep     = (1 << 3),
	kITECreditsAny          = 0xffff,
	kITECreditsNotWyrmKeep  = kITECreditsAny & ~kITECreditsWyrmKeep
};

#define ITE_OBJECTCOUNT 39
#define ITE_SFXCOUNT 63

extern ObjectTableData ITE_ObjectTable[ITE_OBJECTCOUNT];
extern IteFxTable ITE_SfxTable[ITE_SFXCOUNT];

extern const char *ITEinterfaceTextStrings[][53];

#define PUZZLE_PIECES 15

struct RawPoint { int x, y; };
extern const RawPoint pieceOrigins[PUZZLE_PIECES];
extern const char *pieceNames[][PUZZLE_PIECES];

#define NUM_SOLICIT_REPLIES 5
extern const char *solicitStr[][NUM_SOLICIT_REPLIES];

#define NUM_SAKKA 3
extern const char *sakkaStr[][NUM_SAKKA];

#define NUM_WHINES 5
extern const char *whineStr[][NUM_WHINES];

extern const char *hintStr[][4];
extern const char portraitList[];
extern const char *optionsStr[][4];

extern const IntroDialogue introDialogueCave1[][4];
extern const IntroDialogue introDialogueCave2[][3];
extern const IntroDialogue introDialogueCave3[][3];
extern const IntroDialogue introDialogueCave4[][4];

extern const IntroCredit creditsValley[16];
extern const IntroCredit creditsTreeHouse1[17];
extern const IntroCredit creditsTreeHouse2[23];
extern const IntroCredit creditsFairePath1[20];
extern const IntroCredit creditsFairePath2[7];

} // End of namespace Saga

#endif