ScummVM API documentation
room104.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_ROOM104_H
23 #define MADS_PHANTOM_ROOM104_H
24 
25 #include "mads/madsv2/phantom/rooms/section1.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[6]; /* Animation handles */
43  int16 anim_0_running;
44  int16 anim_1_running;
45  int16 anim_2_running;
46 
47  int16 get_ready_she_leave; /* if T, Daae will, after talking, leave scene */
48  int16 get_ready_he_leave; /* if T, Daae will, after talking, leave scene */
49 
50  int16 wants_to_talk; /* if T, Raoul will talk */
51  int16 wants_to_get_up; /* if T, Raoul will sit up */
52 
53  int16 sitting_up; /* T if Raoul is sitting up from fall */
54 
55  int16 rich_action; /* action Richard is going to perform */
56  int16 rich_frame;
57 
58  int16 raoul_action; /* action Raoul is going to perform */
59  int16 raoul_frame;
60 
61  int16 daae_walk_action; /* action Daae is going to perform */
62  int16 daae_walk_frame;
63 
64  int16 couple_action; /* action couple is going to perform */
65  int16 couple_frame;
66 
67  int16 rich_talk_count; /* counters for talking */
68  int16 couple_he_talk_count; /* counters for he talking */
69  int16 couple_she_talk_count; /* counters for she talking */
70  int16 couple_look_rich_count; /* counter for couple looking at Richard */
71 
72  int16 wants_to_stand_up; /* if T, will not talk, etc. */
73 
74  int16 last_player_step; /* Frame marker for player walk */
75 
76 };
77 
78 
79 /* ========================= Sprite Series ========================= */
80 
81 #define fx_trap_door 0 /* rm104x0 */
82 #define fx_climb_thru 1 /* rm104a0 */
83 #define fx_chandelier 2 /* rm104z0 */
84 #define fx_fall 3 /* rm104a6 */
85 
86 
87 /* ========================= Triggers ============================== */
88 
89 #define ROOM_104_CLIMB_THRU 60
90 #define ROOM_104_TRAP_DOOR_MOVEMENT 65
91 #define ROOM_104_SIT_UP 67
92 #define ROOM_104_SHE_TALK 69
93 #define ROOM_104_ME_TALK 71
94 #define ROOM_104_KISS_HIM 73
95 #define ROOM_104_RICHARD_TALK 75
96 #define ROOM_104_SHE_TALK_TO_RICH 77
97 #define ROOM_104_HE_TALK_TO_RICH 79
98 #define ROOM_104_GET_TO_SHE_WALK 81
99 #define ROOM_104_COMMANDS_ALLOWED_NOT 83
100 #define ROOM_104_POINT 87
101 #define ROOM_104_ARMS_OUT 89
102 #define ROOM_104_INIT_TEXT 91
103 #define ROOM_104_END_PHANTOM 93
104 
105 
106 /* ========================= Camera positions ====================== */
107 
108 #define RIGHT_STAGE 320 /* for camera_jump_to */
109 #define LEFT_STAGE 0 /* for camera_jump_to */
110 #define MIDDLE_STAGE 158 /* for camera_jump_to */
111 
112 
113 /* ========================= Player positions from room 107 ======== */
114 
115 #define PLAYER_X_FROM_107 627
116 #define PLAYER_Y_FROM_107_1 95
117 #define PLAYER_Y_FROM_107_2 120
118 #define PLAYER_Y_FROM_107_3 142
119 #define OFF_SCREEN_X_FROM_107 655
120 
121 
122 /* ========================= Player positions from room 108 ======== */
123 
124 #define PLAYER_X_FROM_108 12
125 #define PLAYER_Y_FROM_108_1 148
126 #define PLAYER_Y_FROM_108_2 128
127 #define PLAYER_Y_FROM_108_3 97
128 #define OFF_SCREEN_X_FROM_108 -20
129 
130 
131 /* ========================= Conversation ========================== */
132 
133 #define CONV_AFTER_FALL_FROM_301 7
134 
135 
136 /* ========================= Richard (Conv 7) action states ======== */
137 
138 #define CONV7_RICH_SHUT_UP 0
139 #define CONV7_RICH_TALK 1
140 #define CONV7_RICH_ARMS_OUT 2
141 #define CONV7_RICH_POINT 3
142 #define CONV7_RICH_WALK 4
143 #define CONV7_RICH_LOOK_UP 5
144 
145 
146 /* ========================= Couple (Conv 7) action states ========= */
147 /* the '_R' means Richard */
148 
149 #define CONV7_COUPLE_SHUT_UP 1
150 #define CONV7_COUPLE_SHUT_UP_R 2
151 #define CONV7_COUPLE_HE_TALK 3
152 #define CONV7_COUPLE_SHE_TALK 4
153 #define CONV7_COUPLE_KISS 5
154 #define CONV7_COUPLE_TOUCH_HEAD 6
155 #define CONV7_COUPLE_HE_TALK_R 7
156 #define CONV7_COUPLE_SHE_TALK_R 8
157 #define CONV7_COUPLE_LOOK_AT_R_SHORT 9
158 #define CONV7_COUPLE_LOOK_AT_R_LONG 10
159 #define CONV7_COUPLE_STAY_DOWN 11
160 #define CONV7_COUPLE_SHE_TALK_LAY 12
161 #define CONV7_COUPLE_RAOUL_ALONE 13
162 #define CONV7_COUPLE_PINCH 14
163 #define CONV7_COUPLE_SHE_WALK 15
164 #define CONV7_COUPLE_HE_GET_UP 16
165 #define CONV7_COUPLE_INVISIBLE 17
166 
167 
168 /* ========================= Daae walk action states =============== */
169 
170 #define CONV7_DAAE_WALK_INVISIBLE 0
171 #define CONV7_DAAE_WALK_LEAVE 1
172 
173 
174 /* ========================= Post-conversation positions =========== */
175 
176 #define AFTER_CONV_X 166
177 #define AFTER_CONV_Y 126
178 
179 
180 /* ========================= Restore positions (from death) ======== */
181 
182 #define RESTORE_X_FAR 496
183 #define RESTORE_Y_FAR 79
184 #define RESTORE_X_MIDDLE 346
185 #define RESTORE_Y_MIDDLE 71
186 #define RESTORE_X_NEAR 172
187 #define RESTORE_Y_NEAR 73
188 
189 
190 /* ========================= Entry from room 103 =================== */
191 
192 #define NEW_ROOM_FROM_103_X 319
193 #define NEW_ROOM_FROM_103_Y 96
194 
195 
196 extern void room_104_init();
197 extern void room_104_daemon();
198 extern void room_104_pre_parser();
199 extern void room_104_parser();
200 extern void room_104_preload();
201 
202 } // namespace Rooms
203 } // namespace Phantom
204 } // namespace MADSV2
205 } // namespace MADS
206 
207 #endif
Definition: mps_installer.h:31