mirror of https://github.com/zeldaret/tp.git
do_walk_run
This commit is contained in:
parent
d38aa7a9b2
commit
ff44356585
|
|
@ -27,52 +27,76 @@ public:
|
|||
/* 0x5B5 */ u8 field_0x5b5;
|
||||
/* 0x5B6 */ u8 field_0x5b6;
|
||||
/* 0x5B7 */ u8 field_0x5b7[17];
|
||||
/* 0x5C8 */ float field_0x5c8;
|
||||
/* 0x5C8 */ f32 field_0x5c8;
|
||||
/* 0x5CC */ s16 field_0x5cc;
|
||||
/* 0x5CE */ u8 field_0x5ce[2];
|
||||
/* 0x5D8 */ mDoExt_McaMorf* mpMorf;
|
||||
/* 0x5D4 */ u8 field_0x5d4[8];
|
||||
/* 0x5DC */ u8 field_0x5dc[8];
|
||||
/* 0x5DC */ u8 field_0x5dc[2];
|
||||
/* 0x5DE */ s16 field_0x5de;
|
||||
/* 0x5E0 */ s16 field_0x5e0;
|
||||
/* 0x5E2 */ u8 field_0x5e2[2];
|
||||
/* 0x5E4 */ s32 mResIdx;
|
||||
/* 0x5E8 */ float field_0x5e8;
|
||||
/* 0x5EC */ float field_0x5ec;
|
||||
/* 0x5F0 */ u8 field_0x5f0[2];
|
||||
/* 0x5E8 */ f32 field_0x5e8;
|
||||
/* 0x5EC */ f32 field_0x5ec;
|
||||
/* 0x5F0 */ s16 field_0x5f0;
|
||||
/* 0x5F2 */ s16 mActionStatus;
|
||||
/* 0x5F4 */ u16 field_0x5f4;
|
||||
/* 0x5F6 */ s16 mStayStatus;
|
||||
/* 0x5F6 */ s16 mStayStatus; // probably a better name for this
|
||||
/* 0x5F8 */ u8 field_0x5f8[4];
|
||||
/* 0x5FC */ s16 field_0x5fc;
|
||||
/* 0x5FE */ u8 field_0x5fe[2];
|
||||
/* 0x600 */ s16 field_0x600;
|
||||
/* 0x602 */ u8 field_0x602[2];
|
||||
/* 0x604 */ u16 field_0x604;
|
||||
/* 0x606 */ u8 field_0x606[2];
|
||||
/* 0x608 */ float field_0x608;
|
||||
/* 0x60C */ u8 field_0x60c[8];
|
||||
/* 0x606 */ s16 field_0x606;
|
||||
/* 0x608 */ f32 field_0x608;
|
||||
/* 0x60C */ u8 field_0x60c[2];
|
||||
/* 0x60E */ s16 field_0x60e;
|
||||
/* 0x60E */ s16 field_0x610;
|
||||
/* 0x60E */ s16 field_0x612;
|
||||
/* 0x614 */ s16 field_0x614;
|
||||
/* 0x616 */ u8 field_0x616;
|
||||
/* 0x617 */ u8 field_0x617[29];
|
||||
/* 0x634 */ u32 field_0x634;
|
||||
/* 0x638 */ u8 field_0x638[16];
|
||||
/* 0x617 */ u8 field_0x617[14];
|
||||
/* 0x624 */ s16 field_0x624;
|
||||
/* 0x626 */ u8 field_0x626[2];
|
||||
/* 0x628 */ s16 field_0x628;
|
||||
/* 0x62A */ s16 field_0x62a;
|
||||
/* 0x62C */ u8 field_0x62c[2];
|
||||
/* 0x62E */ u16 field_0x62e;
|
||||
/* 0x630 */ u16 field_0x630;
|
||||
/* 0x632 */ s16 field_0x632;
|
||||
/* 0x634 */ f32 field_0x634;
|
||||
/* 0x638 */ f32 field_0x638;
|
||||
/* 0x63C */ s16 field_0x63c;
|
||||
/* 0x63E */ s16 field_0x63e;
|
||||
/* 0x640 */ s16 field_0x640;
|
||||
/* 0x642 */ u8 field_0x642[2]; // some weird alignmnet here
|
||||
/* 0x648 */ f32 field_0x648;
|
||||
/* 0x64c */ u8 field_0x64c[12];
|
||||
/* 0x658 */ float field_0x658;
|
||||
/* 0x65C */ float field_0x65c;
|
||||
/* 0x660 */ u8 field_0x660[28];
|
||||
/* 0x67C */ float field_0x67c;
|
||||
/* 0x680 */ u8 field_0x680[4];
|
||||
/* 0x64C */ f32 field_0x64c;
|
||||
/* 0x650 */ f32 field_0x650;
|
||||
/* 0x654 */ u8 field_0x654[4];
|
||||
/* 0x658 */ f32 field_0x658;
|
||||
/* 0x65C */ f32 field_0x65c;
|
||||
/* 0x660 */ u16 field_0x660;
|
||||
/* 0x662 */ u8 field_0x662[26];
|
||||
/* 0x67C */ f32 field_0x67c;
|
||||
/* 0x680 */ u32 field_0x680;
|
||||
/* 0x684 */ u32 mFoodBsPcId;
|
||||
/* 0x688 */ u8 field_0x688;
|
||||
/* 0x689 */ u8 field_0x689;
|
||||
/* 0x68A */ u8 field_0x68a;
|
||||
/* 0x68B */ u8 field_0x68b;
|
||||
/* 0x68C */ float field_0x68c;
|
||||
/* 0x690 */ float field_0x690;
|
||||
/* 0x694 */ float field_0x694;
|
||||
/* 0x68C */ f32 field_0x68c;
|
||||
/* 0x690 */ f32 field_0x690;
|
||||
/* 0x694 */ f32 field_0x694;
|
||||
/* 0x698 */ u8 field_0x698[36];
|
||||
/* 0x6BC */ dBgS_AcchCir mBgS_AcchCir;
|
||||
/* 0x6FC */ dBgS_Acch mBgS_Acch;
|
||||
/* 0x8D4 */ u8 field_0x8d4[24];
|
||||
/* 0x8D4 */ f32 field_0x8d4;
|
||||
/* 0x8D8 */ u8 field_0x8d8[4];
|
||||
/* 0x8DC */ f32 field_0x8dc;
|
||||
/* 0x8E0 */ u8 field_0x8e0[12];
|
||||
/* 0x8EC */ dCcD_GStts mCcD_GStts;
|
||||
/* 0x90C */ u8 field_0x90c[4];
|
||||
/* 0x910 */ dCcD_GObjInf mCcD_GObjInf1;
|
||||
|
|
@ -86,6 +110,7 @@ public:
|
|||
/* 0xC05 */ s8 field_0xc05;
|
||||
/* 0xC06 */ s16 field_0xc06;
|
||||
/* 0xC08 */ s16 field_0xc08;
|
||||
/* 0xC0A */ u8 field_0xc0a[2];
|
||||
/* 0xC0C */ dMsgFlow_c mMsg;
|
||||
/* 0xC58 */ u8 field_0xc58[104];
|
||||
/* 0xCC0 */ u8 field_0xcc0;
|
||||
|
|
|
|||
|
|
@ -694,7 +694,18 @@ static u8 lit_3657[12];
|
|||
|
||||
/* 8066F2C4-8066F2E4 000054 0020+00 11/12 0/0 0/0 .bss l_HIO */
|
||||
// likely is a more complicated struct that needs to be mapped
|
||||
static f32 l_HIO[8];
|
||||
struct do_class_HIO {
|
||||
/* 0x00 */ f32 field_0x00;
|
||||
/* 0x04 */ f32 field_0x04;
|
||||
/* 0x08 */ f32 field_0x08;
|
||||
/* 0x0C */ f32 field_0x0c;
|
||||
/* 0x10 */ f32 field_0x10;
|
||||
/* 0x14 */ f32 field_0x14;
|
||||
/* 0x18 */ f32 field_0x18;
|
||||
/* 0x1C */ u8 field_0x1c;
|
||||
/* 0x1D */ u8 field_0x1d;
|
||||
};
|
||||
static do_class_HIO l_HIO;
|
||||
|
||||
/* 8066F2E4-8066F2F8 000074 0014+00 1/2 0/0 0/0 .bss target_info */
|
||||
static fopAc_ac_c* target_info[5];
|
||||
|
|
@ -886,8 +897,6 @@ static bool water_check(do_class* i_dogP) {
|
|||
} else {
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
|
|
@ -1352,6 +1361,46 @@ COMPILER_STRIP_GATE(0x8066EEA4, &lit_4378);
|
|||
#pragma pop
|
||||
|
||||
/* 8066973C-806698D0 001ADC 0194+00 1/1 0/0 0/0 .text do_walk_run__FP8do_class */
|
||||
#ifndef NONMATCHING
|
||||
static void do_walk_run(do_class* i_dogP) {
|
||||
i_dogP->field_0x616 = 1;
|
||||
i_dogP->field_0x648 = FLOAT_LABEL(lit_4344);
|
||||
|
||||
switch (i_dogP->mStayStatus) {
|
||||
case 0: {
|
||||
i_dogP->field_0x5e8 = FLOAT_LABEL(lit_4377);
|
||||
|
||||
anm_init(i_dogP,22,FLOAT_LABEL(lit_4192),2,i_dogP->field_0x5e8);
|
||||
i_dogP->mStayStatus++;
|
||||
}
|
||||
case 1: {
|
||||
cLib_addCalc2(&i_dogP->field_0x5e8,FLOAT_LABEL(lit_3665),FLOAT_LABEL(lit_3662),FLOAT_LABEL(lit_4345));
|
||||
i_dogP->mpMorf->setPlaySpeed(i_dogP->field_0x5e8);
|
||||
|
||||
if (i_dogP->field_0x5e8 >= FLOAT_LABEL(lit_3665) ) {
|
||||
i_dogP->mActionStatus = do_class::ACTION_STATUS_RUN;
|
||||
i_dogP->mStayStatus = 0;
|
||||
|
||||
|
||||
i_dogP->mSound.startSound(JAISoundID(327693),0,-1);
|
||||
}
|
||||
}
|
||||
default: {
|
||||
cLib_addCalc2(&i_dogP->mSpeedF, i_dogP->field_0x5e8 * l_HIO.field_0x0c, FLOAT_LABEL(lit_3662), FLOAT_LABEL(lit_4342) * l_HIO.field_0x0c);
|
||||
cLib_addCalcAngleS2(&i_dogP->current.angle.y,i_dogP->field_0x5cc,8,0x400);
|
||||
|
||||
if (i_dogP->field_0x5c8 < FLOAT_LABEL(lit_4378) * i_dogP->field_0x67c) {
|
||||
|
||||
l_HIO.field_0x1c != 0 ? i_dogP->mActionStatus = do_class::ACTION_STATUS_WAIT_2 : i_dogP->mActionStatus = do_class::ACTION_STATUS_WAIT_1;
|
||||
i_dogP->mStayStatus = 0;
|
||||
}
|
||||
|
||||
area_check(i_dogP);
|
||||
move_dansa_check(i_dogP,i_dogP->mSpeedF);
|
||||
}
|
||||
}
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
|
|
@ -1360,6 +1409,7 @@ static asm void do_walk_run(do_class* i_dogP) {
|
|||
#include "asm/rel/d/a/d_a_do/d_a_do/do_walk_run__FP8do_class.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 8066EEA8-8066EEAC 0000C0 0004+00 0/3 0/0 0/0 .rodata @4400 */
|
||||
|
|
@ -1723,7 +1773,7 @@ static void do_swim(do_class* i_dogP) {
|
|||
}
|
||||
}
|
||||
|
||||
cLib_addCalc2(&i_dogP->mSpeedF,l_HIO[5],FLOAT_LABEL(lit_3662),FLOAT_LABEL(lit_4588)*l_HIO[5]);
|
||||
cLib_addCalc2(&i_dogP->mSpeedF,l_HIO.field_0x14,FLOAT_LABEL(lit_3662),FLOAT_LABEL(lit_4588)*l_HIO.field_0x14);
|
||||
cLib_addCalcAngleS2(&i_dogP->current.angle.y,i_dogP->field_0x5cc,16,0x100);
|
||||
|
||||
i_dogP->mSpeed.y = FLOAT_LABEL(lit_3682);
|
||||
|
|
|
|||
Loading…
Reference in New Issue