ScummVM API documentation
room206.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_ROOM206_H
23#define MADS_PHANTOM_ROOM206_H
24
25#include "mads/phantom/phantom.h"
26
27namespace MADS {
28namespace Phantom {
29namespace Rooms {
30
31/* ---- Scratch (room-local variables) ---- */
32
33struct Scratch {
34 int16 sprite[15]; // Sprite series handles
35 int16 sequence[15]; // Sequence handles
36 int16 animation[4]; // Animation handles
37 int16 anim_0_running;
38 int16 prevent;
39 int16 prevent_2;
40};
41
42#define local (&scratch)
43#define ss local->sprite
44#define seq local->sequence
45#define aa local->animation
46
47/* ---- Sprite series indices ---- */
48
49#define fx_trap_door 0 /* rm206x0 */
50#define fx_panel_closes 1 /* rm206x1 */
51#define fx_panel_appears 2 /* rm206x2 */
52#define fx_panel_opens 3 /* rm206x3 */
53#define fx_note 4 /* rm206p0 */
54#define fx_take_9 5 /* *RDR_9 */
55
56/* ---- Conversation ---- */
57
58#define CONV_MISC 26
59
60/* ---- Trigger constants ---- */
61
62#define ROOM_206_DOOR_CLOSES 60
63#define ROOM_206_SCREW_WITH_PANEL 64
64#define ROOM_206_ENTER_PANEL 70
65#define ROOM_206_TAKE_NOTE 77
66#define ROOM_206_FROM_308 82
67#define ROOM_206_HIT_ON_HEAD 88
68#define ROOM_206_KNOCK 95
69
70/* ---- Player / world positions ---- */
71
72#define PLAYER_X_FROM_205 153
73#define PLAYER_Y_FROM_205 148
74
75#define PANEL_X 108
76#define PANEL_Y 137
77
78#define BEHIND_PANEL_X 60
79#define BEHIND_PANEL_Y 127
80
81#define HIT_HEAD_X 168
82#define HIT_HEAD_Y 138
83
84/* ---- Entry points ---- */
85
86void room_206_preload();
87void room_206_init();
88void room_206_daemon();
89void room_206_pre_parser();
90void room_206_parser();
91
92} // namespace Rooms
93} // namespace Phantom
94} // namespace MADS
95
96#endif