ScummVM API documentation
room205.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_ROOM205_H
23 #define MADS_PHANTOM_ROOM205_H
24 
25 #include "mads/madsv2/phantom/rooms/section2.h"
26 #include "mads/madsv2/phantom/global.h"
27 
28 namespace MADS {
29 namespace MADSV2 {
30 namespace Phantom {
31 namespace Rooms {
32 
33 #define local (&scratch)
34 #define ss local->sprite
35 #define seq local->sequence
36 #define aa local->animation
37 
38 struct Scratch { /* Room local variables */
39 
40  int16 sprite[15]; /* Sprite series handles */
41  int16 sequence[15]; /* Sequence handles */
42  int16 animation[4]; /* Animation handles */
43 
44  int16 rich_frame;
45  int16 rich_action;
46  int16 rich_talk_count;
47 
48  int16 giry_frame;
49  int16 giry_action;
50  int16 giry_talk_count;
51 
52  int16 just_did_option;
53  int16 anim_0_running;
54  int16 anim_1_running;
55  int16 converse_counter;
56  int16 no_hold; /* if true, will not conv_hold in Parser */
57  int16 give_ticket; /* if true, will give ticket */
58 
59 };
60 
61 
62 /* ========================= Sprite Series ========================= */
63 
64 #define fx_left_door 0 /* rm203f0 */
65 #define fx_right_door 1 /* rm203f1 */
66 #define fx_take_9 2 /* *RDR_9 */
67 
68 
69 /* ========================= Conversations ========================= */
70 
71 #define CONV_RICHARD_18 18
72 #define CONV_GIRY_10 10
73 #define CONV_GIRY_11 11
74 
75 /* Conv 18 — Richard action states */
76 #define CONV18_RICH_TALK 0
77 #define CONV18_RICH_POINT 1
78 #define CONV18_RICH_BOTH_GO 2
79 #define CONV18_RICH_SHUT_UP 3
80 #define CONV18_RICH_BOTH_ARMS_UP 4
81 
82 /* Conv 10/11 — Giry action states */
83 #define CONV10_GIRY_TALK 0
84 #define CONV10_GIRY_POINT_TALK 1
85 #define CONV10_GIRY_SHUT_UP 2
86 #define CONV10_GIRY_NOD 3
87 #define CONV10_GIRY_TRANCE 4
88 #define CONV10_GIRY_WELCOME 5
89 #define CONV10_GIRY_LEFT_DOOR 6
90 #define CONV10_GIRY_RIGHT_DOOR 7
91 #define CONV10_GIRY_HANDS_UP 8
92 #define CONV11_GIRY_TAKE 9
93 
94 
95 /* ========================= Triggers ============================== */
96 
97 #define ROOM_205_ME_TALK 60
98 #define ROOM_205_RICHARD_TALK 62
99 #define ROOM_205_END 64
100 #define ROOM_205_GIRY_TALK 66
101 #define ROOM_205_WELCOME 68
102 #define ROOM_205_POINT_TALK 70
103 #define ROOM_205_NOD 72
104 #define ROOM_205_BOTH_HANDS_UP 74
105 #define ROOM_205_DOOR_OPENS 80
106 #define ROOM_205_LEFT_DOOR_CLOSES 90
107 #define ROOM_205_RIGHT_DOOR_CLOSES 95
108 #define ROOM_205_TAKE_TICKET 100
109 #define ROOM_205_WALK 110
110 
111 
112 /* ========================= Player positions ====================== */
113 
114 #define WALK_TO_X_FROM_202 19
115 #define WALK_TO_Y_FROM_202 144
116 #define OFF_SCREEN_X_FROM_202 -20
117 #define OFF_SCREEN_Y_FROM_202 144
118 
119 #define PLAYER_X_FROM_206 36
120 #define PLAYER_Y_FROM_206 68
121 
122 #define PLAYER_X_FROM_207 263
123 #define PLAYER_Y_FROM_207 65
124 
125 #define BRIE_X 132
126 #define BRIE_Y 112
127 
128 
129 /* ========================= Box door walk positions =============== */
130 
131 #define FRONT_5_X 37
132 #define FRONT_5_Y 67
133 
134 #define FRONT_6_X 80
135 #define FRONT_6_Y 68
136 
137 #define FRONT_7_X 167
138 #define FRONT_7_Y 65
139 
140 #define FRONT_8_X 212
141 #define FRONT_8_Y 64
142 
143 #define FRONT_9_X 258
144 #define FRONT_9_Y 63
145 
146 #define BEHIND_LEFT_X 37
147 #define BEHIND_LEFT_Y 64
148 
149 #define BEHIND_RIGHT_X 263
150 #define BEHIND_RIGHT_Y 59
151 
152 
153 /* ========================= Dynamic Giry positions ================ */
154 
155 #define DYN_GIRY_X_R 257
156 #define DYN_GIRY_Y_R 79
157 #define DYN_GIRY_X_L 75
158 #define DYN_GIRY_Y_L 84
159 
160 
161 /* ========================= Madame Giry hotspot locations ========= */
162 
163 /* Left position (by box 5) */
164 #define HS_MADAME_X_L_1 62
165 #define HS_MADAME_Y_L_1 54
166 #define HS_MADAME_X_L_2 62
167 #define HS_MADAME_Y_L_2 66
168 
169 /* Middle position */
170 #define HS_MADAME_X_M_1 113
171 #define HS_MADAME_Y_M_1 44
172 #define HS_MADAME_X_M_2 107
173 #define HS_MADAME_Y_M_2 66
174 
175 /* Right position (by box 9) */
176 #define HS_MADAME_X_R_1 283
177 #define HS_MADAME_Y_R_1 51
178 #define HS_MADAME_X_R_2 289
179 #define HS_MADAME_Y_R_2 62
180 
181 
182 extern void room_205_init();
183 extern void room_205_daemon();
184 extern void room_205_pre_parser();
185 extern void room_205_parser();
186 extern void room_205_preload();
187 
188 } // namespace Rooms
189 } // namespace Phantom
190 } // namespace MADSV2
191 } // namespace MADS
192 
193 #endif
Definition: mps_installer.h:31