ScummVM API documentation
room303.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 M4_RIDDLE_ROOMS_SECTION3_ROOM303_H
23 #define M4_RIDDLE_ROOMS_SECTION3_ROOM303_H
24 
25 #include "m4/riddle/rooms/room.h"
26 
27 namespace M4 {
28 namespace Riddle {
29 namespace Rooms {
30 
31 class Room303 : public Room {
32 private:
33  bool _newExhibitsFlag = false;
34  bool _lonelyFlag = 0;
35  const char *_digiName1 = nullptr;
36  int _destTrigger = 0;
37  int _val5 = 0;
38  int _val6 = 0;
39  int _val7 = 0;
40  int _val8 = 0;
41  //int _val9 = 0;
42  int _val10 = 0;
43  int _val11 = 0;
44  KernelTriggerType _val12 = KT_DAEMON;
45  bool _fengFlag = false;
46  int _fengShould = 0;
47  int _fengMode = 0;
48  int _val16 = 0;
49  int _val17 = 0;
50  int _val18 = 0;
51  KernelTriggerType _triggerMode1 = KT_DAEMON;
52  KernelTriggerType _triggerMode2 = KT_DAEMON;
53  machine *_door = nullptr;
54  int _mei1 = 0;
55  int _mei2 = 0;
56  int _mei3 = 0;
57  machine *_mei = nullptr;
58  int _feng1 = 0;
59  int _feng2 = 0;
60  int _feng3 = 0;
61  int _feng4 = 0;
62  machine *_shadow4 = nullptr;
63  machine *_shadow5 = nullptr;
64  machine *_fengLi = nullptr;
65  machine *_machine2 = nullptr;
66  machine *_machine3 = nullptr;
67  machine *_ripPonders = nullptr;
68  int _gestTalk4 = 0;
69  int _ripBends = 0;
70  int _chinTalk4 = 0;
71  int _med1 = 0;
72  machine *_ripsh1 = nullptr;
73  machine *_ripsh2 = nullptr;
74  int _suit1 = 0;
75  int _suit2 = 0;
76  int _meiLips = 0;
77  int _ripGesture = 0;
78  machine *_priestTalk = nullptr;
79  int _suitTalk1 = 0;
80 
81  int _ctr1 = 0;
82  bool _btnFlag = false;
83 
84  static void escapePressed(void *, void *);
85 
86  void setupMei();
87  void loadFengLi();
88  void setFengActive(bool flag);
89  void setShadow4(bool active);
90  void setShadow5(bool active);
91  void setShadow5Alt(bool active);
92  void playSeries(bool cow = true);
93  void conv303a();
94  void conv303b();
95  static void priestTalkCallback(frac16 myMessage, machine *sender);
96  void priestTalk(bool flag, int trigger);
97  int getSize(const Common::String &assetName, int roomNum = -1);
98  void playSound(const Common::String &assetName, int trigger1, int trigger2);
99 
100 public:
101  Room303() : Room() {}
102  ~Room303() override {}
103 
104  void preload() override;
105  void init() override;
106  void daemon() override;
107  void pre_parser() override;
108  void parser() override;
109  void syncGame(Common::Serializer &s) override;
110 };
111 
112 } // namespace Rooms
113 } // namespace Riddle
114 } // namespace M4
115 
116 #endif
Definition: ws_machine.h:153
Definition: str.h:59
Definition: serializer.h:79
intptr frac16
Definition: m4_types.h:46
Definition: database.h:28
Definition: room.h:39
Definition: room303.h:31