Clean up fighter vars union (#753)

* Create masterhand state vars

Cleans up some fighter common state vars

* Clean up fighter union hack

No more zero-sized arrays in fighter vars union

* Run git-clang-format
This commit is contained in:
Ryan Burns 2023-03-06 00:38:17 -08:00 committed by GitHub
parent 5df46b88f9
commit 034e79c93e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
46 changed files with 820 additions and 866 deletions

View File

@ -108,7 +108,7 @@ void ftCaptain_SpecialAirS_StartAction(HSD_GObj* fighter_gobj)
fp->x80_self_vel.z = 0.0f; fp->x80_self_vel.z = 0.0f;
fp->x80_self_vel.y = 0.0f; fp->x80_self_vel.y = 0.0f;
fp->x80_self_vel.x = 0.0f; fp->x80_self_vel.x = 0.0f;
fp->captainVars[0].SpecialS.gravity = 0.0f; fp->captainVars.SpecialS.gravity = 0.0f;
func_8007D60C(fp); func_8007D60C(fp);
} }
@ -383,15 +383,15 @@ void ftCaptain_SpecialAirSStart_Phys(HSD_GObj* fighter_gobj)
func_80085134(fighter_gobj); func_80085134(fighter_gobj);
if ((u32) fp->x2204_ftcmd_var1 == 1U) { if ((u32) fp->x2204_ftcmd_var1 == 1U) {
fp->captainVars[0].SpecialS.gravity -= fp->captainVars.SpecialS.gravity -=
captainAttrs->x18_CAPTAIN_RAPTORBOOST_GRAVITY; captainAttrs->x18_CAPTAIN_RAPTORBOOST_GRAVITY;
if (fp->captainVars[0].SpecialS.gravity < if (fp->captainVars.SpecialS.gravity <
-captainAttrs->x1C_CAPTAIN_RAPTORBOOST_TERMINAL_VELOCITY) -captainAttrs->x1C_CAPTAIN_RAPTORBOOST_TERMINAL_VELOCITY)
{ {
fp->captainVars[0].SpecialS.gravity = fp->captainVars.SpecialS.gravity =
-captainAttrs->x1C_CAPTAIN_RAPTORBOOST_TERMINAL_VELOCITY; -captainAttrs->x1C_CAPTAIN_RAPTORBOOST_TERMINAL_VELOCITY;
} }
fp->x80_self_vel.y = fp->captainVars[0].SpecialS.gravity; fp->x80_self_vel.y = fp->captainVars.SpecialS.gravity;
} }
} }
@ -409,15 +409,15 @@ void ftCaptain_SpecialAirS_Phys(HSD_GObj* fighter_gobj)
#endif #endif
func_80085134(fighter_gobj); func_80085134(fighter_gobj);
fp->captainVars[0].SpecialS.gravity -= fp->captainVars.SpecialS.gravity -=
captainAttrs->x18_CAPTAIN_RAPTORBOOST_GRAVITY; captainAttrs->x18_CAPTAIN_RAPTORBOOST_GRAVITY;
if (fp->captainVars[0].SpecialS.gravity < if (fp->captainVars.SpecialS.gravity <
-captainAttrs->x1C_CAPTAIN_RAPTORBOOST_TERMINAL_VELOCITY) -captainAttrs->x1C_CAPTAIN_RAPTORBOOST_TERMINAL_VELOCITY)
{ {
fp->captainVars[0].SpecialS.gravity = fp->captainVars.SpecialS.gravity =
-captainAttrs->x1C_CAPTAIN_RAPTORBOOST_TERMINAL_VELOCITY; -captainAttrs->x1C_CAPTAIN_RAPTORBOOST_TERMINAL_VELOCITY;
} }
fp->x80_self_vel.y = fp->captainVars[0].SpecialS.gravity; fp->x80_self_vel.y = fp->captainVars.SpecialS.gravity;
} }
// 0x800E3C38 // 0x800E3C38

View File

@ -152,11 +152,11 @@ void ftCrazyhand_OnLoad(HSD_GObj* fighter_gobj)
fp->xB0_pos.z = 0.0f; fp->xB0_pos.z = 0.0f;
fp->x2368 = 0; fp->x2368 = 0;
fp->x236C = 0; fp->x236C = 0;
fp->x2370 = 0; fp->masterhandVars.x2370 = 0;
fp->x2374 = 0; fp->masterhandVars.x2374 = 0;
fp->x2378 = -1; fp->masterhandVars.x2378 = -1;
fp->x237C = -1; fp->masterhandVars.x237C = -1;
fp->x2380 = -1; fp->masterhandVars.x2380 = -1;
fp->x235C = 0.0f; fp->x235C = 0.0f;
fp->x2360 = 0; fp->x2360 = 0;
fp->sa.masterhand.x222C = func_8015C244(fighter_gobj, &fp->xB0_pos); fp->sa.masterhand.x222C = func_8015C244(fighter_gobj, &fp->xB0_pos);

View File

@ -81,14 +81,14 @@ void ftFox_AppealS_Action(HSD_GObj* fighter_gobj)
s32 animCount; s32 animCount;
Fighter* fp = GET_FIGHTER(fighter_gobj); Fighter* fp = GET_FIGHTER(fighter_gobj);
fp->foxVars[0].AppealS.animCount = 0; fp->foxVars.AppealS.animCount = 0;
facingDir = ftFox_AppealS_GetLR(1.0f, fp->facing_dir); facingDir = ftFox_AppealS_GetLR(1.0f, fp->facing_dir);
fp->foxVars[0].AppealS.facingDir = facingDir; fp->foxVars.AppealS.facingDir = facingDir;
fp->x2210_ThrowFlags.flags = 0; fp->x2210_ThrowFlags.flags = 0;
actionDir = fp->foxVars[0].AppealS.facingDir; actionDir = fp->foxVars.AppealS.facingDir;
animCount = fp->foxVars[0].AppealS.animCount; animCount = fp->foxVars.AppealS.animCount;
Fighter_ActionStateChange_800693AC(fighter_gobj, Fighter_ActionStateChange_800693AC(fighter_gobj,
ASID_AppealS[actionDir][animCount], 0, ASID_AppealS[actionDir][animCount], 0,
@ -134,16 +134,16 @@ void ftFox_AppealS_Anim(HSD_GObj* fighter_gobj)
} }
} }
if (!ftAnim_IsFramesRemaining(fighter_gobj)) { if (!ftAnim_IsFramesRemaining(fighter_gobj)) {
fp->foxVars[0].AppealS.animCount++; fp->foxVars.AppealS.animCount++;
if ((s32) fp->foxVars[0].AppealS.animCount >= 3) { if ((s32) fp->foxVars.AppealS.animCount >= 3) {
func_8008A324(fighter_gobj); func_8008A324(fighter_gobj);
return; return;
} }
Fighter_ActionStateChange_800693AC( Fighter_ActionStateChange_800693AC(
fighter_gobj, fighter_gobj,
ASID_AppealS[fp->foxVars[0].AppealS.facingDir] ASID_AppealS[fp->foxVars.AppealS.facingDir]
[fp->foxVars[0].AppealS.animCount], [fp->foxVars.AppealS.animCount],
0, NULL, 0.0f, 1.0f, 0.0f); 0, NULL, 0.0f, 1.0f, 0.0f);
} }
} }

View File

@ -55,7 +55,7 @@ void ftFox_SpecialHi_StartAction(HSD_GObj* fighter_gobj)
fp = GET_FIGHTER(fighter_gobj); fp = GET_FIGHTER(fighter_gobj);
foxAttrs = getFtSpecialAttrs(fp); foxAttrs = getFtSpecialAttrs(fp);
fp->foxVars[0].SpecialHi.gravityDelay = fp->foxVars.SpecialHi.gravityDelay =
(s32) foxAttrs->x54_FOX_FIREFOX_GRAVITY_DELAY; (s32) foxAttrs->x54_FOX_FIREFOX_GRAVITY_DELAY;
fp->xEC_ground_vel /= foxAttrs->x58_FOX_FIREFOX_VEL_X; fp->xEC_ground_vel /= foxAttrs->x58_FOX_FIREFOX_VEL_X;
@ -71,7 +71,7 @@ void ftFox_SpecialAirHi_StartAction(HSD_GObj* fighter_gobj)
Fighter* fp = GET_FIGHTER(fighter_gobj); Fighter* fp = GET_FIGHTER(fighter_gobj);
ftFoxAttributes* foxAttrs = getFtSpecialAttrs(fp); ftFoxAttributes* foxAttrs = getFtSpecialAttrs(fp);
fp->foxVars[0].SpecialHi.gravityDelay = fp->foxVars.SpecialHi.gravityDelay =
(s32) foxAttrs->x54_FOX_FIREFOX_GRAVITY_DELAY; (s32) foxAttrs->x54_FOX_FIREFOX_GRAVITY_DELAY;
fp->x80_self_vel.x /= foxAttrs->x58_FOX_FIREFOX_VEL_X; fp->x80_self_vel.x /= foxAttrs->x58_FOX_FIREFOX_VEL_X;
fp->x80_self_vel.y = 0.0f; fp->x80_self_vel.y = 0.0f;
@ -88,7 +88,7 @@ void ftFox_SpecialHi_RotateModel(HSD_GObj* fighter_gobj)
{ {
Fighter* fp = GET_FIGHTER(fighter_gobj); Fighter* fp = GET_FIGHTER(fighter_gobj);
func_8007592C(fp, func_8007500C(fp, 2), func_8007592C(fp, func_8007500C(fp, 2),
DOUBLE_PI32 - fp->foxVars[0].SpecialHi.rotateModel); DOUBLE_PI32 - fp->foxVars.SpecialHi.rotateModel);
} }
void ftFox_SpecialHiHold_Anim(HSD_GObj* fighter_gobj) void ftFox_SpecialHiHold_Anim(HSD_GObj* fighter_gobj)
@ -144,8 +144,8 @@ void ftFox_SpecialHiHoldAir_Phys(HSD_GObj* fighter_gobj)
u8 unused[8]; u8 unused[8];
#endif #endif
if (fp->foxVars[0].SpecialHi.gravityDelay != 0) { if (fp->foxVars.SpecialHi.gravityDelay != 0) {
fp->foxVars[0].SpecialHi.gravityDelay -= 1; fp->foxVars.SpecialHi.gravityDelay -= 1;
} else { } else {
func_8007D494(fp, foxAttrs->x60_FOX_FIREFOX_FALL_ACCEL, func_8007D494(fp, foxAttrs->x60_FOX_FIREFOX_FALL_ACCEL,
ftAttrs->x170_TerminalVelocity); ftAttrs->x170_TerminalVelocity);
@ -212,9 +212,9 @@ void ftFox_SpecialHi_Anim(HSD_GObj* fighter_gobj)
Fighter* fp = GET_FIGHTER(fighter_gobj); Fighter* fp = GET_FIGHTER(fighter_gobj);
/// @todo Common inline with #ftFox_SpecialAirHi_Anim. /// @todo Common inline with #ftFox_SpecialAirHi_Anim.
fp->foxVars[0].SpecialHi.travelFrames--; fp->foxVars.SpecialHi.travelFrames--;
if (fp->foxVars[0].SpecialHi.travelFrames <= 0) { if (fp->foxVars.SpecialHi.travelFrames <= 0) {
if (fp->xE0_ground_or_air == GA_Air) { if (fp->xE0_ground_or_air == GA_Air) {
ftFox_SpecialHiLanding_GroundToAir(fighter_gobj); ftFox_SpecialHiLanding_GroundToAir(fighter_gobj);
return; return;
@ -228,9 +228,9 @@ void ftFox_SpecialAirHi_Anim(HSD_GObj* fighter_gobj)
{ {
Fighter* fp = GET_FIGHTER(fighter_gobj); Fighter* fp = GET_FIGHTER(fighter_gobj);
fp->foxVars[0].SpecialHi.travelFrames--; fp->foxVars.SpecialHi.travelFrames--;
if (fp->foxVars[0].SpecialHi.travelFrames <= 0) { if (fp->foxVars.SpecialHi.travelFrames <= 0) {
if (fp->xE0_ground_or_air == GA_Air) { if (fp->xE0_ground_or_air == GA_Air) {
ftFox_SpecialHiLanding_GroundToAir(fighter_gobj); ftFox_SpecialHiLanding_GroundToAir(fighter_gobj);
return; return;
@ -256,9 +256,9 @@ void ftFox_SpecialHi_Phys(HSD_GObj* fighter_gobj)
Fighter* fp = GET_FIGHTER(fighter_gobj); Fighter* fp = GET_FIGHTER(fighter_gobj);
ftFoxAttributes* foxAttrs = getFtSpecialAttrs(fp); ftFoxAttributes* foxAttrs = getFtSpecialAttrs(fp);
fp->foxVars[0].SpecialHi.unk++; fp->foxVars.SpecialHi.unk++;
if (fp->foxVars[0].SpecialHi.unk >= foxAttrs->x70_FOX_FIREFOX_DURATION_END) if (fp->foxVars.SpecialHi.unk >= foxAttrs->x70_FOX_FIREFOX_DURATION_END)
func_8007C930(fp, foxAttrs->x78_FOX_FIREFOX_REVERSE_ACCEL); func_8007C930(fp, foxAttrs->x78_FOX_FIREFOX_REVERSE_ACCEL);
func_8007CB74(fighter_gobj); func_8007CB74(fighter_gobj);
@ -269,16 +269,15 @@ void ftFox_SpecialAirHi_Phys(HSD_GObj* fighter_gobj)
Fighter* fp = getFighter(fighter_gobj); Fighter* fp = getFighter(fighter_gobj);
ftFoxAttributes* foxAttrs = foxAttrs = getFtSpecialAttrs(fp); ftFoxAttributes* foxAttrs = foxAttrs = getFtSpecialAttrs(fp);
fp->foxVars[0].SpecialHi.unk++; fp->foxVars.SpecialHi.unk++;
if (fp->foxVars[0].SpecialHi.unk >= foxAttrs->x70_FOX_FIREFOX_DURATION_END) if (fp->foxVars.SpecialHi.unk >= foxAttrs->x70_FOX_FIREFOX_DURATION_END) {
{
fp->x80_self_vel.x = fp->x80_self_vel.x =
-((fp->facing_dir * (foxAttrs->x78_FOX_FIREFOX_REVERSE_ACCEL * -((fp->facing_dir * (foxAttrs->x78_FOX_FIREFOX_REVERSE_ACCEL *
cosf(fp->foxVars[0].SpecialHi.rotateModel))) - cosf(fp->foxVars.SpecialHi.rotateModel))) -
fp->x80_self_vel.x); fp->x80_self_vel.x);
fp->x80_self_vel.y = -((foxAttrs->x78_FOX_FIREFOX_REVERSE_ACCEL * fp->x80_self_vel.y = -((foxAttrs->x78_FOX_FIREFOX_REVERSE_ACCEL *
sinf(fp->foxVars[0].SpecialHi.rotateModel)) - sinf(fp->foxVars.SpecialHi.rotateModel)) -
fp->x80_self_vel.y); fp->x80_self_vel.y);
} }
} }
@ -288,7 +287,7 @@ void ftFox_SpecialHi_Coll(HSD_GObj* fighter_gobj)
Fighter* fp = fp = GET_FIGHTER(fighter_gobj); Fighter* fp = fp = GET_FIGHTER(fighter_gobj);
CollData* collData = &fp->x6F0_collData; CollData* collData = &fp->x6F0_collData;
fp->foxVars[0].SpecialHi.unk2 += 1; fp->foxVars.SpecialHi.unk2 += 1;
if (func_80082708(fighter_gobj) == false) { if (func_80082708(fighter_gobj) == false) {
ftFox_SpecialHi_GroundToAir(fighter_gobj); ftFox_SpecialHi_GroundToAir(fighter_gobj);
@ -296,7 +295,7 @@ void ftFox_SpecialHi_Coll(HSD_GObj* fighter_gobj)
} }
if (collData->x134_envFlags & 0x18000) { if (collData->x134_envFlags & 0x18000) {
fp->foxVars[0].SpecialHi.rotateModel = fp->foxVars.SpecialHi.rotateModel =
atan2f(-collData->x14C_ground.normal.x * fp->facing_dir, atan2f(-collData->x14C_ground.normal.x * fp->facing_dir,
collData->x14C_ground.normal.y); collData->x14C_ground.normal.y);
ftFox_SpecialHi_RotateModel(fighter_gobj); ftFox_SpecialHi_RotateModel(fighter_gobj);
@ -308,7 +307,7 @@ static inline bool ftFox_SpecialHi_IsBound(HSD_GObj* fighter_gobj)
Fighter* fp = GET_FIGHTER(fighter_gobj); Fighter* fp = GET_FIGHTER(fighter_gobj);
ftFoxAttributes* foxAttrs = fp->x2D4_specialAttributes; ftFoxAttributes* foxAttrs = fp->x2D4_specialAttributes;
if (fp->foxVars[0].SpecialHi.unk2 >= foxAttrs->x6C_FOX_FIREFOX_BOUNCE_VAR) if (fp->foxVars.SpecialHi.unk2 >= foxAttrs->x6C_FOX_FIREFOX_BOUNCE_VAR)
return true; return true;
else if (func_8009A134(fighter_gobj) != false) else if (func_8009A134(fighter_gobj) != false)
return false; return false;
@ -385,7 +384,7 @@ void ftFox_SpecialAirHi_Coll(HSD_GObj* fighter_gobj)
facingDir = -1.0f; facingDir = -1.0f;
fp->facing_dir = facingDir; fp->facing_dir = facingDir;
fp->foxVars[0].SpecialHi.rotateModel = fp->foxVars.SpecialHi.rotateModel =
atan2f(fp->x80_self_vel.y, fp->x80_self_vel.x * fp->facing_dir); atan2f(fp->x80_self_vel.y, fp->x80_self_vel.x * fp->facing_dir);
ftFox_SpecialHi_RotateModel(fighter_gobj); ftFox_SpecialHi_RotateModel(fighter_gobj);
} }
@ -454,16 +453,16 @@ void ftFox_SpecialAirHi_AirToGround(HSD_GObj* fighter_gobj)
tempAttrs = fp->x2D4_specialAttributes; tempAttrs = fp->x2D4_specialAttributes;
fp->x2223_flag.bits.b4 = 1; fp->x2223_flag.bits.b4 = 1;
fp->foxVars[0].SpecialHi.travelFrames = fp->foxVars.SpecialHi.travelFrames =
(u32) (s32) tempAttrs->x68_FOX_FIREFOX_DURATION; (u32) (s32) tempAttrs->x68_FOX_FIREFOX_DURATION;
fp->foxVars[0].SpecialHi.unk = 0.0f; fp->foxVars.SpecialHi.unk = 0.0f;
fp->foxVars[0].SpecialHi.unk2 = 0.0f; fp->foxVars.SpecialHi.unk2 = 0.0f;
fp->xEC_ground_vel = fp->xEC_ground_vel =
foxAttrs->x74_FOX_FIREFOX_SPEED * fp->facing_dir; foxAttrs->x74_FOX_FIREFOX_SPEED * fp->facing_dir;
fp->foxVars[0].SpecialHi.rotateModel = fp->foxVars.SpecialHi.rotateModel =
atan2f(-collData->x14C_ground.normal.x * fp->facing_dir, atan2f(-collData->x14C_ground.normal.x * fp->facing_dir,
collData->x14C_ground.normal.y); collData->x14C_ground.normal.y);
@ -509,10 +508,10 @@ void ftFox_SpecialAirHi_Action(HSD_GObj* fighter_gobj)
if (temp_stick > foxAttrs->x88_FOX_FIREFOX_FACING_STICK_RANGE_MIN) { if (temp_stick > foxAttrs->x88_FOX_FIREFOX_FACING_STICK_RANGE_MIN) {
func_8007D9FC(fp); func_8007D9FC(fp);
} }
fp->foxVars[0].SpecialHi.rotateModel = atan2f( fp->foxVars.SpecialHi.rotateModel = atan2f(
fp->input.x624_lstick_y, fp->input.x620_lstick_x * fp->facing_dir); fp->input.x624_lstick_y, fp->input.x620_lstick_x * fp->facing_dir);
} else { } else {
fp->foxVars[0].SpecialHi.rotateModel = HALF_PI32; fp->foxVars.SpecialHi.rotateModel = HALF_PI32;
} }
Fighter_ActionStateChange_800693AC(fighter_gobj, AS_FOX_SPECIALAIRHI, 0, Fighter_ActionStateChange_800693AC(fighter_gobj, AS_FOX_SPECIALAIRHI, 0,
@ -521,16 +520,16 @@ void ftFox_SpecialAirHi_Action(HSD_GObj* fighter_gobj)
tempAttrs = fp->x2D4_specialAttributes; tempAttrs = fp->x2D4_specialAttributes;
fp->x2223_flag.bits.b4 = 1; fp->x2223_flag.bits.b4 = 1;
fp->foxVars[0].SpecialHi.travelFrames = fp->foxVars.SpecialHi.travelFrames =
(u32) (s32) tempAttrs->x68_FOX_FIREFOX_DURATION; (u32) (s32) tempAttrs->x68_FOX_FIREFOX_DURATION;
fp->foxVars[0].SpecialHi.unk = 0; fp->foxVars.SpecialHi.unk = 0;
fp->foxVars[0].SpecialHi.unk2 = 0; fp->foxVars.SpecialHi.unk2 = 0;
fp->x80_self_vel.x = fp->x80_self_vel.x =
fp->facing_dir * (foxAttrs->x74_FOX_FIREFOX_SPEED * fp->facing_dir * (foxAttrs->x74_FOX_FIREFOX_SPEED *
cosf(fp->foxVars[0].SpecialHi.rotateModel)); cosf(fp->foxVars.SpecialHi.rotateModel));
fp->x80_self_vel.y = foxAttrs->x74_FOX_FIREFOX_SPEED * fp->x80_self_vel.y = foxAttrs->x74_FOX_FIREFOX_SPEED *
sinf(fp->foxVars[0].SpecialHi.rotateModel); sinf(fp->foxVars.SpecialHi.rotateModel);
ftFox_SpecialHi_RotateModel(fighter_gobj); ftFox_SpecialHi_RotateModel(fighter_gobj);
fp->cb.x21F8_callback = func_8007F76C; fp->cb.x21F8_callback = func_8007F76C;
fp->cb.x21BC_callback_Accessory4 = ftFox_SpecialHi_CreateLaunchGFX; fp->cb.x21BC_callback_Accessory4 = ftFox_SpecialHi_CreateLaunchGFX;

View File

@ -59,13 +59,13 @@ static inline void ftFox_SpecialLw_SetVars(HSD_GObj* fighter_gobj)
Fighter* fp = fp = GET_FIGHTER(fighter_gobj); Fighter* fp = fp = GET_FIGHTER(fighter_gobj);
ftFoxAttributes* foxAttrs = foxAttrs = getFtSpecialAttrs(fp); ftFoxAttributes* foxAttrs = foxAttrs = getFtSpecialAttrs(fp);
fp->foxVars[0].SpecialLw.releaseLag = fp->foxVars.SpecialLw.releaseLag =
(s32) foxAttrs->x98_FOX_REFLECTOR_RELEASE_LAG; (s32) foxAttrs->x98_FOX_REFLECTOR_RELEASE_LAG;
fp->foxVars[0].SpecialLw.isRelease = 0; fp->foxVars.SpecialLw.isRelease = 0;
fp->x2204_ftcmd_var1 = 4; fp->x2204_ftcmd_var1 = 4;
fp->foxVars[0].SpecialLw.gravityDelay = fp->foxVars.SpecialLw.gravityDelay =
(s32) foxAttrs->xA4_FOX_REFLECTOR_GRAVITY_DELAY; (s32) foxAttrs->xA4_FOX_REFLECTOR_GRAVITY_DELAY;
fp->cb.x21BC_callback_Accessory4 = ftFox_SpecialLw_CreateStartGFX; fp->cb.x21BC_callback_Accessory4 = ftFox_SpecialLw_CreateStartGFX;
@ -113,7 +113,7 @@ void ftFox_SpecialLwStart_Anim(HSD_GObj* fighter_gobj)
Fighter* fp = GET_FIGHTER(fighter_gobj); Fighter* fp = GET_FIGHTER(fighter_gobj);
if ((fp->input.x65C_heldInputs & HSD_BUTTON_B) == false) { if ((fp->input.x65C_heldInputs & HSD_BUTTON_B) == false) {
fp->foxVars[0].SpecialLw.isRelease = true; fp->foxVars.SpecialLw.isRelease = true;
} }
if (!ftAnim_IsFramesRemaining(fighter_gobj)) { if (!ftAnim_IsFramesRemaining(fighter_gobj)) {
if ((s32) fp->xE0_ground_or_air == GA_Ground) { if ((s32) fp->xE0_ground_or_air == GA_Ground) {
@ -134,7 +134,7 @@ void ftFox_SpecialAirLwStart_Anim(HSD_GObj* fighter_gobj)
f32 var; f32 var;
if ((fp->input.x65C_heldInputs & HSD_BUTTON_B) == false) { if ((fp->input.x65C_heldInputs & HSD_BUTTON_B) == false) {
fp->foxVars[0].SpecialLw.isRelease = true; fp->foxVars.SpecialLw.isRelease = true;
} }
if (!ftAnim_IsFramesRemaining(fighter_gobj)) { if (!ftAnim_IsFramesRemaining(fighter_gobj)) {
if ((s32) fp->xE0_ground_or_air == GA_Ground) { if ((s32) fp->xE0_ground_or_air == GA_Ground) {
@ -200,8 +200,8 @@ void ftFox_SpecialAirLwStart_Phys(HSD_GObj* fighter_gobj)
ftAttrs = &fp->x110_attr; ftAttrs = &fp->x110_attr;
foxAttrs = fp->x2D4_specialAttributes; foxAttrs = fp->x2D4_specialAttributes;
if (fp->foxVars[0].SpecialLw.gravityDelay != 0) { if (fp->foxVars.SpecialLw.gravityDelay != 0) {
fp->foxVars[0].SpecialLw.gravityDelay--; fp->foxVars.SpecialLw.gravityDelay--;
} else { } else {
func_8007D494(fp, foxAttrs->xAC_FOX_REFLECTOR_FALL_ACCEL, func_8007D494(fp, foxAttrs->xAC_FOX_REFLECTOR_FALL_ACCEL,
ftAttrs->x170_TerminalVelocity); ftAttrs->x170_TerminalVelocity);
@ -252,13 +252,13 @@ void ftFox_SpecialLwLoop_Anim(HSD_GObj* fighter_gobj)
Fighter* fp = GET_FIGHTER(fighter_gobj); Fighter* fp = GET_FIGHTER(fighter_gobj);
if ((fp->input.x65C_heldInputs & HSD_BUTTON_B) == false) if ((fp->input.x65C_heldInputs & HSD_BUTTON_B) == false)
fp->foxVars[0].SpecialLw.isRelease = true; fp->foxVars.SpecialLw.isRelease = true;
if (fp->foxVars[0].SpecialLw.releaseLag > 0) if (fp->foxVars.SpecialLw.releaseLag > 0)
fp->foxVars[0].SpecialLw.releaseLag--; fp->foxVars.SpecialLw.releaseLag--;
if (((s32) fp->foxVars[0].SpecialLw.releaseLag <= 0) && if (((s32) fp->foxVars.SpecialLw.releaseLag <= 0) &&
((s32) fp->foxVars[0].SpecialLw.isRelease != false)) ((s32) fp->foxVars.SpecialLw.isRelease != false))
{ {
if ((s32) fp->xE0_ground_or_air == GA_Ground) { if ((s32) fp->xE0_ground_or_air == GA_Ground) {
ftFox_SpecialLwEnd_Action(fighter_gobj); ftFox_SpecialLwEnd_Action(fighter_gobj);
@ -274,13 +274,13 @@ void ftFox_SpecialAirLwLoop_Anim(HSD_GObj* fighter_gobj)
Fighter* fp = GET_FIGHTER(fighter_gobj); Fighter* fp = GET_FIGHTER(fighter_gobj);
if ((fp->input.x65C_heldInputs & HSD_BUTTON_B) == false) if ((fp->input.x65C_heldInputs & HSD_BUTTON_B) == false)
fp->foxVars[0].SpecialLw.isRelease = true; fp->foxVars.SpecialLw.isRelease = true;
if (fp->foxVars[0].SpecialLw.releaseLag > 0) if (fp->foxVars.SpecialLw.releaseLag > 0)
fp->foxVars[0].SpecialLw.releaseLag--; fp->foxVars.SpecialLw.releaseLag--;
if (((s32) fp->foxVars[0].SpecialLw.releaseLag <= 0) && if (((s32) fp->foxVars.SpecialLw.releaseLag <= 0) &&
((s32) fp->foxVars[0].SpecialLw.isRelease != false)) ((s32) fp->foxVars.SpecialLw.isRelease != false))
{ {
if ((s32) fp->xE0_ground_or_air == GA_Ground) { if ((s32) fp->xE0_ground_or_air == GA_Ground) {
ftFox_SpecialLwEnd_Action(fighter_gobj); ftFox_SpecialLwEnd_Action(fighter_gobj);
@ -352,8 +352,8 @@ static inline void ftFox_SpecialLw_InlinePhys(HSD_GObj* fighter_gobj)
foxAttrs = getFtSpecialAttrs(fp); foxAttrs = getFtSpecialAttrs(fp);
/// @todo Shared @c inline with other functions in this file. /// @todo Shared @c inline with other functions in this file.
if (fp->foxVars[0].SpecialLw.gravityDelay != 0) { if (fp->foxVars.SpecialLw.gravityDelay != 0) {
fp->foxVars[0].SpecialLw.gravityDelay--; fp->foxVars.SpecialLw.gravityDelay--;
} else { } else {
func_8007D494(fp, foxAttrs->xAC_FOX_REFLECTOR_FALL_ACCEL, func_8007D494(fp, foxAttrs->xAC_FOX_REFLECTOR_FALL_ACCEL,
ftAttrs->x170_TerminalVelocity); ftAttrs->x170_TerminalVelocity);
@ -455,9 +455,9 @@ static void ftFox_SpecialLw_Turn(HSD_GObj* fighter_gobj)
ftFoxAttributes* foxAttrs = fp->x2D4_specialAttributes; ftFoxAttributes* foxAttrs = fp->x2D4_specialAttributes;
s32 var[2]; s32 var[2];
fp->foxVars[0].SpecialLw.turnFrames--; fp->foxVars.SpecialLw.turnFrames--;
if (((u32) fp->x2200_ftcmd_var0 == 0U) && if (((u32) fp->x2200_ftcmd_var0 == 0U) &&
((s32) fp->foxVars[0].SpecialLw.turnFrames <= ((s32) fp->foxVars.SpecialLw.turnFrames <=
foxAttrs->x9C_FOX_REFLECTOR_TURN_FRAMES)) foxAttrs->x9C_FOX_REFLECTOR_TURN_FRAMES))
{ {
fp->x2200_ftcmd_var0 = 1; fp->x2200_ftcmd_var0 = 1;
@ -479,9 +479,9 @@ static inline void ftFox_SpecialLw_Turn_Inline(HSD_GObj* fighter_gobj)
Fighter* fp = fighter_gobj->user_data; Fighter* fp = fighter_gobj->user_data;
ftFoxAttributes* foxAttrs = fp->x2D4_specialAttributes; ftFoxAttributes* foxAttrs = fp->x2D4_specialAttributes;
fp->foxVars[0].SpecialLw.turnFrames--; fp->foxVars.SpecialLw.turnFrames--;
if (fp->x2200_ftcmd_var0 == false && if (fp->x2200_ftcmd_var0 == false &&
fp->foxVars[0].SpecialLw.turnFrames <= fp->foxVars.SpecialLw.turnFrames <=
foxAttrs->x9C_FOX_REFLECTOR_TURN_FRAMES) foxAttrs->x9C_FOX_REFLECTOR_TURN_FRAMES)
{ {
fp->x2200_ftcmd_var0 = true; fp->x2200_ftcmd_var0 = true;
@ -502,14 +502,14 @@ void ftFox_SpecialLwTurn_Anim(HSD_GObj* fighter_gobj)
s32 var[4]; s32 var[4];
if ((fp->input.x65C_heldInputs & HSD_BUTTON_B) == false) if ((fp->input.x65C_heldInputs & HSD_BUTTON_B) == false)
fp->foxVars[0].SpecialLw.isRelease = true; fp->foxVars.SpecialLw.isRelease = true;
if (fp->foxVars[0].SpecialLw.releaseLag > 0) if (fp->foxVars.SpecialLw.releaseLag > 0)
fp->foxVars[0].SpecialLw.releaseLag--; fp->foxVars.SpecialLw.releaseLag--;
ftFox_SpecialLw_Turn_Inline(fighter_gobj); ftFox_SpecialLw_Turn_Inline(fighter_gobj);
if (fp->foxVars[0].SpecialLw.turnFrames <= 0) if (fp->foxVars.SpecialLw.turnFrames <= 0)
ftFox_SpecialLwHit_Check(fighter_gobj); ftFox_SpecialLwHit_Check(fighter_gobj);
} }
@ -519,14 +519,14 @@ void ftFox_SpecialAirLwTurn_Anim(HSD_GObj* fighter_gobj)
s32 var[5]; s32 var[5];
if ((fp->input.x65C_heldInputs & HSD_BUTTON_B) == false) if ((fp->input.x65C_heldInputs & HSD_BUTTON_B) == false)
fp->foxVars[0].SpecialLw.isRelease = true; fp->foxVars.SpecialLw.isRelease = true;
if (fp->foxVars[0].SpecialLw.releaseLag > 0) if (fp->foxVars.SpecialLw.releaseLag > 0)
fp->foxVars[0].SpecialLw.releaseLag--; fp->foxVars.SpecialLw.releaseLag--;
ftFox_SpecialLw_Turn_Inline(fighter_gobj); ftFox_SpecialLw_Turn_Inline(fighter_gobj);
if (fp->foxVars[0].SpecialLw.turnFrames <= 0) if (fp->foxVars.SpecialLw.turnFrames <= 0)
ftFox_SpecialLwHit_Check(fighter_gobj); ftFox_SpecialLwHit_Check(fighter_gobj);
} }
@ -561,8 +561,8 @@ void ftFox_SpecialAirLwTurn_Phys(HSD_GObj* fighter_gobj)
attr* ftAttrs = getFtAttrs(fp); attr* ftAttrs = getFtAttrs(fp);
s32 var; s32 var;
if (fp->foxVars[0].SpecialLw.gravityDelay != 0) { if (fp->foxVars.SpecialLw.gravityDelay != 0) {
fp->foxVars[0].SpecialLw.gravityDelay--; fp->foxVars.SpecialLw.gravityDelay--;
} else { } else {
func_8007D494(fp, foxAttrs->xAC_FOX_REFLECTOR_FALL_ACCEL, func_8007D494(fp, foxAttrs->xAC_FOX_REFLECTOR_FALL_ACCEL,
ftAttrs->x170_TerminalVelocity); ftAttrs->x170_TerminalVelocity);
@ -633,8 +633,7 @@ inline void ftFox_SpecialLwTurn_SetVarAll(HSD_GObj* fighter_gobj)
ftFoxAttributes* foxAttrs = getFtSpecialAttrs(fp); ftFoxAttributes* foxAttrs = getFtSpecialAttrs(fp);
fp->x2218_flag.bits.b3 = 1; fp->x2218_flag.bits.b3 = 1;
fp->cb.x21C8_callback_OnReflectHit = ftFox_SpecialLwHit_Action; fp->cb.x21C8_callback_OnReflectHit = ftFox_SpecialLwHit_Action;
fp->foxVars[0].SpecialLw.turnFrames = fp->foxVars.SpecialLw.turnFrames = foxAttrs->x9C_FOX_REFLECTOR_TURN_FRAMES;
foxAttrs->x9C_FOX_REFLECTOR_TURN_FRAMES;
fp->x2200_ftcmd_var0 = 0; fp->x2200_ftcmd_var0 = 0;
ftFox_SpecialLw_Turn(fighter_gobj); ftFox_SpecialLw_Turn(fighter_gobj);
} }
@ -681,8 +680,8 @@ bool ftFox_SpecialLwHit_Check(HSD_GObj* fighter_gobj)
{ {
Fighter* fp = fighter_gobj->user_data; Fighter* fp = fighter_gobj->user_data;
if (((s32) fp->foxVars[0].SpecialLw.releaseLag <= 0) && if (((s32) fp->foxVars.SpecialLw.releaseLag <= 0) &&
((s32) fp->foxVars[0].SpecialLw.isRelease != false)) ((s32) fp->foxVars.SpecialLw.isRelease != false))
{ {
if ((s32) fp->xE0_ground_or_air == GA_Ground) { if ((s32) fp->xE0_ground_or_air == GA_Ground) {
ftFox_SpecialLwEnd_Action(fighter_gobj); ftFox_SpecialLwEnd_Action(fighter_gobj);
@ -714,10 +713,10 @@ void ftFox_SpecialLwHit_Anim(HSD_GObj* fighter_gobj)
s32 var; s32 var;
if ((fp->input.x65C_heldInputs & HSD_BUTTON_B) == false) { if ((fp->input.x65C_heldInputs & HSD_BUTTON_B) == false) {
fp->foxVars[0].SpecialLw.isRelease = true; fp->foxVars.SpecialLw.isRelease = true;
} }
if (fp->foxVars[0].SpecialLw.releaseLag > 0) { if (fp->foxVars.SpecialLw.releaseLag > 0) {
fp->foxVars[0].SpecialLw.releaseLag--; fp->foxVars.SpecialLw.releaseLag--;
} }
if (!ftAnim_IsFramesRemaining(fighter_gobj)) { if (!ftAnim_IsFramesRemaining(fighter_gobj)) {
if (ftFox_SpecialLwHit_Check(fighter_gobj) != false) { if (ftFox_SpecialLwHit_Check(fighter_gobj) != false) {
@ -738,10 +737,10 @@ void ftFox_SpecialAirLwHit_Anim(HSD_GObj* fighter_gobj)
s32 var[2]; s32 var[2];
if ((fp->input.x65C_heldInputs & HSD_BUTTON_B) == false) { if ((fp->input.x65C_heldInputs & HSD_BUTTON_B) == false) {
fp->foxVars[0].SpecialLw.isRelease = true; fp->foxVars.SpecialLw.isRelease = true;
} }
if (fp->foxVars[0].SpecialLw.releaseLag > 0) { if (fp->foxVars.SpecialLw.releaseLag > 0) {
fp->foxVars[0].SpecialLw.releaseLag--; fp->foxVars.SpecialLw.releaseLag--;
} }
if ((!ftAnim_IsFramesRemaining(fighter_gobj)) && if ((!ftAnim_IsFramesRemaining(fighter_gobj)) &&
(ftFox_SpecialLwHit_Check(fighter_gobj) != false)) (ftFox_SpecialLwHit_Check(fighter_gobj) != false))
@ -784,8 +783,8 @@ void ftFox_SpecialAirLwHit_Phys(HSD_GObj* fighter_gobj)
attr* ftAttrs = getFtAttrs(fp); attr* ftAttrs = getFtAttrs(fp);
s32 var; s32 var;
if (fp->foxVars[0].SpecialLw.gravityDelay != 0) { if (fp->foxVars.SpecialLw.gravityDelay != 0) {
fp->foxVars[0].SpecialLw.gravityDelay--; fp->foxVars.SpecialLw.gravityDelay--;
} else { } else {
func_8007D494(fp, foxAttrs->xAC_FOX_REFLECTOR_FALL_ACCEL, func_8007D494(fp, foxAttrs->xAC_FOX_REFLECTOR_FALL_ACCEL,
ftAttrs->x170_TerminalVelocity); ftAttrs->x170_TerminalVelocity);
@ -936,8 +935,8 @@ void ftFox_SpecialAirLwEnd_Phys(HSD_GObj* fighter_gobj)
attr* ftAttrs = getFtAttrs(fp); attr* ftAttrs = getFtAttrs(fp);
s32 var; s32 var;
if (fp->foxVars[0].SpecialLw.gravityDelay != 0) { if (fp->foxVars.SpecialLw.gravityDelay != 0) {
fp->foxVars[0].SpecialLw.gravityDelay--; fp->foxVars.SpecialLw.gravityDelay--;
} else { } else {
func_8007D494(fp, foxAttrs->xAC_FOX_REFLECTOR_FALL_ACCEL, func_8007D494(fp, foxAttrs->xAC_FOX_REFLECTOR_FALL_ACCEL,
ftAttrs->x170_TerminalVelocity); ftAttrs->x170_TerminalVelocity);

View File

@ -242,7 +242,7 @@ void ftFox_SpecialN_StartAction(HSD_GObj* fighter_gobj)
fp->x80_self_vel.y = 0.0f; fp->x80_self_vel.y = 0.0f;
fp->x80_self_vel.x = 0.0f; fp->x80_self_vel.x = 0.0f;
fp->foxVars[0].SpecialN.isBlasterLoop = false; fp->foxVars.SpecialN.isBlasterLoop = false;
blasterGObj = func_802AE8A8(fp->facing_dir, fighter_gobj, &fp->xB0_pos, blasterGObj = func_802AE8A8(fp->facing_dir, fighter_gobj, &fp->xB0_pos,
func_8007500C(fp, 0x31), func_8007500C(fp, 0x31),
@ -278,7 +278,7 @@ void ftFox_SpecialAirN_StartAction(
func_8006EBA4(fighter_gobj); func_8006EBA4(fighter_gobj);
fp->foxVars[0].SpecialN.isBlasterLoop = false; fp->foxVars.SpecialN.isBlasterLoop = false;
blasterGObj = func_802AE8A8(fp->facing_dir, fighter_gobj, &fp->xB0_pos, blasterGObj = func_802AE8A8(fp->facing_dir, fighter_gobj, &fp->xB0_pos,
func_8007500C(fp, 0x31), func_8007500C(fp, 0x31),
foxAttrs->x20_FOX_BLASTER_GUN_ITKIND); foxAttrs->x20_FOX_BLASTER_GUN_ITKIND);
@ -334,7 +334,7 @@ void ftFox_SpecialNLoop_Anim(HSD_GObj* fighter_gobj)
func_802AE538(temp_r28->sa.fox.x222C_blasterGObj); func_802AE538(temp_r28->sa.fox.x222C_blasterGObj);
} }
if (!ftAnim_IsFramesRemaining(fighter_gobj)) { if (!ftAnim_IsFramesRemaining(fighter_gobj)) {
if ((s32) temp_r28->foxVars[0].SpecialN.isBlasterLoop == true) { if ((s32) temp_r28->foxVars.SpecialN.isBlasterLoop == true) {
temp_r28->cb.x21EC_callback = ftFox_SpecialN_OnChangeAction; temp_r28->cb.x21EC_callback = ftFox_SpecialN_OnChangeAction;
Fighter_ActionStateChange_800693AC( Fighter_ActionStateChange_800693AC(
fighter_gobj, AS_FOX_SPECIALN_LOOP, fighter_gobj, AS_FOX_SPECIALN_LOOP,
@ -342,7 +342,7 @@ void ftFox_SpecialNLoop_Anim(HSD_GObj* fighter_gobj)
FIGHTER_GFX_PRESERVE), FIGHTER_GFX_PRESERVE),
NULL, 0.0f, 1.0f, 0.0f); NULL, 0.0f, 1.0f, 0.0f);
temp_r28->cb.x21BC_callback_Accessory4 = ftFox_CreateBlasterShot; temp_r28->cb.x21BC_callback_Accessory4 = ftFox_CreateBlasterShot;
temp_r28->foxVars[0].SpecialN.isBlasterLoop = false; temp_r28->foxVars.SpecialN.isBlasterLoop = false;
func_802ADDD0(temp_r28->sa.fox.x222C_blasterGObj, 1); func_802ADDD0(temp_r28->sa.fox.x222C_blasterGObj, 1);
} else { } else {
HSD_GObj* temp; HSD_GObj* temp;
@ -479,7 +479,7 @@ void ftFox_SpecialAirNLoop_Anim(HSD_GObj* fighter_gobj)
func_802AE538(fp->sa.fox.x222C_blasterGObj); func_802AE538(fp->sa.fox.x222C_blasterGObj);
} }
if (!ftAnim_IsFramesRemaining(fighter_gobj)) { if (!ftAnim_IsFramesRemaining(fighter_gobj)) {
if ((s32) fp->foxVars[0].SpecialN.isBlasterLoop == true) { if ((s32) fp->foxVars.SpecialN.isBlasterLoop == true) {
fp->cb.x21EC_callback = ftFox_SpecialN_OnChangeAction; fp->cb.x21EC_callback = ftFox_SpecialN_OnChangeAction;
Fighter_ActionStateChange_800693AC( Fighter_ActionStateChange_800693AC(
fighter_gobj, AS_FOX_SPECIALAIRN_LOOP, fighter_gobj, AS_FOX_SPECIALAIRN_LOOP,
@ -488,7 +488,7 @@ void ftFox_SpecialAirNLoop_Anim(HSD_GObj* fighter_gobj)
NULL, 0.0f, 1.0f, 0.0f); NULL, 0.0f, 1.0f, 0.0f);
ftFox_SpecialN_SetCall(fighter_gobj); ftFox_SpecialN_SetCall(fighter_gobj);
fp->cb.x21BC_callback_Accessory4 = ftFox_CreateBlasterShot; fp->cb.x21BC_callback_Accessory4 = ftFox_CreateBlasterShot;
fp->foxVars[0].SpecialN.isBlasterLoop = false; fp->foxVars.SpecialN.isBlasterLoop = false;
func_802ADDD0(fp->sa.fox.x222C_blasterGObj, 1); func_802ADDD0(fp->sa.fox.x222C_blasterGObj, 1);
} else { } else {
HSD_GObj* temp; HSD_GObj* temp;
@ -595,7 +595,7 @@ void ftFox_SpecialNStart_IASA(HSD_GObj* fighter_gobj)
Fighter* fp = GET_FIGHTER(fighter_gobj); Fighter* fp = GET_FIGHTER(fighter_gobj);
if (((u32) fp->x2200_ftcmd_var0 != 0U) && (fp->input.x668 & HSD_BUTTON_B)) { if (((u32) fp->x2200_ftcmd_var0 != 0U) && (fp->input.x668 & HSD_BUTTON_B)) {
fp->foxVars[0].SpecialN.isBlasterLoop = true; fp->foxVars.SpecialN.isBlasterLoop = true;
} }
} }
@ -607,7 +607,7 @@ void ftFox_SpecialNLoop_IASA(HSD_GObj* fighter_gobj)
Fighter* fp = GET_FIGHTER(fighter_gobj); Fighter* fp = GET_FIGHTER(fighter_gobj);
if (((u32) fp->x2200_ftcmd_var0 != 0U) && (fp->input.x668 & HSD_BUTTON_B)) { if (((u32) fp->x2200_ftcmd_var0 != 0U) && (fp->input.x668 & HSD_BUTTON_B)) {
fp->foxVars[0].SpecialN.isBlasterLoop = true; fp->foxVars.SpecialN.isBlasterLoop = true;
} }
} }
@ -625,7 +625,7 @@ void ftFox_SpecialAirNStart_IASA(HSD_GObj* fighter_gobj)
Fighter* fp = GET_FIGHTER(fighter_gobj); Fighter* fp = GET_FIGHTER(fighter_gobj);
if (((u32) fp->x2200_ftcmd_var0 != 0U) && (fp->input.x668 & HSD_BUTTON_B)) { if (((u32) fp->x2200_ftcmd_var0 != 0U) && (fp->input.x668 & HSD_BUTTON_B)) {
fp->foxVars[0].SpecialN.isBlasterLoop = true; fp->foxVars.SpecialN.isBlasterLoop = true;
} }
} }
@ -637,7 +637,7 @@ void ftFox_SpecialAirNLoop_IASA(HSD_GObj* fighter_gobj)
Fighter* fp = GET_FIGHTER(fighter_gobj); Fighter* fp = GET_FIGHTER(fighter_gobj);
if (((u32) fp->x2200_ftcmd_var0 != 0U) && (fp->input.x668 & HSD_BUTTON_B)) { if (((u32) fp->x2200_ftcmd_var0 != 0U) && (fp->input.x668 & HSD_BUTTON_B)) {
fp->foxVars[0].SpecialN.isBlasterLoop = true; fp->foxVars.SpecialN.isBlasterLoop = true;
} }
} }

View File

@ -53,7 +53,7 @@ void ftFox_SpecialS_CopyGhostPosIndexed(HSD_GObj* fighter_gobj, s32 index,
{ {
Fighter* fp = GET_FIGHTER(fighter_gobj); Fighter* fp = GET_FIGHTER(fighter_gobj);
*ghostPos = fp->foxVars[0].SpecialS.ghostEffectPos[index]; *ghostPos = fp->foxVars.SpecialS.ghostEffectPos[index];
} }
// 0x800E9ED4 // 0x800E9ED4
@ -61,7 +61,7 @@ void ftFox_SpecialS_CopyGhostPosIndexed(HSD_GObj* fighter_gobj, s32 index,
// Falco's Illusion/Phantasm // Falco's Illusion/Phantasm
f32 ftFox_SpecialS_ReturnFloatVarIndexed(HSD_GObj* fighter_gobj, s32 index) f32 ftFox_SpecialS_ReturnFloatVarIndexed(HSD_GObj* fighter_gobj, s32 index)
{ {
return getFighter(fighter_gobj)->foxVars[0].SpecialS.blendFrames[index]; return getFighter(fighter_gobj)->foxVars.SpecialS.blendFrames[index];
} }
// 0x800E9EE8 // 0x800E9EE8
@ -76,9 +76,9 @@ void ftFox_SpecialS_StartAction(HSD_GObj* fighter_gobj)
foxAttrs = fp->x2D4_specialAttributes; foxAttrs = fp->x2D4_specialAttributes;
fp->x2208_ftcmd_var2 = 0; fp->x2208_ftcmd_var2 = 0;
fp->foxVars[0].SpecialS.gravityDelay = fp->foxVars.SpecialS.gravityDelay =
(s32) foxAttrs->x24_FOX_ILLUSION_GRAVITY_DELAY; (s32) foxAttrs->x24_FOX_ILLUSION_GRAVITY_DELAY;
fp->foxVars[0].SpecialS.ghostGObj = NULL; fp->foxVars.SpecialS.ghostGObj = NULL;
fp->xEC_ground_vel /= foxAttrs->x28_FOX_ILLUSION_GROUND_VEL_X; fp->xEC_ground_vel /= foxAttrs->x28_FOX_ILLUSION_GROUND_VEL_X;
@ -99,9 +99,9 @@ void ftFox_SpecialAirS_StartAction(HSD_GObj* fighter_gobj)
foxAttrs = getFtSpecialAttrs(fp); foxAttrs = getFtSpecialAttrs(fp);
fp->x2208_ftcmd_var2 = 0; fp->x2208_ftcmd_var2 = 0;
fp->foxVars[0].SpecialS.gravityDelay = fp->foxVars.SpecialS.gravityDelay =
(s32) foxAttrs->x24_FOX_ILLUSION_GRAVITY_DELAY; (s32) foxAttrs->x24_FOX_ILLUSION_GRAVITY_DELAY;
fp->foxVars[0].SpecialS.ghostGObj = NULL; fp->foxVars.SpecialS.ghostGObj = NULL;
fp->x80_self_vel.y = 0.0f; fp->x80_self_vel.y = 0.0f;
fp->x80_self_vel.x /= foxAttrs->x28_FOX_ILLUSION_GROUND_VEL_X; fp->x80_self_vel.x /= foxAttrs->x28_FOX_ILLUSION_GROUND_VEL_X;
@ -152,8 +152,8 @@ void ftFox_SpecialSStart_Phys(HSD_GObj* fighter_gobj)
{ {
Fighter* fp = GET_FIGHTER(fighter_gobj); Fighter* fp = GET_FIGHTER(fighter_gobj);
if (fp->foxVars[0].SpecialS.gravityDelay != 0) { if (fp->foxVars.SpecialS.gravityDelay != 0) {
fp->foxVars[0].SpecialS.gravityDelay--; fp->foxVars.SpecialS.gravityDelay--;
} }
func_80084F3C(fighter_gobj); func_80084F3C(fighter_gobj);
} }
@ -172,8 +172,8 @@ void ftFox_SpecialAirSStart_Phys(HSD_GObj* fighter_gobj)
u8 unused[8]; u8 unused[8];
#endif #endif
if (fp->foxVars[0].SpecialS.gravityDelay != 0) { if (fp->foxVars.SpecialS.gravityDelay != 0) {
fp->foxVars[0].SpecialS.gravityDelay--; fp->foxVars.SpecialS.gravityDelay--;
} else { } else {
func_8007D494(fp, foxAttrs->x30_FOX_ILLUSION_UNK2, func_8007D494(fp, foxAttrs->x30_FOX_ILLUSION_UNK2,
ftAttrs->x170_TerminalVelocity); ftAttrs->x170_TerminalVelocity);
@ -255,7 +255,7 @@ static inline void ftFox_SpecialS_CreateGhostItem(HSD_GObj* fighter_gobj)
func_8029CEB4(fighter_gobj, &fp->xB0_pos, 0x39, fp->facing_dir); func_8029CEB4(fighter_gobj, &fp->xB0_pos, 0x39, fp->facing_dir);
} }
if (ghostGObj != NULL) { if (ghostGObj != NULL) {
fp->foxVars[0].SpecialS.ghostGObj = ghostGObj; fp->foxVars.SpecialS.ghostGObj = ghostGObj;
fp->x2222_flag.bits.b2 = 1; fp->x2222_flag.bits.b2 = 1;
} }
} }
@ -325,23 +325,20 @@ static inline void ftFox_SpecialS_SetPhys(HSD_GObj* fighter_gobj)
fp = GET_FIGHTER(fighter_gobj); fp = GET_FIGHTER(fighter_gobj);
fp->foxVars[0].SpecialS.ghostEffectPos[3] = fp->foxVars.SpecialS.ghostEffectPos[3] =
fp->foxVars[0].SpecialS.ghostEffectPos[2]; fp->foxVars.SpecialS.ghostEffectPos[2];
fp->foxVars[0].SpecialS.ghostEffectPos[2] = fp->foxVars.SpecialS.ghostEffectPos[2] =
fp->foxVars[0].SpecialS.ghostEffectPos[1]; fp->foxVars.SpecialS.ghostEffectPos[1];
fp->foxVars[0].SpecialS.ghostEffectPos[1] = fp->foxVars.SpecialS.ghostEffectPos[1] =
fp->foxVars[0].SpecialS.ghostEffectPos[0]; fp->foxVars.SpecialS.ghostEffectPos[0];
fp->foxVars[0].SpecialS.ghostEffectPos[0] = fp->xB0_pos; fp->foxVars.SpecialS.ghostEffectPos[0] = fp->xB0_pos;
fp->foxVars[0].SpecialS.blendFrames[3] = fp->foxVars.SpecialS.blendFrames[3] = fp->foxVars.SpecialS.blendFrames[2];
fp->foxVars[0].SpecialS.blendFrames[2]; fp->foxVars.SpecialS.blendFrames[2] = fp->foxVars.SpecialS.blendFrames[1];
fp->foxVars[0].SpecialS.blendFrames[2] = fp->foxVars.SpecialS.blendFrames[1] = fp->foxVars.SpecialS.blendFrames[0];
fp->foxVars[0].SpecialS.blendFrames[1];
fp->foxVars[0].SpecialS.blendFrames[1] =
fp->foxVars[0].SpecialS.blendFrames[0];
fp->foxVars[0].SpecialS.blendFrames[0] = func_80075E78(fp, 0); fp->foxVars.SpecialS.blendFrames[0] = func_80075E78(fp, 0);
} }
// 0x800EA47C // 0x800EA47C
@ -429,17 +426,17 @@ inline void ftFox_SpecialS_SetVars(HSD_GObj* fighter_gobj)
f32 var; f32 var;
Fighter* fp = GET_FIGHTER(fighter_gobj); Fighter* fp = GET_FIGHTER(fighter_gobj);
fp->foxVars[0].SpecialS.ghostEffectPos[3] = fp->xB0_pos; fp->foxVars.SpecialS.ghostEffectPos[3] = fp->xB0_pos;
fp->foxVars[0].SpecialS.ghostEffectPos[2] = fp->xB0_pos; fp->foxVars.SpecialS.ghostEffectPos[2] = fp->xB0_pos;
fp->foxVars[0].SpecialS.ghostEffectPos[1] = fp->xB0_pos; fp->foxVars.SpecialS.ghostEffectPos[1] = fp->xB0_pos;
fp->foxVars[0].SpecialS.ghostEffectPos[0] = fp->xB0_pos; fp->foxVars.SpecialS.ghostEffectPos[0] = fp->xB0_pos;
var = func_80075E78(fp, 0); var = func_80075E78(fp, 0);
fp->foxVars[0].SpecialS.blendFrames[3] = var; fp->foxVars.SpecialS.blendFrames[3] = var;
fp->foxVars[0].SpecialS.blendFrames[2] = var; fp->foxVars.SpecialS.blendFrames[2] = var;
fp->foxVars[0].SpecialS.blendFrames[1] = var; fp->foxVars.SpecialS.blendFrames[1] = var;
fp->foxVars[0].SpecialS.blendFrames[0] = var; fp->foxVars.SpecialS.blendFrames[0] = var;
fp->cb.x21BC_callback_Accessory4 = &ftFox_SpecialS_CreateGFX; fp->cb.x21BC_callback_Accessory4 = &ftFox_SpecialS_CreateGFX;
} }
@ -521,8 +518,8 @@ void ftFox_SpecialSEnd_Phys(HSD_GObj* fighter_gobj)
u8 unused[8]; u8 unused[8];
#endif #endif
if (fp->foxVars[0].SpecialS.gravityDelay != 0) { if (fp->foxVars.SpecialS.gravityDelay != 0) {
fp->foxVars[0].SpecialS.gravityDelay--; fp->foxVars.SpecialS.gravityDelay--;
} }
func_8007C930(fp, foxAttrs->x38_FOX_ILLUSION_GROUND_FRICTION); func_8007C930(fp, foxAttrs->x38_FOX_ILLUSION_GROUND_FRICTION);
func_8007CB74(fighter_gobj); func_8007CB74(fighter_gobj);
@ -543,8 +540,8 @@ void ftFox_SpecialAirSEnd_Phys(HSD_GObj* fighter_gobj)
u8 unused[8]; u8 unused[8];
#endif #endif
if (fp->foxVars[0].SpecialS.gravityDelay != 0) { if (fp->foxVars.SpecialS.gravityDelay != 0) {
fp->foxVars[0].SpecialS.gravityDelay--; fp->foxVars.SpecialS.gravityDelay--;
} else } else
func_8007D494(fp, foxAttrs->x48_FOX_ILLUSION_TERMINAL_VELOCITY, func_8007D494(fp, foxAttrs->x48_FOX_ILLUSION_TERMINAL_VELOCITY,
ftAttrs->x170_TerminalVelocity); ftAttrs->x170_TerminalVelocity);
@ -599,8 +596,7 @@ inline void ftFox_SpecialSEnd_SetVars(HSD_GObj* fighter_gobj)
{ {
Fighter* fp = GET_FIGHTER(fighter_gobj); Fighter* fp = GET_FIGHTER(fighter_gobj);
ftFoxAttributes* foxAttrs = getFtSpecialAttrs(fp); ftFoxAttributes* foxAttrs = getFtSpecialAttrs(fp);
fp->foxVars[0].SpecialS.gravityDelay = fp->foxVars.SpecialS.gravityDelay = foxAttrs->x44_FOX_ILLUSION_FALL_ACCEL;
foxAttrs->x44_FOX_ILLUSION_FALL_ACCEL;
fp->x2222_flag.bits.b2 = 1; fp->x2222_flag.bits.b2 = 1;
} }

View File

@ -151,7 +151,7 @@ void ftGameWatch_Attack11_Action(HSD_GObj* fighter_gobj)
fp->x196C_hitlag_mult = (f32) fp->x110_attr.x18C_Jab_2InputWindow; fp->x196C_hitlag_mult = (f32) fp->x110_attr.x18C_Jab_2InputWindow;
fp->x1970 = 44; fp->x1970 = 44;
fp->x2218_flag.bits.b2 = 0; fp->x2218_flag.bits.b2 = 0;
fp->gameWatchVars[0].Attack11.unk = 0; fp->gameWatchVars.Attack11.unk = 0;
fp->x1A54 = 0; fp->x1A54 = 0;
fp->cb.x21BC_callback_Accessory4 = ftGameWatch_ItemGreenhouseSetup; fp->cb.x21BC_callback_Accessory4 = ftGameWatch_ItemGreenhouseSetup;
} }

View File

@ -134,8 +134,8 @@ inline void ftGameWatch_SpecialLw_SetVars(HSD_GObj* fighter_gobj)
Fighter* fp = GET_FIGHTER(fighter_gobj); Fighter* fp = GET_FIGHTER(fighter_gobj);
fp->x2204_ftcmd_var1 = 0; fp->x2204_ftcmd_var1 = 0;
fp->x2200_ftcmd_var0 = 0; fp->x2200_ftcmd_var0 = 0;
fp->gameWatchVars[0].SpecialLw.isRelease = false; fp->gameWatchVars.SpecialLw.isRelease = false;
fp->gameWatchVars[0].SpecialLw.turnFrames = 0; fp->gameWatchVars.SpecialLw.turnFrames = 0;
} }
// 0x8014CEF0 // 0x8014CEF0
@ -206,7 +206,7 @@ void ftGameWatch_SpecialLw_Anim(HSD_GObj* fighter_gobj)
#endif #endif
if ((38.0f == fp->x894_currentAnimFrame) && if ((38.0f == fp->x894_currentAnimFrame) &&
((s32) fp->gameWatchVars[0].SpecialLw.isRelease == false)) ((s32) fp->gameWatchVars.SpecialLw.isRelease == false))
{ {
ftGameWatch_SpecialLw_UpdateAction(fighter_gobj, 5.0f); ftGameWatch_SpecialLw_UpdateAction(fighter_gobj, 5.0f);
} }
@ -230,7 +230,7 @@ void ftGameWatch_SpecialAirLw_Anim(HSD_GObj* fighter_gobj)
#endif #endif
if ((38.0f == fp->x894_currentAnimFrame) && if ((38.0f == fp->x894_currentAnimFrame) &&
((s32) fp->gameWatchVars[0].SpecialLw.isRelease == false)) ((s32) fp->gameWatchVars.SpecialLw.isRelease == false))
{ {
ftGameWatch_SpecialAirLw_UpdateAction(fighter_gobj, 5.0f); ftGameWatch_SpecialAirLw_UpdateAction(fighter_gobj, 5.0f);
} }
@ -254,10 +254,10 @@ void ftGameWatch_SpecialLw_IASA(HSD_GObj* fighter_gobj)
ftGameWatchAttributes* gawAttrs; ftGameWatchAttributes* gawAttrs;
fp = GET_FIGHTER(fighter_gobj); fp = GET_FIGHTER(fighter_gobj);
turnFrames = fp->gameWatchVars[0].SpecialLw.turnFrames; turnFrames = fp->gameWatchVars.SpecialLw.turnFrames;
gawAttrs = getFtSpecialAttrs(fp); gawAttrs = getFtSpecialAttrs(fp);
if (turnFrames > 0) { if (turnFrames > 0) {
fp->gameWatchVars[0].SpecialLw.turnFrames = turnFrames - 1; fp->gameWatchVars.SpecialLw.turnFrames = turnFrames - 1;
} else { } else {
stick_range = fp->input.x620_lstick_x; stick_range = fp->input.x620_lstick_x;
if (stick_range < 0.0f) { if (stick_range < 0.0f) {
@ -267,13 +267,13 @@ void ftGameWatch_SpecialLw_IASA(HSD_GObj* fighter_gobj)
facingDir = fp->facing_dir; facingDir = fp->facing_dir;
func_8007D9FC(fp); func_8007D9FC(fp);
if (facingDir != fp->facing_dir) { if (facingDir != fp->facing_dir) {
fp->gameWatchVars[0].SpecialLw.turnFrames = fp->gameWatchVars.SpecialLw.turnFrames =
(s32) gawAttrs->x7C_GAMEWATCH_PANIC_TURN_FRAMES; (s32) gawAttrs->x7C_GAMEWATCH_PANIC_TURN_FRAMES;
} }
} }
} }
if ((fp->input.x65C_heldInputs & HSD_BUTTON_B) == false) { if ((fp->input.x65C_heldInputs & HSD_BUTTON_B) == false) {
fp->gameWatchVars[0].SpecialLw.isRelease = true; fp->gameWatchVars.SpecialLw.isRelease = true;
} }
} }
@ -289,10 +289,10 @@ void ftGameWatch_SpecialAirLw_IASA(HSD_GObj* fighter_gobj)
ftGameWatchAttributes* gawAttrs; ftGameWatchAttributes* gawAttrs;
fp = GET_FIGHTER(fighter_gobj); fp = GET_FIGHTER(fighter_gobj);
turnFrames = fp->gameWatchVars[0].SpecialLw.turnFrames; turnFrames = fp->gameWatchVars.SpecialLw.turnFrames;
gawAttrs = getFtSpecialAttrs(fp); gawAttrs = getFtSpecialAttrs(fp);
if (turnFrames > 0) { if (turnFrames > 0) {
fp->gameWatchVars[0].SpecialLw.turnFrames = turnFrames - 1; fp->gameWatchVars.SpecialLw.turnFrames = turnFrames - 1;
} else { } else {
stick_range = fp->input.x620_lstick_x; stick_range = fp->input.x620_lstick_x;
if (stick_range < 0.0f) { if (stick_range < 0.0f) {
@ -302,13 +302,13 @@ void ftGameWatch_SpecialAirLw_IASA(HSD_GObj* fighter_gobj)
facingDir = fp->facing_dir; facingDir = fp->facing_dir;
func_8007D9FC(fp); func_8007D9FC(fp);
if (facingDir != fp->facing_dir) { if (facingDir != fp->facing_dir) {
fp->gameWatchVars[0].SpecialLw.turnFrames = fp->gameWatchVars.SpecialLw.turnFrames =
(s32) gawAttrs->x7C_GAMEWATCH_PANIC_TURN_FRAMES; (s32) gawAttrs->x7C_GAMEWATCH_PANIC_TURN_FRAMES;
} }
} }
} }
if ((fp->input.x65C_heldInputs & HSD_BUTTON_B) == false) { if ((fp->input.x65C_heldInputs & HSD_BUTTON_B) == false) {
fp->gameWatchVars[0].SpecialLw.isRelease = true; fp->gameWatchVars.SpecialLw.isRelease = true;
} }
} }

View File

@ -151,10 +151,10 @@ static void ftGameWatch_SpecialN_CreateSausage(HSD_GObj* fighter_gobj)
gawAttrs = getFtSpecialAttrs(fp); gawAttrs = getFtSpecialAttrs(fp);
if (fp->x2200_ftcmd_var0 != 0) { if (fp->x2200_ftcmd_var0 != 0) {
fp->x2200_ftcmd_var0 = randomInt = 0; fp->x2200_ftcmd_var0 = randomInt = 0;
if (((f32) fp->gameWatchVars[0].SpecialN.maxSausage) < if (((f32) fp->gameWatchVars.SpecialN.maxSausage) <
gawAttrs->x1C_GAMEWATCH_CHEF_MAX) gawAttrs->x1C_GAMEWATCH_CHEF_MAX)
{ {
fp->gameWatchVars[0].SpecialN.maxSausage++; fp->gameWatchVars.SpecialN.maxSausage++;
sp38.x = 2.5f; sp38.x = 2.5f;
sp38.y = 6.5f; sp38.y = 6.5f;
sp38.z = 0.0f; sp38.z = 0.0f;
@ -189,8 +189,8 @@ static inline void ftGameWatch_SpecialN_SetVars(HSD_GObj* fighter_gobj)
fp->x2200_ftcmd_var0 = 0; fp->x2200_ftcmd_var0 = 0;
fp->x2204_ftcmd_var1 = 0; fp->x2204_ftcmd_var1 = 0;
fp->x2208_ftcmd_var2 = 0; fp->x2208_ftcmd_var2 = 0;
fp->gameWatchVars[0].SpecialN.isChefLoopDisable = false; fp->gameWatchVars.SpecialN.isChefLoopDisable = false;
fp->gameWatchVars[0].SpecialN.maxSausage = 0; fp->gameWatchVars.SpecialN.maxSausage = 0;
fp->cb.x21BC_callback_Accessory4 = ftGameWatch_SpecialN_CreateSausage; fp->cb.x21BC_callback_Accessory4 = ftGameWatch_SpecialN_CreateSausage;
} }
@ -225,9 +225,9 @@ static inline void ftGameWatch_SpecialN_ChefLoop(HSD_GObj* fighter_gobj)
if ((u32) fp->x2208_ftcmd_var2 != 0U) { if ((u32) fp->x2208_ftcmd_var2 != 0U) {
fp->x2208_ftcmd_var2 = 0U; fp->x2208_ftcmd_var2 = 0U;
if (((f32) fp->gameWatchVars[0].SpecialN.maxSausage < if (((f32) fp->gameWatchVars.SpecialN.maxSausage <
gawAttrs->x1C_GAMEWATCH_CHEF_MAX) && gawAttrs->x1C_GAMEWATCH_CHEF_MAX) &&
((s32) fp->gameWatchVars[0].SpecialN.isChefLoopDisable == false)) ((s32) fp->gameWatchVars.SpecialN.isChefLoopDisable == false))
{ {
ftGameWatch_SpecialN_Loop(fighter_gobj, ftGameWatch_SpecialN_Loop(fighter_gobj,
gawAttrs->x18_GAMEWATCH_CHEF_LOOPFRAME); gawAttrs->x18_GAMEWATCH_CHEF_LOOPFRAME);
@ -256,8 +256,8 @@ static inline void ftGameWatch_SpecialAirN_ChefLoop(HSD_GObj* fighter_gobj)
if ((u32) fp->x2208_ftcmd_var2 != 0U) { if ((u32) fp->x2208_ftcmd_var2 != 0U) {
fp->x2208_ftcmd_var2 = 0U; fp->x2208_ftcmd_var2 = 0U;
if (((s32) fp->gameWatchVars[0].SpecialN.isChefLoopDisable == false) && if (((s32) fp->gameWatchVars.SpecialN.isChefLoopDisable == false) &&
((f32) fp->gameWatchVars[0].SpecialN.maxSausage < ((f32) fp->gameWatchVars.SpecialN.maxSausage <
gawAttrs->x1C_GAMEWATCH_CHEF_MAX)) gawAttrs->x1C_GAMEWATCH_CHEF_MAX))
{ {
ftGameWatch_SpecialAirN_Loop( ftGameWatch_SpecialAirN_Loop(
@ -288,10 +288,10 @@ void ftGameWatch_SpecialN_IASA(HSD_GObj* fighter_gobj)
ftGameWatchAttributes* gawAttrs = gawAttrs = getFtSpecialAttrsD(fp); ftGameWatchAttributes* gawAttrs = gawAttrs = getFtSpecialAttrsD(fp);
if ((fp->input.x65C_heldInputs & HSD_BUTTON_B) == false) { if ((fp->input.x65C_heldInputs & HSD_BUTTON_B) == false) {
fp->gameWatchVars[0].SpecialN.isChefLoopDisable = true; fp->gameWatchVars.SpecialN.isChefLoopDisable = true;
} }
if (((u32) fp->x2204_ftcmd_var1 != 0U) && (fp->input.x668 & HSD_BUTTON_B) && if (((u32) fp->x2204_ftcmd_var1 != 0U) && (fp->input.x668 & HSD_BUTTON_B) &&
((f32) fp->gameWatchVars[0].SpecialN.maxSausage < ((f32) fp->gameWatchVars.SpecialN.maxSausage <
gawAttrs->x1C_GAMEWATCH_CHEF_MAX)) gawAttrs->x1C_GAMEWATCH_CHEF_MAX))
{ {
ftGameWatch_SpecialN_Loop(fighter_gobj, ftGameWatch_SpecialN_Loop(fighter_gobj,
@ -308,10 +308,10 @@ void ftGameWatch_SpecialAirN_IASA(HSD_GObj* fighter_gobj)
ftGameWatchAttributes* gawAttrs = gawAttrs = getFtSpecialAttrsD(fp); ftGameWatchAttributes* gawAttrs = gawAttrs = getFtSpecialAttrsD(fp);
if ((fp->input.x65C_heldInputs & HSD_BUTTON_B) == false) { if ((fp->input.x65C_heldInputs & HSD_BUTTON_B) == false) {
fp->gameWatchVars[0].SpecialN.isChefLoopDisable = true; fp->gameWatchVars.SpecialN.isChefLoopDisable = true;
} }
if (((u32) fp->x2204_ftcmd_var1 != 0U) && (fp->input.x668 & HSD_BUTTON_B) && if (((u32) fp->x2204_ftcmd_var1 != 0U) && (fp->input.x668 & HSD_BUTTON_B) &&
((f32) fp->gameWatchVars[0].SpecialN.maxSausage < ((f32) fp->gameWatchVars.SpecialN.maxSausage <
gawAttrs->x1C_GAMEWATCH_CHEF_MAX)) gawAttrs->x1C_GAMEWATCH_CHEF_MAX))
{ {
ftGameWatch_SpecialAirN_Loop(fighter_gobj, ftGameWatch_SpecialAirN_Loop(fighter_gobj,
@ -403,7 +403,7 @@ void ftGameWatch_SpecialN_Loop(HSD_GObj* fighter_gobj, f32 anim_frame)
fp->x2204_ftcmd_var1 = 0; fp->x2204_ftcmd_var1 = 0;
fp->x2208_ftcmd_var2 = 0; fp->x2208_ftcmd_var2 = 0;
fp->gameWatchVars[0].SpecialN.isChefLoopDisable = false; fp->gameWatchVars.SpecialN.isChefLoopDisable = false;
fp->cb.x21BC_callback_Accessory4 = ftGameWatch_SpecialN_CreateSausage; fp->cb.x21BC_callback_Accessory4 = ftGameWatch_SpecialN_CreateSausage;
} }
@ -428,6 +428,6 @@ void ftGameWatch_SpecialAirN_Loop(HSD_GObj* fighter_gobj, f32 anim_frame)
fp->x2204_ftcmd_var1 = 0; fp->x2204_ftcmd_var1 = 0;
fp->x2208_ftcmd_var2 = 0; fp->x2208_ftcmd_var2 = 0;
fp->gameWatchVars[0].SpecialN.isChefLoopDisable = false; fp->gameWatchVars.SpecialN.isChefLoopDisable = false;
fp->cb.x21BC_callback_Accessory4 = ftGameWatch_SpecialN_CreateSausage; fp->cb.x21BC_callback_Accessory4 = ftGameWatch_SpecialN_CreateSausage;
} }

View File

@ -21,10 +21,9 @@ static inline void ftLuigi_SpecialLw_SetVars(HSD_GObj* fighter_gobj)
ftLuigiAttributes* luigiAttrs = fp->x2D4_specialAttributes; ftLuigiAttributes* luigiAttrs = fp->x2D4_specialAttributes;
fp->x2200_ftcmd_var0 = 0; fp->x2200_ftcmd_var0 = 0;
fp->x2204_ftcmd_var1 = 0; fp->x2204_ftcmd_var1 = 0;
fp->luigiVars[0].SpecialLw.groundVelX = (f32) 0.0f; fp->luigiVars.SpecialLw.groundVelX = (f32) 0.0f;
fp->luigiVars[0].SpecialLw.unk = fp->luigiVars.SpecialLw.unk = (s32) luigiAttrs->x88_LUIGI_CYCLONE_UNK + 1;
(s32) luigiAttrs->x88_LUIGI_CYCLONE_UNK + 1; fp->luigiVars.SpecialLw.isUnkColl = false;
fp->luigiVars[0].SpecialLw.isUnkColl = false;
} }
static inline void ftLuigi_SpecialLw_SetCall(HSD_GObj* fighter_gobj) static inline void ftLuigi_SpecialLw_SetCall(HSD_GObj* fighter_gobj)
@ -196,9 +195,9 @@ void ftLuigi_SpecialLw_Phys(HSD_GObj* fighter_gobj)
luigiAttrs = getFtSpecialAttrs(fp); luigiAttrs = getFtSpecialAttrs(fp);
var2 = luigiAttrs->x74_LUIGI_CYCLONE_MOMENTUM_X_GROUND; var2 = luigiAttrs->x74_LUIGI_CYCLONE_MOMENTUM_X_GROUND;
if ((u32) fp->x2200_ftcmd_var0 != 0U) { if ((u32) fp->x2200_ftcmd_var0 != 0U) {
fp->luigiVars[0].SpecialLw.groundVelX -= fp->luigiVars.SpecialLw.groundVelX -=
luigiAttrs->x84_LUIGI_CYCLONE_FRICTION_END; luigiAttrs->x84_LUIGI_CYCLONE_FRICTION_END;
var2 += fp->luigiVars[0].SpecialLw.groundVelX; var2 += fp->luigiVars.SpecialLw.groundVelX;
if (var2 < 0.0f) { if (var2 < 0.0f) {
var2 = 0.0f; var2 = 0.0f;
} }
@ -238,9 +237,9 @@ void ftLuigi_SpecialAirLw_Phys(HSD_GObj* fighter_gobj)
var = luigiAttrs->x78_LUIGI_CYCLONE_MOMENTUM_X_AIR; var = luigiAttrs->x78_LUIGI_CYCLONE_MOMENTUM_X_AIR;
luigiAttrs2 = fp->x2D4_specialAttributes; luigiAttrs2 = fp->x2D4_specialAttributes;
if ((u32) fp->x2200_ftcmd_var0 != 0) { if ((u32) fp->x2200_ftcmd_var0 != 0) {
fp->luigiVars[0].SpecialLw.groundVelX -= fp->luigiVars.SpecialLw.groundVelX -=
luigiAttrs2->x84_LUIGI_CYCLONE_FRICTION_END; luigiAttrs2->x84_LUIGI_CYCLONE_FRICTION_END;
var += fp->luigiVars[0].SpecialLw.groundVelX; var += fp->luigiVars.SpecialLw.groundVelX;
if (var < 0.0f) { if (var < 0.0f) {
var = 0.0f; var = 0.0f;
} }
@ -257,7 +256,7 @@ static inline void ftLuigi_SpecialLw_UnkAngle(HSD_GObj* fighter_gobj)
{ {
Fighter* fp = GET_FIGHTER(fighter_gobj); Fighter* fp = GET_FIGHTER(fighter_gobj);
if (((u32) fp->x220C_ftcmd_var3 != 0U) && if (((u32) fp->x220C_ftcmd_var3 != 0U) &&
((s32) fp->luigiVars[0].SpecialLw.isUnkColl != false)) ((s32) fp->luigiVars.SpecialLw.isUnkColl != false))
{ {
func_8007592C(fp, 0, func_8007592C(fp, 0,
fp->facing_dir * fp->facing_dir *
@ -281,17 +280,17 @@ void ftLuigi_SpecialLw_Coll(HSD_GObj* fighter_gobj)
false) false)
{ {
ftLuigi_SpecialLw_GroundToAir(fighter_gobj); ftLuigi_SpecialLw_GroundToAir(fighter_gobj);
fp->luigiVars[0].SpecialLw.isUnkColl = false; fp->luigiVars.SpecialLw.isUnkColl = false;
} else { } else {
fp->luigiVars[0].SpecialLw.isUnkColl = true; fp->luigiVars.SpecialLw.isUnkColl = true;
} }
} else if (func_800824A0(fighter_gobj, &ftLuigi_SpecialLw_CollisionBox) == } else if (func_800824A0(fighter_gobj, &ftLuigi_SpecialLw_CollisionBox) ==
false) false)
{ {
ftLuigi_SpecialLw_GroundToAir(fighter_gobj); ftLuigi_SpecialLw_GroundToAir(fighter_gobj);
fp->luigiVars[0].SpecialLw.isUnkColl = false; fp->luigiVars.SpecialLw.isUnkColl = false;
} else { } else {
fp->luigiVars[0].SpecialLw.isUnkColl = true; fp->luigiVars.SpecialLw.isUnkColl = true;
} }
ftLuigi_SpecialLw_UnkAngle(fighter_gobj); ftLuigi_SpecialLw_UnkAngle(fighter_gobj);
} }
@ -325,9 +324,9 @@ void ftLuigi_SpecialAirLw_Coll(HSD_GObj* fighter_gobj)
if (func_800824A0(fighter_gobj, &ftLuigi_SpecialLw_CollisionBox) != false) { if (func_800824A0(fighter_gobj, &ftLuigi_SpecialLw_CollisionBox) != false) {
ftLuigi_SpecialAirLw_AirToGround(fighter_gobj); ftLuigi_SpecialAirLw_AirToGround(fighter_gobj);
fp->luigiVars[0].SpecialLw.isUnkColl = true; fp->luigiVars.SpecialLw.isUnkColl = true;
} else { } else {
fp->luigiVars[0].SpecialLw.isUnkColl = false; fp->luigiVars.SpecialLw.isUnkColl = false;
} }
ftLuigi_SpecialLw_UnkAngle(fighter_gobj); ftLuigi_SpecialLw_UnkAngle(fighter_gobj);
} }

View File

@ -30,17 +30,17 @@ void ftLuigi_SpecialS_SetVars(HSD_GObj* fighter_gobj)
fp->x2200_ftcmd_var0 = 0; fp->x2200_ftcmd_var0 = 0;
if (fp->x673 < luigiAttrs->x4_LUIGI_GREENMISSILE_SMASH) { if (fp->x673 < luigiAttrs->x4_LUIGI_GREENMISSILE_SMASH) {
fp->luigiVars[0].SpecialS.chargeFrames = fp->luigiVars.SpecialS.chargeFrames =
luigiAttrs->x8_LUIGI_GREENMISSILE_CHARGE_RATE; luigiAttrs->x8_LUIGI_GREENMISSILE_CHARGE_RATE;
fp->x2070.x2072_b4 = true; fp->x2070.x2072_b4 = true;
} else { } else {
fp->luigiVars[0].SpecialS.chargeFrames = 0; fp->luigiVars.SpecialS.chargeFrames = 0;
} }
if (HSD_Randi(luigiAttrs->x44_LUIGI_GREENMISSILE_MISFIRE_CHANCE) == 0) if (HSD_Randi(luigiAttrs->x44_LUIGI_GREENMISSILE_MISFIRE_CHANCE) == 0)
fp->luigiVars[0].SpecialS.isMisfire = true; fp->luigiVars.SpecialS.isMisfire = true;
else else
fp->luigiVars[0].SpecialS.isMisfire = false; fp->luigiVars.SpecialS.isMisfire = false;
} }
// 0x80142B14 // 0x80142B14
@ -205,8 +205,8 @@ void ftLuigi_SpecialSHold_Anim(HSD_GObj* fighter_gobj)
func_8007DB24(fighter_gobj); func_8007DB24(fighter_gobj);
fp->cb.x21BC_callback_Accessory4 = ftLuigi_SpecialS_SetGFX; fp->cb.x21BC_callback_Accessory4 = ftLuigi_SpecialS_SetGFX;
} }
fp->luigiVars[0].SpecialS.chargeFrames++; fp->luigiVars.SpecialS.chargeFrames++;
if (fp->luigiVars[0].SpecialS.chargeFrames > if (fp->luigiVars.SpecialS.chargeFrames >
luigiAttrs->xC_LUIGI_GREENMISSILE_MAX_CHARGE_FRAMES) luigiAttrs->xC_LUIGI_GREENMISSILE_MAX_CHARGE_FRAMES)
{ {
ftLuigi_SpecialSLaunch_Action(fighter_gobj); ftLuigi_SpecialSLaunch_Action(fighter_gobj);
@ -227,8 +227,8 @@ void ftLuigi_SpecialAirSHold_Anim(HSD_GObj* fighter_gobj)
func_8007DB24(fighter_gobj); func_8007DB24(fighter_gobj);
fp->cb.x21BC_callback_Accessory4 = ftLuigi_SpecialS_SetGFX; fp->cb.x21BC_callback_Accessory4 = ftLuigi_SpecialS_SetGFX;
} }
fp->luigiVars[0].SpecialS.chargeFrames++; fp->luigiVars.SpecialS.chargeFrames++;
if (fp->luigiVars[0].SpecialS.chargeFrames > if (fp->luigiVars.SpecialS.chargeFrames >
luigiAttrs->xC_LUIGI_GREENMISSILE_MAX_CHARGE_FRAMES) luigiAttrs->xC_LUIGI_GREENMISSILE_MAX_CHARGE_FRAMES)
{ {
ftLuigi_SpecialAirSLaunch_Action(fighter_gobj); ftLuigi_SpecialAirSLaunch_Action(fighter_gobj);
@ -346,11 +346,11 @@ void ftLuigi_SpecialSLaunch_Anim(HSD_GObj* fighter_gobj)
Fighter* fp = GET_FIGHTER(fighter_gobj); Fighter* fp = GET_FIGHTER(fighter_gobj);
ftLuigiAttributes* luigiAttrs = getFtSpecialAttrs(fp); ftLuigiAttributes* luigiAttrs = getFtSpecialAttrs(fp);
if (!fp->luigiVars[0].SpecialS.isMisfire && if (!fp->luigiVars.SpecialS.isMisfire &&
fp->x914[0].state == HitCapsule_Enabled) fp->x914[0].state == HitCapsule_Enabled)
{ {
func_8007ABD0(&fp->x914[0], func_8007ABD0(&fp->x914[0],
fp->luigiVars[0].SpecialS.chargeFrames * fp->luigiVars.SpecialS.chargeFrames *
luigiAttrs->x14_LUIGI_GREENMISSILE_DAMAGE_SLOPE + luigiAttrs->x14_LUIGI_GREENMISSILE_DAMAGE_SLOPE +
luigiAttrs->x10_LUIGI_GREENMISSILE_DAMAGE_TILT, luigiAttrs->x10_LUIGI_GREENMISSILE_DAMAGE_TILT,
fighter_gobj); fighter_gobj);
@ -370,11 +370,11 @@ void ftLuigi_SpecialAirSLaunch_Anim(HSD_GObj* fighter_gobj)
Fighter* fp = GET_FIGHTER(fighter_gobj); Fighter* fp = GET_FIGHTER(fighter_gobj);
ftLuigiAttributes* luigiAttrs = getFtSpecialAttrs(fp); ftLuigiAttributes* luigiAttrs = getFtSpecialAttrs(fp);
if (!fp->luigiVars[0].SpecialS.isMisfire && if (!fp->luigiVars.SpecialS.isMisfire &&
fp->x914[0].state == HitCapsule_Enabled) fp->x914[0].state == HitCapsule_Enabled)
{ {
func_8007ABD0(&fp->x914[0], func_8007ABD0(&fp->x914[0],
fp->luigiVars[0].SpecialS.chargeFrames * fp->luigiVars.SpecialS.chargeFrames *
luigiAttrs->x14_LUIGI_GREENMISSILE_DAMAGE_SLOPE + luigiAttrs->x14_LUIGI_GREENMISSILE_DAMAGE_SLOPE +
luigiAttrs->x10_LUIGI_GREENMISSILE_DAMAGE_TILT, luigiAttrs->x10_LUIGI_GREENMISSILE_DAMAGE_TILT,
fighter_gobj); fighter_gobj);
@ -475,7 +475,7 @@ void ftLuigi_SpecialSLaunch_Action(HSD_GObj* fighter_gobj)
HSD_GObjEvent exited_hitlag; HSD_GObjEvent exited_hitlag;
s32 stateVar; s32 stateVar;
if (fp->luigiVars[0].SpecialS.isMisfire) { if (fp->luigiVars.SpecialS.isMisfire) {
ftLuigi_SpecialSMisfire_Action(fighter_gobj); ftLuigi_SpecialSMisfire_Action(fighter_gobj);
return; return;
} }
@ -493,7 +493,7 @@ void ftLuigi_SpecialAirSLaunch_Action(HSD_GObj* fighter_gobj)
Fighter* fp = GET_FIGHTER(fighter_gobj); Fighter* fp = GET_FIGHTER(fighter_gobj);
s32 stateVar; s32 stateVar;
if (fp->luigiVars[0].SpecialS.isMisfire) { if (fp->luigiVars.SpecialS.isMisfire) {
ftLuigi_SpecialAirSMisfire_Action(fighter_gobj); ftLuigi_SpecialAirSMisfire_Action(fighter_gobj);
return; return;
} }
@ -512,11 +512,11 @@ void ftLuigi_SpecialSMisfire_Anim(HSD_GObj* fighter_gobj)
ftLuigiAttributes* luigiAttrs = getFtSpecialAttrs(fp); ftLuigiAttributes* luigiAttrs = getFtSpecialAttrs(fp);
s32 stateVar; s32 stateVar;
if (!fp->luigiVars[0].SpecialS.isMisfire && if (!fp->luigiVars.SpecialS.isMisfire &&
fp->x914[0].state == HitCapsule_Enabled) fp->x914[0].state == HitCapsule_Enabled)
{ {
func_8007ABD0(&fp->x914[0], func_8007ABD0(&fp->x914[0],
fp->luigiVars[0].SpecialS.chargeFrames * fp->luigiVars.SpecialS.chargeFrames *
luigiAttrs->x14_LUIGI_GREENMISSILE_DAMAGE_SLOPE + luigiAttrs->x14_LUIGI_GREENMISSILE_DAMAGE_SLOPE +
luigiAttrs->x10_LUIGI_GREENMISSILE_DAMAGE_TILT, luigiAttrs->x10_LUIGI_GREENMISSILE_DAMAGE_TILT,
fighter_gobj); fighter_gobj);
@ -536,11 +536,11 @@ void ftLuigi_SpecialAirSMisfire_Anim(HSD_GObj* fighter_gobj)
ftLuigiAttributes* luigiAttrs = getFtSpecialAttrs(fp); ftLuigiAttributes* luigiAttrs = getFtSpecialAttrs(fp);
s32 stateVar; s32 stateVar;
if (!fp->luigiVars[0].SpecialS.isMisfire && if (!fp->luigiVars.SpecialS.isMisfire &&
fp->x914[0].state == HitCapsule_Enabled) fp->x914[0].state == HitCapsule_Enabled)
{ {
func_8007ABD0(&fp->x914[0], func_8007ABD0(&fp->x914[0],
fp->luigiVars[0].SpecialS.chargeFrames * fp->luigiVars.SpecialS.chargeFrames *
luigiAttrs->x14_LUIGI_GREENMISSILE_DAMAGE_SLOPE + luigiAttrs->x14_LUIGI_GREENMISSILE_DAMAGE_SLOPE +
luigiAttrs->x10_LUIGI_GREENMISSILE_DAMAGE_TILT, luigiAttrs->x10_LUIGI_GREENMISSILE_DAMAGE_TILT,
fighter_gobj); fighter_gobj);
@ -731,21 +731,21 @@ void ftLuigi_SpecialSFly_Action(HSD_GObj* fighter_gobj)
fp = getFighter(fighter_gobj); fp = getFighter(fighter_gobj);
luigiAttrs = getFtSpecialAttrs(fp); luigiAttrs = getFtSpecialAttrs(fp);
fp->x2200_ftcmd_var0 = 0; fp->x2200_ftcmd_var0 = 0;
if (fp->luigiVars[0].SpecialS.isMisfire) { if (fp->luigiVars.SpecialS.isMisfire) {
fp->x80_self_vel.x = luigiAttrs->x48_LUIGI_GREENMISSILE_MISFIRE_VEL_X; fp->x80_self_vel.x = luigiAttrs->x48_LUIGI_GREENMISSILE_MISFIRE_VEL_X;
} else { } else {
fp->x80_self_vel.x = luigiAttrs->x28_LUIGI_GREENMISSILE_MUL_X * fp->x80_self_vel.x = luigiAttrs->x28_LUIGI_GREENMISSILE_MUL_X *
fp->luigiVars[0].SpecialS.chargeFrames + fp->luigiVars.SpecialS.chargeFrames +
luigiAttrs->x24_LUIGI_GREENMISSILE_VEL_X; luigiAttrs->x24_LUIGI_GREENMISSILE_VEL_X;
} }
fp->x80_self_vel.x *= fp->facing_dir; fp->x80_self_vel.x *= fp->facing_dir;
if (fp->luigiVars[0].SpecialS.isMisfire) { if (fp->luigiVars.SpecialS.isMisfire) {
fp->x80_self_vel.y = luigiAttrs->x4C_LUIGI_GREENMISSILE_MISFIRE_VEL_Y; fp->x80_self_vel.y = luigiAttrs->x4C_LUIGI_GREENMISSILE_MISFIRE_VEL_Y;
} else { } else {
temp_vel = luigiAttrs->x2C_LUIGI_GREENMISSILE_VEL_Y; temp_vel = luigiAttrs->x2C_LUIGI_GREENMISSILE_VEL_Y;
fp->x80_self_vel.y = fp->x80_self_vel.y =
0.5f * temp_vel + 0.5f * temp_vel +
temp_vel * (0.5f * fp->luigiVars[0].SpecialS.chargeFrames / temp_vel * (0.5f * fp->luigiVars.SpecialS.chargeFrames /
luigiAttrs->xC_LUIGI_GREENMISSILE_MAX_CHARGE_FRAMES); luigiAttrs->xC_LUIGI_GREENMISSILE_MAX_CHARGE_FRAMES);
} }
Fighter_ActionStateChange_800693AC(fighter_gobj, AS_LUIGI_SPECIALAIRS_FLY, Fighter_ActionStateChange_800693AC(fighter_gobj, AS_LUIGI_SPECIALAIRS_FLY,

View File

@ -48,9 +48,9 @@ void _ftMario_800E207C_800E2194_helper(HSD_GObj* gobj)
sa = (ftMarioAttributes*) fp->x2D4_specialAttributes; sa = (ftMarioAttributes*) fp->x2D4_specialAttributes;
fp->x2200_ftcmd_var0 = 0; fp->x2200_ftcmd_var0 = 0;
fp->x2204_ftcmd_var1 = 0; fp->x2204_ftcmd_var1 = 0;
fp->marioVars[0].SpecialLw.groundVelX = (f32) 0.0f; fp->marioVars.SpecialLw.groundVelX = (f32) 0.0f;
fp->marioVars[0].SpecialLw.unk = (s32) (sa->x50_MARIO_TORNADO_UNK + 1); fp->marioVars.SpecialLw.unk = (s32) (sa->x50_MARIO_TORNADO_UNK + 1);
fp->marioVars[0].SpecialLw.isUnkColl = 0; fp->marioVars.SpecialLw.isUnkColl = 0;
ftMario_SpecialLw_SetCall(gobj); ftMario_SpecialLw_SetCall(gobj);
ftMario_SpecialLw_SetGFX(gobj); ftMario_SpecialLw_SetGFX(gobj);
} }
@ -201,10 +201,10 @@ void ftMario_SpecialLw_Phys(HSD_GObj* gobj)
flt_var = sa->x3C_MARIO_TORNADO_MOMENTUM_X_GROUND; flt_var = sa->x3C_MARIO_TORNADO_MOMENTUM_X_GROUND;
if ((u32) fp->x2200_ftcmd_var0 != 0U) { if ((u32) fp->x2200_ftcmd_var0 != 0U) {
fp->marioVars[0].SpecialLw.groundVelX = fp->marioVars.SpecialLw.groundVelX =
(f32) (fp->marioVars[0].SpecialLw.groundVelX - (f32) (fp->marioVars.SpecialLw.groundVelX -
sa->x4C_MARIO_TORNADO_FRICTION_END); sa->x4C_MARIO_TORNADO_FRICTION_END);
flt_var += fp->marioVars[0].SpecialLw.groundVelX; flt_var += fp->marioVars.SpecialLw.groundVelX;
if (flt_var < 0.0f) { if (flt_var < 0.0f) {
flt_var = 0.0f; flt_var = 0.0f;
} }
@ -248,10 +248,10 @@ void ftMario_SpecialAirLw_Phys(HSD_GObj* gobj)
flt_var = sa->x40_MARIO_TORNADO_MOMENTUM_X_AIR; flt_var = sa->x40_MARIO_TORNADO_MOMENTUM_X_AIR;
sa_2 = fp->x2D4_specialAttributes; sa_2 = fp->x2D4_specialAttributes;
if ((u32) fp->x2200_ftcmd_var0 != 0U) { if ((u32) fp->x2200_ftcmd_var0 != 0U) {
fp->marioVars[0].SpecialLw.groundVelX = fp->marioVars.SpecialLw.groundVelX =
(f32) (fp->marioVars[0].SpecialLw.groundVelX - (f32) (fp->marioVars.SpecialLw.groundVelX -
sa_2->x4C_MARIO_TORNADO_FRICTION_END); sa_2->x4C_MARIO_TORNADO_FRICTION_END);
flt_var += fp->marioVars[0].SpecialLw.groundVelX; flt_var += fp->marioVars.SpecialLw.groundVelX;
if (flt_var < 0.0f) { if (flt_var < 0.0f) {
flt_var = 0.0f; flt_var = 0.0f;
} }
@ -265,7 +265,7 @@ void _ftMario_800E25C4_800E2778_helper(HSD_GObj* gobj)
ftMarioAttributes* sa = GetMarioAttr(fp); ftMarioAttributes* sa = GetMarioAttr(fp);
if ((fp->x220C_ftcmd_var3 != 0U) && if ((fp->x220C_ftcmd_var3 != 0U) &&
((s32) (fp->marioVars[0].SpecialLw.isUnkColl) != 0)) ((s32) (fp->marioVars.SpecialLw.isUnkColl) != 0))
{ {
func_8007592C(fp, 0, func_8007592C(fp, 0,
fp->facing_dir * fp->facing_dir *
@ -289,16 +289,16 @@ void ftMario_SpecialLw_Coll(HSD_GObj* gobj)
if (fp->xE0_ground_or_air == GA_Ground) { if (fp->xE0_ground_or_air == GA_Ground) {
if (func_80082888(gobj, &ftMario_SpecialLw_CollisionBox) == false) { if (func_80082888(gobj, &ftMario_SpecialLw_CollisionBox) == false) {
_ftMario_800E23E4_800E25C4_helper_0(gobj); _ftMario_800E23E4_800E25C4_helper_0(gobj);
fp->marioVars[0].SpecialLw.isUnkColl = false; fp->marioVars.SpecialLw.isUnkColl = false;
} else { } else {
fp->marioVars[0].SpecialLw.isUnkColl = true; fp->marioVars.SpecialLw.isUnkColl = true;
} }
} else { } else {
if (func_800824A0(gobj, &ftMario_SpecialLw_CollisionBox) == false) { if (func_800824A0(gobj, &ftMario_SpecialLw_CollisionBox) == false) {
_ftMario_800E23E4_800E25C4_helper_0(gobj); _ftMario_800E23E4_800E25C4_helper_0(gobj);
fp->marioVars[0].SpecialLw.isUnkColl = false; fp->marioVars.SpecialLw.isUnkColl = false;
} else { } else {
fp->marioVars[0].SpecialLw.isUnkColl = true; fp->marioVars.SpecialLw.isUnkColl = true;
} }
} }
@ -331,9 +331,9 @@ void ftMario_SpecialAirLw_Coll(HSD_GObj* gobj)
Fighter* fp = gobj->user_data; Fighter* fp = gobj->user_data;
if (func_800824A0(gobj, &ftMario_SpecialLw_CollisionBox) != 0) { if (func_800824A0(gobj, &ftMario_SpecialLw_CollisionBox) != 0) {
_ftMario_800E2778_helper(gobj); _ftMario_800E2778_helper(gobj);
fp->marioVars[0].SpecialLw.isUnkColl = 1; fp->marioVars.SpecialLw.isUnkColl = 1;
} else { } else {
fp->marioVars[0].SpecialLw.isUnkColl = 0; fp->marioVars.SpecialLw.isUnkColl = 0;
} }
_ftMario_800E25C4_800E2778_helper(gobj); _ftMario_800E25C4_800E2778_helper(gobj);

View File

@ -108,7 +108,7 @@ void ftMario_SpecialS_ChangeAction(HSD_GObj* gobj, s32 new_action_state_index)
fp->x2208_ftcmd_var2 = 0; fp->x2208_ftcmd_var2 = 0;
fp->x2204_ftcmd_var1 = 0; fp->x2204_ftcmd_var1 = 0;
fp->x2200_ftcmd_var0 = 0; fp->x2200_ftcmd_var0 = 0;
fp->marioVars[0].SpecialS.isReflect = false; fp->marioVars.SpecialS.isReflect = false;
fp->cb.x21BC_callback_Accessory4 = ftMario_SpecialS_CreateCape; fp->cb.x21BC_callback_Accessory4 = ftMario_SpecialS_CreateCape;
} }
@ -165,14 +165,14 @@ void ftMario_SpecialS_ReflectThink(HSD_GObj* gobj)
ftMarioAttributes* sa_tmp = fp->x2D4_specialAttributes; ftMarioAttributes* sa_tmp = fp->x2D4_specialAttributes;
if ((fp->x2204_ftcmd_var1 == 1U) && if ((fp->x2204_ftcmd_var1 == 1U) &&
((s32) fp->marioVars[0].SpecialS.isReflect == false)) ((s32) fp->marioVars.SpecialS.isReflect == false))
{ {
fp->marioVars[0].SpecialS.isReflect = true; fp->marioVars.SpecialS.isReflect = true;
ftColl_CreateReflectHit(gobj, &sa_tmp->x60_MARIO_CAPE_REFLECTION, NULL); ftColl_CreateReflectHit(gobj, &sa_tmp->x60_MARIO_CAPE_REFLECTION, NULL);
} else if ((fp->x2204_ftcmd_var1 == 0U) && } else if ((fp->x2204_ftcmd_var1 == 0U) &&
((s32) fp->marioVars[0].SpecialS.isReflect == true)) ((s32) fp->marioVars.SpecialS.isReflect == true))
{ {
fp->marioVars[0].SpecialS.isReflect = false; fp->marioVars.SpecialS.isReflect = false;
fp->x2218_flag.bits.b3 = 0; fp->x2218_flag.bits.b3 = 0;
} }
@ -263,7 +263,7 @@ void ftMario_SpecialAirS_Coll(HSD_GObj* gobj)
void ftMario_SpecialS_UpdateVarsColl(HSD_GObj* gobj) void ftMario_SpecialS_UpdateVarsColl(HSD_GObj* gobj)
{ {
Fighter* fp = GET_FIGHTER(gobj); Fighter* fp = GET_FIGHTER(gobj);
if ((s32) fp->marioVars[0].SpecialS.isReflect != false) { if ((s32) fp->marioVars.SpecialS.isReflect != false) {
fp->x2218_flag.bits.b3 = 1; fp->x2218_flag.bits.b3 = 1;
} }
ftMario_SpecialS_SetCall(fp); ftMario_SpecialS_SetCall(fp);

View File

@ -177,15 +177,15 @@ void ftMasterhand_OnLoad(HSD_GObj* gobj)
fp->xB0_pos.x = ftData_attr->x30_pos2.x; fp->xB0_pos.x = ftData_attr->x30_pos2.x;
fp->xB0_pos.y = ftData_attr->x30_pos2.y; fp->xB0_pos.y = ftData_attr->x30_pos2.y;
fp->xB0_pos.z = 0.0f; fp->xB0_pos.z = 0.0f;
fp->x2374 = 0; fp->masterhandVars.x2374 = 0;
fp->x2378 = 0; fp->masterhandVars.x2378 = 0;
fp->x237C = 0; fp->masterhandVars.x237C = 0;
fp->x2380 = 0; fp->x2380 = 0;
fp->x2368 = -1; fp->masterhandVars.x2368 = -1;
fp->x236C = -1; fp->masterhandVars.x236C = -1;
fp->x2370 = -1; fp->masterhandVars.x2370 = -1;
fp->x235C = 0.0f; fp->masterhandVars.x235C = 0.0f;
fp->x2360 = 0; fp->masterhandVars.x2360 = 0;
fp->sa.masterhand.x222C = func_8015C244(gobj, &fp->xB0_pos); fp->sa.masterhand.x222C = func_8015C244(gobj, &fp->xB0_pos);
fp->sa.masterhand.x2238 = 1.0f; fp->sa.masterhand.x2238 = 1.0f;
fp->sa.masterhand.x224C = 0; fp->sa.masterhand.x224C = 0;

View File

@ -90,8 +90,8 @@ void func_80150DC4(HSD_GObj* gobj, void* arg1_stateVar2, Vec3* arg2_pos)
} }
r32_fp->sa.masterhand.x2258 = 0x185; r32_fp->sa.masterhand.x2258 = 0x185;
} }
r32_fp->x2344_callback = arg1_stateVar2; r32_fp->masterhandVars.x2344_callback = arg1_stateVar2;
r32_fp->x234C_pos = *arg2_pos; r32_fp->masterhandVars.x234C_pos = *arg2_pos;
} }
// 80150F00 0014DAE0 // 80150F00 0014DAE0
@ -124,8 +124,9 @@ void lbl_80150F68(HSD_GObj* gobj)
r30_ft_attributes = r4_ftdata->ext_attr; r30_ft_attributes = r4_ftdata->ext_attr;
func_80085134(gobj); func_80085134(gobj);
func_8015BE40(gobj, &r31_fp->x234C_pos, &r31_fp->x2358_stateVar7, func_8015BE40(gobj, &r31_fp->masterhandVars.x234C_pos,
r30_ft_attributes->x2C, r30_ft_attributes->x28); &r31_fp->masterhandVars.x2358, r30_ft_attributes->x2C,
r30_ft_attributes->x28);
} }
// 80150FC8 0014DBA8 // 80150FC8 0014DBA8
@ -135,7 +136,7 @@ void lbl_80150FC8(HSD_GObj* gobj)
Fighter* r4_fp; Fighter* r4_fp;
r4_fp = gobj->user_data; r4_fp = gobj->user_data;
if (0.0f == r4_fp->x2358_stateVar7) { if (0.0f == r4_fp->masterhandVars.x2358) {
r4_fp->x80_self_vel.z = 0.0f; r4_fp->x80_self_vel.z = 0.0f;
r4_fp->x80_self_vel.y = 0.0f; r4_fp->x80_self_vel.y = 0.0f;
r4_fp->x80_self_vel.x = 0.0f; r4_fp->x80_self_vel.x = 0.0f;
@ -158,7 +159,7 @@ void func_80151018(HSD_GObj* gobj)
r6_fp = gobj->user_data; r6_fp = gobj->user_data;
r5_attributes = r6_fp->x10C_ftData->ext_attr; r5_attributes = r6_fp->x10C_ftData->ext_attr;
r6_fp->x2360 = 0; r6_fp->masterhandVars.x2360 = 0;
sp1C_pos.x = r5_attributes->x30_pos2.x; sp1C_pos.x = r5_attributes->x30_pos2.x;
sp1C_pos.y = r5_attributes->x30_pos2.y; sp1C_pos.y = r5_attributes->x30_pos2.y;
sp1C_pos.z = 0.0f; sp1C_pos.z = 0.0f;
@ -169,6 +170,6 @@ void func_80151018(HSD_GObj* gobj)
} else { } else {
func_80150C8C(gobj); func_80150C8C(gobj);
} }
r31_fp->x2344_callback = lbl_8014FFDC; r31_fp->masterhandVars.x2344_callback = lbl_8014FFDC;
r31_fp->x234C_pos = sp1C_pos; r31_fp->masterhandVars.x234C_pos = sp1C_pos;
} }

View File

@ -117,33 +117,33 @@ static void lbl_801511FC(HSD_GObj* gobj)
break; break;
case 4: case 4:
func_8002F274(); func_8002F274();
fp->x2348_stateVar3 = 0x78; fp->masterhandVars.x2348 = 0x78;
fp->x2340_stateVar1 = 5; fp->x2340_stateVar1 = 5;
break; break;
case 5: case 5:
if (--fp->x2348_stateVar3 == 0) { if (--fp->masterhandVars.x2348 == 0) {
func_8002EC7C(-0.3490658402442932f); func_8002EC7C(-0.3490658402442932f);
func_8002EF14(); func_8002EF14();
func_8002ED9C(120.0f); func_8002ED9C(120.0f);
fp->x2348_stateVar3 = 0x1E; fp->masterhandVars.x2348 = 0x1E;
fp->x2340_stateVar1 = 6; fp->x2340_stateVar1 = 6;
} }
break; break;
case 6: case 6:
if (--fp->x2348_stateVar3 == 0) { if (--fp->masterhandVars.x2348 == 0) {
func_8002EC7C(0.3490658402442932f); func_8002EC7C(0.3490658402442932f);
func_8002EF14(); func_8002EF14();
fp->x2348_stateVar3 = 0x1E; fp->masterhandVars.x2348 = 0x1E;
fp->x2340_stateVar1 = 7; fp->x2340_stateVar1 = 7;
} }
break; break;
case 7: case 7:
if (--fp->x2348_stateVar3 == 0) { if (--fp->masterhandVars.x2348 == 0) {
func_8002ED9C(180.0f); func_8002ED9C(180.0f);
func_8002EC7C(-1.5707963705062866f); func_8002EC7C(-1.5707963705062866f);
func_8002EB5C(-0.3490658402442932f); func_8002EB5C(-0.3490658402442932f);
func_8002EF14(); func_8002EF14();
fp->x2348_stateVar3 = 0x32; fp->masterhandVars.x2348 = 0x32;
fp->x2340_stateVar1 = 8; fp->x2340_stateVar1 = 8;
} }
break; break;
@ -152,7 +152,7 @@ static void lbl_801511FC(HSD_GObj* gobj)
fp->x2340_stateVar1 = 9; fp->x2340_stateVar1 = 9;
break; break;
case 9: case 9:
if (--fp->x2348_stateVar3 == 0) { if (--fp->masterhandVars.x2348 == 0) {
func_8002F474(); func_8002F474();
fp->x2340_stateVar1 = 10; fp->x2340_stateVar1 = 10;
} }

View File

@ -34,23 +34,23 @@ inline void func_80151484_inline1(HSD_GObj* gobj)
r29_fp->x80_self_vel.z = 0.0f; r29_fp->x80_self_vel.z = 0.0f;
r29_fp->x80_self_vel.y = 0.0f; r29_fp->x80_self_vel.y = 0.0f;
r29_fp->x80_self_vel.x = 0.0f; r29_fp->x80_self_vel.x = 0.0f;
func_802F046C(r29_fp->x2374); func_802F046C(r29_fp->masterhandVars.x2374);
func_802F046C(r29_fp->x2378); func_802F046C(r29_fp->masterhandVars.x2378);
func_802F046C(r29_fp->x237C); func_802F046C(r29_fp->masterhandVars.x237C);
func_802F046C(r29_fp->x2380); func_802F046C(r29_fp->x2380);
r29_fp->x2374 = 0; r29_fp->masterhandVars.x2374 = 0;
r29_fp->x2378 = 0; r29_fp->masterhandVars.x2378 = 0;
r29_fp->x237C = 0; r29_fp->masterhandVars.x237C = 0;
r29_fp->x2380 = 0; r29_fp->x2380 = 0;
func_800236B8(r29_fp->x2368); func_800236B8(r29_fp->masterhandVars.x2368);
func_800236B8(r29_fp->x236C); func_800236B8(r29_fp->masterhandVars.x236C);
func_800236B8(r29_fp->x2370); func_800236B8(r29_fp->masterhandVars.x2370);
if (r29_fp->x2360) { if (r29_fp->masterhandVars.x2360) {
func_80155D1C(r29_fp->x1A58_interactedFighter); func_80155D1C(r29_fp->x1A58_interactedFighter);
} }
r29_fp->x80_self_vel.y = temp_r30->x14C; r29_fp->x80_self_vel.y = temp_r30->x14C;
r29_fp->x80_self_vel.z = temp_r30->x154; r29_fp->x80_self_vel.z = temp_r30->x154;
r29_fp->x2348_stateVar3 = (s32) temp_r30->x15C; r29_fp->masterhandVars.x2348 = temp_r30->x15C;
} }
void func_80151484(HSD_GObj* gobj) void func_80151484(HSD_GObj* gobj)
@ -100,14 +100,14 @@ void lbl_801515B8(HSD_GObj* gobj)
r31_fp->x2200_ftcmd_var0 = 0U; r31_fp->x2200_ftcmd_var0 = 0U;
} }
// x2348_stateVar3 does that make sense if its u32? // masterhandVars.x2348 does that make sense if its u32?
if ((s32) r31_fp->x2348_stateVar3 > 0 && !ftAnim_IsFramesRemaining(gobj)) { if (r31_fp->masterhandVars.x2348 > 0 && !ftAnim_IsFramesRemaining(gobj)) {
Fighter_ActionStateChange_800693AC(gobj, 0x159, 0, 0, 0.0f, 1.0f, 0.0f); Fighter_ActionStateChange_800693AC(gobj, 0x159, 0, 0, 0.0f, 1.0f, 0.0f);
func_8006EBA4(gobj); func_8006EBA4(gobj);
} }
temp_r0 = r31_fp->x2348_stateVar3 - 1; temp_r0 = r31_fp->masterhandVars.x2348 - 1;
r31_fp->x2348_stateVar3 = temp_r0; r31_fp->masterhandVars.x2348 = temp_r0;
if (temp_r0) { if (temp_r0) {
return; return;
} }
@ -131,27 +131,26 @@ void lbl_801516B4(HSD_GObj* gobj)
r4_attributes = r31_fp->x10C_ftData->ext_attr; r4_attributes = r31_fp->x10C_ftData->ext_attr;
temp_r3 = r31_fp->x23B4 + 1; temp_r3 = r31_fp->x23B4 + 1;
r31_fp->x23B4 = temp_r3; r31_fp->x23B4 = temp_r3;
if (temp_r3 <= (s32) r4_attributes->x144) { if (temp_r3 <= r4_attributes->x144) {
func_8002438C(0x81652); func_8002438C(0x81652);
} else { } else {
temp_r3_2 = r31_fp->x23B8 + 1; temp_r3_2 = r31_fp->x23B8 + 1;
r31_fp->x23B8 = temp_r3_2; r31_fp->x23B8 = temp_r3_2;
if (temp_r3_2 <= (s32) r4_attributes->x148) { if (temp_r3_2 <= r4_attributes->x148) {
func_8002438C(0x81653); func_8002438C(0x81653);
} }
} }
r31_fp->x2200_ftcmd_var0 = 0U; r31_fp->x2200_ftcmd_var0 = 0U;
} }
if (((s32) r31_fp->x2348_stateVar3 > 0) && !ftAnim_IsFramesRemaining(gobj)) if (r31_fp->masterhandVars.x2348 > 0 && !ftAnim_IsFramesRemaining(gobj)) {
{
temp_f1 = 0.0f; temp_f1 = 0.0f;
Fighter_ActionStateChange_800693AC(gobj, 0x159, 0, 0, temp_f1, 1.0f, Fighter_ActionStateChange_800693AC(gobj, 0x159, 0, 0, temp_f1, 1.0f,
temp_f1); temp_f1);
func_8006EBA4(gobj); func_8006EBA4(gobj);
} }
temp_r0 = r31_fp->x2348_stateVar3 - 1; temp_r0 = r31_fp->masterhandVars.x2348 - 1;
// temp_cr0_eq = ; // temp_cr0_eq = ;
r31_fp->x2348_stateVar3 = temp_r0; r31_fp->masterhandVars.x2348 = temp_r0;
if (temp_r0 == 0) { if (temp_r0 == 0) {
func_800D4F24(gobj, 0); func_800D4F24(gobj, 0);
} }

View File

@ -73,9 +73,9 @@ void func_80151918(HSD_GObj* gobj)
r8_fp = gobj->user_data; r8_fp = gobj->user_data;
r7_attributes = r8_fp->x10C_ftData->ext_attr; r7_attributes = r8_fp->x10C_ftData->ext_attr;
r8_fp->x234C_pos.x = (r8_fp->xB0_pos.x - r7_attributes->x3C); r8_fp->masterhandVars.x234C_pos.x = (r8_fp->xB0_pos.x - r7_attributes->x3C);
r8_fp->x234C_pos.y = r7_attributes->x38; r8_fp->masterhandVars.x234C_pos.y = r7_attributes->x38;
r8_fp->x234C_pos.z = 0.0f; r8_fp->masterhandVars.x234C_pos.z = 0.0f;
Fighter_ActionStateChange_800693AC(gobj, 0x15B, 0, 0, 0.0f, 1.0f, 0.0f); Fighter_ActionStateChange_800693AC(gobj, 0x15B, 0, 0, 0.0f, 1.0f, 0.0f);
func_8006EBA4(gobj); func_8006EBA4(gobj);
@ -100,9 +100,9 @@ void lbl_8015198C(HSD_GObj* gobj)
} }
temp_r8 = gobj->user_data; temp_r8 = gobj->user_data;
temp_r7 = temp_r8->x10C_ftData->ext_attr; temp_r7 = temp_r8->x10C_ftData->ext_attr;
temp_r8->x234C_pos.x = temp_r8->xB0_pos.x - temp_r7->x3C; temp_r8->masterhandVars.x234C_pos.x = temp_r8->xB0_pos.x - temp_r7->x3C;
temp_r8->x234C_pos.y = temp_r7->x38; temp_r8->masterhandVars.x234C_pos.y = temp_r7->x38;
temp_r8->x234C_pos.z = 0.0f; temp_r8->masterhandVars.x234C_pos.z = 0.0f;
Fighter_ActionStateChange_800693AC(gobj, 0x15B, 0, 0, 0.0f, 1.0f, 0.0f); Fighter_ActionStateChange_800693AC(gobj, 0x15B, 0, 0, 0.0f, 1.0f, 0.0f);
func_8006EBA4(gobj); func_8006EBA4(gobj);
} }
@ -127,8 +127,9 @@ void lbl_80151A88(HSD_GObj* gobj)
r5_fp = gobj->user_data; r5_fp = gobj->user_data;
r6_attributes = r5_fp->x10C_ftData->ext_attr; r6_attributes = r5_fp->x10C_ftData->ext_attr;
func_8015BE40(gobj, &r5_fp->x234C_pos, &r5_fp->x2358_stateVar7, func_8015BE40(gobj, &r5_fp->masterhandVars.x234C_pos,
r6_attributes->x2C, r6_attributes->x28); &r5_fp->masterhandVars.x2358, r6_attributes->x2C,
r6_attributes->x28);
} }
void lbl_80151AC4(HSD_GObj* arg0) {} void lbl_80151AC4(HSD_GObj* arg0) {}

View File

@ -42,7 +42,7 @@ void lbl_801521DC(HSD_GObj* arg0)
temp_r31 = arg0->user_data; temp_r31 = arg0->user_data;
Fighter_ActionStateChange_800693AC(arg0, 0x162, 0, 0, 0.0f, 1.0f, 0.0f); Fighter_ActionStateChange_800693AC(arg0, 0x162, 0, 0, 0.0f, 1.0f, 0.0f);
func_8006EBA4(arg0); func_8006EBA4(arg0);
temp_r31->x2340_f32 = 107.0f; temp_r31->masterhandVars.x2340_unk = 107.0f;
} }
// 8015223C 14EE1C // 8015223C 14EE1C
@ -77,8 +77,8 @@ void lbl_801522BC(HSD_GObj* gobj)
r30_attributes = r4_ftData->ext_attr; r30_attributes = r4_ftData->ext_attr;
func_80085134(gobj); func_80085134(gobj);
if ((--r31_fp->x2340_f32 > r30_attributes->x84) || if ((--r31_fp->masterhandVars.x2340_unk > r30_attributes->x84) ||
(r31_fp->x2340_f32 < 0.0f)) (r31_fp->masterhandVars.x2340_unk < 0.0f))
{ {
r31_fp->x80_self_vel.x = 0.0f; r31_fp->x80_self_vel.x = 0.0f;
} else { } else {

View File

@ -27,7 +27,7 @@ void lbl_801523BC(HSD_GObj* gobj)
r31_fp = gobj->user_data; r31_fp = gobj->user_data;
r30_attributes = r31_fp->x10C_ftData->ext_attr; r30_attributes = r31_fp->x10C_ftData->ext_attr;
func_8015247C(gobj); func_8015247C(gobj);
r31_fp->x2348_stateVar3 = r30_attributes->xA0; r31_fp->masterhandVars.x2348 = r30_attributes->xA0;
} }
// 80152414 14EFF4 // 80152414 14EFF4
@ -69,7 +69,7 @@ void lbl_801524C8(HSD_GObj* gobj)
u32 unk[2]; u32 unk[2];
temp_r4 = gobj->user_data; temp_r4 = gobj->user_data;
if (!--temp_r4->x2348_stateVar3) { if (!--temp_r4->masterhandVars.x2348) {
func_801525E0(gobj); func_801525E0(gobj);
} }
if (!ftAnim_IsFramesRemaining(gobj)) { if (!ftAnim_IsFramesRemaining(gobj)) {

View File

@ -44,7 +44,7 @@ void lbl_801526D8(HSD_GObj* arg0)
temp_r31 = arg0->user_data; temp_r31 = arg0->user_data;
Fighter_ActionStateChange_800693AC(arg0, 0x166, 0, 0, 0.0f, 1.0f, 0.0f); Fighter_ActionStateChange_800693AC(arg0, 0x166, 0, 0, 0.0f, 1.0f, 0.0f);
func_8006EBA4(arg0); func_8006EBA4(arg0);
temp_r31->x2340_f32 = 0.0f; temp_r31->masterhandVars.x2340_unk = 0.0f;
} }
// 80152738 14F318 // 80152738 14F318
@ -79,8 +79,10 @@ void lbl_801527B8(HSD_GObj* gobj)
func_80085134(gobj); func_80085134(gobj);
tmp = ++r31_fp->x2340_f32; tmp = ++r31_fp->masterhandVars.x2340_unk;
if (tmp > r30_attributes->xB0 && r31_fp->x2340_f32 < r30_attributes->xB4) { if (tmp > r30_attributes->xB0 &&
r31_fp->masterhandVars.x2340_unk < r30_attributes->xB4)
{
func_8015C010(gobj, r30_attributes->xB8); func_8015C010(gobj, r30_attributes->xB8);
} else { } else {
r31_fp->x80_self_vel.x = 0.0f; r31_fp->x80_self_vel.x = 0.0f;

View File

@ -24,7 +24,7 @@ void func_80152880(HSD_GObj* gobj)
attr = fp->x10C_ftData->ext_attr; attr = fp->x10C_ftData->ext_attr;
Fighter_ActionStateChange_800693AC(gobj, 0x167, 0, 0, 0.0f, 1.0f, 0.0f); Fighter_ActionStateChange_800693AC(gobj, 0x167, 0, 0, 0.0f, 1.0f, 0.0f);
func_8006EBA4(gobj); func_8006EBA4(gobj);
fp->x2340_f32 = attr->x94 + HSD_Randi(attr->x90 - attr->x94); fp->masterhandVars.x2340_unk = attr->x94 + HSD_Randi(attr->x90 - attr->x94);
fp->x2344_f32 = 0.0f; fp->x2344_f32 = 0.0f;
} }
@ -40,7 +40,7 @@ void lbl_80152928(HSD_GObj* gobj)
temp_r4 = gobj->user_data; temp_r4 = gobj->user_data;
temp_r4->x2344_f32 = 1.0f; temp_r4->x2344_f32 = 1.0f;
if (--temp_r4->x2340_f32 < 0.0f) { if (--temp_r4->masterhandVars.x2340_unk < 0.0f) {
temp_r4->x2344_f32 = 0.0f; temp_r4->x2344_f32 = 0.0f;
temp_r4->x80_self_vel.x = 0.0f; temp_r4->x80_self_vel.x = 0.0f;
temp_r4->x80_self_vel.y = 0.0f; temp_r4->x80_self_vel.y = 0.0f;

View File

@ -22,9 +22,9 @@ void lbl_80152BCC(HSD_GObj* arg0)
temp_r31 = arg0->user_data; temp_r31 = arg0->user_data;
Fighter_ActionStateChange_800693AC(arg0, 0x169, 0, 0, 0.0f, 1.0f, 0.0f); Fighter_ActionStateChange_800693AC(arg0, 0x169, 0, 0, 0.0f, 1.0f, 0.0f);
func_8006EBA4(arg0); func_8006EBA4(arg0);
temp_r31->x2368 = -1; temp_r31->masterhandVars.x2368 = -1;
temp_r31->x236C = -1; temp_r31->masterhandVars.x236C = -1;
temp_r31->x2370 = -1; temp_r31->masterhandVars.x2370 = -1;
} }
// 80152C34 14F814 // 80152C34 14F814
@ -77,13 +77,13 @@ void lbl_80152D44(HSD_GObj* arg0)
if (!ftAnim_IsFramesRemaining(arg0)) { if (!ftAnim_IsFramesRemaining(arg0)) {
temp_r31 = arg0->user_data; temp_r31 = arg0->user_data;
func_80152F80(arg0); func_80152F80(arg0);
func_802F046C(temp_r31->x2374); func_802F046C(temp_r31->masterhandVars.x2374);
func_802F046C(temp_r31->x2378); func_802F046C(temp_r31->masterhandVars.x2378);
func_802F046C(temp_r31->x237C); func_802F046C(temp_r31->masterhandVars.x237C);
func_802F046C(temp_r31->x2380); func_802F046C(temp_r31->x2380);
temp_r31->x2374 = 0; temp_r31->masterhandVars.x2374 = 0;
temp_r31->x2378 = 0; temp_r31->masterhandVars.x2378 = 0;
temp_r31->x237C = 0; temp_r31->masterhandVars.x237C = 0;
temp_r31->x2380 = 0; temp_r31->x2380 = 0;
} }
} }
@ -122,20 +122,20 @@ void lbl_80152E28(HSD_GObj* gobj)
if (fp->x2200_ftcmd_var0 != 0) { if (fp->x2200_ftcmd_var0 != 0) {
func_8000B1CC(fp->x5E8_fighterBones[11].x0_jobj, 0, &sp10); func_8000B1CC(fp->x5E8_fighterBones[11].x0_jobj, 0, &sp10);
fp->x2374 = fp->masterhandVars.x2374 =
func_802F0340(gobj, &sp10, &sp10, 0xB, 0x7D, fp->facing_dir); func_802F0340(gobj, &sp10, &sp10, 0xB, 0x7D, fp->facing_dir);
func_8000B1CC(fp->x5E8_fighterBones[16].x0_jobj, 0, &sp10); func_8000B1CC(fp->x5E8_fighterBones[16].x0_jobj, 0, &sp10);
fp->x2378 = fp->masterhandVars.x2378 =
func_802F0340(gobj, &sp10, &sp10, 0x10, 0x7D, fp->facing_dir); func_802F0340(gobj, &sp10, &sp10, 0x10, 0x7D, fp->facing_dir);
func_8000B1CC(fp->x5E8_fighterBones[21].x0_jobj, 0, &sp10); func_8000B1CC(fp->x5E8_fighterBones[21].x0_jobj, 0, &sp10);
fp->x237C = fp->masterhandVars.x237C =
func_802F0340(gobj, &sp10, &sp10, 0x15, 0x7D, fp->facing_dir); func_802F0340(gobj, &sp10, &sp10, 0x15, 0x7D, fp->facing_dir);
func_8000B1CC(fp->x5E8_fighterBones[26].x0_jobj, 0, &sp10); func_8000B1CC(fp->x5E8_fighterBones[26].x0_jobj, 0, &sp10);
fp->x2380 = fp->x2380 =
func_802F0340(gobj, &sp10, &sp10, 0x1A, 0x7D, fp->facing_dir); func_802F0340(gobj, &sp10, &sp10, 0x1A, 0x7D, fp->facing_dir);
fp->x2368 = func_800237A8(0x4E204, 0x7F, 0x40); fp->masterhandVars.x2368 = func_800237A8(0x4E204, 0x7F, 0x40);
fp->x236C = func_800237A8(0x4E205, 0x7F, 0x40); fp->masterhandVars.x236C = func_800237A8(0x4E205, 0x7F, 0x40);
fp->x2370 = func_800237A8(0x4E206, 0x7F, 0x40); fp->masterhandVars.x2370 = func_800237A8(0x4E206, 0x7F, 0x40);
fp->x2200_ftcmd_var0 = 0; fp->x2200_ftcmd_var0 = 0;
} }
} }
@ -147,10 +147,10 @@ void func_80152F80(HSD_GObj* gobj)
Fighter* fp = gobj->user_data; Fighter* fp = gobj->user_data;
Fighter_ActionStateChange_800693AC(gobj, 0x16B, 0, 0, 0.0f, 1.0f, 0.0f); Fighter_ActionStateChange_800693AC(gobj, 0x16B, 0, 0, 0.0f, 1.0f, 0.0f);
func_8006EBA4(gobj); func_8006EBA4(gobj);
func_800236B8(fp->x2368); func_800236B8(fp->masterhandVars.x2368);
func_800236B8(fp->x236C); func_800236B8(fp->masterhandVars.x236C);
func_800236B8(fp->x2370); func_800236B8(fp->masterhandVars.x2370);
fp->x2368 = -1; fp->masterhandVars.x2368 = -1;
fp->x236C = -1; fp->masterhandVars.x236C = -1;
fp->x2370 = -1; fp->masterhandVars.x2370 = -1;
} }

View File

@ -44,7 +44,7 @@ void lbl_80153B90(HSD_GObj* arg0)
temp_r30 = temp_r31->x10C_ftData->ext_attr; temp_r30 = temp_r31->x10C_ftData->ext_attr;
Fighter_ActionStateChange_800693AC(arg0, 0x172, 0, 0, 0.0f, 1.0f, 0.0f); Fighter_ActionStateChange_800693AC(arg0, 0x172, 0, 0, 0.0f, 1.0f, 0.0f);
func_8006EBA4(arg0); func_8006EBA4(arg0);
temp_r31->x2340_f32 = temp_r30->x6C; temp_r31->masterhandVars.x2340_unk = temp_r30->x6C;
func_8015C208(arg0, &sp10); func_8015C208(arg0, &sp10);
temp_r31->xB0_pos.x = sp10.x; temp_r31->xB0_pos.x = sp10.x;
temp_r31->xB0_pos.y = temp_r30->x68; temp_r31->xB0_pos.y = temp_r30->x68;
@ -81,7 +81,7 @@ void lbl_80153CD4(HSD_GObj* gobj)
Fighter* r4_fp; Fighter* r4_fp;
r4_fp = gobj->user_data; r4_fp = gobj->user_data;
if (--r4_fp->x2340_f32 > 0.0f) { if (--r4_fp->masterhandVars.x2340_unk > 0.0f) {
func_8015BF74( func_8015BF74(
gobj, ((MasterHandAttributes*) r4_fp->x10C_ftData->ext_attr)->x58); gobj, ((MasterHandAttributes*) r4_fp->x10C_ftData->ext_attr)->x58);
} else { } else {

View File

@ -38,7 +38,7 @@ void lbl_80153D2C(HSD_GObj* gobj)
fp->x80_self_vel.y = 0.0f; fp->x80_self_vel.y = 0.0f;
fp->x80_self_vel.x = 0.0f; fp->x80_self_vel.x = 0.0f;
fp->x2340_f32 = attr->x74; fp->masterhandVars.x2340_unk = attr->x74;
fp->x23B0 = attr->x7C; fp->x23B0 = attr->x7C;
HSD_JObjGetScale(jobj, &scale); HSD_JObjGetScale(jobj, &scale);
@ -112,7 +112,7 @@ void lbl_80154158(HSD_GObj* gobj)
u32 unk[2]; u32 unk[2];
r3_fp = gobj->user_data; r3_fp = gobj->user_data;
if (--r3_fp->x2340_f32 > 0.0f) { if (--r3_fp->masterhandVars.x2340_unk > 0.0f) {
r4_attributes = r3_fp->x10C_ftData->ext_attr; r4_attributes = r3_fp->x10C_ftData->ext_attr;
func_8015BF74(gobj, r4_attributes->x58); func_8015BF74(gobj, r4_attributes->x58);
} else { } else {

View File

@ -18,5 +18,5 @@ void func_801541C8(HSD_GObj* gobj, void* arg1)
r31_fp = gobj->user_data; r31_fp = gobj->user_data;
Fighter_ActionStateChange_800693AC(gobj, 0x174, 0, 0, 0.0f, 1.0f, 0.0f); Fighter_ActionStateChange_800693AC(gobj, 0x174, 0, 0, 0.0f, 1.0f, 0.0f);
func_8006EBA4(gobj); func_8006EBA4(gobj);
r31_fp->x2344_callback = arg1; r31_fp->masterhandVars.x2344_callback = arg1;
} }

View File

@ -17,7 +17,7 @@ void lbl_80154230(HSD_GObj* gobj)
if (!ftAnim_IsFramesRemaining(gobj)) { if (!ftAnim_IsFramesRemaining(gobj)) {
r4_fp = gobj->user_data; r4_fp = gobj->user_data;
(r4_fp->x2344_callback)(gobj); (r4_fp->masterhandVars.x2344_callback)(gobj);
} }
} }
@ -54,7 +54,7 @@ void func_801542E0(HSD_GObj* gobj)
Fighter_ActionStateChange_800693AC( Fighter_ActionStateChange_800693AC(
gobj, 0x175, 0, 0, r31_fp->x894_currentAnimFrame, 1.0f, 0.0f); gobj, 0x175, 0, 0, r31_fp->x894_currentAnimFrame, 1.0f, 0.0f);
ftAnim_SetAnimRate(gobj, r30_attributes->x110_pos.y); ftAnim_SetAnimRate(gobj, r30_attributes->x110_pos.y);
r31_fp->x2348_stateVar3 = (s32) r30_attributes->x110_pos.x; r31_fp->masterhandVars.x2348 = (s32) r30_attributes->x110_pos.x;
} }
// 80154360 150F40 // 80154360 150F40
@ -67,9 +67,9 @@ void lbl_80154360(HSD_GObj* gobj)
u32 temp_r0; u32 temp_r0;
temp_r4 = gobj->user_data; temp_r4 = gobj->user_data;
temp_r0 = temp_r4->x2348_stateVar3 - 1; temp_r0 = temp_r4->masterhandVars.x2348 - 1;
temp_cr0_eq = temp_r0 == 0U; temp_cr0_eq = temp_r0 == 0U;
temp_r4->x2348_stateVar3 = temp_r0; temp_r4->masterhandVars.x2348 = temp_r0;
if (temp_cr0_eq) { if (temp_cr0_eq) {
ftAnim_SetAnimRate(gobj, 1.0f); ftAnim_SetAnimRate(gobj, 1.0f);
func_801545A0(gobj); func_801545A0(gobj);
@ -163,7 +163,7 @@ void func_801545A0(HSD_GObj* gobj)
Fighter_ActionStateChange_800693AC(gobj, 0x176, 0, 0, 0.0f, 1.0f, 0.0f); Fighter_ActionStateChange_800693AC(gobj, 0x176, 0, 0, 0.0f, 1.0f, 0.0f);
func_8006EBA4(gobj); func_8006EBA4(gobj);
func_8007E2D0(temp_r31, 0x80U, &lbl_80154A2C, 0U, &lbl_80155A58); func_8007E2D0(temp_r31, 0x80U, &lbl_80154A2C, 0U, &lbl_80155A58);
temp_r31->x2360 = 0; temp_r31->masterhandVars.x2360 = 0;
} }
// 80154620 151200 // 80154620 151200
@ -216,9 +216,9 @@ void func_801546D8(HSD_GObj* gobj)
temp_r30 = r31_fp->x10C_ftData->ext_attr; temp_r30 = r31_fp->x10C_ftData->ext_attr;
Fighter_ActionStateChange_800693AC(gobj, 0x17D, 0, 0, 0.0f, 1.0f, 0.0f); Fighter_ActionStateChange_800693AC(gobj, 0x17D, 0, 0, 0.0f, 1.0f, 0.0f);
func_8006EBA4(gobj); func_8006EBA4(gobj);
r31_fp->x234C_pos.x = temp_r30->x30_pos2.x; r31_fp->masterhandVars.x234C_pos.x = temp_r30->x30_pos2.x;
r31_fp->x234C_pos.y = temp_r30->x30_pos2.y; r31_fp->masterhandVars.x234C_pos.y = temp_r30->x30_pos2.y;
r31_fp->x234C_pos.z = 0.0f; r31_fp->masterhandVars.x234C_pos.z = 0.0f;
} }
// 80154758 151338 // 80154758 151338
@ -249,8 +249,9 @@ void lbl_801547D8(HSD_GObj* gobj)
r31_fp = gobj->user_data; r31_fp = gobj->user_data;
r30_attributes = r31_fp->x10C_ftData->ext_attr; r30_attributes = r31_fp->x10C_ftData->ext_attr;
func_80085134(gobj); func_80085134(gobj);
func_8015BE40(gobj, &r31_fp->x234C_pos, &r31_fp->x2358_stateVar7, func_8015BE40(gobj, &r31_fp->masterhandVars.x234C_pos,
r30_attributes->x2C, r30_attributes->x28); &r31_fp->masterhandVars.x2358, r30_attributes->x2C,
r30_attributes->x28);
} }
// 80154838 151418 // 80154838 151418
@ -270,14 +271,14 @@ void func_8015483C(HSD_GObj* gobj)
r30_attributes = r31_fp->x10C_ftData->ext_attr; r30_attributes = r31_fp->x10C_ftData->ext_attr;
Fighter_ActionStateChange_800693AC(gobj, 0x177, 0, 0, 0.0f, 1.0f, 0.0f); Fighter_ActionStateChange_800693AC(gobj, 0x177, 0, 0, 0.0f, 1.0f, 0.0f);
func_8006EBA4(gobj); func_8006EBA4(gobj);
r31_fp->x2364 = r30_attributes->x120; r31_fp->masterhandVars.x2364 = r30_attributes->x120;
r31_fp->x2200_ftcmd_var0 = 1; r31_fp->x2200_ftcmd_var0 = 1;
r31_fp->x80_self_vel.x = 0.0f; r31_fp->x80_self_vel.x = 0.0f;
r31_fp->x80_self_vel.y = 0.0f; r31_fp->x80_self_vel.y = 0.0f;
r31_fp->x80_self_vel.z = 0.0f; r31_fp->x80_self_vel.z = 0.0f;
r31_fp->x234C_pos.x = r30_attributes->x30_pos2.x; r31_fp->masterhandVars.x234C_pos.x = r30_attributes->x30_pos2.x;
r31_fp->x234C_pos.y = r30_attributes->x30_pos2.y; r31_fp->masterhandVars.x234C_pos.y = r30_attributes->x30_pos2.y;
r31_fp->x234C_pos.z = 0.0f; r31_fp->masterhandVars.x234C_pos.z = 0.0f;
} }
// 801548D8 1514B8 // 801548D8 1514B8
@ -286,9 +287,9 @@ void lbl_801548D8(HSD_GObj* gobj)
{ {
Fighter* r31_fp = gobj->user_data; Fighter* r31_fp = gobj->user_data;
if (--r31_fp->x2364 <= 0.0f && r31_fp->x2200_ftcmd_var0) { if (--r31_fp->masterhandVars.x2364 <= 0.0f && r31_fp->x2200_ftcmd_var0) {
func_80155D1C(r31_fp->x1A58_interactedFighter); func_80155D1C(r31_fp->x1A58_interactedFighter);
r31_fp->x2360 = 0; r31_fp->masterhandVars.x2360 = 0;
r31_fp->x2200_ftcmd_var0 = 0; r31_fp->x2200_ftcmd_var0 = 0;
} }
if (!ftAnim_IsFramesRemaining(gobj)) { if (!ftAnim_IsFramesRemaining(gobj)) {
@ -315,8 +316,9 @@ void lbl_801549A8(HSD_GObj* arg0)
temp_r31 = arg0->user_data; temp_r31 = arg0->user_data;
temp_r30 = temp_r31->x10C_ftData->ext_attr; temp_r30 = temp_r31->x10C_ftData->ext_attr;
func_80085134(arg0); func_80085134(arg0);
func_8015BE40(arg0, &temp_r31->x234C_pos, &temp_r31->x2358_stateVar7, func_8015BE40(arg0, &temp_r31->masterhandVars.x234C_pos,
temp_r30->x2C, temp_r30->x28); &temp_r31->masterhandVars.x2358, temp_r30->x2C,
temp_r30->x28);
} }
// 80154A08 1515E8 // 80154A08 1515E8
@ -327,7 +329,7 @@ void lbl_80154A08(HSD_GObj* arg0)
Fighter* temp_r3; Fighter* temp_r3;
temp_r3 = arg0->user_data; temp_r3 = arg0->user_data;
if (temp_r3->x2358_stateVar7 == 0.0f) { if (temp_r3->masterhandVars.x2358 == 0.0f) {
temp_r3->x80_self_vel.z = 0.0f; temp_r3->x80_self_vel.z = 0.0f;
temp_r3->x80_self_vel.y = 0.0f; temp_r3->x80_self_vel.y = 0.0f;
temp_r3->x80_self_vel.x = 0.0f; temp_r3->x80_self_vel.x = 0.0f;
@ -345,7 +347,7 @@ void lbl_80154A2C(HSD_GObj* arg0)
temp_r5->x80_self_vel.z = 0.0f; temp_r5->x80_self_vel.z = 0.0f;
temp_r5->x80_self_vel.y = 0.0f; temp_r5->x80_self_vel.y = 0.0f;
temp_r5->x80_self_vel.x = 0.0f; temp_r5->x80_self_vel.x = 0.0f;
temp_r5->x2360 = 1; temp_r5->masterhandVars.x2360 = 1;
temp_r5->x221E_flag.bits.b6 = 0; temp_r5->x221E_flag.bits.b6 = 0;
func_80154C78(arg0); func_80154C78(arg0);
} }

View File

@ -24,9 +24,9 @@ void func_80154A78(HSD_GObj* gobj)
func_8007E2F4(fp, 0x1FFU); func_8007E2F4(fp, 0x1FFU);
func_8007E2FC(gobj); func_8007E2FC(gobj);
func_80155B80(fp->x1A58_interactedFighter); func_80155B80(fp->x1A58_interactedFighter);
fp->x234C_pos.x = attr->x118_pos.x; fp->masterhandVars.x234C_pos.x = attr->x118_pos.x;
fp->x234C_pos.y = attr->x118_pos.y; fp->masterhandVars.x234C_pos.y = attr->x118_pos.y;
fp->x234C_pos.z = 0.0f; fp->masterhandVars.x234C_pos.z = 0.0f;
} }
// 80154B2C 15170C // 80154B2C 15170C
@ -69,8 +69,8 @@ void lbl_80154BF4(HSD_GObj* gobj)
fp = gobj->user_data; fp = gobj->user_data;
attr = fp->x10C_ftData->ext_attr; attr = fp->x10C_ftData->ext_attr;
func_80085134(gobj); func_80085134(gobj);
func_8015BE40(gobj, &fp->x234C_pos, &fp->x2358_stateVar7, attr->x2C, func_8015BE40(gobj, &fp->masterhandVars.x234C_pos,
attr->x28); &fp->masterhandVars.x2358, attr->x2C, attr->x28);
} }
// 80154C54 151834 // 80154C54 151834
@ -81,7 +81,7 @@ void lbl_80154C54(HSD_GObj* gobj)
Fighter* fp; Fighter* fp;
fp = gobj->user_data; fp = gobj->user_data;
if (fp->x2358_stateVar7 == 0.0f) { if (fp->masterhandVars.x2358 == 0.0f) {
fp->x80_self_vel.z = 0.0f; fp->x80_self_vel.z = 0.0f;
fp->x80_self_vel.y = 0.0f; fp->x80_self_vel.y = 0.0f;
fp->x80_self_vel.x = 0.0f; fp->x80_self_vel.x = 0.0f;

View File

@ -13,9 +13,9 @@ void func_80154C78(HSD_GObj* arg0)
temp_r30 = temp_r31->x10C_ftData->ext_attr; temp_r30 = temp_r31->x10C_ftData->ext_attr;
Fighter_ActionStateChange_800693AC(arg0, 0x178, 0, 0, 0.0f, 1.0f, 0.0f); Fighter_ActionStateChange_800693AC(arg0, 0x178, 0, 0, 0.0f, 1.0f, 0.0f);
func_8006EBA4(arg0); func_8006EBA4(arg0);
temp_r31->x234C_pos.x = temp_r30->x118_pos.x; temp_r31->masterhandVars.x234C_pos.x = temp_r30->x118_pos.x;
temp_r31->x234C_pos.y = temp_r30->x118_pos.y; temp_r31->masterhandVars.x234C_pos.y = temp_r30->x118_pos.y;
temp_r31->x234C_pos.z = 0.0f; temp_r31->masterhandVars.x234C_pos.z = 0.0f;
} }
// 80154CF8 1518D8 // 80154CF8 1518D8
@ -29,7 +29,7 @@ void func_80154CF8(HSD_GObj* gobj, Fighter* fp)
temp_r30 = temp_r31->x10C_ftData->ext_attr; temp_r30 = temp_r31->x10C_ftData->ext_attr;
Fighter_ActionStateChange_800693AC(gobj, 0x179, 0, 0, 0.0f, 1.0f, 0.0f); Fighter_ActionStateChange_800693AC(gobj, 0x179, 0, 0, 0.0f, 1.0f, 0.0f);
func_8006EBA4(gobj); func_8006EBA4(gobj);
temp_r31->x234C_pos.x = temp_r30->x30_pos2.x; temp_r31->masterhandVars.x234C_pos.x = temp_r30->x30_pos2.x;
temp_r31->x234C_pos.y = temp_r30->x30_pos2.y; temp_r31->masterhandVars.x234C_pos.y = temp_r30->x30_pos2.y;
temp_r31->x234C_pos.z = 0.0f; temp_r31->masterhandVars.x234C_pos.z = 0.0f;
} }

View File

@ -17,7 +17,7 @@ void lbl_80154D78(HSD_GObj* gobj)
if (!ftAnim_IsFramesRemaining(gobj)) { if (!ftAnim_IsFramesRemaining(gobj)) {
Fighter* fp = gobj->user_data; Fighter* fp = gobj->user_data;
if (fp->x2360 == 1) if (fp->masterhandVars.x2360 == 1)
func_80154A78(gobj); func_80154A78(gobj);
else else
func_801546D8(gobj); func_801546D8(gobj);
@ -41,8 +41,8 @@ void lbl_80154E14(HSD_GObj* gobj)
MasterHandAttributes* attr = fp->x10C_ftData->ext_attr; MasterHandAttributes* attr = fp->x10C_ftData->ext_attr;
func_80085134(gobj); func_80085134(gobj);
func_8015BE40(gobj, &fp->x234C_pos, &fp->x2358_stateVar7, attr->x2C, func_8015BE40(gobj, &fp->masterhandVars.x234C_pos,
attr->x28); &fp->masterhandVars.x2358, attr->x2C, attr->x28);
} }
// 80154E74 151A54 // 80154E74 151A54
@ -85,7 +85,7 @@ void lbl_80154ED8(HSD_GObj* gobj)
ft_2->dmg.x1844_direction *= -1.0f; ft_2->dmg.x1844_direction *= -1.0f;
func_800DE7C0(gobj_2, 0, 0); func_800DE7C0(gobj_2, 0, 0);
} }
fp->x2360 = 0; fp->masterhandVars.x2360 = 0;
} }
if (!ftAnim_IsFramesRemaining(gobj)) { if (!ftAnim_IsFramesRemaining(gobj)) {
func_80151018(gobj); func_80151018(gobj);

View File

@ -26,7 +26,7 @@ void lbl_80155074(HSD_GObj* gobj)
func_800DE2A8(gobj, gobj_2); func_800DE2A8(gobj, gobj_2);
func_800DE7C0(gobj_2, 0, 0); func_800DE7C0(gobj_2, 0, 0);
} }
fp->x2360 = 0; fp->masterhandVars.x2360 = 0;
} }
if (!ftAnim_IsFramesRemaining(gobj)) { if (!ftAnim_IsFramesRemaining(gobj)) {
func_80151018(gobj); func_80151018(gobj);

View File

@ -167,7 +167,7 @@ void lbl_80155904(HSD_GObj* gobj)
void lbl_80155908(HSD_GObj* gobj) void lbl_80155908(HSD_GObj* gobj)
{ {
Fighter* fp = gobj->user_data; Fighter* fp = gobj->user_data;
if ((--fp->x2364 <= 0.0f) && (fp->x2200_ftcmd_var0 != 0)) { if ((--fp->masterhandVars.x2364 <= 0.0f) && (fp->x2200_ftcmd_var0 != 0)) {
func_80155D1C(fp->x1A58_interactedFighter); func_80155D1C(fp->x1A58_interactedFighter);
fp->x2200_ftcmd_var0 = 0; fp->x2200_ftcmd_var0 = 0;
} }
@ -191,8 +191,8 @@ void lbl_801559D4(HSD_GObj* gobj)
Fighter* fp = gobj->user_data; Fighter* fp = gobj->user_data;
MasterHandAttributes* attr = fp->x10C_ftData->ext_attr; MasterHandAttributes* attr = fp->x10C_ftData->ext_attr;
func_80085134(gobj); func_80085134(gobj);
func_8015BE40(gobj, &fp->x234C_pos, &fp->x2358_stateVar7, attr->x2C, func_8015BE40(gobj, &fp->masterhandVars.x234C_pos,
attr->x28); &fp->masterhandVars.x2358, attr->x2C, attr->x28);
} }
// 80155A34 152614 // 80155A34 152614
@ -201,7 +201,7 @@ void lbl_80155A34(HSD_GObj* gobj)
{ {
Fighter* fp = gobj->user_data; Fighter* fp = gobj->user_data;
if (fp->x2358_stateVar7 == 0.0f) { if (fp->masterhandVars.x2358 == 0.0f) {
fp->x80_self_vel.z = 0.0f; fp->x80_self_vel.z = 0.0f;
fp->x80_self_vel.y = 0.0f; fp->x80_self_vel.y = 0.0f;
fp->x80_self_vel.x = 0.0f; fp->x80_self_vel.x = 0.0f;

View File

@ -0,0 +1,25 @@
#ifndef FTMASTERHAND_STATEVARS_H
#define FTMASTERHAND_STATEVARS_H
#include <Runtime/platform.h>
#include <sysdolphin/baselib/gobj.h>
typedef struct ftMasterhandStateVars {
f32 x2340_unk;
void (*x2344_callback)(HSD_GObj*);
int x2348;
Vec3 x234C_pos;
f32 x2358;
f32 x235C;
int x2360;
f32 x2364;
int x2368;
int x236C;
int x2370;
int x2374;
int x2378;
int x237C;
int x2380;
} ftMasterhandStateVars;
#endif

View File

@ -69,7 +69,7 @@ void ftMewtwo_SpecialHi_StartAction(HSD_GObj* fighter_gobj)
func_8006EBA4(fighter_gobj); func_8006EBA4(fighter_gobj);
fp->x2200_ftcmd_var0 = 0; fp->x2200_ftcmd_var0 = 0;
fp->mewtwoVars[0].SpecialHi.unk4 = 0; fp->mewtwoVars.SpecialHi.unk4 = 0;
fp->cb.x21BC_callback_Accessory4 = ftMewtwo_SpecialHi_CreateGFX; fp->cb.x21BC_callback_Accessory4 = ftMewtwo_SpecialHi_CreateGFX;
} }
@ -91,7 +91,7 @@ void ftMewtwo_SpecialAirHi_StartAction(HSD_GObj* fighter_gobj)
func_8006EBA4(fighter_gobj); func_8006EBA4(fighter_gobj);
fp->x2200_ftcmd_var0 = 0; fp->x2200_ftcmd_var0 = 0;
fp->mewtwoVars[0].SpecialHi.unk4 = 0; fp->mewtwoVars.SpecialHi.unk4 = 0;
fp->cb.x21BC_callback_Accessory4 = ftMewtwo_SpecialHi_CreateGFX; fp->cb.x21BC_callback_Accessory4 = ftMewtwo_SpecialHi_CreateGFX;
} }
@ -210,8 +210,8 @@ void ftMewtwo_SpecialHi_Anim(HSD_GObj* fighter_gobj)
{ {
Fighter* fp = GET_FIGHTER(fighter_gobj); Fighter* fp = GET_FIGHTER(fighter_gobj);
fp->mewtwoVars[0].SpecialHi.travelFrames--; fp->mewtwoVars.SpecialHi.travelFrames--;
if (fp->mewtwoVars[0].SpecialHi.travelFrames <= 0) { if (fp->mewtwoVars.SpecialHi.travelFrames <= 0) {
ftMewtwo_SpecialHiLost_Action(fighter_gobj); ftMewtwo_SpecialHiLost_Action(fighter_gobj);
} }
} }
@ -223,8 +223,8 @@ void ftMewtwo_SpecialAirHi_Anim(HSD_GObj* fighter_gobj)
{ {
Fighter* fp = GET_FIGHTER(fighter_gobj); Fighter* fp = GET_FIGHTER(fighter_gobj);
fp->mewtwoVars[0].SpecialHi.travelFrames--; fp->mewtwoVars.SpecialHi.travelFrames--;
if (fp->mewtwoVars[0].SpecialHi.travelFrames <= 0) { if (fp->mewtwoVars.SpecialHi.travelFrames <= 0) {
ftMewtwo_SpecialAirHiLost_Action(fighter_gobj); ftMewtwo_SpecialAirHiLost_Action(fighter_gobj);
} }
} }
@ -285,7 +285,7 @@ bool ftMewtwo_SpecialHi_CheckTimer(HSD_GObj* fighter_gobj)
Fighter* fp = GET_FIGHTER(fighter_gobj); Fighter* fp = GET_FIGHTER(fighter_gobj);
ftMewtwoAttributes* mewtwoAttrs = fp->x2D4_specialAttributes; ftMewtwoAttributes* mewtwoAttrs = fp->x2D4_specialAttributes;
if ((f32) fp->mewtwoVars[0].SpecialHi.unk4 >= if ((f32) fp->mewtwoVars.SpecialHi.unk4 >=
mewtwoAttrs->x54_MEWTWO_TELEPORT_UNK2) mewtwoAttrs->x54_MEWTWO_TELEPORT_UNK2)
{ {
return true; return true;
@ -308,7 +308,7 @@ void ftMewtwo_SpecialAirHi_Coll(HSD_GObj* fighter_gobj)
u32 envFlags; u32 envFlags;
u32 var; u32 var;
fp->mewtwoVars[0].SpecialHi.unk4++; fp->mewtwoVars.SpecialHi.unk4++;
if (EnvColl_CheckGroundAndLedge(fighter_gobj, CLIFFCATCH_O(fp)) != false) { if (EnvColl_CheckGroundAndLedge(fighter_gobj, CLIFFCATCH_O(fp)) != false) {
if (ftMewtwo_SpecialHi_CheckTimer(fighter_gobj) != false) { if (ftMewtwo_SpecialHi_CheckTimer(fighter_gobj) != false) {
ftMewtwo_SpecialAirHi_AirToGround(fighter_gobj); ftMewtwo_SpecialAirHi_AirToGround(fighter_gobj);
@ -384,7 +384,7 @@ static inline void ftMewtwo_SpecialHi_SetVars(HSD_GObj* fighter_gobj)
fp = GET_FIGHTER(fighter_gobj); fp = GET_FIGHTER(fighter_gobj);
fp = GET_FIGHTER(fighter_gobj); fp = GET_FIGHTER(fighter_gobj);
fp->mewtwoVars[0].SpecialHi.travelFrames = fp->mewtwoVars.SpecialHi.travelFrames =
(s32) mewtwoAttrs->x50_MEWTWO_TELEPORT_DURATION; (s32) mewtwoAttrs->x50_MEWTWO_TELEPORT_DURATION;
fp->x1968_jumpsUsed = fp->x110_attr.x168_MaxJumps; fp->x1968_jumpsUsed = fp->x110_attr.x168_MaxJumps;
@ -446,8 +446,8 @@ void ftMewtwo_SpecialHi_Action(HSD_GObj* fighter_gobj)
vel = atan2f(fp->input.x624_lstick_y, vel = atan2f(fp->input.x624_lstick_y,
fp->input.x620_lstick_x * fp->facing_dir); fp->input.x620_lstick_x * fp->facing_dir);
fp->mewtwoVars[0].SpecialHi.stickX = stickVec.x; fp->mewtwoVars.SpecialHi.stickX = stickVec.x;
fp->mewtwoVars[0].SpecialHi.stickY = stickVec.y; fp->mewtwoVars.SpecialHi.stickY = stickVec.y;
fp->xEC_ground_vel = fp->xEC_ground_vel =
fp->facing_dir * fp->facing_dir *
(((mewtwoAttrs->x5C_MEWTWO_TELEPORT_MOMENTUM * sqrt_stick) + (((mewtwoAttrs->x5C_MEWTWO_TELEPORT_MOMENTUM * sqrt_stick) +
@ -508,13 +508,13 @@ void ftMewtwo_SpecialAirHi_Action(HSD_GObj* fighter_gobj)
floatVar = atan2f(fp->input.x624_lstick_y, floatVar = atan2f(fp->input.x624_lstick_y,
fp->input.x620_lstick_x * fp->facing_dir); fp->input.x620_lstick_x * fp->facing_dir);
fp->mewtwoVars[0].SpecialHi.stickX = fp->input.x620_lstick_x; fp->mewtwoVars.SpecialHi.stickX = fp->input.x620_lstick_x;
fp->mewtwoVars[0].SpecialHi.stickY = fp->input.x624_lstick_y; fp->mewtwoVars.SpecialHi.stickY = fp->input.x624_lstick_y;
} else { } else {
func_8007DA24(fp); func_8007DA24(fp);
floatVar = (f32) M_PI_2; floatVar = (f32) M_PI_2;
fp->mewtwoVars[0].SpecialHi.stickX = 0.0f; fp->mewtwoVars.SpecialHi.stickX = 0.0f;
sqrt_stick = fp->mewtwoVars[0].SpecialHi.stickY = 1.0f; sqrt_stick = fp->mewtwoVars.SpecialHi.stickY = 1.0f;
} }
fp->x80_self_vel.x = fp->x80_self_vel.x =
@ -645,9 +645,9 @@ void ftMewtwo_SpecialHiLost_GroundToAir(HSD_GObj* fighter_gobj)
static inline void ftMewtwo_SpecialHiLost_SetVars(HSD_GObj* fighter_gobj) static inline void ftMewtwo_SpecialHiLost_SetVars(HSD_GObj* fighter_gobj)
{ {
Fighter* fp = GET_FIGHTER(fighter_gobj); Fighter* fp = GET_FIGHTER(fighter_gobj);
fp->mewtwoVars[0].SpecialHi.velX = fp->x80_self_vel.x; fp->mewtwoVars.SpecialHi.velX = fp->x80_self_vel.x;
fp->mewtwoVars[0].SpecialHi.velY = (f32) fp->x80_self_vel.y; fp->mewtwoVars.SpecialHi.velY = (f32) fp->x80_self_vel.y;
fp->mewtwoVars[0].SpecialHi.groundVelX = (f32) fp->xEC_ground_vel; fp->mewtwoVars.SpecialHi.groundVelX = (f32) fp->xEC_ground_vel;
fp->x80_self_vel.y = 0.0f; fp->x80_self_vel.y = 0.0f;
fp->x80_self_vel.x = 0.0f; fp->x80_self_vel.x = 0.0f;
fp->xEC_ground_vel = 0.0f; fp->xEC_ground_vel = 0.0f;
@ -669,7 +669,7 @@ void ftMewtwo_SpecialHiLost_Action(HSD_GObj* fighter_gobj)
ftMewtwo_SpecialHiLost_SetVars(fighter_gobj); ftMewtwo_SpecialHiLost_SetVars(fighter_gobj);
fp->xEC_ground_vel = fp->mewtwoVars[0].SpecialHi.groundVelX * fp->xEC_ground_vel = fp->mewtwoVars.SpecialHi.groundVelX *
mewtwoAttrs->x6C_MEWTWO_TELEPORT_MOMENTUM_END_MUL; mewtwoAttrs->x6C_MEWTWO_TELEPORT_MOMENTUM_END_MUL;
} }
@ -687,8 +687,8 @@ void ftMewtwo_SpecialAirHiLost_Action(HSD_GObj* fighter_gobj)
ftMewtwo_SpecialHiLost_SetVars(fighter_gobj); ftMewtwo_SpecialHiLost_SetVars(fighter_gobj);
fp->x80_self_vel.x = fp->mewtwoVars[0].SpecialHi.velX * fp->x80_self_vel.x = fp->mewtwoVars.SpecialHi.velX *
mewtwoAttrs->x6C_MEWTWO_TELEPORT_MOMENTUM_END_MUL; mewtwoAttrs->x6C_MEWTWO_TELEPORT_MOMENTUM_END_MUL;
fp->x80_self_vel.y = fp->mewtwoVars[0].SpecialHi.velY * fp->x80_self_vel.y = fp->mewtwoVars.SpecialHi.velY *
mewtwoAttrs->x6C_MEWTWO_TELEPORT_MOMENTUM_END_MUL; mewtwoAttrs->x6C_MEWTWO_TELEPORT_MOMENTUM_END_MUL;
} }

View File

@ -312,41 +312,40 @@ void ftMewtwo_SpecialN_PlayChargeSFX(HSD_GObj* fighter_gobj)
} else { } else {
chargeLevel = 0.0f; chargeLevel = 0.0f;
} }
if (fp->mewtwoVars[0].SpecialN.chargeLevel > 0.0f) { if (fp->mewtwoVars.SpecialN.chargeLevel > 0.0f) {
if ((chargeLevel > 0.75f) && if ((chargeLevel > 0.75f) &&
(fp->mewtwoVars[0].SpecialN.chargeLevel <= 0.75f)) (fp->mewtwoVars.SpecialN.chargeLevel <= 0.75f))
{ {
fp->mewtwoVars[0].SpecialN.chargeLevel = chargeLevel; fp->mewtwoVars.SpecialN.chargeLevel = chargeLevel;
func_80088510(fp, shadowBallSFX[3], SFX_VOLUME_MAX, func_80088510(fp, shadowBallSFX[3], SFX_VOLUME_MAX,
SFX_PAN_MID); SFX_PAN_MID);
return; return;
} }
if ((chargeLevel > 0.5f) && if ((chargeLevel > 0.5f) &&
(fp->mewtwoVars[0].SpecialN.chargeLevel <= 0.5f)) (fp->mewtwoVars.SpecialN.chargeLevel <= 0.5f))
{ {
fp->mewtwoVars[0].SpecialN.chargeLevel = chargeLevel; fp->mewtwoVars.SpecialN.chargeLevel = chargeLevel;
func_80088510(fp, shadowBallSFX[2], SFX_VOLUME_MAX, func_80088510(fp, shadowBallSFX[2], SFX_VOLUME_MAX,
SFX_PAN_MID); SFX_PAN_MID);
return; return;
} }
if ((chargeLevel > 0.25f) && if ((chargeLevel > 0.25f) &&
(fp->mewtwoVars[0].SpecialN.chargeLevel <= 0.25f)) (fp->mewtwoVars.SpecialN.chargeLevel <= 0.25f))
{ {
fp->mewtwoVars[0].SpecialN.chargeLevel = chargeLevel; fp->mewtwoVars.SpecialN.chargeLevel = chargeLevel;
func_80088510(fp, shadowBallSFX[1], SFX_VOLUME_MAX, func_80088510(fp, shadowBallSFX[1], SFX_VOLUME_MAX,
SFX_PAN_MID); SFX_PAN_MID);
return; return;
} }
if ((chargeLevel > 0.0f) && if ((chargeLevel > 0.0f) &&
(fp->mewtwoVars[0].SpecialN.chargeLevel <= 0.0f)) (fp->mewtwoVars.SpecialN.chargeLevel <= 0.0f))
{ {
fp->mewtwoVars[0].SpecialN.chargeLevel = chargeLevel; fp->mewtwoVars.SpecialN.chargeLevel = chargeLevel;
func_80088510(fp, shadowBallSFX[0], SFX_VOLUME_MAX, func_80088510(fp, shadowBallSFX[0], SFX_VOLUME_MAX,
SFX_PAN_MID); SFX_PAN_MID);
} }
} else { } else {
fp->mewtwoVars[0].SpecialN.chargeLevel = fp->mewtwoVars.SpecialN.chargeLevel = (f32) 9.999999747378752e-5f;
(f32) 9.999999747378752e-5f;
func_80088510(fp, shadowBallSFX[0], SFX_VOLUME_MAX, SFX_PAN_MID); func_80088510(fp, shadowBallSFX[0], SFX_VOLUME_MAX, SFX_PAN_MID);
} }
} }
@ -382,14 +381,14 @@ inline void ftMewtwo_SpecialN_ChangeAction(HSD_GObj* fighter_gobj)
ftMewtwo_SpecialN_SetCall(fighter_gobj); ftMewtwo_SpecialN_SetCall(fighter_gobj);
fp->mewtwoVars[0].SpecialN.isFull = false; fp->mewtwoVars.SpecialN.isFull = false;
fp->mewtwoVars[0].SpecialN.x2344 = (u32) 0; fp->mewtwoVars.SpecialN.x2344 = (u32) 0;
if ((s32) fp->sa.mewtwo.x2234_shadowBallCharge == 0) { if ((s32) fp->sa.mewtwo.x2234_shadowBallCharge == 0) {
releaseLag = mewtwoAttrs->x10_MEWTWO_SHADOWBALL_RELEASE_LAG; releaseLag = mewtwoAttrs->x10_MEWTWO_SHADOWBALL_RELEASE_LAG;
} }
fp->mewtwoVars[0].SpecialN.releaseLag = releaseLag; fp->mewtwoVars.SpecialN.releaseLag = releaseLag;
fp->mewtwoVars[0].SpecialN.chargeLevel = 0.0f; fp->mewtwoVars.SpecialN.chargeLevel = 0.0f;
func_8006EBA4(fighter_gobj); func_8006EBA4(fighter_gobj);
} }
@ -420,15 +419,15 @@ inline void ftMewtwo_SpecialAirN_ChangeAction(HSD_GObj* fighter_gobj)
ftMewtwo_SpecialN_SetCall(fighter_gobj); ftMewtwo_SpecialN_SetCall(fighter_gobj);
fp->mewtwoVars[0].SpecialN.isFull = false; fp->mewtwoVars.SpecialN.isFull = false;
fp->mewtwoVars[0].SpecialN.x2344 = (u32) 0; fp->mewtwoVars.SpecialN.x2344 = (u32) 0;
if ((s32) fp->sa.mewtwo.x2234_shadowBallCharge == 0) { if ((s32) fp->sa.mewtwo.x2234_shadowBallCharge == 0) {
releaseLag = mewtwoAttrs->x10_MEWTWO_SHADOWBALL_RELEASE_LAG; releaseLag = mewtwoAttrs->x10_MEWTWO_SHADOWBALL_RELEASE_LAG;
} }
fp->mewtwoVars[0].SpecialN.releaseLag = releaseLag; fp->mewtwoVars.SpecialN.releaseLag = releaseLag;
fp->mewtwoVars[0].SpecialN.chargeLevel = 0.0f; fp->mewtwoVars.SpecialN.chargeLevel = 0.0f;
fp->x80_self_vel.y *= 0.5f; fp->x80_self_vel.y *= 0.5f;
@ -474,7 +473,7 @@ void ftMewtwo_SpecialNStart_Anim(HSD_GObj* fighter_gobj)
} }
} }
if (!ftAnim_IsFramesRemaining(fighter_gobj)) { if (!ftAnim_IsFramesRemaining(fighter_gobj)) {
if (((s32) fp->mewtwoVars[0].SpecialN.isFull == true) || if (((s32) fp->mewtwoVars.SpecialN.isFull == true) ||
((f32) fp->sa.mewtwo.x2234_shadowBallCharge == ((f32) fp->sa.mewtwo.x2234_shadowBallCharge ==
mewtwoAttrs->x0_MEWTWO_SHADOWBALL_CHARGE_CYCLES)) mewtwoAttrs->x0_MEWTWO_SHADOWBALL_CHARGE_CYCLES))
{ {
@ -485,7 +484,7 @@ void ftMewtwo_SpecialNStart_Anim(HSD_GObj* fighter_gobj)
Fighter_ActionStateChange_800693AC(fighter_gobj, Fighter_ActionStateChange_800693AC(fighter_gobj,
AS_MEWTWO_SPECIALN_LOOP, 0, NULL, AS_MEWTWO_SPECIALN_LOOP, 0, NULL,
0.0f, 1.0f, 0.0f); 0.0f, 1.0f, 0.0f);
fp->mewtwoVars[0].SpecialN.x2348 = false; fp->mewtwoVars.SpecialN.x2348 = false;
} }
ftMewtwo_SpecialN_SetCall(fighter_gobj); ftMewtwo_SpecialN_SetCall(fighter_gobj);
} }
@ -534,17 +533,17 @@ void ftMewtwo_SpecialNLoop_Anim(HSD_GObj* fighter_gobj)
sp34 = shadowBallPos; sp34 = shadowBallPos;
fp->mewtwoVars[0].SpecialN.releaseLag--; fp->mewtwoVars.SpecialN.releaseLag--;
if (fp->mewtwoVars[0].SpecialN.releaseLag <= 0) { if (fp->mewtwoVars.SpecialN.releaseLag <= 0) {
fp->mewtwoVars[0].SpecialN.releaseLag = 0; fp->mewtwoVars.SpecialN.releaseLag = 0;
ftMewtwo_SpecialN_CreateHeldShadow(fighter_gobj, &sp28, &sp1C); ftMewtwo_SpecialN_CreateHeldShadow(fighter_gobj, &sp28, &sp1C);
ftMewtwo_SpecialN_PlayChargeSFX(fighter_gobj); ftMewtwo_SpecialN_PlayChargeSFX(fighter_gobj);
if ((s32) fp->mewtwoVars[0].SpecialN.x2348 == false) { if ((s32) fp->mewtwoVars.SpecialN.x2348 == false) {
fp->mewtwoVars[0].SpecialN.x2344++; fp->mewtwoVars.SpecialN.x2344++;
if ((s32) fp->mewtwoVars[0].SpecialN.x2344 > if ((s32) fp->mewtwoVars.SpecialN.x2344 >
(s32) mewtwoAttrs->xC_MEWTWO_SHADOWBALL_CHARGE_ITERATIONS) (s32) mewtwoAttrs->xC_MEWTWO_SHADOWBALL_CHARGE_ITERATIONS)
{ {
fp->mewtwoVars[0].SpecialN.x2344 = 0; fp->mewtwoVars.SpecialN.x2344 = 0;
fp->sa.mewtwo.x2234_shadowBallCharge++; fp->sa.mewtwo.x2234_shadowBallCharge++;
if ((f32) fp->sa.mewtwo.x2234_shadowBallCharge >= if ((f32) fp->sa.mewtwo.x2234_shadowBallCharge >=
mewtwoAttrs->x0_MEWTWO_SHADOWBALL_CHARGE_CYCLES) mewtwoAttrs->x0_MEWTWO_SHADOWBALL_CHARGE_CYCLES)
@ -555,7 +554,7 @@ void ftMewtwo_SpecialNLoop_Anim(HSD_GObj* fighter_gobj)
fp->x894_currentAnimFrame, 1.0f, 0.0f); fp->x894_currentAnimFrame, 1.0f, 0.0f);
fp->sa.mewtwo.x2234_shadowBallCharge = fp->sa.mewtwo.x2234_shadowBallCharge =
(s32) mewtwoAttrs->x0_MEWTWO_SHADOWBALL_CHARGE_CYCLES; (s32) mewtwoAttrs->x0_MEWTWO_SHADOWBALL_CHARGE_CYCLES;
fp->mewtwoVars[0].SpecialN.x2348 = true; fp->mewtwoVars.SpecialN.x2348 = true;
func_8007EBAC(fp, 0xCU, 0U); func_8007EBAC(fp, 0xCU, 0U);
func_8000B1CC(fp->x5E8_fighterBones[0].x0_jobj, &sp34, func_8000B1CC(fp->x5E8_fighterBones[0].x0_jobj, &sp34,
&sp40); &sp40);
@ -574,7 +573,7 @@ void ftMewtwo_SpecialNFull_Anim(HSD_GObj* fighter_gobj)
Fighter* fp = fp = getFighter(fighter_gobj); Fighter* fp = fp = getFighter(fighter_gobj);
ftMewtwoAttributes* mewtwoAttrs = mewtwoAttrs = getFtSpecialAttrsD(fp); ftMewtwoAttributes* mewtwoAttrs = mewtwoAttrs = getFtSpecialAttrsD(fp);
fp->mewtwoVars[0].SpecialN.x2348 = true; fp->mewtwoVars.SpecialN.x2348 = true;
fp->sa.mewtwo.x2234_shadowBallCharge = fp->sa.mewtwo.x2234_shadowBallCharge =
mewtwoAttrs->x0_MEWTWO_SHADOWBALL_CHARGE_CYCLES; mewtwoAttrs->x0_MEWTWO_SHADOWBALL_CHARGE_CYCLES;
} }
@ -652,9 +651,9 @@ void ftMewtwo_SpecialAirNStart_Anim(HSD_GObj* fighter_gobj)
fp->sa.mewtwo.x2230_shadowHeldGObj = NULL; fp->sa.mewtwo.x2230_shadowHeldGObj = NULL;
} }
} }
fp->mewtwoVars[0].SpecialN.isFull = false; fp->mewtwoVars.SpecialN.isFull = false;
if (!ftAnim_IsFramesRemaining(fighter_gobj)) { if (!ftAnim_IsFramesRemaining(fighter_gobj)) {
if (((s32) fp->mewtwoVars[0].SpecialN.isFull == true) || if (((s32) fp->mewtwoVars.SpecialN.isFull == true) ||
((f32) fp->sa.mewtwo.x2234_shadowBallCharge == ((f32) fp->sa.mewtwo.x2234_shadowBallCharge ==
mewtwoAttrs->x0_MEWTWO_SHADOWBALL_CHARGE_CYCLES)) mewtwoAttrs->x0_MEWTWO_SHADOWBALL_CHARGE_CYCLES))
{ {
@ -665,7 +664,7 @@ void ftMewtwo_SpecialAirNStart_Anim(HSD_GObj* fighter_gobj)
Fighter_ActionStateChange_800693AC(fighter_gobj, Fighter_ActionStateChange_800693AC(fighter_gobj,
AS_MEWTWO_SPECIALAIRN_LOOP, 0, AS_MEWTWO_SPECIALAIRN_LOOP, 0,
NULL, 0.0f, 1.0f, 0.0f); NULL, 0.0f, 1.0f, 0.0f);
fp->mewtwoVars[0].SpecialN.x2348 = false; fp->mewtwoVars.SpecialN.x2348 = false;
} }
ftMewtwo_SpecialN_SetCall(fighter_gobj); ftMewtwo_SpecialN_SetCall(fighter_gobj);
} }
@ -687,17 +686,17 @@ void ftMewtwo_SpecialAirNLoop_Anim(HSD_GObj* fighter_gobj)
sp34 = shadowBallPos; sp34 = shadowBallPos;
fp->mewtwoVars[0].SpecialN.releaseLag--; fp->mewtwoVars.SpecialN.releaseLag--;
if (fp->mewtwoVars[0].SpecialN.releaseLag <= 0) { if (fp->mewtwoVars.SpecialN.releaseLag <= 0) {
fp->mewtwoVars[0].SpecialN.releaseLag = 0; fp->mewtwoVars.SpecialN.releaseLag = 0;
ftMewtwo_SpecialN_CreateHeldShadow(fighter_gobj, &sp28, &sp1C); ftMewtwo_SpecialN_CreateHeldShadow(fighter_gobj, &sp28, &sp1C);
ftMewtwo_SpecialN_PlayChargeSFX(fighter_gobj); ftMewtwo_SpecialN_PlayChargeSFX(fighter_gobj);
if ((s32) fp->mewtwoVars[0].SpecialN.x2348 == false) { if ((s32) fp->mewtwoVars.SpecialN.x2348 == false) {
fp->mewtwoVars[0].SpecialN.x2344++; fp->mewtwoVars.SpecialN.x2344++;
if ((s32) fp->mewtwoVars[0].SpecialN.x2344 > if ((s32) fp->mewtwoVars.SpecialN.x2344 >
(s32) mewtwoAttrs->xC_MEWTWO_SHADOWBALL_CHARGE_ITERATIONS) (s32) mewtwoAttrs->xC_MEWTWO_SHADOWBALL_CHARGE_ITERATIONS)
{ {
fp->mewtwoVars[0].SpecialN.x2344 = 0; fp->mewtwoVars.SpecialN.x2344 = 0;
fp->sa.mewtwo.x2234_shadowBallCharge++; fp->sa.mewtwo.x2234_shadowBallCharge++;
if ((f32) fp->sa.mewtwo.x2234_shadowBallCharge >= if ((f32) fp->sa.mewtwo.x2234_shadowBallCharge >=
mewtwoAttrs->x0_MEWTWO_SHADOWBALL_CHARGE_CYCLES) mewtwoAttrs->x0_MEWTWO_SHADOWBALL_CHARGE_CYCLES)
@ -708,7 +707,7 @@ void ftMewtwo_SpecialAirNLoop_Anim(HSD_GObj* fighter_gobj)
fp->x894_currentAnimFrame, 1.0f, 0.0f); fp->x894_currentAnimFrame, 1.0f, 0.0f);
fp->sa.mewtwo.x2234_shadowBallCharge = fp->sa.mewtwo.x2234_shadowBallCharge =
(s32) mewtwoAttrs->x0_MEWTWO_SHADOWBALL_CHARGE_CYCLES; (s32) mewtwoAttrs->x0_MEWTWO_SHADOWBALL_CHARGE_CYCLES;
fp->mewtwoVars[0].SpecialN.x2348 = 1; fp->mewtwoVars.SpecialN.x2348 = 1;
func_8007EBAC(fp, 0xCU, 0U); func_8007EBAC(fp, 0xCU, 0U);
func_8000B1CC(fp->x5E8_fighterBones[0].x0_jobj, &sp34, func_8000B1CC(fp->x5E8_fighterBones[0].x0_jobj, &sp34,
@ -728,7 +727,7 @@ void ftMewtwo_SpecialAirNFull_Anim(HSD_GObj* fighter_gobj)
Fighter* fp = fp = getFighter(fighter_gobj); Fighter* fp = fp = getFighter(fighter_gobj);
ftMewtwoAttributes* mewtwoAttrs = mewtwoAttrs = getFtSpecialAttrsD(fp); ftMewtwoAttributes* mewtwoAttrs = mewtwoAttrs = getFtSpecialAttrsD(fp);
fp->mewtwoVars[0].SpecialN.x2348 = false; fp->mewtwoVars.SpecialN.x2348 = false;
fp->sa.mewtwo.x2234_shadowBallCharge = fp->sa.mewtwo.x2234_shadowBallCharge =
mewtwoAttrs->x0_MEWTWO_SHADOWBALL_CHARGE_CYCLES; mewtwoAttrs->x0_MEWTWO_SHADOWBALL_CHARGE_CYCLES;
} }
@ -789,7 +788,7 @@ void ftMewtwo_SpecialNLoop_IASA(HSD_GObj* fighter_gobj)
} else { } else {
recentInput = fp->input.x668; recentInput = fp->input.x668;
if ((recentInput & HSD_BUTTON_A) && if ((recentInput & HSD_BUTTON_A) &&
(fp->mewtwoVars[0].SpecialN.releaseLag <= 0)) (fp->mewtwoVars.SpecialN.releaseLag <= 0))
{ {
Fighter_ActionStateChange_800693AC(fighter_gobj, Fighter_ActionStateChange_800693AC(fighter_gobj,
AS_MEWTWO_SPECIALN_END, 0, NULL, AS_MEWTWO_SPECIALN_END, 0, NULL,
@ -798,7 +797,7 @@ void ftMewtwo_SpecialNLoop_IASA(HSD_GObj* fighter_gobj)
return; return;
} }
if ((recentInput & HSD_BUTTON_B) != false) { if ((recentInput & HSD_BUTTON_B) != false) {
if (fp->mewtwoVars[0].SpecialN.releaseLag <= 0) { if (fp->mewtwoVars.SpecialN.releaseLag <= 0) {
Fighter_ActionStateChange_800693AC(fighter_gobj, Fighter_ActionStateChange_800693AC(fighter_gobj,
AS_MEWTWO_SPECIALN_END, 0, AS_MEWTWO_SPECIALN_END, 0,
NULL, 0.0f, 1.0f, 0.0f); NULL, 0.0f, 1.0f, 0.0f);
@ -882,7 +881,7 @@ void ftMewtwo_SpecialAirNLoop_IASA(HSD_GObj* fighter_gobj)
recentInput = fp->input.x668; recentInput = fp->input.x668;
if (((recentInput & HSD_BUTTON_A) != false) && if (((recentInput & HSD_BUTTON_A) != false) &&
(fp->mewtwoVars[0].SpecialN.releaseLag <= 0)) (fp->mewtwoVars.SpecialN.releaseLag <= 0))
{ {
Fighter_ActionStateChange_800693AC( Fighter_ActionStateChange_800693AC(
fighter_gobj, AS_MEWTWO_SPECIALAIRN_END, 0, NULL, 0.0f, 1.0f, 0.0f); fighter_gobj, AS_MEWTWO_SPECIALAIRN_END, 0, NULL, 0.0f, 1.0f, 0.0f);
@ -890,7 +889,7 @@ void ftMewtwo_SpecialAirNLoop_IASA(HSD_GObj* fighter_gobj)
return; return;
} }
if ((recentInput & HSD_BUTTON_B) != false) { if ((recentInput & HSD_BUTTON_B) != false) {
if (fp->mewtwoVars[0].SpecialN.releaseLag <= 0) { if (fp->mewtwoVars.SpecialN.releaseLag <= 0) {
Fighter_ActionStateChange_800693AC(fighter_gobj, Fighter_ActionStateChange_800693AC(fighter_gobj,
AS_MEWTWO_SPECIALAIRN_END, 0, AS_MEWTWO_SPECIALAIRN_END, 0,
NULL, 0.0f, 1.0f, 0.0f); NULL, 0.0f, 1.0f, 0.0f);

View File

@ -45,7 +45,7 @@ void ftMewtwo_SpecialS_StartAction(HSD_GObj* fighter_gobj)
fp->x2210_ThrowFlags.flags = 0; fp->x2210_ThrowFlags.flags = 0;
fp->x2200_ftcmd_var0 = 0; fp->x2200_ftcmd_var0 = 0;
fp->x2204_ftcmd_var1 = 0; fp->x2204_ftcmd_var1 = 0;
fp->mewtwoVars[0].SpecialS.isConfusionReflect = false; fp->mewtwoVars.SpecialS.isConfusionReflect = false;
Fighter_ActionStateChange_800693AC(fighter_gobj, AS_MEWTWO_SPECIALS, 0, Fighter_ActionStateChange_800693AC(fighter_gobj, AS_MEWTWO_SPECIALS, 0,
NULL, 0.0f, 1.0f, 0.0f); NULL, 0.0f, 1.0f, 0.0f);
@ -90,7 +90,7 @@ void ftMewtwo_SpecialAirS_StartAction(HSD_GObj* fighter_gobj)
fp->x2210_ThrowFlags.flags = 0; fp->x2210_ThrowFlags.flags = 0;
fp->x2200_ftcmd_var0 = 0; fp->x2200_ftcmd_var0 = 0;
fp->x2204_ftcmd_var1 = 0; fp->x2204_ftcmd_var1 = 0;
fp->mewtwoVars[0].SpecialS.isConfusionReflect = false; fp->mewtwoVars.SpecialS.isConfusionReflect = false;
if (fp->sa.mewtwo.x223C_isConfusionBoost == false) { if (fp->sa.mewtwo.x223C_isConfusionBoost == false) {
fp->x80_self_vel.y = mewtwoAttrs->x18_MEWTWO_CONFUSION_AIR_BOOST; fp->x80_self_vel.y = mewtwoAttrs->x18_MEWTWO_CONFUSION_AIR_BOOST;
@ -175,7 +175,7 @@ void ftMewtwo_SpecialAirS_Phys(HSD_GObj* fighter_gobj)
static inline void ftMewtwo_SpecialS_SetReflect(HSD_GObj* fighter_gobj) static inline void ftMewtwo_SpecialS_SetReflect(HSD_GObj* fighter_gobj)
{ {
Fighter* fp = GET_FIGHTER(fighter_gobj); Fighter* fp = GET_FIGHTER(fighter_gobj);
if (fp->mewtwoVars[0].SpecialS.isConfusionReflect != false) { if (fp->mewtwoVars.SpecialS.isConfusionReflect != false) {
fp->x2218_flag.bits.b3 = 1; fp->x2218_flag.bits.b3 = 1;
fp->x2218_flag.bits.b4 = 1; fp->x2218_flag.bits.b4 = 1;
fp->cb.x21C8_callback_OnReflectHit = ftMewtwo_SpecialS_OnReflect; fp->cb.x21C8_callback_OnReflectHit = ftMewtwo_SpecialS_OnReflect;
@ -254,16 +254,16 @@ void ftMewtwo_SpecialS_ReflectThink(HSD_GObj* fighter_gobj)
// returns instead of just NULL? // // returns instead of just NULL? //
fp->x2218_flag.bits.b4 = fp->x2218_flag.bits.b4 =
1; // Here it is... the reason Confusion cannot change ownership. 1; // Here it is... the reason Confusion cannot change ownership.
fp->mewtwoVars[0].SpecialS.isConfusionReflect = true; fp->mewtwoVars.SpecialS.isConfusionReflect = true;
fp->x2204_ftcmd_var1 = CONFUSION_REFLECT_NONE; fp->x2204_ftcmd_var1 = CONFUSION_REFLECT_NONE;
return; return;
case CONFUSION_REFLECT_OFF: case CONFUSION_REFLECT_OFF:
if (fp->mewtwoVars[0].SpecialS.isConfusionReflect != false) { if (fp->mewtwoVars.SpecialS.isConfusionReflect != false) {
fp->x2218_flag.bits.b3 = 0; fp->x2218_flag.bits.b3 = 0;
fp->x2218_flag.bits.b4 = 0; fp->x2218_flag.bits.b4 = 0;
fp->cb.x21C8_callback_OnReflectHit = NULL; fp->cb.x21C8_callback_OnReflectHit = NULL;
fp->mewtwoVars[0].SpecialS.isConfusionReflect = false; fp->mewtwoVars.SpecialS.isConfusionReflect = false;
} }
fp->x2204_ftcmd_var1 = CONFUSION_REFLECT_NONE; fp->x2204_ftcmd_var1 = CONFUSION_REFLECT_NONE;
return; return;

View File

@ -32,9 +32,9 @@ void ftNess_YoyoCheckTimedRehit(HSD_GObj* fighter_gobj)
HitCapsule* hitbox_data; HitCapsule* hitbox_data;
if (fp->x2200_ftcmd_var0 == 0) { if (fp->x2200_ftcmd_var0 == 0) {
if (fp->nessVars[0].AttackHi4.yoyoRehitTimer > 0) { if (fp->nessVars.AttackHi4.yoyoRehitTimer > 0) {
fp->nessVars[0].AttackHi4.yoyoRehitTimer--; fp->nessVars.AttackHi4.yoyoRehitTimer--;
if (fp->nessVars[0].AttackHi4.yoyoRehitTimer == 0) { if (fp->nessVars.AttackHi4.yoyoRehitTimer == 0) {
lbColl_80008440(&fp->x914[0]); lbColl_80008440(&fp->x914[0]);
lbColl_80008434(&fp->x914[0]); lbColl_80008434(&fp->x914[0]);
} }
@ -157,7 +157,7 @@ void ftNess_YoyoSetUnkPos(HSD_GObj* fighter_gobj, Vec3* pos)
fp = fighter_gobj->user_data; fp = fighter_gobj->user_data;
collData = &fp->x6F0_collData; collData = &fp->x6F0_collData;
if (!fp->nessVars[0].AttackHi4.isPosUpdateMod) { if (!fp->nessVars.AttackHi4.isPosUpdateMod) {
func_8000B1CC(fp->x5E8_fighterBones[0x3D].x0_jobj, NULL, pos); func_8000B1CC(fp->x5E8_fighterBones[0x3D].x0_jobj, NULL, pos);
return; return;
} }
@ -193,7 +193,7 @@ void ftNess_YoyoSetHitPos(HSD_GObj* fighter_gobj)
fp = fighter_gobj->user_data; fp = fighter_gobj->user_data;
collData = &fp->x6F0_collData; collData = &fp->x6F0_collData;
if (!fp->nessVars[0].AttackHi4.isPosUpdateMod) { if (!fp->nessVars.AttackHi4.isPosUpdateMod) {
func_8000B1CC(fp->x5E8_fighterBones[0x3D].x0_jobj, NULL, &sp2C); func_8000B1CC(fp->x5E8_fighterBones[0x3D].x0_jobj, NULL, &sp2C);
} else { } else {
func_8000B1CC(fp->x5E8_fighterBones[0x3D].x0_jobj, NULL, &sp14); func_8000B1CC(fp->x5E8_fighterBones[0x3D].x0_jobj, NULL, &sp14);
@ -223,7 +223,7 @@ void ftNess_YoyoSetHitPosUnk(HSD_GObj* fighter_gobj, f32 pos_unk)
fp = fighter_gobj->user_data; fp = fighter_gobj->user_data;
collData = &fp->x6F0_collData; collData = &fp->x6F0_collData;
if (!fp->nessVars[0].AttackHi4.isPosUpdateMod) { if (!fp->nessVars.AttackHi4.isPosUpdateMod) {
func_8000B1CC(fp->x5E8_fighterBones[0x3D].x0_jobj, NULL, &sp3C); func_8000B1CC(fp->x5E8_fighterBones[0x3D].x0_jobj, NULL, &sp3C);
} else { } else {
func_8000B1CC(fp->x5E8_fighterBones[0x3D].x0_jobj, NULL, &sp18); func_8000B1CC(fp->x5E8_fighterBones[0x3D].x0_jobj, NULL, &sp18);
@ -286,9 +286,9 @@ void ftNess_YoyoSetVarAll(HSD_GObj* fighter_gobj)
Fighter* fp = GET_FIGHTER(fighter_gobj); Fighter* fp = GET_FIGHTER(fighter_gobj);
fp->x2204_ftcmd_var1 = 0; fp->x2204_ftcmd_var1 = 0;
fp->x2200_ftcmd_var0 = 0; fp->x2200_ftcmd_var0 = 0;
fp->nessVars[0].AttackHi4.yoyoCurrentFrame = 1; fp->nessVars.AttackHi4.yoyoCurrentFrame = 1;
fp->nessVars[0].AttackHi4.yoyoRehitTimer = 0; fp->nessVars.AttackHi4.yoyoRehitTimer = 0;
fp->nessVars[0].AttackHi4.isPosUpdateMod = true; fp->nessVars.AttackHi4.isPosUpdateMod = true;
fp->sa.ness.x2230_yoyoHitboxPos.z = 0.0f; fp->sa.ness.x2230_yoyoHitboxPos.z = 0.0f;
fp->sa.ness.x2230_yoyoHitboxPos.y = 0.0f; fp->sa.ness.x2230_yoyoHitboxPos.y = 0.0f;
fp->sa.ness.x2230_yoyoHitboxPos.x = 0.0f; fp->sa.ness.x2230_yoyoHitboxPos.x = 0.0f;
@ -318,7 +318,7 @@ void ftNess_YoyoApplySmash(HSD_GObj* fighter_gobj)
s32 smashColAnimID; s32 smashColAnimID;
fp = fighter_gobj->user_data; fp = fighter_gobj->user_data;
fp->nessVars[0].AttackHi4.yoyoCurrentFrame = 0; fp->nessVars.AttackHi4.yoyoCurrentFrame = 0;
temp_yoyo = fp->sa.ness.x222C_yoyoGObj; temp_yoyo = fp->sa.ness.x222C_yoyoGObj;
yoyo_GObj = temp_yoyo; yoyo_GObj = temp_yoyo;
@ -375,7 +375,7 @@ void ftNess_YoyoSetChargeDamage(HSD_GObj* fighter_gobj)
fp = GET_FIGHTER(fighter_gobj); fp = GET_FIGHTER(fighter_gobj);
// Current animation frame, integer // Current animation frame, integer
fp->nessVars[0].AttackHi4.yoyoCurrentFrame = 14; fp->nessVars.AttackHi4.yoyoCurrentFrame = 14;
yoyo_GObj = fp->sa.ness.x222C_yoyoGObj; yoyo_GObj = fp->sa.ness.x222C_yoyoGObj;
@ -429,7 +429,7 @@ bool ftNess_YoyoThink_IsRemove(HSD_GObj* fighter_gobj)
fp = fighter_gobj->user_data; fp = fighter_gobj->user_data;
if ((u32) fp->x2200_ftcmd_var0 != 0U) { if ((u32) fp->x2200_ftcmd_var0 != 0U) {
fp->nessVars[0].AttackHi4.isPosUpdateMod = 0; fp->nessVars.AttackHi4.isPosUpdateMod = 0;
} }
ASID = fp->action_id; ASID = fp->action_id;
if ((ASID >= AS_NESS_ATTACKHI4) && (ASID <= AS_NESS_ATTACKHI4_RELEASE)) { if ((ASID >= AS_NESS_ATTACKHI4) && (ASID <= AS_NESS_ATTACKHI4_RELEASE)) {
@ -439,7 +439,7 @@ bool ftNess_YoyoThink_IsRemove(HSD_GObj* fighter_gobj)
yoyoSpawnFrame = 2; yoyoSpawnFrame = 2;
yoyoDespawnFrame = 60; yoyoDespawnFrame = 60;
} }
yoyoSmashFrameCurr = fp->nessVars[0].AttackHi4.yoyoCurrentFrame; yoyoSmashFrameCurr = fp->nessVars.AttackHi4.yoyoCurrentFrame;
if ((yoyoSmashFrameCurr > yoyoSpawnFrame) && if ((yoyoSmashFrameCurr > yoyoSpawnFrame) &&
(yoyoSmashFrameCurr <= yoyoDespawnFrame)) (yoyoSmashFrameCurr <= yoyoDespawnFrame))
{ {
@ -467,7 +467,7 @@ bool ftNess_YoyoThink_IsRemove(HSD_GObj* fighter_gobj)
yoyoRotFrame = yoyo_attr->x48_DOWNSMASH_YOYO_ROT_FRAME; yoyoRotFrame = yoyo_attr->x48_DOWNSMASH_YOYO_ROT_FRAME;
yoyoNudgeFrame = yoyo_attr->x4C_DOWNSMASH_YOYO_NUDGE_FRAME; yoyoNudgeFrame = yoyo_attr->x4C_DOWNSMASH_YOYO_NUDGE_FRAME;
} }
yoyoSmashFrameCurr2 = fp->nessVars[0].AttackHi4.yoyoCurrentFrame; yoyoSmashFrameCurr2 = fp->nessVars.AttackHi4.yoyoCurrentFrame;
if (yoyoSmashFrameCurr2 == yoyoRotFrame) { if (yoyoSmashFrameCurr2 == yoyoRotFrame) {
sp14 = YoyoThinkPos; sp14 = YoyoThinkPos;
func_802C0010(yoyo_GObj, &sp14); func_802C0010(yoyo_GObj, &sp14);
@ -482,9 +482,7 @@ bool ftNess_YoyoThink_IsRemove(HSD_GObj* fighter_gobj)
} else if (yoyoSmashFrameCurr2 == yoyoNudgeFrame) { } else if (yoyoSmashFrameCurr2 == yoyoNudgeFrame) {
func_802BFEC4(yoyo_GObj); func_802BFEC4(yoyo_GObj);
} }
if ((s32) fp->nessVars[0].AttackHi4.yoyoCurrentFrame == if ((s32) fp->nessVars.AttackHi4.yoyoCurrentFrame == yoyoDespawnFrame) {
yoyoDespawnFrame)
{
func_802BE958(fp->sa.ness.x222C_yoyoGObj); func_802BE958(fp->sa.ness.x222C_yoyoGObj);
} }
} else if (yoyoSmashFrameCurr == yoyoSpawnFrame) { } else if (yoyoSmashFrameCurr == yoyoSpawnFrame) {
@ -524,7 +522,7 @@ void ftNess_YoyoSetUnkRate(HSD_GObj* fighter_gobj)
texanim_unk = yoyo_attr->x20_UNK_TEXANIM_MOD; texanim_unk = yoyo_attr->x20_UNK_TEXANIM_MOD;
yoyo_float = ((texanim_unk - yoyo_attr->x1C_UNK_TEXANIM_SPEED)); yoyo_float = ((texanim_unk - yoyo_attr->x1C_UNK_TEXANIM_SPEED));
yoyo_float = yoyo_float =
yoyo_float * ((f32) fp->nessVars[0].AttackHi4.yoyoCurrentFrame / yoyo_float * ((f32) fp->nessVars.AttackHi4.yoyoCurrentFrame /
ness_attr->xAC_YOYO_CHARGE_DURATION); ness_attr->xAC_YOYO_CHARGE_DURATION);
fp->sa.ness.x223C = texanim_unk - yoyo_float; fp->sa.ness.x223C = texanim_unk - yoyo_float;
@ -602,15 +600,15 @@ void ftNess_AttackHi4_Action(HSD_GObj* fighter_gobj)
fp = GET_FIGHTER(fighter_gobj); fp = GET_FIGHTER(fighter_gobj);
fp->x2218_flag.bits.b0 = 0; fp->x2218_flag.bits.b0 = 0;
fp->nessVars[0].AttackHi4.isChargeDisable = false; fp->nessVars.AttackHi4.isChargeDisable = false;
temp_fp = GET_FIGHTER(fighter_gobj); temp_fp = GET_FIGHTER(fighter_gobj);
temp_fp->x2204_ftcmd_var1 = 0; temp_fp->x2204_ftcmd_var1 = 0;
temp_fp->x2200_ftcmd_var0 = 0; temp_fp->x2200_ftcmd_var0 = 0;
temp_fp->nessVars[0].AttackHi4.yoyoCurrentFrame = 1; temp_fp->nessVars.AttackHi4.yoyoCurrentFrame = 1;
temp_fp->nessVars[0].AttackHi4.yoyoRehitTimer = 0; temp_fp->nessVars.AttackHi4.yoyoRehitTimer = 0;
temp_fp->nessVars[0].AttackHi4.isPosUpdateMod = 1; temp_fp->nessVars.AttackHi4.isPosUpdateMod = 1;
temp_fp->sa.ness.x2230_yoyoHitboxPos.z = 0.0f; temp_fp->sa.ness.x2230_yoyoHitboxPos.z = 0.0f;
temp_fp->sa.ness.x2230_yoyoHitboxPos.y = 0.0f; temp_fp->sa.ness.x2230_yoyoHitboxPos.y = 0.0f;
temp_fp->sa.ness.x2230_yoyoHitboxPos.x = 0.0f; temp_fp->sa.ness.x2230_yoyoHitboxPos.x = 0.0f;
@ -630,7 +628,7 @@ void ftNess_YoyoStartTimedRehit(HSD_GObj* fighter_gobj)
fp = GET_FIGHTER(fighter_gobj); fp = GET_FIGHTER(fighter_gobj);
ness_attr = fp->x2D4_specialAttributes; ness_attr = fp->x2D4_specialAttributes;
fp->nessVars[0].AttackHi4.yoyoRehitTimer = fp->nessVars.AttackHi4.yoyoRehitTimer =
(s32) ness_attr->xB4_YOYO_REHIT_RATE; (s32) ness_attr->xB4_YOYO_REHIT_RATE;
} }
@ -656,25 +654,23 @@ void ftNess_AttackHi4_Anim(HSD_GObj* fighter_gobj)
fp = fighter_gobj->user_data; fp = fighter_gobj->user_data;
fighter_data2 = fighter_gobj->user_data; fighter_data2 = fighter_gobj->user_data;
yoyoSmashFrameCurr = fighter_data2->nessVars[0].AttackHi4.yoyoCurrentFrame; yoyoSmashFrameCurr = fighter_data2->nessVars.AttackHi4.yoyoCurrentFrame;
fp->nessVars[0].AttackHi4.yoyoCurrentFrame = (s32) (yoyoSmashFrameCurr + 1); fp->nessVars.AttackHi4.yoyoCurrentFrame = (s32) (yoyoSmashFrameCurr + 1);
if (ftNess_YoyoThink_IsRemove(fighter_gobj) == false) { if (ftNess_YoyoThink_IsRemove(fighter_gobj) == false) {
fp = fighter_gobj->user_data; fp = fighter_gobj->user_data;
if ((u32) fp->x2200_ftcmd_var0 == 0U) { if ((u32) fp->x2200_ftcmd_var0 == 0U) {
yoyoRehitTimer = fp->nessVars[0].AttackHi4.yoyoRehitTimer; yoyoRehitTimer = fp->nessVars.AttackHi4.yoyoRehitTimer;
if (yoyoRehitTimer > 0) { if (yoyoRehitTimer > 0) {
fp->nessVars[0].AttackHi4.yoyoRehitTimer = fp->nessVars.AttackHi4.yoyoRehitTimer =
(s32) (yoyoRehitTimer - 1); (s32) (yoyoRehitTimer - 1);
if ((s32) fp->nessVars[0].AttackHi4.yoyoRehitTimer == 0) { if ((s32) fp->nessVars.AttackHi4.yoyoRehitTimer == 0) {
lbColl_80008440(&fp->x914[0]); lbColl_80008440(&fp->x914[0]);
lbColl_80008434(&fp->x914[0]); lbColl_80008434(&fp->x914[0]);
} }
} }
} }
if (((s32) fighter_data2->nessVars[0].AttackHi4.yoyoCurrentFrame == if (((s32) fighter_data2->nessVars.AttackHi4.yoyoCurrentFrame == 13) &&
13) && ((s32) fighter_data2->nessVars.AttackHi4.isChargeDisable == false))
((s32) fighter_data2->nessVars[0].AttackHi4.isChargeDisable ==
false))
{ {
/// @todo Unused stack. /// @todo Unused stack.
#ifdef MUST_MATCH #ifdef MUST_MATCH
@ -721,7 +717,7 @@ void ftNess_AttackHi4_IASA(
Fighter* fp = GET_FIGHTER(fighter_gobj); Fighter* fp = GET_FIGHTER(fighter_gobj);
if ((fp->input.x65C_heldInputs & HSD_BUTTON_A) == false) { if ((fp->input.x65C_heldInputs & HSD_BUTTON_A) == false) {
fp->nessVars[0].AttackHi4.isChargeDisable = fp->nessVars.AttackHi4.isChargeDisable =
true; // Toggle flag to disallow Yo-Yo charge until next Up Smash true; // Toggle flag to disallow Yo-Yo charge until next Up Smash
// instance // instance
} }
@ -801,7 +797,7 @@ void ftNess_AttackHi4_Charge_Anim(
fp = fighter_gobj->user_data; fp = fighter_gobj->user_data;
ness_attr = fp->x2D4_specialAttributes; ness_attr = fp->x2D4_specialAttributes;
fp->nessVars[0].AttackHi4.yoyoCurrentFrame++; fp->nessVars.AttackHi4.yoyoCurrentFrame++;
temp_ness_attr = getFtSpecialAttrs(temp_fp = getFighterPlus(fighter_gobj)); temp_ness_attr = getFtSpecialAttrs(temp_fp = getFighterPlus(fighter_gobj));
if ((yoyo_GObj = GetYoyoGObj(temp_fp = getFighterPlus(fighter_gobj))) != if ((yoyo_GObj = GetYoyoGObj(temp_fp = getFighterPlus(fighter_gobj))) !=
NULL) NULL)
@ -811,23 +807,22 @@ void ftNess_AttackHi4_Charge_Anim(
unk_float = unk_float =
(yoyo_attr->x20_UNK_TEXANIM_MOD - yoyo_attr->x1C_UNK_TEXANIM_SPEED); (yoyo_attr->x20_UNK_TEXANIM_MOD - yoyo_attr->x1C_UNK_TEXANIM_SPEED);
unk_float = unk_float =
unk_float * ((f32) temp_fp->nessVars[0].AttackHi4.yoyoCurrentFrame / unk_float * ((f32) temp_fp->nessVars.AttackHi4.yoyoCurrentFrame /
temp_ness_attr->xAC_YOYO_CHARGE_DURATION); temp_ness_attr->xAC_YOYO_CHARGE_DURATION);
temp_fp->sa.ness.x223C = yoyo_attr->x20_UNK_TEXANIM_MOD - unk_float; temp_fp->sa.ness.x223C = yoyo_attr->x20_UNK_TEXANIM_MOD - unk_float;
} }
fighter_data2 = fighter_gobj->user_data; fighter_data2 = fighter_gobj->user_data;
if ((u32) fighter_data2->x2200_ftcmd_var0 == 0U) { if ((u32) fighter_data2->x2200_ftcmd_var0 == 0U) {
if ((s32) fighter_data2->nessVars[0].AttackHi4.yoyoRehitTimer > 0) { if ((s32) fighter_data2->nessVars.AttackHi4.yoyoRehitTimer > 0) {
fighter_data2->nessVars[0].AttackHi4.yoyoRehitTimer--; fighter_data2->nessVars.AttackHi4.yoyoRehitTimer--;
if ((s32) fighter_data2->nessVars[0].AttackHi4.yoyoRehitTimer == 0) if ((s32) fighter_data2->nessVars.AttackHi4.yoyoRehitTimer == 0) {
{
lbColl_80008440(fighter_data2->x914); lbColl_80008440(fighter_data2->x914);
lbColl_80008434(fighter_data2->x914); lbColl_80008434(fighter_data2->x914);
} }
} }
} }
if ((f32) fp->nessVars[0].AttackHi4.yoyoCurrentFrame >= if ((f32) fp->nessVars.AttackHi4.yoyoCurrentFrame >=
ness_attr->xAC_YOYO_CHARGE_DURATION) ness_attr->xAC_YOYO_CHARGE_DURATION)
{ {
ftNess_AttackHi4_Release_Action(fighter_gobj); ftNess_AttackHi4_Release_Action(fighter_gobj);
@ -905,16 +900,16 @@ void ftNess_AttackHi4_Release_Anim(
Fighter* temp_fp; Fighter* temp_fp;
temp_fp = GET_FIGHTER(fighter_gobj); temp_fp = GET_FIGHTER(fighter_gobj);
yoyoSmashFrameCurr = temp_fp->nessVars[0].AttackHi4.yoyoCurrentFrame; yoyoSmashFrameCurr = temp_fp->nessVars.AttackHi4.yoyoCurrentFrame;
temp_fp->nessVars[0].AttackHi4.yoyoCurrentFrame = temp_fp->nessVars.AttackHi4.yoyoCurrentFrame =
(s32) (yoyoSmashFrameCurr + 1); (s32) (yoyoSmashFrameCurr + 1);
if (ftNess_YoyoThink_IsRemove(fighter_gobj) == false) { if (ftNess_YoyoThink_IsRemove(fighter_gobj) == false) {
fp = GET_FIGHTER(fighter_gobj); fp = GET_FIGHTER(fighter_gobj);
if ((u32) fp->x2200_ftcmd_var0 == 0U) { if ((u32) fp->x2200_ftcmd_var0 == 0U) {
yoyoRehitTimer = fp->nessVars[0].AttackHi4.yoyoRehitTimer; yoyoRehitTimer = fp->nessVars.AttackHi4.yoyoRehitTimer;
if (yoyoRehitTimer > 0) { if (yoyoRehitTimer > 0) {
fp->nessVars[0].AttackHi4.yoyoRehitTimer--; fp->nessVars.AttackHi4.yoyoRehitTimer--;
if ((s32) fp->nessVars[0].AttackHi4.yoyoRehitTimer == 0) { if ((s32) fp->nessVars.AttackHi4.yoyoRehitTimer == 0) {
lbColl_80008440(fp->x914); lbColl_80008440(fp->x914);
lbColl_80008434(fp->x914); lbColl_80008434(fp->x914);
} }
@ -954,7 +949,7 @@ void ftNess_AttackHi4_Release_Phys(
fp = GET_FIGHTER(fighter_gobj); fp = GET_FIGHTER(fighter_gobj);
func_80084F3C(fighter_gobj); func_80084F3C(fighter_gobj);
yoyoSmashFrameCurr = fp->nessVars[0].AttackHi4.yoyoCurrentFrame; yoyoSmashFrameCurr = fp->nessVars.AttackHi4.yoyoCurrentFrame;
if (yoyoSmashFrameCurr < 0x18) { if (yoyoSmashFrameCurr < 0x18) {
phi_f31 = 0.10000000149011612f * ((f32) yoyoSmashFrameCurr - 14.0f); phi_f31 = 0.10000000149011612f * ((f32) yoyoSmashFrameCurr - 14.0f);
if (phi_f31 >= 1.0f) { if (phi_f31 >= 1.0f) {
@ -1033,7 +1028,7 @@ void ftNess_AttackHi4_Release_Action(HSD_GObj* fighter_gobj)
fighter_data2 = getFighter(fighter_gobj); fighter_data2 = getFighter(fighter_gobj);
fighter_data2 = getFighter(fighter_gobj); fighter_data2 = getFighter(fighter_gobj);
fighter_data2->nessVars[0].AttackHi4.yoyoCurrentFrame = 14; fighter_data2->nessVars.AttackHi4.yoyoCurrentFrame = 14;
if ((yoyo_GObj = fighter_data2->sa.ness.x222C_yoyoGObj) != NULL) { if ((yoyo_GObj = fighter_data2->sa.ness.x222C_yoyoGObj) != NULL) {
yoyo_attr = GetYoyoAttr(yoyo_GObj); yoyo_attr = GetYoyoAttr(yoyo_GObj);

View File

@ -11,7 +11,7 @@ void ftNess_AttackLw4_Action(
Fighter* fp = GET_FIGHTER(fighter_gobj); Fighter* fp = GET_FIGHTER(fighter_gobj);
fp->x2218_flag.bits.b0 = 0; fp->x2218_flag.bits.b0 = 0;
fp->nessVars[0].AttackLw4.isChargeDisable = false; fp->nessVars.AttackLw4.isChargeDisable = false;
ftNess_YoyoSetVarAll(fighter_gobj); ftNess_YoyoSetVarAll(fighter_gobj);
Fighter_ActionStateChange_800693AC(fighter_gobj, AS_NESS_ATTACKLW4, 0, NULL, Fighter_ActionStateChange_800693AC(fighter_gobj, AS_NESS_ATTACKLW4, 0, NULL,
0.0f, 1.0f, 0.0f); 0.0f, 1.0f, 0.0f);
@ -28,11 +28,11 @@ void ftNess_AttackLw4_Anim(
{ {
Fighter* fp = GET_FIGHTER(fighter_gobj); Fighter* fp = GET_FIGHTER(fighter_gobj);
fp->nessVars[0].AttackLw4.yoyoCurrentFrame++; fp->nessVars.AttackLw4.yoyoCurrentFrame++;
if (ftNess_YoyoThink_IsRemove(fighter_gobj) == false) { if (ftNess_YoyoThink_IsRemove(fighter_gobj) == false) {
ftNess_YoyoCheckTimedRehit(fighter_gobj); ftNess_YoyoCheckTimedRehit(fighter_gobj);
if (((s32) fp->nessVars[0].AttackLw4.yoyoCurrentFrame == 13) && if (((s32) fp->nessVars.AttackLw4.yoyoCurrentFrame == 13) &&
((s32) fp->nessVars[0].AttackLw4.isChargeDisable == false) && ((s32) fp->nessVars.AttackLw4.isChargeDisable == false) &&
(ftNess_YoyoCheckNoObstruct(fighter_gobj) != false)) (ftNess_YoyoCheckNoObstruct(fighter_gobj) != false))
{ {
ftNess_AttackLw4_Charge_Action(fighter_gobj); ftNess_AttackLw4_Charge_Action(fighter_gobj);
@ -51,7 +51,7 @@ void ftNess_AttackLw4_IASA(
Fighter* fp = GET_FIGHTER(fighter_gobj); Fighter* fp = GET_FIGHTER(fighter_gobj);
if ((fp->input.x65C_heldInputs & HSD_BUTTON_A) == false) { if ((fp->input.x65C_heldInputs & HSD_BUTTON_A) == false) {
fp->nessVars[0].AttackLw4.isChargeDisable = true; fp->nessVars.AttackLw4.isChargeDisable = true;
} }
if (fp->x2218_flag.bits.b0 != 0) { if (fp->x2218_flag.bits.b0 != 0) {
func_8008A4D4(fighter_gobj); func_8008A4D4(fighter_gobj);
@ -90,12 +90,12 @@ void ftNess_AttackLw4_Charge_Anim(
ftNessAttributes* ness_attr; ftNessAttributes* ness_attr;
fp = GET_FIGHTER(fighter_gobj); fp = GET_FIGHTER(fighter_gobj);
yoyoSmashFrameCurr = fp->nessVars[0].AttackLw4.yoyoCurrentFrame; yoyoSmashFrameCurr = fp->nessVars.AttackLw4.yoyoCurrentFrame;
ness_attr = fp->x2D4_specialAttributes; ness_attr = fp->x2D4_specialAttributes;
fp->nessVars[0].AttackLw4.yoyoCurrentFrame = (s32) (yoyoSmashFrameCurr + 1); fp->nessVars.AttackLw4.yoyoCurrentFrame = (s32) (yoyoSmashFrameCurr + 1);
ftNess_YoyoSetUnkRate(fighter_gobj); ftNess_YoyoSetUnkRate(fighter_gobj);
ftNess_YoyoCheckTimedRehit(fighter_gobj); ftNess_YoyoCheckTimedRehit(fighter_gobj);
if ((f32) fp->nessVars[0].AttackLw4.yoyoCurrentFrame >= if ((f32) fp->nessVars.AttackLw4.yoyoCurrentFrame >=
ness_attr->xAC_YOYO_CHARGE_DURATION) ness_attr->xAC_YOYO_CHARGE_DURATION)
{ {
ftNess_AttackLw4_Release_Action(fighter_gobj); ftNess_AttackLw4_Release_Action(fighter_gobj);
@ -162,8 +162,8 @@ void ftNess_AttackLw4_Release_Anim(
Fighter* fp; Fighter* fp;
fp = GET_FIGHTER(fighter_gobj); fp = GET_FIGHTER(fighter_gobj);
yoyoSmashFrameCurr = fp->nessVars[0].AttackLw4.yoyoCurrentFrame; yoyoSmashFrameCurr = fp->nessVars.AttackLw4.yoyoCurrentFrame;
fp->nessVars[0].AttackLw4.yoyoCurrentFrame = (s32) (yoyoSmashFrameCurr + 1); fp->nessVars.AttackLw4.yoyoCurrentFrame = (s32) (yoyoSmashFrameCurr + 1);
if (ftNess_YoyoThink_IsRemove(fighter_gobj) == false) { if (ftNess_YoyoThink_IsRemove(fighter_gobj) == false) {
ftNess_YoyoCheckTimedRehit(fighter_gobj); ftNess_YoyoCheckTimedRehit(fighter_gobj);
if (!ftAnim_IsFramesRemaining(fighter_gobj)) { if (!ftAnim_IsFramesRemaining(fighter_gobj)) {
@ -194,7 +194,7 @@ void ftNess_AttackLw4_Release_Phys(
fp = GET_FIGHTER(fighter_gobj); fp = GET_FIGHTER(fighter_gobj);
func_80084F3C(fighter_gobj); func_80084F3C(fighter_gobj);
yoyoSmashFrameCurr = fp->nessVars[0].AttackLw4.yoyoCurrentFrame; yoyoSmashFrameCurr = fp->nessVars.AttackLw4.yoyoCurrentFrame;
if (yoyoSmashFrameCurr < 0x13) { if (yoyoSmashFrameCurr < 0x13) {
yoyoSmashUnk = yoyoSmashUnk =
0.20000000298023224f * ((f32) yoyoSmashFrameCurr - 14.0f); 0.20000000298023224f * ((f32) yoyoSmashFrameCurr - 14.0f);

View File

@ -194,17 +194,17 @@ bool ftNess_ItemPKThunder_CheckNessCollide(HSD_GObj* fighter_gobj)
if (!fp->sa.ness.x2244_pkThunderGObj) if (!fp->sa.ness.x2244_pkThunderGObj)
return false; return false;
switch (fp->nessVars[0].SpecialHi.thunderColl) { switch (fp->nessVars.SpecialHi.thunderColl) {
case 0: case 0:
pos = fp->xB0_pos; pos = fp->xB0_pos;
pos.y += 5.0f * fp->x34_scale.y; pos.y += 5.0f * fp->x34_scale.y;
func_802AB3F0(fp->sa.ness.x2244_pkThunderGObj, &pair, 0); func_802AB3F0(fp->sa.ness.x2244_pkThunderGObj, &pair, 0);
if (check_distance(&pos, &pair) == true) { if (check_distance(&pos, &pair) == true) {
fp->nessVars[0].SpecialHi.thunderColl = 2; fp->nessVars.SpecialHi.thunderColl = 2;
func_802AB3F0(fp->sa.ness.x2244_pkThunderGObj, func_802AB3F0(fp->sa.ness.x2244_pkThunderGObj,
&fp->nessVars[0].SpecialHi.collPos1, 0); &fp->nessVars.SpecialHi.collPos1, 0);
func_802AB3F0(fp->sa.ness.x2244_pkThunderGObj, func_802AB3F0(fp->sa.ness.x2244_pkThunderGObj,
&fp->nessVars[0].SpecialHi.collPos2, 1); &fp->nessVars.SpecialHi.collPos2, 1);
ret = true; ret = true;
} }
break; break;
@ -214,7 +214,7 @@ bool ftNess_ItemPKThunder_CheckNessCollide(HSD_GObj* fighter_gobj)
pos2.y += 5.0f * fp->x34_scale.y; pos2.y += 5.0f * fp->x34_scale.y;
func_802AB3F0(fp->sa.ness.x2244_pkThunderGObj, &pair2, 0); func_802AB3F0(fp->sa.ness.x2244_pkThunderGObj, &pair2, 0);
if (!check_distance(&pos2, &pair2)) { if (!check_distance(&pos2, &pair2)) {
fp->nessVars[0].SpecialHi.thunderColl = 0; fp->nessVars.SpecialHi.thunderColl = 0;
} }
} }
return ret; return ret;
@ -333,11 +333,11 @@ void ftNess_SpecialAirHi_CollisionModVel(
f32 phi_f3; f32 phi_f3;
fp = GET_FIGHTER(fighter_gobj); fp = GET_FIGHTER(fighter_gobj);
while (fp->nessVars[0].SpecialHi.aerialVel < 0.0f) { while (fp->nessVars.SpecialHi.aerialVel < 0.0f) {
fp->nessVars[0].SpecialHi.aerialVel += 2 * M_PI; fp->nessVars.SpecialHi.aerialVel += 2 * M_PI;
} }
while (fp->nessVars[0].SpecialHi.aerialVel > 2 * M_PI) { while (fp->nessVars.SpecialHi.aerialVel > 2 * M_PI) {
fp->nessVars[0].SpecialHi.aerialVel -= 2 * M_PI; fp->nessVars.SpecialHi.aerialVel -= 2 * M_PI;
} }
if ((coll_data->x134_envFlags & 0x3F) != 0) { if ((coll_data->x134_envFlags & 0x3F) != 0) {
phi_f1 = atan2f(coll_data->x160_rightwall.normal.y, phi_f1 = atan2f(coll_data->x160_rightwall.normal.y,
@ -349,7 +349,7 @@ void ftNess_SpecialAirHi_CollisionModVel(
while (phi_f1 > 2 * M_PI) { while (phi_f1 > 2 * M_PI) {
phi_f1 -= 2 * M_PI; phi_f1 -= 2 * M_PI;
} }
phi_f3 = M_PI + fp->nessVars[0].SpecialHi.aerialVel; phi_f3 = M_PI + fp->nessVars.SpecialHi.aerialVel;
while (phi_f3 < 0.0f) { while (phi_f3 < 0.0f) {
phi_f3 += 2 * M_PI; phi_f3 += 2 * M_PI;
@ -376,7 +376,7 @@ void ftNess_SpecialAirHi_CollisionModVel(
while (phi_f3 > 2 * M_PI) { while (phi_f3 > 2 * M_PI) {
phi_f3 -= 2 * M_PI; phi_f3 -= 2 * M_PI;
} }
if ((fp->nessVars[0].SpecialHi.aerialVel - phi_f3) < 0.0f) { if ((fp->nessVars.SpecialHi.aerialVel - phi_f3) < 0.0f) {
phi_f1 += M_PI / 2; phi_f1 += M_PI / 2;
} else { } else {
phi_f1 -= M_PI / 2; phi_f1 -= M_PI / 2;
@ -386,8 +386,8 @@ void ftNess_SpecialAirHi_CollisionModVel(
sp14.x = 0.0f; sp14.x = 0.0f;
sp14.z = 1.0f; sp14.z = 1.0f;
lbvector_RotateAboutUnitAxis(&fp->x80_self_vel, &sp14, lbvector_RotateAboutUnitAxis(&fp->x80_self_vel, &sp14,
phi_f1 - fp->nessVars[0].SpecialHi.aerialVel); phi_f1 - fp->nessVars.SpecialHi.aerialVel);
fp->nessVars[0].SpecialHi.aerialVel = fp->nessVars.SpecialHi.aerialVel =
atan2f(fp->x80_self_vel.y, fp->x80_self_vel.x); atan2f(fp->x80_self_vel.y, fp->x80_self_vel.x);
} }
@ -417,40 +417,40 @@ void ftNess_SpecialHi_StartAction(
fp->x2200_ftcmd_var0 = 0; fp->x2200_ftcmd_var0 = 0;
temp_fp = fighter_gobj->user_data; temp_fp = fighter_gobj->user_data;
temp_attr = getFtSpecialAttrs(temp_fp); temp_attr = getFtSpecialAttrs(temp_fp);
temp_fp->nessVars[0].SpecialHi.thunderTimerLoop1 = temp_fp->nessVars.SpecialHi.thunderTimerLoop1 =
(s32) temp_attr->x40_PK_THUNDER_LOOP1; (s32) temp_attr->x40_PK_THUNDER_LOOP1;
temp_fp->nessVars[0].SpecialHi.thunderTimerLoop2 = temp_fp->nessVars.SpecialHi.thunderTimerLoop2 =
(s32) temp_attr->x44_PK_THUNDER_LOOP2; (s32) temp_attr->x44_PK_THUNDER_LOOP2;
temp_fp->nessVars[0].SpecialHi.gravityDelay = temp_fp->nessVars.SpecialHi.gravityDelay =
(s32) temp_attr->x48_PK_THUNDER_GRAVITY_DELAY; (s32) temp_attr->x48_PK_THUNDER_GRAVITY_DELAY;
temp_f1_2 = 0.0f; temp_f1_2 = 0.0f;
temp_fp->nessVars[0].SpecialHi.fallAccel = 0.0f; temp_fp->nessVars.SpecialHi.fallAccel = 0.0f;
temp_fp->nessVars[0].SpecialHi.unkVector1.z = 0.0f; temp_fp->nessVars.SpecialHi.unkVector1.z = 0.0f;
temp_fp->nessVars[0].SpecialHi.unkVector1.y = 0.0f; temp_fp->nessVars.SpecialHi.unkVector1.y = 0.0f;
temp_fp->nessVars[0].SpecialHi.unkVector1.x = 0.0f; temp_fp->nessVars.SpecialHi.unkVector1.x = 0.0f;
temp_fp->nessVars[0].SpecialHi.unkVar4 = 0.0f; temp_fp->nessVars.SpecialHi.unkVar4 = 0.0f;
temp_fp->nessVars[0].SpecialHi.unkVar3 = 0.0f; temp_fp->nessVars.SpecialHi.unkVar3 = 0.0f;
temp_fp->cb.x21E4_callback_OnDeath2 = NULL; temp_fp->cb.x21E4_callback_OnDeath2 = NULL;
temp_fp->cb.x21DC_callback_OnTakeDamage = NULL; temp_fp->cb.x21DC_callback_OnTakeDamage = NULL;
func_8007592C(temp_fp, 0, 0.0f); func_8007592C(temp_fp, 0, 0.0f);
fp->nessVars[0].SpecialHi.thunderColl = 1; fp->nessVars.SpecialHi.thunderColl = 1;
fp->nessVars[0].SpecialHi.gravityDelay = fp->nessVars.SpecialHi.gravityDelay =
(s32) ness_attr->x48_PK_THUNDER_GRAVITY_DELAY; (s32) ness_attr->x48_PK_THUNDER_GRAVITY_DELAY;
fp->nessVars[0].SpecialHi.jibakuGFX = 0; fp->nessVars.SpecialHi.jibakuGFX = 0;
fp->nessVars[0].SpecialHi.collPos1.x = 0.0f; fp->nessVars.SpecialHi.collPos1.x = 0.0f;
fp->nessVars[0].SpecialHi.collPos1.x = 0.0f; fp->nessVars.SpecialHi.collPos1.x = 0.0f;
fp->nessVars[0].SpecialHi.collPos1.x = 0.0f; fp->nessVars.SpecialHi.collPos1.x = 0.0f;
fp->nessVars[0].SpecialHi.collPos2.x = 0.0f; fp->nessVars.SpecialHi.collPos2.x = 0.0f;
fp->nessVars[0].SpecialHi.collPos2.x = 0.0f; fp->nessVars.SpecialHi.collPos2.x = 0.0f;
fp->nessVars[0].SpecialHi.collPos2.x = 0.0f; fp->nessVars.SpecialHi.collPos2.x = 0.0f;
if (1.0f == fp->facing_dir) { if (1.0f == fp->facing_dir) {
phi_f0 = (f64) 0.0; phi_f0 = (f64) 0.0;
} else { } else {
phi_f0 = M_PI; phi_f0 = M_PI;
} }
fp->nessVars[0].SpecialHi.aerialVel = (f32) phi_f0; fp->nessVars.SpecialHi.aerialVel = (f32) phi_f0;
fp->nessVars[0].SpecialHi.facingDir = (f32) 1.0f; fp->nessVars.SpecialHi.facingDir = (f32) 1.0f;
fp->nessVars[0].SpecialHi.unkVar = (f32) 0.0f; fp->nessVars.SpecialHi.unkVar = (f32) 0.0f;
func_8006EBA4(fighter_gobj); func_8006EBA4(fighter_gobj);
} }
@ -485,40 +485,40 @@ void ftNess_SpecialAirHiStart_Action(
fp->x2200_ftcmd_var0 = 0; fp->x2200_ftcmd_var0 = 0;
temp_fp = fighter_gobj->user_data; temp_fp = fighter_gobj->user_data;
temp_attr = temp_fp->x2D4_specialAttributes; temp_attr = temp_fp->x2D4_specialAttributes;
temp_fp->nessVars[0].SpecialHi.thunderTimerLoop1 = temp_fp->nessVars.SpecialHi.thunderTimerLoop1 =
(s32) temp_attr->x40_PK_THUNDER_LOOP1; (s32) temp_attr->x40_PK_THUNDER_LOOP1;
temp_fp->nessVars[0].SpecialHi.thunderTimerLoop2 = temp_fp->nessVars.SpecialHi.thunderTimerLoop2 =
(s32) temp_attr->x44_PK_THUNDER_LOOP2; (s32) temp_attr->x44_PK_THUNDER_LOOP2;
temp_fp->nessVars[0].SpecialHi.gravityDelay = temp_fp->nessVars.SpecialHi.gravityDelay =
(s32) temp_attr->x48_PK_THUNDER_GRAVITY_DELAY; (s32) temp_attr->x48_PK_THUNDER_GRAVITY_DELAY;
temp_f1_2 = 0.0f; temp_f1_2 = 0.0f;
temp_fp->nessVars[0].SpecialHi.fallAccel = 0.0f; temp_fp->nessVars.SpecialHi.fallAccel = 0.0f;
temp_fp->nessVars[0].SpecialHi.unkVector1.z = 0.0f; temp_fp->nessVars.SpecialHi.unkVector1.z = 0.0f;
temp_fp->nessVars[0].SpecialHi.unkVector1.y = 0.0f; temp_fp->nessVars.SpecialHi.unkVector1.y = 0.0f;
temp_fp->nessVars[0].SpecialHi.unkVector1.x = 0.0f; temp_fp->nessVars.SpecialHi.unkVector1.x = 0.0f;
temp_fp->nessVars[0].SpecialHi.unkVar4 = 0.0f; temp_fp->nessVars.SpecialHi.unkVar4 = 0.0f;
temp_fp->nessVars[0].SpecialHi.unkVar3 = 0.0f; temp_fp->nessVars.SpecialHi.unkVar3 = 0.0f;
temp_fp->cb.x21E4_callback_OnDeath2 = NULL; temp_fp->cb.x21E4_callback_OnDeath2 = NULL;
temp_fp->cb.x21DC_callback_OnTakeDamage = NULL; temp_fp->cb.x21DC_callback_OnTakeDamage = NULL;
func_8007592C(temp_fp, 0, 0.0f); func_8007592C(temp_fp, 0, 0.0f);
fp->nessVars[0].SpecialHi.thunderColl = 1; fp->nessVars.SpecialHi.thunderColl = 1;
fp->nessVars[0].SpecialHi.gravityDelay = fp->nessVars.SpecialHi.gravityDelay =
(s32) ness_attr->x48_PK_THUNDER_GRAVITY_DELAY; (s32) ness_attr->x48_PK_THUNDER_GRAVITY_DELAY;
fp->nessVars[0].SpecialHi.jibakuGFX = false; fp->nessVars.SpecialHi.jibakuGFX = false;
fp->nessVars[0].SpecialHi.collPos1.x = 0.0f; fp->nessVars.SpecialHi.collPos1.x = 0.0f;
fp->nessVars[0].SpecialHi.collPos1.x = 0.0f; fp->nessVars.SpecialHi.collPos1.x = 0.0f;
fp->nessVars[0].SpecialHi.collPos1.x = 0.0f; fp->nessVars.SpecialHi.collPos1.x = 0.0f;
fp->nessVars[0].SpecialHi.collPos2.x = 0.0f; fp->nessVars.SpecialHi.collPos2.x = 0.0f;
fp->nessVars[0].SpecialHi.collPos2.x = 0.0f; fp->nessVars.SpecialHi.collPos2.x = 0.0f;
fp->nessVars[0].SpecialHi.collPos2.x = 0.0f; fp->nessVars.SpecialHi.collPos2.x = 0.0f;
if (1.0f == fp->facing_dir) { if (1.0f == fp->facing_dir) {
phi_f0 = (f64) 0.0; phi_f0 = (f64) 0.0;
} else { } else {
phi_f0 = M_PI; phi_f0 = M_PI;
} }
fp->nessVars[0].SpecialHi.aerialVel = (f32) phi_f0; fp->nessVars.SpecialHi.aerialVel = (f32) phi_f0;
fp->nessVars[0].SpecialHi.facingDir = (f32) 1.0f; fp->nessVars.SpecialHi.facingDir = (f32) 1.0f;
fp->nessVars[0].SpecialHi.unkVar = (f32) 0.0f; fp->nessVars.SpecialHi.unkVar = (f32) 0.0f;
fp->x80_self_vel.y = 0.0f; fp->x80_self_vel.y = 0.0f;
func_8006EBA4(fighter_gobj); func_8006EBA4(fighter_gobj);
} }
@ -552,7 +552,7 @@ void ftNess_SpecialHi_Action(
ness_attr = fp->x2D4_specialAttributes; ness_attr = fp->x2D4_specialAttributes;
if ((fp->x6F0_collData.x14C_ground.unk & 0x100) == 0) { if ((fp->x6F0_collData.x14C_ground.unk & 0x100) == 0) {
temp_f3 = 5.0f; temp_f3 = 5.0f;
sp40.x = fp->xB0_pos.x - fp->nessVars[0].SpecialHi.collPos1.x; sp40.x = fp->xB0_pos.x - fp->nessVars.SpecialHi.collPos1.x;
temp_f2 = fp->x34_scale.y; temp_f2 = fp->x34_scale.y;
temp_f1 = (temp_f3 * temp_f2) + fp->xB0_pos.y; temp_f1 = (temp_f3 * temp_f2) + fp->xB0_pos.y;
sp40.y = temp_f1 - fp->x2354_stateVar6_f32; sp40.y = temp_f1 - fp->x2354_stateVar6_f32;
@ -576,8 +576,8 @@ void ftNess_SpecialHi_Action(
} else { } else {
phi_f0_2 = -1.0f; phi_f0_2 = -1.0f;
} }
fp->nessVars[0].SpecialHi.facingDir = phi_f0_2; fp->nessVars.SpecialHi.facingDir = phi_f0_2;
fp->nessVars[0].SpecialHi.aerialVel = atan2f(sp40.y, sp40.x); fp->nessVars.SpecialHi.aerialVel = atan2f(sp40.y, sp40.x);
temp_f1_3 = 0.0f; temp_f1_3 = 0.0f;
Fighter_ActionStateChange_800693AC( Fighter_ActionStateChange_800693AC(
fighter_gobj, AS_NESS_SPECIALHI, 0, NULL, 0.0f, 1.0f, 0.0f); fighter_gobj, AS_NESS_SPECIALHI, 0, NULL, 0.0f, 1.0f, 0.0f);
@ -586,7 +586,7 @@ void ftNess_SpecialHi_Action(
fp->facing_dir); fp->facing_dir);
fp = getFighter(fighter_gobj); fp = getFighter(fighter_gobj);
ness_attr2 = getFtSpecialAttrs(fp); ness_attr2 = getFtSpecialAttrs(fp);
fp->nessVars[0].SpecialHi.unkVar = fp->nessVars.SpecialHi.unkVar =
(f32) ness_attr2->x58_PK_THUNDER_2_UNK1; (f32) ness_attr2->x58_PK_THUNDER_2_UNK1;
fighter_data2 = GET_FIGHTER(fighter_gobj); fighter_data2 = GET_FIGHTER(fighter_gobj);
func_8007592C(fighter_data2, 0, func_8007592C(fighter_data2, 0,
@ -646,7 +646,7 @@ inline void NessFloatMath_PKThunder2(
f32 phi_f0; f32 phi_f0;
fp = getFighter(fighter_gobj); fp = getFighter(fighter_gobj);
temp_f2 = fp->xB0_pos.x - fp->nessVars[0].SpecialHi.collPos1.x; temp_f2 = fp->xB0_pos.x - fp->nessVars.SpecialHi.collPos1.x;
ness_attr = getFtSpecialAttrs(fp); ness_attr = getFtSpecialAttrs(fp);
temp_f1 = temp_f1 =
((5.0f * fp->x34_scale.y) + fp->xB0_pos.y) - fp->x2354_stateVar6_f32; ((5.0f * fp->x34_scale.y) + fp->xB0_pos.y) - fp->x2354_stateVar6_f32;
@ -661,12 +661,12 @@ inline void NessFloatMath_PKThunder2(
} else { } else {
phi_f0 = -1.0f; phi_f0 = -1.0f;
} }
fp->nessVars[0].SpecialHi.facingDir = phi_f0; fp->nessVars.SpecialHi.facingDir = phi_f0;
fp->nessVars[0].SpecialHi.aerialVel = atan2f(temp_f1, temp_f2); fp->nessVars.SpecialHi.aerialVel = atan2f(temp_f1, temp_f2);
fp->x80_self_vel.x = (f32) (ness_attr->x54_PK_THUNDER_2_MOMENTUM * fp->x80_self_vel.x = (f32) (ness_attr->x54_PK_THUNDER_2_MOMENTUM *
cosf(fp->nessVars[0].SpecialHi.aerialVel)); cosf(fp->nessVars.SpecialHi.aerialVel));
fp->x80_self_vel.y = (f32) (ness_attr->x54_PK_THUNDER_2_MOMENTUM * fp->x80_self_vel.y = (f32) (ness_attr->x54_PK_THUNDER_2_MOMENTUM *
sinf(fp->nessVars[0].SpecialHi.aerialVel)); sinf(fp->nessVars.SpecialHi.aerialVel));
} }
// 0x80118570 // // 0x80118570 //
@ -686,8 +686,7 @@ void ftNess_SpecialAirHi_Action(
NULL, 0.0f, 1.0f, 0.0f); NULL, 0.0f, 1.0f, 0.0f);
fighter_data2 = GET_FIGHTER(fighter_gobj); fighter_data2 = GET_FIGHTER(fighter_gobj);
temp_attr = getFtSpecialAttrs(fighter_data2); temp_attr = getFtSpecialAttrs(fighter_data2);
fighter_data2->nessVars[0].SpecialHi.unkVar = fighter_data2->nessVars.SpecialHi.unkVar = temp_attr->x58_PK_THUNDER_2_UNK1;
temp_attr->x58_PK_THUNDER_2_UNK1;
fighter_data3 = GET_FIGHTER(fighter_gobj); fighter_data3 = GET_FIGHTER(fighter_gobj);
func_8007592C( func_8007592C(
fighter_data3, 0, fighter_data3, 0,
@ -762,20 +761,20 @@ void ftNess_SpecialHiHold_Anim(
Fighter* fighter_data3; Fighter* fighter_data3;
fp = fighter_gobj->user_data; fp = fighter_gobj->user_data;
thunderTimer = fp->nessVars[0].SpecialHi.thunderTimerLoop1; thunderTimer = fp->nessVars.SpecialHi.thunderTimerLoop1;
if (thunderTimer > 0) { if (thunderTimer > 0) {
fp->nessVars[0].SpecialHi.thunderTimerLoop1 = (s32) (thunderTimer - 1); fp->nessVars.SpecialHi.thunderTimerLoop1 = (s32) (thunderTimer - 1);
} }
if (fp->sa.ness.x2244_pkThunderGObj == NULL) { if (fp->sa.ness.x2244_pkThunderGObj == NULL) {
thunderTimer2 = fp->nessVars[0].SpecialHi.thunderTimerLoop2; thunderTimer2 = fp->nessVars.SpecialHi.thunderTimerLoop2;
if (thunderTimer2 > 0) { if (thunderTimer2 > 0) {
fp->nessVars[0].SpecialHi.thunderTimerLoop2 = fp->nessVars.SpecialHi.thunderTimerLoop2 =
(s32) (thunderTimer2 - 1); (s32) (thunderTimer2 - 1);
} }
} }
if (fp->sa.ness.x2244_pkThunderGObj == NULL) { if (fp->sa.ness.x2244_pkThunderGObj == NULL) {
if (((s32) fp->nessVars[0].SpecialHi.thunderTimerLoop1 <= 0) && if (((s32) fp->nessVars.SpecialHi.thunderTimerLoop1 <= 0) &&
((s32) fp->nessVars[0].SpecialHi.thunderTimerLoop2 <= 0)) ((s32) fp->nessVars.SpecialHi.thunderTimerLoop2 <= 0))
{ {
Fighter_ActionStateChange_800693AC( Fighter_ActionStateChange_800693AC(
fighter_gobj, AS_NESS_SPECIALHI_END, 0, NULL, 0.0f, 1.0f, 0.0f); fighter_gobj, AS_NESS_SPECIALHI_END, 0, NULL, 0.0f, 1.0f, 0.0f);
@ -844,9 +843,9 @@ void ftNess_SpecialHi_Anim(HSD_GObj* fighter_gobj) // Ness's grounded PK Thunder
Fighter* temp_fp; Fighter* temp_fp;
temp_fp = fighter_gobj->user_data; temp_fp = fighter_gobj->user_data;
temp_fp->nessVars[0].SpecialHi.jibakuGFX = temp_fp->nessVars.SpecialHi.jibakuGFX =
(s32) (temp_fp->nessVars[0].SpecialHi.jibakuGFX + 1); (s32) (temp_fp->nessVars.SpecialHi.jibakuGFX + 1);
if ((s32) temp_fp->nessVars[0].SpecialHi.jibakuGFX == 1) { if ((s32) temp_fp->nessVars.SpecialHi.jibakuGFX == 1) {
fp = fighter_gobj->user_data; fp = fighter_gobj->user_data;
ftNess_SpecialHiStopGFX(fighter_gobj); ftNess_SpecialHiStopGFX(fighter_gobj);
ef_Spawn(0x4EF, fighter_gobj, fp->x5E8_fighterBones[4].x0_jobj); ef_Spawn(0x4EF, fighter_gobj, fp->x5E8_fighterBones[4].x0_jobj);
@ -942,20 +941,20 @@ void ftNess_SpecialAirHiHold_Anim(
Fighter* fighter_data_r30; Fighter* fighter_data_r30;
fp = fighter_gobj->user_data; fp = fighter_gobj->user_data;
thunderTimer1 = fp->nessVars[0].SpecialHi.thunderTimerLoop1; thunderTimer1 = fp->nessVars.SpecialHi.thunderTimerLoop1;
if (thunderTimer1 > 0) { if (thunderTimer1 > 0) {
fp->nessVars[0].SpecialHi.thunderTimerLoop1 = (s32) (thunderTimer1 - 1); fp->nessVars.SpecialHi.thunderTimerLoop1 = (s32) (thunderTimer1 - 1);
} }
if (fp->sa.ness.x2244_pkThunderGObj == NULL) { if (fp->sa.ness.x2244_pkThunderGObj == NULL) {
thunderTimer2 = fp->nessVars[0].SpecialHi.thunderTimerLoop2; thunderTimer2 = fp->nessVars.SpecialHi.thunderTimerLoop2;
if (thunderTimer2 > 0) { if (thunderTimer2 > 0) {
fp->nessVars[0].SpecialHi.thunderTimerLoop2 = fp->nessVars.SpecialHi.thunderTimerLoop2 =
(s32) (thunderTimer2 - 1); (s32) (thunderTimer2 - 1);
} }
} }
if (fp->sa.ness.x2244_pkThunderGObj == NULL) { if (fp->sa.ness.x2244_pkThunderGObj == NULL) {
if (((s32) fp->nessVars[0].SpecialHi.thunderTimerLoop1 <= 0) && if (((s32) fp->nessVars.SpecialHi.thunderTimerLoop1 <= 0) &&
((s32) fp->nessVars[0].SpecialHi.thunderTimerLoop2 <= 0)) ((s32) fp->nessVars.SpecialHi.thunderTimerLoop2 <= 0))
{ {
Fighter_ActionStateChange_800693AC(fighter_gobj, Fighter_ActionStateChange_800693AC(fighter_gobj,
AS_NESS_SPECIALAIRHI_END, 0, AS_NESS_SPECIALAIRHI_END, 0,
@ -983,7 +982,7 @@ void ftNess_SpecialAirHiHold_Anim(
fighter_gobj, AS_NESS_SPECIALAIRHI, 0, NULL, 0.0f, 1.0f, 0.0f); fighter_gobj, AS_NESS_SPECIALAIRHI, 0, NULL, 0.0f, 1.0f, 0.0f);
fighter_data4 = fighter_gobj->user_data; fighter_data4 = fighter_gobj->user_data;
temp_attr = fighter_data4->x2D4_specialAttributes; temp_attr = fighter_data4->x2D4_specialAttributes;
fighter_data4->nessVars[0].SpecialHi.unkVar = fighter_data4->nessVars.SpecialHi.unkVar =
temp_attr->x58_PK_THUNDER_2_UNK1; temp_attr->x58_PK_THUNDER_2_UNK1;
fighter_data_r30 = fighter_gobj->user_data; fighter_data_r30 = fighter_gobj->user_data;
func_8007592C(fighter_data_r30, 0, func_8007592C(fighter_data_r30, 0,
@ -1058,9 +1057,9 @@ void ftNess_SpecialAirHi_Anim(
fp = fighter_gobj->user_data; fp = fighter_gobj->user_data;
ness_attr = fp->x2D4_specialAttributes; ness_attr = fp->x2D4_specialAttributes;
fp->nessVars[0].SpecialHi.jibakuGFX = fp->nessVars.SpecialHi.jibakuGFX =
(s32) (fp->nessVars[0].SpecialHi.jibakuGFX + 1); (s32) (fp->nessVars.SpecialHi.jibakuGFX + 1);
if ((s32) fp->nessVars[0].SpecialHi.jibakuGFX == 1) { if ((s32) fp->nessVars.SpecialHi.jibakuGFX == 1) {
fighter_data2 = fighter_gobj->user_data; fighter_data2 = fighter_gobj->user_data;
ftNess_SpecialHiStopGFX(fighter_gobj); ftNess_SpecialHiStopGFX(fighter_gobj);
ef_Spawn(0x4EF, fighter_gobj, ef_Spawn(0x4EF, fighter_gobj,
@ -1068,7 +1067,7 @@ void ftNess_SpecialAirHi_Anim(
fighter_data2->sa.ness.x224C_thunderGFX = true; fighter_data2->sa.ness.x224C_thunderGFX = true;
} }
if (!ftAnim_IsFramesRemaining(fighter_gobj)) { if (!ftAnim_IsFramesRemaining(fighter_gobj)) {
temp_f1 = fp->nessVars[0].SpecialHi.fallAccel; temp_f1 = fp->nessVars.SpecialHi.fallAccel;
phi_f1 = temp_f1; phi_f1 = temp_f1;
if (temp_f1 < 0.0f) { if (temp_f1 < 0.0f) {
phi_f1 = -temp_f1; phi_f1 = -temp_f1;
@ -1171,10 +1170,9 @@ inline void ThunderPhysTimer(HSD_GObj* fighter_gobj)
s32 thunderPhysTimer; s32 thunderPhysTimer;
temp_fp = fighter_gobj->user_data; temp_fp = fighter_gobj->user_data;
thunderPhysTimer = temp_fp->nessVars[0].SpecialHi.gravityDelay; thunderPhysTimer = temp_fp->nessVars.SpecialHi.gravityDelay;
if (thunderPhysTimer != 0) { if (thunderPhysTimer != 0) {
temp_fp->nessVars[0].SpecialHi.gravityDelay = temp_fp->nessVars.SpecialHi.gravityDelay = (s32) (thunderPhysTimer - 1);
(s32) (thunderPhysTimer - 1);
} }
} }
@ -1231,7 +1229,7 @@ void ftNess_SpecialHi_Phys(
} else if (temp_fp->xEC_ground_vel >= -9.999999747378752e-05f) { } else if (temp_fp->xEC_ground_vel >= -9.999999747378752e-05f) {
temp_fp->xEC_ground_vel = temp_f2; temp_fp->xEC_ground_vel = temp_f2;
} }
if (1.0f == temp_fp->nessVars[0].SpecialHi.facingDir) { if (1.0f == temp_fp->nessVars.SpecialHi.facingDir) {
if (temp_fp->x80_self_vel.y <= 9.999999747378752e-05f) { if (temp_fp->x80_self_vel.y <= 9.999999747378752e-05f) {
temp_fp->x80_self_vel.y = temp_f3; temp_fp->x80_self_vel.y = temp_f3;
} }
@ -1260,10 +1258,10 @@ void ftNess_SpecialAirHiStart_Phys(
ftNessAttributes* ness_attr; ftNessAttributes* ness_attr;
fp = fighter_gobj->user_data; fp = fighter_gobj->user_data;
thunderPhysTimer = fp->nessVars[0].SpecialHi.gravityDelay; thunderPhysTimer = fp->nessVars.SpecialHi.gravityDelay;
ness_attr = fp->x2D4_specialAttributes; ness_attr = fp->x2D4_specialAttributes;
if (thunderPhysTimer != 0) { if (thunderPhysTimer != 0) {
fp->nessVars[0].SpecialHi.gravityDelay = thunderPhysTimer - 1; fp->nessVars.SpecialHi.gravityDelay = thunderPhysTimer - 1;
goto block_friction; goto block_friction;
} }
func_8007D494(fp, ness_attr->x50_PK_THUNDER_FALL_ACCEL, func_8007D494(fp, ness_attr->x50_PK_THUNDER_FALL_ACCEL,
@ -1287,10 +1285,10 @@ void ftNess_SpecialAirHiHold_Phys(
ftNessAttributes* ness_attr; ftNessAttributes* ness_attr;
fp = fighter_gobj->user_data; fp = fighter_gobj->user_data;
thunderPhysTimer = fp->nessVars[0].SpecialHi.gravityDelay; thunderPhysTimer = fp->nessVars.SpecialHi.gravityDelay;
ness_attr = fp->x2D4_specialAttributes; ness_attr = fp->x2D4_specialAttributes;
if (thunderPhysTimer != 0) { if (thunderPhysTimer != 0) {
fp->nessVars[0].SpecialHi.gravityDelay = thunderPhysTimer - 1; fp->nessVars.SpecialHi.gravityDelay = thunderPhysTimer - 1;
goto block_friction; goto block_friction;
} }
func_8007D494(fp, ness_attr->x50_PK_THUNDER_FALL_ACCEL, func_8007D494(fp, ness_attr->x50_PK_THUNDER_FALL_ACCEL,
@ -1312,10 +1310,10 @@ void ftNess_SpecialAirHiEnd_Phys(
ftNessAttributes* ness_attr; ftNessAttributes* ness_attr;
fp = fighter_gobj->user_data; fp = fighter_gobj->user_data;
thunderPhysTimer = fp->nessVars[0].SpecialHi.gravityDelay; thunderPhysTimer = fp->nessVars.SpecialHi.gravityDelay;
ness_attr = fp->x2D4_specialAttributes; ness_attr = fp->x2D4_specialAttributes;
if (thunderPhysTimer != 0) { if (thunderPhysTimer != 0) {
fp->nessVars[0].SpecialHi.gravityDelay = thunderPhysTimer - 1; fp->nessVars.SpecialHi.gravityDelay = thunderPhysTimer - 1;
goto block_friction; goto block_friction;
} }
func_8007D494(fp, ness_attr->x50_PK_THUNDER_FALL_ACCEL, func_8007D494(fp, ness_attr->x50_PK_THUNDER_FALL_ACCEL,
@ -1394,21 +1392,21 @@ void ftNess_SpecialAirHi_Phys(
if (temp_f2 <= 9.999999747378752e-05f) { if (temp_f2 <= 9.999999747378752e-05f) {
phi_f31 = phi_f1; phi_f31 = phi_f1;
} }
fp->x80_self_vel.x = phi_f31 * cosf(fp->nessVars[0].SpecialHi.aerialVel); fp->x80_self_vel.x = phi_f31 * cosf(fp->nessVars.SpecialHi.aerialVel);
fp->x80_self_vel.y = phi_f31 * sinf(fp->nessVars[0].SpecialHi.aerialVel); fp->x80_self_vel.y = phi_f31 * sinf(fp->nessVars.SpecialHi.aerialVel);
ftNess_atan2(fighter_gobj); ftNess_atan2(fighter_gobj);
fp->x2374_Vec3 = fp->x80_self_vel; fp->x2374_Vec3 = fp->x80_self_vel;
if ((u32) fp->x2200_ftcmd_var0 == 1U) { if ((u32) fp->x2200_ftcmd_var0 == 1U) {
fp->nessVars[0].SpecialHi.fallAccel = fp->nessVars.SpecialHi.fallAccel =
(f32) fp->nessVars[0].SpecialHi.fallAccel - (f32) fp->nessVars.SpecialHi.fallAccel -
ness_attr->x50_PK_THUNDER_FALL_ACCEL; ness_attr->x50_PK_THUNDER_FALL_ACCEL;
if ((f32) fp->nessVars[0].SpecialHi.fallAccel < if ((f32) fp->nessVars.SpecialHi.fallAccel <
-ness_attr->x54_PK_THUNDER_2_MOMENTUM) -ness_attr->x54_PK_THUNDER_2_MOMENTUM)
{ {
fp->nessVars[0].SpecialHi.fallAccel = fp->nessVars.SpecialHi.fallAccel =
-ness_attr->x54_PK_THUNDER_2_MOMENTUM; -ness_attr->x54_PK_THUNDER_2_MOMENTUM;
} }
fp->xB0_pos.y += (f32) fp->nessVars[0].SpecialHi.fallAccel; fp->xB0_pos.y += (f32) fp->nessVars.SpecialHi.fallAccel;
} }
} }
@ -1504,18 +1502,18 @@ void ftNess_SpecialHi_Coll(HSD_GObj* fighter_gobj) // Ness's grounded PK Thunder
func_8007D60C(fp); func_8007D60C(fp);
temp_fp = fighter_gobj->user_data; temp_fp = fighter_gobj->user_data;
temp_attr = temp_fp->x2D4_specialAttributes; temp_attr = temp_fp->x2D4_specialAttributes;
temp_fp->nessVars[0].SpecialHi.thunderTimerLoop1 = temp_fp->nessVars.SpecialHi.thunderTimerLoop1 =
(s32) temp_attr->x40_PK_THUNDER_LOOP1; (s32) temp_attr->x40_PK_THUNDER_LOOP1;
temp_fp->nessVars[0].SpecialHi.thunderTimerLoop2 = temp_fp->nessVars.SpecialHi.thunderTimerLoop2 =
(s32) temp_attr->x44_PK_THUNDER_LOOP2; (s32) temp_attr->x44_PK_THUNDER_LOOP2;
temp_fp->nessVars[0].SpecialHi.gravityDelay = temp_fp->nessVars.SpecialHi.gravityDelay =
(s32) temp_attr->x48_PK_THUNDER_GRAVITY_DELAY; (s32) temp_attr->x48_PK_THUNDER_GRAVITY_DELAY;
temp_fp->nessVars[0].SpecialHi.fallAccel = 0.0f; temp_fp->nessVars.SpecialHi.fallAccel = 0.0f;
temp_fp->nessVars[0].SpecialHi.unkVector1.z = 0.0f; temp_fp->nessVars.SpecialHi.unkVector1.z = 0.0f;
temp_fp->nessVars[0].SpecialHi.unkVector1.y = 0.0f; temp_fp->nessVars.SpecialHi.unkVector1.y = 0.0f;
temp_fp->nessVars[0].SpecialHi.unkVector1.x = 0.0f; temp_fp->nessVars.SpecialHi.unkVector1.x = 0.0f;
temp_fp->nessVars[0].SpecialHi.unkVar4 = 0.0f; temp_fp->nessVars.SpecialHi.unkVar4 = 0.0f;
temp_fp->nessVars[0].SpecialHi.unkVar3 = 0.0f; temp_fp->nessVars.SpecialHi.unkVar3 = 0.0f;
temp_fp->cb.x21E4_callback_OnDeath2 = NULL; temp_fp->cb.x21E4_callback_OnDeath2 = NULL;
temp_fp->cb.x21DC_callback_OnTakeDamage = NULL; temp_fp->cb.x21DC_callback_OnTakeDamage = NULL;
func_8007592C(temp_fp, 0, 0.0f); func_8007592C(temp_fp, 0, 0.0f);
@ -1562,7 +1560,7 @@ void ftNess_SpecialHi_Coll(HSD_GObj* fighter_gobj) // Ness's grounded PK Thunder
} else { } else {
phi_f31 = M_PI / 2; phi_f31 = M_PI / 2;
} }
fp->nessVars[0].SpecialHi.aerialVel = fp->nessVars.SpecialHi.aerialVel =
(f32) (phi_f31 + atan2f(fp->x6F0_collData.x14C_ground.normal.y, (f32) (phi_f31 + atan2f(fp->x6F0_collData.x14C_ground.normal.y,
fp->x6F0_collData.x14C_ground.normal.x)); fp->x6F0_collData.x14C_ground.normal.x));
return; return;
@ -1572,7 +1570,7 @@ void ftNess_SpecialHi_Coll(HSD_GObj* fighter_gobj) // Ness's grounded PK Thunder
} else { } else {
phi_f31_2 = -M_PI / 2; phi_f31_2 = -M_PI / 2;
} }
fp->nessVars[0].SpecialHi.aerialVel = fp->nessVars.SpecialHi.aerialVel =
(f32) (phi_f31_2 + atan2f(fp->x6F0_collData.x14C_ground.normal.y, (f32) (phi_f31_2 + atan2f(fp->x6F0_collData.x14C_ground.normal.y,
fp->x6F0_collData.x14C_ground.normal.x)); fp->x6F0_collData.x14C_ground.normal.x));
} }

View File

@ -26,10 +26,10 @@ void ftNess_SpecialLwStart_Action(
temp_fp = GET_FIGHTER(fighter_gobj); temp_fp = GET_FIGHTER(fighter_gobj);
ness_attr = temp_fp->x2D4_specialAttributes; ness_attr = temp_fp->x2D4_specialAttributes;
temp_fp->nessVars[0].SpecialLw.releaseLag = temp_fp->nessVars.SpecialLw.releaseLag =
(s32) ness_attr->x74_PSI_MAGNET_RELEASE_LAG; (s32) ness_attr->x74_PSI_MAGNET_RELEASE_LAG;
temp_fp->nessVars[0].SpecialLw.isRelease = 0; temp_fp->nessVars.SpecialLw.isRelease = 0;
temp_fp->nessVars[0].SpecialLw.gravityDelay = temp_fp->nessVars.SpecialLw.gravityDelay =
(s32) ness_attr->x84_PSI_MAGNET_FRAMES_BEFORE_GRAVITY; (s32) ness_attr->x84_PSI_MAGNET_FRAMES_BEFORE_GRAVITY;
temp_fp->x2350_stateVar5 = 0; temp_fp->x2350_stateVar5 = 0;
Fighter_ActionStateChange_800693AC(fighter_gobj, AS_NESS_SPECIALLW_START, 0, Fighter_ActionStateChange_800693AC(fighter_gobj, AS_NESS_SPECIALLW_START, 0,
@ -53,10 +53,10 @@ void ftNess_SpecialAirLwStart_Action(
temp_fp = GET_FIGHTER(fighter_gobj); temp_fp = GET_FIGHTER(fighter_gobj);
ness_attr = temp_fp->x2D4_specialAttributes; ness_attr = temp_fp->x2D4_specialAttributes;
temp_fp->nessVars[0].SpecialLw.releaseLag = temp_fp->nessVars.SpecialLw.releaseLag =
(s32) ness_attr->x74_PSI_MAGNET_RELEASE_LAG; (s32) ness_attr->x74_PSI_MAGNET_RELEASE_LAG;
temp_fp->nessVars[0].SpecialLw.isRelease = 0; temp_fp->nessVars.SpecialLw.isRelease = 0;
temp_fp->nessVars[0].SpecialLw.gravityDelay = temp_fp->nessVars.SpecialLw.gravityDelay =
(s32) ness_attr->x84_PSI_MAGNET_FRAMES_BEFORE_GRAVITY; (s32) ness_attr->x84_PSI_MAGNET_FRAMES_BEFORE_GRAVITY;
temp_fp->x2350_stateVar5 = 0; temp_fp->x2350_stateVar5 = 0;
temp_fp->x80_self_vel.y = 0.0f; temp_fp->x80_self_vel.y = 0.0f;
@ -78,7 +78,7 @@ void ftNess_SpecialLwStart_Anim(
fighter_data2 = GET_FIGHTER(fighter_gobj); fighter_data2 = GET_FIGHTER(fighter_gobj);
if (FLAGS_NONE(fighter_data2->input.x65C_heldInputs, HSD_BUTTON_B)) { if (FLAGS_NONE(fighter_data2->input.x65C_heldInputs, HSD_BUTTON_B)) {
fighter_data2->nessVars[0].SpecialLw.isRelease = 1; fighter_data2->nessVars.SpecialLw.isRelease = 1;
} }
if (!ftAnim_IsFramesRemaining(fighter_gobj)) { if (!ftAnim_IsFramesRemaining(fighter_gobj)) {
@ -117,7 +117,7 @@ void ftNess_SpecialAirLwStart_Anim(
fighter_data2 = fp = GET_FIGHTER(fighter_gobj); fighter_data2 = fp = GET_FIGHTER(fighter_gobj);
if ((fighter_data2->input.x65C_heldInputs & HSD_BUTTON_B) == false) { if ((fighter_data2->input.x65C_heldInputs & HSD_BUTTON_B) == false) {
fighter_data2->nessVars[0].SpecialLw.isRelease = 1; fighter_data2->nessVars.SpecialLw.isRelease = 1;
} }
if (!ftAnim_IsFramesRemaining(fighter_gobj)) { if (!ftAnim_IsFramesRemaining(fighter_gobj)) {
@ -177,9 +177,9 @@ void ftNess_SpecialAirLwStart_Phys(
fp = GET_FIGHTER(fighter_gobj); fp = GET_FIGHTER(fighter_gobj);
attr = &fp->x110_attr; attr = &fp->x110_attr;
ness_attr = fp->x2D4_specialAttributes; ness_attr = fp->x2D4_specialAttributes;
gravityDelay = fp->nessVars[0].SpecialLw.gravityDelay; gravityDelay = fp->nessVars.SpecialLw.gravityDelay;
if (gravityDelay != 0) { if (gravityDelay != 0) {
fp->nessVars[0].SpecialLw.gravityDelay = gravityDelay - 1; fp->nessVars.SpecialLw.gravityDelay = gravityDelay - 1;
goto block_end; goto block_end;
} }
@ -253,14 +253,14 @@ void ftNess_SpecialLwHold_Anim(
fp = GET_FIGHTER(fighter_gobj); fp = GET_FIGHTER(fighter_gobj);
if ((fp->input.x65C_heldInputs & HSD_BUTTON_B) == false) { if ((fp->input.x65C_heldInputs & HSD_BUTTON_B) == false) {
fp->nessVars[0].SpecialLw.isRelease = 1; fp->nessVars.SpecialLw.isRelease = 1;
} }
if (fp->nessVars[0].SpecialLw.releaseLag > 0) { if (fp->nessVars.SpecialLw.releaseLag > 0) {
fp->nessVars[0].SpecialLw.releaseLag--; fp->nessVars.SpecialLw.releaseLag--;
} }
if (((s32) fp->nessVars[0].SpecialLw.releaseLag <= 0) && if (((s32) fp->nessVars.SpecialLw.releaseLag <= 0) &&
((s32) fp->nessVars[0].SpecialLw.isRelease != 0)) ((s32) fp->nessVars.SpecialLw.isRelease != 0))
{ {
if ((s32) fp->xE0_ground_or_air == GA_Ground) { if ((s32) fp->xE0_ground_or_air == GA_Ground) {
ftNess_SpecialLwEnd_Action(fighter_gobj); ftNess_SpecialLwEnd_Action(fighter_gobj);
@ -294,15 +294,15 @@ void ftNess_SpecialAirLwHold_Anim(
fp = GET_FIGHTER(fighter_gobj); fp = GET_FIGHTER(fighter_gobj);
if ((fp->input.x65C_heldInputs & HSD_BUTTON_B) == false) { if ((fp->input.x65C_heldInputs & HSD_BUTTON_B) == false) {
fp->nessVars[0].SpecialLw.isRelease = 1; fp->nessVars.SpecialLw.isRelease = 1;
} }
if (fp->nessVars[0].SpecialLw.releaseLag > 0) { if (fp->nessVars.SpecialLw.releaseLag > 0) {
fp->nessVars[0].SpecialLw.releaseLag = fp->nessVars.SpecialLw.releaseLag =
(s32) (fp->nessVars[0].SpecialLw.releaseLag - 1); (s32) (fp->nessVars.SpecialLw.releaseLag - 1);
} }
if (((s32) fp->nessVars[0].SpecialLw.releaseLag <= 0) && if (((s32) fp->nessVars.SpecialLw.releaseLag <= 0) &&
((s32) fp->nessVars[0].SpecialLw.isRelease != 0)) ((s32) fp->nessVars.SpecialLw.isRelease != 0))
{ {
if ((s32) fp->xE0_ground_or_air == GA_Ground) { if ((s32) fp->xE0_ground_or_air == GA_Ground) {
ftNess_SpecialLwEnd_Action(fighter_gobj); ftNess_SpecialLwEnd_Action(fighter_gobj);
@ -359,9 +359,9 @@ void ftNess_SpecialAirLwHold_Phys(
ness_attr = fp->x2D4_specialAttributes; ness_attr = fp->x2D4_specialAttributes;
attr = &fp->x110_attr; attr = &fp->x110_attr;
magnetTimer = fp->nessVars[0].SpecialLw.gravityDelay; magnetTimer = fp->nessVars.SpecialLw.gravityDelay;
if (magnetTimer != 0) { if (magnetTimer != 0) {
fp->nessVars[0].SpecialLw.gravityDelay = magnetTimer - 1; fp->nessVars.SpecialLw.gravityDelay = magnetTimer - 1;
goto block_end; goto block_end;
} }
func_8007D494(fp, ness_attr->x8C_PSI_MAGNET_FALL_ACCEL, func_8007D494(fp, ness_attr->x8C_PSI_MAGNET_FALL_ACCEL,
@ -520,11 +520,11 @@ void ftNess_SpecialLwTurn_Anim(
Fighter* temp_r29 = temp_r30 = arg0->user_data; Fighter* temp_r29 = temp_r30 = arg0->user_data;
if ((temp_r29->input.x65C_heldInputs & HSD_BUTTON_B) == false) { if ((temp_r29->input.x65C_heldInputs & HSD_BUTTON_B) == false) {
temp_r29->nessVars[0].SpecialLw.isRelease = 1; temp_r29->nessVars.SpecialLw.isRelease = 1;
} }
if (temp_r29->nessVars[0].SpecialLw.releaseLag > 0) { if (temp_r29->nessVars.SpecialLw.releaseLag > 0) {
temp_r29->nessVars[0].SpecialLw.releaseLag = temp_r29->nessVars.SpecialLw.releaseLag =
temp_r29->nessVars[0].SpecialLw.releaseLag - 1; temp_r29->nessVars.SpecialLw.releaseLag - 1;
} }
GetAttrStuff(arg0); GetAttrStuff(arg0);
@ -545,12 +545,12 @@ void ftNess_SpecialAirLwTurn_Anim(HSD_GObj* arg0)
Fighter* temp_r29 = temp_r30 = arg0->user_data; Fighter* temp_r29 = temp_r30 = arg0->user_data;
if ((temp_r29->input.x65C_heldInputs & HSD_BUTTON_B) == false) { if ((temp_r29->input.x65C_heldInputs & HSD_BUTTON_B) == false) {
temp_r29->nessVars[0].SpecialLw.isRelease = 1; temp_r29->nessVars.SpecialLw.isRelease = 1;
} }
if (temp_r29->nessVars[0].SpecialLw.releaseLag > 0) { if (temp_r29->nessVars.SpecialLw.releaseLag > 0) {
temp_r29->nessVars[0].SpecialLw.releaseLag = temp_r29->nessVars.SpecialLw.releaseLag =
temp_r29->nessVars[0].SpecialLw.releaseLag - 1; temp_r29->nessVars.SpecialLw.releaseLag - 1;
} }
GetAttrStuff(arg0); GetAttrStuff(arg0);
@ -600,9 +600,9 @@ void ftNess_SpecialAirLwTurn_Phys(
ness_attr = fp->x2D4_specialAttributes; ness_attr = fp->x2D4_specialAttributes;
attr = &fp->x110_attr; attr = &fp->x110_attr;
magnetTimer = fp->nessVars[0].SpecialLw.gravityDelay; magnetTimer = fp->nessVars.SpecialLw.gravityDelay;
if (magnetTimer != 0) { if (magnetTimer != 0) {
fp->nessVars[0].SpecialLw.gravityDelay = magnetTimer - 1; fp->nessVars.SpecialLw.gravityDelay = magnetTimer - 1;
goto block_end; goto block_end;
} }
func_8007D494(fp, ness_attr->x8C_PSI_MAGNET_FALL_ACCEL, func_8007D494(fp, ness_attr->x8C_PSI_MAGNET_FALL_ACCEL,
@ -675,8 +675,8 @@ bool ftNess_SpecialLwHold_GroundOrAir(
ftNessAttributes* attrs; ftNessAttributes* attrs;
temp_r3 = arg0->user_data; temp_r3 = arg0->user_data;
if (((s32) temp_r3->nessVars[0].SpecialLw.releaseLag <= 0) && if (((s32) temp_r3->nessVars.SpecialLw.releaseLag <= 0) &&
((s32) temp_r3->nessVars[0].SpecialLw.isRelease != false)) ((s32) temp_r3->nessVars.SpecialLw.isRelease != false))
{ {
if ((s32) temp_r3->xE0_ground_or_air == GA_Ground) { if ((s32) temp_r3->xE0_ground_or_air == GA_Ground) {
ftNess_SpecialLwEnd_Action(arg0); ftNess_SpecialLwEnd_Action(arg0);
@ -735,17 +735,17 @@ void ftNess_SpecialLwHit_Anim(
temp_r4 = arg0->user_data; temp_r4 = arg0->user_data;
if (FLAGS_NONE(temp_r4->input.x65C_heldInputs, HSD_BUTTON_B)) { if (FLAGS_NONE(temp_r4->input.x65C_heldInputs, HSD_BUTTON_B)) {
temp_r4->nessVars[0].SpecialLw.isRelease = 1; temp_r4->nessVars.SpecialLw.isRelease = 1;
} }
if (temp_r4->nessVars[0].SpecialLw.releaseLag > 0) { if (temp_r4->nessVars.SpecialLw.releaseLag > 0) {
temp_r4->nessVars[0].SpecialLw.releaseLag = temp_r4->nessVars.SpecialLw.releaseLag =
(s32) (temp_r4->nessVars[0].SpecialLw.releaseLag - 1); (s32) (temp_r4->nessVars.SpecialLw.releaseLag - 1);
} }
if (!ftAnim_IsFramesRemaining(arg0)) { if (!ftAnim_IsFramesRemaining(arg0)) {
temp_r3_2 = arg0->user_data; temp_r3_2 = arg0->user_data;
if (((s32) temp_r3_2->nessVars[0].SpecialLw.releaseLag <= 0) && if (((s32) temp_r3_2->nessVars.SpecialLw.releaseLag <= 0) &&
((s32) temp_r3_2->nessVars[0].SpecialLw.isRelease != 0)) ((s32) temp_r3_2->nessVars.SpecialLw.isRelease != 0))
{ {
if ((s32) temp_r3_2->xE0_ground_or_air == GA_Ground) { if ((s32) temp_r3_2->xE0_ground_or_air == GA_Ground) {
ftNess_SpecialLwEnd_Action(arg0); ftNess_SpecialLwEnd_Action(arg0);
@ -800,12 +800,12 @@ void ftNess_SpecialAirLwHit_Anim(
temp_r4 = arg0->user_data; temp_r4 = arg0->user_data;
if ((temp_r4->input.x65C_heldInputs & HSD_BUTTON_B) == false) { if ((temp_r4->input.x65C_heldInputs & HSD_BUTTON_B) == false) {
temp_r4->nessVars[0].SpecialLw.isRelease = 1; temp_r4->nessVars.SpecialLw.isRelease = 1;
} }
if (temp_r4->nessVars[0].SpecialLw.releaseLag > 0) { if (temp_r4->nessVars.SpecialLw.releaseLag > 0) {
temp_r4->nessVars[0].SpecialLw.releaseLag = temp_r4->nessVars.SpecialLw.releaseLag =
(s32) (temp_r4->nessVars[0].SpecialLw.releaseLag - 1); (s32) (temp_r4->nessVars.SpecialLw.releaseLag - 1);
} }
if ((!ftAnim_IsFramesRemaining(arg0)) && if ((!ftAnim_IsFramesRemaining(arg0)) &&
(ftNess_SpecialLwHold_GroundOrAir(arg0) != false)) (ftNess_SpecialLwHold_GroundOrAir(arg0) != false))
@ -868,9 +868,9 @@ void ftNess_SpecialAirLwHit_Phys(
attrs = temp_r31->x2D4_specialAttributes; attrs = temp_r31->x2D4_specialAttributes;
attributes = &temp_r31->x110_attr; attributes = &temp_r31->x110_attr;
temp_r3 = temp_r31->nessVars[0].SpecialLw.gravityDelay; temp_r3 = temp_r31->nessVars.SpecialLw.gravityDelay;
if (temp_r3 != 0) { if (temp_r3 != 0) {
temp_r31->nessVars[0].SpecialLw.gravityDelay = temp_r3 - 1; temp_r31->nessVars.SpecialLw.gravityDelay = temp_r3 - 1;
goto end_part; goto end_part;
} }
func_8007D494(temp_r31, attrs->x8C_PSI_MAGNET_FALL_ACCEL, func_8007D494(temp_r31, attrs->x8C_PSI_MAGNET_FALL_ACCEL,
@ -1063,9 +1063,9 @@ void ftNess_SpecialAirLwEnd_Phys(
attrs = temp_r31->x2D4_specialAttributes; attrs = temp_r31->x2D4_specialAttributes;
attributes = &temp_r31->x110_attr; attributes = &temp_r31->x110_attr;
temp_r3 = temp_r31->nessVars[0].SpecialLw.gravityDelay; temp_r3 = temp_r31->nessVars.SpecialLw.gravityDelay;
if (temp_r3 != 0) { if (temp_r3 != 0) {
temp_r31->nessVars[0].SpecialLw.gravityDelay = temp_r3 - 1; temp_r31->nessVars.SpecialLw.gravityDelay = temp_r3 - 1;
goto end_part; goto end_part;
} }
func_8007D494(temp_r31, attrs->x8C_PSI_MAGNET_FALL_ACCEL, func_8007D494(temp_r31, attrs->x8C_PSI_MAGNET_FALL_ACCEL,

View File

@ -117,15 +117,15 @@ void ftNess_SpecialNStart_Action(
temp_fp = GET_FIGHTER(fighter_gobj); temp_fp = GET_FIGHTER(fighter_gobj);
ness_attr = getFtSpecialAttrs(temp_fp); ness_attr = getFtSpecialAttrs(temp_fp);
temp_fp->nessVars[0].SpecialN.flashTimerLoop1 = temp_fp->nessVars.SpecialN.flashTimerLoop1 =
(s32) ness_attr->x0_PKFLASH_TIMER1_LOOPFRAMES; (s32) ness_attr->x0_PKFLASH_TIMER1_LOOPFRAMES;
temp_fp->nessVars[0].SpecialN.flashTimerLoop2 = temp_fp->nessVars.SpecialN.flashTimerLoop2 =
(s32) ness_attr->x4_PKFLASH_TIMER2_LOOPFRAMES; (s32) ness_attr->x4_PKFLASH_TIMER2_LOOPFRAMES;
temp_fp->nessVars[0].SpecialN.gravityDelay = temp_fp->nessVars.SpecialN.gravityDelay =
(s32) ness_attr->x8_PKFLASH_GRAVITY_DELAY; (s32) ness_attr->x8_PKFLASH_GRAVITY_DELAY;
temp_fp->sa.ness.x2240_flashGObj = NULL; temp_fp->sa.ness.x2240_flashGObj = NULL;
temp_fp->nessVars[0].SpecialN.flashTimerMin = temp_fp->nessVars.SpecialN.flashTimerMin =
(s32) ness_attr->xC_PKFLASH_MINCHARGEFRAMES; (s32) ness_attr->xC_PKFLASH_MINCHARGEFRAMES;
temp_fp->cb.x21E4_callback_OnDeath2 = NULL; temp_fp->cb.x21E4_callback_OnDeath2 = NULL;
temp_fp->cb.x21DC_callback_OnTakeDamage = NULL; temp_fp->cb.x21DC_callback_OnTakeDamage = NULL;
@ -160,16 +160,16 @@ void ftNess_SpecialAirNStart_Action(
temp_fp = GET_FIGHTER(fighter_gobj); temp_fp = GET_FIGHTER(fighter_gobj);
ness_attr = getFtSpecialAttrs(temp_fp); ness_attr = getFtSpecialAttrs(temp_fp);
temp_fp->nessVars[0].SpecialN.flashTimerLoop1 = temp_fp->nessVars.SpecialN.flashTimerLoop1 =
(s32) ness_attr->x0_PKFLASH_TIMER1_LOOPFRAMES; (s32) ness_attr->x0_PKFLASH_TIMER1_LOOPFRAMES;
temp_fp->nessVars[0].SpecialN.flashTimerLoop2 = temp_fp->nessVars.SpecialN.flashTimerLoop2 =
(s32) ness_attr->x4_PKFLASH_TIMER2_LOOPFRAMES; (s32) ness_attr->x4_PKFLASH_TIMER2_LOOPFRAMES;
temp_fp->nessVars[0].SpecialN.gravityDelay = temp_fp->nessVars.SpecialN.gravityDelay =
(s32) ness_attr->x8_PKFLASH_GRAVITY_DELAY; (s32) ness_attr->x8_PKFLASH_GRAVITY_DELAY;
temp_fp->sa.ness.x2240_flashGObj = NULL; temp_fp->sa.ness.x2240_flashGObj = NULL;
temp_fp->nessVars[0].SpecialN.flashTimerMin = temp_fp->nessVars.SpecialN.flashTimerMin =
(s32) ness_attr->xC_PKFLASH_MINCHARGEFRAMES; (s32) ness_attr->xC_PKFLASH_MINCHARGEFRAMES;
temp_fp->cb.x21E4_callback_OnDeath2 = NULL; temp_fp->cb.x21E4_callback_OnDeath2 = NULL;
@ -225,17 +225,17 @@ void ftNess_SpecialNHold_Anim(
Fighter* fp; Fighter* fp;
fp = GET_FIGHTER(fighter_gobj); fp = GET_FIGHTER(fighter_gobj);
if (fp->nessVars[0].SpecialN.flashTimerLoop1 != 0) { if (fp->nessVars.SpecialN.flashTimerLoop1 != 0) {
fp->nessVars[0].SpecialN.flashTimerLoop1--; fp->nessVars.SpecialN.flashTimerLoop1--;
} }
if (fp->sa.ness.x2240_flashGObj == NULL) { if (fp->sa.ness.x2240_flashGObj == NULL) {
if (fp->nessVars[0].SpecialN.flashTimerLoop2 != 0) { if (fp->nessVars.SpecialN.flashTimerLoop2 != 0) {
fp->nessVars[0].SpecialN.flashTimerLoop2--; fp->nessVars.SpecialN.flashTimerLoop2--;
} }
} }
if (fp->sa.ness.x2240_flashGObj == NULL) { if (fp->sa.ness.x2240_flashGObj == NULL) {
if (((s32) fp->nessVars[0].SpecialN.flashTimerLoop1 <= 0) && if (((s32) fp->nessVars.SpecialN.flashTimerLoop1 <= 0) &&
((s32) fp->nessVars[0].SpecialN.flashTimerLoop2 <= 0)) ((s32) fp->nessVars.SpecialN.flashTimerLoop2 <= 0))
{ {
Fighter_ActionStateChange_800693AC( Fighter_ActionStateChange_800693AC(
fighter_gobj, AS_NESS_SPECIALN_END, 0, NULL, 0.0f, 1.0f, 0.0f); fighter_gobj, AS_NESS_SPECIALN_END, 0, NULL, 0.0f, 1.0f, 0.0f);
@ -268,14 +268,13 @@ SetPKFlashAttr(HSD_GObj* fighter_gobj) // Inline to set all variables and match
Fighter* fp = GET_FIGHTER(fighter_gobj); Fighter* fp = GET_FIGHTER(fighter_gobj);
ftNessAttributes* ness_attr = fp->x2D4_specialAttributes; ftNessAttributes* ness_attr = fp->x2D4_specialAttributes;
fp->nessVars[0].SpecialN.flashTimerLoop1 = fp->nessVars.SpecialN.flashTimerLoop1 =
ness_attr->x0_PKFLASH_TIMER1_LOOPFRAMES; ness_attr->x0_PKFLASH_TIMER1_LOOPFRAMES;
fp->nessVars[0].SpecialN.flashTimerLoop2 = fp->nessVars.SpecialN.flashTimerLoop2 =
ness_attr->x4_PKFLASH_TIMER2_LOOPFRAMES; ness_attr->x4_PKFLASH_TIMER2_LOOPFRAMES;
fp->nessVars[0].SpecialN.gravityDelay = ness_attr->x8_PKFLASH_GRAVITY_DELAY; fp->nessVars.SpecialN.gravityDelay = ness_attr->x8_PKFLASH_GRAVITY_DELAY;
fp->sa.ness.x2240_flashGObj = NULL; fp->sa.ness.x2240_flashGObj = NULL;
fp->nessVars[0].SpecialN.flashTimerMin = fp->nessVars.SpecialN.flashTimerMin = ness_attr->xC_PKFLASH_MINCHARGEFRAMES;
ness_attr->xC_PKFLASH_MINCHARGEFRAMES;
fp->cb.x21E4_callback_OnDeath2 = NULL; fp->cb.x21E4_callback_OnDeath2 = NULL;
fp->cb.x21DC_callback_OnTakeDamage = NULL; fp->cb.x21DC_callback_OnTakeDamage = NULL;
} }
@ -345,17 +344,17 @@ void ftNess_SpecialAirNHold_Anim(
{ {
Fighter* fp = GET_FIGHTER(fighter_gobj); Fighter* fp = GET_FIGHTER(fighter_gobj);
if (fp->nessVars[0].SpecialN.flashTimerLoop1 != 0) { if (fp->nessVars.SpecialN.flashTimerLoop1 != 0) {
fp->nessVars[0].SpecialN.flashTimerLoop1--; fp->nessVars.SpecialN.flashTimerLoop1--;
} }
if (fp->sa.ness.x2240_flashGObj == NULL) { if (fp->sa.ness.x2240_flashGObj == NULL) {
if (fp->nessVars[0].SpecialN.flashTimerLoop2 != 0) { if (fp->nessVars.SpecialN.flashTimerLoop2 != 0) {
fp->nessVars[0].SpecialN.flashTimerLoop2--; fp->nessVars.SpecialN.flashTimerLoop2--;
} }
} }
if (fp->sa.ness.x2240_flashGObj == NULL) { if (fp->sa.ness.x2240_flashGObj == NULL) {
if (((s32) fp->nessVars[0].SpecialN.flashTimerLoop1 <= 0) && if (((s32) fp->nessVars.SpecialN.flashTimerLoop1 <= 0) &&
((s32) fp->nessVars[0].SpecialN.flashTimerLoop2 <= 0)) ((s32) fp->nessVars.SpecialN.flashTimerLoop2 <= 0))
{ {
Fighter_ActionStateChange_800693AC(fighter_gobj, Fighter_ActionStateChange_800693AC(fighter_gobj,
AS_NESS_SPECIALAIRN_END, 0, NULL, AS_NESS_SPECIALAIRN_END, 0, NULL,
@ -426,9 +425,9 @@ void ftNess_SpecialNHold_IASA(
s32 phi_r0; s32 phi_r0;
fp = GET_FIGHTER(fighter_gobj); fp = GET_FIGHTER(fighter_gobj);
fp->nessVars[0].SpecialN.flashTimerMin--; fp->nessVars.SpecialN.flashTimerMin--;
if ((s32) fp->nessVars[0].SpecialN.flashTimerMin <= 0) { if ((s32) fp->nessVars.SpecialN.flashTimerMin <= 0) {
fp->nessVars[0].SpecialN.flashTimerMin = 0; fp->nessVars.SpecialN.flashTimerMin = 0;
phi_r0 = true; phi_r0 = true;
} else { } else {
phi_r0 = false; phi_r0 = false;
@ -472,10 +471,10 @@ void ftNess_SpecialAirNHold_IASA(
s32 phi_r0; s32 phi_r0;
fp = GET_FIGHTER(fighter_gobj); fp = GET_FIGHTER(fighter_gobj);
fp->nessVars[0].SpecialN.flashTimerMin = fp->nessVars.SpecialN.flashTimerMin =
(s32) (fp->nessVars[0].SpecialN.flashTimerMin - 1); (s32) (fp->nessVars.SpecialN.flashTimerMin - 1);
if ((s32) fp->nessVars[0].SpecialN.flashTimerMin <= 0) { if ((s32) fp->nessVars.SpecialN.flashTimerMin <= 0) {
fp->nessVars[0].SpecialN.flashTimerMin = 0; fp->nessVars.SpecialN.flashTimerMin = 0;
phi_r0 = true; phi_r0 = true;
} else { } else {
phi_r0 = false; phi_r0 = false;
@ -507,8 +506,8 @@ inline void GravityDelay(HSD_GObj* fighter_gobj) // Inline to set remaining
{ {
Fighter* fp = GET_FIGHTER(fighter_gobj); Fighter* fp = GET_FIGHTER(fighter_gobj);
if (fp->nessVars[0].SpecialN.gravityDelay != 0) { if (fp->nessVars.SpecialN.gravityDelay != 0) {
fp->nessVars[0].SpecialN.gravityDelay--; fp->nessVars.SpecialN.gravityDelay--;
} }
} }
@ -548,8 +547,8 @@ void ftNess_SpecialAirNStart_Phys(
f32 fallAccel; f32 fallAccel;
f32 terminalVelocity; f32 terminalVelocity;
if (fp->nessVars[0].SpecialN.gravityDelay != 0) { if (fp->nessVars.SpecialN.gravityDelay != 0) {
fp->nessVars[0].SpecialN.gravityDelay--; fp->nessVars.SpecialN.gravityDelay--;
} else } else
func_8007D494(fp, ness_attr->x14_PKFLASH_FALL_ACCEL, func_8007D494(fp, ness_attr->x14_PKFLASH_FALL_ACCEL,
fp->x110_attr.x170_TerminalVelocity); fp->x110_attr.x170_TerminalVelocity);
@ -569,8 +568,8 @@ void ftNess_SpecialAirNHold_Phys(
f32 fallAccel; f32 fallAccel;
f32 terminalVelocity; f32 terminalVelocity;
if (fp->nessVars[0].SpecialN.gravityDelay != 0) { if (fp->nessVars.SpecialN.gravityDelay != 0) {
fp->nessVars[0].SpecialN.gravityDelay--; fp->nessVars.SpecialN.gravityDelay--;
} else } else
func_8007D494(fp, ness_attr->x14_PKFLASH_FALL_ACCEL, func_8007D494(fp, ness_attr->x14_PKFLASH_FALL_ACCEL,
fp->x110_attr.x170_TerminalVelocity); fp->x110_attr.x170_TerminalVelocity);
@ -590,8 +589,8 @@ void ftNess_SpecialAirNEnd_Phys(
f32 fallAccel; f32 fallAccel;
f32 terminalVelocity; f32 terminalVelocity;
if (fp->nessVars[0].SpecialN.gravityDelay != 0) { if (fp->nessVars.SpecialN.gravityDelay != 0) {
fp->nessVars[0].SpecialN.gravityDelay--; fp->nessVars.SpecialN.gravityDelay--;
} else } else
func_8007D494(fp, ness_attr->x14_PKFLASH_FALL_ACCEL, func_8007D494(fp, ness_attr->x14_PKFLASH_FALL_ACCEL,
fp->x110_attr.x170_TerminalVelocity); fp->x110_attr.x170_TerminalVelocity);

View File

@ -332,10 +332,10 @@ void ftSeak_80110BCC(HSD_GObj* fighter_gobj)
fp->sa.seak.x2268[i].y = fp->sa.seak.x2238[i].y; fp->sa.seak.x2268[i].y = fp->sa.seak.x2238[i].y;
} }
if (fp->seakVars[0].SpecialS.x235C > 0) { if (fp->seakVars.SpecialS.x235C > 0) {
fp->seakVars[0].SpecialS.x235C--; fp->seakVars.SpecialS.x235C--;
if (fp->seakVars[0].SpecialS.x235C == 0) if (fp->seakVars.SpecialS.x235C == 0)
ftSeakSpecialS_LoopChainHitCollisions(fighter_gobj); ftSeakSpecialS_LoopChainHitCollisions(fighter_gobj);
} }
@ -348,16 +348,16 @@ void ftSeak_80110BCC(HSD_GObj* fighter_gobj)
sums_of_squares[2] > chain_val_sq || sums_of_squares[2] > chain_val_sq ||
sums_of_squares[3] > chain_val_sq) sums_of_squares[3] > chain_val_sq)
{ {
if (fp->seakVars[0].SpecialS.x235C <= 0) { if (fp->seakVars.SpecialS.x235C <= 0) {
fp->seakVars[0].SpecialS.x235C = specialAttributes->x18; fp->seakVars.SpecialS.x235C = specialAttributes->x18;
ftSeakSpecialS_LoopChainHitActivate(fighter_gobj); ftSeakSpecialS_LoopChainHitActivate(fighter_gobj);
} }
} else { } else {
s32 var = fp->seakVars[0].SpecialS.x2360; s32 var = fp->seakVars.SpecialS.x2360;
if (var > 0) { if (var > 0) {
fp->seakVars[0].SpecialS.x2360--; fp->seakVars.SpecialS.x2360--;
} else { } else {
fp->seakVars[0].SpecialS.x235C = 0; fp->seakVars.SpecialS.x235C = 0;
ftSeakSpecialS_LoopChainHitCollisions(fighter_gobj); ftSeakSpecialS_LoopChainHitCollisions(fighter_gobj);
} }
} }
@ -414,7 +414,7 @@ void ftSeak_ChainSomething(HSD_GObj* fighter_gobj)
if (fp->sa.seak.x2234) { if (fp->sa.seak.x2234) {
func_802BAF0C(fp->sa.seak.x2234); func_802BAF0C(fp->sa.seak.x2234);
fp->seakVars[0].SpecialS.x2360 = 2; fp->seakVars.SpecialS.x2360 = 2;
} }
} }
@ -532,7 +532,7 @@ bool ftSeak_SpecialS_CheckInitChain(HSD_GObj* fighter_gobj)
fp2->cb.x21D4_callback_EnterHitlag = &ftSeak_80110EE8; fp2->cb.x21D4_callback_EnterHitlag = &ftSeak_80110EE8;
fp2->cb.x21D8_callback_ExitHitlag = &ftSeak_ChainSomething; fp2->cb.x21D8_callback_ExitHitlag = &ftSeak_ChainSomething;
fp->seakVars[0].SpecialS.x235C = specialAttributes->x18; fp->seakVars.SpecialS.x235C = specialAttributes->x18;
if (fp->sa.seak.x2234 == NULL) { if (fp->sa.seak.x2234 == NULL) {
if (fp->xE0_ground_or_air == GA_Air) if (fp->xE0_ground_or_air == GA_Air)
@ -1032,7 +1032,7 @@ void ftSeak_80111DF8(HSD_GObj* fighter_gobj)
Fighter* fp = GET_FIGHTER(fighter_gobj); Fighter* fp = GET_FIGHTER(fighter_gobj);
fp->x2340_stateVar1 = 0; fp->x2340_stateVar1 = 0;
if (fp->seakVars[0].SpecialS.x235C != 0) if (fp->seakVars.SpecialS.x235C != 0)
ftSeak_80110AEC(fighter_gobj); ftSeak_80110AEC(fighter_gobj);
if (fp->sa.seak.x2234 != NULL) { if (fp->sa.seak.x2234 != NULL) {
@ -1055,7 +1055,7 @@ void ftSeak_80111EB4(HSD_GObj* fighter_gobj)
Fighter* fp = fighter_gobj->user_data; Fighter* fp = fighter_gobj->user_data;
fp->x2340_stateVar1 = 0; fp->x2340_stateVar1 = 0;
if (fp->seakVars[0].SpecialS.x235C != 0) if (fp->seakVars.SpecialS.x235C != 0)
ftSeak_80110AEC(fighter_gobj); ftSeak_80110AEC(fighter_gobj);
if (fp->sa.seak.x2234 != NULL) { if (fp->sa.seak.x2234 != NULL) {

View File

@ -31,8 +31,8 @@ bool func_80081298(HSD_GObj* gobj)
other_fp = other_gobj->user_data; other_fp = other_gobj->user_data;
func_8003FFDC(other_fp->xC_playerID, other_fp->x221F_flag.bits.b4, func_8003FFDC(other_fp->xC_playerID, other_fp->x221F_flag.bits.b4,
fp->xC_playerID, fp->x221F_flag.bits.b4, fp->xC_playerID, fp->x221F_flag.bits.b4,
other_fp->commonVars[0].CliffCommon.ledgeID); other_fp->commonVars.CliffCommon.ledgeID);
fp->x213C = other_fp->commonVars[0].CliffCommon.ledgeID; fp->x213C = other_fp->commonVars.CliffCommon.ledgeID;
return false; return false;
} }
return false; return false;
@ -70,9 +70,9 @@ void func_80081370(HSD_GObj* gobj)
func_8007E2FC(gobj); func_8007E2FC(gobj);
fp->x221D_flag.bits.b7 = 1; fp->x221D_flag.bits.b7 = 1;
if (fp->facing_dir > 0.0f) { if (fp->facing_dir > 0.0f) {
fp->commonVars[0].CliffCommon.ledgeID = fp->x6F0_collData.x44; fp->commonVars.CliffCommon.ledgeID = fp->x6F0_collData.x44;
} else { } else {
fp->commonVars[0].CliffCommon.ledgeID = fp->x6F0_collData.x40; fp->commonVars.CliffCommon.ledgeID = fp->x6F0_collData.x40;
} }
func_80081544(gobj); func_80081544(gobj);
func_800881D8(fp, fp->x10C_ftData->x4C_collisionData->x28, 0x7F, 0x40); func_800881D8(fp, fp->x10C_ftData->x4C_collisionData->x28, 0x7F, 0x40);
@ -80,9 +80,9 @@ void func_80081370(HSD_GObj* gobj)
func_8007EBAC(fp, 0xC, 0); func_8007EBAC(fp, 0xC, 0);
if (fp->facing_dir > 0.0f) { if (fp->facing_dir > 0.0f) {
func_80053ECC(fp->commonVars[0].CliffCommon.ledgeID, unkParam.x10); func_80053ECC(fp->commonVars.CliffCommon.ledgeID, unkParam.x10);
} else { } else {
func_80053DA4(fp->commonVars[0].CliffCommon.ledgeID, unkParam.x10); func_80053DA4(fp->commonVars.CliffCommon.ledgeID, unkParam.x10);
} }
efAsync_Spawn(gobj, (void*) ((u32) gobj->user_data + 0x60C), 2, 0x41C, 0, efAsync_Spawn(gobj, (void*) ((u32) gobj->user_data + 0x60C), 2, 0x41C, 0,
&unkParam.x10); &unkParam.x10);
@ -105,11 +105,11 @@ void func_80081544(HSD_GObj* gobj)
s32 dummy2[1]; s32 dummy2[1];
Fighter* fp = gobj->user_data; Fighter* fp = gobj->user_data;
if (func_80054ED8(fp->commonVars[0].CliffCommon.ledgeID) != 0) { if (func_80054ED8(fp->commonVars.CliffCommon.ledgeID) != 0) {
if (fp->facing_dir > 0.0f) { if (fp->facing_dir > 0.0f) {
func_80053ECC(fp->commonVars[0].CliffCommon.ledgeID, sp10); func_80053ECC(fp->commonVars.CliffCommon.ledgeID, sp10);
} else { } else {
func_80053DA4(fp->commonVars[0].CliffCommon.ledgeID, sp10); func_80053DA4(fp->commonVars.CliffCommon.ledgeID, sp10);
} }
fp->xB0_pos.x = fp->xB0_pos.x =
(f32) ((fp->x68C_transNPos.z * fp->facing_dir) + sp10[0]); (f32) ((fp->x68C_transNPos.z * fp->facing_dir) + sp10[0]);
@ -138,8 +138,7 @@ void func_80081644(HSD_GObj* gobj)
Fighter* fp = gobj->user_data; Fighter* fp = gobj->user_data;
func_800761C8(gobj); func_800761C8(gobj);
if ((s32) fp->xE0_ground_or_air == GA_Air) { if ((s32) fp->xE0_ground_or_air == GA_Air) {
func_8005811C(&fp->x6F0_collData, func_8005811C(&fp->x6F0_collData, fp->commonVars.CliffCommon.ledgeID);
fp->commonVars[0].CliffCommon.ledgeID);
fp->x890_cameraBox->xC_flag.bits.b0 = 1; fp->x890_cameraBox->xC_flag.bits.b0 = 1;
} }
} }

View File

@ -9,6 +9,7 @@
#include <melee/ft/chara/ftGameWatch/ftGameWatch_StateVars.h> #include <melee/ft/chara/ftGameWatch/ftGameWatch_StateVars.h>
#include <melee/ft/chara/ftLuigi/ftLuigi_StateVars.h> #include <melee/ft/chara/ftLuigi/ftLuigi_StateVars.h>
#include <melee/ft/chara/ftMario/ftMario_StateVars.h> #include <melee/ft/chara/ftMario/ftMario_StateVars.h>
#include <melee/ft/chara/ftMasterHand/ftMasterhand_StateVars.h>
#include <melee/ft/chara/ftMewtwo/ftMewtwo_StateVars.h> #include <melee/ft/chara/ftMewtwo/ftMewtwo_StateVars.h>
#include <melee/ft/chara/ftNess/ftNess_StateVars.h> #include <melee/ft/chara/ftNess/ftNess_StateVars.h>
#include <melee/ft/chara/ftSeak/ftSeak_StateVars.h> #include <melee/ft/chara/ftSeak/ftSeak_StateVars.h>

View File

@ -1942,156 +1942,96 @@ struct Fighter {
/* 0x2330 */ Vec2 x2330; /* 0x2330 */ Vec2 x2330;
/* 0x2338 */ Vec2 x2338; /* 0x2338 */ Vec2 x2338;
/* The following series of individual unions with array size 0 is a union { // 0x2340
temporary hack to bypass compiler errors and size shifts for this mess of a ftCommonStateVars commonVars;
struct. These StateVar structs should be one big union once the rest is ftMarioStateVars marioVars;
cleaned up. */ ftCaptainStateVars captainVars;
ftFoxStateVars foxVars;
ftSeakStateVars seakVars;
ftNessStateVars nessVars;
ftLuigiStateVars luigiVars;
ftMewtwoStateVars mewtwoVars;
ftGameWatchStateVars gameWatchVars;
ftMasterhandStateVars masterhandVars;
union { // Avoid adding members to this struct.
union { // This is a hack, all these members should eventually
ftCommonStateVars commonVars[0]; // 0x2340 // migrate to the character-specific union members above.
};
union {
ftMarioStateVars marioVars[0]; // 0x2340
};
union {
ftCaptainStateVars captainVars[0]; // 0x2340
};
union {
ftFoxStateVars foxVars[0]; // 0x2340
};
union {
ftSeakStateVars seakVars[0]; // 0x2340
};
union {
ftNessStateVars nessVars[0]; // 0x2340
};
union {
ftLuigiStateVars luigiVars[0]; // 0x2340
};
union {
ftMewtwoStateVars mewtwoVars[0]; // 0x2340
};
union {
ftGameWatchStateVars gameWatchVars[0]; // 0x2340
};
/* 0x2340 */ s32 x2340_stateVar1;
/* 0x2340 */ u32 x2340_stateVar1_u32;
/* 0x2340 */ f32 x2340_f32;
};
union {
u32 x2344_stateVar2;
s32 x2344_stateVar2_s32;
void (*x2344_callback)(HSD_GObj*);
f32 x2344_f32;
struct { struct {
union { union {
Vec3 x2344_foxSpecialS[0]; /* 0x2340 */ s32 x2340_stateVar1;
/* 0x2340 */ u32 x2340_stateVar1_u32;
/* 0x2340 */ f32 x2340_f32;
}; };
union {
u32 x2344_stateVar2;
s32 x2344_stateVar2_s32;
f32 x2344_f32;
};
union {
/* 0x2348 */ u32 x2348_stateVar3;
/* 0x2348 */ s32 x2348_stateVar3_s32;
/* 0x2348 */ f32 x2348_stateVar3_f32;
};
union {
struct {
union {
/* 0x234C */ u32 x234C_stateVar4;
/* 0x234C */ s32 x234C_stateVar4_s32;
/* 0x234C */ f32 x234C_stateVar4_f32;
};
union {
/* 0x2350 */ u32 x2350_stateVar5;
/* 0x2350 */ s32 x2350_stateVar5_s32;
/* 0x2350 */ f32 x2350_stateVar5_f32;
};
union {
/* 0x2354 */ u32 x2354_stateVar6;
/* 0x2354 */ s32 x2354_stateVar6_s32;
/* 0x2354 */ f32 x2354_stateVar6_f32;
};
};
/* 0x234C */ Vec3 x234C_pos;
};
union {
/* 0x2358 */ f32 x2358_stateVar7;
/* 0x2358 */ s32 x2358_stateVar7_s32;
};
union {
/* 0x235C */ f32 x235C;
/* 0x235C */ u32 x235C_u32;
/* 0x235C */ f32 x235C_f32;
};
union {
/* 0x2360 */ u32 x2360_u32;
/* 0x2360 */ s32 x2360;
/* 0x2360 */ f32 x2360_f32;
};
/* 0x2364 */ f32 x2364;
/* 0x2368 */ u32 x2368;
/* 0x236C */ u32 x236C;
/* 0x2370 */ u32 x2370;
union {
struct {
/* 0x2374 */ u32 x2374;
/* 0x2378 */ u32 x2378;
/* 0x237C */ u32 x237C;
};
/* 0x2374 */ Vec3 x2374_Vec3;
};
/* 0x2380 */ u32 x2380;
/* 0x2384 */ u32 x2384;
/* 0x2388 */ u32 x2388;
/* 0x238C */ u32 x238C;
/* 0x2390 */ f32 x2390;
/* 0x2394 */ s32 x2394;
/* 0x2394 */ Vec3 x2398;
/* 0x2394 */ Vec3 x23A4;
/* 0x23B0 */ s32 x23B0;
/* 0x23B4 */ s32 x23B4;
/* 0x23B8 */ s32 x23B8;
}; };
}; };
union {
/* 0x2348 */ u32 x2348_stateVar3;
/* 0x2348 */ s32 x2348_stateVar3_s32;
/* 0x2348 */ f32 x2348_stateVar3_f32;
};
union {
struct {
union {
/* 0x234C */ u32 x234C_stateVar4;
/* 0x234C */ s32 x234C_stateVar4_s32;
/* 0x234C */ f32 x234C_stateVar4_f32;
};
union {
/* 0x2350 */ u32 x2350_stateVar5;
/* 0x2350 */ s32 x2350_stateVar5_s32;
/* 0x2350 */ f32 x2350_stateVar5_f32;
};
union {
/* 0x2354 */ u32 x2354_stateVar6;
/* 0x2354 */ s32 x2354_stateVar6_s32;
/* 0x2354 */ f32 x2354_stateVar6_f32;
};
};
/* 0x234C */ Vec3 x234C_pos;
};
union {
/* 0x2358 */ f32 x2358_stateVar7;
/* 0x2358 */ s32 x2358_stateVar7_s32;
};
union {
/* 0x235C */ f32 x235C;
/* 0x235C */ u32 x235C_u32;
/* 0x235C */ s32 x235C_s32;
/* 0x235C */ f32 x235C_f32;
};
union {
/* 0x2360 */ u32 x2360_u32;
/* 0x2360 */ s32 x2360;
/* 0x2360 */ f32 x2360_f32;
};
union {
/* 0x2364 */ u32 x2364_u32;
/* 0x2364 */ f32 x2364;
/* 0x2364 */ f32 x2364_f32;
};
union {
/* 0x2368 */ u32 x2368;
/* 0x2368 */ f32 x2368_f32;
};
union {
/* 0x236C */ u32 x236C;
/* 0x236C */ f32 x236C_f32;
};
union {
/* 0x2370 */ u32 x2370;
/* 0x2370 */ f32 x2370_f32;
};
union {
struct {
union {
/* 0x2374 */ u32 x2374;
/* 0x2374 */ f32 x2374_f32;
/* 0x2374 */ f32 x2374_foxArray[0];
};
union {
/* 0x2378 */ u32 x2378;
/* 0x2378 */ f32 x2378_f32;
};
union {
/* 0x237C */ u32 x237C;
/* 0x237C */ f32 x237C_f32;
};
};
/* 0x2374 */ Vec3 x2374_Vec3;
};
union {
/* 0x2380 */ u32 x2380;
/* 0x2380 */ f32 x2380_f32;
};
union {
/* 0x2384 */ u32 x2384_u32;
/* 0x2384 */ s32 x2384_s32;
/* 0x2384 */ f32 x2384_f32;
/* 0x2384 */ HSD_GObj* x2384_GObj;
};
union {
/* 0x2388 */ u32 x2388_u32;
/* 0x2388 */ s32 x2388_s32;
/* 0x2388 */ f32 x2388_f32;
};
union {
/* 0x238C */ u32 x238C_u32;
/* 0x238C */ f32 x238C;
/* 0x238C */ f32 x238C_f32;
};
/* 0x2390 */ f32 x2390;
/* 0x2394 */ s32 x2394;
/* 0x2394 */ Vec3 x2398;
/* 0x2394 */ Vec3 x23A4;
/* 0x23B0 */ s32 x23B0;
/* 0x23B4 */ s32 x23B4;
/* 0x23B8 */ s32 x23B8;
u8 filler_x23B8[0x23E8 - 0x23B8]; u8 filler_x23B8[0x23E8 - 0x23B8];
}; };