[Scummvm-git-logs] scummvm master -> 607ad5bab5d670e5d6d9aefa99edc0266f732a14
Strangerke
noreply at scummvm.org
Mon Apr 20 10:44:40 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:
607ad5bab5 WAYNESWORLD: Implement 2nd demo (selectware)
Commit: 607ad5bab5d670e5d6d9aefa99edc0266f732a14
https://github.com/scummvm/scummvm/commit/607ad5bab5d670e5d6d9aefa99edc0266f732a14
Author: Strangerke (arnaud.boutonne at gmail.com)
Date: 2026-04-20T12:39:02+02:00
Commit Message:
WAYNESWORLD: Implement 2nd demo (selectware)
Changed paths:
engines/waynesworld/waynesworld.cpp
engines/waynesworld/wwintro.h
engines/waynesworld/wwintro_demo1.cpp
diff --git a/engines/waynesworld/waynesworld.cpp b/engines/waynesworld/waynesworld.cpp
index 313c6c3e95f..6fa82f049ed 100644
--- a/engines/waynesworld/waynesworld.cpp
+++ b/engines/waynesworld/waynesworld.cpp
@@ -185,6 +185,9 @@ Common::Error WaynesWorldEngine::run() {
intro->runIntro();
delete intro;
intro = nullptr;
+
+ if (_gameDescription->flags & ADGF_DEMO)
+ return Common::kNoError;
}
_introOngoing = false;
diff --git a/engines/waynesworld/wwintro.h b/engines/waynesworld/wwintro.h
index 67fb8f2e5e8..ab707611d67 100644
--- a/engines/waynesworld/wwintro.h
+++ b/engines/waynesworld/wwintro.h
@@ -126,6 +126,7 @@ public:
private:
bool introPt1();
+ bool introPt1_selectware();
bool introPt3();
bool introPt3Bis();
bool introDisplaySign();
diff --git a/engines/waynesworld/wwintro_demo1.cpp b/engines/waynesworld/wwintro_demo1.cpp
index 6099db7c310..94a55d8a76a 100644
--- a/engines/waynesworld/wwintro_demo1.cpp
+++ b/engines/waynesworld/wwintro_demo1.cpp
@@ -38,8 +38,14 @@ void WWIntro_demo1::runIntro() {
// continueFl is used like in the full version, but for the moment it's not possible to skip (demo is not interactive)
bool continueFl = initOanGxl();
- if (continueFl)
- continueFl = introPt1();
+ if (continueFl) {
+ Common::File f;
+
+ if (f.exists("capspin.gxl"))
+ continueFl = introPt1();
+ else
+ continueFl = introPt1_selectware();
+ }
if (continueFl)
continueFl = introPt3();
if (continueFl)
@@ -198,6 +204,55 @@ bool WWIntro_demo1::introPt1() {
return true;
}
+bool WWIntro_demo1::introPt1_selectware() {
+ GxlArchive *capGxl = new GxlArchive("cap");
+ _vm->paletteFadeOut(0, 256, 64);
+ _vm->_screen->clear(0);
+ _vm->loadPalette(capGxl, "paramnt.pcx");
+ _vm->paletteFadeOut(0, 256, 64);
+ _vm->_screen->clear(0);
+ _vm->drawImageToScreen(capGxl, "paramnt.pcx", 0, 0);
+ _vm->paletteFadeIn(0, 256, 3);
+ _vm->waitSeconds(1);
+
+ _vm->paletteFadeOut(0, 256, 3);
+ _vm->_screen->clear(0);
+ _vm->loadPalette(capGxl, "pyramid.pcx");
+ _vm->paletteFadeOut(0, 256, 64);
+ _vm->_screen->clear(0);
+ _vm->drawImageToScreen(capGxl, "pyramid.pcx", 58, 21);
+ _vm->paletteFadeIn(0, 256, 3);
+
+ // The original has all the frames hardcoded one after the other, I used a loop instead.
+ Frame animation[] = {
+ {"prestxt1.pcx", 40, 125, 60},
+ {"prestxt2.pcx", 40, 125, 60},
+ {"prestxt3.pcx", 40, 125, 60},
+ {"prestxt4.pcx", 40, 125, 60},
+ {"prestxt5.pcx", 40, 125, 60},
+ {"prestxt6.pcx", 40, 125, 60},
+ {"present1.pcx", 115, 156, 60},
+ {"present2.pcx", 115, 156, 60},
+ {"present3.pcx", 115, 156, 60},
+ {"present4.pcx", 115, 156, 60},
+ {"present5.pcx", 115, 156, 60},
+ {"present6.pcx", 115, 156, 60},
+ {"star1.pcx", 146, 17, 150},
+ {"star2.pcx", 146, 17, 150},
+ {"star3.pcx", 146, 17, 150},
+ {"star4.pcx", 146, 17, 150},
+ {"pyramid.pcx", 58, 21, 4250}
+ };
+
+ for (const Frame &frame : animation) {
+ _vm->drawImageToScreen(capGxl, frame.filename, frame.x, frame.y);
+ _vm->waitMillis(frame.delay);
+ }
+
+ delete capGxl;
+ return true;
+}
+
bool WWIntro_demo1::introPt3() {
// sub1 - Parameter is always 'true' so it has been removed and the code simplified
_vm->paletteFadeOut(0, 256, 64);
More information about the Scummvm-git-logs
mailing list