[Scummvm-git-logs] scummvm master -> 461396bfa3594eca64e1a4a8a943f0c1ef9ad02e
dreammaster
noreply at scummvm.org
Wed Oct 2 04:23:04 UTC 2024
This automated email contains information about 2 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
4d7933eaac M4: RIDDLE: Finished room 615
461396bfa3 M4: RIDDLE: Setting up maze room skeletons
Commit: 4d7933eaac7b42e8feb575179b27f3f1b8e49e6f
https://github.com/scummvm/scummvm/commit/4d7933eaac7b42e8feb575179b27f3f1b8e49e6f
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2024-10-01T21:22:03-07:00
Commit Message:
M4: RIDDLE: Finished room 615
Changed paths:
engines/m4/riddle/rooms/section6/room615.cpp
diff --git a/engines/m4/riddle/rooms/section6/room615.cpp b/engines/m4/riddle/rooms/section6/room615.cpp
index a8cc4c54b8d..533b5e08a57 100644
--- a/engines/m4/riddle/rooms/section6/room615.cpp
+++ b/engines/m4/riddle/rooms/section6/room615.cpp
@@ -470,7 +470,40 @@ void Room615::daemon() {
}
break;
- // TODO
+ case 133:
+ if (_ctr1 >= 1) {
+ _ctr1 = 0;
+ series_stream_break_on_frame(_untie, 94, 135);
+ digi_play("615r15", 1);
+ } else {
+ ++_ctr1;
+ }
+ break;
+
+ case 135:
+ series_stream_check_series(_untie, 400);
+ kernel_timing_trigger(60, 140);
+ break;
+
+ case 140:
+ disable_player_commands_and_fade_init(141);
+ break;
+
+ case 141:
+ inv_move_object("SPARK PLUG TOOL", NOWHERE);
+ _G(flags)[V203] = 9;
+ _G(flags)[V191] = 0;
+ _G(flags)[V129] = 4;
+ _G(game).setRoom(495);
+ break;
+
+ case 150:
+ if (!_val2) {
+ series_stream_check_series(_untie, 30000);
+ kernel_timing_trigger(10, 151);
+ }
+ break;
+
case 151:
if (_val2) {
series_stream_check_series(_untie, 6);
@@ -480,7 +513,6 @@ void Room615::daemon() {
}
break;
- // TODO
default:
break;
}
Commit: 461396bfa3594eca64e1a4a8a943f0c1ef9ad02e
https://github.com/scummvm/scummvm/commit/461396bfa3594eca64e1a4a8a943f0c1ef9ad02e
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2024-10-01T21:22:04-07:00
Commit Message:
M4: RIDDLE: Setting up maze room skeletons
Changed paths:
A engines/m4/riddle/rooms/section6/section6_maze.cpp
A engines/m4/riddle/rooms/section6/section6_maze.h
engines/m4/module.mk
engines/m4/riddle/rooms/section6/room620.cpp
engines/m4/riddle/rooms/section6/room620.h
engines/m4/riddle/rooms/section6/room621.cpp
engines/m4/riddle/rooms/section6/room621.h
engines/m4/riddle/rooms/section6/room622.cpp
engines/m4/riddle/rooms/section6/room622.h
engines/m4/riddle/rooms/section6/room623.cpp
engines/m4/riddle/rooms/section6/room623.h
engines/m4/riddle/rooms/section6/room624.cpp
engines/m4/riddle/rooms/section6/room624.h
engines/m4/riddle/rooms/section6/room625.cpp
engines/m4/riddle/rooms/section6/room625.h
engines/m4/riddle/rooms/section6/room626.cpp
engines/m4/riddle/rooms/section6/room626.h
engines/m4/riddle/rooms/section6/room627.cpp
engines/m4/riddle/rooms/section6/room627.h
engines/m4/riddle/rooms/section6/room628.cpp
engines/m4/riddle/rooms/section6/room628.h
engines/m4/riddle/rooms/section6/room629.cpp
engines/m4/riddle/rooms/section6/room629.h
engines/m4/riddle/rooms/section6/room630.cpp
engines/m4/riddle/rooms/section6/room630.h
engines/m4/riddle/rooms/section6/room631.cpp
engines/m4/riddle/rooms/section6/room631.h
engines/m4/riddle/rooms/section6/room632.cpp
engines/m4/riddle/rooms/section6/room632.h
engines/m4/riddle/rooms/section6/room633.cpp
engines/m4/riddle/rooms/section6/room633.h
engines/m4/riddle/rooms/section6/room634.cpp
engines/m4/riddle/rooms/section6/room634.h
engines/m4/riddle/rooms/section6/room635.cpp
engines/m4/riddle/rooms/section6/room635.h
engines/m4/riddle/rooms/section6/room636.cpp
engines/m4/riddle/rooms/section6/room636.h
engines/m4/riddle/rooms/section6/room637.cpp
engines/m4/riddle/rooms/section6/room637.h
engines/m4/riddle/rooms/section6/room638.cpp
engines/m4/riddle/rooms/section6/room638.h
engines/m4/riddle/rooms/section6/room640.cpp
engines/m4/riddle/rooms/section6/room640.h
engines/m4/riddle/rooms/section6/room641.cpp
engines/m4/riddle/rooms/section6/room641.h
engines/m4/riddle/rooms/section6/room642.cpp
engines/m4/riddle/rooms/section6/room642.h
engines/m4/riddle/rooms/section6/room643.cpp
engines/m4/riddle/rooms/section6/room643.h
engines/m4/riddle/rooms/section6/room644.cpp
engines/m4/riddle/rooms/section6/room644.h
engines/m4/riddle/rooms/section6/room645.cpp
engines/m4/riddle/rooms/section6/room645.h
engines/m4/riddle/rooms/section6/room646.cpp
engines/m4/riddle/rooms/section6/room646.h
engines/m4/riddle/rooms/section6/room647.cpp
engines/m4/riddle/rooms/section6/room647.h
engines/m4/riddle/rooms/section6/room648.cpp
engines/m4/riddle/rooms/section6/room648.h
engines/m4/riddle/rooms/section6/room649.cpp
engines/m4/riddle/rooms/section6/room649.h
engines/m4/riddle/rooms/section6/room650.cpp
engines/m4/riddle/rooms/section6/room650.h
engines/m4/riddle/rooms/section6/room651.cpp
engines/m4/riddle/rooms/section6/room651.h
diff --git a/engines/m4/module.mk b/engines/m4/module.mk
index 555de2f2b37..679096fbd89 100644
--- a/engines/m4/module.mk
+++ b/engines/m4/module.mk
@@ -224,6 +224,7 @@ MODULE_OBJS = \
riddle/rooms/section5/room509.o \
riddle/rooms/section5/room510.o \
riddle/rooms/section6/section6.o \
+ riddle/rooms/section6/section6_maze.o \
riddle/rooms/section6/room603.o \
riddle/rooms/section6/room604.o \
riddle/rooms/section6/room605.o \
diff --git a/engines/m4/riddle/rooms/section6/room620.cpp b/engines/m4/riddle/rooms/section6/room620.cpp
index 508d471d6bb..cd5c11fa6f4 100644
--- a/engines/m4/riddle/rooms/section6/room620.cpp
+++ b/engines/m4/riddle/rooms/section6/room620.cpp
@@ -30,7 +30,10 @@ namespace Rooms {
void Room620::init() {
}
-void Room620::daemon() {
+void Room620::parser() {
+ Maze::parser();
+ checkExitRight(621);
+ checkExitUp(626);
}
} // namespace Rooms
diff --git a/engines/m4/riddle/rooms/section6/room620.h b/engines/m4/riddle/rooms/section6/room620.h
index 547ee2ef975..3707432e764 100644
--- a/engines/m4/riddle/rooms/section6/room620.h
+++ b/engines/m4/riddle/rooms/section6/room620.h
@@ -22,19 +22,19 @@
#ifndef M4_RIDDLE_ROOMS_SECTION6_ROOM620_H
#define M4_RIDDLE_ROOMS_SECTION6_ROOM620_H
-#include "m4/riddle/rooms/room.h"
+#include "m4/riddle/rooms/section6/section6_maze.h"
namespace M4 {
namespace Riddle {
namespace Rooms {
-class Room620 : public Room {
+class Room620 : public Maze {
public:
- Room620() : Room() {}
+ Room620() : Maze() {}
~Room620() override {}
void init() override;
- void daemon() override;
+ void parser() override;
};
} // namespace Rooms
diff --git a/engines/m4/riddle/rooms/section6/room621.cpp b/engines/m4/riddle/rooms/section6/room621.cpp
index 8d6d469c362..a7f20db1a5c 100644
--- a/engines/m4/riddle/rooms/section6/room621.cpp
+++ b/engines/m4/riddle/rooms/section6/room621.cpp
@@ -30,7 +30,11 @@ namespace Rooms {
void Room621::init() {
}
-void Room621::daemon() {
+void Room621::parser() {
+ Maze::parser();
+ checkExitLeft(620);
+ checkExitRight(622);
+ checkExitUp(627);
}
} // namespace Rooms
diff --git a/engines/m4/riddle/rooms/section6/room621.h b/engines/m4/riddle/rooms/section6/room621.h
index c3d70e97292..4aed93591f2 100644
--- a/engines/m4/riddle/rooms/section6/room621.h
+++ b/engines/m4/riddle/rooms/section6/room621.h
@@ -22,19 +22,19 @@
#ifndef M4_RIDDLE_ROOMS_SECTION6_ROOM621_H
#define M4_RIDDLE_ROOMS_SECTION6_ROOM621_H
-#include "m4/riddle/rooms/room.h"
+#include "m4/riddle/rooms/section6/section6_maze.h"
namespace M4 {
namespace Riddle {
namespace Rooms {
-class Room621 : public Room {
+class Room621 : public Maze {
public:
- Room621() : Room() {}
+ Room621() : Maze() {}
~Room621() override {}
void init() override;
- void daemon() override;
+ void parser() override;
};
} // namespace Rooms
diff --git a/engines/m4/riddle/rooms/section6/room622.cpp b/engines/m4/riddle/rooms/section6/room622.cpp
index 474826a982f..8460b39fdda 100644
--- a/engines/m4/riddle/rooms/section6/room622.cpp
+++ b/engines/m4/riddle/rooms/section6/room622.cpp
@@ -30,7 +30,11 @@ namespace Rooms {
void Room622::init() {
}
-void Room622::daemon() {
+void Room622::parser() {
+ Maze::parser();
+ checkExitLeft(621);
+ checkExitRight(623);
+ checkExitUp(628);
}
} // namespace Rooms
diff --git a/engines/m4/riddle/rooms/section6/room622.h b/engines/m4/riddle/rooms/section6/room622.h
index e6f89d89cbc..d3aef94652a 100644
--- a/engines/m4/riddle/rooms/section6/room622.h
+++ b/engines/m4/riddle/rooms/section6/room622.h
@@ -22,19 +22,19 @@
#ifndef M4_RIDDLE_ROOMS_SECTION6_ROOM622_H
#define M4_RIDDLE_ROOMS_SECTION6_ROOM622_H
-#include "m4/riddle/rooms/room.h"
+#include "m4/riddle/rooms/section6/section6_maze.h"
namespace M4 {
namespace Riddle {
namespace Rooms {
-class Room622 : public Room {
+class Room622 : public Maze {
public:
- Room622() : Room() {}
+ Room622() : Maze() {}
~Room622() override {}
void init() override;
- void daemon() override;
+ void parser() override;
};
} // namespace Rooms
diff --git a/engines/m4/riddle/rooms/section6/room623.cpp b/engines/m4/riddle/rooms/section6/room623.cpp
index 0eb345d3573..2cd86c66b46 100644
--- a/engines/m4/riddle/rooms/section6/room623.cpp
+++ b/engines/m4/riddle/rooms/section6/room623.cpp
@@ -30,7 +30,12 @@ namespace Rooms {
void Room623::init() {
}
-void Room623::daemon() {
+void Room623::parser() {
+ Maze::parser();
+ checkExitLeft(622);
+ checkExitRight(624);
+ checkExitUp(629);
+ checkExitDown(605);
}
} // namespace Rooms
diff --git a/engines/m4/riddle/rooms/section6/room623.h b/engines/m4/riddle/rooms/section6/room623.h
index bf99b81c591..29af4d65236 100644
--- a/engines/m4/riddle/rooms/section6/room623.h
+++ b/engines/m4/riddle/rooms/section6/room623.h
@@ -22,19 +22,19 @@
#ifndef M4_RIDDLE_ROOMS_SECTION6_ROOM623_H
#define M4_RIDDLE_ROOMS_SECTION6_ROOM623_H
-#include "m4/riddle/rooms/room.h"
+#include "m4/riddle/rooms/section6/section6_maze.h"
namespace M4 {
namespace Riddle {
namespace Rooms {
-class Room623 : public Room {
+class Room623 : public Maze {
public:
- Room623() : Room() {}
+ Room623() : Maze() {}
~Room623() override {}
void init() override;
- void daemon() override;
+ void parser() override;
};
} // namespace Rooms
diff --git a/engines/m4/riddle/rooms/section6/room624.cpp b/engines/m4/riddle/rooms/section6/room624.cpp
index c2aad3e4038..6755f3deb4d 100644
--- a/engines/m4/riddle/rooms/section6/room624.cpp
+++ b/engines/m4/riddle/rooms/section6/room624.cpp
@@ -30,7 +30,11 @@ namespace Rooms {
void Room624::init() {
}
-void Room624::daemon() {
+void Room624::parser() {
+ Maze::parser();
+ checkExitLeft(623);
+ checkExitRight(625);
+ checkExitUp(630);
}
} // namespace Rooms
diff --git a/engines/m4/riddle/rooms/section6/room624.h b/engines/m4/riddle/rooms/section6/room624.h
index f394ed3a2d9..62ad2279559 100644
--- a/engines/m4/riddle/rooms/section6/room624.h
+++ b/engines/m4/riddle/rooms/section6/room624.h
@@ -22,19 +22,19 @@
#ifndef M4_RIDDLE_ROOMS_SECTION6_ROOM624_H
#define M4_RIDDLE_ROOMS_SECTION6_ROOM624_H
-#include "m4/riddle/rooms/room.h"
+#include "m4/riddle/rooms/section6/section6_maze.h"
namespace M4 {
namespace Riddle {
namespace Rooms {
-class Room624 : public Room {
+class Room624 : public Maze {
public:
- Room624() : Room() {}
+ Room624() : Maze() {}
~Room624() override {}
void init() override;
- void daemon() override;
+ void parser() override;
};
} // namespace Rooms
diff --git a/engines/m4/riddle/rooms/section6/room625.cpp b/engines/m4/riddle/rooms/section6/room625.cpp
index 8949b25670d..b92f072c587 100644
--- a/engines/m4/riddle/rooms/section6/room625.cpp
+++ b/engines/m4/riddle/rooms/section6/room625.cpp
@@ -30,7 +30,22 @@ namespace Rooms {
void Room625::init() {
}
-void Room625::daemon() {
+void Room625::parser() {
+ Maze::parser();
+
+ if (player_said("journal", "STARFISH")) {
+ if (_G(flags)[V208]) {
+ digi_play("203r54", 1);
+ } else {
+ if (_G(kernel).trigger == 6)
+ _G(flags)[V208] = 1;
+ sendWSMessage_multi(0);
+ }
+
+ _G(player).command_ready = false;
+ } else {
+ checkExitLeft(624);
+ }
}
} // namespace Rooms
diff --git a/engines/m4/riddle/rooms/section6/room625.h b/engines/m4/riddle/rooms/section6/room625.h
index 9183ae3c0ef..537aec35c54 100644
--- a/engines/m4/riddle/rooms/section6/room625.h
+++ b/engines/m4/riddle/rooms/section6/room625.h
@@ -22,19 +22,19 @@
#ifndef M4_RIDDLE_ROOMS_SECTION6_ROOM625_H
#define M4_RIDDLE_ROOMS_SECTION6_ROOM625_H
-#include "m4/riddle/rooms/room.h"
+#include "m4/riddle/rooms/section6/section6_maze.h"
namespace M4 {
namespace Riddle {
namespace Rooms {
-class Room625 : public Room {
+class Room625 : public Maze {
public:
- Room625() : Room() {}
+ Room625() : Maze() {}
~Room625() override {}
void init() override;
- void daemon() override;
+ void parser() override;
};
} // namespace Rooms
diff --git a/engines/m4/riddle/rooms/section6/room626.cpp b/engines/m4/riddle/rooms/section6/room626.cpp
index 772e352e7cc..1f0757e8fb1 100644
--- a/engines/m4/riddle/rooms/section6/room626.cpp
+++ b/engines/m4/riddle/rooms/section6/room626.cpp
@@ -30,7 +30,24 @@ namespace Rooms {
void Room626::init() {
}
-void Room626::daemon() {
+void Room626::parser() {
+ Maze::parser();
+
+ if (player_said("journal", "SEAHORSE")) {
+ if (_G(flags)[V209]) {
+ digi_play("203r54", 1);
+ } else {
+ if (_G(kernel).trigger == 6)
+ _G(flags)[V209] = 1;
+ sendWSMessage_multi(0);
+ }
+
+ _G(player).command_ready = false;
+ } else {
+ checkExitRight(627);
+ checkExitUp(631);
+ checkExitDown(620);
+ }
}
} // namespace Rooms
diff --git a/engines/m4/riddle/rooms/section6/room626.h b/engines/m4/riddle/rooms/section6/room626.h
index 7cc399ac7b4..2d463f57af0 100644
--- a/engines/m4/riddle/rooms/section6/room626.h
+++ b/engines/m4/riddle/rooms/section6/room626.h
@@ -22,19 +22,19 @@
#ifndef M4_RIDDLE_ROOMS_SECTION6_ROOM626_H
#define M4_RIDDLE_ROOMS_SECTION6_ROOM626_H
-#include "m4/riddle/rooms/room.h"
+#include "m4/riddle/rooms/section6/section6_maze.h"
namespace M4 {
namespace Riddle {
namespace Rooms {
-class Room626 : public Room {
+class Room626 : public Maze {
public:
- Room626() : Room() {}
+ Room626() : Maze() {}
~Room626() override {}
void init() override;
- void daemon() override;
+ void parser() override;
};
} // namespace Rooms
diff --git a/engines/m4/riddle/rooms/section6/room627.cpp b/engines/m4/riddle/rooms/section6/room627.cpp
index d6f2a4bf4d2..013bb1fdcd8 100644
--- a/engines/m4/riddle/rooms/section6/room627.cpp
+++ b/engines/m4/riddle/rooms/section6/room627.cpp
@@ -30,7 +30,13 @@ namespace Rooms {
void Room627::init() {
}
-void Room627::daemon() {
+void Room627::parser() {
+ Maze::parser();
+
+ checkExitLeft(626);
+ checkExitRight(628);
+ checkExitUp(632);
+ checkExitDown(621);
}
} // namespace Rooms
diff --git a/engines/m4/riddle/rooms/section6/room627.h b/engines/m4/riddle/rooms/section6/room627.h
index f37547ffcfa..dd7a6ef5078 100644
--- a/engines/m4/riddle/rooms/section6/room627.h
+++ b/engines/m4/riddle/rooms/section6/room627.h
@@ -22,19 +22,19 @@
#ifndef M4_RIDDLE_ROOMS_SECTION6_ROOM627_H
#define M4_RIDDLE_ROOMS_SECTION6_ROOM627_H
-#include "m4/riddle/rooms/room.h"
+#include "m4/riddle/rooms/section6/section6_maze.h"
namespace M4 {
namespace Riddle {
namespace Rooms {
-class Room627 : public Room {
+class Room627 : public Maze {
public:
- Room627() : Room() {}
+ Room627() : Maze() {}
~Room627() override {}
void init() override;
- void daemon() override;
+ void parser() override;
};
} // namespace Rooms
diff --git a/engines/m4/riddle/rooms/section6/room628.cpp b/engines/m4/riddle/rooms/section6/room628.cpp
index 366e98780ab..c3edc10a315 100644
--- a/engines/m4/riddle/rooms/section6/room628.cpp
+++ b/engines/m4/riddle/rooms/section6/room628.cpp
@@ -30,7 +30,13 @@ namespace Rooms {
void Room628::init() {
}
-void Room628::daemon() {
+void Room628::parser() {
+ Maze::parser();
+
+ checkExitLeft(627);
+ checkExitRight(629);
+ checkExitUp(633);
+ checkExitDown(622);
}
} // namespace Rooms
diff --git a/engines/m4/riddle/rooms/section6/room628.h b/engines/m4/riddle/rooms/section6/room628.h
index ea2ee845315..37d054fb1b0 100644
--- a/engines/m4/riddle/rooms/section6/room628.h
+++ b/engines/m4/riddle/rooms/section6/room628.h
@@ -22,19 +22,19 @@
#ifndef M4_RIDDLE_ROOMS_SECTION6_ROOM628_H
#define M4_RIDDLE_ROOMS_SECTION6_ROOM628_H
-#include "m4/riddle/rooms/room.h"
+#include "m4/riddle/rooms/section6/section6_maze.h"
namespace M4 {
namespace Riddle {
namespace Rooms {
-class Room628 : public Room {
+class Room628 : public Maze {
public:
- Room628() : Room() {}
+ Room628() : Maze() {}
~Room628() override {}
void init() override;
- void daemon() override;
+ void parser() override;
};
} // namespace Rooms
diff --git a/engines/m4/riddle/rooms/section6/room629.cpp b/engines/m4/riddle/rooms/section6/room629.cpp
index 17ae37cbd03..f3536dabb22 100644
--- a/engines/m4/riddle/rooms/section6/room629.cpp
+++ b/engines/m4/riddle/rooms/section6/room629.cpp
@@ -30,7 +30,13 @@ namespace Rooms {
void Room629::init() {
}
-void Room629::daemon() {
+void Room629::parser() {
+ Maze::parser();
+
+ checkExitLeft(628);
+ checkExitRight(630);
+ checkExitUp(634);
+ checkExitDown(623);
}
} // namespace Rooms
diff --git a/engines/m4/riddle/rooms/section6/room629.h b/engines/m4/riddle/rooms/section6/room629.h
index 6c2524ab7ea..811bcb94f18 100644
--- a/engines/m4/riddle/rooms/section6/room629.h
+++ b/engines/m4/riddle/rooms/section6/room629.h
@@ -22,19 +22,19 @@
#ifndef M4_RIDDLE_ROOMS_SECTION6_ROOM629_H
#define M4_RIDDLE_ROOMS_SECTION6_ROOM629_H
-#include "m4/riddle/rooms/room.h"
+#include "m4/riddle/rooms/section6/section6_maze.h"
namespace M4 {
namespace Riddle {
namespace Rooms {
-class Room629 : public Room {
+class Room629 : public Maze {
public:
- Room629() : Room() {}
+ Room629() : Maze() {}
~Room629() override {}
void init() override;
- void daemon() override;
+ void parser() override;
};
} // namespace Rooms
diff --git a/engines/m4/riddle/rooms/section6/room630.cpp b/engines/m4/riddle/rooms/section6/room630.cpp
index 1f6a8521e43..8bfca3a44a0 100644
--- a/engines/m4/riddle/rooms/section6/room630.cpp
+++ b/engines/m4/riddle/rooms/section6/room630.cpp
@@ -30,7 +30,12 @@ namespace Rooms {
void Room630::init() {
}
-void Room630::daemon() {
+void Room630::parser() {
+ Maze::parser();
+
+ checkExitLeft(629);
+ checkExitUp(635);
+ checkExitDown(624);
}
} // namespace Rooms
diff --git a/engines/m4/riddle/rooms/section6/room630.h b/engines/m4/riddle/rooms/section6/room630.h
index 152e8de3b9c..e790090f24c 100644
--- a/engines/m4/riddle/rooms/section6/room630.h
+++ b/engines/m4/riddle/rooms/section6/room630.h
@@ -22,19 +22,19 @@
#ifndef M4_RIDDLE_ROOMS_SECTION6_ROOM630_H
#define M4_RIDDLE_ROOMS_SECTION6_ROOM630_H
-#include "m4/riddle/rooms/room.h"
+#include "m4/riddle/rooms/section6/section6_maze.h"
namespace M4 {
namespace Riddle {
namespace Rooms {
-class Room630 : public Room {
+class Room630 : public Maze {
public:
- Room630() : Room() {}
+ Room630() : Maze() {}
~Room630() override {}
void init() override;
- void daemon() override;
+ void parser() override;
};
} // namespace Rooms
diff --git a/engines/m4/riddle/rooms/section6/room631.cpp b/engines/m4/riddle/rooms/section6/room631.cpp
index f70580401bc..26bbc867ed9 100644
--- a/engines/m4/riddle/rooms/section6/room631.cpp
+++ b/engines/m4/riddle/rooms/section6/room631.cpp
@@ -30,7 +30,12 @@ namespace Rooms {
void Room631::init() {
}
-void Room631::daemon() {
+void Room631::parser() {
+ Maze::parser();
+
+ checkExitRight(632);
+ checkExitUp(637);
+ checkExitDown(626);
}
} // namespace Rooms
diff --git a/engines/m4/riddle/rooms/section6/room631.h b/engines/m4/riddle/rooms/section6/room631.h
index 4a4186c3988..8b945389196 100644
--- a/engines/m4/riddle/rooms/section6/room631.h
+++ b/engines/m4/riddle/rooms/section6/room631.h
@@ -22,19 +22,19 @@
#ifndef M4_RIDDLE_ROOMS_SECTION6_ROOM631_H
#define M4_RIDDLE_ROOMS_SECTION6_ROOM631_H
-#include "m4/riddle/rooms/room.h"
+#include "m4/riddle/rooms/section6/section6_maze.h"
namespace M4 {
namespace Riddle {
namespace Rooms {
-class Room631 : public Room {
+class Room631 : public Maze {
public:
- Room631() : Room() {}
+ Room631() : Maze() {}
~Room631() override {}
void init() override;
- void daemon() override;
+ void parser() override;
};
} // namespace Rooms
diff --git a/engines/m4/riddle/rooms/section6/room632.cpp b/engines/m4/riddle/rooms/section6/room632.cpp
index 6f823d82461..fa4d0f98f80 100644
--- a/engines/m4/riddle/rooms/section6/room632.cpp
+++ b/engines/m4/riddle/rooms/section6/room632.cpp
@@ -30,7 +30,13 @@ namespace Rooms {
void Room632::init() {
}
-void Room632::daemon() {
+void Room632::parser() {
+ Maze::parser();
+
+ checkExitLeft(631);
+ checkExitRight(633);
+ checkExitUp(638);
+ checkExitDown(627);
}
} // namespace Rooms
diff --git a/engines/m4/riddle/rooms/section6/room632.h b/engines/m4/riddle/rooms/section6/room632.h
index 129290cd8f9..5fe18dcc6c3 100644
--- a/engines/m4/riddle/rooms/section6/room632.h
+++ b/engines/m4/riddle/rooms/section6/room632.h
@@ -22,19 +22,19 @@
#ifndef M4_RIDDLE_ROOMS_SECTION6_ROOM632_H
#define M4_RIDDLE_ROOMS_SECTION6_ROOM632_H
-#include "m4/riddle/rooms/room.h"
+#include "m4/riddle/rooms/section6/section6_maze.h"
namespace M4 {
namespace Riddle {
namespace Rooms {
-class Room632 : public Room {
+class Room632 : public Maze {
public:
- Room632() : Room() {}
+ Room632() : Maze() {}
~Room632() override {}
void init() override;
- void daemon() override;
+ void parser() override;
};
} // namespace Rooms
diff --git a/engines/m4/riddle/rooms/section6/room633.cpp b/engines/m4/riddle/rooms/section6/room633.cpp
index ee31e8c3376..8875a548430 100644
--- a/engines/m4/riddle/rooms/section6/room633.cpp
+++ b/engines/m4/riddle/rooms/section6/room633.cpp
@@ -30,7 +30,13 @@ namespace Rooms {
void Room633::init() {
}
-void Room633::daemon() {
+void Room633::parser() {
+ Maze::parser();
+
+ checkExitLeft(632);
+ checkExitRight(634);
+ checkExitUp(607);
+ checkExitDown(628);
}
} // namespace Rooms
diff --git a/engines/m4/riddle/rooms/section6/room633.h b/engines/m4/riddle/rooms/section6/room633.h
index 5130f28c25c..40b787c4933 100644
--- a/engines/m4/riddle/rooms/section6/room633.h
+++ b/engines/m4/riddle/rooms/section6/room633.h
@@ -22,19 +22,19 @@
#ifndef M4_RIDDLE_ROOMS_SECTION6_ROOM633_H
#define M4_RIDDLE_ROOMS_SECTION6_ROOM633_H
-#include "m4/riddle/rooms/room.h"
+#include "m4/riddle/rooms/section6/section6_maze.h"
namespace M4 {
namespace Riddle {
namespace Rooms {
-class Room633 : public Room {
+class Room633 : public Maze {
public:
- Room633() : Room() {}
+ Room633() : Maze() {}
~Room633() override {}
void init() override;
- void daemon() override;
+ void parser() override;
};
} // namespace Rooms
diff --git a/engines/m4/riddle/rooms/section6/room634.cpp b/engines/m4/riddle/rooms/section6/room634.cpp
index 333bf946491..5a4748a5fbd 100644
--- a/engines/m4/riddle/rooms/section6/room634.cpp
+++ b/engines/m4/riddle/rooms/section6/room634.cpp
@@ -30,7 +30,13 @@ namespace Rooms {
void Room634::init() {
}
-void Room634::daemon() {
+void Room634::parser() {
+ Maze::parser();
+
+ checkExitLeft(633);
+ checkExitRight(635);
+ checkExitUp(640);
+ checkExitDown(629);
}
} // namespace Rooms
diff --git a/engines/m4/riddle/rooms/section6/room634.h b/engines/m4/riddle/rooms/section6/room634.h
index 2fe9e6d58ee..57224692c62 100644
--- a/engines/m4/riddle/rooms/section6/room634.h
+++ b/engines/m4/riddle/rooms/section6/room634.h
@@ -22,19 +22,19 @@
#ifndef M4_RIDDLE_ROOMS_SECTION6_ROOM634_H
#define M4_RIDDLE_ROOMS_SECTION6_ROOM634_H
-#include "m4/riddle/rooms/room.h"
+#include "m4/riddle/rooms/section6/section6_maze.h"
namespace M4 {
namespace Riddle {
namespace Rooms {
-class Room634 : public Room {
+class Room634 : public Maze {
public:
- Room634() : Room() {}
+ Room634() : Maze() {}
~Room634() override {}
void init() override;
- void daemon() override;
+ void parser() override;
};
} // namespace Rooms
diff --git a/engines/m4/riddle/rooms/section6/room635.cpp b/engines/m4/riddle/rooms/section6/room635.cpp
index 1022a5ea13b..aeccb5871f6 100644
--- a/engines/m4/riddle/rooms/section6/room635.cpp
+++ b/engines/m4/riddle/rooms/section6/room635.cpp
@@ -30,7 +30,13 @@ namespace Rooms {
void Room635::init() {
}
-void Room635::daemon() {
+void Room635::parser() {
+ Maze::parser();
+
+ checkExitLeft(634);
+ checkExitRight(636);
+ checkExitUp(641);
+ checkExitDown(630);
}
} // namespace Rooms
diff --git a/engines/m4/riddle/rooms/section6/room635.h b/engines/m4/riddle/rooms/section6/room635.h
index 8a3cdc399cb..4d0eaaaebd4 100644
--- a/engines/m4/riddle/rooms/section6/room635.h
+++ b/engines/m4/riddle/rooms/section6/room635.h
@@ -22,19 +22,19 @@
#ifndef M4_RIDDLE_ROOMS_SECTION6_ROOM635_H
#define M4_RIDDLE_ROOMS_SECTION6_ROOM635_H
-#include "m4/riddle/rooms/room.h"
+#include "m4/riddle/rooms/section6/section6_maze.h"
namespace M4 {
namespace Riddle {
namespace Rooms {
-class Room635 : public Room {
+class Room635 : public Maze {
public:
- Room635() : Room() {}
+ Room635() : Maze() {}
~Room635() override {}
void init() override;
- void daemon() override;
+ void parser() override;
};
} // namespace Rooms
diff --git a/engines/m4/riddle/rooms/section6/room636.cpp b/engines/m4/riddle/rooms/section6/room636.cpp
index dc77b8b8abe..e215271245e 100644
--- a/engines/m4/riddle/rooms/section6/room636.cpp
+++ b/engines/m4/riddle/rooms/section6/room636.cpp
@@ -30,7 +30,11 @@ namespace Rooms {
void Room636::init() {
}
-void Room636::daemon() {
+void Room636::parser() {
+ Maze::parser();
+
+ checkExitLeft(635);
+ checkExitUp(642);
}
} // namespace Rooms
diff --git a/engines/m4/riddle/rooms/section6/room636.h b/engines/m4/riddle/rooms/section6/room636.h
index 4a86f7c3225..6168411a28e 100644
--- a/engines/m4/riddle/rooms/section6/room636.h
+++ b/engines/m4/riddle/rooms/section6/room636.h
@@ -22,19 +22,19 @@
#ifndef M4_RIDDLE_ROOMS_SECTION6_ROOM636_H
#define M4_RIDDLE_ROOMS_SECTION6_ROOM636_H
-#include "m4/riddle/rooms/room.h"
+#include "m4/riddle/rooms/section6/section6_maze.h"
namespace M4 {
namespace Riddle {
namespace Rooms {
-class Room636 : public Room {
+class Room636 : public Maze {
public:
- Room636() : Room() {}
+ Room636() : Maze() {}
~Room636() override {}
void init() override;
- void daemon() override;
+ void parser() override;
};
} // namespace Rooms
diff --git a/engines/m4/riddle/rooms/section6/room637.cpp b/engines/m4/riddle/rooms/section6/room637.cpp
index af20d1a120f..f557b19f785 100644
--- a/engines/m4/riddle/rooms/section6/room637.cpp
+++ b/engines/m4/riddle/rooms/section6/room637.cpp
@@ -30,7 +30,12 @@ namespace Rooms {
void Room637::init() {
}
-void Room637::daemon() {
+void Room637::parser() {
+ Maze::parser();
+
+ checkExitRight(638);
+ checkExitUp(643);
+ checkExitDown(631);
}
} // namespace Rooms
diff --git a/engines/m4/riddle/rooms/section6/room637.h b/engines/m4/riddle/rooms/section6/room637.h
index 9d4f160548c..23cddf5c0bf 100644
--- a/engines/m4/riddle/rooms/section6/room637.h
+++ b/engines/m4/riddle/rooms/section6/room637.h
@@ -22,19 +22,19 @@
#ifndef M4_RIDDLE_ROOMS_SECTION6_ROOM637_H
#define M4_RIDDLE_ROOMS_SECTION6_ROOM637_H
-#include "m4/riddle/rooms/room.h"
+#include "m4/riddle/rooms/section6/section6_maze.h"
namespace M4 {
namespace Riddle {
namespace Rooms {
-class Room637 : public Room {
+class Room637 : public Maze {
public:
- Room637() : Room() {}
+ Room637() : Maze() {}
~Room637() override {}
void init() override;
- void daemon() override;
+ void parser() override;
};
} // namespace Rooms
diff --git a/engines/m4/riddle/rooms/section6/room638.cpp b/engines/m4/riddle/rooms/section6/room638.cpp
index 0275e71e560..2a7436a6d93 100644
--- a/engines/m4/riddle/rooms/section6/room638.cpp
+++ b/engines/m4/riddle/rooms/section6/room638.cpp
@@ -30,7 +30,13 @@ namespace Rooms {
void Room638::init() {
}
-void Room638::daemon() {
+void Room638::parser() {
+ Maze::parser();
+
+ checkExitLeft(637);
+ checkExitRight(607);
+ checkExitUp(644);
+ checkExitDown(632);
}
} // namespace Rooms
diff --git a/engines/m4/riddle/rooms/section6/room638.h b/engines/m4/riddle/rooms/section6/room638.h
index ce09b387a7c..3e3e2118ad0 100644
--- a/engines/m4/riddle/rooms/section6/room638.h
+++ b/engines/m4/riddle/rooms/section6/room638.h
@@ -22,19 +22,19 @@
#ifndef M4_RIDDLE_ROOMS_SECTION6_ROOM638_H
#define M4_RIDDLE_ROOMS_SECTION6_ROOM638_H
-#include "m4/riddle/rooms/room.h"
+#include "m4/riddle/rooms/section6/section6_maze.h"
namespace M4 {
namespace Riddle {
namespace Rooms {
-class Room638 : public Room {
+class Room638 : public Maze {
public:
- Room638() : Room() {}
+ Room638() : Maze() {}
~Room638() override {}
void init() override;
- void daemon() override;
+ void parser() override;
};
} // namespace Rooms
diff --git a/engines/m4/riddle/rooms/section6/room640.cpp b/engines/m4/riddle/rooms/section6/room640.cpp
index aa8674b6e64..0f7b95545bf 100644
--- a/engines/m4/riddle/rooms/section6/room640.cpp
+++ b/engines/m4/riddle/rooms/section6/room640.cpp
@@ -30,7 +30,13 @@ namespace Rooms {
void Room640::init() {
}
-void Room640::daemon() {
+void Room640::parser() {
+ Maze::parser();
+
+ checkExitLeft(607);
+ checkExitRight(641);
+ checkExitUp(646);
+ checkExitDown(634);
}
} // namespace Rooms
diff --git a/engines/m4/riddle/rooms/section6/room640.h b/engines/m4/riddle/rooms/section6/room640.h
index 13e9e674e2c..1b038cdd41f 100644
--- a/engines/m4/riddle/rooms/section6/room640.h
+++ b/engines/m4/riddle/rooms/section6/room640.h
@@ -22,19 +22,19 @@
#ifndef M4_RIDDLE_ROOMS_SECTION6_ROOM640_H
#define M4_RIDDLE_ROOMS_SECTION6_ROOM640_H
-#include "m4/riddle/rooms/room.h"
+#include "m4/riddle/rooms/section6/section6_maze.h"
namespace M4 {
namespace Riddle {
namespace Rooms {
-class Room640 : public Room {
+class Room640 : public Maze {
public:
- Room640() : Room() {}
+ Room640() : Maze() {}
~Room640() override {}
void init() override;
- void daemon() override;
+ void parser() override;
};
} // namespace Rooms
diff --git a/engines/m4/riddle/rooms/section6/room641.cpp b/engines/m4/riddle/rooms/section6/room641.cpp
index fac67eabe8a..18ef54cbffa 100644
--- a/engines/m4/riddle/rooms/section6/room641.cpp
+++ b/engines/m4/riddle/rooms/section6/room641.cpp
@@ -30,7 +30,13 @@ namespace Rooms {
void Room641::init() {
}
-void Room641::daemon() {
+void Room641::parser() {
+ Maze::parser();
+
+ checkExitLeft(640);
+ checkExitRight(642);
+ checkExitUp(647);
+ checkExitDown(635);
}
} // namespace Rooms
diff --git a/engines/m4/riddle/rooms/section6/room641.h b/engines/m4/riddle/rooms/section6/room641.h
index ec1627fdb25..e5b7bc3c325 100644
--- a/engines/m4/riddle/rooms/section6/room641.h
+++ b/engines/m4/riddle/rooms/section6/room641.h
@@ -22,19 +22,19 @@
#ifndef M4_RIDDLE_ROOMS_SECTION6_ROOM641_H
#define M4_RIDDLE_ROOMS_SECTION6_ROOM641_H
-#include "m4/riddle/rooms/room.h"
+#include "m4/riddle/rooms/section6/section6_maze.h"
namespace M4 {
namespace Riddle {
namespace Rooms {
-class Room641 : public Room {
+class Room641 : public Maze {
public:
- Room641() : Room() {}
+ Room641() : Maze() {}
~Room641() override {}
void init() override;
- void daemon() override;
+ void parser() override;
};
} // namespace Rooms
diff --git a/engines/m4/riddle/rooms/section6/room642.cpp b/engines/m4/riddle/rooms/section6/room642.cpp
index 7bf3ce59099..5eec57f98b9 100644
--- a/engines/m4/riddle/rooms/section6/room642.cpp
+++ b/engines/m4/riddle/rooms/section6/room642.cpp
@@ -30,7 +30,12 @@ namespace Rooms {
void Room642::init() {
}
-void Room642::daemon() {
+void Room642::parser() {
+ Maze::parser();
+
+ checkExitLeft(641);
+ checkExitUp(648);
+ checkExitDown(636);
}
} // namespace Rooms
diff --git a/engines/m4/riddle/rooms/section6/room642.h b/engines/m4/riddle/rooms/section6/room642.h
index 1c121172bd9..6ee5152b2ef 100644
--- a/engines/m4/riddle/rooms/section6/room642.h
+++ b/engines/m4/riddle/rooms/section6/room642.h
@@ -22,19 +22,19 @@
#ifndef M4_RIDDLE_ROOMS_SECTION6_ROOM642_H
#define M4_RIDDLE_ROOMS_SECTION6_ROOM642_H
-#include "m4/riddle/rooms/room.h"
+#include "m4/riddle/rooms/section6/section6_maze.h"
namespace M4 {
namespace Riddle {
namespace Rooms {
-class Room642 : public Room {
+class Room642 : public Maze {
public:
- Room642() : Room() {}
+ Room642() : Maze() {}
~Room642() override {}
void init() override;
- void daemon() override;
+ void parser() override;
};
} // namespace Rooms
diff --git a/engines/m4/riddle/rooms/section6/room643.cpp b/engines/m4/riddle/rooms/section6/room643.cpp
index 5a8483d9bec..574467b3f59 100644
--- a/engines/m4/riddle/rooms/section6/room643.cpp
+++ b/engines/m4/riddle/rooms/section6/room643.cpp
@@ -30,7 +30,12 @@ namespace Rooms {
void Room643::init() {
}
-void Room643::daemon() {
+void Room643::parser() {
+ Maze::parser();
+
+ checkExitRight(644);
+ checkExitUp(649);
+ checkExitDown(637);
}
} // namespace Rooms
diff --git a/engines/m4/riddle/rooms/section6/room643.h b/engines/m4/riddle/rooms/section6/room643.h
index 17f50d8af5b..39722981af2 100644
--- a/engines/m4/riddle/rooms/section6/room643.h
+++ b/engines/m4/riddle/rooms/section6/room643.h
@@ -22,19 +22,19 @@
#ifndef M4_RIDDLE_ROOMS_SECTION6_ROOM643_H
#define M4_RIDDLE_ROOMS_SECTION6_ROOM643_H
-#include "m4/riddle/rooms/room.h"
+#include "m4/riddle/rooms/section6/section6_maze.h"
namespace M4 {
namespace Riddle {
namespace Rooms {
-class Room643 : public Room {
+class Room643 : public Maze {
public:
- Room643() : Room() {}
+ Room643() : Maze() {}
~Room643() override {}
void init() override;
- void daemon() override;
+ void parser() override;
};
} // namespace Rooms
diff --git a/engines/m4/riddle/rooms/section6/room644.cpp b/engines/m4/riddle/rooms/section6/room644.cpp
index 21b64dd415f..8fbf0ce47df 100644
--- a/engines/m4/riddle/rooms/section6/room644.cpp
+++ b/engines/m4/riddle/rooms/section6/room644.cpp
@@ -30,7 +30,24 @@ namespace Rooms {
void Room644::init() {
}
-void Room644::daemon() {
+void Room644::parser() {
+ Maze::parser();
+
+ if (player_said("journal", "SCALLOP")) {
+ if (_G(flags)[V207]) {
+ digi_play("203r54", 1);
+ } else {
+ if (_G(kernel).trigger == 6)
+ _G(flags)[V207] = 1;
+ sendWSMessage_multi(0);
+ }
+
+ _G(player).command_ready = false;
+ } else {
+ checkExitLeft(643);
+ checkExitRight(645);
+ checkExitDown(638);
+ }
}
} // namespace Rooms
diff --git a/engines/m4/riddle/rooms/section6/room644.h b/engines/m4/riddle/rooms/section6/room644.h
index 43f8cb6b608..4f3ddc85342 100644
--- a/engines/m4/riddle/rooms/section6/room644.h
+++ b/engines/m4/riddle/rooms/section6/room644.h
@@ -22,19 +22,19 @@
#ifndef M4_RIDDLE_ROOMS_SECTION6_ROOM644_H
#define M4_RIDDLE_ROOMS_SECTION6_ROOM644_H
-#include "m4/riddle/rooms/room.h"
+#include "m4/riddle/rooms/section6/section6_maze.h"
namespace M4 {
namespace Riddle {
namespace Rooms {
-class Room644 : public Room {
+class Room644 : public Maze {
public:
- Room644() : Room() {}
+ Room644() : Maze() {}
~Room644() override {}
void init() override;
- void daemon() override;
+ void parser() override;
};
} // namespace Rooms
diff --git a/engines/m4/riddle/rooms/section6/room645.cpp b/engines/m4/riddle/rooms/section6/room645.cpp
index d859e106c5e..35eda47dc0f 100644
--- a/engines/m4/riddle/rooms/section6/room645.cpp
+++ b/engines/m4/riddle/rooms/section6/room645.cpp
@@ -30,7 +30,12 @@ namespace Rooms {
void Room645::init() {
}
-void Room645::daemon() {
+void Room645::parser() {
+ Maze::parser();
+
+ checkExitLeft(644);
+ checkExitRight(646);
+ checkExitDown(607);
}
} // namespace Rooms
diff --git a/engines/m4/riddle/rooms/section6/room645.h b/engines/m4/riddle/rooms/section6/room645.h
index edb12f64631..19ce3ca7fa0 100644
--- a/engines/m4/riddle/rooms/section6/room645.h
+++ b/engines/m4/riddle/rooms/section6/room645.h
@@ -22,19 +22,19 @@
#ifndef M4_RIDDLE_ROOMS_SECTION6_ROOM645_H
#define M4_RIDDLE_ROOMS_SECTION6_ROOM645_H
-#include "m4/riddle/rooms/room.h"
+#include "m4/riddle/rooms/section6/section6_maze.h"
namespace M4 {
namespace Riddle {
namespace Rooms {
-class Room645 : public Room {
+class Room645 : public Maze {
public:
- Room645() : Room() {}
+ Room645() : Maze() {}
~Room645() override {}
void init() override;
- void daemon() override;
+ void parser() override;
};
} // namespace Rooms
diff --git a/engines/m4/riddle/rooms/section6/room646.cpp b/engines/m4/riddle/rooms/section6/room646.cpp
index 87a2c9378fe..e4fd0e267ad 100644
--- a/engines/m4/riddle/rooms/section6/room646.cpp
+++ b/engines/m4/riddle/rooms/section6/room646.cpp
@@ -30,7 +30,13 @@ namespace Rooms {
void Room646::init() {
}
-void Room646::daemon() {
+void Room646::parser() {
+ Maze::parser();
+
+ checkExitLeft(645);
+ checkExitRight(647);
+ checkExitUp(650);
+ checkExitDown(640);
}
} // namespace Rooms
diff --git a/engines/m4/riddle/rooms/section6/room646.h b/engines/m4/riddle/rooms/section6/room646.h
index 194aade8bdd..ed5d7e6adbe 100644
--- a/engines/m4/riddle/rooms/section6/room646.h
+++ b/engines/m4/riddle/rooms/section6/room646.h
@@ -22,19 +22,19 @@
#ifndef M4_RIDDLE_ROOMS_SECTION6_ROOM646_H
#define M4_RIDDLE_ROOMS_SECTION6_ROOM646_H
-#include "m4/riddle/rooms/room.h"
+#include "m4/riddle/rooms/section6/section6_maze.h"
namespace M4 {
namespace Riddle {
namespace Rooms {
-class Room646 : public Room {
+class Room646 : public Maze {
public:
- Room646() : Room() {}
+ Room646() : Maze() {}
~Room646() override {}
void init() override;
- void daemon() override;
+ void parser() override;
};
} // namespace Rooms
diff --git a/engines/m4/riddle/rooms/section6/room647.cpp b/engines/m4/riddle/rooms/section6/room647.cpp
index ab29d1ff9aa..81ab765fc5e 100644
--- a/engines/m4/riddle/rooms/section6/room647.cpp
+++ b/engines/m4/riddle/rooms/section6/room647.cpp
@@ -30,7 +30,38 @@ namespace Rooms {
void Room647::init() {
}
-void Room647::daemon() {
+void Room647::parser() {
+ Maze::parser();
+ checkExitLeft(646);
+ checkExitRight(648);
+ checkExitUp(651);
+
+ if (player_said("up2")) {
+ _G(flags)[V206] = 1;
+
+ switch (_G(kernel).trigger) {
+ case -1:
+ player_set_commands_allowed(false);
+ disable_player_commands_and_fade_init(1);
+ _G(player).command_ready = false;
+ break;
+
+ case 1:
+ digi_stop(1);
+ digi_stop(2);
+ adv_kill_digi_between_rooms(false);
+ digi_play_loop("950_s28", 3);
+ _G(game).setRoom(651);
+ _G(player).command_ready = false;
+ break;
+
+ default:
+ checkExitDown(641);
+ break;
+ }
+ } else {
+ checkExitDown(641);
+ }
}
} // namespace Rooms
diff --git a/engines/m4/riddle/rooms/section6/room647.h b/engines/m4/riddle/rooms/section6/room647.h
index bee302ce500..7f4ab84363f 100644
--- a/engines/m4/riddle/rooms/section6/room647.h
+++ b/engines/m4/riddle/rooms/section6/room647.h
@@ -22,19 +22,19 @@
#ifndef M4_RIDDLE_ROOMS_SECTION6_ROOM647_H
#define M4_RIDDLE_ROOMS_SECTION6_ROOM647_H
-#include "m4/riddle/rooms/room.h"
+#include "m4/riddle/rooms/section6/section6_maze.h"
namespace M4 {
namespace Riddle {
namespace Rooms {
-class Room647 : public Room {
+class Room647 : public Maze {
public:
- Room647() : Room() {}
+ Room647() : Maze() {}
~Room647() override {}
void init() override;
- void daemon() override;
+ void parser() override;
};
} // namespace Rooms
diff --git a/engines/m4/riddle/rooms/section6/room648.cpp b/engines/m4/riddle/rooms/section6/room648.cpp
index 2e3a753c5a5..423e6786c3a 100644
--- a/engines/m4/riddle/rooms/section6/room648.cpp
+++ b/engines/m4/riddle/rooms/section6/room648.cpp
@@ -30,7 +30,10 @@ namespace Rooms {
void Room648::init() {
}
-void Room648::daemon() {
+void Room648::parser() {
+ Maze::parser();
+ checkExitLeft(647);
+ checkExitDown(642);
}
} // namespace Rooms
diff --git a/engines/m4/riddle/rooms/section6/room648.h b/engines/m4/riddle/rooms/section6/room648.h
index 3dce08e9754..7c37e1bb310 100644
--- a/engines/m4/riddle/rooms/section6/room648.h
+++ b/engines/m4/riddle/rooms/section6/room648.h
@@ -22,19 +22,19 @@
#ifndef M4_RIDDLE_ROOMS_SECTION6_ROOM648_H
#define M4_RIDDLE_ROOMS_SECTION6_ROOM648_H
-#include "m4/riddle/rooms/room.h"
+#include "m4/riddle/rooms/section6/section6_maze.h"
namespace M4 {
namespace Riddle {
namespace Rooms {
-class Room648 : public Room {
+class Room648 : public Maze {
public:
- Room648() : Room() {}
+ Room648() : Maze() {}
~Room648() override {}
void init() override;
- void daemon() override;
+ void parser() override;
};
} // namespace Rooms
diff --git a/engines/m4/riddle/rooms/section6/room649.cpp b/engines/m4/riddle/rooms/section6/room649.cpp
index 03ec13003ff..df08416d129 100644
--- a/engines/m4/riddle/rooms/section6/room649.cpp
+++ b/engines/m4/riddle/rooms/section6/room649.cpp
@@ -30,7 +30,9 @@ namespace Rooms {
void Room649::init() {
}
-void Room649::daemon() {
+void Room649::parser() {
+ Maze::parser();
+ checkExitDown(643);
}
} // namespace Rooms
diff --git a/engines/m4/riddle/rooms/section6/room649.h b/engines/m4/riddle/rooms/section6/room649.h
index f0d6a07a957..9c7b553eafe 100644
--- a/engines/m4/riddle/rooms/section6/room649.h
+++ b/engines/m4/riddle/rooms/section6/room649.h
@@ -22,19 +22,19 @@
#ifndef M4_RIDDLE_ROOMS_SECTION6_ROOM649_H
#define M4_RIDDLE_ROOMS_SECTION6_ROOM649_H
-#include "m4/riddle/rooms/room.h"
+#include "m4/riddle/rooms/section6/section6_maze.h"
namespace M4 {
namespace Riddle {
namespace Rooms {
-class Room649 : public Room {
+class Room649 : public Maze {
public:
- Room649() : Room() {}
+ Room649() : Maze() {}
~Room649() override {}
void init() override;
- void daemon() override;
+ void parser() override;
};
} // namespace Rooms
diff --git a/engines/m4/riddle/rooms/section6/room650.cpp b/engines/m4/riddle/rooms/section6/room650.cpp
index ca830a3c829..fe56c183d89 100644
--- a/engines/m4/riddle/rooms/section6/room650.cpp
+++ b/engines/m4/riddle/rooms/section6/room650.cpp
@@ -30,7 +30,10 @@ namespace Rooms {
void Room650::init() {
}
-void Room650::daemon() {
+void Room650::parser() {
+ Maze::parser();
+ checkExitRight(651);
+ checkExitDown(646);
}
} // namespace Rooms
diff --git a/engines/m4/riddle/rooms/section6/room650.h b/engines/m4/riddle/rooms/section6/room650.h
index 56ce737b038..aa2106942ad 100644
--- a/engines/m4/riddle/rooms/section6/room650.h
+++ b/engines/m4/riddle/rooms/section6/room650.h
@@ -22,19 +22,19 @@
#ifndef M4_RIDDLE_ROOMS_SECTION6_ROOM650_H
#define M4_RIDDLE_ROOMS_SECTION6_ROOM650_H
-#include "m4/riddle/rooms/room.h"
+#include "m4/riddle/rooms/section6/section6_maze.h"
namespace M4 {
namespace Riddle {
namespace Rooms {
-class Room650 : public Room {
+class Room650 : public Maze {
public:
- Room650() : Room() {}
+ Room650() : Maze() {}
~Room650() override {}
void init() override;
- void daemon() override;
+ void parser() override;
};
} // namespace Rooms
diff --git a/engines/m4/riddle/rooms/section6/room651.cpp b/engines/m4/riddle/rooms/section6/room651.cpp
index e5b4efca628..7f760414516 100644
--- a/engines/m4/riddle/rooms/section6/room651.cpp
+++ b/engines/m4/riddle/rooms/section6/room651.cpp
@@ -30,7 +30,23 @@ namespace Rooms {
void Room651::init() {
}
-void Room651::daemon() {
+void Room651::parser() {
+ Maze::parser();
+
+ if (player_said("journal", "SHARK'S TOOTH")) {
+ if (_G(flags)[V201]) {
+ digi_play("203r54", 1);
+ } else {
+ if (_G(kernel).trigger == 6)
+ _G(flags)[V201] = 1;
+ sendWSMessage_multi(0);
+ }
+
+ _G(player).command_ready = false;
+ } else {
+ checkExitLeft(650);
+ checkExitDown(647);
+ }
}
} // namespace Rooms
diff --git a/engines/m4/riddle/rooms/section6/room651.h b/engines/m4/riddle/rooms/section6/room651.h
index 2909143cd4b..d3d0c13a480 100644
--- a/engines/m4/riddle/rooms/section6/room651.h
+++ b/engines/m4/riddle/rooms/section6/room651.h
@@ -22,19 +22,19 @@
#ifndef M4_RIDDLE_ROOMS_SECTION6_ROOM651_H
#define M4_RIDDLE_ROOMS_SECTION6_ROOM651_H
-#include "m4/riddle/rooms/room.h"
+#include "m4/riddle/rooms/section6/section6_maze.h"
namespace M4 {
namespace Riddle {
namespace Rooms {
-class Room651 : public Room {
+class Room651 : public Maze {
public:
- Room651() : Room() {}
+ Room651() : Maze() {}
~Room651() override {}
void init() override;
- void daemon() override;
+ void parser() override;
};
} // namespace Rooms
diff --git a/engines/m4/riddle/rooms/section6/section6_maze.cpp b/engines/m4/riddle/rooms/section6/section6_maze.cpp
new file mode 100644
index 00000000000..91b1a91a534
--- /dev/null
+++ b/engines/m4/riddle/rooms/section6/section6_maze.cpp
@@ -0,0 +1,100 @@
+/* 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/section6/section6_maze.h"
+#include "m4/graphics/gr_series.h"
+#include "m4/riddle/vars.h"
+
+namespace M4 {
+namespace Riddle {
+namespace Rooms {
+
+void Maze::preload() {
+ _G(player).walker_type = 1;
+ _G(player).shadow_type = 1;
+}
+
+void Maze::daemon() {
+ if (_G(kernel).trigger == 1) {
+ player_set_commands_allowed(true);
+ }
+}
+
+void Maze::parser() {
+ bool lookFlag = player_said_any("look", "look at");
+ bool takeFlag = player_said("take");
+
+ if (player_said("gear") && player_said("STATUE")) {
+ digi_play("623R02", 1, 255, -1, 623);
+ } else if (lookFlag && player_said("RED BOULDER")) {
+ digi_play("623R01", 1, 255, -1, 623);
+ } else if (lookFlag && player_said_any("GREY ROCK", "STONE")) {
+ digi_play("623R03", 1);
+ } else if (lookFlag && player_said("CLAY")) {
+ digi_play("623R04", 1);
+ } else if (lookFlag && player_said(" ")) {
+ digi_play("623R05", 1);
+ } else if (lookFlag && player_said("STARFISH")) {
+ digi_play("625R01", 1);
+ } else if (lookFlag && player_said("SEAHORSE")) {
+ digi_play("626R01", 1);
+ } else if (lookFlag && player_said("SCALLOP")) {
+ digi_play("644R01", 1);
+ } else if (lookFlag && player_said("SHARK'S TOOTH")) {
+ digi_play("651R01", 1);
+ } else if (takeFlag && player_said("clay")) {
+ digi_play("607r08", 1);
+ } else if (player_said("HORN/PULL CORD/WATER", "CLAY")) {
+ digi_play("com136", 1, 255, -1, 997);
+ } else {
+ return;
+ }
+
+ _G(player).command_ready = false;
+}
+
+void Maze::checkExit(const char *action, int newRoom) {
+ if (player_said(action)) {
+ switch (_G(kernel).trigger) {
+ case -1:
+ player_set_commands_allowed(false);
+ disable_player_commands_and_fade_init(1);
+ _G(player).command_ready = false;
+ break;
+
+ case 1:
+ digi_stop(1);
+ digi_stop(2);
+ adv_kill_digi_between_rooms(false);
+ digi_play_loop("950_s28C", 3, 90);
+ _G(game).setRoom(newRoom);
+ _G(player).command_ready = false;
+ break;
+
+ default:
+ break;
+ }
+ }
+}
+
+} // namespace Rooms
+} // namespace Riddle
+} // namespace M4
diff --git a/engines/m4/riddle/rooms/section6/section6_maze.h b/engines/m4/riddle/rooms/section6/section6_maze.h
new file mode 100644
index 00000000000..5b427b5f96d
--- /dev/null
+++ b/engines/m4/riddle/rooms/section6/section6_maze.h
@@ -0,0 +1,62 @@
+/* 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_SECTION6_MAZE_H
+#define M4_RIDDLE_ROOMS_SECTION6_MAZE_H
+
+#include "m4/riddle/rooms/room.h"
+
+namespace M4 {
+namespace Riddle {
+namespace Rooms {
+
+class Maze : public Room {
+private:
+ void checkExit(const char *action, int newRoom);
+
+protected:
+ void checkExitLeft(int newRoom) {
+ checkExit("exit left", newRoom);
+ }
+ void checkExitRight(int newRoom) {
+ checkExit("exit right", newRoom);
+ }
+ void checkExitUp(int newRoom) {
+ checkExit("exit up", newRoom);
+ }
+ void checkExitDown(int newRoom) {
+ checkExit("exit down", newRoom);
+ }
+
+public:
+ Maze() : Room() {}
+ ~Maze() override {}
+
+ void preload() override;
+ void daemon() override;
+ void parser() override;
+};
+
+} // namespace Rooms
+} // namespace Riddle
+} // namespace M4
+
+#endif
More information about the Scummvm-git-logs
mailing list