Files
2026-02-02 04:50:13 +01:00

270 lines
6.8 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_SECTION4_ROOM407_H
#define M4_RIDDLE_ROOMS_SECTION4_ROOM407_H
#include "m4/riddle/rooms/room.h"
namespace M4 {
namespace Riddle {
namespace Rooms {
class Room407 : public Room {
private:
int _val1 = 0;
int _val2 = 0;
int _valveState2 = 0;
int _valveState1 = 0;
int _drawerState = 0;
int _val6 = 0;
int _val7 = 0;
int _faucetPipeState = 0;
int _airValveState = 0;
int _leverKeyState = 0;
int _rodState = 0;
int _hoseState = 0;
int _tubeState = 0;
int _pumpState = 0;
int _stopperState = 0;
int _periodicTableState = 0;
int _xyzzy7 = 0;
int _items2State = 0;
int _corkState = 0;
int _xyzzy10 = 0;
int _faucetHookedToJar = 0;
int _frotz2 = 0;
int _frotz3 = 0;
int _frotz4 = 0;
int _frotz5 = 0;
int _frotz6 = 0;
int _frotz7 = 0;
int _frotz8 = 0;
int _lookedAtLever = 0;
int _tabletopState = 0;
int _pivotState = 0;
int _fullGlassState = 0;
int _glassTopState = 0;
int _glassBottomState = 0;
int _roofPistonState = 0;
int _glassGoneState = 0;
int _comboLockState = 0;
int _buttonFrame1 = 0;
int _buttonFrame2 = 0;
int _buttonFrame3 = 0;
int _buttonFrame4 = 0;
bool _codeCorrect = false;
int _val11 = 0;
int _val15 = 0;
int _val16 = 0;
int _waterFlowTube = 0;
int _waterFlowFaucet = 0;
int _waterFlowStem = 0;
machine *_bottle = nullptr;
machine *_chart = nullptr;
machine *_cpist = nullptr;
machine *_drawer = nullptr;
machine *_escape = nullptr;
machine *_faucetPipe = nullptr;
machine *_airValve = nullptr;
machine *_lever = nullptr;
machine *_niche = nullptr;
machine *_tpist = nullptr;
machine *_pump = nullptr;
machine *_bits = nullptr;
machine *_star2 = nullptr;
machine *_gears = nullptr;
machine *_letter = nullptr;
int _ripMedReach = 0;
machine *_drawerPopup = nullptr;
machine *_drawerPopupHose = nullptr;
machine *_stopperInDrawer = nullptr;
machine *_tubeInDrawer = nullptr;
machine *_grips = nullptr;
machine *_tabletopPopup = nullptr;
machine *_tabletopPopupWithItems1 = nullptr;
machine *_tabletopPopupWithItems2 = nullptr;
machine *_tabletopPopupWithItems3 = nullptr;
machine *_pivotPopup = nullptr;
machine *_glassJarPopup = nullptr;
machine *_glassTopPopupWithItems1 = nullptr;
machine *_glassTopPopupWithItems2 = nullptr;
machine *_glassBottomWithItems1 = nullptr;
machine *_glassBottomWithItems2 = nullptr;
machine *_roofPiston = nullptr;
machine *_roofPistonWithItems = nullptr;
machine *_glassGone = nullptr;
machine *_comboLockPopup = nullptr;
int _407pu08a = 0;
int _407pu08b = 0;
int _407pu08c = 0;
int _407pu08d = 0;
machine *_lockButton1 = nullptr;
machine *_lockButton2 = nullptr;
machine *_lockButton3 = nullptr;
machine *_lockButton4 = nullptr;
int _ripEnters = 0;
int _stair = 0;
machine *_ripley = nullptr;
machine *_microscopeCloseup = nullptr;
int _ripHiHand1 = 0;
int _ripHiHand2 = 0;
int _ripMedHand1 = 0;
int _ripLowHand1 = 0;
int _placeLeverKey = 0;
machine *_safariShadow = nullptr;
int _rollStuff = 0;
int _407rp98 = 0;
int _407rp99 = 0;
int _pump407 = 0;
int _hangRip = 0;
int _rptmhr11 = 0;
int _407tpis2 = 0;
int _ripHeadTurn = 0;
int _jarWaterFallingLeft = 0;
int _jarWaterFallingCentre = 0;
int _jarWaterFallingRight = 0;
machine *_jarLeft = nullptr;
machine *_jarCentre = nullptr;
machine *_jarRight = nullptr;
machine *_sink = nullptr;
int _407a = 0;
int _407b = 0;
int _407c = 0;
int _407d = 0;
int _407e = 0;
int _407h = 0;
int _407j = 0;
int _407k = 0;
int _407l = 0;
int _407m = 0;
int _407o = 0;
int _407p = 0;
int _407q = 0;
int _407r = 0;
int _407s = 0;
int _exit = 0;
void setHotspots();
void lookItem(const char *item, const char *digi);
void useMicroscope();
void roofPistonPopup();
void glassBottomPopup();
void glassTopPopup();
void glassGonePopup();
void pivotPopup();
void tabletopPopup();
bool lookGlassJar();
void glassJarPopup();
bool lookEmeraldCork();
void periodicTablePopup();
bool lookLeverKey();
void gardenHoseSurgicalTube();
void gardenHoseSurgicalTube2();
void surgicalTubeFaucetPipe();
void surgicalTubeStem();
void reachHand(int frame);
void reachLeverKey();
void faucetPipeGardenHose();
void faucetPipeGlassJar();
void gardenHoseFaucetPipe();
void surgicalTubeGardenHose();
void emeraldIronSupport();
void placeLeverKey();
void rubberPlugGlassJar();
void rubberPlugGlassJar2();
void corkGlassJar1();
void corkGlassJar2();
void pumpGripsGlassJar();
void periodicTableGlassJar();
void surgicalTubeNozzles();
void leverKeyTablePivot();
void pumpRodBracket();
void leverKey1();
void leverKey2();
void faucetHandleAirValve();
void faucetPipeFaucetHandle1();
void faucetPipeFaucetHandle2();
void pumpRodPump();
void pumpGripsPump();
void useButton1();
void useButton2();
void useButton3();
void useButton4();
void checkCode();
void useButtons();
void useLeverKey();
void useFaucet();
void useValveHandle();
bool usePump();
void usePump2();
void takeLetter();
void takeFaucetPipe1();
void takeFaucetPipe2();
void takeFaucetPipe3();
void takeSurgicalTube1();
void takeSurgicalTube2();
void takeSurgicalTube3();
void takeGardenHose1();
void takeGardenHose2();
void takeGardenHose3();
void takeGardenHose4();
void takeGlassJar1();
void takeGlassJar2();
void takePeriodicTable1();
void takePeriodicTable2();
void takeJarGrips();
void takeJarCork1();
void takeJarCork2();
void takeJarRubberPlug1();
void takeJarRubberPlug2();
void takeNozzlesTube();
void takeLeverKeyFromWall();
void takeLeverKeyFromBench();
void takeLeverKey3();
void takeAirValveHandle();
void takeFaucetHandle();
void takePumpRod1();
void takePumpRod2();
void takePumpRod3();
void takePumpGrips1();
void takePumpGrips2();
void takeRubberPlug();
void takeSurgicalTube();
public:
Room407() : Room() {}
~Room407() 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