mirror of
https://github.com/zeldaret/tww.git
synced 2026-06-19 23:23:14 -04:00
Equivalent. Weak func ordering.
This commit is contained in:
+1
-1
@@ -1432,7 +1432,7 @@ config.libs = [
|
||||
ActorRel(Matching, "d_a_tag_ghostship"),
|
||||
ActorRel(NonMatching, "d_a_tag_hint"),
|
||||
ActorRel(Matching, "d_a_tag_kb_item"),
|
||||
ActorRel(NonMatching, "d_a_tag_kk1"),
|
||||
ActorRel(Equivalent, "d_a_tag_kk1", extra_cflags=['-pragma "nosyminline on"']), # weak func order
|
||||
ActorRel(NonMatching, "d_a_tag_light"),
|
||||
ActorRel(Matching, "d_a_tag_msg"),
|
||||
ActorRel(NonMatching, "d_a_tag_photo"),
|
||||
|
||||
@@ -4,8 +4,6 @@
|
||||
#include "d/d_npc.h"
|
||||
#include "m_Do/m_Do_hostIO.h"
|
||||
|
||||
|
||||
|
||||
class daTag_Kk1_c : public fopNpc_npc_c {
|
||||
public:
|
||||
BOOL createInit();
|
||||
@@ -15,29 +13,23 @@ public:
|
||||
cPhs_State _create();
|
||||
|
||||
public:
|
||||
/* 0x6C4 */ u8 field_0x6C4;
|
||||
/* 0x6C5 */ bool field_0x6C5;
|
||||
/* 0x6C6 */ u8 field_0x6C6;
|
||||
/* 0x6C7 */ u8 field_0x6C7;
|
||||
/* 0x6C4 */ u8 padding_0x6C4;
|
||||
/* 0x6C5 */ bool mTagSet;
|
||||
/* 0x6C6 */ bool mNameIsWrong;
|
||||
}; // Size: 0x6C8
|
||||
|
||||
|
||||
class daTag_Kk1_HIO_c : public JORReflexible{
|
||||
|
||||
public:
|
||||
daTag_Kk1_HIO_c();
|
||||
virtual ~daTag_Kk1_HIO_c(){};
|
||||
|
||||
public:
|
||||
|
||||
virtual void foo();
|
||||
daTag_Kk1_HIO_c();
|
||||
virtual ~daTag_Kk1_HIO_c(){};
|
||||
|
||||
public:
|
||||
/* 0x4 */ s8 mNo;
|
||||
/* 0x8 */ f32 field_0x8;
|
||||
/* 0xC */ f32 field_0xC;
|
||||
/* 0x10 */ u8 field_0x10;
|
||||
public:
|
||||
/* 0x04 */ s8 mNo;
|
||||
/* 0x08 */ f32 mHorizontalDistance;
|
||||
/* 0x0C */ f32 mVerticalDistance;
|
||||
/* 0x10 */ u8 mUnusedU8;
|
||||
};
|
||||
|
||||
|
||||
|
||||
#endif /* D_A_TAG_KK1_H */
|
||||
|
||||
+33
-41
@@ -3,59 +3,50 @@
|
||||
// Translation Unit: d_a_tag_kk1.cpp
|
||||
//
|
||||
|
||||
|
||||
#include "d/actor/d_a_tag_kk1.h"
|
||||
#include "d/d_com_inf_game.h"
|
||||
#include "d/d_procname.h"
|
||||
|
||||
|
||||
static daTag_Kk1_HIO_c l_HIO;
|
||||
static f32 a_prm_tbl[] = {350.0f,30.0f,0.0f};
|
||||
|
||||
static const u8 dummy5[] = { 0x00, 0xFF, 0x00, 0x80};
|
||||
|
||||
daTag_Kk1_HIO_c::daTag_Kk1_HIO_c() {
|
||||
/* Nonmatching */
|
||||
// 99% matched
|
||||
field_0x8 = a_prm_tbl[0];
|
||||
field_0xC = a_prm_tbl[1];
|
||||
field_0x10 = *(u8*)&a_prm_tbl[2];
|
||||
mNo = -0x01;
|
||||
}
|
||||
void daTag_Kk1_HIO_c::foo() {
|
||||
|
||||
static f32 a_prm_tbl[] = {350.0f,30.0f,0.0f};
|
||||
mHorizontalDistance = a_prm_tbl[0];
|
||||
mVerticalDistance = a_prm_tbl[1];
|
||||
mUnusedU8 = *reinterpret_cast<u8*>(&a_prm_tbl[2]); //TODO: This u8 appears to be inside the float table. May be a better way to refactor.
|
||||
mNo = -1;
|
||||
}
|
||||
|
||||
/* 00000120-00000128 .text createInit__11daTag_Kk1_cFv */
|
||||
BOOL daTag_Kk1_c::createInit() {
|
||||
return 1;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
/* 00000128-00000130 .text _draw__11daTag_Kk1_cFv */
|
||||
bool daTag_Kk1_c::_draw() {
|
||||
return 1;
|
||||
return true;
|
||||
}
|
||||
|
||||
/* 00000130-0000024C .text _execute__11daTag_Kk1_cFv */
|
||||
bool daTag_Kk1_c::_execute() {
|
||||
/* Nonmatching */
|
||||
// 98% matched
|
||||
cXyz* thepos = &dComIfGp_getPlayer(0)->current.pos;
|
||||
f32 distance = current.pos.abs(*thepos);
|
||||
//distance = std::sqrtf(distance);
|
||||
|
||||
//distance = std::sqrtf(distance);
|
||||
f32 vertDistance = dComIfGp_getPlayer(0)->current.pos.y - this->current.pos.y;
|
||||
|
||||
field_0x6C5 = 0;
|
||||
cXyz* player_pos = &dComIfGp_getPlayer(0)->current.pos;
|
||||
f32 distance = std::sqrtf(current.pos.abs2(*player_pos));
|
||||
f32 vert_distance = dComIfGp_getPlayer(0)->current.pos.y - this->current.pos.y;
|
||||
mTagSet = false;
|
||||
if (
|
||||
(distance < l_HIO.field_0x8) &&
|
||||
(vertDistance< l_HIO.field_0xC)
|
||||
(distance < l_HIO.mHorizontalDistance) && (vert_distance< l_HIO.mVerticalDistance)
|
||||
){
|
||||
s16 fillerVal = dComIfGp_getPlayer(0)->shape_angle.y - current.angle.y;
|
||||
fillerVal =abs(fillerVal);
|
||||
if(fillerVal < 0x1000){ //(iVar3 = abs((int)(short)((mpCurPlayerActor[0]->shape_angle.y -current.angle.y)),(short)iVar3 < 0x1000)
|
||||
field_0x6C5 = 1;
|
||||
s16 angle_deviation = dComIfGp_getPlayer(0)->shape_angle.y - current.angle.y;
|
||||
angle_deviation =abs(angle_deviation);
|
||||
if(angle_deviation < 0x1000){
|
||||
mTagSet = true;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -65,7 +56,7 @@ bool daTag_Kk1_c::_delete() {
|
||||
|
||||
if (l_HIO.mNo >= 0) {
|
||||
mDoHIO_deleteChild(l_HIO.mNo);
|
||||
l_HIO.mNo = 0xff;
|
||||
l_HIO.mNo = -1;
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
@@ -73,28 +64,30 @@ bool daTag_Kk1_c::_delete() {
|
||||
/* 000002A0-0000046C .text _create__11daTag_Kk1_cFv */
|
||||
cPhs_State daTag_Kk1_c::_create() {
|
||||
|
||||
int test = 0;
|
||||
s32 ret = cPhs_COMPLEATE_e;
|
||||
u32 name_int = 0;
|
||||
s32 o_phsState = cPhs_COMPLEATE_e;
|
||||
|
||||
fopAcM_SetupActor(this, daTag_Kk1_c);
|
||||
|
||||
switch(fopAcM_GetName(this)){
|
||||
case PROC_TAG_KK1:
|
||||
this->field_0x6C6 = 0;
|
||||
mNameIsWrong = false;
|
||||
break;
|
||||
default:
|
||||
return cPhs_ERROR_e;
|
||||
}
|
||||
|
||||
if((char)l_HIO.mNo < 0){
|
||||
l_HIO.mNo = mDoHIO_createChild("貧乏ム−ル追跡起動タグ",&l_HIO); //Poor Muuru chase startup tag
|
||||
}
|
||||
if(!createInit()){
|
||||
ret = cPhs_ERROR_e;
|
||||
if(l_HIO.mNo < 0){
|
||||
//Poor Muuru (Mila) chase startup tag
|
||||
l_HIO.mNo = mDoHIO_createChild("貧乏ム−ル追跡起動タグ",&l_HIO);
|
||||
}
|
||||
|
||||
fpcM_GetName(&test);
|
||||
return ret;
|
||||
if(!createInit()){
|
||||
o_phsState = cPhs_ERROR_e;
|
||||
}
|
||||
|
||||
fpcM_GetName(&name_int);
|
||||
return o_phsState;
|
||||
}
|
||||
|
||||
/* 00000694-000006B4 .text daTag_Kk1_Create__FP10fopAc_ac_c */
|
||||
@@ -123,7 +116,6 @@ static BOOL daTag_Kk1_IsDelete(daTag_Kk1_c* obj) {
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
// static float a_prm_tbl;
|
||||
|
||||
static actor_method_class l_daTag_Kk1_Method = {
|
||||
(process_method_func)daTag_Kk1_Create,
|
||||
|
||||
Reference in New Issue
Block a user