ScummVM API documentation
room103.h
1 /* ScummVM - Graphic Adventure Engine
2  *
3  * ScummVM is the legal property of its developers, whose names
4  * are too numerous to list here. Please refer to the COPYRIGHT
5  * file distributed with this source distribution.
6  *
7  * This program is free software: you can redistribute it and/or modify
8  * it under the terms of the GNU General Public License as published by
9  * the Free Software Foundation, either version 3 of the License, or
10  * (at your option) any later version.
11  *
12  * This program is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15  * GNU General Public License for more details.
16  *
17  * You should have received a copy of the GNU General Public License
18  * along with this program. If not, see <http://www.gnu.org/licenses/>.
19  *
20  */
21 
22 #ifndef MADS_PHANTOM_ROOMS_103_H
23 #define MADS_PHANTOM_ROOMS_103_H
24 
25 #include "mads/madsv2/core/general.h"
26 
27 namespace MADS {
28 namespace MADSV2 {
29 namespace Phantom {
30 namespace Rooms {
31 
32 #define local (&scratch)
33 #define ss local->sprite
34 #define seq local->sequence
35 #define aa local->animation
36 
37 struct Scratch { /* Room local variables */
38  int16 sprite[20]; /* Sprite series handles */
39  int16 sequence[20]; /* Sequence handles */
40  int16 animation[7]; /* Animation handles */
41  int16 prompt_1; /* Dynamic var for prompter's stand */
42  int16 prompt_2; /* Dynamic var for prompter's stand */
43  int16 prompt_3; /* Dynamic var for prompter's stand */
44  int16 prompt_4; /* Dynamic var for prompter's stand */
45  int16 prompt_5; /* Dynamic var for prompter's stand */
46  int16 floor_r_1; /* Dynamic var for floor */
47  int16 floor_r_2; /* Dynamic var for floor */
48  int16 floor_l_1; /* Dynamic var for floor */
49  int16 floor_l_2; /* Dynamic var for floor */
50  int16 man; /* Dynamic var for man / Jacques */
51 
52  int16 jacques_frame;
53  int16 jacques_action;
54  int16 jacques_talk_count;
55 
56  int16 just_did_option;
57  int16 anim_0_running;
58  int16 anim_1_running;
59  int16 anim_2_running;
60  int16 anim_3_running;
61  int16 anim_4_running;
62  int16 anim_5_running;
63  int16 anim_6_running;
64 
65  int16 top_of_stand; /* Either NO, YES_LEFT, or YES_RIGHT */
66 
67  int16 converse_counter; /* counter for talking displacements */
68  int16 frame_guard; /* guards against running certain daemon code more than once */
69 
70  int16 stairs_frame;
71  int16 climb_thru;
72  int16 sit_on_it;
73 };
74 
75 
76 /* ========================= Sprite Series =================== */
77 
78 #define fx_trap_door 0 /* rm103x0 */
79 #define fx_door 1 /* rm103x1 */
80 #define fx_take_6 2 /* rdr_6 */
81 #define fx_steps 3 /* rm103f0 */
82 #define fx_take_9 4 /* rdr_9 */
83 #define fx_key 5 /* rm103x2 */
84 #define fx_jacques_body 6 /* rm103c1 */
85 #define fx_broken_promp 7 /* rm103f1 */
86 #define fx_bend_down_9 8 /* rrd_9 */
87 #define fx_lever 9 /* rm103x3 */
88 #define fx_on_seat 10 /* rm103a3 */
89 #define fx_up_trap_door 11 /* rm103a2 */
90 #define fx_rail_pieces 12 /* rm103f2 */
91 
92 
93 /* ======================== Jacques actions ================== */
94 
95 #define CONV12_JAC_TALK 0
96 #define CONV12_JAC_SHUT_UP 1
97 #define CONV12_JAC_POINT 2
98 #define CONV12_JAC_I_DUNNO_1 3
99 #define CONV12_JAC_I_DUNNO_2 4
100 
101 
102 /* ========================= Triggers ======================== */
103 
104 #define ROOM_103_TRAP_DOOR_OPENS 60
105 #define ROOM_103_TRAP_DOOR_CLOSES 62
106 #define ROOM_103_DOOR_CLOSES 65
107 #define ROOM_103_DOOR_OPENS 70
108 #define ROOM_103_DONE_MOVING_PROMPT 75
109 #define ROOM_103_DIED 80
110 #define ROOM_103_JACQUES_TALK 90
111 #define ROOM_103_JACQUES_SHUT_UP 92
112 #define ROOM_103_JACQUES_POINT 94
113 #define ROOM_103_JACQUES_I_DUNNO_1 96
114 #define ROOM_103_JACQUES_I_DUNNO_2 98
115 
116 #define ROOM_103_GET_OFF_SEAT 100
117 
118 #define ROOM_103_SWITCH_DOWN 105
119 #define ROOM_103_SWITCH_UP 110
120 #define ROOM_103_LOOK_THRU_BOX 115
121 #define ROOM_103_CLIMB_OUT_TRAP 120
122 
123 
124 /* ======================= Other Macros ====================== */
125 
126 #define CONV_JACQUES 12
127 
128 #define PLAYER_X_FROM_102 15
129 #define PLAYER_Y_FROM_102 147
130 
131 #define PLAYER_X_FROM_105 287
132 #define PLAYER_Y_FROM_105 135
133 
134 #define WALK_TO_X_FROM_105 252
135 #define WALK_TO_Y_FROM_105 134
136 
137 #define WALK_TO_X_OPEN_DOOR 320
138 #define WALK_TO_Y_OPEN_DOOR 132
139 
140 #define OFF_SCREEN_X_FROM_102 -20
141 #define OFF_SCREEN_Y_FROM_102 140
142 
143 #define WALKER_LEFT_PROMPT_X 2
144 #define WALKER_LEFT_PROMPT_Y 138
145 
146 #define WALKER_RIGHT_PROMPT_X 176
147 #define WALKER_RIGHT_PROMPT_Y 142
148 
149 #define PROMPT_LEFT_X 37
150 #define PROMPT_LEFT_Y 139
151 
152 #define PROMPT_RIGHT_X 154
153 #define PROMPT_RIGHT_Y 139
154 
155 #define DYN_PROMPT_LEFT_1_X 2
156 #define DYN_PROMPT_LEFT_1_Y 79
157 #define DYN_PROMPT_X_SIZE_1 40
158 #define DYN_PROMPT_Y_SIZE_1 63
159 
160 #define DYN_PROMPT_LEFT_2_X 42
161 #define DYN_PROMPT_LEFT_2_Y 67
162 #define DYN_PROMPT_X_SIZE_2 16
163 #define DYN_PROMPT_Y_SIZE_2 75
164 
165 #define DYN_PROMPT_LEFT_3_X 58
166 #define DYN_PROMPT_LEFT_3_Y 90
167 #define DYN_PROMPT_X_SIZE_3 18
168 #define DYN_PROMPT_Y_SIZE_3 52
169 
170 #define DYN_PROMPT_LEFT_5_X 2
171 #define DYN_PROMPT_LEFT_5_Y 49
172 #define DYN_PROMPT_X_SIZE_5 40
173 #define DYN_PROMPT_Y_SIZE_5 30
174 
175 #define DYN_PROMPT_L_WALK_TO_X 59
176 #define DYN_PROMPT_L_WALK_TO_Y 140
177 
178 #define DYN_PROMPT_RIGHT_1_X 121
179 #define DYN_PROMPT_RIGHT_1_Y 79
180 
181 #define DYN_PROMPT_RIGHT_2_X 161
182 #define DYN_PROMPT_RIGHT_2_Y 67
183 
184 #define DYN_PROMPT_RIGHT_3_X 177
185 #define DYN_PROMPT_RIGHT_3_Y 90
186 
187 #define DYN_PROMPT_RIGHT_4_X 114
188 #define DYN_PROMPT_RIGHT_4_Y 100
189 #define DYN_PROMPT_X_SIZE_4 7
190 #define DYN_PROMPT_Y_SIZE_4 38
191 
192 #define DYN_PROMPT_RIGHT_5_X 121
193 
194 #define DYN_PROMPT_R_WALK_TO_X 171
195 #define DYN_PROMPT_R_WALK_TO_Y 142
196 
197 #define DYN_PROMPT_R_WALK_TO_X_JAC 115
198 #define DYN_PROMPT_R_WALK_TO_Y_JAC 142
199 
200 #define AFTER_STEPS_FROM_LEFT_X 117
201 #define AFTER_STEPS_FROM_LEFT_Y 139
202 
203 #define AFTER_STEPS_FROM_RIGHT_X 62
204 #define AFTER_STEPS_FROM_RIGHT_Y 142
205 
206 #define DYN_FLOOR_R_1_X 154
207 #define DYN_FLOOR_R_1_Y 136
208 #define DYN_FLOOR_R_1_X_SIZE 41
209 #define DYN_FLOOR_R_1_Y_SIZE 6
210 #define DYN_FLOOR_R_1_WALK_TO_X 171
211 #define DYN_FLOOR_R_1_WALK_TO_Y 142
212 
213 #define DYN_FLOOR_R_2_X 114
214 #define DYN_FLOOR_R_2_Y 136
215 #define DYN_FLOOR_R_2_X_SIZE 32
216 #define DYN_FLOOR_R_2_Y_SIZE 6
217 #define DYN_FLOOR_R_2_WALK_TO_X 127
218 #define DYN_FLOOR_R_2_WALK_TO_Y 140
219 
220 #define DYN_FLOOR_R_3_X 149
221 #define DYN_FLOOR_R_3_Y 140
222 #define DYN_FLOOR_R_3_X_SIZE 13
223 #define DYN_FLOOR_R_3_Y_SIZE 7
224 #define DYN_FLOOR_R_3_WALK_TO_X 155
225 #define DYN_FLOOR_R_3_WALK_TO_Y 144
226 
227 #define DYN_FLOOR_R_4_X 187
228 #define DYN_FLOOR_R_4_Y 136
229 #define DYN_FLOOR_R_4_X_SIZE 8
230 #define DYN_FLOOR_R_4_Y_SIZE 7
231 #define DYN_FLOOR_R_4_WALK_TO_X 195
232 #define DYN_FLOOR_R_4_WALK_TO_Y 139
233 
234 #define DYN_FLOOR_R_5_X 94
235 #define DYN_FLOOR_R_5_Y 129
236 #define DYN_FLOOR_R_5_X_SIZE 18
237 #define DYN_FLOOR_R_5_Y_SIZE 4
238 #define DYN_FLOOR_R_5_WALK_TO_X 95
239 #define DYN_FLOOR_R_5_WALK_TO_Y 133
240 
241 #define DYN_FLOOR_R_6_X 94
242 #define DYN_FLOOR_R_6_Y 132
243 #define DYN_FLOOR_R_6_X_SIZE 3
244 #define DYN_FLOOR_R_6_Y_SIZE 9
245 #define DYN_FLOOR_R_6_WALK_TO_X 93
246 #define DYN_FLOOR_R_6_WALK_TO_Y 135
247 
248 #define DYN_FLOOR_R_7_X 112
249 #define DYN_FLOOR_R_7_Y 150
250 #define DYN_FLOOR_R_7_X_SIZE 21
251 #define DYN_FLOOR_R_7_Y_SIZE 3
252 #define DYN_FLOOR_R_7_WALK_TO_X 118
253 #define DYN_FLOOR_R_7_WALK_TO_Y 154
254 
255 #define DYN_FLOOR_R_8_X 98
256 #define DYN_FLOOR_R_8_Y 146
257 #define DYN_FLOOR_R_8_X_SIZE 21
258 #define DYN_FLOOR_R_8_Y_SIZE 4
259 #define DYN_FLOOR_R_8_WALK_TO_X 104
260 #define DYN_FLOOR_R_8_WALK_TO_Y 148
261 
262 #define DYN_FLOOR_L_1_X 35
263 #define DYN_FLOOR_L_1_Y 137
264 #define DYN_FLOOR_L_1_X_SIZE 40
265 #define DYN_FLOOR_L_1_Y_SIZE 5
266 #define DYN_FLOOR_L_1_WALK_TO_X 59
267 #define DYN_FLOOR_L_1_WALK_TO_Y 140
268 
269 #define DYN_FLOOR_L_2_X 76
270 #define DYN_FLOOR_L_2_Y 129
271 #define DYN_FLOOR_L_2_X_SIZE 6
272 #define DYN_FLOOR_L_2_Y_SIZE 6
273 #define DYN_FLOOR_L_2_WALK_TO_X 80
274 #define DYN_FLOOR_L_2_WALK_TO_Y 135
275 
276 #define DYN_JAC_X 156
277 #define DYN_JAC_Y 116
278 #define DYN_JAC_X_SIZE 33
279 #define DYN_JAC_Y_SIZE 31
280 #define DYN_JAC_WALK_TO_X 206
281 #define DYN_JAC_WALK_TO_Y 148
282 
283 #define DYN_JAC_BODY_X 114
284 #define DYN_JAC_BODY_Y 132
285 #define DYN_JAC_BODY_X_SIZE 30
286 #define DYN_JAC_BODY_Y_SIZE 10
287 #define DYN_JAC_BODY_WALK_TO_X 95
288 #define DYN_JAC_BODY_WALK_TO_Y 144
289 
290 #define PROMPT_UP_LEFT_X 79
291 #define PROMPT_UP_LEFT_Y 132
292 
293 #define PROMPT_UP_RIGHT_X 196
294 #define PROMPT_UP_RIGHT_Y 134
295 
296 #define DEATH_X 150
297 #define DEATH_Y 147
298 
299 #define NO 0
300 #define YES_LEFT 1
301 #define YES_RIGHT 2
302 
303 #define LEAVE_LEFT_X 0
304 #define LEAVE_LEFT_Y 150
305 
306 } // namespace Rooms
307 } // namespace Phantom
308 } // namespace MADSV2
309 } // namespace MADS
310 
311 #endif
Definition: mps_installer.h:31