ScummVM API documentation
room101.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_ROOMS_101_H
23 #define MADS_PHANTOM_ROOMS_101_H
24 
25 #include "mads/madsv2/core/general.h"
26 
27 namespace MADS {
28 namespace MADSV2 {
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  int16 sprite[15]; /* Sprite series handles */
39  int16 sequence[15]; /* Sequence handles */
40  int16 animation[4]; /* Animation handles */
41  int16 brie_calling_position; /* Conv000 tells position of Brie */
42  int16 brie_chandelier_position; /* Conv000 tells position of Brie */
43  int16 brie_calling_frame; /* */
44  int16 brie_chandelier_frame; /* */
45  int16 talk_count; /* how many times Brie will talk in CONV000 */
46  int16 start_sitting_down; /* true if picture_view_x > 208 */
47  int16 dynamic_brie; /* for dynamic Brie */
48  int16 dynamic_brie_2; /* for dynamic Brie */
49  int16 execute_chan; /* if talk_count == this var, then motion to chandelier */
50  int16 execute_wipe; /* if talk_count == this var, then wipe forehead */
51  int16 start_walking; /* if true, start walking away (conv001) */
52  int16 start_walking_0; /* if true, start walking away (conv000) */
53 
54  int16 anim_0_running; /* T if aa[0] is running */
55  int16 anim_1_running; /* T if aa[1] is running */
56 
57  int16 converse_counter; /* counter for talking displacements */
58 };
59 
60 
61 /* ========================= Sprite Series =================== */
62 
63 #define fx_chandelier 0 /* rm101z */
64 
65 
66 /* ========================= Other Macros ==================== */
67 
68 #define PLAYER_X_FROM_102 625
69 #define PLAYER_Y_FROM_102 127
70 
71 #define PLAYER_X_FROM_202 18
72 #define PLAYER_Y_FROM_202 79
73 
74 #define RIGHT_HALF 320 /* for camera_jump_to */
75 #define LEFT_HALF 0 /* for camera_jump_to */
76 
77 #define CONV0_BRIE_ARMS_AT_SIDE 0
78 #define CONV0_BRIE_RAISING_ARMS 1
79 #define CONV0_BRIE_SHOULD_TALK 2 /* For conv000, Brie can do 2 different */
80 #define CONV0_BRIE_SHOULD_WALK 3 /* talk sequences, or turn an walk away */
81 
82 #define CONV1_BRIE_SHOULD_MOTION_CHAN 0
83 #define CONV1_BRIE_SHOULD_WALK 1
84 #define CONV1_BRIE_SHOULD_TALK 2
85 #define CONV1_BRIE_SHOULD_FREEZE_STAND 3
86 #define CONV1_BRIE_SHOULD_FREEZE_SIT 4
87 #define CONV1_BRIE_SHOULD_RAISE_HANDS 5
88 #define CONV1_BRIE_SHOULD_WIPE 6
89 
90 #define CONV_BRIE_MOTIONS_TO_RAOUL 0 /* CONV000 */
91 #define CONV_BRIE_BY_CHANDELIER 1 /* CONV001 */
92 
93 #define OFF_SCREEN_X_FROM_202 -20
94 #define OFF_SCREEN_Y_FROM_202 75
95 
96 #define OFF_SCREEN_X_FROM_102 655
97 #define OFF_SCREEN_Y_FROM_102 130
98 
99 #define DYNAMIC_BRIE_X 509
100 #define DYNAMIC_BRIE_Y 73
101 #define DYNAMIC_BRIE_X_SIZE 16
102 #define DYNAMIC_BRIE_Y_SIZE 39
103 #define DYNAMIC_BRIE_WALK_TO_X 490
104 #define DYNAMIC_BRIE_WALK_TO_Y 119
105 #define RESET -1
106 
107 #define DYN_BRIE_1_WALK_TO_X 25
108 #define DYN_BRIE_1_WALK_TO_Y 80
109 
110  /* ======================== Triggers ========================= */
111 
112 #define ROOM_101_START_CONV_MOTIONS 50 /* When this happens, CONV000 will start */
113 #define ROOM_101_START_CONV_CHAN 55 /* When this happens, CONV000 will start */
114 #define ROOM_101_BRIE_START_TALKING 60
115 #define ROOM_101_BRIE_STOP_TALKING 70
116 #define ROOM_101_BRIE_START_WALKING 80
117 #define ROOM_101_CONV0_MAKE_BRIE_WALK 90
118 
119 #define ROOM_101_NO_TALK_DISP 100
120 #define ROOM_101_STOP_CONVERSING 105
121 
122 } // namespace Rooms
123 } // namespace Phantom
124 } // namespace MADSV2
125 } // namespace MADS
126 
127 #endif
Definition: mps_installer.h:31