MM: MM1: In progress map 38

This commit is contained in:
Paul Gilbert
2023-01-22 20:07:27 +01:00
committed by Eugene Sandulenko
parent 60512d223a
commit 1dd7315fa4
3 changed files with 110 additions and 10 deletions
@@ -1353,3 +1353,13 @@ maps:
opening: "AN OPENING ABOVE LEADS OUTSIDE,\nCLIMB OUT (Y/N)?"
spins: "THE FLOOR SPINS!"
wall: "THE WALL IS PAINTED FROM CEILING TO\nFLOOR IN A BLACK AND WHITE CHECKERED\nPATTERN!"
map38:
message4: "ETCHED IN GOLD, MESSAGE 4 READS:'\nOF-BE-HAS-TRUE-KNOWLEDGE-PLANE-A-LEVEL-'\nTO-REALITY-IT"
banner: "A BANNER READS:\nTHE LABYRINTH OF LAZZERUTH...\nFEW HAVE ENTERED, NONE HAVE RETURNED!"
face1: "INSET IN THE WALL, A STONE FACE\nYELLS: ""MY BRAIN HURTS!"""
face2: "INSET IN THE WALL, A STONE FACE\nSPEAKS: ""I WOULD PAY HIGHLY FOR A GREEN\nHANDLED, PEARL ENCRUSTED ABELNUSKI."""
face3: "INSET IN THE WALL, A STONE FACE\nSPEAKS: ""I SEE ALL, HEAR ALL,\nKNOW NOTHING..."""
face4: "INSET IN THE WALL, A STONE FACE\nPROCLAIMS: ""OKRIM IS WATCHING.\nHE STUDIES YOUR WEAKNESSES!"""
wall: THE WALL IS PAINTED FROM CEILING TO\nFLOOR IN A BLACK AND WHITE CHECKERED\nPATTERN!"
ringing: "A STRANGE RINGING SOUND STARTLES\nTHE PARTY. YOU ARE TELEPORTED!"
+62 -8
View File
@@ -31,12 +31,11 @@ namespace Maps {
void Map38::special() {
// Scan for special actions on the map cell
for (uint i = 0; i < _data[50]; ++i) {
for (uint i = 0; i < 19; ++i) {
if (g_maps->_mapOffset == _data[51 + i]) {
// Found a specially handled cell, but it
// only triggers in designated direction(s)
if (g_maps->_forwardMask & _data[75 + i]) {
if (g_maps->_forwardMask & _data[70 + i]) {
(this->*SPECIAL_FN[i])();
} else {
checkPartyDead();
@@ -44,14 +43,69 @@ void Map38::special() {
return;
}
}
/*
// All other cells on the map are encounters
g_maps->clearSpecial();
g_globals->_encounters.execute();
*/
send(SoundMessage(STRING["maps.map38.ringing"]));
g_maps->_mapPos = Common::Point(getRandomNumber(16) - 1,
getRandomNumber(16) - 1);
updateGame();
}
void Map38::special00() {
send(SoundMessage(STRING["maps.map38.message4"]));
}
void Map38::special01() {
}
void Map38::special02() {
}
void Map38::special03() {
}
void Map38::special04() {
}
void Map38::special05() {
}
void Map38::special06() {
}
void Map38::special07() {
}
void Map38::special08() {
}
void Map38::special09() {
}
void Map38::special10() {
}
void Map38::special11() {
}
void Map38::special12() {
}
void Map38::special13() {
}
void Map38::special14() {
}
void Map38::special15() {
}
void Map38::special16() {
}
void Map38::special17() {
}
void Map38::special18() {
}
} // namespace Maps
+38 -2
View File
@@ -32,9 +32,45 @@ class Map38 : public Map {
typedef void (Map38:: *SpecialFn)();
private:
void special00();
void special01();
void special02();
void special03();
void special04();
void special05();
void special06();
void special07();
void special08();
void special09();
void special10();
void special11();
void special12();
void special13();
void special14();
void special15();
void special16();
void special17();
void special18();
const SpecialFn SPECIAL_FN[1] = {
&Map38::special00
const SpecialFn SPECIAL_FN[19] = {
&Map38::special00,
&Map38::special01,
&Map38::special02,
&Map38::special03,
&Map38::special04,
&Map38::special05,
&Map38::special06,
&Map38::special07,
&Map38::special08,
&Map38::special09,
&Map38::special10,
&Map38::special11,
&Map38::special12,
&Map38::special13,
&Map38::special14,
&Map38::special15,
&Map38::special16,
&Map38::special17,
&Map38::special18
};
public:
Map38() : Map(38, "qvl2", 0x703) {}