[Scummvm-git-logs] scummvm master -> 29a96d194304c090d53c4bd7dbbc86581d76e05f
Strangerke
noreply at scummvm.org
Mon Apr 13 05:54:58 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:
29a96d1943 WAYNESWORLD: Implement first part of the demo 1
Commit: 29a96d194304c090d53c4bd7dbbc86581d76e05f
https://github.com/scummvm/scummvm/commit/29a96d194304c090d53c4bd7dbbc86581d76e05f
Author: Strangerke (arnaud.boutonne at gmail.com)
Date: 2026-04-13T07:54:33+02:00
Commit Message:
WAYNESWORLD: Implement first part of the demo 1
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 c7f330cbd9f..942f94e00ef 100644
--- a/engines/waynesworld/wwintro.cpp
+++ b/engines/waynesworld/wwintro.cpp
@@ -32,6 +32,17 @@ namespace WaynesWorld {
WWIntro::WWIntro(WaynesWorldEngine *vm) : _vm(vm) {
}
+bool WWIntro::initOanGxl() {
+ _vm->paletteFadeOut(0, 256, 64);
+
+ _oanGxl = new GxlArchive("oan");
+ _vm->loadPalette(_oanGxl, "backg2.pcx");
+ _demoPt2Surface = new WWSurface(320, 200);
+ _vm->_midi->stopSong();
+
+ return true;
+}
+
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 24387db3f1a..150ac2636fe 100644
--- a/engines/waynesworld/wwintro.h
+++ b/engines/waynesworld/wwintro.h
@@ -32,6 +32,13 @@ class WaynesWorldEngine;
class GxlArchive;
class WWSurface;
+struct Frame {
+ const char *filename;
+ int x;
+ int y;
+ int delay;
+};
+
class WWIntro {
protected:
WaynesWorldEngine *_vm;
@@ -48,6 +55,9 @@ public:
WWSurface *_demoPt2Surface = nullptr;
protected:
+ GxlArchive *_oanGxl = nullptr;
+
+ bool initOanGxl();
void wwEffect(int arg0, int arg1, bool flag);
};
@@ -59,8 +69,6 @@ public:
void runIntro() override;
private:
- GxlArchive *_oanGxl = nullptr;
-
int _startOawPos = 0;
int _startOagPos = 0;
int _startOaoPos = 0;
@@ -72,7 +80,6 @@ private:
int _old_argGHead1Index = -1;
bool introPt1();
- bool introPt2();
bool introPt3(bool flag);
bool introPt4();
void introPt5();
diff --git a/engines/waynesworld/wwintro_demo1.cpp b/engines/waynesworld/wwintro_demo1.cpp
index 5a2163377f7..7a996ccd6f7 100644
--- a/engines/waynesworld/wwintro_demo1.cpp
+++ b/engines/waynesworld/wwintro_demo1.cpp
@@ -36,7 +36,111 @@ WWIntro_demo1::~WWIntro_demo1() {
}
void WWIntro_demo1::runIntro() {
- bool continueFl = introPt1();
+ bool continueFl = initOanGxl();
+
+ if (continueFl)
+ introPt1();
+}
+
+bool WWIntro_demo1::introPt1() {
+ GxlArchive *capspinGxl = new GxlArchive("capspin");
+ _vm->loadPalette(capspinGxl, "paramnt.pcx");
+ _vm->paletteFadeOut(0, 256, 64);
+ _vm->drawImageToScreen(capspinGxl, "paramnt.pcx", 0, 0);
+ _vm->paletteFadeIn(0, 256, 3);
+ _vm->waitSeconds(1);
+
+ WWSurface *paramaSprite = new WWSurface(190, 112);
+ // "And" animation
+ _vm->drawImageToSurface(capspinGxl, "parama.pcx", paramaSprite, 0, 0);
+ _vm->drawRandomEffect(paramaSprite, 66, 30, 2, 2);
+ delete paramaSprite;
+ _vm->waitSeconds(2);
+
+ _vm->paletteFadeOut(0, 256, 6);
+ _vm->_screen->clear(0);
+ _vm->loadPalette(capspinGxl, "backg.pcx");
+ _vm->paletteFadeOut(0, 256, 64);
+ _vm->drawImageToScreen(capspinGxl, "backg.pcx", 0, 0);
+ _vm->paletteFadeIn(0, 256, 6);
+
+ // The original has all the frames hardcoded one after the other, I used a loop instead.
+ Frame animation[] = {
+ {"cap01.pcx", 179, 97, 30},
+ {"cap02.pcx", 179, 97, 30},
+ {"cap03.pcx", 181, 98, 30},
+ {"cap04.pcx", 183, 98, 30},
+ {"cap05.pcx", 186, 97, 30},
+ {"cap06.pcx", 189, 96, 30},
+ {"cap07.pcx", 192, 94, 30},
+ {"cap08.pcx", 198, 91, 30},
+ {"cap09.pcx", 208, 88, 30},
+ {"cap10.pcx", 212, 85, 30},
+ {"cap11.pcx", 217, 84, 30},
+ {"cap12.pcx", 223, 82, 30},
+ {"cap13.pcx", 234, 81, 30},
+ {"cap14.pcx", 233, 78, 30},
+ {"cap15.pcx", 236, 76, 30},
+ {"cap16.pcx", 240, 76, 30},
+ {"cap17.pcx", 241, 75, 30},
+ {"cap18.pcx", 238, 74, 30},
+ {"cap19.pcx", 238, 72, 30},
+ {"cap20.pcx", 238, 72, 30},
+ {"cap21.pcx", 225, 71, 30},
+ {"cap22.pcx", 218, 69, 30},
+ {"cap23.pcx", 218, 68, 30},
+ {"cap24.pcx", 192, 68, 30},
+ {"cap25.pcx", 164, 67, 30},
+ {"cap26.pcx", 133, 67, 30},
+ {"cap27.pcx", 103, 66, 30},
+ {"cap28.pcx", 87, 68, 1030},
+ {"txt01.pcx", 0, 138, 30},
+ {"txt02.pcx", 0, 138, 30},
+ {"txt03.pcx", 0, 138, 30},
+ {"txt04.pcx", 0, 138, 30},
+ {"txt05.pcx", 0, 138, 30},
+ {"txt06.pcx", 0, 138, 30},
+ {"txt07.pcx", 0, 138, 30},
+ {"txt08.pcx", 0, 138, 30},
+ {"txt09.pcx", 0, 138, 1030},
+ {"captxt01.pcx", 113, 89, 30},
+ {"captxt02.pcx", 113, 89, 30},
+ {"captxt03.pcx", 113, 89, 30},
+ {"captxt04.pcx", 113, 89, 30},
+ {"captxt05.pcx", 113, 89, 30},
+ {"captxt06.pcx", 113, 89, 30},
+ {"captxt07.pcx", 113, 89, 30},
+ {"captxt08.pcx", 113, 89, 30},
+ {"captxt09.pcx", 113, 89, 30},
+ {"captxt10.pcx", 113, 89, 30},
+ {"captxt11.pcx", 113, 89, 1030},
+ {"txt09.pcx", 0, 138, 30},
+ {"txt08.pcx", 0, 138, 30},
+ {"txt07.pcx", 0, 138, 30},
+ {"txt06.pcx", 0, 138, 30},
+ {"txt05.pcx", 0, 138, 30},
+ {"txt04.pcx", 0, 138, 30},
+ {"txt03.pcx", 0, 138, 30},
+ {"txt02.pcx", 0, 138, 30},
+ {"txt01.pcx", 0, 138, 30},
+ {"txtbkg.pcx", 0, 138, 1030},
+ {"capawy01.pcx", 80, 67, 30},
+ {"capawy02.pcx", 80, 67, 30},
+ {"capawy03.pcx", 69, 64, 30},
+ {"capawy04.pcx", 37, 54, 30},
+ {"capawy05.pcx", 0, 41, 30},
+ {"capawy06.pcx", 0, 27, 30},
+ {"capawy07.pcx", 0, 27, 30},
+ {"capawy08.pcx", 0, 27, 1030}
+ };
+
+ for (const auto &frame : animation) {
+ _vm->drawImageToScreen(capspinGxl, frame.filename, frame.x, frame.y);
+ _vm->waitMillis(frame.delay);
+ }
+
+ delete capspinGxl;
+ return true;
}
bool WWIntro_demo1::introPt1() {
diff --git a/engines/waynesworld/wwintro_full.cpp b/engines/waynesworld/wwintro_full.cpp
index 67e79d0fd55..3b7053f1add 100644
--- a/engines/waynesworld/wwintro_full.cpp
+++ b/engines/waynesworld/wwintro_full.cpp
@@ -39,7 +39,7 @@ void WWIntro_full::runIntro() {
bool continueFl = introPt1();
if (continueFl)
- continueFl = introPt2();
+ continueFl = initOanGxl();
if (continueFl)
continueFl = introPt3(false);
@@ -189,17 +189,6 @@ bool WWIntro_full::introPt1() {
return true;
}
-bool WWIntro_full::introPt2() {
- _vm->paletteFadeOut(0, 256, 64);
-
- _oanGxl = new GxlArchive("oan");
- _vm->loadPalette(_oanGxl, "backg2.pcx");
- _demoPt2Surface = new WWSurface(320, 200);
- _vm->_midi->stopSong();
-
- return true;
-}
-
void WWIntro_full::cleanPt3() {
delete _outlineSurface;
delete _logoSurface;
More information about the Scummvm-git-logs
mailing list