diff options
Diffstat (limited to '')
| -rwxr-xr-x | include/game.h | 7 | ||||
| -rw-r--r-- | kamek_pal.x | 1 | ||||
| -rw-r--r-- | src/shyguyGiants.cpp | 20 | 
3 files changed, 26 insertions, 2 deletions
| diff --git a/include/game.h b/include/game.h index 300efec..ce7a672 100755 --- a/include/game.h +++ b/include/game.h @@ -3662,5 +3662,12 @@ extern void *SelectCursorPointer;  extern "C" void UpdateSelectCursor(nw4r::lyt::Pane *pane, int whichOne, bool unkBool);
  extern "C" void HideSelectCursor(void *scPtr, int whichOne);
 +typedef int (*__Player_VF3D4_type)(void*);
 +inline int Player_VF3D4(void *self) {
 +	VF_BEGIN(__Player_VF3D4_type, self, 245, 0x60)
 +		return VF_CALL(self);
 +	VF_END;
 +}
 +
  #endif
 diff --git a/kamek_pal.x b/kamek_pal.x index 9b53a8e..67e1186 100644 --- a/kamek_pal.x +++ b/kamek_pal.x @@ -729,6 +729,7 @@ SECTIONS {  	removeFromList__13ActivePhysicsFv = 0x8008c380;  	addToList__13ActivePhysicsFv = 0x8008C330;  	initWithStruct__13ActivePhysicsFP8dActor_cPCQ213ActivePhysics4Info = 0x8008C3E0; +	bottom__13ActivePhysicsFv = 0x8008C4F0;  	globalListHead__13ActivePhysics = 0x8042A140; diff --git a/src/shyguyGiants.cpp b/src/shyguyGiants.cpp index e2532f1..3088825 100644 --- a/src/shyguyGiants.cpp +++ b/src/shyguyGiants.cpp @@ -135,6 +135,21 @@ daShyGuyGiant *daShyGuyGiant::build() {  	void daShyGuyGiant::playerCollision(ActivePhysics *apThis, ActivePhysics *apOther) {   		apOther->someFlagByte |= 2; +		dStageActor_c *player = apOther->owner; + +		if (Player_VF3D4(player)) { +			// WE'VE GOT A STAR, FOLKS +			if (apThis->_18 == 1 && !player->collMgr.isOnTopOfTile() && player->pos.y > apThis->bottom()) { +				bouncePlayer(player, 3.0f); +				PlaySound(this, SE_EMY_CMN_STEP); +			} else { +				dAcPy_vf3F8(player, this, 3); +			} +			this->counter_504[apOther->owner->which_player] = 0xA; + +			return; +		} +  		char hitType;  		hitType = usedForDeterminingStatePress_or_playerCollision(this, apThis, apOther, 0);  		if (hitType == 1) {	// regular jump @@ -191,7 +206,7 @@ daShyGuyGiant *daShyGuyGiant::build() {  		return true;  	}  	bool daShyGuyGiant::collisionCat3_StarPower(ActivePhysics *apThis, ActivePhysics *apOther){ -		int hitType = usedForDeterminingStatePress_or_playerCollision(this, apThis, apOther, 0); +		/*int hitType = usedForDeterminingStatePress_or_playerCollision(this, apThis, apOther, 0);  		if (hitType == 1 || hitType == 3) {  			PlaySound(this, SE_EMY_CMN_STEP);  			bouncePlayerWhenJumpedOn(apOther->owner); @@ -200,7 +215,8 @@ daShyGuyGiant *daShyGuyGiant::build() {  		}  		this->counter_504[apOther->owner->which_player] = 0xA; -		return true; +		return true;*/ +		return false;  	}  	bool daShyGuyGiant::collisionCat14_YoshiFire(ActivePhysics *apThis, ActivePhysics *apOther){ | 
