mirror of
https://github.com/YohannDR/mzm.git
synced 2025-02-18 20:48:19 +00:00
Match SamusCheckCarryFromCopy
This commit is contained in:
parent
a6a661f65e
commit
2a7c94c3b7
@ -2,7 +2,7 @@
|
||||
|
||||
This is a work in progress decompilation of Metroid - Zero Mission.
|
||||
|
||||
2580/2721 functions decompiled (94.82%, 141 left)
|
||||
2581/2721 functions decompiled (94.85%, 140 left)
|
||||
|
||||
0x35075f/0x76b014 bytes of data not in blobs (44.68%, 0x41a8b5 left)
|
||||
|
||||
|
@ -5,6 +5,11 @@
|
||||
|
||||
#define MAX_AMOUNT_OF_SAMUS_POSES 67
|
||||
|
||||
#define SAMUS_CARRY_ACD()\
|
||||
do {\
|
||||
pData->elevatorDirection = pCopy->elevatorDirection;\
|
||||
}while(0);
|
||||
|
||||
// Structs
|
||||
|
||||
struct Equipment {
|
||||
|
17
src/samus.c
17
src/samus.c
@ -1903,8 +1903,6 @@ void SamusChangeToKnockbackPose(struct SamusData* pData, struct SamusData* pCopy
|
||||
*/
|
||||
void SamusCheckCarryFromCopy(struct SamusData* pData, struct SamusData* pCopy, struct WeaponInfo* pWeapon)
|
||||
{
|
||||
// https://decomp.me/scratch/1VwJS
|
||||
|
||||
switch (pData->pose)
|
||||
{
|
||||
case SPOSE_RUNNING:
|
||||
@ -1917,8 +1915,10 @@ void SamusCheckCarryFromCopy(struct SamusData* pData, struct SamusData* pCopy, s
|
||||
case SPOSE_STANDING:
|
||||
pData->armCannonDirection = pCopy->armCannonDirection;
|
||||
if (pCopy->pose == SPOSE_CROUCHING || pCopy->pose == SPOSE_SHOOTING_AND_CROUCHING)
|
||||
{
|
||||
// Timer to ignore input for arm cannon direction, prevents immediatly aiming up after uncrouching
|
||||
pData->timer = 6;
|
||||
}
|
||||
break;
|
||||
|
||||
case SPOSE_CROUCHING:
|
||||
@ -1941,7 +1941,8 @@ void SamusCheckCarryFromCopy(struct SamusData* pData, struct SamusData* pCopy, s
|
||||
|
||||
case SPOSE_MORPH_BALL:
|
||||
if (pCopy->speedboostingShinesparking)
|
||||
pData->timer = 0x6;
|
||||
pData->timer = 6;
|
||||
|
||||
pWeapon->diagonalAim = DIAG_AIM_NONE;
|
||||
break;
|
||||
|
||||
@ -1961,7 +1962,9 @@ void SamusCheckCarryFromCopy(struct SamusData* pData, struct SamusData* pCopy, s
|
||||
case SPOSE_SHINESPARKING:
|
||||
case SPOSE_BALLSPARKING:
|
||||
if (pCopy->forcedMovement == FORCED_MOVEMENT_LAUNCHED_BY_CANNON)
|
||||
{
|
||||
pData->yVelocity = SAMUS_SIDEWARD_SHINESPARK_X_VELOCITY;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (gButtonInput & gButtonAssignments.diagonalAim)
|
||||
@ -2047,13 +2050,8 @@ void SamusCheckCarryFromCopy(struct SamusData* pData, struct SamusData* pCopy, s
|
||||
break;
|
||||
|
||||
case SPOSE_TURNING_FROM_FACING_THE_FOREGROUND:
|
||||
pData->elevatorDirection = pCopy->elevatorDirection;
|
||||
|
||||
#ifndef NONMATCHING
|
||||
SAMUS_CARRY_ACD();
|
||||
pWeapon->diagonalAim = DIAG_AIM_NONE;
|
||||
#else
|
||||
goto DiagNone;
|
||||
#endif
|
||||
break;
|
||||
|
||||
case SPOSE_ON_ZIPLINE:
|
||||
@ -2079,7 +2077,6 @@ void SamusCheckCarryFromCopy(struct SamusData* pData, struct SamusData* pCopy, s
|
||||
case SPOSE_MORPH_BALL_MIDAIR:
|
||||
case SPOSE_FACING_THE_FOREGROUND:
|
||||
case SPOSE_CROUCHING_TO_CRAWL:
|
||||
DiagNone:
|
||||
pWeapon->diagonalAim = DIAG_AIM_NONE;
|
||||
break;
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user