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
|
/* 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$
*
*/
// 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
};
// TODO: This doesn't quite correspond to the original Actor struct, so I'm not
// sure if I got it right.
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 FxTable {
int res;
int vol;
};
#define ITE_OBJECTCOUNT 39
#define ITE_SFXCOUNT 63
extern ObjectTableData ITE_ObjectTable[ITE_OBJECTCOUNT];
extern FxTable ITE_SfxTable[ITE_SFXCOUNT];
extern const char *ITEinterfaceTextStrings[][52];
#define PUZZLE_PIECES 15
extern Point 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];
} // End of namespace Saga
#endif
|