Match SamusCheckCarryFromCopy

This commit is contained in:
y.demaisonregne 2023-05-29 22:24:30 +02:00
parent a6a661f65e
commit 2a7c94c3b7
3 changed files with 13 additions and 11 deletions

View File

@ -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)

View File

@ -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 {

View File

@ -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;