From 939b29299119888e486a41a10329580b22d6b9bd Mon Sep 17 00:00:00 2001 From: Dragorn421 Date: Mon, 9 Jun 2025 21:07:35 +0200 Subject: [PATCH 1/4] 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 2/4] 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 3/4] `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 4/4] 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); } }