[Scummvm-git-logs] scummvm master -> be2944fd25a256074634016c4b315ac41de48984
Strangerke
noreply at scummvm.org
Fri Apr 17 07:17:48 UTC 2026
This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://api.github.com/repos/scummvm/scummvm .
Summary:
be2944fd25 WAYNESWORLD: Implement the 2nd WW Effect, the display sign animation, the preview of room 00 and a first occurrence of t
Commit: be2944fd25a256074634016c4b315ac41de48984
https://github.com/scummvm/scummvm/commit/be2944fd25a256074634016c4b315ac41de48984
Author: Strangerke (arnaud.boutonne at gmail.com)
Date: 2026-04-17T09:17:27+02:00
Commit Message:
WAYNESWORLD: Implement the 2nd WW Effect, the display sign animation, the preview of room 00 and a first occurrence of the map in demo1
Changed paths:
engines/waynesworld/wwintro.cpp
engines/waynesworld/wwintro.h
engines/waynesworld/wwintro_demo1.cpp
engines/waynesworld/wwintro_full.cpp
diff --git a/engines/waynesworld/wwintro.cpp b/engines/waynesworld/wwintro.cpp
index 3076a8a46ff..f5de671d932 100644
--- a/engines/waynesworld/wwintro.cpp
+++ b/engines/waynesworld/wwintro.cpp
@@ -43,6 +43,11 @@ bool WWIntro::initOanGxl() {
return true;
}
+void WWIntro::cleanOanGxl() {
+ delete _oanGxl;
+ _oanGxl = nullptr;
+}
+
void WWIntro::wwEffect(int arg0, int arg1, bool flag) {
int xmult = 0;
int ymult = 0;
diff --git a/engines/waynesworld/wwintro.h b/engines/waynesworld/wwintro.h
index 7ca658f4bed..1556947d035 100644
--- a/engines/waynesworld/wwintro.h
+++ b/engines/waynesworld/wwintro.h
@@ -73,6 +73,7 @@ protected:
bool initOanGxl();
+ void cleanOanGxl();
void wwEffect(int arg0, int arg1, bool flag = false);
void setColor236(int index);
void sub2FEFB(int arg_refreshBackgFl, int arg_wBodyIndex, int arg_gBodyIndex, int arg_wHead1Index, int arg_gHead1Index, int arg_TextId);
@@ -104,8 +105,7 @@ public:
private:
bool introPt1();
bool introPt3(bool flag);
- void cleanOanGxl();
- void introPt6();
+ void introDisplaySign();
void introPt7();
protected:
@@ -127,6 +127,10 @@ public:
private:
bool introPt1();
bool introPt3();
+ bool introPt3Bis();
+ bool introDisplaySign();
+ bool introPreviewRoom00();
+ bool introMapStonebridge();
protected:
bool introPt4_intro() override;
diff --git a/engines/waynesworld/wwintro_demo1.cpp b/engines/waynesworld/wwintro_demo1.cpp
index 560f8998c06..197ac90f459 100644
--- a/engines/waynesworld/wwintro_demo1.cpp
+++ b/engines/waynesworld/wwintro_demo1.cpp
@@ -48,6 +48,16 @@ void WWIntro_demo1::runIntro() {
if (continueFl)
continueFl = introPt4();
+ if (continueFl)
+ continueFl = introPt3Bis();
+
+ cleanOanGxl();
+
+ if (continueFl)
+ continueFl = introDisplaySign();
+
+ introPreviewRoom00();
+ introMapStonebridge();
}
bool WWIntro_demo1::introPt1() {
@@ -192,6 +202,29 @@ bool WWIntro_demo1::introPt3() {
return true;
}
+bool WWIntro_demo1::introPt3Bis() {
+ // sub1 - Parameter is always 'true' so it has been removed and the code simplified
+ introPt3_init();
+ // End of sub1
+ _vm->stopMusic();
+ _vm->playSound("theme1.snd", false);
+
+ wwEffect(1, 0);
+ wwEffect(1, 1);
+ wwEffect(1, 2);
+ wwEffect(1, 3);
+
+ for (int i = 0; i < 20; ++i) {
+ setColor236(i % 19);
+ wwEffect((i % 8) + 1, 4);
+ }
+
+ introPt3_clean();
+ _vm->waitSeconds(9);
+
+ return true;
+}
+
void WWIntro_demo1::introPt4_init() {
_vm->_fontWW = new GFTFont();
_vm->_fontWW->loadFromFile("ww.gft");
@@ -550,4 +583,105 @@ bool WWIntro_demo1::introPt4_caller4() {
return true;
}
+bool WWIntro_demo1::introDisplaySign() {
+ WWSurface *introPt6Surface[5] = {nullptr};
+
+ GxlArchive *signGxl = new GxlArchive("sign");
+ while (_vm->_sound->isSFXPlaying())
+ _vm->waitMillis(10);
+
+ for (int i = 0; i < 5; ++i) {
+ introPt6Surface[i] = new WWSurface(320, 200);
+ Common::String filename = Common::String::format("sign%d.pcx", i);
+ _vm->drawImageToSurface(signGxl, filename.c_str(), introPt6Surface[i], 0, 0);
+ }
+
+ _vm->_sound->playSound("ex-clsp2.snd", false);
+
+ for (int i = 0; i < 5; ++i) {
+ _vm->_screen->drawSurface(introPt6Surface[i], 0, 0);
+ _vm->waitMillis(150);
+ }
+
+ WWSurface *signBottomSurface = new WWSurface(320, 94);
+ _vm->drawImageToSurface(signGxl, "signbot.pcx", signBottomSurface, 0, 0);
+
+ _vm->waitSeconds(4);
+ _vm->_musicIndex = 1;
+ _vm->changeMusic();
+
+ WWSurface *scrollSurface = new WWSurface(320, 200);
+
+ for (int i = 199; i > 106; --i) {
+ scrollSurface->copyRectToSurface((Graphics::Surface)*introPt6Surface[4], 0, 0, Common::Rect(0, 200 - i, 319, 200));
+ scrollSurface->copyRectToSurface((Graphics::Surface)*signBottomSurface, 0, i, Common::Rect(0, 0, 319, 200 - i));
+ _vm->_screen->drawSurface(scrollSurface, 0, 0);
+ }
+
+ delete scrollSurface;
+ delete signBottomSurface;
+ for (int i = 0; i < 5; ++i)
+ delete introPt6Surface[i];
+
+ delete signGxl;
+
+ return true;
+}
+
+bool WWIntro_demo1::introPreviewRoom00() {
+ GxlArchive *r00Gxl = new GxlArchive("r00");
+ GxlArchive *m00Gxl = new GxlArchive("m00");
+
+ _vm->paletteFadeOut(0, 256, 64);
+ _vm->_screen->clear(0);
+ _vm->loadPalette(r00Gxl, "backg.pcx");
+ _vm->paletteFadeOut(0, 256, 64);
+ _vm->_musicIndex = 0;
+ _vm->changeMusic();
+ _vm->drawImageToScreen(r00Gxl, "backg.pcx", 0, 0);
+ _vm->drawImageToScreen(m00Gxl, "ginter.pcx", 0, 151);
+ _vm->paletteFadeIn(0, 256, 3);
+ _vm->waitSeconds(3);
+
+ delete m00Gxl;
+ delete r00Gxl;
+
+ return true;
+}
+
+bool WWIntro_demo1::introMapStonebridge() {
+ GxlArchive *m02Gxl = new GxlArchive("m02");
+
+ WWSurface *zmPcx[12] = {nullptr};
+ for (int i = 0; i < 12; ++i) {
+ zmPcx[i] = new WWSurface(137, 109);
+ Common::String filename = Common::String::format("stn_zm%d.pcx", i);
+ _vm->drawImageToSurface(m02Gxl, filename.c_str(), zmPcx[i], 0, 0);
+ }
+
+ _vm->paletteFadeOut(0, 256, 4);
+ _vm->_screen->clear(0);
+ _vm->drawImageToScreen(m02Gxl, "main_map.pcx", 0, 0);
+ _vm->paletteFadeIn(0, 256, 4);
+ _vm->drawImageToScreen(m02Gxl, "stn_tag.pcx", 173, 90);
+ _vm->playSound("flash-bk.abt", false);
+ _vm->waitSeconds(1);
+
+ for (int i = 0; i < 12; ++i) {
+ _vm->_screen->drawSurface(zmPcx[i], 173, 13);
+ _vm->waitMillis(75);
+ }
+
+ _vm->drawImageToScreen(m02Gxl, "may_tag.pcx", 193, 40);
+ _vm->drawImageToScreen(m02Gxl, "eug_tag.pcx", 241, 82);
+ _vm->waitSeconds(4);
+
+ for (int i = 0; i < 12; ++i)
+ delete zmPcx[i];
+
+ delete m02Gxl;
+
+ return true;
+}
+
} // End of namespace WaynesWorld
diff --git a/engines/waynesworld/wwintro_full.cpp b/engines/waynesworld/wwintro_full.cpp
index ff54ae89d7b..bc977db975b 100644
--- a/engines/waynesworld/wwintro_full.cpp
+++ b/engines/waynesworld/wwintro_full.cpp
@@ -53,7 +53,7 @@ void WWIntro_full::runIntro() {
cleanOanGxl();
if (continueFl)
- introPt6();
+ introDisplaySign();
introPt7();
}
@@ -247,18 +247,11 @@ bool WWIntro_full::introPt3(bool flag) {
return true;
}
-void WWIntro_full::cleanOanGxl() {
- delete _oanGxl;
- _oanGxl = nullptr;
-}
-
-void WWIntro_full::introPt6() {
+void WWIntro_full::introDisplaySign() {
WWSurface *introPt6Surface[5] = {nullptr};
WWSurface *signBottomSurface = nullptr;
WWSurface *scrollSurface = nullptr;
- _vm->_escPressed = false;
-
while (_vm->_sound->isSFXPlaying())
_vm->waitMillis(10);
More information about the Scummvm-git-logs
mailing list