[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