Initial commit

This commit is contained in:
2026-02-02 04:50:13 +01:00
commit 5b11698731
22592 changed files with 7677434 additions and 0 deletions

File diff suppressed because it is too large Load Diff

View 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

View 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

View 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

File diff suppressed because it is too large Load Diff

View 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

File diff suppressed because it is too large Load Diff

View 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

File diff suppressed because it is too large Load Diff

View 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

File diff suppressed because it is too large Load Diff

View 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

View 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

View 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

View 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

View 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