ScummVM API documentation
room108.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_ROOM108_H
23#define MADS_PHANTOM_ROOM108_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 anim_0_running;
43
44 int16 char_action; /* action Charles is going to perform */
45 int16 char_frame;
46 int16 char_talk_count;
47 int16 char_shut_up_count;
48 int16 dynamic_char; /* Dynamic HS for Charles */
49 int16 prev_shut_up_frame;
50 int16 max_talk_count; /* max talking count for Charles */
51 int16 did_raise_hand; /* true, when if talking, did raise hand */
52 int16 converse_counter; /* counter for talking displacements */
53
54};
55
56
57/* ========================= Sprite Series ========================= */
58
59#define fx_1993 0 /* rm108z */
60
61
62/* ========================= Conversation ========================== */
63
64#define CONV_CHARLES 2
65
66
67/* ========================= Charles (Conv 2) action states ======== */
68
69#define CONV2_CHAR_SHUT_UP 0
70#define CONV2_CHAR_TALK 1
71#define CONV2_CHAR_WRITE 2
72#define CONV2_CHAR_OH_MY 3
73#define CONV2_CHAR_POINT_UP 4
74#define CONV2_CHAR_BOTH_HANDS_UP 5
75#define CONV2_CHAR_TURN_TO_RAOUL 6
76#define CONV2_CHAR_POINT_RIGHT 7
77
78
79/* ========================= Triggers ============================== */
80
81#define ROOM_108_CHAR_TALK 60
82#define ROOM_108_CHAR_SHUT_UP 62
83#define ROOM_108_CHAR_WRITE 64
84#define ROOM_108_CHAR_BOTH_HANDS_UP 66
85#define ROOM_108_CHAR_POINT_UP 68
86#define ROOM_108_CHAR_POINT_RIGHT 70
87#define ROOM_108_CHAR_OH_MY 72
88
89
90/* ========================= Player positions ====================== */
91
92#define PLAYER_X_FROM_106 48
93#define PLAYER_Y_FROM_106 81
94
95#define WALK_TO_X_FROM_106 71
96#define WALK_TO_Y_FROM_106 76
97
98#define PLAYER_X_FROM_104_1 243
99#define PLAYER_X_FROM_104_2 185
100#define PLAYER_X_FROM_104_3 124
101#define PLAYER_Y_FROM_104 143
102
103
104/* ========================= Dynamic hotspot — stool (1993) ======== */
105
106#define STOOL_X 250
107#define STOOL_Y 68
108#define STOOL_X_SIZE 8
109#define STOOL_Y_SIZE 21
110#define STOOL_WALK_X 253
111#define STOOL_WALK_Y 75
112
113
114/* ========================= Dynamic hotspot — wall (1881) ========= */
115
116#define WALL_X 258
117#define WALL_Y 58
118#define WALL_X_SIZE 6
119#define WALL_Y_SIZE 10
120#define WALL_WALK_X 236
121#define WALL_WALK_Y 69
122
123
124/* ========================= Dynamic hotspot — Charles ============= */
125
126#define DYN_CHAR_X 253
127#define DYN_CHAR_Y 52
128#define DYN_CHAR_XS 15
129#define DYN_CHAR_YS 34
130#define DYN_CHAR_WALK_TO_X 235
131#define DYN_CHAR_WALK_TO_Y 102
132
133
134extern void room_108_init();
135extern void room_108_daemon();
136extern void room_108_parser();
137extern void room_108_preload();
138
139} // namespace Rooms
140} // namespace Phantom
141} // namespace MADS
142
143#endif