summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--NewerProjectKP.yaml3
-rwxr-xr-xinclude/game.h6
-rw-r--r--kamek_pal.x15
-rw-r--r--src/shyguy.cpp66
-rw-r--r--tools/UsedProfileAndSpriteList.txt4
5 files changed, 28 insertions, 66 deletions
diff --git a/NewerProjectKP.yaml b/NewerProjectKP.yaml
index 2aad64b..275df02 100644
--- a/NewerProjectKP.yaml
+++ b/NewerProjectKP.yaml
@@ -3,7 +3,7 @@ code_address: 0x808D9000
modules:
- processed/prolog.yaml
- processed/corseClear.yaml
-# - processed/apDebug.yaml
+ - processed/apDebug.yaml
# - processed/layoutDebug.yaml
- processed/flipblock.yaml
- processed/fileselect.yaml
@@ -56,6 +56,7 @@ modules:
- processed/effectVideo.yaml
- processed/fakeStarCoin.yaml
- processed/shyguy.yaml
+ - processed/shyguyGiants.yaml
- processed/meteor.yaml
- processed/electricLine.yaml
- processed/makeYourOwn.yaml
diff --git a/include/game.h b/include/game.h
index e19166a..3a24aba 100755
--- a/include/game.h
+++ b/include/game.h
@@ -2428,7 +2428,7 @@ public:
virtual void add2ToYSpeed();
virtual bool _vf218(); // stuff with floats and camera
virtual void _vf21C(); // does stuff with the speeds
- virtual void _vf220(void *other); // some type of actor, PlBase? calls vf3F4 on other with r4=this, r5=0
+ virtual void _vf220(void *player); // hurts player
virtual void _vf224(); // stores a couple of values into the struct at 464
virtual void _vf228(); // more fun stuff with 464 and floats
virtual bool CreateIceActors(); // does stuff involving ICE_ACTORs and arrays
@@ -2439,7 +2439,7 @@ public:
virtual void _vf240(); // nullsub, params unknown
virtual int _vf244(); // returns 0. might be bool. params unknown
virtual int _vf248(int something); // does some math involving field510 and [7,7,4,0] and param
- virtual void _vf24C(void *other); // deals with something in the class involving the bahp flag
+ virtual void bouncePlayerWhenJumpedOn(void *player);
virtual void addScoreWhenHit(void *other); // Other is dPlayer
virtual void _vf254(void *other);
virtual void _vf258(void *other);
@@ -2466,6 +2466,8 @@ public:
void checkLiquidImmersion(Vec2 *effectivePosition, float effectScale);
void killWithSpecifiedState(dStageActor_c *killedBy, VEC2 *effectiveSpeed, dStateBase_c *state, u32 _unused=0);
+ void bouncePlayer(void* player, float bounceHeight);
+
// States
USING_STATES(dEn_c);
diff --git a/kamek_pal.x b/kamek_pal.x
index 5fcb316..eb18718 100644
--- a/kamek_pal.x
+++ b/kamek_pal.x
@@ -76,6 +76,18 @@ SECTIONS {
MagicEnd = 0x807CCE10;
KeyLoopSet = 0x80804680;
+/* Some collision shit for giant shy guys */
+
+ BigHanaPlayer = 0x809B28C0;
+ BigHanaYoshi = 0x809B2AD0;
+ BigHanaWeirdGP = 0x809B2D80;
+ BigHanaGroundPound = 0x809B2CF0;
+ BigHanaFireball = 0x809B3A50;
+ BigHanaIceball = 0x809B3A20;
+
+ dAcPy_vf3F8 = 0x80146310;
+ dAcPy_vf3FC = 0x80146A10;
+
/* Back to other shit I didn't want to scroll for */
GlobalTickCount = 0x8042A648;
@@ -536,7 +548,7 @@ SECTIONS {
_vf240__5dEn_cFv = 0x800206A0;
_vf244__5dEn_cFv = 0x80020690;
_vf248__5dEn_cFi = 0x800968E0;
- _vf24C__5dEn_cFPv = 0x80096710;
+ bouncePlayerWhenJumpedOn__5dEn_cFPv = 0x80096710;
addScoreWhenHit__5dEn_cFPv = 0x80096700;
_vf254__5dEn_cFPv = 0x80096720;
_vf258__5dEn_cFPv = 0x80096760;
@@ -563,6 +575,7 @@ SECTIONS {
CheckIfPlayerBelow__5dEn_cFff = 0x800978C0;
stuffRelatingToCollisions__5dEn_cFfff = 0x800957B0;
checkLiquidImmersion__5dEn_cFP7Point2df = 0x80097250;
+ bouncePlayer__5dEn_cFPvf = 0x800967A0;
_vfD8__18dActorMultiState_cFv = 0x80067590;
_vfDC__18dActorMultiState_cFv = 0x800675B0;
diff --git a/src/shyguy.cpp b/src/shyguy.cpp
index bbae18b..cb0753a 100644
--- a/src/shyguy.cpp
+++ b/src/shyguy.cpp
@@ -111,7 +111,6 @@ class daShyGuy : public dEn_c {
void _vf148();
void _vf14C();
bool CreateIceActors();
- void addScoreWhenHit(void *other);
USING_STATES(daShyGuy);
DECLARE_STATE(Walk);
@@ -223,20 +222,6 @@ daShyGuy *daShyGuy::build() {
stateVar = &StateID_GoDizzy;
deathState = &StateID_Die;
}
- else if (this->type > 8) { // Giants
- hitType = usedForDeterminingStatePress_or_playerCollision(this, apThis, apOther, 0);
- if(hitType == 1) { // regular jump
- apOther->someFlagByte |= 2;
- }
- else if(hitType == 3) { // spinning jump or whatever?
- apOther->someFlagByte |= 2;
- }
- else if(hitType == 0) {
- this->dEn_c::playerCollision(apThis, apOther);
- this->_vf220(apOther->owner);
- }
- return;
- }
else { // Ballooneers
stateVar = &StateID_BalloonDrop;
deathState = &StateID_Die;
@@ -318,9 +303,6 @@ daShyGuy *daShyGuy::build() {
this->_vf14C();
}
}
- else if (this->type > 8) { // Giants
- return;
- }
else { // Ballooneers
stateVar = &StateID_FlameHit;
}
@@ -354,16 +336,11 @@ daShyGuy *daShyGuy::build() {
bool daShyGuy::CreateIceActors() {
struct DoSomethingCool my_struct = { 0, this->pos, {1.2, 1.5, 1.5}, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 };
- if (type > 8) { my_struct.scale = (Vec3){2.4, 3.0, 3.0}; }
this->frzMgr.Create_ICEACTORs( (void*)&my_struct, 1 );
__destroy_arr( (void*)&my_struct, sub_80024C20, 0x3C, 1 );
return true;
}
- void daShyGuy::addScoreWhenHit(void *other) {
- if (type < 9) { dEn_c::addScoreWhenHit(other); }
- }
-
bool daShyGuy::calculateTileCollisions() {
// Returns true if sprite should turn, false if not.
@@ -576,31 +553,10 @@ int daShyGuy::onCreate() {
ActivePhysics::Info HitMeBaby;
- if (type > 8) {
- this->scale = (Vec){40.0f, 40.0f, 40.0f};
-
- HitMeBaby.xDistToCenter = 0.0;
- HitMeBaby.yDistToCenter = 24.0;
-
- HitMeBaby.xDistToEdge = 20.0;
- HitMeBaby.yDistToEdge = 24.0;
-
- // giantRider.init(this, -19.5f, 18.0f, 19.5f, 18.0f);
-
- giantRider.init(this, 0.0f, 0.0f, -24.0f, 0.0f, 28.0f, 0, 0);
- // addToList(&giantRider);
- giantRider.addToList();
-
- giantRider.update();
- }
-
- else {
- HitMeBaby.xDistToCenter = 0.0;
- HitMeBaby.yDistToCenter = 12.0;
-
- HitMeBaby.xDistToEdge = 10.0;
- HitMeBaby.yDistToEdge = 12.0;
- }
+ HitMeBaby.xDistToCenter = 0.0;
+ HitMeBaby.yDistToCenter = 12.0;
+ HitMeBaby.xDistToEdge = 10.0;
+ HitMeBaby.yDistToEdge = 12.0;
HitMeBaby.category1 = 0x3;
HitMeBaby.category2 = 0x0;
@@ -692,14 +648,6 @@ int daShyGuy::onCreate() {
else if (type == 8) {
doStateChange(&StateID_Balloon_C);
}
- else if (type == 9) {
- bindAnimChr_and_setUpdateRate("c18_EV_WIN_2_R", 1, 0.0, 1.5);
- doStateChange(&StateID_RealWalk);
- }
- else if (type == 10) {
- bindAnimChr_and_setUpdateRate("c18_EV_WIN_2_R", 1, 0.0, 1.5);
- doStateChange(&StateID_Walk);
- }
this->onExecute();
return true;
@@ -712,17 +660,13 @@ int daShyGuy::onDelete() {
int daShyGuy::onExecute() {
acState.execute();
updateModelMatrices();
-
- if (type > 8) {
- giantRider.update();
- }
+ bodyModel._vf1C();
return true;
}
int daShyGuy::onDraw() {
bodyModel.scheduleForDrawing();
- bodyModel._vf1C();
if (this->renderBalloon == 1) {
balloonModel.scheduleForDrawing();
diff --git a/tools/UsedProfileAndSpriteList.txt b/tools/UsedProfileAndSpriteList.txt
index 1b4ba12..fc12126 100644
--- a/tools/UsedProfileAndSpriteList.txt
+++ b/tools/UsedProfileAndSpriteList.txt
@@ -27,6 +27,7 @@
89 : EN_REMOCON_TORIMOCHI : Sprite Swapper Timed
107 : EN_LIFT_ROTATION_HALF : Message Box Manager
152 : EN_BLUR : Message Block
+167 : WM_TREASURESHIP : Shy Guy Giant
169 : EN_SLIP_PENGUIN : Magic Platform
183 : EN_TARZANROPE : Meteor
210 : TARZAN_ROPE : Topman
@@ -102,6 +103,7 @@ WM_PUKU
WM_SINKSHIP
WM_SMALLCLOUD
WM_TOGEZO
+WM_TREASURESHIP
WORLD_CAMERA
WORLD_MAP
@@ -154,7 +156,7 @@ WM_TEST
WM_TEST2
WM_TORIDE
WM_TOWER
-WM_TREASURESHIP
+
WM_YOGANPILLAR
WORLD_SELECT
WORLD_SELECT_GUIDE