mirror of
https://github.com/zeldaret/tww.git
synced 2026-09-08 03:16:47 -04:00
Merge branch 'main' into d_a_gy_ctrl
This commit is contained in:
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,18 @@
|
||||
SECTIONS
|
||||
{
|
||||
GROUP:
|
||||
{
|
||||
.init :{}
|
||||
.text ALIGN(0x4):{}
|
||||
.ctors ALIGN(0x4):{}
|
||||
.dtors ALIGN(0x4):{}
|
||||
.rodata ALIGN(0x8):{}
|
||||
.data ALIGN(0x8):{ *(.data) *(extabindex) *(extab) }
|
||||
.bss ALIGN(0x8):{}
|
||||
}
|
||||
}
|
||||
|
||||
FORCEACTIVE
|
||||
{
|
||||
$FORCEACTIVE
|
||||
}
|
||||
+12
-12
@@ -13828,7 +13828,7 @@ colorTable$7058 = .rodata:0x8033AD6C; // type:object size:0x24 scope:local align
|
||||
@stringBase0 = .rodata:0x8033B258; // type:object size:0x18 scope:local align:4 data:string_table
|
||||
black_tex = .rodata:0x8033B280; // type:object size:0x40 scope:global align:4
|
||||
msg_data = .rodata:0x8033B2C0; // type:object size:0x220 scope:global align:32
|
||||
font_data = .rodata:0x8033B4E0; // type:object size:0x8280 scope:global align:32
|
||||
font_data = .rodata:0x8033B4E0; // type:object size:0x8280 scope:global align:32 noreloc
|
||||
@stringBase0 = .rodata:0x80343760; // type:object size:0x39 scope:local align:4 data:string_table
|
||||
@4710 = .rodata:0x803437A0; // type:object size:0x68 scope:local align:4 data:4byte
|
||||
@stringBase0 = .rodata:0x80343808; // type:object size:0x3AF scope:local align:4 data:string_table
|
||||
@@ -14592,8 +14592,8 @@ g_mDoMtx_identity = .data:0x803656D0; // type:object size:0x30 scope:global alig
|
||||
l_invisibleMat$7188 = .data:0x80365720; // type:object size:0x85 scope:local align:32
|
||||
l_matDL = .data:0x803657C0; // type:object size:0x8D scope:local align:32
|
||||
l_toonMatDL = .data:0x80365860; // type:object size:0x9C scope:global align:32
|
||||
l_mat1DL = .data:0x80365900; // type:object size:0x96 scope:global align:32
|
||||
l_toonMat1DL = .data:0x803659A0; // type:object size:0xA5 scope:global align:32
|
||||
l_mat1DL = .data:0x80365900; // type:object size:0x96 scope:global align:32 noreloc
|
||||
l_toonMat1DL = .data:0x803659A0; // type:object size:0xA5 scope:global align:32 noreloc
|
||||
__vt__7JUTFont = .data:0x80365A48; // type:object size:0x44 scope:global align:4
|
||||
__vt__26mDoExt_3DlineMatSortPacket = .data:0x80365A8C; // type:object size:0x18 scope:global align:4
|
||||
__vt__19mDoExt_3DlineMat1_c = .data:0x80365AA4; // type:object size:0x14 scope:global align:4
|
||||
@@ -15016,7 +15016,7 @@ l_vtxAttrFmtList$5109 = .data:0x803704B4; // type:object size:0x20 scope:local a
|
||||
l_shadowVolPos = .data:0x803704D4; // type:object size:0x60 scope:global align:4
|
||||
l_shadowVolDL = .data:0x80370540; // type:object size:0x4A scope:global align:32
|
||||
l_shadowProjMat = .data:0x803705A0; // type:object size:0x55 scope:global align:32
|
||||
l_shadowVolMat = .data:0x80370600; // type:object size:0x5A scope:global align:32
|
||||
l_shadowVolMat = .data:0x80370600; // type:object size:0x5A scope:global align:32 noreloc
|
||||
l_clearMat = .data:0x80370660; // type:object size:0x55 scope:global align:32
|
||||
l_frontMat = .data:0x803706C0; // type:object size:0x55 scope:global align:32
|
||||
l_backSubMat = .data:0x80370720; // type:object size:0x3C scope:global align:32
|
||||
@@ -15725,7 +15725,7 @@ l_fan_wind_sph_src = .data:0x80381FC0; // type:object size:0x40 scope:global ali
|
||||
@4356 = .data:0x80382A20; // type:object size:0xC scope:local align:4
|
||||
@4357 = .data:0x80382A2C; // type:object size:0xC scope:local align:4
|
||||
@4358 = .data:0x80382A38; // type:object size:0xC scope:local align:4
|
||||
mProcInitTable__9daPy_lk_c = .data:0x80382A44; // type:object size:0xDB0 scope:global align:4 data:4byte
|
||||
mProcInitTable__9daPy_lk_c = .data:0x80382A44; // type:object size:0xDB0 scope:global align:4 data:4byte noreloc
|
||||
@4359 = .data:0x803837F4; // type:object size:0xC scope:local align:4
|
||||
@4360 = .data:0x80383800; // type:object size:0xC scope:local align:4
|
||||
@4361 = .data:0x8038380C; // type:object size:0xC scope:local align:4
|
||||
@@ -15779,7 +15779,7 @@ mProcInitTable__9daPy_lk_c = .data:0x80382A44; // type:object size:0xDB0 scope:g
|
||||
@4409 = .data:0x80383A4C; // type:object size:0xC scope:local align:4
|
||||
@4410 = .data:0x80383A58; // type:object size:0xC scope:local align:4
|
||||
mDemoProcInitFuncTable__9daPy_lk_c = .data:0x80383A64; // type:object size:0x384 scope:global align:4 data:4byte
|
||||
l_sightDL = .data:0x80383E00; // type:object size:0x89 scope:local align:32
|
||||
l_sightDL = .data:0x80383E00; // type:object size:0x89 scope:local align:32 noreloc
|
||||
waterfall_ripple_scale$5686 = .data:0x80383E8C; // type:object size:0xC scope:local align:4
|
||||
grass_scale$6023 = .data:0x80383E98; // type:object size:0xC scope:local align:4
|
||||
smoke_scale$6024 = .data:0x80383EA4; // type:object size:0xC scope:local align:4
|
||||
@@ -16738,7 +16738,7 @@ CUTOFF_TO_IIR_TABLE__Q28JASystem6Player = .data:0x8038C010; // type:object size:
|
||||
sAdsTable__Q28JASystem6Player = .data:0x8038C410; // type:object size:0x18 scope:global align:4
|
||||
sRelTable__Q28JASystem6Player = .data:0x8038C428; // type:object size:0xC scope:global align:4
|
||||
sVibTable__Q28JASystem6Player = .data:0x8038C434; // type:object size:0x24 scope:global align:4
|
||||
sTreTable__Q28JASystem6Player = .data:0x8038C458; // type:object size:0x24 scope:global align:4
|
||||
sTreTable__Q28JASystem6Player = .data:0x8038C458; // type:object size:0x24 scope:global align:4 noreloc
|
||||
...data.0 = .data:0x8038C480; // type:label scope:local
|
||||
@620 = .data:0x8038C480; // type:object size:0xC scope:local align:4 data:4byte
|
||||
@621 = .data:0x8038C48C; // type:object size:0xC scope:local align:4
|
||||
@@ -16825,8 +16825,8 @@ calc_sw_table__Q28JASystem6Driver = .data:0x8038CCC8; // type:object size:0x51 s
|
||||
oscTableForceStop__Q28JASystem11TOscillator = .data:0x8038CD60; // type:object size:0xC scope:global align:4
|
||||
C5BASE_PITCHTABLE__Q28JASystem6Driver = .data:0x8038CD80; // type:object size:0x200 scope:global align:4
|
||||
DSPADPCM_FILTER__Q28JASystem12DSPInterface = .data:0x8038CF80; // type:object size:0x40 scope:global align:32
|
||||
DSPRES_FILTER__Q28JASystem12DSPInterface = .data:0x8038CFC0; // type:object size:0x500 scope:global align:32
|
||||
jdsp = .data:0x8038D4C0; // type:object size:0x1D20 scope:global align:32
|
||||
DSPRES_FILTER__Q28JASystem12DSPInterface = .data:0x8038CFC0; // type:object size:0x500 scope:global align:32 noreloc
|
||||
jdsp = .data:0x8038D4C0; // type:object size:0x1D20 scope:global align:32 noreloc
|
||||
__vt__13JAIAnimeSound = .data:0x8038F1E0; // type:object size:0x10 scope:global align:4
|
||||
__vt__8JAIBasic = .data:0x8038F1F0; // type:object size:0x24 scope:global align:4
|
||||
dummyZeroVec__Q27JAInter5Const = .data:0x8038F218; // type:object size:0xC scope:global align:4 data:float
|
||||
@@ -16909,8 +16909,8 @@ c3bcnt = .data:0x80391278; // type:object size:0x20 scope:global align:8 data:4b
|
||||
sCpuExpName__12JUTException = .data:0x80391298; // type:object size:0x44 scope:global align:4
|
||||
__vt__12JUTException = .data:0x803912DC; // type:object size:0x10 scope:global align:4
|
||||
sAsciiTable__14JUTDirectPrint = .data:0x803912F0; // type:object size:0x80 scope:global align:4
|
||||
sFontData__14JUTDirectPrint = .data:0x80391370; // type:object size:0x100 scope:global align:4
|
||||
sFontData2__14JUTDirectPrint = .data:0x80391470; // type:object size:0x134 scope:global align:4
|
||||
sFontData__14JUTDirectPrint = .data:0x80391370; // type:object size:0x100 scope:global align:4 noreloc
|
||||
sFontData2__14JUTDirectPrint = .data:0x80391470; // type:object size:0x134 scope:global align:4 noreloc
|
||||
__vt__8JUTVideo = .data:0x803915A8; // type:object size:0xC scope:global align:4
|
||||
__vt__8JUTFader = .data:0x803915B8; // type:object size:0x18 scope:global align:4
|
||||
__vt__10JUTConsole = .data:0x803915D0; // type:object size:0xC scope:global align:4
|
||||
@@ -20174,7 +20174,7 @@ M_box_z_max__Q210daTagLight5Act_c = .sdata2:0x803EC1D4; // type:object size:0x4
|
||||
M_cone_lower__Q210daTagLight5Act_c = .sdata2:0x803EC1D8; // type:object size:0x4 scope:global align:4 data:float
|
||||
M_cone_upper__Q210daTagLight5Act_c = .sdata2:0x803EC1DC; // type:object size:0x4 scope:global align:4 data:float
|
||||
M_cone_r__Q210daTagLight5Act_c = .sdata2:0x803EC1E0; // type:object size:0x4 scope:global align:4 data:float
|
||||
M_dir_base__Q212daObjMovebox5Act_c = .sdata2:0x803EC1E4; // type:object size:0x8 scope:global align:4
|
||||
M_dir_base__Q212daObjMovebox5Act_c = .sdata2:0x803EC1E4; // type:object size:0x8 scope:global align:4 noreloc
|
||||
m_max_rot_speed__12daWindMill_c = .sdata2:0x803EC1EC; // type:object size:0x4 scope:global align:4
|
||||
m_highscore__11daNpc_Kg1_c = .sdata2:0x803EC1F0; // type:object size:0x1 scope:global align:1 data:byte
|
||||
@4532 = .sdata2:0x803EC1F4; // type:object size:0x4 scope:local align:4 data:float
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,18 @@
|
||||
SECTIONS
|
||||
{
|
||||
GROUP:
|
||||
{
|
||||
.init :{}
|
||||
.text ALIGN(0x4):{}
|
||||
.ctors ALIGN(0x4):{}
|
||||
.dtors ALIGN(0x4):{}
|
||||
.rodata ALIGN(0x8):{}
|
||||
.data ALIGN(0x8):{ *(.data) *(extabindex) *(extab) }
|
||||
.bss ALIGN(0x8):{}
|
||||
}
|
||||
}
|
||||
|
||||
FORCEACTIVE
|
||||
{
|
||||
$FORCEACTIVE
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,18 @@
|
||||
SECTIONS
|
||||
{
|
||||
GROUP:
|
||||
{
|
||||
.init :{}
|
||||
.text ALIGN(0x4):{}
|
||||
.ctors ALIGN(0x4):{}
|
||||
.dtors ALIGN(0x4):{}
|
||||
.rodata ALIGN(0x8):{}
|
||||
.data ALIGN(0x8):{ *(.data) *(extabindex) *(extab) }
|
||||
.bss ALIGN(0x8):{}
|
||||
}
|
||||
}
|
||||
|
||||
FORCEACTIVE
|
||||
{
|
||||
$FORCEACTIVE
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,18 @@
|
||||
SECTIONS
|
||||
{
|
||||
GROUP:
|
||||
{
|
||||
.init :{}
|
||||
.text ALIGN(0x4):{}
|
||||
.ctors ALIGN(0x4):{}
|
||||
.dtors ALIGN(0x4):{}
|
||||
.rodata ALIGN(0x8):{}
|
||||
.data ALIGN(0x8):{ *(.data) *(extabindex) *(extab) }
|
||||
.bss ALIGN(0x8):{}
|
||||
}
|
||||
}
|
||||
|
||||
FORCEACTIVE
|
||||
{
|
||||
$FORCEACTIVE
|
||||
}
|
||||
+27
-27
@@ -547,7 +547,7 @@ config.libs = [
|
||||
Object(Matching, "d/d_a_npc_cb1_static.cpp"),
|
||||
Object(NonMatching, "d/d_a_npc_mk_static.cpp"),
|
||||
Object(MatchingFor("GZLJ01", "GZLE01", "GZLP01"), "d/d_salvage.cpp"),
|
||||
Object(MatchingFor("GZLJ01", "GZLE01", "GZLP01"), "d/d_snap.cpp"),
|
||||
Object(Matching, "d/d_snap.cpp"),
|
||||
Object(MatchingFor("GZLJ01", "GZLE01", "GZLP01"), "d/d_point_wind.cpp"),
|
||||
Object(MatchingFor("GZLJ01", "GZLE01", "GZLP01"), "d/actor/d_a_agb.cpp"),
|
||||
Object(MatchingFor("GZLJ01", "GZLE01", "GZLP01"), "d/actor/d_a_arrow.cpp"),
|
||||
@@ -1373,13 +1373,13 @@ config.libs = [
|
||||
ActorRel(Matching, "d_a_branch"),
|
||||
ActorRel(NonMatching, "d_a_bridge"),
|
||||
ActorRel(NonMatching, "d_a_coming2"),
|
||||
ActorRel(Matching, "d_a_coming3"),
|
||||
ActorRel(Matching, "d_a_demo_dk"),
|
||||
ActorRel(Matching, "d_a_demo_kmm"),
|
||||
ActorRel(Matching, "d_a_door10"),
|
||||
ActorRel(Matching, "d_a_coming3"),
|
||||
ActorRel(Matching, "d_a_demo_dk"),
|
||||
ActorRel(Matching, "d_a_demo_kmm"),
|
||||
ActorRel(Matching, "d_a_door10"),
|
||||
ActorRel(Matching, "d_a_dr"),
|
||||
ActorRel(Equivalent, "d_a_dr2"),
|
||||
ActorRel(Matching, "d_a_ep"),
|
||||
ActorRel(Equivalent, "d_a_dr2"),
|
||||
ActorRel(Matching, "d_a_ep"),
|
||||
ActorRel(MatchingFor("GZLJ01", "GZLE01", "GZLP01"), "d_a_floor"),
|
||||
ActorRel(Matching, "d_a_grass"),
|
||||
ActorRel(MatchingFor("GZLJ01", "GZLE01", "GZLP01"), "d_a_hitobj"),
|
||||
@@ -1387,9 +1387,9 @@ config.libs = [
|
||||
ActorRel(MatchingFor("GZLJ01", "GZLE01", "GZLP01"), "d_a_ikari"),
|
||||
ActorRel(MatchingFor("GZLJ01", "GZLE01", "GZLP01"), "d_a_jbo"),
|
||||
ActorRel(MatchingFor("GZLJ01", "GZLE01", "GZLP01"), "d_a_kaji"),
|
||||
ActorRel(Matching, "d_a_kanban"),
|
||||
ActorRel(Matching, "d_a_ki"),
|
||||
ActorRel(Matching, "d_a_knob00"),
|
||||
ActorRel(Matching, "d_a_kanban"),
|
||||
ActorRel(Matching, "d_a_ki"),
|
||||
ActorRel(Matching, "d_a_knob00"),
|
||||
ActorRel(MatchingFor("GZLJ01", "GZLE01", "GZLP01"), "d_a_kui"),
|
||||
ActorRel(Matching, "d_a_kytag00"),
|
||||
ActorRel(Matching, "d_a_kytag01"),
|
||||
@@ -1403,7 +1403,7 @@ config.libs = [
|
||||
ActorRel(NonMatching, "d_a_lod_bg"),
|
||||
ActorRel(MatchingFor("GZLJ01", "GZLE01", "GZLP01"), "d_a_lwood"),
|
||||
ActorRel(MatchingFor("GZLJ01", "GZLE01", "GZLP01"), "d_a_magma"),
|
||||
ActorRel(Matching, "d_a_majuu_flag"),
|
||||
ActorRel(Matching, "d_a_majuu_flag"),
|
||||
ActorRel(MatchingFor("GZLJ01", "GZLE01", "GZLP01"), "d_a_mdoor"),
|
||||
ActorRel(MatchingFor("D44J01"), "d_a_msw"),
|
||||
ActorRel(MatchingFor("GZLJ01", "GZLE01", "GZLP01"), "d_a_mtoge"),
|
||||
@@ -1415,22 +1415,22 @@ config.libs = [
|
||||
ActorRel(MatchingFor("GZLJ01", "GZLE01", "GZLP01"), "d_a_obj_bscurtain"),
|
||||
ActorRel(Matching, "d_a_obj_cafelmp"),
|
||||
ActorRel(NonMatching, "d_a_obj_coming"),
|
||||
ActorRel(Matching, "d_a_obj_demo_barrel"),
|
||||
ActorRel(Matching, "d_a_obj_demo_barrel"),
|
||||
ActorRel(MatchingFor("GZLJ01", "GZLE01", "GZLP01"), "d_a_obj_doguu"),
|
||||
ActorRel(MatchingFor("GZLJ01", "GZLE01", "GZLP01"), "d_a_obj_doguu_demo"),
|
||||
ActorRel(MatchingFor("GZLJ01", "GZLE01", "GZLP01"), "d_a_obj_gryw00"),
|
||||
ActorRel(Matching, "d_a_obj_hfuck1"),
|
||||
ActorRel(Matching, "d_a_obj_hole"),
|
||||
ActorRel(Matching, "d_a_obj_ice"),
|
||||
ActorRel(Matching, "d_a_obj_ice"),
|
||||
ActorRel(NonMatching, "d_a_obj_ikada"),
|
||||
ActorRel(Matching, "d_a_obj_kanat"),
|
||||
ActorRel(Matching, "d_a_obj_leaves"),
|
||||
ActorRel(Matching, "d_a_obj_lpalm"),
|
||||
ActorRel(Matching, "d_a_obj_leaves"),
|
||||
ActorRel(Matching, "d_a_obj_lpalm"),
|
||||
ActorRel(MatchingFor("GZLJ01", "GZLE01", "GZLP01"), "d_a_obj_monument"),
|
||||
ActorRel(MatchingFor("GZLJ01", "GZLE01", "GZLP01"), "d_a_obj_movebox"),
|
||||
ActorRel(Matching, "d_a_obj_mshokki"),
|
||||
ActorRel(Matching, "d_a_obj_ohatch"),
|
||||
ActorRel(Matching, "d_a_obj_otble"),
|
||||
ActorRel(Matching, "d_a_obj_mshokki"),
|
||||
ActorRel(Matching, "d_a_obj_ohatch"),
|
||||
ActorRel(Matching, "d_a_obj_otble"),
|
||||
ActorRel(MatchingFor("GZLJ01", "GZLE01", "GZLP01"), "d_a_obj_pbco"),
|
||||
ActorRel(Matching, "d_a_obj_pirateship"),
|
||||
ActorRel(MatchingFor("GZLJ01", "GZLE01", "GZLP01"), "d_a_obj_quake"),
|
||||
@@ -1451,8 +1451,8 @@ config.libs = [
|
||||
ActorRel(MatchingFor("GZLJ01", "GZLE01", "GZLP01"), "d_a_race_item"),
|
||||
ActorRel(MatchingFor("GZLJ01", "GZLE01", "GZLP01"), "d_a_rd"),
|
||||
ActorRel(Matching, "d_a_rectangle"),
|
||||
ActorRel(Matching, "d_a_salvage"),
|
||||
ActorRel(Matching, "d_a_sbox"),
|
||||
ActorRel(Matching, "d_a_salvage"),
|
||||
ActorRel(Matching, "d_a_sbox"),
|
||||
ActorRel(Matching, "d_a_sk"),
|
||||
ActorRel(Matching, "d_a_sk2"),
|
||||
ActorRel(Matching, "d_a_spotbox"),
|
||||
@@ -1462,14 +1462,14 @@ config.libs = [
|
||||
ActorRel(Matching, "d_a_swc00"),
|
||||
ActorRel(MatchingFor("GZLJ01", "GZLE01", "GZLP01"), "d_a_swhit0"),
|
||||
ActorRel(Matching, "d_a_swtdoor"),
|
||||
ActorRel(Matching, "d_a_tag_attention"),
|
||||
ActorRel(Matching, "d_a_tag_attention"),
|
||||
ActorRel(NonMatching, "d_a_tag_ba1"),
|
||||
ActorRel(Matching, "d_a_tag_event"),
|
||||
ActorRel(Matching, "d_a_tag_evsw"),
|
||||
ActorRel(MatchingFor("GZLJ01", "GZLE01", "GZLP01"), "d_a_tag_ghostship"),
|
||||
ActorRel(Matching, "d_a_tag_hint"),
|
||||
ActorRel(Matching, "d_a_tag_hint"),
|
||||
ActorRel(Matching, "d_a_tag_kb_item"),
|
||||
ActorRel(Matching, "d_a_tag_kk1"),
|
||||
ActorRel(Matching, "d_a_tag_kk1"),
|
||||
ActorRel(Equivalent, "d_a_tag_light"),
|
||||
ActorRel(Matching, "d_a_tag_msg"),
|
||||
ActorRel(Matching, "d_a_tag_photo"),
|
||||
@@ -1477,7 +1477,7 @@ config.libs = [
|
||||
ActorRel(Matching, "d_a_tama"),
|
||||
ActorRel(MatchingFor("GZLJ01", "GZLE01", "GZLP01"), "d_a_tbox"),
|
||||
ActorRel(Matching, "d_a_tpota"),
|
||||
ActorRel(Equivalent, "d_a_tsubo"),
|
||||
ActorRel(Equivalent, "d_a_tsubo"),
|
||||
ActorRel(Matching, "d_a_warpdm20"),
|
||||
ActorRel(Matching, "d_a_warphr"),
|
||||
ActorRel(MatchingFor("GZLJ01", "GZLE01", "GZLP01"), "d_a_wbird"),
|
||||
@@ -1498,11 +1498,11 @@ config.libs = [
|
||||
ActorRel(Matching, "d_a_fallrock"),
|
||||
ActorRel(Matching, "d_a_ff"),
|
||||
ActorRel(Equivalent, "d_a_gy_ctrl"),
|
||||
ActorRel(NonMatching, "d_a_himo3"),
|
||||
ActorRel(Equivalent, "d_a_himo3"),
|
||||
ActorRel(NonMatching, "d_a_hmlif"),
|
||||
ActorRel(MatchingFor("GZLJ01", "GZLE01", "GZLP01"), "d_a_hys"),
|
||||
ActorRel(NonMatching, "d_a_kamome"),
|
||||
ActorRel(NonMatching, "d_a_kamome2"), # Demo-only
|
||||
ActorRel(Equivalent, "d_a_kamome"),
|
||||
ActorRel(Matching, "d_a_kamome2"), # Demo-only
|
||||
ActorRel(NonMatching, "d_a_kantera"),
|
||||
ActorRel(NonMatching, "d_a_kn"),
|
||||
ActorRel(NonMatching, "d_a_kokiie"),
|
||||
|
||||
@@ -84,7 +84,7 @@ struct TVec3<s16> : public SVec {
|
||||
template <>
|
||||
struct TVec3<f32> : public Vec {
|
||||
TVec3() {}
|
||||
|
||||
|
||||
template<typename f32>
|
||||
TVec3(const f32 x, const f32 y, const f32 z) { set(x, y, z); }
|
||||
|
||||
|
||||
+137
-24
@@ -1,33 +1,146 @@
|
||||
#ifndef D_A_BTD_H
|
||||
#define D_A_BTD_H
|
||||
|
||||
#include "d/d_cc_d.h"
|
||||
#include "d/d_magma.h"
|
||||
#include "d/d_particle.h"
|
||||
#include "f_op/f_op_actor.h"
|
||||
|
||||
struct btd_hahen_s {
|
||||
/* 0x00 */ J3DModel* model;
|
||||
/* 0x04 */ u8 m04;
|
||||
/* 0x05 */ u8 m05[0x08 - 0x05];
|
||||
/* 0x08 */ cXyz m08;
|
||||
/* 0x14 */ cXyz m14;
|
||||
/* 0x20 */ s16 m20;
|
||||
/* 0x22 */ s16 m22;
|
||||
/* 0x24 */ u8 m24[0x28 - 0x24];
|
||||
}; // Size: 0x28
|
||||
|
||||
struct btd_sibuki_s {
|
||||
/* 0x00 */ s8 m00;
|
||||
/* 0x01 */ u8 m01[0x04 - 0x01];
|
||||
/* 0x04 */ cXyz m04;
|
||||
/* 0x10 */ cXyz m10;
|
||||
/* 0x20 */ u8 m1C[0x24 - 0x1C];
|
||||
}; // Size: 0x24
|
||||
|
||||
class btd_class : public fopAc_ac_c {
|
||||
public:
|
||||
/* Place member variables here */
|
||||
/* 0x0290 */ u8 field_0x0290[0x2e4 - 0x290];
|
||||
/* 0x02E4 */ s16 field_0x2e4;
|
||||
/* 0x02E6 */ u8 field_0x02E6[0x02F6 - 0x2e6];
|
||||
/* 0x02F6 */ bool field_0x2F6;
|
||||
/* 0x02F7 */ u8 field_0x02F7[0x0320 - 0x02F7];
|
||||
/* 0x0320 */ cXyz field_0x320;
|
||||
/* 0x032C */ cXyz field_0x32C;
|
||||
/* 0x0338 */ u8 field_0x0338[0x0360 - 0x0338];
|
||||
/* 0x0360 */ f32 field_0x360;
|
||||
/* 0x0364 */ u8 field_0x0364[0x6190 - 0x0364];
|
||||
/* 0x6190 */ u8 field_0x6190;
|
||||
/* 0x6191 */ u8 field_0x6191[0x6E15 - 0x6191];
|
||||
/* 0x6E15 */ u8 field_0x6e15;
|
||||
/* 0x6E16 */ s16 field_0x6e16;
|
||||
};
|
||||
|
||||
class daBtd_HIO_c {
|
||||
public:
|
||||
daBtd_HIO_c();
|
||||
|
||||
public:
|
||||
/* Place member variables here */
|
||||
};
|
||||
/* 0x0290 */ u8 m0290[0x02AC - 0x0290];
|
||||
/* 0x02AC */ request_of_phase_process_class m02AC;
|
||||
/* 0x02B4 */ request_of_phase_process_class m02B4;
|
||||
/* 0x02BC */ mDoExt_McaMorf* m02BC;
|
||||
/* 0x02C0 */ mDoExt_btkAnm* btk;
|
||||
/* 0x02C4 */ mDoExt_brkAnm* brk;
|
||||
/* 0x02C8 */ mDoExt_McaMorf* m02C8;
|
||||
/* 0x02CC */ mDoExt_btkAnm* btkS;
|
||||
/* 0x02D0 */ mDoExt_brkAnm* brkS;
|
||||
/* 0x02D4 */ mDoExt_McaMorf* m02D4;
|
||||
/* 0x02D8 */ mDoExt_btkAnm* m02D8;
|
||||
/* 0x02DC */ mDoExt_brkAnm* m02DC;
|
||||
/* 0x02E0 */ u8 m02E0;
|
||||
/* 0x02E1 */ s8 m02E1;
|
||||
/* 0x02E2 */ s16 m02E2;
|
||||
/* 0x02E4 */ s16 m02E4;
|
||||
/* 0x02E6 */ s16 mGohmaState;
|
||||
/* 0x02E8 */ s8 mAttackType;
|
||||
/* 0x02E9 */ s8 m02E9;
|
||||
/* 0x02EA */ s8 m02EA;
|
||||
/* 0x02EB */ u8 m02EB[0x02EC - 0x02EB];
|
||||
/* 0x02EC */ s16 m02EC[2]; // m02EC[0] = mAttackTimer?
|
||||
/* 0x02F0 */ s16 m02F0;
|
||||
/* 0x02F2 */ s16 mStunTimer;
|
||||
/* 0x02F4 */ s16 mActionState;
|
||||
/* 0x02F6 */ u8 m02F6;
|
||||
/* 0x02F7 */ u8 m02F7[0x02F8 - 0x02F7];
|
||||
/* 0x02F8 */ s16 m02F8;
|
||||
/* 0x02FA */ s16 m02FA;
|
||||
/* 0x02FC */ cXyz m02FC[19];
|
||||
/* 0x03E0 */ cXyz m03E0;
|
||||
/* 0x03EC */ dCcD_Stts m03EC;
|
||||
/* 0x0428 */ dCcD_Sph m0428[19];
|
||||
/* 0x1A6C */ dCcD_Sph m1A6C;
|
||||
/* 0x1B98 */ dCcD_Sph m1B98;
|
||||
/* 0x1CC4 */ dCcD_Sph m1CC4[50];
|
||||
/* 0x575C */ dCcD_Cyl m575C[6];
|
||||
/* 0x5E7C */ u8 m5E7C;
|
||||
/* 0x5E7D */ u8 m5E7D[0x5E80 - 0x5E7D];
|
||||
/* 0x5E80 */ f32 m5E80;
|
||||
/* 0x5E84 */ u8 m5E84;
|
||||
/* 0x5E85 */ s8 mTotalDamage;
|
||||
/* 0x5E86 */ u8 m5E86;
|
||||
/* 0x5E87 */ u8 m5E87[0x5E88 - 0x5E87];
|
||||
/* 0x5E88 */ s16 m5E88;
|
||||
/* 0x5E8A */ s16 m5E8A;
|
||||
/* 0x5E8C */ s16 m5E8C;
|
||||
/* 0x5E8E */ s16 m5E8E;
|
||||
/* 0x5E90 */ s16 m5E90;
|
||||
/* 0x5E92 */ s16 m5E92;
|
||||
/* 0x5E94 */ s16 m5E94;
|
||||
/* 0x5E96 */ s16 m5E96;
|
||||
/* 0x5E98 */ cXyz m5E98[25];
|
||||
/* 0x5FC4 */ s16 m5FC4[2];
|
||||
/* 0x5FC8 */ u8 m5FC8[0x5FEA - 0x5FC8];
|
||||
/* 0x5FEA */ s16 m5FEA[2];
|
||||
/* 0x5FEE */ u8 m5FEE[0x5FF8 - 0x5FEE];
|
||||
/* 0x5FF8 */ JPABaseEmitter* m5FF8[5];
|
||||
/* 0x600C */ JPABaseEmitter* m600C[7];
|
||||
/* 0x6028 */ s16 m6028[2];
|
||||
/* 0x602C */ s16 m602C;
|
||||
/* 0x602E */ s16 m602E;
|
||||
/* 0x6030 */ s16 m6030;
|
||||
/* 0x6032 */ s16 m6032;
|
||||
/* 0x6034 */ s16 m6034;
|
||||
/* 0x6036 */ u8 m6036[0x6038 - 0x6036];
|
||||
/* 0x6038 */ JPABaseEmitter* m6038;
|
||||
/* 0x603C */ cXyz m603C;
|
||||
/* 0x6048 */ csXyz m6048;
|
||||
/* 0x604E */ u8 m604E[0x6050 - 0x604E];
|
||||
/* 0x6050 */ dPa_smokeEcallBack mPa_SmokeEcallBack[3];
|
||||
/* 0x60B0 */ LIGHT_INFLUENCE m60B0;
|
||||
/* 0x60D0 */ f32 m60D0;
|
||||
/* 0x60D4 */ f32 m60D4;
|
||||
/* 0x60D8 */ u8 m60D8;
|
||||
/* 0x60D9 */ u8 m60D9;
|
||||
/* 0x60DA */ u8 m60DA;
|
||||
/* 0x60DB */ u8 mKankyoState;
|
||||
/* 0x60DC */ s16 mKankyoTimer;
|
||||
/* 0x60DE */ u8 m60DE[0x60E0 - 0x60DE];
|
||||
/* 0x60E0 */ dKy_tevstr_c m60E0;
|
||||
/* 0x6190 */ u8 m6190;
|
||||
/* 0x6191 */ u8 m6191[0x6194 - 0x6191];
|
||||
/* 0x6194 */ btd_hahen_s hahen[35];
|
||||
/* 0x670C */ btd_sibuki_s mBtdSibukiS[50];
|
||||
/* 0x6E14 */ s8 m6E14;
|
||||
/* 0x6E15 */ u8 m6E15;
|
||||
/* 0x6E16 */ s16 m6E16;
|
||||
/* 0x6E18 */ s16 m6E18;
|
||||
/* 0x6E1A */ s16 m6E1A;
|
||||
/* 0x6E1C */ cXyz m6E1C;
|
||||
/* 0x6E28 */ cXyz m6E28;
|
||||
/* 0x6E34 */ s16 m6E34;
|
||||
/* 0x6E36 */ s16 m6E36;
|
||||
/* 0x6E38 */ u8 m6E38[0x6E3C - 0x6E38];
|
||||
/* 0x6E3C */ f32 m6E3C;
|
||||
/* 0x6E40 */ f32 m6E40;
|
||||
/* 0x6E44 */ f32 m6E44;
|
||||
/* 0x6E48 */ f32 m6E48;
|
||||
/* 0x6E4C */ u8 m6E4C;
|
||||
/* 0x6E4D */ u8 m6E4D[0x6E50 - 0x6E4D];
|
||||
/* 0x6E50 */ cXyz m6E50;
|
||||
/* 0x6E5C */ cXyz m6E5C;
|
||||
/* 0x6E68 */ cXyz m6E68;
|
||||
/* 0x6E74 */ csXyz m6E74;
|
||||
/* 0x6E7A */ u8 m6E7A[0x6E7C - 0x6E7A];
|
||||
/* 0x6E7C */ f32 m6E7C;
|
||||
/* 0x6E80 */ f32 m6E80;
|
||||
/* 0x6E84 */ f32 m6E84;
|
||||
/* 0x6E88 */ u8 m6E88;
|
||||
/* 0x6E89 */ u8 m6E89[0x6E8C - 0x6E89];
|
||||
/* 0x6E8C */ dMagma_floor_c* floor;
|
||||
/* 0x6E90 */ s8 m6E90;
|
||||
/* 0x6E91 */ u8 m6E91[0x6E94 - 0x6E91];
|
||||
}; // Size: 0x6E94
|
||||
|
||||
#endif /* D_A_BTD_H */
|
||||
|
||||
@@ -14,7 +14,7 @@ struct himo2_s {
|
||||
/* 0x1C */ s16 m1C;
|
||||
/* 0x1E */ s16 m1E;
|
||||
/* 0x20 */ u8 m20[0x24 - 0x20];
|
||||
}; // Size: 0x24
|
||||
}; // Size: 0x24
|
||||
|
||||
class himo2_class : public fopAc_ac_c {
|
||||
public:
|
||||
@@ -96,6 +96,6 @@ public:
|
||||
/* 0x2530 */ f32 m2530;
|
||||
/* 0x2534 */ dBgS_AcchCir m2534;
|
||||
/* 0x2574 */ dBgS_ObjAcch m2574;
|
||||
};
|
||||
}; // Size: 0x2738
|
||||
|
||||
#endif /* D_A_HIMO2_H */
|
||||
|
||||
@@ -2,10 +2,30 @@
|
||||
#define D_A_HIMO3_H
|
||||
|
||||
#include "f_op/f_op_actor.h"
|
||||
#include "m_Do/m_Do_ext.h"
|
||||
#include "d/d_bg_s_acch.h"
|
||||
#include "d/d_cc_d.h"
|
||||
#include "d/d_path.h"
|
||||
#include "d/d_particle.h"
|
||||
|
||||
struct himo3_s {
|
||||
|
||||
};
|
||||
/* 0x00 */ cXyz m00;
|
||||
/* 0x0C */ cXyz m0C;
|
||||
}; // size = 0x18
|
||||
|
||||
struct h3_ga_s {
|
||||
/* 0x00 */ J3DModel* mpModel;
|
||||
/* 0x04 */ cXyz mPos;
|
||||
/* 0x04 */ cXyz m10;
|
||||
/* 0x1C */ s16 m1C;
|
||||
/* 0x1E */ s16 m1E;
|
||||
/* 0x20 */ u8 m20[0x24 - 0x20];
|
||||
/* 0x24 */ f32 m24;
|
||||
/* 0x28 */ f32 m28;
|
||||
/* 0x2C */ s16 m2C;
|
||||
/* 0x2E */ u8 m2E;
|
||||
/* 0x2F */ u8 m2F;
|
||||
}; // size = 0x30
|
||||
|
||||
class himo3_class : public fopAc_ac_c {
|
||||
public:
|
||||
@@ -14,7 +34,66 @@ public:
|
||||
void setActorHang(cXyz, short);
|
||||
|
||||
public:
|
||||
/* Place member variables here */
|
||||
};
|
||||
/* 0x0290 */ request_of_phase_process_class mPhase;
|
||||
/* 0x0298 */ u8 m0298;
|
||||
/* 0x0299 */ u8 m0299;
|
||||
/* 0x029A */ u8 m029A;
|
||||
/* 0x029B */ s8 m029B;
|
||||
/* 0x029C */ s8 m029C;
|
||||
/* 0x029D */ s8 m029D;
|
||||
/* 0x02A0 */ dPath* ppd;
|
||||
/* 0x02A4 */ s8 m02A4;
|
||||
/* 0x02A8 */ cXyz m02A8;
|
||||
/* 0x02B4 */ s16 m02B4[3];
|
||||
/* 0x02BA */ s16 m02BA;
|
||||
/* 0x02BC */ s16 m02BC;
|
||||
/* 0x02BE */ u8 m02BE;
|
||||
/* 0x02C0 */ himo3_s m02C0[200];
|
||||
/* 0x1580 */ mDoExt_3DlineMat1_c mLineMat;
|
||||
/* 0x15BC */ u8 m15BC[0x15C0 - 0x15BC];
|
||||
/* 0x15C0 */ s32 m15C0;
|
||||
/* 0x15C4 */ cXyz m15C4;
|
||||
/* 0x15D0 */ f32 m15D0;
|
||||
/* 0x15D4 */ f32 m15D4;
|
||||
/* 0x15D8 */ f32 m15D8;
|
||||
/* 0x15DC */ f32 m15DC;
|
||||
/* 0x15E0 */ f32 m15E0;
|
||||
/* 0x15E4 */ f32 m15E4;
|
||||
/* 0x15E8 */ f32 m15E8;
|
||||
/* 0x15EC */ u8 m15EC[0x15F0 - 0x15EC];
|
||||
/* 0x15F0 */ f32 m15F0;
|
||||
/* 0x15F4 */ f32 m15F4;
|
||||
/* 0x15F8 */ s16 m15F8;
|
||||
/* 0x15FA */ s16 m15FA;
|
||||
/* 0x15FC */ f32 m15FC;
|
||||
/* 0x1600 */ LIGHT_INFLUENCE m1600;
|
||||
/* 0x1620 */ f32 m1620;
|
||||
/* 0x1624 */ cXyz m1624;
|
||||
/* 0x1630 */ cXyz m1630;
|
||||
/* 0x163C */ dBgS_AcchCir mAcchCir;
|
||||
/* 0x167C */ dBgS_ObjAcch mAcch;
|
||||
/* 0x1840 */ Mtx m1840;
|
||||
/* 0x1870 */ f32 m1870;
|
||||
/* 0x1874 */ u8 m1874[0x187C - 0x1878];
|
||||
/* 0x1878 */ f32 m1878;
|
||||
/* 0x187C */ f32 m187C;
|
||||
/* 0x1880 */ J3DModel* mpModel;
|
||||
/* 0x1884 */ dCcD_Stts mStts;
|
||||
/* 0x18C0 */ dCcD_Sph mSphs[5];
|
||||
/* 0x1E9C */ dCcD_Sph mSph;
|
||||
/* 0x1FC8 */ dCcD_Cyl mCyl;
|
||||
/* 0x20F8 */ f32 m20F8;
|
||||
#if VERSION == VERSION_DEMO
|
||||
/* 0x20FC */ JPABaseEmitter* demo_m20FC;
|
||||
#endif
|
||||
/* 0x20FC */ dPa_followEcallBack m20FC;
|
||||
/* 0x2110 */ u8 m2110;
|
||||
/* 0x2111 */ u8 m2111;
|
||||
/* 0x2114 */ h3_ga_s m2114[1];
|
||||
/* 0x2144 */ J3DLightObj m2144;
|
||||
/* 0x21B8 */ u8 m2178[0x21F4 - 0x21B8];
|
||||
/* 0x21F4 */ cXyz m21F4;
|
||||
/* 0x2200 */ s16 m2200;
|
||||
}; // size = 0x2204
|
||||
|
||||
#endif /* D_A_HIMO3_H */
|
||||
|
||||
@@ -9,20 +9,20 @@
|
||||
|
||||
class mDoExt_McaMorf;
|
||||
|
||||
class kamome_class : public fopAc_ac_c {
|
||||
public:
|
||||
/* 0x290 */ request_of_phase_process_class mPhsKamome;
|
||||
struct kamome_class {
|
||||
/* 0x000 */ fopAc_ac_c actor;
|
||||
/* 0x290 */ request_of_phase_process_class mPhase;
|
||||
/* 0x298 */ mDoExt_McaMorf* mpMorf;
|
||||
/* 0x29C */ u32 mShadowId;
|
||||
/* 0x2A0 */ u8 mType;
|
||||
/* 0x2A1 */ u8 mKoMaxCount;
|
||||
/* 0x2A2 */ u8 mPathIdx;
|
||||
/* 0x2A3 */ u8 mSwitchNoPrm;
|
||||
/* 0x2A4 */ int mGlobalTimer;
|
||||
/* 0x2A8 */ u8 mAnimState;
|
||||
/* 0x2A9 */ u8 mMoveState;
|
||||
/* 0x2A4 */ s32 mGlobalTimer;
|
||||
/* 0x2A8 */ s8 mAnimState;
|
||||
/* 0x2A9 */ s8 mMoveState;
|
||||
/* 0x2AA */ u8 mSwitchNo;
|
||||
/* 0x2AB */ u8 m2AB;
|
||||
/* 0x2AB */ s8 m2AB;
|
||||
/* 0x2AC */ s16 mJointRotY;
|
||||
/* 0x2AE */ s16 mJointRotZ;
|
||||
/* 0x2B0 */ s16 mJointRotYTarget;
|
||||
@@ -30,7 +30,7 @@ public:
|
||||
/* 0x2B4 */ s16 m2B4;
|
||||
/* 0x2B6 */ u8 m2B6[0x2B8 - 0x2B6];
|
||||
/* 0x2B8 */ f32 m2B8;
|
||||
/* 0x2BC */ u8 mbNoDraw;
|
||||
/* 0x2BC */ s8 mbNoDraw;
|
||||
/* 0x2BD */ u8 m2BD[0x2C0 - 0x2BD];
|
||||
/* 0x2C0 */ cXyz mTargetPos;
|
||||
/* 0x2CC */ f32 mVelocityFwdTarget;
|
||||
@@ -38,20 +38,15 @@ public:
|
||||
/* 0x2D4 */ f32 mRotVelFade;
|
||||
/* 0x2D8 */ f32 mRotVel;
|
||||
/* 0x2DC */ u8 m2DC[0x2E0 - 0x2DC];
|
||||
/* 0x2E0 */ s16 mTimer0;
|
||||
/* 0x2E2 */ s16 mTimer1;
|
||||
/* 0x2E4 */ s16 mTimer2;
|
||||
/* 0x2E6 */ s16 mTimer3;
|
||||
/* 0x2E8 */ s16 mTimer4;
|
||||
/* 0x2EA */ s16 mTimer5;
|
||||
/* 0x2E0 */ s16 mTimers[6];
|
||||
/* 0x2EC */ s16 mRiseTimer;
|
||||
/* 0x2EE */ u8 m2EE[0x2F0 - 0x2EE];
|
||||
/* 0x2F0 */ f32 mScale;
|
||||
/* 0x2F4 */ fpc_ProcID mEsaProcID;
|
||||
/* 0x2F8 */ fopAc_ac_c* mpTargetActor;
|
||||
/* 0x2FC */ s16 m2FC;
|
||||
/* 0x2FE */ u8 mbUsePathMovement;
|
||||
/* 0x2FF */ u8 mCurPointIdx;
|
||||
/* 0x2FE */ s8 mbUsePathMovement;
|
||||
/* 0x2FF */ s8 mCurPointIdx;
|
||||
/* 0x300 */ s8 mPathIdxIncr;
|
||||
/* 0x301 */ u8 m301[0x304 - 0x301];
|
||||
/* 0x304 */ dPath* mpPath;
|
||||
@@ -61,8 +56,8 @@ public:
|
||||
/* 0x30C */ s16 mRotY;
|
||||
/* 0x30E */ u8 m30E[0x31C - 0x30E];
|
||||
/* 0x31C */ dBgS_AcchCir mAcchCir;
|
||||
/* 0x35C */ dBgS_Acch mAcch;
|
||||
/* 0x520 */ dCcD_Stts mCcD;
|
||||
/* 0x35C */ dBgS_ObjAcch mAcch;
|
||||
/* 0x520 */ dCcD_Stts mStts;
|
||||
/* 0x55C */ dCcD_Sph mSph;
|
||||
/* 0x688 */ u8 m688;
|
||||
/* 0x689 */ u8 m689[0x68C - 0x689];
|
||||
|
||||
@@ -2,11 +2,40 @@
|
||||
#define D_A_KAMOME2_H
|
||||
|
||||
#include "f_op/f_op_actor.h"
|
||||
#include "d/d_bg_s_acch.h"
|
||||
#include "d/d_cc_d.h"
|
||||
|
||||
class kamome2_class : public fopAc_ac_c {
|
||||
public:
|
||||
/* Place member variables here */
|
||||
/* 0x290 */ u8 m290[0x690 - 0x290];
|
||||
class mDoExt_McaMorf;
|
||||
|
||||
struct kamome2_class {
|
||||
/* 0x000 */ fopAc_ac_c actor;
|
||||
/* 0x290 */ request_of_phase_process_class mPhase;
|
||||
/* 0x298 */ mDoExt_McaMorf* mpMorf;
|
||||
/* 0x29C */ J3DModel* mpModel;
|
||||
/* 0x2A0 */ s32 m2A0;
|
||||
/* 0x2A4 */ u8 m2A4;
|
||||
/* 0x2A8 */ s32 m2A8;
|
||||
/* 0x2AC */ s8 m2AC;
|
||||
/* 0x2AD */ u8 m2AD[0x2BC - 0x2AD];
|
||||
/* 0x2BC */ f32 m2BC;
|
||||
/* 0x2C0 */ f32 m2C0;
|
||||
/* 0x2C4 */ u8 m2C4[0x2D0 - 0x2C4];
|
||||
/* 0x2D0 */ s16 m2D0[5];
|
||||
/* 0x2DA */ s16 m2DA;
|
||||
/* 0x2DC */ s16 m2DC;
|
||||
/* 0x2DE */ u8 m2DE[0x2EC - 0x2DE];
|
||||
/* 0x2EC */ u8 m2EC;
|
||||
/* 0x2F0 */ cXyz m2F0;
|
||||
/* 0x2FC */ cXyz m2FC;
|
||||
/* 0x308 */ s16 m308;
|
||||
/* 0x30A */ u8 m30A[0x314 - 0x30A];
|
||||
/* 0x314 */ f32 m314;
|
||||
/* 0x318 */ u8 m318[0x320 - 0x318];
|
||||
/* 0x320 */ dBgS_AcchCir mAcchCir;
|
||||
/* 0x360 */ dBgS_ObjAcch mAcch;
|
||||
/* 0x524 */ dCcD_Stts mStts;
|
||||
/* 0x560 */ dCcD_Sph mSph;
|
||||
/* 0x68C */ bool m68C;
|
||||
}; // Size: 0x690
|
||||
|
||||
#endif /* D_A_KAMOME2_H */
|
||||
|
||||
@@ -256,7 +256,7 @@ public:
|
||||
|
||||
// TODO:
|
||||
void LockEdge() {}
|
||||
void chkEnemySound() {}
|
||||
bool chkEnemySound() { return chkFlag(AttnFlag_00000100); }
|
||||
void LookRequest(fopAc_ac_c* reqActor, f32 horizontalDist, f32 upDist, f32 downDist, s16 angle, int param_5) {
|
||||
mLook[0].request(reqActor, horizontalDist, upDist, downDist, angle, param_5);
|
||||
}
|
||||
|
||||
@@ -17,7 +17,6 @@
|
||||
#include "d/d_vibration.h"
|
||||
#include "d/d_demo.h"
|
||||
#include "d/d_timer.h"
|
||||
#include "SSystem/SComponent/c_data_tbl.h"
|
||||
|
||||
#include "d/res/res_always.h" // IWYU pragma: export
|
||||
|
||||
@@ -3968,7 +3967,7 @@ inline fopAc_ac_c* dComIfGp_att_getZHint() {
|
||||
return dComIfGp_getAttention().getZHintTarget();
|
||||
}
|
||||
|
||||
inline void dComIfGp_att_chkEnemySound() {
|
||||
inline bool dComIfGp_att_chkEnemySound() {
|
||||
return dComIfGp_getAttention().chkEnemySound();
|
||||
}
|
||||
|
||||
|
||||
@@ -426,6 +426,7 @@ void dKy_Sound_init();
|
||||
void dKy_change_colset(u8 param_0, u8 param_1, f32 param_2);
|
||||
void dKy_change_colpat(u8 param_0);
|
||||
void dKy_custom_colset(u8 param_0, u8 param_1, f32 i_blend);
|
||||
void dKy_custom_timeset(f32 i_speed);
|
||||
void dKy_pship_existense_set();
|
||||
void dKy_pship_existense_cut();
|
||||
u8 dKy_pship_existense_chk();
|
||||
|
||||
@@ -596,6 +596,7 @@ extern dMeter_msg_HIO_c g_msgHIO;
|
||||
extern dMeter_message_HIO_c g_messageHIO;
|
||||
|
||||
void dMeter_mtrShow();
|
||||
void dMeter_mtrHide();
|
||||
void dMenu_setPushMenuButton(u8);
|
||||
|
||||
#endif /* D_METER_H */
|
||||
|
||||
+4
-3
@@ -181,7 +181,7 @@ enum {
|
||||
/* 0xAD */ DSNAP_TYPE_UNKAD,
|
||||
/* 0xAE */ DSNAP_TYPE_UNKAE,
|
||||
/* 0xAF */ DSNAP_TYPE_UNKAF,
|
||||
/* 0xB0 */ DSNAP_TYPE_UNKB0,
|
||||
/* 0xB0 */ DSNAP_TYPE_BB,
|
||||
/* 0xB1 */ DSNAP_TYPE_UNKB1,
|
||||
/* 0xB2 */ DSNAP_TYPE_UNKB2,
|
||||
/* 0xB3 */ DSNAP_TYPE_KS,
|
||||
@@ -204,7 +204,7 @@ enum {
|
||||
/* 0xC4 */ DSNAP_TYPE_UNKC4,
|
||||
/* 0xC5 */ DSNAP_TYPE_UNKC5,
|
||||
/* 0xC6 */ DSNAP_TYPE_UNKC6,
|
||||
/* 0xC7 */ DSNAP_TYPE_UNKC7,
|
||||
/* 0xC7 */ DSNAP_TYPE_BTD,
|
||||
/* 0xC8 */ DSNAP_TYPE_UNKC8,
|
||||
/* 0xC9 */ DSNAP_TYPE_BST,
|
||||
/* 0xCA */ DSNAP_TYPE_UNKCA,
|
||||
@@ -273,13 +273,14 @@ class dSnap_RegistObjElm {
|
||||
public:
|
||||
/* 0x00 */ dSnap_Obj m_obj;
|
||||
/* 0x34 */ f32 field_0x34;
|
||||
/* 0x38 */ /* vtable */
|
||||
|
||||
public:
|
||||
dSnap_RegistObjElm() {}
|
||||
virtual ~dSnap_RegistObjElm() {}
|
||||
void Init();
|
||||
void Regist(const dSnap_Obj&);
|
||||
};
|
||||
}; // Size: 0x3C
|
||||
|
||||
class dSnap_packet : public J3DPacket {
|
||||
public:
|
||||
|
||||
@@ -590,6 +590,8 @@ fpc_ProcID fopAcM_createRaceItem(cXyz* p_pos, int i_itemNo, int i_itemBitNo, csX
|
||||
|
||||
fpc_ProcID fopAcM_createIball(cXyz* p_pos, int itemTableIdx, int roomNo, csXyz* p_angle, int itemStealNum);
|
||||
|
||||
void fopAcM_createWarpFlower(cXyz* p_pos, csXyz* p_angle, int i_roomNo, u8 param_4);
|
||||
|
||||
fpc_ProcID fopAcM_createDemoItem(cXyz* p_pos, int itemNo, int itemBitNo, csXyz* p_angle,
|
||||
int roomNo, cXyz* scale, u8 argFlag);
|
||||
|
||||
|
||||
@@ -616,9 +616,9 @@ static BOOL daBb_Draw(bb_class* i_this) {
|
||||
daBb_shadowDraw(i_this);
|
||||
tail_draw(i_this);
|
||||
#if VERSION == VERSION_DEMO
|
||||
dSnap_RegistFig(DSNAP_TYPE_UNKB0, &i_this->actor, 1.0f, 1.0f, 1.0f);
|
||||
dSnap_RegistFig(DSNAP_TYPE_BB, &i_this->actor, 1.0f, 1.0f, 1.0f);
|
||||
#else
|
||||
dSnap_RegistFig(DSNAP_TYPE_UNKB0, &i_this->actor, i_this->actor.eyePos, i_this->actor.shape_angle.y, 1.0f, 1.0f, 1.0f);
|
||||
dSnap_RegistFig(DSNAP_TYPE_BB, &i_this->actor, i_this->actor.eyePos, i_this->actor.shape_angle.y, 1.0f, 1.0f, 1.0f);
|
||||
#endif
|
||||
return TRUE;
|
||||
}
|
||||
@@ -744,7 +744,7 @@ void bb_path_move(bb_class* i_this) {
|
||||
i_this->unk_35E = i_this->ppd->m_num - 2;
|
||||
}
|
||||
|
||||
if (i_this->ppd->m_nextID + 0 != 0xFFFF) {
|
||||
if ((s32)i_this->ppd->m_nextID != 0xFFFF) {
|
||||
i_this->ppd = dPath_GetRoomPath(i_this->ppd->m_nextID, fopAcM_GetRoomNo(a_this));
|
||||
JUT_ASSERT(DEMO_SELECT(1476, 1479), i_this->ppd != NULL);
|
||||
}
|
||||
|
||||
@@ -49,7 +49,7 @@ static BOOL daBita_Draw(bita_class* i_this) {
|
||||
/* 0000018C-000002D0 .text mode_normal__FP10bita_class */
|
||||
static void mode_normal(bita_class* i_this) {
|
||||
if (btd != NULL) {
|
||||
if (btd->field_0x6e16 >= 100) {
|
||||
if (btd->m6E16 >= 100) {
|
||||
cXyz delta = dComIfGp_getCamera(0)->mLookat.mEye - i_this->current.pos;
|
||||
if (delta.abs() < 1500.0f) {
|
||||
fopAcM_delete(i_this);
|
||||
|
||||
@@ -1073,7 +1073,7 @@ static void jyunkai(bk_class* i_this) {
|
||||
i_this->m1217 = -1;
|
||||
i_this->m1216 = i_this->ppd->m_num - 2;
|
||||
}
|
||||
if ((i_this->ppd->m_nextID & 0xFFFF) != 0xFFFF) {
|
||||
if ((s32)i_this->ppd->m_nextID != 0xFFFF) {
|
||||
i_this->ppd = dPath_GetRoomPath(i_this->ppd->m_nextID, fopAcM_GetRoomNo(i_this));
|
||||
JUT_ASSERT(VERSION_SELECT(2907, 2907, 2924, 2924), i_this->ppd != NULL);
|
||||
}
|
||||
|
||||
+2649
-84
File diff suppressed because it is too large
Load Diff
@@ -293,12 +293,12 @@ void iwa_move(dr2_class* i_this) {
|
||||
i_this->unk_4A8.y += a_this->speed.y;
|
||||
a_this->speed.y -= REG0_F(2) + 10.0f;
|
||||
|
||||
f32 fVar11 = btd->field_0x320.y + REG0_F(3);
|
||||
f32 fVar11 = btd->m02FC[3].y + REG0_F(3);
|
||||
if (i_this->unk_4A8.y < fVar11) {
|
||||
i_this->unk_4A8.y = fVar11;
|
||||
i_this->unk_4BA = 2;
|
||||
i_this->unk_400[0] = 0x32;
|
||||
btd->field_0x2F6 = true;
|
||||
btd->m02F6 = true;
|
||||
fopAcM_seStartCurrent(a_this, JA_SE_CM_BTD_ROCK_HIT, 0);
|
||||
dComIfGp_getVibration().StartShock(REG0_S(2) + 5, -0x21, cXyz(0.0f, 1.0f, 0.0f));
|
||||
}
|
||||
@@ -308,19 +308,19 @@ void iwa_move(dr2_class* i_this) {
|
||||
i_this->unk_40A = 3;
|
||||
cLib_addCalc2(&i_this->unk_414, 2000.0f, 0.5f, 100.0f);
|
||||
|
||||
i_this->unk_4A8.y = btd->field_0x320.y + REG0_F(3);
|
||||
i_this->unk_4A8.y = btd->m02FC[3].y + REG0_F(3);
|
||||
i_this->unk_4B4.y = i_this->unk_514->current.angle.y;
|
||||
|
||||
if (btd->field_0x320.y < REG0_F(6) + 100.0f) {
|
||||
i_this->unk_4C0 = (REG0_F(6) + 100.0f) - btd->field_0x320.y;
|
||||
if (btd->m02FC[3].y < REG0_F(6) + 100.0f) {
|
||||
i_this->unk_4C0 = (REG0_F(6) + 100.0f) - btd->m02FC[3].y;
|
||||
i_this->unk_4C0 *= REG0_F(7) + 0.3f;
|
||||
}
|
||||
|
||||
sp4C = btd->field_0x320 - btd->field_0x32C;
|
||||
sp4C = btd->m02FC[3] - btd->m02FC[4];
|
||||
sp4C.y += REG0_F(5) + -330.0f + i_this->unk_4C0;
|
||||
cLib_addCalcAngleS2(&i_this->unk_4B4.x, -cM_atan2s(sp4C.y, std::sqrtf(sp4C.x * sp4C.x + sp4C.z * sp4C.z)), 1, 0x200);
|
||||
|
||||
if (!btd->field_0x2F6) {
|
||||
if (!btd->m02F6) {
|
||||
i_this->unk_4BA = 3;
|
||||
#if VERSION == VERSION_DEMO
|
||||
i_this->unk_4D4_demo =
|
||||
@@ -331,7 +331,7 @@ void iwa_move(dr2_class* i_this) {
|
||||
break;
|
||||
|
||||
case 3:
|
||||
i_this->unk_4A8.y = btd->field_0x360 + 100.0f + REG0_F(9);
|
||||
i_this->unk_4A8.y = btd->m02FC[8].y + 100.0f + REG0_F(9);
|
||||
cLib_addCalcAngleS2(&i_this->unk_4B4.x, 0, 1, 0x100);
|
||||
cLib_addCalcAngleS2(&i_this->unk_4B4.y, 0, 1, 0x100);
|
||||
|
||||
|
||||
+10
-10
@@ -994,7 +994,7 @@ void new_himo2_move(himo2_class* param_1) {
|
||||
param_1->m24D9 = 0xFF;
|
||||
param_1->m24D8 = 1;
|
||||
if (btd != 0) {
|
||||
fopAcM_OffStatus(btd, 0x4000);
|
||||
fopAcM_OffStatus(btd, fopAcStts_UNK4000_e);
|
||||
}
|
||||
} else if ((param_1->m02A2 == 0) && param_1->m2050.ChkAtHit()) {
|
||||
param_1->m02DC = 9;
|
||||
@@ -1314,7 +1314,7 @@ void new_himo2_move(himo2_class* param_1) {
|
||||
cLib_addCalc2(¶m_1->m24E8.y, param_1->m217C->home.pos.y + 2500.0f + REG0_F(14), 0.3f, 100.0f);
|
||||
cLib_addCalc2(¶m_1->m24F4, REG0_F(13) + 80.0f, 1.0f, 2.0f);
|
||||
if (param_1->m029C < 30) {
|
||||
btd->field_0x6e15 = 0xB4;
|
||||
btd->m6E15 = 0xB4;
|
||||
}
|
||||
if (param_1->m029C == 30) {
|
||||
fopAcM_seStartCurrent((fopAc_ac_c*)dr, JA_SE_CM_BTD_ROPE_SET, 0);
|
||||
@@ -1325,7 +1325,7 @@ void new_himo2_move(himo2_class* param_1) {
|
||||
if ((param_1->m029C != 0) || (REG0_S(8) != 0)) {
|
||||
break;
|
||||
}
|
||||
btd->field_0x6e15 = 1;
|
||||
btd->m6E15 = 1;
|
||||
param_1->m24D9 = 4;
|
||||
if ((dComIfGp_getStartStageName()[0] == 'X') || (dComIfGs_isEventBit(0x420))) {
|
||||
param_1->m029C = 0;
|
||||
@@ -1494,17 +1494,17 @@ void new_himo2_move(himo2_class* param_1) {
|
||||
cLib_addCalc2(¶m_1->m24DC.y, 0.0f, 0.5f, 100.0f);
|
||||
if (param_1->m029C == (s16)(REG0_S(4) + 0x6E)) {
|
||||
param_1->m2520 = REG0_F(11) + 50.0f;
|
||||
btd->field_0x6e15 = 0xB4;
|
||||
btd->m6E15 = 0xB4;
|
||||
}
|
||||
if (param_1->m029C < 81) {
|
||||
cLib_addCalc2(¶m_1->m24F4, REG0_F(14) + 40.0f, 0.5f, 2.0f);
|
||||
}
|
||||
}
|
||||
if (param_1->m029C == 2) {
|
||||
btd->field_0x6e15 = 1;
|
||||
btd->m6E15 = 1;
|
||||
}
|
||||
if (param_1->m029C == 0) {
|
||||
if (btd->field_0x6190 >= 3) {
|
||||
if (btd->m6190 >= 3) {
|
||||
param_1->m24D9 = 9;
|
||||
param_1->m029C = 220;
|
||||
} else {
|
||||
@@ -1515,7 +1515,7 @@ void new_himo2_move(himo2_class* param_1) {
|
||||
camera->mCamera.Reset(param_1->eyePos, local_164);
|
||||
camera->mCamera.Start();
|
||||
camera->mCamera.SetTrimSize(0);
|
||||
fopAcM_OffStatus(btd, 0x4000);
|
||||
fopAcM_OffStatus(btd, fopAcStts_UNK4000_e);
|
||||
dComIfGp_event_reset();
|
||||
}
|
||||
dr->unk_40A = 0;
|
||||
@@ -1534,10 +1534,10 @@ void new_himo2_move(himo2_class* param_1) {
|
||||
cLib_addCalc2(¶m_1->m24DC.y, local_11c.y, 0.1f, 50.0f);
|
||||
cLib_addCalc2(¶m_1->m24DC.z, local_11c.z, 0.1f, 50.0f);
|
||||
if (param_1->m029C == 99) {
|
||||
btd->field_0x6e15 = 0xB4;
|
||||
btd->m6E15 = 0xB4;
|
||||
}
|
||||
if (param_1->m029C == 40) {
|
||||
btd->field_0x6e15 = 1;
|
||||
btd->m6E15 = 1;
|
||||
}
|
||||
if (param_1->m029C == 0) {
|
||||
param_1->m24D9 = 0;
|
||||
@@ -1547,7 +1547,7 @@ void new_himo2_move(himo2_class* param_1) {
|
||||
camera->mCamera.Reset(param_1->eyePos, local_170);
|
||||
camera->mCamera.Start();
|
||||
camera->mCamera.SetTrimSize(0);
|
||||
fopAcM_OffStatus(btd, 0x4000);
|
||||
fopAcM_OffStatus(btd, fopAcStts_UNK4000_e);
|
||||
dComIfGp_event_reset();
|
||||
}
|
||||
break;
|
||||
|
||||
+698
-21
@@ -5,62 +5,648 @@
|
||||
|
||||
#include "d/dolzel_rel.h" // IWYU pragma: keep
|
||||
#include "d/actor/d_a_himo3.h"
|
||||
#include "d/actor/d_a_player.h"
|
||||
#include "d/res/res_always.h"
|
||||
#include "d/res/res_bgn.h"
|
||||
#include "d/res/res_link.h"
|
||||
#include "d/res/res_himo3.h"
|
||||
#include "d/d_s_play.h"
|
||||
#include "d/d_procname.h"
|
||||
#include "d/d_priority.h"
|
||||
#include "d/d_cc_d.h"
|
||||
#include "d/d_com_inf_game.h"
|
||||
#include "d/d_kankyo_wether.h"
|
||||
#include "f_op/f_op_actor_mng.h"
|
||||
|
||||
class himo3HIO_c : public JORReflexible {
|
||||
public:
|
||||
himo3HIO_c() {
|
||||
m06 = 0;
|
||||
m08 = 0.75f;
|
||||
m0C = 0.5f;
|
||||
m10 = 0xEB;
|
||||
m12 = 0x7D;
|
||||
m14 = 0;
|
||||
m18 = 5.0f;
|
||||
}
|
||||
virtual ~himo3HIO_c() {}
|
||||
|
||||
void genMessage(JORMContext*);
|
||||
|
||||
public:
|
||||
/* 0x04 */ s8 mNo;
|
||||
/* 0x06 */ s16 m06;
|
||||
/* 0x08 */ f32 m08;
|
||||
/* 0x0C */ f32 m0C;
|
||||
/* 0x10 */ s16 m10;
|
||||
/* 0x10 */ s16 m12;
|
||||
/* 0x10 */ s16 m14;
|
||||
/* 0x18 */ f32 m18;
|
||||
}; // size = 0x1C
|
||||
|
||||
static f32 HIMO3_SCALE;
|
||||
static bool hio_set;
|
||||
static himo3HIO_c l_HIO;
|
||||
|
||||
/* 000000EC-00000C58 .text himo3_control__FP11himo3_classP7himo3_s */
|
||||
void himo3_control(himo3_class*, himo3_s*) {
|
||||
/* Nonmatching */
|
||||
void himo3_control(himo3_class* i_this, himo3_s* arg1) {
|
||||
daPy_py_c* player = (daPy_py_c*)dComIfGp_getPlayer(0);
|
||||
s32 i = 1;
|
||||
cXyz spAC;
|
||||
cXyz spA0;
|
||||
cXyz sp94;
|
||||
f32 unaff_f28;
|
||||
himo3_s* pcVar11 = &arg1[1];
|
||||
|
||||
if (i_this->m02BE != 0) {
|
||||
s16 target;
|
||||
if (i_this->m02BE == 1) {
|
||||
if (player->getRopeGrabRightHand()) {
|
||||
spAC = player->getRightHandPos();
|
||||
} else {
|
||||
spAC = player->getLeftHandPos();
|
||||
}
|
||||
target = player->shape_angle.y;
|
||||
} else {
|
||||
spAC = i_this->m21F4;
|
||||
target = i_this->m2200;
|
||||
}
|
||||
|
||||
if (i_this->m15C4.y == -23535.0f) {
|
||||
i_this->m15C4 = spAC;
|
||||
}
|
||||
|
||||
cXyz sp88 = spAC - i_this->current.pos;
|
||||
f32 sqrt = sp88.abs();
|
||||
s32 iVar8 = sqrt / HIMO3_SCALE;
|
||||
unaff_f28 = sqrt / HIMO3_SCALE - iVar8;
|
||||
if (iVar8 >= i_this->m15C0 - 1) {
|
||||
iVar8 = i_this->m15C0 - 1;
|
||||
}
|
||||
|
||||
if (iVar8 > 1) {
|
||||
for (i = 1; i < iVar8; i++, pcVar11++) {
|
||||
f32 fVar12 = (f32)i / iVar8;
|
||||
pcVar11->m00.x = i_this->current.pos.x + sp88.x * fVar12;
|
||||
pcVar11->m00.y = i_this->current.pos.y + sp88.y * fVar12;
|
||||
pcVar11->m00.z = i_this->current.pos.z + sp88.z * fVar12;
|
||||
}
|
||||
}
|
||||
|
||||
cLib_addCalcAngleS2(&i_this->current.angle.y, target, 2, 0x2000);
|
||||
|
||||
spA0 = spAC - i_this->m15C4;
|
||||
cMtx_YrotS(*calc_mtx, -target);
|
||||
MtxPosition(&spA0, &sp94);
|
||||
f32 tmp1 = sp94.z * DEMO_SELECT(REG0_F(5) + -10.0f, -10.0f);
|
||||
f32 tmp2 = DEMO_SELECT(REG0_F(6) + 10.0f, 10.0f);
|
||||
cLib_addCalc2(&i_this->m15D0, tmp1, 0.1f, tmp2 * i_this->m15E4);
|
||||
|
||||
tmp1 = sp94.x * DEMO_SELECT(REG0_F(5) + -10.0f, -10.0f);
|
||||
tmp2 = DEMO_SELECT(REG0_F(6) + 10.0f, 10.0f);
|
||||
cLib_addCalc2(&i_this->m15D8, tmp1, 0.1f, tmp2 * i_this->m15E4);
|
||||
|
||||
if (std::fabsf(sp94.z) > 1.0f || std::fabsf(sp94.x) > 1.0f) {
|
||||
cLib_addCalc2(&i_this->m15E4, 1.0f, 1.0f, 0.05f);
|
||||
} else {
|
||||
cLib_addCalc2(&i_this->m15E4, 0.1f, 1.0f, 0.05f);
|
||||
}
|
||||
|
||||
if (fopAcM_GetParam(i_this) == 3) {
|
||||
i_this->m02BE = 0;
|
||||
i_this->m02BC = 0x1e;
|
||||
i_this->m15E0 = 0.0f;
|
||||
}
|
||||
i_this->m15C4 = spAC;
|
||||
} else {
|
||||
i_this->m15D0 += i_this->m15D4;
|
||||
f32 tmp = i_this->m15D0 * DEMO_SELECT(REG0_F(7) + -0.003f, -0.003f);
|
||||
i_this->m15D4 += tmp;
|
||||
cLib_addCalc0(&i_this->m15D0, 0.05f, DEMO_SELECT(REG0_F(9) + 1.0f, 1.0f));
|
||||
i_this->m15D8 += i_this->m15DC;
|
||||
tmp = i_this->m15D8 * DEMO_SELECT(REG0_F(7) + -0.003f, -0.003f);
|
||||
i_this->m15DC += tmp;
|
||||
cLib_addCalc0(&i_this->m15D8, 0.05f, DEMO_SELECT(REG0_F(9) + 1.0f, 1.0f));
|
||||
|
||||
if (fopAcM_GetParam(i_this) == 1) {
|
||||
i_this->m02BE = 1;
|
||||
i_this->m15E0 = 1.0f;
|
||||
if (strcmp(dComIfGp_getStartStageName(), "majroom") == 0 || strcmp(dComIfGp_getStartStageName(), "Majroom") == 0 ||
|
||||
strcmp(dComIfGp_getStartStageName(), "MajyuE") == 0)
|
||||
{
|
||||
dComIfGs_onEventBit(0x402);
|
||||
}
|
||||
} else if (fopAcM_GetParam(i_this) == 2) {
|
||||
i_this->m02BE = 2;
|
||||
i_this->m15E0 = 1.0f;
|
||||
}
|
||||
i_this->m15C4.y = -23535.0f;
|
||||
}
|
||||
|
||||
cMtx_YrotS(*calc_mtx, i_this->current.angle.y);
|
||||
spA0.x = i_this->m15D8;
|
||||
spA0.y = 0.0f;
|
||||
spA0.z = i_this->m15D0;
|
||||
cXyz sp7C;
|
||||
MtxPosition(&spA0, &sp7C);
|
||||
cXyz* pcVar7 = dKyw_get_wind_vec();
|
||||
s16 iVar8 = cM_atan2s(pcVar7->x, pcVar7->z);
|
||||
f32* pfVar9 = dKyw_get_wind_power();
|
||||
|
||||
if (i_this->m02BE != 0) {
|
||||
cLib_addCalc2(&i_this->m15E8, *pfVar9 * 0.5f, 1.0f, 0.05f);
|
||||
} else {
|
||||
cLib_addCalc2(&i_this->m15E8, *pfVar9, 1.0f, 0.001f);
|
||||
}
|
||||
|
||||
if (i_this->m15F0 > 0.01f) {
|
||||
i_this->m15FA++;
|
||||
} else {
|
||||
i_this->m15FA = 0;
|
||||
}
|
||||
|
||||
cLib_addCalc2(&i_this->m15F0, i_this->m15F4, 0.2f, DEMO_SELECT(REG0_F(2) + 0.05f, 0.05f));
|
||||
cLib_addCalc0(&i_this->m15F4, 1.0f, DEMO_SELECT(REG0_F(3) + 0.005f, 0.005f));
|
||||
cMtx_YrotS(*calc_mtx, i_this->m15F8);
|
||||
spA0.x = 0.0f;
|
||||
spA0.y = 0.0f;
|
||||
spA0.z = cM_ssin(i_this->m15FA * DEMO_SELECT(REG0_S(5) + 500, 500)) * DEMO_SELECT(REG0_F(4) + 100.0f, 100.0f) * i_this->m15F0;
|
||||
cXyz sp70;
|
||||
MtxPosition(&spA0, &sp70);
|
||||
cMtx_YrotS(*calc_mtx, iVar8);
|
||||
spA0.x = 0.0f;
|
||||
spA0.y = 0.0f;
|
||||
spA0.z = cM_ssin(i_this->m02BA * DEMO_SELECT(REG0_S(5) + 500, 500)) * DEMO_SELECT(REG0_F(4) + 100.0f, 100.0f) * i_this->m15E8;
|
||||
cXyz sp64;
|
||||
MtxPosition(&spA0, &sp64);
|
||||
sp64 += sp70;
|
||||
f32 tmpReg = DEMO_SELECT(REG0_F(1), 0.0f);
|
||||
spA0.x = 0.0f;
|
||||
spA0.y = 0.0f;
|
||||
f32 tmp200 = DEMO_SELECT(REG0_F(8) + -200.0f, -200.0f);
|
||||
|
||||
s32 j = 0;
|
||||
|
||||
f32 fVar12;
|
||||
if ((i_this->m02BE == 0) && (i_this->m02BC == 0)) {
|
||||
fVar12 = DEMO_SELECT(REG0_F(2) + 30.0f + 20.0f - 20.0f, 30.0f);
|
||||
} else {
|
||||
fVar12 = -200.0f;
|
||||
}
|
||||
|
||||
u8 bVar4 = 0;
|
||||
s16 unaff_r24;
|
||||
s16 unaff_r23;
|
||||
|
||||
for (; i < i_this->m15C0; i++, pcVar11++) {
|
||||
cXyz sp60;
|
||||
sp60.z = 0.0f;
|
||||
sp60.y = 0.0f;
|
||||
sp60.x = 0.0f;
|
||||
|
||||
f32 fVar1 = pcVar11->m00.x - pcVar11[-1].m00.x + pcVar11->m0C.x + sp7C.x + sp64.x + sp60.x;
|
||||
f32 fVar2 = pcVar11->m00.y - pcVar11[-1].m00.y + tmp200 + pcVar11->m0C.y + sp60.y;
|
||||
f32 fVar3 = pcVar11->m00.z - pcVar11[-1].m00.z + pcVar11->m0C.z + sp7C.z + sp64.z + sp60.z;
|
||||
|
||||
unaff_r24 = -cM_atan2s(fVar2, fVar3);
|
||||
unaff_r23 = (s16)cM_atan2s(fVar1 + 0.0f, std::sqrtf(SQUARE(fVar2) + SQUARE(fVar3)));
|
||||
cMtx_XrotS(*calc_mtx, unaff_r24);
|
||||
cMtx_YrotM(*calc_mtx, unaff_r23);
|
||||
|
||||
spA0.z = HIMO3_SCALE;
|
||||
if (bVar4 == 0) {
|
||||
spA0.z = HIMO3_SCALE - unaff_f28 * HIMO3_SCALE;
|
||||
bVar4++;
|
||||
}
|
||||
MtxPosition(&spA0, &sp94);
|
||||
pcVar11->m0C = pcVar11->m00;
|
||||
pcVar11->m00 = pcVar11[-1].m00 + sp94;
|
||||
pcVar11->m0C.x = (pcVar11->m00.x - pcVar11->m0C.x) * tmpReg;
|
||||
pcVar11->m0C.y = (pcVar11->m00.y - pcVar11->m0C.y) * tmpReg;
|
||||
pcVar11->m0C.z = (pcVar11->m00.z - pcVar11->m0C.z) * tmpReg;
|
||||
|
||||
if ((i_this->m0298 == 0xf) && (i == i_this->m15C0 - 1)) {
|
||||
if (i_this->m02BE == 0) {
|
||||
i_this->mCyl.SetC(pcVar11->m00);
|
||||
} else {
|
||||
cXyz sp4C(-10000.0f, -10000.0f, 0.0f);
|
||||
i_this->mCyl.SetC(sp4C);
|
||||
}
|
||||
dComIfG_Ccsp()->Set(&i_this->mCyl);
|
||||
} else if (((i + i_this->m02BA * 3 & 0xf) == 0) && (j < 5)) {
|
||||
i_this->mSphs[j].SetR(fVar12);
|
||||
i_this->mSphs[j].SetC(pcVar11->m00);
|
||||
dComIfG_Ccsp()->Set(&i_this->mSphs[j]);
|
||||
j++;
|
||||
}
|
||||
}
|
||||
|
||||
cXyz* pcVar10 = i_this->mLineMat.getPos(0);
|
||||
himo3_s* phVar11 = i_this->m02C0;
|
||||
for (s32 i = 0; i < i_this->m15C0; i++, phVar11++, pcVar10++) {
|
||||
if (i_this->m15E0 >= 0.999f) {
|
||||
*pcVar10 = phVar11->m00;
|
||||
} else {
|
||||
cLib_addCalc2(&pcVar10->x, phVar11->m00.x, 1.0f, i_this->m15E0 * 100.0f);
|
||||
cLib_addCalc2(&pcVar10->y, phVar11->m00.y, 1.0f, i_this->m15E0 * 100.0f);
|
||||
cLib_addCalc2(&pcVar10->z, phVar11->m00.z, 1.0f, i_this->m15E0 * 100.0f);
|
||||
}
|
||||
|
||||
if ((i_this->m0298 != 0xf) && (i == i_this->m15C0 - 1)) {
|
||||
MtxTrans(pcVar10->x, pcVar10->y, pcVar10->z, 0);
|
||||
cMtx_XrotM(*calc_mtx, unaff_r24);
|
||||
cMtx_YrotM(*calc_mtx, unaff_r23);
|
||||
f32 fVar14 = l_HIO.m08;
|
||||
if (i_this->m0298 != 1) {
|
||||
cMtx_XrotM(*calc_mtx, -0x4000);
|
||||
fVar14 = l_HIO.m0C;
|
||||
}
|
||||
MtxScale(fVar14, fVar14, fVar14, true);
|
||||
i_this->mpModel->setBaseTRMtx(*calc_mtx);
|
||||
}
|
||||
}
|
||||
|
||||
cLib_addCalc2(&i_this->m15E0, 1.0f, 1.0f, DEMO_SELECT(REG0_F(3) + 0.05f, 0.05f));
|
||||
}
|
||||
|
||||
/* 00000C58-00000D1C .text ga_draw__FP11himo3_class */
|
||||
void ga_draw(himo3_class*) {
|
||||
/* Nonmatching */
|
||||
void ga_draw(himo3_class* i_this) {
|
||||
h3_ga_s* ga = &i_this->m2114[0];
|
||||
|
||||
for (s32 i = 0; i < ARRAY_SSIZE(i_this->m2114); i++, ga++) {
|
||||
if (ga->m2E == 1) {
|
||||
MtxTrans(ga->mPos.x, ga->mPos.y, ga->mPos.z, 0);
|
||||
cMtx_YrotM(*calc_mtx, ga->m1E);
|
||||
cMtx_XrotM(*calc_mtx, ga->m1C);
|
||||
MtxScale(ga->m24, ga->m24 * ga->m28, ga->m24, true);
|
||||
MtxTrans(0.0f, -18.0f, 0.0f, 1);
|
||||
ga->mpModel->setBaseTRMtx(*calc_mtx);
|
||||
mDoExt_modelUpdateDL(ga->mpModel);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* 00000D1C-00000EF8 .text daHimo3_Draw__FP11himo3_class */
|
||||
static BOOL daHimo3_Draw(himo3_class*) {
|
||||
/* Nonmatching */
|
||||
static BOOL daHimo3_Draw(himo3_class* i_this) {
|
||||
g_env_light.settingTevStruct(TEV_TYPE_BG0, &i_this->current.pos, &i_this->tevStr);
|
||||
f32 fVar1;
|
||||
if (i_this->m0298 == 0xf) {
|
||||
fVar1 = DEMO_SELECT(REG0_F(0) + 4.625f, 4.625f);
|
||||
} else {
|
||||
fVar1 = DEMO_SELECT(REG0_F(0) + 3.75f, 3.75f);
|
||||
}
|
||||
|
||||
i_this->mLineMat.update(i_this->m15C0, fVar1, (GXColor){200, 150, 50, 255}, 0, &i_this->tevStr);
|
||||
dComIfGd_set3DlineMat(&i_this->mLineMat);
|
||||
|
||||
if (i_this->m0298 != 0xf) {
|
||||
J3DModel* model = i_this->mpModel;
|
||||
g_env_light.setLightTevColorType(model, &i_this->tevStr);
|
||||
mDoExt_modelUpdateDL(model);
|
||||
|
||||
if (i_this->m0298 == 0) {
|
||||
if (l_HIO.m06 == 2) {
|
||||
dComIfGd_setSpotModel(dDlst_alphaModel_c::TYPE_TWO_SPHERES, i_this->m1840, 0x20);
|
||||
} else {
|
||||
GXColor color;
|
||||
color.r = l_HIO.m10;
|
||||
color.g = l_HIO.m12;
|
||||
color.b = l_HIO.m14;
|
||||
color.a = 0;
|
||||
dComIfGd_setAlphaModelColor(color);
|
||||
if (l_HIO.m06 == 0) {
|
||||
dComIfGd_setAlphaModel(dDlst_alphaModel_c::TYPE_SPHERE, i_this->m1840, i_this->m1878);
|
||||
} else {
|
||||
dComIfGd_setAlphaModel(dDlst_alphaModel_c::TYPE_TWO_SPHERES, i_this->m1840, i_this->m1878);
|
||||
}
|
||||
}
|
||||
|
||||
dComIfGd_setSimpleShadow2(&i_this->m1624, i_this->mAcch.GetGroundH(), i_this->m20F8, i_this->mAcch.m_gnd);
|
||||
ga_draw(i_this);
|
||||
}
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
/* 00000EF8-00001108 .text ga_move__FP11himo3_class */
|
||||
void ga_move(himo3_class*) {
|
||||
/* Nonmatching */
|
||||
void ga_move(himo3_class* i_this) {
|
||||
cXyz sp30(0.0f, 0.0f, 10.0f);
|
||||
cXyz sp24;
|
||||
|
||||
if (i_this->m2114[0].m2E) {
|
||||
if (i_this->m2114[0].m2F != 0) {
|
||||
i_this->m2114[0].m2F--;
|
||||
} else {
|
||||
i_this->m2114[0].m2F = cM_rndF(10.0f);
|
||||
i_this->m2114[0].m10.x = i_this->m1624.x + cM_rndFX(150.0f);
|
||||
i_this->m2114[0].m10.y = i_this->m1624.y + cM_rndFX(100.0f);
|
||||
i_this->m2114[0].m10.z = i_this->m1624.z + cM_rndFX(150.0f);
|
||||
}
|
||||
|
||||
cXyz sp0C = i_this->m2114[0].m10 - i_this->m2114[0].mPos;
|
||||
cLib_addCalcAngleS2(&i_this->m2114[0].m1E, cM_atan2s(sp0C.x, sp0C.z), 2, 0x1000);
|
||||
cLib_addCalcAngleS2(&i_this->m2114[0].m1C, -cM_atan2s(sp0C.y, std::sqrtf(SQUARE(sp0C.x) + SQUARE(sp0C.z))), 2, 0x1000);
|
||||
cMtx_YrotS(*calc_mtx, i_this->m2114[0].m1E);
|
||||
cMtx_XrotM(*calc_mtx, i_this->m2114[0].m1C);
|
||||
MtxPosition(&sp30, &sp24);
|
||||
i_this->m2114[0].mPos += sp24;
|
||||
i_this->m2114[0].m28 = cM_ssin(i_this->m2114[0].m2C);
|
||||
i_this->m2114[0].m2C += 0x3E00;
|
||||
}
|
||||
}
|
||||
|
||||
/* 00001108-00001128 .text setActorHang__11himo3_classF4cXyzs */
|
||||
void himo3_class::setActorHang(cXyz, short) {
|
||||
/* Nonmatching */
|
||||
void himo3_class::setActorHang(cXyz arg1, short arg2) {
|
||||
m21F4 = arg1;
|
||||
m2200 = arg2;
|
||||
}
|
||||
|
||||
/* 00001128-000014F8 .text path_move__FP11himo3_class */
|
||||
void path_move(himo3_class*) {
|
||||
/* Nonmatching */
|
||||
void path_move(himo3_class* i_this) {
|
||||
cXyz sp28;
|
||||
cXyz sp10;
|
||||
dPnt* pnt;
|
||||
|
||||
switch (i_this->m02A4) {
|
||||
case 0:
|
||||
i_this->m029C += i_this->m029D;
|
||||
if (i_this->m029C >= (s8)i_this->ppd->m_num) {
|
||||
if (dPath_ChkClose(i_this->ppd)) {
|
||||
i_this->m029C = 0;
|
||||
} else {
|
||||
i_this->m029D = -1;
|
||||
i_this->m029C = i_this->ppd->m_num - 2;
|
||||
}
|
||||
|
||||
if ((s32)i_this->ppd->m_nextID != 0xFFFF) {
|
||||
i_this->ppd = dPath_GetRoomPath(i_this->ppd->m_nextID, fopAcM_GetRoomNo(i_this));
|
||||
JUT_ASSERT(DEMO_SELECT(890, 891), i_this->ppd != NULL);
|
||||
}
|
||||
} else if (i_this->m029C < 0) {
|
||||
i_this->m029D = 1;
|
||||
i_this->m029C = 1;
|
||||
}
|
||||
|
||||
i_this->m02A4 = 1;
|
||||
pnt = &i_this->ppd->m_points[i_this->m029C];
|
||||
i_this->m02A8 = pnt->m_position;
|
||||
|
||||
case 1:
|
||||
sp10 = i_this->m02A8 - i_this->current.pos;
|
||||
if (i_this->m02BE == 0) {
|
||||
u8 uStack_14 = i_this->ppd->m_points[i_this->m029C].mArg3;
|
||||
if (uStack_14 != 0 && uStack_14 != 0xff) {
|
||||
cLib_addCalc2(&i_this->speedF, uStack_14, 1.0f, uStack_14 * 0.1f);
|
||||
} else {
|
||||
uStack_14 = i_this->m0299;
|
||||
cLib_addCalc2(&i_this->speedF, uStack_14, 1.0f, uStack_14 * 0.1f);
|
||||
}
|
||||
} else {
|
||||
cLib_addCalc0(&i_this->speedF, 1.0f, 1.0f);
|
||||
}
|
||||
|
||||
sp28.x = 0.0f;
|
||||
sp28.y = 0.0f;
|
||||
sp28.z = i_this->speedF;
|
||||
cMtx_YrotS(*calc_mtx, cM_atan2s(sp10.x, sp10.z));
|
||||
f32 fVar8 = std::sqrtf(SQUARE(sp10.x) + SQUARE(sp10.z));
|
||||
cMtx_XrotM(*calc_mtx, -cM_atan2s(sp10.y, fVar8));
|
||||
MtxPosition(&sp28, &i_this->speed);
|
||||
i_this->current.pos += i_this->speed;
|
||||
if (sp10.abs() < i_this->speedF * 2.0f) {
|
||||
i_this->m02A4 = 0;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/* 000014F8-00001A3C .text daHimo3_Execute__FP11himo3_class */
|
||||
static BOOL daHimo3_Execute(himo3_class*) {
|
||||
/* Nonmatching */
|
||||
static BOOL daHimo3_Execute(himo3_class* i_this) {
|
||||
fopAc_ac_c* player = dComIfGp_getPlayer(0);
|
||||
|
||||
if (i_this->m02BC != 0) {
|
||||
i_this->m02BC--;
|
||||
}
|
||||
|
||||
if (i_this->m029B != 0) {
|
||||
path_move(i_this);
|
||||
}
|
||||
|
||||
i_this->m02BA++;
|
||||
i_this->m02C0[0].m00 = i_this->current.pos;
|
||||
himo3_control(i_this, i_this->m02C0);
|
||||
|
||||
if (i_this->m0298 != 0xf) {
|
||||
if (i_this->mSph.ChkTgHit()) {
|
||||
cCcD_Obj* pcVar5 = i_this->mSph.GetTgHitObj();
|
||||
if (pcVar5 != NULL && pcVar5->ChkAtType(AT_TYPE_WIND)) {
|
||||
i_this->m15F8 = player->shape_angle.y;
|
||||
i_this->m15F4 = DEMO_SELECT(REG0_F(0) + 1.0f, 1.0f);
|
||||
}
|
||||
}
|
||||
|
||||
i_this->mAcch.CrrPos(*dComIfG_Bgsp());
|
||||
i_this->m1870 = l_HIO.m18;
|
||||
cMtx_copy(i_this->mpModel->getBaseTRMtx(), *calc_mtx);
|
||||
|
||||
if (i_this->m0298 == 0) {
|
||||
MtxTrans(DEMO_SELECT(REG0_F(6) + 10.0f, 10.0f), DEMO_SELECT(REG0_F(7) + -140.0f, -140.0f), DEMO_SELECT(REG0_F(8) + -15.0f, -15.0f), 1);
|
||||
} else {
|
||||
MtxTrans(DEMO_SELECT(REG0_F(6), 0.0f), DEMO_SELECT(REG0_F(7), 0.0f), DEMO_SELECT(REG0_F(8) + 35.0f, 35.0f), 1);
|
||||
}
|
||||
|
||||
MtxScale(i_this->m1870, i_this->m1870, i_this->m1870, true);
|
||||
MTXCopy(*calc_mtx, i_this->m1840);
|
||||
|
||||
cXyz sp28;
|
||||
sp28.z = 0.0f;
|
||||
sp28.y = 0.0f;
|
||||
sp28.x = 0.0f;
|
||||
MtxPosition(&sp28, &i_this->m1624);
|
||||
i_this->mSph.SetC(i_this->m1624);
|
||||
dComIfG_Ccsp()->Set(&i_this->mSph);
|
||||
|
||||
if (i_this->m0298 == 0) {
|
||||
for (s32 i = 0; i < ARRAY_SSIZE(i_this->m02B4); i++) {
|
||||
if (i_this->m02B4[i]) {
|
||||
i_this->m02B4[i]--;
|
||||
}
|
||||
}
|
||||
|
||||
if (i_this->m02B4[0] == 0) {
|
||||
i_this->m02B4[0] = cM_rndF(DEMO_SELECT(REG0_F(2) + 10.0f, 10.0f)) + 5.0f + DEMO_SELECT(REG0_F(3), 0.0f);
|
||||
i_this->m187C = cM_rndF(DEMO_SELECT(REG0_F(6) + 16.0f, 16.0f)) + 4.0f + DEMO_SELECT(REG0_F(7), 0.0f);
|
||||
}
|
||||
|
||||
if (i_this->m02B4[1] == 0) {
|
||||
i_this->m02B4[1] = cM_rndF(6.0f) + 3.0f;
|
||||
}
|
||||
|
||||
cLib_addCalc2(&i_this->m1878, i_this->m187C, 1.0f, DEMO_SELECT(REG0_F(4) + 0.1f, 0.1f));
|
||||
#if VERSION == VERSION_DEMO
|
||||
if (!i_this->m2110) {
|
||||
#else
|
||||
if (i_this->m20FC.getEmitter() == NULL) {
|
||||
#endif
|
||||
static cXyz fire_scale(0.7f, 0.7f, 0.7f);
|
||||
#if VERSION == VERSION_DEMO
|
||||
i_this->demo_m20FC =
|
||||
#endif
|
||||
dComIfGp_particle_set(dPa_name::ID_COMMON_01EA, &i_this->m1624, NULL, &fire_scale, 0xff, &i_this->m20FC);
|
||||
#if VERSION == VERSION_DEMO
|
||||
i_this->m2110 = 1;
|
||||
#endif
|
||||
i_this->m1620 = 1.0f;
|
||||
}
|
||||
|
||||
#if VERSION == VERSION_DEMO
|
||||
JPABaseEmitter* pJVar6 = i_this->demo_m20FC;
|
||||
#else
|
||||
JPABaseEmitter* pJVar6 = i_this->m20FC.getEmitter();
|
||||
#endif
|
||||
if (pJVar6 != NULL) {
|
||||
f32 fVar3 = DEMO_SELECT(REG0_F(3) + -0.03f, -0.03f);
|
||||
f32 fVar1 = (i_this->m1624.x - i_this->m1630.x) * fVar3;
|
||||
if (fVar1 > 1.0f) {
|
||||
fVar1 = 1.0f;
|
||||
} else if (fVar1 < -1.0f) {
|
||||
fVar1 = -1.0f;
|
||||
}
|
||||
|
||||
f32 fVar4 = fVar3 * ((i_this->m1624).z - (i_this->m1630).z);
|
||||
if (fVar4 > 1.0f) {
|
||||
fVar4 = 1.0f;
|
||||
} else if (fVar4 < -1.0f) {
|
||||
fVar4 = -1.0f;
|
||||
}
|
||||
|
||||
JGeometry::TVec3<f32> s;
|
||||
s.x = fVar1;
|
||||
s.y = 0.1f;
|
||||
s.z = fVar4;
|
||||
pJVar6->setDirection(s);
|
||||
|
||||
f32 tmp = 1.0f;
|
||||
f32 sqrt = std::sqrtf(SQUARE(fVar1) + SQUARE(fVar4));
|
||||
f32 sqrt2 = 1.0f + sqrt * DEMO_SELECT(REG0_F(12) + 2.0f, 2.0f);
|
||||
if (sqrt2 > DEMO_SELECT(REG0_F(13) + 4.0f, 4.0f)) {
|
||||
sqrt2 = DEMO_SELECT(REG0_F(13) + 4.0f, 4.0f);
|
||||
}
|
||||
|
||||
JGeometry::TVec3<f32> s2;
|
||||
s2.x = tmp;
|
||||
s2.y = sqrt2;
|
||||
s2.z = tmp;
|
||||
|
||||
#if VERSION == VERSION_DEMO
|
||||
pJVar6 = i_this->demo_m20FC;
|
||||
#endif
|
||||
pJVar6->setGlobalParticleScale(s2);
|
||||
cLib_addCalc2(&i_this->m1620, cM_rndF(0.2f) + 1.0f, 0.5f, 0.02f);
|
||||
} else {
|
||||
i_this->m1620 = 0.0f;
|
||||
}
|
||||
|
||||
cXyz sp1C(i_this->m1624.x, DEMO_SELECT(i_this->m1624.y + REG0_F(7), i_this->m1624.y) + 20.0f, i_this->m1624.z);
|
||||
dComIfGp_particle_setSimple(dPa_name::ID_COMMON_4004, &sp1C);
|
||||
i_this->m1600.mPos = i_this->m1624;
|
||||
i_this->m1600.mColor.r = 600;
|
||||
i_this->m1600.mColor.g = 400;
|
||||
i_this->m1600.mColor.b = 0x78;
|
||||
i_this->m1600.mPower = (s16)(i_this->m1620 * 150.0f);
|
||||
i_this->m1600.mFluctuation = 250.0f;
|
||||
ga_move(i_this);
|
||||
}
|
||||
}
|
||||
i_this->m1630 = i_this->m1624;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
/* 00001A3C-00001A44 .text daHimo3_IsDelete__FP11himo3_class */
|
||||
static BOOL daHimo3_IsDelete(himo3_class*) {
|
||||
static BOOL daHimo3_IsDelete(himo3_class* i_this) {
|
||||
#if VERSION == VERSION_DEMO
|
||||
if (i_this->demo_m20FC != 0) {
|
||||
i_this->m20FC.remove();
|
||||
}
|
||||
#endif
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
/* 00001A44-00001AE0 .text daHimo3_Delete__FP11himo3_class */
|
||||
static BOOL daHimo3_Delete(himo3_class*) {
|
||||
/* Nonmatching */
|
||||
static BOOL daHimo3_Delete(himo3_class* i_this) {
|
||||
dComIfG_resDeleteDemo(&i_this->mPhase, "Himo3");
|
||||
if (i_this->m0298 == 0) {
|
||||
dKy_plight_cut(&i_this->m1600);
|
||||
}
|
||||
|
||||
if (DEMO_SELECT(i_this->m2111, i_this->m2110) != 0) {
|
||||
hio_set = false;
|
||||
mDoHIO_deleteChild(l_HIO.mNo);
|
||||
}
|
||||
|
||||
#if VERSION > VERSION_DEMO
|
||||
i_this->m20FC.remove();
|
||||
#endif
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
/* 00001AE0-00001DD4 .text useHeapInit__FP11himo3_class */
|
||||
void useHeapInit(himo3_class*) {
|
||||
/* Nonmatching */
|
||||
cPhs_State useHeapInit(himo3_class* i_this) {
|
||||
static s32 hook_bmd[] = {HIMO3_BMD_SLAMP_00, LINK_BDL_ROPEEND, HIMO3_BMD_SLAMP_00, HIMO3_BMD_SLAMP_00, HIMO3_BMD_SLAMP_00};
|
||||
|
||||
#if VERSION == VERSION_DEMO
|
||||
if (!i_this->mLineMat.init(1, 200, (ResTIMG*)dComIfG_getObjectRes("Always", i_this->m0298 == 0xf ? ALWAYS_BTI_TXM_ROPE1 : ALWAYS_BTI_ROPE), 0)) {
|
||||
return cPhs_ERROR_e;
|
||||
}
|
||||
#else
|
||||
if (i_this->m0298 == 0xf) {
|
||||
if (!i_this->mLineMat.init(1, 200, (ResTIMG*)dComIfG_getObjectRes("Bgn", BGN_BTI_NOT_CUT1), 0)) {
|
||||
return cPhs_ERROR_e;
|
||||
}
|
||||
} else if (!i_this->mLineMat.init(1, 200, (ResTIMG*)dComIfG_getObjectRes("Always", ALWAYS_BTI_ROPE), 0)) {
|
||||
return cPhs_ERROR_e;
|
||||
}
|
||||
#endif
|
||||
|
||||
J3DModelData* modelData = NULL;
|
||||
if (i_this->m0298 != 0xf) {
|
||||
if (i_this->m0298 == 1) {
|
||||
modelData = (J3DModelData*)dComIfG_getObjectRes("Link", hook_bmd[i_this->m0298]);
|
||||
} else if (i_this->m0298 <= 4) {
|
||||
modelData = (J3DModelData*)dComIfG_getObjectRes("Himo3", hook_bmd[i_this->m0298]);
|
||||
}
|
||||
|
||||
JUT_ASSERT(DEMO_SELECT(1250, 1284), modelData != NULL);
|
||||
|
||||
i_this->mpModel = mDoExt_J3DModel__create(modelData, 0, 0x11020203);
|
||||
if (i_this->mpModel == NULL) {
|
||||
return cPhs_ERROR_e;
|
||||
}
|
||||
}
|
||||
|
||||
if (i_this->m0298 == 0) {
|
||||
modelData = (J3DModelData*)dComIfG_getObjectRes("Himo3", HIMO3_BMD_H3_GA);
|
||||
JUT_ASSERT(DEMO_SELECT(1264, 1298), modelData != NULL);
|
||||
s32 tmp = 0;
|
||||
|
||||
for (s32 i = 0; i < ARRAY_SSIZE(i_this->m2114); i++) {
|
||||
i_this->m2114[i].mpModel = mDoExt_J3DModel__create(modelData, 0, 0x11020203);
|
||||
if (i_this->m2114[i].mpModel == NULL) {
|
||||
return cPhs_INIT_e;
|
||||
}
|
||||
|
||||
if (tmp == 0 || cM_rndF(1.0f) < 0.5f) {
|
||||
i_this->m2114[i].m2E = true;
|
||||
i_this->m2114[i].mPos = i_this->current.pos;
|
||||
i_this->m2114[i].m24 = cM_rndF(0.3f) + 0.3f;
|
||||
i_this->m2114[i].m2C = cM_rndF(30000.0f);
|
||||
}
|
||||
}
|
||||
}
|
||||
return cPhs_COMPLEATE_e;
|
||||
}
|
||||
|
||||
/* 00001DD4-00002128 .text daHimo3_Create__FP10fopAc_ac_c */
|
||||
static cPhs_State daHimo3_Create(fopAc_ac_c*) {
|
||||
static cPhs_State daHimo3_Create(fopAc_ac_c* a_this) {
|
||||
/* Nonmatching */
|
||||
static dCcD_SrcCyl cc_cyl_src = {
|
||||
// dCcD_SrcGObjInf
|
||||
@@ -147,6 +733,97 @@ static cPhs_State daHimo3_Create(fopAc_ac_c*) {
|
||||
/* Radius */ 80.0f,
|
||||
}},
|
||||
};
|
||||
|
||||
himo3_class* i_this = (himo3_class*)a_this;
|
||||
|
||||
fopAcM_SetupActor(a_this, himo3_class);
|
||||
|
||||
cPhs_State PVar1 = dComIfG_resLoad(&i_this->mPhase, "Himo3");
|
||||
if (PVar1 == cPhs_COMPLEATE_e) {
|
||||
i_this->m0298 = (fopAcM_GetParam(a_this) >> 0) & 0xFF;
|
||||
i_this->m0299 = (fopAcM_GetParam(a_this) >> 16) & 0xFF;
|
||||
i_this->m029A = (fopAcM_GetParam(a_this) >> 24) & 0xFF;
|
||||
|
||||
if (i_this->m0298 == 0xff) {
|
||||
i_this->m0298 = 0;
|
||||
}
|
||||
|
||||
if (fopAcM_createHeap(i_this, 0xa220, 0) == 0) {
|
||||
return cPhs_ERROR_e;
|
||||
}
|
||||
|
||||
PVar1 = useHeapInit(i_this);
|
||||
fopAcM_adjustHeap(a_this);
|
||||
|
||||
if (PVar1 == cPhs_ERROR_e) {
|
||||
return cPhs_ERROR_e;
|
||||
}
|
||||
|
||||
i_this->m15C0 = (fopAcM_GetParam(a_this) >> 8) & 0xFF;
|
||||
if (i_this->m0298 == 0xf) {
|
||||
HIMO3_SCALE = DEMO_SELECT(REG0_F(4) + 22.0f, 22.0f);
|
||||
i_this->m15C0 = DEMO_SELECT(REG0_S(0) + 200, 200);
|
||||
i_this->m029A = 0xff;
|
||||
} else {
|
||||
HIMO3_SCALE = 20.0f;
|
||||
}
|
||||
|
||||
i_this->m15FC = i_this->m15C0 * HIMO3_SCALE - 50.0f;
|
||||
if (i_this->m0298 == 0) {
|
||||
i_this->m15FC -= 50.0f;
|
||||
}
|
||||
|
||||
if (i_this->m15C0 > 0xc8) {
|
||||
return cPhs_ERROR_e;
|
||||
}
|
||||
|
||||
if (i_this->m029A != 0xff) {
|
||||
i_this->ppd = dPath_GetRoomPath(i_this->m029A, fopAcM_GetRoomNo(a_this));
|
||||
if (i_this->ppd == NULL) {
|
||||
return cPhs_ERROR_e;
|
||||
}
|
||||
i_this->m029B = i_this->m029A + 1;
|
||||
i_this->m029D = 1;
|
||||
}
|
||||
|
||||
i_this->m15E0 = 1.0f;
|
||||
i_this->mStts.Init(0xff, 0xff, i_this);
|
||||
|
||||
if (i_this->m0298 == 0xf) {
|
||||
i_this->mCyl.Set(cc_cyl_src);
|
||||
i_this->mCyl.SetStts(&i_this->mStts);
|
||||
} else {
|
||||
for (s32 i = 0; i < ARRAY_SSIZE(i_this->mSphs); i++) {
|
||||
i_this->mSphs[i].Set(sph_src);
|
||||
i_this->mSphs[i].SetStts(&i_this->mStts);
|
||||
}
|
||||
|
||||
i_this->mSph.Set(sph2_src);
|
||||
i_this->mSph.SetStts(&i_this->mStts);
|
||||
i_this->mAcch.Set(&i_this->m1624, &i_this->m1630, i_this, 1, &i_this->mAcchCir, fopAcM_GetSpeed_p(i_this));
|
||||
|
||||
if (i_this->m0298 == 0) {
|
||||
i_this->mAcchCir.SetWall(40.0f, 50.0f);
|
||||
i_this->m20F8 = 20.0f;
|
||||
dKy_plight_set(&i_this->m1600);
|
||||
} else if (i_this->m0298 == 1) {
|
||||
i_this->mAcchCir.SetWall(20.0f, 20.0f);
|
||||
i_this->mSph.SetR(20.0f);
|
||||
i_this->m20F8 = 10.0f;
|
||||
}
|
||||
}
|
||||
|
||||
if (!hio_set) {
|
||||
hio_set = true;
|
||||
DEMO_SELECT(i_this->m2111, i_this->m2110) = 0;
|
||||
l_HIO.mNo = mDoHIO_createChild("ぶら下がりロープ", &l_HIO);
|
||||
}
|
||||
|
||||
for (s32 i = 0; i < 10; i++) {
|
||||
daHimo3_Execute(i_this);
|
||||
}
|
||||
}
|
||||
return PVar1;
|
||||
}
|
||||
|
||||
static actor_method_class l_daHimo3_Method = {
|
||||
|
||||
+1443
-51
File diff suppressed because it is too large
Load Diff
+333
-17
@@ -1,42 +1,358 @@
|
||||
#include "d/dolzel_rel.h" // IWYU pragma: keep
|
||||
#include "d/actor/d_a_kamome2.h"
|
||||
#include "d/res/res_kamome.h"
|
||||
#include "m_Do/m_Do_ext.h"
|
||||
#include "d/d_procname.h"
|
||||
#include "d/d_camera.h"
|
||||
#include "d/d_priority.h"
|
||||
#include "d/d_meter.h"
|
||||
#include "d/d_snap.h"
|
||||
#include "d/d_s_play.h"
|
||||
#include "m_Do/m_Do_hostIO.h"
|
||||
#include "m_Do/m_Do_ext.h"
|
||||
#include "m_Do/m_Do_controller_pad.h"
|
||||
#include "f_op/f_op_camera.h"
|
||||
|
||||
static void anm_init(kamome2_class*, int, f32, u8, f32, int) {
|
||||
/* Nonmatching */
|
||||
class kamome2HIO_c : public JORReflexible {
|
||||
public:
|
||||
kamome2HIO_c() {
|
||||
m05 = 0;
|
||||
m08 = -2500.0f;
|
||||
m0C = 60.0f;
|
||||
}
|
||||
virtual ~kamome2HIO_c() {}
|
||||
|
||||
void genMessage(JORMContext*);
|
||||
|
||||
public:
|
||||
/* 0x04 */ s8 mNo;
|
||||
/* 0x05 */ u8 m05;
|
||||
/* 0x08 */ f32 m08;
|
||||
/* 0x0C */ f32 m0C;
|
||||
}; // size = 0x10
|
||||
|
||||
static bool hio_set;
|
||||
static kamome2HIO_c l_HIO;
|
||||
|
||||
static void anm_init(kamome2_class* i_this, int anmResIdx, f32 morf, u8 loopMode, f32 playSpeed, int soundResIdx) {
|
||||
i_this->mpMorf->setAnm(
|
||||
(J3DAnmTransform*)dComIfG_getObjectRes("Kamome", anmResIdx), loopMode, morf, playSpeed, 0.0f, -1.0f, dComIfG_getObjectRes("Kamome", soundResIdx)
|
||||
);
|
||||
}
|
||||
|
||||
static BOOL daKamome2_Draw(kamome2_class*) {
|
||||
/* Nonmatching */
|
||||
static BOOL daKamome2_Draw(kamome2_class* i_this) {
|
||||
g_env_light.settingTevStruct(dDlst_alphaModel_c::TYPE_SPHERE, &i_this->actor.current.pos, &i_this->actor.tevStr);
|
||||
g_env_light.setLightTevColorType(i_this->mpMorf->getModel(), &i_this->actor.tevStr);
|
||||
i_this->mpMorf->entryDL();
|
||||
|
||||
J3DModel* pJVar4 = i_this->mpMorf->getModel();
|
||||
J3DModel* pJVar3 = i_this->mpModel;
|
||||
|
||||
for (u16 i = 0; i < pJVar4->getModelData()->getJointNum(); i++) {
|
||||
pJVar3->setAnmMtx(i, pJVar4->getAnmMtx(i));
|
||||
}
|
||||
|
||||
for (u16 i = 0; i < pJVar4->getModelData()->getWEvlpMtxNum(); i++) {
|
||||
pJVar3->setWeightAnmMtx(i, pJVar4->getWeightAnmMtx(i));
|
||||
}
|
||||
|
||||
cXyz sp08;
|
||||
sp08.set(i_this->actor.current.pos.x, i_this->actor.current.pos.y + REG0_F(1) * 10.0f, i_this->actor.current.pos.z);
|
||||
i_this->m2A0 = dComIfGd_setRealShadow(i_this->m2A0, 1, i_this->mpModel, &sp08, REG0_F(2) * 10.0f + 500.0f, 0.0f, &i_this->actor.tevStr);
|
||||
dSnap_RegistFig(0x55, &i_this->actor, 1.0f, 1.0f, 1.0f);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static void kamome2_bgcheck(kamome2_class*) {
|
||||
/* Nonmatching */
|
||||
const f64 unused_4206[] = {0.5, 3.0};
|
||||
const f32 unused_4207[] = {0.5f, 0.04f};
|
||||
|
||||
static void kamome2_bgcheck(kamome2_class* i_this) {
|
||||
f32 val = 40.0f;
|
||||
|
||||
i_this->actor.current.pos.y -= val;
|
||||
i_this->actor.old.pos.y -= val;
|
||||
i_this->mAcch.CrrPos(*dComIfG_Bgsp());
|
||||
i_this->actor.current.pos.y += val;
|
||||
i_this->actor.old.pos.y += val;
|
||||
}
|
||||
|
||||
static void key_move(kamome2_class*) {
|
||||
/* Nonmatching */
|
||||
static void key_move(kamome2_class* i_this) {
|
||||
interface_of_controller_pad* pad = &g_mDoCPd_cpadInfo[0];
|
||||
f32 fVar3 = pad->mMainStickPosX;
|
||||
f32 fVar4 = pad->mMainStickPosY;
|
||||
s32 iVar1 = i_this->mpMorf->getFrame();
|
||||
|
||||
switch (i_this->m2AC) {
|
||||
case 0:
|
||||
i_this->m2BC = 30.0f;
|
||||
i_this->m2C0 = unused_4207[0];
|
||||
if (!CPad_CHECK_HOLD_A(0) && iVar1 == REG0_S(0) + 9) {
|
||||
i_this->m2AC = 1;
|
||||
anm_init(i_this, KAMOME_BCK_KA_WAIT1, REG0_F(0) + 12.0f, 2, 1.0f, 8);
|
||||
}
|
||||
break;
|
||||
|
||||
case 1:
|
||||
if (CPad_CHECK_HOLD_X(0)) {
|
||||
i_this->m2BC = 5.0f;
|
||||
i_this->m2C0 = 0.2f;
|
||||
} else {
|
||||
i_this->m2BC = 20.0f;
|
||||
i_this->m2C0 = 0.1f;
|
||||
}
|
||||
|
||||
if (CPad_CHECK_HOLD_A(0)) {
|
||||
i_this->m2AC = 0;
|
||||
anm_init(i_this, KAMOME_BCK_KA_WAIT2, 5.0f, 2, 1.0f, 9);
|
||||
fopAcM_seStart(&i_this->actor, JA_SE_CV_KAMOME, 0);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
s16 iVar2 = fVar3 * (REG6_F(10) + -5.0f) * 1000.0f;
|
||||
s16 iVar10 = fVar4 * (REG6_F(11) + 5.0f) * 1000.0f;
|
||||
s16 uVar9;
|
||||
s16 uVar8;
|
||||
s16 uVar7;
|
||||
s16 uVar6;
|
||||
if (std::fabsf(fVar3) > 0.2f) {
|
||||
uVar6 = 0x100;
|
||||
uVar7 = 0x400;
|
||||
} else {
|
||||
uVar6 = 0x80;
|
||||
uVar7 = 0x80;
|
||||
}
|
||||
|
||||
if (std::fabsf(fVar4) > 0.2f) {
|
||||
uVar8 = 0x200;
|
||||
} else {
|
||||
uVar8 = 0x80;
|
||||
}
|
||||
|
||||
if (iVar10 > 0 && i_this->mAcch.ChkGroundHit()) {
|
||||
iVar10 = 0;
|
||||
uVar8 = 0x800;
|
||||
uVar9 = 10;
|
||||
} else {
|
||||
uVar9 = 4;
|
||||
}
|
||||
|
||||
cLib_addCalcAngleS2(&i_this->m2DC, iVar2, 10, uVar6);
|
||||
cLib_addCalcAngleS2(&i_this->m2DA, iVar10, uVar9, uVar8);
|
||||
cLib_addCalc2(&i_this->m314, fVar3 * (REG6_F(12) + -0.4f) * 1000.0f, 1.0f, 50.0f);
|
||||
|
||||
i_this->actor.current.angle.y += (s16)i_this->m314;
|
||||
|
||||
cLib_addCalcAngleS2(&i_this->actor.current.angle.x, iVar10, uVar9, uVar8);
|
||||
cLib_addCalcAngleS2(&i_this->actor.current.angle.z, -iVar2, 5, uVar7);
|
||||
cLib_addCalcAngleS2(&i_this->m308, i_this->m314 * (REG0_F(8) + -5.0f), 10, 100);
|
||||
cLib_addCalc2(&i_this->actor.speedF, i_this->m2BC, 1.0f, i_this->m2C0);
|
||||
|
||||
cXyz sp08;
|
||||
sp08.x = 0.0f;
|
||||
sp08.y = 0.0f;
|
||||
sp08.z = i_this->actor.speedF;
|
||||
cMtx_YrotS(*calc_mtx, i_this->actor.current.angle.y);
|
||||
cMtx_XrotM(*calc_mtx, i_this->actor.current.angle.x);
|
||||
MtxPosition(&sp08, &i_this->actor.speed);
|
||||
|
||||
i_this->actor.current.pos.x += i_this->actor.speed.x;
|
||||
i_this->actor.current.pos.y += i_this->actor.speed.y;
|
||||
i_this->actor.current.pos.z += i_this->actor.speed.z;
|
||||
|
||||
kamome2_bgcheck(i_this);
|
||||
|
||||
i_this->mSph.SetC(i_this->actor.current.pos);
|
||||
|
||||
dComIfG_Ccsp()->Set(&i_this->mSph);
|
||||
}
|
||||
|
||||
static BOOL daKamome2_Execute(kamome2_class*) {
|
||||
/* Nonmatching */
|
||||
static BOOL daKamome2_Execute(kamome2_class* i_this) {
|
||||
fopAc_ac_c* player = dComIfGp_getPlayer(0);
|
||||
camera_class* camera = dComIfGp_getCamera(dComIfGp_getPlayerCameraID(0));
|
||||
|
||||
i_this->m2A8++;
|
||||
if (l_HIO.m05 == 0) {
|
||||
for (s32 i = 0; i < ARRAY_SSIZE(i_this->m2D0); i++) {
|
||||
if (i_this->m2D0[i] != 0) {
|
||||
i_this->m2D0[i]--;
|
||||
}
|
||||
}
|
||||
|
||||
if (i_this->m2A4 == 0) {
|
||||
key_move(i_this);
|
||||
}
|
||||
i_this->mpMorf->play(&i_this->actor.eyePos, 0, 0);
|
||||
}
|
||||
|
||||
MtxTrans(i_this->actor.current.pos.x, i_this->actor.current.pos.y, i_this->actor.current.pos.z, 0);
|
||||
cMtx_YrotM(*calc_mtx, i_this->actor.current.angle.y + i_this->m2DC);
|
||||
cMtx_XrotM(*calc_mtx, i_this->actor.current.angle.x + i_this->m2DA);
|
||||
cMtx_ZrotM(*calc_mtx, i_this->actor.current.angle.z);
|
||||
|
||||
J3DModel* model = i_this->mpMorf->getModel();
|
||||
model->setBaseTRMtx(*calc_mtx);
|
||||
i_this->mpMorf->calc();
|
||||
model = i_this->mpModel;
|
||||
model->setBaseTRMtx(*calc_mtx);
|
||||
|
||||
switch (i_this->m2EC) {
|
||||
case 0:
|
||||
if (i_this->m2D0[0] == 1) {
|
||||
i_this->m2EC = 1;
|
||||
}
|
||||
break;
|
||||
|
||||
case 1:
|
||||
if (!i_this->actor.eventInfo.checkCommandDemoAccrpt()) {
|
||||
fopAcM_orderPotentialEvent(&i_this->actor, 2, 0xffff, 0);
|
||||
i_this->actor.eventInfo.onCondition(dEvtCnd_UNK2_e);
|
||||
break;
|
||||
}
|
||||
|
||||
camera->mCamera.Stop();
|
||||
dMeter_mtrHide();
|
||||
camera->mCamera.SetTrimSize(2);
|
||||
i_this->m2EC = 1;
|
||||
i_this->m2F0 = i_this->actor.current.pos;
|
||||
i_this->m2FC = i_this->actor.current.pos;
|
||||
|
||||
case 2:
|
||||
cMtx_YrotS(*calc_mtx, i_this->actor.current.angle.y);
|
||||
cMtx_XrotM(*calc_mtx, i_this->actor.current.angle.x);
|
||||
|
||||
cXyz sp2C;
|
||||
sp2C.x = 0.0f;
|
||||
sp2C.y = 0.0f;
|
||||
sp2C.z = l_HIO.m08;
|
||||
cXyz sp20;
|
||||
MtxPosition(&sp2C, &sp20);
|
||||
cLib_addCalc2(&i_this->m2F0.x, i_this->actor.current.pos.x + sp20.x, 0.1f, 1000.0f);
|
||||
cLib_addCalc2(&i_this->m2F0.y, i_this->actor.current.pos.y + sp20.y, 0.1f, 1000.0f);
|
||||
cLib_addCalc2(&i_this->m2F0.z, i_this->actor.current.pos.z + sp20.z, 0.1f, 1000.0f);
|
||||
|
||||
sp2C.x = i_this->m2DC * 0.015f;
|
||||
sp2C.y = i_this->m2DA * -0.01f;
|
||||
sp2C.z = 0;
|
||||
MtxPosition(&sp2C, &sp20);
|
||||
cLib_addCalc2(&i_this->m2FC.x, i_this->actor.current.pos.x + sp20.x, 0.1f, 1000.0f);
|
||||
cLib_addCalc2(&i_this->m2FC.y, i_this->actor.current.pos.y + sp20.y, 0.1f, 1000.0f);
|
||||
cLib_addCalc2(&i_this->m2FC.z, i_this->actor.current.pos.z + sp20.z, 0.1f, 1000.0f);
|
||||
break;
|
||||
}
|
||||
|
||||
if (i_this->m2EC != 0) {
|
||||
camera->mCamera.Set(i_this->m2FC, i_this->m2F0, i_this->m308, l_HIO.m0C);
|
||||
}
|
||||
|
||||
i_this->actor.eyePos = i_this->actor.current.pos;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static BOOL daKamome2_IsDelete(kamome2_class*) {
|
||||
/* Nonmatching */
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static BOOL daKamome2_Delete(kamome2_class*) {
|
||||
/* Nonmatching */
|
||||
static BOOL daKamome2_Delete(kamome2_class* i_this) {
|
||||
dComIfG_deleteObjectRes("Kamome");
|
||||
if (i_this->m68C) {
|
||||
hio_set = false;
|
||||
mDoHIO_deleteChild(l_HIO.mNo);
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static BOOL useHeapInit(fopAc_ac_c*) {
|
||||
/* Nonmatching */
|
||||
static BOOL useHeapInit(fopAc_ac_c* a_this) {
|
||||
kamome2_class* i_this = (kamome2_class*)a_this;
|
||||
i_this->mpMorf = new mDoExt_McaMorf(
|
||||
(J3DModelData*)dComIfG_getObjectRes("Kamome", KAMOME_BDL_KA),
|
||||
NULL,
|
||||
NULL,
|
||||
(J3DAnmTransform*)dComIfG_getObjectRes("Kamome", KAMOME_BCK_KA_WAIT1),
|
||||
J3DFrameCtrl::EMode_LOOP,
|
||||
1.0f,
|
||||
0,
|
||||
-1,
|
||||
0x1,
|
||||
(void*)dComIfG_getObjectRes("Kamome", KAMOME_BAS_KA_WAIT1),
|
||||
0x80000,
|
||||
0x11000002
|
||||
);
|
||||
|
||||
if ((i_this->mpMorf == NULL) || (i_this->mpMorf->getModel() == NULL)) {
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
i_this->mpModel = mDoExt_J3DModel__create(i_this->mpMorf->getModel()->getModelData(), 0x20000, 0x11020203);
|
||||
if (i_this->mpModel == NULL) {
|
||||
return FALSE;
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static cPhs_State daKamome2_Create(fopAc_ac_c*) {
|
||||
/* Nonmatching */
|
||||
static cPhs_State daKamome2_Create(fopAc_ac_c* a_this) {
|
||||
static dCcD_SrcSph at_sph_src = {
|
||||
// dCcD_SrcGObjInf
|
||||
{
|
||||
/* Flags */ 0,
|
||||
/* SrcObjAt Type */ AT_TYPE_SWORD,
|
||||
/* SrcObjAt Atp */ 1,
|
||||
/* SrcObjAt SPrm */ cCcD_AtSPrm_Set_e | cCcD_AtSPrm_VsEnemy_e,
|
||||
/* SrcObjTg Type */ 0,
|
||||
/* SrcObjTg SPrm */ 0,
|
||||
/* SrcObjCo SPrm */ 0,
|
||||
/* SrcGObjAt Se */ 0,
|
||||
/* SrcGObjAt HitMark */ dCcG_AtHitMark_None_e,
|
||||
/* SrcGObjAt Spl */ dCcG_At_Spl_UNK0,
|
||||
/* SrcGObjAt Mtrl */ 0,
|
||||
/* SrcGObjAt SPrm */ 0,
|
||||
/* SrcGObjTg Se */ 0,
|
||||
/* SrcGObjTg HitMark */ 0,
|
||||
/* SrcGObjTg Spl */ dCcG_Tg_Spl_UNK0,
|
||||
/* SrcGObjTg Mtrl */ 0,
|
||||
/* SrcGObjTg SPrm */ 0,
|
||||
/* SrcGObjCo SPrm */ 0,
|
||||
},
|
||||
// cM3dGSphS
|
||||
{{
|
||||
/* Center */ {0.0f, 0.0f, 0.0f},
|
||||
/* Radius */ 40.0f,
|
||||
}},
|
||||
};
|
||||
|
||||
kamome2_class* i_this = (kamome2_class*)a_this;
|
||||
|
||||
cPhs_State iVar1 = dComIfG_resLoad(&i_this->mPhase, "Kamome");
|
||||
if (iVar1 == cPhs_COMPLEATE_e) {
|
||||
fopAcM_SetupActor(a_this, kamome2_class);
|
||||
|
||||
i_this->m2A4 = fopAcM_GetParam(a_this);
|
||||
if (!fopAcM_entrySolidHeap(a_this, useHeapInit, 0x59A0)) {
|
||||
return cPhs_ERROR_e;
|
||||
}
|
||||
|
||||
fopAcM_SetMtx(a_this, i_this->mpMorf->getModel()->getBaseTRMtx());
|
||||
i_this->mAcch.Set(fopAcM_GetPosition_p(a_this), fopAcM_GetOldPosition_p(a_this), a_this, 1, &i_this->mAcchCir, fopAcM_GetSpeed_p(a_this));
|
||||
|
||||
if (i_this->m2A4 == 3) {
|
||||
i_this->mAcchCir.SetWall(50.0f, 80.0f);
|
||||
i_this->mAcch.SetGroundUpY(40.0f);
|
||||
} else {
|
||||
i_this->mAcchCir.SetWall(30.0f, 20.0f);
|
||||
}
|
||||
i_this->mStts.Init(0, 0xff, a_this);
|
||||
i_this->mSph.Set(at_sph_src);
|
||||
i_this->mSph.SetStts(&i_this->mStts);
|
||||
i_this->m2A8 = (s16)cM_rndF(10000.0f);
|
||||
if (!hio_set) {
|
||||
l_HIO.mNo = mDoHIO_createChild("操作カモメ", &l_HIO);
|
||||
i_this->m68C = true;
|
||||
hio_set = true;
|
||||
}
|
||||
i_this->m2D0[0] = 0x1e;
|
||||
}
|
||||
|
||||
return iVar1;
|
||||
}
|
||||
|
||||
static actor_method_class l_daKamome2_Method = {
|
||||
|
||||
@@ -219,7 +219,7 @@ static BOOL daKui_Execute(kui_class* i_this) {
|
||||
btd_class* btd = search_btd(i_this);
|
||||
|
||||
if (dragon_tail != NULL && btd != NULL) {
|
||||
if ((dragon_tail->unk_4BA == 0 || dragon_tail->unk_4BA >= 10) && btd->field_0x2e4 < 10) {
|
||||
if ((dragon_tail->unk_4BA == 0 || dragon_tail->unk_4BA >= 10) && btd->m02E4 < 10) {
|
||||
actor->current.pos = dragon_tail->unk_3B0;
|
||||
actor->current.angle = dragon_tail->actor.current.angle;
|
||||
} else {
|
||||
|
||||
+62
-45
@@ -20,12 +20,17 @@ int (dSnap_packet::*dSnap_packet::m_judge_tbl[])() = {
|
||||
&dSnap_packet::JudgeCoupleLook,
|
||||
&dSnap_packet::JudgeGF,
|
||||
&dSnap_packet::JudgeGenzo,
|
||||
#if VERSION == VERSION_DEMO
|
||||
&dSnap_packet::JudgeGene,
|
||||
#else
|
||||
&dSnap_packet::JudgeObasan4,
|
||||
#endif
|
||||
&dSnap_packet::JudgeGene,
|
||||
&dSnap_packet::JudgeGene,
|
||||
&dSnap_packet::JudgeGene,
|
||||
&dSnap_packet::JudgeTestM,
|
||||
};
|
||||
|
||||
dSnap_packet l_snap;
|
||||
|
||||
struct CharaData {
|
||||
@@ -91,11 +96,11 @@ static const CharaData l_CharaData[] = {
|
||||
/* m11 */ 0x02,
|
||||
},
|
||||
{ // 0x05
|
||||
/* offset */ {0, -30, 0},
|
||||
/* radius */ 30,
|
||||
/* offset */ {0, DEMO_SELECT(40, -30), DEMO_SELECT(120, 0)},
|
||||
/* radius */ DEMO_SELECT(40, 30),
|
||||
/* height */ 60,
|
||||
/* minRatio */ 500,
|
||||
/* cullAngle */ 0x3FFF,
|
||||
/* minRatio */ DEMO_SELECT(200, 500),
|
||||
/* cullAngle */ DEMO_SELECT(15000, 0x3FFF),
|
||||
/* minPixels */ 2000,
|
||||
/* figRoom */ 0x03,
|
||||
/* m11 */ 0x02,
|
||||
@@ -154,7 +159,7 @@ static const CharaData l_CharaData[] = {
|
||||
/* offset */ {0, 0, 0},
|
||||
/* radius */ 50,
|
||||
/* height */ 60,
|
||||
/* minRatio */ 400,
|
||||
/* minRatio */ DEMO_SELECT(550, 400),
|
||||
/* cullAngle */ 0x3E80,
|
||||
/* minPixels */ 4000,
|
||||
/* figRoom */ 0x03,
|
||||
@@ -181,12 +186,12 @@ static const CharaData l_CharaData[] = {
|
||||
/* m11 */ 0x00,
|
||||
},
|
||||
{ // 0x0E
|
||||
/* offset */ {0, 30, 0},
|
||||
/* radius */ 50,
|
||||
/* height */ 120,
|
||||
/* minRatio */ 200,
|
||||
/* offset */ {0, DEMO_SELECT(20, 30), 0},
|
||||
/* radius */ DEMO_SELECT(60, 50),
|
||||
/* height */ DEMO_SELECT(130, 120),
|
||||
/* minRatio */ DEMO_SELECT(550, 200),
|
||||
/* cullAngle */ 0x4650,
|
||||
/* minPixels */ 3000,
|
||||
/* minPixels */ DEMO_SELECT(4000, 3000),
|
||||
/* figRoom */ 0x02,
|
||||
/* m11 */ 0x02,
|
||||
},
|
||||
@@ -332,10 +337,10 @@ static const CharaData l_CharaData[] = {
|
||||
},
|
||||
{ // 0x1D
|
||||
/* offset */ {0, 80, 0},
|
||||
/* radius */ 35,
|
||||
/* height */ 80,
|
||||
/* minRatio */ 500,
|
||||
/* cullAngle */ 0x4650,
|
||||
/* radius */ DEMO_SELECT(40, 35),
|
||||
/* height */ DEMO_SELECT(85, 80),
|
||||
/* minRatio */ DEMO_SELECT(550, 500),
|
||||
/* cullAngle */ DEMO_SELECT(10000, 18000),
|
||||
/* minPixels */ 5000,
|
||||
/* figRoom */ 0x02,
|
||||
/* m11 */ 0x02,
|
||||
@@ -465,7 +470,7 @@ static const CharaData l_CharaData[] = {
|
||||
/* radius */ 50,
|
||||
/* height */ 160,
|
||||
/* minRatio */ 500,
|
||||
/* cullAngle */ 0x2EE0,
|
||||
/* cullAngle */ DEMO_SELECT(10000, 12000),
|
||||
/* minPixels */ 4500,
|
||||
/* figRoom */ 0x01,
|
||||
/* m11 */ 0x02,
|
||||
@@ -475,7 +480,7 @@ static const CharaData l_CharaData[] = {
|
||||
/* radius */ 50,
|
||||
/* height */ 160,
|
||||
/* minRatio */ 500,
|
||||
/* cullAngle */ 0x2EE0,
|
||||
/* cullAngle */ DEMO_SELECT(10000, 12000),
|
||||
/* minPixels */ 4500,
|
||||
/* figRoom */ 0x01,
|
||||
/* m11 */ 0x02,
|
||||
@@ -495,18 +500,18 @@ static const CharaData l_CharaData[] = {
|
||||
/* radius */ 50,
|
||||
/* height */ 80,
|
||||
/* minRatio */ 500,
|
||||
/* cullAngle */ 0x2EE0,
|
||||
/* cullAngle */ DEMO_SELECT(10000, 12000),
|
||||
/* minPixels */ 4500,
|
||||
/* figRoom */ 0x01,
|
||||
/* m11 */ 0x02,
|
||||
},
|
||||
{ // 0x2E
|
||||
/* offset */ {0, 10, 0},
|
||||
/* offset */ {0, DEMO_SELECT(20, 10), DEMO_SELECT(10, 0)},
|
||||
/* radius */ 50,
|
||||
/* height */ 90,
|
||||
/* height */ DEMO_SELECT(80, 90),
|
||||
/* minRatio */ 500,
|
||||
/* cullAngle */ 0x32C8,
|
||||
/* minPixels */ 5000,
|
||||
/* cullAngle */ DEMO_SELECT(10000, 13000),
|
||||
/* minPixels */ DEMO_SELECT(4500, 5000),
|
||||
/* figRoom */ 0x01,
|
||||
/* m11 */ 0x02,
|
||||
},
|
||||
@@ -515,7 +520,7 @@ static const CharaData l_CharaData[] = {
|
||||
/* radius */ 50,
|
||||
/* height */ 80,
|
||||
/* minRatio */ 500,
|
||||
/* cullAngle */ 0x2EE0,
|
||||
/* cullAngle */ DEMO_SELECT(10000, 12000),
|
||||
/* minPixels */ 4500,
|
||||
/* figRoom */ 0x01,
|
||||
/* m11 */ 0x02,
|
||||
@@ -721,11 +726,11 @@ static const CharaData l_CharaData[] = {
|
||||
/* m11 */ 0x02,
|
||||
},
|
||||
{ // 0x44
|
||||
/* offset */ {0, 20, 0},
|
||||
/* radius */ 50,
|
||||
/* height */ 150,
|
||||
/* offset */ {0, 20, DEMO_SELECT(25, 0)},
|
||||
/* radius */ DEMO_SELECT(70, 50),
|
||||
/* height */ DEMO_SELECT(170, 150),
|
||||
/* minRatio */ 500,
|
||||
/* cullAngle */ 0x2EE0,
|
||||
/* cullAngle */ DEMO_SELECT(0x2000, 12000),
|
||||
/* minPixels */ 5000,
|
||||
/* figRoom */ 0x06,
|
||||
/* m11 */ 0x02,
|
||||
@@ -841,11 +846,11 @@ static const CharaData l_CharaData[] = {
|
||||
/* m11 */ 0x02,
|
||||
},
|
||||
{ // 0x50
|
||||
/* offset */ {0, -300, 0},
|
||||
/* radius */ 870,
|
||||
/* height */ 700,
|
||||
/* minRatio */ 100,
|
||||
/* cullAngle */ 0x6000,
|
||||
/* offset */ {0, DEMO_SELECT(1000, -300), DEMO_SELECT(100, 0)},
|
||||
/* radius */ DEMO_SELECT(2000, 870),
|
||||
/* height */ DEMO_SELECT(2000, 700),
|
||||
/* minRatio */ DEMO_SELECT(300, 100),
|
||||
/* cullAngle */ DEMO_SELECT(18000, 0x6000),
|
||||
/* minPixels */ 3000,
|
||||
/* figRoom */ 0x06,
|
||||
/* m11 */ 0x00,
|
||||
@@ -871,9 +876,9 @@ static const CharaData l_CharaData[] = {
|
||||
/* m11 */ 0x0E,
|
||||
},
|
||||
{ // 0x53
|
||||
/* offset */ {0, 0, 0},
|
||||
/* offset */ {0, DEMO_SELECT(15, 0), 0},
|
||||
/* radius */ 40,
|
||||
/* height */ 55,
|
||||
/* height */ DEMO_SELECT(100, 55),
|
||||
/* minRatio */ 500,
|
||||
/* cullAngle */ 0x2AF8,
|
||||
/* minPixels */ 4000,
|
||||
@@ -1071,11 +1076,11 @@ static const CharaData l_CharaData[] = {
|
||||
/* m11 */ 0x00,
|
||||
},
|
||||
{ // 0x67
|
||||
/* offset */ {0, -50, 0},
|
||||
/* radius */ 50,
|
||||
/* height */ 100,
|
||||
/* offset */ {0, DEMO_SELECT(0, -50), DEMO_SELECT(50, 0)},
|
||||
/* radius */ DEMO_SELECT(40, 50),
|
||||
/* height */ DEMO_SELECT(80, 100),
|
||||
/* minRatio */ 200,
|
||||
/* cullAngle */ 0x4000,
|
||||
/* cullAngle */ DEMO_SELECT(12000, 0x4000),
|
||||
/* minPixels */ 3000,
|
||||
/* figRoom */ 0x05,
|
||||
/* m11 */ 0x00,
|
||||
@@ -1301,10 +1306,10 @@ static const CharaData l_CharaData[] = {
|
||||
/* m11 */ 0x00,
|
||||
},
|
||||
{ // 0x7E
|
||||
/* offset */ {0, -200, 0},
|
||||
/* radius */ 360,
|
||||
/* height */ 450,
|
||||
/* minRatio */ 500,
|
||||
/* offset */ {0, DEMO_SELECT(300, -200), 0},
|
||||
/* radius */ DEMO_SELECT(600, 360),
|
||||
/* height */ DEMO_SELECT(900, 450),
|
||||
/* minRatio */ DEMO_SELECT(100, 500),
|
||||
/* cullAngle */ 0x4E20,
|
||||
/* minPixels */ 500,
|
||||
/* figRoom */ 0x04,
|
||||
@@ -1787,7 +1792,7 @@ void dSnap_packet::Execute() {
|
||||
if (ChkReleaseShutter()) {
|
||||
for (int col = 0; col < (s32)ARRAY_SIZE(m_tbl); col++) {
|
||||
m_tbl[col].Init();
|
||||
m_tbl[col].field_0x34 = 1e9f;
|
||||
m_tbl[col].field_0x34 = G_CM3D_F_INF;
|
||||
}
|
||||
field_0x14 = 0;
|
||||
}
|
||||
@@ -1803,7 +1808,7 @@ int dSnap_packet::Regist(const dSnap_Obj& obj) {
|
||||
int col;
|
||||
bool r6 = false;
|
||||
int r29;
|
||||
f32 f30 = -1e9f;
|
||||
f32 f30 = -G_CM3D_F_INF;
|
||||
for (col = 0; col < ARRAY_SIZE(m_tbl); col++) {
|
||||
if (f30 < m_tbl[col].field_0x34 && m_tbl[col].m_obj.GetPhoto() >= 0x48) {
|
||||
r6 = true;
|
||||
@@ -2044,12 +2049,16 @@ int dSnap_packet::JudgeGenzo() {
|
||||
if (col1 == -1) {
|
||||
return 0;
|
||||
}
|
||||
#if VERSION == VERSION_DEMO
|
||||
if (m_tbl[col1].m_obj.ChkSuccess(2000, 0.3f))
|
||||
#else
|
||||
int col2 = FindPhoto(0, 6);
|
||||
if (col2 == -1) {
|
||||
return 0;
|
||||
}
|
||||
if (m_tbl[col1].m_obj.ChkSuccess(1500, 0.2f) &&
|
||||
m_tbl[col2].m_obj.ChkSuccess(1500, 0.2f))
|
||||
#endif
|
||||
{
|
||||
return 5;
|
||||
} else {
|
||||
@@ -2094,6 +2103,13 @@ int dSnap_packet::JudgeGene() {
|
||||
|
||||
/* 800CEA80-800CEB80 .text JudgeFigure__12dSnap_packetFi */
|
||||
int dSnap_packet::JudgeFigure(int col) {
|
||||
#if VERSION == VERSION_DEMO
|
||||
// Fakematch?
|
||||
// Something that uses m_tbl[col] but doesn't produce any code needs to be up here in order to match on demo.
|
||||
// This breaks retail though, so maybe something else like a compiler flag is needed instead.
|
||||
m_tbl[col].m_obj.mActorPID = m_tbl[col].m_obj.mActorPID;
|
||||
#endif
|
||||
|
||||
if (field_0x10 >= 0xD0) {
|
||||
return 0;
|
||||
}
|
||||
@@ -2139,7 +2155,7 @@ void dSnap_packet::SetResult() {
|
||||
if (m_tbl[col].m_obj.mCapturedPixels == 0 || m_tbl[col].m_obj.GetPhoto() == 0) {
|
||||
continue;
|
||||
}
|
||||
JUT_ASSERT(VERSION_SELECT(2325, 2325, 2327, 2327), 0 <= m_tbl[col].m_obj.GetPhoto() && m_tbl[col].m_obj.GetPhoto() < DSNAP_TYPE_LAST_INDEX);
|
||||
JUT_ASSERT(VERSION_SELECT(2273, 2325, 2327, 2327), 0 <= m_tbl[col].m_obj.GetPhoto() && m_tbl[col].m_obj.GetPhoto() < DSNAP_TYPE_LAST_INDEX);
|
||||
if (m_tbl[col].m_obj.GetPhoto() < (s32)ARRAY_SIZE(sp8)) {
|
||||
if (sp8[m_tbl[col].m_obj.GetPhoto()] != 0) {
|
||||
continue;
|
||||
@@ -2221,8 +2237,9 @@ void dSnap_RegistFig(u8 r3, fopAc_ac_c* actor, const Vec& pos, s16 angleY, f32 f
|
||||
mDoMtx_stack_c::multVec(&sp8, &sp14);
|
||||
sp14 += pos;
|
||||
|
||||
int angY = angleY;
|
||||
dSnap_Obj sp20;
|
||||
sp20.SetGeo(sp14, chara.radius*f2, chara.height*f1, (int)angleY);
|
||||
sp20.SetGeo(sp14, chara.radius*f2, chara.height*f1, angY);
|
||||
sp20.SetInf(r3, actor, 0, 4, chara.cullAngle);
|
||||
dSnap_RegistSnapObj(sp20);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user