ScummVM API documentation
conv.h
1
2
/* ScummVM - Graphic Adventure Engine
3
*
4
* ScummVM is the legal property of its developers, whose names
5
* are too numerous to list here. Please refer to the COPYRIGHT
6
* file distributed with this source distribution.
7
*
8
* This program is free software: you can redistribute it and/or modify
9
* it under the terms of the GNU General Public License as published by
10
* the Free Software Foundation, either version 3 of the License, or
11
* (at your option) any later version.
12
*
13
* This program is distributed in the hope that it will be useful,
14
* but WITHOUT ANY WARRANTY; without even the implied warranty of
15
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16
* GNU General Public License for more details.
17
*
18
* You should have received a copy of the GNU General Public License
19
* along with this program. If not, see <http://www.gnu.org/licenses/>.
20
*
21
*/
22
23
#ifndef M4_ADV_R_CONV_H
24
#define M4_ADV_R_CONV_H
25
26
#include "common/array.h"
27
#include "m4/m4_types.h"
28
29
namespace
M4
{
30
31
#define _GC(X) _G(conversations).X
32
33
#define CONV_WAIT_FOR_INPUT 1
34
#define CONV_HALT_FOREVER 2
35
#define CONV_HALT 3
36
#define CONV_INPUT_OK 4
37
#define CONV_DO_NOTHING 5
38
39
#define CONV_PLAYER_TALKING 1
40
#define CONV_NON_PLAYER_TALKING 0
41
42
#define DLG_FLUSH_LEFT -1
43
#define DLG_FLUSH_RIGHT -2
44
#define DLG_FLUSH_TOP -3
45
#define DLG_FLUSH_BOTTOM -4
46
#define DLG_CENTER_H -5
47
#define DLG_CENTER_V -6
48
49
50
//from: prochunk.h
51
#define C_ASGN_CHUNK ((int32) ('C' << 24) | ('A' << 16) | ('S' << 8) | 'N')
52
53
#define ASGN_CHUNK ((int32) ('A' << 24) | ('S' << 16) | ('G' << 8) | 'N')
54
55
#define HIDE_CHUNK ((int32) ('H' << 24) | ('I' << 16) | ('D' << 8) | 'E')
56
#define UHID_CHUNK ((int32) ('U' << 24) | ('H' << 16) | ('I' << 8) | 'D')
57
#define DSTR_CHUNK ((int32) ('D' << 24) | ('S' << 16) | ('T' << 8) | 'R')
58
#define CHDE_CHUNK ((int32) ('C' << 24) | ('H' << 16) | ('D' << 8) | 'E')
59
#define CUHD_CHUNK ((int32) ('C' << 24) | ('U' << 16) | ('H' << 8) | 'D')
60
#define CDST_CHUNK ((int32) ('D' << 24) | ('D' << 16) | ('T' << 8) | 'S')
61
62
#define CONV_CHUNK ((int32) ('C' << 24) | ('O' << 16) | ('N' << 8) | 'V')
63
#define DECL_CHUNK ((int32) ('D' << 24) | ('E' << 16) | ('C' << 8) | 'L')
64
65
#define FALL_CHUNK ((int32) ('F' << 24) | ('A' << 16) | ('L' << 8) | 'L')
66
#define LNODE_CHUNK ((int32) ('L' << 24) | ('N' << 16) | ('O' << 8) | 'D')
67
#define NODE_CHUNK ((int32) ('N' << 24) | ('O' << 16) | ('D' << 8) | 'E')
68
#define ENTRY_CHUNK ((int32) ('E' << 24) | ('T' << 16) | ('R' << 8) | 'Y')
69
#define TEXT_CHUNK ((int32) ('T' << 24) | ('E' << 16) | ('X' << 8) | 'T')
70
71
//reply
72
#define REPLY_CHUNK ((int32) ('R' << 24) | ('P' << 16) | ('L' << 8) | 'Y')
73
#define WEIGHT_REPLY_CHUNK ((int32) ('W' << 24) | ('R' << 16) | ('P' << 8) | 'L')
74
#define WEIGHT_PREPLY_CHUNK ((int32) ('W' << 24) | ('P' << 16) | ('R' << 8) | 'L')
75
#define COND_REPLY_CHUNK ((int32) ('C' << 24) | ('R' << 16) | ('P' << 8) | 'L')
76
77
#define MESSAGE_CHUNK ((int32) ('M' << 24) | ('E' << 16) | ('S' << 8) | 'G')
78
79
// goto
80
#define GOTO_CHUNK ((int32) ('G' << 24) | ('O' << 16) | ('T' << 8) | 'O')
81
#define EXIT_GOTO_CHUNK ((int32) ('E' << 24) | ('X' << 16) | ('I' << 8) | 'T')
82
#define COND_GOTO_CHUNK ((int32) ('C' << 24) | ('C' << 16) | ('G' << 8) | 'O')
83
84
#define COND_EXIT_GOTO_CHUNK ((int32) ('C' << 24) | ('E' << 16) | ('G' << 8) | 'O')
85
86
87
struct
Conv
{
88
int32 chunkSize = 0;
89
char
*conv =
nullptr
;
90
int32 myCNode = 0;
91
int32 exit_now = 0;
92
int32 node_hash = 0;
93
94
int32 mode = 0;
95
int32 c_entry_num = 0;
96
Common::Array<int32 *>
_pointers;
97
};
98
99
struct
ConvDisplayData
{
100
char
*text[16];
101
char
*snd_files[16];
102
char
mesg[1024];
103
char
*mesg_snd_file;
104
int
num_txt_ents;
105
int
player_non_player;
106
int
player_choice;
107
};
108
109
#include "common/pack-start.h"
// START STRUCT PACKING
110
111
struct
conv_chunk
{
112
int32 tag;
113
int32 size;
114
} PACKED_STRUCT;
115
116
struct
decl_chunk
{
117
int32 tag;
118
int32 val;
119
int32 flags;
120
int32 addrIndex;
// Index into Conv::_pointers array
121
} PACKED_STRUCT;
122
123
struct
fall_chunk
{
124
int32 tag;
125
int32 val;
126
int32 index;
127
} PACKED_STRUCT;
128
129
struct
node_chunk
{
130
int32 tag;
131
int32 hash;
132
int32 size;
133
int32 num_entries;
134
} PACKED_STRUCT;
135
136
struct
lnode_chunk
{
137
int32 tag;
138
int32 hash;
139
int32 size;
140
int32 entry_num;
141
int32 num_entries;
142
} PACKED_STRUCT;
143
144
struct
entry_chunk
{
145
int32 tag;
146
int32 size;
147
int32 status;
148
} PACKED_STRUCT;
149
150
struct
text_chunk
{
151
int32 tag;
152
int32 size;
153
} PACKED_STRUCT;
154
155
struct
mesg_chunk
{
156
int32 tag;
157
int32 size;
158
} PACKED_STRUCT;
159
160
struct
reply_chunk
{
161
int32 tag;
162
int32 index;
// Where the message is located.
163
} PACKED_STRUCT;
164
165
struct
c_reply_chunk
{
166
int32 tag;
167
int32 op_l;
168
int32 op;
169
int32 op_r;
170
int32 index;
// Where the message is located.
171
} PACKED_STRUCT;
172
173
struct
w_reply_chunk
{
174
int32 tag;
175
int32 num_replies;
176
} PACKED_STRUCT;
177
178
struct
w_entry_chunk
{
179
int32 weight;
180
int32 index;
// Where the message is located.
181
} PACKED_STRUCT;
182
183
struct
goto_chunk
{
184
int32 tag;
185
int32 index;
// Where the node is located.
186
} PACKED_STRUCT;
187
188
struct
c_goto_chunk
{
189
int32 tag;
190
int32 opnd1;
// Where the decl is located.
191
int32 op;
192
int32 opnd2;
// Integer value.
193
int32 index;
// Where the node is located.
194
} PACKED_STRUCT;
195
196
struct
misc_chunk
{
197
int32 tag;
198
int32 index;
// Where the entry is located.
199
} PACKED_STRUCT;
200
201
struct
c_misc_chunk
{
202
int32 tag;
203
204
int32 c_op_l;
// Where the decl is located.
205
int32 c_op;
206
int32 c_op_r;
// Integer value.
207
208
int32 index;
// Where the entry is located.
209
} PACKED_STRUCT;
210
211
struct
assign_chunk
{
212
int32 tag;
213
int32 index;
// Where the decl is located.
214
int32 op;
215
int32 opnd1;
// Integer value.
216
} PACKED_STRUCT;
217
218
struct
c_assign_chunk
{
219
int32 tag;
220
221
int32 c_op_l;
// Where the decl is located.
222
int32 c_op;
223
int32 c_op_r;
// Integer value.
224
225
int32 index;
// Where the decl is located.
226
int32 op;
227
int32 opnd1;
// Integer value.
228
} PACKED_STRUCT;
229
230
#include "common/pack-end.h"
// END STRUCT PACKING
231
340
void
set_dlg_rect
();
341
342
void
conv_go(
Conv
*c);
343
344
}
// End of namespace M4
345
346
#endif
M4::mesg_chunk
Definition:
conv.h:155
M4::decl_chunk
Definition:
conv.h:116
M4::misc_chunk
Definition:
conv.h:196
Common::Array
Definition:
array.h:52
M4::c_misc_chunk
Definition:
conv.h:201
M4::set_dlg_rect
void set_dlg_rect()
M4::fall_chunk
Definition:
conv.h:123
M4::w_entry_chunk
Definition:
conv.h:178
M4::Conv
Definition:
conv.h:87
M4::lnode_chunk
Definition:
conv.h:136
M4::reply_chunk
Definition:
conv.h:160
M4
Definition:
database.h:28
M4::goto_chunk
Definition:
conv.h:183
M4::c_reply_chunk
Definition:
conv.h:165
M4::ConvDisplayData
Definition:
conv.h:99
M4::w_reply_chunk
Definition:
conv.h:173
M4::node_chunk
Definition:
conv.h:129
M4::conv_chunk
Definition:
conv.h:111
M4::assign_chunk
Definition:
conv.h:211
M4::c_goto_chunk
Definition:
conv.h:188
M4::text_chunk
Definition:
conv.h:150
M4::c_assign_chunk
Definition:
conv.h:218
M4::entry_chunk
Definition:
conv.h:144
engines
m4
adv_r
conv.h
Generated on Fri Aug 30 2024 09:14:50 for ScummVM API documentation by
1.8.13