Files
scummvm-cursorfix/engines/m4/riddle/rooms/section3/room303.h
2026-02-02 04:50:13 +01:00

116 lines
3.0 KiB
C++

/* ScummVM - Graphic Adventure Engine
*
* ScummVM is the legal property of its developers, whose names
* are too numerous to list here. Please refer to the COPYRIGHT
* file distributed with this source distribution.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
#ifndef M4_RIDDLE_ROOMS_SECTION3_ROOM303_H
#define M4_RIDDLE_ROOMS_SECTION3_ROOM303_H
#include "m4/riddle/rooms/room.h"
namespace M4 {
namespace Riddle {
namespace Rooms {
class Room303 : public Room {
private:
bool _newExhibitsFlag = false;
bool _lonelyFlag = 0;
const char *_digiName1 = nullptr;
int _destTrigger = 0;
int _val5 = 0;
int _val6 = 0;
bool _meiLipsFlag = false;
int _val8 = 0;
//int _val9 = 0;
int _meiMode = 0;
int _meiShould = 0;
KernelTriggerType _val12 = KT_DAEMON;
bool _fengFlag = false;
int _fengMode = 0;
int _fengShould = 0;
int _ripleyShould = 0;
int _ripleyMode = 0;
int _val18 = 0;
KernelTriggerType _triggerMode1 = KT_DAEMON;
KernelTriggerType _triggerMode2 = KT_DAEMON;
machine *_door = nullptr;
int _mei1 = 0;
int _mei2 = 0;
int _mei3 = 0;
machine *_mei = nullptr;
int _feng1 = 0;
int _feng2 = 0;
int _feng3 = 0;
int _feng4 = 0;
machine *_shadow4 = nullptr;
machine *_shadow5 = nullptr;
machine *_fengLi = nullptr;
machine *_machine2 = nullptr;
machine *_ripley = nullptr;
machine *_ripPonders = nullptr;
int _gestTalk4 = 0;
int _ripBends = 0;
int _chinTalk4 = 0;
int _med1 = 0;
machine *_ripsh1 = nullptr;
machine *_ripsh2 = nullptr;
int _suit1 = 0;
int _suit2 = 0;
int _meiLips = 0;
int _ripGesture = 0;
machine *_priestTalk = nullptr;
int _suitTalk1 = 0;
int _ctr1 = 0;
static void escapePressed(void *, void *);
void setupMei();
void loadFengLi();
void setFengActive(bool flag);
void setShadow4(bool active);
void setShadow5(bool active);
void setShadow5Alt(bool active);
void playSeries(bool cow = true);
void conv303a();
void conv303b();
static void priestTalkCallback(frac16 myMessage, machine *sender);
void priestTalk(bool flag, int trigger);
int getSize(const Common::String &assetName, int roomNum = -1);
void playSound(const Common::String &assetName, int trigger1, int trigger2);
public:
Room303() : Room() {}
~Room303() override {}
void preload() override;
void init() override;
void daemon() override;
void pre_parser() override;
void parser() override;
void syncGame(Common::Serializer &s) override;
};
} // namespace Rooms
} // namespace Riddle
} // namespace M4
#endif