summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--NewerProject.yaml1
-rw-r--r--NewerProjectKP.yaml1
-rw-r--r--bossCaptainBowser.yaml55
-rw-r--r--kamek_pal.x5
-rw-r--r--poweruphax.yaml2
-rw-r--r--spritetex.yaml2
-rw-r--r--src/bossCaptainBowser.cpp27
-rw-r--r--src/bossKoopaThrow.cpp15
-rw-r--r--src/bossPlayerClown.cpp1
-rw-r--r--src/poweruphax.S13
-rwxr-xr-xsrc/spritetex.S10
11 files changed, 47 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_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 <stage.h>
#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