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
28
namespace
MADS {
29
namespace
Phantom {
30
namespace
Rooms {
31
32
#define local (&scratch)
33
#define ss local->sprite
34
#define seq local->sequence
35
#define aa local->animation
36
37
struct
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
134
extern
void
room_108_init();
135
extern
void
room_108_daemon();
136
extern
void
room_108_parser();
137
extern
void
room_108_preload();
138
139
}
// namespace Rooms
140
}
// namespace Phantom
141
}
// namespace MADS
142
143
#endif
engines
mads
phantom
rooms
room108.h
Generated on Sun Oct 25 2026 09:21:52 for ScummVM API documentation by
1.9.4