ScummVM API documentation
room106.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_ROOM106_H
23 #define MADS_PHANTOM_ROOM106_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[4]; /* Animation handles */
43  int16 dynamic_sandbag; /* Dynamic HS for fallen sandbag */
44 
45 };
46 
47 
48 /* ========================= Sprite Series ========================= */
49 
50 #define fx_sandbag 0 /* rm106x0 */
51 #define fx_yikes 1 /* rm106a0 */
52 #define fx_door 2 /* rm106x1 */
53 #define fx_take_9 3 /* rdr_9 */
54 #define fx_climb_up 4 /* rm106a1 */
55 #define fx_bend_down_9 5 /* rrd_9 */
56 #define fx_climb_down 6 /* rm106a2 */
57 #define fx_1881 7 /* rm106z */
58 #define fx_cable_hook 8 /* rm106p0 */
59 
60 
61 /* ========================= Triggers ============================== */
62 
63 #define ROOM_106_DOOR_CLOSES 60
64 #define ROOM_106_DOOR_OPENS 65
65 #define ROOM_106_CLIMB_DOWN 75
66 #define ROOM_106_CLIMB_UP 80
67 #define ROOM_106_INIT_TEXT 85
68 
69 
70 /* ========================= Player positions ====================== */
71 
72 #define PLAYER_X_FROM_105 227
73 #define PLAYER_Y_FROM_105 143
74 
75 #define PLAYER_X_FROM_108 19
76 #define PLAYER_Y_FROM_108 147
77 
78 #define PLAYER_X_FROM_107 143
79 #define PLAYER_Y_FROM_107 68
80 
81 #define PLAYER_X_FROM_109 178
82 #define PLAYER_Y_FROM_109 68
83 
84 #define WALK_TO_X_FROM_107 163
85 #define WALK_TO_Y_FROM_107 68
86 
87 #define AFTER_LOOK_ANIM_X 225
88 #define AFTER_LOOK_ANIM_Y 143
89 
90 #define WALK_TO_AFTER_ANIM_X 236
91 #define WALK_TO_AFTER_ANIM_Y 142
92 
93 #define FRONT_OF_DOOR_X 179
94 #define FRONT_OF_DOOR_Y 63
95 
96 #define WALK_TO_X_BEHIND_DOOR 180
97 #define WALK_TO_Y_BEHIND_DOOR 60
98 
99 #define OFF_SCREEN_X_FROM_108 -20
100 #define OFF_SCREEN_Y_FROM_108 130
101 
102 
103 /* ========================= Fallen sandbag hotspot ================ */
104 
105 #define SANDBAG_X 227
106 #define SANDBAG_Y 140
107 #define SANDBAG_XS 18
108 #define SANDBAG_YS 11
109 
110 #define SANDBAG_WALK_TO_X 224
111 #define SANDBAG_WALK_TO_Y 152
112 
113 
114 /* ========================= Sandbag dynamics (1881) =============== */
115 
116 #define DYN_SANDBAG_1_X 40
117 #define DYN_SANDBAG_1_Y 47
118 #define DYN_SANDBAG_1_X_SIZE 11
119 #define DYN_SANDBAG_1_Y_SIZE 17
120 
121 #define DYN_SANDBAG_2_X 98
122 #define DYN_SANDBAG_2_Y 14
123 #define DYN_SANDBAG_2_X_SIZE 5
124 #define DYN_SANDBAG_2_Y_SIZE 10
125 
126 #define DYN_SANDBAG_3_X 111
127 #define DYN_SANDBAG_3_Y 23
128 #define DYN_SANDBAG_3_X_SIZE 6
129 #define DYN_SANDBAG_3_Y_SIZE 9
130 
131 #define DYN_SANDBAG_4_X 119
132 #define DYN_SANDBAG_4_Y 12
133 #define DYN_SANDBAG_4_X_SIZE 5
134 #define DYN_SANDBAG_4_Y_SIZE 8
135 
136 
137 /* ========================= Floor dynamics (1881) ================= */
138 
139 #define DYN_FLOOR_1_X 80
140 #define DYN_FLOOR_1_Y 114
141 #define DYN_FLOOR_1_X_SIZE 24
142 #define DYN_FLOOR_1_Y_SIZE 4
143 #define DYN_FLOOR_1_WALK_TO_X 93
144 #define DYN_FLOOR_1_WALK_TO_Y 121
145 
146 #define DYN_FLOOR_2_X 106
147 #define DYN_FLOOR_2_Y 102
148 #define DYN_FLOOR_2_X_SIZE 5
149 #define DYN_FLOOR_2_Y_SIZE 10
150 #define DYN_FLOOR_2_WALK_TO_X 108
151 #define DYN_FLOOR_2_WALK_TO_Y 109
152 
153 
154 extern void room_106_init();
155 extern void room_106_daemon();
156 extern void room_106_pre_parser();
157 extern void room_106_parser();
158 extern void room_106_preload();
159 
160 } // namespace Rooms
161 } // namespace Phantom
162 } // namespace MADSV2
163 } // namespace MADS
164 
165 #endif
Definition: mps_installer.h:31