ScummVM API documentation
room111.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_ROOM111_H
23#define MADS_PHANTOM_ROOM111_H
24
25#include "mads/phantom/rooms/section1.h"
26#include "mads/phantom/global.h"
27
28namespace MADS {
29namespace Phantom {
30namespace Rooms {
31
32#define local (&scratch)
33#define ss local->sprite
34#define seq local->sequence
35#define aa local->animation
36
37struct Scratch { /* Room local variables */
38
39 int16 sprite[15]; /* Sprite series handles */
40 int16 sequence[15]; /* Sequence handles */
41 int16 animation[4]; /* Animation handles */
42 int16 delete_axe; /* true if axe was deleted */
43 int16 anim_0_running;
44 int16 anim_1_running;
45 int16 listen_frame;
46 int16 listen_action;
47 int16 it_is_closed;
48
49};
50
51
52/* ========================= Sprite Series ========================= */
53
54#define fx_take_9 0 /* rdr_9 */
55#define fx_1993 1 /* rm111z */
56#define fx_axe 2 /* rm111a1 */
57#define fx_broken_axe 3 /* rm111a2 */
58#define fx_open_door 4 /* rm111a3 */
59#define fx_door 5 /* rm111x0 */
60
61
62/* ========================= Conversation ========================== */
63
64#define CONV_LISTEN 14
65#define CONV14_LISTEN 0
66#define CONV14_UN_LISTEN 1
67
68
69/* ========================= Triggers ============================== */
70
71#define ROOM_111_MADE_IT_OUT_DOOR 60
72#define ROOM_111_CLOSED_DOOR 62
73#define ROOM_111_AT_LISTEN_POINT 64
74#define ROOM_111_LISTEN 66
75#define ROOM_111_UN_LISTEN 68
76#define ROOM_111_DONE_LISTENING 70
77#define ROOM_111_NOTHING 72
78
79
80/* ========================= Player positions ====================== */
81
82#define PLAYER_X_FROM_113 112
83#define PLAYER_Y_FROM_113 126
84
85#define PLAYER_X_FROM_113_SAWDUST 146
86#define PLAYER_Y_FROM_113_SAWDUST 108
87
88#define PLAYER_X_FROM_109 311
89#define PLAYER_Y_FROM_109 150
90
91#define OFF_SCREEN_X_FROM_109 335
92#define OFF_SCREEN_Y_FROM_109 150
93
94#define LISTEN_X 119
95#define LISTEN_Y 124
96
97
98/* ========================= Door approach positions =============== */
99
100#define FRONT_RIGHT_DOOR_X 219
101#define FRONT_RIGHT_DOOR_Y 131
102
103#define FRONT_LEFT_DOOR_X 109
104#define FRONT_LEFT_DOOR_Y 124
105
106#define WALK_TO_X_INSIDE_112 145
107#define WALK_TO_Y_INSIDE_112 108
108
109#define AFTER_AXE_ANIM_X 126
110#define AFTER_AXE_ANIM_Y 126
111
112
113/* ========================= Wall dynamic hotspot ================== */
114
115#define WALL_X 35
116#define WALL_Y 82
117#define WALL_X_SIZE 13
118#define WALL_Y_SIZE 11
119
120#define WALL_WALK_X 78
121#define WALL_WALK_Y 122
122
123
124extern void room_111_init();
125extern void room_111_daemon();
126extern void room_111_pre_parser();
127extern void room_111_parser();
128extern void room_111_preload();
129
130} // namespace Rooms
131} // namespace Phantom
132} // namespace MADS
133
134#endif