summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to '')
-rwxr-xr-xinclude/game.h1
-rw-r--r--kamek_pal.x3
-rw-r--r--src/bonusRoom.cpp2
-rw-r--r--src/fileselect.S4
-rw-r--r--src/shyguy.cpp7
5 files changed, 11 insertions, 6 deletions
diff --git a/include/game.h b/include/game.h
index 9d126a9..0058319 100755
--- a/include/game.h
+++ b/include/game.h
@@ -3948,6 +3948,7 @@ class StageE4 {
void killAllEnemiesAtLevelEnd(int type);
// 0=normal, 1=?, 2=kill indiscriminately, for ambush levels
// just use 0.
+ void spawnCoinJump(const VEC3 &pos, int direction, int coinCount, int layer);
};
// Some ugly code
diff --git a/kamek_pal.x b/kamek_pal.x
index 0f7bbb4..2976acc 100644
--- a/kamek_pal.x
+++ b/kamek_pal.x
@@ -1804,6 +1804,9 @@ SECTIONS {
JrClownDemoWaitState = 0x80999884;
ClownDemoWaitState = 0x803580DC;
+ spawnCoinJump__7StageE4FRC7Point3diii = 0x80066630;
+
+
.text : {
FILL (0)
diff --git a/src/bonusRoom.cpp b/src/bonusRoom.cpp
index e2c89d0..5438b4f 100644
--- a/src/bonusRoom.cpp
+++ b/src/bonusRoom.cpp
@@ -1028,7 +1028,7 @@ void dSingAlong::addPowerups() {
SaveFile *file = GetSaveFile();
SaveBlock *block = file->GetBlock(file->header.current_file);
- for (int i = 0; i < 7; i++) { // Change this to 8 to support hammers
+ for (int i = 0; i < 8; i++) { // Change this to 8 to support hammers
block->powerups_available[i] = block->powerups_available[i] + this->Powerups[i];
if (block->powerups_available[i] > 99) { block->powerups_available[i] = 99; }
diff --git a/src/fileselect.S b/src/fileselect.S
index 25b1805..ad874fd 100644
--- a/src/fileselect.S
+++ b/src/fileselect.S
@@ -126,8 +126,8 @@ chosenWName:
lwz r22, 4(r3)
# Now, subtract the paid star coins
- lhz r3, 0x66(r31)
- sub r21, r21, r3
+ # lhz r3, 0x66(r31)
+ # sub r21, r21, r3
# r21: Star Coin Count
# r22: Exit Count
diff --git a/src/shyguy.cpp b/src/shyguy.cpp
index 1e89a8a..5a5dc8d 100644
--- a/src/shyguy.cpp
+++ b/src/shyguy.cpp
@@ -154,7 +154,6 @@ daShyGuy *daShyGuy::build() {
extern "C" int SmoothRotation(short* rot, u16 amt, int unk2);
// extern "C" void addToList(StandOnTopCollider *self);
-
CREATE_STATE(daShyGuy, Walk);
CREATE_STATE(daShyGuy, Turn);
CREATE_STATE(daShyGuy, RealWalk);
@@ -297,6 +296,7 @@ daShyGuy *daShyGuy::build() {
return this->collisionCatD_Drill(apThis, apOther);
}
bool daShyGuy::collisionCat13_Hammer(ActivePhysics *apThis, ActivePhysics *apOther) {
+ StageE4::instance->spawnCoinJump(pos, 0, 2, 0);
return this->collisionCatD_Drill(apThis, apOther);
}
@@ -324,8 +324,8 @@ daShyGuy *daShyGuy::build() {
stateVar = &StateID_FireKnockBack;
}
else {
+ StageE4::instance->spawnCoinJump(pos, 0, 1, 0);
doStateChange(&StateID_DieSmoke);
- this->_vf14C();
}
}
else { // Ballooneers
@@ -335,8 +335,8 @@ daShyGuy *daShyGuy::build() {
if (this->damage > 1) {
nw4r::snd::SoundHandle handle;
PlaySoundWithFunctionB4(SoundRelatedClass, &handle, SE_EMY_DOWN, 1);
+ StageE4::instance->spawnCoinJump(pos, 0, 1, 0);
doStateChange(&StateID_DieSmoke);
- this->_vf14C();
}
else {
nw4r::snd::SoundHandle handle;
@@ -457,6 +457,7 @@ int daShyGuy::onCreate() {
allocator.link(-1, GameHeaps[0], 0, 0x20);
+ this->deleteForever = 1;
// Balloon Specifics
if (type == 6 || type == 7 || type == 8) {