From 600d680970607b63530bb9d5c1a3f2686c62e4fb Mon Sep 17 00:00:00 2001 From: Dragorn421 Date: Sat, 7 Jun 2025 15:52:23 +0200 Subject: [PATCH 01/17] Add various undocumented resources in xmls 4 (#2604) --- assets/xml/objects/object_bv.xml | 182 ++++++++++++++++++++++++++ assets/xml/objects/object_bv_pal.xml | 182 ++++++++++++++++++++++++++ assets/xml/objects/object_du.xml | 34 +++++ assets/xml/objects/object_du_pal.xml | 34 +++++ assets/xml/objects/object_fd.xml | 81 ++++++++++++ assets/xml/objects/object_fd_pal.xml | 81 ++++++++++++ assets/xml/objects/object_mo.xml | 5 + assets/xml/objects/object_mo_pal.xml | 5 + assets/xml/objects/object_sst.xml | 173 ++++++++++++++++++++++++ assets/xml/objects/object_sst_pal.xml | 173 ++++++++++++++++++++++++ assets/xml/objects/object_xc.xml | 59 +++++++++ assets/xml/objects/object_xc_pal.xml | 59 +++++++++ 12 files changed, 1068 insertions(+) diff --git a/assets/xml/objects/object_bv.xml b/assets/xml/objects/object_bv.xml index b7d6d01b89..a0486c8f7f 100644 --- a/assets/xml/objects/object_bv.xml +++ b/assets/xml/objects/object_bv.xml @@ -75,5 +75,187 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/xml/objects/object_bv_pal.xml b/assets/xml/objects/object_bv_pal.xml index fa6b3a538f..f738c62d85 100644 --- a/assets/xml/objects/object_bv_pal.xml +++ b/assets/xml/objects/object_bv_pal.xml @@ -75,5 +75,187 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/xml/objects/object_du.xml b/assets/xml/objects/object_du.xml index feeafc83f8..6309a37e59 100644 --- a/assets/xml/objects/object_du.xml +++ b/assets/xml/objects/object_du.xml @@ -77,5 +77,39 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/xml/objects/object_du_pal.xml b/assets/xml/objects/object_du_pal.xml index 4e4ae09eb4..ad2c6b4fe5 100644 --- a/assets/xml/objects/object_du_pal.xml +++ b/assets/xml/objects/object_du_pal.xml @@ -77,5 +77,39 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/xml/objects/object_fd.xml b/assets/xml/objects/object_fd.xml index b18bfe25ce..750f80be4d 100644 --- a/assets/xml/objects/object_fd.xml +++ b/assets/xml/objects/object_fd.xml @@ -73,5 +73,86 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/xml/objects/object_fd_pal.xml b/assets/xml/objects/object_fd_pal.xml index 23fd822c65..ff91e48e11 100644 --- a/assets/xml/objects/object_fd_pal.xml +++ b/assets/xml/objects/object_fd_pal.xml @@ -73,5 +73,86 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/xml/objects/object_mo.xml b/assets/xml/objects/object_mo.xml index ad84a14026..1f82a6fe77 100644 --- a/assets/xml/objects/object_mo.xml +++ b/assets/xml/objects/object_mo.xml @@ -74,5 +74,10 @@ + + + + + diff --git a/assets/xml/objects/object_mo_pal.xml b/assets/xml/objects/object_mo_pal.xml index 17cd4fc2f4..34654ef1c5 100644 --- a/assets/xml/objects/object_mo_pal.xml +++ b/assets/xml/objects/object_mo_pal.xml @@ -74,5 +74,10 @@ + + + + + diff --git a/assets/xml/objects/object_sst.xml b/assets/xml/objects/object_sst.xml index 12f27e4321..fff77ae400 100644 --- a/assets/xml/objects/object_sst.xml +++ b/assets/xml/objects/object_sst.xml @@ -52,5 +52,178 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/xml/objects/object_sst_pal.xml b/assets/xml/objects/object_sst_pal.xml index fdbe2e799c..3ba9b09d57 100644 --- a/assets/xml/objects/object_sst_pal.xml +++ b/assets/xml/objects/object_sst_pal.xml @@ -52,5 +52,178 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/xml/objects/object_xc.xml b/assets/xml/objects/object_xc.xml index fbc458058f..fa0ee758ef 100644 --- a/assets/xml/objects/object_xc.xml +++ b/assets/xml/objects/object_xc.xml @@ -29,5 +29,64 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/xml/objects/object_xc_pal.xml b/assets/xml/objects/object_xc_pal.xml index 5576e4740d..6478af53b5 100644 --- a/assets/xml/objects/object_xc_pal.xml +++ b/assets/xml/objects/object_xc_pal.xml @@ -29,5 +29,64 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From da40e39c97a7d1ff05dd6c03a540edab4be996f7 Mon Sep 17 00:00:00 2001 From: Dragorn421 Date: Sat, 7 Jun 2025 16:51:44 +0200 Subject: [PATCH 02/17] Add Vtx[] resources in xmls for (partially) documented assets 7 (#2605) * Add Vtx[] resources in xmls for (partially) documented assets 7 * bss --- assets/xml/objects/gameplay_field_keep.xml | 72 ++++++++++++++ assets/xml/objects/object_bombf.xml | 14 +++ assets/xml/objects/object_bubble.xml | 3 + assets/xml/objects/object_gr.xml | 45 +++++++++ assets/xml/objects/object_hintnuts.xml | 33 +++++++ assets/xml/objects/object_ik.xml | 108 +++++++++++++++++++++ assets/xml/objects/object_jya_obj.xml | 99 +++++++++++++++++++ assets/xml/objects/object_km1.xml | 42 ++++++++ assets/xml/objects/object_kw1.xml | 46 +++++++++ assets/xml/objects/object_mb.xml | 90 +++++++++++++++++ assets/xml/objects/object_mizu_objects.xml | 54 +++++++++++ src/code/z_kankyo.c | 2 +- 12 files changed, 607 insertions(+), 1 deletion(-) diff --git a/assets/xml/objects/gameplay_field_keep.xml b/assets/xml/objects/gameplay_field_keep.xml index 432a963c80..3642fe0a00 100644 --- a/assets/xml/objects/gameplay_field_keep.xml +++ b/assets/xml/objects/gameplay_field_keep.xml @@ -8,24 +8,72 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -36,18 +84,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/xml/objects/object_bombf.xml b/assets/xml/objects/object_bombf.xml index 853e4b3385..3b69324cbf 100644 --- a/assets/xml/objects/object_bombf.xml +++ b/assets/xml/objects/object_bombf.xml @@ -10,5 +10,19 @@ + + + + + + + + + + + + + + diff --git a/assets/xml/objects/object_bubble.xml b/assets/xml/objects/object_bubble.xml index a502b4480e..0777a87c1f 100644 --- a/assets/xml/objects/object_bubble.xml +++ b/assets/xml/objects/object_bubble.xml @@ -2,5 +2,8 @@ + + + diff --git a/assets/xml/objects/object_gr.xml b/assets/xml/objects/object_gr.xml index 8f84870967..ad7a184772 100644 --- a/assets/xml/objects/object_gr.xml +++ b/assets/xml/objects/object_gr.xml @@ -13,6 +13,51 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/xml/objects/object_hintnuts.xml b/assets/xml/objects/object_hintnuts.xml index fe02e8adbe..852ec1141a 100644 --- a/assets/xml/objects/object_hintnuts.xml +++ b/assets/xml/objects/object_hintnuts.xml @@ -15,11 +15,44 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/xml/objects/object_ik.xml b/assets/xml/objects/object_ik.xml index a3578f27f6..55b4a6ff76 100644 --- a/assets/xml/objects/object_ik.xml +++ b/assets/xml/objects/object_ik.xml @@ -53,6 +53,66 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -80,9 +140,57 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/xml/objects/object_jya_obj.xml b/assets/xml/objects/object_jya_obj.xml index 1e203941f5..2c9c5a6fc8 100644 --- a/assets/xml/objects/object_jya_obj.xml +++ b/assets/xml/objects/object_jya_obj.xml @@ -1,28 +1,73 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -30,18 +75,69 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -74,6 +170,9 @@ + + + diff --git a/assets/xml/objects/object_km1.xml b/assets/xml/objects/object_km1.xml index 086666bf2d..25b1fae7f5 100644 --- a/assets/xml/objects/object_km1.xml +++ b/assets/xml/objects/object_km1.xml @@ -38,5 +38,47 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/xml/objects/object_kw1.xml b/assets/xml/objects/object_kw1.xml index 39120b108e..5b39db9f31 100644 --- a/assets/xml/objects/object_kw1.xml +++ b/assets/xml/objects/object_kw1.xml @@ -59,5 +59,51 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/xml/objects/object_mb.xml b/assets/xml/objects/object_mb.xml index c3ec222706..f10e27d645 100644 --- a/assets/xml/objects/object_mb.xml +++ b/assets/xml/objects/object_mb.xml @@ -56,6 +56,51 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -98,6 +143,51 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/xml/objects/object_mizu_objects.xml b/assets/xml/objects/object_mizu_objects.xml index b0abf34ec5..641c0a40e2 100644 --- a/assets/xml/objects/object_mizu_objects.xml +++ b/assets/xml/objects/object_mizu_objects.xml @@ -1,38 +1,92 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/code/z_kankyo.c b/src/code/z_kankyo.c index bdb35093b2..83699c82f3 100644 --- a/src/code/z_kankyo.c +++ b/src/code/z_kankyo.c @@ -239,7 +239,7 @@ s16 sSunDepthTestX; s16 sSunDepthTestY; #pragma increment_block_number "gc-eu:128 gc-eu-mq:128 gc-jp:128 gc-jp-ce:128 gc-jp-mq:128 gc-us:128 gc-us-mq:128" \ - "ique-cn:128 ntsc-1.0:128 ntsc-1.1:128 ntsc-1.2:128 pal-1.0:192 pal-1.1:192" + "ique-cn:128 ntsc-1.0:128 ntsc-1.1:128 ntsc-1.2:128 pal-1.0:128 pal-1.1:128" LightNode* sNGameOverLightNode; LightInfo sNGameOverLightInfo; From 37a89e340f54ad852fa7940488eaaf20bc45d5b4 Mon Sep 17 00:00:00 2001 From: Dragorn421 Date: Sat, 7 Jun 2025 17:10:36 +0200 Subject: [PATCH 03/17] Add Vtx[] resources in xmls for (partially) documented assets 8 (#2606) --- assets/xml/objects/object_mm.xml | 45 ++++++++ assets/xml/objects/object_okuta.xml | 48 +++++++++ assets/xml/objects/object_owl.xml | 104 +++++++++++++++++++ assets/xml/objects/object_pu_box.xml | 12 +++ assets/xml/objects/object_spot01_matoyab.xml | 6 ++ assets/xml/objects/object_spot01_objects.xml | 9 ++ assets/xml/objects/object_spot02_objects.xml | 21 ++++ assets/xml/objects/object_spot06_objects.xml | 15 +++ assets/xml/objects/object_spot08_obj.xml | 9 ++ assets/xml/objects/object_spot09_obj.xml | 20 +++- assets/xml/objects/object_spot12_obj.xml | 6 ++ assets/xml/objects/object_spot15_obj.xml | 6 ++ assets/xml/objects/object_spot16_obj.xml | 9 ++ assets/xml/objects/object_spot18_obj.xml | 17 +++ assets/xml/objects/object_timeblock.xml | 3 + assets/xml/objects/object_torch2.xml | 54 ++++++++++ assets/xml/objects/object_trap.xml | 9 ++ assets/xml/objects/object_vase.xml | 3 + assets/xml/objects/object_wallmaster.xml | 45 ++++++++ assets/xml/objects/object_wood02.xml | 3 + assets/xml/objects/object_ydan_objects.xml | 30 ++++++ assets/xml/objects/object_yukabyun.xml | 6 ++ assets/xml/objects/object_zl2.xml | 42 ++++++++ assets/xml/objects/object_zl4.xml | 56 +++++++++- 24 files changed, 576 insertions(+), 2 deletions(-) diff --git a/assets/xml/objects/object_mm.xml b/assets/xml/objects/object_mm.xml index 04963a6c6b..695333c65c 100644 --- a/assets/xml/objects/object_mm.xml +++ b/assets/xml/objects/object_mm.xml @@ -22,6 +22,51 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/xml/objects/object_okuta.xml b/assets/xml/objects/object_okuta.xml index 65d7dfd75c..72be4462de 100644 --- a/assets/xml/objects/object_okuta.xml +++ b/assets/xml/objects/object_okuta.xml @@ -24,9 +24,57 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/xml/objects/object_owl.xml b/assets/xml/objects/object_owl.xml index 36011ecd29..666363030c 100644 --- a/assets/xml/objects/object_owl.xml +++ b/assets/xml/objects/object_owl.xml @@ -25,6 +25,68 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -76,6 +138,48 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/xml/objects/object_pu_box.xml b/assets/xml/objects/object_pu_box.xml index 0535781401..a315bc38d8 100644 --- a/assets/xml/objects/object_pu_box.xml +++ b/assets/xml/objects/object_pu_box.xml @@ -1,12 +1,24 @@ + + + + + + + + + + + + diff --git a/assets/xml/objects/object_spot01_matoyab.xml b/assets/xml/objects/object_spot01_matoyab.xml index 3a4179dfa2..f6662b7100 100644 --- a/assets/xml/objects/object_spot01_matoyab.xml +++ b/assets/xml/objects/object_spot01_matoyab.xml @@ -3,11 +3,17 @@ + + + + + + diff --git a/assets/xml/objects/object_spot01_objects.xml b/assets/xml/objects/object_spot01_objects.xml index c976129d24..3ee06792f9 100644 --- a/assets/xml/objects/object_spot01_objects.xml +++ b/assets/xml/objects/object_spot01_objects.xml @@ -1,14 +1,23 @@ + + + + + + + + + diff --git a/assets/xml/objects/object_spot02_objects.xml b/assets/xml/objects/object_spot02_objects.xml index 04ac2476c5..e819a9074f 100644 --- a/assets/xml/objects/object_spot02_objects.xml +++ b/assets/xml/objects/object_spot02_objects.xml @@ -2,14 +2,35 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/xml/objects/object_spot06_objects.xml b/assets/xml/objects/object_spot06_objects.xml index 102772cd6c..3362cb42b9 100644 --- a/assets/xml/objects/object_spot06_objects.xml +++ b/assets/xml/objects/object_spot06_objects.xml @@ -1,23 +1,38 @@ + + + + + + + + + + + + + + + diff --git a/assets/xml/objects/object_spot08_obj.xml b/assets/xml/objects/object_spot08_obj.xml index f0d76701e7..bb3c63a2af 100644 --- a/assets/xml/objects/object_spot08_obj.xml +++ b/assets/xml/objects/object_spot08_obj.xml @@ -1,6 +1,9 @@ + + + @@ -10,6 +13,9 @@ + + + @@ -19,6 +25,9 @@ + + + diff --git a/assets/xml/objects/object_spot09_obj.xml b/assets/xml/objects/object_spot09_obj.xml index d86cf59874..4ce5387441 100644 --- a/assets/xml/objects/object_spot09_obj.xml +++ b/assets/xml/objects/object_spot09_obj.xml @@ -1,10 +1,28 @@ + + + + + + + + + - + + + + + + + + + + diff --git a/assets/xml/objects/object_spot12_obj.xml b/assets/xml/objects/object_spot12_obj.xml index 4bdf8dce11..9a0779dff7 100644 --- a/assets/xml/objects/object_spot12_obj.xml +++ b/assets/xml/objects/object_spot12_obj.xml @@ -1,11 +1,17 @@ + + + + + + diff --git a/assets/xml/objects/object_spot15_obj.xml b/assets/xml/objects/object_spot15_obj.xml index e1544bebd9..fe82dae7c1 100644 --- a/assets/xml/objects/object_spot15_obj.xml +++ b/assets/xml/objects/object_spot15_obj.xml @@ -1,11 +1,17 @@ + + + + + + diff --git a/assets/xml/objects/object_spot16_obj.xml b/assets/xml/objects/object_spot16_obj.xml index 88af8eeb7b..0687c8fd88 100644 --- a/assets/xml/objects/object_spot16_obj.xml +++ b/assets/xml/objects/object_spot16_obj.xml @@ -1,8 +1,17 @@ + + + + + + + + + diff --git a/assets/xml/objects/object_spot18_obj.xml b/assets/xml/objects/object_spot18_obj.xml index ca9d6ea485..388ef942cc 100644 --- a/assets/xml/objects/object_spot18_obj.xml +++ b/assets/xml/objects/object_spot18_obj.xml @@ -32,5 +32,22 @@ + + + + + + + + + + + + + + + + + diff --git a/assets/xml/objects/object_timeblock.xml b/assets/xml/objects/object_timeblock.xml index cfc47d3fe1..18f07608e7 100644 --- a/assets/xml/objects/object_timeblock.xml +++ b/assets/xml/objects/object_timeblock.xml @@ -1,5 +1,8 @@ + + + diff --git a/assets/xml/objects/object_torch2.xml b/assets/xml/objects/object_torch2.xml index 09d9ff8a40..5ef419c510 100644 --- a/assets/xml/objects/object_torch2.xml +++ b/assets/xml/objects/object_torch2.xml @@ -8,6 +8,60 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/xml/objects/object_trap.xml b/assets/xml/objects/object_trap.xml index d250939feb..0d8db0f9e8 100644 --- a/assets/xml/objects/object_trap.xml +++ b/assets/xml/objects/object_trap.xml @@ -5,8 +5,17 @@ + + + + + + + + + diff --git a/assets/xml/objects/object_vase.xml b/assets/xml/objects/object_vase.xml index ddb61620c5..71809a864b 100644 --- a/assets/xml/objects/object_vase.xml +++ b/assets/xml/objects/object_vase.xml @@ -1,6 +1,9 @@ + + + diff --git a/assets/xml/objects/object_wallmaster.xml b/assets/xml/objects/object_wallmaster.xml index f6729fbe28..26ec631073 100644 --- a/assets/xml/objects/object_wallmaster.xml +++ b/assets/xml/objects/object_wallmaster.xml @@ -10,6 +10,9 @@ + + + @@ -33,6 +36,48 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/xml/objects/object_wood02.xml b/assets/xml/objects/object_wood02.xml index acb18fb57e..e282217d4a 100644 --- a/assets/xml/objects/object_wood02.xml +++ b/assets/xml/objects/object_wood02.xml @@ -76,5 +76,8 @@ + + + diff --git a/assets/xml/objects/object_ydan_objects.xml b/assets/xml/objects/object_ydan_objects.xml index b779e46661..a6ee5e614b 100644 --- a/assets/xml/objects/object_ydan_objects.xml +++ b/assets/xml/objects/object_ydan_objects.xml @@ -18,15 +18,45 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/xml/objects/object_yukabyun.xml b/assets/xml/objects/object_yukabyun.xml index d03c960175..c1aeb83388 100644 --- a/assets/xml/objects/object_yukabyun.xml +++ b/assets/xml/objects/object_yukabyun.xml @@ -3,7 +3,13 @@ + + + + + + diff --git a/assets/xml/objects/object_zl2.xml b/assets/xml/objects/object_zl2.xml index 51e18228ea..46943d3650 100644 --- a/assets/xml/objects/object_zl2.xml +++ b/assets/xml/objects/object_zl2.xml @@ -24,6 +24,9 @@ + + + @@ -64,6 +67,9 @@ + + + @@ -73,7 +79,43 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/xml/objects/object_zl4.xml b/assets/xml/objects/object_zl4.xml index 211c8339e2..8c48f4b69e 100644 --- a/assets/xml/objects/object_zl4.xml +++ b/assets/xml/objects/object_zl4.xml @@ -55,8 +55,14 @@ - + + + + + + + @@ -87,6 +93,54 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From 484abb1d391bc34541c263e6dcfad187822139e3 Mon Sep 17 00:00:00 2001 From: Dragorn421 Date: Sat, 7 Jun 2025 17:26:59 +0200 Subject: [PATCH 04/17] Add Vtx[] resources in xmls for (partially) documented assets 9 (#2607) --- assets/xml/overlays/ovl_Boss_Ganon.xml | 84 +++++++++++++++++++ assets/xml/overlays/ovl_Boss_Ganon2.xml | 24 ++++++ assets/xml/overlays/ovl_Boss_Sst.xml | 14 +++- assets/xml/overlays/ovl_Demo_Shd.xml | 13 ++- assets/xml/overlays/ovl_En_Clear_Tag.xml | 24 ++++++ assets/xml/overlays/ovl_En_Ganon_Organ.xml | 6 ++ assets/xml/overlays/ovl_En_Sth.xml | 6 ++ assets/xml/textures/nintendo_rogo_static.xml | 10 ++- .../xml/textures/nintendo_rogo_static_v2.xml | 10 ++- src/overlays/actors/ovl_Boss_Sst/z_boss_sst.c | 10 +-- 10 files changed, 180 insertions(+), 21 deletions(-) diff --git a/assets/xml/overlays/ovl_Boss_Ganon.xml b/assets/xml/overlays/ovl_Boss_Ganon.xml index 229ab58e1b..9afa6d1251 100644 --- a/assets/xml/overlays/ovl_Boss_Ganon.xml +++ b/assets/xml/overlays/ovl_Boss_Ganon.xml @@ -16,6 +16,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -29,25 +65,73 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/xml/overlays/ovl_Boss_Ganon2.xml b/assets/xml/overlays/ovl_Boss_Ganon2.xml index 6b92b19a09..75e7ee9fee 100644 --- a/assets/xml/overlays/ovl_Boss_Ganon2.xml +++ b/assets/xml/overlays/ovl_Boss_Ganon2.xml @@ -2,8 +2,14 @@ + + + + + + @@ -13,17 +19,35 @@ + + + + + + + + + + + + + + + + + + diff --git a/assets/xml/overlays/ovl_Boss_Sst.xml b/assets/xml/overlays/ovl_Boss_Sst.xml index 35584224de..93f66c6756 100644 --- a/assets/xml/overlays/ovl_Boss_Sst.xml +++ b/assets/xml/overlays/ovl_Boss_Sst.xml @@ -1,8 +1,14 @@ - - - - + + + + + + + + + + diff --git a/assets/xml/overlays/ovl_Demo_Shd.xml b/assets/xml/overlays/ovl_Demo_Shd.xml index 967f383ec3..49e5e30114 100644 --- a/assets/xml/overlays/ovl_Demo_Shd.xml +++ b/assets/xml/overlays/ovl_Demo_Shd.xml @@ -1,8 +1,13 @@ - - - - + + + + + + + + + diff --git a/assets/xml/overlays/ovl_En_Clear_Tag.xml b/assets/xml/overlays/ovl_En_Clear_Tag.xml index 05c9c29865..cfdb5fb764 100644 --- a/assets/xml/overlays/ovl_En_Clear_Tag.xml +++ b/assets/xml/overlays/ovl_En_Clear_Tag.xml @@ -1,14 +1,38 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/xml/overlays/ovl_En_Ganon_Organ.xml b/assets/xml/overlays/ovl_En_Ganon_Organ.xml index 639d68ad38..6668b85fd0 100644 --- a/assets/xml/overlays/ovl_En_Ganon_Organ.xml +++ b/assets/xml/overlays/ovl_En_Ganon_Organ.xml @@ -13,7 +13,13 @@ + + + + + + diff --git a/assets/xml/overlays/ovl_En_Sth.xml b/assets/xml/overlays/ovl_En_Sth.xml index 93d211cb99..2c4671e468 100644 --- a/assets/xml/overlays/ovl_En_Sth.xml +++ b/assets/xml/overlays/ovl_En_Sth.xml @@ -7,6 +7,12 @@ + + + + + + diff --git a/assets/xml/textures/nintendo_rogo_static.xml b/assets/xml/textures/nintendo_rogo_static.xml index c5e555fb18..229ccf2eb5 100644 --- a/assets/xml/textures/nintendo_rogo_static.xml +++ b/assets/xml/textures/nintendo_rogo_static.xml @@ -1,8 +1,10 @@ - - - - + + + + + + diff --git a/assets/xml/textures/nintendo_rogo_static_v2.xml b/assets/xml/textures/nintendo_rogo_static_v2.xml index 56792cf47f..f4df8cff3c 100644 --- a/assets/xml/textures/nintendo_rogo_static_v2.xml +++ b/assets/xml/textures/nintendo_rogo_static_v2.xml @@ -1,8 +1,10 @@ - - - - + + + + + + diff --git a/src/overlays/actors/ovl_Boss_Sst/z_boss_sst.c b/src/overlays/actors/ovl_Boss_Sst/z_boss_sst.c index fd18b10ece..e0c2239361 100644 --- a/src/overlays/actors/ovl_Boss_Sst/z_boss_sst.c +++ b/src/overlays/actors/ovl_Boss_Sst/z_boss_sst.c @@ -2769,7 +2769,7 @@ void BossSst_DrawHand(Actor* thisx, PlayState* play) { gSPSegment(POLY_OPA_DISP++, 0x08, &D_80116280[2]); } else { gDPSetEnvColor(POLY_OPA_DISP++, sStaticColor.r, sStaticColor.g, sStaticColor.b, 0); - gSPSegment(POLY_OPA_DISP++, 0x08, sBodyStaticDList); + gSPSegment(POLY_OPA_DISP++, 0x08, sBodyStaticDL); } SkelAnime_DrawFlexOpa(play, this->skelAnime.skeleton, this->skelAnime.jointTable, this->skelAnime.dListCount, @@ -2795,7 +2795,7 @@ void BossSst_DrawHand(Actor* thisx, PlayState* play) { &trail->world.rot); Matrix_Scale(0.02f, 0.02f, 0.02f, MTXMODE_APPLY); - gSPSegment(POLY_XLU_DISP++, 0x08, sHandTrailDList); + gSPSegment(POLY_XLU_DISP++, 0x08, sHandTrailDL); gDPSetPrimColor(POLY_XLU_DISP++, 0x00, 0x00, ((3 - i) * 10) + 20, 0, ((3 - i) * 20) + 50, ((3 - i) * 30) + 70); @@ -2904,7 +2904,7 @@ void BossSst_DrawHead(Actor* thisx, PlayState* play) { gSPSegment(POLY_OPA_DISP++, 0x08, &D_80116280[2]); } else { gDPSetEnvColor(POLY_OPA_DISP++, sStaticColor.r, sStaticColor.g, sStaticColor.b, 0); - gSPSegment(POLY_OPA_DISP++, 0x08, sBodyStaticDList); + gSPSegment(POLY_OPA_DISP++, 0x08, sBodyStaticDL); } } else { Gfx_SetupDL_25Xlu(play->state.gfxCtx); @@ -2956,7 +2956,7 @@ void BossSst_DrawHead(Actor* thisx, PlayState* play) { Matrix_Scale(1.0f, 1.0f, 1.0f, MTXMODE_APPLY); MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_boss_sst.c", 6934); - gSPDisplayList(POLY_XLU_DISP++, sIntroVanishDList); + gSPDisplayList(POLY_XLU_DISP++, sIntroVanishDL); } CLOSE_DISPS(play->state.gfxCtx, "../z_boss_sst.c", 6941); @@ -3257,7 +3257,7 @@ void BossSst_DrawEffects(Actor* thisx, PlayState* play) { Matrix_Scale(effect->scale * 0.001f, 1.0f, effect->scale * 0.001f, MTXMODE_APPLY); MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_boss_sst.c", 7423); - gSPDisplayList(POLY_XLU_DISP++, sShadowDList); + gSPDisplayList(POLY_XLU_DISP++, sShadowDL); effect++; } } From cba896c45cd697fa371f867b7f066201f2587fd4 Mon Sep 17 00:00:00 2001 From: hiisuya <112015628+hiisuya@users.noreply.github.com> Date: Sat, 7 Jun 2025 14:25:55 -0500 Subject: [PATCH 05/17] Doc Actor: En_Ma2 (Adult Malon) (#2593) * ma2 actor docs start * doc inftable entries in ma2 * removed testing prints * added file description * format.py ran --- include/save.h | 6 +- src/overlays/actors/ovl_En_Ma2/z_en_ma2.c | 144 ++++++++++++---------- src/overlays/actors/ovl_En_Ma2/z_en_ma2.h | 6 +- 3 files changed, 87 insertions(+), 69 deletions(-) diff --git a/include/save.h b/include/save.h index a4e99546fb..f3d3397dce 100644 --- a/include/save.h +++ b/include/save.h @@ -782,9 +782,9 @@ typedef enum LinkAge { #define INFTABLE_TALKED_TO_MALON_FIRST_TIME 0x84 #define INFTABLE_TOLD_EPONA_IS_SCARED 0x85 #define INFTABLE_MALON_SPAWNED_AT_HYRULE_CASTLE 0x8B -#define INFTABLE_8C 0x8C -#define INFTABLE_8D 0x8D -#define INFTABLE_8E 0x8E +#define INFTABLE_TALKED_TO_ADULT_MALON_AFTER_SONG 0x8C +#define INFTABLE_8D 0x8D // unreachable flag in EnMa2 +#define INFTABLE_PLAYED_SONG_FOR_ADULT_MALON 0x8E #define INFTABLE_94 0x94 #define INFTABLE_97 0x97 #define INFTABLE_9A 0x9A diff --git a/src/overlays/actors/ovl_En_Ma2/z_en_ma2.c b/src/overlays/actors/ovl_En_Ma2/z_en_ma2.c index 88098c93bf..ed01e29e4a 100644 --- a/src/overlays/actors/ovl_En_Ma2/z_en_ma2.c +++ b/src/overlays/actors/ovl_En_Ma2/z_en_ma2.c @@ -1,3 +1,9 @@ +/* + * File: z_en_ma2.c + * Overlay: En_Ma2 + * Description: Adult Malon (Stables / Ranch Pre-Epona) + */ + #include "z_en_ma2.h" #include "gfx.h" @@ -25,14 +31,14 @@ void EnMa2_Destroy(Actor* thisx, PlayState* play); void EnMa2_Update(Actor* thisx, PlayState* play); void EnMa2_Draw(Actor* thisx, PlayState* play); -void func_80AA1AE4(EnMa2* this, PlayState* play); -s32 func_80AA1C68(EnMa2* this); +void EnMa2_UpdateTracking(EnMa2* this, PlayState* play); +s32 EnMa2_IsSinging(EnMa2* this); void EnMa2_UpdateEyes(EnMa2* this); -void func_80AA1DB4(EnMa2* this, PlayState* play); -void func_80AA2018(EnMa2* this, PlayState* play); -void func_80AA204C(EnMa2* this, PlayState* play); -void func_80AA20E4(EnMa2* this, PlayState* play); -void func_80AA21C8(EnMa2* this, PlayState* play); +void EnMa2_UpdateSinging(EnMa2* this, PlayState* play); +void EnMa2_WaitToEndTalk(EnMa2* this, PlayState* play); +void EnMa2_WaitForOcarina(EnMa2* this, PlayState* play); +void EnMa2_WaitForEponasSong(EnMa2* this, PlayState* play); +void EnMa2_ForceTalkAfterSong(EnMa2* this, PlayState* play); ActorProfile En_Ma2_Profile = { /**/ ACTOR_EN_MA2, @@ -69,11 +75,11 @@ static ColliderCylinderInit sCylinderInit = { static CollisionCheckInfoInit2 sColChkInfoInit = { 0, 0, 0, 0, MASS_IMMOVABLE }; typedef enum EnMa2Animation { - /* 0 */ ENMA2_ANIM_0, - /* 1 */ ENMA2_ANIM_1, - /* 2 */ ENMA2_ANIM_2, - /* 3 */ ENMA2_ANIM_3, - /* 4 */ ENMA2_ANIM_4 + /* 0 */ MALON_ADULT_ANIM_IDLE, + /* 1 */ MALON_ADULT_ANIM_IDLE_NOMORPH, + /* 2 */ MALON_ADULT_ANIM_STANDING, + /* 3 */ MALON_ADULT_ANIM_SING, + /* 4 */ MALON_ADULT_ANIM_SING_NOMORPH } EnMa2Animation; static AnimationFrameCountInfo sAnimationInfo[] = { @@ -92,9 +98,9 @@ u16 EnMa2_GetTextId(PlayState* play, Actor* thisx) { return 0x2056; } if (IS_NIGHT) { - if (GET_INFTABLE(INFTABLE_8C)) { + if (GET_INFTABLE(INFTABLE_TALKED_TO_ADULT_MALON_AFTER_SONG)) { return 0x2052; - } else if (GET_INFTABLE(INFTABLE_8E)) { + } else if (GET_INFTABLE(INFTABLE_PLAYED_SONG_FOR_ADULT_MALON)) { return 0x2051; } else { return 0x2050; @@ -110,9 +116,10 @@ s16 EnMa2_UpdateTalkState(PlayState* play, Actor* thisx) { case TEXT_STATE_CLOSING: switch (thisx->textId) { case 0x2051: - SET_INFTABLE(INFTABLE_8C); + SET_INFTABLE(INFTABLE_TALKED_TO_ADULT_MALON_AFTER_SONG); talkState = NPC_TALK_STATE_ACTION; break; + // unreachable, 0x2053 is a text id for Gossip Stones, which EnMa2 never sets case 0x2053: SET_INFTABLE(INFTABLE_8D); talkState = NPC_TALK_STATE_IDLE; @@ -135,7 +142,7 @@ s16 EnMa2_UpdateTalkState(PlayState* play, Actor* thisx) { return talkState; } -void func_80AA1AE4(EnMa2* this, PlayState* play) { +void EnMa2_UpdateTracking(EnMa2* this, PlayState* play) { Player* player = GET_PLAYER(play); s16 trackingMode; @@ -151,47 +158,58 @@ void func_80AA1AE4(EnMa2* this, PlayState* play) { Npc_TrackPoint(&this->actor, &this->interactInfo, 0, trackingMode); } -u16 func_80AA1B58(EnMa2* this, PlayState* play) { +typedef enum { + MALON_ADULT_SPAWN_NONE = 0, + MALON_ADULT_SPAWN_DAY_STABLES_NO_EPONA, + MALON_ADULT_SPAWN_NIGHT_RANCH_NO_EPONA, + MALON_ADULT_SPAWN_ALWAYS +} EnMa2SpawnIndex; + +u16 EnMa2_GetSpawnIndex(EnMa2* this, PlayState* play) { if (LINK_IS_CHILD) { - return 0; + return MALON_ADULT_SPAWN_NONE; } if (!GET_EVENTCHKINF(EVENTCHKINF_EPONA_OBTAINED) && (play->sceneId == SCENE_STABLE) && IS_DAY && (this->actor.shape.rot.z == 5)) { - return 1; + return MALON_ADULT_SPAWN_DAY_STABLES_NO_EPONA; } if (!GET_EVENTCHKINF(EVENTCHKINF_EPONA_OBTAINED) && (play->sceneId == SCENE_LON_LON_RANCH) && IS_NIGHT && (this->actor.shape.rot.z == 6)) { - return 2; + return MALON_ADULT_SPAWN_NIGHT_RANCH_NO_EPONA; } if (!GET_EVENTCHKINF(EVENTCHKINF_EPONA_OBTAINED) || (play->sceneId != SCENE_LON_LON_RANCH)) { - return 0; + return MALON_ADULT_SPAWN_NONE; } if ((this->actor.shape.rot.z == 7) && IS_DAY) { - return 3; + return MALON_ADULT_SPAWN_ALWAYS; } if ((this->actor.shape.rot.z == 8) && IS_NIGHT) { - return 3; + return MALON_ADULT_SPAWN_ALWAYS; } - return 0; + return MALON_ADULT_SPAWN_NONE; } -s32 func_80AA1C68(EnMa2* this) { +s32 EnMa2_IsSinging(EnMa2* this) { if (this->skelAnime.animation != &gMalonAdultSingAnim) { - return 0; + return false; } + if (this->interactInfo.talkState != NPC_TALK_STATE_IDLE) { - return 0; + return false; } + this->blinkTimer = 0; + if (this->eyeIndex != 2) { - return 0; + return false; } + this->mouthIndex = 2; - return 1; + return true; } void EnMa2_UpdateEyes(EnMa2* this) { - if ((!func_80AA1C68(this)) && (DECR(this->blinkTimer) == 0)) { + if ((!EnMa2_IsSinging(this)) && (DECR(this->blinkTimer) == 0)) { this->eyeIndex++; if (this->eyeIndex >= 3) { this->blinkTimer = Rand_S16Offset(30, 30); @@ -207,19 +225,19 @@ void EnMa2_ChangeAnim(EnMa2* this, s32 index) { sAnimationInfo[index].mode, sAnimationInfo[index].morphFrames); } -void func_80AA1DB4(EnMa2* this, PlayState* play) { +void EnMa2_UpdateSinging(EnMa2* this, PlayState* play) { if (this->skelAnime.animation == &gMalonAdultSingAnim) { if (this->interactInfo.talkState == NPC_TALK_STATE_IDLE) { - if (this->isNotSinging) { + if (this->singingDisabled) { // Turn on singing Audio_ToggleMalonSinging(false); - this->isNotSinging = false; + this->singingDisabled = false; } } else { - if (!this->isNotSinging) { + if (!this->singingDisabled) { // Turn off singing Audio_ToggleMalonSinging(true); - this->isNotSinging = true; + this->singingDisabled = true; } } } @@ -235,24 +253,24 @@ void EnMa2_Init(Actor* thisx, PlayState* play) { Collider_SetCylinder(play, &this->collider, &this->actor, &sCylinderInit); CollisionCheck_SetInfo2(&this->actor.colChkInfo, DamageTable_Get(22), &sColChkInfoInit); - switch (func_80AA1B58(this, play)) { - case 1: - EnMa2_ChangeAnim(this, ENMA2_ANIM_2); - this->actionFunc = func_80AA2018; + switch (EnMa2_GetSpawnIndex(this, play)) { + case MALON_ADULT_SPAWN_DAY_STABLES_NO_EPONA: + EnMa2_ChangeAnim(this, MALON_ADULT_ANIM_STANDING); + this->actionFunc = EnMa2_WaitToEndTalk; break; - case 2: - EnMa2_ChangeAnim(this, ENMA2_ANIM_3); - this->actionFunc = func_80AA204C; + case MALON_ADULT_SPAWN_NIGHT_RANCH_NO_EPONA: + EnMa2_ChangeAnim(this, MALON_ADULT_ANIM_SING); + this->actionFunc = EnMa2_WaitForOcarina; break; - case 3: + case MALON_ADULT_SPAWN_ALWAYS: if (GET_INFTABLE(INFTABLE_8D)) { - EnMa2_ChangeAnim(this, ENMA2_ANIM_0); + EnMa2_ChangeAnim(this, MALON_ADULT_ANIM_IDLE); } else { - EnMa2_ChangeAnim(this, ENMA2_ANIM_3); + EnMa2_ChangeAnim(this, MALON_ADULT_ANIM_SING); } - this->actionFunc = func_80AA2018; + this->actionFunc = EnMa2_WaitToEndTalk; break; - case 0: + case MALON_ADULT_SPAWN_NONE: Actor_Kill(&this->actor); return; } @@ -270,48 +288,48 @@ void EnMa2_Destroy(Actor* thisx, PlayState* play) { Collider_DestroyCylinder(play, &this->collider); } -void func_80AA2018(EnMa2* this, PlayState* play) { +void EnMa2_WaitToEndTalk(EnMa2* this, PlayState* play) { if (this->interactInfo.talkState == NPC_TALK_STATE_ACTION) { this->actor.flags &= ~ACTOR_FLAG_TALK_OFFER_AUTO_ACCEPTED; this->interactInfo.talkState = NPC_TALK_STATE_IDLE; } } -void func_80AA204C(EnMa2* this, PlayState* play) { +void EnMa2_WaitForOcarina(EnMa2* this, PlayState* play) { Player* player = GET_PLAYER(play); if (player->stateFlags2 & PLAYER_STATE2_24) { player->stateFlags2 |= PLAYER_STATE2_25; player->unk_6A8 = &this->actor; Message_StartOcarina(play, OCARINA_ACTION_CHECK_EPONA); - this->actionFunc = func_80AA20E4; + this->actionFunc = EnMa2_WaitForEponasSong; } else if (this->actor.xzDistToPlayer < 30.0f + this->collider.dim.radius) { player->stateFlags2 |= PLAYER_STATE2_23; } } -void func_80AA20E4(EnMa2* this, PlayState* play) { +void EnMa2_WaitForEponasSong(EnMa2* this, PlayState* play) { Player* player = GET_PLAYER(play); if (play->msgCtx.ocarinaMode >= OCARINA_MODE_04) { - this->actionFunc = func_80AA204C; + this->actionFunc = EnMa2_WaitForOcarina; play->msgCtx.ocarinaMode = OCARINA_MODE_04; } else if (play->msgCtx.ocarinaMode == OCARINA_MODE_03) { Audio_PlaySfxGeneral(NA_SE_SY_CORRECT_CHIME, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb); - this->unk_208 = 0x1E; - SET_INFTABLE(INFTABLE_8E); - this->actionFunc = func_80AA21C8; + this->timer = 0x1E; + SET_INFTABLE(INFTABLE_PLAYED_SONG_FOR_ADULT_MALON); + this->actionFunc = EnMa2_ForceTalkAfterSong; play->msgCtx.ocarinaMode = OCARINA_MODE_04; } else { player->stateFlags2 |= PLAYER_STATE2_23; } } -void func_80AA21C8(EnMa2* this, PlayState* play) { +void EnMa2_ForceTalkAfterSong(EnMa2* this, PlayState* play) { Player* player = GET_PLAYER(play); - if (DECR(this->unk_208)) { + if (DECR(this->timer)) { player->stateFlags2 |= PLAYER_STATE2_23; } else { if (this->interactInfo.talkState == NPC_TALK_STATE_IDLE) { @@ -319,7 +337,7 @@ void func_80AA21C8(EnMa2* this, PlayState* play) { Message_CloseTextbox(play); } else { this->actor.flags &= ~ACTOR_FLAG_TALK_OFFER_AUTO_ACCEPTED; - this->actionFunc = func_80AA2018; + this->actionFunc = EnMa2_WaitToEndTalk; } } } @@ -333,9 +351,9 @@ void EnMa2_Update(Actor* thisx, PlayState* play) { SkelAnime_Update(&this->skelAnime); EnMa2_UpdateEyes(this); this->actionFunc(this, play); - func_80AA1DB4(this, play); - func_80AA1AE4(this, play); - if (this->actionFunc != func_80AA20E4) { + EnMa2_UpdateSinging(this, play); + EnMa2_UpdateTracking(this, play); + if (this->actionFunc != EnMa2_WaitForEponasSong) { Npc_UpdateTalking(play, &this->actor, &this->interactInfo.talkState, this->collider.dim.radius + 30.0f, EnMa2_GetTextId, EnMa2_UpdateTalkState); } @@ -362,8 +380,8 @@ s32 EnMa2_OverrideLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3f* p } if ((limbIndex == MALON_ADULT_CHEST_AND_NECK_LIMB) || (limbIndex == MALON_ADULT_LEFT_SHOULDER_LIMB) || (limbIndex == MALON_ADULT_RIGHT_SHOULDER_LIMB)) { - rot->y += Math_SinS(this->unk_212[limbIndex].y) * 200.0f; - rot->z += Math_CosS(this->unk_212[limbIndex].z) * 200.0f; + rot->y += Math_SinS(this->upperBodyRot[limbIndex].y) * 200.0f; + rot->z += Math_CosS(this->upperBodyRot[limbIndex].z) * 200.0f; } return false; } diff --git a/src/overlays/actors/ovl_En_Ma2/z_en_ma2.h b/src/overlays/actors/ovl_En_Ma2/z_en_ma2.h index c312591b94..3e2a9b4b86 100644 --- a/src/overlays/actors/ovl_En_Ma2/z_en_ma2.h +++ b/src/overlays/actors/ovl_En_Ma2/z_en_ma2.h @@ -37,12 +37,12 @@ typedef struct EnMa2 { /* 0x0190 */ EnMa2ActionFunc actionFunc; /* 0x0194 */ ColliderCylinder collider; /* 0x01E0 */ NpcInteractInfo interactInfo; - /* 0x0208 */ s16 unk_208; - /* 0x020A */ s16 isNotSinging; + /* 0x0208 */ s16 timer; + /* 0x020A */ s16 singingDisabled; /* 0x020C */ s16 blinkTimer; /* 0x020E */ s16 eyeIndex; /* 0x0210 */ s16 mouthIndex; - /* 0x0212 */ Vec3s unk_212[MALON_ADULT_LIMB_MAX]; + /* 0x0212 */ Vec3s upperBodyRot[MALON_ADULT_LIMB_MAX]; } EnMa2; // size = 0x0284 #endif From c418bbb19cef7621eed6d8a18e1e4b97c30f8862 Mon Sep 17 00:00:00 2001 From: Dragorn421 Date: Sat, 7 Jun 2025 23:57:18 +0200 Subject: [PATCH 06/17] Add Vtx[] resources in xmls for (partially) documented assets 10 (#2609) * Add Vtx[] resources in xmls for (partially) documented assets 10 * bss --- assets/xml/objects/object_du.xml | 48 +++ assets/xml/objects/object_du_pal.xml | 48 +++ assets/xml/objects/object_goma.xml | 109 +++++++ assets/xml/objects/object_goma_pal.xml | 107 +++++++ assets/xml/objects/object_mo.xml | 144 ++++++++- assets/xml/objects/object_mo_pal.xml | 146 ++++++++- assets/xml/objects/object_tw.xml | 315 +++++++++++++++++- assets/xml/objects/object_tw_pal.xml | 406 +++++++++++++++++++++++- assets/xml/objects/object_xc.xml | 54 ++++ assets/xml/objects/object_xc_pal.xml | 54 ++++ src/overlays/actors/ovl_En_Xc/z_en_xc.c | 2 +- 11 files changed, 1410 insertions(+), 23 deletions(-) diff --git a/assets/xml/objects/object_du.xml b/assets/xml/objects/object_du.xml index 6309a37e59..3535c98e97 100644 --- a/assets/xml/objects/object_du.xml +++ b/assets/xml/objects/object_du.xml @@ -78,10 +78,58 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/xml/objects/object_du_pal.xml b/assets/xml/objects/object_du_pal.xml index ad2c6b4fe5..1ea1309b78 100644 --- a/assets/xml/objects/object_du_pal.xml +++ b/assets/xml/objects/object_du_pal.xml @@ -78,10 +78,58 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/xml/objects/object_goma.xml b/assets/xml/objects/object_goma.xml index be843c7ea2..f2429cd2b9 100644 --- a/assets/xml/objects/object_goma.xml +++ b/assets/xml/objects/object_goma.xml @@ -90,6 +90,110 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -162,8 +266,13 @@ + + + + + diff --git a/assets/xml/objects/object_goma_pal.xml b/assets/xml/objects/object_goma_pal.xml index 95c7f6ce0b..dbee83f7ca 100644 --- a/assets/xml/objects/object_goma_pal.xml +++ b/assets/xml/objects/object_goma_pal.xml @@ -90,6 +90,110 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -162,6 +266,9 @@ + + + diff --git a/assets/xml/objects/object_mo.xml b/assets/xml/objects/object_mo.xml index 1f82a6fe77..9844361f58 100644 --- a/assets/xml/objects/object_mo.xml +++ b/assets/xml/objects/object_mo.xml @@ -3,10 +3,132 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -53,19 +175,37 @@ + + + + + + + + + - + + + + + + + + + + diff --git a/assets/xml/objects/object_mo_pal.xml b/assets/xml/objects/object_mo_pal.xml index 34654ef1c5..71078c6a95 100644 --- a/assets/xml/objects/object_mo_pal.xml +++ b/assets/xml/objects/object_mo_pal.xml @@ -3,10 +3,132 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -52,20 +174,38 @@ - + + + + + + + + + + - + + + + + + + + + + diff --git a/assets/xml/objects/object_tw.xml b/assets/xml/objects/object_tw.xml index e99bd2c2aa..922d28ac65 100644 --- a/assets/xml/objects/object_tw.xml +++ b/assets/xml/objects/object_tw.xml @@ -76,6 +76,92 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -159,34 +245,58 @@ + + + + + + - + + + + + + + + + + - + + + + - + + + + + + + @@ -199,50 +309,95 @@ - + + + + + + + + + + + + + - + + + + - + + + + + + + + + + + + + - + + + + - + + + + - + + + + + + + + + + + + + @@ -292,6 +447,92 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -334,6 +575,59 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -415,6 +709,9 @@ + + + diff --git a/assets/xml/objects/object_tw_pal.xml b/assets/xml/objects/object_tw_pal.xml index e77e3c247e..2b777f3d3a 100644 --- a/assets/xml/objects/object_tw_pal.xml +++ b/assets/xml/objects/object_tw_pal.xml @@ -76,6 +76,92 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -106,7 +192,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -132,6 +264,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -155,34 +334,58 @@ + + + + + + + + + + + + + + + - + + + + - + + + + + + + @@ -195,50 +398,95 @@ - + + + + + + + + + + + + + - + + + + - + + + + + + + + + + + + + - + + + + - + + + + - + + + + + + + + + + + + + @@ -288,6 +536,92 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -330,6 +664,59 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -411,6 +798,9 @@ + + + diff --git a/assets/xml/objects/object_xc.xml b/assets/xml/objects/object_xc.xml index fa0ee758ef..f6f30b2f44 100644 --- a/assets/xml/objects/object_xc.xml +++ b/assets/xml/objects/object_xc.xml @@ -26,8 +26,17 @@ + + + + + + + + + @@ -46,6 +55,51 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/xml/objects/object_xc_pal.xml b/assets/xml/objects/object_xc_pal.xml index 6478af53b5..7d20f23661 100644 --- a/assets/xml/objects/object_xc_pal.xml +++ b/assets/xml/objects/object_xc_pal.xml @@ -26,8 +26,17 @@ + + + + + + + + + @@ -46,6 +55,51 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/overlays/actors/ovl_En_Xc/z_en_xc.c b/src/overlays/actors/ovl_En_Xc/z_en_xc.c index 2820225931..60a247490b 100644 --- a/src/overlays/actors/ovl_En_Xc/z_en_xc.c +++ b/src/overlays/actors/ovl_En_Xc/z_en_xc.c @@ -1416,7 +1416,7 @@ void func_80B3F3D8(void) { } #pragma increment_block_number "gc-eu:64 gc-eu-mq:64 gc-jp:64 gc-jp-ce:64 gc-jp-mq:64 gc-us:64 gc-us-mq:64 ique-cn:64" \ - "ntsc-1.0:64 ntsc-1.1:128 ntsc-1.2:128 pal-1.0:128 pal-1.1:128" + "ntsc-1.0:64 ntsc-1.1:64 ntsc-1.2:64 pal-1.0:64 pal-1.1:64" void EnXc_PlayDiveSFX(Vec3f* src, PlayState* play) { static Vec3f D_80B42DA0; From d3d5898f17ba1177e6f5098a64fa55e5f6279757 Mon Sep 17 00:00:00 2001 From: Dragorn421 Date: Sun, 8 Jun 2025 01:37:46 +0200 Subject: [PATCH 07/17] Update docs/Documenting.md (#1265) * Update docs/Documenting.md * fix --- docs/Documenting.md | 149 +++++++++++++++++++++++++------------------- src/code/z_actor.c | 2 +- src/code/z_camera.c | 4 +- 3 files changed, 87 insertions(+), 68 deletions(-) diff --git a/docs/Documenting.md b/docs/Documenting.md index 03a12ebbd4..72bb5e1fa9 100644 --- a/docs/Documenting.md +++ b/docs/Documenting.md @@ -2,44 +2,57 @@ # Documentation Style Guide This project uses [Doxygen](https://www.doxygen.nl/index.html) to generate documentation pages from comments found in the source files. This guide focuses on writing compatible comments and ensuring consistency across the codebase. -```diff -- Note - -As the codebase is constantly changing, only document what is complete, well-understood and not -already covered by good naming. This is especially true for function parameters and return values. -Also note that there is no obligation to completing the documentation steps for functions you -work on if you do not want to at the time. -``` + +However to keep the documentation readable in text and favor consistency, the Doxygen commands that should be used are restricted to what this document mentions. + To generate a doxygen manual for the project, ensure you have doxygen installed and then cd into the project root directory and run `doxygen Doxyfile`. -## Documenting Functions -For functions, a description of the function's purpose should go above the function: -```c -/** - * My description of this function - */ -void foo(void); -``` -Further considerations: -- Any comments inside the function should follow the usual `//` or `/**/` comment styles. -- For documenting return values, place a `@return` at the bottom of the function comment followed by the description of the return value. This should only be done if the name of the function is not self-explanatory and is well-understood. -- For documenting parameters, place a `@param` between the comment and the @return (if applicable) followed by the name of the parameter and a brief description. This should only be done if the name of the parameter is not self-explanatory and is well-understood. -- All `@param`s should come before `@return` and be in the same order the parameters appear in the function declaration. Note that this does not mean you should add empty `@params` for parameters deemed self-explanatory. +The documentation can then be browsed by opening `docs/doxygen/html/index.html` in a web browser. + +## Documenting Functions + +Any comments inside functions, except bugs ([see below](#documenting-bugs)), should use `//`-style comments, even if spanning over multiple lines. + +A simple example of documenting a function with just a description (note the leading `/**`): -A full example would be as follows: (however in practice functions such as this would be considered self-explanatory) ```c /** - * This is an example - * - * @param bar the input - * @return bar multiplied by 2 + * Update the crawl sound timer, and play the crawling sound when it reaches 0. */ -s32 foo(s32 bar) { - return 2*bar; -} +void EnInsect_UpdateCrawlSfx(EnInsect* this) { ``` +A more complete example: + +```c +/** + * Request to either increase or consume magic. + * + * @param amount the positive-valued amount to either increase or decrease magic by + * @param type how the magic is increased or consumed. + * + * @return false if the request failed + */ +s32 Magic_RequestChange(PlayState* play, s16 amount, s16 type) { +``` + +Note: + +- Documentation for self-explanatory arguments (`@param`) and return values (`@return`) may be omitted. +- `@param` commands should not have empty lines in between. +- Different commands (main description, `@param`, `@return`, ...) should be separated by empty lines. + +Other directives that may be used for documenting functions: + +- `@see` to reference something else ([see below](#linking-related-information)). +- `@note` to bring attention to some of the function behavior. + ## Documenting Variables -Documentation of variables should include what this variable is used for if the name is not completely clear and if applicable whether a set of defines or enumerations should be used alongside it (which should be linked with `@see`, see below) + +In case the name of a variable isn't completely clear, documentation can provide a description. + +If applicable, it may refer to a set of defines or enumerations that should be used with it (those should be linked with `@see`, [see below](#linking-related-information)). + ```c /** * My description of this variable @@ -48,53 +61,59 @@ s32 foo; ``` ## Documenting Files -File documentation should go near the top of the file, below includes. It should only feature information that is general to the file. + +File documentation should be located at the top of the file, above `#include`s. + +File documentation should only feature information that is general to the file or the system it implements. + ```c /** - * @file file_name.c + * @file z_fcurve_data_skelanime.c + * @brief Curve skeleton animation system * - * My description of this file + * A curve skeleton has a fixed number of limbs, ... +... */ ``` ## Other ### Documenting Bugs: -Bugs should be documented on the line above where the bug begins. -```c -//! @bug description -``` -### Linking related information: -`@see` should be used to provide links to related information where appropriate, for example: -```c -/** - * Save File Data - * @see SaveContext - */ -SaveContext gSaveContext; -``` -In the case of functions, `@see` should come before the first `@param`. -### HTML -You can include html tags in your doc comments, however it is strongly advised against doing this if it greatly reduces readability of the code comments. -```c -/** - * My
- * Newline
- * Doc Comment - */ -``` -### LaTeX -You can embed [LaTeX](https://wikipedia.org/wiki/LaTeX) in your doc comments if useful to do so. -For inline rendering: +Bugs should be documented on the line above where the bug begins. + +```c +//! @bug Missing early return +``` + +Bug described on multiple lines should still use the `//!` syntax, over multiple lines. For example: + +```c +//! @bug this code was clearly meaning to print `abs(camera->camDataIdx)` as a +//! one-or-two-digit number, instead of `i`. +``` + +### Linking related information: + +`@see` should be used to provide links to related information where appropriate, for example: + ```c /** - * \f$ \textrm{Your LaTeX Here} \f$ - */ -``` -For centered rendering on a separate line: -```c -/** - * \f[ \textrm{Your LaTeX Here} \f] + * Sets the next framebuffer to the framebuffer associated to `task`. + * If there is no current buffer or it is time to swap, this buffer will be swapped to + * immediately, otherwise it will be swapped to later in Sched_HandleRetrace. + * + * @see Sched_HandleRetrace */ +void Sched_SetNextFramebufferFromTask(Scheduler* sc, OSScTask* task) { ``` + +In the case of functions, `@see` should come before the first `@param`. + +`@see` may also be used for documenting files or variables. + +### HTML and LaTeX + +It is possible to include HTML and LaTeX in documentation comments. + +However it is prefered not to do so, so that the raw text stays readable when looked at as plain text, for example when browsing the source code. diff --git a/src/code/z_actor.c b/src/code/z_actor.c index 5a0fe9b1c3..dfec9188f9 100644 --- a/src/code/z_actor.c +++ b/src/code/z_actor.c @@ -3854,7 +3854,7 @@ Actor* Actor_GetProjectileActor(PlayState* play, Actor* refActor, f32 radius) { actor = actor->next; } else { //! @bug The projectile actor gets unsafely casted to a hookshot to check its timer, even though - // it can also be an arrow. + //! it can also be an arrow. // Luckily, the field at the same offset in the arrow actor is the x component of a vector // which will rarely ever be 0. So it's very unlikely for this bug to cause an issue. if ((Math_Vec3f_DistXYZ(&refActor->world.pos, &actor->world.pos) > radius) || diff --git a/src/code/z_camera.c b/src/code/z_camera.c index 36c3f0b15f..ce1fa53c00 100644 --- a/src/code/z_camera.c +++ b/src/code/z_camera.c @@ -7750,7 +7750,7 @@ void Camera_PrintSettings(Camera* camera) { sp50[i++] = '-'; } - //! @bug: this code was clearly meaning to print `abs(camera->bgCamIndex)` as a + //! @bug this code was clearly meaning to print `abs(camera->bgCamIndex)` as a //! one-or-two-digit number, instead of `i`. // "sp50[i++] = ..." matches here, but is undefined behavior due to conflicting // reads/writes between sequence points, triggering warnings. Work around by @@ -8624,7 +8624,7 @@ s32 Camera_RequestBgCam(Camera* camera, s32 requestedBgCamIndex) { Camera_CopyDataToRegs(camera, camera->mode); } else if (settingChangeSuccessful < -1) { //! @bug: `settingChangeSuccessful` is a bool and is likely checking the wrong value. This can never pass. - // The actual return of Camera_RequestSettingImpl or bgCamIndex would make more sense. + //! The actual return of Camera_RequestSettingImpl or bgCamIndex would make more sense. PRINTF(VT_COL(RED, WHITE) "camera: error: illegal camera ID (%d) !! (%d|%d|%d)\n" VT_RST, requestedBgCamIndex, camera->camId, BGCHECK_SCENE, requestedCamSetting); } From 714f43b9e9395bfe654f0c8c371157db03849d5e Mon Sep 17 00:00:00 2001 From: Dragorn421 Date: Sun, 8 Jun 2025 03:31:57 +0200 Subject: [PATCH 08/17] Commit `do_action_static` (#2597) * Commit `do_action_static` * fix * rm do_action_static from write_source.txt --- .../do_action_static/do_action_static.c | 481 ++++++++++++++++++ .../do_action_static/do_action_static.h | 140 +++++ include/interface.h | 5 - src/code/z_construct.c | 2 + tools/assets/extract/write_source.txt | 1 - 5 files changed, 623 insertions(+), 6 deletions(-) create mode 100644 assets/textures/do_action_static/do_action_static.c create mode 100644 assets/textures/do_action_static/do_action_static.h diff --git a/assets/textures/do_action_static/do_action_static.c b/assets/textures/do_action_static/do_action_static.c new file mode 100644 index 0000000000..646a3edb66 --- /dev/null +++ b/assets/textures/do_action_static/do_action_static.c @@ -0,0 +1,481 @@ +#include "do_action_static.h" + +#if OOT_NTSC + +// Japanese + +u64 gAttackDoActionJPNTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = { +#include "assets/textures/do_action_static/gAttackDoActionJPNTex.ia4.inc.c" +}; + +u64 gCheckDoActionJPNTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = { +#include "assets/textures/do_action_static/gCheckDoActionJPNTex.ia4.inc.c" +}; + +u64 gEnterDoActionJPNTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = { +#include "assets/textures/do_action_static/gEnterDoActionJPNTex.ia4.inc.c" +}; + +u64 gReturnDoActionJPNTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = { +#include "assets/textures/do_action_static/gReturnDoActionJPNTex.ia4.inc.c" +}; + +u64 gOpenDoActionJPNTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = { +#include "assets/textures/do_action_static/gOpenDoActionJPNTex.ia4.inc.c" +}; + +u64 gJumpDoActionJPNTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = { +#include "assets/textures/do_action_static/gJumpDoActionJPNTex.ia4.inc.c" +}; + +u64 gDecideDoActionJPNTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = { +#include "assets/textures/do_action_static/gDecideDoActionJPNTex.ia4.inc.c" +}; + +u64 gDiveDoActionJPNTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = { +#include "assets/textures/do_action_static/gDiveDoActionJPNTex.ia4.inc.c" +}; + +u64 gFasterDoActionJPNTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = { +#include "assets/textures/do_action_static/gFasterDoActionJPNTex.ia4.inc.c" +}; + +u64 gThrowDoActionJPNTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = { +#include "assets/textures/do_action_static/gThrowDoActionJPNTex.ia4.inc.c" +}; + +u64 gUnusedNaviDoActionJPNTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = { +#include "assets/textures/do_action_static/gUnusedNaviDoActionJPNTex.ia4.inc.c" +}; + +u64 gClimbDoActionJPNTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = { +#include "assets/textures/do_action_static/gClimbDoActionJPNTex.ia4.inc.c" +}; + +u64 gDropDoActionJPNTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = { +#include "assets/textures/do_action_static/gDropDoActionJPNTex.ia4.inc.c" +}; + +u64 gDownDoActionJPNTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = { +#include "assets/textures/do_action_static/gDownDoActionJPNTex.ia4.inc.c" +}; + +u64 gSaveDoActionJPNTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = { +#include "assets/textures/do_action_static/gSaveDoActionJPNTex.ia4.inc.c" +}; + +u64 gSpeakDoActionJPNTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = { +#include "assets/textures/do_action_static/gSpeakDoActionJPNTex.ia4.inc.c" +}; + +u64 gNextDoActionJPNTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = { +#include "assets/textures/do_action_static/gNextDoActionJPNTex.ia4.inc.c" +}; + +u64 gGrabDoActionJPNTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = { +#include "assets/textures/do_action_static/gGrabDoActionJPNTex.ia4.inc.c" +}; + +u64 gStopDoActionJPNTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = { +#include "assets/textures/do_action_static/gStopDoActionJPNTex.ia4.inc.c" +}; + +u64 gPutAwayDoActionJPNTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = { +#include "assets/textures/do_action_static/gPutAwayDoActionJPNTex.ia4.inc.c" +}; + +u64 gReelDoActionJPNTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = { +#include "assets/textures/do_action_static/gReelDoActionJPNTex.ia4.inc.c" +}; + +u64 gNum1DoActionJPNTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = { +#include "assets/textures/do_action_static/gNum1DoActionJPNTex.ia4.inc.c" +}; + +u64 gNum2DoActionJPNTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = { +#include "assets/textures/do_action_static/gNum2DoActionJPNTex.ia4.inc.c" +}; + +u64 gNum3DoActionJPNTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = { +#include "assets/textures/do_action_static/gNum3DoActionJPNTex.ia4.inc.c" +}; + +u64 gNum4DoActionJPNTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = { +#include "assets/textures/do_action_static/gNum4DoActionJPNTex.ia4.inc.c" +}; + +u64 gNum5DoActionJPNTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = { +#include "assets/textures/do_action_static/gNum5DoActionJPNTex.ia4.inc.c" +}; + +u64 gNum6DoActionJPNTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = { +#include "assets/textures/do_action_static/gNum6DoActionJPNTex.ia4.inc.c" +}; + +u64 gNum7DoActionJPNTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = { +#include "assets/textures/do_action_static/gNum7DoActionJPNTex.ia4.inc.c" +}; + +u64 gNum8DoActionJPNTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = { +#include "assets/textures/do_action_static/gNum8DoActionJPNTex.ia4.inc.c" +}; + +#endif + +// English + +u64 gAttackDoActionENGTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = { +#include "assets/textures/do_action_static/gAttackDoActionENGTex.ia4.inc.c" +}; + +u64 gCheckDoActionENGTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = { +#include "assets/textures/do_action_static/gCheckDoActionENGTex.ia4.inc.c" +}; + +u64 gEnterDoActionENGTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = { +#include "assets/textures/do_action_static/gEnterDoActionENGTex.ia4.inc.c" +}; + +u64 gReturnDoActionENGTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = { +#include "assets/textures/do_action_static/gReturnDoActionENGTex.ia4.inc.c" +}; + +u64 gOpenDoActionENGTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = { +#include "assets/textures/do_action_static/gOpenDoActionENGTex.ia4.inc.c" +}; + +u64 gJumpDoActionENGTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = { +#include "assets/textures/do_action_static/gJumpDoActionENGTex.ia4.inc.c" +}; + +u64 gDecideDoActionENGTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = { +#include "assets/textures/do_action_static/gDecideDoActionENGTex.ia4.inc.c" +}; + +u64 gDiveDoActionENGTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = { +#include "assets/textures/do_action_static/gDiveDoActionENGTex.ia4.inc.c" +}; + +u64 gFasterDoActionENGTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = { +#include "assets/textures/do_action_static/gFasterDoActionENGTex.ia4.inc.c" +}; + +u64 gThrowDoActionENGTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = { +#include "assets/textures/do_action_static/gThrowDoActionENGTex.ia4.inc.c" +}; + +u64 gUnusedNaviDoActionENGTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = { +#include "assets/textures/do_action_static/gUnusedNaviDoActionENGTex.ia4.inc.c" +}; + +u64 gClimbDoActionENGTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = { +#include "assets/textures/do_action_static/gClimbDoActionENGTex.ia4.inc.c" +}; + +u64 gDropDoActionENGTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = { +#include "assets/textures/do_action_static/gDropDoActionENGTex.ia4.inc.c" +}; + +u64 gDownDoActionENGTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = { +#include "assets/textures/do_action_static/gDownDoActionENGTex.ia4.inc.c" +}; + +u64 gSaveDoActionENGTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = { +#include "assets/textures/do_action_static/gSaveDoActionENGTex.ia4.inc.c" +}; + +u64 gSpeakDoActionENGTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = { +#include "assets/textures/do_action_static/gSpeakDoActionENGTex.ia4.inc.c" +}; + +u64 gNextDoActionENGTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = { +#include "assets/textures/do_action_static/gNextDoActionENGTex.ia4.inc.c" +}; + +u64 gGrabDoActionENGTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = { +#include "assets/textures/do_action_static/gGrabDoActionENGTex.ia4.inc.c" +}; + +u64 gStopDoActionENGTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = { +#include "assets/textures/do_action_static/gStopDoActionENGTex.ia4.inc.c" +}; + +u64 gPutAwayDoActionENGTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = { +#include "assets/textures/do_action_static/gPutAwayDoActionENGTex.ia4.inc.c" +}; + +u64 gReelDoActionENGTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = { +#include "assets/textures/do_action_static/gReelDoActionENGTex.ia4.inc.c" +}; + +u64 gNum1DoActionENGTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = { +#include "assets/textures/do_action_static/gNum1DoActionENGTex.ia4.inc.c" +}; + +u64 gNum2DoActionENGTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = { +#include "assets/textures/do_action_static/gNum2DoActionENGTex.ia4.inc.c" +}; + +u64 gNum3DoActionENGTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = { +#include "assets/textures/do_action_static/gNum3DoActionENGTex.ia4.inc.c" +}; + +u64 gNum4DoActionENGTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = { +#include "assets/textures/do_action_static/gNum4DoActionENGTex.ia4.inc.c" +}; + +u64 gNum5DoActionENGTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = { +#include "assets/textures/do_action_static/gNum5DoActionENGTex.ia4.inc.c" +}; + +u64 gNum6DoActionENGTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = { +#include "assets/textures/do_action_static/gNum6DoActionENGTex.ia4.inc.c" +}; + +u64 gNum7DoActionENGTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = { +#include "assets/textures/do_action_static/gNum7DoActionENGTex.ia4.inc.c" +}; + +u64 gNum8DoActionENGTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = { +#include "assets/textures/do_action_static/gNum8DoActionENGTex.ia4.inc.c" +}; + +#if OOT_PAL + +// German + +u64 gAttackDoActionGERTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = { +#include "assets/textures/do_action_static/gAttackDoActionGERTex.ia4.inc.c" +}; + +u64 gCheckDoActionGERTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = { +#include "assets/textures/do_action_static/gCheckDoActionGERTex.ia4.inc.c" +}; + +u64 gEnterDoActionGERTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = { +#include "assets/textures/do_action_static/gEnterDoActionGERTex.ia4.inc.c" +}; + +u64 gReturnDoActionGERTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = { +#include "assets/textures/do_action_static/gReturnDoActionGERTex.ia4.inc.c" +}; + +u64 gOpenDoActionGERTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = { +#include "assets/textures/do_action_static/gOpenDoActionGERTex.ia4.inc.c" +}; + +u64 gJumpDoActionGERTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = { +#include "assets/textures/do_action_static/gJumpDoActionGERTex.ia4.inc.c" +}; + +u64 gDecideDoActionGERTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = { +#include "assets/textures/do_action_static/gDecideDoActionGERTex.ia4.inc.c" +}; + +u64 gDiveDoActionGERTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = { +#include "assets/textures/do_action_static/gDiveDoActionGERTex.ia4.inc.c" +}; + +u64 gFasterDoActionGERTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = { +#include "assets/textures/do_action_static/gFasterDoActionGERTex.ia4.inc.c" +}; + +u64 gThrowDoActionGERTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = { +#include "assets/textures/do_action_static/gThrowDoActionGERTex.ia4.inc.c" +}; + +u64 gUnusedNaviDoActionGERTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = { +#include "assets/textures/do_action_static/gUnusedNaviDoActionGERTex.ia4.inc.c" +}; + +u64 gClimbDoActionGERTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = { +#include "assets/textures/do_action_static/gClimbDoActionGERTex.ia4.inc.c" +}; + +u64 gDropDoActionGERTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = { +#include "assets/textures/do_action_static/gDropDoActionGERTex.ia4.inc.c" +}; + +u64 gDownDoActionGERTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = { +#include "assets/textures/do_action_static/gDownDoActionGERTex.ia4.inc.c" +}; + +u64 gSaveDoActionGERTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = { +#include "assets/textures/do_action_static/gSaveDoActionGERTex.ia4.inc.c" +}; + +u64 gSpeakDoActionGERTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = { +#include "assets/textures/do_action_static/gSpeakDoActionGERTex.ia4.inc.c" +}; + +u64 gNextDoActionGERTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = { +#include "assets/textures/do_action_static/gNextDoActionGERTex.ia4.inc.c" +}; + +u64 gGrabDoActionGERTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = { +#include "assets/textures/do_action_static/gGrabDoActionGERTex.ia4.inc.c" +}; + +u64 gStopDoActionGERTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = { +#include "assets/textures/do_action_static/gStopDoActionGERTex.ia4.inc.c" +}; + +u64 gPutAwayDoActionGERTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = { +#include "assets/textures/do_action_static/gPutAwayDoActionGERTex.ia4.inc.c" +}; + +u64 gReelDoActionGERTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = { +#include "assets/textures/do_action_static/gReelDoActionGERTex.ia4.inc.c" +}; + +u64 gNum1DoActionGERTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = { +#include "assets/textures/do_action_static/gNum1DoActionGERTex.ia4.inc.c" +}; + +u64 gNum2DoActionGERTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = { +#include "assets/textures/do_action_static/gNum2DoActionGERTex.ia4.inc.c" +}; + +u64 gNum3DoActionGERTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = { +#include "assets/textures/do_action_static/gNum3DoActionGERTex.ia4.inc.c" +}; + +u64 gNum4DoActionGERTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = { +#include "assets/textures/do_action_static/gNum4DoActionGERTex.ia4.inc.c" +}; + +u64 gNum5DoActionGERTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = { +#include "assets/textures/do_action_static/gNum5DoActionGERTex.ia4.inc.c" +}; + +u64 gNum6DoActionGERTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = { +#include "assets/textures/do_action_static/gNum6DoActionGERTex.ia4.inc.c" +}; + +u64 gNum7DoActionGERTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = { +#include "assets/textures/do_action_static/gNum7DoActionGERTex.ia4.inc.c" +}; + +u64 gNum8DoActionGERTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = { +#include "assets/textures/do_action_static/gNum8DoActionGERTex.ia4.inc.c" +}; + +// French + +u64 gAttackDoActionFRATex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = { +#include "assets/textures/do_action_static/gAttackDoActionFRATex.ia4.inc.c" +}; + +u64 gCheckDoActionFRATex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = { +#include "assets/textures/do_action_static/gCheckDoActionFRATex.ia4.inc.c" +}; + +u64 gEnterDoActionFRATex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = { +#include "assets/textures/do_action_static/gEnterDoActionFRATex.ia4.inc.c" +}; + +u64 gReturnDoActionFRATex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = { +#include "assets/textures/do_action_static/gReturnDoActionFRATex.ia4.inc.c" +}; + +u64 gOpenDoActionFRATex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = { +#include "assets/textures/do_action_static/gOpenDoActionFRATex.ia4.inc.c" +}; + +u64 gJumpDoActionFRATex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = { +#include "assets/textures/do_action_static/gJumpDoActionFRATex.ia4.inc.c" +}; + +u64 gDecideDoActionFRATex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = { +#include "assets/textures/do_action_static/gDecideDoActionFRATex.ia4.inc.c" +}; + +u64 gDiveDoActionFRATex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = { +#include "assets/textures/do_action_static/gDiveDoActionFRATex.ia4.inc.c" +}; + +u64 gFasterDoActionFRATex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = { +#include "assets/textures/do_action_static/gFasterDoActionFRATex.ia4.inc.c" +}; + +u64 gThrowDoActionFRATex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = { +#include "assets/textures/do_action_static/gThrowDoActionFRATex.ia4.inc.c" +}; + +u64 gUnusedNaviDoActionFRATex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = { +#include "assets/textures/do_action_static/gUnusedNaviDoActionFRATex.ia4.inc.c" +}; + +u64 gClimbDoActionFRATex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = { +#include "assets/textures/do_action_static/gClimbDoActionFRATex.ia4.inc.c" +}; + +u64 gDropDoActionFRATex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = { +#include "assets/textures/do_action_static/gDropDoActionFRATex.ia4.inc.c" +}; + +u64 gDownDoActionFRATex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = { +#include "assets/textures/do_action_static/gDownDoActionFRATex.ia4.inc.c" +}; + +u64 gSaveDoActionFRATex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = { +#include "assets/textures/do_action_static/gSaveDoActionFRATex.ia4.inc.c" +}; + +u64 gSpeakDoActionFRATex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = { +#include "assets/textures/do_action_static/gSpeakDoActionFRATex.ia4.inc.c" +}; + +u64 gNextDoActionFRATex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = { +#include "assets/textures/do_action_static/gNextDoActionFRATex.ia4.inc.c" +}; + +u64 gGrabDoActionFRATex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = { +#include "assets/textures/do_action_static/gGrabDoActionFRATex.ia4.inc.c" +}; + +u64 gStopDoActionFRATex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = { +#include "assets/textures/do_action_static/gStopDoActionFRATex.ia4.inc.c" +}; + +u64 gPutAwayDoActionFRATex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = { +#include "assets/textures/do_action_static/gPutAwayDoActionFRATex.ia4.inc.c" +}; + +u64 gReelDoActionFRATex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = { +#include "assets/textures/do_action_static/gReelDoActionFRATex.ia4.inc.c" +}; + +u64 gNum1DoActionFRATex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = { +#include "assets/textures/do_action_static/gNum1DoActionFRATex.ia4.inc.c" +}; + +u64 gNum2DoActionFRATex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = { +#include "assets/textures/do_action_static/gNum2DoActionFRATex.ia4.inc.c" +}; + +u64 gNum3DoActionFRATex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = { +#include "assets/textures/do_action_static/gNum3DoActionFRATex.ia4.inc.c" +}; + +u64 gNum4DoActionFRATex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = { +#include "assets/textures/do_action_static/gNum4DoActionFRATex.ia4.inc.c" +}; + +u64 gNum5DoActionFRATex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = { +#include "assets/textures/do_action_static/gNum5DoActionFRATex.ia4.inc.c" +}; + +u64 gNum6DoActionFRATex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = { +#include "assets/textures/do_action_static/gNum6DoActionFRATex.ia4.inc.c" +}; + +u64 gNum7DoActionFRATex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = { +#include "assets/textures/do_action_static/gNum7DoActionFRATex.ia4.inc.c" +}; + +u64 gNum8DoActionFRATex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)] = { +#include "assets/textures/do_action_static/gNum8DoActionFRATex.ia4.inc.c" +}; + +#endif diff --git a/assets/textures/do_action_static/do_action_static.h b/assets/textures/do_action_static/do_action_static.h new file mode 100644 index 0000000000..dcbed37869 --- /dev/null +++ b/assets/textures/do_action_static/do_action_static.h @@ -0,0 +1,140 @@ +#ifndef DO_ACTION_STATIC_H +#define DO_ACTION_STATIC_H + +#include "ultra64.h" +#include "tex_len.h" +#include "versions.h" + +#define DO_ACTION_TEX_WIDTH 48 +#define DO_ACTION_TEX_HEIGHT 16 +#define DO_ACTION_TEX_SIZE (DO_ACTION_TEX_WIDTH * DO_ACTION_TEX_HEIGHT / 2) + +#if OOT_NTSC + +extern u64 gAttackDoActionJPNTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)]; +extern u64 gCheckDoActionJPNTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)]; +extern u64 gEnterDoActionJPNTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)]; +extern u64 gReturnDoActionJPNTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)]; +extern u64 gOpenDoActionJPNTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)]; +extern u64 gJumpDoActionJPNTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)]; +extern u64 gDecideDoActionJPNTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)]; +extern u64 gDiveDoActionJPNTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)]; +extern u64 gFasterDoActionJPNTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)]; +extern u64 gThrowDoActionJPNTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)]; +extern u64 gUnusedNaviDoActionJPNTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)]; +extern u64 gClimbDoActionJPNTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)]; +extern u64 gDropDoActionJPNTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)]; +extern u64 gDownDoActionJPNTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)]; +extern u64 gSaveDoActionJPNTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)]; +extern u64 gSpeakDoActionJPNTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)]; +extern u64 gNextDoActionJPNTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)]; +extern u64 gGrabDoActionJPNTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)]; +extern u64 gStopDoActionJPNTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)]; +extern u64 gPutAwayDoActionJPNTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)]; +extern u64 gReelDoActionJPNTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)]; +extern u64 gNum1DoActionJPNTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)]; +extern u64 gNum2DoActionJPNTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)]; +extern u64 gNum3DoActionJPNTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)]; +extern u64 gNum4DoActionJPNTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)]; +extern u64 gNum5DoActionJPNTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)]; +extern u64 gNum6DoActionJPNTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)]; +extern u64 gNum7DoActionJPNTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)]; +extern u64 gNum8DoActionJPNTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)]; + +#endif + +extern u64 gAttackDoActionENGTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)]; +extern u64 gCheckDoActionENGTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)]; +extern u64 gEnterDoActionENGTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)]; +extern u64 gReturnDoActionENGTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)]; +extern u64 gOpenDoActionENGTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)]; +extern u64 gJumpDoActionENGTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)]; +extern u64 gDecideDoActionENGTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)]; +extern u64 gDiveDoActionENGTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)]; +extern u64 gFasterDoActionENGTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)]; +extern u64 gThrowDoActionENGTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)]; +extern u64 gUnusedNaviDoActionENGTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)]; +extern u64 gClimbDoActionENGTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)]; +extern u64 gDropDoActionENGTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)]; +extern u64 gDownDoActionENGTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)]; +extern u64 gSaveDoActionENGTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)]; +extern u64 gSpeakDoActionENGTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)]; +extern u64 gNextDoActionENGTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)]; +extern u64 gGrabDoActionENGTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)]; +extern u64 gStopDoActionENGTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)]; +extern u64 gPutAwayDoActionENGTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)]; +extern u64 gReelDoActionENGTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)]; +extern u64 gNum1DoActionENGTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)]; +extern u64 gNum2DoActionENGTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)]; +extern u64 gNum3DoActionENGTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)]; +extern u64 gNum4DoActionENGTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)]; +extern u64 gNum5DoActionENGTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)]; +extern u64 gNum6DoActionENGTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)]; +extern u64 gNum7DoActionENGTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)]; +extern u64 gNum8DoActionENGTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)]; + +#if OOT_PAL + +extern u64 gAttackDoActionGERTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)]; +extern u64 gCheckDoActionGERTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)]; +extern u64 gEnterDoActionGERTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)]; +extern u64 gReturnDoActionGERTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)]; +extern u64 gOpenDoActionGERTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)]; +extern u64 gJumpDoActionGERTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)]; +extern u64 gDecideDoActionGERTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)]; +extern u64 gDiveDoActionGERTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)]; +extern u64 gFasterDoActionGERTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)]; +extern u64 gThrowDoActionGERTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)]; +extern u64 gUnusedNaviDoActionGERTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)]; +extern u64 gClimbDoActionGERTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)]; +extern u64 gDropDoActionGERTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)]; +extern u64 gDownDoActionGERTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)]; +extern u64 gSaveDoActionGERTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)]; +extern u64 gSpeakDoActionGERTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)]; +extern u64 gNextDoActionGERTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)]; +extern u64 gGrabDoActionGERTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)]; +extern u64 gStopDoActionGERTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)]; +extern u64 gPutAwayDoActionGERTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)]; +extern u64 gReelDoActionGERTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)]; +extern u64 gNum1DoActionGERTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)]; +extern u64 gNum2DoActionGERTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)]; +extern u64 gNum3DoActionGERTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)]; +extern u64 gNum4DoActionGERTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)]; +extern u64 gNum5DoActionGERTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)]; +extern u64 gNum6DoActionGERTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)]; +extern u64 gNum7DoActionGERTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)]; +extern u64 gNum8DoActionGERTex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)]; + +extern u64 gAttackDoActionFRATex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)]; +extern u64 gCheckDoActionFRATex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)]; +extern u64 gEnterDoActionFRATex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)]; +extern u64 gReturnDoActionFRATex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)]; +extern u64 gOpenDoActionFRATex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)]; +extern u64 gJumpDoActionFRATex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)]; +extern u64 gDecideDoActionFRATex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)]; +extern u64 gDiveDoActionFRATex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)]; +extern u64 gFasterDoActionFRATex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)]; +extern u64 gThrowDoActionFRATex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)]; +extern u64 gUnusedNaviDoActionFRATex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)]; +extern u64 gClimbDoActionFRATex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)]; +extern u64 gDropDoActionFRATex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)]; +extern u64 gDownDoActionFRATex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)]; +extern u64 gSaveDoActionFRATex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)]; +extern u64 gSpeakDoActionFRATex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)]; +extern u64 gNextDoActionFRATex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)]; +extern u64 gGrabDoActionFRATex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)]; +extern u64 gStopDoActionFRATex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)]; +extern u64 gPutAwayDoActionFRATex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)]; +extern u64 gReelDoActionFRATex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)]; +extern u64 gNum1DoActionFRATex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)]; +extern u64 gNum2DoActionFRATex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)]; +extern u64 gNum3DoActionFRATex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)]; +extern u64 gNum4DoActionFRATex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)]; +extern u64 gNum5DoActionFRATex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)]; +extern u64 gNum6DoActionFRATex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)]; +extern u64 gNum7DoActionFRATex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)]; +extern u64 gNum8DoActionFRATex[TEX_LEN(u64, DO_ACTION_TEX_WIDTH, DO_ACTION_TEX_HEIGHT, 4)]; + +#endif + +#endif diff --git a/include/interface.h b/include/interface.h index 84834b3df6..5b300068bd 100644 --- a/include/interface.h +++ b/include/interface.h @@ -68,11 +68,6 @@ typedef enum DoAction { /* 0x1D */ DO_ACTION_MAX } DoAction; -// TODO extract this information from the texture definitions themselves -#define DO_ACTION_TEX_WIDTH 48 -#define DO_ACTION_TEX_HEIGHT 16 -#define DO_ACTION_TEX_SIZE ((DO_ACTION_TEX_WIDTH * DO_ACTION_TEX_HEIGHT) / 2) // (sizeof(gCheckDoActionENGTex)) - typedef struct InterfaceContext { /* 0x0000 */ View view; /* 0x0128 */ Vtx* actionVtx; diff --git a/src/code/z_construct.c b/src/code/z_construct.c index fd34ce6733..0f737145e1 100644 --- a/src/code/z_construct.c +++ b/src/code/z_construct.c @@ -10,6 +10,8 @@ #include "play_state.h" #include "save.h" +#include "assets/textures/do_action_static/do_action_static.h" + void Interface_Destroy(PlayState* play) { Map_Destroy(play); } diff --git a/tools/assets/extract/write_source.txt b/tools/assets/extract/write_source.txt index 5d19b2a10a..4d77381e33 100644 --- a/tools/assets/extract/write_source.txt +++ b/tools/assets/extract/write_source.txt @@ -960,7 +960,6 @@ assets/textures/backgrounds/vr_TTVR_pal_static.c assets/textures/backgrounds/vr_TTVR_static.c assets/textures/backgrounds/vr_ZRVR_pal_static.c assets/textures/backgrounds/vr_ZRVR_static.c -assets/textures/do_action_static/do_action_static.c assets/textures/icon_item_dungeon_static/icon_item_dungeon_static.c assets/textures/icon_item_field_static/icon_item_field_static.c assets/textures/icon_item_gameover_static/icon_item_gameover_static.c From 45bee14f2f24c2e7fc7c2b8030185e5d8ec96014 Mon Sep 17 00:00:00 2001 From: Tharo <17233964+Thar0@users.noreply.github.com> Date: Sun, 8 Jun 2025 03:44:20 +0100 Subject: [PATCH 09/17] Document fog functions Gfx_SetFog(2) and Play_SetFog (#1922) * Document fog functions Gfx_SetFog(2) and Play_SetFog * review * Apply suggestions from code review Co-authored-by: Tharo <17233964+Thar0@users.noreply.github.com> --------- Co-authored-by: Dragorn421 --- src/code/z_play.c | 4 ++++ src/code/z_rcp.c | 35 +++++++++++++++++++++++++++++++---- 2 files changed, 35 insertions(+), 4 deletions(-) diff --git a/src/code/z_play.c b/src/code/z_play.c index 590680da25..679c5b7772 100644 --- a/src/code/z_play.c +++ b/src/code/z_play.c @@ -224,6 +224,10 @@ void func_800BC88C(PlayState* this) { this->transitionCtx.transitionType = -1; } +/** + * Set the environment fog, from parameters controlled by the environment system. + * If a custom fog state is used at any point in drawing, the environment fog is expected to be restored afterwards. + */ Gfx* Play_SetFog(PlayState* this, Gfx* gfx) { return Gfx_SetFog2(gfx, this->lightCtx.fogColor[0], this->lightCtx.fogColor[1], this->lightCtx.fogColor[2], 0, this->lightCtx.fogNear, 1000); diff --git a/src/code/z_rcp.c b/src/code/z_rcp.c index 135ffa8876..657bd9e560 100644 --- a/src/code/z_rcp.c +++ b/src/code/z_rcp.c @@ -854,28 +854,50 @@ Gfx gEmptyDL[] = { gsSPEndDisplayList(), }; +/** + * Set fog color and range. + * + * At or prior to fog near, geometry is unaffected by fog. At or beyond fog far, geometry is fully fogged. + * Between near and far, rendered geometry will be blended between the unfogged color and the supplied fog color. + * + * Fog far should be in the range 0 to 1000 and greater than or equal to fog near. If fog near is negative everything + * will be fully fogged. If fog near is 1000 or greater there is no fog. + */ Gfx* Gfx_SetFog(Gfx* gfx, s32 r, s32 g, s32 b, s32 a, s32 near, s32 far) { + // Avoid 0 divisor in gSPFogPosition below if (far == near) { far++; } - ASSERT(near != far, "n != f", "../z_rcp.c", 1155); + // Set the fog color, far away geometry will be rendered as this solid color. gDPSetFogColor(gfx++, r, g, b, a); if (near >= 1000) { + // Set a constant shade alpha of 0 for no fog gSPFogFactor(gfx++, 0, 0); - } else if (near >= 997) { - gSPFogFactor(gfx++, 0x7FFF, 0x8100); + } else if (near > 996) { + // Avoid an overflow when near and far are close (see bug below), by effectively clamping near to ~996. + // This is almost SPFogPosition(996.0937f, 1000) + gSPFogFactor(gfx++, 0x7FFF, -0x7F00); } else if (near < 0) { + // Set a constant shade alpha of 255 for fully fogged gSPFogFactor(gfx++, 0, 255); } else { + // Normal range. Shade alpha is 0 at z <= near and 255 at z >= far, linearly interpolated in between. + //! @bug If far - near < 4, the computed `fm` fog factor coefficient will overflow. + //! For example: 128000 / (983 - 980) > 32767 + //! This is handled above in the case of near > 996, but the general case is not accounted for. gSPFogPosition(gfx++, near, far); } - return gfx; } +/** + * Like Gfx_SetFog but issues a pipesync before changing fog color. + * + * @see Gfx_SetFog + */ Gfx* Gfx_SetFogWithSync(Gfx* gfx, s32 r, s32 g, s32 b, s32 a, s32 near, s32 far) { if (far == near) { far++; @@ -898,6 +920,11 @@ Gfx* Gfx_SetFogWithSync(Gfx* gfx, s32 r, s32 g, s32 b, s32 a, s32 near, s32 far) return gfx; } +/** + * Wrapper for Gfx_SetFog + * + * @see Gfx_SetFog + */ Gfx* Gfx_SetFog2(Gfx* gfx, s32 r, s32 g, s32 b, s32 a, s32 near, s32 far) { return Gfx_SetFog(gfx, r, g, b, a, near, far); } From 39de1e02048091fe7c15fd297af3da29281f5871 Mon Sep 17 00:00:00 2001 From: Dragorn421 Date: Sun, 8 Jun 2025 05:37:13 +0200 Subject: [PATCH 10/17] `WeaponInfo` docs (#1596) * WeaponInfo docs * format * disasm metadata * merge fixup * Add MELEE_WEAPON_INFO_TIP and _BASE * format * Offset --- include/player.h | 9 +- src/code/z_player_lib.c | 116 ++++++++++-------- .../actors/ovl_Arms_Hook/z_arms_hook.c | 16 +-- .../actors/ovl_Arms_Hook/z_arms_hook.h | 2 +- .../actors/ovl_Bg_Ydan_Sp/z_bg_ydan_sp.c | 10 +- src/overlays/actors/ovl_En_Arrow/z_en_arrow.c | 22 ++-- src/overlays/actors/ovl_En_Boom/z_en_boom.c | 16 +-- src/overlays/actors/ovl_En_Boom/z_en_boom.h | 2 +- src/overlays/actors/ovl_En_Butte/z_en_butte.c | 13 +- src/overlays/actors/ovl_En_Mb/z_en_mb.c | 4 +- .../actors/ovl_Obj_Syokudai/z_obj_syokudai.c | 2 +- .../actors/ovl_player_actor/z_player.c | 23 ++-- 12 files changed, 128 insertions(+), 107 deletions(-) diff --git a/include/player.h b/include/player.h index 74a129a254..10fcd490b7 100644 --- a/include/player.h +++ b/include/player.h @@ -694,10 +694,13 @@ typedef struct PlayerAgeProperties { /* 0xCC */ LinkAnimationHeader* unk_CC[2]; } PlayerAgeProperties; // size = 0xD4 +#define MELEE_WEAPON_INFO_TIP(weaponInfo) (&(weaponInfo)->posA) +#define MELEE_WEAPON_INFO_BASE(weaponInfo) (&(weaponInfo)->posB) + typedef struct WeaponInfo { /* 0x00 */ s32 active; - /* 0x04 */ Vec3f tip; - /* 0x10 */ Vec3f base; + /* 0x04 */ Vec3f posA; // For melee weapons, this is the tip (furthest from the player hand) + /* 0x10 */ Vec3f posB; // For melee weapons, this is the base (near the player hand) } WeaponInfo; // size = 0x1C #define LEDGE_DIST_MAX 399.96002f @@ -1033,7 +1036,7 @@ s32 Player_OverrideLimbDrawGameplayFirstPerson(struct PlayState* play, s32 limbI Vec3s* rot, void* thisx); s32 Player_OverrideLimbDrawGameplayCrawling(struct PlayState* play, s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3s* rot, void* thisx); -u8 func_80090480(struct PlayState* play, ColliderQuad* collider, WeaponInfo* weaponInfo, Vec3f* newTip, Vec3f* newBase); +u8 Player_UpdateWeaponInfo(struct PlayState* play, ColliderQuad* collider, WeaponInfo* weaponInfo, Vec3f* newPosA, Vec3f* newPosB); void Player_DrawGetItem(struct PlayState* play, Player* this); void Player_PostLimbDrawGameplay(struct PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot, void* thisx); u32 Player_InitPauseDrawData(struct PlayState* play, u8* segment, SkelAnime* skelAnime); diff --git a/src/code/z_player_lib.c b/src/code/z_player_lib.c index 7358db96d5..d56eb84102 100644 --- a/src/code/z_player_lib.c +++ b/src/code/z_player_lib.c @@ -803,7 +803,7 @@ int Player_IsBurningStickInRange(PlayState* play, Vec3f* pos, f32 xzRange, f32 y s32 pad; if ((this->heldItemAction == PLAYER_IA_DEKU_STICK) && (this->unk_860 != 0)) { - Math_Vec3f_Diff(&this->meleeWeaponInfo[0].tip, pos, &diff); + Math_Vec3f_Diff(MELEE_WEAPON_INFO_TIP(&this->meleeWeaponInfo[0]), pos, &diff); return ((SQ(diff.x) + SQ(diff.z)) <= SQ(xzRange)) && (0.0f <= diff.y) && (diff.y <= yRange); } else { return false; @@ -1444,30 +1444,42 @@ s32 Player_OverrideLimbDrawGameplayCrawling(PlayState* play, s32 limbIndex, Gfx* return false; } -u8 func_80090480(PlayState* play, ColliderQuad* collider, WeaponInfo* weaponInfo, Vec3f* newTip, Vec3f* newBase) { - if (weaponInfo->active == 0) { +/** + * Handles colliders for player weapons, by creating a quad collider each frame between the weapon's previous position + * and its new position. + * This position is given as a pair, `newPosA` and `newPosB`, representing two ends of a line that can be thought of as + * the active part of the weapon. Note that this line is not necessarily following the weapon's shape: for example + * arrows use a line perpendicular to the shaft. + * @param collider The quad collider to use for the weapon. + * @param newPosA One end of the line. For melee weapons, this is the tip. + * @param newPosB One end of the line. For melee weapons, this is the base. + * @return true if the weapon is active at a new position. + */ +u8 Player_UpdateWeaponInfo(PlayState* play, ColliderQuad* collider, WeaponInfo* weaponInfo, Vec3f* newPosA, + Vec3f* newPosB) { + if (!weaponInfo->active) { if (collider != NULL) { Collider_ResetQuadAT(play, &collider->base); } - Math_Vec3f_Copy(&weaponInfo->tip, newTip); - Math_Vec3f_Copy(&weaponInfo->base, newBase); - weaponInfo->active = 1; + Math_Vec3f_Copy(&weaponInfo->posA, newPosA); + Math_Vec3f_Copy(&weaponInfo->posB, newPosB); + weaponInfo->active = true; return true; - } else if ((weaponInfo->tip.x == newTip->x) && (weaponInfo->tip.y == newTip->y) && - (weaponInfo->tip.z == newTip->z) && (weaponInfo->base.x == newBase->x) && - (weaponInfo->base.y == newBase->y) && (weaponInfo->base.z == newBase->z)) { + } else if ((weaponInfo->posA.x == newPosA->x) && (weaponInfo->posA.y == newPosA->y) && + (weaponInfo->posA.z == newPosA->z) && (weaponInfo->posB.x == newPosB->x) && + (weaponInfo->posB.y == newPosB->y) && (weaponInfo->posB.z == newPosB->z)) { if (collider != NULL) { Collider_ResetQuadAT(play, &collider->base); } return false; } else { if (collider != NULL) { - Collider_SetQuadVertices(collider, newBase, newTip, &weaponInfo->base, &weaponInfo->tip); + Collider_SetQuadVertices(collider, newPosB, newPosA, &weaponInfo->posB, &weaponInfo->posA); CollisionCheck_SetAT(play, &play->colChkCtx, &collider->base); } - Math_Vec3f_Copy(&weaponInfo->base, newBase); - Math_Vec3f_Copy(&weaponInfo->tip, newTip); - weaponInfo->active = 1; + Math_Vec3f_Copy(&weaponInfo->posB, newPosB); + Math_Vec3f_Copy(&weaponInfo->posA, newPosA); + weaponInfo->active = true; return true; } } @@ -1496,33 +1508,35 @@ void Player_UpdateShieldCollider(PlayState* play, Player* this, ColliderQuad* co } } -Vec3f D_80126080 = { 5000.0f, 400.0f, 0.0f }; -Vec3f D_8012608C = { 5000.0f, -400.0f, 1000.0f }; -Vec3f D_80126098 = { 5000.0f, 1400.0f, -1000.0f }; +// Positions for the tip of melee weapons, in the left hand limb's own model space. +Vec3f sMeleeWeaponTipOffsetFromLeftHand0 = { 5000.0f, 400.0f, 0.0f }; +Vec3f sMeleeWeaponTipOffsetFromLeftHand1 = { 5000.0f, -400.0f, 1000.0f }; +Vec3f sMeleeWeaponTipOffsetFromLeftHand2 = { 5000.0f, 1400.0f, -1000.0f }; -Vec3f D_801260A4[3] = { - { 0.0f, 400.0f, 0.0f }, - { 0.0f, 1400.0f, -1000.0f }, - { 0.0f, -400.0f, 1000.0f }, -}; +// Positions for the base of melee weapons, in the left hand limb's own model space. +Vec3f sMeleeWeaponBaseOffsetFromLeftHand0 = { 0.0f, 400.0f, 0.0f }; +Vec3f sMeleeWeaponBaseOffsetFromLeftHand1 = { 0.0f, 1400.0f, -1000.0f }; +Vec3f sMeleeWeaponBaseOffsetFromLeftHand2 = { 0.0f, -400.0f, 1000.0f }; -void func_800906D4(PlayState* play, Player* this, Vec3f* newTipPos) { - Vec3f newBasePos[3]; +void Player_UpdateMeleeWeaponInfo(PlayState* play, Player* this, Vec3f* newTipPositions) { + Vec3f newBasePositions[3]; - Matrix_MultVec3f(&D_801260A4[0], &newBasePos[0]); - Matrix_MultVec3f(&D_801260A4[1], &newBasePos[1]); - Matrix_MultVec3f(&D_801260A4[2], &newBasePos[2]); + Matrix_MultVec3f(&sMeleeWeaponBaseOffsetFromLeftHand0, &newBasePositions[0]); + Matrix_MultVec3f(&sMeleeWeaponBaseOffsetFromLeftHand1, &newBasePositions[1]); + Matrix_MultVec3f(&sMeleeWeaponBaseOffsetFromLeftHand2, &newBasePositions[2]); - if (func_80090480(play, NULL, &this->meleeWeaponInfo[0], &newTipPos[0], &newBasePos[0]) && + if (Player_UpdateWeaponInfo(play, NULL, &this->meleeWeaponInfo[0], &newTipPositions[0], &newBasePositions[0]) && !(this->stateFlags1 & PLAYER_STATE1_SHIELDING)) { - EffectBlure_AddVertex(Effect_GetByIndex(this->meleeWeaponEffectIndex), &this->meleeWeaponInfo[0].tip, - &this->meleeWeaponInfo[0].base); + EffectBlure_AddVertex(Effect_GetByIndex(this->meleeWeaponEffectIndex), &this->meleeWeaponInfo[0].posA, + &this->meleeWeaponInfo[0].posB); } if ((this->meleeWeaponState > 0) && ((this->meleeWeaponAnimation < PLAYER_MWA_SPIN_ATTACK_1H) || (this->stateFlags2 & PLAYER_STATE2_17))) { - func_80090480(play, &this->meleeWeaponQuads[0], &this->meleeWeaponInfo[1], &newTipPos[1], &newBasePos[1]); - func_80090480(play, &this->meleeWeaponQuads[1], &this->meleeWeaponInfo[2], &newTipPos[2], &newBasePos[2]); + Player_UpdateWeaponInfo(play, &this->meleeWeaponQuads[0], &this->meleeWeaponInfo[1], &newTipPositions[1], + &newBasePositions[1]); + Player_UpdateWeaponInfo(play, &this->meleeWeaponQuads[1], &this->meleeWeaponInfo[2], &newTipPositions[2], + &newBasePositions[2]); } } @@ -1553,20 +1567,20 @@ void Player_DrawGetItem(PlayState* play, Player* this) { } } -void func_80090A28(Player* this, Vec3f* vecs) { - D_8012608C.x = D_80126080.x; +void Player_CalcMeleeWeaponTipPositions(Player* this, Vec3f* tipPositions) { + sMeleeWeaponTipOffsetFromLeftHand1.x = sMeleeWeaponTipOffsetFromLeftHand0.x; if (this->unk_845 >= 3) { this->unk_845++; - D_8012608C.x *= 1.0f + ((9 - this->unk_845) * 0.1f); + sMeleeWeaponTipOffsetFromLeftHand1.x *= 1.0f + ((9 - this->unk_845) * 0.1f); } - D_8012608C.x += 1200.0f; - D_80126098.x = D_8012608C.x; + sMeleeWeaponTipOffsetFromLeftHand1.x += 1200.0f; + sMeleeWeaponTipOffsetFromLeftHand2.x = sMeleeWeaponTipOffsetFromLeftHand1.x; - Matrix_MultVec3f(&D_80126080, &vecs[0]); - Matrix_MultVec3f(&D_8012608C, &vecs[1]); - Matrix_MultVec3f(&D_80126098, &vecs[2]); + Matrix_MultVec3f(&sMeleeWeaponTipOffsetFromLeftHand0, &tipPositions[0]); + Matrix_MultVec3f(&sMeleeWeaponTipOffsetFromLeftHand1, &tipPositions[1]); + Matrix_MultVec3f(&sMeleeWeaponTipOffsetFromLeftHand2, &tipPositions[2]); } void Player_DrawHookshotReticle(PlayState* play, Player* this, f32 arg2) { @@ -1608,7 +1622,7 @@ void Player_DrawHookshotReticle(PlayState* play, Player* this, f32 arg2) { } // Coordinates of the player focus position, in the head limb's own model space. -Vec3f sPlayerFocusHeadLimbModelPos = { 1100.0f, -700.0f, 0.0f }; +Vec3f sPlayerFocusOffsetFromHead = { 1100.0f, -700.0f, 0.0f }; f32 sMeleeWeaponLengths[] = { 0.0f, // not a melee weapon @@ -1651,17 +1665,17 @@ void Player_PostLimbDrawGameplay(PlayState* play, s32 limbIndex, Gfx** dList, Ve Math_Vec3f_Copy(&this->leftHandPos, sCurBodyPartPos); if (this->itemAction == PLAYER_IA_DEKU_STICK) { - Vec3f sp124[3]; + Vec3f tipPositions[3]; OPEN_DISPS(play->state.gfxCtx, "../z_player_lib.c", 2633); if (this->actor.scale.y >= 0.0f) { - D_80126080.x = this->unk_85C * 5000.0f; - func_80090A28(this, sp124); + sMeleeWeaponTipOffsetFromLeftHand0.x = this->unk_85C * 5000.0f; + Player_CalcMeleeWeaponTipPositions(this, tipPositions); if (this->meleeWeaponState != 0) { - func_800906D4(play, this, sp124); + Player_UpdateMeleeWeaponInfo(play, this, tipPositions); } else { - Math_Vec3f_Copy(&this->meleeWeaponInfo[0].tip, &sp124[0]); + Math_Vec3f_Copy(MELEE_WEAPON_INFO_TIP(&this->meleeWeaponInfo[0]), &tipPositions[0]); } } @@ -1674,16 +1688,16 @@ void Player_PostLimbDrawGameplay(PlayState* play, s32 limbIndex, Gfx** dList, Ve CLOSE_DISPS(play->state.gfxCtx, "../z_player_lib.c", 2656); } else if ((this->actor.scale.y >= 0.0f) && (this->meleeWeaponState != 0)) { - Vec3f spE4[3]; + Vec3f tipPositions[3]; if (Player_HoldsBrokenKnife(this)) { - D_80126080.x = 1500.0f; + sMeleeWeaponTipOffsetFromLeftHand0.x = 1500.0f; } else { - D_80126080.x = sMeleeWeaponLengths[Player_GetMeleeWeaponHeld(this)]; + sMeleeWeaponTipOffsetFromLeftHand0.x = sMeleeWeaponLengths[Player_GetMeleeWeaponHeld(this)]; } - func_80090A28(this, spE4); - func_800906D4(play, this, spE4); + Player_CalcMeleeWeaponTipPositions(this, tipPositions); + Player_UpdateMeleeWeaponInfo(play, this, tipPositions); } else if ((*dList != NULL) && (this->leftHandType == PLAYER_MODELTYPE_LH_BOTTLE)) { //! @bug When Player is actively using shield, the `itemAction` value will be set to -1. //! If shield is used at the same time a bottle is in hand, `Player_ActionToBottle` will @@ -1854,7 +1868,7 @@ void Player_PostLimbDrawGameplay(PlayState* play, s32 limbIndex, Gfx** dList, Ve Matrix_Get(&this->shieldMf); } } else if (limbIndex == PLAYER_LIMB_HEAD) { - Matrix_MultVec3f(&sPlayerFocusHeadLimbModelPos, &this->actor.focus.pos); + Matrix_MultVec3f(&sPlayerFocusOffsetFromHead, &this->actor.focus.pos); } else { // Position of Link's foot, in the foot limb's own model space. static Vec3f sLeftRightFootLimbModelFootPos[] = { diff --git a/src/overlays/actors/ovl_Arms_Hook/z_arms_hook.c b/src/overlays/actors/ovl_Arms_Hook/z_arms_hook.c index 62594850af..3e8127024b 100644 --- a/src/overlays/actors/ovl_Arms_Hook/z_arms_hook.c +++ b/src/overlays/actors/ovl_Arms_Hook/z_arms_hook.c @@ -337,8 +337,8 @@ void ArmsHook_Draw(Actor* thisx, PlayState* play) { ArmsHook* this = (ArmsHook*)thisx; Player* player = GET_PLAYER(play); Vec3f sp78; - Vec3f hookNewTip; - Vec3f hookNewBase; + Vec3f posA; + Vec3f posB; f32 sp5C; f32 sp58; @@ -349,16 +349,16 @@ void ArmsHook_Draw(Actor* thisx, PlayState* play) { if ((ArmsHook_Shoot != this->actionFunc) || (this->timer <= 0)) { Matrix_MultVec3f(&D_80865B70, &this->unk_1E8); - Matrix_MultVec3f(&D_80865B88, &hookNewTip); - Matrix_MultVec3f(&D_80865B94, &hookNewBase); - this->hookInfo.active = 0; + Matrix_MultVec3f(&D_80865B88, &posA); + Matrix_MultVec3f(&D_80865B94, &posB); + this->weaponInfo.active = false; } else { Matrix_MultVec3f(&D_80865B7C, &this->unk_1E8); - Matrix_MultVec3f(&D_80865BA0, &hookNewTip); - Matrix_MultVec3f(&D_80865BAC, &hookNewBase); + Matrix_MultVec3f(&D_80865BA0, &posA); + Matrix_MultVec3f(&D_80865BAC, &posB); } - func_80090480(play, &this->collider, &this->hookInfo, &hookNewTip, &hookNewBase); + Player_UpdateWeaponInfo(play, &this->collider, &this->weaponInfo, &posA, &posB); Gfx_SetupDL_25Opa(play->state.gfxCtx); MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_arms_hook.c", 895); gSPDisplayList(POLY_OPA_DISP++, gLinkAdultHookshotTipDL); diff --git a/src/overlays/actors/ovl_Arms_Hook/z_arms_hook.h b/src/overlays/actors/ovl_Arms_Hook/z_arms_hook.h index d06019f040..fe85e5693a 100644 --- a/src/overlays/actors/ovl_Arms_Hook/z_arms_hook.h +++ b/src/overlays/actors/ovl_Arms_Hook/z_arms_hook.h @@ -12,7 +12,7 @@ typedef void (*ArmsHookActionFunc)(struct ArmsHook*, struct PlayState*); typedef struct ArmsHook { /* 0x0000 */ Actor actor; /* 0x014C */ ColliderQuad collider; - /* 0x01CC */ WeaponInfo hookInfo; + /* 0x01CC */ WeaponInfo weaponInfo; /* 0x01E8 */ Vec3f unk_1E8; /* 0x01F4 */ Vec3f unk_1F4; /* 0x0200 */ Actor* attachedActor; diff --git a/src/overlays/actors/ovl_Bg_Ydan_Sp/z_bg_ydan_sp.c b/src/overlays/actors/ovl_Bg_Ydan_Sp/z_bg_ydan_sp.c index 9e6fca4b52..723852f33b 100644 --- a/src/overlays/actors/ovl_Bg_Ydan_Sp/z_bg_ydan_sp.c +++ b/src/overlays/actors/ovl_Bg_Ydan_Sp/z_bg_ydan_sp.c @@ -294,9 +294,9 @@ void BgYdanSp_FloorWebIdle(BgYdanSp* this, PlayState* play) { webPos.x = this->dyna.actor.world.pos.x; webPos.y = this->dyna.actor.world.pos.y - 50.0f; webPos.z = this->dyna.actor.world.pos.z; - if (Player_IsBurningStickInRange(play, &webPos, 70.0f, 50.0f) != 0) { - this->dyna.actor.home.pos.x = player->meleeWeaponInfo[0].tip.x; - this->dyna.actor.home.pos.z = player->meleeWeaponInfo[0].tip.z; + if (Player_IsBurningStickInRange(play, &webPos, 70.0f, 50.0f)) { + this->dyna.actor.home.pos.x = MELEE_WEAPON_INFO_TIP(&player->meleeWeaponInfo[0])->x; + this->dyna.actor.home.pos.z = MELEE_WEAPON_INFO_TIP(&player->meleeWeaponInfo[0])->z; BgYdanSp_BurnWeb(this, play); return; } @@ -412,10 +412,10 @@ void BgYdanSp_WallWebIdle(BgYdanSp* this, PlayState* play) { this->dyna.actor.home.pos.y = this->dyna.actor.world.pos.y + 80.0f; BgYdanSp_BurnWeb(this, play); } else if (player->heldItemAction == PLAYER_IA_DEKU_STICK && player->unk_860 != 0) { - Actor_WorldToActorCoords(&this->dyna.actor, &sp30, &player->meleeWeaponInfo[0].tip); + Actor_WorldToActorCoords(&this->dyna.actor, &sp30, MELEE_WEAPON_INFO_TIP(&player->meleeWeaponInfo[0])); if (fabsf(sp30.x) < 100.0f && sp30.z < 1.0f && sp30.y < 200.0f) { OnePointCutscene_Init(play, 3020, 40, &this->dyna.actor, CAM_ID_MAIN); - Math_Vec3f_Copy(&this->dyna.actor.home.pos, &player->meleeWeaponInfo[0].tip); + Math_Vec3f_Copy(&this->dyna.actor.home.pos, MELEE_WEAPON_INFO_TIP(&player->meleeWeaponInfo[0])); BgYdanSp_BurnWeb(this, play); } } diff --git a/src/overlays/actors/ovl_En_Arrow/z_en_arrow.c b/src/overlays/actors/ovl_En_Arrow/z_en_arrow.c index c4a90bec05..48517bfe41 100644 --- a/src/overlays/actors/ovl_En_Arrow/z_en_arrow.c +++ b/src/overlays/actors/ovl_En_Arrow/z_en_arrow.c @@ -429,36 +429,36 @@ void EnArrow_Update(Actor* thisx, PlayState* play) { } void func_809B4800(EnArrow* this, PlayState* play) { - static Vec3f D_809B4E88 = { 0.0f, 400.0f, 1500.0f }; - static Vec3f D_809B4E94 = { 0.0f, -400.0f, 1500.0f }; + static Vec3f sPosAOffset = { 0.0f, 400.0f, 1500.0f }; + static Vec3f sPosBOffset = { 0.0f, -400.0f, 1500.0f }; static Vec3f D_809B4EA0 = { 0.0f, 0.0f, -300.0f }; - Vec3f sp44; - Vec3f sp38; + Vec3f posA; + Vec3f posB; s32 addBlureVertex; Matrix_MultVec3f(&D_809B4EA0, &this->unk_21C); if (EnArrow_Fly == this->actionFunc) { - Matrix_MultVec3f(&D_809B4E88, &sp44); - Matrix_MultVec3f(&D_809B4E94, &sp38); + Matrix_MultVec3f(&sPosAOffset, &posA); + Matrix_MultVec3f(&sPosBOffset, &posB); if (this->actor.params <= ARROW_SEED) { addBlureVertex = this->actor.params <= ARROW_LIGHT; if (this->hitActor == NULL) { - addBlureVertex &= func_80090480(play, &this->collider, &this->weaponInfo, &sp44, &sp38); + addBlureVertex &= Player_UpdateWeaponInfo(play, &this->collider, &this->weaponInfo, &posA, &posB); } else { if (addBlureVertex) { - if ((sp44.x == this->weaponInfo.tip.x) && (sp44.y == this->weaponInfo.tip.y) && - (sp44.z == this->weaponInfo.tip.z) && (sp38.x == this->weaponInfo.base.x) && - (sp38.y == this->weaponInfo.base.y) && (sp38.z == this->weaponInfo.base.z)) { + if ((posA.x == this->weaponInfo.posA.x) && (posA.y == this->weaponInfo.posA.y) && + (posA.z == this->weaponInfo.posA.z) && (posB.x == this->weaponInfo.posB.x) && + (posB.y == this->weaponInfo.posB.y) && (posB.z == this->weaponInfo.posB.z)) { addBlureVertex = false; } } } if (addBlureVertex) { - EffectBlure_AddVertex(Effect_GetByIndex(this->effectIndex), &sp44, &sp38); + EffectBlure_AddVertex(Effect_GetByIndex(this->effectIndex), &posA, &posB); } } } diff --git a/src/overlays/actors/ovl_En_Boom/z_en_boom.c b/src/overlays/actors/ovl_En_Boom/z_en_boom.c index d70422b1d0..f679755105 100644 --- a/src/overlays/actors/ovl_En_Boom/z_en_boom.c +++ b/src/overlays/actors/ovl_En_Boom/z_en_boom.c @@ -257,22 +257,22 @@ void EnBoom_Update(Actor* thisx, PlayState* play) { } void EnBoom_Draw(Actor* thisx, PlayState* play) { - static Vec3f sMultVec1 = { -960.0f, 0.0f, 0.0f }; - static Vec3f sMultVec2 = { 960.0f, 0.0f, 0.0f }; + static Vec3f sPosAOffset = { -960.0f, 0.0f, 0.0f }; + static Vec3f sPosBOffset = { 960.0f, 0.0f, 0.0f }; EnBoom* this = (EnBoom*)thisx; - Vec3f vec1; - Vec3f vec2; + Vec3f posA; + Vec3f posB; OPEN_DISPS(play->state.gfxCtx, "../z_en_boom.c", 567); Matrix_RotateY(BINANG_TO_RAD(this->actor.world.rot.y), MTXMODE_APPLY); Matrix_RotateZ(BINANG_TO_RAD(0x1F40), MTXMODE_APPLY); Matrix_RotateX(BINANG_TO_RAD(this->actor.world.rot.x), MTXMODE_APPLY); - Matrix_MultVec3f(&sMultVec1, &vec1); - Matrix_MultVec3f(&sMultVec2, &vec2); + Matrix_MultVec3f(&sPosAOffset, &posA); + Matrix_MultVec3f(&sPosBOffset, &posB); - if (func_80090480(play, &this->collider, &this->boomerangInfo, &vec1, &vec2)) { - EffectBlure_AddVertex(Effect_GetByIndex(this->effectIndex), &vec1, &vec2); + if (Player_UpdateWeaponInfo(play, &this->collider, &this->weaponInfo, &posA, &posB)) { + EffectBlure_AddVertex(Effect_GetByIndex(this->effectIndex), &posA, &posB); } Gfx_SetupDL_25Opa(play->state.gfxCtx); diff --git a/src/overlays/actors/ovl_En_Boom/z_en_boom.h b/src/overlays/actors/ovl_En_Boom/z_en_boom.h index f62edc7654..83b960bc66 100644 --- a/src/overlays/actors/ovl_En_Boom/z_en_boom.h +++ b/src/overlays/actors/ovl_En_Boom/z_en_boom.h @@ -17,7 +17,7 @@ typedef struct EnBoom { /* 0x01D4 */ u8 returnTimer; // returns to Link when 0 /* 0x01D5 */ u8 activeTimer; // increments once every update /* 0x01D8 */ s32 effectIndex; - /* 0x01DC */ WeaponInfo boomerangInfo; + /* 0x01DC */ WeaponInfo weaponInfo; /* 0x01F8 */ EnBoomActionFunc actionFunc; } EnBoom; // size = 0x01FC diff --git a/src/overlays/actors/ovl_En_Butte/z_en_butte.c b/src/overlays/actors/ovl_En_Butte/z_en_butte.c index 58a5392306..888ef865e1 100644 --- a/src/overlays/actors/ovl_En_Butte/z_en_butte.c +++ b/src/overlays/actors/ovl_En_Butte/z_en_butte.c @@ -318,9 +318,11 @@ void EnButte_FollowLink(EnButte* this, PlayState* play) { minAnimSpeed = 0.0f; if ((this->flightParamsIdx != 0) && (this->timer < 12)) { - swordTip.x = player->meleeWeaponInfo[0].tip.x + Math_SinS(player->actor.shape.rot.y) * 10.0f; - swordTip.y = player->meleeWeaponInfo[0].tip.y; - swordTip.z = player->meleeWeaponInfo[0].tip.z + Math_CosS(player->actor.shape.rot.y) * 10.0f; + swordTip.x = + MELEE_WEAPON_INFO_TIP(&player->meleeWeaponInfo[0])->x + Math_SinS(player->actor.shape.rot.y) * 10.0f; + swordTip.y = MELEE_WEAPON_INFO_TIP(&player->meleeWeaponInfo[0])->y; + swordTip.z = + MELEE_WEAPON_INFO_TIP(&player->meleeWeaponInfo[0])->z + Math_CosS(player->actor.shape.rot.y) * 10.0f; yaw = Math_Vec3f_Yaw(&this->actor.world.pos, &swordTip) + (s16)(Rand_ZeroOne() * D_809CE410); if (Math_ScaledStepToS(&this->actor.world.rot.y, yaw, 2000) != 0) { @@ -332,7 +334,7 @@ void EnButte_FollowLink(EnButte* this, PlayState* play) { } } - this->posYTarget = MAX(player->actor.world.pos.y + 30.0f, player->meleeWeaponInfo[0].tip.y); + this->posYTarget = MAX(player->actor.world.pos.y + 30.0f, MELEE_WEAPON_INFO_TIP(&player->meleeWeaponInfo[0])->y); EnButte_Turn(this); @@ -352,7 +354,8 @@ void EnButte_FollowLink(EnButte* this, PlayState* play) { (this->swordDownTimer <= 0) && (distSqFromHome < SQ(320.0f)))) { EnButte_SetupFlyAround(this); } else if (distSqFromHome > SQ(240.0f)) { - distSqFromSword = Math3D_Dist2DSq(player->meleeWeaponInfo[0].tip.x, player->meleeWeaponInfo[0].tip.z, + distSqFromSword = Math3D_Dist2DSq(MELEE_WEAPON_INFO_TIP(&player->meleeWeaponInfo[0])->x, + MELEE_WEAPON_INFO_TIP(&player->meleeWeaponInfo[0])->z, this->actor.world.pos.x, this->actor.world.pos.z); if (distSqFromSword < SQ(60.0f)) { EnButte_SetupTransformIntoFairy(this); diff --git a/src/overlays/actors/ovl_En_Mb/z_en_mb.c b/src/overlays/actors/ovl_En_Mb/z_en_mb.c index 8c1413bc0f..56e96bf293 100644 --- a/src/overlays/actors/ovl_En_Mb/z_en_mb.c +++ b/src/overlays/actors/ovl_En_Mb/z_en_mb.c @@ -1514,7 +1514,7 @@ void EnMb_Update(Actor* thisx, PlayState* play) { void EnMb_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot, void* thisx) { static Vec3f unused = { 1100.0f, -700.0f, 0.0f }; static Vec3f feetPos = { 0.0f, 0.0f, 0.0f }; - static Vec3f effSpawnModelPos = { 0.0f, -8000.0f, 0.0f }; + static Vec3f effSpawnOffsetFromLeftHand = { 0.0f, -8000.0f, 0.0f }; static Vec3f zeroVec = { 0.0f, 0.0f, 0.0f }; s32 bodyPart = -1; EnMb* this = (EnMb*)thisx; @@ -1522,7 +1522,7 @@ void EnMb_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot, if (this->actor.params == ENMB_TYPE_CLUB) { if (limbIndex == ENMB_LIMB_LHAND) { - Matrix_MultVec3f(&effSpawnModelPos, &this->effSpawnPos); + Matrix_MultVec3f(&effSpawnOffsetFromLeftHand, &this->effSpawnPos); if (this->attack > ENMB_ATTACK_NONE) { EnMb_ClubUpdateAttackCollider(&this->actor, play); } diff --git a/src/overlays/actors/ovl_Obj_Syokudai/z_obj_syokudai.c b/src/overlays/actors/ovl_Obj_Syokudai/z_obj_syokudai.c index 9409ee0a52..ccebc0615e 100644 --- a/src/overlays/actors/ovl_Obj_Syokudai/z_obj_syokudai.c +++ b/src/overlays/actors/ovl_Obj_Syokudai/z_obj_syokudai.c @@ -188,7 +188,7 @@ void ObjSyokudai_Update(Actor* thisx, PlayState* play2) { interactionType = 1; } } else if (player->heldItemAction == PLAYER_IA_DEKU_STICK) { - Math_Vec3f_Diff(&player->meleeWeaponInfo[0].tip, &this->actor.world.pos, &tipToFlame); + Math_Vec3f_Diff(MELEE_WEAPON_INFO_TIP(&player->meleeWeaponInfo[0]), &this->actor.world.pos, &tipToFlame); tipToFlame.y -= 67.0f; if ((SQ(tipToFlame.x) + SQ(tipToFlame.y) + SQ(tipToFlame.z)) < SQ(20.0f)) { interactionType = -1; diff --git a/src/overlays/actors/ovl_player_actor/z_player.c b/src/overlays/actors/ovl_player_actor/z_player.c index e6e017490a..68a2683ca9 100644 --- a/src/overlays/actors/ovl_player_actor/z_player.c +++ b/src/overlays/actors/ovl_player_actor/z_player.c @@ -1766,7 +1766,7 @@ void Player_ApplyYawFromAnim(Player* this) { void func_80832318(Player* this) { this->stateFlags2 &= ~PLAYER_STATE2_17; this->meleeWeaponState = 0; - this->meleeWeaponInfo[0].active = this->meleeWeaponInfo[1].active = this->meleeWeaponInfo[2].active = 0; + this->meleeWeaponInfo[0].active = this->meleeWeaponInfo[1].active = this->meleeWeaponInfo[2].active = false; } void func_80832340(PlayState* play, Player* this) { @@ -9070,7 +9070,7 @@ s32 func_80842DF4(PlayState* play, Player* this) { s32 bgId; Vec3f sp68; Vec3f sp5C; - Vec3f sp50; + Vec3f baseToTip; s32 temp1; s32 surfaceMaterial; @@ -9080,18 +9080,19 @@ s32 func_80842DF4(PlayState* play, Player* this) { !(this->meleeWeaponQuads[1].base.atFlags & AT_BOUNCED)) { if (this->skelAnime.curFrame >= 2.0f) { - phi_f2 = Math_Vec3f_DistXYZAndStoreDiff(&this->meleeWeaponInfo[0].tip, - &this->meleeWeaponInfo[0].base, &sp50); + phi_f2 = + Math_Vec3f_DistXYZAndStoreDiff(MELEE_WEAPON_INFO_TIP(&this->meleeWeaponInfo[0]), + MELEE_WEAPON_INFO_BASE(&this->meleeWeaponInfo[0]), &baseToTip); if (phi_f2 != 0.0f) { phi_f2 = (phi_f2 + 10.0f) / phi_f2; } - sp68.x = this->meleeWeaponInfo[0].tip.x + (sp50.x * phi_f2); - sp68.y = this->meleeWeaponInfo[0].tip.y + (sp50.y * phi_f2); - sp68.z = this->meleeWeaponInfo[0].tip.z + (sp50.z * phi_f2); + sp68.x = MELEE_WEAPON_INFO_TIP(&this->meleeWeaponInfo[0])->x + (baseToTip.x * phi_f2); + sp68.y = MELEE_WEAPON_INFO_TIP(&this->meleeWeaponInfo[0])->y + (baseToTip.y * phi_f2); + sp68.z = MELEE_WEAPON_INFO_TIP(&this->meleeWeaponInfo[0])->z + (baseToTip.z * phi_f2); - if (BgCheck_EntityLineTest1(&play->colCtx, &sp68, &this->meleeWeaponInfo[0].tip, &sp5C, &groundPoly, - true, false, false, true, &bgId) && + if (BgCheck_EntityLineTest1(&play->colCtx, &sp68, MELEE_WEAPON_INFO_TIP(&this->meleeWeaponInfo[0]), + &sp5C, &groundPoly, true, false, false, true, &bgId) && !SurfaceType_IsIgnoredByEntities(&play->colCtx, groundPoly, bgId) && (SurfaceType_GetFloorType(&play->colCtx, groundPoly, bgId) != FLOOR_TYPE_6) && (func_8002F9EC(play, &this->actor, groundPoly, bgId, &sp5C) == 0)) { @@ -11474,8 +11475,8 @@ void Player_UpdateBurningDekuStick(PlayState* play, Player* this) { this->unk_85C = temp; } - func_8002836C(play, &this->meleeWeaponInfo[0].tip, &D_808547A4, &D_808547B0, &D_808547BC, &D_808547C0, - temp * 200.0f, 0, 8); + func_8002836C(play, MELEE_WEAPON_INFO_TIP(&this->meleeWeaponInfo[0]), &D_808547A4, &D_808547B0, &D_808547BC, + &D_808547C0, temp * 200.0f, 0, 8); } void Player_UpdateBodyShock(PlayState* play, Player* this) { From 09a179960f1a82e1e337c38e424890c8224e0cd1 Mon Sep 17 00:00:00 2001 From: Jordan Longstaff Date: Sun, 8 Jun 2025 11:16:34 -0400 Subject: [PATCH 11/17] Child Ruto Actions: Enums (#2603) * Child Ruto Actions: Enums * Stronger typedefs * Fix wrong action enum usage Co-authored-by: Dragorn421 * Undo single-line formatting of actions array * Fix formatting * Remove trailing commas * Move all enums to header * Index action functions with comments --------- Co-authored-by: Dragorn421 --- src/overlays/actors/ovl_En_Ru1/z_en_ru1.c | 230 ++++++++++++---------- src/overlays/actors/ovl_En_Ru1/z_en_ru1.h | 77 ++++++++ 2 files changed, 201 insertions(+), 106 deletions(-) diff --git a/src/overlays/actors/ovl_En_Ru1/z_en_ru1.c b/src/overlays/actors/ovl_En_Ru1/z_en_ru1.c index 575755d445..6f897d28b0 100644 --- a/src/overlays/actors/ovl_En_Ru1/z_en_ru1.c +++ b/src/overlays/actors/ovl_En_Ru1/z_en_ru1.c @@ -90,28 +90,6 @@ void EnRu1_DrawNothing(EnRu1* this, PlayState* play); void EnRu1_DrawOpa(EnRu1* this, PlayState* play); void EnRu1_DrawXlu(EnRu1* this, PlayState* play); -typedef enum EnRu1Eyes { - /* 0 */ ENRU1_EYES_OPEN, - /* 1 */ ENRU1_EYES_HALF_BLINK, - /* 2 */ ENRU1_EYES_CLOSED, - /* 3 */ ENRU1_EYES_UP, - /* 4 */ ENRU1_EYES_GAZING, - /* 5 */ ENRU1_EYES_BLUSH, -} EnRu1Eyes; - -typedef enum EnRu1Mouth { - /* 0 */ ENRU1_MOUTH_SMILING, - /* 1 */ ENRU1_MOUTH_FROWNING, - /* 2 */ ENRU1_MOUTH_OPEN, -} EnRu1Mouth; - -typedef enum EnRu1WaterState { - /* 0 */ ENRU1_WATER_OUTSIDE, - /* 1 */ ENRU1_WATER_IMMERSED, - /* 2 */ ENRU1_WATER_BOBBING, - /* 3 */ ENRU1_WATER_SINKING, -} EnRu1WaterState; - static ColliderCylinderInitType1 sStandingCylinderInit = { { COL_MATERIAL_HIT0, @@ -154,13 +132,52 @@ static s32 sUnused = 0; static u32 D_80AF1938 = 0; static EnRu1ActionFunc sActionFuncs[] = { - func_80AEC0B4, func_80AEC100, func_80AEC130, func_80AEC17C, func_80AEC1D4, func_80AEC244, func_80AEC2C0, - func_80AECA94, func_80AECAB4, func_80AECAD4, func_80AECB18, func_80AECB60, func_80AECBB8, func_80AECC1C, - func_80AECC84, func_80AED304, func_80AED324, func_80AED344, func_80AED374, func_80AED3A4, func_80AED3E0, - func_80AED414, func_80AEF29C, func_80AEF2AC, func_80AEF2D0, func_80AEF354, func_80AEF3A8, func_80AEEBD4, - func_80AEEC5C, func_80AEECF0, func_80AEED58, func_80AEEDCC, func_80AEEE34, func_80AEEE9C, func_80AEEF08, - func_80AEEF5C, func_80AEF9D8, func_80AEFA2C, func_80AEFAAC, func_80AEFB04, func_80AEFB68, func_80AEFCE8, - func_80AEFBC8, func_80AEFC24, func_80AEFECC, func_80AEFF40, + func_80AEC0B4, // ENRU1_ACTION_00 + func_80AEC100, // ENRU1_ACTION_01 + func_80AEC130, // ENRU1_ACTION_02 + func_80AEC17C, // ENRU1_ACTION_03 + func_80AEC1D4, // ENRU1_ACTION_04 + func_80AEC244, // ENRU1_ACTION_05 + func_80AEC2C0, // ENRU1_ACTION_06 + func_80AECA94, // ENRU1_ACTION_07 + func_80AECAB4, // ENRU1_ACTION_08 + func_80AECAD4, // ENRU1_ACTION_09 + func_80AECB18, // ENRU1_ACTION_10 + func_80AECB60, // ENRU1_ACTION_11 + func_80AECBB8, // ENRU1_ACTION_12 + func_80AECC1C, // ENRU1_ACTION_13 + func_80AECC84, // ENRU1_ACTION_14 + func_80AED304, // ENRU1_ACTION_15 + func_80AED324, // ENRU1_ACTION_16 + func_80AED344, // ENRU1_ACTION_17 + func_80AED374, // ENRU1_ACTION_18 + func_80AED3A4, // ENRU1_ACTION_19 + func_80AED3E0, // ENRU1_ACTION_20 + func_80AED414, // ENRU1_ACTION_21 + func_80AEF29C, // ENRU1_ACTION_22 + func_80AEF2AC, // ENRU1_ACTION_23 + func_80AEF2D0, // ENRU1_ACTION_24 + func_80AEF354, // ENRU1_ACTION_25 + func_80AEF3A8, // ENRU1_ACTION_26 + func_80AEEBD4, // ENRU1_ACTION_27 + func_80AEEC5C, // ENRU1_ACTION_28 + func_80AEECF0, // ENRU1_ACTION_29 + func_80AEED58, // ENRU1_ACTION_30 + func_80AEEDCC, // ENRU1_ACTION_31 + func_80AEEE34, // ENRU1_ACTION_32 + func_80AEEE9C, // ENRU1_ACTION_33 + func_80AEEF08, // ENRU1_ACTION_34 + func_80AEEF5C, // ENRU1_ACTION_35 + func_80AEF9D8, // ENRU1_ACTION_36 + func_80AEFA2C, // ENRU1_ACTION_37 + func_80AEFAAC, // ENRU1_ACTION_38 + func_80AEFB04, // ENRU1_ACTION_39 + func_80AEFB68, // ENRU1_ACTION_40 + func_80AEFCE8, // ENRU1_ACTION_41 + func_80AEFBC8, // ENRU1_ACTION_42 + func_80AEFC24, // ENRU1_ACTION_43 + func_80AEFECC, // ENRU1_ACTION_44 + func_80AEFF40, // ENRU1_ACTION_45 }; static EnRu1PreLimbDrawFunc sPreLimbDrawFuncs[] = { @@ -325,7 +342,8 @@ s32 func_80AEB020(EnRu1* this, PlayState* play) { if (actorIt->id == ACTOR_EN_RU1) { someEnRu1 = (EnRu1*)actorIt; if (someEnRu1 != this) { - if ((someEnRu1->action == 31) || (someEnRu1->action == 32) || (someEnRu1->action == 24)) { + if ((someEnRu1->action == ENRU1_ACTION_31) || (someEnRu1->action == ENRU1_ACTION_32) || + (someEnRu1->action == ENRU1_ACTION_24)) { return true; } } @@ -385,8 +403,8 @@ s32 func_80AEB1B4(PlayState* play) { #if DEBUG_FEATURES void func_80AEB1D8(EnRu1* this) { - this->action = 36; - this->drawConfig = 0; + this->action = ENRU1_ACTION_36; + this->drawConfig = ENRU1_DRAW_NOTHING; this->actor.velocity.x = 0.0f; this->actor.velocity.y = 0.0f; this->actor.velocity.z = 0.0f; @@ -426,7 +444,7 @@ void EnRu1_AnimationChange(EnRu1* this, AnimationHeader* animation, u8 mode, f32 s32 EnRu1_UpdateSkelAnime(EnRu1* this) { // why? - if (this->action != 32) { + if (this->action != ENRU1_ACTION_32) { return SkelAnime_Update(&this->skelAnime); } else { return SkelAnime_Update(&this->skelAnime); @@ -449,8 +467,8 @@ void func_80AEB3CC(EnRu1* this) { void EnRu1_InitOutsideJabuJabu(EnRu1* this, PlayState* play) { EnRu1_AnimationChange(this, &gRutoChildWaitHandsBehindBackAnim, ANIMMODE_LOOP, 0, false); - this->action = 0; - this->drawConfig = 1; + this->action = ENRU1_ACTION_00; + this->drawConfig = ENRU1_DRAW_OPA; EnRu1_SetEyes(this, ENRU1_EYES_GAZING); EnRu1_SetMouth(this, ENRU1_MOUTH_SMILING); } @@ -653,8 +671,8 @@ void func_80AEBCB8(EnRu1* this, UNK_TYPE arg1) { void func_80AEBD1C(EnRu1* this, PlayState* play) { if (func_80AEB480(play, 2)) { - this->action = 1; - this->drawConfig = 0; + this->action = ENRU1_ACTION_01; + this->drawConfig = ENRU1_DRAW_NOTHING; func_80AEB914(this, play); func_80AEAECC(this, play); EnRu1_SpawnSplash(this, play); @@ -671,8 +689,8 @@ void func_80AEBD94(EnRu1* this, PlayState* play) { func_80AEB934(this, play); func_80AEB738(this, play); Animation_Change(&this->skelAnime, &gRutoChildResurfaceAnim, 1.0f, 0.0f, frameCount, ANIMMODE_ONCE, 0.0f); - this->action = 2; - this->drawConfig = 1; + this->action = ENRU1_ACTION_02; + this->drawConfig = ENRU1_DRAW_OPA; } } @@ -684,7 +702,7 @@ void func_80AEBE3C(EnRu1* this, PlayState* play, s32 arg2) { func_80AEB7D0(this); Animation_Change(&this->skelAnime, &gRutoChildTreadWaterAnim, 1.0f, 0, frameCount, ANIMMODE_LOOP, -8.0f); - this->action = 3; + this->action = ENRU1_ACTION_03; } else { func_80AEB954(this, play); } @@ -699,7 +717,7 @@ void func_80AEBEC8(EnRu1* this, PlayState* play) { func_80AEB738(this, play); Animation_Change(&this->skelAnime, &gRutoChildTransitionToSwimOnBackAnim, 1.0f, 0, frameCount, ANIMMODE_ONCE, -8.0f); - this->action = 4; + this->action = ENRU1_ACTION_04; } } @@ -708,7 +726,7 @@ void func_80AEBF60(EnRu1* this, PlayState* play) { s32 pad; func_80AEB7D0(this); - this->action = 5; + this->action = ENRU1_ACTION_05; this->unk_364 = this->actor.world.pos; } else { func_80AEBA0C(this, play); @@ -729,7 +747,7 @@ void func_80AEBFD8(EnRu1* this, PlayState* play) { frameCount = Animation_GetLastFrame(&gRutoChildTransitionFromSwimOnBackAnim); Animation_Change(&this->skelAnime, &gRutoChildTransitionFromSwimOnBackAnim, 1.0, 0, frameCount, ANIMMODE_ONCE, -8.0f); - this->action = 6; + this->action = ENRU1_ACTION_06; } } } @@ -807,7 +825,7 @@ void func_80AEC2C0(EnRu1* this, PlayState* play) { void EnRu1_InitInJabuJabuHolesRoom(EnRu1* this, PlayState* play) { if (!GET_INFTABLE(INFTABLE_141)) { EnRu1_AnimationChange(this, &gRutoChildWait2Anim, ANIMMODE_LOOP, 0, false); - this->action = 7; + this->action = ENRU1_ACTION_07; EnRu1_SetMouth(this, ENRU1_MOUTH_FROWNING); } else if (GET_INFTABLE(INFTABLE_147) && !GET_INFTABLE(INFTABLE_140) && !GET_INFTABLE(INFTABLE_145)) { if (!func_80AEB020(this, play)) { @@ -815,9 +833,9 @@ void EnRu1_InitInJabuJabuHolesRoom(EnRu1* this, PlayState* play) { EnRu1_AnimationChange(this, &gRutoChildWait2Anim, ANIMMODE_LOOP, 0, false); actorRoom = this->actor.room; - this->action = 22; + this->action = ENRU1_ACTION_22; this->actor.room = -1; - this->drawConfig = 0; + this->drawConfig = ENRU1_DRAW_NOTHING; this->roomNum1 = actorRoom; this->roomNum3 = actorRoom; this->roomNum2 = actorRoom; @@ -907,7 +925,7 @@ void func_80AEC780(EnRu1* this, PlayState* play) { play->csCtx.script = gRutoFirstMeetingCs; gSaveContext.cutsceneTrigger = 1; player->speedXZ = 0.0f; - this->action = 8; + this->action = ENRU1_ACTION_08; } } @@ -923,8 +941,8 @@ void func_80AEC81C(EnRu1* this, PlayState* play) { newRotY = cue->rot.y; this->actor.shape.rot.y = newRotY; this->actor.world.rot.y = newRotY; - this->action = 9; - this->drawConfig = 1; + this->action = ENRU1_ACTION_09; + this->drawConfig = ENRU1_DRAW_OPA; } } @@ -932,7 +950,7 @@ void func_80AEC8B8(EnRu1* this, PlayState* play) { if (func_80AEAFA0(play, 3, 3)) { Animation_Change(&this->skelAnime, &gRutoChildTurnAroundAnim, 1.0f, 0, Animation_GetLastFrame(&gRutoChildTurnAroundAnim), ANIMMODE_ONCE, -8.0f); - this->action = 10; + this->action = ENRU1_ACTION_10; } } @@ -941,7 +959,7 @@ void func_80AEC93C(EnRu1* this, UNK_TYPE arg1) { Animation_Change(&this->skelAnime, &gRutoChildWalkAnim, 1.0f, 0, Animation_GetLastFrame(&gRutoChildWalkAnim), ANIMMODE_LOOP, -8.0f); this->actor.world.rot.y += 0x8000; - this->action = 0xB; + this->action = ENRU1_ACTION_11; this->unk_26C = 0.0f; } } @@ -949,7 +967,7 @@ void func_80AEC93C(EnRu1* this, UNK_TYPE arg1) { void func_80AEC9C4(EnRu1* this) { this->unk_26C += 1.0f; if (this->unk_26C >= 8.0f) { - this->action = 12; + this->action = ENRU1_ACTION_12; this->unk_26C = 0.0f; this->actor.velocity.y = -1.0f; } @@ -959,7 +977,7 @@ void func_80AECA18(EnRu1* this) { if (!(this->actor.bgCheckFlags & BGCHECKFLAG_GROUND)) { s32 pad; - this->action = 13; + this->action = ENRU1_ACTION_13; this->unk_26C = 0.0f; this->actor.velocity.y = 0.0f; } @@ -968,7 +986,7 @@ void func_80AECA18(EnRu1* this) { void func_80AECA44(EnRu1* this, PlayState* play) { if (func_80AEAFA0(play, 5, 3)) { SET_INFTABLE(INFTABLE_141); - this->action = 14; + this->action = ENRU1_ACTION_14; } } @@ -1051,7 +1069,7 @@ void func_80AECCB0(EnRu1* this, PlayState* play) { void EnRu1_InitInBossRoom(EnRu1* this, PlayState* play) { EnRu1_AnimationChange(this, &gRutoChildWaitHandsOnHipsAnim, ANIMMODE_LOOP, 0, false); - this->action = 15; + this->action = ENRU1_ACTION_15; this->actor.shape.yOffset = -10000.0f; EnRu1_SetEyes(this, ENRU1_EYES_BLUSH); EnRu1_SetMouth(this, ENRU1_MOUTH_OPEN); @@ -1129,12 +1147,12 @@ void func_80AED0B0(EnRu1* this, s32 state) { } void func_80AED0C8(EnRu1* this, PlayState* play) { - this->action = 16; + this->action = ENRU1_ACTION_16; } void func_80AED0D8(EnRu1* this, PlayState* play) { - this->action = 17; - this->drawConfig = 1; + this->action = ENRU1_ACTION_17; + this->drawConfig = ENRU1_DRAW_OPA; this->actor.world.rot.y = this->actor.yawTowardsPlayer; this->actor.shape.rot.y = this->actor.yawTowardsPlayer; func_80AECCB0(this, play); @@ -1142,7 +1160,7 @@ void func_80AED0D8(EnRu1* this, PlayState* play) { void func_80AED110(EnRu1* this) { if (this->actor.shape.yOffset >= 0.0f) { - this->action = 18; + this->action = ENRU1_ACTION_18; this->actor.shape.yOffset = 0.0f; func_80AED0B0(this, WARP_BLUE_RUTO_STATE_READY); } @@ -1150,7 +1168,7 @@ void func_80AED110(EnRu1* this) { void func_80AED154(EnRu1* this, PlayState* play) { if (func_80AED084(this, WARP_BLUE_RUTO_STATE_ENTERED)) { - this->action = 0x13; + this->action = ENRU1_ACTION_19; this->unk_26C = 0.0f; func_80AECEB4(this, play); } @@ -1161,7 +1179,7 @@ void func_80AED19C(EnRu1* this, s32 cond) { Animation_Change(&this->skelAnime, &gRutoChildTransitionHandsOnHipToCrossArmsAndLegsAnim, 1.0f, 0, Animation_GetLastFrame(&gRutoChildTransitionHandsOnHipToCrossArmsAndLegsAnim), ANIMMODE_ONCE, -8.0f); - this->action = 20; + this->action = ENRU1_ACTION_20; func_80AED0B0(this, WARP_BLUE_RUTO_STATE_3); } } @@ -1175,7 +1193,7 @@ void func_80AED218(EnRu1* this, UNK_TYPE arg1) { } else if (func_80AED084(this, WARP_BLUE_RUTO_STATE_WARPING)) { Animation_Change(&this->skelAnime, &gRutoChildWaitInBlueWarpAnim, 1.0f, 0, Animation_GetLastFrame(&gRutoChildWaitInBlueWarpAnim), ANIMMODE_ONCE, -8.0f); - this->action = 21; + this->action = ENRU1_ACTION_21; this->unk_27C = this->actor.xzDistToPlayer; } } @@ -1223,7 +1241,7 @@ void EnRu1_InitInJabuJabuBasement(EnRu1* this, PlayState* play) { EnRu1_AnimationChange(this, &gRutoChildWait2Anim, ANIMMODE_LOOP, 0, false); actorRoom = this->actor.room; - this->action = 22; + this->action = ENRU1_ACTION_22; this->actor.room = -1; this->roomNum1 = actorRoom; this->roomNum3 = actorRoom; @@ -1273,9 +1291,9 @@ s32 func_80AED624(EnRu1* this, PlayState* play) { Actor_Kill(&this->actor); return false; } else if (((this->roomNum1 != curRoomNum) || (this->roomNum2 != curRoomNum)) && - (this->actor.depthInWater > kREG(16) + 50.0f) && (this->action != 33)) { - this->action = 33; - this->drawConfig = 2; + (this->actor.depthInWater > kREG(16) + 50.0f) && (this->action != ENRU1_ACTION_33)) { + this->action = ENRU1_ACTION_33; + this->drawConfig = ENRU1_DRAW_XLU; this->alpha = 0xFF; this->unk_2A4 = 0.0f; } @@ -1598,8 +1616,8 @@ s32 func_80AEE394(EnRu1* this, PlayState* play) { func_80AEE02C(this); play->csCtx.script = gRutoObtainingSapphireCs; gSaveContext.cutsceneTrigger = 1; - this->action = 36; - this->drawConfig = 0; + this->action = ENRU1_ACTION_36; + this->drawConfig = ENRU1_DRAW_NOTHING; this->bigOctoPlatform = (BgBdanObjects*)dynaPolyActor; this->actor.shape.shadowAlpha = 0; return true; @@ -1614,14 +1632,14 @@ void func_80AEE488(EnRu1* this, PlayState* play) { if (Actor_HasParent(&this->actor, play)) { curRoomNum = play->roomCtx.curRoom.num; this->roomNum3 = curRoomNum; - this->action = 31; + this->action = ENRU1_ACTION_31; func_80AED520(this, play); } else if (!func_80AEE394(this, play) && !(this->actor.bgCheckFlags & BGCHECKFLAG_GROUND)) { s32 pad; this->actor.minVelocityY = -((kREG(24) * 0.01f) + 6.8f); this->actor.gravity = -((kREG(23) * 0.01f) + 1.3f); - this->action = 28; + this->action = ENRU1_ACTION_28; } } @@ -1633,13 +1651,13 @@ void func_80AEE568(EnRu1* this, PlayState* play) { func_80AEE02C(this); Actor_OfferCarry(&this->actor, play); - this->action = 27; + this->action = ENRU1_ACTION_27; EnRu1_DisableSittingOC(this); return; } if (this->actor.depthInWater > 0.0f) { - this->action = 29; + this->action = ENRU1_ACTION_29; this->waterState = ENRU1_WATER_OUTSIDE; } } @@ -1653,7 +1671,7 @@ void func_80AEE628(EnRu1* this, PlayState* play) { Animation_Change(&this->skelAnime, &gRutoChildSittingAnim, 1.0f, 0, Animation_GetLastFrame(&gRutoChildSittingAnim), ANIMMODE_LOOP, -8.0f); SET_INFTABLE(INFTABLE_144); - this->action = 31; + this->action = ENRU1_ACTION_31; } this->roomNum3 = curRoomNum; } @@ -1667,7 +1685,7 @@ s32 func_80AEE6D0(EnRu1* this, PlayState* play) { Animation_Change(&this->skelAnime, &gRutoChildSeesSapphireAnim, 1.0f, 0, Animation_GetLastFrame(&gRutoChildSquirmAnim), ANIMMODE_LOOP, -8.0f); func_80AED600(this); - this->action = 34; + this->action = ENRU1_ACTION_34; this->unk_26C = 0.0f; play->csCtx.script = gRutoFoundSapphireCs; gSaveContext.cutsceneTrigger = 1; @@ -1694,7 +1712,7 @@ void EnRu1_UpdateCarriedBehavior(EnRu1* this, PlayState* play) { this->actor.minVelocityY = -((kREG(24) * 0.01f) + 6.8f); this->actor.gravity = -((kREG(23) * 0.01f) + 1.3f); func_80AED57C(this); - this->action = 28; + this->action = ENRU1_ACTION_28; *carryIdleTimer = 0.0f; } else if (func_80AEE6D0(this, play)) { s32 pad; @@ -1704,7 +1722,7 @@ void EnRu1_UpdateCarriedBehavior(EnRu1* this, PlayState* play) { player = GET_PLAYER(play); if (player->stateFlags2 & PLAYER_STATE2_IDLE_FIDGET) { this->carryIdleTimer += 1.0f; - if (this->action != 32) { + if (this->action != ENRU1_ACTION_32) { if (*carryIdleTimer > 30.0f) { if (Rand_S16Offset(0, 3) == 0) { f32 frameCount = Animation_GetLastFrame(&gRutoChildSquirmAnim); @@ -1712,7 +1730,7 @@ void EnRu1_UpdateCarriedBehavior(EnRu1* this, PlayState* play) { Animation_Change(&this->skelAnime, &gRutoChildSquirmAnim, 1.0f, 0, frameCount, ANIMMODE_LOOP, -8.0f); func_80AED5DC(this); - this->action = 32; + this->action = ENRU1_ACTION_32; } *carryIdleTimer = 0.0f; } @@ -1722,7 +1740,7 @@ void EnRu1_UpdateCarriedBehavior(EnRu1* this, PlayState* play) { Animation_Change(&this->skelAnime, &gRutoChildSittingAnim, 1.0f, 0, frameCount, ANIMMODE_LOOP, -8.0f); - this->action = 31; + this->action = ENRU1_ACTION_31; *carryIdleTimer = 0.0f; } } @@ -1741,7 +1759,7 @@ s32 EnRu1_CheckHitBottomUnderwater(EnRu1* this, PlayState* play) { func_80AEE02C(this); Actor_OfferCarry(&this->actor, play); - this->action = 27; + this->action = ENRU1_ACTION_27; EnRu1_DisableSittingOC(this); return true; } @@ -1749,8 +1767,8 @@ s32 EnRu1_CheckHitBottomUnderwater(EnRu1* this, PlayState* play) { } void EnRu1_CheckSinkingState(EnRu1* this, PlayState* play) { - if ((EnRu1_CheckHitBottomUnderwater(this, play) == 0) && (this->waterState == ENRU1_WATER_SINKING)) { - this->action = 30; + if ((!EnRu1_CheckHitBottomUnderwater(this, play)) && (this->waterState == ENRU1_WATER_SINKING)) { + this->action = ENRU1_ACTION_30; func_80AEE02C(this); this->actor.gravity = -0.1f; this->actor.minVelocityY = -((kREG(18) * 0.1f) + 0.7f); @@ -1881,7 +1899,7 @@ s32 func_80AEF0BC(EnRu1* this, PlayState* play) { Animation_Change(&this->skelAnime, &gRutoChildSitAnim, 1.0f, 0, frameCount, ANIMMODE_ONCE, -8.0f); play->msgCtx.msgMode = MSGMODE_PAUSED; - this->action = 26; + this->action = ENRU1_ACTION_26; this->actor.flags &= ~(ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY); return true; } @@ -1890,7 +1908,7 @@ s32 func_80AEF0BC(EnRu1* this, PlayState* play) { void func_80AEF170(EnRu1* this, PlayState* play, s32 cond) { if (cond) { - this->action = 25; + this->action = ENRU1_ACTION_25; } } @@ -1898,7 +1916,7 @@ void func_80AEF188(EnRu1* this, PlayState* play) { if (func_80AEB174(play) && !func_80AEF0BC(this, play)) { Message_CloseTextbox(play); SET_INFTABLE(INFTABLE_142); - this->action = 24; + this->action = ENRU1_ACTION_24; } } @@ -1910,18 +1928,18 @@ void func_80AEF1F0(EnRu1* this, PlayState* play, UNK_TYPE arg2) { SET_INFTABLE(INFTABLE_143); func_80AED6DC(this, play); Actor_OfferCarry(&this->actor, play); - this->action = 27; + this->action = ENRU1_ACTION_27; EnRu1_DisableSittingOC(this); } } void func_80AEF29C(EnRu1* this, PlayState* play) { - this->action = 23; + this->action = ENRU1_ACTION_23; } void func_80AEF2AC(EnRu1* this, PlayState* play) { - this->action = 24; - this->drawConfig = 1; + this->action = ENRU1_ACTION_24; + this->drawConfig = ENRU1_DRAW_OPA; this->actor.flags |= ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY; } @@ -2032,8 +2050,8 @@ void func_80AEF624(EnRu1* this, PlayState* play) { Animation_Change(&this->skelAnime, &gRutoChildWalkToAndHoldUpSapphireAnim, 1.0f, 0.0f, frameCount, ANIMMODE_ONCE, 0.0f); func_80AEB3A4(this, play); - this->action = 37; - this->drawConfig = 1; + this->action = ENRU1_ACTION_37; + this->drawConfig = ENRU1_DRAW_OPA; this->actor.shape.shadowAlpha = 0xFF; } } @@ -2043,7 +2061,7 @@ void func_80AEF728(EnRu1* this, UNK_TYPE arg1) { Animation_Change(&this->skelAnime, &gRutoChildHoldArmsUpAnim, 1.0f, 0.0f, Animation_GetLastFrame(&gRutoChildHoldArmsUpAnim), ANIMMODE_LOOP, 0.0f); func_80AEB3CC(this); - this->action = 38; + this->action = ENRU1_ACTION_38; } } @@ -2051,7 +2069,7 @@ void func_80AEF79C(EnRu1* this, PlayState* play) { if (func_80AEAFE0(play, 2, 3)) { Animation_Change(&this->skelAnime, &gRutoChildBringHandsDownAnim, 1.0f, 0, Animation_GetLastFrame(&gRutoChildBringHandsDownAnim), ANIMMODE_ONCE, -8.0f); - this->action = 39; + this->action = ENRU1_ACTION_39; } } @@ -2059,7 +2077,7 @@ void func_80AEF820(EnRu1* this, UNK_TYPE arg1) { if (arg1 != 0) { Animation_Change(&this->skelAnime, &gRutoChildWait2Anim, 1.0f, 0, Animation_GetLastFrame(&gRutoChildWait2Anim), ANIMMODE_LOOP, -8.0f); - this->action = 40; + this->action = ENRU1_ACTION_40; } } @@ -2072,7 +2090,7 @@ void func_80AEF890(EnRu1* this, PlayState* play) { SET_INFTABLE(INFTABLE_145); Flags_SetSwitch(play, EnRu1_GetSwitchFlag(this)); EnRu1_SetPlatformCamSetting(this, 1); - this->action = 42; + this->action = ENRU1_ACTION_42; this->actor.room = curRoomNum; } } @@ -2087,8 +2105,8 @@ void func_80AEF930(EnRu1* this, PlayState* play) { Message_StartTextbox(play, this->actor.textId, NULL); #endif func_80AEF4A8(this, play); - this->action = 43; - this->drawConfig = 0; + this->action = ENRU1_ACTION_43; + this->drawConfig = ENRU1_DRAW_NOTHING; } } @@ -2178,7 +2196,7 @@ void EnRu1_InitInSapphireRoom(EnRu1* this, PlayState* play) { s32 pad; EnRu1_AnimationChange(this, &gRutoChildWait2Anim, ANIMMODE_LOOP, 0, false); - this->action = 41; + this->action = ENRU1_ACTION_41; this->bigOctoPlatform = EnRu1_FindBigOctoPlatform(play); EnRu1_SetPlatformCamSetting(this, 1); this->actor.flags &= ~(ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_FRIENDLY); @@ -2190,8 +2208,8 @@ void EnRu1_InitInSapphireRoom(EnRu1* this, PlayState* play) { void func_80AEFCE8(EnRu1* this, PlayState* play) { this->bigOctoPlatform = EnRu1_FindBigOctoPlatform(play); if (this->bigOctoPlatform != NULL) { - this->action = 42; - this->drawConfig = 1; + this->action = ENRU1_ACTION_42; + this->drawConfig = ENRU1_DRAW_OPA; EnRu1_SetPlatformCamSetting(this, 1); } } @@ -2200,8 +2218,8 @@ void EnRu1_InitBesideKingZora(EnRu1* this, PlayState* play) { if (GET_EVENTCHKINF(EVENTCHKINF_37) && LINK_IS_CHILD) { EnRu1_AnimationChange(this, &gRutoChildWait2Anim, ANIMMODE_LOOP, 0, false); this->actor.flags &= ~ACTOR_FLAG_UPDATE_CULLING_DISABLED; - this->action = 44; - this->drawConfig = 1; + this->action = ENRU1_ACTION_44; + this->drawConfig = ENRU1_DRAW_OPA; } else { Actor_Kill(&this->actor); } @@ -2230,13 +2248,13 @@ s32 func_80AEFE38(EnRu1* this, PlayState* play) { void func_80AEFE84(EnRu1* this, PlayState* play, s32 cond) { if (cond) { - this->action = 45; + this->action = ENRU1_ACTION_45; } } void func_80AEFE9C(EnRu1* this, PlayState* play) { if (func_80AEFE38(this, play)) { - this->action = 44; + this->action = ENRU1_ACTION_44; } } @@ -2267,9 +2285,9 @@ void EnRu1_InitBesideDoorSwitch(EnRu1* this, PlayState* play) { (!(func_80AEB020(this, play)))) { EnRu1_AnimationChange(this, &gRutoChildWait2Anim, ANIMMODE_LOOP, 0, false); actorRoom = this->actor.room; - this->action = 22; + this->action = ENRU1_ACTION_22; this->actor.room = -1; - this->drawConfig = 0; + this->drawConfig = ENRU1_DRAW_NOTHING; this->roomNum1 = actorRoom; this->roomNum3 = actorRoom; this->roomNum2 = actorRoom; @@ -2283,7 +2301,7 @@ void EnRu1_InitBesideDoorSwitch(EnRu1* this, PlayState* play) { #if DEBUG_FEATURES void func_80AF0050(EnRu1* this, PlayState* play) { EnRu1_AnimationChange(this, &gRutoChildWait2Anim, ANIMMODE_LOOP, 0, false); - this->action = 36; + this->action = ENRU1_ACTION_36; this->roomNum1 = this->actor.room; this->bigOctoPlatform = EnRu1_FindBigOctoPlatform(play); this->actor.room = -1; diff --git a/src/overlays/actors/ovl_En_Ru1/z_en_ru1.h b/src/overlays/actors/ovl_En_Ru1/z_en_ru1.h index 6968b6fb0d..52e89effd1 100644 --- a/src/overlays/actors/ovl_En_Ru1/z_en_ru1.h +++ b/src/overlays/actors/ovl_En_Ru1/z_en_ru1.h @@ -60,6 +60,61 @@ typedef struct EnRu1 { /* 0x0374 */ NpcInteractInfo interactInfo; } EnRu1; // size = 0x039C +typedef enum EnRu1Action { + /* 0 */ ENRU1_ACTION_00, + /* 1 */ ENRU1_ACTION_01, + /* 2 */ ENRU1_ACTION_02, + /* 3 */ ENRU1_ACTION_03, + /* 4 */ ENRU1_ACTION_04, + /* 5 */ ENRU1_ACTION_05, + /* 6 */ ENRU1_ACTION_06, + /* 7 */ ENRU1_ACTION_07, + /* 8 */ ENRU1_ACTION_08, + /* 9 */ ENRU1_ACTION_09, + /* 10 */ ENRU1_ACTION_10, + /* 11 */ ENRU1_ACTION_11, + /* 12 */ ENRU1_ACTION_12, + /* 13 */ ENRU1_ACTION_13, + /* 14 */ ENRU1_ACTION_14, + /* 15 */ ENRU1_ACTION_15, + /* 16 */ ENRU1_ACTION_16, + /* 17 */ ENRU1_ACTION_17, + /* 18 */ ENRU1_ACTION_18, + /* 19 */ ENRU1_ACTION_19, + /* 20 */ ENRU1_ACTION_20, + /* 21 */ ENRU1_ACTION_21, + /* 22 */ ENRU1_ACTION_22, + /* 23 */ ENRU1_ACTION_23, + /* 24 */ ENRU1_ACTION_24, + /* 25 */ ENRU1_ACTION_25, + /* 26 */ ENRU1_ACTION_26, + /* 27 */ ENRU1_ACTION_27, + /* 28 */ ENRU1_ACTION_28, + /* 29 */ ENRU1_ACTION_29, + /* 30 */ ENRU1_ACTION_30, + /* 31 */ ENRU1_ACTION_31, + /* 32 */ ENRU1_ACTION_32, + /* 33 */ ENRU1_ACTION_33, + /* 34 */ ENRU1_ACTION_34, + /* 35 */ ENRU1_ACTION_35, + /* 36 */ ENRU1_ACTION_36, + /* 37 */ ENRU1_ACTION_37, + /* 38 */ ENRU1_ACTION_38, + /* 39 */ ENRU1_ACTION_39, + /* 40 */ ENRU1_ACTION_40, + /* 41 */ ENRU1_ACTION_41, + /* 42 */ ENRU1_ACTION_42, + /* 43 */ ENRU1_ACTION_43, + /* 44 */ ENRU1_ACTION_44, + /* 45 */ ENRU1_ACTION_45 +} EnRu1Action; + +typedef enum EnRu1DrawConfig { + /* 0 */ ENRU1_DRAW_NOTHING, + /* 1 */ ENRU1_DRAW_OPA, + /* 2 */ ENRU1_DRAW_XLU +} EnRu1DrawConfig; + typedef enum EnRu1Type { /* 0 */ ENRU1_TYPE_BOSS_ROOM, /* 1 */ ENRU1_TYPE_FOUNTAIN, @@ -73,6 +128,28 @@ typedef enum EnRu1Type { #endif } EnRu1Type; +typedef enum EnRu1Eyes { + /* 0 */ ENRU1_EYES_OPEN, + /* 1 */ ENRU1_EYES_HALF_BLINK, + /* 2 */ ENRU1_EYES_CLOSED, + /* 3 */ ENRU1_EYES_UP, + /* 4 */ ENRU1_EYES_GAZING, + /* 5 */ ENRU1_EYES_BLUSH +} EnRu1Eyes; + +typedef enum EnRu1Mouth { + /* 0 */ ENRU1_MOUTH_SMILING, + /* 1 */ ENRU1_MOUTH_FROWNING, + /* 2 */ ENRU1_MOUTH_OPEN +} EnRu1Mouth; + +typedef enum EnRu1WaterState { + /* 0 */ ENRU1_WATER_OUTSIDE, + /* 1 */ ENRU1_WATER_IMMERSED, + /* 2 */ ENRU1_WATER_BOBBING, + /* 3 */ ENRU1_WATER_SINKING +} EnRu1WaterState; + typedef enum RutoLimb { /* 0 */ RUTO_CHILD_NONE, /* 1 */ RUTO_CHILD_ROOT, From f213f6bae2cee6f39520b295d3d7ca41b4a6c28c Mon Sep 17 00:00:00 2001 From: Dragorn421 Date: Mon, 9 Jun 2025 00:52:10 +0200 Subject: [PATCH 12/17] .d files: use -MP (fixes make with deleted deps) (#2615) --- Makefile | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/Makefile b/Makefile index 56134bd7fc..5103d58691 100644 --- a/Makefile +++ b/Makefile @@ -366,8 +366,8 @@ CPPFLAGS += -P -xc -fno-dollars-in-identifiers $(CPP_DEFINES) ASFLAGS += -march=vr4300 -32 -no-pad-sections -Iinclude -I$(EXTRACTED_DIR) ifeq ($(COMPILER),gcc) - CFLAGS += $(CPP_DEFINES) $(GBI_DEFINES) -G 0 -nostdinc -MD $(INC) -march=vr4300 -mfix4300 -mabi=32 -mno-abicalls -mdivide-breaks -fno-PIC -fno-common -ffreestanding -funsigned-char -fbuiltin -fno-builtin-sinf -fno-builtin-cosf $(CHECK_WARNINGS) - CCASFLAGS += $(CPP_DEFINES) $(GBI_DEFINES) -G 0 -nostdinc -MD $(INC) -march=vr4300 -mfix4300 -mabi=32 -mno-abicalls -fno-PIC -fno-common -Wa,-no-pad-sections + CFLAGS += $(CPP_DEFINES) $(GBI_DEFINES) -G 0 -nostdinc -MD -MP $(INC) -march=vr4300 -mfix4300 -mabi=32 -mno-abicalls -mdivide-breaks -fno-PIC -fno-common -ffreestanding -funsigned-char -fbuiltin -fno-builtin-sinf -fno-builtin-cosf $(CHECK_WARNINGS) + CCASFLAGS += $(CPP_DEFINES) $(GBI_DEFINES) -G 0 -nostdinc -MD -MP $(INC) -march=vr4300 -mfix4300 -mabi=32 -mno-abicalls -fno-PIC -fno-common -Wa,-no-pad-sections MIPS_VERSION := -mips3 else # Suppress warnings for wrong number of macro arguments (to fake variadic @@ -385,7 +385,7 @@ endif ifeq ($(COMPILER),ido) # Have CC_CHECK pretend to be a MIPS compiler MIPS_BUILTIN_DEFS := -D_MIPS_ISA_MIPS2=2 -D_MIPS_ISA=_MIPS_ISA_MIPS2 -D_ABIO32=1 -D_MIPS_SIM=_ABIO32 -D_MIPS_SZINT=32 -D_MIPS_SZLONG=32 -D_MIPS_SZPTR=32 - CC_CHECK = gcc -nostdinc -MD -fno-builtin -fsyntax-only -funsigned-char -std=gnu90 -D_LANGUAGE_C $(CPP_DEFINES) $(MIPS_BUILTIN_DEFS) $(GBI_DEFINES) $(INC) $(CHECK_WARNINGS) + CC_CHECK = gcc -nostdinc -MD -MP -fno-builtin -fsyntax-only -funsigned-char -std=gnu90 -D_LANGUAGE_C $(CPP_DEFINES) $(MIPS_BUILTIN_DEFS) $(GBI_DEFINES) $(INC) $(CHECK_WARNINGS) ifeq ($(shell getconf LONG_BIT), 32) # Work around memory allocation bug in QEMU export QEMU_GUEST_BASE := 1 @@ -858,7 +858,7 @@ $(O_FILES): | asset_files .PHONY: o_files asset_files $(BUILD_DIR)/spec: $(SPEC) $(SPEC_INCLUDES) - $(CPP) $(CPPFLAGS) -MD -MF $@.d -MT $@ -I. $< | $(BUILD_DIR_REPLACE) > $@ + $(CPP) $(CPPFLAGS) -MD -MP -MF $@.d -MT $@ -I. $< | $(BUILD_DIR_REPLACE) > $@ $(LDSCRIPT): $(BUILD_DIR)/spec $(MKLDSCRIPT) $< $@ @@ -870,7 +870,7 @@ $(BUILD_DIR)/baserom/%.o: $(EXTRACTED_DIR)/baserom/% $(OBJCOPY) -I binary -O elf32-big $< $@ $(BUILD_DIR)/data/%.o: data/%.s - $(CPP) $(CPPFLAGS) -MD -MF $(@:.o=.d) -MT $@ -Iinclude $< | $(AS) $(ASFLAGS) -o $@ + $(CPP) $(CPPFLAGS) -MD -MP -MF $(@:.o=.d) -MT $@ -Iinclude $< | $(AS) $(ASFLAGS) -o $@ ifeq ($(PLATFORM),IQUE) NES_CHARMAP := assets/text/charmap.chn.txt @@ -879,10 +879,10 @@ else endif $(BUILD_DIR)/assets/text/%.enc.nes.h: assets/text/%.h $(EXTRACTED_DIR)/text/%.h $(NES_CHARMAP) - $(CPP) $(CPPFLAGS) -I$(EXTRACTED_DIR) -MD -MF $(@:.o=.d) -MT $@ $< | $(PYTHON) tools/msgenc.py --encoding utf-8 --charmap $(NES_CHARMAP) - $@ + $(CPP) $(CPPFLAGS) -I$(EXTRACTED_DIR) -MD -MP -MF $(@:.o=.d) -MT $@ $< | $(PYTHON) tools/msgenc.py --encoding utf-8 --charmap $(NES_CHARMAP) - $@ $(BUILD_DIR)/assets/text/%.enc.jpn.h: assets/text/%.h $(EXTRACTED_DIR)/text/%.h assets/text/charmap.jpn.txt - $(CPP) $(CPPFLAGS) -I$(EXTRACTED_DIR) -MD -MF $(@:.o=.d) -MT $@ $< | $(PYTHON) tools/msgenc.py --encoding SHIFT-JIS --wchar --charmap assets/text/charmap.jpn.txt - $@ + $(CPP) $(CPPFLAGS) -I$(EXTRACTED_DIR) -MD -MP -MF $(@:.o=.d) -MT $@ $< | $(PYTHON) tools/msgenc.py --encoding SHIFT-JIS --wchar --charmap assets/text/charmap.jpn.txt - $@ # Dependencies for encoded message headers. These dependencies are not automatic as these headers are generated # as part of the build. A clean build must know to generate them before the relevant .d files are created. @@ -895,7 +895,7 @@ $(BUILD_DIR)/assets/text/staff_message_data_static.o: $(BUILD_DIR)/assets/text/m $(BUILD_DIR)/assets/text/%.o: assets/text/%.c ifneq ($(COMPILER),gcc) # Preprocess text with modern cpp for varargs macros - $(CPP) -undef -D_LANGUAGE_C -D__sgi $(CPPFLAGS) -MD -MT $@ $(INC) $< -o $(@:.o=.c) + $(CPP) -undef -D_LANGUAGE_C -D__sgi $(CPPFLAGS) -MD -MP -MT $@ $(INC) $< -o $(@:.o=.c) $(CC) -c $(CFLAGS) $(MIPS_VERSION) $(OPTFLAGS) -o $@ $(@:.o=.c) else $(CC) -c $(CFLAGS) $(MIPS_VERSION) $(OPTFLAGS) -o $@ $< @@ -915,7 +915,7 @@ $(BUILD_DIR)/assets/%.o: $(EXTRACTED_DIR)/assets/%.c # Assemble the ROM header with GNU AS always $(BUILD_DIR)/src/makerom/rom_header.o: src/makerom/rom_header.s ifeq ($(COMPILER),ido) - $(CPP) $(CPPFLAGS) $(MIPS_BUILTIN_DEFS) $(INC) -MD -MF $(@:.o=.d) -MT $@ $< | $(AS) $(ASFLAGS) -o $@ + $(CPP) $(CPPFLAGS) $(MIPS_BUILTIN_DEFS) $(INC) -MD -MP -MF $(@:.o=.d) -MT $@ $< | $(AS) $(ASFLAGS) -o $@ else $(CCAS) -c $(CCASFLAGS) $(MIPS_VERSION) $(ASOPTFLAGS) -o $@ $< endif @@ -927,7 +927,7 @@ $(BUILD_DIR)/src/makerom/ipl3.o: $(EXTRACTED_DIR)/incbin/ipl3 $(BUILD_DIR)/src/%.o: src/%.s ifeq ($(COMPILER),ido) # For header dependencies - $(CPP) $(MIPS_BUILTIN_DEFS) $(CPPFLAGS) -x assembler-with-cpp $(INC) -MD -MF $(@:.o=.d) -MT $@ $< -o /dev/null + $(CPP) $(MIPS_BUILTIN_DEFS) $(CPPFLAGS) -x assembler-with-cpp $(INC) -MD -MP -MF $(@:.o=.d) -MT $@ $< -o /dev/null $(CCAS) -c $(CCASFLAGS) $(MIPS_VERSION) $(ASOPTFLAGS) -o $(@:.o=.tmp.o) $< # IDO generates bad symbol tables, fix the symbol table with strip.. $(STRIP) $(@:.o=.tmp.o) -N dummy-symbol-name @@ -1072,7 +1072,7 @@ $(BUILD_DIR)/assets/audio/soundfonts/%.c $(BUILD_DIR)/assets/audio/soundfonts/%. -include $(SOUNDFONT_DEP_FILES) $(BUILD_DIR)/assets/audio/soundfonts/%.o: $(BUILD_DIR)/assets/audio/soundfonts/%.c $(BUILD_DIR)/assets/audio/soundfonts/%.name - $(CPP) $(MIPS_BUILTIN_DEFS) $(CPPFLAGS) -x assembler-with-cpp $(INC) -I include/audio -MD -MF $(@:.o=.d) -MT $@ $< -o /dev/null + $(CPP) $(MIPS_BUILTIN_DEFS) $(CPPFLAGS) -x assembler-with-cpp $(INC) -I include/audio -MD -MP -MF $(@:.o=.d) -MT $@ $< -o /dev/null # compile c to unlinked object $(CC) -c $(CFLAGS) $(MIPS_VERSION) $(OPTFLAGS) -I include/audio -o $(@:.o=.tmp) $< # partial link @@ -1093,11 +1093,11 @@ endif # then assemble the sequences... $(BUILD_DIR)/assets/audio/sequences/%.o: assets/audio/sequences/%.seq include/audio/aseq.h $(SEQUENCE_TABLE) | $(SOUNDFONT_HEADERS) - $(SEQ_CPP) $(SEQ_CPPFLAGS) -MD -MT $@ $< -o $(@:.o=.s) + $(SEQ_CPP) $(SEQ_CPPFLAGS) -MD -MP -MT $@ $< -o $(@:.o=.s) $(AS) $(ASFLAGS) -I $(BUILD_DIR)/assets/audio/soundfonts -I include/audio -I $(dir $<) $(@:.o=.s) -o $@ $(BUILD_DIR)/assets/audio/sequences/%.o: $(EXTRACTED_DIR)/assets/audio/sequences/%.seq include/audio/aseq.h $(SEQUENCE_TABLE) | $(SOUNDFONT_HEADERS) - $(SEQ_CPP) $(SEQ_CPPFLAGS) -MD -MT $@ $< -o $(@:.o=.s) + $(SEQ_CPP) $(SEQ_CPPFLAGS) -MD -MP -MT $@ $< -o $(@:.o=.s) $(AS) $(ASFLAGS) -I $(BUILD_DIR)/assets/audio/soundfonts -I include/audio -I $(dir $<) $(@:.o=.s) -o $@ ifeq ($(AUDIO_BUILD_DEBUG),1) $(OBJCOPY) -O binary -j.data $@ $(@:.o=.aseq) From d4a87889ff974b7ce20625d5de556903745ae469 Mon Sep 17 00:00:00 2001 From: Dragorn421 Date: Mon, 9 Jun 2025 13:06:46 +0200 Subject: [PATCH 13/17] Commit some `assets/overlays/` 2 (#2610) * Commit some `assets/overlays/` 2 * format --- assets/xml/overlays/ovl_Elf_Msg.xml | 2 +- assets/xml/overlays/ovl_Elf_Msg2.xml | 2 +- .../actors/ovl_Boss_Ganon2/z_boss_ganon2.c | 159 +++++++++++++++++- src/overlays/actors/ovl_Elf_Msg/z_elf_msg.c | 23 ++- src/overlays/actors/ovl_Elf_Msg2/z_elf_msg2.c | 15 +- .../ovl_En_Ganon_Organ/z_en_ganon_organ.c | 91 +++++++++- .../actors/ovl_Magic_Dark/z_magic_dark.c | 19 ++- .../actors/ovl_Magic_Fire/z_magic_fire.c | 19 ++- .../actors/ovl_Oceff_Spot/z_oceff_spot.c | 19 ++- .../actors/ovl_Oceff_Storm/z_oceff_storm.c | 25 ++- .../actors/ovl_Oceff_Wipe/z_oceff_wipe.c | 19 ++- .../actors/ovl_Oceff_Wipe2/z_oceff_wipe2.c | 25 ++- .../actors/ovl_Oceff_Wipe3/z_oceff_wipe3.c | 19 ++- .../actors/ovl_Oceff_Wipe4/z_oceff_wipe4.c | 25 ++- tools/assets/extract/write_source.txt | 12 -- 15 files changed, 445 insertions(+), 29 deletions(-) diff --git a/assets/xml/overlays/ovl_Elf_Msg.xml b/assets/xml/overlays/ovl_Elf_Msg.xml index 61e28d31b7..a6b07b2e37 100644 --- a/assets/xml/overlays/ovl_Elf_Msg.xml +++ b/assets/xml/overlays/ovl_Elf_Msg.xml @@ -1,7 +1,7 @@ - + diff --git a/assets/xml/overlays/ovl_Elf_Msg2.xml b/assets/xml/overlays/ovl_Elf_Msg2.xml index a0ea055e26..c4f10e8cd3 100644 --- a/assets/xml/overlays/ovl_Elf_Msg2.xml +++ b/assets/xml/overlays/ovl_Elf_Msg2.xml @@ -1,7 +1,7 @@ - + diff --git a/src/overlays/actors/ovl_Boss_Ganon2/z_boss_ganon2.c b/src/overlays/actors/ovl_Boss_Ganon2/z_boss_ganon2.c index efe3f9583f..3c19bf8eab 100644 --- a/src/overlays/actors/ovl_Boss_Ganon2/z_boss_ganon2.c +++ b/src/overlays/actors/ovl_Boss_Ganon2/z_boss_ganon2.c @@ -17,6 +17,7 @@ #include "sfx.h" #include "sys_math.h" #include "sys_matrix.h" +#include "tex_len.h" #include "versions.h" #include "z_lib.h" #include "effect.h" @@ -28,7 +29,7 @@ #include "assets/objects/object_ganon2/object_ganon2.h" #include "assets/objects/object_ganon_anime3/object_ganon_anime3.h" #include "assets/objects/object_geff/object_geff.h" -#include "assets/overlays/ovl_Boss_Ganon2/ovl_Boss_Ganon2.h" +#include "assets/objects/gameplay_keep/gameplay_keep.h" #pragma increment_block_number "gc-eu:128 gc-eu-mq:128 gc-jp:128 gc-jp-ce:128 gc-jp-mq:128 gc-us:128 gc-us-mq:128" \ "ique-cn:128 ntsc-1.0:128 ntsc-1.1:128 ntsc-1.2:128 pal-1.0:128 pal-1.1:128" @@ -75,6 +76,19 @@ void BossGanon2_DrawEffects(PlayState* play); void BossGanon2_GenShadowTexture(void* shadowTexture, BossGanon2* this, PlayState* play); void BossGanon2_DrawShadowTexture(void* shadowTexture, BossGanon2* this, PlayState* play); +static Gfx gGanonLightOrbMaterialDL[14]; +static Gfx gGanonLightOrbModelDL[3]; +static Gfx gGanonShadowMaterialDL[4]; +static Gfx gGanonShadowModelDL[6]; +static Vtx gGanonSwordTrailVtx[22]; +static Gfx gGanonSwordTrailDL[35]; +static Gfx gGanonTriforceDL[16]; +static Gfx gGanonLightningDL[17]; +static Gfx gGanonFireRingDL[36]; +static Gfx gGanonZeldaMagicDL[33]; +static Gfx gGanonMasterSwordShadowDL[16]; +static Gfx gGanonMasterSwordDL[122]; + ActorProfile Boss_Ganon2_Profile = { /**/ ACTOR_BOSS_GANON2, /**/ ACTORCAT_BOSS, @@ -3460,4 +3474,145 @@ void BossGanon2_DrawShadowTexture(void* shadowTexture, BossGanon2* this, PlaySta // padding static u32 D_809071FC[2] = { 0 }; -#include "assets/overlays/ovl_Boss_Ganon2/ovl_Boss_Ganon2.c" +#define gGanonLightOrbTex_WIDTH 64 +#define gGanonLightOrbTex_HEIGHT 64 +static u64 gGanonLightOrbTex[TEX_LEN(u64, gGanonLightOrbTex_WIDTH, gGanonLightOrbTex_HEIGHT, 8)] = { +#include "assets/overlays/ovl_Boss_Ganon2/gGanonLightOrbTex.i8.inc.c" +}; + +static Vtx gGanonLightOrbModelVtx[] = { +#include "assets/overlays/ovl_Boss_Ganon2/gGanonLightOrbModelVtx.inc.c" +}; + +static Gfx gGanonLightOrbMaterialDL[14] = { +#include "assets/overlays/ovl_Boss_Ganon2/gGanonLightOrbMaterialDL.inc.c" +}; + +static Gfx gGanonLightOrbModelDL[3] = { +#include "assets/overlays/ovl_Boss_Ganon2/gGanonLightOrbModelDL.inc.c" +}; + +static Vtx gGanonShadowModelVtx[] = { +#include "assets/overlays/ovl_Boss_Ganon2/gGanonShadowModelVtx.inc.c" +}; + +static Gfx gGanonShadowMaterialDL[4] = { +#include "assets/overlays/ovl_Boss_Ganon2/gGanonShadowMaterialDL.inc.c" +}; + +static Gfx gGanonShadowModelDL[6] = { +#include "assets/overlays/ovl_Boss_Ganon2/gGanonShadowModelDL.inc.c" +}; + +#define gGanonSwordTrailTex_WIDTH 32 +#define gGanonSwordTrailTex_HEIGHT 32 +static u64 gGanonSwordTrailTex[TEX_LEN(u64, gGanonSwordTrailTex_WIDTH, gGanonSwordTrailTex_HEIGHT, 8)] = { +#include "assets/overlays/ovl_Boss_Ganon2/gGanonSwordTrailTex.i8.inc.c" +}; + +#define gGanonSwordTrailMaskTex_WIDTH 32 +#define gGanonSwordTrailMaskTex_HEIGHT 32 +static u64 gGanonSwordTrailMaskTex[TEX_LEN(u64, gGanonSwordTrailMaskTex_WIDTH, gGanonSwordTrailMaskTex_HEIGHT, 4)] = { +#include "assets/overlays/ovl_Boss_Ganon2/gGanonSwordTrailMaskTex.i4.inc.c" +}; + +static Vtx gGanonSwordTrailVtx[22] = { +#include "assets/overlays/ovl_Boss_Ganon2/gGanonSwordTrailVtx.inc.c" +}; + +static Gfx gGanonSwordTrailDL[35] = { +#include "assets/overlays/ovl_Boss_Ganon2/gGanonSwordTrailDL.inc.c" +}; + +#define gGanonTriforceTex_WIDTH 64 +#define gGanonTriforceTex_HEIGHT 64 +static u64 gGanonTriforceTex[TEX_LEN(u64, gGanonTriforceTex_WIDTH, gGanonTriforceTex_HEIGHT, 8)] = { +#include "assets/overlays/ovl_Boss_Ganon2/gGanonTriforceTex.i8.inc.c" +}; + +static Vtx gGanonTriforceVtx[] = { +#include "assets/overlays/ovl_Boss_Ganon2/gGanonTriforceVtx.inc.c" +}; + +static Gfx gGanonTriforceDL[16] = { +#include "assets/overlays/ovl_Boss_Ganon2/gGanonTriforceDL.inc.c" +}; + +#define gGanonLightningTex_WIDTH 32 +#define gGanonLightningTex_HEIGHT 160 +static u64 gGanonLightningTex[TEX_LEN(u64, gGanonLightningTex_WIDTH, gGanonLightningTex_HEIGHT, 4)] = { +#include "assets/overlays/ovl_Boss_Ganon2/gGanonLightningTex.i4.inc.c" +}; + +static Vtx gGanonLightningVtx[] = { +#include "assets/overlays/ovl_Boss_Ganon2/gGanonLightningVtx.inc.c" +}; + +static Gfx gGanonLightningDL[17] = { +#include "assets/overlays/ovl_Boss_Ganon2/gGanonLightningDL.inc.c" +}; + +#define gGanonFireRingTex_WIDTH 32 +#define gGanonFireRingTex_HEIGHT 64 +static u64 gGanonFireRingTex[TEX_LEN(u64, gGanonFireRingTex_WIDTH, gGanonFireRingTex_HEIGHT, 8)] = { +#include "assets/overlays/ovl_Boss_Ganon2/gGanonFireRingTex.i8.inc.c" +}; + +static Vtx gGanonFireRingVtx[] = { +#include "assets/overlays/ovl_Boss_Ganon2/gGanonFireRingVtx.inc.c" +}; + +static Gfx gGanonFireRingDL[36] = { +#include "assets/overlays/ovl_Boss_Ganon2/gGanonFireRingDL.inc.c" +}; + +#define gGanonZeldaMagicTex_WIDTH 32 +#define gGanonZeldaMagicTex_HEIGHT 64 +static u64 gGanonZeldaMagicTex[TEX_LEN(u64, gGanonZeldaMagicTex_WIDTH, gGanonZeldaMagicTex_HEIGHT, 8)] = { +#include "assets/overlays/ovl_Boss_Ganon2/gGanonZeldaMagicTex.i8.inc.c" +}; + +static Vtx gGanonZeldaMagicVtx[] = { +#include "assets/overlays/ovl_Boss_Ganon2/gGanonZeldaMagicVtx.inc.c" +}; + +static Gfx gGanonZeldaMagicDL[33] = { +#include "assets/overlays/ovl_Boss_Ganon2/gGanonZeldaMagicDL.inc.c" +}; + +#define gGanonMasterSwordShadowTex_WIDTH 32 +#define gGanonMasterSwordShadowTex_HEIGHT 32 +static u64 + gGanonMasterSwordShadowTex[TEX_LEN(u64, gGanonMasterSwordShadowTex_WIDTH, gGanonMasterSwordShadowTex_HEIGHT, 8)] = { +#include "assets/overlays/ovl_Boss_Ganon2/gGanonMasterSwordShadowTex.i8.inc.c" + }; + +static Vtx gGanonMasterSwordShadowVtx[] = { +#include "assets/overlays/ovl_Boss_Ganon2/gGanonMasterSwordShadowVtx.inc.c" +}; + +static Gfx gGanonMasterSwordShadowDL[16] = { +#include "assets/overlays/ovl_Boss_Ganon2/gGanonMasterSwordShadowDL.inc.c" +}; + +#define gGanonMasterSwordPommelTex_WIDTH 16 +#define gGanonMasterSwordPommelTex_HEIGHT 16 +static u64 gGanonMasterSwordPommelTex[TEX_LEN(u64, gGanonMasterSwordPommelTex_WIDTH, gGanonMasterSwordPommelTex_HEIGHT, + 16)] = { +#include "assets/overlays/ovl_Boss_Ganon2/gGanonMasterSwordPommelTex.rgba16.inc.c" +}; + +#define gGanonMasterSwordGuardTex_WIDTH 32 +#define gGanonMasterSwordGuardTex_HEIGHT 32 +static u64 + gGanonMasterSwordGuardTex[TEX_LEN(u64, gGanonMasterSwordGuardTex_WIDTH, gGanonMasterSwordGuardTex_HEIGHT, 16)] = { +#include "assets/overlays/ovl_Boss_Ganon2/gGanonMasterSwordGuardTex.rgba16.inc.c" + }; + +static Vtx gGanonMasterSwordVtx[] = { +#include "assets/overlays/ovl_Boss_Ganon2/gGanonMasterSwordVtx.inc.c" +}; + +static Gfx gGanonMasterSwordDL[122] = { +#include "assets/overlays/ovl_Boss_Ganon2/gGanonMasterSwordDL.inc.c" +}; diff --git a/src/overlays/actors/ovl_Elf_Msg/z_elf_msg.c b/src/overlays/actors/ovl_Elf_Msg/z_elf_msg.c index fd54803e25..abfbb1d29b 100644 --- a/src/overlays/actors/ovl_Elf_Msg/z_elf_msg.c +++ b/src/overlays/actors/ovl_Elf_Msg/z_elf_msg.c @@ -181,7 +181,26 @@ void ElfMsg_Update(Actor* thisx, PlayState* play) { } #if DEBUG_ASSETS -#include "assets/overlays/ovl_Elf_Msg/ovl_Elf_Msg.c" + +static Gfx sMaterialDL[8] = { +#include "assets/overlays/ovl_Elf_Msg/sMaterialDL.inc.c" +}; + +static Vtx sCylinderVtx[] = { +#include "assets/overlays/ovl_Elf_Msg/sCylinderVtx.inc.c" +}; + +static Gfx sCylinderDL[16] = { +#include "assets/overlays/ovl_Elf_Msg/sCylinderDL.inc.c" +}; + +static Vtx sCubeVtx[] = { +#include "assets/overlays/ovl_Elf_Msg/sCubeVtx.inc.c" +}; + +static Gfx sCubeDL[8] = { +#include "assets/overlays/ovl_Elf_Msg/sCubeDL.inc.c" +}; void ElfMsg_Draw(Actor* thisx, PlayState* play) { OPEN_DISPS(play->state.gfxCtx, "../z_elf_msg.c", 436); @@ -198,7 +217,7 @@ void ElfMsg_Draw(Actor* thisx, PlayState* play) { } MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_elf_msg.c", 448); - gSPDisplayList(POLY_XLU_DISP++, D_809AD278); + gSPDisplayList(POLY_XLU_DISP++, sMaterialDL); if (PARAMS_GET_NOSHIFT(thisx->params, 14, 1)) { gSPDisplayList(POLY_XLU_DISP++, sCubeDL); diff --git a/src/overlays/actors/ovl_Elf_Msg2/z_elf_msg2.c b/src/overlays/actors/ovl_Elf_Msg2/z_elf_msg2.c index 11a01bc4b8..9a7401619e 100644 --- a/src/overlays/actors/ovl_Elf_Msg2/z_elf_msg2.c +++ b/src/overlays/actors/ovl_Elf_Msg2/z_elf_msg2.c @@ -163,7 +163,18 @@ void ElfMsg2_Update(Actor* thisx, PlayState* play) { } #if DEBUG_ASSETS -#include "assets/overlays/ovl_Elf_Msg2/ovl_Elf_Msg2.c" + +static Gfx sMaterialDL[8] = { +#include "assets/overlays/ovl_Elf_Msg2/sMaterialDL.inc.c" +}; + +static Vtx sCubeVtx[] = { +#include "assets/overlays/ovl_Elf_Msg2/sCubeVtx.inc.c" +}; + +static Gfx sCubeDL[8] = { +#include "assets/overlays/ovl_Elf_Msg2/sCubeDL.inc.c" +}; void ElfMsg2_Draw(Actor* thisx, PlayState* play) { OPEN_DISPS(play->state.gfxCtx, "../z_elf_msg2.c", 355); @@ -175,7 +186,7 @@ void ElfMsg2_Draw(Actor* thisx, PlayState* play) { Gfx_SetupDL_25Opa(play->state.gfxCtx); gDPSetPrimColor(POLY_XLU_DISP++, 0, 0, 100, 100, 255, R_NAVI_MSG_REGION_ALPHA); MATRIX_FINALIZE_AND_LOAD(POLY_XLU_DISP++, play->state.gfxCtx, "../z_elf_msg2.c", 362); - gSPDisplayList(POLY_XLU_DISP++, D_809ADC38); + gSPDisplayList(POLY_XLU_DISP++, sMaterialDL); gSPDisplayList(POLY_XLU_DISP++, sCubeDL); CLOSE_DISPS(play->state.gfxCtx, "../z_elf_msg2.c", 367); diff --git a/src/overlays/actors/ovl_En_Ganon_Organ/z_en_ganon_organ.c b/src/overlays/actors/ovl_En_Ganon_Organ/z_en_ganon_organ.c index 6237f84e06..0830301e04 100644 --- a/src/overlays/actors/ovl_En_Ganon_Organ/z_en_ganon_organ.c +++ b/src/overlays/actors/ovl_En_Ganon_Organ/z_en_ganon_organ.c @@ -10,6 +10,7 @@ #include "gfx_setupdl.h" #include "printf.h" #include "sys_matrix.h" +#include "tex_len.h" #include "play_state.h" #include "overlays/actors/ovl_Boss_Ganon/z_boss_ganon.h" @@ -35,7 +36,95 @@ ActorProfile En_Ganon_Organ_Profile = { static u64 sForceAlignment = 0; -#include "assets/overlays/ovl_En_Ganon_Organ/ovl_En_Ganon_Organ.c" +#define sRoomCarpetTex_WIDTH 64 +#define sRoomCarpetTex_HEIGHT 16 +static u64 sRoomCarpetTex[TEX_LEN(u64, sRoomCarpetTex_WIDTH, sRoomCarpetTex_HEIGHT, 16)] = { +#include "assets/overlays/ovl_En_Ganon_Organ/sRoomCarpetTex.rgba16.inc.c" +}; + +#define sRoomOrganPipeTex_WIDTH 16 +#define sRoomOrganPipeTex_HEIGHT 64 +static u64 sRoomOrganPipeTex[TEX_LEN(u64, sRoomOrganPipeTex_WIDTH, sRoomOrganPipeTex_HEIGHT, 4)] = { +#include "assets/overlays/ovl_En_Ganon_Organ/sRoomOrganPipeTex.i4.inc.c" +}; + +#define sRoomOrganCorbelsTex_WIDTH 16 +#define sRoomOrganCorbelsTex_HEIGHT 16 +static u64 sRoomOrganCorbelsTex[TEX_LEN(u64, sRoomOrganCorbelsTex_WIDTH, sRoomOrganCorbelsTex_HEIGHT, 4)] = { +#include "assets/overlays/ovl_En_Ganon_Organ/sRoomOrganCorbelsTex.i4.inc.c" +}; + +#define sRoomOrganGrillTex_WIDTH 16 +#define sRoomOrganGrillTex_HEIGHT 16 +static u64 sRoomOrganGrillTex[TEX_LEN(u64, sRoomOrganGrillTex_WIDTH, sRoomOrganGrillTex_HEIGHT, 16)] = { +#include "assets/overlays/ovl_En_Ganon_Organ/sRoomOrganGrillTex.rgba16.inc.c" +}; + +#define sRoomCrestFriezeTex_WIDTH 32 +#define sRoomCrestFriezeTex_HEIGHT 32 +static u64 sRoomCrestFriezeTex[TEX_LEN(u64, sRoomCrestFriezeTex_WIDTH, sRoomCrestFriezeTex_HEIGHT, 4)] = { +#include "assets/overlays/ovl_En_Ganon_Organ/sRoomCrestFriezeTex.i4.inc.c" +}; + +#define sRoomColumnFriezeAndCanopyTex_WIDTH 16 +#define sRoomColumnFriezeAndCanopyTex_HEIGHT 16 +static u64 sRoomColumnFriezeAndCanopyTex[TEX_LEN(u64, sRoomColumnFriezeAndCanopyTex_WIDTH, + sRoomColumnFriezeAndCanopyTex_HEIGHT, 4)] = { +#include "assets/overlays/ovl_En_Ganon_Organ/sRoomColumnFriezeAndCanopyTex.i4.inc.c" +}; + +#define sRoomColumnMetalEdgingTex_WIDTH 16 +#define sRoomColumnMetalEdgingTex_HEIGHT 16 +static u64 + sRoomColumnMetalEdgingTex[TEX_LEN(u64, sRoomColumnMetalEdgingTex_WIDTH, sRoomColumnMetalEdgingTex_HEIGHT, 16)] = { +#include "assets/overlays/ovl_En_Ganon_Organ/sRoomColumnMetalEdgingTex.rgba16.inc.c" + }; + +#define sRoomStatueWingTex_WIDTH 16 +#define sRoomStatueWingTex_HEIGHT 16 +static u64 sRoomStatueWingTex[TEX_LEN(u64, sRoomStatueWingTex_WIDTH, sRoomStatueWingTex_HEIGHT, 16)] = { +#include "assets/overlays/ovl_En_Ganon_Organ/sRoomStatueWingTex.rgba16.inc.c" +}; + +#define sRoomPillarTex_WIDTH 8 +#define sRoomPillarTex_HEIGHT 32 +static u64 sRoomPillarTex[TEX_LEN(u64, sRoomPillarTex_WIDTH, sRoomPillarTex_HEIGHT, 8)] = { +#include "assets/overlays/ovl_En_Ganon_Organ/sRoomPillarTex.i8.inc.c" +}; + +#define sRoomOrganKeyboardTex_WIDTH 32 +#define sRoomOrganKeyboardTex_HEIGHT 8 +static u64 sRoomOrganKeyboardTex[TEX_LEN(u64, sRoomOrganKeyboardTex_WIDTH, sRoomOrganKeyboardTex_HEIGHT, 16)] = { +#include "assets/overlays/ovl_En_Ganon_Organ/sRoomOrganKeyboardTex.rgba16.inc.c" +}; + +#define sRoomOrganKeyEndTex_WIDTH 4 +#define sRoomOrganKeyEndTex_HEIGHT 8 +static u64 sRoomOrganKeyEndTex[TEX_LEN(u64, sRoomOrganKeyEndTex_WIDTH, sRoomOrganKeyEndTex_HEIGHT, 16)] = { +#include "assets/overlays/ovl_En_Ganon_Organ/sRoomOrganKeyEndTex.rgba16.inc.c" +}; + +#define sRoomStepTex_WIDTH 16 +#define sRoomStepTex_HEIGHT 16 +static u64 sRoomStepTex[TEX_LEN(u64, sRoomStepTex_WIDTH, sRoomStepTex_HEIGHT, 4)] = { +#include "assets/overlays/ovl_En_Ganon_Organ/sRoomStepTex.i4.inc.c" +}; + +static Vtx sRoomOrganAndFloorVtx[] = { +#include "assets/overlays/ovl_En_Ganon_Organ/sRoomOrganAndFloorVtx.inc.c" +}; + +static Gfx sRoomOrganAndFloorDL[429] = { +#include "assets/overlays/ovl_En_Ganon_Organ/sRoomOrganAndFloorDL.inc.c" +}; + +static Vtx sRoomStatuesVtx[] = { +#include "assets/overlays/ovl_En_Ganon_Organ/sRoomStatuesVtx.inc.c" +}; + +static Gfx sRoomStatuesDL[152] = { +#include "assets/overlays/ovl_En_Ganon_Organ/sRoomStatuesDL.inc.c" +}; void EnGanonOrgan_Init(Actor* thisx, PlayState* play) { thisx->flags &= ~ACTOR_FLAG_ATTENTION_ENABLED; diff --git a/src/overlays/actors/ovl_Magic_Dark/z_magic_dark.c b/src/overlays/actors/ovl_Magic_Dark/z_magic_dark.c index 21827f32c0..13acab8d46 100644 --- a/src/overlays/actors/ovl_Magic_Dark/z_magic_dark.c +++ b/src/overlays/actors/ovl_Magic_Dark/z_magic_dark.c @@ -11,6 +11,7 @@ #include "gfx_setupdl.h" #include "sfx.h" #include "sys_matrix.h" +#include "tex_len.h" #include "z_lib.h" #include "play_state.h" #include "player.h" @@ -41,7 +42,23 @@ ActorProfile Magic_Dark_Profile = { /**/ MagicDark_OrbDraw, }; -#include "assets/overlays/ovl_Magic_Dark/ovl_Magic_Dark.c" +#define sDiamondTex_WIDTH 32 +#define sDiamondTex_HEIGHT 64 +static u64 sDiamondTex[TEX_LEN(u64, sDiamondTex_WIDTH, sDiamondTex_HEIGHT, 8)] = { +#include "assets/overlays/ovl_Magic_Dark/sDiamondTex.i8.inc.c" +}; + +static Vtx sDiamondVtx[] = { +#include "assets/overlays/ovl_Magic_Dark/sDiamondVtx.inc.c" +}; + +static Gfx sDiamondMaterialDL[22] = { +#include "assets/overlays/ovl_Magic_Dark/sDiamondMaterialDL.inc.c" +}; + +static Gfx sDiamondModelDL[8] = { +#include "assets/overlays/ovl_Magic_Dark/sDiamondModelDL.inc.c" +}; // unused static Color_RGBA8 D_80B88B10[] = { { 50, 100, 150, 200 }, { 255, 200, 150, 100 } }; diff --git a/src/overlays/actors/ovl_Magic_Fire/z_magic_fire.c b/src/overlays/actors/ovl_Magic_Fire/z_magic_fire.c index 103a7ee1b8..a5938c8fca 100644 --- a/src/overlays/actors/ovl_Magic_Fire/z_magic_fire.c +++ b/src/overlays/actors/ovl_Magic_Fire/z_magic_fire.c @@ -11,6 +11,7 @@ #include "ichain.h" #include "sfx.h" #include "sys_matrix.h" +#include "tex_len.h" #include "z_lib.h" #include "play_state.h" #include "player.h" @@ -51,7 +52,23 @@ ActorProfile Magic_Fire_Profile = { /**/ MagicFire_Draw, }; -#include "assets/overlays/ovl_Magic_Fire/ovl_Magic_Fire.c" +#define sTex_WIDTH 64 +#define sTex_HEIGHT 64 +static u64 sTex[TEX_LEN(u64, sTex_WIDTH, sTex_HEIGHT, 8)] = { +#include "assets/overlays/ovl_Magic_Fire/sTex.i8.inc.c" +}; + +static Vtx sSphereVtx[] = { +#include "assets/overlays/ovl_Magic_Fire/sSphereVtx.inc.c" +}; + +static Gfx sMaterialDL[5] = { +#include "assets/overlays/ovl_Magic_Fire/sMaterialDL.inc.c" +}; + +static Gfx sModelDL[45] = { +#include "assets/overlays/ovl_Magic_Fire/sModelDL.inc.c" +}; static ColliderCylinderInit sCylinderInit = { { diff --git a/src/overlays/actors/ovl_Oceff_Spot/z_oceff_spot.c b/src/overlays/actors/ovl_Oceff_Spot/z_oceff_spot.c index 61772fa0c1..15f6308e1e 100644 --- a/src/overlays/actors/ovl_Oceff_Spot/z_oceff_spot.c +++ b/src/overlays/actors/ovl_Oceff_Spot/z_oceff_spot.c @@ -13,6 +13,7 @@ #include "regs.h" #include "sys_matrix.h" #include "terminal.h" +#include "tex_len.h" #include "translation.h" #include "z_lib.h" #include "light.h" @@ -42,7 +43,23 @@ ActorProfile Oceff_Spot_Profile = { /**/ OceffSpot_Draw, }; -#include "assets/overlays/ovl_Oceff_Spot/ovl_Oceff_Spot.c" +#define sTex_WIDTH 32 +#define sTex_HEIGHT 32 +static u64 sTex[TEX_LEN(u64, sTex_WIDTH, sTex_HEIGHT, 8)] = { +#include "assets/overlays/ovl_Oceff_Spot/sTex.i8.inc.c" +}; + +static Vtx sCylinderVtx[] = { +#include "assets/overlays/ovl_Oceff_Spot/sCylinderVtx.inc.c" +}; + +static Gfx sCylinderMaterialDL[19] = { +#include "assets/overlays/ovl_Oceff_Spot/sCylinderMaterialDL.inc.c" +}; + +static Gfx sCylinderModelDL[18] = { +#include "assets/overlays/ovl_Oceff_Spot/sCylinderModelDL.inc.c" +}; static InitChainEntry sInitChain[] = { ICHAIN_VEC3F_DIV1000(scale, 0, ICHAIN_CONTINUE), diff --git a/src/overlays/actors/ovl_Oceff_Storm/z_oceff_storm.c b/src/overlays/actors/ovl_Oceff_Storm/z_oceff_storm.c index 036349d0e9..e7e623f024 100644 --- a/src/overlays/actors/ovl_Oceff_Storm/z_oceff_storm.c +++ b/src/overlays/actors/ovl_Oceff_Storm/z_oceff_storm.c @@ -9,10 +9,13 @@ #include "gfx.h" #include "gfx_setupdl.h" #include "sys_matrix.h" +#include "tex_len.h" #include "play_state.h" #include "player.h" #include "save.h" +#include "assets/objects/gameplay_keep/gameplay_keep.h" + #define FLAGS (ACTOR_FLAG_UPDATE_CULLING_DISABLED | ACTOR_FLAG_DRAW_CULLING_DISABLED | ACTOR_FLAG_UPDATE_DURING_OCARINA) void OceffStorm_Init(Actor* thisx, PlayState* play); @@ -127,7 +130,27 @@ void OceffStorm_Update(Actor* thisx, PlayState* play) { this->actionFunc(this, play); } -#include "assets/overlays/ovl_Oceff_Storm/ovl_Oceff_Storm.c" +#define sTex_WIDTH 64 +#define sTex_HEIGHT 64 +static u64 sTex[TEX_LEN(u64, sTex_WIDTH, sTex_HEIGHT, 8)] = { +#include "assets/overlays/ovl_Oceff_Storm/sTex.i8.inc.c" +}; + +static Gfx sMaterialDL[21] = { +#include "assets/overlays/ovl_Oceff_Storm/sMaterialDL.inc.c" +}; + +static Vtx sCylinderVtx[] = { +#include "assets/overlays/ovl_Oceff_Storm/sCylinderVtx.inc.c" +}; + +static Gfx sCylinderMaterialDL[21] = { +#include "assets/overlays/ovl_Oceff_Storm/sCylinderMaterialDL.inc.c" +}; + +static Gfx sCylinderModelDL[18] = { +#include "assets/overlays/ovl_Oceff_Storm/sCylinderModelDL.inc.c" +}; void OceffStorm_Draw2(Actor* thisx, PlayState* play) { u32 scroll = play->state.frames & 0xFFF; diff --git a/src/overlays/actors/ovl_Oceff_Wipe/z_oceff_wipe.c b/src/overlays/actors/ovl_Oceff_Wipe/z_oceff_wipe.c index 8346407c9a..e07daebbfd 100644 --- a/src/overlays/actors/ovl_Oceff_Wipe/z_oceff_wipe.c +++ b/src/overlays/actors/ovl_Oceff_Wipe/z_oceff_wipe.c @@ -11,6 +11,7 @@ #include "printf.h" #include "sys_matrix.h" #include "terminal.h" +#include "tex_len.h" #include "z_lib.h" #include "play_state.h" #include "player.h" @@ -65,7 +66,23 @@ void OceffWipe_Update(Actor* thisx, PlayState* play) { } } -#include "assets/overlays/ovl_Oceff_Wipe/ovl_Oceff_Wipe.c" +#define sTex_WIDTH 32 +#define sTex_HEIGHT 32 +static u64 sTex[TEX_LEN(u64, sTex_WIDTH, sTex_HEIGHT, 8)] = { +#include "assets/overlays/ovl_Oceff_Wipe/sTex.i8.inc.c" +}; + +static Vtx sFrustumVtx[] = { +#include "assets/overlays/ovl_Oceff_Wipe/sFrustumVtx.inc.c" +}; + +static Gfx sMaterialDL[17] = { +#include "assets/overlays/ovl_Oceff_Wipe/sMaterialDL.inc.c" +}; + +static Gfx sFrustumDL[23] = { +#include "assets/overlays/ovl_Oceff_Wipe/sFrustumDL.inc.c" +}; static u8 sAlphaIndices[] = { 0x01, 0x10, 0x22, 0x01, 0x20, 0x12, 0x01, 0x20, 0x12, 0x01, diff --git a/src/overlays/actors/ovl_Oceff_Wipe2/z_oceff_wipe2.c b/src/overlays/actors/ovl_Oceff_Wipe2/z_oceff_wipe2.c index 71498caa13..b71ddef91a 100644 --- a/src/overlays/actors/ovl_Oceff_Wipe2/z_oceff_wipe2.c +++ b/src/overlays/actors/ovl_Oceff_Wipe2/z_oceff_wipe2.c @@ -11,6 +11,7 @@ #include "printf.h" #include "sys_matrix.h" #include "terminal.h" +#include "tex_len.h" #include "z_lib.h" #include "play_state.h" #include "player.h" @@ -65,7 +66,29 @@ void OceffWipe2_Update(Actor* thisx, PlayState* play) { } } -#include "assets/overlays/ovl_Oceff_Wipe2/ovl_Oceff_Wipe2.c" +#define s1Tex_WIDTH 64 +#define s1Tex_HEIGHT 64 +static u64 s1Tex[TEX_LEN(u64, s1Tex_WIDTH, s1Tex_HEIGHT, 4)] = { +#include "assets/overlays/ovl_Oceff_Wipe2/s1Tex.i4.inc.c" +}; + +#define s2Tex_WIDTH 64 +#define s2Tex_HEIGHT 64 +static u64 s2Tex[TEX_LEN(u64, s2Tex_WIDTH, s2Tex_HEIGHT, 4)] = { +#include "assets/overlays/ovl_Oceff_Wipe2/s2Tex.i4.inc.c" +}; + +static Vtx sFrustumVtx[] = { +#include "assets/overlays/ovl_Oceff_Wipe2/sFrustumVtx.inc.c" +}; + +static Gfx sMaterialDL[21] = { +#include "assets/overlays/ovl_Oceff_Wipe2/sMaterialDL.inc.c" +}; + +static Gfx sFrustumDL[12] = { +#include "assets/overlays/ovl_Oceff_Wipe2/sFrustumDL.inc.c" +}; void OceffWipe2_Draw(Actor* thisx, PlayState* play) { u32 scroll = play->state.frames & 0xFF; diff --git a/src/overlays/actors/ovl_Oceff_Wipe3/z_oceff_wipe3.c b/src/overlays/actors/ovl_Oceff_Wipe3/z_oceff_wipe3.c index 6ec42324a2..eb62318ce7 100644 --- a/src/overlays/actors/ovl_Oceff_Wipe3/z_oceff_wipe3.c +++ b/src/overlays/actors/ovl_Oceff_Wipe3/z_oceff_wipe3.c @@ -11,6 +11,7 @@ #include "printf.h" #include "sys_matrix.h" #include "terminal.h" +#include "tex_len.h" #include "z_lib.h" #include "play_state.h" #include "player.h" @@ -35,7 +36,23 @@ ActorProfile Oceff_Wipe3_Profile = { /**/ OceffWipe3_Draw, }; -#include "assets/overlays/ovl_Oceff_Wipe3/ovl_Oceff_Wipe3.c" +#define sTex_WIDTH 64 +#define sTex_HEIGHT 64 +static u64 sTex[TEX_LEN(u64, sTex_WIDTH, sTex_HEIGHT, 8)] = { +#include "assets/overlays/ovl_Oceff_Wipe3/sTex.i8.inc.c" +}; + +static Vtx sFrustumVtx[] = { +#include "assets/overlays/ovl_Oceff_Wipe3/sFrustumVtx.inc.c" +}; + +static Gfx sMaterialDL[17] = { +#include "assets/overlays/ovl_Oceff_Wipe3/sMaterialDL.inc.c" +}; + +static Gfx sFrustumDL[12] = { +#include "assets/overlays/ovl_Oceff_Wipe3/sFrustumDL.inc.c" +}; void OceffWipe3_Init(Actor* thisx, PlayState* play) { OceffWipe3* this = (OceffWipe3*)thisx; diff --git a/src/overlays/actors/ovl_Oceff_Wipe4/z_oceff_wipe4.c b/src/overlays/actors/ovl_Oceff_Wipe4/z_oceff_wipe4.c index 8b860cc0c1..00b97cc756 100644 --- a/src/overlays/actors/ovl_Oceff_Wipe4/z_oceff_wipe4.c +++ b/src/overlays/actors/ovl_Oceff_Wipe4/z_oceff_wipe4.c @@ -11,9 +11,12 @@ #include "printf.h" #include "sys_matrix.h" #include "terminal.h" +#include "tex_len.h" #include "z_lib.h" #include "play_state.h" +#include "assets/objects/gameplay_keep/gameplay_keep.h" + #define FLAGS (ACTOR_FLAG_UPDATE_CULLING_DISABLED | ACTOR_FLAG_UPDATE_DURING_OCARINA) void OceffWipe4_Init(Actor* thisx, PlayState* play); @@ -62,7 +65,27 @@ void OceffWipe4_Update(Actor* thisx, PlayState* play) { } } -#include "assets/overlays/ovl_Oceff_Wipe4/ovl_Oceff_Wipe4.c" +#define sTex_WIDTH 32 +#define sTex_HEIGHT 64 +static u64 sTex[TEX_LEN(u64, sTex_WIDTH, sTex_HEIGHT, 8)] = { +#include "assets/overlays/ovl_Oceff_Wipe4/sTex.i8.inc.c" +}; + +static Vtx sFrustumVtx[] = { +#include "assets/overlays/ovl_Oceff_Wipe4/sFrustumVtx.inc.c" +}; + +static Gfx sMaterialDL[13] = { +#include "assets/overlays/ovl_Oceff_Wipe4/sMaterialDL.inc.c" +}; + +static Gfx sUnusedMaterialDL[13] = { +#include "assets/overlays/ovl_Oceff_Wipe4/sUnusedMaterialDL.inc.c" +}; + +static Gfx sMaterial2DL[23] = { +#include "assets/overlays/ovl_Oceff_Wipe4/sMaterial2DL.inc.c" +}; void OceffWipe4_Draw(Actor* thisx, PlayState* play) { u32 scroll = play->state.frames & 0xFFF; diff --git a/tools/assets/extract/write_source.txt b/tools/assets/extract/write_source.txt index 4d77381e33..640767216e 100644 --- a/tools/assets/extract/write_source.txt +++ b/tools/assets/extract/write_source.txt @@ -382,29 +382,17 @@ assets/objects/object_zl2_anime2/object_zl2_anime2.c assets/objects/object_zl2/object_zl2.c assets/objects/object_zl4/object_zl4.c assets/objects/object_zo/object_zo.c -assets/overlays/ovl_Boss_Ganon2/ovl_Boss_Ganon2.c assets/overlays/ovl_Boss_Ganon/ovl_Boss_Ganon.c assets/overlays/ovl_Boss_Sst/ovl_Boss_Sst.c assets/overlays/ovl_Demo_Shd/ovl_Demo_Shd.c -assets/overlays/ovl_Elf_Msg2/ovl_Elf_Msg2.c -assets/overlays/ovl_Elf_Msg/ovl_Elf_Msg.c assets/overlays/ovl_En_Bili/ovl_En_Bili.c assets/overlays/ovl_En_Clear_Tag/ovl_En_Clear_Tag.c -assets/overlays/ovl_En_Ganon_Organ/ovl_En_Ganon_Organ.c assets/overlays/ovl_En_Mag/ovl_En_Mag.c assets/overlays/ovl_En_Sda/ovl_En_Sda.c assets/overlays/ovl_En_Ssh/ovl_En_Ssh.c assets/overlays/ovl_En_Sth/ovl_En_Sth.c assets/overlays/ovl_file_choose/ovl_file_choose.c -assets/overlays/ovl_Magic_Dark/ovl_Magic_Dark.c -assets/overlays/ovl_Magic_Fire/ovl_Magic_Fire.c assets/overlays/ovl_Magic_Wind/ovl_Magic_Wind.c -assets/overlays/ovl_Oceff_Spot/ovl_Oceff_Spot.c -assets/overlays/ovl_Oceff_Storm/ovl_Oceff_Storm.c -assets/overlays/ovl_Oceff_Wipe2/ovl_Oceff_Wipe2.c -assets/overlays/ovl_Oceff_Wipe3/ovl_Oceff_Wipe3.c -assets/overlays/ovl_Oceff_Wipe4/ovl_Oceff_Wipe4.c -assets/overlays/ovl_Oceff_Wipe/ovl_Oceff_Wipe.c assets/scenes/dungeons/bdan/bdan_room_0.c assets/scenes/dungeons/bdan/bdan_room_10.c assets/scenes/dungeons/bdan/bdan_room_11.c From 939b29299119888e486a41a10329580b22d6b9bd Mon Sep 17 00:00:00 2001 From: Dragorn421 Date: Mon, 9 Jun 2025 21:07:35 +0200 Subject: [PATCH 14/17] Commit `object_ganon_anime3` (#2611) * Commit object_ganon_anime3 * rm from write_source.txt * bss --- .../objects/object_ganon_anime3/gGanonRoarAnim.c | 15 +++++++++++++++ .../gGanonUncurlAndFlailAnim.c | 15 +++++++++++++++ .../object_ganon_anime3/gGanondorfBurstOutAnim.c | 15 +++++++++++++++ .../gGanondorfFloatingHeavyBreathingAnim.c | 15 +++++++++++++++ .../gGanondorfShowTriforceLoopAnim.c | 15 +++++++++++++++ .../gGanondorfShowTriforceStartAnim.c | 15 +++++++++++++++ .../gGanondorfTransformEndAnim.c | 15 +++++++++++++++ .../gGanondorfTransformLoopAnim.c | 15 +++++++++++++++ .../gGanondorfTransformStartAnim.c | 15 +++++++++++++++ .../object_ganon_anime3/object_ganon_anime3.h | 16 ++++++++++++++++ spec/spec | 10 +++++++++- .../actors/ovl_Boss_Ganon2/z_boss_ganon2.c | 4 ++-- tools/assets/extract/write_source.txt | 1 - 13 files changed, 162 insertions(+), 4 deletions(-) create mode 100644 assets/objects/object_ganon_anime3/gGanonRoarAnim.c create mode 100644 assets/objects/object_ganon_anime3/gGanonUncurlAndFlailAnim.c create mode 100644 assets/objects/object_ganon_anime3/gGanondorfBurstOutAnim.c create mode 100644 assets/objects/object_ganon_anime3/gGanondorfFloatingHeavyBreathingAnim.c create mode 100644 assets/objects/object_ganon_anime3/gGanondorfShowTriforceLoopAnim.c create mode 100644 assets/objects/object_ganon_anime3/gGanondorfShowTriforceStartAnim.c create mode 100644 assets/objects/object_ganon_anime3/gGanondorfTransformEndAnim.c create mode 100644 assets/objects/object_ganon_anime3/gGanondorfTransformLoopAnim.c create mode 100644 assets/objects/object_ganon_anime3/gGanondorfTransformStartAnim.c create mode 100644 assets/objects/object_ganon_anime3/object_ganon_anime3.h diff --git a/assets/objects/object_ganon_anime3/gGanonRoarAnim.c b/assets/objects/object_ganon_anime3/gGanonRoarAnim.c new file mode 100644 index 0000000000..cbc274b118 --- /dev/null +++ b/assets/objects/object_ganon_anime3/gGanonRoarAnim.c @@ -0,0 +1,15 @@ +#include "object_ganon_anime3.h" + +#include "ultra64.h" + +s16 gGanonRoarFrameData[] = { +#include "assets/objects/object_ganon_anime3/gGanonRoarFrameData.inc.c" +}; + +JointIndex gGanonRoarJointIndices[] = { +#include "assets/objects/object_ganon_anime3/gGanonRoarJointIndices.inc.c" +}; + +AnimationHeader gGanonRoarAnim = { +#include "assets/objects/object_ganon_anime3/gGanonRoarAnim.inc.c" +}; diff --git a/assets/objects/object_ganon_anime3/gGanonUncurlAndFlailAnim.c b/assets/objects/object_ganon_anime3/gGanonUncurlAndFlailAnim.c new file mode 100644 index 0000000000..a19de40d93 --- /dev/null +++ b/assets/objects/object_ganon_anime3/gGanonUncurlAndFlailAnim.c @@ -0,0 +1,15 @@ +#include "object_ganon_anime3.h" + +#include "ultra64.h" + +s16 gGanonUncurlAndFlailFrameData[] = { +#include "assets/objects/object_ganon_anime3/gGanonUncurlAndFlailFrameData.inc.c" +}; + +JointIndex gGanonUncurlAndFlailJointIndices[] = { +#include "assets/objects/object_ganon_anime3/gGanonUncurlAndFlailJointIndices.inc.c" +}; + +AnimationHeader gGanonUncurlAndFlailAnim = { +#include "assets/objects/object_ganon_anime3/gGanonUncurlAndFlailAnim.inc.c" +}; diff --git a/assets/objects/object_ganon_anime3/gGanondorfBurstOutAnim.c b/assets/objects/object_ganon_anime3/gGanondorfBurstOutAnim.c new file mode 100644 index 0000000000..a3a6625c0a --- /dev/null +++ b/assets/objects/object_ganon_anime3/gGanondorfBurstOutAnim.c @@ -0,0 +1,15 @@ +#include "object_ganon_anime3.h" + +#include "ultra64.h" + +s16 gGanondorfBurstOutFrameData[] = { +#include "assets/objects/object_ganon_anime3/gGanondorfBurstOutFrameData.inc.c" +}; + +JointIndex gGanondorfBurstOutJointIndices[] = { +#include "assets/objects/object_ganon_anime3/gGanondorfBurstOutJointIndices.inc.c" +}; + +AnimationHeader gGanondorfBurstOutAnim = { +#include "assets/objects/object_ganon_anime3/gGanondorfBurstOutAnim.inc.c" +}; diff --git a/assets/objects/object_ganon_anime3/gGanondorfFloatingHeavyBreathingAnim.c b/assets/objects/object_ganon_anime3/gGanondorfFloatingHeavyBreathingAnim.c new file mode 100644 index 0000000000..bbfa588465 --- /dev/null +++ b/assets/objects/object_ganon_anime3/gGanondorfFloatingHeavyBreathingAnim.c @@ -0,0 +1,15 @@ +#include "object_ganon_anime3.h" + +#include "ultra64.h" + +s16 gGanondorfFloatingHeavyBreathingFrameData[] = { +#include "assets/objects/object_ganon_anime3/gGanondorfFloatingHeavyBreathingFrameData.inc.c" +}; + +JointIndex gGanondorfFloatingHeavyBreathingJointIndices[] = { +#include "assets/objects/object_ganon_anime3/gGanondorfFloatingHeavyBreathingJointIndices.inc.c" +}; + +AnimationHeader gGanondorfFloatingHeavyBreathingAnim = { +#include "assets/objects/object_ganon_anime3/gGanondorfFloatingHeavyBreathingAnim.inc.c" +}; diff --git a/assets/objects/object_ganon_anime3/gGanondorfShowTriforceLoopAnim.c b/assets/objects/object_ganon_anime3/gGanondorfShowTriforceLoopAnim.c new file mode 100644 index 0000000000..5505f1aa08 --- /dev/null +++ b/assets/objects/object_ganon_anime3/gGanondorfShowTriforceLoopAnim.c @@ -0,0 +1,15 @@ +#include "object_ganon_anime3.h" + +#include "ultra64.h" + +s16 gGanondorfShowTriforceLoopFrameData[] = { +#include "assets/objects/object_ganon_anime3/gGanondorfShowTriforceLoopFrameData.inc.c" +}; + +JointIndex gGanondorfShowTriforceLoopJointIndices[] = { +#include "assets/objects/object_ganon_anime3/gGanondorfShowTriforceLoopJointIndices.inc.c" +}; + +AnimationHeader gGanondorfShowTriforceLoopAnim = { +#include "assets/objects/object_ganon_anime3/gGanondorfShowTriforceLoopAnim.inc.c" +}; diff --git a/assets/objects/object_ganon_anime3/gGanondorfShowTriforceStartAnim.c b/assets/objects/object_ganon_anime3/gGanondorfShowTriforceStartAnim.c new file mode 100644 index 0000000000..3092cccff4 --- /dev/null +++ b/assets/objects/object_ganon_anime3/gGanondorfShowTriforceStartAnim.c @@ -0,0 +1,15 @@ +#include "object_ganon_anime3.h" + +#include "ultra64.h" + +s16 gGanondorfShowTriforceStartFrameData[] = { +#include "assets/objects/object_ganon_anime3/gGanondorfShowTriforceStartFrameData.inc.c" +}; + +JointIndex gGanondorfShowTriforceStartJointIndices[] = { +#include "assets/objects/object_ganon_anime3/gGanondorfShowTriforceStartJointIndices.inc.c" +}; + +AnimationHeader gGanondorfShowTriforceStartAnim = { +#include "assets/objects/object_ganon_anime3/gGanondorfShowTriforceStartAnim.inc.c" +}; diff --git a/assets/objects/object_ganon_anime3/gGanondorfTransformEndAnim.c b/assets/objects/object_ganon_anime3/gGanondorfTransformEndAnim.c new file mode 100644 index 0000000000..21a0913e97 --- /dev/null +++ b/assets/objects/object_ganon_anime3/gGanondorfTransformEndAnim.c @@ -0,0 +1,15 @@ +#include "object_ganon_anime3.h" + +#include "ultra64.h" + +s16 gGanondorfTransformEndFrameData[] = { +#include "assets/objects/object_ganon_anime3/gGanondorfTransformEndFrameData.inc.c" +}; + +JointIndex gGanondorfTransformEndJointIndices[] = { +#include "assets/objects/object_ganon_anime3/gGanondorfTransformEndJointIndices.inc.c" +}; + +AnimationHeader gGanondorfTransformEndAnim = { +#include "assets/objects/object_ganon_anime3/gGanondorfTransformEndAnim.inc.c" +}; diff --git a/assets/objects/object_ganon_anime3/gGanondorfTransformLoopAnim.c b/assets/objects/object_ganon_anime3/gGanondorfTransformLoopAnim.c new file mode 100644 index 0000000000..464178153d --- /dev/null +++ b/assets/objects/object_ganon_anime3/gGanondorfTransformLoopAnim.c @@ -0,0 +1,15 @@ +#include "object_ganon_anime3.h" + +#include "ultra64.h" + +s16 gGanondorfTransformLoopFrameData[] = { +#include "assets/objects/object_ganon_anime3/gGanondorfTransformLoopFrameData.inc.c" +}; + +JointIndex gGanondorfTransformLoopJointIndices[] = { +#include "assets/objects/object_ganon_anime3/gGanondorfTransformLoopJointIndices.inc.c" +}; + +AnimationHeader gGanondorfTransformLoopAnim = { +#include "assets/objects/object_ganon_anime3/gGanondorfTransformLoopAnim.inc.c" +}; diff --git a/assets/objects/object_ganon_anime3/gGanondorfTransformStartAnim.c b/assets/objects/object_ganon_anime3/gGanondorfTransformStartAnim.c new file mode 100644 index 0000000000..dc5b31a367 --- /dev/null +++ b/assets/objects/object_ganon_anime3/gGanondorfTransformStartAnim.c @@ -0,0 +1,15 @@ +#include "object_ganon_anime3.h" + +#include "ultra64.h" + +s16 gGanondorfTransformStartFrameData[] = { +#include "assets/objects/object_ganon_anime3/gGanondorfTransformStartFrameData.inc.c" +}; + +JointIndex gGanondorfTransformStartJointIndices[] = { +#include "assets/objects/object_ganon_anime3/gGanondorfTransformStartJointIndices.inc.c" +}; + +AnimationHeader gGanondorfTransformStartAnim = { +#include "assets/objects/object_ganon_anime3/gGanondorfTransformStartAnim.inc.c" +}; diff --git a/assets/objects/object_ganon_anime3/object_ganon_anime3.h b/assets/objects/object_ganon_anime3/object_ganon_anime3.h new file mode 100644 index 0000000000..80fcc0bc56 --- /dev/null +++ b/assets/objects/object_ganon_anime3/object_ganon_anime3.h @@ -0,0 +1,16 @@ +#ifndef OBJECT_GANON_ANIME3_H +#define OBJECT_GANON_ANIME3_H + +#include "animation.h" + +extern AnimationHeader gGanondorfShowTriforceStartAnim; +extern AnimationHeader gGanondorfBurstOutAnim; +extern AnimationHeader gGanondorfTransformEndAnim; +extern AnimationHeader gGanondorfFloatingHeavyBreathingAnim; +extern AnimationHeader gGanondorfTransformStartAnim; +extern AnimationHeader gGanondorfTransformLoopAnim; +extern AnimationHeader gGanondorfShowTriforceLoopAnim; +extern AnimationHeader gGanonUncurlAndFlailAnim; +extern AnimationHeader gGanonRoarAnim; + +#endif diff --git a/spec/spec b/spec/spec index 60437c4bf9..1a3fe91cea 100644 --- a/spec/spec +++ b/spec/spec @@ -3875,7 +3875,15 @@ beginseg name "object_ganon_anime3" compress romalign 0x1000 - include "$(BUILD_DIR)/assets/objects/object_ganon_anime3/object_ganon_anime3.o" + include "$(BUILD_DIR)/assets/objects/object_ganon_anime3/gGanondorfShowTriforceStartAnim.o" + include "$(BUILD_DIR)/assets/objects/object_ganon_anime3/gGanondorfBurstOutAnim.o" + include "$(BUILD_DIR)/assets/objects/object_ganon_anime3/gGanondorfTransformEndAnim.o" + include "$(BUILD_DIR)/assets/objects/object_ganon_anime3/gGanondorfFloatingHeavyBreathingAnim.o" + include "$(BUILD_DIR)/assets/objects/object_ganon_anime3/gGanondorfTransformStartAnim.o" + include "$(BUILD_DIR)/assets/objects/object_ganon_anime3/gGanondorfTransformLoopAnim.o" + include "$(BUILD_DIR)/assets/objects/object_ganon_anime3/gGanondorfShowTriforceLoopAnim.o" + include "$(BUILD_DIR)/assets/objects/object_ganon_anime3/gGanonUncurlAndFlailAnim.o" + include "$(BUILD_DIR)/assets/objects/object_ganon_anime3/gGanonRoarAnim.o" number 6 endseg diff --git a/src/overlays/actors/ovl_Boss_Ganon2/z_boss_ganon2.c b/src/overlays/actors/ovl_Boss_Ganon2/z_boss_ganon2.c index 3c19bf8eab..cafa822410 100644 --- a/src/overlays/actors/ovl_Boss_Ganon2/z_boss_ganon2.c +++ b/src/overlays/actors/ovl_Boss_Ganon2/z_boss_ganon2.c @@ -31,8 +31,8 @@ #include "assets/objects/object_geff/object_geff.h" #include "assets/objects/gameplay_keep/gameplay_keep.h" -#pragma increment_block_number "gc-eu:128 gc-eu-mq:128 gc-jp:128 gc-jp-ce:128 gc-jp-mq:128 gc-us:128 gc-us-mq:128" \ - "ique-cn:128 ntsc-1.0:128 ntsc-1.1:128 ntsc-1.2:128 pal-1.0:128 pal-1.1:128" +#pragma increment_block_number "gc-eu:0 gc-eu-mq:0 gc-jp:0 gc-jp-ce:0 gc-jp-mq:0 gc-us:0 gc-us-mq:0 ique-cn:128" \ + "ntsc-1.0:128 ntsc-1.1:128 ntsc-1.2:128 pal-1.0:128 pal-1.1:128" #define FLAGS \ (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_UPDATE_CULLING_DISABLED | \ diff --git a/tools/assets/extract/write_source.txt b/tools/assets/extract/write_source.txt index 640767216e..161826ca2b 100644 --- a/tools/assets/extract/write_source.txt +++ b/tools/assets/extract/write_source.txt @@ -87,7 +87,6 @@ assets/objects/object_fz/object_fz.c assets/objects/object_ganon2/object_ganon2.c assets/objects/object_ganon_anime1/object_ganon_anime1.c assets/objects/object_ganon_anime2/object_ganon_anime2.c -assets/objects/object_ganon_anime3/object_ganon_anime3.c assets/objects/object_ganon/object_ganon.c assets/objects/object_ganon_objects/object_ganon_objects.c assets/objects/object_ge1/object_ge1.c From dba40d9dc3d01137f4030f27e3b66391ba180548 Mon Sep 17 00:00:00 2001 From: Dragorn421 Date: Wed, 11 Jun 2025 00:20:10 +0200 Subject: [PATCH 15/17] Remove Static from xmls (#2616) --- assets/xml/objects/object_link_boy.xml | 8 +- assets/xml/objects/object_link_child.xml | 12 +-- assets/xml/overlays/ovl_Arrow_Fire.xml | 10 +-- assets/xml/overlays/ovl_Arrow_Ice.xml | 10 +-- assets/xml/overlays/ovl_Arrow_Light.xml | 10 +-- assets/xml/overlays/ovl_Boss_Ganon.xml | 90 +++++++++---------- assets/xml/overlays/ovl_Boss_Ganon2.xml | 44 ++++----- assets/xml/overlays/ovl_file_choose.xml | 20 ++--- .../xml/overlays/ovl_file_choose_pal_gc.xml | 18 ++-- .../xml/overlays/ovl_file_choose_pal_n64.xml | 20 ++--- 10 files changed, 121 insertions(+), 121 deletions(-) diff --git a/assets/xml/objects/object_link_boy.xml b/assets/xml/objects/object_link_boy.xml index a0052722f3..21a1d407c2 100644 --- a/assets/xml/objects/object_link_boy.xml +++ b/assets/xml/objects/object_link_boy.xml @@ -556,17 +556,17 @@ - + - + - + - + diff --git a/assets/xml/objects/object_link_child.xml b/assets/xml/objects/object_link_child.xml index 476c5f568d..25ad178c3c 100644 --- a/assets/xml/objects/object_link_child.xml +++ b/assets/xml/objects/object_link_child.xml @@ -450,27 +450,27 @@ - + - + - + - + - + - + diff --git a/assets/xml/overlays/ovl_Arrow_Fire.xml b/assets/xml/overlays/ovl_Arrow_Fire.xml index 58e8853f7f..8f7eba2573 100644 --- a/assets/xml/overlays/ovl_Arrow_Fire.xml +++ b/assets/xml/overlays/ovl_Arrow_Fire.xml @@ -1,11 +1,11 @@ - - - + + + - - + + diff --git a/assets/xml/overlays/ovl_Arrow_Ice.xml b/assets/xml/overlays/ovl_Arrow_Ice.xml index d7657506b1..e2f239c15d 100644 --- a/assets/xml/overlays/ovl_Arrow_Ice.xml +++ b/assets/xml/overlays/ovl_Arrow_Ice.xml @@ -1,11 +1,11 @@ - - - + + + - - + + diff --git a/assets/xml/overlays/ovl_Arrow_Light.xml b/assets/xml/overlays/ovl_Arrow_Light.xml index 101e37f227..93371024a7 100644 --- a/assets/xml/overlays/ovl_Arrow_Light.xml +++ b/assets/xml/overlays/ovl_Arrow_Light.xml @@ -1,11 +1,11 @@ - - - + + + - - + + diff --git a/assets/xml/overlays/ovl_Boss_Ganon.xml b/assets/xml/overlays/ovl_Boss_Ganon.xml index 9afa6d1251..f028b92050 100644 --- a/assets/xml/overlays/ovl_Boss_Ganon.xml +++ b/assets/xml/overlays/ovl_Boss_Ganon.xml @@ -1,20 +1,20 @@ - - - - - - - - - - - - + + + + + + + + + + + + - + @@ -52,50 +52,50 @@ - - - - - - - - - - - - + + + + + + + + + + + + - - + + - + - - + + - - + + - + - + - + @@ -105,33 +105,33 @@ - - - + + + - + - - + + - + - + - + - + diff --git a/assets/xml/overlays/ovl_Boss_Ganon2.xml b/assets/xml/overlays/ovl_Boss_Ganon2.xml index 75e7ee9fee..4a1ddd43c2 100644 --- a/assets/xml/overlays/ovl_Boss_Ganon2.xml +++ b/assets/xml/overlays/ovl_Boss_Ganon2.xml @@ -1,53 +1,53 @@ - + - - + + - - - - - + + + + + - - + + - - + + - - + + - - + + - - + + - - - + + + - + diff --git a/assets/xml/overlays/ovl_file_choose.xml b/assets/xml/overlays/ovl_file_choose.xml index 8808ab4281..f47e1f46ee 100644 --- a/assets/xml/overlays/ovl_file_choose.xml +++ b/assets/xml/overlays/ovl_file_choose.xml @@ -1,33 +1,33 @@ - + - + - + - + - + - + - + - + - + - + diff --git a/assets/xml/overlays/ovl_file_choose_pal_gc.xml b/assets/xml/overlays/ovl_file_choose_pal_gc.xml index 3c4c24cdab..58b22b8608 100644 --- a/assets/xml/overlays/ovl_file_choose_pal_gc.xml +++ b/assets/xml/overlays/ovl_file_choose_pal_gc.xml @@ -1,30 +1,30 @@ - + - + - + - + - + - + - + - + - + diff --git a/assets/xml/overlays/ovl_file_choose_pal_n64.xml b/assets/xml/overlays/ovl_file_choose_pal_n64.xml index 282fad0c37..2c61750279 100644 --- a/assets/xml/overlays/ovl_file_choose_pal_n64.xml +++ b/assets/xml/overlays/ovl_file_choose_pal_n64.xml @@ -1,33 +1,33 @@ - + - + - + - + - + - + - + - + - + - + From 7ddd468ed6cea45bfb3a6cc94498503525ab85f2 Mon Sep 17 00:00:00 2001 From: Dragorn421 Date: Wed, 11 Jun 2025 01:36:16 +0200 Subject: [PATCH 16/17] `object_zo`: finalize, split and commit (#2624) --- assets/objects/object_zo/effect_bubbles.c | 20 ++ assets/objects/object_zo/effect_ripples.c | 10 + assets/objects/object_zo/effect_splashes.c | 20 ++ .../gZoraHandsOnHipsTappingFootAnim.c | 14 + assets/objects/object_zo/gZoraIdleAnim.c | 14 + assets/objects/object_zo/gZoraOpenArmsAnim.c | 14 + assets/objects/object_zo/gZoraSkel.c | 291 ++++++++++++++++++ assets/objects/object_zo/gZoraSurfaceAnim.c | 14 + .../objects/object_zo/gZoraThrowRupeesAnim.c | 14 + assets/objects/object_zo/object_zo.h | 55 ++++ assets/xml/objects/object_zo.xml | 40 +-- spec/spec | 10 +- tools/assets/extract/write_source.txt | 1 - 13 files changed, 495 insertions(+), 22 deletions(-) create mode 100644 assets/objects/object_zo/effect_bubbles.c create mode 100644 assets/objects/object_zo/effect_ripples.c create mode 100644 assets/objects/object_zo/effect_splashes.c create mode 100644 assets/objects/object_zo/gZoraHandsOnHipsTappingFootAnim.c create mode 100644 assets/objects/object_zo/gZoraIdleAnim.c create mode 100644 assets/objects/object_zo/gZoraOpenArmsAnim.c create mode 100644 assets/objects/object_zo/gZoraSkel.c create mode 100644 assets/objects/object_zo/gZoraSurfaceAnim.c create mode 100644 assets/objects/object_zo/gZoraThrowRupeesAnim.c create mode 100644 assets/objects/object_zo/object_zo.h diff --git a/assets/objects/object_zo/effect_bubbles.c b/assets/objects/object_zo/effect_bubbles.c new file mode 100644 index 0000000000..9f88bfce82 --- /dev/null +++ b/assets/objects/object_zo/effect_bubbles.c @@ -0,0 +1,20 @@ +#include "object_zo.h" +#include "gfx.h" + +#define gZoraBubblesTex_WIDTH 16 +#define gZoraBubblesTex_HEIGHT 16 +u64 gZoraBubblesTex[TEX_LEN(u64, gZoraBubblesTex_WIDTH, gZoraBubblesTex_HEIGHT, 8)] = { +#include "assets/objects/object_zo/gZoraBubblesTex.ia8.inc.c" +}; + +Vtx gZoraBubblesModelVtx[] = { +#include "assets/objects/object_zo/gZoraBubblesModelVtx.inc.c" +}; + +Gfx gZoraBubblesMaterialDL[12] = { +#include "assets/objects/object_zo/gZoraBubblesMaterialDL.inc.c" +}; + +Gfx gZoraBubblesModelDL[3] = { +#include "assets/objects/object_zo/gZoraBubblesModelDL.inc.c" +}; diff --git a/assets/objects/object_zo/effect_ripples.c b/assets/objects/object_zo/effect_ripples.c new file mode 100644 index 0000000000..7fb878f2b0 --- /dev/null +++ b/assets/objects/object_zo/effect_ripples.c @@ -0,0 +1,10 @@ +#include "object_zo.h" +#include "assets/objects/gameplay_keep/gameplay_keep.h" + +Gfx gZoraRipplesMaterialDL[13] = { +#include "assets/objects/object_zo/gZoraRipplesMaterialDL.inc.c" +}; + +Gfx gZoraRipplesModelDL[3] = { +#include "assets/objects/object_zo/gZoraRipplesModelDL.inc.c" +}; diff --git a/assets/objects/object_zo/effect_splashes.c b/assets/objects/object_zo/effect_splashes.c new file mode 100644 index 0000000000..557830eba1 --- /dev/null +++ b/assets/objects/object_zo/effect_splashes.c @@ -0,0 +1,20 @@ +#include "object_zo.h" +#include "gfx.h" + +#define gZoraSplashesTex_WIDTH 16 +#define gZoraSplashesTex_HEIGHT 16 +u64 gZoraSplashesTex[TEX_LEN(u64, gZoraSplashesTex_WIDTH, gZoraSplashesTex_HEIGHT, 8)] = { +#include "assets/objects/object_zo/gZoraSplashesTex.i8.inc.c" +}; + +Vtx gZoraSplashesModelVtx[] = { +#include "assets/objects/object_zo/gZoraSplashesModelVtx.inc.c" +}; + +Gfx gZoraSplashesMaterialDL[14] = { +#include "assets/objects/object_zo/gZoraSplashesMaterialDL.inc.c" +}; + +Gfx gZoraSplashesModelDL[3] = { +#include "assets/objects/object_zo/gZoraSplashesModelDL.inc.c" +}; diff --git a/assets/objects/object_zo/gZoraHandsOnHipsTappingFootAnim.c b/assets/objects/object_zo/gZoraHandsOnHipsTappingFootAnim.c new file mode 100644 index 0000000000..de19ceac14 --- /dev/null +++ b/assets/objects/object_zo/gZoraHandsOnHipsTappingFootAnim.c @@ -0,0 +1,14 @@ +#include "object_zo.h" +#include "array_count.h" + +s16 gZoraHandsOnHipsTappingFootFrameData[] = { +#include "assets/objects/object_zo/gZoraHandsOnHipsTappingFootFrameData.inc.c" +}; + +JointIndex gZoraHandsOnHipsTappingFootJointIndices[] = { +#include "assets/objects/object_zo/gZoraHandsOnHipsTappingFootJointIndices.inc.c" +}; + +AnimationHeader gZoraHandsOnHipsTappingFootAnim = { +#include "assets/objects/object_zo/gZoraHandsOnHipsTappingFootAnim.inc.c" +}; diff --git a/assets/objects/object_zo/gZoraIdleAnim.c b/assets/objects/object_zo/gZoraIdleAnim.c new file mode 100644 index 0000000000..0be4d26b2c --- /dev/null +++ b/assets/objects/object_zo/gZoraIdleAnim.c @@ -0,0 +1,14 @@ +#include "object_zo.h" +#include "array_count.h" + +s16 gZoraIdleFrameData[] = { +#include "assets/objects/object_zo/gZoraIdleFrameData.inc.c" +}; + +JointIndex gZoraIdleJointIndices[] = { +#include "assets/objects/object_zo/gZoraIdleJointIndices.inc.c" +}; + +AnimationHeader gZoraIdleAnim = { +#include "assets/objects/object_zo/gZoraIdleAnim.inc.c" +}; diff --git a/assets/objects/object_zo/gZoraOpenArmsAnim.c b/assets/objects/object_zo/gZoraOpenArmsAnim.c new file mode 100644 index 0000000000..5be007b12b --- /dev/null +++ b/assets/objects/object_zo/gZoraOpenArmsAnim.c @@ -0,0 +1,14 @@ +#include "object_zo.h" +#include "array_count.h" + +s16 gZoraOpenArmsFrameData[] = { +#include "assets/objects/object_zo/gZoraOpenArmsFrameData.inc.c" +}; + +JointIndex gZoraOpenArmsJointIndices[] = { +#include "assets/objects/object_zo/gZoraOpenArmsJointIndices.inc.c" +}; + +AnimationHeader gZoraOpenArmsAnim = { +#include "assets/objects/object_zo/gZoraOpenArmsAnim.inc.c" +}; diff --git a/assets/objects/object_zo/gZoraSkel.c b/assets/objects/object_zo/gZoraSkel.c new file mode 100644 index 0000000000..8ea991044a --- /dev/null +++ b/assets/objects/object_zo/gZoraSkel.c @@ -0,0 +1,291 @@ +#include "object_zo.h" +#include "array_count.h" +#include "gfx.h" + +u64 gZoraTLUT[] = { +#include "assets/objects/object_zo/gZoraTLUT.tlut.rgba16.inc.c" +}; + +#define gZoraFinTex_WIDTH 32 +#define gZoraFinTex_HEIGHT 32 +u64 gZoraFinTex[TEX_LEN(u64, gZoraFinTex_WIDTH, gZoraFinTex_HEIGHT, 8)] = { +#include "assets/objects/object_zo/gZoraFinTex.ci8.tlut_gZoraTLUT.inc.c" +}; + +#define gZoraHeadTailTex_WIDTH 32 +#define gZoraHeadTailTex_HEIGHT 64 +u64 gZoraHeadTailTex[TEX_LEN(u64, gZoraHeadTailTex_WIDTH, gZoraHeadTailTex_HEIGHT, 8)] = { +#include "assets/objects/object_zo/gZoraHeadTailTex.ci8.tlut_gZoraTLUT.inc.c" +}; + +#define gZoraHeadTex_WIDTH 8 +#define gZoraHeadTex_HEIGHT 8 +u64 gZoraHeadTex[TEX_LEN(u64, gZoraHeadTex_WIDTH, gZoraHeadTex_HEIGHT, 8)] = { +#include "assets/objects/object_zo/gZoraHeadTex.ci8.tlut_gZoraTLUT.inc.c" +}; + +u64 gZoraEyeOpenTex[TEX_LEN(u64, ZORA_EYE_TEX_WIDTH, ZORA_EYE_TEX_HEIGHT, 16)] = { +#include "assets/objects/object_zo/gZoraEyeOpenTex.rgba16.inc.c" +}; + +u64 gZoraEyeHalfTex[TEX_LEN(u64, ZORA_EYE_TEX_WIDTH, ZORA_EYE_TEX_HEIGHT, 16)] = { +#include "assets/objects/object_zo/gZoraEyeHalfTex.rgba16.inc.c" +}; + +u64 gZoraEyeClosedTex[TEX_LEN(u64, ZORA_EYE_TEX_WIDTH, ZORA_EYE_TEX_HEIGHT, 16)] = { +#include "assets/objects/object_zo/gZoraEyeClosedTex.rgba16.inc.c" +}; + +#define gZoraMouthTex_WIDTH 32 +#define gZoraMouthTex_HEIGHT 32 +u64 gZoraMouthTex[TEX_LEN(u64, gZoraMouthTex_WIDTH, gZoraMouthTex_HEIGHT, 16)] = { +#include "assets/objects/object_zo/gZoraMouthTex.rgba16.inc.c" +}; + +#define gZoraHandTex_WIDTH 16 +#define gZoraHandTex_HEIGHT 16 +u64 gZoraHandTex[TEX_LEN(u64, gZoraHandTex_WIDTH, gZoraHandTex_HEIGHT, 8)] = { +#include "assets/objects/object_zo/gZoraHandTex.ci8.tlut_gZoraTLUT.inc.c" +}; + +#define gZoraKneeTex_WIDTH 8 +#define gZoraKneeTex_HEIGHT 8 +u64 gZoraKneeTex[TEX_LEN(u64, gZoraKneeTex_WIDTH, gZoraKneeTex_HEIGHT, 8)] = { +#include "assets/objects/object_zo/gZoraKneeTex.ci8.tlut_gZoraTLUT.inc.c" +}; + +Vtx gZoraHeadTailFinVtx[] = { +#include "assets/objects/object_zo/gZoraHeadTailFinVtx.inc.c" +}; + +Vtx gZoraHeadTail3Vtx[] = { +#include "assets/objects/object_zo/gZoraHeadTail3Vtx.inc.c" +}; + +Vtx gZoraHeadTail2Vtx[] = { +#include "assets/objects/object_zo/gZoraHeadTail2Vtx.inc.c" +}; + +Vtx gZoraHeadTail1Vtx[] = { +#include "assets/objects/object_zo/gZoraHeadTail1Vtx.inc.c" +}; + +Vtx gZoraHeadVtx[] = { +#include "assets/objects/object_zo/gZoraHeadVtx.inc.c" +}; + +Vtx gZoraLeftHandVtx[] = { +#include "assets/objects/object_zo/gZoraLeftHandVtx.inc.c" +}; + +Vtx gZoraLeftForearmVtx[] = { +#include "assets/objects/object_zo/gZoraLeftForearmVtx.inc.c" +}; + +Vtx gZoraLeftArmVtx[] = { +#include "assets/objects/object_zo/gZoraLeftArmVtx.inc.c" +}; + +Vtx gZoraRightHandVtx[] = { +#include "assets/objects/object_zo/gZoraRightHandVtx.inc.c" +}; + +Vtx gZoraRightForearmVtx[] = { +#include "assets/objects/object_zo/gZoraRightForearmVtx.inc.c" +}; + +Vtx gZoraRightArmVtx[] = { +#include "assets/objects/object_zo/gZoraRightArmVtx.inc.c" +}; + +Vtx gZoraTorsoVtx[] = { +#include "assets/objects/object_zo/gZoraTorsoVtx.inc.c" +}; + +Vtx gZoraLeftFootVtx[] = { +#include "assets/objects/object_zo/gZoraLeftFootVtx.inc.c" +}; + +Vtx gZoraLeftShinVtx[] = { +#include "assets/objects/object_zo/gZoraLeftShinVtx.inc.c" +}; + +Vtx gZoraLeftThighsVtx[] = { +#include "assets/objects/object_zo/gZoraLeftThighsVtx.inc.c" +}; + +Vtx gZoraRightFootVtx[] = { +#include "assets/objects/object_zo/gZoraRightFootVtx.inc.c" +}; + +Vtx gZoraRightShinVtx[] = { +#include "assets/objects/object_zo/gZoraRightShinVtx.inc.c" +}; + +Vtx gZoraRightThighsVtx[] = { +#include "assets/objects/object_zo/gZoraRightThighsVtx.inc.c" +}; + +Vtx gZoraPelvisVtx[] = { +#include "assets/objects/object_zo/gZoraPelvisVtx.inc.c" +}; + +Gfx gZoraPelvisDL[53] = { +#include "assets/objects/object_zo/gZoraPelvisDL.inc.c" +}; + +Gfx gZoraTorsoDL[111] = { +#include "assets/objects/object_zo/gZoraTorsoDL.inc.c" +}; + +Gfx gZoraHeadDL[79] = { +#include "assets/objects/object_zo/gZoraHeadDL.inc.c" +}; + +Gfx gZoraHeadTail1DL[52] = { +#include "assets/objects/object_zo/gZoraHeadTail1DL.inc.c" +}; + +Gfx gZoraHeadTail2DL[51] = { +#include "assets/objects/object_zo/gZoraHeadTail2DL.inc.c" +}; + +Gfx gZoraHeadTail3DL[51] = { +#include "assets/objects/object_zo/gZoraHeadTail3DL.inc.c" +}; + +Gfx gZoraHeadTailFinDL[72] = { +#include "assets/objects/object_zo/gZoraHeadTailFinDL.inc.c" +}; + +Gfx gZoraRightArmDL[76] = { +#include "assets/objects/object_zo/gZoraRightArmDL.inc.c" +}; + +Gfx gZoraRightForearmDL[92] = { +#include "assets/objects/object_zo/gZoraRightForearmDL.inc.c" +}; + +Gfx gZoraRightHandDL[65] = { +#include "assets/objects/object_zo/gZoraRightHandDL.inc.c" +}; + +Gfx gZoraLeftArmDL[76] = { +#include "assets/objects/object_zo/gZoraLeftArmDL.inc.c" +}; + +Gfx gZoraLeftForearmDL[92] = { +#include "assets/objects/object_zo/gZoraLeftForearmDL.inc.c" +}; + +Gfx gZoraLeftHandDL[65] = { +#include "assets/objects/object_zo/gZoraLeftHandDL.inc.c" +}; + +Gfx gZoraRightThighsDL[92] = { +#include "assets/objects/object_zo/gZoraRightThighsDL.inc.c" +}; + +Gfx gZoraRightShinDL[91] = { +#include "assets/objects/object_zo/gZoraRightShinDL.inc.c" +}; + +Gfx gZoraRightFootDL[89] = { +#include "assets/objects/object_zo/gZoraRightFootDL.inc.c" +}; + +Gfx gZoraLeftThighsDL[92] = { +#include "assets/objects/object_zo/gZoraLeftThighsDL.inc.c" +}; + +Gfx gZoraLeftShinDL[91] = { +#include "assets/objects/object_zo/gZoraLeftShinDL.inc.c" +}; + +Gfx gZoraLeftFootDL[89] = { +#include "assets/objects/object_zo/gZoraLeftFootDL.inc.c" +}; + +StandardLimb gZoraPelvisLimb = { +#include "assets/objects/object_zo/gZoraPelvisLimb.inc.c" +}; + +StandardLimb gZoraLeftThighsLimb = { +#include "assets/objects/object_zo/gZoraLeftThighsLimb.inc.c" +}; + +StandardLimb gZoraLeftShinLimb = { +#include "assets/objects/object_zo/gZoraLeftShinLimb.inc.c" +}; + +StandardLimb gZoraLeftFootLimb = { +#include "assets/objects/object_zo/gZoraLeftFootLimb.inc.c" +}; + +StandardLimb gZoraRightThighsLimb = { +#include "assets/objects/object_zo/gZoraRightThighsLimb.inc.c" +}; + +StandardLimb gZoraRightShinLimb = { +#include "assets/objects/object_zo/gZoraRightShinLimb.inc.c" +}; + +StandardLimb gZoraRightFootLimb = { +#include "assets/objects/object_zo/gZoraRightFootLimb.inc.c" +}; + +StandardLimb gZoraTorsoLimb = { +#include "assets/objects/object_zo/gZoraTorsoLimb.inc.c" +}; + +StandardLimb gZoraLeftArmLimb = { +#include "assets/objects/object_zo/gZoraLeftArmLimb.inc.c" +}; + +StandardLimb gZoraLeftForearmLimb = { +#include "assets/objects/object_zo/gZoraLeftForearmLimb.inc.c" +}; + +StandardLimb gZoraLeftHandLimb = { +#include "assets/objects/object_zo/gZoraLeftHandLimb.inc.c" +}; + +StandardLimb gZoraRightArmLimb = { +#include "assets/objects/object_zo/gZoraRightArmLimb.inc.c" +}; + +StandardLimb gZoraRightForearmLimb = { +#include "assets/objects/object_zo/gZoraRightForearmLimb.inc.c" +}; + +StandardLimb gZoraRightHandLimb = { +#include "assets/objects/object_zo/gZoraRightHandLimb.inc.c" +}; + +StandardLimb gZoraHeadLimb = { +#include "assets/objects/object_zo/gZoraHeadLimb.inc.c" +}; + +StandardLimb gZoraHeadTail1Limb = { +#include "assets/objects/object_zo/gZoraHeadTail1Limb.inc.c" +}; + +StandardLimb gZoraHeadTail2Limb = { +#include "assets/objects/object_zo/gZoraHeadTail2Limb.inc.c" +}; + +StandardLimb gZoraHeadTail3Limb = { +#include "assets/objects/object_zo/gZoraHeadTail3Limb.inc.c" +}; + +StandardLimb gZoraHeadTailFinLimb = { +#include "assets/objects/object_zo/gZoraHeadTailFinLimb.inc.c" +}; + +void* gZoraLimbs[] = { +#include "assets/objects/object_zo/gZoraLimbs.inc.c" +}; + +FlexSkeletonHeader gZoraSkel = { +#include "assets/objects/object_zo/gZoraSkel.inc.c" +}; diff --git a/assets/objects/object_zo/gZoraSurfaceAnim.c b/assets/objects/object_zo/gZoraSurfaceAnim.c new file mode 100644 index 0000000000..f0fd1eefdb --- /dev/null +++ b/assets/objects/object_zo/gZoraSurfaceAnim.c @@ -0,0 +1,14 @@ +#include "object_zo.h" +#include "array_count.h" + +s16 gZoraSurfaceFrameData[] = { +#include "assets/objects/object_zo/gZoraSurfaceFrameData.inc.c" +}; + +JointIndex gZoraSurfaceJointIndices[] = { +#include "assets/objects/object_zo/gZoraSurfaceJointIndices.inc.c" +}; + +AnimationHeader gZoraSurfaceAnim = { +#include "assets/objects/object_zo/gZoraSurfaceAnim.inc.c" +}; diff --git a/assets/objects/object_zo/gZoraThrowRupeesAnim.c b/assets/objects/object_zo/gZoraThrowRupeesAnim.c new file mode 100644 index 0000000000..8c1ac64a86 --- /dev/null +++ b/assets/objects/object_zo/gZoraThrowRupeesAnim.c @@ -0,0 +1,14 @@ +#include "object_zo.h" +#include "array_count.h" + +s16 gZoraThrowRupeesFrameData[] = { +#include "assets/objects/object_zo/gZoraThrowRupeesFrameData.inc.c" +}; + +JointIndex gZoraThrowRupeesJointIndices[] = { +#include "assets/objects/object_zo/gZoraThrowRupeesJointIndices.inc.c" +}; + +AnimationHeader gZoraThrowRupeesAnim = { +#include "assets/objects/object_zo/gZoraThrowRupeesAnim.inc.c" +}; diff --git a/assets/objects/object_zo/object_zo.h b/assets/objects/object_zo/object_zo.h new file mode 100644 index 0000000000..b68a1223d0 --- /dev/null +++ b/assets/objects/object_zo/object_zo.h @@ -0,0 +1,55 @@ +#ifndef OBJECT_ZO_H +#define OBJECT_ZO_H + +#include "ultra64.h" +#include "animation.h" +#include "tex_len.h" + +extern Gfx gZoraBubblesMaterialDL[12]; +extern Gfx gZoraBubblesModelDL[3]; + +extern Gfx gZoraSplashesMaterialDL[14]; +extern Gfx gZoraSplashesModelDL[3]; + +extern Gfx gZoraRipplesMaterialDL[13]; +extern Gfx gZoraRipplesModelDL[3]; + +extern AnimationHeader gZoraHandsOnHipsTappingFootAnim; +extern AnimationHeader gZoraOpenArmsAnim; +extern AnimationHeader gZoraThrowRupeesAnim; +extern AnimationHeader gZoraSurfaceAnim; +extern AnimationHeader gZoraIdleAnim; + +#define ZORA_EYE_TEX_WIDTH 32 +#define ZORA_EYE_TEX_HEIGHT 32 +extern u64 gZoraEyeOpenTex[TEX_LEN(u64, ZORA_EYE_TEX_WIDTH, ZORA_EYE_TEX_HEIGHT, 16)]; +extern u64 gZoraEyeHalfTex[TEX_LEN(u64, ZORA_EYE_TEX_WIDTH, ZORA_EYE_TEX_HEIGHT, 16)]; +extern u64 gZoraEyeClosedTex[TEX_LEN(u64, ZORA_EYE_TEX_WIDTH, ZORA_EYE_TEX_HEIGHT, 16)]; + +typedef enum ZoraLimb { + /* 0 */ ZORA_LIMB_NONE, + /* 1 */ ZORA_LIMB_PELVIS, + /* 2 */ ZORA_LIMB_LEFT_THIGHS, + /* 3 */ ZORA_LIMB_LEFT_SHIN, + /* 4 */ ZORA_LIMB_LEFT_FOOT, + /* 5 */ ZORA_LIMB_RIGHT_THIGHS, + /* 6 */ ZORA_LIMB_RIGHT_SHIN, + /* 7 */ ZORA_LIMB_RIGHT_FOOT, + /* 8 */ ZORA_LIMB_TORSO, + /* 9 */ ZORA_LIMB_LEFT_ARM, + /* 10 */ ZORA_LIMB_LEFT_FOREARM, + /* 11 */ ZORA_LIMB_LEFT_HAND, + /* 12 */ ZORA_LIMB_RIGHT_ARM, + /* 13 */ ZORA_LIMB_RIGHT_FOREARM, + /* 14 */ ZORA_LIMB_RIGHT_HAND, + /* 15 */ ZORA_LIMB_HEAD, + /* 16 */ ZORA_LIMB_HEAD_TAIL_1, + /* 17 */ ZORA_LIMB_HEAD_TAIL_2, + /* 18 */ ZORA_LIMB_HEAD_TAIL_3, + /* 19 */ ZORA_LIMB_HEAD_TAIL_FIN, + /* 20 */ ZORA_LIMB_MAX +} ZoraLimb; + +extern FlexSkeletonHeader gZoraSkel; + +#endif diff --git a/assets/xml/objects/object_zo.xml b/assets/xml/objects/object_zo.xml index 45c9601284..92aefa8949 100644 --- a/assets/xml/objects/object_zo.xml +++ b/assets/xml/objects/object_zo.xml @@ -1,110 +1,110 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + diff --git a/spec/spec b/spec/spec index 1a3fe91cea..ea8bd6058b 100644 --- a/spec/spec +++ b/spec/spec @@ -2859,7 +2859,15 @@ beginseg name "object_zo" compress romalign 0x1000 - include "$(BUILD_DIR)/assets/objects/object_zo/object_zo.o" + include "$(BUILD_DIR)/assets/objects/object_zo/gZoraHandsOnHipsTappingFootAnim.o" + include "$(BUILD_DIR)/assets/objects/object_zo/gZoraOpenArmsAnim.o" + include "$(BUILD_DIR)/assets/objects/object_zo/gZoraThrowRupeesAnim.o" + include "$(BUILD_DIR)/assets/objects/object_zo/effect_bubbles.o" + include "$(BUILD_DIR)/assets/objects/object_zo/effect_splashes.o" + include "$(BUILD_DIR)/assets/objects/object_zo/gZoraSurfaceAnim.o" + include "$(BUILD_DIR)/assets/objects/object_zo/gZoraIdleAnim.o" + include "$(BUILD_DIR)/assets/objects/object_zo/gZoraSkel.o" + include "$(BUILD_DIR)/assets/objects/object_zo/effect_ripples.o" number 6 endseg diff --git a/tools/assets/extract/write_source.txt b/tools/assets/extract/write_source.txt index 161826ca2b..35b876ee4b 100644 --- a/tools/assets/extract/write_source.txt +++ b/tools/assets/extract/write_source.txt @@ -380,7 +380,6 @@ assets/objects/object_zl2_anime1/object_zl2_anime1.c assets/objects/object_zl2_anime2/object_zl2_anime2.c assets/objects/object_zl2/object_zl2.c assets/objects/object_zl4/object_zl4.c -assets/objects/object_zo/object_zo.c assets/overlays/ovl_Boss_Ganon/ovl_Boss_Ganon.c assets/overlays/ovl_Boss_Sst/ovl_Boss_Sst.c assets/overlays/ovl_Demo_Shd/ovl_Demo_Shd.c From 5870caba8b2b777f33e15718dab2e83659137135 Mon Sep 17 00:00:00 2001 From: Dragorn421 Date: Wed, 11 Jun 2025 04:18:00 +0200 Subject: [PATCH 17/17] Introduce `CAM_DATA_SET_`, `CAM_ITEM_TYPE_` and name `Player_SetTurnAroundCamera`, `Player_RequestCameraSetting` (#2608) * Introduce `CAM_SET_CAMERA_DATA_`, `CAM_ITEM_TYPE_` and name `Player_CameraChangeSettingTurnAround` * bss and formatting * func_80835E44 -> Player_RequestCameraSetting * -> Player_SetTurnAroundCamera * -> CAM_DATA_SET_ --- include/camera.h | 25 ++++++++- src/code/game.c | 2 +- src/code/z_camera.c | 55 +++++++++---------- src/code/z_collision_check.c | 2 +- src/code/z_onepointdemo.c | 2 +- .../z_bg_mori_rakkatenjo.c | 2 +- src/overlays/actors/ovl_Boss_Sst/z_boss_sst.c | 2 +- src/overlays/actors/ovl_En_Horse/z_en_horse.c | 4 +- src/overlays/actors/ovl_En_Ossan/z_en_ossan.c | 2 +- .../actors/ovl_player_actor/z_player.c | 38 ++++++------- 10 files changed, 77 insertions(+), 57 deletions(-) diff --git a/include/camera.h b/include/camera.h index 9d4783de06..ec33d47807 100644 --- a/include/camera.h +++ b/include/camera.h @@ -119,6 +119,12 @@ struct View; #define CAM_VIEW_FOV (1 << 5) // camera->fov #define CAM_VIEW_ROLL (1 << 6) // camera->roll +#define CAM_DATA_SET_0 (1 << 0) +#define CAM_DATA_SET_1 (1 << 1) +#define CAM_DATA_SET_2 (1 << 2) +#define CAM_DATA_SET_3 (1 << 3) +#define CAM_DATA_SET_4 (1 << 4) + // All scenes using `SCENE_CAM_TYPE_FIXED_SHOP_VIEWPOINT` or `SCENE_CAM_TYPE_FIXED_TOGGLE_VIEWPOINT` are expected // to have their first two bgCamInfo entries be the following: #define BGCAM_INDEX_TOGGLE_LOCKED 0 @@ -851,6 +857,22 @@ typedef struct KeepOn4ReadOnlyData { /* 0x1E */ s16 unk_1E; } KeepOn4ReadOnlyData; // size = 0x20 +typedef enum CameraItemType { + /* 1 */ CAM_ITEM_TYPE_1 = 1, + /* 2 */ CAM_ITEM_TYPE_2, + /* 3 */ CAM_ITEM_TYPE_3, + /* 4 */ CAM_ITEM_TYPE_4, + /* 5 */ CAM_ITEM_TYPE_5, + /* 8 */ CAM_ITEM_TYPE_8 = 8, + /* 9 */ CAM_ITEM_TYPE_9, + /* 10 */ CAM_ITEM_TYPE_10, + /* 11 */ CAM_ITEM_TYPE_11, + /* 12 */ CAM_ITEM_TYPE_12, + /* 81 */ CAM_ITEM_TYPE_81 = 81, + /* 90 */ CAM_ITEM_TYPE_90 = 90, + /* 91 */ CAM_ITEM_TYPE_91 +} CameraItemType; + typedef struct KeepOn4ReadWriteData { /* 0x00 */ f32 unk_00; /* 0x04 */ f32 unk_04; @@ -1648,8 +1670,7 @@ s32 Camera_ChangeDoorCam(Camera* camera, struct Actor* doorActor, s16 bgCamIndex s16 timer3); s32 Camera_Copy(Camera* dstCamera, Camera* srcCamera); Vec3f Camera_GetQuakeOffset(Camera* camera); -void Camera_SetCameraData(Camera* camera, s16 setDataFlags, void* data0, void* data1, s16 data2, s16 data3, - UNK_TYPE arg6); +void Camera_SetCameraData(Camera* camera, s16 setDataFlags, void* data0, void* data1, s16 data2, s16 data3, s32 data4); s32 func_8005B198(void); s16 Camera_SetFinishedFlag(Camera* camera); diff --git a/src/code/game.c b/src/code/game.c index 1f4ff8cdbf..1636633f97 100644 --- a/src/code/game.c +++ b/src/code/game.c @@ -32,7 +32,7 @@ #include "play_state.h" #include "vis.h" -#pragma increment_block_number "gc-eu:128 gc-eu-mq:128 gc-jp:128 gc-jp-ce:128 gc-jp-mq:128 gc-us:128 gc-us-mq:128" +#pragma increment_block_number "gc-eu:0 gc-eu-mq:0 gc-jp:0 gc-jp-ce:0 gc-jp-mq:0 gc-us:0 gc-us-mq:0" SpeedMeter D_801664D0; VisCvg sVisCvg; diff --git a/src/code/z_camera.c b/src/code/z_camera.c index ce1fa53c00..71f6a0b82e 100644 --- a/src/code/z_camera.c +++ b/src/code/z_camera.c @@ -27,7 +27,7 @@ #include "overlays/actors/ovl_En_Horse/z_en_horse.h" #pragma increment_block_number "gc-eu:128 gc-eu-mq:128 gc-jp:128 gc-jp-ce:128 gc-jp-mq:128 gc-us:128 gc-us-mq:128" \ - "ique-cn:128 ntsc-1.0:128 ntsc-1.1:128 ntsc-1.2:128 pal-1.0:128 pal-1.1:128" + "ique-cn:64 ntsc-1.0:128 ntsc-1.1:128 ntsc-1.2:128 pal-1.0:128 pal-1.1:128" s16 Camera_RequestSettingImpl(Camera* camera, s16 requestedSetting, s16 flags); s32 Camera_RequestModeImpl(Camera* camera, s16 requestedMode, u8 forceModeChange); @@ -3661,7 +3661,7 @@ s32 Camera_KeepOn3(Camera* camera) { } #pragma increment_block_number "gc-eu:128 gc-eu-mq:128 gc-jp:128 gc-jp-ce:128 gc-jp-mq:128 gc-us:128 gc-us-mq:128" \ - "ique-cn:128 ntsc-1.0:82 ntsc-1.1:82 ntsc-1.2:82 pal-1.0:82 pal-1.1:82" + "ique-cn:128 ntsc-1.0:79 ntsc-1.1:79 ntsc-1.2:79 pal-1.0:79 pal-1.1:79" s32 Camera_KeepOn4(Camera* camera) { static Vec3f D_8015BD50; @@ -3677,7 +3677,7 @@ s32 Camera_KeepOn4(Camera* camera) { VecGeo spB8; UNUSED VecGeo spB0; VecGeo spA8; - s16* temp_s0 = &camera->data2; + s16* itemType = &camera->data2; s16 spA2; s16 spA0; s16 sp9E; @@ -3698,12 +3698,12 @@ s32 Camera_KeepOn4(Camera* camera) { camera->play->view.unk_124 = camera->camId | 0x50; return 1; } - rwData->unk_14 = *temp_s0; + rwData->unk_14 = *itemType; camera->stateFlags &= ~CAM_STATE_LOCK_MODE; } - if (rwData->unk_14 != *temp_s0) { - PRINTF(VT_COL(YELLOW, BLACK) "camera: item: item type changed %d -> %d\n" VT_RST, rwData->unk_14, *temp_s0); + if (rwData->unk_14 != *itemType) { + PRINTF(VT_COL(YELLOW, BLACK) "camera: item: item type changed %d -> %d\n" VT_RST, rwData->unk_14, *itemType); camera->animState = 20; camera->stateFlags |= CAM_STATE_LOCK_MODE; camera->stateFlags &= ~(CAM_STATE_CHECK_WATER | CAM_STATE_CHECK_BG); @@ -3726,33 +3726,33 @@ s32 Camera_KeepOn4(Camera* camera) { roData->interfaceField = GET_NEXT_RO_DATA(values); roData->unk_14 = GET_NEXT_SCALED_RO_DATA(values); roData->unk_1E = GET_NEXT_RO_DATA(values); - PRINTF("camera: item: type %d\n", *temp_s0); - switch (*temp_s0) { - case 1: + PRINTF("camera: item: type %d\n", *itemType); + switch (*itemType) { + case CAM_ITEM_TYPE_1: roData->unk_00 = playerHeight * -0.6f * yNormal; roData->unk_04 = playerHeight * 2.0f * yNormal; roData->unk_08 = 10.0f; break; - case 2: - case 3: + case CAM_ITEM_TYPE_2: + case CAM_ITEM_TYPE_3: roData->unk_08 = -20.0f; roData->unk_18 = 80.0f; break; - case 4: + case CAM_ITEM_TYPE_4: roData->unk_00 = playerHeight * -0.2f * yNormal; roData->unk_08 = 25.0f; break; - case 8: + case CAM_ITEM_TYPE_8: roData->unk_00 = playerHeight * -0.2f * yNormal; roData->unk_04 = playerHeight * 0.8f * yNormal; roData->unk_08 = 50.0f; roData->unk_18 = 70.0f; break; - case 9: + case CAM_ITEM_TYPE_9: roData->unk_00 = playerHeight * 0.1f * yNormal; roData->unk_04 = playerHeight * 0.5f * yNormal; roData->unk_08 = -20.0f; @@ -3761,7 +3761,7 @@ s32 Camera_KeepOn4(Camera* camera) { CAM_INTERFACE_FIELD(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_A_HEARTS_MAGIC_FORCE, KEEPON4_FLAG_6); break; - case 5: + case CAM_ITEM_TYPE_5: roData->unk_00 = playerHeight * -0.4f * yNormal; roData->unk_08 = -10.0f; roData->unk_0C = 45.0f; @@ -3769,7 +3769,7 @@ s32 Camera_KeepOn4(Camera* camera) { CAM_INTERFACE_FIELD(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_ALL, KEEPON4_FLAG_1); break; - case 10: + case CAM_ITEM_TYPE_10: roData->unk_00 = playerHeight * -0.5f * yNormal; roData->unk_04 = playerHeight * 1.5f * yNormal; roData->unk_08 = -15.0f; @@ -3780,7 +3780,7 @@ s32 Camera_KeepOn4(Camera* camera) { roData->unk_1E = 0x3C; break; - case 12: + case CAM_ITEM_TYPE_12: roData->unk_00 = playerHeight * -0.6f * yNormal; roData->unk_04 = playerHeight * 1.6f * yNormal; roData->unk_08 = -2.0f; @@ -3792,14 +3792,14 @@ s32 Camera_KeepOn4(Camera* camera) { roData->unk_18 = 50.0f; break; - case 0x5A: + case CAM_ITEM_TYPE_90: roData->unk_00 = playerHeight * -0.3f * yNormal; roData->unk_18 = 45.0f; roData->interfaceField = CAM_INTERFACE_FIELD(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_IGNORE, KEEPON4_FLAG_1); break; - case 0x5B: + case CAM_ITEM_TYPE_91: roData->unk_00 = playerHeight * -0.1f * yNormal; roData->unk_04 = playerHeight * 1.5f * yNormal; roData->unk_08 = -3.0f; @@ -3809,7 +3809,7 @@ s32 Camera_KeepOn4(Camera* camera) { CAM_INTERFACE_FIELD(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_IGNORE, KEEPON4_FLAG_3); break; - case 0x51: + case CAM_ITEM_TYPE_81: roData->unk_00 = playerHeight * -0.3f * yNormal; roData->unk_04 = playerHeight * 1.5f * yNormal; roData->unk_08 = 2.0f; @@ -3821,7 +3821,7 @@ s32 Camera_KeepOn4(Camera* camera) { roData->unk_1E = 0x1E; break; - case 11: + case CAM_ITEM_TYPE_11: roData->unk_00 = playerHeight * -0.19f * yNormal; roData->unk_04 = playerHeight * 0.7f * yNormal; roData->unk_0C = 130.0f; @@ -8874,25 +8874,24 @@ Vec3f Camera_GetQuakeOffset(Camera* camera) { return camera->quakeOffset; } -void Camera_SetCameraData(Camera* camera, s16 setDataFlags, void* data0, void* data1, s16 data2, s16 data3, - UNK_TYPE arg6) { - if (setDataFlags & 0x1) { +void Camera_SetCameraData(Camera* camera, s16 setDataFlags, void* data0, void* data1, s16 data2, s16 data3, s32 data4) { + if (setDataFlags & CAM_DATA_SET_0) { camera->data0 = data0; } - if (setDataFlags & 0x2) { + if (setDataFlags & CAM_DATA_SET_1) { camera->data1 = data1; } - if (setDataFlags & 0x4) { + if (setDataFlags & CAM_DATA_SET_2) { camera->data2 = data2; } - if (setDataFlags & 0x8) { + if (setDataFlags & CAM_DATA_SET_3) { camera->data3 = data3; } - if (setDataFlags & 0x10) { + if (setDataFlags & CAM_DATA_SET_4) { PRINTF(VT_COL(RED, WHITE) "camera: setCameraData: last argument not alive!\n" VT_RST); } } diff --git a/src/code/z_collision_check.c b/src/code/z_collision_check.c index 158948a2eb..75e6ebef7d 100644 --- a/src/code/z_collision_check.c +++ b/src/code/z_collision_check.c @@ -17,7 +17,7 @@ #include "z_lib.h" #pragma increment_block_number "gc-eu:192 gc-eu-mq:192 gc-jp:192 gc-jp-ce:192 gc-jp-mq:192 gc-us:192 gc-us-mq:192" \ - "ique-cn:192 ntsc-1.0:168 ntsc-1.1:168 ntsc-1.2:168 pal-1.0:168 pal-1.1:168" + "ique-cn:192 ntsc-1.0:160 ntsc-1.1:160 ntsc-1.2:160 pal-1.0:160 pal-1.1:160" typedef s32 (*ColChkResetFunc)(PlayState*, Collider*); typedef void (*ColChkApplyFunc)(PlayState*, CollisionCheckContext*, Collider*); diff --git a/src/code/z_onepointdemo.c b/src/code/z_onepointdemo.c index 12dc2d2568..12915e9a80 100644 --- a/src/code/z_onepointdemo.c +++ b/src/code/z_onepointdemo.c @@ -4293,7 +4293,7 @@ s32 OnePointCutscene_SetInfo(PlayState* play, s16 subCamId, s16 csId, Actor* act subCam->timer = -99; if (Play_CamIsNotFixed(play)) { Play_InitCameraDataUsingPlayer(play, subCamId, player, CAM_SET_TURN_AROUND); - subCam->data2 = 0xC; + subCam->data2 = CAM_ITEM_TYPE_12; } else { Play_CopyCamera(play, subCamId, CAM_ID_MAIN); Play_RequestCameraSetting(play, subCamId, CAM_SET_FREE2); diff --git a/src/overlays/actors/ovl_Bg_Mori_Rakkatenjo/z_bg_mori_rakkatenjo.c b/src/overlays/actors/ovl_Bg_Mori_Rakkatenjo/z_bg_mori_rakkatenjo.c index 8693802846..3d68864291 100644 --- a/src/overlays/actors/ovl_Bg_Mori_Rakkatenjo/z_bg_mori_rakkatenjo.c +++ b/src/overlays/actors/ovl_Bg_Mori_Rakkatenjo/z_bg_mori_rakkatenjo.c @@ -228,7 +228,7 @@ void BgMoriRakkatenjo_Update(Actor* thisx, PlayState* play2) { if (sCamSetting == CAM_SET_NONE) { PRINTF("camera changed (mori rakka tenjyo) ... \n"); sCamSetting = play->cameraPtrs[CAM_ID_MAIN]->setting; - Camera_SetCameraData(play->cameraPtrs[CAM_ID_MAIN], 1, &this->dyna.actor, NULL, 0, 0, 0); + Camera_SetCameraData(play->cameraPtrs[CAM_ID_MAIN], CAM_DATA_SET_0, &this->dyna.actor, NULL, 0, 0, 0); Camera_RequestSetting(play->cameraPtrs[CAM_ID_MAIN], CAM_SET_FOREST_BIRDS_EYE); } } else if (sCamSetting != CAM_SET_NONE) { diff --git a/src/overlays/actors/ovl_Boss_Sst/z_boss_sst.c b/src/overlays/actors/ovl_Boss_Sst/z_boss_sst.c index e0c2239361..23fccf40f3 100644 --- a/src/overlays/actors/ovl_Boss_Sst/z_boss_sst.c +++ b/src/overlays/actors/ovl_Boss_Sst/z_boss_sst.c @@ -33,7 +33,7 @@ #include "assets/objects/gameplay_keep/gameplay_keep.h" #pragma increment_block_number "gc-eu:0 gc-eu-mq:0 gc-jp:128 gc-jp-ce:128 gc-jp-mq:128 gc-us:128 gc-us-mq:128" \ - "ique-cn:128 pal-1.0:128 pal-1.1:128" + "ique-cn:128 pal-1.0:0 pal-1.1:0" #define FLAGS \ (ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_UPDATE_CULLING_DISABLED | \ diff --git a/src/overlays/actors/ovl_En_Horse/z_en_horse.c b/src/overlays/actors/ovl_En_Horse/z_en_horse.c index e3359b4181..68be05297e 100644 --- a/src/overlays/actors/ovl_En_Horse/z_en_horse.c +++ b/src/overlays/actors/ovl_En_Horse/z_en_horse.c @@ -1777,7 +1777,7 @@ void EnHorse_Inactive(EnHorse* this, PlayState* play2) { // Focus the camera on Epona Camera_SetViewParam(play->cameraPtrs[CAM_ID_MAIN], CAM_VIEW_TARGET, &this->actor); Camera_RequestSetting(play->cameraPtrs[CAM_ID_MAIN], CAM_SET_TURN_AROUND); - Camera_SetCameraData(play->cameraPtrs[CAM_ID_MAIN], 4, NULL, NULL, 0x51, 0, 0); + Camera_SetCameraData(play->cameraPtrs[CAM_ID_MAIN], CAM_DATA_SET_2, NULL, NULL, CAM_ITEM_TYPE_81, 0, 0); } } if (!(this->stateFlags & ENHORSE_INACTIVE)) { @@ -1853,7 +1853,7 @@ void EnHorse_Idle(EnHorse* this, PlayState* play) { EnHorse_SetFollowAnimation(this, play); Camera_SetViewParam(play->cameraPtrs[CAM_ID_MAIN], CAM_VIEW_TARGET, &this->actor); Camera_RequestSetting(play->cameraPtrs[CAM_ID_MAIN], CAM_SET_TURN_AROUND); - Camera_SetCameraData(play->cameraPtrs[CAM_ID_MAIN], 4, NULL, NULL, 0x51, 0, 0); + Camera_SetCameraData(play->cameraPtrs[CAM_ID_MAIN], CAM_DATA_SET_2, NULL, NULL, CAM_ITEM_TYPE_81, 0, 0); } } else { Audio_PlaySfxGeneral(NA_SE_EV_HORSE_NEIGH, &this->actor.projectedPos, 4, &gSfxDefaultFreqAndVolScale, diff --git a/src/overlays/actors/ovl_En_Ossan/z_en_ossan.c b/src/overlays/actors/ovl_En_Ossan/z_en_ossan.c index ab3c142984..33b5886a26 100644 --- a/src/overlays/actors/ovl_En_Ossan/z_en_ossan.c +++ b/src/overlays/actors/ovl_En_Ossan/z_en_ossan.c @@ -569,7 +569,7 @@ void EnOssan_TalkHappyMaskShopkeeper(PlayState* play) { void EnOssan_UpdateCameraDirection(EnOssan* this, PlayState* play, f32 cameraFaceAngle) { this->cameraFaceAngle = cameraFaceAngle; - Camera_SetCameraData(GET_ACTIVE_CAM(play), 0xC, NULL, NULL, cameraFaceAngle, 0, 0); + Camera_SetCameraData(GET_ACTIVE_CAM(play), CAM_DATA_SET_2 | CAM_DATA_SET_3, NULL, NULL, cameraFaceAngle, 0, 0); } s32 EnOssan_TryGetObjBankIndices(EnOssan* this, PlayState* play, s16* objectIds) { diff --git a/src/overlays/actors/ovl_player_actor/z_player.c b/src/overlays/actors/ovl_player_actor/z_player.c index 68a2683ca9..2acc07c120 100644 --- a/src/overlays/actors/ovl_player_actor/z_player.c +++ b/src/overlays/actors/ovl_player_actor/z_player.c @@ -377,7 +377,7 @@ static Vec3f sInteractWallCheckResult; static Input* sControlInput; #pragma increment_block_number "gc-eu:192 gc-eu-mq:192 gc-jp:192 gc-jp-ce:192 gc-jp-mq:192 gc-us:192 gc-us-mq:192" \ - "ique-cn:192 ntsc-1.0:128 ntsc-1.1:128 ntsc-1.2:128 pal-1.0:128 pal-1.1:128" + "ique-cn:160 ntsc-1.0:128 ntsc-1.1:128 ntsc-1.2:128 pal-1.0:128 pal-1.1:128" // .data @@ -3498,7 +3498,7 @@ void Player_SetupActionPreserveItemAction(PlayState* play, Player* this, PlayerA } } -void func_80835E44(PlayState* play, s16 camSetting) { +void Player_RequestCameraSetting(PlayState* play, s16 camSetting) { if (!Play_CamIsNotFixed(play)) { if (camSetting == CAM_SET_SCENE_TRANSITION) { Interface_ChangeHudVisibilityMode(HUD_VISIBILITY_NOTHING_ALT); @@ -3508,9 +3508,9 @@ void func_80835E44(PlayState* play, s16 camSetting) { } } -void func_80835EA4(PlayState* play, s32 arg1) { - func_80835E44(play, CAM_SET_TURN_AROUND); - Camera_SetCameraData(Play_GetCamera(play, CAM_ID_MAIN), 4, NULL, NULL, arg1, 0, 0); +void Player_SetTurnAroundCamera(PlayState* play, s32 camItemType) { + Player_RequestCameraSetting(play, CAM_SET_TURN_AROUND); + Camera_SetCameraData(Play_GetCamera(play, CAM_ID_MAIN), CAM_DATA_SET_2, NULL, NULL, camItemType, 0, 0); } void Player_DestroyHookshot(Player* this) { @@ -5270,7 +5270,7 @@ s32 Player_HandleExitsAndVoids(PlayState* play, Player* this, CollisionPoly* pol this->stateFlags1 |= PLAYER_STATE1_0 | PLAYER_STATE1_29; - func_80835E44(play, CAM_SET_SCENE_TRANSITION); + Player_RequestCameraSetting(play, CAM_SET_SCENE_TRANSITION); return 1; } else { @@ -5973,7 +5973,7 @@ void func_8083AF44(PlayState* play, Player* this, s32 magicSpell) { if (magicSpell == 5) { this->subCamId = OnePointCutscene_Init(play, 1100, -101, NULL, CAM_ID_MAIN); } else { - func_80835EA4(play, 10); + Player_SetTurnAroundCamera(play, CAM_ITEM_TYPE_10); } } @@ -6041,7 +6041,7 @@ s32 Player_ActionHandler_13(Player* this, PlayState* play) { Player_SetupAction(play, this, Player_Action_8085063C, 1); this->stateFlags1 |= PLAYER_STATE1_28 | PLAYER_STATE1_29; Player_AnimPlayOnce(play, this, Player_GetIdleAnim(this)); - func_80835EA4(play, 4); + Player_SetTurnAroundCamera(play, CAM_ITEM_TYPE_4); } func_80832224(this); @@ -6095,11 +6095,11 @@ s32 Player_ActionHandler_13(Player* this, PlayState* play) { } else if (sp2C == EXCH_ITEM_BOTTLE_RUTOS_LETTER) { this->av1.actionVar1 = 1; this->actor.textId = 0x4005; - func_80835EA4(play, 1); + Player_SetTurnAroundCamera(play, CAM_ITEM_TYPE_1); } else { this->av1.actionVar1 = 2; this->actor.textId = 0xCF; - func_80835EA4(play, 4); + Player_SetTurnAroundCamera(play, CAM_ITEM_TYPE_4); } this->actor.flags |= ACTOR_FLAG_TALK; @@ -6122,21 +6122,21 @@ s32 Player_ActionHandler_13(Player* this, PlayState* play) { if (sp2C == 0xC) { Player_SetupActionPreserveItemAction(play, this, Player_Action_8084EED8, 0); Player_AnimPlayOnceAdjusted(play, this, &gPlayerAnim_link_bottle_bug_out); - func_80835EA4(play, 3); + Player_SetTurnAroundCamera(play, CAM_ITEM_TYPE_3); } else if ((sp2C > 0) && (sp2C < 4)) { Player_SetupActionPreserveItemAction(play, this, Player_Action_8084EFC0, 0); Player_AnimPlayOnceAdjusted(play, this, &gPlayerAnim_link_bottle_fish_out); - func_80835EA4(play, (sp2C == 1) ? 1 : 5); + Player_SetTurnAroundCamera(play, (sp2C == 1) ? CAM_ITEM_TYPE_1 : CAM_ITEM_TYPE_5); } else { Player_SetupActionPreserveItemAction(play, this, Player_Action_8084EAC0, 0); Player_AnimChangeOnceMorphAdjusted(play, this, &gPlayerAnim_link_bottle_drink_demo_start); - func_80835EA4(play, 2); + Player_SetTurnAroundCamera(play, CAM_ITEM_TYPE_2); } } else { Player_SetupActionPreserveItemAction(play, this, Player_Action_8084E3C4, 0); Player_AnimPlayOnceAdjusted(play, this, &gPlayerAnim_link_normal_okarina_start); this->stateFlags2 |= PLAYER_STATE2_USING_OCARINA; - func_80835EA4(play, (this->unk_6A8 != NULL) ? 0x5B : 0x5A); + Player_SetTurnAroundCamera(play, (this->unk_6A8 != NULL) ? CAM_ITEM_TYPE_91 : CAM_ITEM_TYPE_90); if (this->unk_6A8 != NULL) { this->stateFlags2 |= PLAYER_STATE2_25; Camera_SetViewParam(Play_GetCamera(play, CAM_ID_MAIN), CAM_VIEW_TARGET, this->unk_6A8); @@ -7353,7 +7353,7 @@ s32 Player_ActionHandler_2(Player* this, PlayState* play) { if (!(this->stateFlags2 & PLAYER_STATE2_10) || (this->currentBoots == PLAYER_BOOTS_IRON)) { Player_SetupWaitForPutAway(play, this, func_8083A434); Player_AnimPlayOnceAdjusted(play, this, &gPlayerAnim_link_demo_get_itemB); - func_80835EA4(play, 9); + Player_SetTurnAroundCamera(play, CAM_ITEM_TYPE_9); } this->stateFlags1 |= PLAYER_STATE1_10 | PLAYER_STATE1_CARRYING_ACTOR | PLAYER_STATE1_29; @@ -13748,7 +13748,7 @@ void Player_Action_8084E1EC(Player* this, PlayState* play) { if ((this->stateFlags1 & PLAYER_STATE1_10) && LinkAnimation_OnFrame(&this->skelAnime, 10.0f)) { func_808332F4(this, play); func_80832340(play, this); - func_80835EA4(play, 8); + Player_SetTurnAroundCamera(play, CAM_ITEM_TYPE_8); } else if (LinkAnimation_OnFrame(&this->skelAnime, 5.0f)) { Player_PlayVoiceSfx(this, NA_SE_VO_LI_BREATH_DRINK); } @@ -13918,7 +13918,7 @@ void Player_Action_8084E6D4(Player* this, PlayState* play) { } this->av2.actionVar2 = 2; - func_80835EA4(play, 9); + Player_SetTurnAroundCamera(play, CAM_ITEM_TYPE_9); } } else { if (this->av2.actionVar2 == 0) { @@ -14120,7 +14120,7 @@ void Player_Action_SwingBottle(Player* this, PlayState* play) { Player_UpdateBottleHeld(play, this, catchInfo->itemId, ABS(catchInfo->itemAction)); Player_AnimPlayOnceAdjusted(play, this, swingEntry->catchAnimation); - func_80835EA4(play, 4); + Player_SetTurnAroundCamera(play, CAM_ITEM_TYPE_4); } } } @@ -16219,6 +16219,6 @@ void Player_StartTalking(PlayState* play, Actor* actor) { if ((this->naviActor == this->talkActor) && ((this->talkActor->textId & 0xFF00) != 0x200)) { this->naviActor->flags |= ACTOR_FLAG_TALK; - func_80835EA4(play, 0xB); + Player_SetTurnAroundCamera(play, CAM_ITEM_TYPE_11); } }