From 3268b1fab87a34897289faa8a1f5ee0679f74e19 Mon Sep 17 00:00:00 2001 From: Colin Noga Date: Wed, 26 Sep 2012 00:37:20 -0500 Subject: Player Angles, shop lakitu improvements, and shop level node corrections --- src/koopatlas/pathmanager.cpp | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) (limited to 'src/koopatlas/pathmanager.cpp') diff --git a/src/koopatlas/pathmanager.cpp b/src/koopatlas/pathmanager.cpp index e1d7993..2b85aaa 100644 --- a/src/koopatlas/pathmanager.cpp +++ b/src/koopatlas/pathmanager.cpp @@ -352,6 +352,12 @@ void dWMPathManager_c::execute() { activatePoint(); if (pressedDir >= 0) { + static u16 xangles[] = {-0,0,0x1800,-0x1800}; + daWMPlayer_c::instance->rot.x = xangles[pressedDir]; + + static u16 zangles[] = {-0x1800,0x1800,0,0}; + daWMPlayer_c::instance->rot.z = zangles[pressedDir]; + if (canUseExit(currentNode->exits[pressedDir])) { startMovementTo(currentNode->exits[pressedDir]); } else { @@ -471,6 +477,12 @@ void dWMPathManager_c::startMovementTo(dKPPath_s *path) { player->startAnimation(Animations[id].anim, Animations[id].animParam1, Animations[id].animParam2, 0.0f); player->rot.y = (Animations[id].forceRotation != -1) ? Animations[id].forceRotation : direction; + + OSReport("Rot.y = %08x", player->rot.y); + player->rot.x = (player->rot.y < 0) ? -((player->rot.y + 0x4000) * 0x1800 / 0x8000 * 2) : (player->rot.y - 0x4000) * 0x1800 / 0x8000 * 2; + player->rot.z = (player->rot.y < 0) ? -((player->rot.y + 0x8000) * 0x1800 / 0x8000 * 2) : (player->rot.y ) * 0x1800 / 0x8000 * 2; + + moveSpeed = (Animations[id].forceSpeed >= 0.0f) ? Animations[id].forceSpeed : 3.0f; if (Animations[id].repeatEffect) { @@ -634,7 +646,7 @@ void dWMPathManager_c::activatePoint() { int w = currentNode->levelNumber[0] - 1; int l = currentNode->levelNumber[1] - 1; - if (l == 40) { + if (l == 98) { dWMShop_c::instance->LoadShopForWorld(w); dScKoopatlas_c::instance->state.setState(&dScKoopatlas_c::instance->StateID_ShopWait); return; @@ -654,6 +666,8 @@ void dWMPathManager_c::activatePoint() { MapSoundPlayer(SoundRelatedClass, SE_SYS_GAME_START, 1); daWMPlayer_c::instance->startAnimation(170, 1.2, 10.0, 0.0); daWMPlayer_c::instance->rot.y = 0; + daWMPlayer_c::instance->rot.x = -0x1800; + daWMPlayer_c::instance->rot.z = 0; isEnteringLevel = true; levelStartWait = 40; -- cgit v1.2.3