From c6ad18e5f0cf1b627d850fa3101a8c78648ff452 Mon Sep 17 00:00:00 2001 From: Colin Noga Date: Sat, 7 Jul 2012 23:34:18 -0500 Subject: Lots of fixes --- NewerProject.yaml | 1 + NewerProjectKP.yaml | 1 + bossCaptainBowser.yaml | 55 +++++------------------------------------------ kamek_jpn.x | 5 +++++ kamek_pal.x | 5 +++++ poweruphax.yaml | 2 +- spritetex.yaml | 2 +- src/bossCaptainBowser.cpp | 27 +---------------------- src/bossKoopaThrow.cpp | 15 +++++++++---- src/bossPlayerClown.cpp | 1 - src/poweruphax.S | 13 +++++++++++ src/spritetex.S | 10 +++++++-- 12 files changed, 52 insertions(+), 85 deletions(-) diff --git a/NewerProject.yaml b/NewerProject.yaml index f514baf..752b2a8 100644 --- a/NewerProject.yaml +++ b/NewerProject.yaml @@ -42,6 +42,7 @@ modules: - processed/bossPodouble.yaml - processed/bossTopman.yaml - processed/bossCaptainBowser.yaml + - processed/bossBridgeBowser.yaml - processed/effectVideo.yaml - processed/fakeStarCoin.yaml - processed/shyguy.yaml diff --git a/NewerProjectKP.yaml b/NewerProjectKP.yaml index ced24a8..c0b60cb 100644 --- a/NewerProjectKP.yaml +++ b/NewerProjectKP.yaml @@ -41,6 +41,7 @@ modules: - processed/bossPodouble.yaml - processed/bossTopman.yaml - processed/bossCaptainBowser.yaml + - processed/bossBridgeBowser.yaml - processed/effectVideo.yaml - processed/fakeStarCoin.yaml - processed/shyguy.yaml diff --git a/bossCaptainBowser.yaml b/bossCaptainBowser.yaml index 30dc91d..5fb4a63 100644 --- a/bossCaptainBowser.yaml +++ b/bossCaptainBowser.yaml @@ -8,56 +8,6 @@ source_files: [../src/bossPlayerClown.cpp, ../src/bossCaptainBowser.cpp, ../src/ hooks: - ################################################ - # HOOKS FOR BRIDGE BOWSER - ################################################ - # - name: PatchMagicExecute - # type: patch - # addr_pal: 0x80954BF4 - # data: '807CF460' - - # - name: PatchMagicStart - # type: patch - # addr_pal: 0x80954BF8 - # data: '807CCE10' - - - name: PatchMagicStart - type: add_func_pointer - src_addr_pal: 0x80954BF0 - target_func: 'BowserDoomStart(dStageActor_c *)' - - - name: PatchMagicExecute - type: add_func_pointer - src_addr_pal: 0x80954BF4 - target_func: 'BowserDoomExecute(dStageActor_c *)' - - - name: PatchMagicEnd - type: add_func_pointer - src_addr_pal: 0x80954BF8 - target_func: 'BowserDoomEnd(dStageActor_c *)' - - # - name: PatchMagicStartThree - # type: add_func_pointer - # src_addr_pal: 0x80954BF4 - # target_func: 'BowserDoom(dStageActor_c *)' - - # - name: PatchMagicStartFour - # type: add_func_pointer - # src_addr_pal: 0x80954BEC - # target_func: 'BowserDoom(dStageActor_c *)' - -# Mario Fanfare and animation -# Kameck spawns and does his demo state -# Kameck does his other demo state -# Bowser Emerges from the pit -# Kameck gets killed with a hit effect -# Both bowser and Kameck continue their jump arc -# Players regain control as last vestiges of effect disappear -# Bowser finishes his jump state and moves into his roar state -# Camera starts to move right automatically -# Bowser shoots a fireball -# Players finally regain control of the camera - ################################################ # HOOKS FOR CAPTAIN BOWSER @@ -190,6 +140,11 @@ hooks: src_addr_pal: 0x8095FF14 target_func: 'CConDraw(dEn_c *)' + # - name: ClownCarSpriteCollision + # type: add_func_pointer + # src_addr_pal: 0x8095FFDC + # target_func: 'CCSpriteCollision(dEn_c *, ActivePhysics *, ActivePhysics *)' + diff --git a/kamek_jpn.x b/kamek_jpn.x index 955a496..cba5807 100644 --- a/kamek_jpn.x +++ b/kamek_jpn.x @@ -118,6 +118,11 @@ SECTIONS { WaterManager = 0x80429E20; CheckforLiquid = 0x800EB8B0; + BowserFireballCollision = 0x80B7E140; + BowserDamageAnmClr = 0x80B3EB00; + BowserDamageStepTwo = 0x80B1F1D0; + BowserDamageStepThree = 0x80098D80; + /* Mr Sun Related */ ActivePhysics_InitWithStruct = 0x8008C3E0; diff --git a/kamek_pal.x b/kamek_pal.x index 325c218..28d3dc6 100644 --- a/kamek_pal.x +++ b/kamek_pal.x @@ -118,6 +118,11 @@ SECTIONS { WaterManager = 0x8042A3E0; CheckforLiquid = 0x800EBA40; + BowserFireballCollision = 0x80B7E840; + BowserDamageAnmClr = 0x80B3F200; + BowserDamageStepTwo = 0x80B1F8D0; + BowserDamageStepThree = 0x80098D80; + /* Mr Sun Related */ ActivePhysics_InitWithStruct = 0x8008C3E0; diff --git a/poweruphax.yaml b/poweruphax.yaml index 9e12b10..9ec32d4 100644 --- a/poweruphax.yaml +++ b/poweruphax.yaml @@ -324,7 +324,7 @@ hooks: - name: HammerBigUrchinBounce type: add_func_pointer - src_addr_pal: 0x80B0CF40 + src_addr_pal: 0x80B0CCC0 target_func: 'UrchinHammer(dEn_c *, ActivePhysics *, ActivePhysics *)' - name: HammerChainChomp diff --git a/spritetex.yaml b/spritetex.yaml index c852ce9..1b7e521 100644 --- a/spritetex.yaml +++ b/spritetex.yaml @@ -296,7 +296,7 @@ hooks: - name: TEX_ColorBlock type: branch_insn branch_type: bl - src_addr_pal: 0x800BEBD4 + src_addr_pal: 0x800BEA90 target_func: 'TEX_ColorBlock' diff --git a/src/bossCaptainBowser.cpp b/src/bossCaptainBowser.cpp index 9157efb..bd6a53f 100644 --- a/src/bossCaptainBowser.cpp +++ b/src/bossCaptainBowser.cpp @@ -5,35 +5,10 @@ #include #include "boss.h" -extern "C" void *BowserExitDemoState(void *, unsigned int); -extern "C" void *ForceMarioExitDemoMode(void *, unsigned int); extern "C" void *ShakeScreen(void *, unsigned int, unsigned int, unsigned int, unsigned int); extern "C" void *StageScreen; -void BowserDoomStart(dStageActor_c *Controller) { - OSReport("Here we go!"); - - dEn_c *Bowser = (dEn_c*)FindActorByType(EN_BOSS_KOOPA, (Actor*)Controller); - Bowser->Delete(1); - -} - -void BowserDoomExecute(dStageActor_c *Controller) { - dFlagMgr_c::instance->set(0, 0, true, false, false); - dFlagMgr_c::instance->set(1, 0, true, false, false); - dFlagMgr_c::instance->set(2, 0, true, false, false); - dFlagMgr_c::instance->set(3, 0, true, false, false); - dFlagMgr_c::instance->set(4, 0, true, false, false); - Controller->Delete(1); -} - -void BowserDoomEnd(dStageActor_c *Controller) { - OSReport("Bai bai everybody"); - Controller->Delete(1); -} - - // const char* effects_name_list [] = { // "Wm_jr_electricline", // cool // "Wm_jr_fireattack", // cool @@ -236,7 +211,7 @@ int daCaptainBowser::onCreate() { this->playerCount = GetActivePlayerCount(); this->maxDamage = (10 * this->playerCount) + 10; - + pos.z = 3300.0; this->scale = (Vec){0.57, 0.57, 0.57}; this->homingBillCountdown = 270; this->homingBillSlot = 0; diff --git a/src/bossKoopaThrow.cpp b/src/bossKoopaThrow.cpp index a8e1b0a..85c96ca 100644 --- a/src/bossKoopaThrow.cpp +++ b/src/bossKoopaThrow.cpp @@ -91,15 +91,22 @@ CREATE_STATE(daKoopaThrow, Straight); extern "C" void *PlayWrenchSound(dEn_c *); - +extern "C" void *dAcPy_c__ChangePowerupWithAnimation(void * Player, int powerup); +extern "C" int CheckExistingPowerup(void * Player); void daKoopaThrow::playerCollision(ActivePhysics *apThis, ActivePhysics *apOther) { if (Type == 5) { PlaySoundAsync(this, currentInfo->breakSound); SpawnEffect(currentInfo->deathEffect, 0, &this->pos, &(S16Vec){0,0,0}, &(Vec){3.0, 3.0, 3.0}); - dStageActor_c *spawned = CreateActor(EN_ITEM, 0x20000063, this->pos, 0, 0); - spawned->pos.x = this->pos.x; - spawned->pos.y = this->pos.y; + // dStageActor_c *spawned = CreateActor(EN_ITEM, 0x20000063, this->pos, 0, 0); + // spawned->pos.x = this->pos.x; + // spawned->pos.y = this->pos.y; + + int p = CheckExistingPowerup(apOther->owner); + if (p == 0 || p == 3) { // Powerups - 0 = small; 1 = big; 2 = fire; 3 = mini; 4 = prop; 5 = peng; 6 = ice; 7 = hammer + dAcPy_c__ChangePowerupWithAnimation(apOther->owner, 1); + } + this->Delete(1); return; diff --git a/src/bossPlayerClown.cpp b/src/bossPlayerClown.cpp index 6a7e2fc..6fccee6 100644 --- a/src/bossPlayerClown.cpp +++ b/src/bossPlayerClown.cpp @@ -30,7 +30,6 @@ const char* PCCarcNameList [] = { - int CConDraw(dEn_c *clown) { // setup cannon model clown->matrix.translation(clown->pos.x, clown->pos.y + 8.0, clown->pos.z-100.0); diff --git a/src/poweruphax.S b/src/poweruphax.S index 7f1fcdf..1d849c1 100644 --- a/src/poweruphax.S +++ b/src/poweruphax.S @@ -634,6 +634,19 @@ isHammerForToad: + + + +.global CheckExistingPowerup +CheckExistingPowerup: + + lwz r3, 0x14E0(r3) + blr + + + + + .data PowerupSounds: diff --git a/src/spritetex.S b/src/spritetex.S index 51e4cb7..563d81a 100755 --- a/src/spritetex.S +++ b/src/spritetex.S @@ -417,9 +417,15 @@ TEX_Midway: .global TEX_ColorBlock TEX_ColorBlock: - lwz r5, 4(r30) + + cmpwi r0, 0xB0 + bnelr + + subi r9, r29, 0x4E0 + + lwz r5, 4(r9) srwi r5, r5, 28 - andi. r5, r5, 0xFF + andi. r5, r5, 0xF b GetTexFilenameForR5 -- cgit v1.2.3