ScummVM API documentation
room203.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_ROOM203_H
23 #define MADS_PHANTOM_ROOM203_H
24 
25 #include "mads/madsv2/phantom/rooms/section2.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 
44  int16 brie_action;
45  int16 brie_frame;
46  int16 brie_talk_count;
47 
48  int16 raoul_action;
49  int16 raoul_frame;
50  int16 raoul_talk_count;
51 
52  int16 rich_action;
53  int16 rich_frame;
54  int16 rich_talk_count;
55 
56  int16 daae_action;
57  int16 daae_frame;
58  int16 daae_talk_count;
59 
60  int16 anim_0_running;
61  int16 anim_1_running;
62  int16 anim_2_running;
63  int16 anim_3_running;
64  int16 show_note;
65  int16 converse_counter;
66 
67 };
68 
69 
70 /* ========================= Sprite Series ========================= */
71 
72 #define fx_1993 0 /* rm203z */
73 #define fx_parchment 1 /* rm203p1 */
74 #define fx_parchment_2 2 /* rm203p1 (second stamp slot) */
75 #define fx_letter 3 /* rm203p0 */
76 #define fx_take_6 4 /* rdr_6 */
77 #define fx_door 5 /* rm203x0 */
78 
79 
80 /* ========================= Conversations ========================= */
81 
82 #define CONV_BRIE_5 5
83 #define CONV_RICH_8 8
84 #define CONV_RD_15 15
85 
86 /* Conv 5 — Brie action states */
87 #define CONV5_BRIE_TALK 0
88 #define CONV5_BRIE_TALK_HANDS_UP 1
89 #define CONV5_BRIE_POINT 2
90 #define CONV5_BRIE_NOD 3
91 #define CONV5_BRIE_SHUT_UP 4
92 
93 /* Conv 8 — Rich action states (also shared by Conv 15) */
94 #define CONV8_RICH_TALK 0
95 #define CONV8_RICH_LEFT_UP_DONT_KNOW 1
96 #define CONV8_RICH_POINT 2
97 #define CONV8_RICH_BOTH_UP 3
98 #define CONV8_RICH_SHUT_UP 4
99 #define CONV15_RICH_STAND_TALK 5
100 #define CONV15_RICH_SIT_DOWN 6
101 #define CONV15_RICH_STAND_SHUT_UP 7
102 
103 /* Conv 5 — Raoul action states */
104 #define CONV5_RAOUL_SHUT_UP 0
105 #define CONV5_RAOUL_TALK 1
106 #define CONV5_RAOUL_GET_UP 2
107 #define CONV5_RAOUL_TAKE 3
108 #define CONV5_RAOUL_TAKE_TRAY 4
109 #define CONV5_RAOUL_SHOW 5
110 
111 /* Conv 15 — Daae action states */
112 #define CONV15_DAAE_SHUT_UP 0
113 #define CONV15_DAAE_TALK_RICH 1
114 #define CONV15_DAAE_TALK_RAOUL 2
115 #define CONV15_DAAE_LEAVE 3
116 
117 
118 /* ========================= Triggers ============================== */
119 
120 #define ROOM_203_BRIE_START_TALKING 60
121 #define ROOM_203_RAOUL_START_TALKING 65
122 #define ROOM_203_GET_UP 70
123 #define ROOM_203_TAKE_NOTE 74
124 #define ROOM_203_BRIE_TALK_HANDS_UP 76
125 #define ROOM_203_BRIE_POINT 78
126 #define ROOM_203_RICH_POINT 81
127 #define ROOM_203_RICH_LEFT_UP_DONT_KNOW 83
128 #define ROOM_203_RICH_BOTH_UP 85
129 #define ROOM_203_DOOR_OPENS 90
130 #define ROOM_203_DOOR_CLOSES 95
131 #define ROOM_203_RICH_START_TALKING 100
132 #define ROOM_203_DAAE_START_TALKING 105
133 #define ROOM_203_AFTER_SCREAM 110
134 #define ROOM_203_END 115
135 
136 
137 /* ========================= Player positions ====================== */
138 
139 #define PLAYER_X_FROM_202 195
140 #define PLAYER_Y_FROM_202 147
141 
142 #define PLAYER_X_FROM_113 98
143 #define PLAYER_Y_FROM_113 137
144 
145 #define PLAYER_X_FROM_204 292
146 #define PLAYER_Y_FROM_204 119
147 
148 #define WALK_TO_X_FROM_204 276
149 #define WALK_TO_Y_FROM_204 123
150 
151 #define WALK_TO_X_BEHIND_DOOR 319
152 #define WALK_TO_Y_BEHIND_DOOR 123
153 
154 
155 /* ========================= Misc positions ======================== */
156 
157 #define FRONT_CHAIR_X 154
158 #define FRONT_CHAIR_Y 131
159 
160 #define DOOR_X 276
161 #define DOOR_Y 123
162 
163 
164 extern void room_203_init();
165 extern void room_203_daemon();
166 extern void room_203_pre_parser();
167 extern void room_203_parser();
168 extern void room_203_preload();
169 
170 } // namespace Rooms
171 } // namespace Phantom
172 } // namespace MADSV2
173 } // namespace MADS
174 
175 #endif
Definition: mps_installer.h:31