area_check

This commit is contained in:
Pheenoh 2023-01-18 09:32:46 -07:00
parent a28fbeb310
commit 18b96dd20e
2 changed files with 23 additions and 3 deletions

View File

@ -23,7 +23,9 @@ class do_class : public fopAc_ac_c {
public:
/* 0x56C */ u8 field_0x56c[68];
/* 0x5AC */ request_of_phase_process_class mPhase;
/* 0x5B4 */ u8 field_0x5b4[20];
/* 0x5B4 */ u8 field_0x5b4[2];
/* 0x5B6 */ u8 field_0x5b6;
/* 0x5B7 */ u8 field_0x5b7[17];
/* 0x5C8 */ float field_0x5c8;
/* 0x5CC */ u8 field_0x5cc[4];
/* 0x5D8 */ mDoExt_McaMorf* mpMorf;
@ -35,10 +37,12 @@ public:
/* 0x5F0 */ u8 field_0x5f0[2];
/* 0x5F2 */ s16 field_0x5f2;
/* 0x5F4 */ u8 field_0x5f4[2];
/* 0x5F6 */ u16 field_0x5f6;
/* 0x5F6 */ s16 field_0x5f6;
/* 0x5F8 */ u8 field_0x5f8[4];
/* 0x5FC */ u16 field_0x5fc;
/* 0x5FE */ u8 field_0x5fe[6];
/* 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;

View File

@ -10,6 +10,7 @@
#include "dolphin/types.h"
#include "f_op/f_op_actor_mng.h"
#include "f_pc/f_pc_executor.h"
#include "SSystem/SComponent/c_math.h"
//
// Forward References:
@ -1048,6 +1049,20 @@ COMPILER_STRIP_GATE(0x8066EE58, &lit_4138);
#pragma pop
/* 80668BA0-80668D5C 000F40 01BC+00 5/5 0/0 0/0 .text area_check__FP8do_class */
#ifdef NONMATCHING
// matches with literals
static void area_check(do_class* i_dogP) {
cXyz pos_delta = i_dogP->orig.pos - i_dogP->current.pos;
if (i_dogP->field_0x5b6 != 255) {
if ((i_dogP->field_0x5b6 * 100.f * 2.0f) > pos_delta.abs()) {
i_dogP->field_0x5f2 = 1;
i_dogP->field_0x5f6 = -1;
i_dogP->field_0x600 = cM_rndF(100.0f) + 100.0f; // random value between 100 and 200
}
}
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@ -1056,6 +1071,7 @@ static asm void area_check(do_class* i_dogP) {
#include "asm/rel/d/a/d_a_do/d_a_do/area_check__FP8do_class.s"
}
#pragma pop
#endif
/* ############################################################################################## */
/* 8066EE60-8066EE64 000078 0004+00 0/5 0/0 0/0 .rodata @4189 */