mirror of
https://github.com/TwilitRealm/dusklight
synced 2026-05-23 14:41:33 -04:00
Miscellaneous retail+debug fixes, link several new TUs (#2836)
This commit is contained in:
@@ -469,6 +469,7 @@ l_centerOfst = .bss:0x00000054; // type:object size:0xC scope:global
|
||||
@4027 = .bss:0x00000060; // type:object size:0xC scope:local
|
||||
l_HIO = .bss:0x0000006C; // type:object size:0x4 scope:global
|
||||
@5037 = .bss:0x00000070; // type:object size:0xC scope:local
|
||||
init$5038 = .bss:0x0000007C; // type:object size:0x1 scope:local
|
||||
@5040 = .bss:0x00000080; // type:object size:0xC scope:local
|
||||
@5041 = .bss:0x0000008C; // type:object size:0xC scope:local
|
||||
@5042 = .bss:0x00000098; // type:object size:0xC scope:local
|
||||
@@ -485,8 +486,10 @@ l_HIO = .bss:0x0000006C; // type:object size:0x4 scope:global
|
||||
@5053 = .bss:0x0000011C; // type:object size:0xC scope:local
|
||||
aTrembleTrans$5036 = .bss:0x00000128; // type:object size:0xB4 scope:local
|
||||
@5298 = .bss:0x000001DC; // type:object size:0xC scope:local
|
||||
init$5299 = .bss:0x000001E8; // type:object size:0x1 scope:local
|
||||
aOfst$5297 = .bss:0x000001EC; // type:object size:0xC scope:local
|
||||
@5404 = .bss:0x000001F8; // type:object size:0xC scope:local
|
||||
init$5405 = .bss:0x00000204; // type:object size:0x1 scope:local
|
||||
aEyeOfst$5403 = .bss:0x00000208; // type:object size:0xC scope:local
|
||||
@5648 = .bss:0x00000214; // type:object size:0xC scope:local
|
||||
@5651 = .bss:0x00000224; // type:object size:0xC scope:local
|
||||
|
||||
@@ -76,4 +76,4 @@ __vt__8cM3dGCyl = .data:0x0000011C; // type:object size:0xC scope:global
|
||||
__vt__12dBgS_ObjAcch = .data:0x00000128; // type:object size:0x24 scope:global
|
||||
__vt__12J3DFrameCtrl = .data:0x0000014C; // type:object size:0xC scope:global
|
||||
__vt__13daObjLv7Brg_c = .data:0x00000158; // type:object size:0x28 scope:global
|
||||
lbl_559_bss_0 = .bss:0x00000000; // type:object size:0x1 data:byte
|
||||
init$3943 = .bss:0x00000000; // type:object size:0x1 data:byte
|
||||
|
||||
@@ -13,3 +13,4 @@ d/actor/d_a_obj_lv7bridge.cpp:
|
||||
.text start:0x00000078 end:0x00001698
|
||||
.rodata start:0x00000000 end:0x00000094
|
||||
.data start:0x00000000 end:0x00000180
|
||||
.bss start:0x00000000 end:0x00000004
|
||||
|
||||
@@ -75,4 +75,4 @@ __vt__8cM3dGCyl = .data:0x0000011C; // type:object size:0xC scope:global
|
||||
__vt__12dBgS_ObjAcch = .data:0x00000128; // type:object size:0x24 scope:global
|
||||
__vt__12J3DFrameCtrl = .data:0x0000014C; // type:object size:0xC scope:global
|
||||
__vt__13daObjLv7Brg_c = .data:0x00000158; // type:object size:0x28 scope:global
|
||||
lbl_559_bss_0 = .bss:0x00000000; // type:object size:0x1 data:byte
|
||||
init$3943 = .bss:0x00000000; // type:object size:0x1 data:byte
|
||||
|
||||
@@ -75,4 +75,4 @@ __vt__8cM3dGCyl = .data:0x0000011C; // type:object size:0xC scope:global
|
||||
__vt__12dBgS_ObjAcch = .data:0x00000128; // type:object size:0x24 scope:global
|
||||
__vt__12J3DFrameCtrl = .data:0x0000014C; // type:object size:0xC scope:global
|
||||
__vt__13daObjLv7Brg_c = .data:0x00000158; // type:object size:0x28 scope:global
|
||||
lbl_559_bss_0 = .bss:0x00000000; // type:object size:0x1 data:byte
|
||||
init$3943 = .bss:0x00000000; // type:object size:0x1 data:byte
|
||||
|
||||
+8
-8
@@ -1612,7 +1612,7 @@ config.libs = [
|
||||
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_demo00"),
|
||||
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_disappear"),
|
||||
ActorRel(NonMatching, "d_a_mg_rod"),
|
||||
ActorRel(MatchingFor("GZ2E01"), "d_a_midna"),
|
||||
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_midna"),
|
||||
ActorRel(Equivalent, "d_a_nbomb"), # weak func order
|
||||
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_life_container"),
|
||||
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_yousei"),
|
||||
@@ -1806,7 +1806,7 @@ config.libs = [
|
||||
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_e_vt"),
|
||||
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_e_warpappear"),
|
||||
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_e_wb"),
|
||||
ActorRel(NonMatching, "d_a_e_ws"),
|
||||
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_e_ws"),
|
||||
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_e_ww"),
|
||||
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_e_yc"),
|
||||
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_e_yd"),
|
||||
@@ -1838,8 +1838,8 @@ config.libs = [
|
||||
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_kytag13"),
|
||||
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_kytag15"),
|
||||
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_kytag16"),
|
||||
ActorRel(NonMatching, "d_a_mant"),
|
||||
ActorRel(MatchingFor("GZ2E01", "GZ2P01"), "d_a_mg_fshop"),
|
||||
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_mant"),
|
||||
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_mg_fshop"),
|
||||
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_mirror"),
|
||||
ActorRel(NonMatching, "d_a_movie_player", extra_cflags=["-O3,p"]),
|
||||
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_myna"),
|
||||
@@ -1851,7 +1851,7 @@ config.libs = [
|
||||
ActorRel(NonMatching, "d_a_npc_blue_ns"),
|
||||
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_npc_bou"),
|
||||
ActorRel(Equivalent, "d_a_npc_bouS"), # weak func order
|
||||
ActorRel(NonMatching, "d_a_npc_cdn3"),
|
||||
ActorRel(Equivalent, "d_a_npc_cdn3"), # weak func order
|
||||
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_npc_chat"),
|
||||
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_npc_chin"),
|
||||
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_npc_clerka"),
|
||||
@@ -1922,7 +1922,7 @@ config.libs = [
|
||||
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_npc_seirei"),
|
||||
ActorRel(Equivalent, "d_a_npc_shad"), # weak func order
|
||||
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_npc_shaman"),
|
||||
ActorRel(MatchingFor("GZ2E01"), "d_a_npc_shoe"),
|
||||
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_npc_shoe"),
|
||||
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_npc_shop0"),
|
||||
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_npc_shop_maro"),
|
||||
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_npc_sola"),
|
||||
@@ -2119,8 +2119,8 @@ config.libs = [
|
||||
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_lv6elevta"),
|
||||
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_lv6swturn"),
|
||||
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_lv7BsGate"),
|
||||
ActorRel(NonMatching, "d_a_obj_lv7PropellerY"),
|
||||
ActorRel(Equivalent, "d_a_obj_lv7bridge"), # small regalloc
|
||||
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_lv7PropellerY"),
|
||||
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_lv7bridge"),
|
||||
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_lv8KekkaiTrap"),
|
||||
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_lv8Lift"),
|
||||
ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_obj_lv8OptiLift"),
|
||||
|
||||
@@ -77,23 +77,5 @@ public:
|
||||
|
||||
STATIC_ASSERT(sizeof(daE_WS_c) == 0xb80);
|
||||
|
||||
class daE_WS_HIO_c : public JORReflexible {
|
||||
public:
|
||||
/* 807E3A0C */ daE_WS_HIO_c();
|
||||
/* 807E6E44 */ virtual ~daE_WS_HIO_c() {}
|
||||
|
||||
void genMessage(JORMContext*);
|
||||
|
||||
/* 0x04 */ s8 id;
|
||||
/* 0x08 */ f32 base_size;
|
||||
/* 0x0C */ f32 move_range;
|
||||
/* 0x10 */ f32 search_range;
|
||||
/* 0x14 */ f32 search_y_range;
|
||||
/* 0x18 */ f32 dist_to_ground;
|
||||
/* 0x1C */ f32 search_angle;
|
||||
/* 0x20 */ f32 attack_speed;
|
||||
/* 0x24 */ u8 debug_ON;
|
||||
};
|
||||
|
||||
|
||||
#endif /* D_A_E_WS_H */
|
||||
|
||||
+60
-108
@@ -35,18 +35,18 @@ struct daNpcCd2_HIO_MChild_c {
|
||||
/* 8015A808 */ daNpcCd2_HIO_MChild_c() {}
|
||||
|
||||
/* 0x004 */ daNpcCd2_HIO_Jnt_c field_0x004[19];
|
||||
/* 0x1CE */ s16 mMaxLmtY_BACKBONE;
|
||||
/* 0x1CA */ s16 mMaxLmtX_BACKBONE;
|
||||
/* 0x1CC */ s16 mMinLmtY_BACKBONE;
|
||||
/* 0x1CE */ s16 mMinLmtX_BACKBONE;
|
||||
/* 0x1D0 */ s16 mMaxLmtY_NECK;
|
||||
/* 0x1D2 */ s16 mMaxLmtX_NECK;
|
||||
/* 0x1D4 */ s16 mMinLmtY_NECK;
|
||||
/* 0x1D6 */ s16 mMinLmtX_NECK;
|
||||
/* 0x1D0 */ s16 mMaxLmtY_HEAD;
|
||||
/* 0x1D2 */ s16 mMaxLmtX_HEAD;
|
||||
/* 0x1D4 */ s16 mMinLmtY_HEAD;
|
||||
/* 0x1D6 */ s16 mMinLmtX_HEAD;
|
||||
/* 0x1CE */ s16 mMaxLmtX_BACKBONE;
|
||||
/* 0x1CA */ s16 mMaxLmtY_BACKBONE;
|
||||
/* 0x1CC */ s16 mMinLmtX_BACKBONE;
|
||||
/* 0x1CE */ s16 mMinLmtY_BACKBONE;
|
||||
/* 0x1D0 */ s16 mMaxLmtX_NECK;
|
||||
/* 0x1D2 */ s16 mMaxLmtY_NECK;
|
||||
/* 0x1D4 */ s16 mMinLmtX_NECK;
|
||||
/* 0x1D6 */ s16 mMinLmtY_NECK;
|
||||
/* 0x1D0 */ s16 mMaxLmtX_HEAD;
|
||||
/* 0x1D2 */ s16 mMaxLmtY_HEAD;
|
||||
/* 0x1D4 */ s16 mMinLmtX_HEAD;
|
||||
/* 0x1D6 */ s16 mMinLmtY_HEAD;
|
||||
/* 0x1E0 */ f32 mScale;
|
||||
/* 0x1E4 */ s16 mAttn;
|
||||
/* 0x1E8 */ f32 mAnmPlaySpeed;
|
||||
@@ -64,18 +64,18 @@ struct daNpcCd2_HIO_WChild_c {
|
||||
/* 8015A730 */ daNpcCd2_HIO_WChild_c() {}
|
||||
|
||||
/* 0x004 */ daNpcCd2_HIO_Jnt_c field_0x004[21];
|
||||
/* 0x1FE */ s16 mMaxLmtY_BACKBONE;
|
||||
/* 0x1FA */ s16 mMaxLmtX_BACKBONE;
|
||||
/* 0x1FC */ s16 mMinLmtY_BACKBONE;
|
||||
/* 0x1FE */ s16 mMinLmtX_BACKBONE;
|
||||
/* 0x200 */ s16 mMaxLmtY_NECK;
|
||||
/* 0x202 */ s16 mMaxLmtX_NECK;
|
||||
/* 0x204 */ s16 mMinLmtY_NECK;
|
||||
/* 0x206 */ s16 mMinLmtX_NECK;
|
||||
/* 0x200 */ s16 mMaxLmtY_HEAD;
|
||||
/* 0x202 */ s16 mMaxLmtX_HEAD;
|
||||
/* 0x204 */ s16 mMinLmtY_HEAD;
|
||||
/* 0x206 */ s16 mMinLmtX_HEAD;
|
||||
/* 0x1FE */ s16 mMaxLmtX_BACKBONE;
|
||||
/* 0x1FA */ s16 mMaxLmtY_BACKBONE;
|
||||
/* 0x1FC */ s16 mMinLmtX_BACKBONE;
|
||||
/* 0x1FE */ s16 mMinLmtY_BACKBONE;
|
||||
/* 0x200 */ s16 mMaxLmtX_NECK;
|
||||
/* 0x202 */ s16 mMaxLmtY_NECK;
|
||||
/* 0x204 */ s16 mMinLmtX_NECK;
|
||||
/* 0x206 */ s16 mMinLmtY_NECK;
|
||||
/* 0x200 */ s16 mMaxLmtX_HEAD;
|
||||
/* 0x202 */ s16 mMaxLmtY_HEAD;
|
||||
/* 0x204 */ s16 mMinLmtX_HEAD;
|
||||
/* 0x206 */ s16 mMinLmtY_HEAD;
|
||||
/* 0x218 */ f32 mScale;
|
||||
/* 0x21C */ s16 mAttn;
|
||||
/* 0x220 */ f32 mAnmPlaySpeed;
|
||||
@@ -148,123 +148,75 @@ inline f32 Cd2_HIO_cylH(int param_1) {
|
||||
}
|
||||
|
||||
inline s16 Cd2_HIO_maxLmtX_BACKBONE(int param_1) {
|
||||
s16 rv;
|
||||
if (param_1 < 16) {
|
||||
rv = l_Cd2_HIO.field_0x0004[param_1].mMaxLmtX_BACKBONE;
|
||||
} else {
|
||||
rv = l_Cd2_HIO.field_0x20c4[param_1 - 16].mMaxLmtX_BACKBONE;
|
||||
}
|
||||
return rv;
|
||||
return (s16)(param_1 < 16 ?
|
||||
l_Cd2_HIO.field_0x0004[param_1].mMaxLmtX_BACKBONE :
|
||||
l_Cd2_HIO.field_0x20c4[param_1 - 16].mMaxLmtX_BACKBONE);
|
||||
}
|
||||
|
||||
inline s16 Cd2_HIO_maxLmtY_BACKBONE(int param_1) {
|
||||
s16 rv;
|
||||
if (param_1 < 16) {
|
||||
rv = l_Cd2_HIO.field_0x0004[param_1].mMaxLmtY_BACKBONE;
|
||||
} else {
|
||||
rv = l_Cd2_HIO.field_0x20c4[param_1 - 16].mMaxLmtY_BACKBONE;
|
||||
}
|
||||
return rv;
|
||||
return (s16)(param_1 < 16 ?
|
||||
l_Cd2_HIO.field_0x0004[param_1].mMaxLmtY_BACKBONE :
|
||||
l_Cd2_HIO.field_0x20c4[param_1 - 16].mMaxLmtY_BACKBONE);
|
||||
}
|
||||
|
||||
inline s16 Cd2_HIO_maxLmtX_NECK(int param_1) {
|
||||
s16 rv;
|
||||
if (param_1 < 16) {
|
||||
rv = l_Cd2_HIO.field_0x0004[param_1].mMaxLmtX_NECK;
|
||||
} else {
|
||||
rv = l_Cd2_HIO.field_0x20c4[param_1 - 16].mMaxLmtX_NECK;
|
||||
}
|
||||
return rv;
|
||||
return (s16)(param_1 < 16 ?
|
||||
l_Cd2_HIO.field_0x0004[param_1].mMaxLmtX_NECK :
|
||||
l_Cd2_HIO.field_0x20c4[param_1 - 16].mMaxLmtX_NECK);
|
||||
}
|
||||
|
||||
inline s16 Cd2_HIO_maxLmtY_NECK(int param_1) {
|
||||
s16 rv;
|
||||
if (param_1 < 16) {
|
||||
rv = l_Cd2_HIO.field_0x0004[param_1].mMaxLmtY_NECK;
|
||||
} else {
|
||||
rv = l_Cd2_HIO.field_0x20c4[param_1 - 16].mMaxLmtY_NECK;
|
||||
}
|
||||
return rv;
|
||||
return (s16)(param_1 < 16 ?
|
||||
l_Cd2_HIO.field_0x0004[param_1].mMaxLmtY_NECK :
|
||||
l_Cd2_HIO.field_0x20c4[param_1 - 16].mMaxLmtY_NECK);
|
||||
}
|
||||
|
||||
inline s16 Cd2_HIO_maxLmtX_HEAD(int param_1) {
|
||||
s16 rv;
|
||||
if (param_1 < 16) {
|
||||
rv = l_Cd2_HIO.field_0x0004[param_1].mMaxLmtX_HEAD;
|
||||
} else {
|
||||
rv = l_Cd2_HIO.field_0x20c4[param_1 - 16].mMaxLmtX_HEAD;
|
||||
}
|
||||
return rv;
|
||||
return (s16)(param_1 < 16 ?
|
||||
l_Cd2_HIO.field_0x0004[param_1].mMaxLmtX_HEAD :
|
||||
l_Cd2_HIO.field_0x20c4[param_1 - 16].mMaxLmtX_HEAD);
|
||||
}
|
||||
|
||||
inline s16 Cd2_HIO_maxLmtY_HEAD(int param_1) {
|
||||
s16 rv;
|
||||
if (param_1 < 16) {
|
||||
rv = l_Cd2_HIO.field_0x0004[param_1].mMaxLmtY_HEAD;
|
||||
} else {
|
||||
rv = l_Cd2_HIO.field_0x20c4[param_1 - 16].mMaxLmtY_HEAD;
|
||||
}
|
||||
return rv;
|
||||
return (s16)(param_1 < 16 ?
|
||||
l_Cd2_HIO.field_0x0004[param_1].mMaxLmtY_HEAD :
|
||||
l_Cd2_HIO.field_0x20c4[param_1 - 16].mMaxLmtY_HEAD);
|
||||
}
|
||||
|
||||
inline s16 Cd2_HIO_minLmtX_BACKBONE(int param_1) {
|
||||
s16 rv;
|
||||
if (param_1 < 16) {
|
||||
rv = l_Cd2_HIO.field_0x0004[param_1].mMinLmtX_BACKBONE;
|
||||
} else {
|
||||
rv = l_Cd2_HIO.field_0x20c4[param_1 - 16].mMinLmtX_BACKBONE;
|
||||
}
|
||||
return rv;
|
||||
return (s16)(param_1 < 16 ?
|
||||
l_Cd2_HIO.field_0x0004[param_1].mMinLmtX_BACKBONE :
|
||||
l_Cd2_HIO.field_0x20c4[param_1 - 16].mMinLmtX_BACKBONE);
|
||||
}
|
||||
|
||||
inline s16 Cd2_HIO_minLmtY_BACKBONE(int param_1) {
|
||||
s16 rv;
|
||||
if (param_1 < 16) {
|
||||
rv = l_Cd2_HIO.field_0x0004[param_1].mMinLmtY_BACKBONE;
|
||||
} else {
|
||||
rv = l_Cd2_HIO.field_0x20c4[param_1 - 16].mMinLmtY_BACKBONE;
|
||||
}
|
||||
return rv;
|
||||
return (s16)(param_1 < 16 ?
|
||||
l_Cd2_HIO.field_0x0004[param_1].mMinLmtY_BACKBONE :
|
||||
l_Cd2_HIO.field_0x20c4[param_1 - 16].mMinLmtY_BACKBONE);
|
||||
}
|
||||
|
||||
inline s16 Cd2_HIO_minLmtX_NECK(int param_1) {
|
||||
s16 rv;
|
||||
if (param_1 < 16) {
|
||||
rv = l_Cd2_HIO.field_0x0004[param_1].mMinLmtX_NECK;
|
||||
} else {
|
||||
rv = l_Cd2_HIO.field_0x20c4[param_1 - 16].mMinLmtX_NECK;
|
||||
}
|
||||
return rv;
|
||||
return (s16)(param_1 < 16 ?
|
||||
l_Cd2_HIO.field_0x0004[param_1].mMinLmtX_NECK :
|
||||
l_Cd2_HIO.field_0x20c4[param_1 - 16].mMinLmtX_NECK);
|
||||
}
|
||||
|
||||
inline s16 Cd2_HIO_minLmtY_NECK(int param_1) {
|
||||
s16 rv;
|
||||
if (param_1 < 16) {
|
||||
rv = l_Cd2_HIO.field_0x0004[param_1].mMinLmtY_NECK;
|
||||
} else {
|
||||
rv = l_Cd2_HIO.field_0x20c4[param_1 - 16].mMinLmtY_NECK;
|
||||
}
|
||||
return rv;
|
||||
return (s16)(param_1 < 16 ?
|
||||
l_Cd2_HIO.field_0x0004[param_1].mMinLmtY_NECK :
|
||||
l_Cd2_HIO.field_0x20c4[param_1 - 16].mMinLmtY_NECK);
|
||||
}
|
||||
|
||||
inline s16 Cd2_HIO_minLmtX_HEAD(int param_1) {
|
||||
s16 rv;
|
||||
if (param_1 < 16) {
|
||||
rv = l_Cd2_HIO.field_0x0004[param_1].mMinLmtX_HEAD;
|
||||
} else {
|
||||
rv = l_Cd2_HIO.field_0x20c4[param_1 - 16].mMinLmtX_HEAD;
|
||||
}
|
||||
return rv;
|
||||
return (s16)(param_1 < 16 ?
|
||||
l_Cd2_HIO.field_0x0004[param_1].mMinLmtX_HEAD :
|
||||
l_Cd2_HIO.field_0x20c4[param_1 - 16].mMinLmtX_HEAD);
|
||||
}
|
||||
|
||||
inline s16 Cd2_HIO_minLmtY_HEAD(int param_1) {
|
||||
s16 rv;
|
||||
if (param_1 < 16) {
|
||||
rv = l_Cd2_HIO.field_0x0004[param_1].mMinLmtY_HEAD;
|
||||
} else {
|
||||
rv = l_Cd2_HIO.field_0x20c4[param_1 - 16].mMinLmtY_HEAD;
|
||||
}
|
||||
return rv;
|
||||
return (s16)(param_1 < 16 ?
|
||||
l_Cd2_HIO.field_0x0004[param_1].mMinLmtY_HEAD :
|
||||
l_Cd2_HIO.field_0x20c4[param_1 - 16].mMinLmtY_HEAD);
|
||||
}
|
||||
|
||||
class PathTrace_c {
|
||||
|
||||
@@ -93,6 +93,7 @@ public:
|
||||
/* 8097C844 */ int sing(void*);
|
||||
/* 8097C910 */ int create();
|
||||
/* 8097CC58 */ void create_init();
|
||||
inline int createHeap();
|
||||
/* 8097D078 */ void setMtx();
|
||||
/* 8097D120 */ void lookat();
|
||||
/* 8097D684 */ virtual ~daNpcCdn3_c();
|
||||
@@ -102,17 +103,23 @@ public:
|
||||
inline int draw();
|
||||
|
||||
int getTimeHour() {
|
||||
int hour;
|
||||
if (mIsDarkWorld) {
|
||||
return dKy_getDarktime_hour();
|
||||
}
|
||||
return dKy_getdaytime_hour();
|
||||
hour = dKy_getDarktime_hour();
|
||||
} else {
|
||||
hour = dKy_getdaytime_hour();
|
||||
}
|
||||
return hour;
|
||||
}
|
||||
|
||||
int getTimeMinute() {
|
||||
int minute;
|
||||
if (mIsDarkWorld) {
|
||||
return dKy_getDarktime_minute();
|
||||
}
|
||||
return dKy_getdaytime_minute();
|
||||
minute = dKy_getDarktime_minute();
|
||||
} else {
|
||||
minute = dKy_getdaytime_minute();
|
||||
}
|
||||
return minute;
|
||||
}
|
||||
|
||||
int getTime() {
|
||||
@@ -120,20 +127,23 @@ public:
|
||||
}
|
||||
|
||||
int getDayOfWeek() {
|
||||
int day;
|
||||
if (mIsDarkWorld) {
|
||||
return dKy_getDarktime_week();
|
||||
day = dKy_getDarktime_week();
|
||||
} else {
|
||||
return dKy_get_dayofweek();
|
||||
day = dKy_get_dayofweek();
|
||||
}
|
||||
return day;
|
||||
}
|
||||
|
||||
void setSpeed(f32* param_1, f32 param_2, f32 param_3, int param_4) {
|
||||
f32 target = field_0xb5c * (param_3 * field_0xb5c);
|
||||
f32 step = field_0xb5c * (param_2 * field_0xb5c);
|
||||
if (param_3 < target) {
|
||||
target = param_3;
|
||||
void setSpeed(f32 param_0, f32 param_1, f32* param_2, int param_3) {
|
||||
(void)param_3;
|
||||
f32 target = field_0xb5c * (param_1 * field_0xb5c);
|
||||
f32 step = field_0xb5c * (param_0 * field_0xb5c);
|
||||
if (param_1 < target) {
|
||||
target = param_1;
|
||||
}
|
||||
cLib_chaseF(param_1, target, step);
|
||||
cLib_chaseF(param_2, target, step);
|
||||
}
|
||||
|
||||
int getGroupID() { return fopAcM_GetParam(this) & 0xff; }
|
||||
@@ -142,15 +152,17 @@ public:
|
||||
int getType() { return argument & 0x7f; }
|
||||
int getSeqNum() { return shape_angle.x & 0x3f; }
|
||||
int getFlowNodeNum() { return shape_angle.z; }
|
||||
u16 getStartTime() { return (fopAcM_GetParam(this) >> 8) & 0xff; }
|
||||
u16 getEndTime() { return (fopAcM_GetParam(this) >> 16) & 0xff; }
|
||||
u8 getStartTime() { return (fopAcM_GetParam(this) >> 8) & 0xff; }
|
||||
u8 getEndTime() { return (fopAcM_GetParam(this) >> 16) & 0xff; }
|
||||
|
||||
void initParamTime() {
|
||||
u16 startTime = getStartTime();
|
||||
u16 endTime = getEndTime();
|
||||
u16 x;
|
||||
u16 y;
|
||||
u8 startTime = getStartTime();
|
||||
u8 endTime = getEndTime();
|
||||
if (startTime != 0xff && endTime != 0xff) {
|
||||
u16 x = startTime / 10;
|
||||
u16 y = (startTime % 10) * 10;
|
||||
x = startTime / 10;
|
||||
y = (startTime % 10) * 10;
|
||||
field_0xb8c = y + x * 60;
|
||||
x = endTime / 10;
|
||||
y = (endTime % 10) * 10;
|
||||
@@ -179,78 +191,77 @@ public:
|
||||
}
|
||||
|
||||
int getObjNum() {
|
||||
u8 uVar3 = (shape_angle.x >> 6) & 0xf;
|
||||
int rv;
|
||||
int uVar3 = (shape_angle.x >> 6) & 0xf;
|
||||
if (isM_()) {
|
||||
switch (uVar3) {
|
||||
case 0:
|
||||
rv = 0;
|
||||
uVar3 = 0;
|
||||
break;
|
||||
case 1:
|
||||
rv = 1;
|
||||
uVar3 = 1;
|
||||
break;
|
||||
case 2:
|
||||
rv = 2;
|
||||
uVar3 = 2;
|
||||
break;
|
||||
case 3:
|
||||
rv = 4;
|
||||
uVar3 = 4;
|
||||
break;
|
||||
case 4:
|
||||
rv = 6;
|
||||
uVar3 = 6;
|
||||
break;
|
||||
case 5:
|
||||
rv = 0;
|
||||
uVar3 = 0;
|
||||
break;
|
||||
case 6:
|
||||
rv = 0;
|
||||
uVar3 = 0;
|
||||
break;
|
||||
case 7:
|
||||
rv = 9;
|
||||
uVar3 = 9;
|
||||
break;
|
||||
default:
|
||||
rv = 0;
|
||||
uVar3 = 0;
|
||||
break;
|
||||
}
|
||||
/* dSv_event_flag_c::F_0281 - Shop - Malo Mart opens in Castle Town */
|
||||
if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[281]) && rv == 9) {
|
||||
rv = 0xb;
|
||||
if (dComIfGs_isEventBit((u16)dSv_event_flag_c::saveBitLabels[281]) && uVar3 == 9) {
|
||||
uVar3 = 0xb;
|
||||
}
|
||||
} else {
|
||||
switch (uVar3) {
|
||||
case 0:
|
||||
rv = 0;
|
||||
uVar3 = 0;
|
||||
break;
|
||||
case 1:
|
||||
rv = 8;
|
||||
uVar3 = 8;
|
||||
break;
|
||||
case 2:
|
||||
rv = 3;
|
||||
uVar3 = 3;
|
||||
break;
|
||||
case 3:
|
||||
rv = 5;
|
||||
uVar3 = 5;
|
||||
break;
|
||||
case 4:
|
||||
rv = 7;
|
||||
uVar3 = 7;
|
||||
break;
|
||||
case 5:
|
||||
rv = 0;
|
||||
uVar3 = 0;
|
||||
break;
|
||||
case 6:
|
||||
rv = 0;
|
||||
uVar3 = 0;
|
||||
break;
|
||||
case 7:
|
||||
rv = 10;
|
||||
uVar3 = 10;
|
||||
break;
|
||||
default:
|
||||
rv = 0;
|
||||
uVar3 = 0;
|
||||
break;
|
||||
}
|
||||
/* dSv_event_flag_c::F_0281 - Shop - Malo Mart opens in Castle Town */
|
||||
if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[281]) && rv == 10) {
|
||||
rv = 12;
|
||||
if (dComIfGs_isEventBit((u16)dSv_event_flag_c::saveBitLabels[281]) && uVar3 == 10) {
|
||||
uVar3 = 12;
|
||||
}
|
||||
}
|
||||
return rv;
|
||||
return uVar3;
|
||||
}
|
||||
|
||||
void initCollision() {
|
||||
@@ -277,11 +288,11 @@ public:
|
||||
if (strcmp(dComIfGp_getStartStageName(), "F_SP116") != 0) {
|
||||
return 0;
|
||||
} else {
|
||||
if (mSeqNum == 17 &&
|
||||
if (m_seqNum == 17 &&
|
||||
(getType() == 4 || getType() == 5 || getType() == 6 || getType() == 16))
|
||||
{
|
||||
return 1;
|
||||
} else if (mSeqNum == 37 && getType() == 7) {
|
||||
} else if (m_seqNum == 37 && getType() == 7) {
|
||||
return 1;
|
||||
} else {
|
||||
return 0;
|
||||
@@ -314,7 +325,14 @@ public:
|
||||
}
|
||||
|
||||
int orderEvent() {
|
||||
if ((!mIsDarkWorld || daPy_py_c::checkNowWolfEyeUp()) && mFlowNodeNum > 0 && ((attention_info.flags & fopAc_AttnFlag_SPEAK_e) || (attention_info.flags & fopAc_AttnFlag_TALK_e))) {
|
||||
#if PLATFORM_SHIELD
|
||||
if (mFlowNodeNum > 0) {
|
||||
#else
|
||||
if ((!mIsDarkWorld || daPy_py_c::checkNowWolfEyeUp()) &&
|
||||
mFlowNodeNum > 0 &&
|
||||
((attention_info.flags & fopAc_AttnFlag_SPEAK_e) ||
|
||||
(attention_info.flags & fopAc_AttnFlag_TALK_e))) {
|
||||
#endif
|
||||
eventInfo.onCondition(dEvtCnd_CANTALK_e);
|
||||
}
|
||||
return 1;
|
||||
@@ -323,7 +341,12 @@ public:
|
||||
inline bool searchFirstScheduleTag();
|
||||
inline bool searchNextScheduleTag();
|
||||
|
||||
static actionFunc ActionTable[8][2];
|
||||
struct ActionPair {
|
||||
actionFunc mInitFn;
|
||||
actionFunc mExecFn;
|
||||
};
|
||||
|
||||
static const ActionPair ActionTable[8];
|
||||
static seqFunc* m_funcTbl[44];
|
||||
static seqFunc m_seq00_funcTbl[2];
|
||||
static seqFunc m_seq01_funcTbl[2];
|
||||
@@ -375,7 +398,7 @@ public:
|
||||
/* 0xAD0 */ PathTrace_c m_path;
|
||||
/* 0xAE8 */ daNpcT_ActorMngr_c m_targetAct;
|
||||
/* 0xB00 */ dMsgFlow_c mMsgFlow;
|
||||
/* 0xB4C */ daNpcCdn3_c::actionFunc* mAction;
|
||||
/* 0xB4C */ const actionFunc* mAction;
|
||||
/* 0xB50 */ Mode_e mMode;
|
||||
/* 0xB54 */ Mode_e mPrevMode;
|
||||
/* 0xB58 */ int mObjNum;
|
||||
@@ -386,7 +409,7 @@ public:
|
||||
/* 0xB6C */ int mMsgIndex;
|
||||
/* 0xB70 */ int mFlowNodeNum;
|
||||
/* 0xB74 */ int field_0xb74;
|
||||
/* 0xB78 */ int mSeqNum;
|
||||
/* 0xB78 */ int m_seqNum;
|
||||
/* 0xB7C */ int field_0xb7c;
|
||||
/* 0xB80 */ J3DAnmTransform* field_0xb80;
|
||||
/* 0xB84 */ daTagSchedule_c* mTagSched;
|
||||
@@ -398,7 +421,7 @@ public:
|
||||
/* 0xB94 */ u8 field_0xb94;
|
||||
/* 0xB95 */ u8 field_0xb95;
|
||||
/* 0xB96 */ u8 field_0xb96;
|
||||
/* 0xB97 */ u8 field_0xb97;
|
||||
/* 0xB97 */ u8 m_seqStep;
|
||||
/* 0xB98 */ u8 field_0xb98;
|
||||
/* 0xB99 */ u8 field_0xb99;
|
||||
};
|
||||
|
||||
@@ -34,6 +34,7 @@ public:
|
||||
/* 80BC5CF8 */ int CreateHeap();
|
||||
/* 80BC5E98 */ int create();
|
||||
/* 80BC6260 */ int Execute(Mtx**);
|
||||
void block_mode_proc_call();
|
||||
/* 80BC6270 */ void initWait();
|
||||
/* 80BC627C */ void modeWait();
|
||||
/* 80BC6414 */ void initWalk();
|
||||
@@ -70,6 +71,10 @@ private:
|
||||
/* 0xCA3 */ u8 field_0xca3;
|
||||
/* 0xCA4 */ s16 walkTimer;
|
||||
/* 0xCA6 */ s16 field_0xca6;
|
||||
#if DEBUG
|
||||
/* 0xCB0 */ cXyz field_0xcb0_debug[2];
|
||||
/* 0xCC8 */ cXyz field_0xcc8_debug[2];
|
||||
#endif
|
||||
};
|
||||
|
||||
STATIC_ASSERT(sizeof(daObjCBlk_c) == 0xca8);
|
||||
|
||||
@@ -43,6 +43,8 @@ public:
|
||||
/* 80CE7CC4 */ void setMtx();
|
||||
/* 80CE7D28 */ void setAttnPos();
|
||||
/* 80CE7D5C */ int wait(void* param_0);
|
||||
int buy(void* param_0);
|
||||
int cancel(void* param_0);
|
||||
|
||||
static dCcD_SrcGObjInf const mCcDObjInfo;
|
||||
static dCcD_SrcCyl mCcDCyl;
|
||||
|
||||
@@ -11,13 +11,17 @@ public:
|
||||
}
|
||||
|
||||
int getSeqNum() { return (fopAcM_GetParam(this) >> 6) & 0x3f; }
|
||||
u16 getStartTime() { return (fopAcM_GetParam(this) >> 12) & 0xff; }
|
||||
u8 getStartTime() { return (fopAcM_GetParam(this) >> 12) & 0xff; }
|
||||
u8 getStartEnd() { return (fopAcM_GetParam(this) >> 20) & 0xff; }
|
||||
int getGroupID() { return fopAcM_GetParam(this) & 0x3f; }
|
||||
int getWeekNum() { return mWeekNum; }
|
||||
void setWeekNum(int weekNum) { mWeekNum = weekNum; }
|
||||
#if PLATFORM_SHIELD
|
||||
void setWeekNum(u32 weekNum) { mWeekNum = weekNum % 7; }
|
||||
#else
|
||||
void setWeekNum(int weekNum) { mWeekNum = weekNum % (u32)7; }
|
||||
#endif
|
||||
u8 getPathID() { return shape_angle.x & 0xff; }
|
||||
s16 getFlowNodeNum() { return shape_angle.z; }
|
||||
int getFlowNodeNum() { return shape_angle.z; }
|
||||
|
||||
/* 0x568 */ int mWeekNum;
|
||||
};
|
||||
|
||||
@@ -293,19 +293,38 @@ int J3DSkinDeform::initMtxIndexArray(J3DModelData* pModelData) {
|
||||
int uVar13;
|
||||
for (;
|
||||
(int)pDListPos - (int)pDList < pModelData->getShapeNodePointer(i)->getShapeDraw(j)->getDisplayListSize();
|
||||
pDListPos += r23 * uVar13)
|
||||
pDListPos += r23 * uVar13
|
||||
//TODO: This loop's logic has drastically different codegen between GCN and Shield
|
||||
// in a way that so far can't be pinned down as just compiler differences. This
|
||||
// may have been refactored in the J3D version used for Shield, but note that
|
||||
// it's very possible that this is a fakematch and there's some other way of
|
||||
// expressing it that matches for both versions.
|
||||
#if PLATFORM_GCN
|
||||
, pDListPos += 3
|
||||
#endif
|
||||
)
|
||||
{
|
||||
u8 command = *pDListPos;
|
||||
#if !PLATFORM_GCN
|
||||
pDListPos++;
|
||||
#endif
|
||||
if (command != GX_TRIANGLEFAN && command != GX_TRIANGLESTRIP) {
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
#if PLATFORM_GCN
|
||||
uVar13 = *(u16*)(pDListPos + 1);
|
||||
#else
|
||||
uVar13 = *(u16*)pDListPos;
|
||||
pDListPos += 2;
|
||||
#endif
|
||||
for (int local_60 = 0; local_60 < uVar13; local_60++) {
|
||||
u8* iVar5 = pDListPos + r23 * local_60;
|
||||
u8 bVar3 = *(iVar5 + pnmtx_num) / 3U;
|
||||
#if PLATFORM_GCN
|
||||
u8* iVar5 = ((u8*)(pDListPos + 3) + r23 * local_60);
|
||||
#else
|
||||
u8* iVar5 = ((u8*)pDListPos + r23 * local_60);
|
||||
#endif
|
||||
u8 bVar3 = *(u8*)(iVar5 + pnmtx_num) / 3U;
|
||||
u16 vtx_idx = *(u16*)(iVar5 + vtx_num);
|
||||
u16 nrm_idx = *(u16*)(iVar5 + nrm_num);
|
||||
u16 uVar3 = *(u16*)(iVar5 + tex_num);
|
||||
@@ -563,8 +582,8 @@ void J3DSkinDeform::deformVtxPos_F32(J3DVertexBuffer* pVtxBuffer, J3DMtxBuffer*
|
||||
J3DJointTree* jointTree = pMtxBuffer->getJointTree();
|
||||
int vtxNum = pVtxBuffer->getVertexData()->getVtxNum();
|
||||
int sp8 = jointTree->getDrawMtxNum();
|
||||
void* currentVtxPos = pVtxBuffer->getCurrentVtxPos();
|
||||
void* transformedVtxPos = pVtxBuffer->getTransformedVtxPos(0);
|
||||
void* currentVtxPos = (void*)pVtxBuffer->getCurrentVtxPos();
|
||||
void* transformedVtxPos = (void*)pVtxBuffer->getTransformedVtxPos(0);
|
||||
|
||||
for (int i = 0; i < vtxNum; i++) {
|
||||
anmMtx = anmMtxs[jointTree->getDrawMtxFlag(mPosData[i])];
|
||||
@@ -590,8 +609,8 @@ void J3DSkinDeform::deformVtxPos_S16(J3DVertexBuffer* pVtxBuffer, J3DMtxBuffer*
|
||||
J3DJointTree* jointTree = pMtxBuffer->getJointTree();
|
||||
int vtxNum = pVtxBuffer->getVertexData()->getVtxNum();
|
||||
int sp8 = jointTree->getDrawMtxNum();
|
||||
void* currentVtxPos = pVtxBuffer->getCurrentVtxPos();
|
||||
void* transformedVtxPos = pVtxBuffer->getTransformedVtxPos(0);
|
||||
void* currentVtxPos = (void*)pVtxBuffer->getCurrentVtxPos();
|
||||
void* transformedVtxPos = (void*)pVtxBuffer->getTransformedVtxPos(0);
|
||||
|
||||
for (int i = 0; i < vtxNum; i++) {
|
||||
anmMtx = anmMtxs[jointTree->getDrawMtxFlag(mPosData[i])];
|
||||
@@ -608,8 +627,8 @@ void J3DSkinDeform::deformVtxPos_S16(J3DVertexBuffer* pVtxBuffer, J3DMtxBuffer*
|
||||
void J3DSkinDeform::deformVtxNrm_F32(J3DVertexBuffer* pVtxBuffer) const {
|
||||
pVtxBuffer->swapTransformedVtxNrm();
|
||||
int nrmNum = pVtxBuffer->getVertexData()->getNrmNum();
|
||||
void* currentVtxNrm = pVtxBuffer->getCurrentVtxNrm();
|
||||
void* transformedVtxNrm = pVtxBuffer->getTransformedVtxNrm(0);
|
||||
void* currentVtxNrm = (void*)pVtxBuffer->getCurrentVtxNrm();
|
||||
void* transformedVtxNrm = (void*)pVtxBuffer->getTransformedVtxNrm(0);
|
||||
|
||||
for (int i = 0; i < nrmNum; i++) {
|
||||
J3DPSMulMtxVec(mNrmMtx[mNrmData[i]], (Vec*)((u8*)currentVtxNrm + i * 3 * 4), (Vec*)((u8*)transformedVtxNrm + i * 3 * 4));
|
||||
@@ -628,8 +647,8 @@ void J3DSkinDeform::deformVtxNrm_S16(J3DVertexBuffer* pVtxBuffer) const {
|
||||
pVtxBuffer->swapTransformedVtxNrm();
|
||||
|
||||
int nrmNum = pVtxBuffer->getVertexData()->getNrmNum();
|
||||
void* currentVtxNrm = pVtxBuffer->getCurrentVtxNrm();
|
||||
void* transformedVtxNrm = pVtxBuffer->getTransformedVtxNrm(0);
|
||||
void* currentVtxNrm = (void*)pVtxBuffer->getCurrentVtxNrm();
|
||||
void* transformedVtxNrm = (void*)pVtxBuffer->getTransformedVtxNrm(0);
|
||||
|
||||
for (int i = 0; i < nrmNum; i++) {
|
||||
J3DPSMulMtxVec(mNrmMtx[mNrmData[i]], (S16Vec*)(((s16*)currentVtxNrm) + (i * 3)), (S16Vec*)(((s16*)transformedVtxNrm) + (i * 3)));
|
||||
|
||||
@@ -1327,15 +1327,15 @@ void daB_MGN_c::executeCircle() {
|
||||
}
|
||||
|
||||
/* 80608EF8-80609D70 0038B8 0E78+00 2/1 0/0 0/0 .text executeDash__9daB_MGN_cFv */
|
||||
// NONMATCHING - small regalloc, equivalent
|
||||
// NONMATCHING - regalloc + extra mr, equivalent
|
||||
void daB_MGN_c::executeDash() {
|
||||
daPy_py_c* player = daPy_getPlayerActorClass();
|
||||
daPy_py_c* player_sp14 = daPy_getPlayerActorClass();
|
||||
|
||||
switch (mMoveMode) {
|
||||
case 10:
|
||||
case 11: {
|
||||
cXyz gate_offset(0.0f, 0.0f, -800.0f);
|
||||
cXyz player_pos(player->current.pos);
|
||||
cXyz player_pos(player_sp14->current.pos);
|
||||
|
||||
s16 angle = cLib_targetAngleY(&player_pos, &gate_offset);
|
||||
if (field_0xaff >= 5) {
|
||||
@@ -1449,7 +1449,7 @@ void daB_MGN_c::executeDash() {
|
||||
mJewelColorMode = 2;
|
||||
case 1:
|
||||
attention_info.flags = 0;
|
||||
if (player->checkNowWolf()) {
|
||||
if (player_sp14->checkNowWolf()) {
|
||||
attention_info.flags = fopAc_AttnFlag_BATTLE_e;
|
||||
}
|
||||
|
||||
@@ -1499,7 +1499,7 @@ void daB_MGN_c::executeDash() {
|
||||
field_0xb09 = 1;
|
||||
attention_info.flags = 0;
|
||||
|
||||
if (player->checkNowWolf()) {
|
||||
if (player_sp14->checkNowWolf()) {
|
||||
attention_info.flags |= fopAc_AttnFlag_BATTLE_e;
|
||||
|
||||
cXyz sp48;
|
||||
|
||||
@@ -10,6 +10,24 @@
|
||||
#include <cmath.h>
|
||||
#include "f_op/f_op_actor_enemy.h"
|
||||
|
||||
class daE_WS_HIO_c : public JORReflexible {
|
||||
public:
|
||||
/* 807E3A0C */ daE_WS_HIO_c();
|
||||
/* 807E6E44 */ virtual ~daE_WS_HIO_c() {}
|
||||
|
||||
void genMessage(JORMContext*);
|
||||
|
||||
/* 0x04 */ s8 id;
|
||||
/* 0x08 */ f32 base_size;
|
||||
/* 0x0C */ f32 move_range;
|
||||
/* 0x10 */ f32 search_range;
|
||||
/* 0x14 */ f32 search_y_range;
|
||||
/* 0x18 */ f32 dist_to_ground;
|
||||
/* 0x1C */ f32 search_angle;
|
||||
/* 0x20 */ f32 attack_speed;
|
||||
/* 0x24 */ u8 debug_ON;
|
||||
};
|
||||
|
||||
namespace {
|
||||
/* 807E7448-807E7488 000038 0040+00 1/1 0/0 0/0 .data cc_ws_src__22@unnamed@d_a_e_ws_cpp@
|
||||
*/
|
||||
|
||||
+148
-106
@@ -19,6 +19,7 @@
|
||||
|
||||
/* 8086AD40-8086ADA0 008020 0060+00 1/0 0/0 0/0 .data l_Egnd_mantPAL */
|
||||
#include "assets/l_Egnd_mantPAL.h"
|
||||
#include "d/d_s_play.h"
|
||||
|
||||
/* 8086ADA0-8086B58C 008080 07EC+00 0/0 0/0 0/0 .data l_pos */
|
||||
static u32 l_pos[507] = {
|
||||
@@ -263,7 +264,6 @@ static void* tex_d[2] = {
|
||||
static char lbl_277_bss_0;
|
||||
|
||||
/* 80861298-808616B8 000078 0420+00 1/0 0/0 0/0 .text draw__15daMant_packet_cFv */
|
||||
// NONMATCHING - missing some weird stack duplication
|
||||
void daMant_packet_c::draw() {
|
||||
void* image = tex_d[0];
|
||||
void* lut = pal_d;
|
||||
@@ -298,10 +298,8 @@ void daMant_packet_c::draw() {
|
||||
dKy_Global_amb_set(this->mTevStr);
|
||||
GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLOR0A0);
|
||||
|
||||
GXColor local_84 = {1, 0, 0, 0};
|
||||
GXSetTevColor(GX_TEVREG0, local_84);
|
||||
GXColor local_8c = {1, 0, 0, 0};
|
||||
GXSetTevKColor(GX_KCOLOR0, local_8c);
|
||||
GXSetTevColor(GX_TEVREG0, (GXColor){1, 0, 0, 0});
|
||||
GXSetTevKColor(GX_KCOLOR0, (GXColor){1, 0, 0, 0});
|
||||
|
||||
GXSetTevKColorSel(GX_TEVSTAGE0, GX_TEV_KCSEL_K0);
|
||||
GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_KONST, GX_CC_TEXC, GX_CC_RASC, GX_CC_C0);
|
||||
@@ -334,10 +332,8 @@ void daMant_packet_c::draw() {
|
||||
GXInitTexObjLOD(&GStack_74, GX_LINEAR, GX_LINEAR, 0.0, 0.0, 0.0, 0, 0, GX_ANISO_1);
|
||||
GXLoadTexObj(&GStack_74, GX_TEXMAP0);
|
||||
|
||||
GXColor local_94 = {0, 0, 0, 0};
|
||||
GXSetTevColor(GX_TEVREG0, local_94);
|
||||
GXColor local_9c = {0, 0, 0, 0};
|
||||
GXSetTevKColor(GX_KCOLOR0, local_9c);
|
||||
GXSetTevColor(GX_TEVREG0, (GXColor){0, 0, 0, 0});
|
||||
GXSetTevKColor(GX_KCOLOR0, (GXColor){0, 0, 0, 0});
|
||||
|
||||
GXSetCullMode(GX_CULL_FRONT);
|
||||
GXLoadPosMtxImm(this->mMtx2, GX_PNMTX0);
|
||||
@@ -368,154 +364,192 @@ static int daMant_Draw(mant_class* i_this) {
|
||||
}
|
||||
|
||||
/* 8086176C-80861F60 00054C 07F4+00 1/1 0/0 0/0 .text joint_control__FP10mant_classP8mant_j_siff */
|
||||
// NONMATCHING - regalloc
|
||||
static void joint_control(mant_class* i_this, mant_j_s* param_2, int param_3, f32 param_4, f32 param_5) {
|
||||
static f32 d_p[12] = {
|
||||
1.4000001f, 0.6f, 0.35f, 0.3f, 0.3f, 0.3f, 0.25f, 0.2f, 0.2f, 0.2f, 0.15f, 0.1f
|
||||
};
|
||||
|
||||
cXyz local_134, local_140, local_14c, local_158, local_164;
|
||||
BOOL bVar2 = FALSE;
|
||||
f32 dVar14, dVar16, dVar17, dVar18, dVar19, dVar20;
|
||||
f32 fVar1;
|
||||
b_gnd_class* gndActor = (b_gnd_class*)fopAcM_SearchByID(i_this->parentActorID);
|
||||
mant_class* mant_sp38 = i_this;
|
||||
|
||||
cXyz spFC;
|
||||
cXyz spF0;
|
||||
cXyz spE4;
|
||||
|
||||
int sp34;
|
||||
f32 sp30;
|
||||
f32 sp2C;
|
||||
f32 sp28;
|
||||
cXyz* var_r30;
|
||||
cXyz* sp24;
|
||||
BOOL sp20 = FALSE;
|
||||
|
||||
cXyz spD8;
|
||||
Vec spCC;
|
||||
|
||||
b_gnd_class* gndActor = (b_gnd_class*)fopAcM_SearchByID(mant_sp38->parentActorID);
|
||||
|
||||
f32 var_f31;
|
||||
f32 var_f30;
|
||||
f32 var_f29;
|
||||
f32 var_f28;
|
||||
f32 var_f27;
|
||||
f32 var_f26;
|
||||
|
||||
f32 sp18;
|
||||
f32 sp14;
|
||||
|
||||
if (gndActor->mDrawHorse != 0) {
|
||||
bVar2 = TRUE;
|
||||
local_158 = gndActor->field_0x1fb8;
|
||||
sp20 = TRUE;
|
||||
spD8 = gndActor->field_0x1fb8;
|
||||
} else if (i_this->field_0x3966 != 0) {
|
||||
local_158 = i_this->field_0x3928[0] + ((i_this->field_0x3928[1] - i_this->field_0x3928[0]) * 0.5f);
|
||||
local_158.y += -60.0f;
|
||||
spD8 = i_this->field_0x3928[0] + ((i_this->field_0x3928[1] - i_this->field_0x3928[0]) * 0.5f);
|
||||
spD8.y += -60.0f + KREG_F(11);
|
||||
}
|
||||
|
||||
cXyz* vec_p = param_2->field_0x0;
|
||||
cXyz* pcVar9 = param_2->field_0x9c;
|
||||
dBgS_GndChk(dStack_f8);
|
||||
local_164 = param_2->field_0x0[0];
|
||||
local_164.y += 50.0f;
|
||||
var_r30 = param_2->field_0x0;
|
||||
sp24 = param_2->field_0x9c;
|
||||
dBgS_GndChk(sp108);
|
||||
spCC = param_2->field_0x0[0];
|
||||
spCC.y += 50.0f;
|
||||
|
||||
dStack_f8.SetPos((Vec*)&local_164);
|
||||
dVar17 = dComIfG_Bgsp().GroundCross(&dStack_f8) + 3.0f;
|
||||
sp108.SetPos(&spCC);
|
||||
var_f27 = dComIfG_Bgsp().GroundCross(&sp108) + 3.0f;
|
||||
|
||||
if (dVar17 - param_2->field_0x0[0].y > 50.0f) {
|
||||
dVar17 = param_2->field_0x0[0].y;
|
||||
if (var_f27 - var_r30[0].y > 50.0f) {
|
||||
var_f27 = var_r30[0].y;
|
||||
}
|
||||
|
||||
cXyz cStack_170, local_17c;
|
||||
cXyz local_188(0.0f, 0.0f, 0.0f);
|
||||
cXyz local_194(0.0f, 0.0f, 0.0f);
|
||||
cXyz local_1a0(0.0f, 0.0f, 0.0f);
|
||||
cXyz spC0;
|
||||
cXyz spB4;
|
||||
cXyz spA8(0.0f, 0.0f, 0.0f);
|
||||
cXyz sp9C(0.0f, 0.0f, 0.0f);
|
||||
cXyz sp90(0.0f, 0.0f, 0.0f);
|
||||
|
||||
cMtx_YrotS(*calc_mtx, param_2->field_0x013a);
|
||||
local_134.x = 0.0f;
|
||||
local_134.y = 0.0f;
|
||||
local_134.z = i_this->field_0x3954 * (cM_ssin(param_3 * 23000) * 0.05f + 1.0f);
|
||||
MtxPosition(&local_134, &cStack_170);
|
||||
spFC.x = 0.0f;
|
||||
spFC.y = 0.0f;
|
||||
spFC.z = i_this->field_0x3954 * (cM_ssin(param_3 * 23000) * 0.05f + 1.0f);
|
||||
MtxPosition(&spFC, &spC0);
|
||||
|
||||
cXyz local_1ac;
|
||||
cXyz sp84;
|
||||
|
||||
s16 sVar3 = param_3 + -6;
|
||||
if (sVar3 < 0) {
|
||||
sVar3 *= -1;
|
||||
s16 sp0C;
|
||||
s16 sp0A;
|
||||
|
||||
s16 sp08 = param_3 + -6;
|
||||
if (sp08 < 0) {
|
||||
sp08 *= -1;
|
||||
}
|
||||
|
||||
sVar3 *= -4000;
|
||||
local_134.x = 0.0f;
|
||||
local_134.y = 0.0f;
|
||||
local_134.z = i_this->field_0x394c;
|
||||
local_134.z *= i_this->scale.y;
|
||||
sp08 *= (s16)(-4000 + VREG_S(5));
|
||||
spFC.x = 0.0f;
|
||||
spFC.y = 0.0f;
|
||||
spFC.z = i_this->field_0x394c;
|
||||
spFC.z *= i_this->scale.y;
|
||||
|
||||
for (int i = 0; i < 13; i++, vec_p++, pcVar9++) {
|
||||
if (0 < i) {
|
||||
dVar16 = i_this->field_0x3950;
|
||||
for (sp34 = 0; sp34 < 13; sp34++, var_r30++, sp24++) {
|
||||
if (0 < sp34) {
|
||||
sp14 = i_this->field_0x3950;
|
||||
|
||||
local_17c = cStack_170 * d_p[i - 1];
|
||||
spB4 = spC0 * (d_p[sp34 - 1] + NREG_F(sp34));
|
||||
|
||||
dVar18 = i_this->field_0x3958;
|
||||
dVar18 *= 1.0f - i * 0.07f;
|
||||
|
||||
local_1ac.zero();
|
||||
sp18 = i_this->field_0x3958;
|
||||
sp18 *= 1.0f + VREG_F(0) - sp34 * (0.07f + VREG_F(1));
|
||||
|
||||
sp84.zero();
|
||||
|
||||
// (1.0f / 100.0f)
|
||||
if (param_4 > 0.01f) {
|
||||
dVar16 = 0.0f;
|
||||
f32 dVar14 = param_4 * (i * 0.2f + 1.0f);
|
||||
sp14 = 0.0f + VREG_F(15);
|
||||
var_f26 = param_4 * (sp34 * (0.2f + VREG_F(16)) + 1.0f);
|
||||
cMtx_YrotS(*calc_mtx, param_2->field_0x013a);
|
||||
cMtx_XrotM(*calc_mtx, param_2->field_0x0138);
|
||||
|
||||
local_140.x = (dVar14 * 2.0f) * cM_ssin(i_this->field_0x25a0 * 0x1000 + (i * -7500) + sVar3);
|
||||
local_140.y = (dVar14 * 5.0f) * cM_ssin(i_this->field_0x25a0 * 0x1800 + (i * -7000) + sVar3);
|
||||
local_140.z = -15.0f;
|
||||
MtxPosition(&local_140, &local_1ac);
|
||||
spF0.x = ((2.0f + VREG_F(17)) * var_f26) *
|
||||
cM_ssin(i_this->field_0x25a0 * (0x1000 + JREG_S(0)) +
|
||||
(sp34 * (-7500 + JREG_S(1))) + sp08);
|
||||
spF0.y = ((5.0f + VREG_F(18)) * var_f26) *
|
||||
cM_ssin(i_this->field_0x25a0 * (0x1800 + JREG_S(2)) +
|
||||
(sp34 * (-7000 + JREG_S(3))) + sp08);
|
||||
spF0.z = -15.0f + VREG_F(19);
|
||||
MtxPosition(&spF0, &sp84);
|
||||
}
|
||||
|
||||
if (param_5 > 0.01f) {
|
||||
dVar14 = param_5 * (i * 0.2f + 1.0f);
|
||||
var_f26 = param_5 * (sp34 * (0.2f + VREG_F(16)) + 1.0f);
|
||||
cMtx_YrotS(*calc_mtx, param_2->field_0x013a + -6000);
|
||||
cMtx_XrotM(*calc_mtx, -5000);
|
||||
|
||||
local_140.x = (dVar14 * 2.0f) * cM_ssin(i_this->field_0x25a0 * 0x448 + (i * -7000) + sVar3);
|
||||
local_140.y = (dVar14 * 6.0f) * cM_ssin(i_this->field_0x25a0 * 0xc48 + (i * -7500) + sVar3);
|
||||
local_140.z = param_5 * -15.0f;
|
||||
MtxPosition(&local_140, &local_14c);
|
||||
local_1ac += local_14c;
|
||||
spF0.x = ((2.0f + VREG_F(17)) * var_f26) *
|
||||
cM_ssin(i_this->field_0x25a0 * (0x448 + JREG_S(0)) +
|
||||
(sp34 * (-7000 + JREG_S(1))) + sp08);
|
||||
spF0.y = ((6.0f + VREG_F(18)) * var_f26) *
|
||||
cM_ssin(i_this->field_0x25a0 * (0xc48 + JREG_S(2)) +
|
||||
(sp34 * (-7500 + JREG_S(3))) + sp08);
|
||||
spF0.z = (-15.0f + VREG_F(19)) * param_5;
|
||||
MtxPosition(&spF0, &spE4);
|
||||
sp84 += spE4;
|
||||
}
|
||||
|
||||
if (i_this->field_0x3960 > 0.1f) {
|
||||
local_1ac.y = i_this->field_0x3960 * cM_ssin(i_this->field_0x25a0 * 0x1100 + (i * -7000) + sVar3);
|
||||
sp84.y = i_this->field_0x3960 *
|
||||
cM_ssin(i_this->field_0x25a0 * (0x1100 + JREG_S(2)) +
|
||||
(sp34 * (-7000 + JREG_S(3))) + sp08);
|
||||
}
|
||||
|
||||
dVar20 = (vec_p->x - vec_p[-1].x) + pcVar9->x + local_17c.x + local_1ac.x;
|
||||
dVar19 = (vec_p->z - vec_p[-1].z) + pcVar9->z + local_17c.z + local_1ac.z;
|
||||
dVar14 = local_1ac.y + (vec_p->y + pcVar9->y + dVar18);
|
||||
sp30 = (var_r30->x - var_r30[-1].x) + sp24->x + spB4.x + sp84.x;
|
||||
sp28 = (var_r30->z - var_r30[-1].z) + sp24->z + spB4.z + sp84.z;
|
||||
var_f31 = var_r30->y + sp24->y + sp18 + sp84.y;
|
||||
|
||||
if (bVar2) {
|
||||
dVar18 = dVar17;
|
||||
local_14c = local_158 - *vec_p;
|
||||
fVar1 = JMAFastSqrt(local_14c.x * local_14c.x + local_14c.z * local_14c.z);
|
||||
if (fVar1 < 85.0f) {
|
||||
dVar18 = local_158.y + 1.0f * JMAFastSqrt(7225.0f - fVar1 * fVar1);
|
||||
if (sp20) {
|
||||
var_f30 = var_f27;
|
||||
spE4 = spD8 - *var_r30;
|
||||
var_f29 = JMAFastSqrt(spE4.x * spE4.x + spE4.z * spE4.z);
|
||||
var_f28 = 85.0f + KREG_F(12);
|
||||
if (var_f29 < var_f28) {
|
||||
var_f30 = spD8.y + 1.0f * JMAFastSqrt(var_f28 * var_f28 - var_f29 * var_f29) *
|
||||
(1.0f + KREG_F(13));
|
||||
}
|
||||
|
||||
if (dVar14 < dVar18) {
|
||||
dVar14 = dVar18;
|
||||
if (var_f31 < var_f30) {
|
||||
var_f31 = var_f30;
|
||||
}
|
||||
} else if (i_this->field_0x3966 != 0) {
|
||||
dVar18 = dVar17;
|
||||
local_14c = local_158 - *vec_p;
|
||||
fVar1 = JMAFastSqrt(local_14c.x * local_14c.x + local_14c.z * local_14c.z);
|
||||
|
||||
if (fVar1 < 85.0f) {
|
||||
dVar18 = local_158.y + JMAFastSqrt(7225.0f - fVar1 * fVar1);
|
||||
var_f30 = var_f27;
|
||||
spE4 = spD8 - *var_r30;
|
||||
var_f29 = JMAFastSqrt(spE4.x * spE4.x + spE4.z * spE4.z);
|
||||
var_f28 = 85.0f + KREG_F(12);
|
||||
if (var_f29 < var_f28) {
|
||||
var_f30 = spD8.y + JMAFastSqrt(var_f28 * var_f28 - var_f29 * var_f29) *
|
||||
(1.0f + KREG_F(13));
|
||||
}
|
||||
|
||||
if (dVar14 < dVar18) {
|
||||
dVar14 = dVar18;
|
||||
if (var_f31 < var_f30) {
|
||||
var_f31 = var_f30;
|
||||
}
|
||||
} else {
|
||||
if (dVar14 < dVar17) {
|
||||
dVar14 = dVar17;
|
||||
if (var_f31 < var_f27) {
|
||||
var_f31 = var_f27;
|
||||
}
|
||||
}
|
||||
|
||||
dVar14 -= vec_p[-1].y;
|
||||
s16 sVar4 = -cM_atan2s(dVar14, dVar19);
|
||||
s16 sVar5 = (s16)cM_atan2s(dVar20, JMAFastSqrt(dVar14 * dVar14 + dVar19 * dVar19));
|
||||
sp2C = var_f31 - var_r30[-1].y;
|
||||
sp0C = -cM_atan2s(sp2C, sp28);
|
||||
sp0A = (s16)cM_atan2s(sp30, JMAFastSqrt(sp2C * sp2C + sp28 * sp28));
|
||||
|
||||
cMtx_XrotS(*calc_mtx, sVar4);
|
||||
cMtx_YrotM(*calc_mtx, sVar5);
|
||||
MtxPosition(&local_134, &local_14c);
|
||||
cMtx_XrotS(*calc_mtx, sp0C);
|
||||
cMtx_YrotM(*calc_mtx, sp0A);
|
||||
MtxPosition(&spFC, &spE4);
|
||||
|
||||
*pcVar9 = *vec_p;
|
||||
*sp24 = *var_r30;
|
||||
|
||||
vec_p->x = vec_p[-1].x + local_14c.x;
|
||||
vec_p->y = vec_p[-1].y + local_14c.y;
|
||||
vec_p->z = vec_p[-1].z + local_14c.z;
|
||||
var_r30->x = var_r30[-1].x + spE4.x;
|
||||
var_r30->y = var_r30[-1].y + spE4.y;
|
||||
var_r30->z = var_r30[-1].z + spE4.z;
|
||||
|
||||
pcVar9->x = dVar16 * (vec_p->x - pcVar9->x);
|
||||
pcVar9->y = dVar16 * (vec_p->y - pcVar9->y);
|
||||
pcVar9->z = dVar16 * (vec_p->z - pcVar9->z);
|
||||
sp24->x = sp14 * (var_r30->x - sp24->x);
|
||||
sp24->y = sp14 * (var_r30->y - sp24->y);
|
||||
sp24->z = sp14 * (var_r30->z - sp24->z);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -612,7 +646,14 @@ static int mant_cut_type;
|
||||
/* 808624E8-80862908 0012C8 0420+00 2/1 0/0 0/0 .text daMant_Execute__FP10mant_class */
|
||||
static int daMant_Execute(mant_class* i_this) {
|
||||
f32 var_f31, var_f30;
|
||||
int iVar8, unaff_r29, iVar2, uVar1, uVar4;
|
||||
int iVar8;
|
||||
s16 unaff_r29;
|
||||
int iVar2, uVar1, uVar4;
|
||||
|
||||
fopAc_ac_c* mant_actor = (fopAc_ac_c*)i_this;
|
||||
|
||||
fopAc_ac_c* unusedPlayerActor = dComIfGp_getPlayer(0);
|
||||
daPy_py_c* unusedPlayer = (daPy_py_c*)unusedPlayerActor;
|
||||
|
||||
i_this->field_0x25a0++;
|
||||
lbl_277_bss_0++;
|
||||
@@ -621,7 +662,7 @@ static int daMant_Execute(mant_class* i_this) {
|
||||
i_this->field_0x399e--;
|
||||
}
|
||||
|
||||
b_gnd_class* gndActor = (b_gnd_class*)fopAcM_SearchByID(i_this->parentActorID);
|
||||
b_gnd_class* gndActor = (b_gnd_class*)fopAcM_SearchByID(mant_actor->parentActorID);
|
||||
|
||||
if (gndActor && gndActor->mDrawHorse != 0) {
|
||||
i_this->field_0x394c = 21.0f;
|
||||
@@ -647,7 +688,7 @@ static int daMant_Execute(mant_class* i_this) {
|
||||
i_this->field_0x3965 = 0;
|
||||
i_this->field_0x3966 = 0;
|
||||
|
||||
i_this->field_0x3940 = i_this->current.pos;
|
||||
i_this->field_0x3940 = mant_actor->current.pos;
|
||||
|
||||
iVar8 = 0;
|
||||
|
||||
@@ -674,7 +715,7 @@ static int daMant_Execute(mant_class* i_this) {
|
||||
|
||||
for (int i = 0; i < iVar8; i++) {
|
||||
var_f31 += cM_ssin(unaff_r29);
|
||||
var_f30 -= cM_scos(unaff_r29);
|
||||
var_f30 += -cM_scos(unaff_r29);
|
||||
|
||||
uVar4 = (int)(var_f31 + 64.0f) | (int)(var_f30 + 64.0f) << 7;
|
||||
|
||||
@@ -725,8 +766,7 @@ static int daMant_Execute(mant_class* i_this) {
|
||||
|
||||
if (0 <= uVar1 && uVar1 < 0x4000) {
|
||||
int iVar5 = (uVar1 & 7) + (uVar1 & 0x78) * 4 + (uVar1 >> 4 & 0x18) + (uVar1 & 0x3e00);
|
||||
l_Egnd_mantTEX_U[iVar5] = 0;
|
||||
l_Egnd_mantTEX[iVar5] = 0;
|
||||
l_Egnd_mantTEX[iVar5] = l_Egnd_mantTEX_U[iVar5] = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -748,6 +788,8 @@ static int daMant_Delete(mant_class* i_this) {
|
||||
static int daMant_Create(fopAc_ac_c* i_this) {
|
||||
mant_class* m_this = (mant_class*)i_this;
|
||||
|
||||
fpc_ProcID unusedId = fopAcM_GetID(m_this);
|
||||
|
||||
fopAcM_ct(m_this, mant_class);
|
||||
//m_this->field_0x0570.field_0x74 = 0;
|
||||
m_this->field_0x259c = fopAcM_GetParam(i_this);
|
||||
|
||||
@@ -1686,7 +1686,11 @@ static int daFshop_Create(fopAc_ac_c* actor) {
|
||||
|
||||
int sp24;
|
||||
if (sp10 == 1) {
|
||||
#if VERSION == VERSION_GCN_JPN
|
||||
sp24 = dComIfGs_getEventReg(check_kind[i]);
|
||||
#else
|
||||
sp24 = 2.54f * dComIfGs_getEventReg(check_kind[i]);
|
||||
#endif
|
||||
} else {
|
||||
sp24 = dComIfGs_getEventReg(check_kind[i]);
|
||||
}
|
||||
|
||||
@@ -2136,12 +2136,12 @@ daNpcCd2_HIO_c::daNpcCd2_HIO_c() {
|
||||
for (int j = 0; j < 19; j++) {
|
||||
memcpy(&field_0x0004[i].field_0x004[j].field_0x04, a_jntTbl_M[i][j], 20);
|
||||
}
|
||||
memcpy(&field_0x0004[i].mMaxLmtY_BACKBONE, a_prmTbl_M + i * 0x40, 0x40);
|
||||
memcpy(&field_0x0004[i].mMaxLmtX_BACKBONE, a_prmTbl_M + i * 0x40, 0x40);
|
||||
}
|
||||
for (int i = 0; i < 14; i++) {
|
||||
for (int j = 0; j < 21; j++) {
|
||||
memcpy(&field_0x20c4[i].field_0x004[j].field_0x04, a_jntTbl_W[i][j], 20);
|
||||
}
|
||||
memcpy(&field_0x20c4[i].mMaxLmtY_BACKBONE, a_prmTbl_W + i * 0x40, 0x40);
|
||||
memcpy(&field_0x20c4[i].mMaxLmtX_BACKBONE, a_prmTbl_W + i * 0x40, 0x40);
|
||||
}
|
||||
}
|
||||
|
||||
+727
-703
File diff suppressed because it is too large
Load Diff
+158
-49
@@ -5,25 +5,50 @@
|
||||
|
||||
#include "d/dolzel_rel.h" // IWYU pragma: keep
|
||||
|
||||
#include "Z2AudioLib/Z2Instances.h"
|
||||
#include "d/actor/d_a_obj_cblock.h"
|
||||
#include "d/actor/d_a_player.h"
|
||||
#include "d/d_cc_d.h"
|
||||
#include "d/d_path.h"
|
||||
#include "d/actor/d_a_player.h"
|
||||
#include "Z2AudioLib/Z2Instances.h"
|
||||
#include "d/d_s_play.h"
|
||||
|
||||
/* 80BC5A0C-80BC5A48 0000EC 003C+00 1/1 0/0 0/0 .text initBaseMtx__11daObjCBlk_cFv */
|
||||
void daObjCBlk_c::initBaseMtx() {
|
||||
model1->setBaseScale(scale);
|
||||
setBaseMtx();
|
||||
}
|
||||
#if DEBUG
|
||||
#define TRAVEL_TIME (l_HIO.mTravelTime)
|
||||
#define TRAVEL_DIST (l_HIO.mTravelDist)
|
||||
#else
|
||||
#define TRAVEL_TIME (13)
|
||||
#define TRAVEL_DIST (50.0f)
|
||||
#endif
|
||||
|
||||
/* 80BC5A48-80BC5ABC 000128 0074+00 1/1 0/0 0/0 .text setBaseMtx__11daObjCBlk_cFv */
|
||||
void daObjCBlk_c::setBaseMtx() {
|
||||
mDoMtx_stack_c::transS(current.pos.x, current.pos.y,current.pos.z);
|
||||
mDoMtx_stack_c::YrotM(shape_angle.y);
|
||||
model1->setBaseTRMtx(mDoMtx_stack_c::get());
|
||||
MTXCopy(mDoMtx_stack_c::get(), mBgMtx);
|
||||
}
|
||||
class daObjCBlk_HIO_c : public mDoHIO_entry_c {
|
||||
public:
|
||||
daObjCBlk_HIO_c();
|
||||
virtual ~daObjCBlk_HIO_c() {}
|
||||
|
||||
#if DEBUG
|
||||
void genMessage(JORMContext*);
|
||||
#endif
|
||||
|
||||
/* 0x06 */ u8 field_0x06;
|
||||
/* 0x07 */ u8 field_0x07;
|
||||
/* 0x08 */ u8 mWaitTime;
|
||||
/* 0x09 */ u8 mTravelTime;
|
||||
/* 0x0C */ f32 mGravity;
|
||||
/* 0x10 */ f32 mTravelDist;
|
||||
/* 0x14 */ f32 field_0x14;
|
||||
/* 0x18 */ f32 field_0x18;
|
||||
/* 0x1C */ f32 field_0x1c;
|
||||
};
|
||||
|
||||
/* 80BC6C9C-80BC6CA8 000054 000C+00 1/2 0/0 0/0 .bss l_chainOffset */
|
||||
static cXyz l_chainOffset(0.0f, 105.0f, 30.0f);
|
||||
|
||||
/* 80BC6CB4-80BC6CC4 00006C 000C+04 0/1 0/0 0/0 .bss l_smokeSetOffset */
|
||||
static cXyz l_smokeSetOffset(0.0f, 0.0f, -200.0f);
|
||||
|
||||
#if !DEBUG
|
||||
static s32 unused_bss_70 = 0;
|
||||
#endif
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80BC6A38-80BC6A50 000000 0018+00 5/5 0/0 0/0 .rodata l_cull_box */
|
||||
@@ -51,12 +76,55 @@ static dCcD_SrcCyl l_cyl_src = {
|
||||
{0x0}, // mGObjCo
|
||||
}, // mObjInf
|
||||
{
|
||||
{0.0f, 0.0f, 0.0f}, // mCenter
|
||||
60.0f, // mRadius
|
||||
300.0f // mHeight
|
||||
} // mCyl
|
||||
{0.0f, 0.0f, 0.0f}, // mCenter
|
||||
60.0f, // mRadius
|
||||
300.0f // mHeight
|
||||
} // mCyl
|
||||
};
|
||||
|
||||
#if DEBUG
|
||||
daObjCBlk_HIO_c::daObjCBlk_HIO_c() {
|
||||
field_0x06 = 0;
|
||||
field_0x07 = 0;
|
||||
mGravity = -6.0f;
|
||||
mTravelDist = 50.0f;
|
||||
mTravelTime = 13;
|
||||
mWaitTime = 8;
|
||||
field_0x14 = 35.0f;
|
||||
field_0x18 = 35.0f;
|
||||
field_0x1c = 15.0f;
|
||||
}
|
||||
|
||||
static f32 dummy1() {
|
||||
return 15.0f;
|
||||
}
|
||||
|
||||
void daObjCBlk_HIO_c::genMessage(JORMContext* ctx) {
|
||||
// "Chained block"
|
||||
ctx->genLabel("チェーン付きブロック", 0, 0, NULL, 0xffff, 0xffff, 0x200, 0x18);
|
||||
ctx->genSlider("重力", &mGravity, -10.0f, -0.1f, 0, NULL, 0xffff, 0xffff, 0x200, 0x18);
|
||||
ctx->genSlider("移動時間", &mTravelTime, 0.0f, 100.0f, 0, NULL, 0xffff, 0xffff, 0x200, 0x18);
|
||||
ctx->genSlider("タメ時間", &mWaitTime, 0.0f, 10.0f, 0, NULL, 0xffff, 0xffff, 0x200, 0x18);
|
||||
ctx->genSlider("移動距離", &mTravelDist, 0.0f, 100.0f, 0, NULL, 0xffff, 0xffff, 0x200, 0x18);
|
||||
}
|
||||
|
||||
static daObjCBlk_HIO_c l_HIO;
|
||||
#endif
|
||||
|
||||
/* 80BC5A0C-80BC5A48 0000EC 003C+00 1/1 0/0 0/0 .text initBaseMtx__11daObjCBlk_cFv */
|
||||
void daObjCBlk_c::initBaseMtx() {
|
||||
model1->setBaseScale(scale);
|
||||
setBaseMtx();
|
||||
}
|
||||
|
||||
/* 80BC5A48-80BC5ABC 000128 0074+00 1/1 0/0 0/0 .text setBaseMtx__11daObjCBlk_cFv */
|
||||
void daObjCBlk_c::setBaseMtx() {
|
||||
mDoMtx_stack_c::transS(current.pos.x, current.pos.y,current.pos.z);
|
||||
mDoMtx_stack_c::YrotM(shape_angle.y);
|
||||
model1->setBaseTRMtx(mDoMtx_stack_c::get());
|
||||
MTXCopy(mDoMtx_stack_c::get(), mBgMtx);
|
||||
}
|
||||
|
||||
/* 80BC5ABC-80BC5CBC 00019C 0200+00 1/0 0/0 0/0 .text Create__11daObjCBlk_cFv */
|
||||
int daObjCBlk_c::Create() {
|
||||
u8 pathId = getPathID();
|
||||
@@ -138,13 +206,6 @@ daObjCBlk_c::chain_s::~chain_s() {
|
||||
daObjCBlk_c::chain_s::chain_s() {
|
||||
}
|
||||
|
||||
static inline void dummylfunc() {
|
||||
static daObjCBlk_c::modeFunc l_func[2] = {
|
||||
&daObjCBlk_c::modeWait,
|
||||
&daObjCBlk_c::modeWalk,
|
||||
};
|
||||
}
|
||||
|
||||
/* 80BC5E98-80BC6020 000578 0188+00 1/1 0/0 0/0 .text create__11daObjCBlk_cFv */
|
||||
int daObjCBlk_c::create() {
|
||||
fopAcM_ct(this, daObjCBlk_c);
|
||||
@@ -155,6 +216,10 @@ int daObjCBlk_c::create() {
|
||||
return rv;
|
||||
}
|
||||
OS_REPORT("CHAIN BLOCK:%x\n", fopAcM_GetParam(this));
|
||||
|
||||
#if DEBUG
|
||||
l_HIO.entryHIO("チェーン付きブロック");
|
||||
#endif
|
||||
}
|
||||
return rv;
|
||||
}
|
||||
@@ -165,6 +230,21 @@ int daObjCBlk_c::Execute(f32 (**mtx)[3][4]) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
void daObjCBlk_c::block_mode_proc_call() {
|
||||
static modeFunc l_func[2] = {
|
||||
&daObjCBlk_c::modeWait,
|
||||
&daObjCBlk_c::modeWalk,
|
||||
};
|
||||
(this->*(l_func[field_0xc1e]))();
|
||||
}
|
||||
|
||||
#if DEBUG
|
||||
static void dummy5() {
|
||||
OS_REPORT("Delete -> ChainBlock(id=%d)\n");
|
||||
OS_REPORT("Create -> ChainBlock(id=%d)\n");
|
||||
}
|
||||
#endif
|
||||
|
||||
/* 80BC6270-80BC627C 000950 000C+00 2/2 0/0 0/0 .text initWait__11daObjCBlk_cFv */
|
||||
void daObjCBlk_c::initWait() {
|
||||
field_0xc1f = 0;
|
||||
@@ -183,18 +263,23 @@ void daObjCBlk_c::modeWait() {
|
||||
mDoMtx_stack_c::multVec(&cStack_44, &cStack_44);
|
||||
cStack_38.normalizeZP();
|
||||
cStack_44.normalizeZP();
|
||||
f32 dVar7 = fabs(cStack_38.inprod(cStack_44));
|
||||
if (dVar7 > 0.95000005f) {
|
||||
f32 inprod = cStack_38.inprod(cStack_44);
|
||||
if (std::fabs(inprod) > 0.95000005f + KREG_F(4)) {
|
||||
bVar1 = true;
|
||||
}
|
||||
if (field_0xc1c != 0 && field_0xc1e != 0) {
|
||||
setPower(power);
|
||||
if (bVar1) {
|
||||
field_0xca3++;
|
||||
if (!checkWall() && player->getBaseAnimeFrame() > 6.0f && player->getBaseAnimeFrame() < 8.0f &&
|
||||
field_0xca3 > 8)
|
||||
if (!checkWall() && player->getBaseAnimeFrame() > 6.0f && player->getBaseAnimeFrame() < 8.0f)
|
||||
{
|
||||
initWalk();
|
||||
#if DEBUG
|
||||
if (field_0xca3 > l_HIO.mWaitTime) {
|
||||
#else
|
||||
if (field_0xca3 > 8) {
|
||||
#endif
|
||||
initWalk();
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
@@ -204,21 +289,24 @@ void daObjCBlk_c::modeWait() {
|
||||
|
||||
/* 80BC6414-80BC6430 000AF4 001C+00 1/1 0/0 0/0 .text initWalk__11daObjCBlk_cFv */
|
||||
void daObjCBlk_c::initWalk() {
|
||||
walkTimer = 13;
|
||||
field_0xca6 = 2520;
|
||||
u8 travelTime = TRAVEL_TIME;
|
||||
walkTimer = travelTime;
|
||||
field_0xca6 = 0x7fff / travelTime;
|
||||
field_0xc1f = 1;
|
||||
}
|
||||
|
||||
/* 80BC6430-80BC65CC 000B10 019C+00 1/0 0/0 0/0 .text modeWalk__11daObjCBlk_cFv */
|
||||
void daObjCBlk_c::modeWalk() {
|
||||
u8 travelTime = TRAVEL_TIME;
|
||||
f32 travelDist = TRAVEL_DIST;
|
||||
|
||||
cLib_calcTimer(&walkTimer);
|
||||
f32 dVar5 = cM_scos(field_0xca6 * (13 - walkTimer));
|
||||
dVar5 = (1.0f - dVar5) * 0.5f;
|
||||
f32 dVar5 = (1.0f - cM_scos(field_0xca6 * (travelTime - walkTimer))) * 0.5f;
|
||||
cXyz local_58(0.0f, 0.0f, 1.0f);
|
||||
mDoMtx_stack_c::YrotS(home.angle.y);
|
||||
mDoMtx_stack_c::multVec(&local_58, &local_58);
|
||||
current.pos.x = home.pos.x + local_58.x * (50.0f * (field_0xca2 + dVar5));
|
||||
current.pos.z = home.pos.z + local_58.z * (50.0f * (field_0xca2 + dVar5));
|
||||
current.pos.x = home.pos.x + local_58.x * (travelDist * (field_0xca2 + dVar5));
|
||||
current.pos.z = home.pos.z + local_58.z * (travelDist * (field_0xca2 + dVar5));
|
||||
setPower(power);
|
||||
fopAcM_seStartLevel(this, Z2SE_OBJ_CBLOCK_SLIDEMOVE, 0);
|
||||
if (walkTimer == 0) {
|
||||
@@ -227,9 +315,6 @@ void daObjCBlk_c::modeWalk() {
|
||||
}
|
||||
}
|
||||
|
||||
/* 80BC6C9C-80BC6CA8 000054 000C+00 1/2 0/0 0/0 .bss l_chainOffset */
|
||||
static cXyz l_chainOffset(0.0f, 105.0f, 30.0f);
|
||||
|
||||
/* 80BC65CC-80BC6648 000CAC 007C+00 2/2 0/0 0/0 .text getChainBasePos__11daObjCBlk_cFP4cXyz */
|
||||
void daObjCBlk_c::getChainBasePos(cXyz* pPos) {
|
||||
*pPos = l_chainOffset;
|
||||
@@ -241,24 +326,36 @@ void daObjCBlk_c::getChainBasePos(cXyz* pPos) {
|
||||
/* 80BC6648-80BC66DC 000D28 0094+00 2/2 0/0 0/0 .text setPower__11daObjCBlk_cFf */
|
||||
void daObjCBlk_c::setPower(f32 power) {
|
||||
daPy_py_c* player = daPy_getPlayerActorClass();
|
||||
chain_s* pChain = chains;
|
||||
chain_s* pChain = chains + 5;
|
||||
cXyz local_28;
|
||||
local_28 = pChain[4].position - pChain[5].position;
|
||||
local_28 = pChain[-1].position - pChain[0].position;
|
||||
s16 angle = cM_atan2s(local_28.x, local_28.z);
|
||||
player->setOutPower(power, angle, 0);
|
||||
}
|
||||
|
||||
static f32 dummy() {
|
||||
static f32 dummy2() {
|
||||
f32 f0 = -6.0f;
|
||||
#if DEBUG
|
||||
f32 f1 = 3.0f / 20.0f;
|
||||
#else
|
||||
f32 f1 = 3.0f / 40.0f;
|
||||
#endif
|
||||
f32 f2 = 100.0f;
|
||||
f32 f3 = 15.0f;
|
||||
f32 f4 = 35.0f;
|
||||
#if DEBUG
|
||||
f32 f5 = 5.0f;
|
||||
f32 f6 = 0.0f;
|
||||
f32 f7 = 0.0f;
|
||||
f32 f8 = 0.0f;
|
||||
f32 f9 = 0.0f;
|
||||
#else
|
||||
f64 f5 = 0.5;
|
||||
f64 f6 = 3.0;
|
||||
f64 f7 = 0.0;
|
||||
f32 f8 = 195.0f;
|
||||
f32 f9 = 210.0f;
|
||||
#endif
|
||||
return f0 + f1 * (f2 - f3 * (f4 - f5 * (f6 - f7 * f8 - (f7 - f9))));
|
||||
}
|
||||
|
||||
@@ -266,7 +363,7 @@ static f32 dummy() {
|
||||
BOOL daObjCBlk_c::checkWall() {
|
||||
cXyz acStack_30[2] = {cXyz(-95.0f, 5.0f, 1.0f), cXyz(95.0f, 5.0f, 1.0f)};
|
||||
cXyz cStack_40(0.0f, 0.0f, 1.0f);
|
||||
cStack_40.z = 50.0f;
|
||||
cStack_40.z = TRAVEL_DIST;
|
||||
BOOL rv = FALSE;
|
||||
for (int i = 0; i < 2; i++) {
|
||||
cXyz cStack_4c(acStack_30[i]);
|
||||
@@ -276,6 +373,10 @@ BOOL daObjCBlk_c::checkWall() {
|
||||
cStack_4c += current.pos;
|
||||
mDoMtx_stack_c::multVec(&cStack_58, &cStack_58);
|
||||
cStack_58 += cStack_4c;
|
||||
#if DEBUG
|
||||
field_0xcb0_debug[i] = cStack_4c;
|
||||
field_0xcc8_debug[i] = cStack_58;
|
||||
#endif
|
||||
if (fopAcM_lc_c::lineCheck(&cStack_4c, &cStack_58, this)) {
|
||||
rv = TRUE;
|
||||
}
|
||||
@@ -291,6 +392,9 @@ int daObjCBlk_c::Draw() {
|
||||
/* 80BC6870-80BC68A4 000F50 0034+00 1/0 0/0 0/0 .text Delete__11daObjCBlk_cFv */
|
||||
int daObjCBlk_c::Delete() {
|
||||
dComIfG_resDelete(&phase, l_arcName);
|
||||
#if DEBUG
|
||||
l_HIO.removeHIO();
|
||||
#endif
|
||||
return 1;
|
||||
}
|
||||
|
||||
@@ -308,19 +412,24 @@ static int daObjCBlk_Execute(daObjCBlk_c* i_this) {
|
||||
/* 80BC68F0-80BC6910 000FD0 0020+00 1/0 0/0 0/0 .text daObjCBlk_Delete__FP11daObjCBlk_c
|
||||
*/
|
||||
static int daObjCBlk_Delete(daObjCBlk_c* i_this) {
|
||||
fpc_ProcID unusedId = fopAcM_GetID(i_this);
|
||||
return i_this->MoveBGDelete();
|
||||
}
|
||||
|
||||
/* 80BC6910-80BC6930 000FF0 0020+00 1/0 0/0 0/0 .text daObjCBlk_Create__FP10fopAc_ac_c */
|
||||
static int daObjCBlk_Create(fopAc_ac_c* i_this) {
|
||||
fopAcM_GetID(i_this);
|
||||
return static_cast<daObjCBlk_c*>(i_this)->create();
|
||||
daObjCBlk_c* cblock = static_cast<daObjCBlk_c*>(i_this);
|
||||
fpc_ProcID unusedId = fopAcM_GetID(i_this);
|
||||
return cblock->create();
|
||||
}
|
||||
|
||||
/* 80BC6CB4-80BC6CC4 00006C 000C+04 0/1 0/0 0/0 .bss l_smokeSetOffset */
|
||||
static cXyz l_smokeSetOffset(0.0f, 0.0f, -200.0f);
|
||||
|
||||
static s32 unused_bss_70 = 0;
|
||||
#if DEBUG
|
||||
static const u32 dummy3[3] = {
|
||||
0xff0000ff,
|
||||
0x0000ffff,
|
||||
0x00ff00ff,
|
||||
};
|
||||
#endif
|
||||
|
||||
AUDIO_INSTANCES;
|
||||
|
||||
|
||||
@@ -255,7 +255,6 @@ void daPropY_c::init_modeStop() {
|
||||
}
|
||||
|
||||
/* 80C85DD0-80C85F14 000A50 0144+00 1/0 0/0 0/0 .text modeStop__9daPropY_cFv */
|
||||
// NONMATCHING - fsubs instead of fsub
|
||||
void daPropY_c::modeStop() {
|
||||
s16 var_r30;
|
||||
if (mTurnType == 0) {
|
||||
@@ -264,7 +263,12 @@ void daPropY_c::modeStop() {
|
||||
var_r30 = cLib_addCalcAngleS(&shape_angle.y, field_0x5b6, 1, (182.04445f * fopAcM_GetSpeedF(this)), 1);
|
||||
}
|
||||
|
||||
// probably not a real version difference - GCN has fsub for some reason instead of fsubs
|
||||
#if PLATFORM_GCN
|
||||
field_0x5c4 = field_0x5c0 * ((f32)std::fabs((f64)var_r30) / field_0x5bc);
|
||||
#else
|
||||
field_0x5c4 = field_0x5c0 * (std::fabs((f32)var_r30) / field_0x5bc);
|
||||
#endif
|
||||
mDoAud_seStartLevel(Z2SE_OBJ_AMI_ROLL, ¤t.pos, field_0x5c4, dComIfGp_getReverb(fopAcM_GetRoomNo(this)));
|
||||
|
||||
if (var_r30 == 0) {
|
||||
|
||||
@@ -9,6 +9,29 @@
|
||||
#include "d/actor/d_a_obj_swspinner.h"
|
||||
#include "d/d_s_play.h"
|
||||
|
||||
#if DEBUG
|
||||
class daObjLv7Brg_HIO_c : public JORReflexible {
|
||||
public:
|
||||
daObjLv7Brg_HIO_c();
|
||||
virtual ~daObjLv7Brg_HIO_c() {}
|
||||
|
||||
void genMessage(JORMContext*);
|
||||
|
||||
u8 field_0x04[0x08 - 0x04];
|
||||
f32 field_0x08;
|
||||
f32 field_0x0c;
|
||||
};
|
||||
|
||||
daObjLv7Brg_HIO_c::daObjLv7Brg_HIO_c() {
|
||||
}
|
||||
|
||||
void daObjLv7Brg_HIO_c::genMessage(JORMContext* ctx) {
|
||||
// NONMATCHING
|
||||
}
|
||||
|
||||
static daObjLv7Brg_HIO_c l_HIO;
|
||||
#endif
|
||||
|
||||
/* 80C86378-80C863EC 000078 0074+00 1/1 0/0 0/0 .text searchSwSpinner__FPvPv */
|
||||
static void* searchSwSpinner(void* i_actor, void* i_data) {
|
||||
fopAc_ac_c* swspinner = (fopAc_ac_c*)i_actor;
|
||||
@@ -329,19 +352,32 @@ void daObjLv7Brg_c::mode_action() {
|
||||
if (5100.0f == field_0xa78) {
|
||||
var_f31 = 0.0f;
|
||||
} else {
|
||||
#if DEBUG
|
||||
var_f31 = l_HIO.field_0x08;
|
||||
#else
|
||||
var_f31 = 30.0f;
|
||||
#endif
|
||||
}
|
||||
} else if (0.0f == field_0xa78) {
|
||||
var_f31 = 0.0f;
|
||||
} else {
|
||||
#if DEBUG
|
||||
var_f31 = -l_HIO.field_0x0c;
|
||||
#else
|
||||
var_f31 = -45.0f;
|
||||
#endif
|
||||
}
|
||||
|
||||
cLib_addCalc(&speedF, var_f31, 0.02f, 1.0f, 0.1f);
|
||||
field_0xa78 += speedF;
|
||||
|
||||
if (0.0f != speedF) {
|
||||
fopAcM_seStartLevel(this, 0x8025F, (127.0f * speedF) / 30.0f);
|
||||
#if DEBUG
|
||||
u32 var_r28 = 127.0f * speedF / l_HIO.field_0x08;
|
||||
#else
|
||||
u32 var_r28 = 127.0f * speedF / 30.0f;
|
||||
#endif
|
||||
fopAcM_seStartLevel(this, 0x8025F, var_r28);
|
||||
}
|
||||
|
||||
if (0.0f != speedF && 0.0f == temp_f29) {
|
||||
|
||||
@@ -336,6 +336,47 @@ int daObj_SSItem_c::wait(void* param_0) {
|
||||
}
|
||||
}
|
||||
|
||||
int daObj_SSItem_c::buy(void* param_0) {
|
||||
switch (mEventType) {
|
||||
case 0:
|
||||
break;
|
||||
case 1:
|
||||
dComIfGp_event_reset();
|
||||
|
||||
if (getParentPtr() != NULL) {
|
||||
((daMyna_c *)getParentPtr())->deleteItem(fopAcM_GetID(this));
|
||||
}
|
||||
|
||||
fopAcM_delete(this);
|
||||
break;
|
||||
case 2:
|
||||
break;
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
int daObj_SSItem_c::cancel(void* param_0) {
|
||||
switch (mEventType) {
|
||||
case 0:
|
||||
break;
|
||||
case 1:
|
||||
if (field_0xAFC == 0) {
|
||||
dComIfGp_event_reset();
|
||||
|
||||
current.pos.set(field_0xAF0);
|
||||
|
||||
setProcess(&daObj_SSItem_c::wait);
|
||||
}
|
||||
|
||||
break;
|
||||
case 2:
|
||||
break;
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* 80CE7D8C-80CE7DAC 0011EC 0020+00 1/0 0/0 0/0 .text daObj_SSItem_Create__FPv */
|
||||
static int daObj_SSItem_Create(void* i_this) {
|
||||
return static_cast<daObj_SSItem_c*>(i_this)->create();
|
||||
|
||||
+14
-11
@@ -410,37 +410,40 @@ static void dummy2() {
|
||||
J3DTevOrder tevOrder;
|
||||
J3DTevSwapModeTable tevSwapModeTable;
|
||||
J3DIndTexOrder indTexOrder;
|
||||
J3DIndTexMtx indTexMtx;
|
||||
J3DIndTexCoordScale indTexCoordScale;
|
||||
|
||||
J3DTevStage* tevStage_p;
|
||||
J3DTevStageInfo tevStageInfo;
|
||||
tevStage_p->setTevStageInfo(tevStageInfo);
|
||||
J3DTevStage tevStage;
|
||||
|
||||
J3DColorBlock* colorBlock = NULL;
|
||||
colorBlock->setColorChanNum((const u8*)NULL);
|
||||
colorBlock->setColorChanNum((u8)NULL);
|
||||
colorBlock->setMatColor(0, gxColor);
|
||||
colorBlock->setColorChan(0, colorChan);
|
||||
colorBlock->setAmbColor(0, gxColor);
|
||||
|
||||
J3DTexGenBlock* texGenBlock = NULL;
|
||||
texGenBlock->setTexGenNum((const u32*)NULL);
|
||||
texGenBlock->setTexGenNum((u32)NULL);
|
||||
texGenBlock->setTexCoord(0, NULL);
|
||||
|
||||
J3DTevBlock* tevBlock = NULL;
|
||||
tevBlock->setTevStageNum((const u8*)NULL);
|
||||
tevBlock->setTevStageNum((u8)0);
|
||||
tevBlock->setTevColor(0, J3DGXColorS10());
|
||||
tevBlock->setTevKColor(0, gxColor);
|
||||
tevBlock->setTevOrder(0, tevOrder);
|
||||
tevBlock->setTevKColorSel(0, (const u8*)NULL);
|
||||
tevBlock->setTevKAlphaSel(0, (const u8*)NULL);
|
||||
tevBlock->setTevKColorSel(0, (u8)0);
|
||||
tevBlock->setTevKAlphaSel(0, (u8)0);
|
||||
tevBlock->setTevSwapModeTable(0, tevSwapModeTable);
|
||||
tevBlock->setTexNo(0, (const u16*)NULL);
|
||||
J3DTevStage tevStage;
|
||||
tevBlock->setTexNo(0, (u16)0);
|
||||
tevBlock->setTevStage(0, tevStage);
|
||||
tevBlock->setIndTevStage(0, indTevStage);
|
||||
|
||||
J3DIndBlock* indBlock = NULL;
|
||||
indBlock->setIndTexStageNum(0);
|
||||
J3DIndTexMtx indTexMtx;
|
||||
indBlock->setIndTexMtx(0, indTexMtx);
|
||||
J3DIndTexCoordScale indTexCoordScale;
|
||||
indBlock->setIndTexCoordScale(0, indTexCoordScale);
|
||||
indTexCoordScale.~J3DIndTexCoordScale();
|
||||
|
||||
J3DPEBlock* peBlock = NULL;
|
||||
J3DAlphaComp alphaComp;
|
||||
@@ -450,7 +453,7 @@ static void dummy2() {
|
||||
J3DZMode zMode;
|
||||
peBlock->setZMode(zMode);
|
||||
u8 compLoc;
|
||||
peBlock->setZCompLoc(&compLoc);
|
||||
peBlock->setZCompLoc(compLoc);
|
||||
|
||||
colorBlock->getColorChanNum();
|
||||
colorBlock->getMatColor(0);
|
||||
|
||||
Reference in New Issue
Block a user