ScummVM API documentation
room105.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_ROOM105_H
23 #define MADS_PHANTOM_ROOM105_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 column_prop; /* Dynamic HS for column_prop */
44 
45 };
46 
47 
48 /* ========================= Sprite Series ========================= */
49 
50 #define fx_lantern 0 /* rm105x0 */
51 #define fx_red_frame 1 /* rm105x1 */
52 #define fx_door 2 /* rm105x2 */
53 #define fx_1993 3 /* rm105z */
54 #define fx_thunder 4 /* rm105x3 */
55 #define fx_bend_down_9 5 /* rrd_9 */
56 #define fx_take_9 6 /* rdr_9 */
57 #define fx_climb_up 7 /* rm105a0 */
58 #define fx_climb_down 8 /* rm105a1 */
59 
60 
61 /* ========================= Triggers ============================== */
62 
63 #define ROOM_105_DOOR_CLOSES 60
64 #define ROOM_105_DOOR_OPENS 65
65 #define ROOM_105_DUN_THUNDER 70
66 #define ROOM_105_INIT_TEXT 75
67 
68 
69 /* ========================= Player positions ====================== */
70 
71 #define PLAYER_X_FROM_103 3
72 #define PLAYER_Y_FROM_103 112
73 
74 #define PLAYER_X_FROM_STAIRCASE 198
75 #define PLAYER_Y_FROM_STAIRCASE 132
76 
77 #define WALK_TO_X_FROM_103 45
78 #define WALK_TO_Y_FROM_103 131
79 
80 #define WALK_TO_X_OPEN_DOOR 0
81 #define WALK_TO_Y_OPEN_DOOR 111
82 
83 #define FRONT_OF_DOOR_X 33
84 #define FRONT_OF_DOOR_Y 128
85 
86 #define WALK_TO_STAIRS_X 207
87 #define WALK_TO_STAIRS_Y 131
88 
89 
90 /* ========================= Dynamic hotspot coords — props ======== */
91 
92 #define PROP_1_X 0
93 #define PROP_1_Y 125
94 #define PROP_2_X 29
95 #define PROP_2_Y 136
96 #define PROP_3_X 79
97 #define PROP_3_Y 141
98 
99 #define PROP_1_X_SIZE 29
100 #define PROP_1_Y_SIZE 31
101 #define PROP_2_X_SIZE 50
102 #define PROP_2_Y_SIZE 20
103 #define PROP_3_X_SIZE 53
104 #define PROP_3_Y_SIZE 15
105 
106 
107 /* ========================= Dynamic hotspot coords — bear ========= */
108 
109 #define BEAR_1_X 278
110 #define BEAR_1_Y 132
111 #define BEAR_2_X 299
112 #define BEAR_2_Y 146
113 #define BEAR_3_X 269
114 #define BEAR_3_Y 142
115 
116 #define BEAR_1_X_SIZE 21
117 #define BEAR_1_Y_SIZE 24
118 #define BEAR_2_X_SIZE 8
119 #define BEAR_2_Y_SIZE 10
120 #define BEAR_3_X_SIZE 8
121 #define BEAR_3_Y_SIZE 8
122 
123 
124 /* ========================= Dynamic hotspot coords — light ======== */
125 
126 #define LIGHT_X 102
127 #define LIGHT_Y 14
128 #define LIGHT_X_SIZE 24
129 #define LIGHT_Y_SIZE 10
130 
131 
132 /* ========================= Dynamic hotspot coords — columns ====== */
133 
134 #define COLUMN_1_X 132
135 #define COLUMN_1_Y 24
136 #define COLUMN_2_X 56
137 #define COLUMN_2_Y 45
138 
139 #define COLUMN_1_X_SIZE 21
140 #define COLUMN_1_Y_SIZE 105
141 #define COLUMN_2_X_SIZE 11
142 #define COLUMN_2_Y_SIZE 77
143 
144 #define WALK_TO_COLUMN_1_X 159
145 #define WALK_TO_COLUMN_1_Y 133
146 #define WALK_TO_COLUMN_2_X 72
147 #define WALK_TO_COLUMN_2_Y 126
148 
149 
150 extern void room_105_init();
151 extern void room_105_daemon();
152 extern void room_105_pre_parser();
153 extern void room_105_parser();
154 extern void room_105_preload();
155 
156 } // namespace Rooms
157 } // namespace Phantom
158 } // namespace MADSV2
159 } // namespace MADS
160 
161 #endif
Definition: mps_installer.h:31