[Scummvm-git-logs] scummvm master -> e22f2f79d41b9b5d93bb16fd280de3ac7e85741e
dreammaster
noreply at scummvm.org
Fri May 22 02:38:13 UTC 2026
This automated email contains information about 2 new commits which have been
pushed to the 'scummvm' repo located at https://api.github.com/repos/scummvm/scummvm .
Summary:
cfce74ed99 MADS: DRAGONSPHERE: Added section music functions
e22f2f79d4 MADS: DRAGONSPHERE: Added section walker and interface functions
Commit: cfce74ed99f599ca99d8121bf8b99e3b98106776
https://github.com/scummvm/scummvm/commit/cfce74ed99f599ca99d8121bf8b99e3b98106776
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2026-05-22T12:38:02+10:00
Commit Message:
MADS: DRAGONSPHERE: Added section music functions
Changed paths:
engines/mads/madsv2/dragonsphere/mads/sounds.h
engines/mads/madsv2/dragonsphere/rooms/section1.cpp
engines/mads/madsv2/dragonsphere/rooms/section2.cpp
engines/mads/madsv2/dragonsphere/rooms/section3.cpp
engines/mads/madsv2/dragonsphere/rooms/section4.cpp
engines/mads/madsv2/dragonsphere/rooms/section5.cpp
engines/mads/madsv2/dragonsphere/rooms/section6.cpp
engines/mads/madsv2/dragonsphere/rooms/section9.cpp
diff --git a/engines/mads/madsv2/dragonsphere/mads/sounds.h b/engines/mads/madsv2/dragonsphere/mads/sounds.h
index 02a14f9cc37..c230edac872 100644
--- a/engines/mads/madsv2/dragonsphere/mads/sounds.h
+++ b/engines/mads/madsv2/dragonsphere/mads/sounds.h
@@ -35,11 +35,21 @@ enum {
N_TakeObjectSnd = 26,
N_PlayerDies = 27,
N_InvokeCrystalBall = 28,
+ N_DungeonMus = 32,
+ N_DungeonIntro = 33,
+ N_OminousMus = 34,
N_SealMus = 35,
N_UnderGroundMus = 36,
N_WayStationMus = 37,
+ N_Bk112Mus = 38,
+ N_Bk115Mus = 39,
+ N_Bk116Mus = 40,
+ N_Bk119Mus = 41,
N_Angels = 42,
+ N_SwordFightMus = 44,
N_QueenMother = 45,
+ N_WalkingMus = 46,
+ N_RoyalDecreeMus = 47,
N_TurnDiaryPage = 65,
N_WallGrinds = 67,
N_RushingWater = 71,
@@ -56,7 +66,9 @@ enum {
N_McMornTipsTable = 100,
// Section 2
- N_BackgroundMus = 16,
+ N_Bk203Music = 32,
+ N_SlathanMus = 34,
+ N_DreamMusic = 35,
N_GuardCollapses = 65,
N_TentaclesSplash = 66,
N_LavaPlops = 68,
@@ -65,6 +77,8 @@ enum {
N_PoolMonsterEatsPid = 72,
// Section 3
+ N_MazeMusic = 32,
+ N_ToadRing = 33,
N_ToadEatsPlayer = 70,
N_RalphIsRed = 71,
N_EveryoneScatter = 72,
@@ -72,9 +86,14 @@ enum {
// Section 4
N_WindWhistles = 29,
+ N_DeathFountain = 32,
N_Bk404Music = 33,
N_Bk406Music = 35,
N_BellyDanceMusic = 36,
+ N_Bk409Music = 37,
+ N_Bk410Music = 38,
+ N_RocAndSoulEgg = 39,
+ N_Bk408Music = 40,
N_GamePieceSnd = 66,
N_FlameBurst = 67,
N_SnakeHiss = 68,
@@ -83,12 +102,34 @@ enum {
N_StepOnFloatingDisk = 77,
N_004CryOfDismay = 78,
+ // Section 5
+ N_ShakMus = 32,
+ N_Battle = 33,
+ N_Hermit = 34,
+
+ // Section 6
+ N_Bk603Music = 32,
+ N_Bk604Music = 33,
+ N_Bk605Music = 34,
+ N_Bk605WithRope = 35,
+ N_Bk606Music = 36,
+ N_Bk609Music = 37,
+ N_Bk612Music = 38,
+ N_WaterFlows = 39,
+ N_Bk614Music = 40,
+ N_EerieSounds = 96,
+
// Section 9/General
N_AllFade = 1,
+ N_MusicFade = 3,
+ N_NoiseOff = 4,
+ N_NoiseFade = 5,
+ N_BackgroundMus = 16,
N_MusicBoxOn = 17,
N_MusicBoxOff = 18,
N_BlowBirdCall = 30,
- N_ListenToFlies = 31
+ N_ListenToFlies = 31,
+ N_WeddingMus = 62
};
} // namespace Dragonsphere
diff --git a/engines/mads/madsv2/dragonsphere/rooms/section1.cpp b/engines/mads/madsv2/dragonsphere/rooms/section1.cpp
index 2dd61520f98..fef68b8a092 100644
--- a/engines/mads/madsv2/dragonsphere/rooms/section1.cpp
+++ b/engines/mads/madsv2/dragonsphere/rooms/section1.cpp
@@ -19,12 +19,15 @@
*
*/
+#include "mads/madsv2/core/config.h"
#include "mads/madsv2/core/game.h"
#include "mads/madsv2/core/kernel.h"
#include "mads/madsv2/core/player.h"
#include "mads/madsv2/core/room.h"
+#include "mads/madsv2/core/sound.h"
#include "mads/madsv2/dragonsphere/global.h"
#include "mads/madsv2/dragonsphere/rooms/section1.h"
+#include "mads/madsv2/dragonsphere/mads/sounds.h"
namespace MADS {
namespace MADSV2 {
@@ -63,6 +66,96 @@ void section_1_interface() {
}
void section_1_music() {
+ if (sound_off) {
+ sound_play(N_NoiseOff);
+ }
+
+ if (music_off) {
+ sound_play(N_MusicFade);
+ goto done;
+ }
+
+ switch (new_room) {
+ case 104:
+ if (global[player_persona] == PLAYER_IS_PID) {
+ sound_play(N_SwordFightMus);
+ } else {
+ sound_play(N_BackgroundMus);
+ }
+ break;
+
+ case 106:
+ if (global[end_of_game]) {
+ sound_play(N_RoyalDecreeMus);
+ } else {
+ sound_play(N_BackgroundMus);
+ }
+ break;
+
+ case 108:
+ if (player_has_been_in_room(109)) {
+ sound_play(N_DungeonMus);
+ } else {
+ sound_play(N_DungeonIntro);
+ }
+ break;
+
+ case 109:
+ sound_play(N_DungeonMus);
+ break;
+
+ case 110:
+ sound_play(N_WayStationMus);
+ break;
+
+ case 111:
+ sound_play(N_OminousMus);
+ break;
+
+ case 112:
+ sound_play(N_Bk112Mus);
+ break;
+
+ case 113:
+ sound_play(N_NoiseFade);
+ if (global[player_is_seal]) {
+ sound_play(N_SealMus);
+ } else {
+ sound_play(N_UnderGroundMus);
+ }
+ break;
+
+ case 114:
+ sound_play(N_UnderGroundMus);
+ break;
+
+ case 115:
+ sound_play(N_Bk115Mus);
+ break;
+
+ case 116:
+ sound_play(N_Bk116Mus);
+ break;
+
+ case 117:
+ sound_play(N_SealMus);
+ break;
+
+ case 119:
+ sound_play(N_Bk119Mus);
+ break;
+
+ case 120:
+ sound_play(N_WalkingMus);
+ break;
+
+ default:
+ sound_play(N_BackgroundMus);
+ break;
+ }
+
+done:
+ ;
}
void section_1_constructor() {
diff --git a/engines/mads/madsv2/dragonsphere/rooms/section2.cpp b/engines/mads/madsv2/dragonsphere/rooms/section2.cpp
index fea0fd9b1b2..adabe48089c 100644
--- a/engines/mads/madsv2/dragonsphere/rooms/section2.cpp
+++ b/engines/mads/madsv2/dragonsphere/rooms/section2.cpp
@@ -19,12 +19,15 @@
*
*/
+#include "mads/madsv2/core/config.h"
#include "mads/madsv2/core/game.h"
#include "mads/madsv2/core/kernel.h"
#include "mads/madsv2/core/player.h"
#include "mads/madsv2/core/room.h"
+#include "mads/madsv2/core/sound.h"
#include "mads/madsv2/dragonsphere/global.h"
#include "mads/madsv2/dragonsphere/rooms/section2.h"
+#include "mads/madsv2/dragonsphere/mads/sounds.h"
namespace MADS {
namespace MADSV2 {
@@ -49,6 +52,41 @@ void section_2_interface() {
}
void section_2_music() {
+ if (sound_off) {
+ sound_queue(N_NoiseOff);
+ }
+
+ if (music_off) {
+ sound_queue(N_MusicFade);
+ goto done;
+ }
+
+ switch (new_room) {
+ case 201:
+ sound_play(N_BackgroundMus);
+ break;
+
+ case 203:
+ sound_play(N_Bk203Music);
+ break;
+
+ case 204:
+ sound_play(N_DreamMusic);
+ break;
+
+ case 202:
+ case 205:
+ case 206:
+ sound_play(N_SlathanMus);
+ break;
+
+ default:
+ sound_play(N_BackgroundMus);
+ break;
+ }
+
+done:
+ ;
}
void section_2_constructor() {
diff --git a/engines/mads/madsv2/dragonsphere/rooms/section3.cpp b/engines/mads/madsv2/dragonsphere/rooms/section3.cpp
index 5cec328e175..aa8acfaef68 100644
--- a/engines/mads/madsv2/dragonsphere/rooms/section3.cpp
+++ b/engines/mads/madsv2/dragonsphere/rooms/section3.cpp
@@ -19,12 +19,15 @@
*
*/
+#include "mads/madsv2/core/config.h"
#include "mads/madsv2/core/game.h"
#include "mads/madsv2/core/kernel.h"
#include "mads/madsv2/core/player.h"
#include "mads/madsv2/core/room.h"
+#include "mads/madsv2/core/sound.h"
#include "mads/madsv2/dragonsphere/global.h"
#include "mads/madsv2/dragonsphere/rooms/section3.h"
+#include "mads/madsv2/dragonsphere/mads/sounds.h"
namespace MADS {
namespace MADSV2 {
@@ -46,6 +49,35 @@ void section_3_interface() {
}
void section_3_music() {
+ if (sound_off) {
+ sound_queue(N_NoiseOff);
+ }
+
+ if (music_off) {
+ sound_queue(N_MusicFade);
+ goto done;
+ }
+
+ switch (new_room) {
+ case 301:
+ sound_play(N_BackgroundMus);
+ break;
+
+ case 302:
+ sound_play(N_MazeMusic);
+ break;
+
+ case 303:
+ sound_play(N_ToadRing);
+ break;
+
+ default:
+ sound_play(N_BackgroundMus);
+ break;
+ }
+
+done:
+ ;
}
void section_3_constructor() {
diff --git a/engines/mads/madsv2/dragonsphere/rooms/section4.cpp b/engines/mads/madsv2/dragonsphere/rooms/section4.cpp
index bdd71fe175d..2f566cbf4f3 100644
--- a/engines/mads/madsv2/dragonsphere/rooms/section4.cpp
+++ b/engines/mads/madsv2/dragonsphere/rooms/section4.cpp
@@ -19,12 +19,15 @@
*
*/
+#include "mads/madsv2/core/config.h"
#include "mads/madsv2/core/game.h"
#include "mads/madsv2/core/kernel.h"
#include "mads/madsv2/core/player.h"
#include "mads/madsv2/core/room.h"
+#include "mads/madsv2/core/sound.h"
#include "mads/madsv2/dragonsphere/global.h"
#include "mads/madsv2/dragonsphere/rooms/section4.h"
+#include "mads/madsv2/dragonsphere/mads/sounds.h"
namespace MADS {
namespace MADSV2 {
@@ -56,6 +59,76 @@ void section_4_interface() {
}
void section_4_music() {
+ if (sound_off) {
+ sound_queue(N_NoiseOff);
+
+ } else switch (room_id) {
+ case 401:
+ case 402:
+ case 403:
+ case 404:
+ case 405:
+ case 454:
+ sound_play(N_WindWhistles);
+ break;
+ }
+
+ if (music_off) {
+ sound_queue(N_MusicFade);
+ goto done;
+ }
+
+ switch (new_room) {
+ case 404:
+ case 454:
+ if (room_id != 120) {
+ sound_play(N_Bk404Music);
+ }
+ break;
+
+ case 406:
+ sound_play(N_NoiseOff);
+ if (global[dance_music_on]) {
+ sound_play(N_BellyDanceMusic);
+ } else {
+ sound_play(N_Bk406Music);
+ }
+ break;
+
+ case 401:
+ case 402:
+ case 403:
+ case 405:
+ sound_play(N_BackgroundMus);
+ break;
+
+ case 408:
+ sound_play(N_Bk408Music);
+ break;
+
+ case 409:
+ sound_play(N_Bk409Music);
+ break;
+
+ case 410:
+ sound_play(N_Bk410Music);
+ break;
+
+ case 411:
+ sound_play(N_RocAndSoulEgg);
+ break;
+
+ case 412:
+ sound_play(N_DeathFountain);
+ break;
+
+ default:
+ sound_play(N_BackgroundMus);
+ break;
+ }
+
+done:
+ ;
}
void section_4_constructor() {
diff --git a/engines/mads/madsv2/dragonsphere/rooms/section5.cpp b/engines/mads/madsv2/dragonsphere/rooms/section5.cpp
index 9c7845f4a61..2fb7f55fd8c 100644
--- a/engines/mads/madsv2/dragonsphere/rooms/section5.cpp
+++ b/engines/mads/madsv2/dragonsphere/rooms/section5.cpp
@@ -19,12 +19,15 @@
*
*/
+#include "mads/madsv2/core/config.h"
#include "mads/madsv2/core/game.h"
#include "mads/madsv2/core/kernel.h"
#include "mads/madsv2/core/player.h"
#include "mads/madsv2/core/room.h"
+#include "mads/madsv2/core/sound.h"
#include "mads/madsv2/dragonsphere/global.h"
#include "mads/madsv2/dragonsphere/rooms/section5.h"
+#include "mads/madsv2/dragonsphere/mads/sounds.h"
namespace MADS {
namespace MADSV2 {
@@ -56,6 +59,54 @@ void section_5_interface() {
}
void section_5_music() {
+ if (sound_off) {
+ sound_queue(N_NoiseOff);
+ }
+
+ if (music_off) {
+ sound_queue(N_MusicFade);
+ goto done;
+ }
+
+ switch (new_room) {
+ case 501:
+ sound_play(N_BackgroundMus);
+ sound_play(N_WindWhistles);
+ break;
+
+ case 502:
+ sound_play(N_BackgroundMus);
+ sound_play(N_NoiseFade);
+ break;
+
+ case 504:
+ sound_play(N_Hermit);
+ break;
+
+ case 508:
+ if (!global[monster_is_dead]) {
+ if (previous_room == KERNEL_RESTORING_GAME) {
+ sound_play(N_Battle);
+ } else {
+ sound_play(N_BackgroundMus);
+ }
+
+ } else {
+ sound_play(N_BackgroundMus);
+ }
+ break;
+
+ case 509:
+ sound_play(N_ShakMus);
+ break;
+
+ default:
+ sound_play(N_BackgroundMus);
+ break;
+ }
+
+done:
+ ;
}
void section_5_constructor() {
diff --git a/engines/mads/madsv2/dragonsphere/rooms/section6.cpp b/engines/mads/madsv2/dragonsphere/rooms/section6.cpp
index 98f2e952810..43f1d7a96aa 100644
--- a/engines/mads/madsv2/dragonsphere/rooms/section6.cpp
+++ b/engines/mads/madsv2/dragonsphere/rooms/section6.cpp
@@ -19,12 +19,15 @@
*
*/
+#include "mads/madsv2/core/config.h"
#include "mads/madsv2/core/game.h"
#include "mads/madsv2/core/kernel.h"
#include "mads/madsv2/core/player.h"
#include "mads/madsv2/core/room.h"
+#include "mads/madsv2/core/sound.h"
#include "mads/madsv2/dragonsphere/global.h"
#include "mads/madsv2/dragonsphere/rooms/section6.h"
+#include "mads/madsv2/dragonsphere/mads/sounds.h"
namespace MADS {
namespace MADSV2 {
@@ -53,6 +56,72 @@ void section_6_interface() {
}
void section_6_music() {
+ if (sound_off) {
+ sound_queue(N_NoiseOff);
+ }
+
+ if (music_off) {
+ sound_queue(N_MusicFade);
+ goto done;
+ }
+
+ switch (new_room) {
+ case 601:
+ if (global[vines_have_player]) {
+ sound_play(N_EerieSounds);
+ } else {
+ sound_play(N_BackgroundMus);
+ }
+ break;
+
+ case 603:
+ sound_play(N_Bk603Music);
+ break;
+
+ case 604:
+ sound_play(N_Bk604Music);
+ break;
+
+ case 605:
+ if (global[rope_is_alive]) {
+ sound_play(N_Bk605WithRope);
+ } else {
+ sound_play(N_Bk605Music);
+ }
+ break;
+
+ case 606:
+ case 607:
+ sound_play(N_Bk606Music);
+ break;
+
+ case 609:
+ sound_play(N_Bk609Music);
+ break;
+
+ case 612:
+ sound_play(N_Bk612Music);
+ break;
+
+ case 613:
+ sound_play(N_WaterFlows);
+ break;
+
+ case 614:
+ if (global[wizard_dead]) {
+ sound_play(N_BackgroundMus);
+ } else {
+ sound_play(N_Bk614Music);
+ }
+ break;
+
+ default:
+ sound_play(N_BackgroundMus);
+ break;
+ }
+
+done:
+ ;
}
void section_6_constructor() {
diff --git a/engines/mads/madsv2/dragonsphere/rooms/section9.cpp b/engines/mads/madsv2/dragonsphere/rooms/section9.cpp
index 1c00068a877..a4e7f5d83dc 100644
--- a/engines/mads/madsv2/dragonsphere/rooms/section9.cpp
+++ b/engines/mads/madsv2/dragonsphere/rooms/section9.cpp
@@ -19,6 +19,7 @@
*
*/
+#include "mads/madsv2/core/config.h"
#include "mads/madsv2/core/game.h"
#include "mads/madsv2/core/kernel.h"
#include "mads/madsv2/core/pal.h"
@@ -28,6 +29,7 @@
#include "mads/madsv2/dragonsphere/global.h"
#include "mads/madsv2/dragonsphere/rooms/section9.h"
#include "mads/madsv2/dragonsphere/dragonsphere.h"
+#include "mads/madsv2/dragonsphere/mads/sounds.h"
namespace MADS {
namespace MADSV2 {
@@ -53,13 +55,20 @@ void section_9_interface() {
}
void section_9_music() {
- if (!g_engine->_soundFlag)
- sound_queue(4);
+ if (sound_off) {
+ sound_queue(N_NoiseOff);
+ }
+
+ if (music_off) {
+ sound_queue(N_MusicFade);
+ goto done;
+ }
+
+ if (new_room == 909)
+ sound_play(N_WeddingMus);
- if (!g_engine->_musicFlag)
- sound_queue(3);
- else if (new_room == 909)
- sound_play(62);
+done:
+ ;
}
void section_9_constructor() {
Commit: e22f2f79d41b9b5d93bb16fd280de3ac7e85741e
https://github.com/scummvm/scummvm/commit/e22f2f79d41b9b5d93bb16fd280de3ac7e85741e
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2026-05-22T12:38:02+10:00
Commit Message:
MADS: DRAGONSPHERE: Added section walker and interface functions
Changed paths:
engines/mads/madsv2/dragonsphere/rooms/section1.cpp
engines/mads/madsv2/dragonsphere/rooms/section2.cpp
engines/mads/madsv2/dragonsphere/rooms/section3.cpp
engines/mads/madsv2/dragonsphere/rooms/section4.cpp
engines/mads/madsv2/dragonsphere/rooms/section5.cpp
engines/mads/madsv2/dragonsphere/rooms/section6.cpp
engines/mads/madsv2/dragonsphere/rooms/section9.cpp
diff --git a/engines/mads/madsv2/dragonsphere/rooms/section1.cpp b/engines/mads/madsv2/dragonsphere/rooms/section1.cpp
index fef68b8a092..8f3851b9360 100644
--- a/engines/mads/madsv2/dragonsphere/rooms/section1.cpp
+++ b/engines/mads/madsv2/dragonsphere/rooms/section1.cpp
@@ -21,7 +21,9 @@
#include "mads/madsv2/core/config.h"
#include "mads/madsv2/core/game.h"
+#include "mads/madsv2/core/inter.h"
#include "mads/madsv2/core/kernel.h"
+#include "mads/madsv2/core/pal.h"
#include "mads/madsv2/core/player.h"
#include "mads/madsv2/core/room.h"
#include "mads/madsv2/core/sound.h"
@@ -60,9 +62,93 @@ void section_1_init() {
}
void section_1_walker() {
+ char temp_buf[80];
+ int dark_background = false;
+ int no_walker = false;
+
+ sound_queue(N_NoiseFade);
+
+ Common::strcpy_s(temp_buf, player.series_name);
+
+ global[perform_displacements] = true;
+
+ if (new_room == 111 ||
+ new_room == 112 ||
+ new_room == 117 ||
+ new_room == 120 ||
+ new_room == 119) {
+ no_walker = true;
+ }
+
+ if (new_room == 106 && room_id == 120) {
+ no_walker = true;
+ }
+
+ if (global[player_persona] == PLAYER_IS_KING) {
+ if (new_room == 113) {
+ no_walker = true;
+ }
+ }
+
+ switch (new_room) {
+ case 108:
+ case 109:
+ case 113:
+ case 114:
+ case 115:
+ dark_background = true;
+ break;
+ }
+
+ if (no_walker || global[no_load_walker]) {
+ player.series_name[0] = 0;
+
+ } else if (!player.force_series) {
+ if (global[player_persona] == PLAYER_IS_KING || new_room == 108 || new_room == 109) {
+ if (new_room == 113 || new_room == 114 || new_room == 115 || new_room == 116) {
+ Common::strcpy_s(player.series_name, "PD");
+ } else {
+ Common::strcpy_s(player.series_name, "KG");
+ }
+ } else {
+ Common::strcpy_s(player.series_name, "PD");
+ }
+ if (dark_background)
+ Common::strcat_s(player.series_name, "D");
+ }
+
+ if (strcmp(temp_buf, player.series_name) != 0)
+ player.walker_must_reload = true;
+
+ player.scaling_velocity = true;
}
void section_1_interface() {
+ int interface;
+ RGBcolor text_color = { 43, 29, 15 };
+
+ if (new_room == 116) {
+ interface = 2;
+
+ } else if (new_room == 110) {
+ interface = 5;
+
+ } else if (new_room == 120) {
+ interface = 8;
+
+ } else if ((new_room >= 113) && (new_room <= 119) && (new_room != 118)) {
+ interface = 1;
+
+ } else if ((new_room == 108) || (new_room == 109)) {
+ interface = 3;
+
+ } else {
+ interface = 0;
+ }
+
+ Common::strcpy_s(kernel.interface, kernel_interface_name(interface));
+
+ pal_change_color(INTER_MESSAGE_COLOR, 56, 47, 32);
}
void section_1_music() {
diff --git a/engines/mads/madsv2/dragonsphere/rooms/section2.cpp b/engines/mads/madsv2/dragonsphere/rooms/section2.cpp
index adabe48089c..6c8c9253e11 100644
--- a/engines/mads/madsv2/dragonsphere/rooms/section2.cpp
+++ b/engines/mads/madsv2/dragonsphere/rooms/section2.cpp
@@ -21,7 +21,9 @@
#include "mads/madsv2/core/config.h"
#include "mads/madsv2/core/game.h"
+#include "mads/madsv2/core/inter.h"
#include "mads/madsv2/core/kernel.h"
+#include "mads/madsv2/core/pal.h"
#include "mads/madsv2/core/player.h"
#include "mads/madsv2/core/room.h"
#include "mads/madsv2/core/sound.h"
@@ -46,9 +48,41 @@ void section_2_init() {
}
void section_2_walker() {
+ char temp_buf[80];
+ int dark_background = false;
+ int no_walker = false;
+
+ sound_queue(N_NoiseFade);
+
+ Common::strcpy_s(temp_buf, player.series_name);
+
+ if (new_room == 204) {
+ dark_background = true;
+ }
+
+ if (no_walker || global[no_load_walker]) {
+ player.series_name[0] = 0;
+ } else if (!player.force_series) {
+ if (global[player_persona] == PLAYER_IS_KING) {
+ Common::strcpy_s(player.series_name, "KG");
+ } else {
+ Common::strcpy_s(player.series_name, "PD");
+ }
+ if (dark_background) Common::strcat_s(player.series_name, "D");
+ }
+
+ if (strcmp(temp_buf, player.series_name) != 0) player.walker_must_reload = true;
+
+ player.scaling_velocity = true;
}
void section_2_interface() {
+ int interface = 9;
+ RGBcolor text_color = { 43, 29, 15 };
+
+ Common::strcpy_s(kernel.interface, kernel_interface_name(interface));
+
+ pal_change_color(INTER_MESSAGE_COLOR, 56, 47, 32);
}
void section_2_music() {
diff --git a/engines/mads/madsv2/dragonsphere/rooms/section3.cpp b/engines/mads/madsv2/dragonsphere/rooms/section3.cpp
index aa8acfaef68..90d60475292 100644
--- a/engines/mads/madsv2/dragonsphere/rooms/section3.cpp
+++ b/engines/mads/madsv2/dragonsphere/rooms/section3.cpp
@@ -21,7 +21,9 @@
#include "mads/madsv2/core/config.h"
#include "mads/madsv2/core/game.h"
+#include "mads/madsv2/core/inter.h"
#include "mads/madsv2/core/kernel.h"
+#include "mads/madsv2/core/pal.h"
#include "mads/madsv2/core/player.h"
#include "mads/madsv2/core/room.h"
#include "mads/madsv2/core/sound.h"
@@ -43,9 +45,43 @@ void section_3_init() {
}
void section_3_walker() {
+ char temp_buf[80];
+ int dark_background = false;
+ int no_walker = false;
+
+ sound_queue(N_NoiseFade);
+
+ Common::strcpy_s(temp_buf, player.series_name);
+
+ global[perform_displacements] = false;
+
+ if (new_room == 603) {
+ dark_background = false;
+ }
+
+ if (no_walker || global[no_load_walker]) {
+ player.series_name[0] = 0;
+ } else if (!player.force_series) {
+ if (global[player_persona] == PLAYER_IS_KING) {
+ Common::strcpy_s(player.series_name, "KG");
+ } else {
+ Common::strcpy_s(player.series_name, "PD");
+ }
+ if (dark_background)
+ Common::strcat_s(player.series_name, "D");
+ }
+
+ if (strcmp(temp_buf, player.series_name) != 0) player.walker_must_reload = true;
+
+ player.scaling_velocity = true;
}
void section_3_interface() {
+ RGBcolor text_color = { 43, 29, 15 };
+
+ Common::strcpy_s(kernel.interface, kernel_interface_name(7));
+
+ pal_change_color(INTER_MESSAGE_COLOR, 56, 47, 32);
}
void section_3_music() {
diff --git a/engines/mads/madsv2/dragonsphere/rooms/section4.cpp b/engines/mads/madsv2/dragonsphere/rooms/section4.cpp
index 2f566cbf4f3..d0affc84fd9 100644
--- a/engines/mads/madsv2/dragonsphere/rooms/section4.cpp
+++ b/engines/mads/madsv2/dragonsphere/rooms/section4.cpp
@@ -21,7 +21,9 @@
#include "mads/madsv2/core/config.h"
#include "mads/madsv2/core/game.h"
+#include "mads/madsv2/core/inter.h"
#include "mads/madsv2/core/kernel.h"
+#include "mads/madsv2/core/pal.h"
#include "mads/madsv2/core/player.h"
#include "mads/madsv2/core/room.h"
#include "mads/madsv2/core/sound.h"
@@ -53,9 +55,47 @@ void section_4_init() {
}
void section_4_walker() {
+ char temp_buf[80];
+ int dark_background = false;
+ int no_walker = false;
+
+ sound_queue(N_NoiseFade);
+
+ Common::strcpy_s(temp_buf, player.series_name);
+
+ if (new_room == 401 || new_room == 402 || new_room == 403 && global[player_persona] == PLAYER_IS_KING) {
+ global[perform_displacements] = false;
+ } else {
+ global[perform_displacements] = true;
+ }
+
+ if (new_room == 603) {
+ dark_background = false;
+ }
+
+ if (no_walker || global[no_load_walker]) {
+ player.series_name[0] = 0;
+ } else if (!player.force_series) {
+ if (global[player_persona] == PLAYER_IS_KING) {
+ Common::strcpy_s(player.series_name, "KG");
+ } else {
+ Common::strcpy_s(player.series_name, "PD");
+ }
+ if (dark_background)
+ Common::strcat_s(player.series_name, "D");
+ }
+
+ if (strcmp(temp_buf, player.series_name) != 0) player.walker_must_reload = true;
+
+ player.scaling_velocity = true;
}
void section_4_interface() {
+ RGBcolor text_color = { 43, 29, 15 };
+
+ Common::strcpy_s(kernel.interface, kernel_interface_name(7));
+
+ pal_change_color(INTER_MESSAGE_COLOR, 56, 47, 32);
}
void section_4_music() {
diff --git a/engines/mads/madsv2/dragonsphere/rooms/section5.cpp b/engines/mads/madsv2/dragonsphere/rooms/section5.cpp
index 2fb7f55fd8c..2727c6a2436 100644
--- a/engines/mads/madsv2/dragonsphere/rooms/section5.cpp
+++ b/engines/mads/madsv2/dragonsphere/rooms/section5.cpp
@@ -21,7 +21,9 @@
#include "mads/madsv2/core/config.h"
#include "mads/madsv2/core/game.h"
+#include "mads/madsv2/core/inter.h"
#include "mads/madsv2/core/kernel.h"
+#include "mads/madsv2/core/pal.h"
#include "mads/madsv2/core/player.h"
#include "mads/madsv2/core/room.h"
#include "mads/madsv2/core/sound.h"
@@ -53,9 +55,47 @@ void section_5_init() {
}
void section_5_walker() {
+ char temp_buf[80];
+ int dark_background;
+ int no_walker = false;
+
+ sound_queue(N_NoiseFade);
+
+ Common::strcpy_s(temp_buf, player.series_name);
+
+ no_walker = ((new_room == 506) || (new_room == 507) || (new_room == 510) ||
+ (new_room == 511));
+
+ /* dark_background = ((new_room >= 113) && (new_room != 118)); */
+ dark_background = false;
+
+ if (no_walker) {
+ player.series_name[0] = 0;
+ } else if (!player.force_series) {
+ if (global[player_persona] == PLAYER_IS_KING) {
+ Common::strcpy_s(player.series_name, "KG");
+ } else {
+ Common::strcpy_s(player.series_name, "PD");
+ }
+ if (dark_background)
+ Common::strcat_s(player.series_name, "D");
+ }
+
+ if (strcmp(temp_buf, player.series_name) != 0) player.walker_must_reload = true;
+
+ player.scaling_velocity = true;
}
void section_5_interface() {
+ RGBcolor text_color = { 43, 29, 15 };
+
+ if (new_room >= 501 && new_room < 601) {
+ Common::strcpy_s(kernel.interface, kernel_interface_name(4));
+ } else {
+ Common::strcpy_s(kernel.interface, kernel_interface_name(0));
+ }
+
+ pal_change_color(INTER_MESSAGE_COLOR, 56, 47, 32);
}
void section_5_music() {
diff --git a/engines/mads/madsv2/dragonsphere/rooms/section6.cpp b/engines/mads/madsv2/dragonsphere/rooms/section6.cpp
index 43f1d7a96aa..1b594965c62 100644
--- a/engines/mads/madsv2/dragonsphere/rooms/section6.cpp
+++ b/engines/mads/madsv2/dragonsphere/rooms/section6.cpp
@@ -21,7 +21,9 @@
#include "mads/madsv2/core/config.h"
#include "mads/madsv2/core/game.h"
+#include "mads/madsv2/core/inter.h"
#include "mads/madsv2/core/kernel.h"
+#include "mads/madsv2/core/pal.h"
#include "mads/madsv2/core/player.h"
#include "mads/madsv2/core/room.h"
#include "mads/madsv2/core/sound.h"
@@ -50,9 +52,41 @@ void section_6_init() {
}
void section_6_walker() {
+ char temp_buf[80];
+ int dark_background = true;
+ int no_walker = false;
+
+ sound_queue(N_NoiseFade);
+
+ Common::strcpy_s(temp_buf, player.series_name);
+
+ if (new_room == 603 || new_room == 601) {
+ dark_background = false;
+ }
+
+ if (no_walker || global[no_load_walker]) {
+ player.series_name[0] = 0;
+ } else if (!player.force_series) {
+ if (global[player_persona] == PLAYER_IS_KING) {
+ Common::strcpy_s(player.series_name, "KG");
+ } else {
+ Common::strcpy_s(player.series_name, "PD");
+ }
+ if (dark_background)
+ Common::strcat_s(player.series_name, "D");
+ }
+
+ if (strcmp(temp_buf, player.series_name) != 0)
+ player.walker_must_reload = true;
+
+ player.scaling_velocity = true;
}
void section_6_interface() {
+ RGBcolor text_color = { 43, 29, 15 };
+
+ Common::strcpy_s(kernel.interface, kernel_interface_name(6));
+ pal_change_color(INTER_MESSAGE_COLOR, 56, 47, 32);
}
void section_6_music() {
diff --git a/engines/mads/madsv2/dragonsphere/rooms/section9.cpp b/engines/mads/madsv2/dragonsphere/rooms/section9.cpp
index a4e7f5d83dc..5d59c9c6897 100644
--- a/engines/mads/madsv2/dragonsphere/rooms/section9.cpp
+++ b/engines/mads/madsv2/dragonsphere/rooms/section9.cpp
@@ -21,6 +21,7 @@
#include "mads/madsv2/core/config.h"
#include "mads/madsv2/core/game.h"
+#include "mads/madsv2/core/inter.h"
#include "mads/madsv2/core/kernel.h"
#include "mads/madsv2/core/pal.h"
#include "mads/madsv2/core/player.h"
@@ -43,7 +44,7 @@ void section_9_init() {
}
void section_9_walker() {
- sound_queue(5);
+ sound_queue(N_NoiseFade);
global[perform_displacements] = 0;
*player.series_name = '\0';
player.scaling_velocity = -1;
@@ -51,7 +52,7 @@ void section_9_walker() {
void section_9_interface() {
Common::strcpy_s(kernel.interface, kernel_interface_name(7));
- pal_change_color(47, 56, 254, 32);
+ pal_change_color(INTER_MESSAGE_COLOR, 56, 47, 32);
}
void section_9_music() {
More information about the Scummvm-git-logs
mailing list