Initial commit
This commit is contained in:
1844
engines/m4/riddle/rooms/section2/room201.cpp
Normal file
1844
engines/m4/riddle/rooms/section2/room201.cpp
Normal file
File diff suppressed because it is too large
Load Diff
122
engines/m4/riddle/rooms/section2/room201.h
Normal file
122
engines/m4/riddle/rooms/section2/room201.h
Normal file
@@ -0,0 +1,122 @@
|
||||
/* 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_SECTION2_ROOM201_H
|
||||
#define M4_RIDDLE_ROOMS_SECTION2_ROOM201_H
|
||||
|
||||
#include "m4/riddle/rooms/section2/section2_room.h"
|
||||
|
||||
namespace M4 {
|
||||
namespace Riddle {
|
||||
namespace Rooms {
|
||||
|
||||
class Room201 : public Section2Room {
|
||||
private:
|
||||
bool _flag1 = false;
|
||||
bool _flag2 = false;
|
||||
bool _flag3 = false;
|
||||
int32 _travelDest = 0;
|
||||
int _val1 = 0;
|
||||
int32 _givenYuan = 0;
|
||||
const char *_itemDigi = nullptr;
|
||||
const char *_itemDigi2 = nullptr;
|
||||
const char *_itemDigi3 = nullptr;
|
||||
const char *_itemDigi4 = nullptr;
|
||||
const char *_itemDigi5 = nullptr;
|
||||
int _val4 = 0;
|
||||
int _meiMode = 0;
|
||||
int _meiShould = 0;
|
||||
int _val8 = 0;
|
||||
int _val9 = 0;
|
||||
int _agentShould = 0;
|
||||
int _ripleyShould = 0;
|
||||
int _nod = 0;
|
||||
int _guyWriting = 0;
|
||||
int _guyParcel = 0;
|
||||
int _guyPassForm = 0;
|
||||
int _guyBow = 0;
|
||||
int _guySeries1 = 0;
|
||||
int _series1 = -1;
|
||||
int _series2 = -2;
|
||||
int _series3 = -1;
|
||||
int _series4 = -1;
|
||||
int _series5 = -1;
|
||||
int _series6 = -2;
|
||||
int _series7 = -1;
|
||||
int _series8 = -1;
|
||||
machine *_mei0 = nullptr;
|
||||
machine *_mei1 = nullptr;
|
||||
machine *_mei2 = nullptr;
|
||||
machine *_ripley = nullptr;
|
||||
machine *_doc = nullptr;
|
||||
machine *_shadow3 = nullptr;
|
||||
machine *_agent = nullptr;
|
||||
int _meiHandHip = 0;
|
||||
int _meiTalker = 0;
|
||||
int _meiWalk = 0;
|
||||
int _meiHeadTurn = 0;
|
||||
int _meiTalkLoop = 0;
|
||||
int _ripHandChin = -1;
|
||||
int _ripTalk = -1;
|
||||
int _ripleyMode = 0;
|
||||
int _num2 = 0;
|
||||
int _agentMode = 0;
|
||||
int _trigger1 = -1;
|
||||
int _trigger2 = -1;
|
||||
int _trigger3 = -1;
|
||||
int _trigger4 = -1;
|
||||
int _trigger5 = -1;
|
||||
int _trigger6 = -1;
|
||||
int _trigger7 = -1;
|
||||
int _trigger8 = -1;
|
||||
int _trigger9 = -1;
|
||||
int _trigger10 = -1;
|
||||
int _trigger11 = -1;
|
||||
int _trigger12 = -1;
|
||||
int _items[12];
|
||||
int32 _itemFlags[12];
|
||||
int _totalItems = 0;
|
||||
int32 _hasKeyItems = 0;
|
||||
|
||||
int _ctr1 = 0;
|
||||
int _ctr2 = 0;
|
||||
|
||||
void setupMei();
|
||||
void conv201a();
|
||||
void animateRipley();
|
||||
void checkFlags();
|
||||
bool buildKeyItemsArray();
|
||||
|
||||
public:
|
||||
Room201();
|
||||
~Room201() override {}
|
||||
|
||||
void preload() override;
|
||||
void init() override;
|
||||
void daemon() override;
|
||||
void parser() override;
|
||||
};
|
||||
|
||||
} // namespace Rooms
|
||||
} // namespace Riddle
|
||||
} // namespace M4
|
||||
|
||||
#endif
|
||||
151
engines/m4/riddle/rooms/section2/room202.cpp
Normal file
151
engines/m4/riddle/rooms/section2/room202.cpp
Normal file
@@ -0,0 +1,151 @@
|
||||
/* 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/ },.
|
||||
*
|
||||
*/
|
||||
|
||||
#include "m4/riddle/rooms/section2/room202.h"
|
||||
#include "m4/graphics/gr_series.h"
|
||||
#include "m4/riddle/vars.h"
|
||||
|
||||
namespace M4 {
|
||||
namespace Riddle {
|
||||
namespace Rooms {
|
||||
|
||||
static const char *SAID[][2] = {
|
||||
{ "rope and hook", "202r10" },
|
||||
{ "lantern", "202r11" },
|
||||
{ "shovel", "202r12" },
|
||||
{ "bunch of keys", "202r13" },
|
||||
{ "map", "202r14" },
|
||||
{ "axe", "202r15" },
|
||||
{ "gong", "202r20" },
|
||||
{ "note", "202r24" },
|
||||
{ "wooden box", "202r22" },
|
||||
{ nullptr, nullptr }
|
||||
};
|
||||
|
||||
|
||||
void Room202::preload() {
|
||||
_G(player).walker_in_this_scene = false;
|
||||
}
|
||||
|
||||
void Room202::init() {
|
||||
_G(player).disable_hyperwalk = true;
|
||||
_G(player).walker_in_this_scene = false;
|
||||
|
||||
if (_G(flags)[V068] == 1 && _G(flags)[V065] <= 5) {
|
||||
_G(flags)[V068] = 0;
|
||||
_G(flags)[V065]++;
|
||||
}
|
||||
|
||||
digi_preload("950_s02");
|
||||
digi_preload("950_s03");
|
||||
digi_preload("950_s04");
|
||||
player_set_commands_allowed(true);
|
||||
digi_play("950_s02", 2, 30);
|
||||
kernel_timing_trigger(1500, 105);
|
||||
|
||||
if (_G(flags)[V065] >= 1)
|
||||
series_show_sprite("202 FIRST NASTY SIGN", 0, 0x400);
|
||||
if (_G(flags)[V065] >= 2)
|
||||
series_show_sprite("202 SECOND NASTY SIGN", 0, 0x400);
|
||||
if (_G(flags)[V065] >= 3)
|
||||
series_show_sprite("202 THIRD NASTY SIGN", 0, 0x400);
|
||||
if (_G(flags)[V065] >= 4)
|
||||
series_show_sprite("202 FORTH NASTY SIGN", 0, 0x400);
|
||||
if (_G(flags)[V065] >= 5)
|
||||
series_show_sprite("202 FIFTH NASTY SIGN", 0, 0x400);
|
||||
}
|
||||
|
||||
void Room202::daemon() {
|
||||
if (_G(kernel).trigger == 105) {
|
||||
switch (imath_ranged_rand(1, 3)) {
|
||||
case 1:
|
||||
digi_play("950_s02", 2, 30);
|
||||
kernel_timing_trigger(1500, 105);
|
||||
break;
|
||||
case 2:
|
||||
digi_play("950_s03", 2, 30);
|
||||
kernel_timing_trigger(1020, 105);
|
||||
break;
|
||||
case 3:
|
||||
digi_play("950_s04", 2, 30);
|
||||
kernel_timing_trigger(540, 105);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void Room202::pre_parser() {
|
||||
_G(player).resetWalk();
|
||||
}
|
||||
|
||||
void Room202::parser() {
|
||||
const bool lookFlag = player_said_any("look", "look at");
|
||||
const bool takeFlag = player_said("take");
|
||||
const bool useFlag = player_said_any("push", "pull", "gear", "open", "close");
|
||||
|
||||
if (lookFlag && player_said("TRADER'S STALL") && _G(flags)[V065] == 1) {
|
||||
digi_play("202r01", 1);
|
||||
} else if (lookFlag && player_said("TRADER'S STALL") && _G(flags)[V065] == 2) {
|
||||
digi_play("202r02", 1);
|
||||
} else if (lookFlag && player_said("TRADER'S STALL") && _G(flags)[V065] == 3) {
|
||||
digi_play("202r03", 1);
|
||||
} else if (lookFlag && player_said("TRADER'S STALL") && _G(flags)[V065] == 4) {
|
||||
digi_play("202r04", 1);
|
||||
} else if (lookFlag && player_said("TRADER'S STALL") && _G(flags)[V065] == 5) {
|
||||
digi_play("202r05", 1);
|
||||
} else if (useFlag && player_said("WOODEN BOX")) {
|
||||
digi_play("202r23", 1);
|
||||
} else if (takeFlag && player_said_any("WOODEN BOX", "GONG")) {
|
||||
digi_play("202r21", 1);
|
||||
} else if (takeFlag && player_said("NOTE")) {
|
||||
digi_play("202r27", 1);
|
||||
} else if (player_said("GONG") && inv_player_has(_G(player).verb) &&
|
||||
player_said_any("SEVEN SPOKES", "SOLDIER'S HELMET", "BUCKET", "LEAD PIPE")) {
|
||||
digi_play("202_S01", 1);
|
||||
} else if (player_said("GEAR", "GONG")) {
|
||||
digi_play("202_S01", 1);
|
||||
} else if (takeFlag) {
|
||||
digi_play("202r09", 1);
|
||||
} else if (player_said("GEAR")) {
|
||||
digi_play("202r09", 1);
|
||||
} else if (player_said("exit") && _G(kernel).trigger == -1) {
|
||||
player_set_commands_allowed(false);
|
||||
disable_player_commands_and_fade_init(1);
|
||||
} else if (player_said("exit") && _G(kernel).trigger == 1) {
|
||||
digi_stop(2);
|
||||
interface_show();
|
||||
_G(game).setRoom(203);
|
||||
} else if (lookFlag && _G(walker).ripley_said(SAID)) {
|
||||
// No implementation
|
||||
} else if (player_said("journal") && !lookFlag) {
|
||||
digi_play("202r16", 1);
|
||||
} else {
|
||||
return;
|
||||
}
|
||||
|
||||
_G(player).command_ready = false;
|
||||
}
|
||||
|
||||
} // namespace Rooms
|
||||
} // namespace Riddle
|
||||
} // namespace M4
|
||||
47
engines/m4/riddle/rooms/section2/room202.h
Normal file
47
engines/m4/riddle/rooms/section2/room202.h
Normal file
@@ -0,0 +1,47 @@
|
||||
/* 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_SECTION2_ROOM202_H
|
||||
#define M4_RIDDLE_ROOMS_SECTION2_ROOM202_H
|
||||
|
||||
#include "m4/riddle/rooms/room.h"
|
||||
|
||||
namespace M4 {
|
||||
namespace Riddle {
|
||||
namespace Rooms {
|
||||
|
||||
class Room202 : public Room {
|
||||
public:
|
||||
Room202() : Room() {}
|
||||
~Room202() override {}
|
||||
|
||||
void preload() override;
|
||||
void init() override;
|
||||
void daemon() override;
|
||||
void pre_parser() override;
|
||||
void parser() override;
|
||||
};
|
||||
|
||||
} // namespace Rooms
|
||||
} // namespace Riddle
|
||||
} // namespace M4
|
||||
|
||||
#endif
|
||||
3530
engines/m4/riddle/rooms/section2/room203.cpp
Normal file
3530
engines/m4/riddle/rooms/section2/room203.cpp
Normal file
File diff suppressed because it is too large
Load Diff
174
engines/m4/riddle/rooms/section2/room203.h
Normal file
174
engines/m4/riddle/rooms/section2/room203.h
Normal file
@@ -0,0 +1,174 @@
|
||||
/* 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_SECTION2_ROOM203_H
|
||||
#define M4_RIDDLE_ROOMS_SECTION2_ROOM203_H
|
||||
|
||||
#include "m4/riddle/rooms/section2/section2_room.h"
|
||||
|
||||
namespace M4 {
|
||||
namespace Riddle {
|
||||
namespace Rooms {
|
||||
|
||||
class Room203 : public Section2Room {
|
||||
private:
|
||||
int _val1 = 0;
|
||||
int _val4 = 0;
|
||||
int _val5 = 0;
|
||||
int _val6 = 0;
|
||||
int _val8 = 0;
|
||||
bool _showWalker = false;
|
||||
bool _ripley80000 = false;
|
||||
//int _val11 = 0;
|
||||
const char *_digiName1 = nullptr;
|
||||
int _digiTrigger1 = 0;
|
||||
Common::String _digiName2;
|
||||
const char *_digiName3 = nullptr;
|
||||
int _digiTrigger3 = -1;
|
||||
int _trigger1 = -1;
|
||||
int _trigger2 = -1;
|
||||
int _trigger3 = -1;
|
||||
int _trigger4 = -1;
|
||||
int _trigger5 = -1;
|
||||
int _shadow3 = 0;
|
||||
machine *_ripley = nullptr;
|
||||
machine *_ripsh1 = nullptr;
|
||||
machine *_stream1 = nullptr;
|
||||
int _ripHeadTurn = 0;
|
||||
int _ripLooksAtHeads = 0;
|
||||
int _ripYouSeeToIt = 0;
|
||||
int _ripLookAtHeadsTalkMei = 0;
|
||||
int _ripKneeling = 0;
|
||||
int _ripKneelingTalk = 0;
|
||||
int _ripGivesPhoto = 0;
|
||||
int _ripClimbsAndBacksDown = 0;
|
||||
int _ripPointsAtHelmet = 0;
|
||||
int _ripHandsBehBack = 0;
|
||||
int _ripHandTalk = 0;
|
||||
int _ripTalker = 0;
|
||||
int _ripArmsX = 0;
|
||||
int _ripHeadDownTalkOff = 0;
|
||||
int _ripLookDown = 0;
|
||||
int _ripTugsAtCollar = 0;
|
||||
int _ripLooksThroughHole = 0;
|
||||
int _ripTossesHelmet = 0;
|
||||
int _ripTossesBucket = 0;
|
||||
int _ripleyMode = 0;
|
||||
int _ripleyShould = 0;
|
||||
machine *_mei = nullptr;
|
||||
int _meiTalkToRip = 0;
|
||||
int _meiTurnAndTalk = 0;
|
||||
int _meiRightHandOut = 0;
|
||||
int _meiCheekLine = 0;
|
||||
int _meiHallOfClassics = 0;
|
||||
machine *_gk = nullptr;
|
||||
int _gkFrame = 0;
|
||||
int _gkManyDoNeedPass = 0;
|
||||
int _gkMayNotPass = 0;
|
||||
int _gkMode = 0, _gkShould = 0;
|
||||
machine *_oldLady = nullptr;
|
||||
int _oldLadyFrame = 0;
|
||||
int _oldLadyNoHelmet = 0;
|
||||
int _oldLadyFeedingBirds = 0;
|
||||
int _oldLadyMode = 0, _oldLadyShould = 0;
|
||||
int _oldLady1 = 0;
|
||||
int _oldLadyPointsToPhoto = 0;
|
||||
int _oldLadyPhotoPopup = 0;
|
||||
int _oldLadyProtectsHelmet = 0;
|
||||
int _oldLadyShowsPhoto = 0;
|
||||
machine *_pigeons1 = nullptr;
|
||||
machine *_pigeons3 = nullptr;
|
||||
int _pigeonsSeries1 = 0;
|
||||
int _pigeonsSeries3 = 0;
|
||||
machine *_official = nullptr;
|
||||
machine *_officialShadow = nullptr;
|
||||
int _officialStander = 0;
|
||||
int _officialMode = 0, _officialShould = 0;
|
||||
int _officialTurn9_11 = 0;
|
||||
int _officialTurn9_11_pointGun = 0;
|
||||
int _officialTurn11_3 = 0;
|
||||
int _officialTurn3_7 = 0;
|
||||
int _officialMoveAlong = 0;
|
||||
int _officialThroughThere = 0;
|
||||
int _officialHalt = 0;
|
||||
machine *_peasant = nullptr;
|
||||
machine *_peasantShadow = nullptr;
|
||||
int _peasantSeries = 0;
|
||||
int _peasantSeriesShadow = 0;
|
||||
int _peasantRocks = 0;
|
||||
int _peasantRocksShadow = 0;
|
||||
int _peskyYellsThief = 0;
|
||||
int _peskyBegLoop = 0;
|
||||
int _peskyAction = 0;
|
||||
int _peasantMode = 0, _peasantShould = 0;
|
||||
int _peasantMode2 = 0;
|
||||
int _peasantX = 0;
|
||||
int _peasantY = 0;
|
||||
int _peasantScale = 0;
|
||||
int _peasantLayer = 0;
|
||||
int _peasantSquat9 = 0;
|
||||
int _peasantSquat3 = 0;
|
||||
int _peasantSquatTo9 = 0;
|
||||
int _peasantFromSquat3 = 0;
|
||||
bool _yellThiefFlag = false;
|
||||
bool _flag2 = false;
|
||||
machine *_sg = nullptr;
|
||||
int _203sg01 = 0;
|
||||
machine *_g1 = nullptr;
|
||||
machine *_g2 = nullptr;
|
||||
int _unkShould = 0;
|
||||
int _oneFrameBucket = 0;
|
||||
|
||||
int _ctr1 = 0;
|
||||
|
||||
void setupHelmetHotspot();
|
||||
void setupPeasantHotspot(int mode);
|
||||
void setupGk();
|
||||
void setupOldLady();
|
||||
void setupPigeons();
|
||||
void setupOfficial();
|
||||
void setupPeasant();
|
||||
void peasantWalk();
|
||||
void peasantAnim1();
|
||||
void peasantAnim2();
|
||||
void conv203c();
|
||||
void conv203d();
|
||||
void conv203e();
|
||||
void playSound(const char *digiName, int trigger);
|
||||
void lookThroughHole(const char *digiName, int trigger);
|
||||
void lookAtHeads(const char *digiName, int trigger);
|
||||
|
||||
public:
|
||||
Room203() : Section2Room() {}
|
||||
~Room203() 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
|
||||
2952
engines/m4/riddle/rooms/section2/room204.cpp
Normal file
2952
engines/m4/riddle/rooms/section2/room204.cpp
Normal file
File diff suppressed because it is too large
Load Diff
159
engines/m4/riddle/rooms/section2/room204.h
Normal file
159
engines/m4/riddle/rooms/section2/room204.h
Normal file
@@ -0,0 +1,159 @@
|
||||
/* 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_SECTION2_ROOM204_H
|
||||
#define M4_RIDDLE_ROOMS_SECTION2_ROOM204_H
|
||||
|
||||
#include "m4/riddle/rooms/section2/section2_room.h"
|
||||
|
||||
namespace M4 {
|
||||
namespace Riddle {
|
||||
namespace Rooms {
|
||||
|
||||
class Room204 : public Section2Room {
|
||||
public:
|
||||
Room204() : Section2Room() {}
|
||||
~Room204() override {}
|
||||
|
||||
void preload() override;
|
||||
void init() override;
|
||||
void pre_parser() override;
|
||||
void parser() override;
|
||||
void daemon() override;
|
||||
void syncGame(Common::Serializer &s) override;
|
||||
|
||||
private:
|
||||
void addLookMalletHotspot();
|
||||
void addMovingMeiHotspot();
|
||||
void conv204a();
|
||||
void deleteMalletHotspot();
|
||||
void deleteMeiCheiHotspot();
|
||||
void gameSetScale(int32 frontY, int32 backY, int32 frontS, int32 backS);
|
||||
void handleRipBangsBong();
|
||||
void initWalkerSeries();
|
||||
void initPriestWalker();
|
||||
void killMcMach();
|
||||
void killPriestWalkerMach();
|
||||
void setWalkerDestX();
|
||||
|
||||
int32 _dword1A189C = 0;
|
||||
|
||||
bool _checkNode10Fl = false;
|
||||
bool _checkNode10NegWhoEntry1Fl = false;
|
||||
bool _checkNode11NegWhoEntry0Fl = false;
|
||||
bool _checkNode20Fl = false;
|
||||
bool _ripMachineFlag = false;
|
||||
bool _meiMachineFlag = false;
|
||||
|
||||
bool _meiPresent = false;
|
||||
int32 _ripleyShould = 0;
|
||||
int32 _ripleyMode = 0;
|
||||
int32 _field18_triggerNum = 0;
|
||||
int32 _field24_triggerNum = 0;
|
||||
int32 _field28_triggerNum = 0;
|
||||
int32 _field2C = 0;
|
||||
int32 _field34_x = 0;
|
||||
int32 _field38_y = 0;
|
||||
int32 _field3C_facing = 0;
|
||||
int32 _field40 = 0;
|
||||
int32 _field44_triggerNum = 0;
|
||||
int32 _field48_triggerNum = 0;
|
||||
int32 _ripBangsBongSeries = 0;
|
||||
int32 _fieldBC_trigger = 0;
|
||||
int32 _fieldC0_trigger = 0;
|
||||
int32 _fieldC4 = 0;
|
||||
int32 _fieldC8_trigger = 0;
|
||||
int32 _fieldCC_trigger = 0;
|
||||
int32 _meiMode = 0;
|
||||
int32 _meiShould = 0;
|
||||
int32 _fieldD8_facing = 0;
|
||||
int32 _fieldE0_x = 0;
|
||||
int32 _fieldE4_walkerDestX = 0;
|
||||
int32 _fieldEC = 0;
|
||||
int32 _fieldF0 = 0;
|
||||
int32 _fieldF4 = 0;
|
||||
int32 _fieldF8 = 0;
|
||||
int32 _fieldFC_infoX = 0;
|
||||
int32 _field100_infoY = 0;
|
||||
int32 _field104 = 0;
|
||||
int32 _field108 = 0;
|
||||
int32 _field10C_x = 0;
|
||||
int32 _field110_y = 0;
|
||||
int32 _field114_facing = 0;
|
||||
int32 _field118_scale = 0;
|
||||
int32 _field11C_depth = 0;
|
||||
int32 _field124 = 0;
|
||||
int32 _field128 = 0;
|
||||
int32 _field12C_triggerNum = 0;
|
||||
int32 _field130 = 0;
|
||||
int32 _field134 = 0;
|
||||
int32 _field138 = 0;
|
||||
int32 _field13C_triggerNum = 0;
|
||||
int32 _field140 = 0;
|
||||
int32 _field144_triggerNum = 0;
|
||||
int32 _field16C = 0;
|
||||
int32 _field180 = 0;
|
||||
int32 _field184 = 0;
|
||||
int32 _field188 = 0;
|
||||
|
||||
int32 _204pu99Series = 0;
|
||||
int32 _acolyteGrabsMalletSeries = 0;
|
||||
int32 _acolyteSaysHaltSeries = 0;
|
||||
int32 _courtyardGongSeries = 0;
|
||||
int32 _malletSpriteSeries = 0;
|
||||
int32 _meiReadsTabletsSeries = 0;
|
||||
int32 _meiShowsRipHerPassesSeries = 0;
|
||||
int32 _meiTalksPos3Series = 0;
|
||||
int32 _meiTrekRtHandOutPos2Series = 0;
|
||||
int32 _meiTrekTalkerPos4Series = 0;
|
||||
int32 _priestTurnsFrom3To9Series = 0;
|
||||
int32 _priestWalkerSeries = 0;
|
||||
int32 _ripDropsSeries = 0;
|
||||
int32 _ripSketchingInNotebookPos2Series = 0;
|
||||
int32 _ripTrekHandTalkPos3Series = 0;
|
||||
int32 _ripTrekHeadTurnPos5Series = 0;
|
||||
int32 _ripTrekLHandTalkPos4Series = 0;
|
||||
int32 _ripTrekLowReachPos2Series = 0;
|
||||
int32 _ripTrekMedReachHandPos1Series = 0;
|
||||
int32 _ripTrekTalkerPos3Series = 0;
|
||||
int32 _ripTrekTwoHandTalkPos2Series = 0;
|
||||
|
||||
machine *_204pu05Mach = nullptr;
|
||||
machine *_204pu99Mach = nullptr;
|
||||
machine *_acolyteGuardingEntranceMach = nullptr;
|
||||
machine *_courtyardGongMach = nullptr;
|
||||
machine *_mcMach = nullptr;
|
||||
machine *_malletSpriteMach = nullptr;
|
||||
machine *_meiChenOtherStatesMach = nullptr;
|
||||
machine *_priestTurningStateMach = nullptr;
|
||||
machine *_priestWalkerMach = nullptr;
|
||||
machine *_ripDeltaMachineStateMach = nullptr;
|
||||
machine *_safariShadow2Mach = nullptr;
|
||||
machine *_safariShadow3Mach = nullptr;
|
||||
machine *_silverButterflyCoinMach = nullptr;
|
||||
};
|
||||
|
||||
|
||||
} // namespace Rooms
|
||||
} // namespace Riddle
|
||||
} // namespace M4
|
||||
|
||||
#endif
|
||||
2190
engines/m4/riddle/rooms/section2/room205.cpp
Normal file
2190
engines/m4/riddle/rooms/section2/room205.cpp
Normal file
File diff suppressed because it is too large
Load Diff
121
engines/m4/riddle/rooms/section2/room205.h
Normal file
121
engines/m4/riddle/rooms/section2/room205.h
Normal file
@@ -0,0 +1,121 @@
|
||||
/* 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_SECTION2_ROOM205_H
|
||||
#define M4_RIDDLE_ROOMS_SECTION2_ROOM205_H
|
||||
|
||||
#include "m4/riddle/rooms/room.h"
|
||||
#include "m4/riddle/vars.h"
|
||||
|
||||
namespace M4 {
|
||||
namespace Riddle {
|
||||
namespace Rooms {
|
||||
|
||||
class Room205 : public Room {
|
||||
public:
|
||||
Room205() : Room() {}
|
||||
~Room205() override {}
|
||||
|
||||
void init() override;
|
||||
void pre_parser() override;
|
||||
void parser() override;
|
||||
void daemon() override;
|
||||
void syncGame(Common::Serializer &s) override;
|
||||
|
||||
private:
|
||||
int32 _fieldD8 = 0;
|
||||
int32 _fieldDC = 0;
|
||||
int32 _fieldE0 = 0;
|
||||
int32 _fieldE4 = 0;
|
||||
int32 _field198 = 0;
|
||||
int32 _field19C = 0; // unused??
|
||||
int32 _field1A0 = 0;
|
||||
|
||||
bool _askUnhideMyWalkerFl = false;
|
||||
bool _showMeiTalkFl = false;
|
||||
|
||||
int32 _205all0Series = 0;
|
||||
int32 _205all1Series = 0;
|
||||
int32 _205all4Series = 0;
|
||||
int32 _205all5Series = 0;
|
||||
int32 _205all6Series = 0;
|
||||
int32 _205all7Series = 0;
|
||||
int32 _205FireInBrazierSeries = 0;
|
||||
int32 _205Fite1Series = 0;
|
||||
int32 _205Fite2Series = 0;
|
||||
int32 _205Fite3Series = 0;
|
||||
int32 _205Fite4Series = 0;
|
||||
int32 _205GunFireSeries = 0;
|
||||
int32 _205GunPointedSeries = 0;
|
||||
int32 _205JournalRippedPopupSeries = 0;
|
||||
int32 _205ktlk1Series = 0;
|
||||
int32 _205ktlk2Series = 0;
|
||||
int32 _205mc01Series = 0;
|
||||
int32 _205mc02Series = 0;
|
||||
int32 _205mc03Series = 0;
|
||||
int32 _205MeiSighAndTalkSeries = 0;
|
||||
int32 _205mtlk1Series = 0;
|
||||
int32 _205RipGetsBitchSlappedSeries = 0;
|
||||
int32 _205rp01Series = 0;
|
||||
int32 _205rp02Series = 0;
|
||||
int32 _205rp03Series = 0;
|
||||
int32 _205rtlk1Series = 0;
|
||||
int32 _205rtlk2Series = 0;
|
||||
int32 _205rtlk3Series = 0;
|
||||
int32 _205rtlk4Series = 0;
|
||||
int32 _205rtlk5Series = 0;
|
||||
int32 _205ShenGouStaresSeries = 0;
|
||||
int32 _205strlk1Series = 0;
|
||||
int32 _205TabletsSeries = 0;
|
||||
int32 _ripGetsShotSeries = 0;
|
||||
int32 _ripTalkerPos5Series = 0;
|
||||
int32 _ripTrekHeadTurnPos5Series = 0;
|
||||
int32 _ripTrekLowReacherPos5Series = 0;
|
||||
int32 _ripTrekLowReachPos2Series = 0;
|
||||
int32 _ripTrekMedReachHandPos1Series = 0;
|
||||
int32 _invItemNum = 0;
|
||||
|
||||
machine *_205all0Mach = nullptr;
|
||||
machine *_205all9Mach = nullptr;
|
||||
machine *_205CharcoalSpriteMach = nullptr;
|
||||
machine *_205FireInBrazierMach = nullptr;
|
||||
machine *_205GunInBrazierMach = nullptr;
|
||||
machine *_205GunPointedMach = nullptr;
|
||||
machine *_205JournalCharcoalPopupMach = nullptr;
|
||||
machine *_205LeftEntranceTabletMach = nullptr;
|
||||
machine *_205MeiStanderMach = nullptr;
|
||||
machine *_205rp1Mach = nullptr;
|
||||
machine *_205TabletsMach = nullptr;
|
||||
machine *_candlemanShadow3Mach = nullptr;
|
||||
machine *_kuangsShadow2Mach = nullptr;
|
||||
machine *_kuangTalkerMach = nullptr;
|
||||
machine *_kuangWalker205Mach = nullptr;
|
||||
machine *_mcEntranceTrekMach = nullptr;
|
||||
machine *_safariShadow1Mach = nullptr;
|
||||
machine *_shenGuoShadow12Mach = nullptr;
|
||||
machine *_shenSuitGunWalkerMach = nullptr;
|
||||
};
|
||||
|
||||
} // namespace Rooms
|
||||
} // namespace Riddle
|
||||
} // namespace M4
|
||||
|
||||
#endif
|
||||
1750
engines/m4/riddle/rooms/section2/room207.cpp
Normal file
1750
engines/m4/riddle/rooms/section2/room207.cpp
Normal file
File diff suppressed because it is too large
Load Diff
111
engines/m4/riddle/rooms/section2/room207.h
Normal file
111
engines/m4/riddle/rooms/section2/room207.h
Normal file
@@ -0,0 +1,111 @@
|
||||
/* 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_SECTION2_ROOM207_H
|
||||
#define M4_RIDDLE_ROOMS_SECTION2_ROOM207_H
|
||||
|
||||
#include "m4/riddle/rooms/room.h"
|
||||
|
||||
namespace M4 {
|
||||
namespace Riddle {
|
||||
namespace Rooms {
|
||||
|
||||
class Room207 : public Room {
|
||||
public:
|
||||
Room207() : Room() {}
|
||||
~Room207() override {}
|
||||
|
||||
void preload() override;
|
||||
void init() override;
|
||||
void pre_parser() override;
|
||||
void parser() override;
|
||||
void daemon() override;
|
||||
void syncGame(Common::Serializer &s) override;
|
||||
|
||||
private:
|
||||
int32 _field88 = 0; // unused?
|
||||
int32 _field8A = 0;
|
||||
int32 _peasantMode = 0;
|
||||
int32 _peasantShould = 0;
|
||||
bool _fieldA4 = false; // always false??
|
||||
int32 _fieldA8 = 0; // unused ?
|
||||
bool _pipeFlag = false;
|
||||
int32 _fieldAE_rnd = 0;
|
||||
bool _peasantShoutingFl = false;
|
||||
int32 _guardComingDelay = 0;
|
||||
int32 _fieldC2 = 0;
|
||||
bool _fieldC6 = false; // always false??
|
||||
|
||||
bool _commandNotAllowedFl = false;
|
||||
bool _digi207r04PlayedFl = false;
|
||||
const char *_digiName = nullptr;
|
||||
int32 _digiTriggerNum = 0;
|
||||
int32 _dispatchTriggerNum = 0;
|
||||
bool _dollarFl = false;
|
||||
bool _hiddenWalkerFl = false; // Always false??
|
||||
KernelTriggerType _nextTriggerMode = KT_PARSE;
|
||||
bool _node1Entry2Fl = false;
|
||||
bool _ripForegroundFl = false;
|
||||
|
||||
int32 _leadPipeSeries = 0;
|
||||
int32 _metalRimSeries = 0;
|
||||
int32 _oneFrameMoneySpriteSeries = 0;
|
||||
int32 _peasant3ToSquatSeries = 0;
|
||||
int32 _peasantSquatTo9Series = 0;
|
||||
int32 _peskyBegLoopSeries = 0;
|
||||
int32 _peskyPointsRipBackgroundSeries = 0;
|
||||
int32 _peskyPointsRipForegroundSeries = 0;
|
||||
int32 _peskyRockLoopSeries = 0;
|
||||
int32 _ppShowsAmuletTakesMoneySeries = 0;
|
||||
int32 _rebusAmuletSeries = 0;
|
||||
int32 _ripHeadDownTalkOffTd33Series = 0;
|
||||
int32 _ripHeadDownTalkOffTd33Series2 = 0;
|
||||
int32 _ripTrekArmsXPos3Series = 0;
|
||||
int32 _ripTrekLowReacherPos1Series = 0;
|
||||
int32 _sevenSpokesSeries = 0;
|
||||
int32 _shadowPeskyFrom9ToSquatSeries = 0;
|
||||
int32 _wheelSeries = 0;
|
||||
int32 _withoutAmuletSeries = 0;
|
||||
int32 _woodenRimSeries = 0;
|
||||
|
||||
machine *_dropsWheelMach = nullptr;
|
||||
machine *_leadPipeMach = nullptr;
|
||||
machine *_leadPipeMach2 = nullptr;
|
||||
machine *_metalRimMach = nullptr;
|
||||
machine *_oneFrameMoneySpriteMach = nullptr;
|
||||
machine *_ppSquatMach = nullptr;
|
||||
machine *_ppWalkerMach = nullptr;
|
||||
machine *_rebusAmuletMach = nullptr;
|
||||
machine *_ripInConvMach = nullptr;
|
||||
machine *_ripTrekLowReachMach = nullptr;
|
||||
machine *_ripTrekLowReacherPos5Mach = nullptr;
|
||||
machine *_safariShadow3Mach = nullptr;
|
||||
machine *_sevenSpokesMach = nullptr;
|
||||
machine *_wheelMach = nullptr;
|
||||
|
||||
void convHandler();
|
||||
};
|
||||
|
||||
} // namespace Rooms
|
||||
} // namespace Riddle
|
||||
} // namespace M4
|
||||
|
||||
#endif
|
||||
67
engines/m4/riddle/rooms/section2/section2.cpp
Normal file
67
engines/m4/riddle/rooms/section2/section2.cpp
Normal file
@@ -0,0 +1,67 @@
|
||||
/* 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/>.
|
||||
*
|
||||
*/
|
||||
|
||||
#include "m4/riddle/rooms/section2/section2.h"
|
||||
#include "m4/riddle/vars.h"
|
||||
|
||||
namespace M4 {
|
||||
namespace Riddle {
|
||||
namespace Rooms {
|
||||
|
||||
const int16 S2_MEI_NORMAL_DIRS[] = { 220, 221, 222, 223, 224, -1 };
|
||||
const char *S2_MEI_NORMAL_NAMES[] = {
|
||||
"mei chen trek walk pos1",
|
||||
"mei chen trek walk pos2",
|
||||
"mei chen trek walk pos3",
|
||||
"mei chen trek walk pos4",
|
||||
"mei chen trek walk pos5"
|
||||
};
|
||||
const int16 S2_MEI_SHADOW_DIRS[] = { 230, 231, 232, 233, 234, -1 };
|
||||
const char *S2_MEI_SHADOW_NAMES[] = {
|
||||
"mctsh1",
|
||||
"mctsh2",
|
||||
"mctsh3",
|
||||
"mctsh4",
|
||||
"mctsh5"
|
||||
};
|
||||
|
||||
const int16 S2_PEASANT_NORMAL_DIRS[] = { 240, -1 };
|
||||
const char *S2_PEASANT_NORMAL_NAMES[] = { "pesky walk pos3" };
|
||||
const int16 S2_PEASANT_SHADOW_DIRS[] = { 250, -1 };
|
||||
const char *S2_PEASANT_SHADOW_NAMES[] = { "shadow pesky walk pos3" };
|
||||
|
||||
|
||||
Section2::Section2() : Rooms::Section() {
|
||||
add(201, &_room201);
|
||||
add(202, &_room202);
|
||||
add(203, &_room203);
|
||||
add(204, &_room204);
|
||||
add(205, &_room205);
|
||||
add(207, &_room207);
|
||||
}
|
||||
|
||||
void Section2::daemon() {
|
||||
_G(kernel).continue_handling_trigger = true;
|
||||
}
|
||||
|
||||
} // namespace Rooms
|
||||
} // namespace Riddle
|
||||
} // namespace M4
|
||||
66
engines/m4/riddle/rooms/section2/section2.h
Normal file
66
engines/m4/riddle/rooms/section2/section2.h
Normal file
@@ -0,0 +1,66 @@
|
||||
/* 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_SECTION2_H
|
||||
#define M4_RIDDLE_ROOMS_SECTION2_H
|
||||
|
||||
#include "m4/riddle/rooms/section.h"
|
||||
#include "m4/riddle/rooms/section2/room201.h"
|
||||
#include "m4/riddle/rooms/section2/room202.h"
|
||||
#include "m4/riddle/rooms/section2/room203.h"
|
||||
#include "m4/riddle/rooms/section2/room204.h"
|
||||
#include "m4/riddle/rooms/section2/room205.h"
|
||||
#include "m4/riddle/rooms/section2/room207.h"
|
||||
|
||||
namespace M4 {
|
||||
namespace Riddle {
|
||||
namespace Rooms {
|
||||
|
||||
extern const int16 S2_MEI_NORMAL_DIRS[];
|
||||
extern const char *S2_MEI_NORMAL_NAMES[];
|
||||
extern const int16 S2_MEI_SHADOW_DIRS[];
|
||||
extern const char *S2_MEI_SHADOW_NAMES[];
|
||||
|
||||
extern const int16 S2_PEASANT_NORMAL_DIRS[];
|
||||
extern const char *S2_PEASANT_NORMAL_NAMES[];
|
||||
extern const int16 S2_PEASANT_SHADOW_DIRS[];
|
||||
extern const char *S2_PEASANT_SHADOW_NAMES[];
|
||||
|
||||
class Section2 : public Section {
|
||||
private:
|
||||
Room201 _room201;
|
||||
Room202 _room202;
|
||||
Room203 _room203;
|
||||
Room204 _room204;
|
||||
Room205 _room205;
|
||||
Room207 _room207;
|
||||
public:
|
||||
Section2();
|
||||
virtual ~Section2() {}
|
||||
|
||||
void daemon() override;
|
||||
};
|
||||
|
||||
} // namespace Rooms
|
||||
} // namespace Riddle
|
||||
} // namespace M4
|
||||
|
||||
#endif
|
||||
36
engines/m4/riddle/rooms/section2/section2_room.cpp
Normal file
36
engines/m4/riddle/rooms/section2/section2_room.cpp
Normal file
@@ -0,0 +1,36 @@
|
||||
/* 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/>.
|
||||
*
|
||||
*/
|
||||
|
||||
#include "m4/riddle/rooms/section2/section2.h"
|
||||
#include "m4/riddle/vars.h"
|
||||
|
||||
namespace M4 {
|
||||
namespace Riddle {
|
||||
namespace Rooms {
|
||||
|
||||
bool Section2Room::keyCheck() const {
|
||||
return _G(flags)[V286] && _G(flags)[V288] && _G(flags)[V287] &&
|
||||
inv_player_has("KEY");
|
||||
}
|
||||
|
||||
} // namespace Rooms
|
||||
} // namespace Riddle
|
||||
} // namespace M4
|
||||
44
engines/m4/riddle/rooms/section2/section2_room.h
Normal file
44
engines/m4/riddle/rooms/section2/section2_room.h
Normal file
@@ -0,0 +1,44 @@
|
||||
/* 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_SECTION2_ROOM_H
|
||||
#define M4_RIDDLE_ROOMS_SECTION2_ROOM_H
|
||||
|
||||
#include "m4/riddle/rooms/room.h"
|
||||
|
||||
namespace M4 {
|
||||
namespace Riddle {
|
||||
namespace Rooms {
|
||||
|
||||
class Section2Room : public Room {
|
||||
protected:
|
||||
bool keyCheck() const;
|
||||
|
||||
public:
|
||||
Section2Room() : Room() {}
|
||||
~Section2Room() override {}
|
||||
};
|
||||
|
||||
} // namespace Rooms
|
||||
} // namespace Riddle
|
||||
} // namespace M4
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user