From bc2e90e6966768154e2c45d0294eb843cd03a333 Mon Sep 17 00:00:00 2001
From: Treeki <treeki@gmail.com>
Date: Sat, 13 Apr 2013 09:13:12 +0200
Subject: fix more bugs with player rotation in credits

---
 src/creditsMgr.S     | 4 ++--
 src/creditsMgr.cpp   | 3 +++
 src/levelspecial.cpp | 2 ++
 3 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/src/creditsMgr.S b/src/creditsMgr.S
index fc675cb..03e61de 100644
--- a/src/creditsMgr.S
+++ b/src/creditsMgr.S
@@ -88,9 +88,9 @@ PlayerRotInjector3:
 	bne dontOverridePlayerRot3
 	lis r9, lockedPlayerRotation@h
 	ori r9, r9, lockedPlayerRotation@l
-	lha r0, 0(r9)
+	lha r7, 0(r9)
 dontOverridePlayerRot3:
-	sth r0, 0x12(r1)
+	sth r7, 0x12(r1)
 	blr
 
 # FOR SOME FUN
diff --git a/src/creditsMgr.cpp b/src/creditsMgr.cpp
index 0d7b5e7..bcd48f8 100644
--- a/src/creditsMgr.cpp
+++ b/src/creditsMgr.cpp
@@ -228,6 +228,9 @@ int dCreditsMgr_c::onExecute() {
 	if (countdown > 0) {
 		countdown--;
 	} else if (!renderer.isEnabled) {
+		if (!endingMode)
+			isLockPlayerRotation = false;
+
 		// Execute commands if we can
 		bool exitInterpreter = false;
 		while (scriptPos && !exitInterpreter) {
diff --git a/src/levelspecial.cpp b/src/levelspecial.cpp
index 002a6a1..ba8539c 100644
--- a/src/levelspecial.cpp
+++ b/src/levelspecial.cpp
@@ -47,6 +47,7 @@ extern u32 GameTimer;
 
 extern char CameraLockEnabled;
 extern VEC2 CameraLockPosition;
+extern char isLockPlayerRotation;
 
 #define time *(u32*)((GameTimer) + 0x4)
 
@@ -95,6 +96,7 @@ bool ResetAfterLevel(bool didItWork) {
 		Player_Flags[i] &= ~4;
 	BGScaleEnabled = 0;
 	CameraLockEnabled = 0;
+	isLockPlayerRotation = false;
 	return didItWork;
 }
 
-- 
cgit v1.2.3