ScummVM API documentation
room204.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_ROOM204_H
23 #define MADS_PHANTOM_ROOM204_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  int16 anim_0_running;
44  int16 anim_1_running;
45  int16 anim_2_running;
46  int16 anim_3_running;
47  int16 keep_raoul_down;
48  int16 florent_is_gone;
49 
50  int16 prevent;
51  int16 prevent_2;
52  int16 prevent_3;
53  int16 end_of_game;
54 
55  int16 brie_action;
56  int16 brie_frame;
57  int16 flor_action;
58  int16 flor_frame;
59  int16 raoul_action;
60  int16 raoul_frame;
61 
62  int16 raoul_talk_count;
63 
64 };
65 
66 
67 /* ========================= Sprite Series ========================= */
68 
69 #define fx_1993 0 /* rm204z */
70 #define fx_broken_case 1 /* rm204f1 */
71 #define fx_book 2 /* rm204p0 */
72 #define fx_door 3 /* rm204x6 */
73 #define fx_reach_up_7 4 /* *RALRH_9 */
74 #define fx_take_6 5 /* *RDRR_6 */
75 #define fx_case 6 /* rm204f0 */
76 
77 
78 /* ========================= Conversations ========================= */
79 
80 #define CONV_END_22 22
81 
82 /* Conv 22 — Brie action states */
83 #define CONV22_BRIE_TALK 0
84 #define CONV22_BRIE_POINT 1
85 #define CONV22_BRIE_SHUT_UP 2
86 #define CONV22_BRIE_LEAVE 3
87 #define CONV22_BRIE_RIGHT_UP 4
88 
89 /* Conv 22 — Florent action states */
90 #define CONV22_FLOR_TALK_RAOUL 0
91 #define CONV22_FLOR_TALK_BRIE 1
92 #define CONV22_FLOR_SHUT_UP 2
93 #define CONV22_FLOR_LEAVE 3
94 #define CONV22_FLOR_RAOUL_TALK 4
95 
96 /* Conv 22 — Raoul action states */
97 #define CONV22_RAOUL_TALK 0
98 #define CONV22_RAOUL_SHUT_UP 1
99 #define CONV22_RAOUL_SIT 2
100 #define CONV22_RAOUL_GET_BOOK 3
101 #define CONV22_RAOUL_INVISIBLE 4
102 #define CONV22_RAOUL_GLANCE 5
103 
104 
105 /* ========================= Triggers ============================== */
106 
107 #define ROOM_204_DOOR_OPENS 60
108 #define ROOM_204_DOOR_CLOSES 70
109 #define ROOM_204_ME_TALK 75
110 #define ROOM_204_YOU_TALK 80
111 #define ROOM_204_BYE 85
112 
113 
114 /* ========================= Player positions ====================== */
115 
116 #define PLAYER_X_FROM_202_1881 115
117 #define PLAYER_Y_FROM_202_1881 147
118 
119 #define PLAYER_X_FROM_202_1993 175
120 #define PLAYER_Y_FROM_202_1993 145
121 
122 #define PLAYER_X_FROM_203 2
123 #define PLAYER_Y_FROM_203 140
124 
125 #define WALK_TO_X_FROM_203 30
126 #define WALK_TO_Y_FROM_203 140
127 
128 #define WALK_TO_X_BEHIND_DOOR 0
129 #define WALK_TO_Y_BEHIND_DOOR 136
130 
131 
132 /* ========================= Dynamic hotspot bounds ================ */
133 
134 /* Coffee table (1993) */
135 #define COFFEE_X 83
136 #define COFFEE_Y 140
137 #define COFFEE_X_SIZE 45
138 #define COFFEE_Y_SIZE 12
139 #define WALK_TO_COFFEE_X 84
140 #define WALK_TO_COFFEE_Y 150
141 
142 /* Comfy chairs (1881) */
143 #define CHAIR_1_X 220
144 #define CHAIR_1_Y 147
145 #define CHAIR_1_X_SIZE 6
146 #define CHAIR_1_Y_SIZE 8
147 #define WALK_TO_CHAIR_X 220
148 #define WALK_TO_CHAIR_Y 150
149 
150 #define CHAIR_2_X 226
151 #define CHAIR_2_Y 134
152 #define CHAIR_2_X_SIZE 12
153 #define CHAIR_2_Y_SIZE 21
154 
155 #define CHAIR_3_X 238
156 #define CHAIR_3_Y 128
157 #define CHAIR_3_X_SIZE 13
158 #define CHAIR_3_Y_SIZE 27
159 
160 /* Grand foyer exits (1993) */
161 #define EXIT_1_X 199
162 #define EXIT_1_Y 147
163 #define EXIT_1_X_SIZE 52
164 #define EXIT_1_Y_SIZE 8
165 #define WALK_TO_EXIT_1_X 224
166 #define WALK_TO_EXIT_1_Y 152
167 
168 #define EXIT_2_X 145
169 #define EXIT_2_Y 147
170 #define EXIT_2_X_SIZE 54
171 #define EXIT_2_Y_SIZE 8
172 #define WALK_TO_EXIT_2_X 175
173 #define WALK_TO_EXIT_2_Y 152
174 
175 /* Grand foyer exits (1881) */
176 #define EXIT_3_X 199
177 #define EXIT_3_Y 147
178 #define EXIT_3_X_SIZE 19
179 #define EXIT_3_Y_SIZE 8
180 #define WALK_TO_EXIT_3_X 209
181 #define WALK_TO_EXIT_3_Y 152
182 
183 #define EXIT_4_X 84
184 #define EXIT_4_Y 147
185 #define EXIT_4_X_SIZE 61
186 #define EXIT_4_Y_SIZE 8
187 #define WALK_TO_EXIT_4_X 115
188 #define WALK_TO_EXIT_4_Y 152
189 
190 
191 /* ========================= Misc ================================== */
192 
193 #define DOOR_X 27
194 #define DOOR_Y 139
195 
196 
197 extern void room_204_init();
198 extern void room_204_daemon();
199 extern void room_204_pre_parser();
200 extern void room_204_parser();
201 extern void room_204_preload();
202 
203 } // namespace Rooms
204 } // namespace Phantom
205 } // namespace MADSV2
206 } // namespace MADS
207 
208 #endif
Definition: mps_installer.h:31