diff options
Diffstat (limited to 'src/creditsMgr.cpp')
-rw-r--r-- | src/creditsMgr.cpp | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/src/creditsMgr.cpp b/src/creditsMgr.cpp index e4dafda..0d7b5e7 100644 --- a/src/creditsMgr.cpp +++ b/src/creditsMgr.cpp @@ -27,6 +27,9 @@ void EGG__Heap__free(void *ptr, void *heap); extern char CameraLockEnabled; extern VEC2 CameraLockPosition; +extern char isLockPlayerRotation; +extern s16 lockedPlayerRotation; + mTexture_c efbTexture; bool getNextEFB = false; int thing = 0; @@ -164,6 +167,8 @@ int dCreditsMgr_c::onCreate() { } int dCreditsMgr_c::onDelete() { + isLockPlayerRotation = false; + scriptLoader.unload(); return layout.free() && titleLayout.free(); } @@ -214,6 +219,9 @@ int dCreditsMgr_c::onExecute() { VEC3 efPos = {10208.0f + xOffs, -304.0f - yOffs, pos.z + 200.0f}; SpawnEffect(fw[fwID], 0, &efPos, 0, 0); + + nw4r::snd::SoundHandle handle; + PlaySoundWithFunctionB4(SoundRelatedClass, &handle, SE_OBJ_GOAL_FIREWORKS, 1); } } @@ -461,6 +469,18 @@ void dCreditsMgr_c::doAutoscroll(int pathID) { fauxScrollY = -firstNode->yPos; CameraLockEnabled = 1; + + // set directions + isLockPlayerRotation = true; + lockedPlayerRotation = endingMode ? 0 : 0x3000; + + for (int i = 0; i < 4; i++) { + dAcPy_c *player; + if ((player = dAcPy_c::findByID(i))) { + player->direction = 0; + player->rot.y = 0x3000; + } + } } void dCreditsMgr_c::animComplete() { |