mirror of
https://github.com/encounter/tp.git
synced 2026-07-11 06:18:46 -07:00
Co-authored-by: hatal175 <hatal175@users.noreply.github.com>
This commit is contained in:
@@ -91,6 +91,6 @@ __vt__12dBgS_ObjAcch = .data:0x00000134; // type:object size:0x24 scope:global
|
||||
__vt__12J3DFrameCtrl = .data:0x00000158; // type:object size:0xC scope:global
|
||||
__vt__10daFr_HIO_c = .data:0x00000164; // type:object size:0xC scope:global
|
||||
__global_destructor_chain = .bss:0x00000000; // type:object size:0x4 scope:global
|
||||
lbl_72_bss_8 = .bss:0x00000008; // type:object size:0x1 data:byte
|
||||
l_initHIO = .bss:0x00000008; // type:object size:0x1 data:byte
|
||||
@3644 = .bss:0x0000000C; // type:object size:0xC scope:local
|
||||
l_HIO = .bss:0x00000018; // type:object size:0x2C scope:global data:byte
|
||||
|
||||
@@ -27,4 +27,4 @@ lbl_22_data_10 = .data:0x00000010; // type:object size:0x10
|
||||
mode_proc$3725 = .data:0x00000038; // type:object size:0x18 scope:local
|
||||
Mthd_Table__Q210daObjTimer27@unnamed@d_a_obj_timer_cpp@ = .data:0x00000050; // type:object size:0x20 scope:global
|
||||
g_profile_Obj_Timer = .data:0x00000070; // type:object size:0x30 scope:global
|
||||
lbl_22_bss_0 = .bss:0x00000000; // type:object size:0x1 data:byte
|
||||
init$1527 = .bss:0x00000000; // type:object size:0x1 data:byte
|
||||
|
||||
@@ -67,6 +67,6 @@ lbl_73_data_134 = .data:0x00000134; // type:object size:0xC
|
||||
@92624 = .data:0x00000140; // type:object size:0xC scope:local
|
||||
__RTTI__10daFr_HIO_c = .data:0x0000014C; // type:object size:0x8 scope:global
|
||||
__global_destructor_chain = .bss:0x00000000; // type:object size:0x4 scope:global
|
||||
lbl_73_bss_8 = .bss:0x00000008; // type:object size:0x1 data:byte
|
||||
l_initHIO = .bss:0x00000008; // type:object size:0x1 data:byte
|
||||
@92050 = .bss:0x0000000C; // type:object size:0xC scope:local
|
||||
l_HIO = .bss:0x00000018; // type:object size:0x2C scope:global data:byte
|
||||
|
||||
@@ -125,5 +125,5 @@ lbl_70_data_2F8 = .data:0x000002F8; // type:object size:0x24
|
||||
@117848 = .data:0x000004E0; // type:object size:0xC scope:local
|
||||
@117849 = .data:0x00000504; // type:object size:0x11 scope:local data:string
|
||||
@117850 = .data:0x0000052C; // type:object size:0xD scope:local data:string
|
||||
lbl_70_bss_0 = .bss:0x00000000; // type:object size:0x1 data:byte
|
||||
l_initHIO = .bss:0x00000000; // type:object size:0x1 data:byte
|
||||
l_HIO = .bss:0x00000004; // type:object size:0x2C scope:global data:byte
|
||||
|
||||
+3
-3
@@ -1499,7 +1499,7 @@ config.libs = [
|
||||
ActorRel(NonMatching, "d_a_obj_ito"),
|
||||
ActorRel(NonMatching, "d_a_obj_movebox"),
|
||||
ActorRel(NonMatching, "d_a_obj_swpush"),
|
||||
ActorRel(NonMatching, "d_a_obj_timer"),
|
||||
ActorRel(MatchingFor("GZ2E01"), "d_a_obj_timer"),
|
||||
ActorRel(MatchingFor("GZ2E01"), "d_a_path_line"),
|
||||
ActorRel(NonMatching, "d_a_scene_exit"),
|
||||
ActorRel(MatchingFor("GZ2E01"), "d_a_set_bgobj"),
|
||||
@@ -1921,7 +1921,7 @@ config.libs = [
|
||||
ActorRel(MatchingFor("GZ2E01"), "d_a_obj_enemy_create"),
|
||||
ActorRel(NonMatching, "d_a_obj_fallobj"),
|
||||
ActorRel(MatchingFor("GZ2E01"), "d_a_obj_fan"),
|
||||
ActorRel(NonMatching, "d_a_obj_fchain"),
|
||||
ActorRel(Equivalent, "d_a_obj_fchain"), # weak func order
|
||||
ActorRel(MatchingFor("GZ2E01"), "d_a_obj_fireWood"),
|
||||
ActorRel(MatchingFor("GZ2E01"), "d_a_obj_fireWood2"),
|
||||
ActorRel(MatchingFor("GZ2E01"), "d_a_obj_firepillar"),
|
||||
@@ -2229,7 +2229,7 @@ config.libs = [
|
||||
ActorRel(MatchingFor("GZ2E01"), "d_a_tag_wara_howl"),
|
||||
ActorRel(MatchingFor("GZ2E01"), "d_a_tag_watchge"),
|
||||
ActorRel(MatchingFor("GZ2E01"), "d_a_tag_waterfall"),
|
||||
ActorRel(NonMatching, "d_a_tag_wljump"),
|
||||
ActorRel(MatchingFor("GZ2E01"), "d_a_tag_wljump"),
|
||||
ActorRel(MatchingFor("GZ2E01"), "d_a_tag_yami", extra_cflags=['-pragma "nosyminline off"']),
|
||||
ActorRel(MatchingFor("GZ2E01"), "d_a_talk"),
|
||||
ActorRel(MatchingFor("GZ2E01"), "d_a_tboxSw"),
|
||||
|
||||
@@ -16,12 +16,11 @@
|
||||
* @details
|
||||
*
|
||||
*/
|
||||
class fr_class : public fopAc_ac_c {
|
||||
class fr_class : public fopEn_enemy_c {
|
||||
public:
|
||||
/* 0x568 */ u8 field_0x568[0x5ac - 0x568];
|
||||
/* 0x5AC */ request_of_phase_process_class mPhase;
|
||||
/* 0x5B4 */ u8 field_0x5b4;
|
||||
/* 0x5B5 */ u8 field_0x5b5[0x5c4 - 0x5b5];
|
||||
/* 0x5B5 */ cXyz field_0x5b8;
|
||||
/* 0x5C4 */ mDoExt_McaMorf* mMorf;
|
||||
/* 0x5C8 */ mDoExt_btkAnm* mBtkAnm;
|
||||
/* 0x5CC */ u8 field_0x5cc;
|
||||
@@ -77,6 +76,7 @@ public:
|
||||
/* 0x20 */ f32 field_0x20;
|
||||
/* 0x24 */ f32 field_0x24;
|
||||
/* 0x28 */ f32 field_0x28;
|
||||
/* 0x2C */ f32 field_0x2c;
|
||||
};
|
||||
|
||||
|
||||
|
||||
@@ -32,7 +32,7 @@ class Act_c : public fopAc_ac_c {
|
||||
/* 80485284 */ void mode_wait();
|
||||
/* 804852E0 */ void mode_count_init();
|
||||
/* 80485324 */ void mode_count();
|
||||
/* 804854BC */ int _execute();
|
||||
/* 804854BC */ bool _execute();
|
||||
|
||||
int prm_get_swSave() {
|
||||
return daObj::PrmAbstract(this,PRM_8, PRM_16);
|
||||
|
||||
+187
-156
File diff suppressed because it is too large
Load Diff
@@ -140,123 +140,114 @@ int daObjFchain_c::execute() {
|
||||
} else {
|
||||
field_0x588 = 0;
|
||||
}
|
||||
cXyz* local_148 = ¤t.pos;
|
||||
cXyz local_54;
|
||||
cXyz cStack_60;
|
||||
cXyz* sp_38 = ¤t.pos;
|
||||
cXyz sp_12c;
|
||||
cXyz sp_120;
|
||||
if (field_0x586 != 0) {
|
||||
field_0x586--;
|
||||
}
|
||||
cXyz* pcVar12 = field_0x694;
|
||||
cXyz* local_150 = field_0x79c;
|
||||
int i;
|
||||
cXyz* var_r28 = field_0x694;
|
||||
cXyz* sp_30 = field_0x79c;
|
||||
u32 isWolf = daPy_py_c::checkNowWolf();
|
||||
daPy_py_c* player = daPy_getLinkPlayerActorClass();
|
||||
for (int i = 0; i < 22; i++) {
|
||||
local_54 = (*pcVar12 - *local_148) + *local_150;
|
||||
local_54.y += -1.5f;
|
||||
for (i = 0; i < 22; i++, var_r28++, sp_30++) {
|
||||
sp_12c = (*var_r28 - *sp_38) + *sp_30;
|
||||
sp_12c.y += -1.5f;
|
||||
if (dComIfGs_isEventBit(0x510)) {
|
||||
if (isWolf) {
|
||||
checkPlayerFoot(pcVar12, player->getLeftHandPosP(), &local_54);
|
||||
checkPlayerFoot(pcVar12, player->getRightHandPosP(), &local_54);
|
||||
checkPlayerFoot(var_r28, player->getLeftHandPosP(), &sp_12c);
|
||||
checkPlayerFoot(var_r28, player->getRightHandPosP(), &sp_12c);
|
||||
}
|
||||
checkPlayerFoot(pcVar12, player->getLeftFootPosP(), &local_54);
|
||||
checkPlayerFoot(pcVar12, player->getRightFootPosP(), &local_54);
|
||||
checkPlayerFoot(var_r28, player->getLeftFootPosP(), &sp_12c);
|
||||
checkPlayerFoot(var_r28, player->getRightFootPosP(), &sp_12c);
|
||||
}
|
||||
cStack_60 = local_54;
|
||||
local_54.normalizeZP();
|
||||
*pcVar12 = *local_148 + (local_54 * 9.0f);
|
||||
if (pcVar12->y < current.pos.y) {
|
||||
setGroundVec(&cStack_60, current.pos.y - pcVar12->y);
|
||||
*pcVar12 = *local_148 + (cStack_60 * 9.0f);
|
||||
sp_120 = sp_12c;
|
||||
sp_12c.normalizeZP();
|
||||
*var_r28 = *sp_38 + (sp_12c * 9.0f);
|
||||
if (var_r28->y < current.pos.y) {
|
||||
setGroundVec(&sp_120, current.pos.y - var_r28->y);
|
||||
*var_r28 = *sp_38 + (sp_120 * 9.0f);
|
||||
}
|
||||
local_150++;
|
||||
local_148 = pcVar12;
|
||||
pcVar12++;
|
||||
sp_38 = var_r28;
|
||||
}
|
||||
if (isWolf && !dComIfGs_isEventBit(0x510)) {
|
||||
mDoMtx_multVec(
|
||||
player->getModelJointMtx(17), &wolfChainBaseOffset,
|
||||
&field_0x694[21]);
|
||||
cXyz diff = (field_0x694[21] - current.pos);
|
||||
f32 dVar13 = diff.abs();
|
||||
sp_12c = (field_0x694[21] - current.pos);
|
||||
f32 dVar13 = sp_12c.abs();
|
||||
if (dVar13 > 198.0f) {
|
||||
s16 sVar10 = cM_atan2s(-local_54.x, -local_54.z);
|
||||
player->setOutPower(dVar13 - 198.0f, sVar10, 0);
|
||||
player->setOutPower(dVar13 - 198.0f, cM_atan2s(-sp_12c.x, -sp_12c.z), 0);
|
||||
player->onWolfFchainPull();
|
||||
cXyz* pcVar8 = field_0x694;
|
||||
local_148 = ¤t.pos;
|
||||
local_54 *= 9.0f / dVar13;
|
||||
for (int i = 0; pcVar12 = pcVar8, i < 22; i++) {
|
||||
*pcVar8 = *local_148 + local_54;
|
||||
local_148 = pcVar8;
|
||||
pcVar8++;
|
||||
var_r28 = field_0x694;
|
||||
sp_38 = ¤t.pos;
|
||||
sp_12c *= 9.0f / dVar13;
|
||||
for (i = 0; i < 22; i++, var_r28++) {
|
||||
*var_r28 = *sp_38 + sp_12c;
|
||||
sp_38 = var_r28;
|
||||
}
|
||||
field_0x584 = 0;
|
||||
} else {
|
||||
cXyz* pcVar8 = &field_0x694[20];
|
||||
local_150 = &field_0x79c[20];
|
||||
local_148 = pcVar8 + 1;
|
||||
for (int i = 20; i >= 0; i--) {
|
||||
local_54 = (*pcVar8 - *local_148) + *local_150;
|
||||
local_54.y += -1.5f;
|
||||
cStack_60 = local_54;
|
||||
local_54.normalizeZP();
|
||||
*pcVar8 = *local_148 + (local_54 * 9.0f);
|
||||
if (pcVar8->y < current.pos.y) {
|
||||
setGroundVec(&cStack_60, current.pos.y - pcVar8->y);
|
||||
*pcVar8 = *local_148 + (cStack_60 * 9.0f);
|
||||
var_r28 = &field_0x694[20];
|
||||
sp_30 = &field_0x79c[20];
|
||||
sp_38 = var_r28 + 1;
|
||||
for (i = 20; i >= 0; i--, var_r28--, sp_30--) {
|
||||
sp_12c = (*var_r28 - *sp_38) + *sp_30;
|
||||
sp_12c.y += -1.5f;
|
||||
sp_120 = sp_12c;
|
||||
sp_12c.normalizeZP();
|
||||
*var_r28 = *sp_38 + (sp_12c * 9.0f);
|
||||
if (var_r28->y < current.pos.y) {
|
||||
setGroundVec(&sp_120, current.pos.y - var_r28->y);
|
||||
*var_r28 = *sp_38 + (sp_120 * 9.0f);
|
||||
}
|
||||
local_150--;
|
||||
local_148 = pcVar8;
|
||||
pcVar8--;
|
||||
sp_38 = var_r28;
|
||||
}
|
||||
}
|
||||
}
|
||||
local_148 = ¤t.pos;
|
||||
local_150 = field_0x694;
|
||||
cXyz* pcVar8 = field_0x79c;
|
||||
csXyz* local_15c = field_0x8a4;
|
||||
cXyz* local_160 = field_0x58c;
|
||||
s16 local_178 = 0;
|
||||
for (int i = 0; i < 22; i++) {
|
||||
*local_150 = (*pcVar8 - *local_160) * 0.3f;
|
||||
*local_160 = *pcVar8;
|
||||
local_54 = *local_148 - *pcVar8;
|
||||
local_15c->x = local_54.atan2sY_XZ();
|
||||
if (!(local_54.absXZ() < 3.5f)) {
|
||||
local_15c->y = local_54.atan2sX_Z();
|
||||
sp_38 = ¤t.pos;
|
||||
var_r28 = field_0x694;
|
||||
sp_30 = field_0x79c;
|
||||
csXyz* sp_24 = field_0x8a4;
|
||||
cXyz* sp_20 = field_0x58c;
|
||||
s16 sp_08 = 0;
|
||||
for (i = 0; i < 22; i++, var_r28++, sp_30++, sp_24++, sp_20++) {
|
||||
*sp_30 = (*var_r28 - *sp_20) * 0.3f;
|
||||
*sp_20 = *var_r28;
|
||||
sp_12c = *sp_38 - *var_r28;
|
||||
sp_24->x = sp_12c.atan2sY_XZ();
|
||||
if (!(sp_12c.absXZ() < 3.5f)) {
|
||||
sp_24->y = sp_12c.atan2sX_Z();
|
||||
}
|
||||
if (local_150->abs2() > 3.0f && field_0x586 == 0) {
|
||||
if (sp_30->abs2() > 3.0f && field_0x586 == 0) {
|
||||
f32 fVar1;
|
||||
if (cM_rnd() < 0.5f) {
|
||||
fVar1 = 1.0f;
|
||||
} else {
|
||||
fVar1 = -1.0f;
|
||||
}
|
||||
local_15c->z = local_178 + 0x4000 +
|
||||
sp_24->z = sp_08 + 0x4000 +
|
||||
(fVar1 * (cM_rndF(4096.0f) + 1536.0f));
|
||||
if (pcVar8->y <= current.pos.y + 2.0f) {
|
||||
if ((local_15c->z >= 0 && local_15c->z < 0x4000) ||
|
||||
(local_15c->z > -0x7fff && local_15c->z < -0x4000))
|
||||
if (var_r28->y <= current.pos.y + 2.0f) {
|
||||
if ((sp_24->z >= 0 && sp_24->z < 0x4000) ||
|
||||
(sp_24->z > -0x7fff && sp_24->z < -0x4000))
|
||||
{
|
||||
local_15c->z = cM_rndFX(2048.0f) + 4096.0f;
|
||||
sp_24->z = cM_rndFX(2048.0f) + 4096.0f;
|
||||
} else {
|
||||
local_15c->z = cM_rndFX(2048.0f) + -4096.0f;
|
||||
sp_24->z = cM_rndFX(2048.0f) + -4096.0f;
|
||||
}
|
||||
}
|
||||
}
|
||||
local_178 = local_15c->z;
|
||||
local_150++;
|
||||
local_15c++;
|
||||
local_160++;
|
||||
local_148 = pcVar8;
|
||||
pcVar8++;
|
||||
sp_08 = sp_24->z;
|
||||
sp_38 = var_r28;
|
||||
}
|
||||
if (field_0x584 == 0) {
|
||||
field_0x584 = 1;
|
||||
local_150 = field_0x79c;
|
||||
sp_30 = field_0x79c;
|
||||
for (int i = 0; i < 22; i++) {
|
||||
*local_150 = cXyz::Zero;
|
||||
local_150++;
|
||||
*sp_30 = cXyz::Zero;
|
||||
sp_30++;
|
||||
}
|
||||
field_0x586 = 5;
|
||||
}
|
||||
|
||||
@@ -194,7 +194,7 @@ int daObjL6Bm_c::CreateHeap() {
|
||||
}
|
||||
|
||||
#ifdef DEBUG
|
||||
pbtk = (J3DAnmTextureSRTKey*)dComIfG_getObjectRes(l_arcName, BTK_EF_BIMOBEAM_OFF);
|
||||
pbtk = (J3DAnmTextureSRTKey*)dComIfG_getObjectRes(l_arcName, BTK_EF_BIMOBEAM_0FF);
|
||||
JUT_ASSERT(660, pbtk != 0);
|
||||
#endif
|
||||
|
||||
|
||||
@@ -89,7 +89,7 @@ void daObjTimer::Act_c::mode_count() {
|
||||
}
|
||||
|
||||
/* 804854BC-804855A4 00039C 00E8+00 1/1 0/0 0/0 .text _execute__Q210daObjTimer5Act_cFv */
|
||||
int daObjTimer::Act_c::_execute() {
|
||||
bool daObjTimer::Act_c::_execute() {
|
||||
static daObjTimer::Act_c::modeProc const mode_proc[2] = {
|
||||
&daObjTimer::Act_c::mode_wait,
|
||||
&daObjTimer::Act_c::mode_count,
|
||||
@@ -97,10 +97,10 @@ int daObjTimer::Act_c::_execute() {
|
||||
|
||||
if (fopAcM_isSwitch(this, prm_get_sw2Save())) {
|
||||
fopAcM_delete(this);
|
||||
return 1;
|
||||
return true;
|
||||
} else {
|
||||
(this->*mode_proc[field_0x568])();
|
||||
return 1;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -136,8 +136,8 @@ namespace {
|
||||
(process_method_func)Mthd_Create,
|
||||
(process_method_func)Mthd_Delete,
|
||||
(process_method_func)Mthd_Execute,
|
||||
(process_method_func)Mthd_Draw,
|
||||
(process_method_func)Mthd_IsDelete,
|
||||
(process_method_func)Mthd_Draw,
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
@@ -83,7 +83,7 @@ int daTagWljump_c::execute() {
|
||||
if (!midna->checkShadowModeTalkWait()) {
|
||||
if (shape_angle.x != 0 && (field_0x571 == 0xff || !fopAcM_isSwitch(this, field_0x571))) {
|
||||
if (field_0x56f == 0) {
|
||||
mMsgFlow.init(this, shape_angle.x & 0xFFFF, 0, NULL);
|
||||
mMsgFlow.init(this, (u16)shape_angle.x, 0, NULL);
|
||||
field_0x56f = 1;
|
||||
mDoAud_seStart(Z2SE_NAVI_TALK_START, NULL, 0, 0);
|
||||
} else {
|
||||
@@ -207,7 +207,11 @@ int daTagWljump_c::execute() {
|
||||
field_0x570 = field_0x568;
|
||||
field_0x568 = -1;
|
||||
} else {
|
||||
#if DEBUG
|
||||
attention_info.flags |= 0x801;
|
||||
#else
|
||||
attention_info.flags |= 0x81;
|
||||
#endif
|
||||
}
|
||||
} else {
|
||||
field_0x572 = 0;
|
||||
|
||||
Reference in New Issue
Block a user