From 5a96238dd3f739cdec6f44d52ceedcada87ae565 Mon Sep 17 00:00:00 2001
From: Filippos Karapetis
Date: Tue, 6 Dec 2011 04:19:57 +0200
Subject: DREAMWEB: 'afterintroroom', 'gettingshot', 'loadintroroom',
 'redrawmainscrn', 'selectslot2', 'walkintoroom' ported to C++

---
 engines/dreamweb/dreamgen.cpp | 86 -------------------------------------------
 engines/dreamweb/dreamgen.h   |  6 ---
 engines/dreamweb/stubs.cpp    | 74 +++++++++++++++++++++++++++++++++++++
 engines/dreamweb/stubs.h      |  6 +++
 4 files changed, 80 insertions(+), 92 deletions(-)

(limited to 'engines')

diff --git a/engines/dreamweb/dreamgen.cpp b/engines/dreamweb/dreamgen.cpp
index 78d3fa2351..50a0d3bc9f 100644
--- a/engines/dreamweb/dreamgen.cpp
+++ b/engines/dreamweb/dreamgen.cpp
@@ -2165,18 +2165,6 @@ void DreamGenContext::showMonk() {
 	showFrame();
 }
 
-void DreamGenContext::gettingShot() {
-	STACK_CHECK;
-	data.byte(kNewlocation) = 55;
-	clearPalette();
-	loadIntroRoom();
-	fadeScreenUps();
-	data.byte(kVolumeto) = 0;
-	data.byte(kVolumedirection) = -1;
-	runEndSeq();
-	clearBeforeLoad();
-}
-
 void DreamGenContext::runIntroSeq() {
 	STACK_CHECK;
 	data.byte(kGetback) = 0;
@@ -2236,26 +2224,6 @@ moreendseq:
 		goto moreendseq;
 }
 
-void DreamGenContext::loadIntroRoom() {
-	STACK_CHECK;
-	data.byte(kIntrocount) = 0;
-	data.byte(kLocation) = 255;
-	loadRoom();
-	data.word(kMapoffsetx) = 72;
-	data.word(kMapoffsety) = 16;
-	clearSprites();
-	data.byte(kThroughdoor) = 0;
-	data.byte(kCurrentkey) = '0';
-	data.byte(kMainmode) = 0;
-	clearWork();
-	data.byte(kNewobs) = 1;
-	drawFloor();
-	reelsOnScreen();
-	spriteUpdate();
-	printSprites();
-	workToScreen();
-}
-
 void DreamGenContext::fillOpen() {
 	STACK_CHECK;
 	delTextLine();
@@ -4017,21 +3985,6 @@ beforethistext:
 		goto shuffletextads;
 }
 
-void DreamGenContext::redrawMainScrn() {
-	STACK_CHECK;
-	data.word(kTimecount) = 0;
-	createPanel();
-	data.byte(kNewobs) = 0;
-	drawFloor();
-	printSprites();
-	reelsOnScreen();
-	showIcon();
-	getUnderZoom();
-	underTextLine();
-	readMouse();
-	data.byte(kCommandtype) = 255;
-}
-
 void DreamGenContext::getBack1() {
 	STACK_CHECK;
 	_cmp(data.byte(kPickup), 0);
@@ -8498,16 +8451,6 @@ discopsloop:
 		goto discopsloop;
 }
 
-void DreamGenContext::selectSlot2() {
-	STACK_CHECK;
-	_cmp(data.word(kMousebutton), 0);
-	if (flags.z())
-		goto noselslot2;
-	data.byte(kLoadingorsave) = 2;
-noselslot2:
-	selectSlot();
-}
-
 void DreamGenContext::checkInput() {
 	STACK_CHECK;
 	_cmp(data.byte(kLoadingorsave), 3);
@@ -9523,35 +9466,6 @@ ryansoff:
 	atmospheres();
 }
 
-void DreamGenContext::walkIntoRoom() {
-	STACK_CHECK;
-	_cmp(data.byte(kLocation), 14);
-	if (!flags.z())
-		return /* (notlair) */;
-	_cmp(data.byte(kMapx), 22);
-	if (!flags.z())
-		return /* (notlair) */;
-	data.byte(kDestination) = 1;
-	data.byte(kFinaldest) = 1;
-	autoSetWalk();
-}
-
-void DreamGenContext::afterIntroRoom() {
-	STACK_CHECK;
-	_cmp(data.byte(kNowinnewroom), 0);
-	if (flags.z())
-		return /* (notnewintro) */;
-	clearWork();
-	findRoomInLoc();
-	data.byte(kNewobs) = 1;
-	drawFloor();
-	reelsOnScreen();
-	spriteUpdate();
-	printSprites();
-	workToScreen();
-	data.byte(kNowinnewroom) = 0;
-}
-
 void DreamGenContext::printmessage2() {
 	STACK_CHECK;
 	push(dx);
diff --git a/engines/dreamweb/dreamgen.h b/engines/dreamweb/dreamgen.h
index bcaf1343e1..f8968c2313 100644
--- a/engines/dreamweb/dreamgen.h
+++ b/engines/dreamweb/dreamgen.h
@@ -585,7 +585,6 @@ public:
 	void sLabDoorD();
 	void adjustUp();
 	void fadeScreenDownHalf();
-	void loadIntroRoom();
 	void mouseCall();
 	void train();
 	void fadeDownMon();
@@ -608,7 +607,6 @@ public:
 	void getUnderZoom();
 	void rollEndCredits2();
 	void reminders();
-	void selectSlot2();
 	void runTap();
 	void talk();
 	void dumpDiaryKeys();
@@ -623,7 +621,6 @@ public:
 	void entryAnims();
 	void getFreeAd();
 	void showArrows();
-	void walkIntoRoom();
 	void printOuterMon();
 	void showDecisions();
 	void removeObFromInv();
@@ -720,7 +717,6 @@ public:
 	void useElvDoor();
 	void putBackObStuff();
 	void useLadder();
-	void afterIntroRoom();
 	void findAllOpen();
 	void quitSymbol();
 	void readFromFile();
@@ -777,7 +773,6 @@ public:
 	void additionalText();
 	void hotelControl();
 	void mugger();
-	void gettingShot();
 	void searchForString();
 	void selectOpenOb();
 	void useGun();
@@ -814,7 +809,6 @@ public:
 	void monkAndRyan();
 	void swapWithInv();
 	void useControl();
-	void redrawMainScrn();
 	void makeMainScreen();
 	void useWinch();
 	void updateSymbolTop();
diff --git a/engines/dreamweb/stubs.cpp b/engines/dreamweb/stubs.cpp
index bee5b83197..fa0a3b0bc6 100644
--- a/engines/dreamweb/stubs.cpp
+++ b/engines/dreamweb/stubs.cpp
@@ -3504,5 +3504,79 @@ void DreamGenContext::initialInv() {
 	switchRyanOff();
 }
 
+void DreamGenContext::walkIntoRoom() {
+	if (data.byte(kLocation) == 14 && data.byte(kMapx) == 22) {
+		data.byte(kDestination) = 1;
+		data.byte(kFinaldest) = 1;
+		autoSetWalk();
+	}
+}
+
+void DreamGenContext::loadIntroRoom() {
+	data.byte(kIntrocount) = 0;
+	data.byte(kLocation) = 255;
+	loadRoom();
+	data.word(kMapoffsetx) = 72;
+	data.word(kMapoffsety) = 16;
+	clearSprites();
+	data.byte(kThroughdoor) = 0;
+	data.byte(kCurrentkey) = '0';
+	data.byte(kMainmode) = 0;
+	clearWork();
+	data.byte(kNewobs) = 1;
+	drawFloor();
+	reelsOnScreen();
+	spriteUpdate();
+	printSprites();
+	workToScreen();
+}
+
+void DreamGenContext::afterIntroRoom() {
+	if (data.byte(kNowinnewroom) == 0)
+		return; // notnewintro
+
+	clearWork();
+	findRoomInLoc();
+	data.byte(kNewobs) = 1;
+	drawFloor();
+	reelsOnScreen();
+	spriteUpdate();
+	printSprites();
+	workToScreen();
+	data.byte(kNowinnewroom) = 0;
+}
+
+void DreamGenContext::gettingShot() {
+	data.byte(kNewlocation) = 55;
+	clearPalette();
+	loadIntroRoom();
+	fadeScreenUps();
+	data.byte(kVolumeto) = 0;
+	data.byte(kVolumedirection) = 0xFF;
+	runEndSeq();
+	clearBeforeLoad();
+}
+
+void DreamGenContext::redrawMainScrn() {
+	data.word(kTimecount) = 0;
+	createPanel();
+	data.byte(kNewobs) = 0;
+	drawFloor();
+	printSprites();
+	reelsOnScreen();
+	showIcon();
+	getUnderZoom();
+	underTextLine();
+	readMouse();
+	data.byte(kCommandtype) = 255;
+}
+
+void DreamGenContext::selectSlot2() {
+	if (data.word(kMousebutton) ==  0)
+		selectSlot();
+	else
+		data.byte(kLoadingorsave) = 2;
+}
+
 } /*namespace dreamgen */
 
diff --git a/engines/dreamweb/stubs.h b/engines/dreamweb/stubs.h
index 3149b7722d..94a30b0463 100644
--- a/engines/dreamweb/stubs.h
+++ b/engines/dreamweb/stubs.h
@@ -505,5 +505,11 @@
 	void getBackToOps();
 	void pickupOb(uint8 command, uint8 pos);
 	void initialInv();
+	void walkIntoRoom();
+	void loadIntroRoom();
+	void afterIntroRoom();
+	void gettingShot();
+	void redrawMainScrn();
+	void selectSlot2();
 
 #endif
-- 
cgit v1.2.3