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/assets/objects/object_tp/object_tp.c b/assets/objects/object_tp/object_tp.c
new file mode 100644
index 0000000000..b79b3b4cdf
--- /dev/null
+++ b/assets/objects/object_tp/object_tp.c
@@ -0,0 +1,52 @@
+#include "object_tp.h"
+#include "gfx.h"
+
+Gfx gTailpasaranTailSegmentDL[14] = {
+#include "assets/objects/object_tp/gTailpasaranTailSegmentDL.inc.c"
+};
+
+Vtx gTailpasaranTailSegmentVtx[] = {
+#include "assets/objects/object_tp/gTailpasaranTailSegmentVtx.inc.c"
+};
+
+Vtx gTailpasaranHeadClawVtx[] = {
+#include "assets/objects/object_tp/gTailpasaranHeadClawVtx.inc.c"
+};
+
+Vtx gTailpasaranHeadMouthpartsVtx[] = {
+#include "assets/objects/object_tp/gTailpasaranHeadMouthpartsVtx.inc.c"
+};
+
+Gfx gTailpasaranHeadClawDL[54] = {
+#include "assets/objects/object_tp/gTailpasaranHeadClawDL.inc.c"
+};
+
+Gfx gTailpasaranHeadMouthpartsDL[18] = {
+#include "assets/objects/object_tp/gTailpasaranHeadMouthpartsDL.inc.c"
+};
+
+Gfx gTailpasaranHeadDL[3] = {
+#include "assets/objects/object_tp/gTailpasaranHeadDL.inc.c"
+};
+
+u64 gTailpasaranHeadRearTex[TEX_LEN(u64, gTailpasaranHeadRearTex_WIDTH, gTailpasaranHeadRearTex_HEIGHT, 16)] = {
+#include "assets/objects/object_tp/gTailpasaranHeadRearTex.rgba16.inc.c"
+};
+
+u64 gTailpasaranHeadClawBaseTex[TEX_LEN(u64, gTailpasaranHeadClawBaseTex_WIDTH, gTailpasaranHeadClawBaseTex_HEIGHT,
+ 16)] = {
+#include "assets/objects/object_tp/gTailpasaranHeadClawBaseTex.rgba16.inc.c"
+};
+
+u64 gTailpasaranHeadClawTex[TEX_LEN(u64, gTailpasaranHeadClawTex_WIDTH, gTailpasaranHeadClawTex_HEIGHT, 16)] = {
+#include "assets/objects/object_tp/gTailpasaranHeadClawTex.rgba16.inc.c"
+};
+
+u64 gTailpasaranTailSegmentTex[TEX_LEN(u64, gTailpasaranTailSegmentTex_WIDTH, gTailpasaranTailSegmentTex_HEIGHT, 8)] = {
+#include "assets/objects/object_tp/gTailpasaranTailSegmentTex.ia8.inc.c"
+};
+
+u64 gTailpasaranHeadMouthpartsTex[TEX_LEN(u64, gTailpasaranHeadMouthpartsTex_WIDTH,
+ gTailpasaranHeadMouthpartsTex_HEIGHT, 16)] = {
+#include "assets/objects/object_tp/gTailpasaranHeadMouthpartsTex.rgba16.inc.c"
+};
diff --git a/assets/objects/object_tp/object_tp.h b/assets/objects/object_tp/object_tp.h
new file mode 100644
index 0000000000..004facfb58
--- /dev/null
+++ b/assets/objects/object_tp/object_tp.h
@@ -0,0 +1,34 @@
+#ifndef OBJECT_TP_H
+#define OBJECT_TP_H
+
+#include "ultra64.h"
+#include "tex_len.h"
+
+extern Gfx gTailpasaranTailSegmentDL[14];
+extern Vtx gTailpasaranTailSegmentVtx[];
+
+extern Gfx gTailpasaranHeadClawDL[54];
+extern Gfx gTailpasaranHeadMouthpartsDL[18];
+extern Gfx gTailpasaranHeadDL[3];
+
+#define gTailpasaranHeadRearTex_WIDTH 8
+#define gTailpasaranHeadRearTex_HEIGHT 16
+extern u64 gTailpasaranHeadRearTex[TEX_LEN(u64, gTailpasaranHeadRearTex_WIDTH, gTailpasaranHeadRearTex_HEIGHT, 16)];
+
+#define gTailpasaranHeadClawBaseTex_WIDTH 8
+#define gTailpasaranHeadClawBaseTex_HEIGHT 8
+extern u64 gTailpasaranHeadClawBaseTex[TEX_LEN(u64, gTailpasaranHeadClawBaseTex_WIDTH, gTailpasaranHeadClawBaseTex_HEIGHT, 16)];
+
+#define gTailpasaranHeadClawTex_WIDTH 16
+#define gTailpasaranHeadClawTex_HEIGHT 16
+extern u64 gTailpasaranHeadClawTex[TEX_LEN(u64, gTailpasaranHeadClawTex_WIDTH, gTailpasaranHeadClawTex_HEIGHT, 16)];
+
+#define gTailpasaranTailSegmentTex_WIDTH 64
+#define gTailpasaranTailSegmentTex_HEIGHT 64
+extern u64 gTailpasaranTailSegmentTex[TEX_LEN(u64, gTailpasaranTailSegmentTex_WIDTH, gTailpasaranTailSegmentTex_HEIGHT, 8)];
+
+#define gTailpasaranHeadMouthpartsTex_WIDTH 8
+#define gTailpasaranHeadMouthpartsTex_HEIGHT 8
+extern u64 gTailpasaranHeadMouthpartsTex[TEX_LEN(u64, gTailpasaranHeadMouthpartsTex_WIDTH, gTailpasaranHeadMouthpartsTex_HEIGHT, 16)];
+
+#endif
diff --git a/assets/objects/object_triforce_spot/object_triforce_spot.c b/assets/objects/object_triforce_spot/object_triforce_spot.c
new file mode 100644
index 0000000000..49729e7253
--- /dev/null
+++ b/assets/objects/object_triforce_spot/object_triforce_spot.c
@@ -0,0 +1,30 @@
+#include "object_triforce_spot.h"
+#include "gfx.h"
+
+Vtx gTriforceVtx[] = {
+#include "assets/objects/object_triforce_spot/gTriforceVtx.inc.c"
+};
+
+Vtx gTriforceLightColumnVtx[] = {
+#include "assets/objects/object_triforce_spot/gTriforceLightColumnVtx.inc.c"
+};
+
+Gfx gTriforceDL[72] = {
+#include "assets/objects/object_triforce_spot/gTriforceDL.inc.c"
+};
+
+Gfx gTriforceLightColumnDL[26] = {
+#include "assets/objects/object_triforce_spot/gTriforceLightColumnDL.inc.c"
+};
+
+u64 gTriforceTex[TEX_LEN(u64, gTriforceTex_WIDTH, gTriforceTex_HEIGHT, 8)] = {
+#include "assets/objects/object_triforce_spot/gTriforceTex.i8.inc.c"
+};
+
+u64 gTriforceColumnSide1Tex[TEX_LEN(u64, gTriforceColumnSide1Tex_WIDTH, gTriforceColumnSide1Tex_HEIGHT, 8)] = {
+#include "assets/objects/object_triforce_spot/gTriforceColumnSide1Tex.i8.inc.c"
+};
+
+u64 gTriforceColumnSide2Tex[TEX_LEN(u64, gTriforceColumnSide2Tex_WIDTH, gTriforceColumnSide2Tex_HEIGHT, 8)] = {
+#include "assets/objects/object_triforce_spot/gTriforceColumnSide2Tex.i8.inc.c"
+};
diff --git a/assets/objects/object_triforce_spot/object_triforce_spot.h b/assets/objects/object_triforce_spot/object_triforce_spot.h
new file mode 100644
index 0000000000..7db44851fc
--- /dev/null
+++ b/assets/objects/object_triforce_spot/object_triforce_spot.h
@@ -0,0 +1,24 @@
+#ifndef OBJECT_TRIFORCE_SPOT_H
+#define OBJECT_TRIFORCE_SPOT_H
+
+#include "ultra64.h"
+#include "tex_len.h"
+
+extern Vtx gTriforceVtx[];
+extern Gfx gTriforceDL[72];
+
+extern Gfx gTriforceLightColumnDL[26];
+
+#define gTriforceTex_WIDTH 64
+#define gTriforceTex_HEIGHT 64
+extern u64 gTriforceTex[TEX_LEN(u64, gTriforceTex_WIDTH, gTriforceTex_HEIGHT, 8)];
+
+#define gTriforceColumnSide1Tex_WIDTH 64
+#define gTriforceColumnSide1Tex_HEIGHT 32
+extern u64 gTriforceColumnSide1Tex[TEX_LEN(u64, gTriforceColumnSide1Tex_WIDTH, gTriforceColumnSide1Tex_HEIGHT, 8)];
+
+#define gTriforceColumnSide2Tex_WIDTH 64
+#define gTriforceColumnSide2Tex_HEIGHT 32
+extern u64 gTriforceColumnSide2Tex[TEX_LEN(u64, gTriforceColumnSide2Tex_WIDTH, gTriforceColumnSide2Tex_HEIGHT, 8)];
+
+#endif
diff --git a/assets/objects/object_umajump/gJumpableHorseFenceCol.c b/assets/objects/object_umajump/gJumpableHorseFenceCol.c
new file mode 100644
index 0000000000..728b6f1b3d
--- /dev/null
+++ b/assets/objects/object_umajump/gJumpableHorseFenceCol.c
@@ -0,0 +1,24 @@
+#include "object_umajump.h"
+#include "array_count.h"
+#include "camera.h"
+#include "z_math.h"
+
+BgCamInfo gJumpableHorseFenceBgCamList[] = {
+#include "assets/objects/object_umajump/gJumpableHorseFenceBgCamList.inc.c"
+};
+
+SurfaceType gJumpableHorseFenceSurfaceTypes[] = {
+#include "assets/objects/object_umajump/gJumpableHorseFenceSurfaceTypes.inc.c"
+};
+
+CollisionPoly gJumpableHorseFencePolyList[] = {
+#include "assets/objects/object_umajump/gJumpableHorseFencePolyList.inc.c"
+};
+
+Vec3s gJumpableHorseFenceVtxList[] = {
+#include "assets/objects/object_umajump/gJumpableHorseFenceVtxList.inc.c"
+};
+
+CollisionHeader gJumpableHorseFenceCol = {
+#include "assets/objects/object_umajump/gJumpableHorseFenceCol.inc.c"
+};
diff --git a/assets/objects/object_umajump/gJumpableHorseFenceDL.c b/assets/objects/object_umajump/gJumpableHorseFenceDL.c
new file mode 100644
index 0000000000..bcebc3a972
--- /dev/null
+++ b/assets/objects/object_umajump/gJumpableHorseFenceDL.c
@@ -0,0 +1,25 @@
+#include "object_umajump.h"
+#include "gfx.h"
+#include "tex_len.h"
+
+#define gJumpableHorseFenceBrickTex_WIDTH 16
+#define gJumpableHorseFenceBrickTex_HEIGHT 64
+u64 gJumpableHorseFenceBrickTex[TEX_LEN(u64, gJumpableHorseFenceBrickTex_WIDTH, gJumpableHorseFenceBrickTex_HEIGHT,
+ 16)] = {
+#include "assets/objects/object_umajump/gJumpableHorseFenceBrickTex.rgba16.inc.c"
+};
+
+#define gJumpableHorseFenceMetalBarTex_WIDTH 16
+#define gJumpableHorseFenceMetalBarTex_HEIGHT 64
+u64 gJumpableHorseFenceMetalBarTex[TEX_LEN(u64, gJumpableHorseFenceMetalBarTex_WIDTH,
+ gJumpableHorseFenceMetalBarTex_HEIGHT, 16)] = {
+#include "assets/objects/object_umajump/gJumpableHorseFenceMetalBarTex.rgba16.inc.c"
+};
+
+Vtx gJumpableHorseFenceVtx[] = {
+#include "assets/objects/object_umajump/gJumpableHorseFenceVtx.inc.c"
+};
+
+Gfx gJumpableHorseFenceDL[37] = {
+#include "assets/objects/object_umajump/gJumpableHorseFenceDL.inc.c"
+};
diff --git a/assets/objects/object_umajump/object_umajump.h b/assets/objects/object_umajump/object_umajump.h
new file mode 100644
index 0000000000..bb0a847620
--- /dev/null
+++ b/assets/objects/object_umajump/object_umajump.h
@@ -0,0 +1,10 @@
+#ifndef OBJECT_UMAJUMP_H
+#define OBJECT_UMAJUMP_H
+
+#include "ultra64.h"
+#include "bgcheck.h"
+
+extern Gfx gJumpableHorseFenceDL[37];
+extern CollisionHeader gJumpableHorseFenceCol;
+
+#endif
diff --git a/assets/objects/object_vase/gUnusedVaseDL.c b/assets/objects/object_vase/gUnusedVaseDL.c
new file mode 100644
index 0000000000..0619074953
--- /dev/null
+++ b/assets/objects/object_vase/gUnusedVaseDL.c
@@ -0,0 +1,18 @@
+#include "object_vase.h"
+#include "gfx.h"
+
+Gfx gUnusedVaseDL[52] = {
+#include "assets/objects/object_vase/gUnusedVaseDL.inc.c"
+};
+
+Vtx gUnusedVaseVtx[] = {
+#include "assets/objects/object_vase/gUnusedVaseVtx.inc.c"
+};
+
+u64 gUnusedVaseBodyTex[TEX_LEN(u64, gUnusedVaseBodyTex_WIDTH, gUnusedVaseBodyTex_HEIGHT, 16)] = {
+#include "assets/objects/object_vase/gUnusedVaseBodyTex.rgba16.inc.c"
+};
+
+u64 gUnusedVaseTopTex[TEX_LEN(u64, gUnusedVaseTopTex_WIDTH, gUnusedVaseTopTex_HEIGHT, 16)] = {
+#include "assets/objects/object_vase/gUnusedVaseTopTex.rgba16.inc.c"
+};
diff --git a/assets/objects/object_vase/object_vase.h b/assets/objects/object_vase/object_vase.h
new file mode 100644
index 0000000000..4048f41e48
--- /dev/null
+++ b/assets/objects/object_vase/object_vase.h
@@ -0,0 +1,19 @@
+#ifndef OBJECT_VASE_H
+#define OBJECT_VASE_H
+
+#include "ultra64.h"
+#include "tex_len.h"
+
+extern Gfx gUnusedVaseDL[52];
+
+extern Vtx gUnusedVaseVtx[];
+
+#define gUnusedVaseBodyTex_WIDTH 32
+#define gUnusedVaseBodyTex_HEIGHT 32
+extern u64 gUnusedVaseBodyTex[TEX_LEN(u64, gUnusedVaseBodyTex_WIDTH, gUnusedVaseBodyTex_HEIGHT, 16)];
+
+#define gUnusedVaseTopTex_WIDTH 32
+#define gUnusedVaseTopTex_HEIGHT 32
+extern u64 gUnusedVaseTopTex[TEX_LEN(u64, gUnusedVaseTopTex_WIDTH, gUnusedVaseTopTex_HEIGHT, 16)];
+
+#endif
diff --git a/assets/objects/object_yukabyun/gFloorTileEnemyDL.c b/assets/objects/object_yukabyun/gFloorTileEnemyDL.c
new file mode 100644
index 0000000000..0092f4bc58
--- /dev/null
+++ b/assets/objects/object_yukabyun/gFloorTileEnemyDL.c
@@ -0,0 +1,14 @@
+#include "object_yukabyun.h"
+#include "gfx.h"
+
+u64 gFloorTileEnemyBottomTex[TEX_LEN(u64, gFloorTileEnemyBottomTex_WIDTH, gFloorTileEnemyBottomTex_HEIGHT, 16)] = {
+#include "assets/objects/object_yukabyun/gFloorTileEnemyBottomTex.rgba16.inc.c"
+};
+
+Vtx gFloorTileEnemyVtx[] = {
+#include "assets/objects/object_yukabyun/gFloorTileEnemyVtx.inc.c"
+};
+
+Gfx gFloorTileEnemyDL[23] = {
+#include "assets/objects/object_yukabyun/gFloorTileEnemyDL.inc.c"
+};
diff --git a/assets/objects/object_yukabyun/gFloorTileEnemyFragmentDL.c b/assets/objects/object_yukabyun/gFloorTileEnemyFragmentDL.c
new file mode 100644
index 0000000000..1e5aea6e21
--- /dev/null
+++ b/assets/objects/object_yukabyun/gFloorTileEnemyFragmentDL.c
@@ -0,0 +1,19 @@
+#include "object_yukabyun.h"
+#include "gfx.h"
+
+Vtx gFloorTileEnemyFragmentVtx[] = {
+#include "assets/objects/object_yukabyun/gFloorTileEnemyFragmentVtx.inc.c"
+};
+
+Gfx gFloorTileEnemyFragmentDL[18] = {
+#include "assets/objects/object_yukabyun/gFloorTileEnemyFragmentDL.inc.c"
+};
+
+u64 gFloorTileEnemyTopTex[TEX_LEN(u64, gFloorTileEnemyTopTex_WIDTH, gFloorTileEnemyTopTex_HEIGHT, 16)] = {
+#include "assets/objects/object_yukabyun/gFloorTileEnemyTopTex.rgba16.inc.c"
+};
+
+u64 gFloorTileEnemyFragmentTex[TEX_LEN(u64, gFloorTileEnemyFragmentTex_WIDTH, gFloorTileEnemyFragmentTex_HEIGHT,
+ 16)] = {
+#include "assets/objects/object_yukabyun/gFloorTileEnemyFragmentTex.rgba16.inc.c"
+};
diff --git a/assets/objects/object_yukabyun/object_yukabyun.h b/assets/objects/object_yukabyun/object_yukabyun.h
new file mode 100644
index 0000000000..d568240d67
--- /dev/null
+++ b/assets/objects/object_yukabyun/object_yukabyun.h
@@ -0,0 +1,23 @@
+#ifndef OBJECT_YUKABYUN_H
+#define OBJECT_YUKABYUN_H
+
+#include "ultra64.h"
+#include "tex_len.h"
+
+#define gFloorTileEnemyBottomTex_WIDTH 32
+#define gFloorTileEnemyBottomTex_HEIGHT 32
+extern u64 gFloorTileEnemyBottomTex[TEX_LEN(u64, gFloorTileEnemyBottomTex_WIDTH, gFloorTileEnemyBottomTex_HEIGHT, 16)];
+
+extern Gfx gFloorTileEnemyDL[23];
+
+extern Gfx gFloorTileEnemyFragmentDL[18];
+
+#define gFloorTileEnemyTopTex_WIDTH 32
+#define gFloorTileEnemyTopTex_HEIGHT 32
+extern u64 gFloorTileEnemyTopTex[TEX_LEN(u64, gFloorTileEnemyTopTex_WIDTH, gFloorTileEnemyTopTex_HEIGHT, 16)];
+
+#define gFloorTileEnemyFragmentTex_WIDTH 16
+#define gFloorTileEnemyFragmentTex_HEIGHT 16
+extern u64 gFloorTileEnemyFragmentTex[TEX_LEN(u64, gFloorTileEnemyFragmentTex_WIDTH, gFloorTileEnemyFragmentTex_HEIGHT, 16)];
+
+#endif
diff --git a/assets/objects/object_zg/gTowerCollapseBarsCol.c b/assets/objects/object_zg/gTowerCollapseBarsCol.c
new file mode 100644
index 0000000000..855b517657
--- /dev/null
+++ b/assets/objects/object_zg/gTowerCollapseBarsCol.c
@@ -0,0 +1,24 @@
+#include "object_zg.h"
+#include "array_count.h"
+#include "camera.h"
+#include "z_math.h"
+
+BgCamInfo gTowerCollapseBarsBgCamList[] = {
+#include "assets/objects/object_zg/gTowerCollapseBarsBgCamList.inc.c"
+};
+
+SurfaceType gTowerCollapseBarsSurfaceTypes[] = {
+#include "assets/objects/object_zg/gTowerCollapseBarsSurfaceTypes.inc.c"
+};
+
+CollisionPoly gTowerCollapseBarsPolyList[] = {
+#include "assets/objects/object_zg/gTowerCollapseBarsPolyList.inc.c"
+};
+
+Vec3s gTowerCollapseBarsVtxList[] = {
+#include "assets/objects/object_zg/gTowerCollapseBarsVtxList.inc.c"
+};
+
+CollisionHeader gTowerCollapseBarsCol = {
+#include "assets/objects/object_zg/gTowerCollapseBarsCol.inc.c"
+};
diff --git a/assets/objects/object_zg/gTowerCollapseBarsDL.c b/assets/objects/object_zg/gTowerCollapseBarsDL.c
new file mode 100644
index 0000000000..216708a119
--- /dev/null
+++ b/assets/objects/object_zg/gTowerCollapseBarsDL.c
@@ -0,0 +1,23 @@
+#include "object_zg.h"
+#include "gfx.h"
+#include "tex_len.h"
+
+#define gTowerCollapseBarMetalTex_WIDTH 32
+#define gTowerCollapseBarMetalTex_HEIGHT 32
+u64 gTowerCollapseBarMetalTex[TEX_LEN(u64, gTowerCollapseBarMetalTex_WIDTH, gTowerCollapseBarMetalTex_HEIGHT, 16)] = {
+#include "assets/objects/object_zg/gTowerCollapseBarMetalTex.rgba16.inc.c"
+};
+
+#define gTowerCollapseBarFlameTex_WIDTH 32
+#define gTowerCollapseBarFlameTex_HEIGHT 32
+u64 gTowerCollapseBarFlameTex[TEX_LEN(u64, gTowerCollapseBarFlameTex_WIDTH, gTowerCollapseBarFlameTex_HEIGHT, 16)] = {
+#include "assets/objects/object_zg/gTowerCollapseBarFlameTex.rgba16.inc.c"
+};
+
+Vtx gTowerCollapseBarsVtx[] = {
+#include "assets/objects/object_zg/gTowerCollapseBarsVtx.inc.c"
+};
+
+Gfx gTowerCollapseBarsDL[28] = {
+#include "assets/objects/object_zg/gTowerCollapseBarsDL.inc.c"
+};
diff --git a/assets/objects/object_zg/object_zg.h b/assets/objects/object_zg/object_zg.h
new file mode 100644
index 0000000000..622160f3ce
--- /dev/null
+++ b/assets/objects/object_zg/object_zg.h
@@ -0,0 +1,11 @@
+#ifndef OBJECT_ZG_H
+#define OBJECT_ZG_H
+
+#include "ultra64.h"
+#include "bgcheck.h"
+
+extern Gfx gTowerCollapseBarsDL[28];
+
+extern CollisionHeader gTowerCollapseBarsCol;
+
+#endif
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/textures/icon_item_fra_static/icon_item_fra_static.c b/assets/textures/icon_item_fra_static/icon_item_fra_static.c
index 80dae50a8d..3cfec8f8d4 100644
--- a/assets/textures/icon_item_fra_static/icon_item_fra_static.c
+++ b/assets/textures/icon_item_fra_static/icon_item_fra_static.c
@@ -52,19 +52,19 @@ u64 gPauseToPlayMelodyFRATex[TEX_LEN(u64, gPauseToPlayMelodyFRATex_WIDTH, gPause
#include "assets/textures/icon_item_fra_static/gPauseToPlayMelodyFRATex.ia8.inc.c"
};
-u64 gPauseToSelectItemFRATex[TEX_LEN(u64, gPauseToSelectItemFRATex_WIDTH, gPauseToSelectItemFRATex_HEIGHT, 8)] = {
+u64 gPauseToSelectItemFRATex[TEX_LEN(u64, TO_PAGE_LABEL_TEX_WIDTH, TO_PAGE_LABEL_TEX_HEIGHT, 8)] = {
#include "assets/textures/icon_item_fra_static/gPauseToSelectItemFRATex.ia8.inc.c"
};
-u64 gPauseToMapFRATex[TEX_LEN(u64, gPauseToMapFRATex_WIDTH, gPauseToMapFRATex_HEIGHT, 8)] = {
+u64 gPauseToMapFRATex[TEX_LEN(u64, TO_PAGE_LABEL_TEX_WIDTH, TO_PAGE_LABEL_TEX_HEIGHT, 8)] = {
#include "assets/textures/icon_item_fra_static/gPauseToMapFRATex.ia8.inc.c"
};
-u64 gPauseToQuestStatusFRATex[TEX_LEN(u64, gPauseToQuestStatusFRATex_WIDTH, gPauseToQuestStatusFRATex_HEIGHT, 8)] = {
+u64 gPauseToQuestStatusFRATex[TEX_LEN(u64, TO_PAGE_LABEL_TEX_WIDTH, TO_PAGE_LABEL_TEX_HEIGHT, 8)] = {
#include "assets/textures/icon_item_fra_static/gPauseToQuestStatusFRATex.ia8.inc.c"
};
-u64 gPauseToEquipmentFRATex[TEX_LEN(u64, gPauseToEquipmentFRATex_WIDTH, gPauseToEquipmentFRATex_HEIGHT, 8)] = {
+u64 gPauseToEquipmentFRATex[TEX_LEN(u64, TO_PAGE_LABEL_TEX_WIDTH, TO_PAGE_LABEL_TEX_HEIGHT, 8)] = {
#include "assets/textures/icon_item_fra_static/gPauseToEquipmentFRATex.ia8.inc.c"
};
diff --git a/assets/textures/icon_item_fra_static/icon_item_fra_static.h b/assets/textures/icon_item_fra_static/icon_item_fra_static.h
index 2a7152a416..7689e75fed 100644
--- a/assets/textures/icon_item_fra_static/icon_item_fra_static.h
+++ b/assets/textures/icon_item_fra_static/icon_item_fra_static.h
@@ -44,18 +44,12 @@ extern u64 gPauseToDecideFRATex[TEX_LEN(u64, gPauseToDecideFRATex_WIDTH, gPauseT
#define gPauseToPlayMelodyFRATex_WIDTH 112
#define gPauseToPlayMelodyFRATex_HEIGHT 16
extern u64 gPauseToPlayMelodyFRATex[TEX_LEN(u64, gPauseToPlayMelodyFRATex_WIDTH, gPauseToPlayMelodyFRATex_HEIGHT, 8)];
-#define gPauseToSelectItemFRATex_WIDTH 128
-#define gPauseToSelectItemFRATex_HEIGHT 16
-extern u64 gPauseToSelectItemFRATex[TEX_LEN(u64, gPauseToSelectItemFRATex_WIDTH, gPauseToSelectItemFRATex_HEIGHT, 8)];
-#define gPauseToMapFRATex_WIDTH 128
-#define gPauseToMapFRATex_HEIGHT 16
-extern u64 gPauseToMapFRATex[TEX_LEN(u64, gPauseToMapFRATex_WIDTH, gPauseToMapFRATex_HEIGHT, 8)];
-#define gPauseToQuestStatusFRATex_WIDTH 128
-#define gPauseToQuestStatusFRATex_HEIGHT 16
-extern u64 gPauseToQuestStatusFRATex[TEX_LEN(u64, gPauseToQuestStatusFRATex_WIDTH, gPauseToQuestStatusFRATex_HEIGHT, 8)];
-#define gPauseToEquipmentFRATex_WIDTH 128
-#define gPauseToEquipmentFRATex_HEIGHT 16
-extern u64 gPauseToEquipmentFRATex[TEX_LEN(u64, gPauseToEquipmentFRATex_WIDTH, gPauseToEquipmentFRATex_HEIGHT, 8)];
+
+extern u64 gPauseToSelectItemFRATex[TEX_LEN(u64, TO_PAGE_LABEL_TEX_WIDTH, TO_PAGE_LABEL_TEX_HEIGHT, 8)];
+extern u64 gPauseToMapFRATex[TEX_LEN(u64, TO_PAGE_LABEL_TEX_WIDTH, TO_PAGE_LABEL_TEX_HEIGHT, 8)];
+extern u64 gPauseToQuestStatusFRATex[TEX_LEN(u64, TO_PAGE_LABEL_TEX_WIDTH, TO_PAGE_LABEL_TEX_HEIGHT, 8)];
+extern u64 gPauseToEquipmentFRATex[TEX_LEN(u64, TO_PAGE_LABEL_TEX_WIDTH, TO_PAGE_LABEL_TEX_HEIGHT, 8)];
+
#define gPauseSavePromptFRATex_WIDTH 152
#define gPauseSavePromptFRATex_HEIGHT 16
extern u64 gPauseSavePromptFRATex[TEX_LEN(u64, gPauseSavePromptFRATex_WIDTH, gPauseSavePromptFRATex_HEIGHT, 8)];
diff --git a/assets/textures/icon_item_ger_static/icon_item_ger_static.c b/assets/textures/icon_item_ger_static/icon_item_ger_static.c
index 379f7f6816..e8523db713 100644
--- a/assets/textures/icon_item_ger_static/icon_item_ger_static.c
+++ b/assets/textures/icon_item_ger_static/icon_item_ger_static.c
@@ -52,19 +52,19 @@ u64 gPauseToPlayMelodyGERTex[TEX_LEN(u64, gPauseToPlayMelodyGERTex_WIDTH, gPause
#include "assets/textures/icon_item_ger_static/gPauseToPlayMelodyGERTex.ia8.inc.c"
};
-u64 gPauseToSelectItemGERTex[TEX_LEN(u64, gPauseToSelectItemGERTex_WIDTH, gPauseToSelectItemGERTex_HEIGHT, 8)] = {
+u64 gPauseToSelectItemGERTex[TEX_LEN(u64, TO_PAGE_LABEL_TEX_WIDTH, TO_PAGE_LABEL_TEX_HEIGHT, 8)] = {
#include "assets/textures/icon_item_ger_static/gPauseToSelectItemGERTex.ia8.inc.c"
};
-u64 gPauseToMapGERTex[TEX_LEN(u64, gPauseToMapGERTex_WIDTH, gPauseToMapGERTex_HEIGHT, 8)] = {
+u64 gPauseToMapGERTex[TEX_LEN(u64, TO_PAGE_LABEL_TEX_WIDTH, TO_PAGE_LABEL_TEX_HEIGHT, 8)] = {
#include "assets/textures/icon_item_ger_static/gPauseToMapGERTex.ia8.inc.c"
};
-u64 gPauseToQuestStatusGERTex[TEX_LEN(u64, gPauseToQuestStatusGERTex_WIDTH, gPauseToQuestStatusGERTex_HEIGHT, 8)] = {
+u64 gPauseToQuestStatusGERTex[TEX_LEN(u64, TO_PAGE_LABEL_TEX_WIDTH, TO_PAGE_LABEL_TEX_HEIGHT, 8)] = {
#include "assets/textures/icon_item_ger_static/gPauseToQuestStatusGERTex.ia8.inc.c"
};
-u64 gPauseToEquipmentGERTex[TEX_LEN(u64, gPauseToEquipmentGERTex_WIDTH, gPauseToEquipmentGERTex_HEIGHT, 8)] = {
+u64 gPauseToEquipmentGERTex[TEX_LEN(u64, TO_PAGE_LABEL_TEX_WIDTH, TO_PAGE_LABEL_TEX_HEIGHT, 8)] = {
#include "assets/textures/icon_item_ger_static/gPauseToEquipmentGERTex.ia8.inc.c"
};
diff --git a/assets/textures/icon_item_ger_static/icon_item_ger_static.h b/assets/textures/icon_item_ger_static/icon_item_ger_static.h
index bd69237b9a..30a8455717 100644
--- a/assets/textures/icon_item_ger_static/icon_item_ger_static.h
+++ b/assets/textures/icon_item_ger_static/icon_item_ger_static.h
@@ -44,18 +44,12 @@ extern u64 gPauseToDecideGERTex[TEX_LEN(u64, gPauseToDecideGERTex_WIDTH, gPauseT
#define gPauseToPlayMelodyGERTex_WIDTH 104
#define gPauseToPlayMelodyGERTex_HEIGHT 16
extern u64 gPauseToPlayMelodyGERTex[TEX_LEN(u64, gPauseToPlayMelodyGERTex_WIDTH, gPauseToPlayMelodyGERTex_HEIGHT, 8)];
-#define gPauseToSelectItemGERTex_WIDTH 128
-#define gPauseToSelectItemGERTex_HEIGHT 16
-extern u64 gPauseToSelectItemGERTex[TEX_LEN(u64, gPauseToSelectItemGERTex_WIDTH, gPauseToSelectItemGERTex_HEIGHT, 8)];
-#define gPauseToMapGERTex_WIDTH 128
-#define gPauseToMapGERTex_HEIGHT 16
-extern u64 gPauseToMapGERTex[TEX_LEN(u64, gPauseToMapGERTex_WIDTH, gPauseToMapGERTex_HEIGHT, 8)];
-#define gPauseToQuestStatusGERTex_WIDTH 128
-#define gPauseToQuestStatusGERTex_HEIGHT 16
-extern u64 gPauseToQuestStatusGERTex[TEX_LEN(u64, gPauseToQuestStatusGERTex_WIDTH, gPauseToQuestStatusGERTex_HEIGHT, 8)];
-#define gPauseToEquipmentGERTex_WIDTH 128
-#define gPauseToEquipmentGERTex_HEIGHT 16
-extern u64 gPauseToEquipmentGERTex[TEX_LEN(u64, gPauseToEquipmentGERTex_WIDTH, gPauseToEquipmentGERTex_HEIGHT, 8)];
+
+extern u64 gPauseToSelectItemGERTex[TEX_LEN(u64, TO_PAGE_LABEL_TEX_WIDTH, TO_PAGE_LABEL_TEX_HEIGHT, 8)];
+extern u64 gPauseToMapGERTex[TEX_LEN(u64, TO_PAGE_LABEL_TEX_WIDTH, TO_PAGE_LABEL_TEX_HEIGHT, 8)];
+extern u64 gPauseToQuestStatusGERTex[TEX_LEN(u64, TO_PAGE_LABEL_TEX_WIDTH, TO_PAGE_LABEL_TEX_HEIGHT, 8)];
+extern u64 gPauseToEquipmentGERTex[TEX_LEN(u64, TO_PAGE_LABEL_TEX_WIDTH, TO_PAGE_LABEL_TEX_HEIGHT, 8)];
+
#define gPauseSavePromptGERTex_WIDTH 152
#define gPauseSavePromptGERTex_HEIGHT 16
extern u64 gPauseSavePromptGERTex[TEX_LEN(u64, gPauseSavePromptGERTex_WIDTH, gPauseSavePromptGERTex_HEIGHT, 8)];
diff --git a/assets/textures/icon_item_jpn_static/icon_item_jpn_static.c b/assets/textures/icon_item_jpn_static/icon_item_jpn_static.c
index 92d56b0724..1418c209aa 100644
--- a/assets/textures/icon_item_jpn_static/icon_item_jpn_static.c
+++ b/assets/textures/icon_item_jpn_static/icon_item_jpn_static.c
@@ -52,19 +52,19 @@ u64 gPauseToPlayMelodyJPNTex[TEX_LEN(u64, gPauseToPlayMelodyJPNTex_WIDTH, gPause
#include "assets/textures/icon_item_jpn_static/gPauseToPlayMelodyJPNTex.ia8.inc.c"
};
-u64 gPauseToSelectItemJPNTex[TEX_LEN(u64, gPauseToSelectItemJPNTex_WIDTH, gPauseToSelectItemJPNTex_HEIGHT, 8)] = {
+u64 gPauseToSelectItemJPNTex[TEX_LEN(u64, TO_PAGE_LABEL_TEX_WIDTH, TO_PAGE_LABEL_TEX_HEIGHT, 8)] = {
#include "assets/textures/icon_item_jpn_static/gPauseToSelectItemJPNTex.ia8.inc.c"
};
-u64 gPauseToMapJPNTex[TEX_LEN(u64, gPauseToMapJPNTex_WIDTH, gPauseToMapJPNTex_HEIGHT, 8)] = {
+u64 gPauseToMapJPNTex[TEX_LEN(u64, TO_PAGE_LABEL_TEX_WIDTH, TO_PAGE_LABEL_TEX_HEIGHT, 8)] = {
#include "assets/textures/icon_item_jpn_static/gPauseToMapJPNTex.ia8.inc.c"
};
-u64 gPauseToQuestStatusJPNTex[TEX_LEN(u64, gPauseToQuestStatusJPNTex_WIDTH, gPauseToQuestStatusJPNTex_HEIGHT, 8)] = {
+u64 gPauseToQuestStatusJPNTex[TEX_LEN(u64, TO_PAGE_LABEL_TEX_WIDTH, TO_PAGE_LABEL_TEX_HEIGHT, 8)] = {
#include "assets/textures/icon_item_jpn_static/gPauseToQuestStatusJPNTex.ia8.inc.c"
};
-u64 gPauseToEquipmentJPNTex[TEX_LEN(u64, gPauseToEquipmentJPNTex_WIDTH, gPauseToEquipmentJPNTex_HEIGHT, 8)] = {
+u64 gPauseToEquipmentJPNTex[TEX_LEN(u64, TO_PAGE_LABEL_TEX_WIDTH, TO_PAGE_LABEL_TEX_HEIGHT, 8)] = {
#include "assets/textures/icon_item_jpn_static/gPauseToEquipmentJPNTex.ia8.inc.c"
};
diff --git a/assets/textures/icon_item_jpn_static/icon_item_jpn_static.h b/assets/textures/icon_item_jpn_static/icon_item_jpn_static.h
index bd21c0a74e..d850c943c0 100644
--- a/assets/textures/icon_item_jpn_static/icon_item_jpn_static.h
+++ b/assets/textures/icon_item_jpn_static/icon_item_jpn_static.h
@@ -44,18 +44,12 @@ extern u64 gPauseToDecideJPNTex[TEX_LEN(u64, gPauseToDecideJPNTex_WIDTH, gPauseT
#define gPauseToPlayMelodyJPNTex_WIDTH 96
#define gPauseToPlayMelodyJPNTex_HEIGHT 16
extern u64 gPauseToPlayMelodyJPNTex[TEX_LEN(u64, gPauseToPlayMelodyJPNTex_WIDTH, gPauseToPlayMelodyJPNTex_HEIGHT, 8)];
-#define gPauseToSelectItemJPNTex_WIDTH 128
-#define gPauseToSelectItemJPNTex_HEIGHT 16
-extern u64 gPauseToSelectItemJPNTex[TEX_LEN(u64, gPauseToSelectItemJPNTex_WIDTH, gPauseToSelectItemJPNTex_HEIGHT, 8)];
-#define gPauseToMapJPNTex_WIDTH 128
-#define gPauseToMapJPNTex_HEIGHT 16
-extern u64 gPauseToMapJPNTex[TEX_LEN(u64, gPauseToMapJPNTex_WIDTH, gPauseToMapJPNTex_HEIGHT, 8)];
-#define gPauseToQuestStatusJPNTex_WIDTH 128
-#define gPauseToQuestStatusJPNTex_HEIGHT 16
-extern u64 gPauseToQuestStatusJPNTex[TEX_LEN(u64, gPauseToQuestStatusJPNTex_WIDTH, gPauseToQuestStatusJPNTex_HEIGHT, 8)];
-#define gPauseToEquipmentJPNTex_WIDTH 128
-#define gPauseToEquipmentJPNTex_HEIGHT 16
-extern u64 gPauseToEquipmentJPNTex[TEX_LEN(u64, gPauseToEquipmentJPNTex_WIDTH, gPauseToEquipmentJPNTex_HEIGHT, 8)];
+
+extern u64 gPauseToSelectItemJPNTex[TEX_LEN(u64, TO_PAGE_LABEL_TEX_WIDTH, TO_PAGE_LABEL_TEX_HEIGHT, 8)];
+extern u64 gPauseToMapJPNTex[TEX_LEN(u64, TO_PAGE_LABEL_TEX_WIDTH, TO_PAGE_LABEL_TEX_HEIGHT, 8)];
+extern u64 gPauseToQuestStatusJPNTex[TEX_LEN(u64, TO_PAGE_LABEL_TEX_WIDTH, TO_PAGE_LABEL_TEX_HEIGHT, 8)];
+extern u64 gPauseToEquipmentJPNTex[TEX_LEN(u64, TO_PAGE_LABEL_TEX_WIDTH, TO_PAGE_LABEL_TEX_HEIGHT, 8)];
+
#define gPauseSavePromptJPNTex_WIDTH 152
#define gPauseSavePromptJPNTex_HEIGHT 16
extern u64 gPauseSavePromptJPNTex[TEX_LEN(u64, gPauseSavePromptJPNTex_WIDTH, gPauseSavePromptJPNTex_HEIGHT, 8)];
diff --git a/assets/textures/icon_item_nes_static/icon_item_nes_static.c b/assets/textures/icon_item_nes_static/icon_item_nes_static.c
index 5e84c69162..aeb95065c5 100644
--- a/assets/textures/icon_item_nes_static/icon_item_nes_static.c
+++ b/assets/textures/icon_item_nes_static/icon_item_nes_static.c
@@ -52,19 +52,19 @@ u64 gPauseToPlayMelodyENGTex[TEX_LEN(u64, gPauseToPlayMelodyENGTex_WIDTH, gPause
#include "assets/textures/icon_item_nes_static/gPauseToPlayMelodyENGTex.ia8.inc.c"
};
-u64 gPauseToSelectItemENGTex[TEX_LEN(u64, gPauseToSelectItemENGTex_WIDTH, gPauseToSelectItemENGTex_HEIGHT, 8)] = {
+u64 gPauseToSelectItemENGTex[TEX_LEN(u64, TO_PAGE_LABEL_TEX_WIDTH, TO_PAGE_LABEL_TEX_HEIGHT, 8)] = {
#include "assets/textures/icon_item_nes_static/gPauseToSelectItemENGTex.ia8.inc.c"
};
-u64 gPauseToMapENGTex[TEX_LEN(u64, gPauseToMapENGTex_WIDTH, gPauseToMapENGTex_HEIGHT, 8)] = {
+u64 gPauseToMapENGTex[TEX_LEN(u64, TO_PAGE_LABEL_TEX_WIDTH, TO_PAGE_LABEL_TEX_HEIGHT, 8)] = {
#include "assets/textures/icon_item_nes_static/gPauseToMapENGTex.ia8.inc.c"
};
-u64 gPauseToQuestStatusENGTex[TEX_LEN(u64, gPauseToQuestStatusENGTex_WIDTH, gPauseToQuestStatusENGTex_HEIGHT, 8)] = {
+u64 gPauseToQuestStatusENGTex[TEX_LEN(u64, TO_PAGE_LABEL_TEX_WIDTH, TO_PAGE_LABEL_TEX_HEIGHT, 8)] = {
#include "assets/textures/icon_item_nes_static/gPauseToQuestStatusENGTex.ia8.inc.c"
};
-u64 gPauseToEquipmentENGTex[TEX_LEN(u64, gPauseToEquipmentENGTex_WIDTH, gPauseToEquipmentENGTex_HEIGHT, 8)] = {
+u64 gPauseToEquipmentENGTex[TEX_LEN(u64, TO_PAGE_LABEL_TEX_WIDTH, TO_PAGE_LABEL_TEX_HEIGHT, 8)] = {
#include "assets/textures/icon_item_nes_static/gPauseToEquipmentENGTex.ia8.inc.c"
};
diff --git a/assets/textures/icon_item_nes_static/icon_item_nes_static.h b/assets/textures/icon_item_nes_static/icon_item_nes_static.h
index 007bebf3bc..7c732e0973 100644
--- a/assets/textures/icon_item_nes_static/icon_item_nes_static.h
+++ b/assets/textures/icon_item_nes_static/icon_item_nes_static.h
@@ -44,18 +44,12 @@ extern u64 gPauseToDecideENGTex[TEX_LEN(u64, gPauseToDecideENGTex_WIDTH, gPauseT
#define gPauseToPlayMelodyENGTex_WIDTH 80
#define gPauseToPlayMelodyENGTex_HEIGHT 16
extern u64 gPauseToPlayMelodyENGTex[TEX_LEN(u64, gPauseToPlayMelodyENGTex_WIDTH, gPauseToPlayMelodyENGTex_HEIGHT, 8)];
-#define gPauseToSelectItemENGTex_WIDTH 128
-#define gPauseToSelectItemENGTex_HEIGHT 16
-extern u64 gPauseToSelectItemENGTex[TEX_LEN(u64, gPauseToSelectItemENGTex_WIDTH, gPauseToSelectItemENGTex_HEIGHT, 8)];
-#define gPauseToMapENGTex_WIDTH 128
-#define gPauseToMapENGTex_HEIGHT 16
-extern u64 gPauseToMapENGTex[TEX_LEN(u64, gPauseToMapENGTex_WIDTH, gPauseToMapENGTex_HEIGHT, 8)];
-#define gPauseToQuestStatusENGTex_WIDTH 128
-#define gPauseToQuestStatusENGTex_HEIGHT 16
-extern u64 gPauseToQuestStatusENGTex[TEX_LEN(u64, gPauseToQuestStatusENGTex_WIDTH, gPauseToQuestStatusENGTex_HEIGHT, 8)];
-#define gPauseToEquipmentENGTex_WIDTH 128
-#define gPauseToEquipmentENGTex_HEIGHT 16
-extern u64 gPauseToEquipmentENGTex[TEX_LEN(u64, gPauseToEquipmentENGTex_WIDTH, gPauseToEquipmentENGTex_HEIGHT, 8)];
+
+extern u64 gPauseToSelectItemENGTex[TEX_LEN(u64, TO_PAGE_LABEL_TEX_WIDTH, TO_PAGE_LABEL_TEX_HEIGHT, 8)];
+extern u64 gPauseToMapENGTex[TEX_LEN(u64, TO_PAGE_LABEL_TEX_WIDTH, TO_PAGE_LABEL_TEX_HEIGHT, 8)];
+extern u64 gPauseToQuestStatusENGTex[TEX_LEN(u64, TO_PAGE_LABEL_TEX_WIDTH, TO_PAGE_LABEL_TEX_HEIGHT, 8)];
+extern u64 gPauseToEquipmentENGTex[TEX_LEN(u64, TO_PAGE_LABEL_TEX_WIDTH, TO_PAGE_LABEL_TEX_HEIGHT, 8)];
+
#define gPauseSavePromptENGTex_WIDTH 152
#define gPauseSavePromptENGTex_HEIGHT 16
extern u64 gPauseSavePromptENGTex[TEX_LEN(u64, gPauseSavePromptENGTex_WIDTH, gPauseSavePromptENGTex_HEIGHT, 8)];
diff --git a/assets/textures/icon_item_static/icon_item_static.c b/assets/textures/icon_item_static/icon_item_static.c
index 2adb277ebd..bec39bde37 100644
--- a/assets/textures/icon_item_static/icon_item_static.c
+++ b/assets/textures/icon_item_static/icon_item_static.c
@@ -692,44 +692,41 @@ u64 gPauseGameOver10Tex[TEX_LEN(u64, PAGE_BG_QUAD_TEX_WIDTH, PAGE_BG_QUAD_TEX_HE
// Various textures and DLs
-#define gABtnSymbolTex_WIDTH 24
-#define gABtnSymbolTex_HEIGHT 16
+#define gABtnSymbolTex_HEIGHT UI_OVERLAY_QUAD_INFO_ICON_HEIGHT
u64 gABtnSymbolTex[TEX_LEN(u64, gABtnSymbolTex_WIDTH, gABtnSymbolTex_HEIGHT, 8)] = {
#include "assets/textures/icon_item_static/gABtnSymbolTex.ia8.inc.c"
};
-#define gBBtnSymbolTex_WIDTH 24
-#define gBBtnSymbolTex_HEIGHT 16
+#define gBBtnSymbolTex_HEIGHT UI_OVERLAY_QUAD_INFO_ICON_HEIGHT
u64 gBBtnSymbolTex[TEX_LEN(u64, gBBtnSymbolTex_WIDTH, gBBtnSymbolTex_HEIGHT, 8)] = {
#include "assets/textures/icon_item_static/gBBtnSymbolTex.ia8.inc.c"
};
-#define gCBtnSymbolsTex_WIDTH 48
-#define gCBtnSymbolsTex_HEIGHT 16
+#define gCBtnSymbolsTex_HEIGHT UI_OVERLAY_QUAD_INFO_ICON_HEIGHT
u64 gCBtnSymbolsTex[TEX_LEN(u64, gCBtnSymbolsTex_WIDTH, gCBtnSymbolsTex_HEIGHT, 8)] = {
#include "assets/textures/icon_item_static/gCBtnSymbolsTex.ia8.inc.c"
};
-#define gNamePanelLeftTex_WIDTH 72
-#define gNamePanelLeftTex_HEIGHT 24
-u64 gNamePanelLeftTex[TEX_LEN(u64, gNamePanelLeftTex_WIDTH, gNamePanelLeftTex_HEIGHT, 8)] = {
-#include "assets/textures/icon_item_static/gNamePanelLeftTex.ia8.inc.c"
+#define gInfoPanelBgLeftTex_WIDTH 72
+#define gInfoPanelBgLeftTex_HEIGHT 24
+u64 gInfoPanelBgLeftTex[TEX_LEN(u64, gInfoPanelBgLeftTex_WIDTH, gInfoPanelBgLeftTex_HEIGHT, 8)] = {
+#include "assets/textures/icon_item_static/gInfoPanelBgLeftTex.ia8.inc.c"
};
-#define gNamePanelRightTex_WIDTH 72
-#define gNamePanelRightTex_HEIGHT 24
-u64 gNamePanelRightTex[TEX_LEN(u64, gNamePanelRightTex_WIDTH, gNamePanelRightTex_HEIGHT, 8)] = {
-#include "assets/textures/icon_item_static/gNamePanelRightTex.ia8.inc.c"
+#define gInfoPanelBgRightTex_WIDTH 72
+#define gInfoPanelBgRightTex_HEIGHT 24
+u64 gInfoPanelBgRightTex[TEX_LEN(u64, gInfoPanelBgRightTex_WIDTH, gInfoPanelBgRightTex_HEIGHT, 8)] = {
+#include "assets/textures/icon_item_static/gInfoPanelBgRightTex.ia8.inc.c"
};
-#define gLButtonTex_WIDTH 24
-#define gLButtonTex_HEIGHT 32
+#define gLButtonTex_WIDTH UI_OVERLAY_QUAD_BUTTON_LR_TEX_WIDTH
+#define gLButtonTex_HEIGHT UI_OVERLAY_QUAD_BUTTON_LR_TEX_HEIGHT
u64 gLButtonTex[TEX_LEN(u64, gLButtonTex_WIDTH, gLButtonTex_HEIGHT, 8)] = {
#include "assets/textures/icon_item_static/gLButtonTex.ia8.inc.c"
};
-#define gRButtonTex_WIDTH 24
-#define gRButtonTex_HEIGHT 32
+#define gRButtonTex_WIDTH UI_OVERLAY_QUAD_BUTTON_LR_TEX_WIDTH
+#define gRButtonTex_HEIGHT UI_OVERLAY_QUAD_BUTTON_LR_TEX_HEIGHT
u64 gRButtonTex[TEX_LEN(u64, gRButtonTex_WIDTH, gRButtonTex_HEIGHT, 8)] = {
#include "assets/textures/icon_item_static/gRButtonTex.ia8.inc.c"
};
@@ -748,8 +745,8 @@ u64 gMagicArrowEquipEffectTex[TEX_LEN(u64, gMagicArrowEquipEffectTex_WIDTH, gMag
#include "assets/textures/icon_item_static/gMagicArrowEquipEffectTex.ia8.inc.c"
};
-Gfx gItemNamePanelDL[18] = {
-#include "assets/textures/icon_item_static/gItemNamePanelDL.inc.c"
+Gfx gInfoPanelBgDL[18] = {
+#include "assets/textures/icon_item_static/gInfoPanelBgDL.inc.c"
};
Gfx gLButtonIconDL[10] = {
diff --git a/assets/textures/icon_item_static/icon_item_static.h b/assets/textures/icon_item_static/icon_item_static.h
index e8aff38236..176ea71e84 100644
--- a/assets/textures/icon_item_static/icon_item_static.h
+++ b/assets/textures/icon_item_static/icon_item_static.h
@@ -184,6 +184,10 @@ extern u64 gPauseSave14Tex[TEX_LEN(u64, PAGE_BG_QUAD_TEX_WIDTH, PAGE_BG_QUAD_TEX
extern u64 gPauseSave24Tex[TEX_LEN(u64, PAGE_BG_QUAD_TEX_WIDTH, PAGE_BG_QUAD_TEX_HEIGHT, 8)];
extern u64 gPauseGameOver10Tex[TEX_LEN(u64, PAGE_BG_QUAD_TEX_WIDTH, PAGE_BG_QUAD_TEX_HEIGHT, 8)];
+#define gABtnSymbolTex_WIDTH 24
+#define gBBtnSymbolTex_WIDTH 24
+#define gCBtnSymbolsTex_WIDTH 48
+
#define gSongNoteTex_WIDTH 16
#define gSongNoteTex_HEIGHT 24
extern u64 gSongNoteTex[TEX_LEN(u64, gSongNoteTex_WIDTH, gSongNoteTex_HEIGHT, 8)];
@@ -193,7 +197,7 @@ extern u64 gSongNoteTex[TEX_LEN(u64, gSongNoteTex_WIDTH, gSongNoteTex_HEIGHT, 8)
#define gMagicArrowEquipEffectTex_HEIGHT gMagicArrowEquipEffectTex_SIZE
extern u64 gMagicArrowEquipEffectTex[TEX_LEN(u64, gMagicArrowEquipEffectTex_WIDTH, gMagicArrowEquipEffectTex_HEIGHT, 8)];
-extern Gfx gItemNamePanelDL[18];
+extern Gfx gInfoPanelBgDL[18];
extern Gfx gLButtonIconDL[10];
extern Gfx gRButtonIconDL[10];
extern Gfx gCButtonIconsDL[11];
diff --git a/assets/xml/objects/object_anubice.xml b/assets/xml/objects/object_anubice.xml
index 492a8e4235..903804f74a 100644
--- a/assets/xml/objects/object_anubice.xml
+++ b/assets/xml/objects/object_anubice.xml
@@ -1,6 +1,6 @@
-
+
@@ -69,20 +69,20 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_bl.xml b/assets/xml/objects/object_bl.xml
index a987840a31..3ae9c89dc0 100644
--- a/assets/xml/objects/object_bl.xml
+++ b/assets/xml/objects/object_bl.xml
@@ -34,10 +34,10 @@
-
-
-
-
-
+
+
+
+
+
diff --git a/assets/xml/objects/object_bw.xml b/assets/xml/objects/object_bw.xml
index 27a84f18f2..e7693b47aa 100644
--- a/assets/xml/objects/object_bw.xml
+++ b/assets/xml/objects/object_bw.xml
@@ -33,20 +33,20 @@
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
-
+
diff --git a/assets/xml/objects/object_fu.xml b/assets/xml/objects/object_fu.xml
index 1bc18759a5..4a5bb6c74d 100644
--- a/assets/xml/objects/object_fu.xml
+++ b/assets/xml/objects/object_fu.xml
@@ -35,22 +35,22 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_ge1.xml b/assets/xml/objects/object_ge1.xml
index bbb5d82a0d..0aaaf59b7b 100644
--- a/assets/xml/objects/object_ge1.xml
+++ b/assets/xml/objects/object_ge1.xml
@@ -2,24 +2,24 @@
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_geldb.xml b/assets/xml/objects/object_geldb.xml
index f80ad410a6..1488db00b0 100644
--- a/assets/xml/objects/object_geldb.xml
+++ b/assets/xml/objects/object_geldb.xml
@@ -1,7 +1,7 @@
-
+
@@ -120,28 +120,28 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_gi_boots_2.xml b/assets/xml/objects/object_gi_boots_2.xml
index ae5d148421..539422c518 100644
--- a/assets/xml/objects/object_gi_boots_2.xml
+++ b/assets/xml/objects/object_gi_boots_2.xml
@@ -1,7 +1,7 @@
-
+
diff --git a/assets/xml/objects/object_gi_butterfly.xml b/assets/xml/objects/object_gi_butterfly.xml
index 65eed5b0e8..55ad075ff6 100644
--- a/assets/xml/objects/object_gi_butterfly.xml
+++ b/assets/xml/objects/object_gi_butterfly.xml
@@ -1,7 +1,7 @@
-
+
diff --git a/assets/xml/objects/object_gi_clothes.xml b/assets/xml/objects/object_gi_clothes.xml
index be9853eb8f..5108c274b9 100644
--- a/assets/xml/objects/object_gi_clothes.xml
+++ b/assets/xml/objects/object_gi_clothes.xml
@@ -1,6 +1,6 @@
-
+
diff --git a/assets/xml/objects/object_gi_dekupouch.xml b/assets/xml/objects/object_gi_dekupouch.xml
index d717edb8ba..4c2b6f6a11 100644
--- a/assets/xml/objects/object_gi_dekupouch.xml
+++ b/assets/xml/objects/object_gi_dekupouch.xml
@@ -2,7 +2,7 @@
-
+
diff --git a/assets/xml/objects/object_gi_fire.xml b/assets/xml/objects/object_gi_fire.xml
index 0211f60187..c754877a8e 100644
--- a/assets/xml/objects/object_gi_fire.xml
+++ b/assets/xml/objects/object_gi_fire.xml
@@ -1,8 +1,8 @@
-
-
+
+
diff --git a/assets/xml/objects/object_gi_frog.xml b/assets/xml/objects/object_gi_frog.xml
index 53384429b4..8591106120 100644
--- a/assets/xml/objects/object_gi_frog.xml
+++ b/assets/xml/objects/object_gi_frog.xml
@@ -1,7 +1,7 @@
-
+
diff --git a/assets/xml/objects/object_gi_gerudo.xml b/assets/xml/objects/object_gi_gerudo.xml
index 34986a295e..a767dab10e 100644
--- a/assets/xml/objects/object_gi_gerudo.xml
+++ b/assets/xml/objects/object_gi_gerudo.xml
@@ -1,7 +1,7 @@
-
+
diff --git a/assets/xml/objects/object_gi_gerudomask.xml b/assets/xml/objects/object_gi_gerudomask.xml
index 94576b0406..4a98e810f9 100644
--- a/assets/xml/objects/object_gi_gerudomask.xml
+++ b/assets/xml/objects/object_gi_gerudomask.xml
@@ -1,11 +1,11 @@
-
+
-
-
-
-
+
+
+
+
diff --git a/assets/xml/objects/object_gi_ghost.xml b/assets/xml/objects/object_gi_ghost.xml
index 5dbf39480f..1c98056d85 100644
--- a/assets/xml/objects/object_gi_ghost.xml
+++ b/assets/xml/objects/object_gi_ghost.xml
@@ -1,8 +1,8 @@
-
-
+
+
diff --git a/assets/xml/objects/object_gi_gloves.xml b/assets/xml/objects/object_gi_gloves.xml
index 85ad6ddeff..59d07b16d7 100644
--- a/assets/xml/objects/object_gi_gloves.xml
+++ b/assets/xml/objects/object_gi_gloves.xml
@@ -1,7 +1,7 @@
-
+
diff --git a/assets/xml/objects/object_gi_golonmask.xml b/assets/xml/objects/object_gi_golonmask.xml
index 68dbddb365..45c2ba24cd 100644
--- a/assets/xml/objects/object_gi_golonmask.xml
+++ b/assets/xml/objects/object_gi_golonmask.xml
@@ -1,11 +1,11 @@
-
+
-
-
-
-
+
+
+
+
diff --git a/assets/xml/objects/object_gi_hoverboots.xml b/assets/xml/objects/object_gi_hoverboots.xml
index fed584e742..96a4769ffc 100644
--- a/assets/xml/objects/object_gi_hoverboots.xml
+++ b/assets/xml/objects/object_gi_hoverboots.xml
@@ -1,7 +1,7 @@
-
+
diff --git a/assets/xml/objects/object_gi_ki_tan_mask.xml b/assets/xml/objects/object_gi_ki_tan_mask.xml
index b888acfe73..90a2cfca4d 100644
--- a/assets/xml/objects/object_gi_ki_tan_mask.xml
+++ b/assets/xml/objects/object_gi_ki_tan_mask.xml
@@ -1,7 +1,7 @@
-
+
diff --git a/assets/xml/objects/object_gi_letter.xml b/assets/xml/objects/object_gi_letter.xml
index 098b8cca79..0034b0466c 100644
--- a/assets/xml/objects/object_gi_letter.xml
+++ b/assets/xml/objects/object_gi_letter.xml
@@ -1,7 +1,7 @@
-
-
+
+
diff --git a/assets/xml/objects/object_gi_liquid.xml b/assets/xml/objects/object_gi_liquid.xml
index 133d8ce902..c40e8110db 100644
--- a/assets/xml/objects/object_gi_liquid.xml
+++ b/assets/xml/objects/object_gi_liquid.xml
@@ -1,9 +1,9 @@
-
-
-
+
+
+
diff --git a/assets/xml/objects/object_gi_milk.xml b/assets/xml/objects/object_gi_milk.xml
index cc72cec9d1..5fedddbe15 100644
--- a/assets/xml/objects/object_gi_milk.xml
+++ b/assets/xml/objects/object_gi_milk.xml
@@ -1,7 +1,7 @@
-
+
diff --git a/assets/xml/objects/object_gi_niwatori.xml b/assets/xml/objects/object_gi_niwatori.xml
index edf67f88d8..837ba16628 100644
--- a/assets/xml/objects/object_gi_niwatori.xml
+++ b/assets/xml/objects/object_gi_niwatori.xml
@@ -1,8 +1,8 @@
-
-
+
+
diff --git a/assets/xml/objects/object_gi_ocarina.xml b/assets/xml/objects/object_gi_ocarina.xml
index dafcb92424..057b6bf5e1 100644
--- a/assets/xml/objects/object_gi_ocarina.xml
+++ b/assets/xml/objects/object_gi_ocarina.xml
@@ -1,7 +1,7 @@
-
+
diff --git a/assets/xml/objects/object_gi_ocarina_0.xml b/assets/xml/objects/object_gi_ocarina_0.xml
index e43bb3a87c..a8104984be 100644
--- a/assets/xml/objects/object_gi_ocarina_0.xml
+++ b/assets/xml/objects/object_gi_ocarina_0.xml
@@ -1,7 +1,7 @@
-
+
diff --git a/assets/xml/objects/object_gi_prescription.xml b/assets/xml/objects/object_gi_prescription.xml
index 1b4e54ec5d..b83d3dfce2 100644
--- a/assets/xml/objects/object_gi_prescription.xml
+++ b/assets/xml/objects/object_gi_prescription.xml
@@ -1,7 +1,7 @@
-
+
diff --git a/assets/xml/objects/object_gi_rabit_mask.xml b/assets/xml/objects/object_gi_rabit_mask.xml
index 65b6cdd4bc..177d640692 100644
--- a/assets/xml/objects/object_gi_rabit_mask.xml
+++ b/assets/xml/objects/object_gi_rabit_mask.xml
@@ -1,7 +1,7 @@
-
+
diff --git a/assets/xml/objects/object_gi_shield_3.xml b/assets/xml/objects/object_gi_shield_3.xml
index 3550bd0d89..f1860d200a 100644
--- a/assets/xml/objects/object_gi_shield_3.xml
+++ b/assets/xml/objects/object_gi_shield_3.xml
@@ -1,8 +1,8 @@
-
-
+
+
diff --git a/assets/xml/objects/object_gi_soldout.xml b/assets/xml/objects/object_gi_soldout.xml
index ba45784761..be9398e25c 100644
--- a/assets/xml/objects/object_gi_soldout.xml
+++ b/assets/xml/objects/object_gi_soldout.xml
@@ -1,6 +1,6 @@
-
+
diff --git a/assets/xml/objects/object_gi_soul.xml b/assets/xml/objects/object_gi_soul.xml
index 519226270d..f991bf131c 100644
--- a/assets/xml/objects/object_gi_soul.xml
+++ b/assets/xml/objects/object_gi_soul.xml
@@ -1,7 +1,7 @@
-
+
diff --git a/assets/xml/objects/object_gi_ticketstone.xml b/assets/xml/objects/object_gi_ticketstone.xml
index ce756e3abc..238081eaa3 100644
--- a/assets/xml/objects/object_gi_ticketstone.xml
+++ b/assets/xml/objects/object_gi_ticketstone.xml
@@ -1,8 +1,8 @@
-
-
+
+
diff --git a/assets/xml/objects/object_gi_truth_mask.xml b/assets/xml/objects/object_gi_truth_mask.xml
index 32c550560c..2a8608d79b 100644
--- a/assets/xml/objects/object_gi_truth_mask.xml
+++ b/assets/xml/objects/object_gi_truth_mask.xml
@@ -1,8 +1,8 @@
-
-
+
+
diff --git a/assets/xml/objects/object_gi_zoramask.xml b/assets/xml/objects/object_gi_zoramask.xml
index 0788f67f0d..71b29f454b 100644
--- a/assets/xml/objects/object_gi_zoramask.xml
+++ b/assets/xml/objects/object_gi_zoramask.xml
@@ -1,11 +1,11 @@
-
+
-
-
+
+
diff --git a/assets/xml/objects/object_gndd.xml b/assets/xml/objects/object_gndd.xml
index d284893579..8f119f05ef 100644
--- a/assets/xml/objects/object_gndd.xml
+++ b/assets/xml/objects/object_gndd.xml
@@ -145,31 +145,31 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
diff --git a/assets/xml/objects/object_hata.xml b/assets/xml/objects/object_hata.xml
index 98887b030d..7a8beff3a4 100644
--- a/assets/xml/objects/object_hata.xml
+++ b/assets/xml/objects/object_hata.xml
@@ -7,29 +7,29 @@
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_im.xml b/assets/xml/objects/object_im.xml
index c6ce6b6890..546f38a9a3 100644
--- a/assets/xml/objects/object_im.xml
+++ b/assets/xml/objects/object_im.xml
@@ -107,23 +107,23 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_in.xml b/assets/xml/objects/object_in.xml
index 4530adc370..84bc84804b 100644
--- a/assets/xml/objects/object_in.xml
+++ b/assets/xml/objects/object_in.xml
@@ -216,27 +216,27 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
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/objects/object_ma2.xml b/assets/xml/objects/object_ma2.xml
index 960e9485bf..b6492afd84 100644
--- a/assets/xml/objects/object_ma2.xml
+++ b/assets/xml/objects/object_ma2.xml
@@ -99,25 +99,25 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_md.xml b/assets/xml/objects/object_md.xml
index ea1fca3cda..db5bed45bb 100644
--- a/assets/xml/objects/object_md.xml
+++ b/assets/xml/objects/object_md.xml
@@ -1,25 +1,25 @@
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_nb.xml b/assets/xml/objects/object_nb.xml
index cf2dba8da4..9b909a89eb 100644
--- a/assets/xml/objects/object_nb.xml
+++ b/assets/xml/objects/object_nb.xml
@@ -2,27 +2,27 @@
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_sk2.xml b/assets/xml/objects/object_sk2.xml
index 87e7a37831..9ee3768863 100644
--- a/assets/xml/objects/object_sk2.xml
+++ b/assets/xml/objects/object_sk2.xml
@@ -116,67 +116,67 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_ta.xml b/assets/xml/objects/object_ta.xml
index d73e28972a..5ab3863b7f 100644
--- a/assets/xml/objects/object_ta.xml
+++ b/assets/xml/objects/object_ta.xml
@@ -1,22 +1,22 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/xml/objects/object_vali.xml b/assets/xml/objects/object_vali.xml
index 5e511a1494..240a7e1371 100644
--- a/assets/xml/objects/object_vali.xml
+++ b/assets/xml/objects/object_vali.xml
@@ -71,34 +71,34 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
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/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_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/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 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
diff --git a/assets/xml/textures/icon_item_static.xml b/assets/xml/textures/icon_item_static.xml
index 2d67bfa108..4454a3316f 100644
--- a/assets/xml/textures/icon_item_static.xml
+++ b/assets/xml/textures/icon_item_static.xml
@@ -169,14 +169,14 @@
-
-
+
+
-
+
diff --git a/assets/xml/textures/icon_item_static_pal.xml b/assets/xml/textures/icon_item_static_pal.xml
index 161d4039a0..1869bb2ff1 100644
--- a/assets/xml/textures/icon_item_static_pal.xml
+++ b/assets/xml/textures/icon_item_static_pal.xml
@@ -171,14 +171,14 @@
-
-
+
+
-
+
diff --git a/docker-compose.yml b/docker-compose.yml
index bca75f474c..8f0a30b137 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -1,6 +1,7 @@
services:
oot:
build:
+ context: .
dockerfile: Dockerfile
volumes:
- ./:/oot
diff --git a/docs/BUILDING_DOCKER.md b/docs/BUILDING_DOCKER.md
index 98aed29c97..60f54c1686 100644
--- a/docs/BUILDING_DOCKER.md
+++ b/docs/BUILDING_DOCKER.md
@@ -4,6 +4,8 @@
To use Docker, you'll need either Docker Desktop or Docker Toolbox installed and setup based on your system.
+On Ubuntu, Docker and required tools can be installed with: `sudo apt install docker.io docker-compose docker-buildx`
+
You'll also need to prepare a local version of the project with a copied base ROM (see steps [2](../README.md#2-clone-the-repository) and [3](../README.md#3-prepare-a-base-rom) of the Linux instructions).
## 2. Create and start the Docker image build
diff --git a/include/camera.h b/include/camera.h
index 9d4783de06..c56e2b8f8f 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
@@ -328,7 +334,7 @@ typedef enum CameraDataType {
/* 0x13 */ CAM_DATA_AT_OFFSET_X,
/* 0x14 */ CAM_DATA_AT_OFFSET_Y,
/* 0x15 */ CAM_DATA_AT_OFFSET_Z,
- /* 0x16 */ CAM_DATA_UNK_22,
+ /* 0x16 */ CAM_DATA_INIT_TIMER,
/* 0x17 */ CAM_DATA_UNK_23,
/* 0x18 */ CAM_DATA_FOV_SCALE,
/* 0x19 */ CAM_DATA_YAW_SCALE,
@@ -840,26 +846,42 @@ typedef struct KeepOn3 {
{ interfaceField, CAM_DATA_INTERFACE_FIELD }
typedef struct KeepOn4ReadOnlyData {
- /* 0x00 */ f32 unk_00;
- /* 0x04 */ f32 unk_04;
- /* 0x08 */ f32 unk_08;
- /* 0x0C */ f32 unk_0C;
- /* 0x10 */ f32 unk_10;
- /* 0x14 */ f32 unk_14;
- /* 0x18 */ f32 unk_18;
+ /* 0x00 */ f32 yOffset;
+ /* 0x04 */ f32 eyeDist;
+ /* 0x08 */ f32 pitchTarget; // degrees
+ /* 0x0C */ f32 yawTarget; // degrees
+ /* 0x10 */ f32 atOffsetPlayerForwards; // distance to offset `at` by, in the player's forwards direction
+ /* 0x14 */ f32 unk_14; // scale for stepping yaw and pitch of "at to eye" to target
+ /* 0x18 */ f32 fovTarget;
/* 0x1C */ s16 interfaceField;
- /* 0x1E */ s16 unk_1E;
+ /* 0x1E */ s16 initTimer;
} 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;
- /* 0x08 */ f32 unk_08;
- /* 0x0C */ s16 unk_0C;
- /* 0x0E */ s16 unk_0E;
- /* 0x10 */ s16 unk_10;
- /* 0x12 */ s16 unk_12;
- /* 0x14 */ s16 unk_14;
+ /* 0x00 */ f32 atToEyeTargetStepYaw; // binang
+ /* 0x04 */ f32 atToEyeTargetStepPitch; // binang
+ /* 0x08 */ f32 unk_08; // set but unused
+ /* 0x0C */ s16 atToEyeTargetYaw;
+ /* 0x0E */ s16 atToEyeTargetPitch;
+ /* 0x10 */ s16 animTimer;
+ /* 0x12 */ s16 unk_12; // set but unused
+ /* 0x14 */ s16 itemType;
} KeepOn4ReadWriteData; // size = 0x18
typedef struct KeepOn4 {
@@ -876,16 +898,16 @@ typedef struct KeepOn4 {
#define KEEPON4_FLAG_6 (1 << 6)
#define KEEPON4_FLAG_7 (1 << 7)
-#define CAM_FUNCDATA_KEEP4(yOffset, eyeDist, pitchTarget, yawTarget, atOffsetZ, fov, interfaceField, yawUpdateRateTarget, unk_22) \
+#define CAM_FUNCDATA_KEEP4(yOffset, eyeDist, pitchTarget, yawTarget, atOffsetPlayerForwards, fov, interfaceField, unk_14, initTimer) \
{ yOffset, CAM_DATA_Y_OFFSET }, \
{ eyeDist, CAM_DATA_EYE_DIST }, \
{ pitchTarget, CAM_DATA_PITCH_TARGET }, \
{ yawTarget, CAM_DATA_YAW_TARGET }, \
- { atOffsetZ, CAM_DATA_AT_OFFSET_Z }, \
+ { atOffsetPlayerForwards, CAM_DATA_AT_OFFSET_Z }, \
{ fov, CAM_DATA_FOV }, \
{ interfaceField, CAM_DATA_INTERFACE_FIELD }, \
- { yawUpdateRateTarget, CAM_DATA_YAW_UPDATE_RATE_TARGET }, \
- { unk_22, CAM_DATA_UNK_22 }
+ { unk_14, CAM_DATA_YAW_UPDATE_RATE_TARGET }, \
+ { initTimer, CAM_DATA_INIT_TIMER }
typedef struct KeepOn0ReadOnlyData {
/* 0x00 */ f32 fovScale;
@@ -1441,7 +1463,7 @@ typedef struct Special5 {
{ yOffset, CAM_DATA_Y_OFFSET }, \
{ eyeDist, CAM_DATA_EYE_DIST }, \
{ eyeDistNext, CAM_DATA_EYE_DIST_NEXT }, \
- { unk_22, CAM_DATA_UNK_22 }, \
+ { unk_22, CAM_DATA_INIT_TIMER }, \
{ pitchTarget, CAM_DATA_PITCH_TARGET }, \
{ fov, CAM_DATA_FOV }, \
{ atLerpStepScale, CAM_DATA_AT_LERP_STEP_SCALE }, \
@@ -1455,7 +1477,7 @@ typedef struct Special5 {
{ pitchTarget, CAM_DATA_PITCH_TARGET }, \
{ fov, CAM_DATA_FOV }, \
{ atLerpStepScale, CAM_DATA_AT_LERP_STEP_SCALE }, \
- { unk_22, CAM_DATA_UNK_22 }, \
+ { unk_22, CAM_DATA_INIT_TIMER }, \
{ interfaceField, CAM_DATA_INTERFACE_FIELD }
typedef struct Special7ReadWriteData {
@@ -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/include/collision_check.h b/include/collision_check.h
index ddcafb24e9..d3d756abcc 100644
--- a/include/collision_check.h
+++ b/include/collision_check.h
@@ -80,22 +80,38 @@ typedef struct ColliderInitToActor {
/* 0x07 */ u8 shape;
} ColliderInitToActor; // size = 0x08
+typedef enum HitSpecialEffect {
+ HIT_SPECIAL_EFFECT_NONE,
+ HIT_SPECIAL_EFFECT_FIRE,
+ HIT_SPECIAL_EFFECT_ICE,
+ HIT_SPECIAL_EFFECT_ELECTRIC,
+ HIT_SPECIAL_EFFECT_KNOCKBACK,
+ HIT_SPECIAL_EFFECT_7 = 7, // Same effect as `HIT_SPECIAL_EFFECT_NONE`
+ HIT_SPECIAL_EFFECT_8, // Same effect as `HIT_SPECIAL_EFFECT_NONE`
+ HIT_SPECIAL_EFFECT_9 // Same effect as `HIT_SPECIAL_EFFECT_NONE`
+} HitSpecialEffect;
+
typedef struct ColliderElementDamageInfoAT {
/* 0x00 */ u32 dmgFlags; // Damage types dealt by this collider element as AT.
- /* 0x04 */ u8 effect; // Damage Effect (Knockback, Fire, etc.)
+ /* 0x04 */ u8 hitSpecialEffect; // The hit special effect applied to any actor attacked by this AT collider.
/* 0x05 */ u8 damage; // Damage
} ColliderElementDamageInfoAT; // size = 0x08
+typedef enum HitBacklash {
+ HIT_BACKLASH_NONE,
+ HIT_BACKLASH_ELECTRIC
+} HitBacklash;
+
typedef struct ColliderElementDamageInfoAC {
/* 0x00 */ u32 dmgFlags; // Damage types that may affect this collider element as AC.
- /* 0x04 */ u8 effect; // Damage Effect (Knockback, Fire, etc.)
+ /* 0x04 */ u8 hitBacklash; // The hit backlash type applied to any attacker hurting this AC collider.
/* 0x05 */ u8 defense; // Damage Resistance
/* 0x06 */ Vec3s hitPos; // Point of contact
} ColliderElementDamageInfoAC; // size = 0x0C
typedef struct ColliderElementDamageInfoACInit {
/* 0x00 */ u32 dmgFlags; // Damage types that may affect this collider element as AC.
- /* 0x04 */ u8 effect; // Damage Effect (Knockback, Fire, etc.)
+ /* 0x04 */ u8 hitBacklash; // The hit backlash type applied to any attacker hurting this AC collider.
/* 0x05 */ u8 defense; // Damage Resistance
} ColliderElementDamageInfoACInit; // size = 0x08
@@ -465,8 +481,8 @@ typedef struct CollisionCheckInfo {
/* 0x17 */ u8 health; // Note: some actors may use their own health variable instead of this one
/* 0x18 */ u8 damage; // Amount to decrement health by
/* 0x19 */ u8 damageReaction; // Stores what reaction should occur after being hit
- /* 0x1A */ u8 atHitEffect; // Stores what effect should occur when AT connects with an AC
- /* 0x1B */ u8 acHitEffect; // Stores what effect should occur when AC is touched by an AT
+ /* 0x1A */ u8 atHitBacklash; // Stores the hit backlash type received from attacking an AC collider
+ /* 0x1B */ u8 acHitSpecialEffect; // Stores the hit special effect received from being attacked by an AT collider
} CollisionCheckInfo; // size = 0x1C
DamageTable* DamageTable_Get(s32 index);
diff --git a/include/cutscene.h b/include/cutscene.h
index e3bf4a1c84..fb96ccbbf4 100644
--- a/include/cutscene.h
+++ b/include/cutscene.h
@@ -353,7 +353,6 @@ typedef union CsCmdCam {
s32 _words[2];
} CsCmdCam; // size = 0x8
-
typedef union CsCmdMisc {
struct {
/* 0x00 */ u16 type;
diff --git a/include/pause.h b/include/pause.h
index f8a54fc5dd..d5f348a03c 100644
--- a/include/pause.h
+++ b/include/pause.h
@@ -168,7 +168,7 @@ typedef struct PauseContext {
/* 0x0148 */ Vtx* equipPageVtx;
/* 0x014C */ Vtx* mapPageVtx;
/* 0x0150 */ Vtx* questPageVtx;
- /* 0x0154 */ Vtx* infoPanelVtx;
+ /* 0x0154 */ Vtx* uiOverlayVtx;
/* 0x0158 */ Vtx* itemVtx;
/* 0x015C */ Vtx* equipVtx;
/* 0x0160 */ char unk_160[0x04];
diff --git a/include/player.h b/include/player.h
index 10fcd490b7..63c9d25b65 100644
--- a/include/player.h
+++ b/include/player.h
@@ -647,16 +647,16 @@ typedef enum PlayerKnockbackType {
/* 0 */ PLAYER_KNOCKBACK_NONE, // No knockback
/* 1 */ PLAYER_KNOCKBACK_SMALL, // A small hop, remains standing up
/* 2 */ PLAYER_KNOCKBACK_LARGE, // Sent flying in the air and lands laying down on the floor
- /* 3 */ PLAYER_KNOCKBACK_LARGE_SHOCK // Same as`PLAYER_KNOCKBACK_LARGE` with a shock effect
+ /* 3 */ PLAYER_KNOCKBACK_LARGE_ELECTRIFIED // Same as`PLAYER_KNOCKBACK_LARGE` with a shock effect
} PlayerKnockbackType;
-typedef enum PlayerDamageResponseType {
+typedef enum PlayerHitResponseType {
/* 0 */ PLAYER_HIT_RESPONSE_NONE,
/* 1 */ PLAYER_HIT_RESPONSE_KNOCKBACK_LARGE,
/* 2 */ PLAYER_HIT_RESPONSE_KNOCKBACK_SMALL,
- /* 3 */ PLAYER_HIT_RESPONSE_ICE_TRAP,
- /* 4 */ PLAYER_HIT_RESPONSE_ELECTRIC_SHOCK
-} PlayerDamageResponseType;
+ /* 3 */ PLAYER_HIT_RESPONSE_FROZEN,
+ /* 4 */ PLAYER_HIT_RESPONSE_ELECTRIFIED
+} PlayerHitResponseType;
typedef struct PlayerAgeProperties {
/* 0x00 */ f32 ceilingCheckHeight;
diff --git a/include/regs.h b/include/regs.h
index 8ea4e058ec..187939cf58 100644
--- a/include/regs.h
+++ b/include/regs.h
@@ -107,12 +107,12 @@ struct PlayState;
#define R_TEXTBOX_WIDTH YREG(22)
#define R_TEXTBOX_HEIGHT YREG(23)
#if OOT_NTSC
-#define R_KALEIDO_UNK1(i) YREG(48 + (i))
-#define R_KALEIDO_UNK2(i) YREG(50 + (i))
-#define R_KALEIDO_UNK3(i) YREG(52 + (i))
-#define R_KALEIDO_UNK4(i) YREG(54 + (i))
-#define R_KALEIDO_UNK5(i) YREG(56 + (i))
-#define R_KALEIDO_UNK6(i) YREG(58 + (i))
+#define R_PAUSE_INFO_PANEL_ICON_C_ITEM_X(i) YREG(48 + (i))
+#define R_PAUSE_INFO_PANEL_TEXT_X(i) YREG(50 + (i))
+#define R_PAUSE_INFO_PANEL_ICON_PLAY_SONG_X(i) YREG(52 + (i))
+#define R_PAUSE_INFO_PANEL_TEXT_C_ITEM_X(i) YREG(54 + (i))
+#define R_PAUSE_INFO_PANEL_ICON_SAVE_PROMPT_X(i) YREG(56 + (i))
+#define R_PAUSE_INFO_PANEL_ICON_EQUIP_X(i) YREG(58 + (i))
#endif
#define R_TEXTBOX_ICON_XPOS YREG(71)
#define R_TEXTBOX_ICON_YPOS YREG(72)
@@ -198,6 +198,9 @@ struct PlayState;
#define R_B_LABEL_Y(i) WREG(12 + (i))
#define R_A_LABEL_Z(i) WREG(14 + (i))
#endif
+#define R_PAUSE_BUTTON_LEFT_X WREG(16)
+#define R_PAUSE_BUTTON_RIGHT_X WREG(17)
+#define R_PAUSE_BUTTON_LEFT_RIGHT_Y WREG(18)
#define R_OW_MINIMAP_X WREG(29)
#define R_OW_MINIMAP_Y WREG(30)
#define R_MINIMAP_DISABLED WREG(31)
@@ -206,12 +209,12 @@ struct PlayState;
#define R_B_LABEL_X(i) WREG(40 + (i))
#define R_B_LABEL_Y(i) WREG(43 + (i))
#define R_A_LABEL_Z(i) WREG(46 + (i))
-#define R_KALEIDO_UNK1(i) WREG(49 + (i))
-#define R_KALEIDO_UNK2(i) WREG(52 + (i))
-#define R_KALEIDO_UNK3(i) WREG(55 + (i))
-#define R_KALEIDO_UNK4(i) WREG(58 + (i))
-#define R_KALEIDO_UNK5(i) WREG(61 + (i))
-#define R_KALEIDO_UNK6(i) WREG(64 + (i))
+#define R_PAUSE_INFO_PANEL_ICON_C_ITEM_X(i) WREG(49 + (i))
+#define R_PAUSE_INFO_PANEL_TEXT_X(i) WREG(52 + (i))
+#define R_PAUSE_INFO_PANEL_ICON_PLAY_SONG_X(i) WREG(55 + (i))
+#define R_PAUSE_INFO_PANEL_TEXT_C_ITEM_X(i) WREG(58 + (i))
+#define R_PAUSE_INFO_PANEL_ICON_SAVE_PROMPT_X(i) WREG(61 + (i))
+#define R_PAUSE_INFO_PANEL_ICON_EQUIP_X(i) WREG(64 + (i))
#endif
#define R_DGN_MINIMAP_X WREG(68)
#define R_DGN_MINIMAP_Y WREG(69)
diff --git a/include/save.h b/include/save.h
index fb84b90fea..20ee760aac 100644
--- a/include/save.h
+++ b/include/save.h
@@ -401,6 +401,7 @@ typedef enum SceneLayer {
} SceneLayer;
#define IS_CUTSCENE_LAYER (gSaveContext.sceneLayer >= SCENE_LAYER_CUTSCENE_FIRST)
+#define GET_CUTSCENE_LAYER(index) (SCENE_LAYER_CUTSCENE_FIRST + (index & 0xF))
typedef enum LinkAge {
/* 0 */ LINK_AGE_ADULT,
@@ -408,6 +409,53 @@ typedef enum LinkAge {
} LinkAge;
+// Usage in Map Select suggests that `gSaveContext.save.cutsceneIndex` was,
+// at one point in development, a variable related to the time.
+// This is further supported by debug strings showing that its original name was "day_time".
+// These macros exist for the rare cases in the codebase where `cutsceneIndex` is treated as a time value.
+// In practice, both values do not lead to a cutscene being played.
+// See `CS_INDEX_NONE` below for the more common usage of value 0x0000.
+#define CS_INDEX_NIGHT 0x0000
+#define CS_INDEX_DAY 0x8000
+
+// Indicates that no scripted cutscene is playing (or should be played).
+// While this value overlaps with `CS_INDEX_NIGHT` defined above, it is not related to the time.
+// This is the more common interpretation of this value, as much of the codebase uses 0x0000 to mean "no cutscene"
+// except for Map Select.
+#define CS_INDEX_NONE 0x0000
+
+// Values 0xFFF0-0xFFFF indicate that a cutscene script should be played.
+// If the value of `nextCutsceneIndex` is 0xFFF0-0xFFFF on scene load,
+// `Play_Init` will copy the value to `gSaveContext.cutsceneIndex`, load a
+// corresponding scene layer and start the scripted cutscene in the scene layer
+// (except for the value 0xFFFD, which is special-cased to do nothing in `Play_Init`).
+// It loads layer 4 for 0xFFF0, layer 5 for 0xFFF1, and so on.
+//
+// 0xFFFD is used by the cutscene system to indicate a scripted cutscene has been triggered.
+// This is why `Play_Init` ignores that value, so that if the cutscene is interrupted
+// by a new play state load (e.g. if the player falls out of bounds), it does not then
+// try to wrongly load a cutscene layer.
+#define CS_INDEX_0 0xFFF0
+#define CS_INDEX_1 0xFFF1
+#define CS_INDEX_2 0xFFF2
+#define CS_INDEX_3 0xFFF3
+#define CS_INDEX_4 0xFFF4
+#define CS_INDEX_5 0xFFF5
+#define CS_INDEX_6 0xFFF6
+#define CS_INDEX_7 0xFFF7
+#define CS_INDEX_8 0xFFF8
+#define CS_INDEX_9 0xFFF9
+#define CS_INDEX_A 0xFFFA
+#define CS_INDEX_B 0xFFFB
+#define CS_INDEX_C 0xFFFC
+#define CS_INDEX_D 0xFFFD // does not load a cutscene scene layer (see above)
+#define CS_INDEX_E 0xFFFE
+#define CS_INDEX_F 0xFFFF
+
+// Sentinel value for `nextCutsceneIndex` to indicate that no cutscene should be played next.
+#define NEXT_CS_INDEX_NONE 0xFFEF
+
+
#define LINK_IS_ADULT (gSaveContext.save.linkAge == LINK_AGE_ADULT)
#define LINK_IS_CHILD (gSaveContext.save.linkAge == LINK_AGE_CHILD)
diff --git a/include/sfx.h b/include/sfx.h
index 91f24c1c84..2a9b543c3b 100644
--- a/include/sfx.h
+++ b/include/sfx.h
@@ -157,6 +157,14 @@ typedef struct SfxParams {
#define SFX_DIST_SCALING 10.0f
#endif
+#define SFX_PLAY_CENTERED(sfxId) \
+ Audio_PlaySfxGeneral(sfxId, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, \
+ &gSfxDefaultReverb);
+
+#define SFX_PLAY_AT_POS(projectedPos, sfxId) \
+ Audio_PlaySfxGeneral(sfxId, projectedPos, 4, &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, \
+ &gSfxDefaultReverb);
+
void Audio_SetSfxBanksMute(u16 muteMask);
void Audio_QueueSeqCmdMute(u8 channelIndex);
void Audio_ClearBGMMute(u8 channelIndex);
diff --git a/spec/spec b/spec/spec
index 60437c4bf9..fafd378adc 100644
--- a/spec/spec
+++ b/spec/spec
@@ -1707,7 +1707,8 @@ beginseg
name "object_yukabyun"
compress
romalign 0x1000
- include "$(BUILD_DIR)/assets/objects/object_yukabyun/object_yukabyun.o"
+ include "$(BUILD_DIR)/assets/objects/object_yukabyun/gFloorTileEnemyDL.o"
+ include "$(BUILD_DIR)/assets/objects/object_yukabyun/gFloorTileEnemyFragmentDL.o"
number 6
endseg
@@ -1923,7 +1924,7 @@ beginseg
name "object_vase"
compress
romalign 0x1000
- include "$(BUILD_DIR)/assets/objects/object_vase/object_vase.o"
+ include "$(BUILD_DIR)/assets/objects/object_vase/gUnusedVaseDL.o"
number 6
endseg
@@ -2859,7 +2860,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
@@ -2875,7 +2884,8 @@ beginseg
name "object_umajump"
compress
romalign 0x1000
- include "$(BUILD_DIR)/assets/objects/object_umajump/object_umajump.o"
+ include "$(BUILD_DIR)/assets/objects/object_umajump/gJumpableHorseFenceDL.o"
+ include "$(BUILD_DIR)/assets/objects/object_umajump/gJumpableHorseFenceCol.o"
number 6
endseg
@@ -3547,7 +3557,8 @@ beginseg
name "object_zg"
compress
romalign 0x1000
- include "$(BUILD_DIR)/assets/objects/object_zg/object_zg.o"
+ include "$(BUILD_DIR)/assets/objects/object_zg/gTowerCollapseBarsDL.o"
+ include "$(BUILD_DIR)/assets/objects/object_zg/gTowerCollapseBarsCol.o"
number 6
endseg
@@ -3875,7 +3886,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/audio/game/debug.inc.c b/src/audio/game/debug.inc.c
index e6d2dd89ca..37596f1092 100644
--- a/src/audio/game/debug.inc.c
+++ b/src/audio/game/debug.inc.c
@@ -842,9 +842,7 @@ void AudioDebug_ProcessInput_SndCont(void) {
break;
case 2:
case 3:
- Audio_PlaySfxGeneral(((sAudioSndContWork[2] << 12) & 0xFFFF) + sAudioSndContWork[3] + SFX_FLAG,
- &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(((sAudioSndContWork[2] << 12) & 0xFFFF) + sAudioSndContWork[3] + SFX_FLAG);
break;
case 4:
Audio_SetSoundOutputMode(sAudioSndContWork[sAudioSndContSel]);
@@ -1245,8 +1243,7 @@ void AudioDebug_ProcessInput_SfxParamChg(void) {
if (CHECK_BTN_ANY(sDebugPadPress, BTN_A)) {
sfx = (u16)(sAudioSfxParamChgWork[0] << 12) + sAudioSfxParamChgWork[1] + SFX_FLAG;
- Audio_PlaySfxGeneral(sfx, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(sfx);
}
if (CHECK_BTN_ANY(sDebugPadPress, BTN_B)) {
diff --git a/src/audio/game/general.c b/src/audio/game/general.c
index 0e1ca6df5c..980b980152 100644
--- a/src/audio/game/general.c
+++ b/src/audio/game/general.c
@@ -2816,8 +2816,7 @@ void func_800F4190(Vec3f* pos, u16 sfxId) {
void Audio_PlaySfxRandom(Vec3f* pos, u16 baseSfxId, u8 randLim) {
u8 offset = AudioThread_NextRandom() % randLim;
- Audio_PlaySfxGeneral(baseSfxId + offset, pos, 4, &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(pos, baseSfxId + offset);
}
void func_800F4254(Vec3f* pos, u8 level) {
@@ -3081,7 +3080,7 @@ void func_800F4C58(Vec3f* pos, u16 sfxId, u8 ioData) {
}
channelIndex++;
}
- Audio_PlaySfxGeneral(sfxId, pos, 4, &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(pos, sfxId);
}
void func_800F4E30(Vec3f* pos, f32 arg1) {
@@ -3704,12 +3703,10 @@ void Audio_UpdateMalonSinging(f32 dist, u16 seqId) {
void func_800F64E0(u8 arg0) {
D_80130608 = arg0;
if (arg0 != 0) {
- Audio_PlaySfxGeneral(NA_SE_SY_WIN_OPEN, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_WIN_OPEN);
AUDIOCMD_GLOBAL_MUTE();
} else {
- Audio_PlaySfxGeneral(NA_SE_SY_WIN_CLOSE, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_WIN_CLOSE);
AUDIOCMD_GLOBAL_UNMUTE(0);
}
}
@@ -3818,8 +3815,7 @@ void Audio_SetBaseFilter(u8 filter) {
if (filter == 0) {
Audio_StopSfxById(NA_SE_PL_IN_BUBBLE);
} else if (sAudioBaseFilter == 0) {
- Audio_PlaySfxGeneral(NA_SE_PL_IN_BUBBLE, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_PL_IN_BUBBLE);
}
}
sAudioBaseFilter = filter;
diff --git a/src/code/db_camera.c b/src/code/db_camera.c
index 34599c9a1c..02389cfe30 100644
--- a/src/code/db_camera.c
+++ b/src/code/db_camera.c
@@ -373,8 +373,7 @@ void func_800B44E0(DebugCam* debugCam, Camera* cam) {
if (debugCam->sub.nPoints < 6) {
if (sDebugCamAnim.unk_0A != 0) {
- Audio_PlaySfxGeneral(NA_SE_SY_ERROR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_ERROR);
sDebugCamAnim.unk_0A = 0;
}
DebugCamera_ScreenTextColored(17, 23, DEBUG_CAM_TEXT_ORANGE, D_8012CEE0[0]);
@@ -388,8 +387,7 @@ void func_800B44E0(DebugCam* debugCam, Camera* cam) {
!func_800BB2B4(&sDebugCamAnim.lookAtPos, &sDebugCamAnim.roll, &sDebugCamAnim.fov, debugCam->sub.lookAt,
&sDebugCamAnim.keyframe, &sDebugCamAnim.curFrame) &&
sDebugCamAnim.unk_0A == 1) {
- Audio_PlaySfxGeneral(NA_SE_SY_HP_RECOVER, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_HP_RECOVER);
sDebugCamAnim.unk_04++;
if (debugCam->sub.nFrames > 0 && debugCam->sub.nFrames < sDebugCamAnim.unk_04) {
@@ -617,8 +615,7 @@ void DebugCamera_Update(DebugCam* debugCam, Camera* cam) {
debugCam->unk_40 = -1;
debugCam->sub.demoCtrlActionIdx = 0;
sDebugCamAnim.unk_0A = 0;
- Audio_PlaySfxGeneral(NA_SE_SY_LOCK_ON, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_LOCK_ON);
} else if (debugCam->unk_38 == -1) {
debugCam->unk_38 = 1;
} else {
@@ -938,25 +935,21 @@ void DebugCamera_Update(DebugCam* debugCam, Camera* cam) {
debugCam->unk_1C.z = 0.0f;
debugCam->unk_1C.y = 1.0f;
} else if (debugCam->sub.unk_08 == 2) {
- Audio_PlaySfxGeneral(NA_SE_SY_CURSOR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_CURSOR);
debugCam->sub.unk_08 = 0;
func_800B41DC(debugCam, debugCam->sub.unkIdx, cam);
} else {
if (CHECK_BTN_ALL(sPlay->state.input[DEBUG_CAM_CONTROLLER_PORT].press.button, BTN_R) &&
CHECK_BTN_ALL(sPlay->state.input[DEBUG_CAM_CONTROLLER_PORT].cur.button, BTN_L)) {
- Audio_PlaySfxGeneral(NA_SE_SY_CANCEL, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_CANCEL);
debugCam->sub.nPoints = debugCam->sub.unkIdx + 1;
func_800B4088(debugCam, cam);
} else if (CHECK_BTN_ALL(sPlay->state.input[DEBUG_CAM_CONTROLLER_PORT].press.button, BTN_R)) {
if (debugCam->sub.unkIdx == 0x80) {
- Audio_PlaySfxGeneral(NA_SE_SY_ERROR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_ERROR);
} else {
- Audio_PlaySfxGeneral(NA_SE_IT_SWORD_PUTAWAY, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_IT_SWORD_PUTAWAY);
func_800B42C0(debugCam, cam);
if (debugCam->sub.unkIdx == (debugCam->sub.nPoints - 1)) {
debugCam->sub.unkIdx++;
@@ -1009,8 +1002,7 @@ void DebugCamera_Update(DebugCam* debugCam, Camera* cam) {
} else {
if (CHECK_BTN_ALL(sPlay->state.input[DEBUG_CAM_CONTROLLER_PORT].press.button, BTN_CRIGHT) &&
CHECK_BTN_ALL(sPlay->state.input[DEBUG_CAM_CONTROLLER_PORT].cur.button, BTN_L)) {
- Audio_PlaySfxGeneral(NA_SE_SY_GET_RUPY, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_GET_RUPY);
PRINTF("@@@\n@@@\n@@@/* *** spline point data ** start here *** */\n@@@\n");
DebugCamera_PrintPoints("Lookat", debugCam->sub.nPoints, debugCam->sub.lookAt);
DebugCamera_PrintPoints("Position", debugCam->sub.nPoints, debugCam->sub.position);
@@ -1019,15 +1011,13 @@ void DebugCamera_Update(DebugCam* debugCam, Camera* cam) {
PRINTF("@@@static short Mode = %d;\n@@@\n", debugCam->sub.mode);
PRINTF("@@@\n@@@\n@@@/* *** spline point data ** finish! *** */\n@@@\n");
} else if (CHECK_BTN_ALL(sPlay->state.input[DEBUG_CAM_CONTROLLER_PORT].press.button, BTN_CLEFT)) {
- Audio_PlaySfxGeneral(NA_SE_SY_CURSOR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_CURSOR);
debugCam->sub.unk_08 = (debugCam->sub.unk_08 + 1) % 3;
}
if (CHECK_BTN_ALL(sPlay->state.input[DEBUG_CAM_CONTROLLER_PORT].press.button, BTN_CUP) &&
CHECK_BTN_ALL(sPlay->state.input[DEBUG_CAM_CONTROLLER_PORT].cur.button, BTN_L)) {
- Audio_PlaySfxGeneral(NA_SE_IT_SWORD_IMPACT, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_IT_SWORD_IMPACT);
if (debugCam->sub.unkIdx > 0) {
debugCam->sub.unkIdx--;
} else {
@@ -1035,8 +1025,7 @@ void DebugCamera_Update(DebugCam* debugCam, Camera* cam) {
}
} else {
if (CHECK_BTN_ALL(sPlay->state.input[DEBUG_CAM_CONTROLLER_PORT].press.button, BTN_CUP)) {
- Audio_PlaySfxGeneral(NA_SE_IT_SWORD_IMPACT, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_IT_SWORD_IMPACT);
if (debugCam->sub.unkIdx > 0) {
debugCam->sub.unkIdx--;
} else {
@@ -1057,8 +1046,7 @@ void DebugCamera_Update(DebugCam* debugCam, Camera* cam) {
}
if (CHECK_BTN_ALL(sPlay->state.input[DEBUG_CAM_CONTROLLER_PORT].cur.button, BTN_L) &&
CHECK_BTN_ALL(sPlay->state.input[DEBUG_CAM_CONTROLLER_PORT].press.button, BTN_CDOWN)) {
- Audio_PlaySfxGeneral(NA_SE_IT_SWORD_IMPACT, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_IT_SWORD_IMPACT);
if (debugCam->sub.unkIdx < (debugCam->sub.nPoints - 1)) {
debugCam->sub.unkIdx++;
} else {
@@ -1066,8 +1054,7 @@ void DebugCamera_Update(DebugCam* debugCam, Camera* cam) {
}
} else {
if (CHECK_BTN_ALL(sPlay->state.input[DEBUG_CAM_CONTROLLER_PORT].press.button, BTN_CDOWN)) {
- Audio_PlaySfxGeneral(NA_SE_IT_SWORD_IMPACT, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_IT_SWORD_IMPACT);
if (debugCam->sub.unkIdx < (debugCam->sub.nPoints - 1)) {
debugCam->sub.unkIdx++;
} else {
@@ -1140,8 +1127,7 @@ void DebugCamera_Update(DebugCam* debugCam, Camera* cam) {
case 1:
debugCam->unk_3C = true;
if (CHECK_BTN_ALL(sPlay->state.input[DEBUG_CAM_CONTROLLER_PORT].press.button, BTN_DUP)) {
- Audio_PlaySfxGeneral(NA_SE_SY_ATTENTION_ON, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_ATTENTION_ON);
if (debugCam->sub.unk_0A == 0) {
debugCam->sub.unk_0A = 5;
} else {
@@ -1149,8 +1135,7 @@ void DebugCamera_Update(DebugCam* debugCam, Camera* cam) {
}
}
if (CHECK_BTN_ALL(sPlay->state.input[DEBUG_CAM_CONTROLLER_PORT].press.button, BTN_DDOWN)) {
- Audio_PlaySfxGeneral(NA_SE_SY_ATTENTION_ON, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_ATTENTION_ON);
if (debugCam->sub.unk_0A == 5) {
debugCam->sub.unk_0A = 0;
} else {
@@ -1158,8 +1143,7 @@ void DebugCamera_Update(DebugCam* debugCam, Camera* cam) {
}
}
if (CHECK_BTN_ALL(sPlay->state.input[DEBUG_CAM_CONTROLLER_PORT].press.button, BTN_DLEFT)) {
- Audio_PlaySfxGeneral(NA_SE_SY_ATTENTION_ON, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_ATTENTION_ON);
switch (debugCam->sub.unk_0A) {
case 1:
if (CHECK_BTN_ALL(sPlay->state.input[DEBUG_CAM_CONTROLLER_PORT].cur.button, BTN_L)) {
@@ -1208,8 +1192,7 @@ void DebugCamera_Update(DebugCam* debugCam, Camera* cam) {
if (CHECK_BTN_ALL(sPlay->state.input[DEBUG_CAM_CONTROLLER_PORT].cur.button, BTN_DLEFT)) {
if ((D_8012D10C++ % 5) == 0) {
- Audio_PlaySfxGeneral(NA_SE_SY_ATTENTION_ON, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_ATTENTION_ON);
}
switch (debugCam->sub.unk_0A) {
@@ -1246,8 +1229,7 @@ void DebugCamera_Update(DebugCam* debugCam, Camera* cam) {
}
if (CHECK_BTN_ALL(sPlay->state.input[DEBUG_CAM_CONTROLLER_PORT].press.button, BTN_DRIGHT)) {
- Audio_PlaySfxGeneral(NA_SE_SY_ATTENTION_ON, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_ATTENTION_ON);
switch (debugCam->sub.unk_0A) {
case 1:
@@ -1296,8 +1278,7 @@ void DebugCamera_Update(DebugCam* debugCam, Camera* cam) {
}
if (CHECK_BTN_ALL(sPlay->state.input[DEBUG_CAM_CONTROLLER_PORT].cur.button, BTN_DRIGHT)) {
if ((D_8012D10C++ % 5) == 0) {
- Audio_PlaySfxGeneral(NA_SE_SY_ATTENTION_ON, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_ATTENTION_ON);
}
switch (debugCam->sub.unk_0A) {
@@ -1460,8 +1441,7 @@ void DebugCamera_Update(DebugCam* debugCam, Camera* cam) {
debugCam->fov = 60.0f;
debugCam->rollDegrees = debugCam->roll * 1.40625f;
if (CHECK_BTN_ALL(sPlay->state.input[DEBUG_CAM_CONTROLLER_PORT].press.button, BTN_CLEFT)) {
- Audio_PlaySfxGeneral(NA_SE_SY_CURSOR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_CURSOR);
debugCam->unk_78 = (debugCam->unk_78 + 1) % 3;
debugCam->unk_38 = -1;
}
@@ -1745,8 +1725,7 @@ void DebugCamera_DrawSlotLetters(char* str, s16 y, s16 x, s32 colorIndex) {
void DebugCamera_PrintAllCuts(Camera* cam) {
s32 i;
- Audio_PlaySfxGeneral(NA_SE_SY_GET_RUPY, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_GET_RUPY);
PRINTF("@@@\n@@@\n@@@/* ****** spline point data ** start here ***** */\n@@@\n");
for (i = 0; i < ARRAY_COUNT(sDebugCamCuts) - 1; i++) {
@@ -1894,8 +1873,7 @@ s32 DebugCamera_UpdateDemoControl(DebugCam* debugCam, Camera* cam) {
if ((1 << sCurFileIdx) & sMempakFiles) {
if (CHECK_BTN_ALL(sPlay->state.input[DEBUG_CAM_CONTROLLER_PORT].press.button, BTN_DLEFT) ||
CHECK_BTN_ALL(sPlay->state.input[DEBUG_CAM_CONTROLLER_PORT].press.button, BTN_DRIGHT)) {
- Audio_PlaySfxGeneral(NA_SE_SY_CURSOR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_CURSOR);
debugCam->sub.demoCtrlToggleSwitch ^= 1;
}
D_8012CEE0[41][9] = MEMPAK_INDEX_TO_LETTER(sCurFileIdx);
@@ -1913,12 +1891,10 @@ s32 DebugCamera_UpdateDemoControl(DebugCam* debugCam, Camera* cam) {
if (CHECK_BTN_ALL(sPlay->state.input[DEBUG_CAM_CONTROLLER_PORT].press.button, BTN_A)) {
if (debugCam->sub.demoCtrlToggleSwitch == 0) {
- Audio_PlaySfxGeneral(NA_SE_SY_DECIDE, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_DECIDE);
debugCam->sub.demoCtrlMenu++;
} else {
- Audio_PlaySfxGeneral(NA_SE_SY_CANCEL, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_CANCEL);
debugCam->sub.demoCtrlMenu = 0;
}
}
@@ -1937,8 +1913,7 @@ s32 DebugCamera_UpdateDemoControl(DebugCam* debugCam, Camera* cam) {
}
}
if (CHECK_BTN_ALL(sPlay->state.input[DEBUG_CAM_CONTROLLER_PORT].press.button, BTN_B)) {
- Audio_PlaySfxGeneral(NA_SE_SY_CANCEL, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_CANCEL);
debugCam->sub.demoCtrlMenu = 0;
return 1;
}
@@ -1978,8 +1953,7 @@ s32 DebugCamera_UpdateDemoControl(DebugCam* debugCam, Camera* cam) {
if (CHECK_BTN_ALL(sPlay->state.input[DEBUG_CAM_CONTROLLER_PORT].press.button, BTN_A) ||
CHECK_BTN_ALL(sPlay->state.input[DEBUG_CAM_CONTROLLER_PORT].press.button, BTN_B)) {
- Audio_PlaySfxGeneral(NA_SE_SY_DECIDE, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_DECIDE);
if (debugCam->sub.demoCtrlMenu == DEMO_CTRL_MENU(ACTION_LOAD, MENU_SUCCESS)) {
debugCam->sub.demoCtrlActionIdx = ACTION_E;
}
@@ -2004,8 +1978,7 @@ s32 DebugCamera_UpdateDemoControl(DebugCam* debugCam, Camera* cam) {
if (CHECK_BTN_ALL(sPlay->state.input[DEBUG_CAM_CONTROLLER_PORT].press.button, BTN_A) ||
CHECK_BTN_ALL(sPlay->state.input[DEBUG_CAM_CONTROLLER_PORT].press.button, BTN_B)) {
- Audio_PlaySfxGeneral(NA_SE_SY_DECIDE, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_DECIDE);
debugCam->sub.demoCtrlMenu -= 9;
}
block_2:
@@ -2040,8 +2013,7 @@ s32 DebugCamera_UpdateDemoControl(DebugCam* debugCam, Camera* cam) {
sp74[i * 2 + 1] = '\0';
if (CHECK_BTN_ALL(sPlay->state.input[DEBUG_CAM_CONTROLLER_PORT].press.button, BTN_DRIGHT)) {
- Audio_PlaySfxGeneral(NA_SE_SY_CURSOR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_CURSOR);
if (sCurFileIdx >= 4) {
sCurFileIdx = 0;
} else {
@@ -2058,8 +2030,7 @@ s32 DebugCamera_UpdateDemoControl(DebugCam* debugCam, Camera* cam) {
}
}
if (CHECK_BTN_ALL(sPlay->state.input[DEBUG_CAM_CONTROLLER_PORT].press.button, BTN_DLEFT)) {
- Audio_PlaySfxGeneral(NA_SE_SY_CURSOR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_CURSOR);
if (sCurFileIdx <= 0) {
sCurFileIdx = 4;
} else {
@@ -2103,25 +2074,21 @@ s32 DebugCamera_UpdateDemoControl(DebugCam* debugCam, Camera* cam) {
DebugCamera_ScreenTextColored(20, 26, DEBUG_CAM_TEXT_WHITE, D_8012CF70);
if (CHECK_BTN_ALL(sPlay->state.input[DEBUG_CAM_CONTROLLER_PORT].press.button, BTN_DUP)) {
- Audio_PlaySfxGeneral(NA_SE_SY_CURSOR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_CURSOR);
debugCam->sub.demoCtrlActionIdx = (debugCam->sub.demoCtrlActionIdx - 1) % 4u;
}
if (CHECK_BTN_ALL(sPlay->state.input[DEBUG_CAM_CONTROLLER_PORT].press.button, BTN_DDOWN)) {
- Audio_PlaySfxGeneral(NA_SE_SY_CURSOR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_CURSOR);
debugCam->sub.demoCtrlActionIdx = (debugCam->sub.demoCtrlActionIdx + 1) % 4u;
}
if (CHECK_BTN_ALL(sPlay->state.input[DEBUG_CAM_CONTROLLER_PORT].press.button, BTN_A)) {
- Audio_PlaySfxGeneral(NA_SE_SY_DECIDE, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_DECIDE);
debugCam->sub.demoCtrlToggleSwitch = 0;
debugCam->sub.demoCtrlMenu = DEMO_CTRL_MENU(debugCam->sub.demoCtrlActionIdx, MENU_INFO);
}
if (CHECK_BTN_ALL(sPlay->state.input[DEBUG_CAM_CONTROLLER_PORT].press.button, BTN_B)) {
- Audio_PlaySfxGeneral(NA_SE_SY_CANCEL, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_CANCEL);
debugCam->sub.demoCtrlActionIdx = ACTION_E;
return 1;
}
@@ -2133,8 +2100,7 @@ s32 DebugCamera_UpdateDemoControl(DebugCam* debugCam, Camera* cam) {
CHECK_BTN_ALL(sPlay->state.input[DEBUG_CAM_CONTROLLER_PORT].press.button, BTN_DUP) ||
CHECK_BTN_ALL(sPlay->state.input[DEBUG_CAM_CONTROLLER_PORT].press.button, BTN_DDOWN)) {
- Audio_PlaySfxGeneral(NA_SE_SY_CANCEL, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_CANCEL);
debugCam->sub.demoCtrlActionIdx = ACTION_E;
}
return 2;
@@ -2146,15 +2112,13 @@ s32 DebugCamera_UpdateDemoControl(DebugCam* debugCam, Camera* cam) {
default: {
if (CHECK_BTN_ALL(sPlay->state.input[DEBUG_CAM_CONTROLLER_PORT].press.button, BTN_DUP)) {
- Audio_PlaySfxGeneral(NA_SE_SY_CURSOR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_CURSOR);
debugCam->sub.demoCtrlMenu = DEMO_CTRL_MENU(ACTION_E, MENU_INFO);
debugCam->sub.demoCtrlActionIdx = (debugCam->sub.demoCtrlActionIdx - 1) % 4u;
sCurFileIdx = 0;
}
if (CHECK_BTN_ALL(sPlay->state.input[DEBUG_CAM_CONTROLLER_PORT].press.button, BTN_DDOWN)) {
- Audio_PlaySfxGeneral(NA_SE_SY_CURSOR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_CURSOR);
debugCam->sub.demoCtrlMenu = DEMO_CTRL_MENU(ACTION_E, MENU_INFO);
debugCam->sub.demoCtrlActionIdx = (debugCam->sub.demoCtrlActionIdx + 1) % 4u;
sCurFileIdx = 0;
@@ -2193,8 +2157,7 @@ s32 DebugCamera_UpdateDemoControl(DebugCam* debugCam, Camera* cam) {
if (func_800B91B0(cam, debugCam) == 0) {
Interface_ChangeHudVisibilityMode(HUD_VISIBILITY_NOTHING_ALT);
Letterbox_SetSizeTarget(0);
- Audio_PlaySfxGeneral(NA_SE_SY_GET_RUPY, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_GET_RUPY);
}
sp5C = OLib_Vec3fDiffToVecGeo(&debugCam->eye, &debugCam->at);
debugCam->unk_1C =
@@ -2204,7 +2167,7 @@ s32 DebugCamera_UpdateDemoControl(DebugCam* debugCam, Camera* cam) {
if (CHECK_BTN_ALL(sPlay->state.input[1].press.button, BTN_CRIGHT)) {
gUseCutsceneCam = false;
- gSaveContext.save.cutsceneIndex = 0xFFFD;
+ gSaveContext.save.cutsceneIndex = CS_INDEX_D;
gSaveContext.cutsceneTrigger = 1;
sDebugCamAnim.curFrame = 0.0f;
sDebugCamAnim.keyframe = 0;
@@ -2212,8 +2175,7 @@ s32 DebugCamera_UpdateDemoControl(DebugCam* debugCam, Camera* cam) {
sDebugCamAnim.unk_0A = 1;
sDebugCamAnim.unk_0C = 0;
D_8016110C = 0;
- Audio_PlaySfxGeneral(NA_SE_SY_HP_RECOVER, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_HP_RECOVER);
}
if (CHECK_BTN_ALL(sPlay->state.input[DEBUG_CAM_CONTROLLER_PORT].press.button, BTN_L)) {
@@ -2229,15 +2191,13 @@ s32 DebugCamera_UpdateDemoControl(DebugCam* debugCam, Camera* cam) {
if (sLastFileIdx != -1) {
switch (sp74[sCurFileIdx]) {
case '?':
- Audio_PlaySfxGeneral(NA_SE_SY_DECIDE, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_DECIDE);
sDebugCamCuts[idx1] = sDebugCamCuts[idx2];
sp74[sCurFileIdx] = '?'; // useless
DebugCamera_ResetCut(idx2, false);
break;
case '-':
- Audio_PlaySfxGeneral(NA_SE_SY_DECIDE, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_DECIDE);
sp64 = sDebugCamCuts[idx2];
if (sLastFileIdx < sCurFileIdx) {
@@ -2259,8 +2219,7 @@ s32 DebugCamera_UpdateDemoControl(DebugCam* debugCam, Camera* cam) {
}
break;
default:
- Audio_PlaySfxGeneral(NA_SE_SY_ERROR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_ERROR);
break;
}
}
@@ -2269,8 +2228,7 @@ s32 DebugCamera_UpdateDemoControl(DebugCam* debugCam, Camera* cam) {
if (CHECK_BTN_ALL(sPlay->state.input[DEBUG_CAM_CONTROLLER_PORT].press.button, BTN_A)) {
if (sp74[sCurFileIdx] == '?') {
- Audio_PlaySfxGeneral(NA_SE_SY_DECIDE, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_DECIDE);
sp74[sCurFileIdx] = DebugCamera_InitCut(idx1, &debugCam->sub);
if (sp74[sCurFileIdx] == '?') {
DebugCamera_ScreenTextColored(15, 24, DEBUG_CAM_TEXT_GREEN, D_8012CF48);
@@ -2280,8 +2238,7 @@ s32 DebugCamera_UpdateDemoControl(DebugCam* debugCam, Camera* cam) {
if (CHECK_BTN_ALL(sPlay->state.input[DEBUG_CAM_CONTROLLER_PORT].press.button, BTN_B)) {
if (sp74[sCurFileIdx] != '?' && sp74[sCurFileIdx] != '-') {
- Audio_PlaySfxGeneral(NA_SE_SY_CANCEL, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_CANCEL);
sp74[sCurFileIdx] = '?';
DebugCamera_ResetCut(idx1, true);
}
@@ -2289,8 +2246,7 @@ s32 DebugCamera_UpdateDemoControl(DebugCam* debugCam, Camera* cam) {
if (CHECK_BTN_ALL(sPlay->state.input[DEBUG_CAM_CONTROLLER_PORT].press.button, BTN_R)) {
if (sp74[sCurFileIdx] != '?' && sp74[sCurFileIdx] != '-') {
- Audio_PlaySfxGeneral(NA_SE_SY_DECIDE, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_DECIDE);
for (i = 0; i < sDebugCamCuts[idx1].nPoints; i++) {
debugCam->sub.lookAt[i] = sDebugCamCuts[idx1].lookAt[i];
@@ -2312,8 +2268,7 @@ s32 DebugCamera_UpdateDemoControl(DebugCam* debugCam, Camera* cam) {
}
if (CHECK_BTN_ALL(sPlay->state.input[DEBUG_CAM_CONTROLLER_PORT].press.button, BTN_DRIGHT)) {
- Audio_PlaySfxGeneral(NA_SE_SY_CURSOR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_CURSOR);
if (sCurFileIdx == 0x1E) {
sCurFileIdx = 0;
} else {
@@ -2321,8 +2276,7 @@ s32 DebugCamera_UpdateDemoControl(DebugCam* debugCam, Camera* cam) {
}
}
if (CHECK_BTN_ALL(sPlay->state.input[DEBUG_CAM_CONTROLLER_PORT].press.button, BTN_DLEFT)) {
- Audio_PlaySfxGeneral(NA_SE_SY_CURSOR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_CURSOR);
sCurFileIdx = (sCurFileIdx == 0) ? 0x1E : sCurFileIdx - 1;
}
@@ -2336,8 +2290,7 @@ s32 DebugCamera_UpdateDemoControl(DebugCam* debugCam, Camera* cam) {
DebugCamera_PrintAllCuts(cam);
} else if (CHECK_BTN_ALL(sPlay->state.input[DEBUG_CAM_CONTROLLER_PORT].cur.button, BTN_L) &&
CHECK_BTN_ALL(sPlay->state.input[DEBUG_CAM_CONTROLLER_PORT].press.button, BTN_CLEFT)) {
- Audio_PlaySfxGeneral(NA_SE_SY_GET_RUPY, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_GET_RUPY);
for (i = 0; i < ARRAY_COUNT(sDebugCamCuts) - 1; i++) {
if (sDebugCamCuts[i].nPoints != 0) {
PRINTF("\n@@@ /* CUT [%d]\t*/", i);
@@ -2353,8 +2306,7 @@ s32 DebugCamera_UpdateDemoControl(DebugCam* debugCam, Camera* cam) {
Interface_ChangeHudVisibilityMode(HUD_VISIBILITY_ALL);
Letterbox_SetSizeTarget(32);
D_8016110C = 0;
- Audio_PlaySfxGeneral(NA_SE_SY_HP_RECOVER, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_HP_RECOVER);
}
DebugCamera_ScreenTextColored(4, 7, DEBUG_CAM_TEXT_WHITE, D_8012CF50[0]);
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_actor.c b/src/code/z_actor.c
index dfec9188f9..7501925080 100644
--- a/src/code/z_actor.c
+++ b/src/code/z_actor.c
@@ -35,8 +35,8 @@
#include "assets/objects/gameplay_dangeon_keep/gameplay_dangeon_keep.h"
#include "assets/objects/object_bdoor/object_bdoor.h"
-#pragma increment_block_number "gc-eu:128 gc-eu-mq:128 gc-jp:0 gc-jp-ce:0 gc-jp-mq:0 gc-us:0 gc-us-mq:0 ntsc-1.0:0" \
- "ntsc-1.1:0 ntsc-1.2:0 pal-1.0:0 pal-1.1:0"
+#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" \
+ "ntsc-1.0:0 ntsc-1.1:0 ntsc-1.2:0 pal-1.0:0 pal-1.1:0"
CollisionPoly* sCurCeilingPoly;
s32 sCurCeilingBgId;
@@ -2030,8 +2030,7 @@ void Actor_SetPlayerKnockbackSmallNoDamage(PlayState* play, Actor* actor, f32 sp
* Play a sound effect at the player's position
*/
void Player_PlaySfx(Player* player, u16 sfxId) {
- Audio_PlaySfxGeneral(sfxId, &player->actor.projectedPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&player->actor.projectedPos, sfxId);
}
/**
@@ -2641,8 +2640,7 @@ void Actor_Draw(PlayState* play, Actor* actor) {
void Actor_UpdateFlaggedAudio(Actor* actor) {
if (actor->flags & ACTOR_FLAG_SFX_ACTOR_POS_2) {
- Audio_PlaySfxGeneral(actor->sfx, &actor->projectedPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&actor->projectedPos, actor->sfx);
} else if (actor->flags & ACTOR_AUDIO_FLAG_SFX_CENTERED_1) {
Sfx_PlaySfxCentered(actor->sfx);
} else if (actor->flags & ACTOR_AUDIO_FLAG_SFX_CENTERED_2) {
@@ -5670,8 +5668,7 @@ void func_80036E50(u16 textId, s16 arg1) {
Flags_SetInfTable(INFTABLE_0C);
return;
case 0x1033:
- Audio_PlaySfxGeneral(NA_SE_SY_CORRECT_CHIME, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_CORRECT_CHIME);
Flags_SetEventChkInf(EVENTCHKINF_04);
Flags_SetInfTable(INFTABLE_0E);
return;
@@ -6136,8 +6133,7 @@ s32 func_80037CB8(PlayState* play, Actor* actor, s16 arg2) {
case TEXT_STATE_CHOICE:
case TEXT_STATE_EVENT:
if (Message_ShouldAdvance(play) && func_80037C94(play, actor, arg2)) {
- Audio_PlaySfxGeneral(NA_SE_SY_CANCEL, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_CANCEL);
msgCtx->msgMode = MSGMODE_TEXT_CLOSING;
ret = true;
}
diff --git a/src/code/z_bgcheck.c b/src/code/z_bgcheck.c
index 9e71fa6287..656bb04b5b 100644
--- a/src/code/z_bgcheck.c
+++ b/src/code/z_bgcheck.c
@@ -14,7 +14,7 @@
#include "player.h"
#include "skin_matrix.h"
-#pragma increment_block_number "ntsc-1.0:144 ntsc-1.1:144 ntsc-1.2:144"
+#pragma increment_block_number "ntsc-1.0:136 ntsc-1.1:136 ntsc-1.2:136"
u16 DynaSSNodeList_GetNextNodeIdx(DynaSSNodeList* nodeList);
void BgCheck_GetStaticLookupIndicesFromPos(CollisionContext* colCtx, Vec3f* pos, Vec3i* sector);
diff --git a/src/code/z_camera.c b/src/code/z_camera.c
index ce1fa53c00..803a89400f 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);
@@ -3593,7 +3593,7 @@ s32 Camera_KeepOn3(Camera* camera) {
playerHeadPos = camPlayerPosRot->pos;
playerHeadPos.y += playerHeight;
rwData->atTarget = Camera_AddVecGeoToVec3f(&playerHeadPos, &targetToPlayerDir);
- angleCnt = ARRAY_COUNT(D_8011D3B0);
+ angleCnt = ARRAY_COUNT(sCamCheckAroundOffsetsYaw);
i = 0;
targetToPlayerDir.r = prevTargetPlayerDist;
atToEyeAdj.r = roData->minDist + (targetToPlayerDir.r * (1 - 0.5f)) - atToEyeNextDir.r + atToEyeNextDir.r;
@@ -3605,8 +3605,8 @@ s32 Camera_KeepOn3(Camera* camera) {
!Camera_BGCheck(camera, &rwData->atTarget, &lineChkPointB)) {
break;
}
- atToEyeAdj.yaw = sp80 + D_8011D3B0[i];
- atToEyeAdj.pitch = sp82 + D_8011D3CC[i];
+ atToEyeAdj.yaw = sp80 + sCamCheckAroundOffsetsYaw[i];
+ atToEyeAdj.pitch = sp82 + sCamCheckAroundOffsetsPitch[i];
lineChkPointB = Camera_AddVecGeoToVec3f(&rwData->atTarget, &atToEyeAdj);
i++;
}
@@ -3661,27 +3661,27 @@ 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:73 ntsc-1.1:73 ntsc-1.2:73 pal-1.0:73 pal-1.1:73"
s32 Camera_KeepOn4(Camera* camera) {
- static Vec3f D_8015BD50;
+ static Vec3f sAtTarget;
static Vec3f D_8015BD60;
- static Vec3f D_8015BD70;
+ static Vec3f sEyeCandidate;
Vec3f* eye = &camera->eye;
Vec3f* at = &camera->at;
Vec3f* eyeNext = &camera->eyeNext;
- Actor* spCC[2];
+ Actor* lineOCCheckExclusions[2];
f32 t = -0.5f;
f32 temp_f0_2;
CollisionPoly* spC0;
- VecGeo spB8;
- UNUSED VecGeo spB0;
- VecGeo spA8;
- s16* temp_s0 = &camera->data2;
- s16 spA2;
- s16 spA0;
+ VecGeo vecGeo;
+ VecGeo atToEyeDir;
+ VecGeo atToEyeNextDir;
+ s16* itemType = &camera->data2;
+ s16 atToEyeBasePitch;
+ s16 atToEyeBaseYaw;
s16 sp9E;
- s16 sp9C;
+ s16 lineOCCheckNumExclusions;
PosRot* playerPosRot = &camera->playerPosRot;
KeepOn4ReadOnlyData* roData = &camera->paramData.keep4.roData;
KeepOn4ReadWriteData* rwData = &camera->paramData.keep4.rwData;
@@ -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->itemType = *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->itemType != *itemType) {
+ PRINTF(VT_COL(YELLOW, BLACK) "camera: item: item type changed %d -> %d\n" VT_RST, rwData->itemType, *itemType);
camera->animState = 20;
camera->stateFlags |= CAM_STATE_LOCK_MODE;
camera->stateFlags &= ~(CAM_STATE_CHECK_WATER | CAM_STATE_CHECK_BG);
@@ -3717,115 +3717,115 @@ s32 Camera_KeepOn4(Camera* camera) {
CameraModeValue* values = sCameraSettings[camera->setting].cameraModes[camera->mode].values;
f32 yNormal = 1.0f + t - (68.0f / playerHeight * t);
- roData->unk_00 = GET_NEXT_SCALED_RO_DATA(values) * playerHeight * yNormal;
- roData->unk_04 = GET_NEXT_SCALED_RO_DATA(values) * playerHeight * yNormal;
- roData->unk_08 = GET_NEXT_RO_DATA(values);
- roData->unk_0C = GET_NEXT_RO_DATA(values);
- roData->unk_10 = GET_NEXT_RO_DATA(values);
- roData->unk_18 = GET_NEXT_RO_DATA(values);
+ roData->yOffset = GET_NEXT_SCALED_RO_DATA(values) * playerHeight * yNormal;
+ roData->eyeDist = GET_NEXT_SCALED_RO_DATA(values) * playerHeight * yNormal;
+ roData->pitchTarget = GET_NEXT_RO_DATA(values);
+ roData->yawTarget = GET_NEXT_RO_DATA(values);
+ roData->atOffsetPlayerForwards = GET_NEXT_RO_DATA(values);
+ roData->fovTarget = GET_NEXT_RO_DATA(values);
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:
- roData->unk_00 = playerHeight * -0.6f * yNormal;
- roData->unk_04 = playerHeight * 2.0f * yNormal;
- roData->unk_08 = 10.0f;
+ roData->initTimer = GET_NEXT_RO_DATA(values);
+ PRINTF("camera: item: type %d\n", *itemType);
+ switch (*itemType) {
+ case CAM_ITEM_TYPE_1:
+ roData->yOffset = playerHeight * -0.6f * yNormal;
+ roData->eyeDist = playerHeight * 2.0f * yNormal;
+ roData->pitchTarget = 10.0f;
break;
- case 2:
- case 3:
- roData->unk_08 = -20.0f;
- roData->unk_18 = 80.0f;
+ case CAM_ITEM_TYPE_2:
+ case CAM_ITEM_TYPE_3:
+ roData->pitchTarget = -20.0f;
+ roData->fovTarget = 80.0f;
break;
- case 4:
- roData->unk_00 = playerHeight * -0.2f * yNormal;
- roData->unk_08 = 25.0f;
+ case CAM_ITEM_TYPE_4:
+ roData->yOffset = playerHeight * -0.2f * yNormal;
+ roData->pitchTarget = 25.0f;
break;
- case 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;
+ case CAM_ITEM_TYPE_8:
+ roData->yOffset = playerHeight * -0.2f * yNormal;
+ roData->eyeDist = playerHeight * 0.8f * yNormal;
+ roData->pitchTarget = 50.0f;
+ roData->fovTarget = 70.0f;
break;
- case 9:
- roData->unk_00 = playerHeight * 0.1f * yNormal;
- roData->unk_04 = playerHeight * 0.5f * yNormal;
- roData->unk_08 = -20.0f;
- roData->unk_0C = 0.0f;
+ case CAM_ITEM_TYPE_9:
+ roData->yOffset = playerHeight * 0.1f * yNormal;
+ roData->eyeDist = playerHeight * 0.5f * yNormal;
+ roData->pitchTarget = -20.0f;
+ roData->yawTarget = 0.0f;
roData->interfaceField =
CAM_INTERFACE_FIELD(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_A_HEARTS_MAGIC_FORCE, KEEPON4_FLAG_6);
break;
- case 5:
- roData->unk_00 = playerHeight * -0.4f * yNormal;
- roData->unk_08 = -10.0f;
- roData->unk_0C = 45.0f;
+ case CAM_ITEM_TYPE_5:
+ roData->yOffset = playerHeight * -0.4f * yNormal;
+ roData->pitchTarget = -10.0f;
+ roData->yawTarget = 45.0f;
roData->interfaceField =
CAM_INTERFACE_FIELD(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_ALL, KEEPON4_FLAG_1);
break;
- case 10:
- roData->unk_00 = playerHeight * -0.5f * yNormal;
- roData->unk_04 = playerHeight * 1.5f * yNormal;
- roData->unk_08 = -15.0f;
- roData->unk_0C = 175.0f;
- roData->unk_18 = 70.0f;
+ case CAM_ITEM_TYPE_10:
+ roData->yOffset = playerHeight * -0.5f * yNormal;
+ roData->eyeDist = playerHeight * 1.5f * yNormal;
+ roData->pitchTarget = -15.0f;
+ roData->yawTarget = 175.0f;
+ roData->fovTarget = 70.0f;
roData->interfaceField =
CAM_INTERFACE_FIELD(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_NOTHING_ALT, KEEPON4_FLAG_1);
- roData->unk_1E = 0x3C;
+ roData->initTimer = 0x3C;
break;
- case 12:
- roData->unk_00 = playerHeight * -0.6f * yNormal;
- roData->unk_04 = playerHeight * 1.6f * yNormal;
- roData->unk_08 = -2.0f;
- roData->unk_0C = 120.0f;
- roData->unk_10 = player->stateFlags1 & PLAYER_STATE1_27 ? 0.0f : 20.0f;
+ case CAM_ITEM_TYPE_12:
+ roData->yOffset = playerHeight * -0.6f * yNormal;
+ roData->eyeDist = playerHeight * 1.6f * yNormal;
+ roData->pitchTarget = -2.0f;
+ roData->yawTarget = 120.0f;
+ roData->atOffsetPlayerForwards = player->stateFlags1 & PLAYER_STATE1_27 ? 0.0f : 20.0f;
roData->interfaceField = CAM_INTERFACE_FIELD(CAM_LETTERBOX_LARGE, CAM_HUD_VISIBILITY_NOTHING_ALT,
KEEPON4_FLAG_4 | KEEPON4_FLAG_1);
- roData->unk_1E = 0x1E;
- roData->unk_18 = 50.0f;
+ roData->initTimer = 0x1E;
+ roData->fovTarget = 50.0f;
break;
- case 0x5A:
- roData->unk_00 = playerHeight * -0.3f * yNormal;
- roData->unk_18 = 45.0f;
+ case CAM_ITEM_TYPE_90:
+ roData->yOffset = playerHeight * -0.3f * yNormal;
+ roData->fovTarget = 45.0f;
roData->interfaceField =
CAM_INTERFACE_FIELD(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_IGNORE, KEEPON4_FLAG_1);
break;
- case 0x5B:
- roData->unk_00 = playerHeight * -0.1f * yNormal;
- roData->unk_04 = playerHeight * 1.5f * yNormal;
- roData->unk_08 = -3.0f;
- roData->unk_0C = 10.0f;
- roData->unk_18 = 55.0f;
+ case CAM_ITEM_TYPE_91:
+ roData->yOffset = playerHeight * -0.1f * yNormal;
+ roData->eyeDist = playerHeight * 1.5f * yNormal;
+ roData->pitchTarget = -3.0f;
+ roData->yawTarget = 10.0f;
+ roData->fovTarget = 55.0f;
roData->interfaceField =
CAM_INTERFACE_FIELD(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_IGNORE, KEEPON4_FLAG_3);
break;
- case 0x51:
- roData->unk_00 = playerHeight * -0.3f * yNormal;
- roData->unk_04 = playerHeight * 1.5f * yNormal;
- roData->unk_08 = 2.0f;
- roData->unk_18 = 45.0f;
- roData->unk_0C = 20.0f;
- roData->unk_10 = 20.0f;
+ case CAM_ITEM_TYPE_81:
+ roData->yOffset = playerHeight * -0.3f * yNormal;
+ roData->eyeDist = playerHeight * 1.5f * yNormal;
+ roData->pitchTarget = 2.0f;
+ roData->fovTarget = 45.0f;
+ roData->yawTarget = 20.0f;
+ roData->atOffsetPlayerForwards = 20.0f;
roData->interfaceField =
CAM_INTERFACE_FIELD(CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_NOTHING_ALT, KEEPON4_FLAG_7);
- roData->unk_1E = 0x1E;
+ roData->initTimer = 0x1E;
break;
- case 11:
- roData->unk_00 = playerHeight * -0.19f * yNormal;
- roData->unk_04 = playerHeight * 0.7f * yNormal;
- roData->unk_0C = 130.0f;
- roData->unk_10 = 10.0f;
+ case CAM_ITEM_TYPE_11:
+ roData->yOffset = playerHeight * -0.19f * yNormal;
+ roData->eyeDist = playerHeight * 0.7f * yNormal;
+ roData->yawTarget = 130.0f;
+ roData->atOffsetPlayerForwards = 10.0f;
roData->interfaceField = CAM_INTERFACE_FIELD(
CAM_LETTERBOX_MEDIUM, CAM_HUD_VISIBILITY_A_HEARTS_MAGIC_FORCE, KEEPON4_FLAG_5 | KEEPON4_FLAG_1);
break;
@@ -3839,87 +3839,87 @@ s32 Camera_KeepOn4(Camera* camera) {
sUpdateCameraDirection = 1;
sCameraInterfaceField = roData->interfaceField;
- spB0 = OLib_Vec3fDiffToVecGeo(at, eye);
- spA8 = OLib_Vec3fDiffToVecGeo(at, eyeNext);
- D_8015BD50 = playerPosRot->pos;
- D_8015BD50.y += playerHeight;
- temp_f0_2 = BgCheck_CameraRaycastDown2(&camera->play->colCtx, &spC0, &i, &D_8015BD50);
- if (temp_f0_2 > (roData->unk_00 + D_8015BD50.y)) {
- D_8015BD50.y = temp_f0_2 + 10.0f;
+ atToEyeDir = OLib_Vec3fDiffToVecGeo(at, eye);
+ atToEyeNextDir = OLib_Vec3fDiffToVecGeo(at, eyeNext);
+ sAtTarget = playerPosRot->pos;
+ sAtTarget.y += playerHeight;
+ temp_f0_2 = BgCheck_CameraRaycastDown2(&camera->play->colCtx, &spC0, &i, &sAtTarget);
+ if (temp_f0_2 > (roData->yOffset + sAtTarget.y)) {
+ sAtTarget.y = temp_f0_2 + 10.0f;
} else {
- D_8015BD50.y += roData->unk_00;
+ sAtTarget.y += roData->yOffset;
}
- sp9C = 0;
+ lineOCCheckNumExclusions = 0;
switch (camera->animState) {
case 0:
case 20:
- spCC[sp9C] = &camera->player->actor;
- sp9C++;
+ lineOCCheckExclusions[lineOCCheckNumExclusions] = &camera->player->actor;
+ lineOCCheckNumExclusions++;
func_80043ABC(camera);
camera->stateFlags &= ~(CAM_STATE_CHECK_WATER | CAM_STATE_CHECK_BG);
- rwData->unk_10 = roData->unk_1E;
+ rwData->animTimer = roData->initTimer;
rwData->unk_08 = playerPosRot->pos.y - camera->playerPosDelta.y;
if (roData->interfaceField & KEEPON4_FLAG_1) {
- spA2 = CAM_DEG_TO_BINANG(roData->unk_08);
- spA0 = (s16)((s16)(playerPosRot->rot.y - 0x7FFF) - spA8.yaw) > 0
- ? (s16)(playerPosRot->rot.y - 0x7FFF) + CAM_DEG_TO_BINANG(roData->unk_0C)
- : (s16)(playerPosRot->rot.y - 0x7FFF) - CAM_DEG_TO_BINANG(roData->unk_0C);
+ atToEyeBasePitch = CAM_DEG_TO_BINANG(roData->pitchTarget);
+ atToEyeBaseYaw = (s16)((s16)(playerPosRot->rot.y - 0x7FFF) - atToEyeNextDir.yaw) > 0
+ ? (s16)(playerPosRot->rot.y - 0x7FFF) + CAM_DEG_TO_BINANG(roData->yawTarget)
+ : (s16)(playerPosRot->rot.y - 0x7FFF) - CAM_DEG_TO_BINANG(roData->yawTarget);
} else if (roData->interfaceField & KEEPON4_FLAG_2) {
- spA2 = CAM_DEG_TO_BINANG(roData->unk_08);
- spA0 = CAM_DEG_TO_BINANG(roData->unk_0C);
+ atToEyeBasePitch = CAM_DEG_TO_BINANG(roData->pitchTarget);
+ atToEyeBaseYaw = CAM_DEG_TO_BINANG(roData->yawTarget);
} else if ((roData->interfaceField & KEEPON4_FLAG_3) && camera->target != NULL) {
PosRot sp60;
sp60 = Actor_GetWorldPosShapeRot(camera->target);
- spA2 = CAM_DEG_TO_BINANG(roData->unk_08) - sp60.rot.x;
- spA0 = (s16)((s16)(sp60.rot.y - 0x7FFF) - spA8.yaw) > 0
- ? (s16)(sp60.rot.y - 0x7FFF) + CAM_DEG_TO_BINANG(roData->unk_0C)
- : (s16)(sp60.rot.y - 0x7FFF) - CAM_DEG_TO_BINANG(roData->unk_0C);
- spCC[1] = camera->target;
- sp9C++;
+ atToEyeBasePitch = CAM_DEG_TO_BINANG(roData->pitchTarget) - sp60.rot.x;
+ atToEyeBaseYaw = (s16)((s16)(sp60.rot.y - 0x7FFF) - atToEyeNextDir.yaw) > 0
+ ? (s16)(sp60.rot.y - 0x7FFF) + CAM_DEG_TO_BINANG(roData->yawTarget)
+ : (s16)(sp60.rot.y - 0x7FFF) - CAM_DEG_TO_BINANG(roData->yawTarget);
+ lineOCCheckExclusions[1] = camera->target;
+ lineOCCheckNumExclusions++;
} else if ((roData->interfaceField & KEEPON4_FLAG_7) && camera->target != NULL) {
PosRot sp4C;
sp4C = Actor_GetWorld(camera->target);
- spA2 = CAM_DEG_TO_BINANG(roData->unk_08);
+ atToEyeBasePitch = CAM_DEG_TO_BINANG(roData->pitchTarget);
sp9E = Camera_XZAngle(&sp4C.pos, &playerPosRot->pos);
- spA0 = ((s16)(sp9E - spA8.yaw) > 0) ? sp9E + CAM_DEG_TO_BINANG(roData->unk_0C)
- : sp9E - CAM_DEG_TO_BINANG(roData->unk_0C);
- spCC[1] = camera->target;
- sp9C++;
+ atToEyeBaseYaw = ((s16)(sp9E - atToEyeNextDir.yaw) > 0) ? sp9E + CAM_DEG_TO_BINANG(roData->yawTarget)
+ : sp9E - CAM_DEG_TO_BINANG(roData->yawTarget);
+ lineOCCheckExclusions[1] = camera->target;
+ lineOCCheckNumExclusions++;
} else if (roData->interfaceField & KEEPON4_FLAG_6) {
- spA2 = CAM_DEG_TO_BINANG(roData->unk_08);
- spA0 = spA8.yaw;
+ atToEyeBasePitch = CAM_DEG_TO_BINANG(roData->pitchTarget);
+ atToEyeBaseYaw = atToEyeNextDir.yaw;
} else {
- spA2 = spA8.pitch;
- spA0 = spA8.yaw;
+ atToEyeBasePitch = atToEyeNextDir.pitch;
+ atToEyeBaseYaw = atToEyeNextDir.yaw;
}
- spB8.pitch = spA2;
- spB8.yaw = spA0;
- spB8.r = roData->unk_04;
- D_8015BD70 = Camera_AddVecGeoToVec3f(&D_8015BD50, &spB8);
+ vecGeo.pitch = atToEyeBasePitch;
+ vecGeo.yaw = atToEyeBaseYaw;
+ vecGeo.r = roData->eyeDist;
+ sEyeCandidate = Camera_AddVecGeoToVec3f(&sAtTarget, &vecGeo);
if (!(roData->interfaceField & KEEPON4_FLAG_0)) {
- angleCnt = ARRAY_COUNT(D_8011D3B0);
+ angleCnt = ARRAY_COUNT(sCamCheckAroundOffsetsYaw);
for (i = 0; i < angleCnt; i++) {
- if (!CollisionCheck_LineOCCheck(camera->play, &camera->play->colChkCtx, &D_8015BD50, &D_8015BD70,
- spCC, sp9C) &&
- !Camera_BGCheck(camera, &D_8015BD50, &D_8015BD70)) {
+ if (!CollisionCheck_LineOCCheck(camera->play, &camera->play->colChkCtx, &sAtTarget, &sEyeCandidate,
+ lineOCCheckExclusions, lineOCCheckNumExclusions) &&
+ !Camera_BGCheck(camera, &sAtTarget, &sEyeCandidate)) {
break;
}
- spB8.yaw = D_8011D3B0[i] + spA0;
- spB8.pitch = D_8011D3CC[i] + spA2;
- D_8015BD70 = Camera_AddVecGeoToVec3f(&D_8015BD50, &spB8);
+ vecGeo.yaw = sCamCheckAroundOffsetsYaw[i] + atToEyeBaseYaw;
+ vecGeo.pitch = sCamCheckAroundOffsetsPitch[i] + atToEyeBasePitch;
+ sEyeCandidate = Camera_AddVecGeoToVec3f(&sAtTarget, &vecGeo);
}
#if DEBUG_FEATURES
PRINTF("camera: item: BG&collision check %d time(s)\n", i);
#endif
}
- rwData->unk_04 = (s16)(spB8.pitch - spA8.pitch) / (f32)rwData->unk_10;
- rwData->unk_00 = (s16)(spB8.yaw - spA8.yaw) / (f32)rwData->unk_10;
- rwData->unk_0C = spA8.yaw;
- rwData->unk_0E = spA8.pitch;
+ rwData->atToEyeTargetStepPitch = (s16)(vecGeo.pitch - atToEyeNextDir.pitch) / (f32)rwData->animTimer;
+ rwData->atToEyeTargetStepYaw = (s16)(vecGeo.yaw - atToEyeNextDir.yaw) / (f32)rwData->animTimer;
+ rwData->atToEyeTargetYaw = atToEyeNextDir.yaw;
+ rwData->atToEyeTargetPitch = atToEyeNextDir.pitch;
camera->animState++;
rwData->unk_12 = 1;
break;
@@ -3931,21 +3931,21 @@ s32 Camera_KeepOn4(Camera* camera) {
camera->xzOffsetUpdateRate = 0.25f;
camera->yOffsetUpdateRate = 0.25f;
camera->atLERPStepScale = 0.75f;
- Camera_LERPCeilVec3f(&D_8015BD50, at, 0.5f, 0.5f, 0.2f);
- if (roData->unk_10 != 0.0f) {
- spB8.r = roData->unk_10;
- spB8.pitch = 0;
- spB8.yaw = playerPosRot->rot.y;
- *at = Camera_AddVecGeoToVec3f(at, &spB8);
+ Camera_LERPCeilVec3f(&sAtTarget, at, 0.5f, 0.5f, 0.2f);
+ if (roData->atOffsetPlayerForwards != 0.0f) {
+ vecGeo.r = roData->atOffsetPlayerForwards;
+ vecGeo.pitch = 0;
+ vecGeo.yaw = playerPosRot->rot.y;
+ *at = Camera_AddVecGeoToVec3f(at, &vecGeo);
}
camera->atLERPStepScale = 0.0f;
- camera->dist = Camera_LERPCeilF(roData->unk_04, camera->dist, 0.25f, 2.0f);
- spB8.r = camera->dist;
- if (rwData->unk_10 != 0) {
+ camera->dist = Camera_LERPCeilF(roData->eyeDist, camera->dist, 0.25f, 2.0f);
+ vecGeo.r = camera->dist;
+ if (rwData->animTimer != 0) {
camera->stateFlags |= CAM_STATE_LOCK_MODE;
- rwData->unk_0C += (s16)rwData->unk_00;
- rwData->unk_0E += (s16)rwData->unk_04;
- rwData->unk_10--;
+ rwData->atToEyeTargetYaw += (s16)rwData->atToEyeTargetStepYaw;
+ rwData->atToEyeTargetPitch += (s16)rwData->atToEyeTargetStepPitch;
+ rwData->animTimer--;
} else if (roData->interfaceField & KEEPON4_FLAG_4) {
camera->stateFlags |= (CAM_STATE_CAM_FUNC_FINISH | CAM_STATE_BLOCK_BG);
camera->stateFlags |= (CAM_STATE_CHECK_WATER | CAM_STATE_CHECK_BG);
@@ -3967,12 +3967,12 @@ s32 Camera_KeepOn4(Camera* camera) {
}
}
}
- spB8.yaw = Camera_LERPCeilS(rwData->unk_0C, spA8.yaw, roData->unk_14, 4);
- spB8.pitch = Camera_LERPCeilS(rwData->unk_0E, spA8.pitch, roData->unk_14, 4);
- *eyeNext = Camera_AddVecGeoToVec3f(at, &spB8);
+ vecGeo.yaw = Camera_LERPCeilS(rwData->atToEyeTargetYaw, atToEyeNextDir.yaw, roData->unk_14, 4);
+ vecGeo.pitch = Camera_LERPCeilS(rwData->atToEyeTargetPitch, atToEyeNextDir.pitch, roData->unk_14, 4);
+ *eyeNext = Camera_AddVecGeoToVec3f(at, &vecGeo);
*eye = *eyeNext;
Camera_BGCheck(camera, at, eye);
- camera->fov = Camera_LERPCeilF(roData->unk_18, camera->fov, camera->fovUpdateRate, 1.0f);
+ camera->fov = Camera_LERPCeilF(roData->fovTarget, camera->fov, camera->fovUpdateRate, 1.0f);
camera->roll = Camera_LERPCeilS(0, camera->roll, 0.5f, 0xA);
//! @bug Missing return, but the return value is not used.
}
@@ -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_camera_data.inc.c b/src/code/z_camera_data.inc.c
index 9a9795f453..82d1dd619a 100644
--- a/src/code/z_camera_data.inc.c
+++ b/src/code/z_camera_data.inc.c
@@ -110,7 +110,7 @@ s16 sCamDataRegsInit[CAM_DATA_MAX] = {
0, // CAM_DATA_AT_OFFSET_X
0, // CAM_DATA_AT_OFFSET_Y
0, // CAM_DATA_AT_OFFSET_Z
- 6, // CAM_DATA_UNK_22
+ 6, // CAM_DATA_INIT_TIMER
60, // CAM_DATA_UNK_23
30, // CAM_DATA_FOV_SCALE
0, // CAM_DATA_YAW_SCALE
@@ -2574,12 +2574,14 @@ s32 sCameraLetterboxSize = 32;
s32 D_8011D3AC = -1;
-s16 D_8011D3B0[] = {
- 0x0AAA, 0xF556, 0x1555, 0xEAAB, 0x2AAA, 0xD556, 0x3FFF, 0xC001, 0x5555, 0xAAAB, 0x6AAA, 0x9556, 0x7FFF, 0x0000,
+// Used in Camera_KeepOn3 and Camera_KeepOn4 to check around an `at` position for an `eye` position such that the
+// `at`-`eye` segment is not obstructed by collision or colliders.
+s16 sCamCheckAroundOffsetsYaw[] = {
+ 0x0AAA, -0x0AAA, 0x1555, -0x1555, 0x2AAA, -0x2AAA, 0x3FFF,
+ -0x3FFF, 0x5555, -0x5555, 0x6AAA, -0x6AAA, 0x7FFF, 0x0000,
};
-
-s16 D_8011D3CC[] = {
- 0x0000, 0x02C6, 0x058C, 0x0000, 0x0000, 0xFD3A, 0x0000, 0x0852, 0x0000, 0x0000, 0x0B18, 0x02C6, 0xFA74, 0x0000,
+s16 sCamCheckAroundOffsetsPitch[] = {
+ 0x0000, 0x02C6, 0x058C, 0x0000, 0x0000, -0x02C6, 0x0000, 0x0852, 0x0000, 0x0000, 0x0B18, 0x02C6, -0x058C, 0x0000,
};
s32 sUpdateCameraDirection = 0;
diff --git a/src/code/z_collision_check.c b/src/code/z_collision_check.c
index 158948a2eb..2b7ed05de0 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*);
@@ -172,7 +172,7 @@ s32 Collider_DestroyElementDamageInfoAT(PlayState* play, ColliderElementDamageIn
s32 Collider_SetElementDamageInfoAT(PlayState* play, ColliderElementDamageInfoAT* dest,
ColliderElementDamageInfoAT* src) {
dest->dmgFlags = src->dmgFlags;
- dest->effect = src->effect;
+ dest->hitSpecialEffect = src->hitSpecialEffect;
dest->damage = src->damage;
return true;
}
@@ -194,7 +194,7 @@ s32 Collider_DestroyElementDamageInfoAC(PlayState* play, ColliderElementDamageIn
s32 Collider_SetElementDamageInfoAC(PlayState* play, ColliderElementDamageInfoAC* acDmgInfo,
ColliderElementDamageInfoACInit* init) {
acDmgInfo->dmgFlags = init->dmgFlags;
- acDmgInfo->effect = init->effect;
+ acDmgInfo->hitBacklash = init->hitBacklash;
acDmgInfo->defense = init->defense;
return true;
}
@@ -1566,11 +1566,9 @@ void CollisionCheck_HitSolid(PlayState* play, ColliderElement* elem, Collider* c
if (flags == ATELEM_SFX_NORMAL && collider->colMaterial != COL_MATERIAL_METAL) {
EffectSsHitMark_SpawnFixedScale(play, EFFECT_HITMARK_WHITE, hitPos);
if (collider->actor == NULL) {
- Audio_PlaySfxGeneral(NA_SE_IT_SHIELD_BOUND, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_IT_SHIELD_BOUND);
} else {
- Audio_PlaySfxGeneral(NA_SE_IT_SHIELD_BOUND, &collider->actor->projectedPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&collider->actor->projectedPos, NA_SE_IT_SHIELD_BOUND);
}
} else if (flags == ATELEM_SFX_NORMAL) { // collider->colMaterial == COL_MATERIAL_METAL
EffectSsHitMark_SpawnFixedScale(play, EFFECT_HITMARK_METAL, hitPos);
@@ -1582,20 +1580,16 @@ void CollisionCheck_HitSolid(PlayState* play, ColliderElement* elem, Collider* c
} else if (flags == ATELEM_SFX_HARD) {
EffectSsHitMark_SpawnFixedScale(play, EFFECT_HITMARK_WHITE, hitPos);
if (collider->actor == NULL) {
- Audio_PlaySfxGeneral(NA_SE_IT_SHIELD_BOUND, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_IT_SHIELD_BOUND);
} else {
- Audio_PlaySfxGeneral(NA_SE_IT_SHIELD_BOUND, &collider->actor->projectedPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&collider->actor->projectedPos, NA_SE_IT_SHIELD_BOUND);
}
} else if (flags == ATELEM_SFX_WOOD) {
EffectSsHitMark_SpawnFixedScale(play, EFFECT_HITMARK_DUST, hitPos);
if (collider->actor == NULL) {
- Audio_PlaySfxGeneral(NA_SE_IT_REFLECTION_WOOD, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_IT_REFLECTION_WOOD);
} else {
- Audio_PlaySfxGeneral(NA_SE_IT_REFLECTION_WOOD, &collider->actor->projectedPos, 4,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&collider->actor->projectedPos, NA_SE_IT_REFLECTION_WOOD);
}
}
}
@@ -1606,17 +1600,13 @@ void CollisionCheck_HitSolid(PlayState* play, ColliderElement* elem, Collider* c
s32 CollisionCheck_SwordHitAudio(Collider* atCol, ColliderElement* acElem) {
if (atCol->actor != NULL && atCol->actor->category == ACTORCAT_PLAYER) {
if (acElem->elemMaterial == ELEM_MATERIAL_UNK0) {
- Audio_PlaySfxGeneral(NA_SE_IT_SWORD_STRIKE, &atCol->actor->projectedPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&atCol->actor->projectedPos, NA_SE_IT_SWORD_STRIKE);
} else if (acElem->elemMaterial == ELEM_MATERIAL_UNK1) {
- Audio_PlaySfxGeneral(NA_SE_IT_SWORD_STRIKE_HARD, &atCol->actor->projectedPos, 4,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&atCol->actor->projectedPos, NA_SE_IT_SWORD_STRIKE_HARD);
} else if (acElem->elemMaterial == ELEM_MATERIAL_UNK2) {
- Audio_PlaySfxGeneral(NA_SE_NONE, &atCol->actor->projectedPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&atCol->actor->projectedPos, NA_SE_NONE);
} else if (acElem->elemMaterial == ELEM_MATERIAL_UNK3) {
- Audio_PlaySfxGeneral(NA_SE_NONE, &atCol->actor->projectedPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&atCol->actor->projectedPos, NA_SE_NONE);
}
}
return true;
@@ -1693,8 +1683,7 @@ void CollisionCheck_HitEffects(PlayState* play, Collider* atCol, ColliderElement
} else if (sHitInfo[acCol->colMaterial].effect == HIT_WOOD) {
if (atCol->actor == NULL) {
CollisionCheck_SpawnShieldParticles(play, hitPos);
- Audio_PlaySfxGeneral(NA_SE_IT_REFLECTION_WOOD, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_IT_REFLECTION_WOOD);
} else {
CollisionCheck_SpawnShieldParticlesWood(play, hitPos, &atCol->actor->projectedPos);
}
@@ -1707,11 +1696,9 @@ void CollisionCheck_HitEffects(PlayState* play, Collider* atCol, ColliderElement
} else {
EffectSsHitMark_SpawnFixedScale(play, EFFECT_HITMARK_WHITE, hitPos);
if (acCol->actor == NULL) {
- Audio_PlaySfxGeneral(NA_SE_IT_SHIELD_BOUND, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_IT_SHIELD_BOUND);
} else {
- Audio_PlaySfxGeneral(NA_SE_IT_SHIELD_BOUND, &acCol->actor->projectedPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&acCol->actor->projectedPos, NA_SE_IT_SHIELD_BOUND);
}
}
}
@@ -1739,7 +1726,7 @@ s32 CollisionCheck_SetATvsAC(PlayState* play, Collider* atCol, ColliderElement*
atElem->atHitElem = acElem;
atElem->atElemFlags |= ATELEM_HIT;
if (atCol->actor != NULL) {
- atCol->actor->colChkInfo.atHitEffect = acElem->acDmgInfo.effect;
+ atCol->actor->colChkInfo.atHitBacklash = acElem->acDmgInfo.hitBacklash;
}
}
acCol->acFlags |= AC_HIT;
@@ -1748,7 +1735,7 @@ s32 CollisionCheck_SetATvsAC(PlayState* play, Collider* atCol, ColliderElement*
acElem->acHitElem = atElem;
acElem->acElemFlags |= ACELEM_HIT;
if (acCol->actor != NULL) {
- acCol->actor->colChkInfo.acHitEffect = atElem->atDmgInfo.effect;
+ acCol->actor->colChkInfo.acHitSpecialEffect = atElem->atDmgInfo.hitSpecialEffect;
}
acElem->acDmgInfo.hitPos.x = hitPos->x;
acElem->acDmgInfo.hitPos.y = hitPos->y;
@@ -3028,8 +3015,8 @@ void CollisionCheck_InitInfo(CollisionCheckInfo* info) {
void CollisionCheck_ResetDamage(CollisionCheckInfo* info) {
info->damage = 0;
info->damageReaction = 0;
- info->atHitEffect = 0;
- info->acHitEffect = 0;
+ info->atHitBacklash = HIT_BACKLASH_NONE;
+ info->acHitSpecialEffect = HIT_SPECIAL_EFFECT_NONE;
info->displacement.x = info->displacement.y = info->displacement.z = 0.0f;
}
@@ -3525,8 +3512,7 @@ void CollisionCheck_SpawnShieldParticles(PlayState* play, Vec3f* v) {
*/
void CollisionCheck_SpawnShieldParticlesMetal(PlayState* play, Vec3f* v) {
CollisionCheck_SpawnShieldParticles(play, v);
- Audio_PlaySfxGeneral(NA_SE_IT_SHIELD_REFLECT_SW, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_IT_SHIELD_REFLECT_SW);
}
/**
@@ -3534,8 +3520,7 @@ void CollisionCheck_SpawnShieldParticlesMetal(PlayState* play, Vec3f* v) {
*/
void CollisionCheck_SpawnShieldParticlesMetalSfx(PlayState* play, Vec3f* v, Vec3f* pos) {
CollisionCheck_SpawnShieldParticles(play, v);
- Audio_PlaySfxGeneral(NA_SE_IT_SHIELD_REFLECT_SW, pos, 4, &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(pos, NA_SE_IT_SHIELD_REFLECT_SW);
}
/**
@@ -3575,8 +3560,7 @@ void CollisionCheck_SpawnShieldParticlesWood(PlayState* play, Vec3f* v, Vec3f* a
woodInit.lightPoint.z = woodInit.position.z;
Effect_Add(play, &effectIndex, EFFECT_SHIELD_PARTICLE, 0, 1, &woodInit);
- Audio_PlaySfxGeneral(NA_SE_IT_REFLECTION_WOOD, actorPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(actorPos, NA_SE_IT_REFLECTION_WOOD);
}
/**
diff --git a/src/code/z_common_data.c b/src/code/z_common_data.c
index 1dfd4d2419..eeb620e842 100644
--- a/src/code/z_common_data.c
+++ b/src/code/z_common_data.c
@@ -25,7 +25,7 @@ void SaveContext_Init(void) {
gSaveContext.seqId = (u8)NA_BGM_DISABLED;
gSaveContext.natureAmbienceId = NATURE_ID_DISABLED;
gSaveContext.forcedSeqId = NA_BGM_GENERAL_SFX;
- gSaveContext.nextCutsceneIndex = 0xFFEF;
+ gSaveContext.nextCutsceneIndex = NEXT_CS_INDEX_NONE;
gSaveContext.cutsceneTrigger = 0;
gSaveContext.chamberCutsceneNum = CHAMBER_CS_FOREST;
gSaveContext.nextDayTime = NEXT_TIME_NONE;
diff --git a/src/code/z_construct.c b/src/code/z_construct.c
index 0f737145e1..92c84de000 100644
--- a/src/code/z_construct.c
+++ b/src/code/z_construct.c
@@ -270,18 +270,18 @@ void Regs_InitDataImpl(void) {
YREG(47) = 0;
#if OOT_NTSC
- R_KALEIDO_UNK1(0) = -45;
- R_KALEIDO_UNK1(1) = -48;
- R_KALEIDO_UNK2(0) = 16;
- R_KALEIDO_UNK2(1) = 22;
- R_KALEIDO_UNK3(0) = -55;
- R_KALEIDO_UNK3(1) = -53;
- R_KALEIDO_UNK4(0) = 43;
- R_KALEIDO_UNK4(1) = 47;
- R_KALEIDO_UNK5(0) = -33;
- R_KALEIDO_UNK5(1) = -42;
- R_KALEIDO_UNK6(0) = -33;
- R_KALEIDO_UNK6(1) = -37;
+ R_PAUSE_INFO_PANEL_ICON_C_ITEM_X(LANGUAGE_JPN) = -45;
+ R_PAUSE_INFO_PANEL_ICON_C_ITEM_X(LANGUAGE_ENG) = -48;
+ R_PAUSE_INFO_PANEL_TEXT_X(LANGUAGE_JPN) = 16;
+ R_PAUSE_INFO_PANEL_TEXT_X(LANGUAGE_ENG) = 22;
+ R_PAUSE_INFO_PANEL_ICON_PLAY_SONG_X(LANGUAGE_JPN) = -55;
+ R_PAUSE_INFO_PANEL_ICON_PLAY_SONG_X(LANGUAGE_ENG) = -53;
+ R_PAUSE_INFO_PANEL_TEXT_C_ITEM_X(LANGUAGE_JPN) = 43;
+ R_PAUSE_INFO_PANEL_TEXT_C_ITEM_X(LANGUAGE_ENG) = 47;
+ R_PAUSE_INFO_PANEL_ICON_SAVE_PROMPT_X(LANGUAGE_JPN) = -33;
+ R_PAUSE_INFO_PANEL_ICON_SAVE_PROMPT_X(LANGUAGE_ENG) = -42;
+ R_PAUSE_INFO_PANEL_ICON_EQUIP_X(LANGUAGE_JPN) = -33;
+ R_PAUSE_INFO_PANEL_ICON_EQUIP_X(LANGUAGE_ENG) = -37;
#else
// Same as above, although these regs are now unused for PAL versions
YREG(48) = -45;
@@ -369,24 +369,24 @@ void Regs_InitDataImpl(void) {
ZREG(47) = 1;
#if OOT_NTSC
- R_START_LABEL_DD(0) = 86;
- R_START_LABEL_DD(1) = 100;
+ R_START_LABEL_DD(LANGUAGE_JPN) = 86;
+ R_START_LABEL_DD(LANGUAGE_ENG) = 100;
R_START_LABEL_WIDTH = 0;
R_START_LABEL_HEIGHT = 0;
- R_START_LABEL_Y(0) = 21;
- R_START_LABEL_Y(1) = 20;
- R_START_LABEL_X(0) = 122;
- R_START_LABEL_X(1) = 120;
+ R_START_LABEL_Y(LANGUAGE_JPN) = 21;
+ R_START_LABEL_Y(LANGUAGE_ENG) = 20;
+ R_START_LABEL_X(LANGUAGE_JPN) = 122;
+ R_START_LABEL_X(LANGUAGE_ENG) = 120;
#else
- R_START_LABEL_DD(0) = 100;
- R_START_LABEL_DD(1) = 89;
- R_START_LABEL_DD(2) = 92;
- R_START_LABEL_Y(0) = 20;
- R_START_LABEL_Y(1) = 20;
- R_START_LABEL_Y(2) = 20;
- R_START_LABEL_X(0) = 120;
- R_START_LABEL_X(1) = 119;
- R_START_LABEL_X(2) = 119;
+ R_START_LABEL_DD(LANGUAGE_ENG) = 100;
+ R_START_LABEL_DD(LANGUAGE_GER) = 89;
+ R_START_LABEL_DD(LANGUAGE_FRA) = 92;
+ R_START_LABEL_Y(LANGUAGE_ENG) = 20;
+ R_START_LABEL_Y(LANGUAGE_GER) = 20;
+ R_START_LABEL_Y(LANGUAGE_FRA) = 20;
+ R_START_LABEL_X(LANGUAGE_ENG) = 120;
+ R_START_LABEL_X(LANGUAGE_GER) = 119;
+ R_START_LABEL_X(LANGUAGE_FRA) = 119;
#endif
R_PAUSE_QUEST_MEDALLION_SHINE_TIME(0) = 1;
@@ -528,14 +528,14 @@ void Regs_InitDataImpl(void) {
WREG(7) = 0;
#if OOT_NTSC
- R_B_LABEL_SCALE(0) = 100;
- R_B_LABEL_SCALE(1) = 109;
- R_B_LABEL_X(0) = 151;
- R_B_LABEL_X(1) = 148;
- R_B_LABEL_Y(0) = 23;
- R_B_LABEL_Y(1) = 22;
- R_A_LABEL_Z(0) = -380;
- R_A_LABEL_Z(1) = -350;
+ R_B_LABEL_SCALE(LANGUAGE_JPN) = 100;
+ R_B_LABEL_SCALE(LANGUAGE_ENG) = 109;
+ R_B_LABEL_X(LANGUAGE_JPN) = 151;
+ R_B_LABEL_X(LANGUAGE_ENG) = 148;
+ R_B_LABEL_Y(LANGUAGE_JPN) = 23;
+ R_B_LABEL_Y(LANGUAGE_ENG) = 22;
+ R_A_LABEL_Z(LANGUAGE_JPN) = -380;
+ R_A_LABEL_Z(LANGUAGE_ENG) = -350;
#else
// Same as above, although these regs are now unused in PAL versions
WREG(8) = 100;
@@ -548,9 +548,9 @@ void Regs_InitDataImpl(void) {
WREG(15) = -350;
#endif
- WREG(16) = -175;
- WREG(17) = 155;
- WREG(18) = 10;
+ R_PAUSE_BUTTON_LEFT_X = -175;
+ R_PAUSE_BUTTON_RIGHT_X = 155;
+ R_PAUSE_BUTTON_LEFT_RIGHT_Y = 10;
WREG(19) = 10;
WREG(20) = -50;
WREG(21) = -54;
@@ -570,36 +570,36 @@ void Regs_InitDataImpl(void) {
WREG(36) = 0;
#if OOT_PAL
- R_B_LABEL_SCALE(0) = 100;
- R_B_LABEL_SCALE(1) = 99;
- R_B_LABEL_SCALE(2) = 109;
- R_B_LABEL_X(0) = B_BUTTON_X - 9;
- R_B_LABEL_X(1) = B_BUTTON_X - 11;
- R_B_LABEL_X(2) = B_BUTTON_X - 12;
- R_B_LABEL_Y(0) = B_BUTTON_Y + 6;
- R_B_LABEL_Y(1) = B_BUTTON_Y + 5;
- R_B_LABEL_Y(2) = B_BUTTON_Y + 5;
- R_A_LABEL_Z(0) = -380;
- R_A_LABEL_Z(1) = -360;
- R_A_LABEL_Z(2) = -350;
- R_KALEIDO_UNK1(0) = -48;
- R_KALEIDO_UNK1(1) = 16;
- R_KALEIDO_UNK1(2) = -62;
- R_KALEIDO_UNK2(0) = 22;
- R_KALEIDO_UNK2(1) = -84;
- R_KALEIDO_UNK2(2) = 20;
- R_KALEIDO_UNK3(0) = -53;
- R_KALEIDO_UNK3(1) = 40;
- R_KALEIDO_UNK3(2) = -64;
- R_KALEIDO_UNK4(0) = 47;
- R_KALEIDO_UNK4(1) = -84;
- R_KALEIDO_UNK4(2) = 44;
- R_KALEIDO_UNK5(0) = -42;
- R_KALEIDO_UNK5(1) = 32;
- R_KALEIDO_UNK5(2) = -45;
- R_KALEIDO_UNK6(0) = -37;
- R_KALEIDO_UNK6(1) = 30;
- R_KALEIDO_UNK6(2) = -50;
+ R_B_LABEL_SCALE(LANGUAGE_ENG) = 100;
+ R_B_LABEL_SCALE(LANGUAGE_GER) = 99;
+ R_B_LABEL_SCALE(LANGUAGE_FRA) = 109;
+ R_B_LABEL_X(LANGUAGE_ENG) = B_BUTTON_X - 9;
+ R_B_LABEL_X(LANGUAGE_GER) = B_BUTTON_X - 11;
+ R_B_LABEL_X(LANGUAGE_FRA) = B_BUTTON_X - 12;
+ R_B_LABEL_Y(LANGUAGE_ENG) = B_BUTTON_Y + 6;
+ R_B_LABEL_Y(LANGUAGE_GER) = B_BUTTON_Y + 5;
+ R_B_LABEL_Y(LANGUAGE_FRA) = B_BUTTON_Y + 5;
+ R_A_LABEL_Z(LANGUAGE_ENG) = -380;
+ R_A_LABEL_Z(LANGUAGE_GER) = -360;
+ R_A_LABEL_Z(LANGUAGE_FRA) = -350;
+ R_PAUSE_INFO_PANEL_ICON_C_ITEM_X(LANGUAGE_ENG) = -48;
+ R_PAUSE_INFO_PANEL_ICON_C_ITEM_X(LANGUAGE_GER) = 16;
+ R_PAUSE_INFO_PANEL_ICON_C_ITEM_X(LANGUAGE_FRA) = -62;
+ R_PAUSE_INFO_PANEL_TEXT_X(LANGUAGE_ENG) = 22;
+ R_PAUSE_INFO_PANEL_TEXT_X(LANGUAGE_GER) = -84;
+ R_PAUSE_INFO_PANEL_TEXT_X(LANGUAGE_FRA) = 20;
+ R_PAUSE_INFO_PANEL_ICON_PLAY_SONG_X(LANGUAGE_ENG) = -53;
+ R_PAUSE_INFO_PANEL_ICON_PLAY_SONG_X(LANGUAGE_GER) = 40;
+ R_PAUSE_INFO_PANEL_ICON_PLAY_SONG_X(LANGUAGE_FRA) = -64;
+ R_PAUSE_INFO_PANEL_TEXT_C_ITEM_X(LANGUAGE_ENG) = 47;
+ R_PAUSE_INFO_PANEL_TEXT_C_ITEM_X(LANGUAGE_GER) = -84;
+ R_PAUSE_INFO_PANEL_TEXT_C_ITEM_X(LANGUAGE_FRA) = 44;
+ R_PAUSE_INFO_PANEL_ICON_SAVE_PROMPT_X(LANGUAGE_ENG) = -42;
+ R_PAUSE_INFO_PANEL_ICON_SAVE_PROMPT_X(LANGUAGE_GER) = 32;
+ R_PAUSE_INFO_PANEL_ICON_SAVE_PROMPT_X(LANGUAGE_FRA) = -45;
+ R_PAUSE_INFO_PANEL_ICON_EQUIP_X(LANGUAGE_ENG) = -37;
+ R_PAUSE_INFO_PANEL_ICON_EQUIP_X(LANGUAGE_GER) = 30;
+ R_PAUSE_INFO_PANEL_ICON_EQUIP_X(LANGUAGE_FRA) = -50;
#endif
R_DGN_MINIMAP_X = 204;
diff --git a/src/code/z_demo.c b/src/code/z_demo.c
index 5adc6ca48a..358edd32e6 100644
--- a/src/code/z_demo.c
+++ b/src/code/z_demo.c
@@ -202,7 +202,7 @@ void Cutscene_StopManual(PlayState* play, CutsceneContext* csCtx) {
}
void Cutscene_UpdateManual(PlayState* play, CutsceneContext* csCtx) {
- if (gSaveContext.save.cutsceneIndex < 0xFFF0) {
+ if (gSaveContext.save.cutsceneIndex < CS_INDEX_0) {
sManualCutsceneHandlers[csCtx->state](play, csCtx);
}
}
@@ -214,14 +214,14 @@ void Cutscene_UpdateScripted(PlayState* play, CutsceneContext* csCtx) {
if (CHECK_BTN_ALL(input->press.button, BTN_DLEFT) && (csCtx->state == CS_STATE_IDLE) && IS_CUTSCENE_LAYER) {
gUseCutsceneCam = false;
- gSaveContext.save.cutsceneIndex = 0xFFFD;
+ gSaveContext.save.cutsceneIndex = CS_INDEX_D;
gSaveContext.cutsceneTrigger = 1;
}
if (CHECK_BTN_ALL(input->press.button, BTN_DUP) && (csCtx->state == CS_STATE_IDLE) && IS_CUTSCENE_LAYER &&
!gDebugCamEnabled) {
gUseCutsceneCam = true;
- gSaveContext.save.cutsceneIndex = 0xFFFD;
+ gSaveContext.save.cutsceneIndex = CS_INDEX_D;
gSaveContext.cutsceneTrigger = 1;
}
}
@@ -233,11 +233,11 @@ void Cutscene_UpdateScripted(PlayState* play, CutsceneContext* csCtx) {
if ((gSaveContext.cutsceneTrigger != 0) && (csCtx->state == CS_STATE_IDLE)) {
PRINTF(T("\nデモ開始要求 発令!", "\nDemo start request issued!"));
- gSaveContext.save.cutsceneIndex = 0xFFFD;
+ gSaveContext.save.cutsceneIndex = CS_INDEX_D;
gSaveContext.cutsceneTrigger = 1;
}
- if (gSaveContext.save.cutsceneIndex >= 0xFFF0) {
+ if (gSaveContext.save.cutsceneIndex >= CS_INDEX_0) {
Cutscene_SetupScripted(play, csCtx);
sScriptedCutsceneHandlers[csCtx->state](play, csCtx);
}
@@ -596,8 +596,7 @@ void CutsceneCmd_Destination(PlayState* play, CutsceneContext* csCtx, CsCmdDesti
CHECK_BTN_ALL(play->state.input[0].press.button, BTN_B) ||
CHECK_BTN_ALL(play->state.input[0].press.button, BTN_START)) &&
(gSaveContext.fileNum != 0xFEDC) && (play->transitionTrigger == TRANS_TRIGGER_OFF)) {
- Audio_PlaySfxGeneral(NA_SE_SY_PIECE_OF_HEART, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_PIECE_OF_HEART);
titleDemoSkipped = true;
}
@@ -617,54 +616,54 @@ void CutsceneCmd_Destination(PlayState* play, CutsceneContext* csCtx, CsCmdDesti
gSaveContext.forceRisingButtonAlphas = true;
}
- gSaveContext.save.cutsceneIndex = 0;
+ gSaveContext.save.cutsceneIndex = CS_INDEX_NONE;
switch (cmd->destination) {
case CS_DEST_CUTSCENE_MAP_GANON_HORSE:
play->nextEntranceIndex = ENTR_CUTSCENE_MAP_0;
- gSaveContext.save.cutsceneIndex = 0xFFF1;
+ gSaveContext.save.cutsceneIndex = CS_INDEX_1;
play->transitionTrigger = TRANS_TRIGGER_START;
play->transitionType = TRANS_TYPE_FADE_BLACK;
break;
case CS_DEST_CUTSCENE_MAP_THREE_GODDESSES:
play->nextEntranceIndex = ENTR_CUTSCENE_MAP_0;
- gSaveContext.save.cutsceneIndex = 0xFFF0;
+ gSaveContext.save.cutsceneIndex = CS_INDEX_0;
play->transitionTrigger = TRANS_TRIGGER_START;
play->transitionType = TRANS_TYPE_FILL_WHITE;
break;
case CS_DEST_GERUDO_VALLEY_DIN_PART_1:
play->nextEntranceIndex = ENTR_GERUDO_VALLEY_0;
- gSaveContext.save.cutsceneIndex = 0xFFF1;
+ gSaveContext.save.cutsceneIndex = CS_INDEX_1;
play->transitionTrigger = TRANS_TRIGGER_START;
play->transitionType = TRANS_TYPE_FILL_WHITE;
break;
case CS_DEST_DEATH_MOUNTAIN_TRAIL_NAYRU:
play->nextEntranceIndex = ENTR_DEATH_MOUNTAIN_TRAIL_0;
- gSaveContext.save.cutsceneIndex = 0xFFF0;
+ gSaveContext.save.cutsceneIndex = CS_INDEX_0;
play->transitionTrigger = TRANS_TRIGGER_START;
play->transitionType = TRANS_TYPE_FILL_WHITE;
break;
case CS_DEST_KOKIRI_FOREST_FARORE:
play->nextEntranceIndex = ENTR_KOKIRI_FOREST_0;
- gSaveContext.save.cutsceneIndex = 0xFFF0;
+ gSaveContext.save.cutsceneIndex = CS_INDEX_0;
play->transitionTrigger = TRANS_TRIGGER_START;
play->transitionType = TRANS_TYPE_FILL_WHITE;
break;
case CS_DEST_CUTSCENE_MAP_TRIFORCE_CREATION:
play->nextEntranceIndex = ENTR_CUTSCENE_MAP_0;
- gSaveContext.save.cutsceneIndex = 0xFFF2;
+ gSaveContext.save.cutsceneIndex = CS_INDEX_2;
play->transitionTrigger = TRANS_TRIGGER_START;
play->transitionType = TRANS_TYPE_FILL_WHITE;
break;
case CS_DEST_KOKIRI_FOREST_RECEIVE_KOKIRI_EMERALD:
play->nextEntranceIndex = ENTR_KOKIRI_FOREST_0;
- gSaveContext.save.cutsceneIndex = 0xFFF2;
+ gSaveContext.save.cutsceneIndex = CS_INDEX_2;
play->transitionTrigger = TRANS_TRIGGER_START;
play->transitionType = TRANS_TYPE_INSTANT;
break;
@@ -677,7 +676,7 @@ void CutsceneCmd_Destination(PlayState* play, CutsceneContext* csCtx, CsCmdDesti
SET_EVENTCHKINF(EVENTCHKINF_45);
play->nextEntranceIndex = ENTR_CUTSCENE_MAP_0;
play->transitionTrigger = TRANS_TRIGGER_START;
- gSaveContext.save.cutsceneIndex = 0xFFF3;
+ gSaveContext.save.cutsceneIndex = CS_INDEX_3;
play->transitionType = TRANS_TYPE_INSTANT;
} else {
if (!IS_CUTSCENE_LAYER) {
@@ -697,21 +696,21 @@ void CutsceneCmd_Destination(PlayState* play, CutsceneContext* csCtx, CsCmdDesti
case CS_DEST_GERUDO_VALLEY_DIN_PART_2:
play->nextEntranceIndex = ENTR_GERUDO_VALLEY_0;
- gSaveContext.save.cutsceneIndex = 0xFFF0;
+ gSaveContext.save.cutsceneIndex = CS_INDEX_0;
play->transitionTrigger = TRANS_TRIGGER_START;
play->transitionType = TRANS_TYPE_FILL_BROWN;
break;
case CS_DEST_LINKS_HOUSE_INTRO:
play->nextEntranceIndex = ENTR_LINKS_HOUSE_0;
- gSaveContext.save.cutsceneIndex = 0xFFF0;
+ gSaveContext.save.cutsceneIndex = CS_INDEX_0;
play->transitionTrigger = TRANS_TRIGGER_START;
play->transitionType = TRANS_TYPE_FADE_BLACK;
break;
case CS_DEST_KOKIRI_FOREST_INTRO:
play->nextEntranceIndex = ENTR_KOKIRI_FOREST_0;
- gSaveContext.save.cutsceneIndex = 0xFFF3;
+ gSaveContext.save.cutsceneIndex = CS_INDEX_3;
play->transitionTrigger = TRANS_TRIGGER_START;
play->transitionType = TRANS_TYPE_FADE_WHITE;
break;
@@ -738,21 +737,21 @@ void CutsceneCmd_Destination(PlayState* play, CutsceneContext* csCtx, CsCmdDesti
case CS_DEST_TEMPLE_OF_TIME_KOKIRI_EMERALD_RESTORED:
play->nextEntranceIndex = ENTR_TEMPLE_OF_TIME_0;
play->transitionTrigger = TRANS_TRIGGER_START;
- gSaveContext.save.cutsceneIndex = 0xFFF4;
+ gSaveContext.save.cutsceneIndex = CS_INDEX_4;
play->transitionType = TRANS_TYPE_FADE_WHITE;
break;
case CS_DEST_TEMPLE_OF_TIME_GORON_RUBY_RESTORED:
play->nextEntranceIndex = ENTR_TEMPLE_OF_TIME_0;
play->transitionTrigger = TRANS_TRIGGER_START;
- gSaveContext.save.cutsceneIndex = 0xFFF5;
+ gSaveContext.save.cutsceneIndex = CS_INDEX_5;
play->transitionType = TRANS_TYPE_FADE_WHITE;
break;
case CS_DEST_TEMPLE_OF_TIME_ZORAS_SAPPHIRE_RESTORED:
play->nextEntranceIndex = ENTR_TEMPLE_OF_TIME_0;
play->transitionTrigger = TRANS_TRIGGER_START;
- gSaveContext.save.cutsceneIndex = 0xFFF6;
+ gSaveContext.save.cutsceneIndex = CS_INDEX_6;
play->transitionType = TRANS_TYPE_FADE_WHITE;
break;
@@ -770,13 +769,13 @@ void CutsceneCmd_Destination(PlayState* play, CutsceneContext* csCtx, CsCmdDesti
play->nextEntranceIndex = ENTR_DEATH_MOUNTAIN_TRAIL_0;
play->transitionTrigger = TRANS_TRIGGER_START;
play->transitionType = TRANS_TYPE_FADE_BLACK_FAST;
- gSaveContext.save.cutsceneIndex = 0x8000;
+ gSaveContext.save.cutsceneIndex = CS_INDEX_DAY;
break;
case CS_DEST_LAKE_HYLIA_WATER_RESTORED:
play->nextEntranceIndex = ENTR_LAKE_HYLIA_0;
play->transitionTrigger = TRANS_TRIGGER_START;
- gSaveContext.save.cutsceneIndex = 0xFFF0;
+ gSaveContext.save.cutsceneIndex = CS_INDEX_0;
play->transitionType = TRANS_TYPE_FADE_WHITE;
break;
@@ -784,14 +783,14 @@ void CutsceneCmd_Destination(PlayState* play, CutsceneContext* csCtx, CsCmdDesti
Item_Give(play, ITEM_SONG_REQUIEM);
play->nextEntranceIndex = ENTR_DESERT_COLOSSUS_0;
play->transitionTrigger = TRANS_TRIGGER_START;
- gSaveContext.save.cutsceneIndex = 0xFFF0;
+ gSaveContext.save.cutsceneIndex = CS_INDEX_0;
play->transitionType = TRANS_TYPE_FADE_WHITE;
break;
case CS_DEST_CUTSCENE_MAP_GANONDORF_DEFEATED_CREDITS:
play->nextEntranceIndex = ENTR_CUTSCENE_MAP_0;
play->transitionTrigger = TRANS_TRIGGER_START;
- gSaveContext.save.cutsceneIndex = 0xFFF8;
+ gSaveContext.save.cutsceneIndex = CS_INDEX_8;
play->transitionType = TRANS_TYPE_FADE_WHITE;
break;
@@ -805,28 +804,28 @@ void CutsceneCmd_Destination(PlayState* play, CutsceneContext* csCtx, CsCmdDesti
play->linkAgeOnLoad = LINK_AGE_ADULT;
play->nextEntranceIndex = ENTR_CHAMBER_OF_THE_SAGES_0;
play->transitionTrigger = TRANS_TRIGGER_START;
- gSaveContext.save.cutsceneIndex = 0xFFF0;
+ gSaveContext.save.cutsceneIndex = CS_INDEX_0;
play->transitionType = TRANS_TYPE_FADE_WHITE;
break;
case CS_DEST_TEMPLE_OF_TIME_KOKIRI_EMERALD_RESTORED_2:
play->nextEntranceIndex = ENTR_TEMPLE_OF_TIME_0;
play->transitionTrigger = TRANS_TRIGGER_START;
- gSaveContext.save.cutsceneIndex = 0xFFF4;
+ gSaveContext.save.cutsceneIndex = CS_INDEX_4;
play->transitionType = TRANS_TYPE_FADE_WHITE;
break;
case CS_DEST_TEMPLE_OF_TIME_GORON_RUBY_RESTORED_2:
play->nextEntranceIndex = ENTR_TEMPLE_OF_TIME_0;
play->transitionTrigger = TRANS_TRIGGER_START;
- gSaveContext.save.cutsceneIndex = 0xFFF5;
+ gSaveContext.save.cutsceneIndex = CS_INDEX_5;
play->transitionType = TRANS_TYPE_FADE_WHITE;
break;
case CS_DEST_TEMPLE_OF_TIME_ZORAS_SAPPHIRE_RESTORED_2:
play->nextEntranceIndex = ENTR_TEMPLE_OF_TIME_0;
play->transitionTrigger = TRANS_TRIGGER_START;
- gSaveContext.save.cutsceneIndex = 0xFFF6;
+ gSaveContext.save.cutsceneIndex = CS_INDEX_6;
play->transitionType = TRANS_TYPE_FADE_WHITE;
break;
@@ -856,7 +855,7 @@ void CutsceneCmd_Destination(PlayState* play, CutsceneContext* csCtx, CsCmdDesti
play->linkAgeOnLoad = LINK_AGE_CHILD;
play->nextEntranceIndex = ENTR_HYRULE_FIELD_0;
play->transitionTrigger = TRANS_TRIGGER_START;
- gSaveContext.save.cutsceneIndex = 0xFFF2;
+ gSaveContext.save.cutsceneIndex = CS_INDEX_2;
play->transitionType = TRANS_TYPE_INSTANT;
break;
@@ -869,28 +868,28 @@ void CutsceneCmd_Destination(PlayState* play, CutsceneContext* csCtx, CsCmdDesti
case CS_DEST_CUTSCENE_MAP_GANONDORF_FROM_MASTER_SWORD:
play->nextEntranceIndex = ENTR_CUTSCENE_MAP_0;
play->transitionTrigger = TRANS_TRIGGER_START;
- gSaveContext.save.cutsceneIndex = 0xFFF3;
+ gSaveContext.save.cutsceneIndex = CS_INDEX_3;
play->transitionType = TRANS_TYPE_FADE_WHITE;
break;
case CS_DEST_HYRULE_FIELD_INTRO_DREAM:
play->nextEntranceIndex = ENTR_HYRULE_FIELD_0;
play->transitionTrigger = TRANS_TRIGGER_START;
- gSaveContext.save.cutsceneIndex = 0xFFF0;
+ gSaveContext.save.cutsceneIndex = CS_INDEX_0;
play->transitionType = TRANS_TYPE_FADE_BLACK_FAST;
break;
case CS_DEST_CUTSCENE_MAP_SHEIKAH_LEGEND:
play->nextEntranceIndex = ENTR_CUTSCENE_MAP_0;
play->transitionTrigger = TRANS_TRIGGER_START;
- gSaveContext.save.cutsceneIndex = 0xFFF4;
+ gSaveContext.save.cutsceneIndex = CS_INDEX_4;
play->transitionType = TRANS_TYPE_FADE_BLACK_FAST;
break;
case CS_DEST_TEMPLE_OF_TIME_ZELDA_REVEAL:
play->nextEntranceIndex = ENTR_TEMPLE_OF_TIME_0;
play->transitionTrigger = TRANS_TRIGGER_START;
- gSaveContext.save.cutsceneIndex = 0xFFF9;
+ gSaveContext.save.cutsceneIndex = CS_INDEX_9;
play->transitionType = TRANS_TYPE_FADE_BLACK_FAST;
break;
@@ -898,7 +897,7 @@ void CutsceneCmd_Destination(PlayState* play, CutsceneContext* csCtx, CsCmdDesti
play->linkAgeOnLoad = LINK_AGE_ADULT;
play->nextEntranceIndex = ENTR_TEMPLE_OF_TIME_0;
play->transitionTrigger = TRANS_TRIGGER_START;
- gSaveContext.save.cutsceneIndex = 0xFFFA;
+ gSaveContext.save.cutsceneIndex = CS_INDEX_A;
play->transitionType = TRANS_TYPE_FADE_BLACK_FAST;
break;
@@ -911,7 +910,7 @@ void CutsceneCmd_Destination(PlayState* play, CutsceneContext* csCtx, CsCmdDesti
case CS_DEST_KAKARIKO_VILLAGE_DRAIN_WELL:
play->nextEntranceIndex = ENTR_KAKARIKO_VILLAGE_0;
play->transitionTrigger = TRANS_TRIGGER_START;
- gSaveContext.save.cutsceneIndex = 0xFFF2;
+ gSaveContext.save.cutsceneIndex = CS_INDEX_2;
play->transitionType = TRANS_TYPE_FADE_BLACK_FAST;
break;
@@ -941,7 +940,7 @@ void CutsceneCmd_Destination(PlayState* play, CutsceneContext* csCtx, CsCmdDesti
SET_EVENTCHKINF(EVENTCHKINF_54);
play->nextEntranceIndex = ENTR_KAKARIKO_VILLAGE_0;
play->transitionTrigger = TRANS_TRIGGER_START;
- gSaveContext.save.cutsceneIndex = 0xFFF1;
+ gSaveContext.save.cutsceneIndex = CS_INDEX_1;
play->transitionType = TRANS_TYPE_FADE_BLACK_FAST;
break;
@@ -966,14 +965,14 @@ void CutsceneCmd_Destination(PlayState* play, CutsceneContext* csCtx, CsCmdDesti
case CS_DEST_HYRULE_FIELD_FROM_ZELDAS_COURTYARD:
play->nextEntranceIndex = ENTR_HYRULE_FIELD_0;
- gSaveContext.save.cutsceneIndex = 0xFFF8;
+ gSaveContext.save.cutsceneIndex = CS_INDEX_8;
play->transitionTrigger = TRANS_TRIGGER_START;
play->transitionType = TRANS_TYPE_CIRCLE(TCA_NORMAL, TCC_WHITE, TCS_SLOW);
break;
case CS_DEST_TEMPLE_OF_TIME_SONG_OF_TIME:
play->nextEntranceIndex = ENTR_TEMPLE_OF_TIME_0;
- gSaveContext.save.cutsceneIndex = 0xFFF7;
+ gSaveContext.save.cutsceneIndex = CS_INDEX_7;
play->transitionTrigger = TRANS_TRIGGER_START;
play->transitionType = TRANS_TYPE_INSTANT;
break;
@@ -991,56 +990,56 @@ void CutsceneCmd_Destination(PlayState* play, CutsceneContext* csCtx, CsCmdDesti
#endif
play->linkAgeOnLoad = LINK_AGE_CHILD;
play->nextEntranceIndex = ENTR_GERUDO_VALLEY_0;
- gSaveContext.save.cutsceneIndex = 0xFFF2;
+ gSaveContext.save.cutsceneIndex = CS_INDEX_2;
play->transitionTrigger = TRANS_TRIGGER_START;
play->transitionType = TRANS_TYPE_FADE_BLACK;
break;
case CS_DEST_GERUDO_FORTRESS_CREDITS:
play->nextEntranceIndex = ENTR_GERUDOS_FORTRESS_0;
- gSaveContext.save.cutsceneIndex = 0xFFF1;
+ gSaveContext.save.cutsceneIndex = CS_INDEX_1;
play->transitionTrigger = TRANS_TRIGGER_START;
play->transitionType = TRANS_TYPE_FADE_BLACK;
break;
case CS_DEST_KAKARIKO_VILLAGE_CREDITS:
play->nextEntranceIndex = ENTR_KAKARIKO_VILLAGE_0;
- gSaveContext.save.cutsceneIndex = 0xFFF4;
+ gSaveContext.save.cutsceneIndex = CS_INDEX_4;
play->transitionTrigger = TRANS_TRIGGER_START;
play->transitionType = TRANS_TYPE_FADE_BLACK;
break;
case CS_DEST_DEATH_MOUNTAIN_TRAIL_CREDITS_PART_1:
play->nextEntranceIndex = ENTR_DEATH_MOUNTAIN_TRAIL_0;
- gSaveContext.save.cutsceneIndex = 0xFFF3;
+ gSaveContext.save.cutsceneIndex = CS_INDEX_3;
play->transitionTrigger = TRANS_TRIGGER_START;
play->transitionType = TRANS_TYPE_FADE_BLACK;
break;
case CS_DEST_GORON_CITY_CREDITS:
play->nextEntranceIndex = ENTR_GORON_CITY_0;
- gSaveContext.save.cutsceneIndex = 0xFFF1;
+ gSaveContext.save.cutsceneIndex = CS_INDEX_1;
play->transitionTrigger = TRANS_TRIGGER_START;
play->transitionType = TRANS_TYPE_FADE_BLACK;
break;
case CS_DEST_LAKE_HYLIA_CREDITS:
play->nextEntranceIndex = ENTR_LAKE_HYLIA_0;
- gSaveContext.save.cutsceneIndex = 0xFFF1;
+ gSaveContext.save.cutsceneIndex = CS_INDEX_1;
play->transitionTrigger = TRANS_TRIGGER_START;
play->transitionType = TRANS_TYPE_FADE_BLACK;
break;
case CS_DEST_ZORAS_FOUNTAIN_CREDITS:
play->nextEntranceIndex = ENTR_ZORAS_FOUNTAIN_0;
- gSaveContext.save.cutsceneIndex = 0xFFF2;
+ gSaveContext.save.cutsceneIndex = CS_INDEX_2;
play->transitionTrigger = TRANS_TRIGGER_START;
play->transitionType = TRANS_TYPE_FADE_BLACK;
break;
case CS_DEST_ZORAS_DOMAIN_CREDITS:
play->nextEntranceIndex = ENTR_ZORAS_DOMAIN_0;
- gSaveContext.save.cutsceneIndex = 0xFFF0;
+ gSaveContext.save.cutsceneIndex = CS_INDEX_0;
play->transitionTrigger = TRANS_TRIGGER_START;
play->transitionType = TRANS_TYPE_FADE_BLACK;
break;
@@ -1048,21 +1047,21 @@ void CutsceneCmd_Destination(PlayState* play, CutsceneContext* csCtx, CsCmdDesti
case CS_DEST_KOKIRI_FOREST_CREDITS_PART_1:
play->linkAgeOnLoad = LINK_AGE_ADULT;
play->nextEntranceIndex = ENTR_KOKIRI_FOREST_0;
- gSaveContext.save.cutsceneIndex = 0xFFF6;
+ gSaveContext.save.cutsceneIndex = CS_INDEX_6;
play->transitionTrigger = TRANS_TRIGGER_START;
play->transitionType = TRANS_TYPE_FADE_BLACK;
break;
case CS_DEST_KOKIRI_FOREST_CREDITS_PART_2:
play->nextEntranceIndex = ENTR_KOKIRI_FOREST_0;
- gSaveContext.save.cutsceneIndex = 0xFFF7;
+ gSaveContext.save.cutsceneIndex = CS_INDEX_7;
play->transitionTrigger = TRANS_TRIGGER_START;
play->transitionType = TRANS_TYPE_FADE_BLACK;
break;
case CS_DEST_HYRULE_FIELD_CREDITS:
play->nextEntranceIndex = ENTR_HYRULE_FIELD_0;
- gSaveContext.save.cutsceneIndex = 0xFFF5;
+ gSaveContext.save.cutsceneIndex = CS_INDEX_5;
play->transitionTrigger = TRANS_TRIGGER_START;
play->transitionType = TRANS_TYPE_FADE_BLACK;
break;
@@ -1070,7 +1069,7 @@ void CutsceneCmd_Destination(PlayState* play, CutsceneContext* csCtx, CsCmdDesti
case CS_DEST_LON_LON_RANCH_CREDITS_PART_1_ALT:
play->linkAgeOnLoad = LINK_AGE_CHILD;
play->nextEntranceIndex = ENTR_LON_LON_RANCH_0;
- gSaveContext.save.cutsceneIndex = 0xFFF2;
+ gSaveContext.save.cutsceneIndex = CS_INDEX_2;
play->transitionTrigger = TRANS_TRIGGER_START;
play->transitionType = TRANS_TYPE_FADE_BLACK;
break;
@@ -1090,7 +1089,7 @@ void CutsceneCmd_Destination(PlayState* play, CutsceneContext* csCtx, CsCmdDesti
case CS_DEST_CUTSCENE_MAP_DEKU_SPROUT_PART_2:
play->nextEntranceIndex = ENTR_CUTSCENE_MAP_0;
play->transitionTrigger = TRANS_TRIGGER_START;
- gSaveContext.save.cutsceneIndex = 0xFFF5;
+ gSaveContext.save.cutsceneIndex = CS_INDEX_5;
play->transitionType = TRANS_TYPE_FADE_BLACK;
break;
@@ -1103,7 +1102,7 @@ void CutsceneCmd_Destination(PlayState* play, CutsceneContext* csCtx, CsCmdDesti
case CS_DEST_DEATH_MOUNTAIN_TRAIL_CREDITS_PART_2:
play->nextEntranceIndex = ENTR_DEATH_MOUNTAIN_TRAIL_0;
play->transitionTrigger = TRANS_TRIGGER_START;
- gSaveContext.save.cutsceneIndex = 0xFFF4;
+ gSaveContext.save.cutsceneIndex = CS_INDEX_4;
play->transitionType = TRANS_TYPE_FADE_BLACK;
gSaveContext.nextTransitionType = TRANS_TYPE_FADE_BLACK;
break;
@@ -1116,14 +1115,14 @@ void CutsceneCmd_Destination(PlayState* play, CutsceneContext* csCtx, CsCmdDesti
play->linkAgeOnLoad = LINK_AGE_CHILD;
play->nextEntranceIndex = ENTR_TEMPLE_OF_TIME_0;
play->transitionTrigger = TRANS_TRIGGER_START;
- gSaveContext.save.cutsceneIndex = 0xFFF1;
+ gSaveContext.save.cutsceneIndex = CS_INDEX_1;
play->transitionType = TRANS_TYPE_FADE_BLACK;
break;
case CS_DEST_ZELDAS_COURTYARD_CREDITS:
play->nextEntranceIndex = ENTR_CASTLE_COURTYARD_ZELDA_0;
play->transitionTrigger = TRANS_TRIGGER_START;
- gSaveContext.save.cutsceneIndex = 0xFFF0;
+ gSaveContext.save.cutsceneIndex = CS_INDEX_0;
play->transitionType = TRANS_TYPE_FADE_BLACK;
gSaveContext.nextTransitionType = TRANS_TYPE_FADE_BLACK;
break;
@@ -1132,14 +1131,14 @@ void CutsceneCmd_Destination(PlayState* play, CutsceneContext* csCtx, CsCmdDesti
play->linkAgeOnLoad = LINK_AGE_CHILD;
play->nextEntranceIndex = ENTR_LON_LON_RANCH_0;
play->transitionTrigger = TRANS_TRIGGER_START;
- gSaveContext.save.cutsceneIndex = 0xFFF2;
+ gSaveContext.save.cutsceneIndex = CS_INDEX_2;
play->transitionType = TRANS_TYPE_FADE_BLACK;
break;
case CS_DEST_LON_LON_RANCH_CREDITS_PART_2:
play->nextEntranceIndex = ENTR_LON_LON_RANCH_0;
play->transitionTrigger = TRANS_TRIGGER_START;
- gSaveContext.save.cutsceneIndex = 0xFFF3;
+ gSaveContext.save.cutsceneIndex = CS_INDEX_3;
play->transitionType = TRANS_TYPE_FADE_WHITE;
gSaveContext.nextTransitionType = TRANS_TYPE_FADE_WHITE;
break;
@@ -1148,7 +1147,7 @@ void CutsceneCmd_Destination(PlayState* play, CutsceneContext* csCtx, CsCmdDesti
play->linkAgeOnLoad = LINK_AGE_CHILD;
play->nextEntranceIndex = ENTR_LON_LON_RANCH_0;
play->transitionTrigger = TRANS_TRIGGER_START;
- gSaveContext.save.cutsceneIndex = 0xFFF4;
+ gSaveContext.save.cutsceneIndex = CS_INDEX_4;
play->transitionType = TRANS_TYPE_FADE_BLACK;
break;
@@ -1156,7 +1155,7 @@ void CutsceneCmd_Destination(PlayState* play, CutsceneContext* csCtx, CsCmdDesti
play->linkAgeOnLoad = LINK_AGE_ADULT;
play->nextEntranceIndex = ENTR_LON_LON_RANCH_0;
play->transitionTrigger = TRANS_TRIGGER_START;
- gSaveContext.save.cutsceneIndex = 0xFFF5;
+ gSaveContext.save.cutsceneIndex = CS_INDEX_5;
play->transitionType = TRANS_TYPE_FADE_BLACK;
break;
@@ -1164,14 +1163,14 @@ void CutsceneCmd_Destination(PlayState* play, CutsceneContext* csCtx, CsCmdDesti
play->linkAgeOnLoad = LINK_AGE_CHILD;
play->nextEntranceIndex = ENTR_LON_LON_RANCH_0;
play->transitionTrigger = TRANS_TRIGGER_START;
- gSaveContext.save.cutsceneIndex = 0xFFF6;
+ gSaveContext.save.cutsceneIndex = CS_INDEX_6;
play->transitionType = TRANS_TYPE_FADE_BLACK;
break;
case CS_DEST_LON_LON_RANCH_CREDITS_PART_5:
play->nextEntranceIndex = ENTR_LON_LON_RANCH_0;
play->transitionTrigger = TRANS_TRIGGER_START;
- gSaveContext.save.cutsceneIndex = 0xFFF7;
+ gSaveContext.save.cutsceneIndex = CS_INDEX_7;
play->transitionType = TRANS_TYPE_FADE_BLACK;
break;
@@ -1211,7 +1210,7 @@ void CutsceneCmd_Destination(PlayState* play, CutsceneContext* csCtx, CsCmdDesti
GET_EVENTCHKINF(EVENTCHKINF_4A)) {
play->nextEntranceIndex = ENTR_TEMPLE_OF_TIME_0;
play->transitionTrigger = TRANS_TRIGGER_START;
- gSaveContext.save.cutsceneIndex = 0xFFF3;
+ gSaveContext.save.cutsceneIndex = CS_INDEX_3;
play->transitionType = TRANS_TYPE_FADE_BLACK;
} else {
switch (gSaveContext.sceneLayer) {
@@ -1230,7 +1229,7 @@ void CutsceneCmd_Destination(PlayState* play, CutsceneContext* csCtx, CsCmdDesti
case 10:
play->nextEntranceIndex = ENTR_LAKE_HYLIA_0;
play->transitionTrigger = TRANS_TRIGGER_START;
- gSaveContext.save.cutsceneIndex = 0xFFF0;
+ gSaveContext.save.cutsceneIndex = CS_INDEX_0;
play->transitionType = TRANS_TYPE_FADE_WHITE;
break;
}
@@ -1241,7 +1240,7 @@ void CutsceneCmd_Destination(PlayState* play, CutsceneContext* csCtx, CsCmdDesti
if (CHECK_QUEST_ITEM(QUEST_MEDALLION_SHADOW)) {
play->nextEntranceIndex = ENTR_CHAMBER_OF_THE_SAGES_0;
play->transitionTrigger = TRANS_TRIGGER_START;
- gSaveContext.save.cutsceneIndex = 0xFFF1;
+ gSaveContext.save.cutsceneIndex = CS_INDEX_1;
play->transitionType = TRANS_TYPE_FADE_WHITE_FAST;
} else {
SET_EVENTCHKINF(EVENTCHKINF_C8);
@@ -1256,7 +1255,7 @@ void CutsceneCmd_Destination(PlayState* play, CutsceneContext* csCtx, CsCmdDesti
if (CHECK_QUEST_ITEM(QUEST_MEDALLION_SPIRIT)) {
play->nextEntranceIndex = ENTR_CHAMBER_OF_THE_SAGES_0;
play->transitionTrigger = TRANS_TRIGGER_START;
- gSaveContext.save.cutsceneIndex = 0xFFF1;
+ gSaveContext.save.cutsceneIndex = CS_INDEX_1;
play->transitionType = TRANS_TYPE_FADE_WHITE_FAST;
} else {
play->nextEntranceIndex = ENTR_GRAVEYARD_8;
@@ -1282,7 +1281,7 @@ void CutsceneCmd_Destination(PlayState* play, CutsceneContext* csCtx, CsCmdDesti
case CS_DEST_KOKIRI_FOREST_FROM_CHAMBER_OF_SAGES:
play->nextEntranceIndex = ENTR_KOKIRI_FOREST_0;
- gSaveContext.save.cutsceneIndex = 0xFFF8;
+ gSaveContext.save.cutsceneIndex = CS_INDEX_8;
play->transitionTrigger = TRANS_TRIGGER_START;
play->transitionType = TRANS_TYPE_FADE_WHITE;
gSaveContext.nextTransitionType = TRANS_TYPE_FADE_WHITE;
@@ -1303,7 +1302,7 @@ void CutsceneCmd_Destination(PlayState* play, CutsceneContext* csCtx, CsCmdDesti
case CS_DEST_HYRULE_FIELD_TITLE_SCREEN:
play->nextEntranceIndex = ENTR_HYRULE_FIELD_0;
play->transitionTrigger = TRANS_TRIGGER_START;
- gSaveContext.save.cutsceneIndex = 0xFFF3;
+ gSaveContext.save.cutsceneIndex = CS_INDEX_3;
play->transitionType = TRANS_TYPE_FADE_BLACK;
break;
@@ -1312,7 +1311,7 @@ void CutsceneCmd_Destination(PlayState* play, CutsceneContext* csCtx, CsCmdDesti
case TITLE_DEMO_SPIRIT_TEMPLE:
play->nextEntranceIndex = ENTR_SPIRIT_TEMPLE_BOSS_0;
play->transitionTrigger = TRANS_TRIGGER_START;
- gSaveContext.save.cutsceneIndex = 0xFFF2;
+ gSaveContext.save.cutsceneIndex = CS_INDEX_2;
play->transitionType = TRANS_TYPE_FADE_BLACK;
sTitleDemoDestination++;
break;
@@ -1320,7 +1319,7 @@ void CutsceneCmd_Destination(PlayState* play, CutsceneContext* csCtx, CsCmdDesti
case TITLE_DEMO_DEATH_MOUNTAIN_CRATER:
play->nextEntranceIndex = ENTR_DEATH_MOUNTAIN_CRATER_0;
play->transitionTrigger = TRANS_TRIGGER_START;
- gSaveContext.save.cutsceneIndex = 0xFFF1;
+ gSaveContext.save.cutsceneIndex = CS_INDEX_1;
play->transitionType = TRANS_TYPE_FADE_BLACK;
sTitleDemoDestination++;
break;
@@ -1328,7 +1327,7 @@ void CutsceneCmd_Destination(PlayState* play, CutsceneContext* csCtx, CsCmdDesti
case TITLE_DEMO_GANONDORF_HORSE:
play->nextEntranceIndex = ENTR_CUTSCENE_MAP_0;
play->transitionTrigger = TRANS_TRIGGER_START;
- gSaveContext.save.cutsceneIndex = 0xFFF6;
+ gSaveContext.save.cutsceneIndex = CS_INDEX_6;
play->transitionType = TRANS_TYPE_FADE_BLACK;
sTitleDemoDestination = TITLE_DEMO_SPIRIT_TEMPLE;
break;
@@ -1338,7 +1337,7 @@ void CutsceneCmd_Destination(PlayState* play, CutsceneContext* csCtx, CsCmdDesti
case CS_DEST_GRAVEYARD_SUNS_SONG_PART_2:
play->nextEntranceIndex = ENTR_GRAVEYARD_0;
play->transitionTrigger = TRANS_TRIGGER_START;
- gSaveContext.save.cutsceneIndex = 0xFFF1;
+ gSaveContext.save.cutsceneIndex = CS_INDEX_1;
play->transitionType = TRANS_TYPE_FADE_BLACK;
break;
@@ -1391,10 +1390,16 @@ void CutsceneCmd_Destination(PlayState* play, CutsceneContext* csCtx, CsCmdDesti
play->csCtx.script = SEGMENTED_TO_VIRTUAL(gTowerBarrierCs);
play->csCtx.curFrame = 0;
gSaveContext.cutsceneTrigger = 1;
- gSaveContext.save.cutsceneIndex = 0xFFFF;
+ // Force cutsceneIndex to CS_INDEX_F so that CS_STATE_STOP is handled by the "scripted" system's
+ // CutsceneHandler_StopScript.
+ // Otherwise, because cutsceneIndex is set to 0 above, CS_STATE_STOP would be handled by the
+ // "manual" cutscene system's CutsceneHandler_StopManual, which does not terminate the cutscene
+ // camera, resulting in a softlock.
+ gSaveContext.save.cutsceneIndex = CS_INDEX_F;
csCtx->state = CS_STATE_STOP;
} else {
- gSaveContext.save.cutsceneIndex = 0xFFFF;
+ // Same as above
+ gSaveContext.save.cutsceneIndex = CS_INDEX_F;
csCtx->state = CS_STATE_STOP;
}
break;
@@ -1431,7 +1436,7 @@ void CutsceneCmd_Destination(PlayState* play, CutsceneContext* csCtx, CsCmdDesti
Audio_SetSfxBanksMute(0x6F);
play->linkAgeOnLoad = LINK_AGE_ADULT;
play->nextEntranceIndex = ENTR_HYRULE_FIELD_0;
- gSaveContext.save.cutsceneIndex = 0xFFF7;
+ gSaveContext.save.cutsceneIndex = CS_INDEX_7;
play->transitionTrigger = TRANS_TRIGGER_START;
play->transitionType = TRANS_TYPE_FADE_WHITE;
break;
@@ -1472,14 +1477,12 @@ void CutsceneCmd_Transition(PlayState* play, CutsceneContext* csCtx, CsCmdTransi
play->envCtx.screenFillColor[3] = 255.0f * lerp;
if ((lerp == 0.0f) && (gSaveContext.save.entranceIndex == ENTR_CHAMBER_OF_THE_SAGES_0)) {
- Audio_PlaySfxGeneral(NA_SE_SY_WHITE_OUT_S, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_WHITE_OUT_S);
} else if ((lerp == 0.0f) &&
((gSaveContext.save.entranceIndex == ENTR_TEMPLE_OF_TIME_0) ||
(gSaveContext.save.entranceIndex == ENTR_HYRULE_CASTLE_0) ||
(gSaveContext.save.entranceIndex == ENTR_GREAT_FAIRYS_FOUNTAIN_SPELLS_0))) {
- Audio_PlaySfxGeneral(NA_SE_EV_WHITE_OUT, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_EV_WHITE_OUT);
} else if ((lerp == 0.0f) && (play->sceneId == SCENE_INSIDE_GANONS_CASTLE)) {
Sfx_PlaySfxCentered2(NA_SE_EV_WHITE_OUT);
}
@@ -2240,7 +2243,7 @@ void Cutscene_ProcessScript(PlayState* play, CutsceneContext* csCtx, u8* script)
}
void CutsceneHandler_RunScript(PlayState* play, CutsceneContext* csCtx) {
- if (gSaveContext.save.cutsceneIndex >= 0xFFF0) {
+ if (gSaveContext.save.cutsceneIndex >= CS_INDEX_0) {
#if DEBUG_FEATURES
if (BREG(0) != 0) {
Gfx* displayList;
@@ -2293,7 +2296,7 @@ void CutsceneHandler_StopScript(PlayState* play, CutsceneContext* csCtx) {
PRINTF(T("\n\n\n\n\nやっぱりここかいな", "\n\n\n\n\nThis is it after all"));
- gSaveContext.save.cutsceneIndex = 0;
+ gSaveContext.save.cutsceneIndex = CS_INDEX_NONE;
gSaveContext.gameMode = GAMEMODE_NORMAL;
if (gUseCutsceneCam) {
@@ -2319,10 +2322,10 @@ void Cutscene_SetupScripted(PlayState* play, CutsceneContext* csCtx) {
u8 i;
if ((gSaveContext.cutsceneTrigger != 0) && (csCtx->state == CS_STATE_IDLE) && !Player_InCsMode(play)) {
- gSaveContext.save.cutsceneIndex = 0xFFFD;
+ gSaveContext.save.cutsceneIndex = CS_INDEX_D;
}
- if ((gSaveContext.save.cutsceneIndex >= 0xFFF0) && (csCtx->state == CS_STATE_IDLE)) {
+ if ((gSaveContext.save.cutsceneIndex >= CS_INDEX_0) && (csCtx->state == CS_STATE_IDLE)) {
CutsceneFlags_Unset(play, 0);
sCurTextId = 0;
@@ -2404,7 +2407,7 @@ void Cutscene_HandleEntranceTriggers(PlayState* play) {
if ((gSaveContext.save.entranceIndex == entranceCutscene->entrance) &&
(!Flags_GetEventChkInf(entranceCutscene->flag) || (entranceCutscene->flag == EVENTCHKINF_EPONA_OBTAINED)) &&
- (gSaveContext.save.cutsceneIndex < 0xFFF0) && ((u8)gSaveContext.save.linkAge == requiredAge) &&
+ (gSaveContext.save.cutsceneIndex < CS_INDEX_0) && ((u8)gSaveContext.save.linkAge == requiredAge) &&
(gSaveContext.respawnFlag <= 0)) {
Flags_SetEventChkInf(entranceCutscene->flag);
Cutscene_SetScript(play, entranceCutscene->script);
@@ -2419,32 +2422,32 @@ void Cutscene_HandleConditionalTriggers(PlayState* play) {
PRINTF("\ngame_info.mode=[%d] restart_flag", ((void)0, gSaveContext.respawnFlag));
if ((gSaveContext.gameMode == GAMEMODE_NORMAL) && (gSaveContext.respawnFlag <= 0) &&
- (gSaveContext.save.cutsceneIndex < 0xFFF0)) {
+ (gSaveContext.save.cutsceneIndex < CS_INDEX_0)) {
if ((gSaveContext.save.entranceIndex == ENTR_DESERT_COLOSSUS_1) && !Flags_GetEventChkInf(EVENTCHKINF_AC)) {
Flags_SetEventChkInf(EVENTCHKINF_AC);
gSaveContext.save.entranceIndex = ENTR_DESERT_COLOSSUS_0;
- gSaveContext.save.cutsceneIndex = 0xFFF0;
+ gSaveContext.save.cutsceneIndex = CS_INDEX_0;
} else if ((gSaveContext.save.entranceIndex == ENTR_KAKARIKO_VILLAGE_0) && LINK_IS_ADULT &&
GET_EVENTCHKINF(EVENTCHKINF_48) && GET_EVENTCHKINF(EVENTCHKINF_49) &&
GET_EVENTCHKINF(EVENTCHKINF_4A) && !Flags_GetEventChkInf(EVENTCHKINF_AA)) {
Flags_SetEventChkInf(EVENTCHKINF_AA);
- gSaveContext.save.cutsceneIndex = 0xFFF0;
+ gSaveContext.save.cutsceneIndex = CS_INDEX_0;
} else if ((gSaveContext.save.entranceIndex == ENTR_LOST_WOODS_9) && !Flags_GetEventChkInf(EVENTCHKINF_C1)) {
Flags_SetEventChkInf(EVENTCHKINF_C1);
Item_Give(play, ITEM_OCARINA_FAIRY);
gSaveContext.save.entranceIndex = ENTR_LOST_WOODS_0;
- gSaveContext.save.cutsceneIndex = 0xFFF0;
+ gSaveContext.save.cutsceneIndex = CS_INDEX_0;
} else if (CHECK_QUEST_ITEM(QUEST_MEDALLION_SPIRIT) && CHECK_QUEST_ITEM(QUEST_MEDALLION_SHADOW) &&
LINK_IS_ADULT && !Flags_GetEventChkInf(EVENTCHKINF_C4) &&
(gEntranceTable[((void)0, gSaveContext.save.entranceIndex)].sceneId == SCENE_TEMPLE_OF_TIME)) {
Flags_SetEventChkInf(EVENTCHKINF_C4);
gSaveContext.save.entranceIndex = ENTR_TEMPLE_OF_TIME_0;
- gSaveContext.save.cutsceneIndex = 0xFFF8;
+ gSaveContext.save.cutsceneIndex = CS_INDEX_8;
} else if (!Flags_GetEventChkInf(EVENTCHKINF_C7) &&
(gEntranceTable[((void)0, gSaveContext.save.entranceIndex)].sceneId == SCENE_GANON_BOSS)) {
Flags_SetEventChkInf(EVENTCHKINF_C7);
gSaveContext.save.entranceIndex = ENTR_GANON_BOSS_0;
- gSaveContext.save.cutsceneIndex = 0xFFF0;
+ gSaveContext.save.cutsceneIndex = CS_INDEX_0;
}
}
}
diff --git a/src/code/z_en_a_keep.c b/src/code/z_en_a_keep.c
index 12d31b4f0a..7b84c9bd38 100644
--- a/src/code/z_en_a_keep.c
+++ b/src/code/z_en_a_keep.c
@@ -50,8 +50,8 @@ static ColliderCylinderInit sCylinderInit = {
},
{
ELEM_MATERIAL_UNK2,
- { 0x00000000, 0x00, 0x00 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON,
OCELEM_ON,
diff --git a/src/code/z_en_item00.c b/src/code/z_en_item00.c
index 43668baebb..0a92bc66ce 100644
--- a/src/code/z_en_item00.c
+++ b/src/code/z_en_item00.c
@@ -64,9 +64,9 @@ static ColliderCylinderInit sCylinderInit = {
},
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0x00000010, 0x00, 0x00 },
- ATELEM_NONE | ATELEM_SFX_NORMAL,
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0x00000010, HIT_BACKLASH_NONE, 0x00 },
+ ATELEM_NONE,
ACELEM_ON,
OCELEM_NONE,
},
@@ -965,8 +965,7 @@ void EnItem00_Update(Actor* thisx, PlayState* play) {
}
if ((*params <= ITEM00_RUPEE_RED) || (*params == ITEM00_RUPEE_ORANGE)) {
- Audio_PlaySfxGeneral(NA_SE_SY_GET_RUPY, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_GET_RUPY);
} else if (getItemId != GI_NONE) {
if (Actor_HasParent(&this->actor, play)) {
Flags_SetCollectible(play, this->collectibleFlag);
@@ -974,8 +973,7 @@ void EnItem00_Update(Actor* thisx, PlayState* play) {
}
return;
} else {
- Audio_PlaySfxGeneral(NA_SE_SY_GET_ITEM, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_GET_ITEM);
}
Flags_SetCollectible(play, this->collectibleFlag);
diff --git a/src/code/z_fbdemo_circle.c b/src/code/z_fbdemo_circle.c
index 0a7dabdd6b..eb66a2fab8 100644
--- a/src/code/z_fbdemo_circle.c
+++ b/src/code/z_fbdemo_circle.c
@@ -68,8 +68,7 @@ void TransitionCircle_Start(void* thisx) {
} else {
this->texY = (s32)(125.0f * (1 << 2));
if (this->appearanceType == TCA_RIPPLE) {
- Audio_PlaySfxGeneral(NA_SE_OC_SECRET_WARP_OUT, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_OC_SECRET_WARP_OUT);
}
}
@@ -93,8 +92,7 @@ void TransitionCircle_Update(void* thisx, s32 updateRate) {
if (this->direction != TRANS_CIRCLE_DIR_IN) {
if (this->texY == 0) {
if (this->appearanceType == TCA_RIPPLE) {
- Audio_PlaySfxGeneral(NA_SE_OC_SECRET_WARP_IN, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_OC_SECRET_WARP_IN);
}
}
this->texY += this->speed * 3 / updateRate;
diff --git a/src/code/z_horse.c b/src/code/z_horse.c
index ab556c3d13..93eec4bd31 100644
--- a/src/code/z_horse.c
+++ b/src/code/z_horse.c
@@ -164,15 +164,15 @@ typedef struct HorseCutsceneSpawn {
void Horse_SetupInCutscene(PlayState* play, Player* player) {
static HorseCutsceneSpawn horseSpawns[] = {
- { SCENE_GERUDOS_FORTRESS, 0xFFF0, { 3600, 1413, 360 }, 0x8001, HORSE_PTYPE_HORSEBACK_ARCHERY },
- { SCENE_LON_LON_RANCH, 0xFFF0, { -250, 1, -1580 }, 0x4000, HORSE_PTYPE_6 }, // Horse Race
- { SCENE_LON_LON_RANCH, 0xFFF1, { 0, 0, 0 }, 0x0000, HORSE_PTYPE_5 }, // Learned Epona's Song
- { SCENE_LON_LON_RANCH, 0xFFF5, { 0, 0, 0 }, 0x0000, HORSE_PTYPE_7 }, // Credits
- { SCENE_HYRULE_FIELD, 0xFFF3, { -2961, 313, 7700 }, 0x0000, HORSE_PTYPE_7 }, // Title Screen
- { SCENE_HYRULE_FIELD, 0xFFF4, { -1900, 313, 7015 }, 0x0000, HORSE_PTYPE_7 },
- { SCENE_HYRULE_FIELD, 0xFFF5, { -4043, 313, 6933 }, 0x0000, HORSE_PTYPE_7 }, // Credits
- { SCENE_HYRULE_FIELD, 0xFFF6, { -4043, 313, 6933 }, 0x0000, HORSE_PTYPE_7 }, // Unused. Hopping Lon Lon
- // Ranch North Gate
+ { SCENE_GERUDOS_FORTRESS, CS_INDEX_0, { 3600, 1413, 360 }, 0x8001, HORSE_PTYPE_HORSEBACK_ARCHERY },
+ { SCENE_LON_LON_RANCH, CS_INDEX_0, { -250, 1, -1580 }, 0x4000, HORSE_PTYPE_6 }, // Horse Race
+ { SCENE_LON_LON_RANCH, CS_INDEX_1, { 0, 0, 0 }, 0x0000, HORSE_PTYPE_5 }, // Learned Epona's Song
+ { SCENE_LON_LON_RANCH, CS_INDEX_5, { 0, 0, 0 }, 0x0000, HORSE_PTYPE_7 }, // Credits
+ { SCENE_HYRULE_FIELD, CS_INDEX_3, { -2961, 313, 7700 }, 0x0000, HORSE_PTYPE_7 }, // Title Screen
+ { SCENE_HYRULE_FIELD, CS_INDEX_4, { -1900, 313, 7015 }, 0x0000, HORSE_PTYPE_7 },
+ { SCENE_HYRULE_FIELD, CS_INDEX_5, { -4043, 313, 6933 }, 0x0000, HORSE_PTYPE_7 }, // Credits
+ { SCENE_HYRULE_FIELD, CS_INDEX_6, { -4043, 313, 6933 }, 0x0000, HORSE_PTYPE_7 }, // Unused. Hopping Lon Lon
+ // Ranch North Gate
};
s32 pad;
s32 i;
@@ -235,7 +235,7 @@ void Horse_SetupInCutscene(PlayState* play, Player* player) {
(((void)0, gSaveContext.save.cutsceneIndex) == horseSpawns[i].cutsceneIndex)) {
if (horseSpawns[i].type == HORSE_PTYPE_7) {
if ((play->sceneId == SCENE_LON_LON_RANCH) &&
- (((void)0, gSaveContext.save.cutsceneIndex) == 0xFFF1)) {
+ (((void)0, gSaveContext.save.cutsceneIndex) == CS_INDEX_1)) {
horseSpawns[i].pos.x = player->actor.world.pos.x;
horseSpawns[i].pos.y = player->actor.world.pos.y;
horseSpawns[i].pos.z = player->actor.world.pos.z;
diff --git a/src/code/z_kaleido_scope_call.c b/src/code/z_kaleido_scope_call.c
index 73d3b20dbf..ca7637214d 100644
--- a/src/code/z_kaleido_scope_call.c
+++ b/src/code/z_kaleido_scope_call.c
@@ -1,5 +1,5 @@
#pragma increment_block_number "gc-eu:80 gc-eu-mq:80 gc-jp:80 gc-jp-ce:80 gc-jp-mq:80 gc-us:80 gc-us-mq:80 ique-cn:64" \
- "ntsc-1.0:96 ntsc-1.1:96 ntsc-1.2:96 pal-1.0:96 pal-1.1:96"
+ "ntsc-1.0:80 ntsc-1.1:80 ntsc-1.2:80 pal-1.0:80 pal-1.1:80"
#include "libu64/debug.h"
#include "kaleido_manager.h"
diff --git a/src/code/z_kaleido_setup.c b/src/code/z_kaleido_setup.c
index b3ef531649..489b860799 100644
--- a/src/code/z_kaleido_setup.c
+++ b/src/code/z_kaleido_setup.c
@@ -72,9 +72,9 @@ void KaleidoSetup_Update(PlayState* play) {
if (!IS_PAUSED(pauseCtx) && play->gameOverCtx.state == GAMEOVER_INACTIVE &&
play->transitionTrigger == TRANS_TRIGGER_OFF && play->transitionMode == TRANS_MODE_OFF &&
- gSaveContext.save.cutsceneIndex < 0xFFF0 && gSaveContext.nextCutsceneIndex < 0xFFF0 && !Play_InCsMode(play) &&
- play->shootingGalleryStatus <= 1 && gSaveContext.magicState != MAGIC_STATE_STEP_CAPACITY &&
- gSaveContext.magicState != MAGIC_STATE_FILL &&
+ gSaveContext.save.cutsceneIndex < CS_INDEX_0 && gSaveContext.nextCutsceneIndex < CS_INDEX_0 &&
+ !Play_InCsMode(play) && play->shootingGalleryStatus <= 1 &&
+ gSaveContext.magicState != MAGIC_STATE_STEP_CAPACITY && gSaveContext.magicState != MAGIC_STATE_FILL &&
(play->sceneId != SCENE_BOMBCHU_BOWLING_ALLEY || !Flags_GetSwitch(play, 0x38))) {
if (CHECK_BTN_ALL(input->cur.button, BTN_L) && CHECK_BTN_ALL(input->press.button, BTN_CUP)) {
@@ -85,8 +85,8 @@ void KaleidoSetup_Update(PlayState* play) {
// The start button was pressed, pause
gSaveContext.prevHudVisibilityMode = gSaveContext.hudVisibilityMode;
- WREG(16) = -175;
- WREG(17) = 155;
+ R_PAUSE_BUTTON_LEFT_X = -175;
+ R_PAUSE_BUTTON_RIGHT_X = 155;
pauseCtx->pageSwitchTimer = 0;
diff --git a/src/code/z_kankyo.c b/src/code/z_kankyo.c
index 83699c82f3..5da43b4c22 100644
--- a/src/code/z_kankyo.c
+++ b/src/code/z_kankyo.c
@@ -2642,7 +2642,7 @@ void Environment_StopStormNatureAmbience(PlayState* play) {
void Environment_WarpSongLeave(PlayState* play) {
gWeatherMode = WEATHER_MODE_CLEAR;
- gSaveContext.save.cutsceneIndex = 0;
+ gSaveContext.save.cutsceneIndex = CS_INDEX_NONE;
gSaveContext.respawnFlag = -3;
play->nextEntranceIndex = gSaveContext.respawn[RESPAWN_MODE_RETURN].entranceIndex;
play->transitionTrigger = TRANS_TRIGGER_START;
diff --git a/src/code/z_lib.c b/src/code/z_lib.c
index e4d56b8dad..b9aa15ca4b 100644
--- a/src/code/z_lib.c
+++ b/src/code/z_lib.c
@@ -608,22 +608,19 @@ void Color_RGBA8_Copy(Color_RGBA8* dst, Color_RGBA8* src) {
* Play a sound effect at the center of the screen.
*/
void Sfx_PlaySfxCentered(u16 sfxId) {
- Audio_PlaySfxGeneral(sfxId, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(sfxId);
}
/**
* Play a sound effect at the center of the screen. Identical to `Sfx_PlaySfxCentered`.
*/
void Sfx_PlaySfxCentered2(u16 sfxId) {
- Audio_PlaySfxGeneral(sfxId, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(sfxId);
}
/**
* Play a sound effect at the requested position.
*/
void Sfx_PlaySfxAtPos(Vec3f* projectedPos, u16 sfxId) {
- Audio_PlaySfxGeneral(sfxId, projectedPos, 4, &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(projectedPos, sfxId);
}
diff --git a/src/code/z_map_exp.c b/src/code/z_map_exp.c
index ba6cb77f0a..c1bfd9e7c8 100644
--- a/src/code/z_map_exp.c
+++ b/src/code/z_map_exp.c
@@ -455,13 +455,9 @@ void Minimap_Draw(PlayState* play) {
if (CHECK_BTN_ALL(play->state.input[0].press.button, BTN_L) && !Play_InCsMode(play)) {
PRINTF("Game_play_demo_mode_check=%d\n", Play_InCsMode(play));
// clang-format off
- if (!R_MINIMAP_DISABLED) { Audio_PlaySfxGeneral(NA_SE_SY_CAMERA_ZOOM_UP, &gSfxDefaultPos, 4,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultReverb);
+ if (!R_MINIMAP_DISABLED) { SFX_PLAY_CENTERED(NA_SE_SY_CAMERA_ZOOM_UP);
} else {
- Audio_PlaySfxGeneral(NA_SE_SY_CAMERA_ZOOM_DOWN, &gSfxDefaultPos, 4,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_CAMERA_ZOOM_DOWN);
}
// clang-format on
R_MINIMAP_DISABLED ^= 1;
@@ -541,13 +537,9 @@ void Minimap_Draw(PlayState* play) {
if (CHECK_BTN_ALL(play->state.input[0].press.button, BTN_L) && !Play_InCsMode(play)) {
// clang-format off
- if (!R_MINIMAP_DISABLED) { Audio_PlaySfxGeneral(NA_SE_SY_CAMERA_ZOOM_UP, &gSfxDefaultPos, 4,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultReverb);
+ if (!R_MINIMAP_DISABLED) { SFX_PLAY_CENTERED(NA_SE_SY_CAMERA_ZOOM_UP);
} else {
- Audio_PlaySfxGeneral(NA_SE_SY_CAMERA_ZOOM_DOWN, &gSfxDefaultPos, 4,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_CAMERA_ZOOM_DOWN);
}
// clang-format on
R_MINIMAP_DISABLED ^= 1;
diff --git a/src/code/z_message.c b/src/code/z_message.c
index 1fc06d7407..08d4c7181d 100644
--- a/src/code/z_message.c
+++ b/src/code/z_message.c
@@ -26,8 +26,8 @@
#include "assets/textures/parameter_static/parameter_static.h"
-#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 ntsc-1.0:32" \
- "ntsc-1.1:32 ntsc-1.2:32 pal-1.0:0 pal-1.1:0"
+#pragma increment_block_number "gc-eu:128 gc-eu-mq:128 gc-jp:0 gc-jp-ce:0 gc-jp-mq:0 gc-us:0 gc-us-mq:0 ntsc-1.0:16" \
+ "ntsc-1.1:16 ntsc-1.2:16 pal-1.0:0 pal-1.1:0"
#if !PLATFORM_IQUE
#define MSG_BUF_DECODED (msgCtx->msgBufDecoded)
@@ -348,8 +348,7 @@ u8 Message_ShouldAdvance(PlayState* play) {
if (CHECK_BTN_ALL(input->press.button, BTN_A) || CHECK_BTN_ALL(input->press.button, BTN_B) ||
CHECK_BTN_ALL(input->press.button, BTN_CUP)) {
- Audio_PlaySfxGeneral(NA_SE_SY_MESSAGE_PASS, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_MESSAGE_PASS);
}
return CHECK_BTN_ALL(input->press.button, BTN_A) || CHECK_BTN_ALL(input->press.button, BTN_B) ||
CHECK_BTN_ALL(input->press.button, BTN_CUP);
@@ -373,8 +372,7 @@ void Message_CloseTextbox(PlayState* play) {
msgCtx->stateTimer = 2;
msgCtx->msgMode = MSGMODE_TEXT_CLOSING;
msgCtx->textboxEndType = TEXTBOX_ENDTYPE_DEFAULT;
- Audio_PlaySfxGeneral(NA_SE_NONE, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_NONE);
}
}
@@ -390,8 +388,7 @@ void Message_HandleChoiceSelection(PlayState* play, char numChoices) {
if (msgCtx->choiceIndex > 128)
msgCtx->choiceIndex = 0;
else
- Audio_PlaySfxGeneral(NA_SE_SY_CURSOR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_CURSOR);
// NOLINTEND
} else if (input->rel.stick_y <= -30 && !sAnalogStickHeld) {
sAnalogStickHeld = true;
@@ -400,8 +397,7 @@ void Message_HandleChoiceSelection(PlayState* play, char numChoices) {
if (msgCtx->choiceIndex > numChoices)
msgCtx->choiceIndex = numChoices;
else
- Audio_PlaySfxGeneral(NA_SE_SY_CURSOR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_CURSOR);
// NOLINTEND
} else if (ABS(input->rel.stick_y) < 30) {
sAnalogStickHeld = false;
@@ -1013,8 +1009,7 @@ u16 Message_DrawItemIcon(PlayState* play, u16 itemId, Gfx** p, u16 i) {
// clang-format off
if (msgCtx->msgMode == MSGMODE_TEXT_DISPLAYING) { \
- Audio_PlaySfxGeneral(NA_SE_NONE, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_NONE);
}
// clang-format on
@@ -1155,8 +1150,7 @@ void Message_DrawTextWide(PlayState* play, Gfx** gfxP) {
case MESSAGE_WIDE_BOX_BREAK:
if (msgCtx->msgMode == MSGMODE_TEXT_DISPLAYING) {
if (!sTextboxSkipped) {
- Audio_PlaySfxGeneral(NA_SE_NONE, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_NONE);
msgCtx->msgMode = MSGMODE_TEXT_AWAIT_NEXT;
Font_LoadMessageBoxIcon(&play->msgCtx.font, TEXTBOX_ICON_TRIANGLE);
} else {
@@ -1173,8 +1167,7 @@ void Message_DrawTextWide(PlayState* play, Gfx** gfxP) {
case MESSAGE_WIDE_TEXTID:
msgCtx->textboxEndType = TEXTBOX_ENDTYPE_HAS_NEXT;
if (msgCtx->msgMode == MSGMODE_TEXT_DISPLAYING) {
- Audio_PlaySfxGeneral(NA_SE_NONE, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_NONE);
msgCtx->msgMode = MSGMODE_TEXT_DONE;
Font_LoadMessageBoxIcon(&play->msgCtx.font, TEXTBOX_ICON_TRIANGLE);
}
@@ -1221,8 +1214,7 @@ void Message_DrawTextWide(PlayState* play, Gfx** gfxP) {
case MESSAGE_WIDE_SFX:
if (msgCtx->msgMode == MSGMODE_TEXT_DISPLAYING && !sMessageHasSetSfx) {
sMessageHasSetSfx = true;
- Audio_PlaySfxGeneral(MSG_BUF_DECODED_WIDE[i + 1], &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(MSG_BUF_DECODED_WIDE[i + 1]);
}
i++;
break;
@@ -1232,8 +1224,7 @@ void Message_DrawTextWide(PlayState* play, Gfx** gfxP) {
case MESSAGE_WIDE_BACKGROUND:
// clang-format off
if (msgCtx->msgMode == MSGMODE_TEXT_DISPLAYING) { \
- Audio_PlaySfxGeneral(NA_SE_NONE, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_NONE);
}
// clang-format on
gDPPipeSync(gfx++);
@@ -1316,8 +1307,7 @@ void Message_DrawTextWide(PlayState* play, Gfx** gfxP) {
if (msgCtx->msgMode == MSGMODE_TEXT_DISPLAYING) {
msgCtx->msgMode = MSGMODE_TEXT_DONE;
if (msgCtx->textboxEndType == TEXTBOX_ENDTYPE_DEFAULT) {
- Audio_PlaySfxGeneral(NA_SE_SY_MESSAGE_END, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_MESSAGE_END);
Font_LoadMessageBoxIcon(font, TEXTBOX_ICON_SQUARE);
if (play->csCtx.state == CS_STATE_IDLE) {
Interface_SetDoAction(play, DO_ACTION_RETURN);
@@ -1347,8 +1337,7 @@ void Message_DrawTextWide(PlayState* play, Gfx** gfxP) {
return;
case MESSAGE_WIDE_PERSISTENT:
if (msgCtx->msgMode == MSGMODE_TEXT_DISPLAYING) {
- Audio_PlaySfxGeneral(NA_SE_NONE, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_NONE);
msgCtx->msgMode = MSGMODE_TEXT_DONE;
msgCtx->textboxEndType = TEXTBOX_ENDTYPE_PERSISTENT;
}
@@ -1359,8 +1348,7 @@ void Message_DrawTextWide(PlayState* play, Gfx** gfxP) {
msgCtx->msgMode = MSGMODE_TEXT_DONE;
msgCtx->textboxEndType = TEXTBOX_ENDTYPE_EVENT;
Font_LoadMessageBoxIcon(&play->msgCtx.font, TEXTBOX_ICON_TRIANGLE);
- Audio_PlaySfxGeneral(NA_SE_SY_MESSAGE_END, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_MESSAGE_END);
}
*gfxP = gfx;
return;
@@ -1382,8 +1370,7 @@ void Message_DrawTextWide(PlayState* play, Gfx** gfxP) {
}
if (msgCtx->msgMode == MSGMODE_TEXT_DISPLAYING && i == msgCtx->textDrawPos - 1 &&
msgCtx->textDelayTimer == msgCtx->textDelay) {
- Audio_PlaySfxGeneral(NA_SE_NONE, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_NONE);
}
Message_DrawTextChar(play, &font->charTexBuf[charTexIdx], &gfx);
charTexIdx += FONT_CHAR_TEX_SIZE;
@@ -1481,8 +1468,7 @@ void Message_DrawText(PlayState* play, Gfx** gfxP) {
case MESSAGE_BOX_BREAK:
if (msgCtx->msgMode == MSGMODE_TEXT_DISPLAYING) {
if (!sTextboxSkipped) {
- Audio_PlaySfxGeneral(NA_SE_NONE, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_NONE);
msgCtx->msgMode = MSGMODE_TEXT_AWAIT_NEXT;
Font_LoadMessageBoxIcon(font, TEXTBOX_ICON_TRIANGLE);
} else {
@@ -1499,8 +1485,7 @@ void Message_DrawText(PlayState* play, Gfx** gfxP) {
case MESSAGE_TEXTID:
msgCtx->textboxEndType = TEXTBOX_ENDTYPE_HAS_NEXT;
if (msgCtx->msgMode == MSGMODE_TEXT_DISPLAYING) {
- Audio_PlaySfxGeneral(NA_SE_NONE, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_NONE);
msgCtx->msgMode = MSGMODE_TEXT_DONE;
Font_LoadMessageBoxIcon(font, TEXTBOX_ICON_TRIANGLE);
}
@@ -1561,8 +1546,7 @@ void Message_DrawText(PlayState* play, Gfx** gfxP) {
PRINTF(T("サウンド(SE)\n", "Sound (SE)\n"));
sfxHi = MSG_BUF_DECODED[i + 1];
sfxHi <<= 8;
- Audio_PlaySfxGeneral(sfxHi | MSG_BUF_DECODED[i + 2], &gSfxDefaultPos, 4,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(sfxHi | MSG_BUF_DECODED[i + 2]);
}
i += 2;
break;
@@ -1572,8 +1556,7 @@ void Message_DrawText(PlayState* play, Gfx** gfxP) {
case MESSAGE_BACKGROUND:
// clang-format off
if (msgCtx->msgMode == MSGMODE_TEXT_DISPLAYING) { \
- Audio_PlaySfxGeneral(NA_SE_NONE, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_NONE);
}
// clang-format on
gDPPipeSync(gfx++);
@@ -1656,8 +1639,7 @@ void Message_DrawText(PlayState* play, Gfx** gfxP) {
if (msgCtx->msgMode == MSGMODE_TEXT_DISPLAYING) {
msgCtx->msgMode = MSGMODE_TEXT_DONE;
if (msgCtx->textboxEndType == TEXTBOX_ENDTYPE_DEFAULT) {
- Audio_PlaySfxGeneral(NA_SE_SY_MESSAGE_END, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_MESSAGE_END);
Font_LoadMessageBoxIcon(font, TEXTBOX_ICON_SQUARE);
if (play->csCtx.state == 0) {
Interface_SetDoAction(play, DO_ACTION_RETURN);
@@ -1687,8 +1669,7 @@ void Message_DrawText(PlayState* play, Gfx** gfxP) {
return;
case MESSAGE_PERSISTENT:
if (msgCtx->msgMode == MSGMODE_TEXT_DISPLAYING) {
- Audio_PlaySfxGeneral(NA_SE_NONE, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_NONE);
msgCtx->msgMode = MSGMODE_TEXT_DONE;
msgCtx->textboxEndType = TEXTBOX_ENDTYPE_PERSISTENT;
}
@@ -1699,16 +1680,14 @@ void Message_DrawText(PlayState* play, Gfx** gfxP) {
msgCtx->msgMode = MSGMODE_TEXT_DONE;
msgCtx->textboxEndType = TEXTBOX_ENDTYPE_EVENT;
Font_LoadMessageBoxIcon(font, TEXTBOX_ICON_TRIANGLE);
- Audio_PlaySfxGeneral(NA_SE_SY_MESSAGE_END, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_MESSAGE_END);
}
*gfxP = gfx;
return;
default:
if (msgCtx->msgMode == MSGMODE_TEXT_DISPLAYING && i == msgCtx->textDrawPos - 1 &&
msgCtx->textDelayTimer == msgCtx->textDelay) {
- Audio_PlaySfxGeneral(NA_SE_NONE, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_NONE);
}
#if PLATFORM_IQUE
@@ -2861,8 +2840,7 @@ void Message_StartOcarinaImpl(PlayState* play, u16 ocarinaActionId) {
PRINTF("ocarina_set 000000000000000000 = %d\n", ocarinaActionId);
msgCtx->ocarinaAction = ocarinaActionId;
if (ocarinaActionId >= OCARINA_ACTION_CHECK_SARIA && ocarinaActionId <= OCARINA_ACTION_CHECK_STORMS) {
- Audio_PlaySfxGeneral(NA_SE_SY_TRE_BOX_APPEAR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_TRE_BOX_APPEAR);
}
if (ocarinaActionId == OCARINA_ACTION_SCARECROW_SPAWN_PLAYBACK) {
Message_OpenText(play, 0x86F); // Ocarina
@@ -3207,9 +3185,7 @@ void Message_DrawMain(PlayState* play, Gfx** p) {
if (msgCtx->ocarinaStaff->state < OCARINA_SONG_SARIAS ||
msgCtx->ocarinaStaff->state == OCARINA_SONG_SCARECROW_SPAWN) {
AudioOcarina_SetInstrument(OCARINA_INSTRUMENT_OFF);
- Audio_PlaySfxGeneral(NA_SE_SY_OCARINA_ERROR, &gSfxDefaultPos, 4,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_OCARINA_ERROR);
msgCtx->msgMode = MSGMODE_OCARINA_STARTING;
} else {
PRINTF(T("Ocarina_Flog 正解模範演奏=%x\n",
@@ -3219,17 +3195,13 @@ void Message_DrawMain(PlayState* play, Gfx** p) {
msgCtx->msgMode = MSGMODE_SONG_PLAYED;
msgCtx->textBoxType = TEXTBOX_TYPE_OCARINA;
msgCtx->stateTimer = 10;
- Audio_PlaySfxGeneral(NA_SE_SY_TRE_BOX_APPEAR, &gSfxDefaultPos, 4,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_TRE_BOX_APPEAR);
Interface_ChangeHudVisibilityMode(HUD_VISIBILITY_NOTHING);
}
} else if (msgCtx->ocarinaAction == OCARINA_ACTION_CHECK_SCARECROW_SPAWN) {
if (msgCtx->ocarinaStaff->state < OCARINA_SONG_SCARECROW_SPAWN) {
AudioOcarina_SetInstrument(OCARINA_INSTRUMENT_OFF);
- Audio_PlaySfxGeneral(NA_SE_SY_OCARINA_ERROR, &gSfxDefaultPos, 4,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_OCARINA_ERROR);
msgCtx->stateTimer = 10;
msgCtx->msgMode = MSGMODE_OCARINA_FAIL;
} else {
@@ -3240,9 +3212,7 @@ void Message_DrawMain(PlayState* play, Gfx** p) {
msgCtx->msgMode = MSGMODE_SONG_PLAYED;
msgCtx->textBoxType = TEXTBOX_TYPE_OCARINA;
msgCtx->stateTimer = 10;
- Audio_PlaySfxGeneral(NA_SE_SY_TRE_BOX_APPEAR, &gSfxDefaultPos, 4,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_TRE_BOX_APPEAR);
Interface_ChangeHudVisibilityMode(HUD_VISIBILITY_NOTHING);
}
} else if (msgCtx->ocarinaAction == OCARINA_ACTION_FREE_PLAY) {
@@ -3253,25 +3223,19 @@ void Message_DrawMain(PlayState* play, Gfx** p) {
msgCtx->msgMode = MSGMODE_SONG_PLAYED;
msgCtx->textBoxType = TEXTBOX_TYPE_OCARINA;
msgCtx->stateTimer = 10;
- Audio_PlaySfxGeneral(NA_SE_SY_TRE_BOX_APPEAR, &gSfxDefaultPos, 4,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_TRE_BOX_APPEAR);
} else {
- Audio_PlaySfxGeneral(NA_SE_SY_TRE_BOX_APPEAR, &gSfxDefaultPos, 4,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_TRE_BOX_APPEAR);
}
Interface_ChangeHudVisibilityMode(HUD_VISIBILITY_NOTHING);
} else {
AudioOcarina_SetInstrument(OCARINA_INSTRUMENT_OFF);
- Audio_PlaySfxGeneral(NA_SE_SY_OCARINA_ERROR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_OCARINA_ERROR);
msgCtx->msgMode = MSGMODE_OCARINA_STARTING;
}
} else if (msgCtx->ocarinaStaff->state == 0xFF) {
AudioOcarina_SetInstrument(OCARINA_INSTRUMENT_OFF);
- Audio_PlaySfxGeneral(NA_SE_SY_OCARINA_ERROR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_OCARINA_ERROR);
msgCtx->stateTimer = 10;
msgCtx->msgMode = MSGMODE_OCARINA_FAIL;
} else if (CHECK_BTN_ALL(input->press.button, BTN_B)) {
@@ -3649,11 +3613,9 @@ void Message_DrawMain(PlayState* play, Gfx** p) {
ITEM_SONG_MINUET + msgCtx->ocarinaStaff->state);
PRINTF_RST();
msgCtx->stateTimer = 20;
- Audio_PlaySfxGeneral(NA_SE_SY_TRE_BOX_APPEAR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_TRE_BOX_APPEAR);
} else if (msgCtx->ocarinaStaff->state == 0xFF) {
- Audio_PlaySfxGeneral(NA_SE_SY_OCARINA_ERROR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_OCARINA_ERROR);
msgCtx->stateTimer = 10;
msgCtx->msgMode = MSGMODE_SONG_PLAYBACK_FAIL;
}
@@ -3705,8 +3667,7 @@ void Message_DrawMain(PlayState* play, Gfx** p) {
msgCtx->ocarinaStaff->state);
gSaveContext.save.info.scarecrowLongSongSet = true;
}
- Audio_PlaySfxGeneral(NA_SE_SY_OCARINA_ERROR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_OCARINA_ERROR);
PRINTF("aaaaaaaaaaaaaa\n");
AudioOcarina_SetRecordingState(OCARINA_RECORD_OFF);
msgCtx->stateTimer = 10;
@@ -3777,8 +3738,7 @@ void Message_DrawMain(PlayState* play, Gfx** p) {
msgCtx->stateTimer = 20;
gSaveContext.save.info.scarecrowSpawnSongSet = true;
msgCtx->msgMode = MSGMODE_SCARECROW_SPAWN_RECORDING_DONE;
- Audio_PlaySfxGeneral(NA_SE_SY_TRE_BOX_APPEAR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_TRE_BOX_APPEAR);
PRINTF_COLOR_YELLOW();
PRINTF("\n====================================================================\n");
MemCpy(gSaveContext.save.info.scarecrowSpawnSong, gScarecrowSpawnSongPtr,
@@ -3792,8 +3752,7 @@ void Message_DrawMain(PlayState* play, Gfx** p) {
CHECK_BTN_ALL(input->press.button, BTN_B)) {
PRINTF(T("すでに存在する曲吹いた!!! \n", "Played an existing song!!! \n"));
AudioOcarina_SetRecordingState(OCARINA_RECORD_OFF);
- Audio_PlaySfxGeneral(NA_SE_SY_OCARINA_ERROR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_OCARINA_ERROR);
Message_CloseTextbox(play);
msgCtx->msgMode = MSGMODE_SCARECROW_SPAWN_RECORDING_FAILED;
}
@@ -3818,8 +3777,7 @@ void Message_DrawMain(PlayState* play, Gfx** p) {
break;
case MSGMODE_MEMORY_GAME_LEFT_SKULLKID_PLAYING:
case MSGMODE_MEMORY_GAME_RIGHT_SKULLKID_PLAYING:
- Audio_PlaySfxGeneral(NA_SE_SY_METRONOME_LV - SFX_FLAG, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_METRONOME_LV - SFX_FLAG);
msgCtx->ocarinaStaff = AudioOcarina_GetPlaybackStaff();
if (((u32)msgCtx->ocarinaStaff->pos != 0) &&
(sOcarinaButtonIndexBufPos == msgCtx->ocarinaStaff->pos - 1)) {
@@ -3830,11 +3788,9 @@ void Message_DrawMain(PlayState* play, Gfx** p) {
if (msgCtx->stateTimer == 0) {
if (msgCtx->ocarinaStaff->state == 0) {
if (msgCtx->msgMode == MSGMODE_MEMORY_GAME_LEFT_SKULLKID_PLAYING) {
- Audio_PlaySfxGeneral(NA_SE_SY_METRONOME, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_METRONOME);
} else {
- Audio_PlaySfxGeneral(NA_SE_SY_METRONOME_2, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_METRONOME_2);
}
msgCtx->msgMode++;
}
@@ -3853,8 +3809,7 @@ void Message_DrawMain(PlayState* play, Gfx** p) {
}
break;
case MSGMODE_MEMORY_GAME_PLAYER_PLAYING:
- Audio_PlaySfxGeneral(NA_SE_SY_METRONOME_LV - SFX_FLAG, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_METRONOME_LV - SFX_FLAG);
msgCtx->ocarinaStaff = AudioOcarina_GetPlayingStaff();
if (((u32)msgCtx->ocarinaStaff->pos != 0) &&
(sOcarinaButtonIndexBufPos == msgCtx->ocarinaStaff->pos - 1)) {
@@ -3865,14 +3820,12 @@ void Message_DrawMain(PlayState* play, Gfx** p) {
if (msgCtx->ocarinaStaff->state == 0xFF) {
PRINTF(T("輪唱失敗!!!!!!!!!\n", "Musical round failed!!!!!!!!!\n"));
AudioOcarina_SetInstrument(OCARINA_INSTRUMENT_OFF);
- Audio_PlaySfxGeneral(NA_SE_SY_OCARINA_ERROR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_OCARINA_ERROR);
msgCtx->stateTimer = 10;
play->msgCtx.ocarinaMode = OCARINA_MODE_03;
} else if (msgCtx->ocarinaStaff->state == OCARINA_SONG_MEMORY_GAME) {
PRINTF(T("輪唱成功!!!!!!!!!\n", "Musical round succeeded!!!!!!!!!\n"));
- Audio_PlaySfxGeneral(NA_SE_SY_GET_ITEM, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_GET_ITEM);
msgCtx->msgMode = MSGMODE_MEMORY_GAME_ROUND_SUCCESS;
msgCtx->stateTimer = 30;
}
@@ -3889,8 +3842,7 @@ void Message_DrawMain(PlayState* play, Gfx** p) {
msgCtx->stateTimer--;
if (msgCtx->stateTimer == 0) {
if (AudioOcarina_MemoryGameNextNote() != 1) {
- Audio_PlaySfxGeneral(NA_SE_SY_METRONOME, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_METRONOME);
msgCtx->ocarinaStaff = AudioOcarina_GetPlayingStaff();
msgCtx->ocarinaStaff->pos = sOcarinaButtonIndexBufPos = 0;
Message_ResetOcarinaNoteState();
@@ -4390,8 +4342,7 @@ void Message_Update(PlayState* play) {
} else if (Message_ShouldAdvanceSilent(play)) {
PRINTF("select=%d\n", msgCtx->textboxEndType);
if (msgCtx->textboxEndType == TEXTBOX_ENDTYPE_HAS_NEXT) {
- Audio_PlaySfxGeneral(NA_SE_SY_MESSAGE_PASS, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_MESSAGE_PASS);
#if OOT_NTSC
if (gSaveContext.language == LANGUAGE_JPN && !sTextIsCredits) {
Message_ContinueTextbox(play, MSG_BUF_DECODED_WIDE[msgCtx->textDrawPos]);
@@ -4402,8 +4353,7 @@ void Message_Update(PlayState* play) {
Message_ContinueTextbox(play, sNextTextId);
#endif
} else {
- Audio_PlaySfxGeneral(NA_SE_SY_DECIDE, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_DECIDE);
Message_CloseTextbox(play);
}
}
@@ -4429,7 +4379,7 @@ void Message_Update(PlayState* play) {
if (msgCtx->textId != 0x2061 && msgCtx->textId != 0x2025 && msgCtx->textId != 0x208C &&
((msgCtx->textId < 0x88D || msgCtx->textId >= 0x893) || msgCtx->choiceIndex != 0) &&
- (msgCtx->textId != 0x3055 && gSaveContext.save.cutsceneIndex < 0xFFF0)) {
+ (msgCtx->textId != 0x3055 && gSaveContext.save.cutsceneIndex < CS_INDEX_0)) {
PRINTF("=== day_time=%x ", ((void)0, gSaveContext.save.cutsceneIndex));
if (play->activeCamId == CAM_ID_MAIN) {
if (gSaveContext.prevHudVisibilityMode == HUD_VISIBILITY_NO_CHANGE ||
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/code/z_parameter.c b/src/code/z_parameter.c
index 7c97802888..1eb2b08ab6 100644
--- a/src/code/z_parameter.c
+++ b/src/code/z_parameter.c
@@ -29,7 +29,8 @@
#include "assets/textures/do_action_static/do_action_static.h"
#include "assets/textures/icon_item_static/icon_item_static.h"
-#pragma increment_block_number "gc-jp:128 gc-jp-ce:128 gc-jp-mq:128 gc-us:128 gc-us-mq:128"
+#pragma increment_block_number "gc-jp:128 gc-jp-ce:128 gc-jp-mq:128 gc-us:128 gc-us-mq:128 ntsc-1.0:128 ntsc-1.1:128" \
+ "ntsc-1.2:128"
typedef struct RestrictionFlags {
/* 0x00 */ u8 sceneId;
@@ -670,8 +671,8 @@ void func_80083108(PlayState* play) {
s16 i;
s16 sp28 = false;
- if ((gSaveContext.save.cutsceneIndex < 0xFFF0) ||
- ((play->sceneId == SCENE_LON_LON_RANCH) && (gSaveContext.save.cutsceneIndex == 0xFFF0))) {
+ if ((gSaveContext.save.cutsceneIndex < CS_INDEX_0) ||
+ ((play->sceneId == SCENE_LON_LON_RANCH) && (gSaveContext.save.cutsceneIndex == CS_INDEX_0))) {
gSaveContext.forceRisingButtonAlphas = false;
if ((player->stateFlags1 & PLAYER_STATE1_23) || (play->shootingGalleryStatus > 1) ||
@@ -2191,9 +2192,7 @@ void Interface_SetNaviCall(PlayState* play, u16 naviCallState) {
if (((naviCallState == 0x1D) || (naviCallState == 0x1E)) && !interfaceCtx->naviCalling &&
(play->csCtx.state == CS_STATE_IDLE)) {
// clang-format off
- if (naviCallState == 0x1E) { Audio_PlaySfxGeneral(NA_SE_VO_NAVY_CALL, &gSfxDefaultPos, 4,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultReverb);
+ if (naviCallState == 0x1E) { SFX_PLAY_CENTERED(NA_SE_VO_NAVY_CALL);
}
// clang-format on
@@ -2244,8 +2243,7 @@ s32 Health_ChangeBy(PlayState* play, s16 amount) {
gSaveContext.save.info.playerData.health, gSaveContext.save.info.playerData.healthCapacity);
// clang-format off
- if (amount > 0) { Audio_PlaySfxGeneral(NA_SE_SY_HP_RECOVER, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ if (amount > 0) { SFX_PLAY_CENTERED(NA_SE_SY_HP_RECOVER);
} else if (gSaveContext.save.info.playerData.isDoubleDefenseAcquired && (amount < 0)) {
amount >>= 1;
PRINTF(T("ハート減少半分!!=%d\n", "Heart decrease halved!! = %d\n"), amount);
@@ -2382,8 +2380,7 @@ s32 Magic_RequestChange(PlayState* play, s16 amount, s16 type) {
if ((type != MAGIC_ADD) && (gSaveContext.save.info.playerData.magic - amount) < 0) {
if (gSaveContext.magicCapacity != 0) {
- Audio_PlaySfxGeneral(NA_SE_SY_ERROR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_ERROR);
}
return false;
}
@@ -2401,8 +2398,7 @@ s32 Magic_RequestChange(PlayState* play, s16 amount, s16 type) {
gSaveContext.magicState = MAGIC_STATE_CONSUME_SETUP;
return true;
} else {
- Audio_PlaySfxGeneral(NA_SE_SY_ERROR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_ERROR);
return false;
}
@@ -2419,8 +2415,7 @@ s32 Magic_RequestChange(PlayState* play, s16 amount, s16 type) {
gSaveContext.magicState = MAGIC_STATE_METER_FLASH_3;
return true;
} else {
- Audio_PlaySfxGeneral(NA_SE_SY_ERROR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_ERROR);
return false;
}
@@ -2451,8 +2446,7 @@ s32 Magic_RequestChange(PlayState* play, s16 amount, s16 type) {
gSaveContext.magicState = MAGIC_STATE_METER_FLASH_2;
return true;
} else {
- Audio_PlaySfxGeneral(NA_SE_SY_ERROR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_ERROR);
return false;
}
@@ -2520,8 +2514,7 @@ void Magic_Update(PlayState* play) {
gSaveContext.save.info.playerData.magic += 4;
if (gSaveContext.gameMode == GAMEMODE_NORMAL && !IS_CUTSCENE_LAYER) {
- Audio_PlaySfxGeneral(NA_SE_SY_GAUGE_UP - SFX_FLAG, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_GAUGE_UP - SFX_FLAG);
}
PRINTF(T("蓄電 MAGIC_NOW=%d (%d)\n", "Storage MAGIC_NOW=%d (%d)\n"),
@@ -2611,8 +2604,7 @@ void Magic_Update(PlayState* play) {
!play->actorCtx.lensActive) {
// Force lens off and set magic meter state to idle
play->actorCtx.lensActive = false;
- Audio_PlaySfxGeneral(NA_SE_SY_GLASSMODE_OFF, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_GLASSMODE_OFF);
gSaveContext.magicState = MAGIC_STATE_IDLE;
sMagicBorderR = sMagicBorderG = sMagicBorderB = 255;
break;
@@ -2664,8 +2656,7 @@ void Magic_Update(PlayState* play) {
case MAGIC_STATE_ADD:
// Add magic until target is reached
gSaveContext.save.info.playerData.magic += 4;
- Audio_PlaySfxGeneral(NA_SE_SY_GAUGE_UP - SFX_FLAG, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_GAUGE_UP - SFX_FLAG);
if (gSaveContext.save.info.playerData.magic >= gSaveContext.magicTarget) {
gSaveContext.save.info.playerData.magic = gSaveContext.magicTarget;
gSaveContext.magicState = gSaveContext.prevMagicState;
@@ -3564,7 +3555,7 @@ void Interface_Draw(PlayState* play) {
(Message_GetState(&play->msgCtx) == TEXT_STATE_EVENT)) {
// Trade quest timer reached 0
sSubTimerStateTimer = 40;
- gSaveContext.save.cutsceneIndex = 0;
+ gSaveContext.save.cutsceneIndex = CS_INDEX_NONE;
play->transitionTrigger = TRANS_TRIGGER_START;
play->transitionType = TRANS_TYPE_FADE_WHITE;
gSaveContext.subTimerState = SUBTIMER_STATE_OFF;
@@ -3711,22 +3702,16 @@ void Interface_Draw(PlayState* play) {
} else if (gSaveContext.timerSeconds > 60) {
// Beep at "xx:x1" (every 10 seconds)
if (sTimerDigits[4] == 1) {
- Audio_PlaySfxGeneral(NA_SE_SY_MESSAGE_WOMAN, &gSfxDefaultPos, 4,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_MESSAGE_WOMAN);
}
} else if (gSaveContext.timerSeconds > 10) {
// Beep on alternating seconds
if ((sTimerDigits[4] % 2) != 0) {
- Audio_PlaySfxGeneral(NA_SE_SY_WARNING_COUNT_N, &gSfxDefaultPos, 4,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_WARNING_COUNT_N);
}
} else {
// Beep every second
- Audio_PlaySfxGeneral(NA_SE_SY_WARNING_COUNT_E, &gSfxDefaultPos, 4,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_WARNING_COUNT_E);
}
}
}
@@ -3775,9 +3760,7 @@ void Interface_Draw(PlayState* play) {
sTimerStateTimer = 40;
gSaveContext.timerState = TIMER_STATE_UP_FREEZE;
} else {
- Audio_PlaySfxGeneral(NA_SE_SY_WARNING_COUNT_N, &gSfxDefaultPos, 4,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_WARNING_COUNT_N);
}
}
}
@@ -3902,7 +3885,7 @@ void Interface_Draw(PlayState* play) {
(play->sceneId != SCENE_INSIDE_GANONS_CASTLE_COLLAPSE))) {
sSubTimerStateTimer = 40;
gSaveContext.subTimerState = SUBTIMER_STATE_RESPAWN;
- gSaveContext.save.cutsceneIndex = 0;
+ gSaveContext.save.cutsceneIndex = CS_INDEX_NONE;
Message_StartTextbox(play, 0x71B0, NULL);
Player_SetCsActionWithHaltedActors(play, NULL, PLAYER_CSACTION_8);
} else {
@@ -3912,22 +3895,16 @@ void Interface_Draw(PlayState* play) {
} else if (gSaveContext.subTimerSeconds > 60) {
// Beep at "xx:x1" (every 10 seconds)
if (sTimerDigits[4] == 1) {
- Audio_PlaySfxGeneral(NA_SE_SY_MESSAGE_WOMAN, &gSfxDefaultPos, 4,
- &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_MESSAGE_WOMAN);
}
} else if (gSaveContext.subTimerSeconds > 10) {
// Beep on alternating seconds
if ((sTimerDigits[4] % 2) != 0) {
- Audio_PlaySfxGeneral(NA_SE_SY_WARNING_COUNT_N, &gSfxDefaultPos, 4,
- &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_WARNING_COUNT_N);
}
} else {
// Beep every second
- Audio_PlaySfxGeneral(NA_SE_SY_WARNING_COUNT_E, &gSfxDefaultPos, 4,
- &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_WARNING_COUNT_E);
}
} else { // SUBTIMER_STATE_UP_TICK
gSaveContext.subTimerSeconds++;
@@ -3944,9 +3921,7 @@ void Interface_Draw(PlayState* play) {
// Beep at the minute mark
if ((gSaveContext.subTimerSeconds % 60) == 0) {
- Audio_PlaySfxGeneral(NA_SE_SY_WARNING_COUNT_N, &gSfxDefaultPos, 4,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_WARNING_COUNT_N);
}
}
}
@@ -4192,8 +4167,7 @@ void Interface_Update(PlayState* play) {
gSaveContext.save.info.playerData.health += 4;
if ((gSaveContext.save.info.playerData.health & 0xF) < 4) {
- Audio_PlaySfxGeneral(NA_SE_SY_HP_RECOVER, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_HP_RECOVER);
}
PRINTF("now_life=%d max_life=%d\n", gSaveContext.save.info.playerData.health,
@@ -4233,8 +4207,7 @@ void Interface_Update(PlayState* play) {
if (gSaveContext.save.info.playerData.rupees < CUR_CAPACITY(UPG_WALLET)) {
gSaveContext.rupeeAccumulator--;
gSaveContext.save.info.playerData.rupees++;
- Audio_PlaySfxGeneral(NA_SE_SY_RUPY_COUNT, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_RUPY_COUNT);
} else {
PRINTF(T("ルピー数MAX = %d\n", "Rupee Amount MAX = %d\n"), CUR_CAPACITY(UPG_WALLET));
gSaveContext.save.info.playerData.rupees = CUR_CAPACITY(UPG_WALLET);
@@ -4249,13 +4222,11 @@ void Interface_Update(PlayState* play) {
gSaveContext.save.info.playerData.rupees = 0;
}
- Audio_PlaySfxGeneral(NA_SE_SY_RUPY_COUNT, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_RUPY_COUNT);
} else {
gSaveContext.rupeeAccumulator++;
gSaveContext.save.info.playerData.rupees--;
- Audio_PlaySfxGeneral(NA_SE_SY_RUPY_COUNT, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_RUPY_COUNT);
}
} else {
gSaveContext.rupeeAccumulator = 0;
diff --git a/src/code/z_play.c b/src/code/z_play.c
index 679c5b7772..8d73e9e565 100644
--- a/src/code/z_play.c
+++ b/src/code/z_play.c
@@ -47,8 +47,8 @@
#include "save.h"
#include "vis.h"
-#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:224" \
- "ntsc-1.0:240 ntsc-1.1:240 ntsc-1.2:240 pal-1.0:240 pal-1.1:240"
+#pragma increment_block_number "gc-eu:224 gc-eu-mq:224 gc-jp:224 gc-jp-ce:224 gc-jp-mq:224 gc-us:224 gc-us-mq:224" \
+ "ique-cn:224 ntsc-1.0:240 ntsc-1.1:240 ntsc-1.2:240 pal-1.0:240 pal-1.1:240"
TransitionTile gTransitionTile;
s32 gTransitionTileState;
@@ -93,11 +93,9 @@ void Play_SetViewpoint(PlayState* this, s16 viewpoint) {
this->viewpoint = viewpoint;
- if ((R_SCENE_CAM_TYPE != SCENE_CAM_TYPE_FIXED_SHOP_VIEWPOINT) && (gSaveContext.save.cutsceneIndex < 0xFFF0)) {
+ if ((R_SCENE_CAM_TYPE != SCENE_CAM_TYPE_FIXED_SHOP_VIEWPOINT) && (gSaveContext.save.cutsceneIndex < CS_INDEX_0)) {
// Play a sfx when the player toggles the camera
- Audio_PlaySfxGeneral((viewpoint == VIEWPOINT_LOCKED) ? NA_SE_SY_CAMERA_ZOOM_DOWN : NA_SE_SY_CAMERA_ZOOM_UP,
- &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED((viewpoint == VIEWPOINT_LOCKED) ? NA_SE_SY_CAMERA_ZOOM_DOWN : NA_SE_SY_CAMERA_ZOOM_UP);
}
Play_RequestViewpointBgCam(this);
@@ -352,13 +350,13 @@ void Play_Init(GameState* thisx) {
AnimTaskQueue_Reset(&this->animTaskQueue);
Cutscene_InitContext(this, &this->csCtx);
- if (gSaveContext.nextCutsceneIndex != 0xFFEF) {
+ if (gSaveContext.nextCutsceneIndex != NEXT_CS_INDEX_NONE) {
gSaveContext.save.cutsceneIndex = gSaveContext.nextCutsceneIndex;
- gSaveContext.nextCutsceneIndex = 0xFFEF;
+ gSaveContext.nextCutsceneIndex = NEXT_CS_INDEX_NONE;
}
- if (gSaveContext.save.cutsceneIndex == 0xFFFD) {
- gSaveContext.save.cutsceneIndex = 0;
+ if (gSaveContext.save.cutsceneIndex == CS_INDEX_D) {
+ gSaveContext.save.cutsceneIndex = CS_INDEX_NONE;
}
if (gSaveContext.nextDayTime != NEXT_TIME_NONE) {
@@ -374,10 +372,10 @@ void Play_Init(GameState* thisx) {
Cutscene_HandleConditionalTriggers(this);
- if (gSaveContext.gameMode != GAMEMODE_NORMAL || gSaveContext.save.cutsceneIndex >= 0xFFF0) {
+ if (gSaveContext.gameMode != GAMEMODE_NORMAL || gSaveContext.save.cutsceneIndex >= CS_INDEX_0) {
gSaveContext.nayrusLoveTimer = 0;
Magic_Reset(this);
- gSaveContext.sceneLayer = SCENE_LAYER_CUTSCENE_FIRST + (gSaveContext.save.cutsceneIndex & 0xF);
+ gSaveContext.sceneLayer = GET_CUTSCENE_LAYER(gSaveContext.save.cutsceneIndex);
} else if (!LINK_IS_ADULT && IS_DAY) {
gSaveContext.sceneLayer = SCENE_LAYER_CHILD_DAY;
} else if (!LINK_IS_ADULT && !IS_DAY) {
@@ -627,7 +625,7 @@ void Play_Update(PlayState* this) {
Interface_ChangeHudVisibilityMode(HUD_VISIBILITY_NOTHING);
- if (gSaveContext.save.cutsceneIndex >= 0xFFF0) {
+ if (gSaveContext.save.cutsceneIndex >= CS_INDEX_0) {
sceneLayer = SCENE_LAYER_CUTSCENE_FIRST + (gSaveContext.save.cutsceneIndex & 0xF);
}
@@ -873,8 +871,7 @@ void Play_Update(PlayState* this) {
break;
case TRANS_MODE_SANDSTORM:
- Audio_PlaySfxGeneral(NA_SE_EV_SAND_STORM - SFX_FLAG, &gSfxDefaultPos, 4,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_EV_SAND_STORM - SFX_FLAG);
if (this->transitionTrigger == TRANS_TRIGGER_END) {
if (this->envCtx.sandstormPrimA < 110) {
@@ -908,8 +905,7 @@ void Play_Update(PlayState* this) {
break;
case TRANS_MODE_SANDSTORM_END:
- Audio_PlaySfxGeneral(NA_SE_EV_SAND_STORM - SFX_FLAG, &gSfxDefaultPos, 4,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_EV_SAND_STORM - SFX_FLAG);
if (this->transitionTrigger == TRANS_TRIGGER_END) {
if (this->envCtx.sandstormPrimA <= 0) {
@@ -1043,8 +1039,7 @@ void Play_Update(PlayState* this) {
PRINTF(VT_FGCOL(CYAN) T("デモ中につき視点変更を禁止しております\n",
"Changing viewpoint is prohibited during the cutscene\n") VT_RST);
} else if (R_SCENE_CAM_TYPE == SCENE_CAM_TYPE_FIXED_SHOP_VIEWPOINT) {
- Audio_PlaySfxGeneral(NA_SE_SY_ERROR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_ERROR);
} else {
// C-Up toggle for houses, move between pivot camera and fixed camera
// Toggle viewpoint between VIEWPOINT_LOCKED and VIEWPOINT_PIVOT
diff --git a/src/code/z_scene.c b/src/code/z_scene.c
index 65503d0ccb..a3182a2f88 100644
--- a/src/code/z_scene.c
+++ b/src/code/z_scene.c
@@ -396,7 +396,7 @@ BAD_RETURN(s32) Scene_CommandTimeSettings(PlayState* play, SceneCmd* cmd) {
play->envCtx.sunPos.y = (Math_CosS(((void)0, gSaveContext.save.dayTime) - CLOCK_TIME(12, 0)) * 120.0f) * 25.0f;
play->envCtx.sunPos.z = (Math_CosS(((void)0, gSaveContext.save.dayTime) - CLOCK_TIME(12, 0)) * 20.0f) * 25.0f;
- if (((play->envCtx.sceneTimeSpeed == 0) && (gSaveContext.save.cutsceneIndex < 0xFFF0)) ||
+ if (((play->envCtx.sceneTimeSpeed == 0) && (gSaveContext.save.cutsceneIndex < CS_INDEX_0)) ||
(gSaveContext.save.entranceIndex == ENTR_LAKE_HYLIA_8)) {
#if OOT_VERSION >= PAL_1_0
gSaveContext.skyboxTime = ((void)0, gSaveContext.save.dayTime);
@@ -459,7 +459,7 @@ BAD_RETURN(s32) Scene_CommandAlternateHeaderList(PlayState* play, SceneCmd* cmd)
PRINTF("\n[ZU]sceneset time =[%X]", ((void)0, gSaveContext.save.cutsceneIndex));
PRINTF("\n[ZU]sceneset counter=[%X]", ((void)0, gSaveContext.sceneLayer));
- if (gSaveContext.sceneLayer != 0) {
+ if (gSaveContext.sceneLayer != SCENE_LAYER_CHILD_DAY) {
SceneCmd* altHeader = ((SceneCmd**)SEGMENTED_TO_VIRTUAL(cmd->altHeaders.data))[gSaveContext.sceneLayer - 1];
if (altHeader != NULL) {
@@ -502,7 +502,7 @@ BAD_RETURN(s32) Scene_CommandMiscSettings(PlayState* play, SceneCmd* cmd) {
if (((play->sceneId >= SCENE_HYRULE_FIELD) && (play->sceneId <= SCENE_OUTSIDE_GANONS_CASTLE)) ||
((play->sceneId >= SCENE_MARKET_ENTRANCE_DAY) && (play->sceneId <= SCENE_TEMPLE_OF_TIME_EXTERIOR_RUINS))) {
- if (gSaveContext.save.cutsceneIndex < 0xFFF0) {
+ if (gSaveContext.save.cutsceneIndex < CS_INDEX_0) {
gSaveContext.save.info.worldMapAreaData |= gBitFlags[((void)0, gSaveContext.worldMapArea)];
PRINTF("000 area_arrival=%x (%d)\n", gSaveContext.save.info.worldMapAreaData,
((void)0, gSaveContext.worldMapArea));
@@ -515,15 +515,15 @@ void Scene_SetTransitionForNextEntrance(PlayState* play) {
if (!IS_DAY) {
if (!LINK_IS_ADULT) {
- entranceIndex = play->nextEntranceIndex + 1;
+ entranceIndex = play->nextEntranceIndex + SCENE_LAYER_CHILD_NIGHT;
} else {
- entranceIndex = play->nextEntranceIndex + 3;
+ entranceIndex = play->nextEntranceIndex + SCENE_LAYER_ADULT_NIGHT;
}
} else {
if (!LINK_IS_ADULT) {
- entranceIndex = play->nextEntranceIndex;
+ entranceIndex = play->nextEntranceIndex + SCENE_LAYER_CHILD_DAY;
} else {
- entranceIndex = play->nextEntranceIndex + 2;
+ entranceIndex = play->nextEntranceIndex + SCENE_LAYER_ADULT_DAY;
}
}
diff --git a/src/code/z_sfx_source.c b/src/code/z_sfx_source.c
index 2aaadeb365..63022b9815 100644
--- a/src/code/z_sfx_source.c
+++ b/src/code/z_sfx_source.c
@@ -63,6 +63,5 @@ void SfxSource_PlaySfxAtFixedWorldPos(PlayState* play, Vec3f* worldPos, s32 dura
source->countdown = duration;
SkinMatrix_Vec3fMtxFMultXYZ(&play->viewProjectionMtxF, &source->worldPos, &source->projectedPos);
- Audio_PlaySfxGeneral(sfxId, &source->projectedPos, 4, &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&source->projectedPos, sfxId);
}
diff --git a/src/code/z_sram.c b/src/code/z_sram.c
index 17bfb5baa4..c1a514a94b 100644
--- a/src/code/z_sram.c
+++ b/src/code/z_sram.c
@@ -859,11 +859,11 @@ void Sram_InitSave(FileSelectState* fileSelect, SramContext* sramCtx) {
gSaveContext.save.entranceIndex = ENTR_LINKS_HOUSE_0;
gSaveContext.save.linkAge = LINK_AGE_CHILD;
gSaveContext.save.dayTime = CLOCK_TIME(10, 0);
- gSaveContext.save.cutsceneIndex = 0xFFF1;
+ gSaveContext.save.cutsceneIndex = CS_INDEX_1;
#if DEBUG_FEATURES
if (fileSelect->buttonIndex == 0) {
- gSaveContext.save.cutsceneIndex = 0;
+ gSaveContext.save.cutsceneIndex = CS_INDEX_NONE;
}
#endif
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 3e8127024b..1b193f8ca2 100644
--- a/src/overlays/actors/ovl_Arms_Hook/z_arms_hook.c
+++ b/src/overlays/actors/ovl_Arms_Hook/z_arms_hook.c
@@ -46,8 +46,8 @@ static ColliderQuadInit sQuadInit = {
},
{
ELEM_MATERIAL_UNK2,
- { 0x00000080, 0x00, 0x01 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0x00000080, HIT_SPECIAL_EFFECT_NONE, 0x01 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_NEAREST | ATELEM_SFX_NORMAL,
ACELEM_NONE,
OCELEM_NONE,
@@ -182,8 +182,7 @@ void ArmsHook_Shoot(ArmsHook* this, PlayState* play) {
}
}
this->timer = 0;
- Audio_PlaySfxGeneral(NA_SE_IT_ARROW_STICK_CRE, &this->actor.projectedPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&this->actor.projectedPos, NA_SE_IT_ARROW_STICK_CRE);
return;
}
@@ -311,12 +310,10 @@ void ArmsHook_Shoot(ArmsHook* this, PlayState* play) {
}
}
ArmsHook_PullPlayer(this);
- Audio_PlaySfxGeneral(NA_SE_IT_HOOKSHOT_STICK_OBJ, &this->actor.projectedPos, 4,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&this->actor.projectedPos, NA_SE_IT_HOOKSHOT_STICK_OBJ);
} else {
CollisionCheck_SpawnShieldParticlesMetal(play, &this->actor.world.pos);
- Audio_PlaySfxGeneral(NA_SE_IT_HOOKSHOT_REFLECT, &this->actor.projectedPos, 4,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&this->actor.projectedPos, NA_SE_IT_HOOKSHOT_REFLECT);
}
} else if (CHECK_BTN_ANY(play->state.input[0].press.button,
(BTN_A | BTN_B | BTN_R | BTN_CUP | BTN_CDOWN | BTN_CLEFT | BTN_CRIGHT))) {
diff --git a/src/overlays/actors/ovl_Bg_Bdan_Objects/z_bg_bdan_objects.c b/src/overlays/actors/ovl_Bg_Bdan_Objects/z_bg_bdan_objects.c
index 047ad13ba0..89b34075ea 100644
--- a/src/overlays/actors/ovl_Bg_Bdan_Objects/z_bg_bdan_objects.c
+++ b/src/overlays/actors/ovl_Bg_Bdan_Objects/z_bg_bdan_objects.c
@@ -80,13 +80,13 @@ static ColliderCylinderInit sCylinderInit = {
},
{
ELEM_MATERIAL_UNK0,
- { 0xFFCFFFFF, 0x00, 0x04 },
- { 0x00000000, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x04 },
+ { 0x00000000, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_HARD,
ACELEM_NONE,
OCELEM_NONE,
},
- { 0x00BB, 0x0050, 0x0000, { 0 } },
+ { 187, 80, 0, { 0, 0, 0 } },
};
static InitChainEntry sInitChain[] = {
diff --git a/src/overlays/actors/ovl_Bg_Bdan_Switch/z_bg_bdan_switch.c b/src/overlays/actors/ovl_Bg_Bdan_Switch/z_bg_bdan_switch.c
index 280730bcda..90855881e4 100644
--- a/src/overlays/actors/ovl_Bg_Bdan_Switch/z_bg_bdan_switch.c
+++ b/src/overlays/actors/ovl_Bg_Bdan_Switch/z_bg_bdan_switch.c
@@ -6,6 +6,7 @@
#include "z_bg_bdan_switch.h"
+#include "array_count.h"
#include "ichain.h"
#include "one_point_cutscene.h"
#include "printf.h"
@@ -70,8 +71,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[] = {
{
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0xEFC1FFFE, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0xEFC1FFFE, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON,
OCELEM_ON,
@@ -89,7 +90,7 @@ static ColliderJntSphInit sJntSphInit = {
OC2_TYPE_2,
COLSHAPE_JNTSPH,
},
- 1,
+ ARRAY_COUNT(sJntSphElementsInit),
sJntSphElementsInit,
};
diff --git a/src/overlays/actors/ovl_Bg_Bombwall/z_bg_bombwall.c b/src/overlays/actors/ovl_Bg_Bombwall/z_bg_bombwall.c
index 15a2ffb841..ce54ce1c85 100644
--- a/src/overlays/actors/ovl_Bg_Bombwall/z_bg_bombwall.c
+++ b/src/overlays/actors/ovl_Bg_Bombwall/z_bg_bombwall.c
@@ -6,6 +6,7 @@
#include "z_bg_bombwall.h"
#include "libc64/qrand.h"
+#include "array_count.h"
#include "ichain.h"
#include "printf.h"
#include "sfx.h"
@@ -28,12 +29,12 @@ void func_8086EDFC(BgBombwall* this, PlayState* play);
void func_8086EE40(BgBombwall* this, PlayState* play);
void func_8086EE94(BgBombwall* this, PlayState* play);
-static ColliderTrisElementInit sTrisElementsInit[3] = {
+static ColliderTrisElementInit sTrisElementsInit[] = {
{
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0x40000048, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0x40000048, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON,
OCELEM_NONE,
@@ -43,8 +44,8 @@ static ColliderTrisElementInit sTrisElementsInit[3] = {
{
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0x40000048, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0x40000048, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON,
OCELEM_NONE,
@@ -54,8 +55,8 @@ static ColliderTrisElementInit sTrisElementsInit[3] = {
{
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0x40000048, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0x40000048, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON,
OCELEM_NONE,
@@ -73,7 +74,7 @@ static ColliderTrisInit sTrisInit = {
OC2_NONE,
COLSHAPE_TRIS,
},
- 3,
+ ARRAY_COUNT(sTrisElementsInit),
sTrisElementsInit,
};
diff --git a/src/overlays/actors/ovl_Bg_Breakwall/z_bg_breakwall.c b/src/overlays/actors/ovl_Bg_Breakwall/z_bg_breakwall.c
index c12522fe52..422608488c 100644
--- a/src/overlays/actors/ovl_Bg_Breakwall/z_bg_breakwall.c
+++ b/src/overlays/actors/ovl_Bg_Breakwall/z_bg_breakwall.c
@@ -63,8 +63,8 @@ static ColliderQuadInit sQuadInit = {
},
{
ELEM_MATERIAL_UNK0,
- { 0x00000048, 0x00, 0x00 },
- { 0x00000048, 0x00, 0x00 },
+ { 0x00000048, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0x00000048, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON,
OCELEM_NONE,
@@ -266,14 +266,12 @@ void BgBreakwall_Wait(BgBreakwall* this, PlayState* play) {
Flags_SetEventChkInf(EVENTCHKINF_B0);
Cutscene_SetScript(play, gDcOpeningCs);
gSaveContext.cutsceneTrigger = 1;
- Audio_PlaySfxGeneral(NA_SE_SY_CORRECT_CHIME, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_CORRECT_CHIME);
Player_SetCsActionWithHaltedActors(play, NULL, PLAYER_CSACTION_49);
}
if (this->dyna.actor.params < 0) {
- Audio_PlaySfxGeneral(NA_SE_SY_TRE_BOX_APPEAR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_TRE_BOX_APPEAR);
}
Actor_Kill(&this->dyna.actor);
diff --git a/src/overlays/actors/ovl_Bg_Ddan_Kd/z_bg_ddan_kd.c b/src/overlays/actors/ovl_Bg_Ddan_Kd/z_bg_ddan_kd.c
index 81012e657a..1f37e0fcd4 100644
--- a/src/overlays/actors/ovl_Bg_Ddan_Kd/z_bg_ddan_kd.c
+++ b/src/overlays/actors/ovl_Bg_Ddan_Kd/z_bg_ddan_kd.c
@@ -52,8 +52,8 @@ static ColliderCylinderInit sCylinderInit = {
},
{
ELEM_MATERIAL_UNK2,
- { 0x00000000, 0x00, 0x00 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON,
OCELEM_NONE,
@@ -180,8 +180,7 @@ void BgDdanKd_LowerStairs(BgDdanKd* this, PlayState* play) {
func_8003555C(play, &pos1, &velocity, &accel);
}
Camera_RequestQuake(&play->mainCamera, 0, effectStrength * 0.6f, 3);
- Audio_PlaySfxGeneral(NA_SE_EV_PILLAR_SINK - SFX_FLAG, &this->dyna.actor.projectedPos, 4,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&this->dyna.actor.projectedPos, NA_SE_EV_PILLAR_SINK - SFX_FLAG);
}
}
diff --git a/src/overlays/actors/ovl_Bg_Dodoago/z_bg_dodoago.c b/src/overlays/actors/ovl_Bg_Dodoago/z_bg_dodoago.c
index f2e50dcb61..e797c80179 100644
--- a/src/overlays/actors/ovl_Bg_Dodoago/z_bg_dodoago.c
+++ b/src/overlays/actors/ovl_Bg_Dodoago/z_bg_dodoago.c
@@ -61,8 +61,8 @@ static ColliderCylinderInit sMainColliderCylinderInit = {
},
{
ELEM_MATERIAL_UNK2,
- { 0x00000000, 0x00, 0x00 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON,
OCELEM_NONE,
@@ -81,8 +81,8 @@ static ColliderCylinderInit sLeftRightColliderCylinderInit = {
},
{
ELEM_MATERIAL_UNK2,
- { 0x00000000, 0x00, 0x00 },
- { 0x00000000, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0x00000000, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_NONE,
OCELEM_ON,
@@ -176,19 +176,16 @@ void BgDodoago_WaitExplosives(BgDodoago* this, PlayState* play) {
((play->roomCtx.drawParams[BGDODOAGO_EYE_RIGHT] == 255) && (this->state == BGDODOAGO_EYE_LEFT))) {
Flags_SetSwitch(play, PARAMS_GET_U(this->dyna.actor.params, 0, 6));
this->state = 0;
- Audio_PlaySfxGeneral(NA_SE_SY_CORRECT_CHIME, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_CORRECT_CHIME);
BgDodoago_SetupAction(this, BgDodoago_OpenJaw);
OnePointCutscene_Init(play, 3380, 160, &this->dyna.actor, CAM_ID_MAIN);
} else if (play->roomCtx.drawParams[this->state] == 0) {
OnePointCutscene_Init(play, 3065, 40, &this->dyna.actor, CAM_ID_MAIN);
BgDodoago_SetupAction(this, BgDodoago_LightOneEye);
- Audio_PlaySfxGeneral(NA_SE_SY_CORRECT_CHIME, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_CORRECT_CHIME);
} else {
OnePointCutscene_Init(play, 3065, 20, &this->dyna.actor, CAM_ID_MAIN);
- Audio_PlaySfxGeneral(NA_SE_SY_ERROR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_ERROR);
sTimer += 30;
return;
}
@@ -266,11 +263,9 @@ void BgDodoago_OpenJaw(BgDodoago* this, PlayState* play) {
if (Math_SmoothStepToS(&this->dyna.actor.shape.rot.x, 0x1333, 110 - this->state, 0x3E8, 0x32) == 0) {
BgDodoago_SetupAction(this, BgDodoago_DoNothing);
- Audio_PlaySfxGeneral(NA_SE_EV_STONE_BOUND, &this->dyna.actor.projectedPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&this->dyna.actor.projectedPos, NA_SE_EV_STONE_BOUND);
} else {
- Audio_PlaySfxGeneral(NA_SE_EV_STONE_STATUE_OPEN - SFX_FLAG, &this->dyna.actor.projectedPos, 4,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&this->dyna.actor.projectedPos, NA_SE_EV_STONE_STATUE_OPEN - SFX_FLAG);
}
}
diff --git a/src/overlays/actors/ovl_Bg_Ganon_Otyuka/z_bg_ganon_otyuka.c b/src/overlays/actors/ovl_Bg_Ganon_Otyuka/z_bg_ganon_otyuka.c
index b43241f1bd..fe3b49a305 100644
--- a/src/overlays/actors/ovl_Bg_Ganon_Otyuka/z_bg_ganon_otyuka.c
+++ b/src/overlays/actors/ovl_Bg_Ganon_Otyuka/z_bg_ganon_otyuka.c
@@ -298,11 +298,9 @@ void BgGanonOtyuka_Fall(BgGanonOtyuka* this, PlayState* play) {
}
} else {
if (this->dropTimer == 1) {
- Audio_PlaySfxGeneral(NA_SE_EV_STONEDOOR_STOP, &this->dyna.actor.projectedPos, 4,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&this->dyna.actor.projectedPos, NA_SE_EV_STONEDOOR_STOP);
} else {
- Audio_PlaySfxGeneral(NA_SE_EV_BLOCKSINK - SFX_FLAG, &this->dyna.actor.projectedPos, 4,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&this->dyna.actor.projectedPos, NA_SE_EV_BLOCKSINK - SFX_FLAG);
}
Math_ApproachF(&this->dyna.actor.world.pos.y, -1000.0f, 1.0f, this->dyna.actor.speed);
Math_ApproachF(&this->dyna.actor.speed, 100.0f, 1.0f, 0.1f);
diff --git a/src/overlays/actors/ovl_Bg_Gnd_Darkmeiro/z_bg_gnd_darkmeiro.c b/src/overlays/actors/ovl_Bg_Gnd_Darkmeiro/z_bg_gnd_darkmeiro.c
index d3f3ccae8b..524fe92113 100644
--- a/src/overlays/actors/ovl_Bg_Gnd_Darkmeiro/z_bg_gnd_darkmeiro.c
+++ b/src/overlays/actors/ovl_Bg_Gnd_Darkmeiro/z_bg_gnd_darkmeiro.c
@@ -130,8 +130,7 @@ void BgGndDarkmeiro_UpdateBlockTimer(BgGndDarkmeiro* this, PlayState* play) {
} else {
this->actionFlags |= 4;
this->timer1 = 304;
- Audio_PlaySfxGeneral(NA_SE_EV_RED_EYE, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_EV_RED_EYE);
}
}
@@ -146,8 +145,7 @@ void BgGndDarkmeiro_UpdateBlockTimer(BgGndDarkmeiro* this, PlayState* play) {
} else {
this->actionFlags |= 8;
this->timer2 = 304;
- Audio_PlaySfxGeneral(NA_SE_EV_RED_EYE, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_EV_RED_EYE);
}
}
diff --git a/src/overlays/actors/ovl_Bg_Gnd_Soulmeiro/z_bg_gnd_soulmeiro.c b/src/overlays/actors/ovl_Bg_Gnd_Soulmeiro/z_bg_gnd_soulmeiro.c
index acb2bd4f80..f8fe2db5ec 100644
--- a/src/overlays/actors/ovl_Bg_Gnd_Soulmeiro/z_bg_gnd_soulmeiro.c
+++ b/src/overlays/actors/ovl_Bg_Gnd_Soulmeiro/z_bg_gnd_soulmeiro.c
@@ -53,8 +53,8 @@ static ColliderCylinderInit sCylinderInit = {
},
{
ELEM_MATERIAL_UNK0,
- { 0xFFCFFFFF, 0x00, 0x00 },
- { 0x00020800, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0x00020800, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON,
OCELEM_NONE,
@@ -176,8 +176,7 @@ void func_8087B284(BgGndSoulmeiro* this, PlayState* play) {
if (!Flags_GetSwitch(play, PARAMS_GET_U(this->actor.params, 8, 6))) {
this->actor.draw = BgGndSoulmeiro_Draw;
if (this->collider.base.acFlags & AC_HIT) {
- Audio_PlaySfxGeneral(NA_SE_SY_CORRECT_CHIME, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_CORRECT_CHIME);
this->unk_198 = 40;
this->actionFunc = func_8087AF38;
} else {
diff --git a/src/overlays/actors/ovl_Bg_Haka_Sgami/z_bg_haka_sgami.c b/src/overlays/actors/ovl_Bg_Haka_Sgami/z_bg_haka_sgami.c
index cf90fc6a68..873fd76091 100644
--- a/src/overlays/actors/ovl_Bg_Haka_Sgami/z_bg_haka_sgami.c
+++ b/src/overlays/actors/ovl_Bg_Haka_Sgami/z_bg_haka_sgami.c
@@ -6,6 +6,7 @@
#include "z_bg_haka_sgami.h"
+#include "array_count.h"
#include "ichain.h"
#include "sfx.h"
#include "z_lib.h"
@@ -46,12 +47,12 @@ ActorProfile Bg_Haka_Sgami_Profile = {
/**/ NULL,
};
-static ColliderTrisElementInit sTrisElementsInit[4] = {
+static ColliderTrisElementInit sTrisElementsInit[] = {
{
{
ELEM_MATERIAL_UNK2,
- { 0x20000000, 0x00, 0x04 },
- { 0x00000000, 0x00, 0x00 },
+ { 0x20000000, HIT_SPECIAL_EFFECT_NONE, 0x04 },
+ { 0x00000000, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_NONE,
OCELEM_NONE,
@@ -61,8 +62,8 @@ static ColliderTrisElementInit sTrisElementsInit[4] = {
{
{
ELEM_MATERIAL_UNK2,
- { 0x20000000, 0x00, 0x04 },
- { 0x00000000, 0x00, 0x00 },
+ { 0x20000000, HIT_SPECIAL_EFFECT_NONE, 0x04 },
+ { 0x00000000, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_NONE,
OCELEM_NONE,
@@ -72,8 +73,8 @@ static ColliderTrisElementInit sTrisElementsInit[4] = {
{
{
ELEM_MATERIAL_UNK2,
- { 0x20000000, 0x00, 0x04 },
- { 0x00000000, 0x00, 0x00 },
+ { 0x20000000, HIT_SPECIAL_EFFECT_NONE, 0x04 },
+ { 0x00000000, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_NONE,
OCELEM_NONE,
@@ -83,8 +84,8 @@ static ColliderTrisElementInit sTrisElementsInit[4] = {
{
{
ELEM_MATERIAL_UNK2,
- { 0x20000000, 0x00, 0x04 },
- { 0x00000000, 0x00, 0x00 },
+ { 0x20000000, HIT_SPECIAL_EFFECT_NONE, 0x04 },
+ { 0x00000000, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_NONE,
OCELEM_NONE,
@@ -102,7 +103,7 @@ static ColliderTrisInit sTrisInit = {
OC2_TYPE_2,
COLSHAPE_TRIS,
},
- 4,
+ ARRAY_COUNT(sTrisElementsInit),
sTrisElementsInit,
};
@@ -117,8 +118,8 @@ static ColliderCylinderInit sCylinderInit = {
},
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0x00000000, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0x00000000, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_NONE,
OCELEM_ON,
diff --git a/src/overlays/actors/ovl_Bg_Haka_Trap/z_bg_haka_trap.c b/src/overlays/actors/ovl_Bg_Haka_Trap/z_bg_haka_trap.c
index 250f4ce32a..afb0f19043 100644
--- a/src/overlays/actors/ovl_Bg_Haka_Trap/z_bg_haka_trap.c
+++ b/src/overlays/actors/ovl_Bg_Haka_Trap/z_bg_haka_trap.c
@@ -6,6 +6,7 @@
#include "z_bg_haka_trap.h"
+#include "array_count.h"
#include "ichain.h"
#include "rand.h"
#include "sfx.h"
@@ -63,8 +64,8 @@ static ColliderCylinderInit sCylinderInit = {
},
{
ELEM_MATERIAL_UNK0,
- { 0xFFCFFFFF, 0x00, 0x04 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x04 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
@@ -72,12 +73,12 @@ static ColliderCylinderInit sCylinderInit = {
{ 30, 90, 0, { 0, 0, 0 } },
};
-static ColliderTrisElementInit sTrisElementsInit[2] = {
+static ColliderTrisElementInit sTrisElementsInit[] = {
{
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0x00020000, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0x00020000, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON,
OCELEM_NONE,
@@ -87,8 +88,8 @@ static ColliderTrisElementInit sTrisElementsInit[2] = {
{
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0x00020000, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0x00020000, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON,
OCELEM_NONE,
@@ -106,7 +107,7 @@ static ColliderTrisInit sTrisInit = {
OC2_TYPE_2,
COLSHAPE_TRIS,
},
- 2,
+ ARRAY_COUNT(sTrisElementsInit),
sTrisElementsInit,
};
diff --git a/src/overlays/actors/ovl_Bg_Haka_Tubo/z_bg_haka_tubo.c b/src/overlays/actors/ovl_Bg_Haka_Tubo/z_bg_haka_tubo.c
index d4b20752d5..c86bc3abda 100644
--- a/src/overlays/actors/ovl_Bg_Haka_Tubo/z_bg_haka_tubo.c
+++ b/src/overlays/actors/ovl_Bg_Haka_Tubo/z_bg_haka_tubo.c
@@ -53,8 +53,8 @@ static ColliderCylinderInit sPotColliderInit = {
},
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0x00000008, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0x00000008, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON,
OCELEM_NONE,
@@ -73,8 +73,8 @@ static ColliderCylinderInit sFlamesColliderInit = {
},
{
ELEM_MATERIAL_UNK0,
- { 0x20000000, 0x01, 0x04 },
- { 0x00000008, 0x00, 0x00 },
+ { 0x20000000, HIT_SPECIAL_EFFECT_FIRE, 0x04 },
+ { 0x00000008, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NONE,
ACELEM_NONE,
OCELEM_ON,
diff --git a/src/overlays/actors/ovl_Bg_Haka_Zou/z_bg_haka_zou.c b/src/overlays/actors/ovl_Bg_Haka_Zou/z_bg_haka_zou.c
index 5be3889889..40c5797627 100644
--- a/src/overlays/actors/ovl_Bg_Haka_Zou/z_bg_haka_zou.c
+++ b/src/overlays/actors/ovl_Bg_Haka_Zou/z_bg_haka_zou.c
@@ -53,8 +53,8 @@ static ColliderCylinderInit sCylinderInit = {
},
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0x00000008, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0x00000008, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON,
OCELEM_NONE,
diff --git a/src/overlays/actors/ovl_Bg_Hidan_Curtain/z_bg_hidan_curtain.c b/src/overlays/actors/ovl_Bg_Hidan_Curtain/z_bg_hidan_curtain.c
index 7abcc1f912..780f11f164 100644
--- a/src/overlays/actors/ovl_Bg_Hidan_Curtain/z_bg_hidan_curtain.c
+++ b/src/overlays/actors/ovl_Bg_Hidan_Curtain/z_bg_hidan_curtain.c
@@ -53,8 +53,8 @@ static ColliderCylinderInit sCylinderInit = {
},
{
ELEM_MATERIAL_UNK0,
- { 0x20000000, 0x01, 0x04 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0x20000000, HIT_SPECIAL_EFFECT_FIRE, 0x04 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NONE,
ACELEM_NONE,
OCELEM_ON,
diff --git a/src/overlays/actors/ovl_Bg_Hidan_Dalm/z_bg_hidan_dalm.c b/src/overlays/actors/ovl_Bg_Hidan_Dalm/z_bg_hidan_dalm.c
index 412b2a5426..af59378acf 100644
--- a/src/overlays/actors/ovl_Bg_Hidan_Dalm/z_bg_hidan_dalm.c
+++ b/src/overlays/actors/ovl_Bg_Hidan_Dalm/z_bg_hidan_dalm.c
@@ -7,6 +7,7 @@
#include "z_bg_hidan_dalm.h"
#include "libc64/qrand.h"
+#include "array_count.h"
#include "ichain.h"
#include "sfx.h"
#include "sys_matrix.h"
@@ -39,12 +40,12 @@ ActorProfile Bg_Hidan_Dalm_Profile = {
/**/ BgHidanDalm_Draw,
};
-static ColliderTrisElementInit sTrisElementInit[4] = {
+static ColliderTrisElementInit sTrisElementInit[] = {
{
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0x00000040, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0x00000040, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON | ACELEM_NO_AT_INFO | ACELEM_NO_DAMAGE | ACELEM_NO_SWORD_SFX | ACELEM_NO_HITMARK,
OCELEM_NONE,
@@ -54,8 +55,8 @@ static ColliderTrisElementInit sTrisElementInit[4] = {
{
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0x00000040, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0x00000040, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON | ACELEM_NO_AT_INFO | ACELEM_NO_DAMAGE | ACELEM_NO_SWORD_SFX | ACELEM_NO_HITMARK,
OCELEM_NONE,
@@ -65,8 +66,8 @@ static ColliderTrisElementInit sTrisElementInit[4] = {
{
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0x00000040, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0x00000040, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON | ACELEM_NO_AT_INFO | ACELEM_NO_DAMAGE | ACELEM_NO_SWORD_SFX | ACELEM_NO_HITMARK,
OCELEM_NONE,
@@ -76,8 +77,8 @@ static ColliderTrisElementInit sTrisElementInit[4] = {
{
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0x00000040, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0x00000040, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON | ACELEM_NO_AT_INFO | ACELEM_NO_DAMAGE | ACELEM_NO_SWORD_SFX | ACELEM_NO_HITMARK,
OCELEM_NONE,
@@ -95,7 +96,7 @@ static ColliderTrisInit sTrisInit = {
OC2_TYPE_2,
COLSHAPE_TRIS,
},
- 4,
+ ARRAY_COUNT(sTrisElementInit),
sTrisElementInit,
};
diff --git a/src/overlays/actors/ovl_Bg_Hidan_Firewall/z_bg_hidan_firewall.c b/src/overlays/actors/ovl_Bg_Hidan_Firewall/z_bg_hidan_firewall.c
index 9ca446025c..34764dfacd 100644
--- a/src/overlays/actors/ovl_Bg_Hidan_Firewall/z_bg_hidan_firewall.c
+++ b/src/overlays/actors/ovl_Bg_Hidan_Firewall/z_bg_hidan_firewall.c
@@ -54,13 +54,13 @@ static ColliderCylinderInit sCylinderInit = {
},
{
ELEM_MATERIAL_UNK0,
- { 0x20000000, 0x01, 0x04 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0x20000000, HIT_SPECIAL_EFFECT_FIRE, 0x04 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NONE,
ACELEM_NONE,
OCELEM_ON,
},
- { 30, 83, 0, { 0 } },
+ { 30, 83, 0, { 0, 0, 0 } },
};
static CollisionCheckInfoInit sColChkInfoInit = { 1, 80, 100, MASS_IMMOVABLE };
diff --git a/src/overlays/actors/ovl_Bg_Hidan_Fwbig/z_bg_hidan_fwbig.c b/src/overlays/actors/ovl_Bg_Hidan_Fwbig/z_bg_hidan_fwbig.c
index 0a01e35dcd..1c6ca2164a 100644
--- a/src/overlays/actors/ovl_Bg_Hidan_Fwbig/z_bg_hidan_fwbig.c
+++ b/src/overlays/actors/ovl_Bg_Hidan_Fwbig/z_bg_hidan_fwbig.c
@@ -67,8 +67,8 @@ static ColliderCylinderInit sCylinderInit = {
},
{
ELEM_MATERIAL_UNK0,
- { 0x20000000, 0x01, 0x04 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0x20000000, HIT_SPECIAL_EFFECT_FIRE, 0x04 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NONE,
ACELEM_NONE,
OCELEM_ON,
diff --git a/src/overlays/actors/ovl_Bg_Hidan_Hamstep/z_bg_hidan_hamstep.c b/src/overlays/actors/ovl_Bg_Hidan_Hamstep/z_bg_hidan_hamstep.c
index 3f2e87ed3f..694fbe6342 100644
--- a/src/overlays/actors/ovl_Bg_Hidan_Hamstep/z_bg_hidan_hamstep.c
+++ b/src/overlays/actors/ovl_Bg_Hidan_Hamstep/z_bg_hidan_hamstep.c
@@ -41,12 +41,12 @@ static f32 sYPosOffsets[] = {
-20.0f, -120.0f, -220.0f, -320.0f, -420.0f,
};
-static ColliderTrisElementInit sTrisElementsInit[2] = {
+static ColliderTrisElementInit sTrisElementsInit[] = {
{
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0x40000040, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0x40000040, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON,
OCELEM_NONE,
@@ -56,8 +56,8 @@ static ColliderTrisElementInit sTrisElementsInit[2] = {
{
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0x40000040, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0x40000040, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON,
OCELEM_NONE,
@@ -75,7 +75,7 @@ static ColliderTrisInit sTrisInit = {
OC2_NONE,
COLSHAPE_TRIS,
},
- 2,
+ ARRAY_COUNT(sTrisElementsInit),
sTrisElementsInit,
};
diff --git a/src/overlays/actors/ovl_Bg_Hidan_Hrock/z_bg_hidan_hrock.c b/src/overlays/actors/ovl_Bg_Hidan_Hrock/z_bg_hidan_hrock.c
index 64159da59a..e9f39437f5 100644
--- a/src/overlays/actors/ovl_Bg_Hidan_Hrock/z_bg_hidan_hrock.c
+++ b/src/overlays/actors/ovl_Bg_Hidan_Hrock/z_bg_hidan_hrock.c
@@ -6,6 +6,7 @@
#include "z_bg_hidan_hrock.h"
+#include "array_count.h"
#include "ichain.h"
#include "rumble.h"
#include "sfx.h"
@@ -37,12 +38,12 @@ ActorProfile Bg_Hidan_Hrock_Profile = {
/**/ BgHidanHrock_Draw,
};
-static ColliderTrisElementInit sTrisElementsInit[2] = {
+static ColliderTrisElementInit sTrisElementsInit[] = {
{
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0x40000040, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0x40000040, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON | ACELEM_NO_AT_INFO | ACELEM_NO_DAMAGE | ACELEM_NO_SWORD_SFX | ACELEM_NO_HITMARK,
OCELEM_NONE,
@@ -52,8 +53,8 @@ static ColliderTrisElementInit sTrisElementsInit[2] = {
{
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0x40000040, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0x40000040, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON | ACELEM_NO_AT_INFO | ACELEM_NO_DAMAGE | ACELEM_NO_SWORD_SFX | ACELEM_NO_HITMARK,
OCELEM_NONE,
@@ -71,7 +72,7 @@ static ColliderTrisInit sTrisInit = {
OC2_TYPE_2,
COLSHAPE_TRIS,
},
- 2,
+ ARRAY_COUNT(sTrisElementsInit),
sTrisElementsInit,
};
diff --git a/src/overlays/actors/ovl_Bg_Hidan_Kowarerukabe/z_bg_hidan_kowarerukabe.c b/src/overlays/actors/ovl_Bg_Hidan_Kowarerukabe/z_bg_hidan_kowarerukabe.c
index 4f1be80a62..070e7cd107 100644
--- a/src/overlays/actors/ovl_Bg_Hidan_Kowarerukabe/z_bg_hidan_kowarerukabe.c
+++ b/src/overlays/actors/ovl_Bg_Hidan_Kowarerukabe/z_bg_hidan_kowarerukabe.c
@@ -8,6 +8,7 @@
#include "overlays/effects/ovl_Effect_Ss_Kakera/z_eff_ss_kakera.h"
#include "libc64/qrand.h"
+#include "array_count.h"
#include "gfx.h"
#include "gfx_setupdl.h"
#include "ichain.h"
@@ -53,12 +54,12 @@ static Gfx* sBreakableWallDLists[] = {
gFireTempleLargeBombableWallDL,
};
-static ColliderJntSphElementInit sJntSphElementsInit[1] = {
+static ColliderJntSphElementInit sJntSphElementsInit[] = {
{
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0x00000008, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0x00000008, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON,
OCELEM_NONE,
@@ -76,7 +77,7 @@ static ColliderJntSphInit sJntSphInit = {
OC2_NONE,
COLSHAPE_JNTSPH,
},
- 1,
+ ARRAY_COUNT(sJntSphElementsInit),
sJntSphElementsInit,
};
diff --git a/src/overlays/actors/ovl_Bg_Hidan_Rock/z_bg_hidan_rock.c b/src/overlays/actors/ovl_Bg_Hidan_Rock/z_bg_hidan_rock.c
index 872ed0608c..603d2f159f 100644
--- a/src/overlays/actors/ovl_Bg_Hidan_Rock/z_bg_hidan_rock.c
+++ b/src/overlays/actors/ovl_Bg_Hidan_Rock/z_bg_hidan_rock.c
@@ -65,8 +65,8 @@ static ColliderCylinderInit sCylinderInit = {
},
{
ELEM_MATERIAL_UNK0,
- { 0x20000000, 0x01, 0x04 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0x20000000, HIT_SPECIAL_EFFECT_FIRE, 0x04 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NONE,
ACELEM_NONE,
OCELEM_NONE,
diff --git a/src/overlays/actors/ovl_Bg_Hidan_Rsekizou/z_bg_hidan_rsekizou.c b/src/overlays/actors/ovl_Bg_Hidan_Rsekizou/z_bg_hidan_rsekizou.c
index df5936d41e..8bf82f42fe 100644
--- a/src/overlays/actors/ovl_Bg_Hidan_Rsekizou/z_bg_hidan_rsekizou.c
+++ b/src/overlays/actors/ovl_Bg_Hidan_Rsekizou/z_bg_hidan_rsekizou.c
@@ -37,12 +37,12 @@ ActorProfile Bg_Hidan_Rsekizou_Profile = {
/**/ BgHidanRsekizou_Draw,
};
-static ColliderJntSphElementInit sJntSphElementsInit[6] = {
+static ColliderJntSphElementInit sJntSphElementsInit[] = {
{
{
ELEM_MATERIAL_UNK0,
- { 0x20000000, 0x01, 0x04 },
- { 0x00000000, 0x00, 0x00 },
+ { 0x20000000, HIT_SPECIAL_EFFECT_FIRE, 0x04 },
+ { 0x00000000, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NONE,
ACELEM_NONE,
OCELEM_NONE,
@@ -52,8 +52,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[6] = {
{
{
ELEM_MATERIAL_UNK0,
- { 0x20000000, 0x01, 0x04 },
- { 0x00000000, 0x00, 0x00 },
+ { 0x20000000, HIT_SPECIAL_EFFECT_FIRE, 0x04 },
+ { 0x00000000, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NONE,
ACELEM_NONE,
OCELEM_NONE,
@@ -63,8 +63,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[6] = {
{
{
ELEM_MATERIAL_UNK0,
- { 0x20000000, 0x01, 0x04 },
- { 0x00000000, 0x00, 0x00 },
+ { 0x20000000, HIT_SPECIAL_EFFECT_FIRE, 0x04 },
+ { 0x00000000, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NONE,
ACELEM_NONE,
OCELEM_NONE,
@@ -74,8 +74,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[6] = {
{
{
ELEM_MATERIAL_UNK0,
- { 0x20000000, 0x01, 0x04 },
- { 0x00000000, 0x00, 0x00 },
+ { 0x20000000, HIT_SPECIAL_EFFECT_FIRE, 0x04 },
+ { 0x00000000, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NONE,
ACELEM_NONE,
OCELEM_NONE,
@@ -85,8 +85,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[6] = {
{
{
ELEM_MATERIAL_UNK0,
- { 0x20000000, 0x01, 0x04 },
- { 0x00000000, 0x00, 0x00 },
+ { 0x20000000, HIT_SPECIAL_EFFECT_FIRE, 0x04 },
+ { 0x00000000, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NONE,
ACELEM_NONE,
OCELEM_NONE,
@@ -96,8 +96,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[6] = {
{
{
ELEM_MATERIAL_UNK0,
- { 0x20000000, 0x01, 0x04 },
- { 0x00000000, 0x00, 0x00 },
+ { 0x20000000, HIT_SPECIAL_EFFECT_FIRE, 0x04 },
+ { 0x00000000, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NONE,
ACELEM_NONE,
OCELEM_NONE,
@@ -115,7 +115,7 @@ static ColliderJntSphInit sJntSphInit = {
OC2_TYPE_2,
COLSHAPE_JNTSPH,
},
- 6,
+ ARRAY_COUNT(sJntSphElementsInit),
sJntSphElementsInit,
};
diff --git a/src/overlays/actors/ovl_Bg_Hidan_Sekizou/z_bg_hidan_sekizou.c b/src/overlays/actors/ovl_Bg_Hidan_Sekizou/z_bg_hidan_sekizou.c
index bb7cf7edf5..7073a60cd5 100644
--- a/src/overlays/actors/ovl_Bg_Hidan_Sekizou/z_bg_hidan_sekizou.c
+++ b/src/overlays/actors/ovl_Bg_Hidan_Sekizou/z_bg_hidan_sekizou.c
@@ -41,12 +41,12 @@ ActorProfile Bg_Hidan_Sekizou_Profile = {
/**/ BgHidanSekizou_Draw,
};
-static ColliderJntSphElementInit sJntSphElementsInit[6] = {
+static ColliderJntSphElementInit sJntSphElementsInit[] = {
{
{
ELEM_MATERIAL_UNK0,
- { 0x20000000, 0x01, 0x04 },
- { 0x00000000, 0x00, 0x00 },
+ { 0x20000000, HIT_SPECIAL_EFFECT_FIRE, 0x04 },
+ { 0x00000000, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NONE,
ACELEM_NONE,
OCELEM_ON,
@@ -56,8 +56,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[6] = {
{
{
ELEM_MATERIAL_UNK0,
- { 0x20000000, 0x01, 0x04 },
- { 0x00000000, 0x00, 0x00 },
+ { 0x20000000, HIT_SPECIAL_EFFECT_FIRE, 0x04 },
+ { 0x00000000, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NONE,
ACELEM_NONE,
OCELEM_ON,
@@ -67,8 +67,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[6] = {
{
{
ELEM_MATERIAL_UNK0,
- { 0x20000000, 0x01, 0x04 },
- { 0x00000000, 0x00, 0x00 },
+ { 0x20000000, HIT_SPECIAL_EFFECT_FIRE, 0x04 },
+ { 0x00000000, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NONE,
ACELEM_NONE,
OCELEM_ON,
@@ -78,8 +78,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[6] = {
{
{
ELEM_MATERIAL_UNK0,
- { 0x20000000, 0x01, 0x04 },
- { 0x00000000, 0x00, 0x00 },
+ { 0x20000000, HIT_SPECIAL_EFFECT_FIRE, 0x04 },
+ { 0x00000000, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NONE,
ACELEM_NONE,
OCELEM_ON,
@@ -89,8 +89,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[6] = {
{
{
ELEM_MATERIAL_UNK0,
- { 0x20000000, 0x01, 0x04 },
- { 0x00000000, 0x00, 0x00 },
+ { 0x20000000, HIT_SPECIAL_EFFECT_FIRE, 0x04 },
+ { 0x00000000, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NONE,
ACELEM_NONE,
OCELEM_ON,
@@ -100,8 +100,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[6] = {
{
{
ELEM_MATERIAL_UNK0,
- { 0x20000000, 0x01, 0x04 },
- { 0x00000000, 0x00, 0x00 },
+ { 0x20000000, HIT_SPECIAL_EFFECT_FIRE, 0x04 },
+ { 0x00000000, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NONE,
ACELEM_NONE,
OCELEM_ON,
@@ -119,7 +119,7 @@ static ColliderJntSphInit sJntSphInit = {
OC2_TYPE_2,
COLSHAPE_JNTSPH,
},
- 6,
+ ARRAY_COUNT(sJntSphElementsInit),
sJntSphElementsInit,
};
diff --git a/src/overlays/actors/ovl_Bg_Hidan_Sima/z_bg_hidan_sima.c b/src/overlays/actors/ovl_Bg_Hidan_Sima/z_bg_hidan_sima.c
index a44cfa3491..7f4f4c256b 100644
--- a/src/overlays/actors/ovl_Bg_Hidan_Sima/z_bg_hidan_sima.c
+++ b/src/overlays/actors/ovl_Bg_Hidan_Sima/z_bg_hidan_sima.c
@@ -46,12 +46,12 @@ ActorProfile Bg_Hidan_Sima_Profile = {
/**/ BgHidanSima_Draw,
};
-static ColliderJntSphElementInit sJntSphElementsInit[2] = {
+static ColliderJntSphElementInit sJntSphElementsInit[] = {
{
{
ELEM_MATERIAL_UNK0,
- { 0x20000000, 0x01, 0x04 },
- { 0x00000000, 0x00, 0x00 },
+ { 0x20000000, HIT_SPECIAL_EFFECT_FIRE, 0x04 },
+ { 0x00000000, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NONE,
ACELEM_NONE,
OCELEM_NONE,
@@ -61,8 +61,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[2] = {
{
{
ELEM_MATERIAL_UNK0,
- { 0x20000000, 0x01, 0x04 },
- { 0x00000000, 0x00, 0x00 },
+ { 0x20000000, HIT_SPECIAL_EFFECT_FIRE, 0x04 },
+ { 0x00000000, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NONE,
ACELEM_NONE,
OCELEM_NONE,
diff --git a/src/overlays/actors/ovl_Bg_Ice_Shelter/z_bg_ice_shelter.c b/src/overlays/actors/ovl_Bg_Ice_Shelter/z_bg_ice_shelter.c
index 0c6578ec26..cdbbec6b9c 100644
--- a/src/overlays/actors/ovl_Bg_Ice_Shelter/z_bg_ice_shelter.c
+++ b/src/overlays/actors/ovl_Bg_Ice_Shelter/z_bg_ice_shelter.c
@@ -64,8 +64,8 @@ static ColliderCylinderInit sCylinderInit1 = {
},
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON,
OCELEM_ON,
@@ -84,8 +84,8 @@ static ColliderCylinderInit sCylinderInit2 = {
},
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0x4FC1FFF6, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0x4FC1FFF6, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON,
OCELEM_NONE,
diff --git a/src/overlays/actors/ovl_Bg_Ice_Turara/z_bg_ice_turara.c b/src/overlays/actors/ovl_Bg_Ice_Turara/z_bg_ice_turara.c
index 8f619e0ed2..5ba57a0a37 100644
--- a/src/overlays/actors/ovl_Bg_Ice_Turara/z_bg_ice_turara.c
+++ b/src/overlays/actors/ovl_Bg_Ice_Turara/z_bg_ice_turara.c
@@ -40,8 +40,8 @@ static ColliderCylinderInit sCylinderInit = {
},
{
ELEM_MATERIAL_UNK0,
- { 0xFFCFFFFF, 0x00, 0x04 },
- { 0x4FC007CA, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x04 },
+ { 0x4FC007CA, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_NONE,
diff --git a/src/overlays/actors/ovl_Bg_Ingate/z_bg_ingate.c b/src/overlays/actors/ovl_Bg_Ingate/z_bg_ingate.c
index 61ea3e0e4c..1b45e42254 100644
--- a/src/overlays/actors/ovl_Bg_Ingate/z_bg_ingate.c
+++ b/src/overlays/actors/ovl_Bg_Ingate/z_bg_ingate.c
@@ -53,7 +53,7 @@ void BgInGate_Init(Actor* thisx, PlayState* play) {
this->dyna.bgId = DynaPoly_SetBgActor(play, &play->colCtx.dyna, &this->dyna.actor, colHeader);
if ((play->sceneId != SCENE_LON_LON_RANCH || !LINK_IS_ADULT) ||
- (GET_EVENTCHKINF(EVENTCHKINF_EPONA_OBTAINED) && (gSaveContext.save.cutsceneIndex != 0xFFF0))) {
+ (GET_EVENTCHKINF(EVENTCHKINF_EPONA_OBTAINED) && (gSaveContext.save.cutsceneIndex != CS_INDEX_0))) {
Actor_Kill(&this->dyna.actor);
return;
}
diff --git a/src/overlays/actors/ovl_Bg_Jya_1flift/z_bg_jya_1flift.c b/src/overlays/actors/ovl_Bg_Jya_1flift/z_bg_jya_1flift.c
index 6ff102aa41..a7427fcab3 100644
--- a/src/overlays/actors/ovl_Bg_Jya_1flift/z_bg_jya_1flift.c
+++ b/src/overlays/actors/ovl_Bg_Jya_1flift/z_bg_jya_1flift.c
@@ -57,8 +57,8 @@ static ColliderCylinderInit sCylinderInit = {
},
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0x00000000, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0x00000000, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_NONE,
OCELEM_ON,
diff --git a/src/overlays/actors/ovl_Bg_Jya_Bombchuiwa/z_bg_jya_bombchuiwa.c b/src/overlays/actors/ovl_Bg_Jya_Bombchuiwa/z_bg_jya_bombchuiwa.c
index e19f90863a..32fe055262 100644
--- a/src/overlays/actors/ovl_Bg_Jya_Bombchuiwa/z_bg_jya_bombchuiwa.c
+++ b/src/overlays/actors/ovl_Bg_Jya_Bombchuiwa/z_bg_jya_bombchuiwa.c
@@ -2,6 +2,7 @@
#include "overlays/effects/ovl_Effect_Ss_Kakera/z_eff_ss_kakera.h"
#include "libc64/qrand.h"
+#include "array_count.h"
#include "gfx.h"
#include "gfx_setupdl.h"
#include "ichain.h"
@@ -40,12 +41,12 @@ ActorProfile Bg_Jya_Bombchuiwa_Profile = {
/**/ BgJyaBombchuiwa_Draw,
};
-static ColliderJntSphElementInit sJntSphElementsInit[1] = {
+static ColliderJntSphElementInit sJntSphElementsInit[] = {
{
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0x00000008, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0x00000008, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON,
OCELEM_ON,
@@ -63,7 +64,7 @@ static ColliderJntSphInit sJntSphInit = {
OC2_TYPE_2,
COLSHAPE_JNTSPH,
},
- 1,
+ ARRAY_COUNT(sJntSphElementsInit),
sJntSphElementsInit,
};
diff --git a/src/overlays/actors/ovl_Bg_Jya_Bombiwa/z_bg_jya_bombiwa.c b/src/overlays/actors/ovl_Bg_Jya_Bombiwa/z_bg_jya_bombiwa.c
index 87a1aa3a78..2f40d2a17a 100644
--- a/src/overlays/actors/ovl_Bg_Jya_Bombiwa/z_bg_jya_bombiwa.c
+++ b/src/overlays/actors/ovl_Bg_Jya_Bombiwa/z_bg_jya_bombiwa.c
@@ -8,6 +8,7 @@
#include "overlays/effects/ovl_Effect_Ss_Kakera/z_eff_ss_kakera.h"
#include "libc64/qrand.h"
+#include "array_count.h"
#include "ichain.h"
#include "printf.h"
#include "sfx.h"
@@ -41,8 +42,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[] = {
{
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0x00000008, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0x00000008, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON,
OCELEM_NONE,
@@ -60,7 +61,7 @@ static ColliderJntSphInit sJntSphInit = {
OC2_NONE,
COLSHAPE_JNTSPH,
},
- 1,
+ ARRAY_COUNT(sJntSphElementsInit),
sJntSphElementsInit,
};
diff --git a/src/overlays/actors/ovl_Bg_Jya_Goroiwa/z_bg_jya_goroiwa.c b/src/overlays/actors/ovl_Bg_Jya_Goroiwa/z_bg_jya_goroiwa.c
index fb25354ccd..3c91cb71a6 100644
--- a/src/overlays/actors/ovl_Bg_Jya_Goroiwa/z_bg_jya_goroiwa.c
+++ b/src/overlays/actors/ovl_Bg_Jya_Goroiwa/z_bg_jya_goroiwa.c
@@ -7,6 +7,7 @@
#include "z_bg_jya_goroiwa.h"
+#include "array_count.h"
#include "ichain.h"
#include "sfx.h"
#include "z_lib.h"
@@ -46,8 +47,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[] = {
{
{
ELEM_MATERIAL_UNK0,
- { 0x20000000, 0x00, 0x04 },
- { 0x00000000, 0x00, 0x00 },
+ { 0x20000000, HIT_SPECIAL_EFFECT_NONE, 0x04 },
+ { 0x00000000, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_NONE,
OCELEM_ON,
@@ -65,7 +66,7 @@ static ColliderJntSphInit sJntSphInit = {
OC2_TYPE_2,
COLSHAPE_JNTSPH,
},
- 1,
+ ARRAY_COUNT(sJntSphElementsInit),
sJntSphElementsInit,
};
diff --git a/src/overlays/actors/ovl_Bg_Jya_Haheniron/z_bg_jya_haheniron.c b/src/overlays/actors/ovl_Bg_Jya_Haheniron/z_bg_jya_haheniron.c
index dd514e850b..665635d16d 100644
--- a/src/overlays/actors/ovl_Bg_Jya_Haheniron/z_bg_jya_haheniron.c
+++ b/src/overlays/actors/ovl_Bg_Jya_Haheniron/z_bg_jya_haheniron.c
@@ -43,12 +43,12 @@ ActorProfile Bg_Jya_Haheniron_Profile = {
/**/ BgJyaHaheniron_Draw,
};
-static ColliderJntSphElementInit sJntSphElementsInit[1] = {
+static ColliderJntSphElementInit sJntSphElementsInit[] = {
{
{
ELEM_MATERIAL_UNK0,
- { 0xFFCFFFFF, 0x00, 0x04 },
- { 0x00000000, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x04 },
+ { 0x00000000, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_NONE,
OCELEM_NONE,
@@ -66,7 +66,7 @@ static ColliderJntSphInit sJntSphInit = {
OC2_NONE,
COLSHAPE_JNTSPH,
},
- 1,
+ ARRAY_COUNT(sJntSphElementsInit),
sJntSphElementsInit,
};
diff --git a/src/overlays/actors/ovl_Bg_Jya_Ironobj/z_bg_jya_ironobj.c b/src/overlays/actors/ovl_Bg_Jya_Ironobj/z_bg_jya_ironobj.c
index cf13895832..0db1d8bee4 100644
--- a/src/overlays/actors/ovl_Bg_Jya_Ironobj/z_bg_jya_ironobj.c
+++ b/src/overlays/actors/ovl_Bg_Jya_Ironobj/z_bg_jya_ironobj.c
@@ -60,8 +60,8 @@ static ColliderCylinderInit sCylinderInit = {
},
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON,
OCELEM_NONE,
diff --git a/src/overlays/actors/ovl_Bg_Jya_Megami/z_bg_jya_megami.c b/src/overlays/actors/ovl_Bg_Jya_Megami/z_bg_jya_megami.c
index da22420786..7f5b273162 100644
--- a/src/overlays/actors/ovl_Bg_Jya_Megami/z_bg_jya_megami.c
+++ b/src/overlays/actors/ovl_Bg_Jya_Megami/z_bg_jya_megami.c
@@ -50,8 +50,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[] = {
{
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0x00200000, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0x00200000, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON,
OCELEM_NONE,
@@ -69,7 +69,7 @@ static ColliderJntSphInit sJntSphInit = {
OC2_NONE,
COLSHAPE_JNTSPH,
},
- 1,
+ ARRAY_COUNT(sJntSphElementsInit),
sJntSphElementsInit,
};
diff --git a/src/overlays/actors/ovl_Bg_Menkuri_Eye/z_bg_menkuri_eye.c b/src/overlays/actors/ovl_Bg_Menkuri_Eye/z_bg_menkuri_eye.c
index b130738664..d3dcc483dd 100644
--- a/src/overlays/actors/ovl_Bg_Menkuri_Eye/z_bg_menkuri_eye.c
+++ b/src/overlays/actors/ovl_Bg_Menkuri_Eye/z_bg_menkuri_eye.c
@@ -6,6 +6,7 @@
#include "z_bg_menkuri_eye.h"
+#include "array_count.h"
#include "gfx.h"
#include "gfx_setupdl.h"
#include "ichain.h"
@@ -37,12 +38,12 @@ ActorProfile Bg_Menkuri_Eye_Profile = {
static s32 sNumEyesShot;
-static ColliderJntSphElementInit sJntSphElementsInit[1] = {
+static ColliderJntSphElementInit sJntSphElementsInit[] = {
{
{
ELEM_MATERIAL_UNK4,
- { 0x00000000, 0x00, 0x00 },
- { 0x0001F820, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0x0001F820, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON,
OCELEM_NONE,
@@ -60,7 +61,7 @@ static ColliderJntSphInit sJntSphInit = {
OC2_TYPE_2,
COLSHAPE_JNTSPH,
},
- 1,
+ ARRAY_COUNT(sJntSphElementsInit),
sJntSphElementsInit,
};
diff --git a/src/overlays/actors/ovl_Bg_Mizu_Bwall/z_bg_mizu_bwall.c b/src/overlays/actors/ovl_Bg_Mizu_Bwall/z_bg_mizu_bwall.c
index bb21a6cb6f..6acdc0b574 100644
--- a/src/overlays/actors/ovl_Bg_Mizu_Bwall/z_bg_mizu_bwall.c
+++ b/src/overlays/actors/ovl_Bg_Mizu_Bwall/z_bg_mizu_bwall.c
@@ -44,12 +44,12 @@ ActorProfile Bg_Mizu_Bwall_Profile = {
/**/ BgMizuBwall_Draw,
};
-static ColliderTrisElementInit sTrisElementsInitFloor[2] = {
+static ColliderTrisElementInit sTrisElementsInitFloor[] = {
{
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0x00000008, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0x00000008, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON,
OCELEM_NONE,
@@ -59,8 +59,8 @@ static ColliderTrisElementInit sTrisElementsInitFloor[2] = {
{
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0x00000008, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0x00000008, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON,
OCELEM_NONE,
@@ -78,16 +78,16 @@ static ColliderTrisInit sTrisInitFloor = {
OC2_NONE,
COLSHAPE_TRIS,
},
- 2,
+ ARRAY_COUNT(sTrisElementsInitFloor),
sTrisElementsInitFloor,
};
-static ColliderTrisElementInit sTrisElementsInitRutoWall[1] = {
+static ColliderTrisElementInit sTrisElementsInitRutoWall[] = {
{
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0x00000008, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0x00000008, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON,
OCELEM_NONE,
@@ -105,16 +105,16 @@ static ColliderTrisInit sTrisInitRutoWall = {
OC2_NONE,
COLSHAPE_TRIS,
},
- 1,
+ ARRAY_COUNT(sTrisElementsInitRutoWall),
sTrisElementsInitRutoWall,
};
-static ColliderTrisElementInit sTrisElementsInitWall[2] = {
+static ColliderTrisElementInit sTrisElementsInitWall[] = {
{
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0x00000008, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0x00000008, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON,
OCELEM_NONE,
@@ -124,8 +124,8 @@ static ColliderTrisElementInit sTrisElementsInitWall[2] = {
{
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0x00000008, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0x00000008, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON,
OCELEM_NONE,
@@ -143,7 +143,7 @@ static ColliderTrisInit sTrisInitUnusedWall = {
OC2_NONE,
COLSHAPE_TRIS,
},
- 2,
+ ARRAY_COUNT(sTrisElementsInitWall),
sTrisElementsInitWall,
};
@@ -156,7 +156,7 @@ static ColliderTrisInit sTrisInitStingerWall = {
OC2_NONE,
COLSHAPE_TRIS,
},
- 2,
+ ARRAY_COUNT(sTrisElementsInitWall),
sTrisElementsInitWall,
};
@@ -511,8 +511,7 @@ void BgMizuBwall_Idle(BgMizuBwall* this, PlayState* play) {
this->dList = NULL;
BgMizuBwall_SpawnDebris(this, play);
Actor_PlaySfx(&this->dyna.actor, NA_SE_EV_WALL_BROKEN);
- Audio_PlaySfxGeneral(NA_SE_SY_CORRECT_CHIME, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_CORRECT_CHIME);
this->actionFunc = BgMizuBwall_Break;
} else if (this->dyna.actor.xzDistToPlayer < 600.0f) {
CollisionCheck_SetAC(play, &play->colChkCtx, &this->collider.base);
diff --git a/src/overlays/actors/ovl_Bg_Mori_Hashigo/z_bg_mori_hashigo.c b/src/overlays/actors/ovl_Bg_Mori_Hashigo/z_bg_mori_hashigo.c
index ad41dfc212..cab3d7d318 100644
--- a/src/overlays/actors/ovl_Bg_Mori_Hashigo/z_bg_mori_hashigo.c
+++ b/src/overlays/actors/ovl_Bg_Mori_Hashigo/z_bg_mori_hashigo.c
@@ -47,12 +47,12 @@ ActorProfile Bg_Mori_Hashigo_Profile = {
/**/ NULL,
};
-static ColliderJntSphElementInit sJntSphElementsInit[1] = {
+static ColliderJntSphElementInit sJntSphElementsInit[] = {
{
{
ELEM_MATERIAL_UNK4,
- { 0x00000000, 0x00, 0x00 },
- { 0x0001F820, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0x0001F820, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON,
OCELEM_NONE,
@@ -70,7 +70,7 @@ static ColliderJntSphInit sJntSphInit = {
OC2_NONE,
COLSHAPE_JNTSPH,
},
- 1,
+ ARRAY_COUNT(sJntSphElementsInit),
sJntSphElementsInit,
};
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_Bg_Po_Event/z_bg_po_event.c b/src/overlays/actors/ovl_Bg_Po_Event/z_bg_po_event.c
index 30f2044980..bbfecc301f 100644
--- a/src/overlays/actors/ovl_Bg_Po_Event/z_bg_po_event.c
+++ b/src/overlays/actors/ovl_Bg_Po_Event/z_bg_po_event.c
@@ -7,6 +7,7 @@
#include "z_bg_po_event.h"
#include "libc64/qrand.h"
+#include "array_count.h"
#include "gfx.h"
#include "gfx_setupdl.h"
#include "ichain.h"
@@ -55,12 +56,12 @@ ActorProfile Bg_Po_Event_Profile = {
/**/ BgPoEvent_Draw,
};
-static ColliderTrisElementInit sTrisElementsInit[2] = {
+static ColliderTrisElementInit sTrisElementsInit[] = {
{
{
ELEM_MATERIAL_UNK4,
- { 0x00000000, 0x00, 0x00 },
- { 0x0001F820, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0x0001F820, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON,
OCELEM_NONE,
@@ -70,8 +71,8 @@ static ColliderTrisElementInit sTrisElementsInit[2] = {
{
{
ELEM_MATERIAL_UNK4,
- { 0x00000000, 0x00, 0x00 },
- { 0x0001F820, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0x0001F820, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON,
OCELEM_NONE,
@@ -89,7 +90,7 @@ static ColliderTrisInit sTrisInit = {
OC2_TYPE_2,
COLSHAPE_TRIS,
},
- 2,
+ ARRAY_COUNT(sTrisElementsInit),
sTrisElementsInit,
};
diff --git a/src/overlays/actors/ovl_Bg_Po_Syokudai/z_bg_po_syokudai.c b/src/overlays/actors/ovl_Bg_Po_Syokudai/z_bg_po_syokudai.c
index cf9c454583..0c1ce9924d 100644
--- a/src/overlays/actors/ovl_Bg_Po_Syokudai/z_bg_po_syokudai.c
+++ b/src/overlays/actors/ovl_Bg_Po_Syokudai/z_bg_po_syokudai.c
@@ -45,8 +45,8 @@ static ColliderCylinderInit sCylinderInit = {
},
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON,
OCELEM_ON,
diff --git a/src/overlays/actors/ovl_Bg_Relay_Objects/z_bg_relay_objects.c b/src/overlays/actors/ovl_Bg_Relay_Objects/z_bg_relay_objects.c
index 52f858a343..5058440e47 100644
--- a/src/overlays/actors/ovl_Bg_Relay_Objects/z_bg_relay_objects.c
+++ b/src/overlays/actors/ovl_Bg_Relay_Objects/z_bg_relay_objects.c
@@ -119,7 +119,7 @@ void BgRelayObjects_Destroy(Actor* thisx, PlayState* play) {
BgRelayObjects* this = (BgRelayObjects*)thisx;
DynaPoly_DeleteBgActor(play, &play->colCtx.dyna, this->dyna.bgId);
- if ((this->dyna.actor.params == WINDMILL_ROTATING_GEAR) && (gSaveContext.save.cutsceneIndex < 0xFFF0)) {
+ if ((this->dyna.actor.params == WINDMILL_ROTATING_GEAR) && (gSaveContext.save.cutsceneIndex < CS_INDEX_0)) {
CLEAR_EVENTCHKINF(EVENTCHKINF_65);
}
}
diff --git a/src/overlays/actors/ovl_Bg_Spot00_Hanebasi/z_bg_spot00_hanebasi.c b/src/overlays/actors/ovl_Bg_Spot00_Hanebasi/z_bg_spot00_hanebasi.c
index 8b6ab5ac96..6bb72a6921 100644
--- a/src/overlays/actors/ovl_Bg_Spot00_Hanebasi/z_bg_spot00_hanebasi.c
+++ b/src/overlays/actors/ovl_Bg_Spot00_Hanebasi/z_bg_spot00_hanebasi.c
@@ -231,7 +231,7 @@ void BgSpot00Hanebasi_Update(Actor* thisx, PlayState* play) {
this->actionFunc = BgSpot00Hanebasi_DoNothing;
Player_SetCsActionWithHaltedActors(play, &player->actor, PLAYER_CSACTION_8);
play->nextEntranceIndex = ENTR_HYRULE_FIELD_0;
- gSaveContext.nextCutsceneIndex = 0xFFF1;
+ gSaveContext.nextCutsceneIndex = CS_INDEX_1;
play->transitionTrigger = TRANS_TRIGGER_START;
play->transitionType = TRANS_TYPE_FADE_BLACK_FAST;
} else if (Actor_IsFacingAndNearPlayer(&this->dyna.actor, 3000.0f, 0x7530)) {
diff --git a/src/overlays/actors/ovl_Bg_Spot01_Idomizu/z_bg_spot01_idomizu.c b/src/overlays/actors/ovl_Bg_Spot01_Idomizu/z_bg_spot01_idomizu.c
index ebeffcc2fb..d417d53efe 100644
--- a/src/overlays/actors/ovl_Bg_Spot01_Idomizu/z_bg_spot01_idomizu.c
+++ b/src/overlays/actors/ovl_Bg_Spot01_Idomizu/z_bg_spot01_idomizu.c
@@ -64,8 +64,7 @@ void BgSpot01Idomizu_UpdateWaterLevel(BgSpot01Idomizu* this, PlayState* play) {
}
play->colCtx.colHeader->waterBoxes[0].ySurface = this->actor.world.pos.y;
if (this->waterHeight < this->actor.world.pos.y) {
- Audio_PlaySfxGeneral(NA_SE_EV_WATER_LEVEL_DOWN - SFX_FLAG, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_EV_WATER_LEVEL_DOWN - SFX_FLAG);
}
Math_ApproachF(&this->actor.world.pos.y, this->waterHeight, 1.0f, 2.0f);
}
diff --git a/src/overlays/actors/ovl_Bg_Spot06_Objects/z_bg_spot06_objects.c b/src/overlays/actors/ovl_Bg_Spot06_Objects/z_bg_spot06_objects.c
index c3c94063c5..25adbc1110 100644
--- a/src/overlays/actors/ovl_Bg_Spot06_Objects/z_bg_spot06_objects.c
+++ b/src/overlays/actors/ovl_Bg_Spot06_Objects/z_bg_spot06_objects.c
@@ -6,6 +6,7 @@
#include "z_bg_spot06_objects.h"
+#include "array_count.h"
#include "gfx.h"
#include "gfx_setupdl.h"
#include "ichain.h"
@@ -70,12 +71,12 @@ ActorProfile Bg_Spot06_Objects_Profile = {
/**/ BgSpot06Objects_Draw,
};
-static ColliderJntSphElementInit sJntSphElementsInit[1] = {
+static ColliderJntSphElementInit sJntSphElementsInit[] = {
{
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0x00000080, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0x00000080, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON | ACELEM_HOOKABLE,
OCELEM_ON,
@@ -93,7 +94,7 @@ static ColliderJntSphInit sJntSphInit = {
OC2_TYPE_2,
COLSHAPE_JNTSPH,
},
- 1,
+ ARRAY_COUNT(sJntSphElementsInit),
sJntSphElementsInit,
};
@@ -326,8 +327,7 @@ void BgSpot06Objects_LockWait(BgSpot06Objects* this, PlayState* play) {
EffectSsGSplash_Spawn(play, &this->dyna.actor.world.pos, NULL, NULL, 1, 700);
this->collider.elements[0].dim.worldSphere.radius = 45;
this->actionFunc = BgSpot06Objects_LockPullOutward;
- Audio_PlaySfxGeneral(NA_SE_SY_CORRECT_CHIME, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_CORRECT_CHIME);
Flags_SetSwitch(play, this->switchFlag);
OnePointCutscene_Init(play, 4120, 170, &this->dyna.actor, CAM_ID_MAIN);
} else {
diff --git a/src/overlays/actors/ovl_Bg_Spot08_Bakudankabe/z_bg_spot08_bakudankabe.c b/src/overlays/actors/ovl_Bg_Spot08_Bakudankabe/z_bg_spot08_bakudankabe.c
index ce59f55d04..e6d32de9ff 100644
--- a/src/overlays/actors/ovl_Bg_Spot08_Bakudankabe/z_bg_spot08_bakudankabe.c
+++ b/src/overlays/actors/ovl_Bg_Spot08_Bakudankabe/z_bg_spot08_bakudankabe.c
@@ -44,8 +44,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[] = {
{
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0x00000008, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0x00000008, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON,
OCELEM_NONE,
@@ -55,8 +55,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[] = {
{
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0x00000008, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0x00000008, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON,
OCELEM_NONE,
@@ -66,8 +66,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[] = {
{
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0x00000008, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0x00000008, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON,
OCELEM_NONE,
@@ -85,7 +85,7 @@ static ColliderJntSphInit sJntSphInit = {
OC2_TYPE_2,
COLSHAPE_JNTSPH,
},
- 3,
+ ARRAY_COUNT(sJntSphElementsInit),
sJntSphElementsInit,
};
diff --git a/src/overlays/actors/ovl_Bg_Spot11_Bakudankabe/z_bg_spot11_bakudankabe.c b/src/overlays/actors/ovl_Bg_Spot11_Bakudankabe/z_bg_spot11_bakudankabe.c
index 427d9d4a6c..eadfe2ce59 100644
--- a/src/overlays/actors/ovl_Bg_Spot11_Bakudankabe/z_bg_spot11_bakudankabe.c
+++ b/src/overlays/actors/ovl_Bg_Spot11_Bakudankabe/z_bg_spot11_bakudankabe.c
@@ -48,8 +48,8 @@ static ColliderCylinderInit sCylinderInit = {
},
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0x00000008, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0x00000008, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON,
OCELEM_NONE,
diff --git a/src/overlays/actors/ovl_Bg_Spot16_Bombstone/z_bg_spot16_bombstone.c b/src/overlays/actors/ovl_Bg_Spot16_Bombstone/z_bg_spot16_bombstone.c
index d3b44d8aeb..e30db9ba20 100644
--- a/src/overlays/actors/ovl_Bg_Spot16_Bombstone/z_bg_spot16_bombstone.c
+++ b/src/overlays/actors/ovl_Bg_Spot16_Bombstone/z_bg_spot16_bombstone.c
@@ -56,8 +56,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[] = {
{
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0x4FC1FFF6, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0x4FC1FFF6, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON,
OCELEM_ON,
@@ -75,7 +75,7 @@ static ColliderJntSphInit sJntSphInit = {
OC2_TYPE_2,
COLSHAPE_JNTSPH,
},
- 1,
+ ARRAY_COUNT(sJntSphElementsInit),
sJntSphElementsInit,
};
@@ -90,8 +90,8 @@ static ColliderCylinderInit sCylinderInit = {
},
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0x00000008, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0x00000008, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON,
OCELEM_NONE,
diff --git a/src/overlays/actors/ovl_Bg_Spot18_Basket/z_bg_spot18_basket.c b/src/overlays/actors/ovl_Bg_Spot18_Basket/z_bg_spot18_basket.c
index 5e4c7896f7..51bccf7ca0 100644
--- a/src/overlays/actors/ovl_Bg_Spot18_Basket/z_bg_spot18_basket.c
+++ b/src/overlays/actors/ovl_Bg_Spot18_Basket/z_bg_spot18_basket.c
@@ -49,12 +49,12 @@ ActorProfile Bg_Spot18_Basket_Profile = {
/**/ BgSpot18Basket_Draw,
};
-static ColliderJntSphElementInit sJntSphElementsInit[2] = {
+static ColliderJntSphElementInit sJntSphElementsInit[] = {
{
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0x00000000, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0x00000000, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_NONE,
OCELEM_ON,
@@ -64,8 +64,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[2] = {
{
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0x00000008, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0x00000008, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON,
OCELEM_NONE,
@@ -83,7 +83,7 @@ static ColliderJntSphInit sJntSphInit = {
OC2_TYPE_2,
COLSHAPE_JNTSPH,
},
- 2,
+ ARRAY_COUNT(sJntSphElementsInit),
sJntSphElementsInit,
};
diff --git a/src/overlays/actors/ovl_Bg_Toki_Swd/z_bg_toki_swd.c b/src/overlays/actors/ovl_Bg_Toki_Swd/z_bg_toki_swd.c
index 144388d38e..5a2fe183ed 100644
--- a/src/overlays/actors/ovl_Bg_Toki_Swd/z_bg_toki_swd.c
+++ b/src/overlays/actors/ovl_Bg_Toki_Swd/z_bg_toki_swd.c
@@ -58,13 +58,13 @@ static ColliderCylinderInit sCylinderInit = {
},
{
ELEM_MATERIAL_UNK0,
- { 0xFFCFFFFF, 0x00, 0x00 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_NONE,
OCELEM_ON,
},
- { 10, 70, 0, { 0 } },
+ { 10, 70, 0, { 0, 0, 0 } },
};
static CollisionCheckInfoInit sColChkInfoInit = { 10, 35, 100, MASS_IMMOVABLE };
diff --git a/src/overlays/actors/ovl_Bg_Treemouth/z_bg_treemouth.c b/src/overlays/actors/ovl_Bg_Treemouth/z_bg_treemouth.c
index 5ac35592bd..bf97d5a47d 100644
--- a/src/overlays/actors/ovl_Bg_Treemouth/z_bg_treemouth.c
+++ b/src/overlays/actors/ovl_Bg_Treemouth/z_bg_treemouth.c
@@ -111,8 +111,7 @@ void func_808BC65C(BgTreemouth* this, PlayState* play) {
if (cue->id == 2) {
BgTreemouth_SetupAction(this, func_808BC80C);
} else if (cue->id == 3) {
- Audio_PlaySfxGeneral(NA_SE_EV_WOODDOOR_OPEN, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_EV_WOODDOOR_OPEN);
BgTreemouth_SetupAction(this, func_808BC6F8);
}
}
@@ -218,8 +217,7 @@ void func_808BCAF0(BgTreemouth* this, PlayState* play) {
if (cue->id == 2) {
BgTreemouth_SetupAction(this, func_808BC80C);
} else if (cue->id == 3) {
- Audio_PlaySfxGeneral(NA_SE_EV_WOODDOOR_OPEN, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_EV_WOODDOOR_OPEN);
BgTreemouth_SetupAction(this, func_808BC6F8);
}
}
diff --git a/src/overlays/actors/ovl_Bg_Vb_Sima/z_bg_vb_sima.c b/src/overlays/actors/ovl_Bg_Vb_Sima/z_bg_vb_sima.c
index a3ef2197eb..08b39baead 100644
--- a/src/overlays/actors/ovl_Bg_Vb_Sima/z_bg_vb_sima.c
+++ b/src/overlays/actors/ovl_Bg_Vb_Sima/z_bg_vb_sima.c
@@ -95,8 +95,7 @@ void BgVbSima_Update(Actor* thisx, PlayState* play) {
this->dyna.actor.world.pos.z += 2.0f * Math_CosS(this->shakeTimer * 0x8000);
this->dyna.actor.shape.rot.x = (s16)Math_SinS(this->shakeTimer * 0x7000) * 0x37;
this->dyna.actor.shape.rot.z = (s16)Math_SinS(this->shakeTimer * 0x5000) * 0x37;
- Audio_PlaySfxGeneral(NA_SE_EV_BLOCKSINK - SFX_FLAG, &this->dyna.actor.projectedPos, 4,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&this->dyna.actor.projectedPos, NA_SE_EV_BLOCKSINK - SFX_FLAG);
} else if (signal == VBSIMA_KILL) {
Actor_Kill(&this->dyna.actor);
}
diff --git a/src/overlays/actors/ovl_Bg_Ydan_Maruta/z_bg_ydan_maruta.c b/src/overlays/actors/ovl_Bg_Ydan_Maruta/z_bg_ydan_maruta.c
index 8d683a9422..10c23e5187 100644
--- a/src/overlays/actors/ovl_Bg_Ydan_Maruta/z_bg_ydan_maruta.c
+++ b/src/overlays/actors/ovl_Bg_Ydan_Maruta/z_bg_ydan_maruta.c
@@ -6,6 +6,7 @@
#include "z_bg_ydan_maruta.h"
+#include "array_count.h"
#include "ichain.h"
#include "one_point_cutscene.h"
#include "sfx.h"
@@ -39,12 +40,12 @@ ActorProfile Bg_Ydan_Maruta_Profile = {
/**/ BgYdanMaruta_Draw,
};
-static ColliderTrisElementInit sTrisElementsInit[2] = {
+static ColliderTrisElementInit sTrisElementsInit[] = {
{
{
ELEM_MATERIAL_UNK0,
- { 0x20000000, 0x00, 0x04 },
- { 0x00000004, 0x00, 0x00 },
+ { 0x20000000, HIT_SPECIAL_EFFECT_NONE, 0x04 },
+ { 0x00000004, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_WOOD,
ACELEM_ON,
OCELEM_NONE,
@@ -54,8 +55,8 @@ static ColliderTrisElementInit sTrisElementsInit[2] = {
{
{
ELEM_MATERIAL_UNK0,
- { 0x20000000, 0x00, 0x04 },
- { 0x00000004, 0x00, 0x00 },
+ { 0x20000000, HIT_SPECIAL_EFFECT_NONE, 0x04 },
+ { 0x00000004, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_WOOD,
ACELEM_ON,
OCELEM_NONE,
@@ -73,7 +74,7 @@ static ColliderTrisInit sTrisInit = {
OC2_TYPE_2,
COLSHAPE_TRIS,
},
- 2,
+ ARRAY_COUNT(sTrisElementsInit),
sTrisElementsInit,
};
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 723852f33b..a7071694d2 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
@@ -7,6 +7,7 @@
#include "z_bg_ydan_sp.h"
#include "libc64/qrand.h"
+#include "array_count.h"
#include "gfx.h"
#include "gfx_setupdl.h"
#include "ichain.h"
@@ -51,12 +52,12 @@ ActorProfile Bg_Ydan_Sp_Profile = {
/**/ BgYdanSp_Draw,
};
-static ColliderTrisElementInit sTrisElementsInit[2] = {
+static ColliderTrisElementInit sTrisElementsInit[] = {
{
{
ELEM_MATERIAL_UNK0,
- { 0xFFCFFFFF, 0x00, 0x00 },
- { 0x00020800, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0x00020800, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON,
OCELEM_NONE,
@@ -66,8 +67,8 @@ static ColliderTrisElementInit sTrisElementsInit[2] = {
{
{
ELEM_MATERIAL_UNK0,
- { 0xFFCFFFFF, 0x00, 0x00 },
- { 0x00020800, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0x00020800, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON,
OCELEM_NONE,
@@ -85,7 +86,7 @@ static ColliderTrisInit sTrisInit = {
OC2_TYPE_2,
COLSHAPE_TRIS,
},
- 2,
+ ARRAY_COUNT(sTrisElementsInit),
sTrisElementsInit,
};
diff --git a/src/overlays/actors/ovl_Bg_Zg/z_bg_zg.c b/src/overlays/actors/ovl_Bg_Zg/z_bg_zg.c
index f607fb4150..6bb61d1d01 100644
--- a/src/overlays/actors/ovl_Bg_Zg/z_bg_zg.c
+++ b/src/overlays/actors/ovl_Bg_Zg/z_bg_zg.c
@@ -65,8 +65,7 @@ void BgZg_Destroy(Actor* thisx, PlayState* play) {
}
void func_808C0C50(BgZg* this) {
- Audio_PlaySfxGeneral(NA_SE_EV_METALDOOR_OPEN, &this->dyna.actor.projectedPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&this->dyna.actor.projectedPos, NA_SE_EV_METALDOOR_OPEN);
}
s32 func_808C0C98(BgZg* this, PlayState* play) {
diff --git a/src/overlays/actors/ovl_Boss_Dodongo/z_boss_dodongo_data.inc.c b/src/overlays/actors/ovl_Boss_Dodongo/z_boss_dodongo_data.inc.c
index ce2d694b11..0723fd0eb9 100644
--- a/src/overlays/actors/ovl_Boss_Dodongo/z_boss_dodongo_data.inc.c
+++ b/src/overlays/actors/ovl_Boss_Dodongo/z_boss_dodongo_data.inc.c
@@ -1,3 +1,4 @@
+#include "array_count.h"
#include "collision_check.h"
static u8 D_808C7000[] = {
@@ -10,12 +11,12 @@ static u8 D_808C7000[] = {
1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0,
};
-static ColliderJntSphElementInit sJntSphElementsInit[19] = {
+static ColliderJntSphElementInit sJntSphElementsInit[] = {
{
{
ELEM_MATERIAL_UNK3,
- { 0xFFCFFFFF, 0x00, 0x04 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x04 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
@@ -25,8 +26,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[19] = {
{
{
ELEM_MATERIAL_UNK3,
- { 0xFFCFFFFF, 0x00, 0x04 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x04 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
@@ -36,8 +37,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[19] = {
{
{
ELEM_MATERIAL_UNK2,
- { 0xFFCFFFFF, 0x00, 0x04 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x04 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
@@ -47,8 +48,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[19] = {
{
{
ELEM_MATERIAL_UNK2,
- { 0xFFCFFFFF, 0x00, 0x04 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x04 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
@@ -58,8 +59,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[19] = {
{
{
ELEM_MATERIAL_UNK2,
- { 0xFFCFFFFF, 0x00, 0x04 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x04 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
@@ -69,8 +70,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[19] = {
{
{
ELEM_MATERIAL_UNK2,
- { 0xFFCFFFFF, 0x00, 0x04 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x04 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
@@ -80,8 +81,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[19] = {
{
{
ELEM_MATERIAL_UNK2,
- { 0xFFCFFFFF, 0x00, 0x04 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x04 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
@@ -91,8 +92,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[19] = {
{
{
ELEM_MATERIAL_UNK2,
- { 0xFFCFFFFF, 0x00, 0x04 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x04 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
@@ -102,8 +103,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[19] = {
{
{
ELEM_MATERIAL_UNK2,
- { 0xFFCFFFFF, 0x00, 0x04 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x04 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
@@ -113,8 +114,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[19] = {
{
{
ELEM_MATERIAL_UNK2,
- { 0xFFCFFFFF, 0x00, 0x04 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x04 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
@@ -124,8 +125,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[19] = {
{
{
ELEM_MATERIAL_UNK2,
- { 0xFFCFFFFF, 0x00, 0x04 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x04 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
@@ -135,8 +136,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[19] = {
{
{
ELEM_MATERIAL_UNK2,
- { 0xFFCFFFFF, 0x00, 0x04 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x04 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
@@ -146,8 +147,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[19] = {
{
{
ELEM_MATERIAL_UNK2,
- { 0xFFCFFFFF, 0x00, 0x04 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x04 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
@@ -157,8 +158,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[19] = {
{
{
ELEM_MATERIAL_UNK2,
- { 0xFFCFFFFF, 0x00, 0x04 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x04 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
@@ -168,8 +169,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[19] = {
{
{
ELEM_MATERIAL_UNK2,
- { 0xFFCFFFFF, 0x00, 0x04 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x04 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
@@ -179,8 +180,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[19] = {
{
{
ELEM_MATERIAL_UNK2,
- { 0xFFCFFFFF, 0x00, 0x04 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x04 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
@@ -190,8 +191,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[19] = {
{
{
ELEM_MATERIAL_UNK2,
- { 0xFFCFFFFF, 0x00, 0x04 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x04 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
@@ -201,8 +202,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[19] = {
{
{
ELEM_MATERIAL_UNK2,
- { 0xFFCFFFFF, 0x00, 0x04 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x04 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
@@ -212,8 +213,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[19] = {
{
{
ELEM_MATERIAL_UNK2,
- { 0xFFCFFFFF, 0x00, 0x04 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x04 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
@@ -231,7 +232,7 @@ static ColliderJntSphInit sJntSphInit = {
OC2_TYPE_1,
COLSHAPE_JNTSPH,
},
- 19,
+ ARRAY_COUNT(sJntSphElementsInit),
sJntSphElementsInit,
};
diff --git a/src/overlays/actors/ovl_Boss_Fd/z_boss_fd.c b/src/overlays/actors/ovl_Boss_Fd/z_boss_fd.c
index 5643da5d98..b1fffc4294 100644
--- a/src/overlays/actors/ovl_Boss_Fd/z_boss_fd.c
+++ b/src/overlays/actors/ovl_Boss_Fd/z_boss_fd.c
@@ -404,8 +404,7 @@ void BossFd_Fly(BossFd* this, PlayState* play) {
this->fogMode = 1;
}
if (this->timers[0] < 50) {
- Audio_PlaySfxGeneral(NA_SE_EN_DODO_K_ROLL - SFX_FLAG, &this->actor.projectedPos, 4,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&this->actor.projectedPos, NA_SE_EN_DODO_K_ROLL - SFX_FLAG);
this->subCamAtYOffset = Math_CosS(this->work[BFD_MOVE_TIMER] * 0x8000) * this->subCamShake;
Math_ApproachF(&this->subCamShake, 2.0f, 1.0f, 0.8 * 0.01f);
}
@@ -425,8 +424,7 @@ void BossFd_Fly(BossFd* this, PlayState* play) {
case BFD_CS_LOOK_GROUND:
this->subCamAtYOffset = Math_CosS(this->work[BFD_MOVE_TIMER] * 0x8000) * this->subCamShake;
Math_ApproachF(&this->subCamShake, 2.0f, 1.0f, 0.8 * 0.01f);
- Audio_PlaySfxGeneral(NA_SE_EN_DODO_K_ROLL - SFX_FLAG, &this->actor.projectedPos, 4,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&this->actor.projectedPos, NA_SE_EN_DODO_K_ROLL - SFX_FLAG);
if (this->timers[0] == 0) {
this->introState = BFD_CS_COLLAPSE;
this->subCamEyeNext.x = player2->actor.world.pos.x + 100.0f + 300.0f;
@@ -446,8 +444,7 @@ void BossFd_Fly(BossFd* this, PlayState* play) {
this->subCamAccel = 0.005f;
this->subCamAtYOffset = Math_CosS(this->work[BFD_MOVE_TIMER] * 0x8000) * this->subCamShake;
Math_ApproachF(&this->subCamShake, 2.0f, 1.0f, 0.8 * 0.01f);
- Audio_PlaySfxGeneral(NA_SE_EN_DODO_K_ROLL - SFX_FLAG, &this->actor.projectedPos, 4,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&this->actor.projectedPos, NA_SE_EN_DODO_K_ROLL - SFX_FLAG);
if (this->timers[0] == 100) {
this->platformSignal = VBSIMA_COLLAPSE;
}
@@ -483,8 +480,7 @@ void BossFd_Fly(BossFd* this, PlayState* play) {
PRINTF("WAY_SPD Y = %f\n", this->subCamAtVel.y);
PRINTF("WAY_SPD Z = %f\n", this->subCamAtVel.z);
if ((this->timers[3] > 190) && !GET_EVENTCHKINF(EVENTCHKINF_BEGAN_VOLVAGIA_BATTLE)) {
- Audio_PlaySfxGeneral(NA_SE_EN_DODO_K_ROLL - SFX_FLAG, &this->actor.projectedPos, 4,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&this->actor.projectedPos, NA_SE_EN_DODO_K_ROLL - SFX_FLAG);
}
if (this->timers[3] == 190) {
this->subCamAtMaxVelFrac.x = this->subCamAtMaxVelFrac.y = this->subCamAtMaxVelFrac.z = 0.05f;
@@ -694,8 +690,7 @@ void BossFd_Fly(BossFd* this, PlayState* play) {
if (this->actor.bgCheckFlags & BGCHECKFLAG_CEILING) {
this->fwork[BFD_CEILING_BOUNCE] = -18384.0f;
this->timers[1] = 10;
- Audio_PlaySfxGeneral(NA_SE_EV_EXPLOSION, &this->actor.projectedPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&this->actor.projectedPos, NA_SE_EV_EXPLOSION);
Actor_RequestQuakeWithSpeed(play, 3, 10, 0x7530);
this->work[BFD_ROCK_TIMER] = 300;
}
@@ -794,8 +789,7 @@ void BossFd_Fly(BossFd* this, PlayState* play) {
sp150 = 1;
if (this->work[BFD_MOVE_TIMER] & 0x1C) {
- Audio_PlaySfxGeneral(NA_SE_EN_VALVAISA_BURN - SFX_FLAG, &this->actor.projectedPos, 4,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&this->actor.projectedPos, NA_SE_EN_VALVAISA_BURN - SFX_FLAG);
}
for (i1 = 0; i1 < sp150; i1++) {
if (sp150) { // Needed for matching
@@ -867,9 +861,7 @@ void BossFd_Fly(BossFd* this, PlayState* play) {
this->work[BFD_CEILING_TARGET]++;
this->timers[1] = 60;
this->work[BFD_CAM_SHAKE_TIMER] = 20;
- Audio_PlaySfxGeneral(NA_SE_EN_VALVAISA_LAND2, &this->actor.projectedPos, 4,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&this->actor.projectedPos, NA_SE_EN_VALVAISA_LAND2);
Player_SetCsActionWithHaltedActors(play, &this->actor, PLAYER_CSACTION_5);
for (i1 = 0; i1 < 15; i1++) {
Vec3f sp144 = { 0.0f, 0.0f, 0.0f };
@@ -910,8 +902,7 @@ void BossFd_Fly(BossFd* this, PlayState* play) {
Vec3f sp114 = { 0.0f, 0.0f, 0.0f };
Vec3f sp108 = { 0.0f, 0.03f, 0.0f };
- Audio_PlaySfxGeneral(NA_SE_EN_GOMA_LAST - SFX_FLAG, &this->actor.projectedPos, 4,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&this->actor.projectedPos, NA_SE_EN_GOMA_LAST - SFX_FLAG);
sp120.x = Rand_CenteredFloat(40.0f) + this->actor.world.pos.x;
sp120.y = (Rand_CenteredFloat(10.0f) + this->actor.world.pos.y) - 10.0f;
@@ -1159,8 +1150,7 @@ void BossFd_Effects(BossFd* this, PlayState* play) {
if (this->work[BFD_ROAR_TIMER] != 0) {
if (this->work[BFD_ROAR_TIMER] == 37) {
- Audio_PlaySfxGeneral(NA_SE_EN_VALVAISA_ROAR, &this->actor.projectedPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&this->actor.projectedPos, NA_SE_EN_VALVAISA_ROAR);
}
jawAngle = 6000.0f;
jawSpeed = 1300.0f;
@@ -1180,8 +1170,7 @@ void BossFd_Effects(BossFd* this, PlayState* play) {
Vec3f spawnPos1;
s16 i;
- Audio_PlaySfxGeneral(NA_SE_EN_VALVAISA_APPEAR - SFX_FLAG, &this->actor.projectedPos, 4,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&this->actor.projectedPos, NA_SE_EN_VALVAISA_APPEAR - SFX_FLAG);
if (this->work[BFD_SPLASH_TIMER] != 0) {
this->work[BFD_SPLASH_TIMER]--;
if ((this->actor.colChkInfo.health == 0) ||
@@ -1259,8 +1248,7 @@ void BossFd_Effects(BossFd* this, PlayState* play) {
this->fogMode = 2;
spawnSpeed2.z = 30.0f;
- Audio_PlaySfxGeneral(NA_SE_EN_VALVAISA_FIRE - SFX_FLAG, &sFireAudioVec, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&sFireAudioVec, NA_SE_EN_VALVAISA_FIRE - SFX_FLAG);
spawnPos2 = this->headPos;
spawnAngleY = BINANG_TO_RAD_ALT(this->actor.world.rot.y);
@@ -1322,8 +1310,7 @@ void BossFd_CollisionCheck(BossFd* this, PlayState* play) {
}
this->work[BFD_DAMAGE_FLASH_TIMER] = 10;
this->work[BFD_INVINC_TIMER] = 20;
- Audio_PlaySfxGeneral(NA_SE_EN_VALVAISA_DAMAGE1, &this->actor.projectedPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&this->actor.projectedPos, NA_SE_EN_VALVAISA_DAMAGE1);
}
}
diff --git a/src/overlays/actors/ovl_Boss_Fd/z_boss_fd_colchk.inc.c b/src/overlays/actors/ovl_Boss_Fd/z_boss_fd_colchk.inc.c
index edd02bd7d9..4b51a74d6b 100644
--- a/src/overlays/actors/ovl_Boss_Fd/z_boss_fd_colchk.inc.c
+++ b/src/overlays/actors/ovl_Boss_Fd/z_boss_fd_colchk.inc.c
@@ -1,11 +1,11 @@
#include "collision_check.h"
-static ColliderJntSphElementInit sJntSphElementsInit[19] = {
+static ColliderJntSphElementInit sJntSphElementsInit[] = {
{
{
ELEM_MATERIAL_UNK3,
- { 0xFFCFFFFF, 0x00, 0x10 },
- { 0xFFCDFFFE, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x10 },
+ { 0xFFCDFFFE, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
@@ -15,8 +15,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[19] = {
{
{
ELEM_MATERIAL_UNK2,
- { 0xFFCFFFFF, 0x00, 0x10 },
- { 0xFFCDFFFE, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x10 },
+ { 0xFFCDFFFE, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_NONE,
OCELEM_ON,
@@ -26,8 +26,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[19] = {
{
{
ELEM_MATERIAL_UNK2,
- { 0xFFCFFFFF, 0x00, 0x10 },
- { 0xFFCDFFFE, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x10 },
+ { 0xFFCDFFFE, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_NONE,
OCELEM_ON,
@@ -37,8 +37,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[19] = {
{
{
ELEM_MATERIAL_UNK2,
- { 0xFFCFFFFF, 0x00, 0x10 },
- { 0xFFCDFFFE, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x10 },
+ { 0xFFCDFFFE, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_NONE,
OCELEM_ON,
@@ -48,8 +48,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[19] = {
{
{
ELEM_MATERIAL_UNK2,
- { 0xFFCFFFFF, 0x00, 0x10 },
- { 0xFFCDFFFE, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x10 },
+ { 0xFFCDFFFE, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_NONE,
OCELEM_ON,
@@ -59,8 +59,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[19] = {
{
{
ELEM_MATERIAL_UNK2,
- { 0xFFCFFFFF, 0x00, 0x10 },
- { 0xFFCDFFFE, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x10 },
+ { 0xFFCDFFFE, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_NONE,
OCELEM_ON,
@@ -70,8 +70,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[19] = {
{
{
ELEM_MATERIAL_UNK2,
- { 0xFFCFFFFF, 0x00, 0x10 },
- { 0xFFCDFFFE, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x10 },
+ { 0xFFCDFFFE, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_NONE,
OCELEM_ON,
@@ -81,8 +81,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[19] = {
{
{
ELEM_MATERIAL_UNK2,
- { 0xFFCFFFFF, 0x00, 0x10 },
- { 0xFFCDFFFE, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x10 },
+ { 0xFFCDFFFE, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_NONE,
OCELEM_ON,
@@ -92,8 +92,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[19] = {
{
{
ELEM_MATERIAL_UNK2,
- { 0xFFCFFFFF, 0x00, 0x10 },
- { 0xFFCDFFFE, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x10 },
+ { 0xFFCDFFFE, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_NONE,
OCELEM_ON,
@@ -103,8 +103,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[19] = {
{
{
ELEM_MATERIAL_UNK2,
- { 0xFFCFFFFF, 0x00, 0x10 },
- { 0xFFCDFFFE, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x10 },
+ { 0xFFCDFFFE, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_NONE,
OCELEM_ON,
@@ -114,8 +114,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[19] = {
{
{
ELEM_MATERIAL_UNK2,
- { 0xFFCFFFFF, 0x00, 0x10 },
- { 0xFFCDFFFE, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x10 },
+ { 0xFFCDFFFE, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_NONE,
OCELEM_ON,
@@ -125,8 +125,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[19] = {
{
{
ELEM_MATERIAL_UNK2,
- { 0xFFCFFFFF, 0x00, 0x10 },
- { 0xFFCDFFFE, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x10 },
+ { 0xFFCDFFFE, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_NONE,
OCELEM_ON,
@@ -136,8 +136,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[19] = {
{
{
ELEM_MATERIAL_UNK2,
- { 0xFFCFFFFF, 0x00, 0x10 },
- { 0xFFCDFFFE, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x10 },
+ { 0xFFCDFFFE, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_NONE,
OCELEM_ON,
@@ -147,8 +147,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[19] = {
{
{
ELEM_MATERIAL_UNK2,
- { 0xFFCFFFFF, 0x00, 0x10 },
- { 0xFFCDFFFE, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x10 },
+ { 0xFFCDFFFE, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_NONE,
OCELEM_ON,
@@ -158,8 +158,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[19] = {
{
{
ELEM_MATERIAL_UNK2,
- { 0xFFCFFFFF, 0x00, 0x10 },
- { 0xFFCDFFFE, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x10 },
+ { 0xFFCDFFFE, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_NONE,
OCELEM_ON,
@@ -169,8 +169,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[19] = {
{
{
ELEM_MATERIAL_UNK2,
- { 0xFFCFFFFF, 0x00, 0x10 },
- { 0xFFCDFFFE, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x10 },
+ { 0xFFCDFFFE, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_NONE,
OCELEM_ON,
@@ -180,8 +180,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[19] = {
{
{
ELEM_MATERIAL_UNK2,
- { 0xFFCFFFFF, 0x00, 0x10 },
- { 0xFFCDFFFE, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x10 },
+ { 0xFFCDFFFE, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_NONE,
OCELEM_ON,
@@ -191,8 +191,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[19] = {
{
{
ELEM_MATERIAL_UNK2,
- { 0xFFCFFFFF, 0x00, 0x10 },
- { 0xFFCDFFFE, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x10 },
+ { 0xFFCDFFFE, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_NONE,
OCELEM_ON,
@@ -202,8 +202,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[19] = {
{
{
ELEM_MATERIAL_UNK2,
- { 0xFFCFFFFF, 0x00, 0x10 },
- { 0xFFCDFFFE, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x10 },
+ { 0xFFCDFFFE, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_NONE,
OCELEM_ON,
@@ -221,6 +221,6 @@ static ColliderJntSphInit sJntSphInit = {
OC2_TYPE_1,
COLSHAPE_JNTSPH,
},
- 19,
+ ARRAY_COUNT(sJntSphElementsInit),
sJntSphElementsInit,
};
diff --git a/src/overlays/actors/ovl_Boss_Fd2/z_boss_fd2_colchk.inc.c b/src/overlays/actors/ovl_Boss_Fd2/z_boss_fd2_colchk.inc.c
index 2323528180..64994745d4 100644
--- a/src/overlays/actors/ovl_Boss_Fd2/z_boss_fd2_colchk.inc.c
+++ b/src/overlays/actors/ovl_Boss_Fd2/z_boss_fd2_colchk.inc.c
@@ -1,11 +1,11 @@
#include "collision_check.h"
-static ColliderJntSphElementInit sJntSphElementsInit[9] = {
+static ColliderJntSphElementInit sJntSphElementsInit[] = {
{
{
ELEM_MATERIAL_UNK3,
- { 0xFFCFFFFF, 0x00, 0x20 },
- { 0xFFCDFFFE, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x20 },
+ { 0xFFCDFFFE, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON | ACELEM_HOOKABLE,
OCELEM_ON,
@@ -15,8 +15,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[9] = {
{
{
ELEM_MATERIAL_UNK2,
- { 0xFFCFFFFF, 0x00, 0x20 },
- { 0xFFCDFFFE, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x20 },
+ { 0xFFCDFFFE, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_NONE,
OCELEM_ON,
@@ -26,8 +26,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[9] = {
{
{
ELEM_MATERIAL_UNK2,
- { 0xFFCFFFFF, 0x00, 0x20 },
- { 0xFFCDFFFE, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x20 },
+ { 0xFFCDFFFE, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_NONE,
OCELEM_ON,
@@ -37,8 +37,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[9] = {
{
{
ELEM_MATERIAL_UNK2,
- { 0xFFCFFFFF, 0x00, 0x20 },
- { 0xFFCDFFFE, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x20 },
+ { 0xFFCDFFFE, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_NONE,
OCELEM_ON,
@@ -48,8 +48,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[9] = {
{
{
ELEM_MATERIAL_UNK2,
- { 0xFFCFFFFF, 0x00, 0x20 },
- { 0xFFCDFFFE, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x20 },
+ { 0xFFCDFFFE, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_NONE,
OCELEM_ON,
@@ -59,8 +59,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[9] = {
{
{
ELEM_MATERIAL_UNK2,
- { 0xFFCFFFFF, 0x00, 0x20 },
- { 0xFFCDFFFE, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x20 },
+ { 0xFFCDFFFE, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_NONE,
OCELEM_ON,
@@ -70,8 +70,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[9] = {
{
{
ELEM_MATERIAL_UNK2,
- { 0xFFCFFFFF, 0x00, 0x20 },
- { 0xFFCDFFFE, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x20 },
+ { 0xFFCDFFFE, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_NONE,
OCELEM_ON,
@@ -81,8 +81,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[9] = {
{
{
ELEM_MATERIAL_UNK2,
- { 0xFFCFFFFF, 0x00, 0x20 },
- { 0xFFCDFFFE, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x20 },
+ { 0xFFCDFFFE, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_NONE,
OCELEM_ON,
@@ -92,8 +92,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[9] = {
{
{
ELEM_MATERIAL_UNK2,
- { 0xFFCFFFFF, 0x00, 0x20 },
- { 0xFFCDFFFE, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x20 },
+ { 0xFFCDFFFE, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_NONE,
OCELEM_ON,
@@ -111,6 +111,6 @@ static ColliderJntSphInit sJntSphInit = {
OC2_TYPE_1,
COLSHAPE_JNTSPH,
},
- 9,
+ ARRAY_COUNT(sJntSphElementsInit),
sJntSphElementsInit,
};
diff --git a/src/overlays/actors/ovl_Boss_Ganon/z_boss_ganon.c b/src/overlays/actors/ovl_Boss_Ganon/z_boss_ganon.c
index c9e41de7d7..2e9f2cf6ab 100644
--- a/src/overlays/actors/ovl_Boss_Ganon/z_boss_ganon.c
+++ b/src/overlays/actors/ovl_Boss_Ganon/z_boss_ganon.c
@@ -93,8 +93,8 @@ static ColliderCylinderInit sDorfCylinderInit = {
},
{
ELEM_MATERIAL_UNK0,
- { 0xFFCFFFFF, 0x00, 0x10 },
- { 0xFFCFFFFE, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x10 },
+ { 0xFFCFFFFE, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON | ACELEM_HOOKABLE,
OCELEM_ON,
@@ -113,8 +113,8 @@ static ColliderCylinderInit sLightBallCylinderInit = {
},
{
ELEM_MATERIAL_UNK6,
- { 0x00100700, 0x00, 0x08 },
- { 0x0D900740, 0x00, 0x00 },
+ { 0x00100700, HIT_SPECIAL_EFFECT_NONE, 0x08 },
+ { 0x0D900740, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
@@ -3971,9 +3971,7 @@ void BossGanon_LightBall_Update(Actor* thisx, PlayState* play2) {
if ((hitWithBottle == false) && (acHitElem->atDmgInfo.dmgFlags & DMG_SHIELD)) {
spBA = 2;
- Audio_PlaySfxGeneral(NA_SE_IT_SHIELD_REFLECT_MG, &player->actor.projectedPos, 4,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&player->actor.projectedPos, NA_SE_IT_SHIELD_REFLECT_MG);
Rumble_Request(this->actor.xyzDistToPlayerSq, 255, 20, 150);
} else {
spBA = 1;
@@ -3982,9 +3980,7 @@ void BossGanon_LightBall_Update(Actor* thisx, PlayState* play2) {
Math_Atan2S(sqrtf(SQ(xDistFromGanondorf) + SQ(zDistFromGanondorf)), yDistFromGanondorf);
this->unk_1A4++;
this->timers[1] = 2;
- Audio_PlaySfxGeneral(NA_SE_IT_SWORD_REFLECT_MG, &player->actor.projectedPos, 4,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&player->actor.projectedPos, NA_SE_IT_SWORD_REFLECT_MG);
Rumble_Request(this->actor.xyzDistToPlayerSq, 180, 20, 100);
if (hitWithBottle == false) {
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..1cc37837f0 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,10 +29,10 @@
#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"
+#pragma increment_block_number "gc-eu:128 gc-eu-mq:128 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 | \
@@ -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,
@@ -97,8 +111,8 @@ static ColliderJntSphElementInit sJntSphElementsInit1[] = {
{
{
ELEM_MATERIAL_UNK0,
- { 0xFFCFFFFF, 0x00, 0x10 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x10 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
@@ -108,8 +122,8 @@ static ColliderJntSphElementInit sJntSphElementsInit1[] = {
{
{
ELEM_MATERIAL_UNK0,
- { 0xFFCFFFFF, 0x00, 0x10 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x10 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
@@ -119,8 +133,8 @@ static ColliderJntSphElementInit sJntSphElementsInit1[] = {
{
{
ELEM_MATERIAL_UNK0,
- { 0xFFCFFFFF, 0x00, 0x10 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x10 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
@@ -130,8 +144,8 @@ static ColliderJntSphElementInit sJntSphElementsInit1[] = {
{
{
ELEM_MATERIAL_UNK0,
- { 0xFFCFFFFF, 0x00, 0x10 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x10 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
@@ -141,8 +155,8 @@ static ColliderJntSphElementInit sJntSphElementsInit1[] = {
{
{
ELEM_MATERIAL_UNK0,
- { 0xFFCFFFFF, 0x00, 0x10 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x10 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
@@ -152,8 +166,8 @@ static ColliderJntSphElementInit sJntSphElementsInit1[] = {
{
{
ELEM_MATERIAL_UNK0,
- { 0xFFCFFFFF, 0x00, 0x10 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x10 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
@@ -163,8 +177,8 @@ static ColliderJntSphElementInit sJntSphElementsInit1[] = {
{
{
ELEM_MATERIAL_UNK0,
- { 0xFFCFFFFF, 0x00, 0x10 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x10 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
@@ -174,8 +188,8 @@ static ColliderJntSphElementInit sJntSphElementsInit1[] = {
{
{
ELEM_MATERIAL_UNK0,
- { 0xFFCFFFFF, 0x00, 0x10 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x10 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
@@ -185,8 +199,8 @@ static ColliderJntSphElementInit sJntSphElementsInit1[] = {
{
{
ELEM_MATERIAL_UNK0,
- { 0xFFCFFFFF, 0x00, 0x10 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x10 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
@@ -196,8 +210,8 @@ static ColliderJntSphElementInit sJntSphElementsInit1[] = {
{
{
ELEM_MATERIAL_UNK0,
- { 0xFFCFFFFF, 0x00, 0x10 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x10 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
@@ -207,8 +221,8 @@ static ColliderJntSphElementInit sJntSphElementsInit1[] = {
{
{
ELEM_MATERIAL_UNK0,
- { 0xFFCFFFFF, 0x00, 0x10 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x10 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
@@ -218,8 +232,8 @@ static ColliderJntSphElementInit sJntSphElementsInit1[] = {
{
{
ELEM_MATERIAL_UNK0,
- { 0xFFCFFFFF, 0x00, 0x10 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x10 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
@@ -229,8 +243,8 @@ static ColliderJntSphElementInit sJntSphElementsInit1[] = {
{
{
ELEM_MATERIAL_UNK0,
- { 0xFFCFFFFF, 0x00, 0x10 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x10 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
@@ -240,8 +254,8 @@ static ColliderJntSphElementInit sJntSphElementsInit1[] = {
{
{
ELEM_MATERIAL_UNK0,
- { 0xFFCFFFFF, 0x00, 0x10 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x10 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
@@ -251,8 +265,8 @@ static ColliderJntSphElementInit sJntSphElementsInit1[] = {
{
{
ELEM_MATERIAL_UNK0,
- { 0xFFCFFFFF, 0x00, 0x10 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x10 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
@@ -262,8 +276,8 @@ static ColliderJntSphElementInit sJntSphElementsInit1[] = {
{
{
ELEM_MATERIAL_UNK0,
- { 0xFFCFFFFF, 0x00, 0x00 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
@@ -289,8 +303,8 @@ static ColliderJntSphElementInit sJntSphElementsInit2[] = {
{
{
ELEM_MATERIAL_UNK2,
- { 0xFFCFFFFF, 0x00, 0x40 },
- { 0xFFDFFFFF, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x40 },
+ { 0xFFDFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
@@ -300,8 +314,8 @@ static ColliderJntSphElementInit sJntSphElementsInit2[] = {
{
{
ELEM_MATERIAL_UNK2,
- { 0xFFCFFFFF, 0x00, 0x40 },
- { 0xFFDFFFFF, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x40 },
+ { 0xFFDFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
@@ -2130,7 +2144,7 @@ void func_8090120C(BossGanon2* this, PlayState* play) {
FALLTHROUGH;
case 20:
play->nextEntranceIndex = ENTR_CHAMBER_OF_THE_SAGES_0;
- gSaveContext.nextCutsceneIndex = 0xFFF2;
+ gSaveContext.nextCutsceneIndex = CS_INDEX_2;
play->transitionTrigger = TRANS_TRIGGER_START;
play->transitionType = TRANS_TYPE_FADE_WHITE;
play->linkAgeOnLoad = LINK_AGE_CHILD;
@@ -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_Boss_Ganondrof/z_boss_ganondrof.c b/src/overlays/actors/ovl_Boss_Ganondrof/z_boss_ganondrof.c
index 09f84081de..6a7c63663e 100644
--- a/src/overlays/actors/ovl_Boss_Ganondrof/z_boss_ganondrof.c
+++ b/src/overlays/actors/ovl_Boss_Ganondrof/z_boss_ganondrof.c
@@ -115,8 +115,8 @@ static ColliderCylinderInit sCylinderInitBody = {
},
{
ELEM_MATERIAL_UNK0,
- { 0xFFCFFFFF, 0x00, 0x10 },
- { 0xFFCFFFFE, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x10 },
+ { 0xFFCFFFFE, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON | ACELEM_HOOKABLE,
OCELEM_ON,
@@ -135,8 +135,8 @@ static ColliderCylinderInit sCylinderInitSpear = {
},
{
ELEM_MATERIAL_UNK0,
- { 0xFFCFFFFF, 0x00, 0x30 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x30 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
diff --git a/src/overlays/actors/ovl_Boss_Goma/z_boss_goma.c b/src/overlays/actors/ovl_Boss_Goma/z_boss_goma.c
index 0d83b2b4a3..85a2a8502c 100644
--- a/src/overlays/actors/ovl_Boss_Goma/z_boss_goma.c
+++ b/src/overlays/actors/ovl_Boss_Goma/z_boss_goma.c
@@ -92,12 +92,12 @@ ActorProfile Boss_Goma_Profile = {
/**/ BossGoma_Draw,
};
-static ColliderJntSphElementInit sColliderJntSphElementsInit[13] = {
+static ColliderJntSphElementInit sColliderJntSphElementsInit[] = {
{
{
ELEM_MATERIAL_UNK3,
- { 0xFFCFFFFF, 0x00, 0x08 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x08 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
@@ -107,8 +107,8 @@ static ColliderJntSphElementInit sColliderJntSphElementsInit[13] = {
{
{
ELEM_MATERIAL_UNK2,
- { 0xFFCFFFFF, 0x00, 0x08 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x08 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
@@ -118,8 +118,8 @@ static ColliderJntSphElementInit sColliderJntSphElementsInit[13] = {
{
{
ELEM_MATERIAL_UNK2,
- { 0xFFCFFFFF, 0x00, 0x08 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x08 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
@@ -129,8 +129,8 @@ static ColliderJntSphElementInit sColliderJntSphElementsInit[13] = {
{
{
ELEM_MATERIAL_UNK2,
- { 0xFFCFFFFF, 0x00, 0x08 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x08 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
@@ -140,8 +140,8 @@ static ColliderJntSphElementInit sColliderJntSphElementsInit[13] = {
{
{
ELEM_MATERIAL_UNK2,
- { 0xFFCFFFFF, 0x00, 0x08 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x08 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
@@ -151,8 +151,8 @@ static ColliderJntSphElementInit sColliderJntSphElementsInit[13] = {
{
{
ELEM_MATERIAL_UNK2,
- { 0xFFCFFFFF, 0x00, 0x08 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x08 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
@@ -162,8 +162,8 @@ static ColliderJntSphElementInit sColliderJntSphElementsInit[13] = {
{
{
ELEM_MATERIAL_UNK2,
- { 0xFFCFFFFF, 0x00, 0x08 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x08 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
@@ -173,8 +173,8 @@ static ColliderJntSphElementInit sColliderJntSphElementsInit[13] = {
{
{
ELEM_MATERIAL_UNK2,
- { 0xFFCFFFFF, 0x00, 0x08 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x08 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
@@ -184,8 +184,8 @@ static ColliderJntSphElementInit sColliderJntSphElementsInit[13] = {
{
{
ELEM_MATERIAL_UNK2,
- { 0xFFCFFFFF, 0x00, 0x08 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x08 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
@@ -195,8 +195,8 @@ static ColliderJntSphElementInit sColliderJntSphElementsInit[13] = {
{
{
ELEM_MATERIAL_UNK2,
- { 0xFFCFFFFF, 0x00, 0x08 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x08 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
@@ -206,8 +206,8 @@ static ColliderJntSphElementInit sColliderJntSphElementsInit[13] = {
{
{
ELEM_MATERIAL_UNK2,
- { 0xFFCFFFFF, 0x00, 0x08 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x08 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
@@ -217,8 +217,8 @@ static ColliderJntSphElementInit sColliderJntSphElementsInit[13] = {
{
{
ELEM_MATERIAL_UNK2,
- { 0xFFCFFFFF, 0x00, 0x08 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x08 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
@@ -228,8 +228,8 @@ static ColliderJntSphElementInit sColliderJntSphElementsInit[13] = {
{
{
ELEM_MATERIAL_UNK2,
- { 0xFFCFFFFF, 0x00, 0x08 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x08 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
@@ -247,7 +247,7 @@ static ColliderJntSphInit sColliderJntSphInit = {
OC2_TYPE_1,
COLSHAPE_JNTSPH,
},
- 13,
+ ARRAY_COUNT(sColliderJntSphElementsInit),
sColliderJntSphElementsInit,
};
diff --git a/src/overlays/actors/ovl_Boss_Mo/z_boss_mo.c b/src/overlays/actors/ovl_Boss_Mo/z_boss_mo.c
index 4a1b0acbba..ec5ee705bf 100644
--- a/src/overlays/actors/ovl_Boss_Mo/z_boss_mo.c
+++ b/src/overlays/actors/ovl_Boss_Mo/z_boss_mo.c
@@ -39,7 +39,7 @@
#include "assets/objects/object_mo/object_mo.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" \
- "pal-1.0:128 pal-1.1: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 | \
@@ -745,9 +745,7 @@ void BossMo_Tentacle(BossMo* this, PlayState* play) {
player->actor.parent = &this->actor;
this->work[MO_TENT_ACTION_STATE] = MO_TENT_GRAB;
Sfx_PlaySfxAtPos(&this->tentTipPos, NA_SE_EN_MOFER_CATCH);
- Audio_PlaySfxGeneral(NA_SE_VO_LI_DAMAGE_S, &player->actor.projectedPos, 4,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&player->actor.projectedPos, NA_SE_VO_LI_DAMAGE_S);
} else {
this->work[MO_TENT_ACTION_STATE] = MO_TENT_READY;
this->tentMaxAngle = .001f;
diff --git a/src/overlays/actors/ovl_Boss_Mo/z_boss_mo_colchk.inc.c b/src/overlays/actors/ovl_Boss_Mo/z_boss_mo_colchk.inc.c
index 8063245fa3..6a9474e361 100644
--- a/src/overlays/actors/ovl_Boss_Mo/z_boss_mo_colchk.inc.c
+++ b/src/overlays/actors/ovl_Boss_Mo/z_boss_mo_colchk.inc.c
@@ -1,11 +1,11 @@
#include "collision_check.h"
-static ColliderJntSphElementInit sJntSphElementsInit[19] = {
+static ColliderJntSphElementInit sJntSphElementsInit[] = {
{
{
ELEM_MATERIAL_UNK4,
- { 0xFFCFFFFF, 0x00, 0x10 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x10 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
@@ -15,8 +15,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[19] = {
{
{
ELEM_MATERIAL_UNK4,
- { 0xFFCFFFFF, 0x00, 0x10 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x10 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
@@ -26,8 +26,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[19] = {
{
{
ELEM_MATERIAL_UNK4,
- { 0xFFCFFFFF, 0x00, 0x10 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x10 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
@@ -37,8 +37,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[19] = {
{
{
ELEM_MATERIAL_UNK4,
- { 0xFFCFFFFF, 0x00, 0x10 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x10 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
@@ -48,8 +48,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[19] = {
{
{
ELEM_MATERIAL_UNK4,
- { 0xFFCFFFFF, 0x00, 0x10 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x10 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
@@ -59,8 +59,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[19] = {
{
{
ELEM_MATERIAL_UNK4,
- { 0xFFCFFFFF, 0x00, 0x10 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x10 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
@@ -70,8 +70,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[19] = {
{
{
ELEM_MATERIAL_UNK4,
- { 0xFFCFFFFF, 0x00, 0x10 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x10 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
@@ -81,8 +81,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[19] = {
{
{
ELEM_MATERIAL_UNK4,
- { 0xFFCFFFFF, 0x00, 0x10 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x10 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
@@ -92,8 +92,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[19] = {
{
{
ELEM_MATERIAL_UNK4,
- { 0xFFCFFFFF, 0x00, 0x10 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x10 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
@@ -103,8 +103,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[19] = {
{
{
ELEM_MATERIAL_UNK4,
- { 0xFFCFFFFF, 0x00, 0x10 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x10 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
@@ -114,8 +114,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[19] = {
{
{
ELEM_MATERIAL_UNK4,
- { 0xFFCFFFFF, 0x00, 0x10 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x10 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
@@ -125,8 +125,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[19] = {
{
{
ELEM_MATERIAL_UNK4,
- { 0xFFCFFFFF, 0x00, 0x10 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x10 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
@@ -136,8 +136,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[19] = {
{
{
ELEM_MATERIAL_UNK4,
- { 0xFFCFFFFF, 0x00, 0x10 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x10 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
@@ -147,8 +147,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[19] = {
{
{
ELEM_MATERIAL_UNK4,
- { 0xFFCFFFFF, 0x00, 0x10 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x10 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
@@ -158,8 +158,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[19] = {
{
{
ELEM_MATERIAL_UNK4,
- { 0xFFCFFFFF, 0x00, 0x10 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x10 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
@@ -169,8 +169,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[19] = {
{
{
ELEM_MATERIAL_UNK4,
- { 0xFFCFFFFF, 0x00, 0x10 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x10 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
@@ -180,8 +180,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[19] = {
{
{
ELEM_MATERIAL_UNK4,
- { 0xFFCFFFFF, 0x00, 0x10 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x10 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
@@ -191,8 +191,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[19] = {
{
{
ELEM_MATERIAL_UNK4,
- { 0xFFCFFFFF, 0x00, 0x10 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x10 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
@@ -202,8 +202,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[19] = {
{
{
ELEM_MATERIAL_UNK4,
- { 0xFFCFFFFF, 0x00, 0x10 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x10 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
@@ -221,7 +221,7 @@ static ColliderJntSphInit sJntSphInit = {
OC2_TYPE_1,
COLSHAPE_JNTSPH,
},
- 19,
+ ARRAY_COUNT(sJntSphElementsInit),
sJntSphElementsInit,
};
@@ -236,8 +236,8 @@ static ColliderCylinderInit sCylinderInit = {
},
{
ELEM_MATERIAL_UNK0,
- { 0xFFCFFFFF, 0x00, 0x10 },
- { 0xFFDFFFFF, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x10 },
+ { 0xFFDFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON | ACELEM_HOOKABLE,
OCELEM_ON,
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_Boss_Sst/z_boss_sst_colchk.inc.c b/src/overlays/actors/ovl_Boss_Sst/z_boss_sst_colchk.inc.c
index cb0e5012c1..275218c1ac 100644
--- a/src/overlays/actors/ovl_Boss_Sst/z_boss_sst_colchk.inc.c
+++ b/src/overlays/actors/ovl_Boss_Sst/z_boss_sst_colchk.inc.c
@@ -1,11 +1,12 @@
+#include "array_count.h"
#include "collision_check.h"
-static ColliderJntSphElementInit sJntSphElementsInitHand[11] = {
+static ColliderJntSphElementInit sJntSphElementsInitHand[] = {
{
{
ELEM_MATERIAL_UNK1,
- { 0x20000000, 0x00, 0x00 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0x20000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
@@ -15,8 +16,8 @@ static ColliderJntSphElementInit sJntSphElementsInitHand[11] = {
{
{
ELEM_MATERIAL_UNK1,
- { 0x20000000, 0x00, 0x00 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0x20000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
@@ -26,8 +27,8 @@ static ColliderJntSphElementInit sJntSphElementsInitHand[11] = {
{
{
ELEM_MATERIAL_UNK1,
- { 0x20000000, 0x00, 0x00 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0x20000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
@@ -37,8 +38,8 @@ static ColliderJntSphElementInit sJntSphElementsInitHand[11] = {
{
{
ELEM_MATERIAL_UNK1,
- { 0x20000000, 0x00, 0x00 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0x20000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
@@ -48,8 +49,8 @@ static ColliderJntSphElementInit sJntSphElementsInitHand[11] = {
{
{
ELEM_MATERIAL_UNK1,
- { 0x20000000, 0x00, 0x00 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0x20000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
@@ -59,8 +60,8 @@ static ColliderJntSphElementInit sJntSphElementsInitHand[11] = {
{
{
ELEM_MATERIAL_UNK1,
- { 0x20000000, 0x00, 0x00 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0x20000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
@@ -70,8 +71,8 @@ static ColliderJntSphElementInit sJntSphElementsInitHand[11] = {
{
{
ELEM_MATERIAL_UNK1,
- { 0x20000000, 0x00, 0x00 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0x20000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
@@ -81,8 +82,8 @@ static ColliderJntSphElementInit sJntSphElementsInitHand[11] = {
{
{
ELEM_MATERIAL_UNK1,
- { 0x20000000, 0x00, 0x00 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0x20000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
@@ -92,8 +93,8 @@ static ColliderJntSphElementInit sJntSphElementsInitHand[11] = {
{
{
ELEM_MATERIAL_UNK1,
- { 0x20000000, 0x00, 0x00 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0x20000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
@@ -103,8 +104,8 @@ static ColliderJntSphElementInit sJntSphElementsInitHand[11] = {
{
{
ELEM_MATERIAL_UNK1,
- { 0x20000000, 0x00, 0x00 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0x20000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
@@ -114,8 +115,8 @@ static ColliderJntSphElementInit sJntSphElementsInitHand[11] = {
{
{
ELEM_MATERIAL_UNK1,
- { 0x20000000, 0x00, 0x00 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0x20000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
@@ -133,16 +134,16 @@ static ColliderJntSphInit sJntSphInitHand = {
OC2_TYPE_1,
COLSHAPE_JNTSPH,
},
- 11,
+ ARRAY_COUNT(sJntSphElementsInitHand),
sJntSphElementsInitHand,
};
-static ColliderJntSphElementInit sJntSphElementsInitHead[11] = {
+static ColliderJntSphElementInit sJntSphElementsInitHead[] = {
{
{
ELEM_MATERIAL_UNK1,
- { 0x20000000, 0x00, 0x30 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0x20000000, HIT_SPECIAL_EFFECT_NONE, 0x30 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
@@ -152,8 +153,8 @@ static ColliderJntSphElementInit sJntSphElementsInitHead[11] = {
{
{
ELEM_MATERIAL_UNK1,
- { 0x20000000, 0x00, 0x30 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0x20000000, HIT_SPECIAL_EFFECT_NONE, 0x30 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
@@ -163,8 +164,8 @@ static ColliderJntSphElementInit sJntSphElementsInitHead[11] = {
{
{
ELEM_MATERIAL_UNK1,
- { 0x20000000, 0x00, 0x30 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0x20000000, HIT_SPECIAL_EFFECT_NONE, 0x30 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
@@ -174,8 +175,8 @@ static ColliderJntSphElementInit sJntSphElementsInitHead[11] = {
{
{
ELEM_MATERIAL_UNK1,
- { 0x20000000, 0x00, 0x30 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0x20000000, HIT_SPECIAL_EFFECT_NONE, 0x30 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
@@ -185,8 +186,8 @@ static ColliderJntSphElementInit sJntSphElementsInitHead[11] = {
{
{
ELEM_MATERIAL_UNK1,
- { 0x20000000, 0x00, 0x30 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0x20000000, HIT_SPECIAL_EFFECT_NONE, 0x30 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
@@ -196,8 +197,8 @@ static ColliderJntSphElementInit sJntSphElementsInitHead[11] = {
{
{
ELEM_MATERIAL_UNK1,
- { 0x20000000, 0x00, 0x30 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0x20000000, HIT_SPECIAL_EFFECT_NONE, 0x30 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
@@ -207,8 +208,8 @@ static ColliderJntSphElementInit sJntSphElementsInitHead[11] = {
{
{
ELEM_MATERIAL_UNK1,
- { 0x20000000, 0x00, 0x30 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0x20000000, HIT_SPECIAL_EFFECT_NONE, 0x30 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
@@ -218,8 +219,8 @@ static ColliderJntSphElementInit sJntSphElementsInitHead[11] = {
{
{
ELEM_MATERIAL_UNK1,
- { 0x20000000, 0x00, 0x30 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0x20000000, HIT_SPECIAL_EFFECT_NONE, 0x30 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
@@ -229,8 +230,8 @@ static ColliderJntSphElementInit sJntSphElementsInitHead[11] = {
{
{
ELEM_MATERIAL_UNK1,
- { 0x20000000, 0x00, 0x30 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0x20000000, HIT_SPECIAL_EFFECT_NONE, 0x30 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
@@ -240,8 +241,8 @@ static ColliderJntSphElementInit sJntSphElementsInitHead[11] = {
{
{
ELEM_MATERIAL_UNK1,
- { 0x20000000, 0x00, 0x30 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0x20000000, HIT_SPECIAL_EFFECT_NONE, 0x30 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
@@ -251,8 +252,8 @@ static ColliderJntSphElementInit sJntSphElementsInitHead[11] = {
{
{
ELEM_MATERIAL_UNK1,
- { 0x20000000, 0x00, 0x30 },
- { 0x00000080, 0x00, 0x00 },
+ { 0x20000000, HIT_SPECIAL_EFFECT_NONE, 0x30 },
+ { 0x00000080, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_NONE,
OCELEM_ON,
@@ -270,7 +271,7 @@ static ColliderJntSphInit sJntSphInitHead = {
OC2_TYPE_1,
COLSHAPE_JNTSPH,
},
- 11,
+ ARRAY_COUNT(sJntSphElementsInitHead),
sJntSphElementsInitHead,
};
@@ -285,8 +286,8 @@ static ColliderCylinderInit sCylinderInitHead = {
},
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON,
OCELEM_NONE,
@@ -305,8 +306,8 @@ static ColliderCylinderInit sCylinderInitHand = {
},
{
ELEM_MATERIAL_UNK0,
- { 0x20000000, 0x04, 0x10 },
- { 0x00000000, 0x00, 0x00 },
+ { 0x20000000, HIT_SPECIAL_EFFECT_KNOCKBACK, 0x10 },
+ { 0x00000000, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NONE,
ACELEM_NONE,
OCELEM_NONE,
diff --git a/src/overlays/actors/ovl_Boss_Tw/z_boss_tw.c b/src/overlays/actors/ovl_Boss_Tw/z_boss_tw.c
index 79eb682a76..49427c2096 100644
--- a/src/overlays/actors/ovl_Boss_Tw/z_boss_tw.c
+++ b/src/overlays/actors/ovl_Boss_Tw/z_boss_tw.c
@@ -27,7 +27,7 @@
#include "assets/objects/object_tw/object_tw.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:0 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 | \
@@ -170,8 +170,8 @@ static ColliderCylinderInit sCylinderInitBlasts = {
},
{
ELEM_MATERIAL_UNK0,
- { 0xFFCFFFFF, 0x00, 0x30 },
- { 0x00100000, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x30 },
+ { 0x00100000, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
@@ -190,8 +190,8 @@ static ColliderCylinderInit sCylinderInitKoumeKotake = {
},
{
ELEM_MATERIAL_UNK0,
- { 0xFFCFFFFF, 0x00, 0x20 },
- { 0xFFCDFFFE, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x20 },
+ { 0xFFCDFFFE, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
@@ -210,8 +210,8 @@ static ColliderCylinderInit sCylinderInitTwinrova = {
},
{
ELEM_MATERIAL_UNK0,
- { 0xFFCFFFFF, 0x00, 0x20 },
- { 0xFFCDFFFE, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x20 },
+ { 0xFFCDFFFE, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON | ACELEM_HOOKABLE,
OCELEM_ON,
@@ -492,7 +492,7 @@ void BossTw_Init(Actor* thisx, PlayState* play2) {
if (this->actor.params == TW_FIRE_BLAST || this->actor.params == TW_FIRE_BLAST_GROUND) {
this->actionFunc = BossTw_BlastFire;
- this->collider.elem.atDmgInfo.effect = 1;
+ this->collider.elem.atDmgInfo.hitSpecialEffect = HIT_SPECIAL_EFFECT_FIRE;
} else if (this->actor.params == TW_ICE_BLAST || this->actor.params == TW_ICE_BLAST_GROUND) {
this->actionFunc = BossTw_BlastIce;
} else if (this->actor.params >= TW_DEATHBALL_KOTAKE) {
@@ -1162,11 +1162,9 @@ void BossTw_ShootBeam(BossTw* this, PlayState* play) {
&this->actor.projectedW);
if (this->actor.params == TW_KOUME) {
- Audio_PlaySfxGeneral(NA_SE_EN_TWINROBA_SHOOT_FIRE - SFX_FLAG, &this->unk_54C, 4,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&this->unk_54C, NA_SE_EN_TWINROBA_SHOOT_FIRE - SFX_FLAG);
} else {
- Audio_PlaySfxGeneral(NA_SE_EN_TWINROBA_SHOOT_FREEZE - SFX_FLAG, &this->unk_54C, 4,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&this->unk_54C, NA_SE_EN_TWINROBA_SHOOT_FREEZE - SFX_FLAG);
}
break;
@@ -1192,15 +1190,11 @@ void BossTw_ShootBeam(BossTw* this, PlayState* play) {
&this->actor.projectedW);
if (this->actor.params == TW_KOUME) {
- Audio_PlaySfxGeneral(NA_SE_EN_TWINROBA_SHOOT_FIRE - SFX_FLAG, &this->unk_558, 4U,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
- Audio_PlaySfxGeneral(NA_SE_EN_TWINROBA_REFL_FIRE - SFX_FLAG, &this->unk_558, 4,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&this->unk_558, NA_SE_EN_TWINROBA_SHOOT_FIRE - SFX_FLAG);
+ SFX_PLAY_AT_POS(&this->unk_558, NA_SE_EN_TWINROBA_REFL_FIRE - SFX_FLAG);
} else {
- Audio_PlaySfxGeneral(NA_SE_EN_TWINROBA_SHOOT_FREEZE - SFX_FLAG, &this->unk_558, 4,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
- Audio_PlaySfxGeneral(NA_SE_EN_TWINROBA_REFL_FREEZE - SFX_FLAG, &this->unk_558, 4,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&this->unk_558, NA_SE_EN_TWINROBA_SHOOT_FREEZE - SFX_FLAG);
+ SFX_PLAY_AT_POS(&this->unk_558, NA_SE_EN_TWINROBA_REFL_FREEZE - SFX_FLAG);
}
break;
}
diff --git a/src/overlays/actors/ovl_Boss_Va/z_boss_va.c b/src/overlays/actors/ovl_Boss_Va/z_boss_va.c
index 7cbbff4c3e..afd2b6e50a 100644
--- a/src/overlays/actors/ovl_Boss_Va/z_boss_va.c
+++ b/src/overlays/actors/ovl_Boss_Va/z_boss_va.c
@@ -236,8 +236,8 @@ static ColliderCylinderInit sCylinderInit = {
},
{
ELEM_MATERIAL_UNK0,
- { 0xFFCFFFEF, 0x03, 0x08 },
- { 0x00000010, 0x00, 0x00 },
+ { 0xFFCFFFEF, HIT_SPECIAL_EFFECT_ELECTRIC, 0x08 },
+ { 0x00000010, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
@@ -245,12 +245,12 @@ static ColliderCylinderInit sCylinderInit = {
{ 85, 120, 0, { 0, 0, 0 } },
};
-static ColliderJntSphElementInit sJntSphElementsInitSupport[1] = {
+static ColliderJntSphElementInit sJntSphElementsInitSupport[] = {
{
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0x00000010, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0x00000010, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON,
OCELEM_NONE,
@@ -272,12 +272,12 @@ static ColliderJntSphInit sJntSphInitSupport = {
sJntSphElementsInitSupport,
};
-static ColliderJntSphElementInit sJntSphElementsInitBari[1] = {
+static ColliderJntSphElementInit sJntSphElementsInitBari[] = {
{
{
ELEM_MATERIAL_UNK0,
- { 0xFFCFFFFF, 0x03, 0x04 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_ELECTRIC, 0x04 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_NONE,
@@ -310,8 +310,8 @@ static ColliderQuadInit sQuadInit = {
},
{
ELEM_MATERIAL_UNK0,
- { 0x20000000, 0x03, 0x04 },
- { 0x00000010, 0x00, 0x00 },
+ { 0x20000000, HIT_SPECIAL_EFFECT_ELECTRIC, 0x04 },
+ { 0x00000010, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL | ATELEM_UNK7,
ACELEM_ON,
OCELEM_NONE,
@@ -3897,8 +3897,7 @@ void BossVa_SpawnTumor(PlayState* play, BossVaEffect* effect, BossVa* this, Vec3
effect->scale = 0.0f;
if (((i % 4) == 0) || (mode == 2)) {
- Audio_PlaySfxGeneral(NA_SE_EN_BALINADE_BREAK, &effect->pos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&effect->pos, NA_SE_EN_BALINADE_BREAK);
}
break;
}
diff --git a/src/overlays/actors/ovl_Demo_Du/z_demo_du.c b/src/overlays/actors/ovl_Demo_Du/z_demo_du.c
index 4bd2cf54e3..f3d3c9c48f 100644
--- a/src/overlays/actors/ovl_Demo_Du/z_demo_du.c
+++ b/src/overlays/actors/ovl_Demo_Du/z_demo_du.c
@@ -338,8 +338,7 @@ void DemoDu_CsPlaySfx_DaruniaHitsLink(PlayState* play) {
s32 pad;
Sfx_PlaySfxAtPos(&player->actor.projectedPos, NA_SE_EN_DARUNIA_HIT_LINK);
- Audio_PlaySfxGeneral(NA_SE_VO_LI_DAMAGE_S_KID, &player->actor.projectedPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&player->actor.projectedPos, NA_SE_VO_LI_DAMAGE_S_KID);
}
// Cutscene: Darunia gives Link the Goron's Ruby.
@@ -353,8 +352,7 @@ void DemoDu_CsPlaySfx_LinkEscapeFromGorons(PlayState* play) {
if (play->csCtx.curFrame == 1400) {
Player* player = GET_PLAYER(play);
- Audio_PlaySfxGeneral(NA_SE_VO_LI_FALL_L_KID, &player->actor.projectedPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&player->actor.projectedPos, NA_SE_VO_LI_FALL_L_KID);
}
}
@@ -364,8 +362,7 @@ void DemoDu_CsPlaySfx_LinkSurprised(PlayState* play) {
if (play->csCtx.curFrame == 174) {
Player* player = GET_PLAYER(play);
- Audio_PlaySfxGeneral(NA_SE_VO_LI_SURPRISE_KID, &player->actor.projectedPos, 4U, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&player->actor.projectedPos, NA_SE_VO_LI_SURPRISE_KID);
}
}
diff --git a/src/overlays/actors/ovl_Demo_Ext/z_demo_ext.c b/src/overlays/actors/ovl_Demo_Ext/z_demo_ext.c
index e4a944a0a2..1837fc7671 100644
--- a/src/overlays/actors/ovl_Demo_Ext/z_demo_ext.c
+++ b/src/overlays/actors/ovl_Demo_Ext/z_demo_ext.c
@@ -56,8 +56,7 @@ void DemoExt_Init(Actor* thisx, PlayState* play) {
void DemoExt_PlayVortexSFX(DemoExt* this) {
if (this->alphaTimer <= (kREG(35) + 40.0f) - 15.0f) {
- Audio_PlaySfxGeneral(NA_SE_EV_FANTOM_WARP_L - SFX_FLAG, &this->actor.projectedPos, 4,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&this->actor.projectedPos, NA_SE_EV_FANTOM_WARP_L - SFX_FLAG);
}
}
diff --git a/src/overlays/actors/ovl_Demo_Gj/z_demo_gj.c b/src/overlays/actors/ovl_Demo_Gj/z_demo_gj.c
index 03d2fdbf89..cdcfca0182 100644
--- a/src/overlays/actors/ovl_Demo_Gj/z_demo_gj.c
+++ b/src/overlays/actors/ovl_Demo_Gj/z_demo_gj.c
@@ -45,8 +45,8 @@ static ColliderCylinderInitType1 sCylinderInit1 = {
},
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0x00000008, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0x00000008, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON,
OCELEM_NONE,
@@ -64,8 +64,8 @@ static ColliderCylinderInitType1 sCylinderInit2 = {
},
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0x00000008, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0x00000008, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON,
OCELEM_NONE,
@@ -83,8 +83,8 @@ static ColliderCylinderInitType1 sCylinderInit3 = {
},
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0x00000008, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0x00000008, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON,
OCELEM_NONE,
diff --git a/src/overlays/actors/ovl_Demo_Ik/z_demo_ik.c b/src/overlays/actors/ovl_Demo_Ik/z_demo_ik.c
index ef3da8a40d..b172a29d3d 100644
--- a/src/overlays/actors/ovl_Demo_Ik/z_demo_ik.c
+++ b/src/overlays/actors/ovl_Demo_Ik/z_demo_ik.c
@@ -104,20 +104,17 @@ void DemoIk_Type1PlaySfx(DemoIk* this) {
switch (this->actor.params) {
case 0:
if (Animation_OnFrame(&this->skelAnime, 5.0f)) {
- Audio_PlaySfxGeneral(NA_SE_EN_IRONNACK_ARMOR_LAND1_DEMO, &this->actor.projectedPos, 4,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&this->actor.projectedPos, NA_SE_EN_IRONNACK_ARMOR_LAND1_DEMO);
}
break;
case 1:
if (Animation_OnFrame(&this->skelAnime, 10.0f)) {
- Audio_PlaySfxGeneral(NA_SE_EN_IRONNACK_ARMOR_LAND3_DEMO, &this->actor.projectedPos, 4,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&this->actor.projectedPos, NA_SE_EN_IRONNACK_ARMOR_LAND3_DEMO);
}
break;
case 2:
if (Animation_OnFrame(&this->skelAnime, 9.0f)) {
- Audio_PlaySfxGeneral(NA_SE_EN_IRONNACK_ARMOR_LAND2_DEMO, &this->actor.projectedPos, 4,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&this->actor.projectedPos, NA_SE_EN_IRONNACK_ARMOR_LAND2_DEMO);
}
break;
}
@@ -337,8 +334,7 @@ void DemoIk_Type2Init(DemoIk* this, PlayState* play) {
void DemoIk_Type2PlaySfxOnFrame(DemoIk* this, f32 frame) {
if (Animation_OnFrame(&this->skelAnime, frame)) {
- Audio_PlaySfxGeneral(NA_SE_EN_IRONNACK_ARMOR_OFF_DEMO, &this->actor.projectedPos, 4,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&this->actor.projectedPos, NA_SE_EN_IRONNACK_ARMOR_OFF_DEMO);
}
}
diff --git a/src/overlays/actors/ovl_Demo_Im/z_demo_im.c b/src/overlays/actors/ovl_Demo_Im/z_demo_im.c
index 81667318e8..1c53402a6b 100644
--- a/src/overlays/actors/ovl_Demo_Im/z_demo_im.c
+++ b/src/overlays/actors/ovl_Demo_Im/z_demo_im.c
@@ -84,7 +84,14 @@ static ColliderCylinderInitType1 sCylinderInit = {
OC1_ON | OC1_TYPE_PLAYER,
COLSHAPE_CYLINDER,
},
- { 0x00, { 0x00000000, 0x00, 0x00 }, { 0x00000000, 0x00, 0x00 }, 0x00, 0x00, 0x01 },
+ {
+ ELEM_MATERIAL_UNK0,
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0x00000000, HIT_BACKLASH_NONE, 0x00 },
+ ATELEM_NONE,
+ ACELEM_NONE,
+ OCELEM_ON,
+ },
{ 25, 80, 0, { 0, 0, 0 } },
};
@@ -746,8 +753,7 @@ void func_80986570(DemoIm* this, PlayState* play) {
u32 sfxId = NA_SE_PL_WALK_GROUND;
sfxId += SurfaceType_GetSfxOffset(&play->colCtx, this->actor.floorPoly, this->actor.floorBgId);
- Audio_PlaySfxGeneral(sfxId, &this->actor.projectedPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&this->actor.projectedPos, sfxId);
}
}
diff --git a/src/overlays/actors/ovl_Demo_Im/z_demo_im.h b/src/overlays/actors/ovl_Demo_Im/z_demo_im.h
index ac3e06250c..ddbec02833 100644
--- a/src/overlays/actors/ovl_Demo_Im/z_demo_im.h
+++ b/src/overlays/actors/ovl_Demo_Im/z_demo_im.h
@@ -4,32 +4,13 @@
#include "ultra64.h"
#include "actor.h"
+#include "assets/objects/object_im/object_im.h"
+
struct DemoIm;
typedef void (*DemoImActionFunc)(struct DemoIm*, struct PlayState*);
typedef void (*DemoImDrawFunc)(struct DemoIm*, struct PlayState*);
-typedef enum ImpaLimb {
- /* 0x00 */ IMPA_LIMB_NONE,
- /* 0x01 */ IMPA_LIMB_ROOT,
- /* 0x02 */ IMPA_LIMB_TORSO,
- /* 0x03 */ IMPA_LIMB_LEFT_THIGH,
- /* 0x04 */ IMPA_LIMB_LEFT_LEG,
- /* 0x05 */ IMPA_LIMB_LEFT_FOOT,
- /* 0x06 */ IMPA_LIMB_RIGHT_THIGH,
- /* 0x07 */ IMPA_LIMB_RIGHT_LEG,
- /* 0x08 */ IMPA_LIMB_RIGHT_FOOT,
- /* 0x09 */ IMPA_LIMB_CHEST,
- /* 0x0A */ IMPA_LIMB_LEFT_SHOULDER,
- /* 0x0B */ IMPA_LIMB_LEFT_ARM,
- /* 0x0C */ IMPA_LIMB_LEFT_HAND,
- /* 0x0D */ IMPA_LIMB_RIGHT_SHOULDER,
- /* 0x0E */ IMPA_LIMB_RIGHT_ARM,
- /* 0x0F */ IMPA_LIMB_RIGHT_HAND,
- /* 0x10 */ IMPA_LIMB_HEAD,
- /* 0x11 */ IMPA_LIMB_MAX
-} ImpaLimb;
-
typedef struct DemoIm {
/* 0x0000 */ Actor actor;
/* 0x014C */ SkelAnime skelAnime;
diff --git a/src/overlays/actors/ovl_Demo_Kankyo/z_demo_kankyo.c b/src/overlays/actors/ovl_Demo_Kankyo/z_demo_kankyo.c
index 60d023f6b8..f12d54b9fc 100644
--- a/src/overlays/actors/ovl_Demo_Kankyo/z_demo_kankyo.c
+++ b/src/overlays/actors/ovl_Demo_Kankyo/z_demo_kankyo.c
@@ -274,8 +274,7 @@ void DemoKankyo_Init(Actor* thisx, PlayState* play) {
this->sparkleCounter = 0;
this->actor.scale.x = this->actor.scale.y = this->actor.scale.z = 1.0f;
if (this->actor.params == DEMOKANKYO_WARP_OUT) {
- Audio_PlaySfxGeneral(NA_SE_EV_SARIA_MELODY, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_EV_SARIA_MELODY);
}
break;
case DEMOKANKYO_SPARKLES:
@@ -390,8 +389,7 @@ void DemoKankyo_DoNothing(DemoKankyo* this, PlayState* play) {
void DemoKankyo_UpdateWarpIn(DemoKankyo* this, PlayState* play) {
#if OOT_VERSION < PAL_1_0
- Audio_PlaySfxGeneral(NA_SE_EV_LINK_WARP_OUT, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_EV_LINK_WARP_OUT);
#endif
DemoKankyo_SetupAction(this, DemoKankyo_DoNothing);
}
@@ -824,8 +822,7 @@ void DemoKankyo_DrawWarpSparkles(Actor* thisx, PlayState* play) {
}
} else {
#if OOT_VERSION >= PAL_1_0
- Audio_PlaySfxGeneral(NA_SE_EV_LINK_WARP_OUT - SFX_FLAG, &gSfxDefaultPos, 4,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_EV_LINK_WARP_OUT - SFX_FLAG);
#endif
if (func_800BB2B4(&camPos, &sWarpRoll, &sWarpFoV, sWarpInCameraPoints, &this->unk_150[i].unk_20,
&this->unk_150[i].unk_1C) != 0) {
diff --git a/src/overlays/actors/ovl_Demo_Kekkai/z_demo_kekkai.c b/src/overlays/actors/ovl_Demo_Kekkai/z_demo_kekkai.c
index 3ba0504137..d5c1faa67d 100644
--- a/src/overlays/actors/ovl_Demo_Kekkai/z_demo_kekkai.c
+++ b/src/overlays/actors/ovl_Demo_Kekkai/z_demo_kekkai.c
@@ -59,8 +59,8 @@ static ColliderCylinderInit sCylinderInit = {
},
{
ELEM_MATERIAL_UNK0,
- { 0x20000000, 0x07, 0x04 },
- { 0x00002000, 0x00, 0x00 },
+ { 0x20000000, HIT_SPECIAL_EFFECT_7, 0x04 },
+ { 0x00002000, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
diff --git a/src/overlays/actors/ovl_Demo_Tre_Lgt/z_demo_tre_lgt.c b/src/overlays/actors/ovl_Demo_Tre_Lgt/z_demo_tre_lgt.c
index ece0958ad2..74272d963c 100644
--- a/src/overlays/actors/ovl_Demo_Tre_Lgt/z_demo_tre_lgt.c
+++ b/src/overlays/actors/ovl_Demo_Tre_Lgt/z_demo_tre_lgt.c
@@ -128,8 +128,7 @@ void func_80993848(DemoTreLgt* this, PlayState* play) {
}
if ((currentFrame > 30.0f) && !(this->status & 1)) {
this->status |= 1;
- Audio_PlaySfxGeneral(NA_SE_EV_TRE_BOX_FLASH, &this->actor.projectedPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&this->actor.projectedPos, NA_SE_EV_TRE_BOX_FLASH);
}
if (SkelCurve_Update(play, &this->skelCurve)) {
Actor_Kill(&this->actor);
diff --git a/src/overlays/actors/ovl_Door_Ana/z_door_ana.c b/src/overlays/actors/ovl_Door_Ana/z_door_ana.c
index 80c94c19b1..647ba366bd 100644
--- a/src/overlays/actors/ovl_Door_Ana/z_door_ana.c
+++ b/src/overlays/actors/ovl_Door_Ana/z_door_ana.c
@@ -52,13 +52,13 @@ static ColliderCylinderInit sCylinderInit = {
},
{
ELEM_MATERIAL_UNK2,
- { 0x00000000, 0x00, 0x00 },
- { 0x00000048, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0x00000048, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON,
OCELEM_NONE,
},
- { 50, 10, 0, { 0 } },
+ { 50, 10, 0, { 0, 0, 0 } },
};
static s16 sGrottoEntrances[] = {
@@ -126,8 +126,7 @@ void DoorAna_WaitClosed(DoorAna* this, PlayState* play) {
if (openGrotto) {
this->actor.params &= ~0x0300;
DoorAna_SetupAction(this, DoorAna_WaitOpen);
- Audio_PlaySfxGeneral(NA_SE_SY_CORRECT_CHIME, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_CORRECT_CHIME);
}
Actor_SetClosestSecretDistance(&this->actor, play);
}
diff --git a/src/overlays/actors/ovl_Door_Killer/z_door_killer.c b/src/overlays/actors/ovl_Door_Killer/z_door_killer.c
index dc016d34b6..565ea6adc4 100644
--- a/src/overlays/actors/ovl_Door_Killer/z_door_killer.c
+++ b/src/overlays/actors/ovl_Door_Killer/z_door_killer.c
@@ -6,6 +6,7 @@
#include "z_door_killer.h"
+#include "array_count.h"
#include "gfx.h"
#include "gfx_setupdl.h"
#include "printf.h"
@@ -64,8 +65,8 @@ static ColliderCylinderInit sCylinderInit = {
},
{
ELEM_MATERIAL_UNK0,
- { 0xFFCFFFFF, 0x00, 0x10 },
- { 0x0001FFEE, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x10 },
+ { 0x0001FFEE, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_NONE,
@@ -73,12 +74,12 @@ static ColliderCylinderInit sCylinderInit = {
{ 20, 100, 0, { 0, 0, 0 } },
};
-static ColliderJntSphElementInit sJntSphElementsInit[1] = {
+static ColliderJntSphElementInit sJntSphElementsInit[] = {
{
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0x00000008, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0x00000008, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON,
OCELEM_NONE,
@@ -96,7 +97,7 @@ static ColliderJntSphInit sJntSphInit = {
OC2_NONE,
COLSHAPE_JNTSPH,
},
- 1,
+ ARRAY_COUNT(sJntSphElementsInit),
sJntSphElementsInit,
};
diff --git a/src/overlays/actors/ovl_Door_Warp1/z_door_warp1.c b/src/overlays/actors/ovl_Door_Warp1/z_door_warp1.c
index dd99eb63c0..f7c9e270c6 100644
--- a/src/overlays/actors/ovl_Door_Warp1/z_door_warp1.c
+++ b/src/overlays/actors/ovl_Door_Warp1/z_door_warp1.c
@@ -481,8 +481,7 @@ void DoorWarp1_ChildWarpIdle(DoorWarp1* this, PlayState* play) {
if (DoorWarp1_PlayerInRange(this, play)) {
Player* player = GET_PLAYER(play);
- Audio_PlaySfxGeneral(NA_SE_EV_LINK_WARP, &player->actor.projectedPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&player->actor.projectedPos, NA_SE_EV_LINK_WARP);
OnePointCutscene_Init(play, 0x25E7, 999, &this->actor, CAM_ID_MAIN);
Player_SetCsActionWithHaltedActors(play, &this->actor, PLAYER_CSACTION_10);
@@ -509,7 +508,7 @@ void DoorWarp1_ChildWarpOut(DoorWarp1* this, PlayState* play) {
Math_SmoothStepToF(&this->lightRayAlpha, 0.0f, 0.2f, 6.0f, 0.01f);
this->warpTimer++;
- if (sWarpTimerTarget < this->warpTimer && gSaveContext.nextCutsceneIndex == 0xFFEF) {
+ if (sWarpTimerTarget < this->warpTimer && gSaveContext.nextCutsceneIndex == NEXT_CS_INDEX_NONE) {
PRINTF(T("\n\n\nじかんがきたからおーしまい fade_direction=[%d]",
"\n\n\nThe time has come, so it's over. fade_direction=[%d]"),
play->transitionTrigger, TRANS_TRIGGER_START);
@@ -519,10 +518,10 @@ void DoorWarp1_ChildWarpOut(DoorWarp1* this, PlayState* play) {
Flags_SetEventChkInf(EVENTCHKINF_25);
Item_Give(play, ITEM_GORON_RUBY);
play->nextEntranceIndex = ENTR_DEATH_MOUNTAIN_TRAIL_0;
- gSaveContext.nextCutsceneIndex = 0xFFF1;
+ gSaveContext.nextCutsceneIndex = CS_INDEX_1;
} else {
play->nextEntranceIndex = ENTR_DEATH_MOUNTAIN_TRAIL_5;
- gSaveContext.nextCutsceneIndex = 0;
+ gSaveContext.nextCutsceneIndex = CS_INDEX_NONE;
}
} else if (play->sceneId == SCENE_DEKU_TREE_BOSS) {
if (!Flags_GetEventChkInf(EVENTCHKINF_07)) {
@@ -530,14 +529,14 @@ void DoorWarp1_ChildWarpOut(DoorWarp1* this, PlayState* play) {
Flags_SetEventChkInf(EVENTCHKINF_09);
Item_Give(play, ITEM_KOKIRI_EMERALD);
play->nextEntranceIndex = ENTR_KOKIRI_FOREST_0;
- gSaveContext.nextCutsceneIndex = 0xFFF1;
+ gSaveContext.nextCutsceneIndex = CS_INDEX_1;
} else {
play->nextEntranceIndex = ENTR_KOKIRI_FOREST_11;
- gSaveContext.nextCutsceneIndex = 0;
+ gSaveContext.nextCutsceneIndex = CS_INDEX_NONE;
}
} else if (play->sceneId == SCENE_JABU_JABU_BOSS) {
play->nextEntranceIndex = ENTR_ZORAS_FOUNTAIN_0;
- gSaveContext.nextCutsceneIndex = 0;
+ gSaveContext.nextCutsceneIndex = CS_INDEX_NONE;
}
PRINTF(T("\n\n\nおわりおわり", "\n\n\nThe end The end"));
play->transitionTrigger = TRANS_TRIGGER_START;
@@ -596,8 +595,7 @@ void func_80999EE0(DoorWarp1* this, PlayState* play) {
void func_80999FE4(DoorWarp1* this, PlayState* play) {
if (Message_GetState(&play->msgCtx) == TEXT_STATE_NONE) {
- Audio_PlaySfxGeneral(NA_SE_EV_LINK_WARP, &this->actor.projectedPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&this->actor.projectedPos, NA_SE_EV_LINK_WARP);
OnePointCutscene_Init(play, 0x25E9, 999, &this->actor, CAM_ID_MAIN);
// Using `CAM_ID_NONE` here defaults to the active camera
Play_CopyCamera(play, CAM_ID_NONE, sRutoWarpSubCamId);
@@ -622,11 +620,11 @@ void DoorWarp1_RutoWarpOut(DoorWarp1* this, PlayState* play) {
Math_SmoothStepToF(&this->lightRayAlpha, 0.0f, 0.2f, 6.0f, 0.01f);
this->warpTimer++;
- if (this->warpTimer > sWarpTimerTarget && gSaveContext.nextCutsceneIndex == 0xFFEF) {
+ if (this->warpTimer > sWarpTimerTarget && gSaveContext.nextCutsceneIndex == NEXT_CS_INDEX_NONE) {
SET_EVENTCHKINF(EVENTCHKINF_37);
Item_Give(play, ITEM_ZORA_SAPPHIRE);
play->nextEntranceIndex = ENTR_ZORAS_FOUNTAIN_0;
- gSaveContext.nextCutsceneIndex = 0xFFF0;
+ gSaveContext.nextCutsceneIndex = CS_INDEX_0;
play->transitionTrigger = TRANS_TRIGGER_START;
play->transitionType = TRANS_TYPE_FADE_WHITE_SLOW;
}
@@ -684,8 +682,7 @@ void func_8099A508(DoorWarp1* this, PlayState* play) {
this->unk_1B2--;
return;
}
- Audio_PlaySfxGeneral(NA_SE_EV_LINK_WARP, &player->actor.projectedPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&player->actor.projectedPos, NA_SE_EV_LINK_WARP);
Animation_ChangeImpl(&this->skelAnime, &gWarpCrystalAnim, 1.0f, Animation_GetLastFrame(&gWarpCrystalAnim),
Animation_GetLastFrame(&gWarpCrystalAnim), ANIMMODE_ONCE, 40.0f, ANIMTAPER_ACCEL);
@@ -722,13 +719,13 @@ void DoorWarp1_AdultWarpOut(DoorWarp1* this, PlayState* play) {
}
this->warpTimer++;
- if (this->warpTimer > sWarpTimerTarget && gSaveContext.nextCutsceneIndex == 0xFFEF) {
+ if (this->warpTimer > sWarpTimerTarget && gSaveContext.nextCutsceneIndex == NEXT_CS_INDEX_NONE) {
if (play->sceneId == SCENE_FOREST_TEMPLE_BOSS) {
if (!GET_EVENTCHKINF(EVENTCHKINF_48)) {
SET_EVENTCHKINF(EVENTCHKINF_48);
Item_Give(play, ITEM_MEDALLION_FOREST);
play->nextEntranceIndex = ENTR_CHAMBER_OF_THE_SAGES_0;
- gSaveContext.nextCutsceneIndex = 0;
+ gSaveContext.nextCutsceneIndex = CS_INDEX_NONE;
gSaveContext.chamberCutsceneNum = CHAMBER_CS_FOREST;
} else {
if (!LINK_IS_ADULT) {
@@ -736,28 +733,28 @@ void DoorWarp1_AdultWarpOut(DoorWarp1* this, PlayState* play) {
} else {
play->nextEntranceIndex = ENTR_SACRED_FOREST_MEADOW_3;
}
- gSaveContext.nextCutsceneIndex = 0;
+ gSaveContext.nextCutsceneIndex = CS_INDEX_NONE;
}
} else if (play->sceneId == SCENE_FIRE_TEMPLE_BOSS) {
if (!GET_EVENTCHKINF(EVENTCHKINF_49)) {
SET_EVENTCHKINF(EVENTCHKINF_49);
Item_Give(play, ITEM_MEDALLION_FIRE);
play->nextEntranceIndex = ENTR_KAKARIKO_VILLAGE_0;
- gSaveContext.nextCutsceneIndex = 0xFFF3;
+ gSaveContext.nextCutsceneIndex = CS_INDEX_3;
} else {
if (!LINK_IS_ADULT) {
play->nextEntranceIndex = ENTR_DEATH_MOUNTAIN_CRATER_4;
} else {
play->nextEntranceIndex = ENTR_DEATH_MOUNTAIN_CRATER_5;
}
- gSaveContext.nextCutsceneIndex = 0;
+ gSaveContext.nextCutsceneIndex = CS_INDEX_NONE;
}
} else if (play->sceneId == SCENE_WATER_TEMPLE_BOSS) {
if (!GET_EVENTCHKINF(EVENTCHKINF_4A)) {
SET_EVENTCHKINF(EVENTCHKINF_4A);
Item_Give(play, ITEM_MEDALLION_WATER);
play->nextEntranceIndex = ENTR_CHAMBER_OF_THE_SAGES_0;
- gSaveContext.nextCutsceneIndex = 0;
+ gSaveContext.nextCutsceneIndex = CS_INDEX_NONE;
gSaveContext.chamberCutsceneNum = CHAMBER_CS_WATER;
} else {
if (!LINK_IS_ADULT) {
@@ -765,13 +762,13 @@ void DoorWarp1_AdultWarpOut(DoorWarp1* this, PlayState* play) {
} else {
play->nextEntranceIndex = ENTR_LAKE_HYLIA_9;
}
- gSaveContext.nextCutsceneIndex = 0;
+ gSaveContext.nextCutsceneIndex = CS_INDEX_NONE;
}
} else if (play->sceneId == SCENE_SPIRIT_TEMPLE_BOSS) {
if (!CHECK_QUEST_ITEM(QUEST_MEDALLION_SPIRIT)) {
Item_Give(play, ITEM_MEDALLION_SPIRIT);
play->nextEntranceIndex = ENTR_CHAMBER_OF_THE_SAGES_0;
- gSaveContext.nextCutsceneIndex = 0;
+ gSaveContext.nextCutsceneIndex = CS_INDEX_NONE;
gSaveContext.chamberCutsceneNum = CHAMBER_CS_SPIRIT;
} else {
if (!LINK_IS_ADULT) {
@@ -779,13 +776,13 @@ void DoorWarp1_AdultWarpOut(DoorWarp1* this, PlayState* play) {
} else {
play->nextEntranceIndex = ENTR_DESERT_COLOSSUS_8;
}
- gSaveContext.nextCutsceneIndex = 0;
+ gSaveContext.nextCutsceneIndex = CS_INDEX_NONE;
}
} else if (play->sceneId == SCENE_SHADOW_TEMPLE_BOSS) {
if (!CHECK_QUEST_ITEM(QUEST_MEDALLION_SHADOW)) {
Item_Give(play, ITEM_MEDALLION_SHADOW);
play->nextEntranceIndex = ENTR_CHAMBER_OF_THE_SAGES_0;
- gSaveContext.nextCutsceneIndex = 0;
+ gSaveContext.nextCutsceneIndex = CS_INDEX_NONE;
gSaveContext.chamberCutsceneNum = CHAMBER_CS_SHADOW;
} else {
if (!LINK_IS_ADULT) {
@@ -793,7 +790,7 @@ void DoorWarp1_AdultWarpOut(DoorWarp1* this, PlayState* play) {
} else {
play->nextEntranceIndex = ENTR_GRAVEYARD_8;
}
- gSaveContext.nextCutsceneIndex = 0;
+ gSaveContext.nextCutsceneIndex = CS_INDEX_NONE;
}
}
play->transitionTrigger = TRANS_TRIGGER_START;
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_Am/z_en_am.c b/src/overlays/actors/ovl_En_Am/z_en_am.c
index 6b382ca364..b3f31ec53f 100644
--- a/src/overlays/actors/ovl_En_Am/z_en_am.c
+++ b/src/overlays/actors/ovl_En_Am/z_en_am.c
@@ -78,8 +78,8 @@ static ColliderCylinderInit sHurtCylinderInit = {
},
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON,
OCELEM_ON,
@@ -98,8 +98,8 @@ static ColliderCylinderInit sBlockCylinderInit = {
},
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0x00400106, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0x00400106, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON,
OCELEM_NONE,
@@ -118,8 +118,8 @@ static ColliderQuadInit sQuadInit = {
},
{
ELEM_MATERIAL_UNK0,
- { 0xFFCFFFFF, 0x00, 0x08 },
- { 0x00000000, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x08 },
+ { 0x00000000, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_NONE,
OCELEM_NONE,
diff --git a/src/overlays/actors/ovl_En_Ani/z_en_ani.c b/src/overlays/actors/ovl_En_Ani/z_en_ani.c
index 17d4eb62f2..b42d9bd29f 100644
--- a/src/overlays/actors/ovl_En_Ani/z_en_ani.c
+++ b/src/overlays/actors/ovl_En_Ani/z_en_ani.c
@@ -61,13 +61,13 @@ static ColliderCylinderInit sCylinderInit = {
},
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON,
OCELEM_ON,
},
- { 30, 40, 0, { 0 } },
+ { 30, 40, 0, { 0, 0, 0 } },
};
void EnAni_SetupAction(EnAni* this, EnAniActionFunc actionFunc) {
diff --git a/src/overlays/actors/ovl_En_Anubice/z_en_anubice.c b/src/overlays/actors/ovl_En_Anubice/z_en_anubice.c
index dd527d95bd..7f060f2ea7 100644
--- a/src/overlays/actors/ovl_En_Anubice/z_en_anubice.c
+++ b/src/overlays/actors/ovl_En_Anubice/z_en_anubice.c
@@ -64,8 +64,8 @@ static ColliderCylinderInit sCylinderInit = {
},
{
ELEM_MATERIAL_UNK0,
- { 0xFFCFFFFF, 0x00, 0x00 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON,
OCELEM_ON,
diff --git a/src/overlays/actors/ovl_En_Anubice/z_en_anubice.h b/src/overlays/actors/ovl_En_Anubice/z_en_anubice.h
index 51b143fa1e..fd54405a29 100644
--- a/src/overlays/actors/ovl_En_Anubice/z_en_anubice.h
+++ b/src/overlays/actors/ovl_En_Anubice/z_en_anubice.h
@@ -4,30 +4,12 @@
#include "ultra64.h"
#include "actor.h"
+#include "assets/objects/object_anubice/object_anubice.h"
+
struct EnAnubice;
typedef void (*EnAnubiceActionFunc)(struct EnAnubice*, struct PlayState*);
-typedef enum AnubiceLimbs {
- /* 0 */ ANUBICE_LIMB_NONE,
- /* 1 */ ANUBICE_LIMB_ROOT,
- /* 2 */ ANUBICE_LIMB_BODY_ROOT,
- /* 3 */ ANUBICE_LIMB_CHEST,
- /* 4 */ ANUBICE_LIMB_ABDOMEN_ROOT,
- /* 5 */ ANUBICE_LIMB_UPPER_ABDOMEN,
- /* 6 */ ANUBICE_LIMB_LOWER_ABDOMEN,
- /* 7 */ ANUBICE_LIMB_TAIL_ROOT,
- /* 8 */ ANUBICE_LIMB_TAIL_BASE,
- /* 9 */ ANUBICE_LIMB_TAIL_TIP,
- /* 10 */ ANUBICE_LIMB_JEWEL_ROOT,
- /* 11 */ ANUBICE_LIMB_JEWEL,
- /* 12 */ ANUBICE_LIMB_HEAD_ROOT,
- /* 13 */ ANUBICE_LIMB_HEAD,
- /* 14 */ ANUBICE_LIMB_JAW_ROOT,
- /* 15 */ ANUBICE_LIMB_JAW,
- /* 16 */ ANUBICE_LIMB_MAX
-} AnubiceLimbs;
-
typedef struct EnAnubice {
/* 0x0000 */ Actor actor;
/* 0x014C */ SkelAnime skelAnime;
diff --git a/src/overlays/actors/ovl_En_Anubice_Fire/z_en_anubice_fire.c b/src/overlays/actors/ovl_En_Anubice_Fire/z_en_anubice_fire.c
index 39cc72c383..5e518870e2 100644
--- a/src/overlays/actors/ovl_En_Anubice_Fire/z_en_anubice_fire.c
+++ b/src/overlays/actors/ovl_En_Anubice_Fire/z_en_anubice_fire.c
@@ -55,8 +55,8 @@ static ColliderCylinderInit sCylinderInit = {
},
{
ELEM_MATERIAL_UNK0,
- { 0xFFCFFFFF, 0x01, 0x04 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_FIRE, 0x04 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_NONE,
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 48517bfe41..21d2bb6aa2 100644
--- a/src/overlays/actors/ovl_En_Arrow/z_en_arrow.c
+++ b/src/overlays/actors/ovl_En_Arrow/z_en_arrow.c
@@ -57,8 +57,8 @@ static ColliderQuadInit sColliderQuadInit = {
},
{
ELEM_MATERIAL_UNK2,
- { 0x00000020, 0x00, 0x01 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0x00000020, HIT_SPECIAL_EFFECT_NONE, 0x01 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_NEAREST | ATELEM_SFX_NONE,
ACELEM_NONE,
OCELEM_NONE,
diff --git a/src/overlays/actors/ovl_En_Ba/z_en_ba.c b/src/overlays/actors/ovl_En_Ba/z_en_ba.c
index 462e8a5f1d..a6ab6b8546 100644
--- a/src/overlays/actors/ovl_En_Ba/z_en_ba.c
+++ b/src/overlays/actors/ovl_En_Ba/z_en_ba.c
@@ -6,6 +6,7 @@
#include "z_en_ba.h"
+#include "array_count.h"
#include "gfx.h"
#include "gfx_setupdl.h"
#include "ichain.h"
@@ -51,12 +52,12 @@ ActorProfile En_Ba_Profile = {
static Vec3f D_809B8080 = { 0.0f, 0.0f, 32.0f };
-static ColliderJntSphElementInit sJntSphElementsInit[2] = {
+static ColliderJntSphElementInit sJntSphElementsInit[] = {
{
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0x00000010, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0x00000010, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON,
OCELEM_NONE,
@@ -66,8 +67,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[2] = {
{
{
ELEM_MATERIAL_UNK0,
- { 0x20000000, 0x00, 0x04 },
- { 0x00000000, 0x00, 0x00 },
+ { 0x20000000, HIT_SPECIAL_EFFECT_NONE, 0x04 },
+ { 0x00000000, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_NONE,
OCELEM_NONE,
@@ -85,7 +86,7 @@ static ColliderJntSphInit sJntSphInit = {
OC2_NONE,
COLSHAPE_JNTSPH,
},
- 2,
+ ARRAY_COUNT(sJntSphElementsInit),
sJntSphElementsInit,
};
diff --git a/src/overlays/actors/ovl_En_Bb/z_en_bb.c b/src/overlays/actors/ovl_En_Bb/z_en_bb.c
index 0c055c9be9..50d01b999a 100644
--- a/src/overlays/actors/ovl_En_Bb/z_en_bb.c
+++ b/src/overlays/actors/ovl_En_Bb/z_en_bb.c
@@ -7,6 +7,7 @@
#include "z_en_bb.h"
#include "libc64/qrand.h"
+#include "array_count.h"
#include "attributes.h"
#include "gfx.h"
#include "gfx_setupdl.h"
@@ -225,12 +226,12 @@ ActorProfile En_Bb_Profile = {
/**/ EnBb_Draw,
};
-static ColliderJntSphElementInit sJntSphElementsInit[1] = {
+static ColliderJntSphElementInit sJntSphElementsInit[] = {
{
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON,
OCELEM_ON,
@@ -248,7 +249,7 @@ static ColliderJntSphInit sJntSphInit = {
OC2_TYPE_1,
COLSHAPE_JNTSPH,
},
- 1,
+ ARRAY_COUNT(sJntSphElementsInit),
sJntSphElementsInit,
};
@@ -369,7 +370,7 @@ void EnBb_Init(Actor* thisx, PlayState* play) {
thisx->naviEnemyId = NAVI_ENEMY_RED_BUBBLE;
thisx->colChkInfo.damageTable = &sDamageTableRed;
this->flameEnvColor.r = 255;
- this->collider.elements[0].base.atDmgInfo.effect = 1;
+ this->collider.elements[0].base.atDmgInfo.hitSpecialEffect = HIT_SPECIAL_EFFECT_FIRE;
EnBb_SetupRed(play, this);
break;
case ENBB_WHITE:
diff --git a/src/overlays/actors/ovl_En_Bdfire/z_en_bdfire.c b/src/overlays/actors/ovl_En_Bdfire/z_en_bdfire.c
index 76462af1de..bb8d0bed57 100644
--- a/src/overlays/actors/ovl_En_Bdfire/z_en_bdfire.c
+++ b/src/overlays/actors/ovl_En_Bdfire/z_en_bdfire.c
@@ -141,8 +141,7 @@ void func_809BC598(EnBdfire* this, PlayState* play) {
this->unk_158 = bossDodongo->unk_1A2;
quarterTurn = false;
if (this->actor.params == 0) {
- Audio_PlaySfxGeneral(NA_SE_EN_DODO_K_FIRE - SFX_FLAG, &this->actor.projectedPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&this->actor.projectedPos, NA_SE_EN_DODO_K_FIRE - SFX_FLAG);
}
Math_SmoothStepToF(&this->actor.scale.x, this->unk_188, 0.3f, 0.5f, 0.0f);
Actor_SetScale(&this->actor, this->actor.scale.x);
diff --git a/src/overlays/actors/ovl_En_Bigokuta/z_en_bigokuta.c b/src/overlays/actors/ovl_En_Bigokuta/z_en_bigokuta.c
index 1ab5979a3c..51cab89db8 100644
--- a/src/overlays/actors/ovl_En_Bigokuta/z_en_bigokuta.c
+++ b/src/overlays/actors/ovl_En_Bigokuta/z_en_bigokuta.c
@@ -62,12 +62,12 @@ ActorProfile En_Bigokuta_Profile = {
/**/ EnBigokuta_Draw,
};
-static ColliderJntSphElementInit sJntSphElementsInit[1] = {
+static ColliderJntSphElementInit sJntSphElementsInit[] = {
{
{
ELEM_MATERIAL_UNK1,
- { 0x20000000, 0x00, 0x08 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0x20000000, HIT_SPECIAL_EFFECT_NONE, 0x08 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_HARD,
ACELEM_ON,
OCELEM_ON,
diff --git a/src/overlays/actors/ovl_En_Bili/z_en_bili.c b/src/overlays/actors/ovl_En_Bili/z_en_bili.c
index 0e7c532efb..29571ca747 100644
--- a/src/overlays/actors/ovl_En_Bili/z_en_bili.c
+++ b/src/overlays/actors/ovl_En_Bili/z_en_bili.c
@@ -67,8 +67,8 @@ static ColliderCylinderInit sCylinderInit = {
},
{
ELEM_MATERIAL_UNK0,
- { 0xFFCFFFFF, 0x03, 0x08 },
- { 0xFFCFFFFF, 0x01, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_ELECTRIC, 0x08 },
+ { 0xFFCFFFFF, HIT_BACKLASH_ELECTRIC, 0x00 },
ATELEM_ON | ATELEM_SFX_NONE,
ACELEM_ON,
OCELEM_ON,
@@ -134,7 +134,7 @@ void EnBili_Init(Actor* thisx, PlayState* play) {
ActorShape_Init(&this->actor.shape, 0.0f, ActorShadow_DrawCircle, 17.0f);
this->actor.shape.shadowAlpha = 155;
SkelAnime_Init(play, &this->skelAnime, &gBiriSkel, &gBiriDefaultAnim, this->jointTable, this->morphTable,
- EN_BILI_LIMB_MAX);
+ BIRI_LIMB_MAX);
Collider_InitCylinder(play, &this->collider);
Collider_SetCylinder(play, &this->collider, &this->actor, &sCylinderInit);
CollisionCheck_SetInfo2(&this->actor.colChkInfo, &sDamageTable, &sColChkInfoInit);
@@ -157,7 +157,7 @@ void EnBili_Destroy(Actor* thisx, PlayState* play) {
void EnBili_SetupFloatIdle(EnBili* this) {
this->actor.speed = 0.7f;
- this->collider.elem.acDmgInfo.effect = 1; // Shock?
+ this->collider.elem.acDmgInfo.hitBacklash = HIT_BACKLASH_ELECTRIC;
this->timer = 32;
this->actor.home.pos.y = this->actor.world.pos.y;
this->actor.gravity = 0.0f;
@@ -253,7 +253,7 @@ void EnBili_SetupDie(EnBili* this) {
*/
void EnBili_SetupStunned(EnBili* this) {
this->timer = 80;
- this->collider.elem.acDmgInfo.effect = 0;
+ this->collider.elem.acDmgInfo.hitBacklash = HIT_BACKLASH_NONE;
this->actor.gravity = -1.0f;
this->actor.speed = 0.0f;
Actor_SetColorFilter(&this->actor, COLORFILTER_COLORFLAG_BLUE, 150, COLORFILTER_BUFFLAG_XLU, 80);
@@ -749,11 +749,11 @@ s32 EnBili_OverrideLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3f*
Vec3f limbScale = { 1.0f, 1.0f, 1.0f };
f32 curFrame = this->skelAnime.curFrame;
- if (limbIndex == EN_BILI_LIMB_OUTER_HOOD) {
+ if (limbIndex == BIRI_LIMB_OUTER_HOOD) {
EnBili_PulseLimb3(this, curFrame, &limbScale);
- } else if (limbIndex == EN_BILI_LIMB_INNER_HOOD) {
+ } else if (limbIndex == BIRI_LIMB_INNER_HOOD) {
EnBili_PulseLimb2(this, curFrame, &limbScale);
- } else if (limbIndex == EN_BILI_LIMB_TENTACLES) {
+ } else if (limbIndex == BIRI_LIMB_TENTACLES) {
EnBili_PulseLimb4(this, curFrame, &limbScale);
rot->y = (Camera_GetCamDirYaw(GET_ACTIVE_CAM(play)) - this->actor.shape.rot.y) + 0x8000;
}
diff --git a/src/overlays/actors/ovl_En_Bili/z_en_bili.h b/src/overlays/actors/ovl_En_Bili/z_en_bili.h
index b0e58c4679..0675847ee2 100644
--- a/src/overlays/actors/ovl_En_Bili/z_en_bili.h
+++ b/src/overlays/actors/ovl_En_Bili/z_en_bili.h
@@ -4,19 +4,12 @@
#include "ultra64.h"
#include "actor.h"
+#include "assets/objects/object_bl/object_bl.h"
+
struct EnBili;
typedef void (*EnBiliActionFunc)(struct EnBili*, struct PlayState*);
-typedef enum EnBiliLimb {
- /* 0 */ EN_BILI_LIMB_NONE,
- /* 1 */ EN_BILI_LIMB_ROOT,
- /* 2 */ EN_BILI_LIMB_INNER_HOOD,
- /* 3 */ EN_BILI_LIMB_OUTER_HOOD,
- /* 4 */ EN_BILI_LIMB_TENTACLES,
- /* 5 */ EN_BILI_LIMB_MAX
-} EnBiliLimb;
-
typedef struct EnBili {
/* 0x0000 */ Actor actor;
/* 0x014C */ SkelAnime skelAnime;
@@ -24,8 +17,8 @@ typedef struct EnBili {
/* 0x0194 */ u8 tentaclesTexIndex;
/* 0x0195 */ u8 playFlySfx;
/* 0x0196 */ s16 timer;
- /* 0x0198 */ Vec3s jointTable[EN_BILI_LIMB_MAX];
- /* 0x01B6 */ Vec3s morphTable[EN_BILI_LIMB_MAX];
+ /* 0x0198 */ Vec3s jointTable[BIRI_LIMB_MAX];
+ /* 0x01B6 */ Vec3s morphTable[BIRI_LIMB_MAX];
/* 0x01D4 */ ColliderCylinder collider;
} EnBili; // size = 0x0220
diff --git a/src/overlays/actors/ovl_En_Bom/z_en_bom.c b/src/overlays/actors/ovl_En_Bom/z_en_bom.c
index bf1c9ee479..e5f590a14b 100644
--- a/src/overlays/actors/ovl_En_Bom/z_en_bom.c
+++ b/src/overlays/actors/ovl_En_Bom/z_en_bom.c
@@ -7,6 +7,7 @@
#include "z_en_bom.h"
#include "overlays/effects/ovl_Effect_Ss_Dead_Sound/z_eff_ss_dead_sound.h"
+#include "array_count.h"
#include "gfx.h"
#include "gfx_setupdl.h"
#include "ichain.h"
@@ -53,8 +54,8 @@ static ColliderCylinderInit sCylinderInit = {
},
{
ELEM_MATERIAL_UNK2,
- { 0x00000000, 0x00, 0x00 },
- { 0x0003F828, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0x0003F828, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON,
OCELEM_ON,
@@ -62,12 +63,12 @@ static ColliderCylinderInit sCylinderInit = {
{ 6, 11, 14, { 0, 0, 0 } },
};
-static ColliderJntSphElementInit sJntSphElementsInit[1] = {
+static ColliderJntSphElementInit sJntSphElementsInit[] = {
{
{
ELEM_MATERIAL_UNK0,
- { 0x00000008, 0x00, 0x08 },
- { 0x00000000, 0x00, 0x00 },
+ { 0x00000008, HIT_SPECIAL_EFFECT_NONE, 0x08 },
+ { 0x00000000, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NONE,
ACELEM_NONE,
OCELEM_NONE,
@@ -85,7 +86,7 @@ static ColliderJntSphInit sJntSphInit = {
OC2_NONE,
COLSHAPE_JNTSPH,
},
- 1,
+ ARRAY_COUNT(sJntSphElementsInit),
sJntSphElementsInit,
};
diff --git a/src/overlays/actors/ovl_En_Bom_Chu/z_en_bom_chu.c b/src/overlays/actors/ovl_En_Bom_Chu/z_en_bom_chu.c
index 6e9dc91695..8467c4e5a6 100644
--- a/src/overlays/actors/ovl_En_Bom_Chu/z_en_bom_chu.c
+++ b/src/overlays/actors/ovl_En_Bom_Chu/z_en_bom_chu.c
@@ -46,8 +46,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[] = {
{
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON,
OCELEM_ON,
diff --git a/src/overlays/actors/ovl_En_Bombf/z_en_bombf.c b/src/overlays/actors/ovl_En_Bombf/z_en_bombf.c
index 117343703e..a4312e5403 100644
--- a/src/overlays/actors/ovl_En_Bombf/z_en_bombf.c
+++ b/src/overlays/actors/ovl_En_Bombf/z_en_bombf.c
@@ -7,6 +7,7 @@
#include "z_en_bombf.h"
#include "overlays/effects/ovl_Effect_Ss_Dead_Sound/z_eff_ss_dead_sound.h"
+#include "array_count.h"
#include "gfx.h"
#include "gfx_setupdl.h"
#include "regs.h"
@@ -57,8 +58,8 @@ static ColliderCylinderInit sCylinderInit = {
},
{
ELEM_MATERIAL_UNK2,
- { 0x00000000, 0x00, 0x00 },
- { 0x0003F828, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0x0003F828, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON,
OCELEM_ON,
@@ -66,12 +67,12 @@ static ColliderCylinderInit sCylinderInit = {
{ 9, 18, 10, { 0, 0, 0 } },
};
-static ColliderJntSphElementInit sJntSphElementsInit[1] = {
+static ColliderJntSphElementInit sJntSphElementsInit[] = {
{
{
ELEM_MATERIAL_UNK0,
- { 0x00000008, 0x00, 0x08 },
- { 0x00000000, 0x00, 0x00 },
+ { 0x00000008, HIT_SPECIAL_EFFECT_NONE, 0x08 },
+ { 0x00000000, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NONE,
ACELEM_NONE,
OCELEM_NONE,
@@ -89,7 +90,7 @@ static ColliderJntSphInit sJntSphInit = {
OC2_NONE,
COLSHAPE_JNTSPH,
},
- 1,
+ ARRAY_COUNT(sJntSphElementsInit),
sJntSphElementsInit,
};
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 f679755105..c8254f1a86 100644
--- a/src/overlays/actors/ovl_En_Boom/z_en_boom.c
+++ b/src/overlays/actors/ovl_En_Boom/z_en_boom.c
@@ -49,8 +49,8 @@ static ColliderQuadInit sQuadInit = {
},
{
ELEM_MATERIAL_UNK2,
- { 0x00000010, 0x00, 0x01 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0x00000010, HIT_SPECIAL_EFFECT_NONE, 0x01 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_NEAREST | ATELEM_SFX_NORMAL,
ACELEM_NONE,
OCELEM_NONE,
diff --git a/src/overlays/actors/ovl_En_Box/z_en_box.c b/src/overlays/actors/ovl_En_Box/z_en_box.c
index 23c9321356..c3e37e868a 100644
--- a/src/overlays/actors/ovl_En_Box/z_en_box.c
+++ b/src/overlays/actors/ovl_En_Box/z_en_box.c
@@ -273,8 +273,7 @@ void EnBox_Fall(EnBox* this, PlayState* play) {
EnBox_SetupAction(this, EnBox_WaitOpen);
OnePointCutscene_EndCutscene(play, this->subCamId);
}
- Audio_PlaySfxGeneral(NA_SE_EV_COFFIN_CAP_BOUND, &this->dyna.actor.projectedPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&this->dyna.actor.projectedPos, NA_SE_EV_COFFIN_CAP_BOUND);
EnBox_SpawnDust(this, play);
}
yDiff = this->dyna.actor.world.pos.y - this->dyna.actor.floorHeight;
@@ -383,8 +382,7 @@ void EnBox_AppearInit(EnBox* this, PlayState* play) {
this->unk_1A8 = 0;
Actor_Spawn(&play->actorCtx, play, ACTOR_DEMO_KANKYO, this->dyna.actor.home.pos.x, this->dyna.actor.home.pos.y,
this->dyna.actor.home.pos.z, 0, 0, 0, DEMOKANKYO_SPARKLES);
- Audio_PlaySfxGeneral(NA_SE_EV_TRE_BOX_APPEAR, &this->dyna.actor.projectedPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&this->dyna.actor.projectedPos, NA_SE_EV_TRE_BOX_APPEAR);
}
}
@@ -486,8 +484,7 @@ void EnBox_Open(EnBox* this, PlayState* play) {
}
if (sfxId != 0) {
- Audio_PlaySfxGeneral(sfxId, &this->dyna.actor.projectedPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&this->dyna.actor.projectedPos, sfxId);
}
if (this->skelanime.jointTable[3].z > 0) {
diff --git a/src/overlays/actors/ovl_En_Brob/z_en_brob.c b/src/overlays/actors/ovl_En_Brob/z_en_brob.c
index 1dc0ea5e6e..6784fc2de2 100644
--- a/src/overlays/actors/ovl_En_Brob/z_en_brob.c
+++ b/src/overlays/actors/ovl_En_Brob/z_en_brob.c
@@ -54,8 +54,8 @@ static ColliderCylinderInit sCylinderInit = {
},
{
ELEM_MATERIAL_UNK1,
- { 0xFFCFFFFF, 0x03, 0x08 },
- { 0xFFCFFFFF, 0x01, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_ELECTRIC, 0x08 },
+ { 0xFFCFFFFF, HIT_BACKLASH_ELECTRIC, 0x00 },
ATELEM_ON | ATELEM_SFX_NONE,
ACELEM_ON,
OCELEM_ON,
diff --git a/src/overlays/actors/ovl_En_Bubble/z_en_bubble.c b/src/overlays/actors/ovl_En_Bubble/z_en_bubble.c
index 30de9c5bbb..0624c84add 100644
--- a/src/overlays/actors/ovl_En_Bubble/z_en_bubble.c
+++ b/src/overlays/actors/ovl_En_Bubble/z_en_bubble.c
@@ -1,6 +1,7 @@
#include "z_en_bubble.h"
#include "libc64/qrand.h"
+#include "array_count.h"
#include "gfx.h"
#include "gfx_setupdl.h"
#include "sfx.h"
@@ -36,12 +37,12 @@ ActorProfile En_Bubble_Profile = {
/**/ EnBubble_Draw,
};
-static ColliderJntSphElementInit sJntSphElementsInit[2] = {
+static ColliderJntSphElementInit sJntSphElementsInit[] = {
{
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x04 },
- { 0xFFCFD753, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x04 },
+ { 0xFFCFD753, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON,
OCELEM_ON,
@@ -51,8 +52,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[2] = {
{
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0x00002824, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0x00002824, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON | ACELEM_NO_AT_INFO | ACELEM_NO_DAMAGE | ACELEM_NO_SWORD_SFX | ACELEM_NO_HITMARK,
OCELEM_NONE,
@@ -70,7 +71,7 @@ static ColliderJntSphInit sJntSphInit = {
OC2_TYPE_1,
COLSHAPE_JNTSPH,
},
- 2,
+ ARRAY_COUNT(sJntSphElementsInit),
sJntSphElementsInit,
};
@@ -110,7 +111,7 @@ u32 func_809CBCBC(EnBubble* this) {
ColliderElement* elem = &this->colliderJntSph.elements[0].base;
elem->atDmgInfo.dmgFlags = DMG_EXPLOSIVE;
- elem->atDmgInfo.effect = 0;
+ elem->atDmgInfo.hitSpecialEffect = HIT_SPECIAL_EFFECT_NONE;
elem->atDmgInfo.damage = 4;
elem->atElemFlags = ATELEM_ON;
this->actor.velocity.y = 0.0f;
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 888ef865e1..2cf9a677f0 100644
--- a/src/overlays/actors/ovl_En_Butte/z_en_butte.c
+++ b/src/overlays/actors/ovl_En_Butte/z_en_butte.c
@@ -8,6 +8,7 @@
#include "overlays/actors/ovl_En_Elf/z_en_elf.h"
#include "libc64/qrand.h"
+#include "array_count.h"
#include "gfx.h"
#include "gfx_setupdl.h"
#include "ichain.h"
@@ -41,15 +42,17 @@ void EnButte_SetupWaitToDie(EnButte* this);
void EnButte_WaitToDie(EnButte* this, PlayState* play);
static ColliderJntSphElementInit sJntSphElementsInit[] = {
- { {
- ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0xFFCFFFFF, 0x000, 0x00 },
- ATELEM_NONE,
- ACELEM_NONE,
- OCELEM_ON,
- },
- { 0, { { 0, 0, 0 }, 5 }, 100 } },
+ {
+ {
+ ELEM_MATERIAL_UNK0,
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
+ ATELEM_NONE,
+ ACELEM_NONE,
+ OCELEM_ON,
+ },
+ { 0, { { 0, 0, 0 }, 5 }, 100 },
+ },
};
static ColliderJntSphInit sColliderJntSphInit = {
{
@@ -60,7 +63,7 @@ static ColliderJntSphInit sColliderJntSphInit = {
OC2_TYPE_1,
COLSHAPE_JNTSPH,
},
- 1,
+ ARRAY_COUNT(sJntSphElementsInit),
sJntSphElementsInit,
};
diff --git a/src/overlays/actors/ovl_En_Bw/z_en_bw.c b/src/overlays/actors/ovl_En_Bw/z_en_bw.c
index 7f6b4ae99e..37563cf728 100644
--- a/src/overlays/actors/ovl_En_Bw/z_en_bw.c
+++ b/src/overlays/actors/ovl_En_Bw/z_en_bw.c
@@ -74,8 +74,8 @@ static ColliderCylinderInit sCylinderInit1 = {
},
{
ELEM_MATERIAL_UNK0,
- { 0xFFCFFFFF, 0x01, 0x08 },
- { 0x00000000, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_FIRE, 0x08 },
+ { 0x00000000, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_NONE,
OCELEM_NONE,
@@ -94,8 +94,8 @@ static ColliderCylinderInit sCylinderInit2 = {
},
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON,
OCELEM_ON,
@@ -786,7 +786,7 @@ void EnBw_Update(Actor* thisx, PlayState* play2) {
func_8002836C(play, &thisx->world.pos, &velocity, &accel, &sp50, &sp4C, 0x3C, 0, 0x14);
}
if (this->unk_248 <= 0.4f) {
- this->collider1.elem.atDmgInfo.effect = 0;
+ this->collider1.elem.atDmgInfo.hitSpecialEffect = HIT_SPECIAL_EFFECT_NONE;
if (((play->gameplayFrames & 1) == 0) && (this->unk_220 < 5) && (this->unk_23C == 0)) {
accel.y = -0.1f;
velocity.x = Rand_CenteredFloat(4.0f);
@@ -806,7 +806,7 @@ void EnBw_Update(Actor* thisx, PlayState* play2) {
20.0f - (this->unk_248 * 40.0f));
}
} else {
- this->collider1.elem.atDmgInfo.effect = 1;
+ this->collider1.elem.atDmgInfo.hitSpecialEffect = HIT_SPECIAL_EFFECT_FIRE;
}
this->unk_234 = Actor_TestFloorInDirection(thisx, play, 50.0f, thisx->world.rot.y);
diff --git a/src/overlays/actors/ovl_En_Bw/z_en_bw.h b/src/overlays/actors/ovl_En_Bw/z_en_bw.h
index fe9f8ef90a..e3ae7da245 100644
--- a/src/overlays/actors/ovl_En_Bw/z_en_bw.h
+++ b/src/overlays/actors/ovl_En_Bw/z_en_bw.h
@@ -4,25 +4,11 @@
#include "ultra64.h"
#include "actor.h"
+#include "assets/objects/object_bw/object_bw.h"
+
struct EnBw;
typedef void (*EnBwActionFunc)(struct EnBw*, struct PlayState*);
-typedef enum TorchSlugLimb {
- /* 0 */ TORCH_SLUG_LIMB_NONE,
- /* 1 */ TORCH_SLUG_LIMB_BODY,
- /* 2 */ TORCH_SLUG_LIMB_LEFT_EYESTALK_ROOT_ROOT,
- /* 3 */ TORCH_SLUG_LIMB_LEFT_EYESTALK_ROOT,
- /* 4 */ TORCH_SLUG_LIMB_LEFT_UPPER_EYESTALK_ROOT,
- /* 5 */ TORCH_SLUG_LIMB_LEFT_UPPER_EYESTALK,
- /* 6 */ TORCH_SLUG_LIMB_LEFT_LOWER_EYESTALK,
- /* 7 */ TORCH_SLUG_LIMB_RIGHT_EYESTALK_ROOT_ROOT,
- /* 8 */ TORCH_SLUG_LIMB_RIGHT_EYESTALK_ROOT,
- /* 9 */ TORCH_SLUG_LIMB_RIGHT_UPPER_EYESTALK_ROOT,
- /* 10 */ TORCH_SLUG_LIMB_RIGHT_UPPER_EYESTALK,
- /* 11 */ TORCH_SLUG_LIMB_RIGHT_LOWER_EYESTALK,
- /* 12 */ TORCH_SLUG_LIMB_MAX
-} TorchSlugLimb;
-
typedef struct EnBw {
/* 0x0000 */ Actor actor;
/* 0x014C */ SkelAnime skelAnime;
diff --git a/src/overlays/actors/ovl_En_Bx/z_en_bx.c b/src/overlays/actors/ovl_En_Bx/z_en_bx.c
index 942cfdd6fb..4d08e68715 100644
--- a/src/overlays/actors/ovl_En_Bx/z_en_bx.c
+++ b/src/overlays/actors/ovl_En_Bx/z_en_bx.c
@@ -50,8 +50,8 @@ static ColliderCylinderInit sCylinderInit = {
},
{
ELEM_MATERIAL_UNK1,
- { 0xFFCFFFFF, 0x03, 0x04 },
- { 0xFFCFFFFF, 0x01, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_ELECTRIC, 0x04 },
+ { 0xFFCFFFFF, HIT_BACKLASH_ELECTRIC, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_NONE,
@@ -70,8 +70,8 @@ static ColliderQuadInit sQuadInit = {
},
{
ELEM_MATERIAL_UNK0,
- { 0xFFCFFFFF, 0x03, 0x04 },
- { 0x00000000, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_ELECTRIC, 0x04 },
+ { 0x00000000, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_NONE,
OCELEM_NONE,
diff --git a/src/overlays/actors/ovl_En_Clear_Tag/z_en_clear_tag.c b/src/overlays/actors/ovl_En_Clear_Tag/z_en_clear_tag.c
index f3b7f3dc19..ec6bdd9925 100644
--- a/src/overlays/actors/ovl_En_Clear_Tag/z_en_clear_tag.c
+++ b/src/overlays/actors/ovl_En_Clear_Tag/z_en_clear_tag.c
@@ -60,8 +60,8 @@ static ColliderCylinderInit sArwingCylinderInit = {
},
{
ELEM_MATERIAL_UNK0,
- { 0xFFCFFFFF, 0x00, 0x04 },
- { 0xFFDFFFFF, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x04 },
+ { 0xFFDFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
@@ -80,8 +80,8 @@ static ColliderCylinderInit sLaserCylinderInit = {
},
{
ELEM_MATERIAL_UNK0,
- { 0xFFCFFFFF, 0x00, 0x04 },
- { 0xFFDFFFFF, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x04 },
+ { 0xFFDFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
diff --git a/src/overlays/actors/ovl_En_Cow/z_en_cow.c b/src/overlays/actors/ovl_En_Cow/z_en_cow.c
index 2c27b88f2c..6f8a5329a8 100644
--- a/src/overlays/actors/ovl_En_Cow/z_en_cow.c
+++ b/src/overlays/actors/ovl_En_Cow/z_en_cow.c
@@ -61,8 +61,8 @@ static ColliderCylinderInit sCylinderInit = {
},
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON,
OCELEM_ON,
diff --git a/src/overlays/actors/ovl_En_Crow/z_en_crow.c b/src/overlays/actors/ovl_En_Crow/z_en_crow.c
index 0182ad038f..195494c853 100644
--- a/src/overlays/actors/ovl_En_Crow/z_en_crow.c
+++ b/src/overlays/actors/ovl_En_Crow/z_en_crow.c
@@ -1,5 +1,6 @@
#include "z_en_crow.h"
+#include "array_count.h"
#include "gfx_setupdl.h"
#include "ichain.h"
#include "rand.h"
@@ -43,12 +44,12 @@ ActorProfile En_Crow_Profile = {
/**/ EnCrow_Draw,
};
-static ColliderJntSphElementInit sJntSphElementsInit[1] = {
+static ColliderJntSphElementInit sJntSphElementsInit[] = {
{
{
ELEM_MATERIAL_UNK0,
- { 0xFFCFFFFF, 0x00, 0x08 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x08 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_HARD,
ACELEM_ON,
OCELEM_ON,
@@ -66,7 +67,7 @@ static ColliderJntSphInit sJntSphInit = {
OC2_TYPE_1,
COLSHAPE_JNTSPH,
},
- 1,
+ ARRAY_COUNT(sJntSphElementsInit),
sJntSphElementsInit,
};
diff --git a/src/overlays/actors/ovl_En_Cs/z_en_cs.c b/src/overlays/actors/ovl_En_Cs/z_en_cs.c
index ce9f69f5cd..51825392be 100644
--- a/src/overlays/actors/ovl_En_Cs/z_en_cs.c
+++ b/src/overlays/actors/ovl_En_Cs/z_en_cs.c
@@ -52,8 +52,8 @@ static ColliderCylinderInit sCylinderInit = {
},
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0x00000000, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0x00000000, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_NONE,
OCELEM_ON,
diff --git a/src/overlays/actors/ovl_En_Daiku/z_en_daiku.c b/src/overlays/actors/ovl_En_Daiku/z_en_daiku.c
index 628e7de831..f3fc6fc1a8 100644
--- a/src/overlays/actors/ovl_En_Daiku/z_en_daiku.c
+++ b/src/overlays/actors/ovl_En_Daiku/z_en_daiku.c
@@ -83,8 +83,8 @@ static ColliderCylinderInit sCylinderInit = {
},
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0x00000000, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0x00000000, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_NONE,
OCELEM_ON,
diff --git a/src/overlays/actors/ovl_En_Daiku_Kakariko/z_en_daiku_kakariko.c b/src/overlays/actors/ovl_En_Daiku_Kakariko/z_en_daiku_kakariko.c
index 7401a84e38..d74149bdcd 100644
--- a/src/overlays/actors/ovl_En_Daiku_Kakariko/z_en_daiku_kakariko.c
+++ b/src/overlays/actors/ovl_En_Daiku_Kakariko/z_en_daiku_kakariko.c
@@ -65,8 +65,8 @@ static ColliderCylinderInit sCylinderInit = {
},
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0x00000000, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0x00000000, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_NONE,
OCELEM_ON,
diff --git a/src/overlays/actors/ovl_En_Dekubaba/z_en_dekubaba.c b/src/overlays/actors/ovl_En_Dekubaba/z_en_dekubaba.c
index d30784b4c1..dd2a3d45b7 100644
--- a/src/overlays/actors/ovl_En_Dekubaba/z_en_dekubaba.c
+++ b/src/overlays/actors/ovl_En_Dekubaba/z_en_dekubaba.c
@@ -55,12 +55,12 @@ ActorProfile En_Dekubaba_Profile = {
/**/ EnDekubaba_Draw,
};
-static ColliderJntSphElementInit sJntSphElementsInit[7] = {
+static ColliderJntSphElementInit sJntSphElementsInit[] = {
{
{
ELEM_MATERIAL_UNK0,
- { 0xFFCFFFFF, 0x00, 0x08 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x08 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_HARD,
ACELEM_ON,
OCELEM_ON,
@@ -70,8 +70,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[7] = {
{
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_NONE,
OCELEM_ON,
@@ -81,8 +81,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[7] = {
{
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_NONE,
OCELEM_NONE,
@@ -92,8 +92,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[7] = {
{
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_NONE,
OCELEM_NONE,
@@ -103,8 +103,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[7] = {
{
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_NONE,
OCELEM_NONE,
@@ -114,8 +114,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[7] = {
{
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_NONE,
OCELEM_NONE,
@@ -125,8 +125,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[7] = {
{
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_NONE,
OCELEM_NONE,
@@ -144,7 +144,7 @@ static ColliderJntSphInit sJntSphInit = {
OC2_TYPE_1,
COLSHAPE_JNTSPH,
},
- 7,
+ ARRAY_COUNT(sJntSphElementsInit),
sJntSphElementsInit,
};
diff --git a/src/overlays/actors/ovl_En_Dekunuts/z_en_dekunuts.c b/src/overlays/actors/ovl_En_Dekunuts/z_en_dekunuts.c
index dac88693bc..1197e36c9d 100644
--- a/src/overlays/actors/ovl_En_Dekunuts/z_en_dekunuts.c
+++ b/src/overlays/actors/ovl_En_Dekunuts/z_en_dekunuts.c
@@ -62,8 +62,8 @@ static ColliderCylinderInit sCylinderInit = {
},
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON,
OCELEM_ON,
diff --git a/src/overlays/actors/ovl_En_Dh/z_en_dh.c b/src/overlays/actors/ovl_En_Dh/z_en_dh.c
index 7870669259..dc7007f672 100644
--- a/src/overlays/actors/ovl_En_Dh/z_en_dh.c
+++ b/src/overlays/actors/ovl_En_Dh/z_en_dh.c
@@ -7,6 +7,7 @@
#include "z_en_dh.h"
#include "libc64/qrand.h"
+#include "array_count.h"
#include "attributes.h"
#include "gfx.h"
#include "gfx_setupdl.h"
@@ -81,8 +82,8 @@ static ColliderCylinderInit sCylinderInit = {
},
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0x00000008, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0x00000008, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON,
OCELEM_ON,
@@ -90,12 +91,12 @@ static ColliderCylinderInit sCylinderInit = {
{ 35, 70, 0, { 0, 0, 0 } },
};
-static ColliderJntSphElementInit sJntSphElementsInit[1] = {
+static ColliderJntSphElementInit sJntSphElementsInit[] = {
{
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON,
OCELEM_ON | OCELEM_UNK3,
@@ -113,7 +114,7 @@ static ColliderJntSphInit sJntSphInit = {
OC2_TYPE_1,
COLSHAPE_JNTSPH,
},
- 1,
+ ARRAY_COUNT(sJntSphElementsInit),
sJntSphElementsInit,
};
diff --git a/src/overlays/actors/ovl_En_Dha/z_en_dha.c b/src/overlays/actors/ovl_En_Dha/z_en_dha.c
index 559e4a7213..d93711b6c3 100644
--- a/src/overlays/actors/ovl_En_Dha/z_en_dha.c
+++ b/src/overlays/actors/ovl_En_Dha/z_en_dha.c
@@ -8,6 +8,7 @@
#include "overlays/actors/ovl_En_Dh/z_en_dh.h"
#include "libc64/qrand.h"
+#include "array_count.h"
#include "gfx.h"
#include "gfx_setupdl.h"
#include "ichain.h"
@@ -88,8 +89,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[] = {
{
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON,
OCELEM_NONE,
@@ -99,8 +100,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[] = {
{
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON,
OCELEM_ON,
@@ -110,8 +111,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[] = {
{
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON,
OCELEM_ON,
@@ -121,8 +122,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[] = {
{
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON,
OCELEM_NONE,
@@ -132,8 +133,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[] = {
{
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON,
OCELEM_ON,
@@ -151,7 +152,7 @@ static ColliderJntSphInit sJntSphInit = {
OC2_TYPE_1,
COLSHAPE_JNTSPH,
},
- 5,
+ ARRAY_COUNT(sJntSphElementsInit),
sJntSphElementsInit,
};
diff --git a/src/overlays/actors/ovl_En_Diving_Game/z_en_diving_game.c b/src/overlays/actors/ovl_En_Diving_Game/z_en_diving_game.c
index bcb49b9250..c9c064136d 100644
--- a/src/overlays/actors/ovl_En_Diving_Game/z_en_diving_game.c
+++ b/src/overlays/actors/ovl_En_Diving_Game/z_en_diving_game.c
@@ -78,9 +78,9 @@ static ColliderCylinderInit sCylinderInit = {
},
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0x00000000, 0x00, 0x00 },
- ATELEM_NONE | ATELEM_SFX_NORMAL,
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0x00000000, HIT_BACKLASH_NONE, 0x00 },
+ ATELEM_NONE,
ACELEM_NONE,
OCELEM_ON,
},
diff --git a/src/overlays/actors/ovl_En_Dns/z_en_dns.c b/src/overlays/actors/ovl_En_Dns/z_en_dns.c
index 8dd85d8c2e..ef9ada2258 100644
--- a/src/overlays/actors/ovl_En_Dns/z_en_dns.c
+++ b/src/overlays/actors/ovl_En_Dns/z_en_dns.c
@@ -79,8 +79,8 @@ static ColliderCylinderInitType1 sCylinderInit = {
},
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON,
OCELEM_ON,
diff --git a/src/overlays/actors/ovl_En_Dnt_Demo/z_en_dnt_demo.c b/src/overlays/actors/ovl_En_Dnt_Demo/z_en_dnt_demo.c
index 24e881840f..4e259d3295 100644
--- a/src/overlays/actors/ovl_En_Dnt_Demo/z_en_dnt_demo.c
+++ b/src/overlays/actors/ovl_En_Dnt_Demo/z_en_dnt_demo.c
@@ -184,8 +184,7 @@ void EnDntDemo_Judge(EnDntDemo* this, PlayState* play) {
case PLAYER_MASK_TRUTH:
if (!GET_ITEMGETINF(ITEMGETINF_FOREST_STAGE_NUT_UPGRADE) &&
(Player_GetMask(play) != PLAYER_MASK_SKULL)) {
- Audio_PlaySfxGeneral(NA_SE_SY_TRE_BOX_APPEAR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_TRE_BOX_APPEAR);
this->prize = DNT_PRIZE_NUTS;
this->leader->stageSignal = DNT_LEADER_SIGNAL_UP;
reaction = DNT_SIGNAL_LOOK;
diff --git a/src/overlays/actors/ovl_En_Dnt_Jiji/z_en_dnt_jiji.c b/src/overlays/actors/ovl_En_Dnt_Jiji/z_en_dnt_jiji.c
index dfaa49be28..1bcb628f92 100644
--- a/src/overlays/actors/ovl_En_Dnt_Jiji/z_en_dnt_jiji.c
+++ b/src/overlays/actors/ovl_En_Dnt_Jiji/z_en_dnt_jiji.c
@@ -82,8 +82,8 @@ static ColliderCylinderInit sCylinderInit = {
},
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0x00000000, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0x00000000, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_NONE,
OCELEM_ON,
diff --git a/src/overlays/actors/ovl_En_Dnt_Nomal/z_en_dnt_nomal.c b/src/overlays/actors/ovl_En_Dnt_Nomal/z_en_dnt_nomal.c
index 353f42e63c..d6e00db875 100644
--- a/src/overlays/actors/ovl_En_Dnt_Nomal/z_en_dnt_nomal.c
+++ b/src/overlays/actors/ovl_En_Dnt_Nomal/z_en_dnt_nomal.c
@@ -102,8 +102,8 @@ static ColliderCylinderInit sBodyCylinderInit = {
},
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0x00000000, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0x00000000, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_NONE,
OCELEM_ON,
@@ -122,8 +122,8 @@ static ColliderQuadInit sTargetQuadInit = {
},
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0x0001F824, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0x0001F824, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON,
OCELEM_NONE,
diff --git a/src/overlays/actors/ovl_En_Dodojr/z_en_dodojr.c b/src/overlays/actors/ovl_En_Dodojr/z_en_dodojr.c
index 2f276b25f4..3697c6593e 100644
--- a/src/overlays/actors/ovl_En_Dodojr/z_en_dodojr.c
+++ b/src/overlays/actors/ovl_En_Dodojr/z_en_dodojr.c
@@ -66,8 +66,8 @@ static ColliderCylinderInit sCylinderInit = {
},
{
ELEM_MATERIAL_UNK0,
- { 0xFFCFFFFF, 0x00, 0x08 },
- { 0xFFC5FFFF, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x08 },
+ { 0xFFC5FFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
diff --git a/src/overlays/actors/ovl_En_Dodongo/z_en_dodongo.c b/src/overlays/actors/ovl_En_Dodongo/z_en_dodongo.c
index c7446c4f19..ccbb01753d 100644
--- a/src/overlays/actors/ovl_En_Dodongo/z_en_dodongo.c
+++ b/src/overlays/actors/ovl_En_Dodongo/z_en_dodongo.c
@@ -3,6 +3,7 @@
#include "overlays/actors/ovl_En_Bombf/z_en_bombf.h"
#include "libc64/qrand.h"
+#include "array_count.h"
#include "gfx.h"
#include "gfx_setupdl.h"
#include "ichain.h"
@@ -63,12 +64,12 @@ ActorProfile En_Dodongo_Profile = {
/**/ EnDodongo_Draw,
};
-static ColliderJntSphElementInit sBodyElementsInit[6] = {
+static ColliderJntSphElementInit sBodyElementsInit[] = {
{
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON,
OCELEM_ON,
@@ -78,8 +79,8 @@ static ColliderJntSphElementInit sBodyElementsInit[6] = {
{
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON,
OCELEM_ON,
@@ -89,8 +90,8 @@ static ColliderJntSphElementInit sBodyElementsInit[6] = {
{
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON,
OCELEM_ON,
@@ -100,8 +101,8 @@ static ColliderJntSphElementInit sBodyElementsInit[6] = {
{
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0x00000000, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0x00000000, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_NONE,
OCELEM_ON,
@@ -111,8 +112,8 @@ static ColliderJntSphElementInit sBodyElementsInit[6] = {
{
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0x00000000, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0x00000000, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_NONE,
OCELEM_ON,
@@ -122,8 +123,8 @@ static ColliderJntSphElementInit sBodyElementsInit[6] = {
{
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0x0D800691, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0x0D800691, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON,
OCELEM_ON | OCELEM_UNK3,
@@ -141,16 +142,16 @@ static ColliderJntSphInit sBodyJntSphInit = {
OC2_TYPE_1,
COLSHAPE_JNTSPH,
},
- 6,
+ ARRAY_COUNT(sBodyElementsInit),
sBodyElementsInit,
};
-static ColliderTrisElementInit sHardElementsInit[3] = {
+static ColliderTrisElementInit sHardElementsInit[] = {
{
{
ELEM_MATERIAL_UNK2,
- { 0x00000000, 0x00, 0x00 },
- { 0xF24BF96E, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0xF24BF96E, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON | ACELEM_HOOKABLE | ACELEM_NO_AT_INFO,
OCELEM_NONE,
@@ -160,8 +161,8 @@ static ColliderTrisElementInit sHardElementsInit[3] = {
{
{
ELEM_MATERIAL_UNK2,
- { 0x00000000, 0x00, 0x00 },
- { 0xFFCBF96E, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0xFFCBF96E, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON | ACELEM_HOOKABLE | ACELEM_NO_AT_INFO,
OCELEM_NONE,
@@ -171,8 +172,8 @@ static ColliderTrisElementInit sHardElementsInit[3] = {
{
{
ELEM_MATERIAL_UNK2,
- { 0x00000000, 0x00, 0x00 },
- { 0xFFCBF96E, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0xFFCBF96E, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON | ACELEM_HOOKABLE | ACELEM_NO_AT_INFO,
OCELEM_NONE,
@@ -190,7 +191,7 @@ static ColliderTrisInit sHardTrisInit = {
OC2_NONE,
COLSHAPE_TRIS,
},
- 3,
+ ARRAY_COUNT(sHardElementsInit),
sHardElementsInit,
};
@@ -205,8 +206,8 @@ static ColliderQuadInit sAttackQuadInit = {
},
{
ELEM_MATERIAL_UNK0,
- { 0x20000000, 0x01, 0x10 },
- { 0x00000000, 0x00, 0x00 },
+ { 0x20000000, HIT_SPECIAL_EFFECT_FIRE, 0x10 },
+ { 0x00000000, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL | ATELEM_UNK7,
ACELEM_NONE,
OCELEM_NONE,
diff --git a/src/overlays/actors/ovl_En_Dog/z_en_dog.c b/src/overlays/actors/ovl_En_Dog/z_en_dog.c
index 4f25c38d08..96ff5b3ff9 100644
--- a/src/overlays/actors/ovl_En_Dog/z_en_dog.c
+++ b/src/overlays/actors/ovl_En_Dog/z_en_dog.c
@@ -52,13 +52,13 @@ static ColliderCylinderInit sCylinderInit = {
},
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON,
OCELEM_ON,
},
- { 16, 20, 0, { 0 } },
+ { 16, 20, 0, { 0, 0, 0 } },
};
static CollisionCheckInfoInit2 sColChkInfoInit = { 0, 0, 0, 0, 50 };
diff --git a/src/overlays/actors/ovl_En_Ds/z_en_ds.c b/src/overlays/actors/ovl_En_Ds/z_en_ds.c
index 1568736109..ccbafc39da 100644
--- a/src/overlays/actors/ovl_En_Ds/z_en_ds.c
+++ b/src/overlays/actors/ovl_En_Ds/z_en_ds.c
@@ -217,8 +217,7 @@ void EnDs_Wait(EnDs* this, PlayState* play) {
if (Actor_TalkOfferAccepted(&this->actor, play)) {
if (Actor_GetPlayerExchangeItemId(play) == EXCH_ITEM_ODD_MUSHROOM) {
- Audio_PlaySfxGeneral(NA_SE_SY_TRE_BOX_APPEAR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_TRE_BOX_APPEAR);
player->actor.textId = 0x504A;
this->actionFunc = EnDs_OfferOddPotion;
} else if (GET_ITEMGETINF(ITEMGETINF_30)) {
diff --git a/src/overlays/actors/ovl_En_Du/z_en_du.c b/src/overlays/actors/ovl_En_Du/z_en_du.c
index a89c572a83..ac71becd07 100644
--- a/src/overlays/actors/ovl_En_Du/z_en_du.c
+++ b/src/overlays/actors/ovl_En_Du/z_en_du.c
@@ -60,8 +60,8 @@ static ColliderCylinderInit sCylinderInit = {
},
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0x00000000, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0x00000000, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_NONE,
OCELEM_ON,
@@ -307,7 +307,7 @@ void EnDu_Init(Actor* thisx, PlayState* play) {
this->actor.attentionRangeType = ATTENTION_RANGE_1;
this->interactInfo.talkState = NPC_TALK_STATE_IDLE;
- if (gSaveContext.save.cutsceneIndex >= 0xFFF0) {
+ if (gSaveContext.save.cutsceneIndex >= CS_INDEX_0) {
play->csCtx.script = SEGMENTED_TO_VIRTUAL(gGoronCityDaruniaDancingCs);
gSaveContext.cutsceneTrigger = 1;
EnDu_SetupAction(this, func_809FE890);
@@ -362,8 +362,7 @@ void func_809FE4A4(EnDu* this, PlayState* play) {
EnDu_SetupAction(this, func_809FE890);
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);
+ SFX_PLAY_CENTERED(NA_SE_SY_CORRECT_CHIME);
play->csCtx.script = SEGMENTED_TO_VIRTUAL(gGoronCityDaruniaCorrectSongCs);
gSaveContext.cutsceneTrigger = 1;
this->unk_1E8 = 0;
diff --git a/src/overlays/actors/ovl_En_Eiyer/z_en_eiyer.c b/src/overlays/actors/ovl_En_Eiyer/z_en_eiyer.c
index f0a5b4466e..953ee1597e 100644
--- a/src/overlays/actors/ovl_En_Eiyer/z_en_eiyer.c
+++ b/src/overlays/actors/ovl_En_Eiyer/z_en_eiyer.c
@@ -70,8 +70,8 @@ static ColliderCylinderInit sColliderCylinderInit = {
},
{
ELEM_MATERIAL_UNK0,
- { 0xFFCFFFFF, 0x04, 0x08 },
- { 0x00000019, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_KNOCKBACK, 0x08 },
+ { 0x00000019, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_HARD,
ACELEM_ON,
OCELEM_ON,
diff --git a/src/overlays/actors/ovl_En_Fd/z_en_fd.c b/src/overlays/actors/ovl_En_Fd/z_en_fd.c
index 8050aef560..df2b2d2c59 100644
--- a/src/overlays/actors/ovl_En_Fd/z_en_fd.c
+++ b/src/overlays/actors/ovl_En_Fd/z_en_fd.c
@@ -8,6 +8,7 @@
#include "libc64/math64.h"
#include "libc64/qrand.h"
+#include "array_count.h"
#include "gfx.h"
#include "gfx_setupdl.h"
#include "segmented_address.h"
@@ -62,12 +63,12 @@ ActorProfile En_Fd_Profile = {
#define FLARE_DANCER_BODY_DMG 0x04
#endif
-static ColliderJntSphElementInit sJntSphElementsInit[12] = {
+static ColliderJntSphElementInit sJntSphElementsInit[] = {
{
{
ELEM_MATERIAL_UNK0,
- { 0xFFCFFFFF, 0x01, FLARE_DANCER_BODY_DMG },
- { 0x00040088, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_FIRE, FLARE_DANCER_BODY_DMG },
+ { 0x00040088, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON | ACELEM_HOOKABLE,
OCELEM_ON,
@@ -77,8 +78,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[12] = {
{
{
ELEM_MATERIAL_UNK0,
- { 0xFFCFFFFF, 0x01, FLARE_DANCER_BODY_DMG },
- { 0x00040008, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_FIRE, FLARE_DANCER_BODY_DMG },
+ { 0x00040008, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
@@ -88,8 +89,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[12] = {
{
{
ELEM_MATERIAL_UNK0,
- { 0xFFCFFFFF, 0x01, FLARE_DANCER_BODY_DMG },
- { 0x00040008, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_FIRE, FLARE_DANCER_BODY_DMG },
+ { 0x00040008, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
@@ -99,8 +100,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[12] = {
{
{
ELEM_MATERIAL_UNK0,
- { 0xFFCFFFFF, 0x01, FLARE_DANCER_BODY_DMG },
- { 0x00040008, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_FIRE, FLARE_DANCER_BODY_DMG },
+ { 0x00040008, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
@@ -110,8 +111,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[12] = {
{
{
ELEM_MATERIAL_UNK0,
- { 0xFFCFFFFF, 0x01, FLARE_DANCER_BODY_DMG },
- { 0x00040008, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_FIRE, FLARE_DANCER_BODY_DMG },
+ { 0x00040008, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
@@ -121,8 +122,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[12] = {
{
{
ELEM_MATERIAL_UNK0,
- { 0xFFCFFFFF, 0x01, FLARE_DANCER_BODY_DMG },
- { 0x00040008, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_FIRE, FLARE_DANCER_BODY_DMG },
+ { 0x00040008, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
@@ -132,8 +133,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[12] = {
{
{
ELEM_MATERIAL_UNK0,
- { 0xFFCFFFFF, 0x01, FLARE_DANCER_BODY_DMG },
- { 0x00040008, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_FIRE, FLARE_DANCER_BODY_DMG },
+ { 0x00040008, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
@@ -143,8 +144,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[12] = {
{
{
ELEM_MATERIAL_UNK0,
- { 0xFFCFFFFF, 0x01, FLARE_DANCER_BODY_DMG },
- { 0x00040008, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_FIRE, FLARE_DANCER_BODY_DMG },
+ { 0x00040008, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
@@ -154,8 +155,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[12] = {
{
{
ELEM_MATERIAL_UNK0,
- { 0xFFCFFFFF, 0x01, FLARE_DANCER_BODY_DMG },
- { 0x00040008, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_FIRE, FLARE_DANCER_BODY_DMG },
+ { 0x00040008, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
@@ -165,8 +166,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[12] = {
{
{
ELEM_MATERIAL_UNK0,
- { 0xFFCFFFFF, 0x01, FLARE_DANCER_BODY_DMG },
- { 0x00040008, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_FIRE, FLARE_DANCER_BODY_DMG },
+ { 0x00040008, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
@@ -176,8 +177,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[12] = {
{
{
ELEM_MATERIAL_UNK0,
- { 0xFFCFFFFF, 0x01, FLARE_DANCER_BODY_DMG },
- { 0x00040008, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_FIRE, FLARE_DANCER_BODY_DMG },
+ { 0x00040008, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
@@ -187,8 +188,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[12] = {
{
{
ELEM_MATERIAL_UNK0,
- { 0xFFCFFFFF, 0x01, FLARE_DANCER_BODY_DMG },
- { 0x00040008, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_FIRE, FLARE_DANCER_BODY_DMG },
+ { 0x00040008, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
@@ -206,7 +207,7 @@ static ColliderJntSphInit sJntSphInit = {
OC2_TYPE_1,
COLSHAPE_JNTSPH,
},
- 12,
+ ARRAY_COUNT(sJntSphElementsInit),
sJntSphElementsInit,
};
diff --git a/src/overlays/actors/ovl_En_Fd_Fire/z_en_fd_fire.c b/src/overlays/actors/ovl_En_Fd_Fire/z_en_fd_fire.c
index a26b54a64a..334fc24d35 100644
--- a/src/overlays/actors/ovl_En_Fd_Fire/z_en_fd_fire.c
+++ b/src/overlays/actors/ovl_En_Fd_Fire/z_en_fd_fire.c
@@ -45,8 +45,8 @@ static ColliderCylinderInit sCylinderInit = {
},
{
ELEM_MATERIAL_UNK0,
- { 0xFFCFFFFF, 0x01, 0x08 },
- { 0x0D840008, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_FIRE, 0x08 },
+ { 0x0D840008, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
diff --git a/src/overlays/actors/ovl_En_Fhg_Fire/z_en_fhg_fire.c b/src/overlays/actors/ovl_En_Fhg_Fire/z_en_fhg_fire.c
index 793f6a5e82..8820c17de0 100644
--- a/src/overlays/actors/ovl_En_Fhg_Fire/z_en_fhg_fire.c
+++ b/src/overlays/actors/ovl_En_Fhg_Fire/z_en_fhg_fire.c
@@ -85,9 +85,9 @@ static ColliderCylinderInit sCylinderInit = {
},
{
ELEM_MATERIAL_UNK6,
- { 0x00100700, 0x03, 0x20 },
- { 0x0D900700, 0x00, 0x00 },
- ATELEM_ON,
+ { 0x00100700, HIT_SPECIAL_EFFECT_ELECTRIC, 0x20 },
+ { 0x0D900700, HIT_BACKLASH_NONE, 0x00 },
+ ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
},
@@ -511,9 +511,7 @@ void EnFhgFire_EnergyBall(EnFhgFire* this, PlayState* play) {
canBottleReflect2 = canBottleReflect1;
if (!canBottleReflect2 && (acHitElem->atDmgInfo.dmgFlags & DMG_SHIELD)) {
killMode = BALL_IMPACT;
- Audio_PlaySfxGeneral(NA_SE_IT_SHIELD_REFLECT_MG, &player->actor.projectedPos, 4,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&player->actor.projectedPos, NA_SE_IT_SHIELD_REFLECT_MG);
Rumble_Request(this->actor.xyzDistToPlayerSq, 255, 20, 150);
} else {
if (bossGnd->flyMode == GND_FLY_NEUTRAL) {
@@ -540,9 +538,7 @@ void EnFhgFire_EnergyBall(EnFhgFire* this, PlayState* play) {
RAD_TO_BINANG(Math_FAtan2F(dyPG, sqrtf((dxPG * dxPG) + (dzPG * dzPG)))) + angleModX;
this->work[FHGFIRE_FIRE_MODE] = FHGFIRE_LIGHT_BLUE;
this->work[FHGFIRE_FX_TIMER] = 2;
- Audio_PlaySfxGeneral(NA_SE_IT_SWORD_REFLECT_MG, &player->actor.projectedPos, 4,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&player->actor.projectedPos, NA_SE_IT_SWORD_REFLECT_MG);
Rumble_Request(this->actor.xyzDistToPlayerSq, 180, 20, 100);
}
break;
@@ -554,7 +550,7 @@ void EnFhgFire_EnergyBall(EnFhgFire* this, PlayState* play) {
Actor_PlaySfx(&this->actor, NA_SE_EN_FANTOM_LAUGH);
}
Actor_SetPlayerKnockback(play, &this->actor, 3.0f, this->actor.world.rot.y, 0.0f,
- PLAYER_KNOCKBACK_LARGE_SHOCK, 0x10);
+ PLAYER_KNOCKBACK_LARGE_ELECTRIFIED, 0x10);
}
break;
case FHGFIRE_LIGHT_BLUE:
@@ -576,12 +572,8 @@ void EnFhgFire_EnergyBall(EnFhgFire* this, PlayState* play) {
if ((fabsf(dxPG) < 30.0f) && (fabsf(dzPG) < 30.0f) && (fabsf(dyPG) < 45.0f)) {
killMode = BALL_IMPACT;
bossGnd->returnCount = this->work[FHGFIRE_RETURN_COUNT] + 1;
- Audio_PlaySfxGeneral(NA_SE_EN_FANTOM_HIT_THUNDER, &bossGnd->actor.projectedPos, 4,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultReverb);
- Audio_PlaySfxGeneral(NA_SE_EN_FANTOM_DAMAGE, &bossGnd->actor.projectedPos, 4,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&bossGnd->actor.projectedPos, NA_SE_EN_FANTOM_HIT_THUNDER);
+ SFX_PLAY_AT_POS(&bossGnd->actor.projectedPos, NA_SE_EN_FANTOM_DAMAGE);
}
}
break;
diff --git a/src/overlays/actors/ovl_En_Fire_Rock/z_en_fire_rock.c b/src/overlays/actors/ovl_En_Fire_Rock/z_en_fire_rock.c
index f07d0ac868..ca0640377d 100644
--- a/src/overlays/actors/ovl_En_Fire_Rock/z_en_fire_rock.c
+++ b/src/overlays/actors/ovl_En_Fire_Rock/z_en_fire_rock.c
@@ -54,8 +54,8 @@ static ColliderCylinderInit D_80A12CA0 = {
},
{
ELEM_MATERIAL_UNK0,
- { 0xFFCFFFFF, 0x09, 0x08 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_9, 0x08 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_NONE,
@@ -74,8 +74,8 @@ static ColliderCylinderInit D_80A12CCC = {
},
{
ELEM_MATERIAL_UNK0,
- { 0xFFCFFFFF, 0x01, 0x08 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_FIRE, 0x08 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_NONE,
diff --git a/src/overlays/actors/ovl_En_Firefly/z_en_firefly.c b/src/overlays/actors/ovl_En_Firefly/z_en_firefly.c
index e3df3a19f1..5de7f1e5a9 100644
--- a/src/overlays/actors/ovl_En_Firefly/z_en_firefly.c
+++ b/src/overlays/actors/ovl_En_Firefly/z_en_firefly.c
@@ -8,6 +8,7 @@
#include "overlays/actors/ovl_Obj_Syokudai/z_obj_syokudai.h"
#include "libc64/qrand.h"
+#include "array_count.h"
#include "gfx.h"
#include "gfx_setupdl.h"
#include "ichain.h"
@@ -62,12 +63,12 @@ ActorProfile En_Firefly_Profile = {
/**/ EnFirefly_Draw,
};
-static ColliderJntSphElementInit sJntSphElementsInit[1] = {
+static ColliderJntSphElementInit sJntSphElementsInit[] = {
{
{
ELEM_MATERIAL_UNK0,
- { 0xFFCFFFFF, 0x01, 0x08 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_FIRE, 0x08 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_HARD,
ACELEM_ON,
OCELEM_ON,
@@ -85,7 +86,7 @@ static ColliderJntSphInit sJntSphInit = {
OC2_TYPE_1,
COLSHAPE_JNTSPH,
},
- 1,
+ ARRAY_COUNT(sJntSphElementsInit),
sJntSphElementsInit,
};
@@ -134,7 +135,7 @@ static InitChainEntry sInitChain[] = {
void EnFirefly_Extinguish(EnFirefly* this) {
this->actor.params += 2;
- this->collider.elements[0].base.atDmgInfo.effect = 0; // None
+ this->collider.elements[0].base.atDmgInfo.hitSpecialEffect = HIT_SPECIAL_EFFECT_NONE;
this->auraType = KEESE_AURA_NONE;
this->onFire = false;
this->actor.naviEnemyId = NAVI_ENEMY_KEESE;
@@ -146,7 +147,7 @@ void EnFirefly_Ignite(EnFirefly* this) {
} else {
this->actor.params -= 2;
}
- this->collider.elements[0].base.atDmgInfo.effect = 1; // Fire
+ this->collider.elements[0].base.atDmgInfo.hitSpecialEffect = HIT_SPECIAL_EFFECT_FIRE;
this->auraType = KEESE_AURA_FIRE;
this->onFire = true;
this->actor.naviEnemyId = NAVI_ENEMY_FIRE_KEESE;
@@ -190,10 +191,10 @@ void EnFirefly_Init(Actor* thisx, PlayState* play) {
}
if (this->actor.params == KEESE_ICE_FLY) {
- this->collider.elements[0].base.atDmgInfo.effect = 2; // Ice
+ this->collider.elements[0].base.atDmgInfo.hitSpecialEffect = HIT_SPECIAL_EFFECT_ICE;
this->actor.naviEnemyId = NAVI_ENEMY_ICE_KEESE;
} else {
- this->collider.elements[0].base.atDmgInfo.effect = 0; // Nothing
+ this->collider.elements[0].base.atDmgInfo.hitSpecialEffect = HIT_SPECIAL_EFFECT_NONE;
this->actor.naviEnemyId = NAVI_ENEMY_KEESE;
}
diff --git a/src/overlays/actors/ovl_En_Fish/z_en_fish.c b/src/overlays/actors/ovl_En_Fish/z_en_fish.c
index ce2cb23937..9bc08c7a4c 100644
--- a/src/overlays/actors/ovl_En_Fish/z_en_fish.c
+++ b/src/overlays/actors/ovl_En_Fish/z_en_fish.c
@@ -7,6 +7,7 @@
#include "z_en_fish.h"
#include "libc64/qrand.h"
+#include "array_count.h"
#include "gfx.h"
#include "gfx_setupdl.h"
#include "ichain.h"
@@ -50,12 +51,12 @@ static Actor* D_80A17010 = NULL;
static f32 D_80A17014 = 0.0f;
static f32 D_80A17018 = 0.0f;
-static ColliderJntSphElementInit sJntSphElementsInit[1] = {
+static ColliderJntSphElementInit sJntSphElementsInit[] = {
{
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_NONE,
OCELEM_ON,
@@ -73,7 +74,7 @@ static ColliderJntSphInit sJntSphInit = {
OC2_TYPE_1,
COLSHAPE_JNTSPH,
},
- 1,
+ ARRAY_COUNT(sJntSphElementsInit),
sJntSphElementsInit,
};
diff --git a/src/overlays/actors/ovl_En_Floormas/z_en_floormas.c b/src/overlays/actors/ovl_En_Floormas/z_en_floormas.c
index 2c102649c3..0cf427357e 100644
--- a/src/overlays/actors/ovl_En_Floormas/z_en_floormas.c
+++ b/src/overlays/actors/ovl_En_Floormas/z_en_floormas.c
@@ -80,8 +80,8 @@ static ColliderCylinderInit sCylinderInit = {
},
{
ELEM_MATERIAL_UNK0,
- { 0xFFCFFFFF, 0x04, 0x10 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_KNOCKBACK, 0x10 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_HARD,
ACELEM_ON | ACELEM_HOOKABLE,
OCELEM_ON,
diff --git a/src/overlays/actors/ovl_En_Fu/z_en_fu.c b/src/overlays/actors/ovl_En_Fu/z_en_fu.c
index e8cfb6342f..1d70c37e8f 100644
--- a/src/overlays/actors/ovl_En_Fu/z_en_fu.c
+++ b/src/overlays/actors/ovl_En_Fu/z_en_fu.c
@@ -66,8 +66,8 @@ static ColliderCylinderInit sCylinderInit = {
},
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON,
OCELEM_ON,
@@ -92,7 +92,7 @@ void EnFu_Init(Actor* thisx, PlayState* play) {
ActorShape_Init(&this->actor.shape, 0.0f, ActorShadow_DrawCircle, 36.0f);
SkelAnime_InitFlex(play, &this->skelanime, &gWindmillManSkel, &gWindmillManPlayStillAnim, this->jointTable,
- this->morphTable, FU_LIMB_MAX);
+ this->morphTable, WINDMILL_MAN_LIMB_MAX);
Animation_PlayLoop(&this->skelanime, &gWindmillManPlayStillAnim);
Collider_InitCylinder(play, &this->collider);
Collider_SetCylinder(play, &this->collider, &this->actor, &sCylinderInit);
@@ -276,15 +276,15 @@ s32 EnFu_OverrideLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3f* po
EnFu* this = (EnFu*)thisx;
s32 pad;
- if (limbIndex == FU_LIMB_UNK) {
+ if (limbIndex == WINDMILL_MAN_LIMB_UNK) {
return false;
}
switch (limbIndex) {
- case FU_LIMB_HEAD:
+ case WINDMILL_MAN_LIMB_HEAD:
rot->x += this->lookAngleOffset.y;
rot->z += this->lookAngleOffset.x;
break;
- case FU_LIMB_CHEST_MUSIC_BOX:
+ case WINDMILL_MAN_LIMB_CHEST_MUSIC_BOX:
break;
}
@@ -292,7 +292,7 @@ s32 EnFu_OverrideLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3f* po
return false;
}
- if (limbIndex == FU_LIMB_CHEST_MUSIC_BOX) {
+ if (limbIndex == WINDMILL_MAN_LIMB_CHEST_MUSIC_BOX) {
rot->y += Math_SinS((play->state.frames * (limbIndex * FIDGET_FREQ_LIMB + FIDGET_FREQ_Y))) * FIDGET_AMPLITUDE;
rot->z += Math_CosS((play->state.frames * (limbIndex * FIDGET_FREQ_LIMB + FIDGET_FREQ_Z))) * FIDGET_AMPLITUDE;
}
@@ -302,7 +302,7 @@ s32 EnFu_OverrideLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3f* po
void EnFu_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot, void* thisx) {
EnFu* this = (EnFu*)thisx;
- if (limbIndex == FU_LIMB_HEAD) {
+ if (limbIndex == WINDMILL_MAN_LIMB_HEAD) {
Matrix_MultVec3f(&sMtxSrc, &this->actor.focus.pos);
}
}
diff --git a/src/overlays/actors/ovl_En_Fu/z_en_fu.h b/src/overlays/actors/ovl_En_Fu/z_en_fu.h
index d2138f7613..bfd2842e14 100644
--- a/src/overlays/actors/ovl_En_Fu/z_en_fu.h
+++ b/src/overlays/actors/ovl_En_Fu/z_en_fu.h
@@ -4,36 +4,18 @@
#include "ultra64.h"
#include "actor.h"
+#include "assets/objects/object_fu/object_fu.h"
+
struct EnFu;
typedef void (*EnFuActionFunc)(struct EnFu*, struct PlayState*);
-typedef enum EnFuLimb {
- /* 0x00 */ FU_LIMB_ROOT,
- /* 0x01 */ FU_LIMB_TORSO,
- /* 0x02 */ FU_LIMB_LEFT_THIGH,
- /* 0x03 */ FU_LIMB_LEFT_LEG,
- /* 0x04 */ FU_LIMB_LEFT_FOOT,
- /* 0x05 */ FU_LIMB_RIGHT_THIGH,
- /* 0x06 */ FU_LIMB_RIGHT_LEG,
- /* 0x07 */ FU_LIMB_RIGHT_FOOT,
- /* 0x08 */ FU_LIMB_CHEST_MUSIC_BOX,
- /* 0x09 */ FU_LIMB_LEFT_ARM_MUSIC_BOX,
- /* 0x0A */ FU_LIMB_UNK,
- /* 0x0B */ FU_LIMB_RIGHT_SHOULDER,
- /* 0x0C */ FU_LIMB_RIGHT_ARM,
- /* 0x0D */ FU_LIMB_RIGHT_HAND_AND_CRANK,
- /* 0x0E */ FU_LIMB_HEAD,
- /* 0x0F */ FU_LIMB_HORN,
- /* 0x10 */ FU_LIMB_MAX
-} EnFuLimb;
-
typedef struct EnFu {
/* 0x0000 */ Actor actor;
/* 0x014C */ ColliderCylinder collider;
/* 0x0198 */ SkelAnime skelanime;
- /* 0x01DC */ Vec3s jointTable[FU_LIMB_MAX];
- /* 0x023C */ Vec3s morphTable[FU_LIMB_MAX];
+ /* 0x01DC */ Vec3s jointTable[WINDMILL_MAN_LIMB_MAX];
+ /* 0x023C */ Vec3s morphTable[WINDMILL_MAN_LIMB_MAX];
/* 0x029C */ Vec3s lookAngleOffset; // offset applied to neck rotation to look at link when he is close
/* 0x02A2 */ Vec3s unk_2A2;
/* 0x02A8 */ u16 behaviorFlags;
diff --git a/src/overlays/actors/ovl_En_Fw/z_en_fw.c b/src/overlays/actors/ovl_En_Fw/z_en_fw.c
index 9d8b9e5aa3..80928b164e 100644
--- a/src/overlays/actors/ovl_En_Fw/z_en_fw.c
+++ b/src/overlays/actors/ovl_En_Fw/z_en_fw.c
@@ -9,6 +9,7 @@
#include "libc64/math64.h"
#include "libc64/qrand.h"
+#include "array_count.h"
#include "gfx.h"
#include "gfx_setupdl.h"
#include "segmented_address.h"
@@ -51,12 +52,12 @@ ActorProfile En_Fw_Profile = {
/**/ EnFw_Draw,
};
-static ColliderJntSphElementInit sJntSphElementsInit[1] = {
+static ColliderJntSphElementInit sJntSphElementsInit[] = {
{
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x04 },
- { 0xFFCFFFFE, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x04 },
+ { 0xFFCFFFFE, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON | ACELEM_HOOKABLE,
OCELEM_ON,
@@ -74,7 +75,7 @@ static ColliderJntSphInit sJntSphInit = {
OC2_TYPE_1,
COLSHAPE_JNTSPH,
},
- 1,
+ ARRAY_COUNT(sJntSphElementsInit),
sJntSphElementsInit,
};
diff --git a/src/overlays/actors/ovl_En_Fz/z_en_fz.c b/src/overlays/actors/ovl_En_Fz/z_en_fz.c
index fc0c1363bb..e2f5d28e09 100644
--- a/src/overlays/actors/ovl_En_Fz/z_en_fz.c
+++ b/src/overlays/actors/ovl_En_Fz/z_en_fz.c
@@ -82,8 +82,8 @@ static ColliderCylinderInitType1 sCylinderInit1 = {
},
{
ELEM_MATERIAL_UNK0,
- { 0xFFCFFFFF, 0x00, 0x00 },
- { 0xFFCE0FDB, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0xFFCE0FDB, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON | ACELEM_HOOKABLE,
OCELEM_ON,
@@ -101,8 +101,8 @@ static ColliderCylinderInitType1 sCylinderInit2 = {
},
{
ELEM_MATERIAL_UNK0,
- { 0xFFCFFFFF, 0x00, 0x00 },
- { 0x0001F024, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0x0001F024, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON,
OCELEM_NONE,
@@ -120,8 +120,8 @@ static ColliderCylinderInitType1 sCylinderInit3 = {
},
{
ELEM_MATERIAL_UNK0,
- { 0x20000000, 0x02, 0x08 },
- { 0x00000000, 0x00, 0x00 },
+ { 0x20000000, HIT_SPECIAL_EFFECT_ICE, 0x08 },
+ { 0x00000000, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_NONE,
OCELEM_NONE,
diff --git a/src/overlays/actors/ovl_En_G_Switch/z_en_g_switch.c b/src/overlays/actors/ovl_En_G_Switch/z_en_g_switch.c
index bc8c75c255..cc03db16fc 100644
--- a/src/overlays/actors/ovl_En_G_Switch/z_en_g_switch.c
+++ b/src/overlays/actors/ovl_En_G_Switch/z_en_g_switch.c
@@ -70,8 +70,8 @@ static ColliderCylinderInit sCylinderInit = {
},
{
ELEM_MATERIAL_UNK2,
- { 0x00000000, 0x00, 0x00 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON,
OCELEM_NONE,
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_En_Gb/z_en_gb.c b/src/overlays/actors/ovl_En_Gb/z_en_gb.c
index ccf8740470..aaedbd8560 100644
--- a/src/overlays/actors/ovl_En_Gb/z_en_gb.c
+++ b/src/overlays/actors/ovl_En_Gb/z_en_gb.c
@@ -70,8 +70,8 @@ static ColliderCylinderInitType1 sCylinderInit = {
},
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0x00000000, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0x00000000, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_NONE,
OCELEM_ON,
diff --git a/src/overlays/actors/ovl_En_Ge1/z_en_ge1.c b/src/overlays/actors/ovl_En_Ge1/z_en_ge1.c
index 6d08efd921..cf3a74c292 100644
--- a/src/overlays/actors/ovl_En_Ge1/z_en_ge1.c
+++ b/src/overlays/actors/ovl_En_Ge1/z_en_ge1.c
@@ -78,8 +78,8 @@ static ColliderCylinderInit sCylinderInit = {
},
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0x00000702, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0x00000702, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON,
OCELEM_ON,
@@ -107,7 +107,7 @@ void EnGe1_Init(Actor* thisx, PlayState* play) {
ActorShape_Init(&this->actor.shape, 0.0f, ActorShadow_DrawCircle, 30.0f);
SkelAnime_InitFlex(play, &this->skelAnime, &gGerudoWhiteSkel, &gGerudoWhiteIdleAnim, this->jointTable,
- this->morphTable, GE1_LIMB_MAX);
+ this->morphTable, GERUDO_WHITE_LIMB_MAX);
Animation_PlayOnce(&this->skelAnime, &gGerudoWhiteIdleAnim);
Collider_InitCylinder(play, &this->collider);
Collider_SetCylinder(play, &this->collider, &this->actor, &sCylinderInit);
@@ -593,7 +593,7 @@ void EnGe1_BeginGame_Archery(EnGe1* this, PlayState* play) {
} else {
Rupees_ChangeBy(-20);
play->nextEntranceIndex = ENTR_GERUDOS_FORTRESS_0;
- gSaveContext.nextCutsceneIndex = 0xFFF0;
+ gSaveContext.nextCutsceneIndex = CS_INDEX_0;
play->transitionType = TRANS_TYPE_CIRCLE(TCA_STARBURST, TCC_BLACK, TCS_FAST);
play->transitionTrigger = TRANS_TRIGGER_START;
SET_EVENTINF(EVENTINF_HORSES_08);
@@ -780,7 +780,7 @@ s32 EnGe1_OverrideLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3f* p
s32 pad;
EnGe1* this = (EnGe1*)thisx;
- if (limbIndex == GE1_LIMB_HEAD) {
+ if (limbIndex == GERUDO_WHITE_LIMB_HEAD) {
rot->x += this->headRot.y;
rot->z += this->headRot.x;
}
@@ -792,7 +792,8 @@ s32 EnGe1_OverrideLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3f* p
// The purpose of the state flag GE1_STATE_STOP_FIDGET is to skip this code, which this actor has in lieu of an idle
// animation.
- if ((limbIndex == GE1_LIMB_TORSO) || (limbIndex == GE1_LIMB_L_FOREARM) || (limbIndex == GE1_LIMB_R_FOREARM)) {
+ if ((limbIndex == GERUDO_WHITE_LIMB_TORSO) || (limbIndex == GERUDO_WHITE_LIMB_L_FOREARM) ||
+ (limbIndex == GERUDO_WHITE_LIMB_R_FOREARM)) {
rot->y += Math_SinS(play->state.frames * (limbIndex * FIDGET_FREQ_LIMB + FIDGET_FREQ_Y)) * FIDGET_AMPLITUDE;
rot->z += Math_CosS(play->state.frames * (limbIndex * FIDGET_FREQ_LIMB + FIDGET_FREQ_Z)) * FIDGET_AMPLITUDE;
}
@@ -804,7 +805,7 @@ void EnGe1_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot,
OPEN_DISPS(play->state.gfxCtx, "../z_en_ge1.c", 1419);
- if (limbIndex == GE1_LIMB_HEAD) {
+ if (limbIndex == GERUDO_WHITE_LIMB_HEAD) {
gSPDisplayList(POLY_OPA_DISP++, sHairstyleDLists[this->hairstyle]);
Matrix_MultVec3f(&D_80A327A8, &this->actor.focus.pos);
}
diff --git a/src/overlays/actors/ovl_En_Ge1/z_en_ge1.h b/src/overlays/actors/ovl_En_Ge1/z_en_ge1.h
index 077f0f9cc0..4566dacbbd 100644
--- a/src/overlays/actors/ovl_En_Ge1/z_en_ge1.h
+++ b/src/overlays/actors/ovl_En_Ge1/z_en_ge1.h
@@ -4,6 +4,8 @@
#include "ultra64.h"
#include "actor.h"
+#include "assets/objects/object_ge1/object_ge1.h"
+
struct EnGe1;
typedef void (*EnGe1AnimFunc)(struct EnGe1*);
@@ -18,32 +20,12 @@ typedef enum EnGe1Type {
/* 0x46 */ GE1_TYPE_TRAINING_GROUNDS_GUARD
} EnGe1Type;
-typedef enum EnGe1Limb {
- /* 00 */ GE1_LIMB_NONE,
- /* 01 */ GE1_LIMB_WAIST,
- /* 02 */ GE1_LIMB_L_THIGH,
- /* 03 */ GE1_LIMB_L_LOWER_LEG,
- /* 04 */ GE1_LIMB_L_FOOT,
- /* 05 */ GE1_LIMB_R_THIGH,
- /* 06 */ GE1_LIMB_R_LOWER_LEG,
- /* 07 */ GE1_LIMB_R_FOOT,
- /* 08 */ GE1_LIMB_TORSO,
- /* 09 */ GE1_LIMB_L_UPPER_ARM,
- /* 10 */ GE1_LIMB_L_FOREARM,
- /* 11 */ GE1_LIMB_L_HAND,
- /* 12 */ GE1_LIMB_R_UPPER_ARM,
- /* 13 */ GE1_LIMB_R_FOREARM,
- /* 14 */ GE1_LIMB_R_HAND,
- /* 15 */ GE1_LIMB_HEAD,
- /* 16 */ GE1_LIMB_MAX
-} EnGe1Limb;
-
typedef struct EnGe1 {
/* 0x0000 */ Actor actor;
/* 0x014C */ ColliderCylinder collider;
/* 0x0198 */ SkelAnime skelAnime;
- /* 0x01DC */ Vec3s jointTable[GE1_LIMB_MAX];
- /* 0x023C */ Vec3s morphTable[GE1_LIMB_MAX];
+ /* 0x01DC */ Vec3s jointTable[GERUDO_WHITE_LIMB_MAX];
+ /* 0x023C */ Vec3s morphTable[GERUDO_WHITE_LIMB_MAX];
/* 0x029C */ Vec3s headRot;
/* 0x02A2 */ Vec3s unk_2A2;
/* 0x02A8 */ s16 eyeIndex;
diff --git a/src/overlays/actors/ovl_En_Ge2/z_en_ge2.c b/src/overlays/actors/ovl_En_Ge2/z_en_ge2.c
index c40402d602..900967f71e 100644
--- a/src/overlays/actors/ovl_En_Ge2/z_en_ge2.c
+++ b/src/overlays/actors/ovl_En_Ge2/z_en_ge2.c
@@ -93,8 +93,8 @@ static ColliderCylinderInit sCylinderInit = {
},
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0x000007A2, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0x000007A2, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON,
OCELEM_ON,
diff --git a/src/overlays/actors/ovl_En_Ge3/z_en_ge3.c b/src/overlays/actors/ovl_En_Ge3/z_en_ge3.c
index ad77c01118..f832f4b4e3 100644
--- a/src/overlays/actors/ovl_En_Ge3/z_en_ge3.c
+++ b/src/overlays/actors/ovl_En_Ge3/z_en_ge3.c
@@ -53,8 +53,8 @@ static ColliderCylinderInit sCylinderInit = {
},
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0x00000722, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0x00000722, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON,
OCELEM_ON,
@@ -81,7 +81,7 @@ void EnGe3_Init(Actor* thisx, PlayState* play2) {
ActorShape_Init(&this->actor.shape, 0.0f, ActorShadow_DrawCircle, 36.0f);
SkelAnime_InitFlex(play, &this->skelAnime, &gGerudoRedSkel, NULL, this->jointTable, this->morphTable,
- GELDB_LIMB_MAX);
+ GERUDO_RED_LIMB_MAX);
Animation_PlayLoop(&this->skelAnime, &gGerudoRedStandAnim);
Collider_InitCylinder(play, &this->collider);
Collider_SetCylinder(play, &this->collider, &this->actor, &sCylinderInit);
@@ -241,13 +241,13 @@ s32 EnGe3_OverrideLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3f* p
switch (limbIndex) {
// Hide swords and veil from object_geldb
- case GELDB_LIMB_VEIL:
- case GELDB_LIMB_R_SWORD:
- case GELDB_LIMB_L_SWORD:
+ case GERUDO_RED_LIMB_VEIL:
+ case GERUDO_RED_LIMB_R_SWORD:
+ case GERUDO_RED_LIMB_L_SWORD:
*dList = NULL;
return false;
// Turn head
- case GELDB_LIMB_HEAD:
+ case GERUDO_RED_LIMB_HEAD:
rot->x += this->headRot.y;
#if OOT_VERSION >= PAL_1_1
FALLTHROUGH;
@@ -256,14 +256,14 @@ s32 EnGe3_OverrideLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3f* p
// depending on what was drawn earlier in the frame.
OPEN_DISPS(play->state.gfxCtx, "../z_en_ge3.c", 547);
switch (limbIndex) {
- case GELDB_LIMB_NECK:
+ case GERUDO_RED_LIMB_NECK:
break;
- case GELDB_LIMB_HEAD:
+ case GERUDO_RED_LIMB_HEAD:
gDPPipeSync(POLY_OPA_DISP++);
gDPSetEnvColor(POLY_OPA_DISP++, 80, 60, 10, 255);
break;
- case GELDB_LIMB_R_SWORD:
- case GELDB_LIMB_L_SWORD:
+ case GERUDO_RED_LIMB_R_SWORD:
+ case GERUDO_RED_LIMB_L_SWORD:
gDPPipeSync(POLY_OPA_DISP++);
gDPSetEnvColor(POLY_OPA_DISP++, 140, 170, 230, 255);
gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, 255, 255, 255, 255);
@@ -284,7 +284,7 @@ void EnGe3_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot,
EnGe3* this = (EnGe3*)thisx;
Vec3f D_80A351C8 = { 600.0f, 700.0f, 0.0f };
- if (limbIndex == GELDB_LIMB_HEAD) {
+ if (limbIndex == GERUDO_RED_LIMB_HEAD) {
Matrix_MultVec3f(&D_80A351C8, &this->actor.focus.pos);
}
}
diff --git a/src/overlays/actors/ovl_En_Ge3/z_en_ge3.h b/src/overlays/actors/ovl_En_Ge3/z_en_ge3.h
index 62b9882055..297129e439 100644
--- a/src/overlays/actors/ovl_En_Ge3/z_en_ge3.h
+++ b/src/overlays/actors/ovl_En_Ge3/z_en_ge3.h
@@ -3,7 +3,8 @@
#include "ultra64.h"
#include "actor.h"
-#include "overlays/actors/ovl_En_GeldB/z_en_geldb.h"
+
+#include "assets/objects/object_geldb/object_geldb.h"
struct EnGe3;
@@ -13,8 +14,8 @@ typedef struct EnGe3 {
/* 0x0000 */ Actor actor;
/* 0x014C */ ColliderCylinder collider;
/* 0x0198 */ SkelAnime skelAnime;
- /* 0x01DC */ Vec3s jointTable[GELDB_LIMB_MAX];
- /* 0x026C */ Vec3s morphTable[GELDB_LIMB_MAX];
+ /* 0x01DC */ Vec3s jointTable[GERUDO_RED_LIMB_MAX];
+ /* 0x026C */ Vec3s morphTable[GERUDO_RED_LIMB_MAX];
/* 0x02FC */ s16 eyeIndex;
/* 0x02FE */ s16 blinkTimer;
/* 0x0300 */ Vec3s headRot;
diff --git a/src/overlays/actors/ovl_En_GeldB/z_en_geldb.c b/src/overlays/actors/ovl_En_GeldB/z_en_geldb.c
index 11850ccdf5..e8938ac97e 100644
--- a/src/overlays/actors/ovl_En_GeldB/z_en_geldb.c
+++ b/src/overlays/actors/ovl_En_GeldB/z_en_geldb.c
@@ -7,6 +7,7 @@
#include "z_en_geldb.h"
#include "libc64/qrand.h"
+#include "array_count.h"
#include "gfx.h"
#include "gfx_setupdl.h"
#include "ichain.h"
@@ -110,8 +111,8 @@ static ColliderCylinderInit sBodyCylinderInit = {
},
{
ELEM_MATERIAL_UNK1,
- { 0x00000000, 0x00, 0x00 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON,
OCELEM_ON,
@@ -119,12 +120,12 @@ static ColliderCylinderInit sBodyCylinderInit = {
{ 20, 50, 0, { 0, 0, 0 } },
};
-static ColliderTrisElementInit sBlockTrisElementsInit[2] = {
+static ColliderTrisElementInit sBlockTrisElementsInit[] = {
{
{
ELEM_MATERIAL_UNK2,
- { 0x00000000, 0x00, 0x00 },
- { 0xFFC1FFFF, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0xFFC1FFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON,
OCELEM_NONE,
@@ -134,8 +135,8 @@ static ColliderTrisElementInit sBlockTrisElementsInit[2] = {
{
{
ELEM_MATERIAL_UNK2,
- { 0x00000000, 0x00, 0x00 },
- { 0xFFC1FFFF, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0xFFC1FFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON,
OCELEM_NONE,
@@ -153,7 +154,7 @@ static ColliderTrisInit sBlockTrisInit = {
OC2_NONE,
COLSHAPE_TRIS,
},
- 2,
+ ARRAY_COUNT(sBlockTrisElementsInit),
sBlockTrisElementsInit,
};
@@ -168,8 +169,8 @@ static ColliderQuadInit sSwordQuadInit = {
},
{
ELEM_MATERIAL_UNK0,
- { 0xFFCFFFFF, 0x00, 0x08 },
- { 0x00000000, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x08 },
+ { 0x00000000, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL | ATELEM_UNK7,
ACELEM_NONE,
OCELEM_NONE,
@@ -251,7 +252,7 @@ void EnGeldB_Init(Actor* thisx, PlayState* play) {
this->blinkState = 0;
this->unkFloat = 10.0f;
SkelAnime_InitFlex(play, &this->skelAnime, &gGerudoRedSkel, &gGerudoRedNeutralAnim, this->jointTable,
- this->morphTable, GELDB_LIMB_MAX);
+ this->morphTable, GERUDO_RED_LIMB_MAX);
Collider_InitCylinder(play, &this->bodyCollider);
Collider_SetCylinder(play, &this->bodyCollider, thisx, &sBodyCylinderInit);
Collider_InitTris(play, &this->blockCollider);
@@ -1409,9 +1410,7 @@ void EnGeldB_CollisionCheck(EnGeldB* this, PlayState* play) {
if (key != NULL) {
key->actor.world.rot.y = Math_Vec3f_Yaw(&key->actor.world.pos, &this->actor.home.pos);
key->actor.speed = 6.0f;
- Audio_PlaySfxGeneral(NA_SE_SY_TRE_BOX_APPEAR, &gSfxDefaultPos, 4,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_TRE_BOX_APPEAR);
}
}
EnGeldB_SetupDefeated(this);
@@ -1464,14 +1463,14 @@ s32 EnGeldB_OverrideLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3f*
EnGeldB* this = (EnGeldB*)thisx;
OPEN_DISPS(play->state.gfxCtx, "../z_en_geldB.c", 2507);
- if (limbIndex == GELDB_LIMB_NECK) {
+ if (limbIndex == GERUDO_RED_LIMB_NECK) {
rot->z += this->headRot.x;
rot->x += this->headRot.y;
rot->y += this->headRot.z;
- } else if (limbIndex == GELDB_LIMB_HEAD) {
+ } else if (limbIndex == GERUDO_RED_LIMB_HEAD) {
gDPPipeSync(POLY_OPA_DISP++);
gDPSetEnvColor(POLY_OPA_DISP++, 80, 60, 10, 255);
- } else if ((limbIndex == GELDB_LIMB_R_SWORD) || (limbIndex == GELDB_LIMB_L_SWORD)) {
+ } else if ((limbIndex == GERUDO_RED_LIMB_R_SWORD) || (limbIndex == GERUDO_RED_LIMB_L_SWORD)) {
gDPPipeSync(POLY_OPA_DISP++);
gDPSetEnvColor(POLY_OPA_DISP++, 140, 170, 230, 255);
gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, 255, 255, 255, 255);
@@ -1497,7 +1496,7 @@ void EnGeldB_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* ro
EnGeldB* this = (EnGeldB*)thisx;
s32 bodyPart = -1;
- if (limbIndex == GELDB_LIMB_R_SWORD) {
+ if (limbIndex == GERUDO_RED_LIMB_R_SWORD) {
Matrix_MultVec3f(&swordQuadOffset1, &this->swordCollider.dim.quad[1]);
Matrix_MultVec3f(&swordQuadOffset0, &this->swordCollider.dim.quad[0]);
Matrix_MultVec3f(&swordQuadOffset3, &this->swordCollider.dim.quad[3]);
@@ -1515,42 +1514,43 @@ void EnGeldB_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* ro
EffectBlure_AddVertex(Effect_GetByIndex(this->blureIndex), &swordTip, &swordHilt);
}
} else {
- Actor_SetFeetPos(&this->actor, limbIndex, GELDB_LIMB_L_FOOT, &footOffset, GELDB_LIMB_R_FOOT, &footOffset);
+ Actor_SetFeetPos(&this->actor, limbIndex, GERUDO_RED_LIMB_L_FOOT, &footOffset, GERUDO_RED_LIMB_R_FOOT,
+ &footOffset);
}
- if (limbIndex == GELDB_LIMB_L_FOOT) {
+ if (limbIndex == GERUDO_RED_LIMB_L_FOOT) {
Matrix_MultVec3f(&footOffset, &this->leftFootPos);
- } else if (limbIndex == GELDB_LIMB_R_FOOT) {
+ } else if (limbIndex == GERUDO_RED_LIMB_R_FOOT) {
Matrix_MultVec3f(&footOffset, &this->rightFootPos);
}
if (this->iceTimer != 0) {
switch (limbIndex) {
- case GELDB_LIMB_NECK:
+ case GERUDO_RED_LIMB_NECK:
bodyPart = 0;
break;
- case GELDB_LIMB_L_SWORD:
+ case GERUDO_RED_LIMB_L_SWORD:
bodyPart = 1;
break;
- case GELDB_LIMB_R_SWORD:
+ case GERUDO_RED_LIMB_R_SWORD:
bodyPart = 2;
break;
- case GELDB_LIMB_L_UPPER_ARM:
+ case GERUDO_RED_LIMB_L_UPPER_ARM:
bodyPart = 3;
break;
- case GELDB_LIMB_R_UPPER_ARM:
+ case GERUDO_RED_LIMB_R_UPPER_ARM:
bodyPart = 4;
break;
- case GELDB_LIMB_TORSO:
+ case GERUDO_RED_LIMB_TORSO:
bodyPart = 5;
break;
- case GELDB_LIMB_WAIST:
+ case GERUDO_RED_LIMB_WAIST:
bodyPart = 6;
break;
- case GELDB_LIMB_L_FOOT:
+ case GERUDO_RED_LIMB_L_FOOT:
bodyPart = 7;
break;
- case GELDB_LIMB_R_FOOT:
+ case GERUDO_RED_LIMB_R_FOOT:
bodyPart = 8;
break;
default:
diff --git a/src/overlays/actors/ovl_En_GeldB/z_en_geldb.h b/src/overlays/actors/ovl_En_GeldB/z_en_geldb.h
index a5ce4286b5..003a6dc5a5 100644
--- a/src/overlays/actors/ovl_En_GeldB/z_en_geldb.h
+++ b/src/overlays/actors/ovl_En_GeldB/z_en_geldb.h
@@ -4,35 +4,9 @@
#include "ultra64.h"
#include "actor.h"
-struct EnGeldB;
+#include "assets/objects/object_geldb/object_geldb.h"
-typedef enum EnGeldBLimb {
- /* 0x00 */ GELDB_LIMB_NONE,
- /* 0x01 */ GELDB_LIMB_ROOT,
- /* 0x02 */ GELDB_LIMB_TORSO,
- /* 0x03 */ GELDB_LIMB_NECK,
- /* 0x04 */ GELDB_LIMB_PONYTAIL,
- /* 0x05 */ GELDB_LIMB_VEIL,
- /* 0x06 */ GELDB_LIMB_HEAD,
- /* 0x07 */ GELDB_LIMB_R_UPPER_ARM,
- /* 0x08 */ GELDB_LIMB_R_FOREARM,
- /* 0x09 */ GELDB_LIMB_R_WRIST,
- /* 0x0A */ GELDB_LIMB_R_HAND,
- /* 0x0B */ GELDB_LIMB_R_SWORD,
- /* 0x0C */ GELDB_LIMB_L_UPPER_ARM,
- /* 0x0D */ GELDB_LIMB_L_FOREARM,
- /* 0x0E */ GELDB_LIMB_L_WRIST,
- /* 0x0F */ GELDB_LIMB_L_HAND,
- /* 0x10 */ GELDB_LIMB_L_SWORD,
- /* 0x11 */ GELDB_LIMB_L_THIGH,
- /* 0x12 */ GELDB_LIMB_L_SHIN,
- /* 0x13 */ GELDB_LIMB_L_FOOT,
- /* 0x14 */ GELDB_LIMB_R_THIGH,
- /* 0x15 */ GELDB_LIMB_R_SHIN,
- /* 0x16 */ GELDB_LIMB_R_FOOT,
- /* 0x17 */ GELDB_LIMB_WAIST,
- /* 0x18 */ GELDB_LIMB_MAX
-} EnGeldBLimb;
+struct EnGeldB;
typedef void (*EnGeldBActionFunc)(struct EnGeldB*, struct PlayState*);
@@ -40,8 +14,8 @@ typedef struct EnGeldB {
/* 0x0000 */ Actor actor;
/* 0x014C */ Vec3s bodyPartsPos[10];
/* 0x0188 */ SkelAnime skelAnime;
- /* 0x01CC */ Vec3s jointTable[GELDB_LIMB_MAX];
- /* 0x025C */ Vec3s morphTable[GELDB_LIMB_MAX];
+ /* 0x01CC */ Vec3s jointTable[GERUDO_RED_LIMB_MAX];
+ /* 0x025C */ Vec3s morphTable[GERUDO_RED_LIMB_MAX];
/* 0x02EC */ s32 action;
/* 0x02F0 */ char unk_2F0[4];
/* 0x02F4 */ EnGeldBActionFunc actionFunc;
diff --git a/src/overlays/actors/ovl_En_Gm/z_en_gm.c b/src/overlays/actors/ovl_En_Gm/z_en_gm.c
index 3c0b766413..a698d5fbaf 100644
--- a/src/overlays/actors/ovl_En_Gm/z_en_gm.c
+++ b/src/overlays/actors/ovl_En_Gm/z_en_gm.c
@@ -62,8 +62,8 @@ static ColliderCylinderInitType1 sCylinderInit = {
},
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0x00000000, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0x00000000, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_NONE,
OCELEM_ON,
diff --git a/src/overlays/actors/ovl_En_Go/z_en_go.c b/src/overlays/actors/ovl_En_Go/z_en_go.c
index aa911c2f19..733c8519aa 100644
--- a/src/overlays/actors/ovl_En_Go/z_en_go.c
+++ b/src/overlays/actors/ovl_En_Go/z_en_go.c
@@ -74,8 +74,8 @@ static ColliderCylinderInit sCylinderInit = {
},
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0x00000000, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0x00000000, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_NONE,
OCELEM_ON,
@@ -786,8 +786,7 @@ void EnGo_FireGenericActionFunc(EnGo* this, PlayState* play) {
void EnGo_CurledUp(EnGo* this, PlayState* play) {
if ((DECR(this->unk_210) == 0) && EnGo_IsCameraModified(this, play)) {
- Audio_PlaySfxGeneral(NA_SE_EN_GOLON_WAKE_UP, &this->actor.projectedPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&this->actor.projectedPos, NA_SE_EN_GOLON_WAKE_UP);
this->skelAnime.playSpeed = 0.1f;
this->skelAnime.playSpeed *= PARAMS_GET_NOSHIFT(this->actor.params, 4, 4) == 0x90 ? 0.5f : 1.0f;
@@ -822,8 +821,7 @@ void EnGo_WakeUp(EnGo* this, PlayState* play) {
}
if (DECR(this->unk_212) == 0) {
- Audio_PlaySfxGeneral(NA_SE_EN_GOLON_SIT_DOWN, &this->actor.projectedPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&this->actor.projectedPos, NA_SE_EN_GOLON_SIT_DOWN);
EnGo_SetupAction(this, func_80A405CC);
} else if (!EnGo_IsCameraModified(this, play)) {
EnGo_ReverseAnimation(this);
@@ -842,8 +840,7 @@ void func_80A40494(EnGo* this, PlayState* play) {
frame += this->skelAnime.playSpeed;
if (!(frame >= 0.0f)) {
- Audio_PlaySfxGeneral(NA_SE_EN_DODO_M_GND, &this->actor.projectedPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&this->actor.projectedPos, NA_SE_EN_DODO_M_GND);
EnGo_SpawnDust(this, 10, 0.4f, 0.1f, 16, 26.0f, 2.0f);
EnGo_ReverseAnimation(this);
this->skelAnime.playSpeed = 0.0f;
@@ -937,8 +934,7 @@ void func_80A408D8(EnGo* this, PlayState* play) {
EnGo_SetupAction(this, func_80A40494);
} else if (EnGo_IsCameraModified(this, play)) {
EnGo_ReverseAnimation(this);
- Audio_PlaySfxGeneral(NA_SE_EN_GOLON_SIT_DOWN, &this->actor.projectedPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&this->actor.projectedPos, NA_SE_EN_GOLON_SIT_DOWN);
this->skelAnime.playSpeed = 0.0f;
EnGo_SetupAction(this, func_80A405CC);
}
diff --git a/src/overlays/actors/ovl_En_Go2/z_en_go2.c b/src/overlays/actors/ovl_En_Go2/z_en_go2.c
index d437df1c08..6718a23b64 100644
--- a/src/overlays/actors/ovl_En_Go2/z_en_go2.c
+++ b/src/overlays/actors/ovl_En_Go2/z_en_go2.c
@@ -95,8 +95,8 @@ static ColliderCylinderInit sCylinderInit = {
},
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0x00000008, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0x00000008, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_NONE,
OCELEM_ON,
@@ -622,8 +622,7 @@ s16 EnGo2_UpdateTalkStateGoronDmtBiggoron(PlayState* play, EnGo2* this) {
FALLTHROUGH;
case 0x3054:
if (dialogState == TEXT_STATE_NONE) {
- Audio_PlaySfxGeneral(NA_SE_SY_TRE_BOX_APPEAR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_TRE_BOX_APPEAR);
}
break;
}
@@ -906,8 +905,7 @@ s32 func_80A44AB0(EnGo2* this, PlayState* play) {
return false;
} else {
if (this->collider.base.acFlags & AC_HIT) {
- Audio_PlaySfxGeneral(NA_SE_SY_CORRECT_CHIME, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_CORRECT_CHIME);
this->actor.flags &= ~ACTOR_FLAG_SFX_FOR_PLAYER_BODY_HIT;
this->collider.base.acFlags &= ~AC_HIT;
EnGo2_StopRolling(this, play);
diff --git a/src/overlays/actors/ovl_En_Goma/z_en_goma.c b/src/overlays/actors/ovl_En_Goma/z_en_goma.c
index d13c4a85f8..c290012270 100644
--- a/src/overlays/actors/ovl_En_Goma/z_en_goma.c
+++ b/src/overlays/actors/ovl_En_Goma/z_en_goma.c
@@ -88,8 +88,8 @@ static ColliderCylinderInit D_80A4B7A0 = {
},
{
ELEM_MATERIAL_UNK0,
- { 0xFFCFFFFF, 0x00, 0x08 },
- { 0xFFDFFFFF, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x08 },
+ { 0xFFDFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_NONE,
OCELEM_ON,
@@ -108,8 +108,8 @@ static ColliderCylinderInit D_80A4B7CC = {
},
{
ELEM_MATERIAL_UNK0,
- { 0xFFCFFFFF, 0x00, 0x08 },
- { 0xFFDFFFFF, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x08 },
+ { 0xFFDFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON,
OCELEM_NONE,
@@ -441,8 +441,7 @@ void EnGoma_Dead(EnGoma* this, PlayState* play) {
parent->childrenGohmaState[this->actor.params] = -1;
}
- Audio_PlaySfxGeneral(NA_SE_EN_EXTINCT, &this->actor.projectedPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&this->actor.projectedPos, NA_SE_EN_EXTINCT);
Actor_Kill(&this->actor);
Item_DropCollectibleRandom(play, NULL, &this->actor.world.pos, 0x30);
}
diff --git a/src/overlays/actors/ovl_En_Goroiwa/z_en_goroiwa.c b/src/overlays/actors/ovl_En_Goroiwa/z_en_goroiwa.c
index 06e1dae817..7d58731365 100644
--- a/src/overlays/actors/ovl_En_Goroiwa/z_en_goroiwa.c
+++ b/src/overlays/actors/ovl_En_Goroiwa/z_en_goroiwa.c
@@ -8,6 +8,7 @@
#include "overlays/effects/ovl_Effect_Ss_Kakera/z_eff_ss_kakera.h"
#include "libc64/qrand.h"
+#include "array_count.h"
#include "ichain.h"
#include "printf.h"
#include "quake.h"
@@ -74,8 +75,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[] = {
{
{
ELEM_MATERIAL_UNK0,
- { 0x20000000, 0x00, 0x04 },
- { 0x00000000, 0x00, 0x00 },
+ { 0x20000000, HIT_SPECIAL_EFFECT_NONE, 0x04 },
+ { 0x00000000, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_NONE,
OCELEM_ON,
@@ -93,7 +94,7 @@ static ColliderJntSphInit sJntSphInit = {
OC2_TYPE_2,
COLSHAPE_JNTSPH,
},
- 1,
+ ARRAY_COUNT(sJntSphElementsInit),
sJntSphElementsInit,
};
diff --git a/src/overlays/actors/ovl_En_Gs/z_en_gs.c b/src/overlays/actors/ovl_En_Gs/z_en_gs.c
index 77db13b027..a98dca4837 100644
--- a/src/overlays/actors/ovl_En_Gs/z_en_gs.c
+++ b/src/overlays/actors/ovl_En_Gs/z_en_gs.c
@@ -58,8 +58,8 @@ static ColliderCylinderInit sCylinderInit = {
},
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON,
OCELEM_ON,
@@ -329,14 +329,12 @@ void func_80A4ED34(EnGs* this, PlayState* play) {
if (this->unk_200 < 20) {
Color_RGBA8_Copy(&this->flashColor, &flashRed);
if ((this->unk_200 % 20) == 7) {
- Audio_PlaySfxGeneral(NA_SE_SY_WARNING_COUNT_E, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_WARNING_COUNT_E);
}
} else {
Color_RGBA8_Copy(&this->flashColor, &flashBlue);
if ((this->unk_200 % 20) == 7) {
- Audio_PlaySfxGeneral(NA_SE_SY_WARNING_COUNT_N, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_WARNING_COUNT_N);
}
}
}
diff --git a/src/overlays/actors/ovl_En_Guest/z_en_guest.c b/src/overlays/actors/ovl_En_Guest/z_en_guest.c
index 9dd16fe237..a6c31638cb 100644
--- a/src/overlays/actors/ovl_En_Guest/z_en_guest.c
+++ b/src/overlays/actors/ovl_En_Guest/z_en_guest.c
@@ -54,7 +54,14 @@ static ColliderCylinderInitType1 sCylinderInit = {
OC1_ON | OC1_TYPE_ALL,
COLSHAPE_CYLINDER,
},
- { 0x00, { 0x00000000, 0x00, 0x00 }, { 0x00000000, 0x00, 0x00 }, 0x00, 0x00, 0x01 },
+ {
+ ELEM_MATERIAL_UNK0,
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0x00000000, HIT_BACKLASH_NONE, 0x00 },
+ ATELEM_NONE,
+ ACELEM_NONE,
+ OCELEM_ON,
+ },
{ 10, 60, 0, { 0, 0, 0 } },
};
diff --git a/src/overlays/actors/ovl_En_Hata/z_en_hata.c b/src/overlays/actors/ovl_En_Hata/z_en_hata.c
index 2b4133c39f..86a98fd188 100644
--- a/src/overlays/actors/ovl_En_Hata/z_en_hata.c
+++ b/src/overlays/actors/ovl_En_Hata/z_en_hata.c
@@ -47,9 +47,9 @@ static ColliderCylinderInit sCylinderInit = {
},
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0x00000080, 0x00, 0x00 },
- ATELEM_NONE | ATELEM_SFX_NORMAL,
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0x00000080, HIT_BACKLASH_NONE, 0x00 },
+ ATELEM_NONE,
ACELEM_ON | ACELEM_HOOKABLE,
OCELEM_ON,
},
diff --git a/src/overlays/actors/ovl_En_Hata/z_en_hata.h b/src/overlays/actors/ovl_En_Hata/z_en_hata.h
index 53d31bab58..38c85e6349 100644
--- a/src/overlays/actors/ovl_En_Hata/z_en_hata.h
+++ b/src/overlays/actors/ovl_En_Hata/z_en_hata.h
@@ -4,31 +4,7 @@
#include "ultra64.h"
#include "actor.h"
-
-typedef enum EnHataLimb {
- /* 0x00 */ FLAGPOLE_LIMB_NONE,
- /* 0x01 */ FLAGPOLE_LIMB_POLE_BASE,
- /* 0x02 */ FLAGPOLE_LIMB_POLE,
- /* 0x03 */ FLAGPOLE_LIMB_FLAG_1_BASE,
- /* 0x04 */ FLAGPOLE_LIMB_FLAG_1_HOIST_END_BASE,
- /* 0x05 */ FLAGPOLE_LIMB_FLAG_1_HOIST_MID_BASE,
- /* 0x06 */ FLAGPOLE_LIMB_FLAG_1_FLY_MID_BASE,
- /* 0x07 */ FLAGPOLE_LIMB_FLAG_1_FLY_END_BASE,
- /* 0x08 */ FLAGPOLE_LIMB_FLAG_1_FLY_END,
- /* 0x09 */ FLAGPOLE_LIMB_FLAG_1_FLY_MID,
- /* 0x0A */ FLAGPOLE_LIMB_FLAG_1_HOIST_MID,
- /* 0x0B */ FLAGPOLE_LIMB_FLAG_1_HOIST_END,
- /* 0x0C */ FLAGPOLE_LIMB_FLAG_2_BASE,
- /* 0x0D */ FLAGPOLE_LIMB_FLAG_2_HOIST_END_BASE,
- /* 0x0E */ FLAGPOLE_LIMB_FLAG_2_HOIST_MID_BASE,
- /* 0x0F */ FLAGPOLE_LIMB_FLAG_2_FLY_MID_BASE,
- /* 0x10 */ FLAGPOLE_LIMB_FLAG_2_FLY_END_BASE,
- /* 0x11 */ FLAGPOLE_LIMB_FLAG_2_FLY_END,
- /* 0x12 */ FLAGPOLE_LIMB_FLAG_2_FLY_MID,
- /* 0x13 */ FLAGPOLE_LIMB_FLAG_2_HOIST_MID,
- /* 0x14 */ FLAGPOLE_LIMB_FLAG_2_HOIST_END,
- /* 0x15 */ FLAGPOLE_LIMB_MAX
-} EnHataLimb;
+#include "assets/objects/object_hata/object_hata.h"
typedef struct EnHata {
/* 0x0000 */ DynaPolyActor dyna;
diff --git a/src/overlays/actors/ovl_En_Heishi2/z_en_heishi2.c b/src/overlays/actors/ovl_En_Heishi2/z_en_heishi2.c
index 3d6a7cb7dc..b193f534c2 100644
--- a/src/overlays/actors/ovl_En_Heishi2/z_en_heishi2.c
+++ b/src/overlays/actors/ovl_En_Heishi2/z_en_heishi2.c
@@ -87,8 +87,8 @@ static ColliderCylinderInit sCylinderInit = {
},
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0x00000000, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0x00000000, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_NONE,
OCELEM_ON,
diff --git a/src/overlays/actors/ovl_En_Heishi3/z_en_heishi3.c b/src/overlays/actors/ovl_En_Heishi3/z_en_heishi3.c
index 075c5f8cb0..9e4fa5d48b 100644
--- a/src/overlays/actors/ovl_En_Heishi3/z_en_heishi3.c
+++ b/src/overlays/actors/ovl_En_Heishi3/z_en_heishi3.c
@@ -60,8 +60,8 @@ static ColliderCylinderInit sCylinderInit = {
},
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0x00000000, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0x00000000, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_NONE,
OCELEM_ON,
diff --git a/src/overlays/actors/ovl_En_Heishi4/z_en_heishi4.c b/src/overlays/actors/ovl_En_Heishi4/z_en_heishi4.c
index ced83c19c4..f77484dca8 100644
--- a/src/overlays/actors/ovl_En_Heishi4/z_en_heishi4.c
+++ b/src/overlays/actors/ovl_En_Heishi4/z_en_heishi4.c
@@ -56,8 +56,8 @@ static ColliderCylinderInit sCylinderInit = {
},
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0x00000000, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0x00000000, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_NONE,
OCELEM_ON,
diff --git a/src/overlays/actors/ovl_En_Hintnuts/z_en_hintnuts.c b/src/overlays/actors/ovl_En_Hintnuts/z_en_hintnuts.c
index 72a6fb9d63..14de43c857 100644
--- a/src/overlays/actors/ovl_En_Hintnuts/z_en_hintnuts.c
+++ b/src/overlays/actors/ovl_En_Hintnuts/z_en_hintnuts.c
@@ -57,8 +57,8 @@ static ColliderCylinderInit sCylinderInit = {
},
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON,
OCELEM_ON,
diff --git a/src/overlays/actors/ovl_En_Honotrap/z_en_honotrap.c b/src/overlays/actors/ovl_En_Honotrap/z_en_honotrap.c
index 2fa5d13382..e9a7297091 100644
--- a/src/overlays/actors/ovl_En_Honotrap/z_en_honotrap.c
+++ b/src/overlays/actors/ovl_En_Honotrap/z_en_honotrap.c
@@ -7,6 +7,7 @@
#include "z_en_honotrap.h"
#include "libc64/qrand.h"
+#include "array_count.h"
#include "gfx.h"
#include "gfx_setupdl.h"
#include "ichain.h"
@@ -76,12 +77,12 @@ ActorProfile En_Honotrap_Profile = {
/**/ EnHonotrap_Draw,
};
-static ColliderTrisElementInit sTrisElementsInit[2] = {
+static ColliderTrisElementInit sTrisElementsInit[] = {
{
{
ELEM_MATERIAL_UNK4,
- { 0x00000000, 0x00, 0x00 },
- { 0x0001F824, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0x0001F824, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON,
OCELEM_NONE,
@@ -91,8 +92,8 @@ static ColliderTrisElementInit sTrisElementsInit[2] = {
{
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0x0001F824, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0x0001F824, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON,
OCELEM_NONE,
@@ -110,7 +111,7 @@ static ColliderTrisInit sTrisInit = {
OC2_NONE,
COLSHAPE_TRIS,
},
- 2,
+ ARRAY_COUNT(sTrisElementsInit),
sTrisElementsInit,
};
@@ -125,8 +126,8 @@ static ColliderCylinderInit sCylinderInit = {
},
{
ELEM_MATERIAL_UNK0,
- { 0xFFCFFFFF, 0x01, 0x04 },
- { 0x00100000, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_FIRE, 0x04 },
+ { 0x00100000, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NONE,
ACELEM_ON,
OCELEM_ON,
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..4dbf4ada35 100644
--- a/src/overlays/actors/ovl_En_Horse/z_en_horse.c
+++ b/src/overlays/actors/ovl_En_Horse/z_en_horse.c
@@ -114,8 +114,8 @@ static ColliderCylinderInit sCylinderInit1 = {
},
{
ELEM_MATERIAL_UNK0,
- { 0x00000400, 0x00, 0x04 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0x00000400, HIT_SPECIAL_EFFECT_NONE, 0x04 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NONE,
ACELEM_NONE,
OCELEM_ON,
@@ -134,8 +134,8 @@ static ColliderCylinderInit sCylinderInit2 = {
},
{
ELEM_MATERIAL_UNK0,
- { 0xFFCFFFFF, 0x00, 0x00 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_NONE,
OCELEM_ON,
@@ -143,12 +143,12 @@ static ColliderCylinderInit sCylinderInit2 = {
{ 20, 70, 0, { 0, 0, 0 } },
};
-static ColliderJntSphElementInit sJntSphElementsInit[1] = {
+static ColliderJntSphElementInit sJntSphElementsInit[] = {
{
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0x0001F824, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0x0001F824, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON | ACELEM_NO_AT_INFO | ACELEM_NO_DAMAGE | ACELEM_NO_SWORD_SFX | ACELEM_NO_HITMARK,
OCELEM_ON,
@@ -166,7 +166,7 @@ static ColliderJntSphInit sJntSphInit = {
OC2_TYPE_1 | OC2_UNK1,
COLSHAPE_JNTSPH,
},
- 1,
+ ARRAY_COUNT(sJntSphElementsInit),
sJntSphElementsInit,
};
@@ -627,8 +627,7 @@ void EnHorse_PlayWalkingSfx(EnHorse* this) {
return;
}
- Audio_PlaySfxGeneral(NA_SE_EV_HORSE_WALK, &this->actor.projectedPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&this->actor.projectedPos, NA_SE_EV_HORSE_WALK);
if (++this->soundTimer >= ARRAY_COUNT(sAnimSoundFrames)) {
this->soundTimer = 0;
}
@@ -636,13 +635,11 @@ void EnHorse_PlayWalkingSfx(EnHorse* this) {
}
void EnHorse_PlayTrottingSfx(EnHorse* this) {
- Audio_PlaySfxGeneral(NA_SE_EV_HORSE_RUN, &this->actor.projectedPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&this->actor.projectedPos, NA_SE_EV_HORSE_RUN);
}
void EnHorse_PlayGallopingSfx(EnHorse* this) {
- Audio_PlaySfxGeneral(NA_SE_EV_HORSE_RUN, &this->actor.projectedPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&this->actor.projectedPos, NA_SE_EV_HORSE_RUN);
}
f32 EnHorse_SlopeSpeedMultiplier(EnHorse* this, PlayState* play) {
@@ -677,13 +674,11 @@ void EnHorse_IdleAnimSounds(EnHorse* this, PlayState* play) {
(this->curFrame > 28.0f && this->type == HORSE_HNI)) &&
!(this->stateFlags & ENHORSE_SANDDUST_SOUND)) {
this->stateFlags |= ENHORSE_SANDDUST_SOUND;
- Audio_PlaySfxGeneral(NA_SE_EV_HORSE_SANDDUST, &this->actor.projectedPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&this->actor.projectedPos, NA_SE_EV_HORSE_SANDDUST);
} else if (this->animationIdx == ENHORSE_ANIM_REARING && this->curFrame > 25.0f &&
!(this->stateFlags & ENHORSE_LAND2_SOUND)) {
this->stateFlags |= ENHORSE_LAND2_SOUND;
- Audio_PlaySfxGeneral(NA_SE_EV_HORSE_LAND2, &this->actor.projectedPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&this->actor.projectedPos, NA_SE_EV_HORSE_LAND2);
}
}
@@ -1100,8 +1095,7 @@ void EnHorse_StartMountedIdle(EnHorse* this) {
if ((this->curFrame > 35.0f && this->type == HORSE_EPONA) || (this->curFrame > 28.0f && this->type == HORSE_HNI)) {
if (!(this->stateFlags & ENHORSE_SANDDUST_SOUND)) {
this->stateFlags |= ENHORSE_SANDDUST_SOUND;
- Audio_PlaySfxGeneral(NA_SE_EV_HORSE_SANDDUST, &this->actor.projectedPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&this->actor.projectedPos, NA_SE_EV_HORSE_SANDDUST);
}
}
curFrame = this->skin.skelAnime.curFrame;
@@ -1153,8 +1147,7 @@ void EnHorse_MountedIdleWhinney(EnHorse* this) {
Animation_GetLastFrame(sAnimationHeaders[this->type][this->animationIdx]), ANIMMODE_ONCE, -3.0f);
this->unk_21C = this->unk_228;
if (this->stateFlags & ENHORSE_DRAW) {
- Audio_PlaySfxGeneral(NA_SE_EV_HORSE_GROAN, &this->unk_21C, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&this->unk_21C, NA_SE_EV_HORSE_GROAN);
}
}
@@ -1424,8 +1417,7 @@ void EnHorse_StartRearing(EnHorse* this) {
this->stateFlags &= ~ENHORSE_LAND2_SOUND;
this->unk_21C = this->unk_228;
if (this->stateFlags & ENHORSE_DRAW) {
- Audio_PlaySfxGeneral(NA_SE_EV_HORSE_NEIGH, &this->unk_21C, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&this->unk_21C, NA_SE_EV_HORSE_NEIGH);
}
Rumble_Request(0.0f, 180, 20, 100);
Animation_Change(&this->skin.skelAnime, sAnimationHeaders[this->type][this->animationIdx], 1.0f, 0.0f,
@@ -1440,8 +1432,7 @@ void EnHorse_MountedRearing(EnHorse* this, PlayState* play) {
if (this->curFrame > 25.0f) {
if (!(this->stateFlags & ENHORSE_LAND2_SOUND)) {
this->stateFlags |= ENHORSE_LAND2_SOUND;
- Audio_PlaySfxGeneral(NA_SE_EV_HORSE_LAND2, &this->actor.projectedPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&this->actor.projectedPos, NA_SE_EV_HORSE_LAND2);
Rumble_Request(0.0f, 180, 20, 100);
}
}
@@ -1474,8 +1465,7 @@ void EnHorse_StartBraking(EnHorse* this, PlayState* play) {
this->action = ENHORSE_ACT_STOPPING;
this->animationIdx = ENHORSE_ANIM_STOPPING;
- Audio_PlaySfxGeneral(NA_SE_EV_HORSE_SLIP, &this->actor.projectedPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&this->actor.projectedPos, NA_SE_EV_HORSE_SLIP);
Animation_Change(&this->skin.skelAnime, sAnimationHeaders[this->type][this->animationIdx], 1.5f, 0.0f,
Animation_GetLastFrame(sAnimationHeaders[this->type][this->animationIdx]), ANIMMODE_ONCE, -3.0f);
@@ -1496,8 +1486,7 @@ void EnHorse_Stopping(EnHorse* this, PlayState* play) {
if (Rand_ZeroOne() > 0.5) {
this->unk_21C = this->unk_228;
if (this->stateFlags & ENHORSE_DRAW) {
- Audio_PlaySfxGeneral(NA_SE_EV_HORSE_NEIGH, &this->unk_21C, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&this->unk_21C, NA_SE_EV_HORSE_NEIGH);
}
Rumble_Request(0.0f, 180, 20, 100);
this->stateFlags &= ~ENHORSE_STOPPING_NEIGH_SOUND;
@@ -1627,8 +1616,7 @@ void EnHorse_StartLowJump(EnHorse* this, PlayState* play) {
y = jointTable->y;
this->riderPos.y -= y * 0.01f;
- Audio_PlaySfxGeneral(NA_SE_EV_HORSE_JUMP, &this->actor.projectedPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&this->actor.projectedPos, NA_SE_EV_HORSE_JUMP);
Rumble_Request(0.0f, 170, 10, 10);
}
@@ -1662,8 +1650,7 @@ void EnHorse_LowJump(EnHorse* this, PlayState* play) {
if (SkelAnime_Update(&this->skin.skelAnime) ||
(curFrame > 17.0f && this->actor.world.pos.y < this->actor.floorHeight - this->actor.velocity.y + 80.0f)) {
- Audio_PlaySfxGeneral(NA_SE_EV_HORSE_LAND, &this->actor.projectedPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&this->actor.projectedPos, NA_SE_EV_HORSE_LAND);
Rumble_Request(0.0f, 255, 10, 80);
this->stateFlags &= ~ENHORSE_JUMPING;
this->actor.gravity = -3.5f;
@@ -1702,8 +1689,7 @@ void EnHorse_StartHighJump(EnHorse* this, PlayState* play) {
this->riderPos.y -= y * 0.01f;
this->stateFlags |= ENHORSE_CALC_RIDER_POS;
- Audio_PlaySfxGeneral(NA_SE_EV_HORSE_JUMP, &this->actor.projectedPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&this->actor.projectedPos, NA_SE_EV_HORSE_JUMP);
Rumble_Request(0.0f, 170, 10, 10);
}
@@ -1738,8 +1724,7 @@ void EnHorse_HighJump(EnHorse* this, PlayState* play) {
if (SkelAnime_Update(&this->skin.skelAnime) ||
(curFrame > 23.0f && this->actor.world.pos.y < this->actor.floorHeight - this->actor.velocity.y + 80.0f)) {
- Audio_PlaySfxGeneral(NA_SE_EV_HORSE_LAND, &this->actor.projectedPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&this->actor.projectedPos, NA_SE_EV_HORSE_LAND);
Rumble_Request(0.0f, 255, 10, 80);
this->stateFlags &= ~ENHORSE_JUMPING;
this->actor.gravity = -3.5f;
@@ -1768,8 +1753,7 @@ void EnHorse_Inactive(EnHorse* this, PlayState* play2) {
R_EPONAS_SONG_PLAYED = false;
if (EnHorse_Spawn(this, play)) {
#if OOT_VERSION >= PAL_1_0
- Audio_PlaySfxGeneral(NA_SE_EV_HORSE_NEIGH, &this->actor.projectedPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&this->actor.projectedPos, NA_SE_EV_HORSE_NEIGH);
#endif
this->stateFlags &= ~ENHORSE_INACTIVE;
gSaveContext.save.info.horseData.sceneId = play->sceneId;
@@ -1777,7 +1761,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)) {
@@ -1803,14 +1787,12 @@ void EnHorse_PlayIdleAnimation(EnHorse* this, s32 anim, f32 morphFrames, f32 sta
} else if (this->animationIdx == ENHORSE_ANIM_WHINNEY) {
this->unk_21C = this->unk_228;
if (this->stateFlags & ENHORSE_DRAW) {
- Audio_PlaySfxGeneral(NA_SE_EV_HORSE_GROAN, &this->unk_21C, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&this->unk_21C, NA_SE_EV_HORSE_GROAN);
}
} else if (this->animationIdx == ENHORSE_ANIM_REARING) {
this->unk_21C = this->unk_228;
if (this->stateFlags & ENHORSE_DRAW) {
- Audio_PlaySfxGeneral(NA_SE_EV_HORSE_NEIGH, &this->unk_21C, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&this->unk_21C, NA_SE_EV_HORSE_NEIGH);
}
this->stateFlags &= ~ENHORSE_LAND2_SOUND;
}
@@ -1846,18 +1828,16 @@ void EnHorse_Idle(EnHorse* this, PlayState* play) {
if (!func_80A5BBBC(play, this, &this->actor.world.pos)) {
if (EnHorse_Spawn(this, play)) {
#if OOT_VERSION >= PAL_1_0
- Audio_PlaySfxGeneral(NA_SE_EV_HORSE_NEIGH, &this->actor.projectedPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&this->actor.projectedPos, NA_SE_EV_HORSE_NEIGH);
#endif
this->followTimer = 0;
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,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&this->actor.projectedPos, NA_SE_EV_HORSE_NEIGH);
this->followTimer = 0;
EnHorse_StartMovingAnimation(this, 6, -3.0f, 0.0f);
}
@@ -1963,8 +1943,7 @@ void EnHorse_FollowPlayer(EnHorse* this, PlayState* play) {
this->unk_21C = this->unk_228;
#if OOT_VERSION < PAL_1_0
if (this->stateFlags & ENHORSE_DRAW) {
- Audio_PlaySfxGeneral(NA_SE_EV_HORSE_NEIGH, &this->unk_21C, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&this->unk_21C, NA_SE_EV_HORSE_NEIGH);
}
#endif
} else if (this->stateFlags & ENHORSE_TURNING_TO_PLAYER) {
@@ -1973,8 +1952,7 @@ void EnHorse_FollowPlayer(EnHorse* this, PlayState* play) {
if (this->curFrame > 25.0f) {
if (!(this->stateFlags & ENHORSE_LAND2_SOUND)) {
this->stateFlags |= ENHORSE_LAND2_SOUND;
- Audio_PlaySfxGeneral(NA_SE_EV_HORSE_LAND2, &this->actor.projectedPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&this->actor.projectedPos, NA_SE_EV_HORSE_LAND2);
}
}
} else {
@@ -2001,8 +1979,7 @@ void EnHorse_FollowPlayer(EnHorse* this, PlayState* play) {
this->unk_21C = this->unk_228;
if (this->stateFlags & ENHORSE_DRAW) {
- Audio_PlaySfxGeneral(NA_SE_EV_HORSE_NEIGH, &this->unk_21C, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&this->unk_21C, NA_SE_EV_HORSE_NEIGH);
}
}
@@ -2030,8 +2007,7 @@ void EnHorse_InitIngoHorse(EnHorse* this) {
EnHorse_UpdateIngoHorseAnim(this);
this->unk_21C = this->unk_228;
if (this->stateFlags & ENHORSE_DRAW) {
- Audio_PlaySfxGeneral(NA_SE_IT_INGO_HORSE_NEIGH, &this->unk_21C, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&this->unk_21C, NA_SE_IT_INGO_HORSE_NEIGH);
}
}
@@ -2084,12 +2060,10 @@ void EnHorse_UpdateIngoHorseAnim(EnHorse* this) {
animSpeed = this->actor.speed * 0.5f;
} else if (this->animationIdx == ENHORSE_ANIM_TROT) {
animSpeed = this->actor.speed * 0.25f;
- Audio_PlaySfxGeneral(NA_SE_EV_HORSE_RUN, &this->actor.projectedPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&this->actor.projectedPos, NA_SE_EV_HORSE_RUN);
} else if (this->animationIdx == ENHORSE_ANIM_GALLOP) {
animSpeed = this->actor.speed * 0.2f;
- Audio_PlaySfxGeneral(NA_SE_EV_HORSE_RUN, &this->actor.projectedPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&this->actor.projectedPos, NA_SE_EV_HORSE_RUN);
} else {
animSpeed = 1.0f;
}
@@ -2206,8 +2180,7 @@ void EnHorse_CsPlayHighJumpAnim(EnHorse* this, PlayState* play) {
this->riderPos.y -= y * 0.01f;
this->stateFlags |= ENHORSE_CALC_RIDER_POS;
- Audio_PlaySfxGeneral(NA_SE_EV_HORSE_JUMP, &this->actor.projectedPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&this->actor.projectedPos, NA_SE_EV_HORSE_JUMP);
Rumble_Request(0.0f, 170, 10, 10);
}
@@ -2250,8 +2223,7 @@ void EnHorse_CsJump(EnHorse* this, PlayState* play, CsCmdActorCue* cue) {
if (SkelAnime_Update(&this->skin.skelAnime) ||
(temp_f2 > 19.0f && this->actor.world.pos.y < (this->actor.floorHeight - this->actor.velocity.y) + 80.0f)) {
this->cutsceneFlags |= 1;
- Audio_PlaySfxGeneral(NA_SE_EV_HORSE_LAND, &this->actor.projectedPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&this->actor.projectedPos, NA_SE_EV_HORSE_LAND);
Rumble_Request(0.0f, 255, 10, 80);
this->stateFlags &= ~ENHORSE_JUMPING;
this->actor.gravity = -3.5f;
@@ -2275,8 +2247,7 @@ void EnHorse_CsRearingInit(EnHorse* this, PlayState* play, CsCmdActorCue* cue) {
this->stateFlags &= ~ENHORSE_LAND2_SOUND;
this->unk_21C = this->unk_228;
if (this->stateFlags & ENHORSE_DRAW) {
- Audio_PlaySfxGeneral(NA_SE_EV_HORSE_NEIGH, &this->unk_21C, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&this->unk_21C, NA_SE_EV_HORSE_NEIGH);
}
Animation_Change(&this->skin.skelAnime, sAnimationHeaders[this->type][this->animationIdx], 1.0f, 0.0f,
Animation_GetLastFrame(sAnimationHeaders[this->type][this->animationIdx]), ANIMMODE_ONCE, -3.0f);
@@ -2287,8 +2258,7 @@ void EnHorse_CsRearing(EnHorse* this, PlayState* play, CsCmdActorCue* cue) {
if (this->curFrame > 25.0f) {
if (!(this->stateFlags & ENHORSE_LAND2_SOUND)) {
this->stateFlags |= ENHORSE_LAND2_SOUND;
- Audio_PlaySfxGeneral(NA_SE_EV_HORSE_LAND2, &this->actor.projectedPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&this->actor.projectedPos, NA_SE_EV_HORSE_LAND2);
}
}
if (SkelAnime_Update(&this->skin.skelAnime)) {
@@ -2363,8 +2333,7 @@ void EnHorse_CsWarpRearingInit(EnHorse* this, PlayState* play, CsCmdActorCue* cu
this->unk_21C = this->unk_228;
if (this->stateFlags & ENHORSE_DRAW) {
- Audio_PlaySfxGeneral(NA_SE_EV_HORSE_NEIGH, &this->unk_21C, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&this->unk_21C, NA_SE_EV_HORSE_NEIGH);
}
Animation_Change(&this->skin.skelAnime, sAnimationHeaders[this->type][this->animationIdx], 1.0f, 0.0f,
@@ -2376,8 +2345,7 @@ void EnHorse_CsWarpRearing(EnHorse* this, PlayState* play, CsCmdActorCue* cue) {
if (this->curFrame > 25.0f) {
if (!(this->stateFlags & ENHORSE_LAND2_SOUND)) {
this->stateFlags |= ENHORSE_LAND2_SOUND;
- Audio_PlaySfxGeneral(NA_SE_EV_HORSE_LAND2, &this->actor.projectedPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&this->actor.projectedPos, NA_SE_EV_HORSE_LAND2);
}
}
if (SkelAnime_Update(&this->skin.skelAnime)) {
@@ -2530,13 +2498,11 @@ void EnHorse_UpdateHbaAnim(EnHorse* this) {
animSpeed = this->actor.speed * 0.5f;
} else if (this->animationIdx == ENHORSE_ANIM_TROT) {
animSpeed = this->actor.speed * 0.25f;
- Audio_PlaySfxGeneral(NA_SE_EV_HORSE_RUN, &this->actor.projectedPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&this->actor.projectedPos, NA_SE_EV_HORSE_RUN);
Rumble_Request(0.0f, 60, 8, 255);
} else if (this->animationIdx == ENHORSE_ANIM_GALLOP) {
animSpeed = this->actor.speed * 0.2f;
- Audio_PlaySfxGeneral(NA_SE_EV_HORSE_RUN, &this->actor.projectedPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&this->actor.projectedPos, NA_SE_EV_HORSE_RUN);
Rumble_Request(0.0f, 120, 8, 255);
} else {
animSpeed = 1.0f;
@@ -2569,7 +2535,7 @@ void EnHorse_UpdateHorsebackArchery(EnHorse* this, PlayState* play) {
EnHorse_UpdateHbaRaceInfo(this, play, &sHbaInfo);
if ((this->hbaFlags & 1) || (this->hbaTimer >= 46)) {
if ((isFanfarePlaying != true) && (gSaveContext.minigameState != 3)) {
- gSaveContext.save.cutsceneIndex = 0;
+ gSaveContext.save.cutsceneIndex = CS_INDEX_NONE;
play->nextEntranceIndex = ENTR_GERUDOS_FORTRESS_16;
play->transitionTrigger = TRANS_TRIGGER_START;
play->transitionType = TRANS_TYPE_CIRCLE(TCA_NORMAL, TCC_BLACK, TCS_FAST);
@@ -2638,8 +2604,7 @@ void EnHorse_FleePlayer(EnHorse* this, PlayState* play) {
if (R_EPONAS_SONG_PLAYED || this->type == HORSE_HNI) {
EnHorse_StartIdleRidable(this);
- Audio_PlaySfxGeneral(NA_SE_EV_HORSE_NEIGH, &this->actor.projectedPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&this->actor.projectedPos, NA_SE_EV_HORSE_NEIGH);
}
distToHome = Math3D_Vec3f_DistXYZ(&this->actor.home.pos, &this->actor.world.pos);
@@ -2749,8 +2714,7 @@ void EnHorse_FleePlayer(EnHorse* this, PlayState* play) {
this->animationIdx = ENHORSE_ANIM_WHINNEY;
this->unk_21C = this->unk_228;
if (this->stateFlags & ENHORSE_DRAW) {
- Audio_PlaySfxGeneral(NA_SE_EV_HORSE_GROAN, &this->unk_21C, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&this->unk_21C, NA_SE_EV_HORSE_GROAN);
}
}
Animation_Change(&this->skin.skelAnime, sAnimationHeaders[this->type][this->animationIdx], 1.0f, 0.0f,
@@ -2806,11 +2770,9 @@ void EnHorse_BridgeJumpInit(EnHorse* this, PlayState* play) {
Animation_GetLastFrame(sAnimationHeaders[this->type][this->animationIdx]), ANIMMODE_ONCE, -3.0f);
this->unk_21C = this->unk_228;
if (this->stateFlags & ENHORSE_DRAW) {
- Audio_PlaySfxGeneral(NA_SE_EV_HORSE_NEIGH, &this->unk_21C, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&this->unk_21C, NA_SE_EV_HORSE_NEIGH);
}
- Audio_PlaySfxGeneral(NA_SE_EV_HORSE_JUMP, &this->actor.projectedPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&this->actor.projectedPos, NA_SE_EV_HORSE_JUMP);
Rumble_Request(0.0f, 170, 10, 10);
this->postDrawFunc = NULL;
}
@@ -2859,8 +2821,7 @@ void EnHorse_CheckBridgeJumpLanding(EnHorse* this, PlayState* play) {
this->actor.world.pos.y = sBridgeJumps[this->bridgeJumpIdx].pos.y;
func_80028A54(play, 25.0f, &this->actor.world.pos);
EnHorse_JumpLanding(this, play);
- Audio_PlaySfxGeneral(NA_SE_EV_HORSE_LAND, &this->actor.projectedPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&this->actor.projectedPos, NA_SE_EV_HORSE_LAND);
Rumble_Request(0.0f, 255, 10, 80);
}
}
@@ -3186,8 +3147,7 @@ void EnHorse_UpdateBgCheckInfo(EnHorse* this, PlayState* play) {
Math_CosS(this->actor.wallYaw - ((void)0, this->actor.world).rot.y) < -0.3f) {
if (this->actor.speed > 4.0f) {
this->actor.speed -= 1.0f;
- Audio_PlaySfxGeneral(NA_SE_EV_HORSE_SANDDUST, &this->actor.projectedPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&this->actor.projectedPos, NA_SE_EV_HORSE_SANDDUST);
}
}
@@ -3391,8 +3351,7 @@ void EnHorse_CheckBoost(EnHorse* thisx, PlayState* play2) {
this->unk_21C = this->unk_228;
if (this->stateFlags & ENHORSE_DRAW) {
if (Rand_ZeroOne() < 0.1f) {
- Audio_PlaySfxGeneral(NA_SE_EV_HORSE_NEIGH, &this->unk_21C, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&this->unk_21C, NA_SE_EV_HORSE_NEIGH);
}
}
}
@@ -3409,8 +3368,7 @@ void EnHorse_RegenBoost(EnHorse* this, PlayState* play) {
this->numBoosts++;
if (!EN_HORSE_CHECK_4(this)) {
- Audio_PlaySfxGeneral(NA_SE_SY_CARROT_RECOVER, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_CARROT_RECOVER);
}
if (this->numBoosts < 6) {
@@ -3426,8 +3384,7 @@ void EnHorse_RegenBoost(EnHorse* this, PlayState* play) {
this->numBoosts = 6;
if (!EN_HORSE_CHECK_4(this)) {
- Audio_PlaySfxGeneral(NA_SE_SY_CARROT_RECOVER, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_CARROT_RECOVER);
}
}
}
@@ -3435,8 +3392,7 @@ void EnHorse_RegenBoost(EnHorse* this, PlayState* play) {
if (this->boostTimer == 8 && Rand_ZeroOne() < 0.25f) {
this->unk_21C = this->unk_228;
if (this->stateFlags & ENHORSE_DRAW) {
- Audio_PlaySfxGeneral(NA_SE_EV_HORSE_NEIGH, &this->unk_21C, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&this->unk_21C, NA_SE_EV_HORSE_NEIGH);
}
}
play->interfaceCtx.numHorseBoosts = this->numBoosts;
@@ -3578,8 +3534,7 @@ void EnHorse_Update(Actor* thisx, PlayState* play2) {
if (this->colliderJntSph.base.acFlags & AC_HIT) {
this->unk_21C = this->unk_228;
if (this->stateFlags & ENHORSE_DRAW) {
- Audio_PlaySfxGeneral(NA_SE_EV_HORSE_NEIGH, &this->unk_21C, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&this->unk_21C, NA_SE_EV_HORSE_NEIGH);
}
}
if (this->action != ENHORSE_ACT_INGO_RACE) {
diff --git a/src/overlays/actors/ovl_En_Horse_Game_Check/z_en_horse_game_check.c b/src/overlays/actors/ovl_En_Horse_Game_Check/z_en_horse_game_check.c
index 56f09ec2d8..f8b128a894 100644
--- a/src/overlays/actors/ovl_En_Horse_Game_Check/z_en_horse_game_check.c
+++ b/src/overlays/actors/ovl_En_Horse_Game_Check/z_en_horse_game_check.c
@@ -121,7 +121,7 @@ s32 EnHorseGameCheck_DestroyIngoRace(EnHorseGameCheckBase* base, PlayState* play
}
void EnHorseGameCheck_FinishIngoRace(EnHorseGameCheckIngoRace* this, PlayState* play) {
- gSaveContext.save.cutsceneIndex = 0;
+ gSaveContext.save.cutsceneIndex = CS_INDEX_NONE;
if (this->result == INGO_RACE_PLAYER_WIN) {
play->nextEntranceIndex = ENTR_LON_LON_RANCH_7;
if (GET_EVENTINF(EVENTINF_INGO_RACE_SECOND_RACE)) {
@@ -167,8 +167,7 @@ s32 EnHorseGameCheck_UpdateIngoRace(EnHorseGameCheckBase* base, PlayState* play)
ingoHorse->inRace = 1;
this->startFlags |= INGO_RACE_INGO_MOVE;
- Audio_PlaySfxGeneral(NA_SE_SY_START_SHOT, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_START_SHOT);
}
this->startTimer++;
@@ -198,8 +197,7 @@ s32 EnHorseGameCheck_UpdateIngoRace(EnHorseGameCheckBase* base, PlayState* play)
this->result = INGO_RACE_PLAYER_WIN;
this->finishTimer = 55;
SEQCMD_PLAY_SEQUENCE(SEQ_PLAYER_BGM_MAIN, 0, 0, NA_BGM_HORSE_GOAL);
- Audio_PlaySfxGeneral(NA_SE_SY_START_SHOT, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_START_SHOT);
}
for (i = 0; i < 3; i++) {
this->playerCheck[i] = 0;
@@ -214,8 +212,7 @@ s32 EnHorseGameCheck_UpdateIngoRace(EnHorseGameCheckBase* base, PlayState* play)
this->finishTimer = 70;
ingoHorse->stateFlags |= ENHORSE_INGO_WON;
SEQCMD_PLAY_SEQUENCE(SEQ_PLAYER_BGM_MAIN, 0, 0, NA_BGM_HORSE_GOAL);
- Audio_PlaySfxGeneral(NA_SE_SY_START_SHOT, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_START_SHOT);
}
for (i = 0; i < 3; i++) {
this->ingoCheck[i] = 0;
@@ -308,20 +305,20 @@ s32 EnHorseGameCheck_DestroyMalonRace(EnHorseGameCheckBase* base, PlayState* pla
void EnHorseGameCheck_FinishMalonRace(EnHorseGameCheckMalonRace* this, PlayState* play) {
if ((this->result == MALONRACE_SUCCESS) || (this->result == MALONRACE_TIME_UP)) {
- gSaveContext.save.cutsceneIndex = 0;
+ gSaveContext.save.cutsceneIndex = CS_INDEX_NONE;
play->nextEntranceIndex = ENTR_LON_LON_RANCH_7;
play->transitionType = TRANS_TYPE_CIRCLE(TCA_STARBURST, TCC_WHITE, TCS_FAST);
play->transitionTrigger = TRANS_TRIGGER_START;
} else if (this->result == MALONRACE_FAILURE) {
gSaveContext.timerSeconds = 240;
gSaveContext.timerState = TIMER_STATE_UP_FREEZE;
- gSaveContext.save.cutsceneIndex = 0;
+ gSaveContext.save.cutsceneIndex = CS_INDEX_NONE;
play->nextEntranceIndex = ENTR_LON_LON_RANCH_7;
play->transitionType = TRANS_TYPE_CIRCLE(TCA_STARBURST, TCC_WHITE, TCS_FAST);
play->transitionTrigger = TRANS_TRIGGER_START;
} else {
PRINTF(T("En_HGC_Spot20_Ta_end():対応せず\n", "En_HGC_Spot20_Ta_end(): not supported\n"));
- gSaveContext.save.cutsceneIndex = 0;
+ gSaveContext.save.cutsceneIndex = CS_INDEX_NONE;
play->nextEntranceIndex = ENTR_LON_LON_RANCH_0;
play->transitionType = TRANS_TYPE_CIRCLE(TCA_STARBURST, TCC_WHITE, TCS_FAST);
play->transitionTrigger = TRANS_TRIGGER_START;
@@ -354,8 +351,7 @@ s32 EnHorseGameCheck_UpdateMalonRace(EnHorseGameCheckBase* base, PlayState* play
rideHorse->inRace = 1;
} else if ((this->startTimer > 81) && !(this->raceFlags & MALONRACE_START_SFX)) {
this->raceFlags |= MALONRACE_START_SFX;
- Audio_PlaySfxGeneral(NA_SE_SY_START_SHOT, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_START_SHOT);
}
this->startTimer++;
@@ -394,8 +390,7 @@ s32 EnHorseGameCheck_UpdateMalonRace(EnHorseGameCheckBase* base, PlayState* play
} else if (this->fenceCheck[15] == 1) {
this->lapCount = 2;
SEQCMD_PLAY_SEQUENCE(SEQ_PLAYER_BGM_MAIN, 0, 0, NA_BGM_HORSE_GOAL);
- Audio_PlaySfxGeneral(NA_SE_SY_START_SHOT, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_START_SHOT);
this->result = MALONRACE_SUCCESS;
this->finishTimer = 70;
gSaveContext.timerState = TIMER_STATE_UP_FREEZE;
diff --git a/src/overlays/actors/ovl_En_Horse_Ganon/z_en_horse_ganon.c b/src/overlays/actors/ovl_En_Horse_Ganon/z_en_horse_ganon.c
index b5f402ba1d..12c32b7be1 100644
--- a/src/overlays/actors/ovl_En_Horse_Ganon/z_en_horse_ganon.c
+++ b/src/overlays/actors/ovl_En_Horse_Ganon/z_en_horse_ganon.c
@@ -7,6 +7,7 @@
#include "z_en_horse_ganon.h"
#include "libc64/math64.h"
+#include "array_count.h"
#include "gfx.h"
#include "gfx_setupdl.h"
#include "ichain.h"
@@ -65,8 +66,8 @@ static ColliderCylinderInit sCylinderInit = {
},
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0x00000000, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0x00000000, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_NONE,
OCELEM_ON,
@@ -78,8 +79,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[] = {
{
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0x00000000, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0x00000000, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_NONE,
OCELEM_ON,
@@ -97,7 +98,7 @@ static ColliderJntSphInit sJntSphInit = {
OC2_TYPE_1 | OC2_UNK1,
COLSHAPE_JNTSPH,
},
- 1,
+ ARRAY_COUNT(sJntSphElementsInit),
sJntSphElementsInit,
};
@@ -166,8 +167,7 @@ void func_80A686A8(EnHorseGanon* this, PlayState* play) {
void func_80A68870(EnHorseGanon* this) {
if ((this->skin.skelAnime.curFrame > D_80A692B8[this->soundCount]) &&
(this->soundCount != 0 || !(this->skin.skelAnime.curFrame > D_80A692B8[1]))) {
- Audio_PlaySfxGeneral(NA_SE_EV_HORSE_WALK, &this->actor.projectedPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&this->actor.projectedPos, NA_SE_EV_HORSE_WALK);
this->soundCount++;
if (this->soundCount >= 2) {
@@ -247,12 +247,10 @@ void func_80A68B20(EnHorseGanon* this) {
sp30 = this->actor.speed / 3.0f;
} else if (this->currentAnimation == 3) {
sp30 = this->actor.speed / 5.0f;
- Audio_PlaySfxGeneral(NA_SE_EV_HORSE_RUN, &this->actor.projectedPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&this->actor.projectedPos, NA_SE_EV_HORSE_RUN);
} else if (this->currentAnimation == 4) {
sp30 = this->actor.speed / 7.0f;
- Audio_PlaySfxGeneral(NA_SE_EV_HORSE_RUN, &this->actor.projectedPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&this->actor.projectedPos, NA_SE_EV_HORSE_RUN);
} else {
sp30 = 1.0f;
}
diff --git a/src/overlays/actors/ovl_En_Horse_Link_Child/z_en_horse_link_child.c b/src/overlays/actors/ovl_En_Horse_Link_Child/z_en_horse_link_child.c
index 7e1282d880..6d8304ecad 100644
--- a/src/overlays/actors/ovl_En_Horse_Link_Child/z_en_horse_link_child.c
+++ b/src/overlays/actors/ovl_En_Horse_Link_Child/z_en_horse_link_child.c
@@ -64,8 +64,8 @@ static ColliderCylinderInitType1 sCylinderInit = {
},
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0x00000000, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0x00000000, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_NONE,
OCELEM_ON,
@@ -73,12 +73,12 @@ static ColliderCylinderInitType1 sCylinderInit = {
{ 20, 100, 0, { 0, 0, 0 } },
};
-static ColliderJntSphElementInit sJntSphElementsInit[1] = {
+static ColliderJntSphElementInit sJntSphElementsInit[] = {
{
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0x00000000, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0x00000000, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_NONE,
OCELEM_ON,
@@ -96,7 +96,7 @@ static ColliderJntSphInit sJntSphInit = {
OC2_TYPE_1 | OC2_UNK1,
COLSHAPE_JNTSPH,
},
- 1,
+ ARRAY_COUNT(sJntSphElementsInit),
sJntSphElementsInit,
};
@@ -107,8 +107,7 @@ void func_80A693D0(EnHorseLinkChild* this) {
if ((this->skin.skelAnime.curFrame > D_80A6AF5C[this->unk_1F0]) &&
!((this->unk_1F0 == 0) && (this->skin.skelAnime.curFrame > D_80A6AF5C[1]))) {
- Audio_PlaySfxGeneral(NA_SE_EV_KID_HORSE_WALK, &this->actor.projectedPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&this->actor.projectedPos, NA_SE_EV_KID_HORSE_WALK);
this->unk_1F0++;
if (this->unk_1F0 >= ARRAY_COUNT(D_80A6AF5C)) {
this->unk_1F0 = 0;
@@ -121,15 +120,12 @@ void func_80A6948C(EnHorseLinkChild* this) {
func_80A693D0(this);
} else if (this->skin.skelAnime.curFrame == 0.0f) {
if ((this->animationIdx == 3) || (this->animationIdx == 4)) {
- Audio_PlaySfxGeneral(NA_SE_EV_KID_HORSE_RUN, &this->actor.projectedPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&this->actor.projectedPos, NA_SE_EV_KID_HORSE_RUN);
} else if (this->animationIdx == 1) {
if (Rand_ZeroOne() > 0.5f) {
- Audio_PlaySfxGeneral(NA_SE_EV_KID_HORSE_GROAN, &this->actor.projectedPos, 4,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&this->actor.projectedPos, NA_SE_EV_KID_HORSE_GROAN);
} else {
- Audio_PlaySfxGeneral(NA_SE_EV_KID_HORSE_NEIGH, &this->actor.projectedPos, 4,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&this->actor.projectedPos, NA_SE_EV_KID_HORSE_NEIGH);
}
}
}
@@ -368,14 +364,13 @@ void func_80A6A068(EnHorseLinkChild* this, PlayState* play) {
distFromLink = Actor_WorldDistXZToActor(&this->actor, &player->actor);
if (gSaveContext.save.entranceIndex == ENTR_LON_LON_RANCH_1) {
- Audio_PlaySfxGeneral(NA_SE_EV_KID_HORSE_NEIGH, &this->actor.projectedPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&this->actor.projectedPos, NA_SE_EV_KID_HORSE_NEIGH);
func_80A6A724(this);
return;
}
if ((GET_EVENTCHKINF(EVENTCHKINF_CAN_LEARN_EPONAS_SONG) && R_EPONAS_SONG_PLAYED) ||
- ((play->sceneId == SCENE_LON_LON_RANCH) && (gSaveContext.save.cutsceneIndex == 0xFFF1))) {
+ ((play->sceneId == SCENE_LON_LON_RANCH) && (gSaveContext.save.cutsceneIndex == CS_INDEX_1))) {
func_80A6A4DC(this);
} else {
this->unk_2A0 = GET_EVENTCHKINF(EVENTCHKINF_CAN_LEARN_EPONAS_SONG);
@@ -461,8 +456,7 @@ void func_80A6A5A4(EnHorseLinkChild* this, PlayState* play) {
if (R_EPONAS_SONG_PLAYED) {
R_EPONAS_SONG_PLAYED = false;
- Audio_PlaySfxGeneral(NA_SE_EV_KID_HORSE_NEIGH, &this->actor.projectedPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&this->actor.projectedPos, NA_SE_EV_KID_HORSE_NEIGH);
func_80A6A724(this);
} else {
this->actor.speed = 0.0f;
diff --git a/src/overlays/actors/ovl_En_Horse_Normal/z_en_horse_normal.c b/src/overlays/actors/ovl_En_Horse_Normal/z_en_horse_normal.c
index c3713febb6..fcdeb0d10d 100644
--- a/src/overlays/actors/ovl_En_Horse_Normal/z_en_horse_normal.c
+++ b/src/overlays/actors/ovl_En_Horse_Normal/z_en_horse_normal.c
@@ -85,8 +85,8 @@ static ColliderCylinderInit sCylinderInit1 = {
},
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0x00000000, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0x00000000, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_NONE,
OCELEM_ON,
@@ -105,8 +105,8 @@ static ColliderCylinderInit sCylinderInit2 = {
},
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0x00000000, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0x00000000, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_NONE,
OCELEM_ON,
@@ -118,8 +118,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[] = {
{
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0x00000000, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0x00000000, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_NONE,
OCELEM_ON,
@@ -167,8 +167,7 @@ void func_80A6B250(EnHorseNormal* this) {
if (D_80A6D4C0[this->unk_200] < this->skin.skelAnime.curFrame &&
((this->unk_200 != 0) || !(D_80A6D4C0[1] < this->skin.skelAnime.curFrame))) {
- Audio_PlaySfxGeneral(NA_SE_EV_HORSE_WALK, &this->actor.projectedPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&this->actor.projectedPos, NA_SE_EV_HORSE_WALK);
this->unk_200++;
if (this->unk_200 >= ARRAY_COUNT(D_80A6D4C0)) {
this->unk_200 = 0;
@@ -360,11 +359,9 @@ void func_80A6BC48(EnHorseNormal* this) {
void func_80A6BCEC(EnHorseNormal* this) {
if (this->animationIdx == 5) {
- Audio_PlaySfxGeneral(NA_SE_EV_HORSE_RUN, &this->actor.projectedPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&this->actor.projectedPos, NA_SE_EV_HORSE_RUN);
} else if (this->animationIdx == 6) {
- Audio_PlaySfxGeneral(NA_SE_EV_HORSE_RUN, &this->actor.projectedPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&this->actor.projectedPos, NA_SE_EV_HORSE_RUN);
}
}
@@ -373,12 +370,10 @@ void func_80A6BD7C(EnHorseNormal* this) {
if (this->animationIdx == 0 && frame > 28.0f && !(this->unk_1E4 & 1)) {
this->unk_1E4 |= 1;
- Audio_PlaySfxGeneral(NA_SE_EV_HORSE_SANDDUST, &this->actor.projectedPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&this->actor.projectedPos, NA_SE_EV_HORSE_SANDDUST);
} else if (this->animationIdx == 3 && frame > 25.0f && !(this->unk_1E4 & 2)) {
this->unk_1E4 |= 2;
- Audio_PlaySfxGeneral(NA_SE_EV_HORSE_LAND2, &this->actor.projectedPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&this->actor.projectedPos, NA_SE_EV_HORSE_LAND2);
}
}
@@ -447,11 +442,9 @@ void EnHorseNormal_Wander(EnHorseNormal* this, PlayState* play) {
this->unk_1E4 &= ~1;
this->unk_1E4 &= ~2;
if (phi_t0 == 1) {
- Audio_PlaySfxGeneral(NA_SE_EV_HORSE_GROAN, &this->unk_204, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&this->unk_204, NA_SE_EV_HORSE_GROAN);
} else if (phi_t0 == 3) {
- Audio_PlaySfxGeneral(NA_SE_EV_HORSE_NEIGH, &this->unk_204, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&this->unk_204, NA_SE_EV_HORSE_NEIGH);
} else {
func_80A6BCEC(this);
}
@@ -478,11 +471,9 @@ void EnHorseNormal_Wander(EnHorseNormal* this, PlayState* play) {
this->unk_1E4 &= ~1;
this->unk_1E4 &= ~2;
if (phi_t0 == 1) {
- Audio_PlaySfxGeneral(NA_SE_EV_HORSE_GROAN, &this->unk_204, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&this->unk_204, NA_SE_EV_HORSE_GROAN);
} else if (phi_t0 == 3) {
- Audio_PlaySfxGeneral(NA_SE_EV_HORSE_NEIGH, &this->unk_204, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&this->unk_204, NA_SE_EV_HORSE_NEIGH);
} else {
func_80A6BCEC(this);
}
@@ -517,12 +508,10 @@ void EnHorseNormal_Wait(EnHorseNormal* this, PlayState* play) {
this->animationIdx = 0;
} else if (rand < 0.8f) {
this->animationIdx = 1;
- Audio_PlaySfxGeneral(NA_SE_EV_HORSE_GROAN, &this->unk_204, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&this->unk_204, NA_SE_EV_HORSE_GROAN);
} else {
this->animationIdx = 3;
- Audio_PlaySfxGeneral(NA_SE_EV_HORSE_NEIGH, &this->unk_204, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&this->unk_204, NA_SE_EV_HORSE_NEIGH);
}
Animation_Change(&this->skin.skelAnime, sAnimations[this->animationIdx], func_80A6B30C(this), 0.0f,
@@ -553,13 +542,11 @@ void EnHorseNormal_WaitClone(EnHorseNormal* this, PlayState* play) {
} else if (rand < 0.8f) {
this->animationIdx = 1;
this->unk_1E4 |= 0x20;
- Audio_PlaySfxGeneral(NA_SE_EV_HORSE_GROAN, &this->unk_204, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&this->unk_204, NA_SE_EV_HORSE_GROAN);
} else {
this->animationIdx = 3;
this->unk_1E4 |= 0x20;
- Audio_PlaySfxGeneral(NA_SE_EV_HORSE_NEIGH, &this->unk_204, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&this->unk_204, NA_SE_EV_HORSE_NEIGH);
}
Animation_Change(&this->skin.skelAnime, sAnimations[this->animationIdx], func_80A6B30C(this), 0.0f,
@@ -648,20 +635,16 @@ void func_80A6CC88(PlayState* play, EnHorseNormal* this, Vec3f* arg2) {
if (this->animationIdx == 0 && curFrame > 28.0f && !(this->unk_1E4 & 8)) {
this->unk_1E4 |= 8;
- Audio_PlaySfxGeneral(NA_SE_EV_HORSE_SANDDUST, &this->unk_1E8, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&this->unk_1E8, NA_SE_EV_HORSE_SANDDUST);
} else if (this->animationIdx == 3 && curFrame > 25.0f && !(this->unk_1E4 & 0x10)) {
this->unk_1E4 |= 0x10;
- Audio_PlaySfxGeneral(NA_SE_EV_HORSE_LAND2, &this->unk_1E8, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&this->unk_1E8, NA_SE_EV_HORSE_LAND2);
} else if (this->animationIdx == 3 && this->unk_1E4 & 0x20) {
this->unk_1E4 &= ~0x20;
- Audio_PlaySfxGeneral(NA_SE_EV_HORSE_NEIGH, &this->unk_1F4, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&this->unk_1F4, NA_SE_EV_HORSE_NEIGH);
} else if (this->animationIdx == 1 && this->unk_1E4 & 0x20) {
this->unk_1E4 &= ~0x20;
- Audio_PlaySfxGeneral(NA_SE_EV_HORSE_GROAN, &this->unk_1F4, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&this->unk_1F4, NA_SE_EV_HORSE_GROAN);
}
}
diff --git a/src/overlays/actors/ovl_En_Horse_Zelda/z_en_horse_zelda.c b/src/overlays/actors/ovl_En_Horse_Zelda/z_en_horse_zelda.c
index 2906e541cd..991ded9bf4 100644
--- a/src/overlays/actors/ovl_En_Horse_Zelda/z_en_horse_zelda.c
+++ b/src/overlays/actors/ovl_En_Horse_Zelda/z_en_horse_zelda.c
@@ -56,8 +56,8 @@ static ColliderCylinderInitType1 sCylinderInit = {
},
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0x00000000, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0x00000000, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_NONE,
OCELEM_ON,
@@ -65,12 +65,12 @@ static ColliderCylinderInitType1 sCylinderInit = {
{ 40, 100, 0, { 0, 0, 0 } },
};
-static ColliderJntSphElementInit sJntSphElementsInit[1] = {
+static ColliderJntSphElementInit sJntSphElementsInit[] = {
{
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0x00000000, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0x00000000, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_NONE,
OCELEM_ON,
@@ -88,7 +88,7 @@ static ColliderJntSphInit sJntSphInit = {
OC2_TYPE_1 | OC2_UNK1,
COLSHAPE_JNTSPH,
},
- 1,
+ ARRAY_COUNT(sJntSphElementsInit),
sJntSphElementsInit,
};
@@ -212,8 +212,7 @@ void EnHorseZelda_Spur(EnHorseZelda* this) {
this->action = 1;
this->animationIndex = 0;
speedMod = this->actor.speed / 6.0f;
- Audio_PlaySfxGeneral(NA_SE_EV_HORSE_RUN, &this->actor.projectedPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&this->actor.projectedPos, NA_SE_EV_HORSE_RUN);
Animation_Change(&this->skin.skelAnime, sAnimationHeaders[this->animationIndex],
splaySpeeds[this->animationIndex] * speedMod * 1.5f, 0.0f,
Animation_GetLastFrame(sAnimationHeaders[this->animationIndex]), ANIMMODE_ONCE, 0.0f);
diff --git a/src/overlays/actors/ovl_En_Hs/z_en_hs.c b/src/overlays/actors/ovl_En_Hs/z_en_hs.c
index 757eab0a77..fca53bcd74 100644
--- a/src/overlays/actors/ovl_En_Hs/z_en_hs.c
+++ b/src/overlays/actors/ovl_En_Hs/z_en_hs.c
@@ -53,8 +53,8 @@ static ColliderCylinderInit sCylinderInit = {
},
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON,
OCELEM_ON,
diff --git a/src/overlays/actors/ovl_En_Hs2/z_en_hs2.c b/src/overlays/actors/ovl_En_Hs2/z_en_hs2.c
index 453ab7f659..4eefda79d8 100644
--- a/src/overlays/actors/ovl_En_Hs2/z_en_hs2.c
+++ b/src/overlays/actors/ovl_En_Hs2/z_en_hs2.c
@@ -49,8 +49,8 @@ static ColliderCylinderInit sCylinderInit = {
},
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON,
OCELEM_ON,
diff --git a/src/overlays/actors/ovl_En_Hy/z_en_hy.c b/src/overlays/actors/ovl_En_Hy/z_en_hy.c
index bcc58becb1..ba419257f6 100644
--- a/src/overlays/actors/ovl_En_Hy/z_en_hy.c
+++ b/src/overlays/actors/ovl_En_Hy/z_en_hy.c
@@ -71,8 +71,8 @@ static ColliderCylinderInit sColliderCylinderInit = {
},
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0x00000000, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0x00000000, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_NONE,
OCELEM_ON,
@@ -789,9 +789,7 @@ s16 EnHy_UpdateTalkState(PlayState* play, Actor* thisx) {
case 0x709E:
case 0x709F:
if (!this->playedSfx) {
- Audio_PlaySfxGeneral(this->actor.textId == 0x709F ? NA_SE_SY_CORRECT_CHIME : NA_SE_SY_ERROR,
- &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(this->actor.textId == 0x709F ? NA_SE_SY_CORRECT_CHIME : NA_SE_SY_ERROR);
this->playedSfx = true;
}
break;
diff --git a/src/overlays/actors/ovl_En_Ice_Hono/z_en_ice_hono.c b/src/overlays/actors/ovl_En_Ice_Hono/z_en_ice_hono.c
index 86e86a8065..fb0e54f101 100644
--- a/src/overlays/actors/ovl_En_Ice_Hono/z_en_ice_hono.c
+++ b/src/overlays/actors/ovl_En_Ice_Hono/z_en_ice_hono.c
@@ -62,8 +62,8 @@ static ColliderCylinderInit sCylinderInitCapturableFlame = {
},
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0x00000000, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0x00000000, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_NONE,
OCELEM_ON,
@@ -82,8 +82,8 @@ static ColliderCylinderInit sCylinderInitDroppedFlame = {
},
{
ELEM_MATERIAL_UNK0,
- { 0xFFCFFFFF, 0x00, 0x00 },
- { 0x00000000, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0x00000000, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_NONE,
OCELEM_ON,
diff --git a/src/overlays/actors/ovl_En_Ik/z_en_ik.c b/src/overlays/actors/ovl_En_Ik/z_en_ik.c
index 2dfee076b2..ad944a3957 100644
--- a/src/overlays/actors/ovl_En_Ik/z_en_ik.c
+++ b/src/overlays/actors/ovl_En_Ik/z_en_ik.c
@@ -98,8 +98,8 @@ static ColliderCylinderInit sCylinderInit = {
},
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON | ACELEM_HOOKABLE,
OCELEM_ON,
@@ -107,12 +107,12 @@ static ColliderCylinderInit sCylinderInit = {
{ 25, 80, 0, { 0, 0, 0 } },
};
-static ColliderTrisElementInit sTrisElementsInit[2] = {
+static ColliderTrisElementInit sTrisElementsInit[] = {
{
{
ELEM_MATERIAL_UNK2,
- { 0x00000000, 0x00, 0x00 },
- { 0xFFC3FFFF, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0xFFC3FFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON | ACELEM_NO_AT_INFO,
OCELEM_NONE,
@@ -122,8 +122,8 @@ static ColliderTrisElementInit sTrisElementsInit[2] = {
{
{
ELEM_MATERIAL_UNK2,
- { 0x00000000, 0x00, 0x00 },
- { 0xFFC3FFFF, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0xFFC3FFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON | ACELEM_NO_AT_INFO,
OCELEM_NONE,
@@ -141,7 +141,7 @@ static ColliderTrisInit sTrisInit = {
OC2_NONE,
COLSHAPE_TRIS,
},
- 2,
+ ARRAY_COUNT(sTrisElementsInit),
sTrisElementsInit,
};
@@ -156,8 +156,8 @@ static ColliderQuadInit sQuadInit = {
},
{
ELEM_MATERIAL_UNK0,
- { 0x20000000, 0x00, 0x40 },
- { 0x00000000, 0x00, 0x00 },
+ { 0x20000000, HIT_SPECIAL_EFFECT_NONE, 0x40 },
+ { 0x00000000, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL | ATELEM_UNK7,
ACELEM_NONE,
OCELEM_NONE,
@@ -1059,30 +1059,23 @@ void EnIk_StartMinibossBgm(void) {
// Cutscene: Nabooru Knuckle Wakes up
void EnIk_UpdateAction2Sfx(EnIk* this) {
if (Animation_OnFrame(&this->skelAnime, 1.0f)) {
- Audio_PlaySfxGeneral(NA_SE_EN_IRONNACK_WAKEUP, &this->actor.projectedPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&this->actor.projectedPos, NA_SE_EN_IRONNACK_WAKEUP);
} else if (Animation_OnFrame(&this->skelAnime, 33.0f)) {
- Audio_PlaySfxGeneral(NA_SE_EN_IRONNACK_WALK, &this->actor.projectedPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&this->actor.projectedPos, NA_SE_EN_IRONNACK_WALK);
} else if (Animation_OnFrame(&this->skelAnime, 68.0f) || Animation_OnFrame(&this->skelAnime, 80.0f)) {
- Audio_PlaySfxGeneral(NA_SE_EN_IRONNACK_ARMOR_DEMO, &this->actor.projectedPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&this->actor.projectedPos, NA_SE_EN_IRONNACK_ARMOR_DEMO);
} else if (Animation_OnFrame(&this->skelAnime, 107.0f)) {
- Audio_PlaySfxGeneral(NA_SE_EN_IRONNACK_FINGER_DEMO, &this->actor.projectedPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&this->actor.projectedPos, NA_SE_EN_IRONNACK_FINGER_DEMO);
} else if (Animation_OnFrame(&this->skelAnime, 156.0f)) {
- Audio_PlaySfxGeneral(NA_SE_EN_IRONNACK_ARMOR_DEMO, &this->actor.projectedPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&this->actor.projectedPos, NA_SE_EN_IRONNACK_ARMOR_DEMO);
} else if (Animation_OnFrame(&this->skelAnime, 188.0f)) {
- Audio_PlaySfxGeneral(NA_SE_EN_IRONNACK_WAVE_DEMO, &this->actor.projectedPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&this->actor.projectedPos, NA_SE_EN_IRONNACK_WAVE_DEMO);
}
}
// Cutscene: Summons Axe for Nabooru Knuckle
void EnIk_PlayAxeSpawnSfx(EnIk* this, PlayState* play, Vec3f* pos) {
- Audio_PlaySfxGeneral(NA_SE_EN_TWINROBA_TRANSFORM, &this->actor.projectedPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&this->actor.projectedPos, NA_SE_EN_TWINROBA_TRANSFORM);
}
void EnIk_SpawnAxeSmoke(EnIk* this, PlayState* play, Vec3f* pos) {
@@ -1198,8 +1191,7 @@ void EnIk_HandleEnemyChange(EnIk* this, PlayState* play, s32 animFinished) {
}
void EnIk_PlayArmorFallSfx(EnIk* this) {
- Audio_PlaySfxGeneral(NA_SE_EN_IRONNACK_STAGGER_DEMO, &this->actor.projectedPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&this->actor.projectedPos, NA_SE_EN_IRONNACK_STAGGER_DEMO);
}
void EnIk_PlayDeathSfx(EnIk* this, PlayState* play) {
@@ -1208,8 +1200,7 @@ void EnIk_PlayDeathSfx(EnIk* this, PlayState* play) {
f32 wDest;
SkinMatrix_Vec3fMtxFMultXYZW(&play->viewProjectionMtxF, &this->actor.world.pos, &D_80A78FA0, &wDest);
- Audio_PlaySfxGeneral(NA_SE_EN_IRONNACK_DEAD, &D_80A78FA0, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&D_80A78FA0, NA_SE_EN_IRONNACK_DEAD);
}
// Cutscene: starts after final hit to Nabooru
diff --git a/src/overlays/actors/ovl_En_In/z_en_in.c b/src/overlays/actors/ovl_En_In/z_en_in.c
index 3fb2a8f5e9..952e0db3ef 100644
--- a/src/overlays/actors/ovl_En_In/z_en_in.c
+++ b/src/overlays/actors/ovl_En_In/z_en_in.c
@@ -67,8 +67,8 @@ static ColliderCylinderInit sCylinderInit = {
},
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0x00000000, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0x00000000, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_NONE,
OCELEM_ON,
@@ -457,7 +457,7 @@ void func_80A79BAC(EnIn* this, PlayState* play, s32 index, u32 transitionType) {
play->nextEntranceIndex = entrances[index];
if (index == 2) {
- gSaveContext.nextCutsceneIndex = 0xFFF0;
+ gSaveContext.nextCutsceneIndex = CS_INDEX_0;
}
play->transitionType = transitionType;
play->transitionTrigger = TRANS_TRIGGER_START;
@@ -652,11 +652,9 @@ void func_80A7A304(EnIn* this, PlayState* play) {
this->animationIdx %= 8;
this->unk_1E8 = this->animationIdx;
if (this->animationIdx == 3 || this->animationIdx == 4) {
- Audio_PlaySfxGeneral(NA_SE_IT_LASH, &this->actor.projectedPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&this->actor.projectedPos, NA_SE_IT_LASH);
if (Rand_ZeroOne() < 0.3f) {
- Audio_PlaySfxGeneral(NA_SE_IT_INGO_HORSE_NEIGH, &this->actor.projectedPos, 4,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&this->actor.projectedPos, NA_SE_IT_INGO_HORSE_NEIGH);
}
}
Animation_Change(&this->skelAnime, D_80A7B918[this->animationIdx], 1.0f, 0.0f,
@@ -689,8 +687,7 @@ void func_80A7A568(EnIn* this, PlayState* play) {
SET_INFTABLE(INFTABLE_AB);
}
if (gSaveContext.timerState == TIMER_STATE_STOP) {
- Audio_PlaySfxGeneral(NA_SE_SY_FOUND, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_FOUND);
func_80A79C78(this, play);
this->actionFunc = func_80A7B024;
gSaveContext.timerState = TIMER_STATE_OFF;
@@ -707,8 +704,7 @@ void func_80A7A568(EnIn* this, PlayState* play) {
phi_a2 = 2;
transitionType = TRANS_TYPE_FADE_BLACK;
} else {
- Audio_PlaySfxGeneral(NA_SE_SY_FOUND, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_FOUND);
if (!GET_EVENTCHKINF(EVENTCHKINF_1B)) {
if (GET_INFTABLE(INFTABLE_AB)) {
SET_EVENTCHKINF(EVENTCHKINF_1B);
@@ -992,24 +988,24 @@ s32 EnIn_OverrideLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3f* po
EnIn* this = (EnIn*)thisx;
Vec3s limbRot;
- if (this->actor.params > 0 && limbIndex != INGO_HEAD_LIMB) {
+ if (this->actor.params > 0 && limbIndex != INGO_LIMB_HEAD) {
if (sAdultEraDLs[limbIndex] != NULL) {
*dList = sAdultEraDLs[limbIndex];
}
}
- if (limbIndex == INGO_HEAD_LIMB) {
+ if (limbIndex == INGO_LIMB_HEAD) {
Matrix_Translate(1500.0f, 0.0f, 0.0f, MTXMODE_APPLY);
limbRot = this->interactInfo.headRot;
Matrix_RotateZ(BINANG_TO_RAD_ALT(limbRot.x), MTXMODE_APPLY);
Matrix_RotateX(BINANG_TO_RAD_ALT(limbRot.y), MTXMODE_APPLY);
Matrix_Translate(-1500.0f, 0.0f, 0.0f, MTXMODE_APPLY);
}
- if (limbIndex == INGO_CHEST_LIMB) {
+ if (limbIndex == INGO_LIMB_CHEST) {
limbRot = this->interactInfo.torsoRot;
Matrix_RotateX(BINANG_TO_RAD_ALT(limbRot.x), MTXMODE_APPLY);
Matrix_RotateY(BINANG_TO_RAD_ALT(limbRot.y), MTXMODE_APPLY);
}
- if (limbIndex == INGO_CHEST_LIMB || limbIndex == INGO_LEFT_SHOULDER_LIMB || limbIndex == INGO_RIGHT_SHOULDER_LIMB) {
+ if (limbIndex == INGO_LIMB_CHEST || limbIndex == INGO_LIMB_LEFT_SHOULDER || limbIndex == INGO_LIMB_RIGHT_SHOULDER) {
rot->y += Math_SinS(this->unk_330[limbIndex].y) * 200.0f;
rot->z += Math_CosS(this->unk_330[limbIndex].z) * 200.0f;
}
@@ -1022,14 +1018,14 @@ void EnIn_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot,
OPEN_DISPS(play->state.gfxCtx, "../z_en_in.c", 2335);
- if (limbIndex == INGO_HEAD_LIMB) {
+ if (limbIndex == INGO_LIMB_HEAD) {
Matrix_MultVec3f(&D_80A7B9A8, &this->actor.focus.pos);
this->actor.focus.rot = this->actor.world.rot;
}
- if (limbIndex == INGO_LEFT_HAND_LIMB && this->skelAnime.animation == &object_in_Anim_014CA8) {
+ if (limbIndex == INGO_LIMB_LEFT_HAND && this->skelAnime.animation == &object_in_Anim_014CA8) {
gSPDisplayList(POLY_OPA_DISP++, gIngoChildEraBasketDL);
}
- if (limbIndex == INGO_RIGHT_HAND_LIMB && this->skelAnime.animation == &object_in_Anim_014CA8) {
+ if (limbIndex == INGO_LIMB_RIGHT_HAND && this->skelAnime.animation == &object_in_Anim_014CA8) {
gSPDisplayList(POLY_OPA_DISP++, gIngoChildEraPitchForkDL);
}
diff --git a/src/overlays/actors/ovl_En_In/z_en_in.h b/src/overlays/actors/ovl_En_In/z_en_in.h
index 78d8f89170..2e4ecff82c 100644
--- a/src/overlays/actors/ovl_En_In/z_en_in.h
+++ b/src/overlays/actors/ovl_En_In/z_en_in.h
@@ -3,35 +3,12 @@
#include "ultra64.h"
#include "actor.h"
+#include "assets/objects/object_in/object_in.h"
struct EnIn;
typedef void (*EnInActionFunc)(struct EnIn*, struct PlayState*);
-typedef enum IngoLimb {
- /* 0x00 */ INGO_LIMB_NONE,
- /* 0x01 */ INGO_LIMB_ROOT,
- /* 0x02 */ INGO_LEFT_THIGH_LIMB,
- /* 0x03 */ INGO_LEFT_LEG_LIMB,
- /* 0x04 */ INGO_LEFT_FOOT_LIMB,
- /* 0x05 */ INGO_RIGHT_THIGH_LIMB,
- /* 0x06 */ INGO_RIGHT_LEG_LIMB,
- /* 0x07 */ INGO_RIGHT_FOOT_LIMB,
- /* 0x08 */ INGO_TORSO_LIMB,
- /* 0x09 */ INGO_CHEST_LIMB,
- /* 0x0A */ INGO_LEFT_SHOULDER_LIMB,
- /* 0x0B */ INGO_LEFT_ARM_LIMB,
- /* 0x0C */ INGO_LEFT_HAND_LIMB,
- /* 0x0D */ INGO_RIGHT_SHOULDER_LIMB,
- /* 0x0E */ INGO_RIGHT_ARM_LIMB,
- /* 0x0F */ INGO_RIGHT_HAND_LIMB,
- /* 0x10 */ INGO_HEAD_LIMB,
- /* 0x11 */ INGO_LEFT_EYEBROW_LIMB,
- /* 0x12 */ INGO_RIGHTEYEBROW_LIMB,
- /* 0x13 */ INGO_MUSTACHE_LIMB,
- /* 0x14 */ INGO_LIMB_MAX
-} IngoLimb;
-
typedef struct EnIn {
/* 0x0000 */ Actor actor;
/* 0x014C */ SkelAnime skelAnime;
diff --git a/src/overlays/actors/ovl_En_Insect/z_en_insect.c b/src/overlays/actors/ovl_En_Insect/z_en_insect.c
index dd215680c9..3c7cf47292 100644
--- a/src/overlays/actors/ovl_En_Insect/z_en_insect.c
+++ b/src/overlays/actors/ovl_En_Insect/z_en_insect.c
@@ -8,6 +8,7 @@
#include "overlays/actors/ovl_Obj_Makekinsuta/z_obj_makekinsuta.h"
#include "libc64/qrand.h"
+#include "array_count.h"
#include "gfx.h"
#include "gfx_setupdl.h"
#include "ichain.h"
@@ -70,12 +71,12 @@ ActorProfile En_Insect_Profile = {
/**/ EnInsect_Draw,
};
-static ColliderJntSphElementInit sColliderElementsInit[1] = {
+static ColliderJntSphElementInit sColliderElementsInit[] = {
{
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_NONE,
OCELEM_ON,
@@ -93,7 +94,7 @@ static ColliderJntSphInit sColliderJntSphInit = {
OC2_TYPE_1,
COLSHAPE_JNTSPH,
},
- 1,
+ ARRAY_COUNT(sColliderElementsInit),
sColliderElementsInit,
};
diff --git a/src/overlays/actors/ovl_En_It/z_en_it.c b/src/overlays/actors/ovl_En_It/z_en_it.c
index 2faea7fb6e..b6bb36d3a3 100644
--- a/src/overlays/actors/ovl_En_It/z_en_it.c
+++ b/src/overlays/actors/ovl_En_It/z_en_it.c
@@ -25,13 +25,13 @@ static ColliderCylinderInit sCylinderInit = {
},
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0x00000000, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0x00000000, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_NONE,
OCELEM_ON,
},
- { 40, 10, 0, { 0 } },
+ { 40, 10, 0, { 0, 0, 0 } },
};
static CollisionCheckInfoInit2 sColChkInfoInit = { 0, 0, 0, 0, MASS_IMMOVABLE };
diff --git a/src/overlays/actors/ovl_En_Jj/z_en_jj.c b/src/overlays/actors/ovl_En_Jj/z_en_jj.c
index 917c765c7e..89ef487ab3 100644
--- a/src/overlays/actors/ovl_En_Jj/z_en_jj.c
+++ b/src/overlays/actors/ovl_En_Jj/z_en_jj.c
@@ -69,8 +69,8 @@ static ColliderCylinderInit sCylinderInit = {
},
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0x00000004, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0x00000004, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON,
OCELEM_ON,
diff --git a/src/overlays/actors/ovl_En_Js/z_en_js.c b/src/overlays/actors/ovl_En_Js/z_en_js.c
index 7e570bdd56..d26911af1f 100644
--- a/src/overlays/actors/ovl_En_Js/z_en_js.c
+++ b/src/overlays/actors/ovl_En_Js/z_en_js.c
@@ -48,8 +48,8 @@ static ColliderCylinderInit sCylinderInit = {
},
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON,
OCELEM_ON,
diff --git a/src/overlays/actors/ovl_En_Kakasi/z_en_kakasi.c b/src/overlays/actors/ovl_En_Kakasi/z_en_kakasi.c
index 71a3eae57f..cd887c91e8 100644
--- a/src/overlays/actors/ovl_En_Kakasi/z_en_kakasi.c
+++ b/src/overlays/actors/ovl_En_Kakasi/z_en_kakasi.c
@@ -49,8 +49,8 @@ static ColliderCylinderInit sCylinderInit = {
},
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0x00000000, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0x00000000, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_NONE | ACELEM_HOOKABLE,
OCELEM_ON,
diff --git a/src/overlays/actors/ovl_En_Kakasi2/z_en_kakasi2.c b/src/overlays/actors/ovl_En_Kakasi2/z_en_kakasi2.c
index e4b3dbf9e6..d3b163a099 100644
--- a/src/overlays/actors/ovl_En_Kakasi2/z_en_kakasi2.c
+++ b/src/overlays/actors/ovl_En_Kakasi2/z_en_kakasi2.c
@@ -37,8 +37,8 @@ static ColliderCylinderInit sCylinderInit = {
},
{
ELEM_MATERIAL_UNK0,
- { 0xFFCFFFFF, 0x00, 0x00 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON | ACELEM_HOOKABLE,
OCELEM_ON,
diff --git a/src/overlays/actors/ovl_En_Kakasi3/z_en_kakasi3.c b/src/overlays/actors/ovl_En_Kakasi3/z_en_kakasi3.c
index 6752e92d1c..2fb2991934 100644
--- a/src/overlays/actors/ovl_En_Kakasi3/z_en_kakasi3.c
+++ b/src/overlays/actors/ovl_En_Kakasi3/z_en_kakasi3.c
@@ -53,8 +53,8 @@ static ColliderCylinderInit sCylinderInit = {
},
{
ELEM_MATERIAL_UNK0,
- { 0xFFCFFFFF, 0x00, 0x00 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON | ACELEM_HOOKABLE,
OCELEM_ON,
diff --git a/src/overlays/actors/ovl_En_Kanban/z_en_kanban.c b/src/overlays/actors/ovl_En_Kanban/z_en_kanban.c
index a7cc77a262..c0c05a65d0 100644
--- a/src/overlays/actors/ovl_En_Kanban/z_en_kanban.c
+++ b/src/overlays/actors/ovl_En_Kanban/z_en_kanban.c
@@ -117,8 +117,8 @@ static ColliderCylinderInit sCylinderInit = {
},
{
ELEM_MATERIAL_UNK0,
- { 0xFFCFFFFF, 0x00, 0x00 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
@@ -759,8 +759,7 @@ void EnKanban_Update(Actor* thisx, PlayState* play2) {
(play->msgCtx.unk_E3F2 == OCARINA_SONG_LULLABY)) {
this->actionState = ENKANBAN_REPAIR;
this->bounceX = 1;
- Audio_PlaySfxGeneral(NA_SE_SY_TRE_BOX_APPEAR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_TRE_BOX_APPEAR);
}
break;
}
diff --git a/src/overlays/actors/ovl_En_Karebaba/z_en_karebaba.c b/src/overlays/actors/ovl_En_Karebaba/z_en_karebaba.c
index 3a128a5b12..64e7303371 100644
--- a/src/overlays/actors/ovl_En_Karebaba/z_en_karebaba.c
+++ b/src/overlays/actors/ovl_En_Karebaba/z_en_karebaba.c
@@ -64,8 +64,8 @@ static ColliderCylinderInit sBodyColliderInit = {
},
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON,
OCELEM_NONE,
@@ -84,8 +84,8 @@ static ColliderCylinderInit sHeadColliderInit = {
},
{
ELEM_MATERIAL_UNK0,
- { 0xFFCFFFFF, 0x00, 0x08 },
- { 0x00000000, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x08 },
+ { 0x00000000, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_HARD,
ACELEM_NONE,
OCELEM_ON,
diff --git a/src/overlays/actors/ovl_En_Ko/z_en_ko.c b/src/overlays/actors/ovl_En_Ko/z_en_ko.c
index 1ad021f692..76f69db9df 100644
--- a/src/overlays/actors/ovl_En_Ko/z_en_ko.c
+++ b/src/overlays/actors/ovl_En_Ko/z_en_ko.c
@@ -68,8 +68,8 @@ static ColliderCylinderInit sCylinderInit = {
},
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0x00000000, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0x00000000, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_NONE,
OCELEM_ON,
@@ -576,8 +576,7 @@ s16 EnKo_UpdateTalkState(PlayState* play, Actor* thisx) {
case 0x10B7:
case 0x10B8:
if (this->unk_210 == 0) {
- Audio_PlaySfxGeneral(NA_SE_SY_TRE_BOX_APPEAR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_TRE_BOX_APPEAR);
this->unk_210 = 1;
}
}
diff --git a/src/overlays/actors/ovl_En_Kusa/z_en_kusa.c b/src/overlays/actors/ovl_En_Kusa/z_en_kusa.c
index 9a5a41119f..a4e5d5773f 100644
--- a/src/overlays/actors/ovl_En_Kusa/z_en_kusa.c
+++ b/src/overlays/actors/ovl_En_Kusa/z_en_kusa.c
@@ -79,8 +79,8 @@ static ColliderCylinderInit sCylinderInit = {
},
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0x4FC00758, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0x4FC00758, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON,
OCELEM_ON,
diff --git a/src/overlays/actors/ovl_En_Kz/z_en_kz.c b/src/overlays/actors/ovl_En_Kz/z_en_kz.c
index 81aacf1335..83cc7fe9c1 100644
--- a/src/overlays/actors/ovl_En_Kz/z_en_kz.c
+++ b/src/overlays/actors/ovl_En_Kz/z_en_kz.c
@@ -60,8 +60,8 @@ static ColliderCylinderInit sCylinderInit = {
},
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0x00000000, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0x00000000, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_NONE,
OCELEM_ON,
@@ -175,13 +175,11 @@ s16 EnKz_UpdateTalkState(PlayState* play, Actor* thisx) {
case TEXT_STATE_DONE_FADING:
if (this->actor.textId != 0x4014) {
if (this->actor.textId == 0x401B && !this->sfxPlayed) {
- Audio_PlaySfxGeneral(NA_SE_SY_CORRECT_CHIME, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_CORRECT_CHIME);
this->sfxPlayed = true;
}
} else if (!this->sfxPlayed) {
- Audio_PlaySfxGeneral(NA_SE_SY_TRE_BOX_APPEAR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_TRE_BOX_APPEAR);
this->sfxPlayed = true;
}
break;
diff --git a/src/overlays/actors/ovl_En_Lightbox/z_en_lightbox.c b/src/overlays/actors/ovl_En_Lightbox/z_en_lightbox.c
index 097564b021..e46aca4169 100644
--- a/src/overlays/actors/ovl_En_Lightbox/z_en_lightbox.c
+++ b/src/overlays/actors/ovl_En_Lightbox/z_en_lightbox.c
@@ -85,8 +85,7 @@ void EnLightbox_Update(Actor* thisx, PlayState* play) {
if (thisx->speed) {
if (thisx->bgCheckFlags & BGCHECKFLAG_WALL) {
thisx->world.rot.y = (thisx->world.rot.y + thisx->wallYaw) - thisx->world.rot.y;
- Audio_PlaySfxGeneral(NA_SE_EV_BOMB_BOUND, &thisx->projectedPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&thisx->projectedPos, NA_SE_EV_BOMB_BOUND);
thisx->speed *= 0.7f;
thisx->bgCheckFlags &= ~BGCHECKFLAG_WALL;
}
@@ -97,8 +96,7 @@ void EnLightbox_Update(Actor* thisx, PlayState* play) {
} else {
Math_StepToF(&thisx->speed, 0, IREG(58) / 100.0f);
if ((thisx->bgCheckFlags & BGCHECKFLAG_GROUND_TOUCH) && (thisx->velocity.y < IREG(59) / 100.0f)) {
- Audio_PlaySfxGeneral(NA_SE_EV_BOMB_BOUND, &thisx->projectedPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&thisx->projectedPos, NA_SE_EV_BOMB_BOUND);
thisx->velocity.y *= IREG(60) / 100.0f;
thisx->bgCheckFlags &= ~BGCHECKFLAG_GROUND;
} else {
diff --git a/src/overlays/actors/ovl_En_M_Fire1/z_en_m_fire1.c b/src/overlays/actors/ovl_En_M_Fire1/z_en_m_fire1.c
index eef5e1c0b9..49a435500f 100644
--- a/src/overlays/actors/ovl_En_M_Fire1/z_en_m_fire1.c
+++ b/src/overlays/actors/ovl_En_M_Fire1/z_en_m_fire1.c
@@ -38,13 +38,13 @@ static ColliderCylinderInit sCylinderInit = {
},
{
ELEM_MATERIAL_UNK2,
- { 0x00000001, 0x00, 0x00 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0x00000001, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NONE,
ACELEM_NONE,
OCELEM_NONE,
},
- { 200, 200, 0, { 0 } },
+ { 200, 200, 0, { 0, 0, 0 } },
};
void EnMFire1_Init(Actor* thisx, PlayState* play) {
diff --git a/src/overlays/actors/ovl_En_M_Thunder/z_en_m_thunder.c b/src/overlays/actors/ovl_En_M_Thunder/z_en_m_thunder.c
index 1a64d485d3..dd62fcabc8 100644
--- a/src/overlays/actors/ovl_En_M_Thunder/z_en_m_thunder.c
+++ b/src/overlays/actors/ovl_En_M_Thunder/z_en_m_thunder.c
@@ -48,8 +48,8 @@ static ColliderCylinderInit D_80AA0420 = {
},
{
ELEM_MATERIAL_UNK2,
- { 0x00000001, 0x00, 0x00 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0x00000001, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NONE,
ACELEM_ON,
OCELEM_ON,
@@ -93,10 +93,8 @@ void EnMThunder_Init(Actor* thisx, PlayState* play2) {
if (!gSaveContext.save.info.playerData.isMagicAcquired || (gSaveContext.magicState != MAGIC_STATE_IDLE) ||
(PARAMS_GET_S(this->actor.params, 8, 8) &&
!(Magic_RequestChange(play, PARAMS_GET_S(this->actor.params, 8, 8), MAGIC_CONSUME_NOW)))) {
- Audio_PlaySfxGeneral(NA_SE_IT_ROLLING_CUT, &player->actor.projectedPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
- Audio_PlaySfxGeneral(NA_SE_IT_SWORD_SWING_HARD, &player->actor.projectedPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&player->actor.projectedPos, NA_SE_IT_ROLLING_CUT);
+ SFX_PLAY_AT_POS(&player->actor.projectedPos, NA_SE_IT_SWORD_SWING_HARD);
Actor_Kill(&this->actor);
return;
}
@@ -108,8 +106,7 @@ void EnMThunder_Init(Actor* thisx, PlayState* play2) {
this->unk_1C9 = ((this->unk_1C7 == 1) ? 2 : 4);
func_80A9EFE0(this, func_80A9F9B4);
this->unk_1C4 = 8;
- Audio_PlaySfxGeneral(NA_SE_IT_ROLLING_CUT_LV1, &player->actor.projectedPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&player->actor.projectedPos, NA_SE_IT_ROLLING_CUT_LV1);
this->unk_1AC = 1.0f;
} else {
func_80A9EFE0(this, func_80A9F408);
@@ -138,10 +135,8 @@ void func_80A9F350(EnMThunder* this, PlayState* play) {
if (player->stateFlags2 & PLAYER_STATE2_17) {
if (player->meleeWeaponAnimation >= PLAYER_MWA_SPIN_ATTACK_1H) {
- Audio_PlaySfxGeneral(NA_SE_IT_ROLLING_CUT, &player->actor.projectedPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
- Audio_PlaySfxGeneral(NA_SE_IT_SWORD_SWING_HARD, &player->actor.projectedPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&player->actor.projectedPos, NA_SE_IT_ROLLING_CUT);
+ SFX_PLAY_AT_POS(&player->actor.projectedPos, NA_SE_IT_SWORD_SWING_HARD);
}
Actor_Kill(&this->actor);
@@ -189,10 +184,8 @@ void func_80A9F408(EnMThunder* this, PlayState* play) {
if (player->unk_858 <= 0.15f) {
if ((player->unk_858 >= 0.1f) && (player->meleeWeaponAnimation >= PLAYER_MWA_SPIN_ATTACK_1H)) {
- Audio_PlaySfxGeneral(NA_SE_IT_ROLLING_CUT, &player->actor.projectedPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
- Audio_PlaySfxGeneral(NA_SE_IT_SWORD_SWING_HARD, &player->actor.projectedPos, 4,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&player->actor.projectedPos, NA_SE_IT_ROLLING_CUT);
+ SFX_PLAY_AT_POS(&player->actor.projectedPos, NA_SE_IT_SWORD_SWING_HARD);
}
Actor_Kill(&this->actor);
return;
@@ -222,8 +215,7 @@ void func_80A9F408(EnMThunder* this, PlayState* play) {
NA_SE_IT_ROLLING_CUT_LV1,
};
- Audio_PlaySfxGeneral(sSfxIds[this->unk_1C6], &player->actor.projectedPos, 4,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&player->actor.projectedPos, sSfxIds[this->unk_1C6]);
}
this->unk_1AC = 1.0f;
diff --git a/src/overlays/actors/ovl_En_Ma1/z_en_ma1.c b/src/overlays/actors/ovl_En_Ma1/z_en_ma1.c
index 1709fb037c..9a4975614e 100644
--- a/src/overlays/actors/ovl_En_Ma1/z_en_ma1.c
+++ b/src/overlays/actors/ovl_En_Ma1/z_en_ma1.c
@@ -62,8 +62,8 @@ static ColliderCylinderInit sCylinderInit = {
},
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0x00000000, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0x00000000, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_NONE,
OCELEM_ON,
@@ -394,7 +394,7 @@ void EnMa1_WaitForPlayback(EnMa1* this, PlayState* play) {
GET_PLAYER(play)->stateFlags2 |= PLAYER_STATE2_23;
if (play->msgCtx.ocarinaMode == OCARINA_MODE_03) {
play->nextEntranceIndex = ENTR_LON_LON_RANCH_0;
- gSaveContext.nextCutsceneIndex = 0xFFF1;
+ gSaveContext.nextCutsceneIndex = CS_INDEX_1;
play->transitionType = TRANS_TYPE_CIRCLE(TCA_WAVE, TCC_WHITE, TCS_FAST);
play->transitionTrigger = TRANS_TRIGGER_START;
this->actionFunc = EnMa1_DoNothing;
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 ed01e29e4a..ad8a44991a 100644
--- a/src/overlays/actors/ovl_En_Ma2/z_en_ma2.c
+++ b/src/overlays/actors/ovl_En_Ma2/z_en_ma2.c
@@ -63,8 +63,8 @@ static ColliderCylinderInit sCylinderInit = {
},
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0x00000000, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0x00000000, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_NONE,
OCELEM_ON,
@@ -315,8 +315,7 @@ void EnMa2_WaitForEponasSong(EnMa2* this, PlayState* play) {
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);
+ SFX_PLAY_CENTERED(NA_SE_SY_CORRECT_CHIME);
this->timer = 0x1E;
SET_INFTABLE(INFTABLE_PLAYED_SONG_FOR_ADULT_MALON);
this->actionFunc = EnMa2_ForceTalkAfterSong;
@@ -363,23 +362,23 @@ s32 EnMa2_OverrideLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3f* p
EnMa2* this = (EnMa2*)thisx;
Vec3s limbRot;
- if ((limbIndex == MALON_ADULT_LEFT_THIGH_LIMB) || (limbIndex == MALON_ADULT_RIGHT_THIGH_LIMB)) {
+ if ((limbIndex == MALON_ADULT_LIMB_LEFT_THIGH) || (limbIndex == MALON_ADULT_LIMB_RIGHT_THIGH)) {
*dList = NULL;
}
- if (limbIndex == MALON_ADULT_HEAD_LIMB) {
+ if (limbIndex == MALON_ADULT_LIMB_HEAD) {
Matrix_Translate(1400.0f, 0.0f, 0.0f, MTXMODE_APPLY);
limbRot = this->interactInfo.headRot;
Matrix_RotateX(BINANG_TO_RAD_ALT(limbRot.y), MTXMODE_APPLY);
Matrix_RotateZ(BINANG_TO_RAD_ALT(limbRot.x), MTXMODE_APPLY);
Matrix_Translate(-1400.0f, 0.0f, 0.0f, MTXMODE_APPLY);
}
- if (limbIndex == MALON_ADULT_CHEST_AND_NECK_LIMB) {
+ if (limbIndex == MALON_ADULT_LIMB_CHEST_AND_NECK) {
limbRot = this->interactInfo.torsoRot;
Matrix_RotateY(BINANG_TO_RAD_ALT(-limbRot.y), MTXMODE_APPLY);
Matrix_RotateX(BINANG_TO_RAD_ALT(-limbRot.x), MTXMODE_APPLY);
}
- if ((limbIndex == MALON_ADULT_CHEST_AND_NECK_LIMB) || (limbIndex == MALON_ADULT_LEFT_SHOULDER_LIMB) ||
- (limbIndex == MALON_ADULT_RIGHT_SHOULDER_LIMB)) {
+ if ((limbIndex == MALON_ADULT_LIMB_CHEST_AND_NECK) || (limbIndex == MALON_ADULT_LIMB_LEFT_SHOULDER) ||
+ (limbIndex == MALON_ADULT_LIMB_RIGHT_SHOULDER)) {
rot->y += Math_SinS(this->upperBodyRot[limbIndex].y) * 200.0f;
rot->z += Math_CosS(this->upperBodyRot[limbIndex].z) * 200.0f;
}
@@ -392,10 +391,10 @@ void EnMa2_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot,
OPEN_DISPS(play->state.gfxCtx, "../z_en_ma2.c", 904);
- if (limbIndex == MALON_ADULT_HEAD_LIMB) {
+ if (limbIndex == MALON_ADULT_LIMB_HEAD) {
Matrix_MultVec3f(&vec, &this->actor.focus.pos);
}
- if ((limbIndex == MALON_ADULT_LEFT_HAND_LIMB) && (this->skelAnime.animation == &gMalonAdultStandStillAnim)) {
+ if ((limbIndex == MALON_ADULT_LIMB_LEFT_HAND) && (this->skelAnime.animation == &gMalonAdultStandStillAnim)) {
gSPDisplayList(POLY_OPA_DISP++, gMalonAdultBasketDL);
}
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 3e2a9b4b86..777d8c73d5 100644
--- a/src/overlays/actors/ovl_En_Ma2/z_en_ma2.h
+++ b/src/overlays/actors/ovl_En_Ma2/z_en_ma2.h
@@ -3,34 +3,12 @@
#include "ultra64.h"
#include "actor.h"
+#include "assets/objects/object_ma2/object_ma2.h"
struct EnMa2;
typedef void (*EnMa2ActionFunc)(struct EnMa2*, struct PlayState*);
-typedef enum AdultMalonLimb {
- /* 0x00 */ MALON_ADULT_LIMB_NONE,
- /* 0x01 */ MALON_ADULT_ROOT_LIMB,
- /* 0x02 */ MALON_ADULT_LOWER_CONTROL_LIMB,
- /* 0x03 */ MALON_ADULT_LEFT_THIGH_LIMB,
- /* 0x04 */ MALON_ADULT_LEFT_LEG_LIMB,
- /* 0x05 */ MALON_ADULT_LEFT_FOOT_LIMB,
- /* 0x06 */ MALON_ADULT_RIGHT_THIGH_LIMB,
- /* 0x07 */ MALON_ADULT_RIGHT_LEG_LIMB,
- /* 0x08 */ MALON_ADULT_RIGHT_FOOT_LIMB,
- /* 0x09 */ MALON_ADULT_TORSO_LIMB,
- /* 0x0A */ MALON_ADULT_DRESS_LIMB,
- /* 0x0B */ MALON_ADULT_CHEST_AND_NECK_LIMB,
- /* 0x0C */ MALON_ADULT_LEFT_SHOULDER_LIMB,
- /* 0x0D */ MALON_ADULT_LEFT_ARM_LIMB,
- /* 0x0E */ MALON_ADULT_LEFT_HAND_LIMB,
- /* 0x0F */ MALON_ADULT_RIGHT_SHOULDER_LIMB,
- /* 0x10 */ MALON_ADULT_RIGHT_ARM_LIMB,
- /* 0x11 */ MALON_ADULT_RIGHT_HAND_LIMB,
- /* 0x12 */ MALON_ADULT_HEAD_LIMB,
- /* 0x13 */ MALON_ADULT_LIMB_MAX
-} AdultMalonLimb;
-
typedef struct EnMa2 {
/* 0x0000 */ Actor actor;
/* 0x014C */ SkelAnime skelAnime;
diff --git a/src/overlays/actors/ovl_En_Ma3/z_en_ma3.c b/src/overlays/actors/ovl_En_Ma3/z_en_ma3.c
index a685945a2a..94d1cf2b51 100644
--- a/src/overlays/actors/ovl_En_Ma3/z_en_ma3.c
+++ b/src/overlays/actors/ovl_En_Ma3/z_en_ma3.c
@@ -59,8 +59,8 @@ static ColliderCylinderInit sCylinderInit = {
},
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0x00000000, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0x00000000, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_NONE,
OCELEM_ON,
@@ -133,7 +133,7 @@ s16 EnMa3_UpdateTalkState(PlayState* play, Actor* thisx) {
case TEXT_STATE_EVENT:
if (Message_ShouldAdvance(play)) {
play->nextEntranceIndex = ENTR_LON_LON_RANCH_0;
- gSaveContext.nextCutsceneIndex = 0xFFF0;
+ gSaveContext.nextCutsceneIndex = CS_INDEX_0;
play->transitionType = TRANS_TYPE_CIRCLE(TCA_STARBURST, TCC_BLACK, TCS_FAST);
play->transitionTrigger = TRANS_TRIGGER_START;
SET_EVENTINF(EVENTINF_HORSES_0A);
diff --git a/src/overlays/actors/ovl_En_Ma3/z_en_ma3.h b/src/overlays/actors/ovl_En_Ma3/z_en_ma3.h
index a6bb2096f3..1d3ec1cdfd 100644
--- a/src/overlays/actors/ovl_En_Ma3/z_en_ma3.h
+++ b/src/overlays/actors/ovl_En_Ma3/z_en_ma3.h
@@ -3,34 +3,12 @@
#include "ultra64.h"
#include "actor.h"
+#include "assets/objects/object_ma2/object_ma2.h"
struct EnMa3;
typedef void (*EnMa3ActionFunc)(struct EnMa3*, struct PlayState*);
-typedef enum AdultMalonLimb {
- /* 0x00 */ MALON_ADULT_LIMB_NONE,
- /* 0x01 */ MALON_ADULT_LIMB_ROOT,
- /* 0x02 */ MALON_ADULT_LIMB_LOWER_CONTROL,
- /* 0x03 */ MALON_ADULT_LIMB_LEFT_THIGH,
- /* 0x04 */ MALON_ADULT_LIMB_LEFT_LEG,
- /* 0x05 */ MALON_ADULT_LIMB_LEFT_FOOT,
- /* 0x06 */ MALON_ADULT_LIMB_RIGHT_THIGH,
- /* 0x07 */ MALON_ADULT_LIMB_RIGHT_LEG,
- /* 0x08 */ MALON_ADULT_LIMB_RIGHT_FOOT,
- /* 0x09 */ MALON_ADULT_LIMB_TORSO,
- /* 0x0A */ MALON_ADULT_LIMB_DRESS,
- /* 0x0B */ MALON_ADULT_LIMB_CHEST_AND_NECK,
- /* 0x0C */ MALON_ADULT_LIMB_LEFT_SHOULDER,
- /* 0x0D */ MALON_ADULT_LIMB_LEFT_ARM,
- /* 0x0E */ MALON_ADULT_LIMB_LEFT_HAND,
- /* 0x0F */ MALON_ADULT_LIMB_RIGHT_SHOULDER,
- /* 0x10 */ MALON_ADULT_LIMB_RIGHT_ARM,
- /* 0x11 */ MALON_ADULT_LIMB_RIGHT_HAND,
- /* 0x12 */ MALON_ADULT_LIMB_HEAD,
- /* 0x13 */ MALON_ADULT_LIMB_MAX
-} AdultMalonLimb;
-
typedef struct EnMa3 {
/* 0x0000 */ Actor actor;
/* 0x014C */ SkelAnime skelAnime;
diff --git a/src/overlays/actors/ovl_En_Mag/z_en_mag.c b/src/overlays/actors/ovl_En_Mag/z_en_mag.c
index 849eee33d8..e52a54d5e4 100644
--- a/src/overlays/actors/ovl_En_Mag/z_en_mag.c
+++ b/src/overlays/actors/ovl_En_Mag/z_en_mag.c
@@ -220,8 +220,7 @@ void EnMag_Update(Actor* thisx, PlayState* play) {
if (CHECK_BTN_ALL(input->press.button, BTN_START) || CHECK_BTN_ALL(input->press.button, BTN_A) ||
CHECK_BTN_ALL(input->press.button, BTN_B)) {
- Audio_PlaySfxGeneral(NA_SE_SY_PIECE_OF_HEART, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_PIECE_OF_HEART);
this->mainAlpha = 210;
this->subAlpha = 255;
@@ -258,8 +257,7 @@ void EnMag_Update(Actor* thisx, PlayState* play) {
if (play->transitionTrigger != TRANS_TRIGGER_START) {
Audio_SetCutsceneFlag(0);
- Audio_PlaySfxGeneral(NA_SE_SY_PIECE_OF_HEART, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_PIECE_OF_HEART);
gSaveContext.gameMode = GAMEMODE_FILE_SELECT;
play->transitionTrigger = TRANS_TRIGGER_START;
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 56e96bf293..75eb4b1d49 100644
--- a/src/overlays/actors/ovl_En_Mb/z_en_mb.c
+++ b/src/overlays/actors/ovl_En_Mb/z_en_mb.c
@@ -7,6 +7,7 @@
#include "z_en_mb.h"
#include "libc64/qrand.h"
+#include "array_count.h"
#include "gfx.h"
#include "gfx_setupdl.h"
#include "ichain.h"
@@ -117,8 +118,8 @@ static ColliderCylinderInit sBodyColliderInit = {
},
{
ELEM_MATERIAL_UNK1,
- { 0x00000000, 0x00, 0x00 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON,
OCELEM_ON,
@@ -126,12 +127,12 @@ static ColliderCylinderInit sBodyColliderInit = {
{ 20, 70, 0, { 0, 0, 0 } },
};
-static ColliderTrisElementInit sFrontShieldingTrisElementsInit[2] = {
+static ColliderTrisElementInit sFrontShieldingTrisElementsInit[] = {
{
{
ELEM_MATERIAL_UNK2,
- { 0x00000000, 0x00, 0x00 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON | ACELEM_HOOKABLE | ACELEM_NO_AT_INFO,
OCELEM_NONE,
@@ -141,8 +142,8 @@ static ColliderTrisElementInit sFrontShieldingTrisElementsInit[2] = {
{
{
ELEM_MATERIAL_UNK2,
- { 0x00000000, 0x00, 0x00 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON | ACELEM_HOOKABLE | ACELEM_NO_AT_INFO,
OCELEM_NONE,
@@ -160,7 +161,7 @@ static ColliderTrisInit sFrontShieldingTrisInit = {
OC2_NONE,
COLSHAPE_TRIS,
},
- 2,
+ ARRAY_COUNT(sFrontShieldingTrisElementsInit),
sFrontShieldingTrisElementsInit,
};
@@ -175,8 +176,8 @@ static ColliderQuadInit sAttackColliderQuadInit = {
},
{
ELEM_MATERIAL_UNK0,
- { 0xFFCFFFFF, 0x00, 0x08 },
- { 0x00000000, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x08 },
+ { 0x00000000, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_NONE,
OCELEM_NONE,
diff --git a/src/overlays/actors/ovl_En_Md/z_en_md.c b/src/overlays/actors/ovl_En_Md/z_en_md.c
index 3059baa7bb..aae2954469 100644
--- a/src/overlays/actors/ovl_En_Md/z_en_md.c
+++ b/src/overlays/actors/ovl_En_Md/z_en_md.c
@@ -60,8 +60,8 @@ static ColliderCylinderInit sCylinderInit = {
},
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0x00000000, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0x00000000, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_NONE,
OCELEM_ON,
@@ -687,7 +687,7 @@ void EnMd_Init(Actor* thisx, PlayState* play) {
s32 pad;
ActorShape_Init(&this->actor.shape, 0.0f, ActorShadow_DrawCircle, 24.0f);
- SkelAnime_InitFlex(play, &this->skelAnime, &gMidoSkel, NULL, this->jointTable, this->morphTable, ENMD_LIMB_MAX);
+ SkelAnime_InitFlex(play, &this->skelAnime, &gMidoSkel, NULL, this->jointTable, this->morphTable, MIDO_LIMB_MAX);
Collider_InitCylinder(play, &this->collider);
Collider_SetCylinder(play, &this->collider, &this->actor, &sCylinderInit);
@@ -727,7 +727,7 @@ void EnMd_Destroy(Actor* thisx, PlayState* play) {
void EnMd_Idle(EnMd* this, PlayState* play) {
if (this->skelAnime.animation == &gMidoIdleAnim) {
- Actor_UpdateFidgetTables(play, this->fidgetTableY, this->fidgetTableZ, ENMD_LIMB_MAX);
+ Actor_UpdateFidgetTables(play, this->fidgetTableY, this->fidgetTableZ, MIDO_LIMB_MAX);
} else if ((this->interactInfo.talkState == NPC_TALK_STATE_IDLE) &&
(this->animSequence != ENMD_ANIM_SEQ_SURPRISE_TO_IDLE)) {
EnMd_SetAnimSequence(this, ENMD_ANIM_SEQ_SURPRISE_TO_IDLE);
@@ -738,7 +738,7 @@ void EnMd_Idle(EnMd* this, PlayState* play) {
void EnMd_Watch(EnMd* this, PlayState* play) {
if (this->skelAnime.animation == &gMidoIdleAnim) {
- Actor_UpdateFidgetTables(play, this->fidgetTableY, this->fidgetTableZ, ENMD_LIMB_MAX);
+ Actor_UpdateFidgetTables(play, this->fidgetTableY, this->fidgetTableZ, MIDO_LIMB_MAX);
}
EnMd_UpdateAnimSequence(this);
}
@@ -790,7 +790,7 @@ void EnMd_BlockPath(EnMd* this, PlayState* play) {
}
if (this->skelAnime.animation == &gMidoIdleAnim) {
- Actor_UpdateFidgetTables(play, this->fidgetTableY, this->fidgetTableZ, ENMD_LIMB_MAX);
+ Actor_UpdateFidgetTables(play, this->fidgetTableY, this->fidgetTableZ, MIDO_LIMB_MAX);
}
if ((this->interactInfo.talkState == NPC_TALK_STATE_IDLE) && (play->sceneId == SCENE_LOST_WOODS)) {
@@ -815,8 +815,7 @@ void EnMd_ListenToOcarina(EnMd* this, PlayState* play) {
this->actionFunc = EnMd_BlockPath;
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);
+ SFX_PLAY_CENTERED(NA_SE_SY_CORRECT_CHIME);
this->actor.textId = 0x1067;
Actor_OfferTalk(&this->actor, play, this->collider.dim.radius + 30.0f);
@@ -828,7 +827,7 @@ void EnMd_ListenToOcarina(EnMd* this, PlayState* play) {
}
void EnMd_Walk(EnMd* this, PlayState* play) {
- Actor_UpdateFidgetTables(play, this->fidgetTableY, this->fidgetTableZ, ENMD_LIMB_MAX);
+ Actor_UpdateFidgetTables(play, this->fidgetTableY, this->fidgetTableZ, MIDO_LIMB_MAX);
EnMd_UpdateAnimSequence(this);
if (!(EnMd_FollowPath(this, play)) || (this->waypoint != 0)) {
@@ -871,21 +870,21 @@ s32 EnMd_OverrideLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3f* po
EnMd* this = (EnMd*)thisx;
Vec3s limbRot;
- if (limbIndex == ENMD_LIMB_HEAD) {
+ if (limbIndex == MIDO_LIMB_HEAD) {
Matrix_Translate(1200.0f, 0.0f, 0.0f, MTXMODE_APPLY);
limbRot = this->interactInfo.headRot;
Matrix_RotateX(BINANG_TO_RAD_ALT(limbRot.y), MTXMODE_APPLY);
Matrix_RotateZ(BINANG_TO_RAD_ALT(limbRot.x), MTXMODE_APPLY);
Matrix_Translate(-1200.0f, 0.0f, 0.0f, MTXMODE_APPLY);
}
- if (limbIndex == ENMD_LIMB_TORSO) {
+ if (limbIndex == MIDO_LIMB_TORSO) {
limbRot = this->interactInfo.torsoRot;
Matrix_RotateX(BINANG_TO_RAD_ALT(limbRot.x), MTXMODE_APPLY);
Matrix_RotateY(BINANG_TO_RAD_ALT(limbRot.y), MTXMODE_APPLY);
}
- if (((limbIndex == ENMD_LIMB_TORSO) || (limbIndex == ENMD_LIMB_LEFT_UPPER_ARM)) ||
- (limbIndex == ENMD_LIMB_RIGHT_UPPER_ARM)) {
+ if (((limbIndex == MIDO_LIMB_TORSO) || (limbIndex == MIDO_LIMB_LEFT_UPPER_ARM)) ||
+ (limbIndex == MIDO_LIMB_RIGHT_UPPER_ARM)) {
rot->y += Math_SinS(this->fidgetTableY[limbIndex]) * FIDGET_AMPLITUDE;
rot->z += Math_CosS(this->fidgetTableZ[limbIndex]) * FIDGET_AMPLITUDE;
}
@@ -897,7 +896,7 @@ void EnMd_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot,
EnMd* this = (EnMd*)thisx;
Vec3f vec = { 400.0f, 0.0f, 0.0f };
- if (limbIndex == ENMD_LIMB_HEAD) {
+ if (limbIndex == MIDO_LIMB_HEAD) {
Matrix_MultVec3f(&vec, &this->actor.focus.pos);
}
}
diff --git a/src/overlays/actors/ovl_En_Md/z_en_md.h b/src/overlays/actors/ovl_En_Md/z_en_md.h
index 3b5cc079bb..802e6822a8 100644
--- a/src/overlays/actors/ovl_En_Md/z_en_md.h
+++ b/src/overlays/actors/ovl_En_Md/z_en_md.h
@@ -3,30 +3,10 @@
#include "ultra64.h"
#include "actor.h"
+#include "assets/objects/object_md/object_md.h"
struct EnMd;
-typedef enum EnMdLimb {
- ENMD_LIMB_NONE,
- ENMD_LIMB_ROOT,
- ENMD_LIMB_WAIST,
- ENMD_LIMB_LEFT_THIGH,
- ENMD_LIMB_LEFT_LEG,
- ENMD_LIMB_LEFT_FOOT,
- ENMD_LIMB_RIGHT_THIGH,
- ENMD_LIMB_RIGHT_LEG,
- ENMD_LIMB_RIGHT_FOOT,
- ENMD_LIMB_TORSO,
- ENMD_LIMB_LEFT_UPPER_ARM,
- ENMD_LIMB_LEFT_FOREARM,
- ENMD_LIMB_LEFT_HAND,
- ENMD_LIMB_RIGHT_UPPER_ARM,
- ENMD_LIMB_RIGHT_FOREARM,
- ENMD_LIMB_RIGHT_HAND,
- ENMD_LIMB_HEAD,
- ENMD_LIMB_MAX
-} EnMdLimb;
-
typedef void (*EnMdActionFunc)(struct EnMd*, struct PlayState*);
#define ENMD_GET_PATH_INDEX(this) PARAMS_GET_S(this->actor.params, 8, 8)
@@ -48,10 +28,10 @@ typedef struct EnMd {
/* 0x020E */ s16 eyeTexIndex;
/* 0x0210 */ s16 alpha;
/* 0x0212 */ s16 waypoint;
- /* 0x0214 */ s16 fidgetTableY[ENMD_LIMB_MAX];
- /* 0x0236 */ s16 fidgetTableZ[ENMD_LIMB_MAX];
- /* 0x0258 */ Vec3s jointTable[ENMD_LIMB_MAX];
- /* 0x02BE */ Vec3s morphTable[ENMD_LIMB_MAX];
+ /* 0x0214 */ s16 fidgetTableY[MIDO_LIMB_MAX];
+ /* 0x0236 */ s16 fidgetTableZ[MIDO_LIMB_MAX];
+ /* 0x0258 */ Vec3s jointTable[MIDO_LIMB_MAX];
+ /* 0x02BE */ Vec3s morphTable[MIDO_LIMB_MAX];
} EnMd; // size = 0x0324
#endif
diff --git a/src/overlays/actors/ovl_En_Mk/z_en_mk.c b/src/overlays/actors/ovl_En_Mk/z_en_mk.c
index 59257e93d3..42846bd7aa 100644
--- a/src/overlays/actors/ovl_En_Mk/z_en_mk.c
+++ b/src/overlays/actors/ovl_En_Mk/z_en_mk.c
@@ -50,8 +50,8 @@ static ColliderCylinderInit sCylinderInit = {
},
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON,
OCELEM_ON,
diff --git a/src/overlays/actors/ovl_En_Mm/z_en_mm.c b/src/overlays/actors/ovl_En_Mm/z_en_mm.c
index 9881334a0a..e4ded4a594 100644
--- a/src/overlays/actors/ovl_En_Mm/z_en_mm.c
+++ b/src/overlays/actors/ovl_En_Mm/z_en_mm.c
@@ -76,8 +76,8 @@ static ColliderCylinderInit sCylinderInit = {
},
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0x00000000, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0x00000000, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_NONE,
OCELEM_ON,
diff --git a/src/overlays/actors/ovl_En_Mm2/z_en_mm2.c b/src/overlays/actors/ovl_En_Mm2/z_en_mm2.c
index 187b576594..1210c34ee7 100644
--- a/src/overlays/actors/ovl_En_Mm2/z_en_mm2.c
+++ b/src/overlays/actors/ovl_En_Mm2/z_en_mm2.c
@@ -71,8 +71,8 @@ static ColliderCylinderInit sCylinderInit = {
},
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0x00000004, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0x00000004, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON,
OCELEM_ON,
diff --git a/src/overlays/actors/ovl_En_Ms/z_en_ms.c b/src/overlays/actors/ovl_En_Ms/z_en_ms.c
index e9012fb1e4..d4e173f2bb 100644
--- a/src/overlays/actors/ovl_En_Ms/z_en_ms.c
+++ b/src/overlays/actors/ovl_En_Ms/z_en_ms.c
@@ -49,8 +49,15 @@ static ColliderCylinderInitType1 sCylinderInit = {
OC1_ON | OC1_TYPE_ALL,
COLSHAPE_CYLINDER,
},
- { 0x00, { 0x00000000, 0x00, 0x00 }, { 0xFFCFFFFF, 0x00, 0x00 }, 0x00, 0x01, 0x01 },
- { 22, 37, 0, { 0 } },
+ {
+ ELEM_MATERIAL_UNK0,
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
+ ATELEM_NONE,
+ ACELEM_ON,
+ OCELEM_ON,
+ },
+ { 22, 37, 0, { 0, 0, 0 } },
};
static s16 sPrices[] = {
diff --git a/src/overlays/actors/ovl_En_Mu/z_en_mu.c b/src/overlays/actors/ovl_En_Mu/z_en_mu.c
index 78229fc754..3fd3ba25a6 100644
--- a/src/overlays/actors/ovl_En_Mu/z_en_mu.c
+++ b/src/overlays/actors/ovl_En_Mu/z_en_mu.c
@@ -37,8 +37,8 @@ static ColliderCylinderInit D_80AB0BD0 = {
},
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0x00000000, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0x00000000, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_NONE,
OCELEM_ON,
diff --git a/src/overlays/actors/ovl_En_Nb/z_en_nb.c b/src/overlays/actors/ovl_En_Nb/z_en_nb.c
index c2120b1fc9..d72977d3b0 100644
--- a/src/overlays/actors/ovl_En_Nb/z_en_nb.c
+++ b/src/overlays/actors/ovl_En_Nb/z_en_nb.c
@@ -87,8 +87,8 @@ static ColliderCylinderInitType1 sCylinderInit = {
},
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0x00000000, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0x00000000, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_NONE,
OCELEM_ON,
@@ -1011,7 +1011,7 @@ void func_80AB2E70(EnNb* this, PlayState* play) {
s32 func_80AB2FC0(PlayState* play, s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3s* rot, void* thisx) {
EnNb* this = (EnNb*)thisx;
- if (limbIndex == NB_LIMB_HEAD) {
+ if (limbIndex == NABOORU_LIMB_HEAD) {
*dList = gNabooruHeadMouthOpenDL;
}
@@ -1476,7 +1476,8 @@ void EnNb_Init(Actor* thisx, PlayState* play) {
ActorShape_Init(&this->actor.shape, 0.0f, ActorShadow_DrawCircle, 30.0f);
EnNb_SetupCollider(thisx, play);
- SkelAnime_InitFlex(play, &this->skelAnime, &gNabooruSkel, NULL, this->jointTable, this->morphTable, NB_LIMB_MAX);
+ SkelAnime_InitFlex(play, &this->skelAnime, &gNabooruSkel, NULL, this->jointTable, this->morphTable,
+ NABOORU_LIMB_MAX);
switch (EnNb_GetType(this)) {
case NB_TYPE_DEMO02:
@@ -1506,13 +1507,13 @@ s32 EnNb_OverrideLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3f* po
s32 ret = false;
if (this->headTurnFlag != 0) {
- if (limbIndex == NB_LIMB_TORSO) {
+ if (limbIndex == NABOORU_LIMB_TORSO) {
s32 pad;
rot->x += interactInfo->torsoRot.y;
rot->y -= interactInfo->torsoRot.x;
ret = false;
- } else if (limbIndex == NB_LIMB_HEAD) {
+ } else if (limbIndex == NABOORU_LIMB_HEAD) {
rot->x += interactInfo->headRot.y;
rot->z += interactInfo->headRot.x;
ret = false;
@@ -1525,7 +1526,7 @@ s32 EnNb_OverrideLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3f* po
void EnNb_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot, void* thisx) {
EnNb* this = (EnNb*)thisx;
- if (limbIndex == NB_LIMB_HEAD) {
+ if (limbIndex == NABOORU_LIMB_HEAD) {
Vec3f vec1 = { 0.0f, 10.0f, 0.0f };
Vec3f vec2;
diff --git a/src/overlays/actors/ovl_En_Nb/z_en_nb.h b/src/overlays/actors/ovl_En_Nb/z_en_nb.h
index 397c6b63a2..e27a3b0ebb 100644
--- a/src/overlays/actors/ovl_En_Nb/z_en_nb.h
+++ b/src/overlays/actors/ovl_En_Nb/z_en_nb.h
@@ -3,40 +3,18 @@
#include "ultra64.h"
#include "actor.h"
+#include "assets/objects/object_nb/object_nb.h"
struct EnNb;
-typedef enum EnNbLimb {
- /* 0x00 */ NB_LIMB_NONE,
- /* 0x01 */ NB_LIMB_ROOT,
- /* 0x02 */ NB_LIMB_L_THIGH,
- /* 0x03 */ NB_LIMB_L_SHIN,
- /* 0x04 */ NB_LIMB_L_FOOT,
- /* 0x05 */ NB_LIMB_R_THIGH,
- /* 0x06 */ NB_LIMB_R_SHIN,
- /* 0x07 */ NB_LIMB_R_FOOT,
- /* 0x08 */ NB_LIMB_TORSO,
- /* 0x09 */ NB_LIMB_L_UPPER_ARM,
- /* 0x0A */ NB_LIMB_L_FOREARM,
- /* 0x0B */ NB_LIMB_L_HAND,
- /* 0x0C */ NB_LIMB_R_UPPER_ARM,
- /* 0x0D */ NB_LIMB_R_FOREARM,
- /* 0x0E */ NB_LIMB_R_HAND,
- /* 0x0F */ NB_LIMB_HEAD,
- /* 0x10 */ NB_LIMB_BLANK,
- /* 0x11 */ NB_LIMB_PONYTAIL,
- /* 0x12 */ NB_LIMB_WAIST,
- /* 0x13 */ NB_LIMB_MAX
-} EnNbLimb;
-
typedef void (*EnNbActionFunc)(struct EnNb*, struct PlayState*);
typedef void (*EnNbDrawFunc)(struct EnNb*, struct PlayState*);
typedef struct EnNb {
/* 0x0000 */ Actor actor;
/* 0x014C */ SkelAnime skelAnime;
- /* 0x0190 */ Vec3s jointTable[NB_LIMB_MAX];
- /* 0x0202 */ Vec3s morphTable[NB_LIMB_MAX];
+ /* 0x0190 */ Vec3s jointTable[NABOORU_LIMB_MAX];
+ /* 0x0202 */ Vec3s morphTable[NABOORU_LIMB_MAX];
/* 0x0274 */ s16 eyeIdx;
/* 0x0276 */ s16 blinkTimer;
/* 0x0278 */ s32 action;
diff --git a/src/overlays/actors/ovl_En_Niw/z_en_niw.c b/src/overlays/actors/ovl_En_Niw/z_en_niw.c
index 5acaf3f9ed..3a811453e4 100644
--- a/src/overlays/actors/ovl_En_Niw/z_en_niw.c
+++ b/src/overlays/actors/ovl_En_Niw/z_en_niw.c
@@ -106,8 +106,8 @@ static ColliderCylinderInit sCylinderInit1 = {
},
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON,
OCELEM_ON,
@@ -126,8 +126,8 @@ static ColliderCylinderInit sCylinderInit2 = {
},
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0x00000000, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0x00000000, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_NONE,
OCELEM_ON,
diff --git a/src/overlays/actors/ovl_En_Niw_Girl/z_en_niw_girl.c b/src/overlays/actors/ovl_En_Niw_Girl/z_en_niw_girl.c
index 8949be2892..4e9ccbb9d6 100644
--- a/src/overlays/actors/ovl_En_Niw_Girl/z_en_niw_girl.c
+++ b/src/overlays/actors/ovl_En_Niw_Girl/z_en_niw_girl.c
@@ -57,8 +57,8 @@ static ColliderCylinderInit sCylinderInit = {
},
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0x00000000, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0x00000000, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_NONE,
OCELEM_ON,
diff --git a/src/overlays/actors/ovl_En_Niw_Lady/z_en_niw_lady.c b/src/overlays/actors/ovl_En_Niw_Lady/z_en_niw_lady.c
index 2ea1ace664..066bf1476d 100644
--- a/src/overlays/actors/ovl_En_Niw_Lady/z_en_niw_lady.c
+++ b/src/overlays/actors/ovl_En_Niw_Lady/z_en_niw_lady.c
@@ -74,8 +74,8 @@ static ColliderCylinderInit sCylinderInit = {
},
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0x00000000, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0x00000000, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON,
OCELEM_ON,
diff --git a/src/overlays/actors/ovl_En_Nutsball/z_en_nutsball.c b/src/overlays/actors/ovl_En_Nutsball/z_en_nutsball.c
index 9417316e4c..f52c80e291 100644
--- a/src/overlays/actors/ovl_En_Nutsball/z_en_nutsball.c
+++ b/src/overlays/actors/ovl_En_Nutsball/z_en_nutsball.c
@@ -55,13 +55,13 @@ static ColliderCylinderInit sCylinderInit = {
},
{
ELEM_MATERIAL_UNK0,
- { 0xFFCFFFFF, 0x00, 0x08 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x08 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_WOOD,
ACELEM_ON,
OCELEM_ON,
},
- { 13, 13, 0, { 0 } },
+ { 13, 13, 0, { 0, 0, 0 } },
};
static s16 sObjectIds[] = {
diff --git a/src/overlays/actors/ovl_En_Ny/z_en_ny.c b/src/overlays/actors/ovl_En_Ny/z_en_ny.c
index 38167bef26..79778e54c4 100644
--- a/src/overlays/actors/ovl_En_Ny/z_en_ny.c
+++ b/src/overlays/actors/ovl_En_Ny/z_en_ny.c
@@ -1,6 +1,7 @@
#include "z_en_ny.h"
#include "libc64/math64.h"
+#include "array_count.h"
#include "attributes.h"
#include "gfx.h"
#include "gfx_setupdl.h"
@@ -51,12 +52,12 @@ ActorProfile En_Ny_Profile = {
/**/ EnNy_Draw,
};
-static ColliderJntSphElementInit sJntSphElementsInit[1] = {
+static ColliderJntSphElementInit sJntSphElementsInit[] = {
{
{
ELEM_MATERIAL_UNK0,
- { 0xFFCFFFFF, 0x04, 0x08 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_KNOCKBACK, 0x08 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
@@ -74,7 +75,7 @@ static ColliderJntSphInit sColliderJntSphInit = {
OC2_TYPE_1,
COLSHAPE_JNTSPH,
},
- 1,
+ ARRAY_COUNT(sJntSphElementsInit),
sJntSphElementsInit,
};
diff --git a/src/overlays/actors/ovl_En_Okuta/z_en_okuta.c b/src/overlays/actors/ovl_En_Okuta/z_en_okuta.c
index 1503bb265c..b8cd31b2ce 100644
--- a/src/overlays/actors/ovl_En_Okuta/z_en_okuta.c
+++ b/src/overlays/actors/ovl_En_Okuta/z_en_okuta.c
@@ -56,8 +56,8 @@ static ColliderCylinderInit sProjectileColliderInit = {
},
{
ELEM_MATERIAL_UNK0,
- { 0xFFCFFFFF, 0x00, 0x08 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x08 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_HARD,
ACELEM_ON,
OCELEM_ON,
@@ -76,8 +76,8 @@ static ColliderCylinderInit sOctorockColliderInit = {
},
{
ELEM_MATERIAL_UNK1,
- { 0x00000000, 0x00, 0x00 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON,
OCELEM_ON,
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..7b6656b50b 100644
--- a/src/overlays/actors/ovl_En_Ossan/z_en_ossan.c
+++ b/src/overlays/actors/ovl_En_Ossan/z_en_ossan.c
@@ -153,9 +153,9 @@ static ColliderCylinderInitType1 sCylinderInit = {
},
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0x00000000, 0x00, 0x00 },
- ATELEM_NONE | ATELEM_SFX_NORMAL,
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0x00000000, HIT_BACKLASH_NONE, 0x00 },
+ ATELEM_NONE,
ACELEM_NONE,
OCELEM_ON,
},
@@ -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_En_Owl/z_en_owl.c b/src/overlays/actors/ovl_En_Owl/z_en_owl.c
index cd5da7dd2f..1f725248d8 100644
--- a/src/overlays/actors/ovl_En_Owl/z_en_owl.c
+++ b/src/overlays/actors/ovl_En_Owl/z_en_owl.c
@@ -109,8 +109,8 @@ static ColliderCylinderInit sOwlCylinderInit = {
},
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON,
OCELEM_ON,
diff --git a/src/overlays/actors/ovl_En_Peehat/z_en_peehat.c b/src/overlays/actors/ovl_En_Peehat/z_en_peehat.c
index a4225d0ff4..7502487ccc 100644
--- a/src/overlays/actors/ovl_En_Peehat/z_en_peehat.c
+++ b/src/overlays/actors/ovl_En_Peehat/z_en_peehat.c
@@ -3,6 +3,7 @@
#include "overlays/effects/ovl_Effect_Ss_Hahen/z_eff_ss_hahen.h"
#include "libc64/qrand.h"
+#include "array_count.h"
#include "gfx.h"
#include "gfx_setupdl.h"
#include "ichain.h"
@@ -81,8 +82,8 @@ static ColliderCylinderInit sCylinderInit = {
},
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON | ACELEM_HOOKABLE,
OCELEM_ON,
@@ -90,12 +91,12 @@ static ColliderCylinderInit sCylinderInit = {
{ 50, 160, -70, { 0, 0, 0 } },
};
-static ColliderJntSphElementInit sJntSphElementsInit[1] = {
+static ColliderJntSphElementInit sJntSphElementsInit[] = {
{
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON,
OCELEM_ON,
@@ -113,7 +114,7 @@ static ColliderJntSphInit sJntSphInit = {
OC2_TYPE_1,
COLSHAPE_JNTSPH,
},
- 1,
+ ARRAY_COUNT(sJntSphElementsInit),
sJntSphElementsInit,
};
@@ -128,8 +129,8 @@ static ColliderQuadInit sQuadInit = {
},
{
ELEM_MATERIAL_UNK0,
- { 0xFFCFFFFF, 0x00, 0x10 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x10 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_NONE,
diff --git a/src/overlays/actors/ovl_En_Po_Desert/z_en_po_desert.c b/src/overlays/actors/ovl_En_Po_Desert/z_en_po_desert.c
index caf492b8be..fa7e94fafb 100644
--- a/src/overlays/actors/ovl_En_Po_Desert/z_en_po_desert.c
+++ b/src/overlays/actors/ovl_En_Po_Desert/z_en_po_desert.c
@@ -54,8 +54,8 @@ static ColliderCylinderInit sColliderCylinderInit = {
},
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON,
OCELEM_ON,
diff --git a/src/overlays/actors/ovl_En_Po_Field/z_en_po_field.c b/src/overlays/actors/ovl_En_Po_Field/z_en_po_field.c
index 2989292f7f..249244b5d8 100644
--- a/src/overlays/actors/ovl_En_Po_Field/z_en_po_field.c
+++ b/src/overlays/actors/ovl_En_Po_Field/z_en_po_field.c
@@ -73,8 +73,8 @@ static ColliderCylinderInit D_80AD7080 = {
},
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON,
OCELEM_ON,
@@ -93,8 +93,8 @@ static ColliderCylinderInit D_80AD70AC = {
},
{
ELEM_MATERIAL_UNK0,
- { 0xFFCFFFFF, 0x01, 0x04 },
- { 0x00000000, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_FIRE, 0x04 },
+ { 0x00000000, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NONE,
ACELEM_NONE,
OCELEM_NONE,
diff --git a/src/overlays/actors/ovl_En_Po_Relay/z_en_po_relay.c b/src/overlays/actors/ovl_En_Po_Relay/z_en_po_relay.c
index b2effdffed..b1f81b70d7 100644
--- a/src/overlays/actors/ovl_En_Po_Relay/z_en_po_relay.c
+++ b/src/overlays/actors/ovl_En_Po_Relay/z_en_po_relay.c
@@ -75,8 +75,8 @@ static ColliderCylinderInit sCylinderInit = {
},
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0x00000000, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0x00000000, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_NONE,
OCELEM_ON,
diff --git a/src/overlays/actors/ovl_En_Po_Sisters/z_en_po_sisters.c b/src/overlays/actors/ovl_En_Po_Sisters/z_en_po_sisters.c
index fcd5a3ce27..299b0df33a 100644
--- a/src/overlays/actors/ovl_En_Po_Sisters/z_en_po_sisters.c
+++ b/src/overlays/actors/ovl_En_Po_Sisters/z_en_po_sisters.c
@@ -104,8 +104,8 @@ static ColliderCylinderInit sCylinderInit = {
},
{
ELEM_MATERIAL_UNK0,
- { 0xFFCFFFFF, 0x00, 0x08 },
- { 0x4FC7FFEA, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x08 },
+ { 0x4FC7FFEA, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON | ACELEM_HOOKABLE,
OCELEM_ON,
diff --git a/src/overlays/actors/ovl_En_Poh/z_en_poh.c b/src/overlays/actors/ovl_En_Poh/z_en_poh.c
index b6e7232852..061720f0db 100644
--- a/src/overlays/actors/ovl_En_Poh/z_en_poh.c
+++ b/src/overlays/actors/ovl_En_Poh/z_en_poh.c
@@ -7,6 +7,7 @@
#include "z_en_poh.h"
#include "libc64/qrand.h"
+#include "array_count.h"
#include "gfx.h"
#include "gfx_setupdl.h"
#include "ichain.h"
@@ -81,8 +82,8 @@ static ColliderCylinderInit sCylinderInit = {
},
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON,
OCELEM_ON,
@@ -90,12 +91,12 @@ static ColliderCylinderInit sCylinderInit = {
{ 20, 40, 20, { 0, 0, 0 } },
};
-static ColliderJntSphElementInit sJntSphElementsInit[1] = {
+static ColliderJntSphElementInit sJntSphElementsInit[] = {
{
{
ELEM_MATERIAL_UNK0,
- { 0xFFCFFFFF, 0x00, 0x08 },
- { 0x00000000, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x08 },
+ { 0x00000000, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_NONE,
OCELEM_ON,
@@ -113,7 +114,7 @@ static ColliderJntSphInit sJntSphInit = {
OC2_TYPE_1,
COLSHAPE_JNTSPH,
},
- 1,
+ ARRAY_COUNT(sJntSphElementsInit),
sJntSphElementsInit,
};
diff --git a/src/overlays/actors/ovl_En_Pu_box/z_en_pu_box.c b/src/overlays/actors/ovl_En_Pu_box/z_en_pu_box.c
index 5f72ceeb4d..59ea027c65 100644
--- a/src/overlays/actors/ovl_En_Pu_box/z_en_pu_box.c
+++ b/src/overlays/actors/ovl_En_Pu_box/z_en_pu_box.c
@@ -78,8 +78,7 @@ void EnPubox_Update(Actor* thisx, PlayState* play) {
thisx->speed = CLAMP(thisx->speed, -2.5f, 2.5f);
Math_SmoothStepToF(&thisx->speed, 0.0f, 1.0f, 1.0f, 0.0f);
if (thisx->speed != 0.0f) {
- Audio_PlaySfxGeneral(NA_SE_EV_ROCK_SLIDE - SFX_FLAG, &thisx->projectedPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&thisx->projectedPos, NA_SE_EV_ROCK_SLIDE - SFX_FLAG);
}
this->dyna.unk_154 = 0.0f;
this->dyna.unk_150 = 0.0f;
diff --git a/src/overlays/actors/ovl_En_Rd/z_en_rd.c b/src/overlays/actors/ovl_En_Rd/z_en_rd.c
index 3091697443..b41be053d9 100644
--- a/src/overlays/actors/ovl_En_Rd/z_en_rd.c
+++ b/src/overlays/actors/ovl_En_Rd/z_en_rd.c
@@ -99,8 +99,8 @@ static ColliderCylinderInit sCylinderInit = {
},
{
ELEM_MATERIAL_UNK1,
- { 0x00000000, 0x00, 0x00 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON | ACELEM_HOOKABLE,
OCELEM_ON,
diff --git a/src/overlays/actors/ovl_En_Reeba/z_en_reeba.c b/src/overlays/actors/ovl_En_Reeba/z_en_reeba.c
index 1cb43e2481..aeff74445a 100644
--- a/src/overlays/actors/ovl_En_Reeba/z_en_reeba.c
+++ b/src/overlays/actors/ovl_En_Reeba/z_en_reeba.c
@@ -117,8 +117,8 @@ static ColliderCylinderInit sCylinderInit = {
},
{
ELEM_MATERIAL_UNK0,
- { 0xFFCFFFFF, 0x08, 0x08 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_8, 0x08 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON | ACELEM_HOOKABLE,
OCELEM_ON,
@@ -151,7 +151,7 @@ void EnReeba_Init(Actor* thisx, PlayState* play) {
PRINTF(VT_FGCOL(YELLOW) T("☆☆☆☆☆ リーバぼす登場 ☆☆☆☆☆ %f\n", "☆☆☆☆☆ Reeba boss appears ☆☆☆☆☆ %f\n") VT_RST,
this->scale);
this->actor.colChkInfo.health = 20;
- this->collider.elem.atDmgInfo.effect = 4;
+ this->collider.elem.atDmgInfo.hitSpecialEffect = HIT_SPECIAL_EFFECT_KNOCKBACK;
this->collider.elem.atDmgInfo.damage = 16;
Actor_ChangeCategory(play, &play->actorCtx, &this->actor, ACTORCAT_ENEMY);
}
diff --git a/src/overlays/actors/ovl_En_Rr/z_en_rr.c b/src/overlays/actors/ovl_En_Rr/z_en_rr.c
index 5ed4a1ea37..e18f1cb0cd 100644
--- a/src/overlays/actors/ovl_En_Rr/z_en_rr.c
+++ b/src/overlays/actors/ovl_En_Rr/z_en_rr.c
@@ -114,8 +114,8 @@ static ColliderCylinderInitType1 sCylinderInit1 = {
},
{
ELEM_MATERIAL_UNK0,
- { 0xFFCFFFFF, 0x00, 0x08 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x08 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON | ACELEM_HOOKABLE,
OCELEM_ON,
@@ -133,8 +133,8 @@ static ColliderCylinderInitType1 sCylinderInit2 = {
},
{
ELEM_MATERIAL_UNK0,
- { 0xFFCFFFFF, 0x00, 0x08 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x08 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
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 3cd1066650..9bed2ce0d7 100644
--- a/src/overlays/actors/ovl_En_Ru1/z_en_ru1.c
+++ b/src/overlays/actors/ovl_En_Ru1/z_en_ru1.c
@@ -37,13 +37,13 @@ void EnRu1_Destroy(Actor* thisx, PlayState* play);
void EnRu1_Update(Actor* thisx, PlayState* play);
void EnRu1_Draw(Actor* thisx, PlayState* play);
-void func_80AEC0B4(EnRu1* this, PlayState* play);
-void func_80AEC100(EnRu1* this, PlayState* play);
-void func_80AEC130(EnRu1* this, PlayState* play);
-void func_80AEC17C(EnRu1* this, PlayState* play);
-void func_80AEC1D4(EnRu1* this, PlayState* play);
-void func_80AEC244(EnRu1* this, PlayState* play);
-void func_80AEC2C0(EnRu1* this, PlayState* play);
+void EnRu1_Fountain_GazingAtLink(EnRu1* this, PlayState* play);
+void EnRu1_Fountain_Diving(EnRu1* this, PlayState* play);
+void EnRu1_Fountain_Resurfacing(EnRu1* this, PlayState* play);
+void EnRu1_Fountain_TreadingWater(EnRu1* this, PlayState* play);
+void EnRu1_Fountain_StartingSwimBack(EnRu1* this, PlayState* play);
+void EnRu1_Fountain_SwimmingBack(EnRu1* this, PlayState* play);
+void EnRu1_Fountain_FinishingSwimBack(EnRu1* this, PlayState* play);
void EnRu1_FirstEncounter_RangeCheck(EnRu1* this, PlayState* play);
void EnRu1_FirstEncounter_InitPosition(EnRu1* this, PlayState* play);
void EnRu1_FirstEncounter_FacingLink(EnRu1* this, PlayState* play);
@@ -98,8 +98,15 @@ static ColliderCylinderInitType1 sStandingCylinderInit = {
OC1_ON | OC1_TYPE_PLAYER,
COLSHAPE_CYLINDER,
},
- { 0x00, { 0x00000000, 0x00, 0x00 }, { 0x00000000, 0x00, 0x00 }, 0x00, 0x00, 0x01 },
- { 25, 80, 0, { 0 } },
+ {
+ ELEM_MATERIAL_UNK0,
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0x00000000, HIT_BACKLASH_NONE, 0x00 },
+ ATELEM_NONE,
+ ACELEM_NONE,
+ OCELEM_ON,
+ },
+ { 25, 80, 0, { 0, 0, 0 } },
};
static ColliderCylinderInitType1 sSittingCylinderInit = {
@@ -110,8 +117,15 @@ static ColliderCylinderInitType1 sSittingCylinderInit = {
OC1_ON | OC1_TYPE_PLAYER,
COLSHAPE_CYLINDER,
},
- { 0x00, { 0x00000101, 0x00, 0x00 }, { 0x00000000, 0x00, 0x00 }, 0x01, 0x00, 0x01 },
- { 20, 30, 0, { 0 } },
+ {
+ ELEM_MATERIAL_UNK0,
+ { 0x00000101, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0x00000000, HIT_BACKLASH_NONE, 0x00 },
+ ATELEM_ON | ATELEM_SFX_NORMAL,
+ ACELEM_NONE,
+ OCELEM_ON,
+ },
+ { 20, 30, 0, { 0, 0, 0 } },
};
static void* sEyeTextures[] = {
@@ -132,52 +146,52 @@ static s32 sUnused = 0;
static u32 D_80AF1938 = 0;
static EnRu1ActionFunc sActionFuncs[] = {
- 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
- EnRu1_FirstEncounter_RangeCheck,
- EnRu1_FirstEncounter_InitPosition,
- EnRu1_FirstEncounter_FacingLink,
- EnRu1_FirstEncounter_TurningAround,
- EnRu1_FirstEncounter_WalkingAwayAccel,
- EnRu1_FirstEncounter_WalkingAwayConstant,
- EnRu1_FirstEncounter_FallingDownHole,
- EnRu1_FirstEncounter_End,
- 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
+ EnRu1_Fountain_GazingAtLink, // ENRU1_ACTION_FOUNTAIN_GAZING_AT_LINK
+ EnRu1_Fountain_Diving, // ENRU1_ACTION_FOUNTAIN_DIVING
+ EnRu1_Fountain_Resurfacing, // ENRU1_ACTION_FOUNTAIN_RESURFACING
+ EnRu1_Fountain_TreadingWater, // ENRU1_ACTION_FOUNTAIN_TREADING_WATER
+ EnRu1_Fountain_StartingSwimBack, // ENRU1_ACTION_FOUNTAIN_STARTING_SWIM_BACK
+ EnRu1_Fountain_SwimmingBack, // ENRU1_ACTION_FOUNTAIN_SWIMMING_BACK
+ EnRu1_Fountain_FinishingSwimBack, // ENRU1_ACTION_FOUNTAIN_FINISHING_SWIM_BACK
+ EnRu1_FirstEncounter_RangeCheck, // ENRU1_ACTION_FIRST_ENCOUNTER_RANGE_CHECK
+ EnRu1_FirstEncounter_InitPosition, // ENRU1_ACTION_FIRST_ENCOUNTER_INIT_POSITION
+ EnRu1_FirstEncounter_FacingLink, // ENRU1_ACTION_FIRST_ENCOUNTER_FACING_LINK
+ EnRu1_FirstEncounter_TurningAround, // ENRU1_ACTION_FIRST_ENCOUNTER_TURNING_AROUND
+ EnRu1_FirstEncounter_WalkingAwayAccel, // ENRU1_ACTION_FIRST_ENCOUNTER_WALKING_AWAY_ACCEL
+ EnRu1_FirstEncounter_WalkingAwayConstant, // ENRU1_ACTION_FIRST_ENCOUNTER_WALKING_AWAY_CONSTANT
+ EnRu1_FirstEncounter_FallingDownHole, // ENRU1_ACTION_FIRST_ENCOUNTER_FALLING_DOWN_HOLE
+ EnRu1_FirstEncounter_End, // ENRU1_ACTION_FIRST_ENCOUNTER_END
+ 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[] = {
@@ -316,7 +330,7 @@ CsCmdActorCue* EnRu1_GetCue(PlayState* play, s32 cueChannel) {
return cue;
}
-s32 func_80AEAFA0(PlayState* play, u16 cueId, s32 cueChannel) {
+s32 EnRu1_CheckCueMatchingId(PlayState* play, u16 cueId, s32 cueChannel) {
CsCmdActorCue* cue = EnRu1_GetCue(play, cueChannel);
if ((cue != NULL) && (cue->id == cueId)) {
@@ -325,7 +339,7 @@ s32 func_80AEAFA0(PlayState* play, u16 cueId, s32 cueChannel) {
return false;
}
-s32 func_80AEAFE0(PlayState* play, u16 cueId, s32 cueChannel) {
+s32 EnRu1_CheckCueNotMatchingId(PlayState* play, u16 cueId, s32 cueChannel) {
CsCmdActorCue* cue = EnRu1_GetCue(play, cueChannel);
if ((cue != NULL) && (cue->id != cueId)) {
@@ -467,22 +481,22 @@ void func_80AEB3CC(EnRu1* this) {
void EnRu1_InitOutsideJabuJabu(EnRu1* this, PlayState* play) {
EnRu1_AnimationChange(this, &gRutoChildWaitHandsBehindBackAnim, ANIMMODE_LOOP, 0, false);
- this->action = ENRU1_ACTION_00;
+ this->action = ENRU1_ACTION_FOUNTAIN_GAZING_AT_LINK;
this->drawConfig = ENRU1_DRAW_OPA;
EnRu1_SetEyes(this, ENRU1_EYES_GAZING);
EnRu1_SetMouth(this, ENRU1_MOUTH_SMILING);
}
-CsCmdActorCue* EnRu1_GetCueChannel3(PlayState* play) {
+CsCmdActorCue* EnRu1_GetFountainCue(PlayState* play) {
return EnRu1_GetCue(play, 3);
}
-s32 func_80AEB458(PlayState* play, u16 cueId) {
- return func_80AEAFA0(play, cueId, 3);
+s32 EnRu1_CheckFountainCueMatchingId(PlayState* play, u16 cueId) {
+ return EnRu1_CheckCueMatchingId(play, cueId, 3);
}
-s32 func_80AEB480(PlayState* play, u16 cueId) {
- return func_80AEAFE0(play, cueId, 3);
+s32 EnRu1_CheckFountainCueNotMatchingId(PlayState* play, u16 cueId) {
+ return EnRu1_CheckCueNotMatchingId(play, cueId, 3);
}
void EnRu1_SpawnRipple(EnRu1* this, PlayState* play, s16 radiusMax, s16 life) {
@@ -495,15 +509,15 @@ void EnRu1_SpawnRipple(EnRu1* this, PlayState* play, s16 radiusMax, s16 life) {
EffectSsGRipple_Spawn(play, &pos, 100, radiusMax, life);
}
-void func_80AEB50C(EnRu1* this, PlayState* play) {
- this->unk_270 += 1.0f;
- if (this->unk_270 >= kREG(3) + 10.0f) {
+void EnRu1_SpawnRippleTreading(EnRu1* this, PlayState* play) {
+ this->treadTimer += 1.0f;
+ if (this->treadTimer >= kREG(3) + 10.0f) {
EnRu1_SpawnRipple(this, play, kREG(1) + 500, 0);
- this->unk_270 = 0.0f;
+ this->treadTimer = 0.0f;
}
}
-void func_80AEB59C(EnRu1* this, PlayState* play) {
+void EnRu1_SpawnThreeRipples(EnRu1* this, PlayState* play) {
EnRu1_SpawnRipple(this, play, kREG(2) + 500, 0);
EnRu1_SpawnRipple(this, play, kREG(2) + 500, kREG(3) + 10.0f);
EnRu1_SpawnRipple(this, play, kREG(2) + 500, (kREG(3) + 10.0f) * 2.0f);
@@ -519,7 +533,10 @@ void EnRu1_SpawnSplash(EnRu1* this, PlayState* play) {
EffectSsGSplash_Spawn(play, &pos, NULL, NULL, 1, 0);
}
-void func_80AEB6E0(EnRu1* this, PlayState* play) {
+/**
+ * Used twice: once to start resurfacing, and once to start swimming toward Link.
+ */
+void EnRu1_StartMovingInWater(EnRu1* this, PlayState* play) {
SkelAnime* skelAnime = &this->skelAnime;
if (skelAnime->baseTransl.y < skelAnime->jointTable[0].y) {
@@ -528,7 +545,7 @@ void func_80AEB6E0(EnRu1* this, PlayState* play) {
}
}
-void func_80AEB738(EnRu1* this, PlayState* play) {
+void EnRu1_MoveInWater(EnRu1* this, PlayState* play) {
SkelAnime* skelAnime = &this->skelAnime;
skelAnime->baseTransl = skelAnime->jointTable[0];
@@ -539,11 +556,11 @@ void func_80AEB738(EnRu1* this, PlayState* play) {
}
}
-void func_80AEB7D0(EnRu1* this) {
+void EnRu1_StopMovingInWater(EnRu1* this) {
this->skelAnime.movementFlags &= ~(ANIM_FLAG_UPDATE_XZ | ANIM_FLAG_UPDATE_Y);
}
-f32 func_80AEB7E0(CsCmdActorCue* cue, PlayState* play) {
+f32 EnRu1_GetSwimLerpFactor(CsCmdActorCue* cue, PlayState* play) {
s32 csCurFrame = play->csCtx.curFrame;
if ((csCurFrame < cue->endFrame) && (cue->endFrame - cue->startFrame > 0)) {
@@ -554,12 +571,12 @@ f32 func_80AEB7E0(CsCmdActorCue* cue, PlayState* play) {
return 1.0f;
}
-f32 func_80AEB87C(f32 arg0, s32 arg1, s32 arg2) {
- return (((f32)arg2 - arg1) * arg0) + arg1;
+f32 EnRu1_Lerp(f32 scale, s32 startPos, s32 endPos) {
+ return (((f32)endPos - startPos) * scale) + startPos;
}
-void func_80AEB89C(EnRu1* this, PlayState* play) {
- CsCmdActorCue* cue = EnRu1_GetCueChannel3(play);
+void EnRu1_InitPositionFromFountainCue(EnRu1* this, PlayState* play) {
+ CsCmdActorCue* cue = EnRu1_GetFountainCue(play);
if (cue != NULL) {
this->actor.world.rot.y = this->actor.shape.rot.y = cue->rot.y;
@@ -570,68 +587,68 @@ void func_80AEB89C(EnRu1* this, PlayState* play) {
}
}
-void func_80AEB914(EnRu1* this, PlayState* play) {
- func_80AEB89C(this, play);
+void EnRu1_InitPositionDivingIntoFountain(EnRu1* this, PlayState* play) {
+ EnRu1_InitPositionFromFountainCue(this, play);
}
-void func_80AEB934(EnRu1* this, PlayState* play) {
- func_80AEB89C(this, play);
+void EnRu1_InitPositionResurfacing(EnRu1* this, PlayState* play) {
+ EnRu1_InitPositionFromFountainCue(this, play);
}
-void func_80AEB954(EnRu1* this, PlayState* play) {
- func_80AEB6E0(this, play);
+void EnRu1_StartSwimmingTowardLink(EnRu1* this, PlayState* play) {
+ EnRu1_StartMovingInWater(this, play);
}
-void func_80AEB974(EnRu1* this, PlayState* play) {
+void EnRu1_SwimTowardLink(EnRu1* this, PlayState* play) {
Vec3f* thisPos;
- f32 sp30;
- CsCmdActorCue* cue = EnRu1_GetCueChannel3(play);
+ f32 swimProximity;
+ CsCmdActorCue* cue = EnRu1_GetFountainCue(play);
s32 pad;
if (cue != NULL) {
- sp30 = func_80AEB7E0(cue, play);
+ swimProximity = EnRu1_GetSwimLerpFactor(cue, play);
thisPos = &this->actor.world.pos;
- thisPos->x = func_80AEB87C(sp30, cue->startPos.x, cue->endPos.x);
- thisPos->y = func_80AEB87C(sp30, cue->startPos.y, cue->endPos.y);
- thisPos->z = func_80AEB87C(sp30, cue->startPos.z, cue->endPos.z);
+ thisPos->x = EnRu1_Lerp(swimProximity, cue->startPos.x, cue->endPos.x);
+ thisPos->y = EnRu1_Lerp(swimProximity, cue->startPos.y, cue->endPos.y);
+ thisPos->z = EnRu1_Lerp(swimProximity, cue->startPos.z, cue->endPos.z);
}
}
-void func_80AEBA0C(EnRu1* this, PlayState* play) {
- func_80AEB6E0(this, play);
+void EnRu1_StartSwimmingAwayFromLink(EnRu1* this, PlayState* play) {
+ EnRu1_StartMovingInWater(this, play);
}
-void func_80AEBA2C(EnRu1* this, PlayState* play) {
+void EnRu1_SwimAwayFromLink(EnRu1* this, PlayState* play) {
s32 pad;
- Vec3f* unk_364 = &this->unk_364;
+ Vec3f* treadStartPos = &this->treadStartPos;
Vec3f* thisPos;
- f32 temp_ret_2;
- CsCmdActorCue* cue = EnRu1_GetCueChannel3(play);
+ f32 proximity;
+ CsCmdActorCue* cue = EnRu1_GetFountainCue(play);
s32 pad2;
if (cue != NULL) {
- temp_ret_2 = func_80AEB7E0(cue, play);
+ proximity = EnRu1_GetSwimLerpFactor(cue, play);
thisPos = &this->actor.world.pos;
- thisPos->x = func_80AEB87C(temp_ret_2, unk_364->x, cue->endPos.x);
- thisPos->y = func_80AEB87C(temp_ret_2, unk_364->y, cue->endPos.y);
- thisPos->z = func_80AEB87C(temp_ret_2, unk_364->z, cue->endPos.z);
+ thisPos->x = EnRu1_Lerp(proximity, treadStartPos->x, cue->endPos.x);
+ thisPos->y = EnRu1_Lerp(proximity, treadStartPos->y, cue->endPos.y);
+ thisPos->z = EnRu1_Lerp(proximity, treadStartPos->z, cue->endPos.z);
}
}
-void func_80AEBAFC(EnRu1* this) {
+void EnRu1_PlayDivingEntrySfx(EnRu1* this) {
if (this->unk_298 == 0) {
Sfx_PlaySfxAtPos(&this->actor.projectedPos, NA_SE_EV_DIVE_INTO_WATER);
this->unk_298 = 1;
}
}
-void func_80AEBB3C(EnRu1* this) {
+void EnRu1_PlayResurfacingSfx(EnRu1* this) {
if (Animation_OnFrame(&this->skelAnime, 5.0f)) {
Sfx_PlaySfxAtPos(&this->actor.projectedPos, NA_SE_PL_FACE_UP);
}
}
-void func_80AEBB78(EnRu1* this) {
+void EnRu1_PlaySwimStrokeSfx(EnRu1* this) {
SkelAnime* skelAnime = &this->skelAnime;
if (Animation_OnFrame(skelAnime, 4.0f) || Animation_OnFrame(skelAnime, 13.0f) ||
@@ -640,101 +657,106 @@ void func_80AEBB78(EnRu1* this) {
}
}
-void func_80AEBBF4(EnRu1* this) {
+void EnRu1_PlaySubmergeSfx(EnRu1* this) {
if (Animation_OnFrame(&this->skelAnime, 8.0f)) {
Sfx_PlaySfxAtPos(&this->actor.projectedPos, NA_SE_PL_SUBMERGE);
}
}
-void func_80AEBC30(PlayState* play) {
+/**
+ * Plays the splashing sound effect when Link falls backwards into the Zora's Fountain waters.
+ */
+void EnRu1_PlayLinkFallingSfx(PlayState* play) {
Player* player;
if (play->csCtx.curFrame == 205) {
player = GET_PLAYER(play);
- Audio_PlaySfxGeneral(NA_SE_EV_DIVE_INTO_WATER, &player->actor.projectedPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&player->actor.projectedPos, NA_SE_EV_DIVE_INTO_WATER);
}
}
-void func_80AEBC84(EnRu1* this, PlayState* play) {
+/**
+ * Ruto giggles at Link outside of Jabu-Jabu.
+ */
+void EnRu1_PlayGiggleSfx(EnRu1* this, PlayState* play) {
if (play->csCtx.curFrame == 130) {
Sfx_PlaySfxAtPos(&this->actor.projectedPos, NA_SE_VO_RT_LAUGH_0);
}
}
-void func_80AEBCB8(EnRu1* this, UNK_TYPE arg1) {
- if (arg1 != 0) {
+void EnRu1_StartBackSwimming(EnRu1* this, s32 isSwimming) {
+ if (isSwimming != 0) {
Animation_Change(&this->skelAnime, &gRutoChildSwimOnBackAnim, 1.0f, 0,
Animation_GetLastFrame(&gRutoChildSwimOnBackAnim), ANIMMODE_LOOP, -8.0f);
}
}
-void func_80AEBD1C(EnRu1* this, PlayState* play) {
- if (func_80AEB480(play, 2)) {
- this->action = ENRU1_ACTION_01;
+void EnRu1_EnterFountainWater(EnRu1* this, PlayState* play) {
+ if (EnRu1_CheckFountainCueNotMatchingId(play, 2)) {
+ this->action = ENRU1_ACTION_FOUNTAIN_DIVING;
this->drawConfig = ENRU1_DRAW_NOTHING;
- func_80AEB914(this, play);
+ EnRu1_InitPositionDivingIntoFountain(this, play);
func_80AEAECC(this, play);
EnRu1_SpawnSplash(this, play);
- func_80AEB59C(this, play);
+ EnRu1_SpawnThreeRipples(this, play);
}
}
-void func_80AEBD94(EnRu1* this, PlayState* play) {
+void EnRu1_Resurface(EnRu1* this, PlayState* play) {
s32 pad[2];
f32 frameCount;
- if (func_80AEB480(play, 3)) {
+ if (EnRu1_CheckFountainCueNotMatchingId(play, 3)) {
frameCount = Animation_GetLastFrame(&gRutoChildResurfaceAnim);
- func_80AEB934(this, play);
- func_80AEB738(this, play);
+ EnRu1_InitPositionResurfacing(this, play);
+ EnRu1_MoveInWater(this, play);
Animation_Change(&this->skelAnime, &gRutoChildResurfaceAnim, 1.0f, 0.0f, frameCount, ANIMMODE_ONCE, 0.0f);
- this->action = ENRU1_ACTION_02;
+ this->action = ENRU1_ACTION_FOUNTAIN_RESURFACING;
this->drawConfig = ENRU1_DRAW_OPA;
}
}
-void func_80AEBE3C(EnRu1* this, PlayState* play, s32 arg2) {
+void EnRu1_ResurfaceProgress(EnRu1* this, PlayState* play, s32 isResurfaced) {
s32 pad[2];
- if (arg2 != 0) {
+ if (isResurfaced != 0) {
f32 frameCount = Animation_GetLastFrame(&gRutoChildTreadWaterAnim);
- func_80AEB7D0(this);
+ EnRu1_StopMovingInWater(this);
Animation_Change(&this->skelAnime, &gRutoChildTreadWaterAnim, 1.0f, 0, frameCount, ANIMMODE_LOOP, -8.0f);
- this->action = ENRU1_ACTION_03;
+ this->action = ENRU1_ACTION_FOUNTAIN_TREADING_WATER;
} else {
- func_80AEB954(this, play);
+ EnRu1_StartSwimmingTowardLink(this, play);
}
}
-void func_80AEBEC8(EnRu1* this, PlayState* play) {
+void EnRu1_StopTreading(EnRu1* this, PlayState* play) {
s32 pad[2];
f32 frameCount;
- if (func_80AEB458(play, 6)) {
+ if (EnRu1_CheckFountainCueMatchingId(play, 6)) {
frameCount = Animation_GetLastFrame(&gRutoChildTransitionToSwimOnBackAnim);
- func_80AEB738(this, play);
+ EnRu1_MoveInWater(this, play);
Animation_Change(&this->skelAnime, &gRutoChildTransitionToSwimOnBackAnim, 1.0f, 0, frameCount, ANIMMODE_ONCE,
-8.0f);
- this->action = ENRU1_ACTION_04;
+ this->action = ENRU1_ACTION_FOUNTAIN_STARTING_SWIM_BACK;
}
}
-void func_80AEBF60(EnRu1* this, PlayState* play) {
- if (func_80AEB480(play, 6)) {
+void EnRu1_TransitionToBackSwimming(EnRu1* this, PlayState* play) {
+ if (EnRu1_CheckFountainCueNotMatchingId(play, 6)) {
s32 pad;
- func_80AEB7D0(this);
- this->action = ENRU1_ACTION_05;
- this->unk_364 = this->actor.world.pos;
+ EnRu1_StopMovingInWater(this);
+ this->action = ENRU1_ACTION_FOUNTAIN_SWIMMING_BACK;
+ this->treadStartPos = this->actor.world.pos;
} else {
- func_80AEBA0C(this, play);
+ EnRu1_StartSwimmingAwayFromLink(this, play);
}
}
-void func_80AEBFD8(EnRu1* this, PlayState* play) {
- CsCmdActorCue* cue = EnRu1_GetCueChannel3(play);
+void EnRu1_EndSwimBack(EnRu1* this, PlayState* play) {
+ CsCmdActorCue* cue = EnRu1_GetFountainCue(play);
f32 frameCount;
u16 csCurFrame;
u16 endFrame;
@@ -747,79 +769,79 @@ 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 = ENRU1_ACTION_06;
+ this->action = ENRU1_ACTION_FOUNTAIN_FINISHING_SWIM_BACK;
}
}
}
-void func_80AEC070(EnRu1* this, PlayState* play, UNK_TYPE arg2) {
- if ((func_80AEB458(play, 8)) && (arg2 != 0)) {
+void EnRu1_EndGivingSapphire(EnRu1* this, PlayState* play, UNK_TYPE arg2) {
+ if ((EnRu1_CheckFountainCueMatchingId(play, 8)) && (arg2 != 0)) {
Actor_Kill(&this->actor);
}
}
-void func_80AEC0B4(EnRu1* this, PlayState* play) {
- func_80AEB89C(this, play);
+void EnRu1_Fountain_GazingAtLink(EnRu1* this, PlayState* play) {
+ EnRu1_InitPositionFromFountainCue(this, play);
EnRu1_UpdateSkelAnime(this);
- func_80AEBC84(this, play);
- func_80AEBC30(play);
- func_80AEBD1C(this, play);
+ EnRu1_PlayGiggleSfx(this, play);
+ EnRu1_PlayLinkFallingSfx(play);
+ EnRu1_EnterFountainWater(this, play);
}
-void func_80AEC100(EnRu1* this, PlayState* play) {
- func_80AEBAFC(this);
- func_80AEBD94(this, play);
+void EnRu1_Fountain_Diving(EnRu1* this, PlayState* play) {
+ EnRu1_PlayDivingEntrySfx(this);
+ EnRu1_Resurface(this, play);
}
-void func_80AEC130(EnRu1* this, PlayState* play) {
- s32 something = EnRu1_UpdateSkelAnime(this);
+void EnRu1_Fountain_Resurfacing(EnRu1* this, PlayState* play) {
+ s32 doneAnim = EnRu1_UpdateSkelAnime(this);
func_80AEAECC(this, play);
- func_80AEBB3C(this);
- func_80AEBE3C(this, play, something);
+ EnRu1_PlayResurfacingSfx(this);
+ EnRu1_ResurfaceProgress(this, play, doneAnim);
}
-void func_80AEC17C(EnRu1* this, PlayState* play) {
- func_80AEB974(this, play);
+void EnRu1_Fountain_TreadingWater(EnRu1* this, PlayState* play) {
+ EnRu1_SwimTowardLink(this, play);
func_80AEAECC(this, play);
EnRu1_UpdateSkelAnime(this);
- func_80AEB50C(this, play);
- func_80AEBEC8(this, play);
+ EnRu1_SpawnRippleTreading(this, play);
+ EnRu1_StopTreading(this, play);
}
-void func_80AEC1D4(EnRu1* this, PlayState* play) {
- s32 something;
+void EnRu1_Fountain_StartingSwimBack(EnRu1* this, PlayState* play) {
+ s32 doneAnim;
- something = EnRu1_UpdateSkelAnime(this);
+ doneAnim = EnRu1_UpdateSkelAnime(this);
func_80AEAECC(this, play);
EnRu1_UpdateEyes(this);
- func_80AEB50C(this, play);
- func_80AEBCB8(this, something);
- func_80AEBBF4(this);
- func_80AEBF60(this, play);
+ EnRu1_SpawnRippleTreading(this, play);
+ EnRu1_StartBackSwimming(this, doneAnim);
+ EnRu1_PlaySubmergeSfx(this);
+ EnRu1_TransitionToBackSwimming(this, play);
}
-void func_80AEC244(EnRu1* this, PlayState* play) {
- s32 something;
+void EnRu1_Fountain_SwimmingBack(EnRu1* this, PlayState* play) {
+ s32 doneAnim;
- something = EnRu1_UpdateSkelAnime(this);
- func_80AEBA2C(this, play);
+ doneAnim = EnRu1_UpdateSkelAnime(this);
+ EnRu1_SwimAwayFromLink(this, play);
func_80AEAECC(this, play);
EnRu1_UpdateEyes(this);
- func_80AEB50C(this, play);
- func_80AEBCB8(this, something);
- func_80AEBB78(this);
- func_80AEBFD8(this, play);
+ EnRu1_SpawnRippleTreading(this, play);
+ EnRu1_StartBackSwimming(this, doneAnim);
+ EnRu1_PlaySwimStrokeSfx(this);
+ EnRu1_EndSwimBack(this, play);
}
-void func_80AEC2C0(EnRu1* this, PlayState* play) {
- s32 something;
+void EnRu1_Fountain_FinishingSwimBack(EnRu1* this, PlayState* play) {
+ s32 doneAnim;
- something = EnRu1_UpdateSkelAnime(this);
+ doneAnim = EnRu1_UpdateSkelAnime(this);
func_80AEAECC(this, play);
EnRu1_UpdateEyes(this);
- func_80AEB50C(this, play);
- func_80AEC070(this, play, something);
+ EnRu1_SpawnRippleTreading(this, play);
+ EnRu1_EndGivingSapphire(this, play, doneAnim);
}
void EnRu1_InitInJabuJabuHolesRoom(EnRu1* this, PlayState* play) {
@@ -918,7 +940,7 @@ void EnRu1_PlayFallingSfx(EnRu1* this) {
* Checks if Ruto is standing over the Jabu Jabu hole and initiates her reaction to falling.
*/
void EnRu1_RespondToFalling(EnRu1* this, PlayState* play) {
- if ((func_80AEAFA0(play, 4, 3)) && (this->isFalling == 0)) {
+ if ((EnRu1_CheckCueMatchingId(play, 4, 3)) && (this->isFalling == 0)) {
Animation_Change(&this->skelAnime, &gRutoChildBringArmsUpAnim, 1.0f, 0,
Animation_GetLastFrame(&gRutoChildBringArmsUpAnim), ANIMMODE_ONCE, -8.0f);
this->isFalling = 1;
@@ -945,7 +967,7 @@ void EnRu1_SetupPositionForFirstEncounter(EnRu1* this, PlayState* play) {
CsCmdActorCue* cue;
s16 newRotY;
- if (func_80AEAFE0(play, 1, 3)) {
+ if (EnRu1_CheckCueNotMatchingId(play, 1, 3)) {
cue = play->csCtx.actorCues[3];
this->actor.world.pos.x = cue->startPos.x;
this->actor.world.pos.y = cue->startPos.y;
@@ -959,7 +981,7 @@ void EnRu1_SetupPositionForFirstEncounter(EnRu1* this, PlayState* play) {
}
void EnRu1_CheckTurnAround(EnRu1* this, PlayState* play) {
- if (func_80AEAFA0(play, 3, 3)) {
+ if (EnRu1_CheckCueMatchingId(play, 3, 3)) {
Animation_Change(&this->skelAnime, &gRutoChildTurnAroundAnim, 1.0f, 0,
Animation_GetLastFrame(&gRutoChildTurnAroundAnim), ANIMMODE_ONCE, -8.0f);
this->action = ENRU1_ACTION_FIRST_ENCOUNTER_TURNING_AROUND;
@@ -996,7 +1018,7 @@ void EnRu1_CheckStartFalling(EnRu1* this) {
}
void EnRu1_FinishFirstEncounter(EnRu1* this, PlayState* play) {
- if (func_80AEAFA0(play, 5, 3)) {
+ if (EnRu1_CheckCueMatchingId(play, 5, 3)) {
SET_INFTABLE(INFTABLE_MET_RUTO_FIRST_TIME);
this->action = ENRU1_ACTION_FIRST_ENCOUNTER_END;
}
@@ -1273,8 +1295,7 @@ void func_80AED4FC(EnRu1* this) {
void func_80AED520(EnRu1* this, PlayState* play) {
Player* player = GET_PLAYER(play);
- Audio_PlaySfxGeneral(NA_SE_PL_PULL_UP_RUTO, &player->actor.projectedPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&player->actor.projectedPos, NA_SE_PL_PULL_UP_RUTO);
Sfx_PlaySfxAtPos(&this->actor.projectedPos, NA_SE_VO_RT_LIFT);
}
@@ -2042,7 +2063,7 @@ void func_80AEF624(EnRu1* this, PlayState* play) {
CsCmdActorCue* cue2;
s16 newRotTmp;
- if (func_80AEAFE0(play, 1, 3)) {
+ if (EnRu1_CheckCueNotMatchingId(play, 1, 3)) {
frameCount = Animation_GetLastFrame(&gRutoChildWalkToAndHoldUpSapphireAnim);
// this weird part with the redundant variable is necessary to match for some reason
cue2 = play->csCtx.actorCues[3];
@@ -2078,7 +2099,7 @@ void func_80AEF728(EnRu1* this, UNK_TYPE arg1) {
}
void func_80AEF79C(EnRu1* this, PlayState* play) {
- if (func_80AEAFE0(play, 2, 3)) {
+ if (EnRu1_CheckCueNotMatchingId(play, 2, 3)) {
Animation_Change(&this->skelAnime, &gRutoChildBringHandsDownAnim, 1.0f, 0,
Animation_GetLastFrame(&gRutoChildBringHandsDownAnim), ANIMMODE_ONCE, -8.0f);
this->action = ENRU1_ACTION_39;
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 24023ed0d4..4669776ea8 100644
--- a/src/overlays/actors/ovl_En_Ru1/z_en_ru1.h
+++ b/src/overlays/actors/ovl_En_Ru1/z_en_ru1.h
@@ -27,7 +27,7 @@ typedef struct EnRu1 {
/* 0x0264 */ s32 action;
/* 0x0268 */ s32 drawConfig;
/* 0x026C */ f32 walkingFrame;
- /* 0x0270 */ f32 unk_270;
+ /* 0x0270 */ f32 treadTimer;
/* 0x0274 */ char unk_274[0x4];
/* 0x0278 */ DoorWarp1* blueWarp;
/* 0x027C */ f32 unk_27C;
@@ -55,19 +55,19 @@ typedef struct EnRu1 {
/* 0x0358 */ f32 bobDepth;
/* 0x035C */ s16 bobPhase;
/* 0x0360 */ f32 isSinking;
- /* 0x0364 */ Vec3f unk_364;
+ /* 0x0364 */ Vec3f treadStartPos;
/* 0x0370 */ f32 carryIdleTimer;
/* 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,
+ /* 0 */ ENRU1_ACTION_FOUNTAIN_GAZING_AT_LINK,
+ /* 1 */ ENRU1_ACTION_FOUNTAIN_DIVING,
+ /* 2 */ ENRU1_ACTION_FOUNTAIN_RESURFACING,
+ /* 3 */ ENRU1_ACTION_FOUNTAIN_TREADING_WATER,
+ /* 4 */ ENRU1_ACTION_FOUNTAIN_STARTING_SWIM_BACK,
+ /* 5 */ ENRU1_ACTION_FOUNTAIN_SWIMMING_BACK,
+ /* 6 */ ENRU1_ACTION_FOUNTAIN_FINISHING_SWIM_BACK,
/* 7 */ ENRU1_ACTION_FIRST_ENCOUNTER_RANGE_CHECK,
/* 8 */ ENRU1_ACTION_FIRST_ENCOUNTER_INIT_POSITION,
/* 9 */ ENRU1_ACTION_FIRST_ENCOUNTER_FACING_LINK,
diff --git a/src/overlays/actors/ovl_En_Ru2/z_en_ru2.c b/src/overlays/actors/ovl_En_Ru2/z_en_ru2.c
index 6e35bd842f..ff5e3518a9 100644
--- a/src/overlays/actors/ovl_En_Ru2/z_en_ru2.c
+++ b/src/overlays/actors/ovl_En_Ru2/z_en_ru2.c
@@ -97,8 +97,15 @@ static ColliderCylinderInitType1 sCylinderInit = {
OC1_NONE,
COLSHAPE_CYLINDER,
},
- { 0x00, { 0x00000000, 0x00, 0x00 }, { 0x00000080, 0x00, 0x00 }, 0x00, 0x01, 0x00 },
- { 30, 100, 0, { 0 } },
+ {
+ ELEM_MATERIAL_UNK0,
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0x00000080, HIT_BACKLASH_NONE, 0x00 },
+ ATELEM_NONE,
+ ACELEM_ON,
+ OCELEM_NONE,
+ },
+ { 30, 100, 0, { 0, 0, 0 } },
};
static void* sEyeTextures[] = {
diff --git a/src/overlays/actors/ovl_En_Sa/z_en_sa.c b/src/overlays/actors/ovl_En_Sa/z_en_sa.c
index 2f39fefa34..2e2c651bfe 100644
--- a/src/overlays/actors/ovl_En_Sa/z_en_sa.c
+++ b/src/overlays/actors/ovl_En_Sa/z_en_sa.c
@@ -70,8 +70,8 @@ static ColliderCylinderInit sCylinderInit = {
},
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0x00000000, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0x00000000, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_NONE,
OCELEM_ON,
@@ -393,7 +393,7 @@ void EnSa_ChangeAnim(EnSa* this, s32 index) {
}
s32 func_80AF5DFC(EnSa* this, PlayState* play) {
- if (gSaveContext.save.cutsceneIndex >= 0xFFF0 && gSaveContext.save.cutsceneIndex != 0xFFFD) {
+ if (gSaveContext.save.cutsceneIndex >= CS_INDEX_0 && gSaveContext.save.cutsceneIndex != CS_INDEX_D) {
if (play->sceneId == SCENE_KOKIRI_FOREST) {
return 4;
}
@@ -694,8 +694,7 @@ void func_80AF68E4(EnSa* this, PlayState* play) {
phi_v0 = this->unk_20C;
}
if (phi_v0 == 0) {
- Audio_PlaySfxGeneral(NA_SE_PL_WALK_GROUND + SURFACE_SFX_OFFSET_DIRT, &this->actor.projectedPos, 4,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&this->actor.projectedPos, NA_SE_PL_WALK_GROUND + SURFACE_SFX_OFFSET_DIRT);
this->unk_20C = 8;
}
}
diff --git a/src/overlays/actors/ovl_En_Sb/z_en_sb.c b/src/overlays/actors/ovl_En_Sb/z_en_sb.c
index 6ece8b50b5..98ab740df9 100644
--- a/src/overlays/actors/ovl_En_Sb/z_en_sb.c
+++ b/src/overlays/actors/ovl_En_Sb/z_en_sb.c
@@ -57,7 +57,14 @@ static ColliderCylinderInitType1 sCylinderInit = {
OC1_ON | OC1_TYPE_ALL,
COLSHAPE_CYLINDER,
},
- { 0x00, { 0xFFCFFFFF, 0x04, 0x08 }, { 0xFFCFFFFF, 0x00, 0x00 }, 0x01, 0x01, 0x01 },
+ {
+ ELEM_MATERIAL_UNK0,
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_KNOCKBACK, 0x08 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
+ ATELEM_ON | ATELEM_SFX_NORMAL,
+ ACELEM_ON,
+ OCELEM_ON,
+ },
{ 30, 40, 0, { 0, 0, 0 } },
};
diff --git a/src/overlays/actors/ovl_En_Shopnuts/z_en_shopnuts.c b/src/overlays/actors/ovl_En_Shopnuts/z_en_shopnuts.c
index 03ef38b658..d8b479b845 100644
--- a/src/overlays/actors/ovl_En_Shopnuts/z_en_shopnuts.c
+++ b/src/overlays/actors/ovl_En_Shopnuts/z_en_shopnuts.c
@@ -56,8 +56,8 @@ static ColliderCylinderInit sCylinderInit = {
},
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON,
OCELEM_ON,
diff --git a/src/overlays/actors/ovl_En_Si/z_en_si.c b/src/overlays/actors/ovl_En_Si/z_en_si.c
index f3894ac83b..5ee82311b2 100644
--- a/src/overlays/actors/ovl_En_Si/z_en_si.c
+++ b/src/overlays/actors/ovl_En_Si/z_en_si.c
@@ -37,8 +37,8 @@ static ColliderCylinderInit sCylinderInit = {
},
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0x00000090, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0x00000090, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON | ACELEM_HOOKABLE,
OCELEM_ON,
diff --git a/src/overlays/actors/ovl_En_Skb/z_en_skb.c b/src/overlays/actors/ovl_En_Skb/z_en_skb.c
index 5d21c25fb4..43ccbba8dd 100644
--- a/src/overlays/actors/ovl_En_Skb/z_en_skb.c
+++ b/src/overlays/actors/ovl_En_Skb/z_en_skb.c
@@ -8,6 +8,7 @@
#include "overlays/actors/ovl_En_Encount1/z_en_encount1.h"
#include "libc64/qrand.h"
+#include "array_count.h"
#include "gfx.h"
#include "gfx_setupdl.h"
#include "ichain.h"
@@ -55,12 +56,12 @@ void EnSkb_TakeDamage(EnSkb* this, PlayState* play);
void EnSkb_SetupDeath(EnSkb* this, PlayState* play);
void EnSkb_Death(EnSkb* this, PlayState* play);
-static ColliderJntSphElementInit sJntSphElementsInit[2] = {
+static ColliderJntSphElementInit sJntSphElementsInit[] = {
{
{
ELEM_MATERIAL_UNK0,
- { 0xFFCFFFFF, 0x00, 0x04 },
- { 0x00000000, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x04 },
+ { 0x00000000, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_NONE,
OCELEM_NONE,
@@ -70,8 +71,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[2] = {
{
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON | ACELEM_HOOKABLE,
OCELEM_ON,
@@ -89,7 +90,7 @@ static ColliderJntSphInit sJntSphInit = {
OC2_TYPE_1,
COLSHAPE_JNTSPH,
},
- 2,
+ ARRAY_COUNT(sJntSphElementsInit),
sJntSphElementsInit,
};
diff --git a/src/overlays/actors/ovl_En_Skj/z_en_skj.c b/src/overlays/actors/ovl_En_Skj/z_en_skj.c
index 492b973735..1a38696515 100644
--- a/src/overlays/actors/ovl_En_Skj/z_en_skj.c
+++ b/src/overlays/actors/ovl_En_Skj/z_en_skj.c
@@ -204,8 +204,8 @@ static ColliderCylinderInitType1 D_80B01678 = {
},
{
ELEM_MATERIAL_UNK0,
- { 0xFFCFFFFF, 0x0, 0x08 },
- { 0xFFCFFFFF, 0x0, 0x0 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x08 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
diff --git a/src/overlays/actors/ovl_En_Skjneedle/z_en_skjneedle.c b/src/overlays/actors/ovl_En_Skjneedle/z_en_skjneedle.c
index 11c33d8469..92c8b662f1 100644
--- a/src/overlays/actors/ovl_En_Skjneedle/z_en_skjneedle.c
+++ b/src/overlays/actors/ovl_En_Skjneedle/z_en_skjneedle.c
@@ -45,8 +45,8 @@ static ColliderCylinderInitType1 sCylinderInit = {
},
{
ELEM_MATERIAL_UNK0,
- { 0xFFCFFFFF, 0x00, 0x08 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x08 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
diff --git a/src/overlays/actors/ovl_En_Ssh/z_en_ssh.c b/src/overlays/actors/ovl_En_Ssh/z_en_ssh.c
index f3649fa697..36cc87fa49 100644
--- a/src/overlays/actors/ovl_En_Ssh/z_en_ssh.c
+++ b/src/overlays/actors/ovl_En_Ssh/z_en_ssh.c
@@ -68,8 +68,8 @@ static ColliderCylinderInit sCylinderInit1 = {
},
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0x00000000, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0x00000000, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_NONE,
@@ -90,8 +90,8 @@ static ColliderCylinderInit sCylinderInit2 = {
},
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0x00000000, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0x00000000, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_NONE,
OCELEM_ON,
@@ -99,12 +99,12 @@ static ColliderCylinderInit sCylinderInit2 = {
{ 20, 60, -30, { 0, 0, 0 } },
};
-static ColliderJntSphElementInit sJntSphElementsInit[1] = {
+static ColliderJntSphElementInit sJntSphElementsInit[] = {
{
{
ELEM_MATERIAL_UNK0,
- { 0xFFCFFFFF, 0x00, 0x04 },
- { 0x00000000, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x04 },
+ { 0x00000000, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_NONE,
OCELEM_ON,
diff --git a/src/overlays/actors/ovl_En_St/z_en_st.c b/src/overlays/actors/ovl_En_St/z_en_st.c
index f32ce0ba67..e6e55facd9 100644
--- a/src/overlays/actors/ovl_En_St/z_en_st.c
+++ b/src/overlays/actors/ovl_En_St/z_en_st.c
@@ -67,8 +67,8 @@ static ColliderCylinderInit sCylinderInit = {
},
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0x00000000, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0x00000000, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_NONE,
@@ -89,8 +89,8 @@ static ColliderCylinderInit sCylinderInit2 = {
},
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0x00000000, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0x00000000, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_NONE,
OCELEM_ON,
@@ -98,12 +98,12 @@ static ColliderCylinderInit sCylinderInit2 = {
{ 20, 60, -30, { 0, 0, 0 } },
};
-static ColliderJntSphElementInit sJntSphElementsInit[1] = {
+static ColliderJntSphElementInit sJntSphElementsInit[] = {
{
{
ELEM_MATERIAL_UNK0,
- { 0xFFCFFFFF, 0x00, 0x04 },
- { 0x00000000, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x04 },
+ { 0x00000000, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_NONE,
OCELEM_ON,
@@ -121,7 +121,7 @@ static ColliderJntSphInit sJntSphInit = {
OC2_TYPE_1,
COLSHAPE_JNTSPH,
},
- 1,
+ ARRAY_COUNT(sJntSphElementsInit),
sJntSphElementsInit,
};
diff --git a/src/overlays/actors/ovl_En_Sth/z_en_sth.c b/src/overlays/actors/ovl_En_Sth/z_en_sth.c
index 5cd96b9c63..e69aede4ed 100644
--- a/src/overlays/actors/ovl_En_Sth/z_en_sth.c
+++ b/src/overlays/actors/ovl_En_Sth/z_en_sth.c
@@ -58,8 +58,8 @@ static ColliderCylinderInit sCylinderInit = {
},
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON,
OCELEM_ON,
diff --git a/src/overlays/actors/ovl_En_Sw/z_en_sw.c b/src/overlays/actors/ovl_En_Sw/z_en_sw.c
index 44a589c993..b745742836 100644
--- a/src/overlays/actors/ovl_En_Sw/z_en_sw.c
+++ b/src/overlays/actors/ovl_En_Sw/z_en_sw.c
@@ -2,6 +2,7 @@
#include "libc64/math64.h"
#include "libc64/qrand.h"
+#include "array_count.h"
#include "attributes.h"
#include "gfx.h"
#include "gfx_setupdl.h"
@@ -48,16 +49,30 @@ ActorProfile En_Sw_Profile = {
/**/ EnSw_Draw,
};
-static ColliderJntSphElementInit sJntSphElementsInit[1] = {
+static ColliderJntSphElementInit sJntSphElementsInit[] = {
{
- { ELEM_MATERIAL_UNK0, { 0xFFCFFFFF, 0x00, 0x08 }, { 0xFFC3FFFE, 0x00, 0x00 }, 0x01, 0x05, 0x01 },
+ {
+ ELEM_MATERIAL_UNK0,
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x08 },
+ { 0xFFC3FFFE, HIT_BACKLASH_NONE, 0x00 },
+ ATELEM_ON | ATELEM_SFX_NORMAL,
+ ACELEM_ON | ACELEM_HOOKABLE,
+ OCELEM_ON,
+ },
{ 2, { { 0, -300, 0 }, 21 }, 100 },
},
};
static ColliderJntSphInit sJntSphInit = {
- { COL_MATERIAL_HIT6, 0x11, 0x09, 0x39, 0x10, COLSHAPE_JNTSPH },
- 1,
+ {
+ COL_MATERIAL_HIT6,
+ AT_ON | AT_TYPE_ENEMY,
+ AC_ON | AC_TYPE_PLAYER,
+ OC1_ON | OC1_TYPE_ALL,
+ OC2_TYPE_1,
+ COLSHAPE_JNTSPH,
+ },
+ ARRAY_COUNT(sJntSphElementsInit),
sJntSphElementsInit,
};
@@ -283,8 +298,7 @@ void EnSw_Init(Actor* thisx, PlayState* play) {
}
if (PARAMS_GET_S(thisx->params, 13, 3) >= 3) {
- Audio_PlaySfxGeneral(NA_SE_SY_CORRECT_CHIME, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_CORRECT_CHIME);
}
switch (PARAMS_GET_S(thisx->params, 13, 3)) {
@@ -629,8 +643,7 @@ void func_80B0D878(EnSw* this, PlayState* play) {
this->actor.shape.rot = this->actor.world.rot;
if ((this->unk_394 == 0) && (this->unk_392 == 0)) {
- Audio_PlaySfxGeneral(NA_SE_SY_KINSTA_MARK_APPEAR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_KINSTA_MARK_APPEAR);
x = (this->unk_364.x * 10.0f);
y = (this->unk_364.y * 10.0f);
z = (this->unk_364.z * 10.0f);
diff --git a/src/overlays/actors/ovl_En_Syateki_Niw/z_en_syateki_niw.c b/src/overlays/actors/ovl_En_Syateki_Niw/z_en_syateki_niw.c
index c01b1a22d2..a97ff743cf 100644
--- a/src/overlays/actors/ovl_En_Syateki_Niw/z_en_syateki_niw.c
+++ b/src/overlays/actors/ovl_En_Syateki_Niw/z_en_syateki_niw.c
@@ -65,8 +65,8 @@ static ColliderCylinderInit sCylinderInit = {
},
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON,
OCELEM_ON,
@@ -466,8 +466,7 @@ void EnSyatekiNiw_Archery(EnSyatekiNiw* this, PlayState* play) {
}
if ((this->archeryTimer == 0) && ((player->actor.world.pos.z - 30.0f) < this->actor.world.pos.z)) {
- Audio_PlaySfxGeneral(NA_SE_VO_LI_DOWN, &this->actor.projectedPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&this->actor.projectedPos, NA_SE_VO_LI_DOWN);
this->movementTimer = 20;
this->archeryState = 6;
this->actor.speed = 0.0f;
diff --git a/src/overlays/actors/ovl_En_Ta/z_en_ta.c b/src/overlays/actors/ovl_En_Ta/z_en_ta.c
index 353cb507b4..bf6570d48f 100644
--- a/src/overlays/actors/ovl_En_Ta/z_en_ta.c
+++ b/src/overlays/actors/ovl_En_Ta/z_en_ta.c
@@ -102,8 +102,8 @@ static ColliderCylinderInit sCylinderInit = {
},
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0x00000004, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0x00000004, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON,
OCELEM_ON,
@@ -159,7 +159,7 @@ void EnTa_Init(Actor* thisx, PlayState* play2) {
ActorShape_Init(&this->actor.shape, 0.0f, ActorShadow_DrawCircle, 36.0f);
SkelAnime_InitFlex(play, &this->skelAnime, &gTalonSkel, &gTalonStandAnim, this->jointTable, this->morphTable,
- ENTA_LIMB_MAX);
+ TALON_LIMB_MAX);
Collider_InitCylinder(play, &this->collider);
Collider_SetCylinder(play, &this->collider, &this->actor, &sCylinderInit);
@@ -1280,12 +1280,12 @@ s32 EnTa_OverrideLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3f* po
// Turn head and chest towards the target (the rotation steps are calculated in EnTa_Update)
switch (limbIndex) {
- case ENTA_LIMB_CHEST:
+ case TALON_LIMB_CHEST:
rot->x += this->torsoRot.y;
rot->y -= this->torsoRot.x;
break;
- case ENTA_LIMB_HEAD:
+ case TALON_LIMB_HEAD:
rot->x += this->headRot.y;
rot->z += this->headRot.x;
break;
@@ -1300,8 +1300,8 @@ s32 EnTa_OverrideLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3f* po
// in the else if branch below and rocking always occurs.
// So this flag has no effect.
this->stateFlags &= ~TALON_STATE_FLAG_SUPPRESS_ROCKING_ANIM;
- } else if ((limbIndex == ENTA_LIMB_CHEST) || (limbIndex == ENTA_LIMB_LEFT_ARM) ||
- (limbIndex == ENTA_LIMB_RIGHT_ARM)) {
+ } else if ((limbIndex == TALON_LIMB_CHEST) || (limbIndex == TALON_LIMB_LEFT_ARM) ||
+ (limbIndex == TALON_LIMB_RIGHT_ARM)) {
s32 fidgetFrequency = limbIndex * FIDGET_FREQ_LIMB;
rot->y += Math_SinS(play->state.frames * (fidgetFrequency + FIDGET_FREQ_Y)) * FIDGET_AMPLITUDE;
@@ -1315,7 +1315,7 @@ void EnTa_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot,
static Vec3f headOffset = { 1100.0f, 1000.0f, 0.0f };
EnTa* this = (EnTa*)thisx;
- if (limbIndex == ENTA_LIMB_HEAD) {
+ if (limbIndex == TALON_LIMB_HEAD) {
Matrix_MultVec3f(&headOffset, &this->actor.focus.pos);
}
}
diff --git a/src/overlays/actors/ovl_En_Ta/z_en_ta.h b/src/overlays/actors/ovl_En_Ta/z_en_ta.h
index d8888d79b3..ac193819d8 100644
--- a/src/overlays/actors/ovl_En_Ta/z_en_ta.h
+++ b/src/overlays/actors/ovl_En_Ta/z_en_ta.h
@@ -3,6 +3,7 @@
#include "ultra64.h"
#include "actor.h"
+#include "assets/objects/object_ta/object_ta.h"
struct EnTa;
@@ -16,32 +17,11 @@ typedef enum EnTaType {
/* 0x0002 */ ENTA_RETURNED_FROM_KAKARIKO
} EnTaType;
-typedef enum EnTaLimb {
- /* 0x00 */ ENTA_LIMB_NONE,
- /* 0x01 */ ENTA_LIMB_ROOT,
- /* 0x02 */ ENTA_LIMB_LEFT_THIGH,
- /* 0x03 */ ENTA_LIMB_LEFT_LEG,
- /* 0x04 */ ENTA_LIMB_LEFT_FOOT,
- /* 0x05 */ ENTA_LIMB_RIGHT_THIGH,
- /* 0x06 */ ENTA_LIMB_RIGHT_LEG,
- /* 0x07 */ ENTA_LIMB_RIGHT_FOOT,
- /* 0x08 */ ENTA_LIMB_CHEST,
- /* 0x09 */ ENTA_LIMB_LEFT_SHOULDER,
- /* 0x0A */ ENTA_LIMB_LEFT_ARM,
- /* 0x0B */ ENTA_LIMB_LEFT_HAND,
- /* 0x0C */ ENTA_LIMB_RIGHT_SHOULDER,
- /* 0x0D */ ENTA_LIMB_RIGHT_ARM,
- /* 0x0E */ ENTA_LIMB_RIGHT_HAND,
- /* 0x0F */ ENTA_LIMB_HEAD,
- /* 0x10 */ ENTA_LIMB_TORSO,
- /* 0x11 */ ENTA_LIMB_MAX
-} EnTaLimb;
-
typedef struct EnTa {
/* 0x0000 */ Actor actor;
/* 0x014C */ SkelAnime skelAnime;
- /* 0x0190 */ Vec3s jointTable[ENTA_LIMB_MAX];
- /* 0x01F6 */ Vec3s morphTable[ENTA_LIMB_MAX];
+ /* 0x0190 */ Vec3s jointTable[TALON_LIMB_MAX];
+ /* 0x01F6 */ Vec3s morphTable[TALON_LIMB_MAX];
/* 0x025C */ EnTaActionFunc actionFunc;
/* 0x0260 */ EnTaAnimFunc animFunc;
/* 0x0264 */ ColliderCylinder collider;
diff --git a/src/overlays/actors/ovl_En_Test/z_en_test.c b/src/overlays/actors/ovl_En_Test/z_en_test.c
index f81eba1e5d..550fafa726 100644
--- a/src/overlays/actors/ovl_En_Test/z_en_test.c
+++ b/src/overlays/actors/ovl_En_Test/z_en_test.c
@@ -163,8 +163,8 @@ static ColliderCylinderInit sBodyColliderInit = {
},
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON,
OCELEM_ON,
@@ -183,8 +183,8 @@ static ColliderCylinderInit sShieldColliderInit = {
},
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0xFFC1FFFF, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0xFFC1FFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON,
OCELEM_NONE,
@@ -203,8 +203,8 @@ static ColliderQuadInit sSwordColliderQuadInit = {
},
{
ELEM_MATERIAL_UNK0,
- { 0xFFCFFFFF, 0x00, 0x10 },
- { 0x00000000, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x10 },
+ { 0x00000000, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL | ATELEM_UNK7,
ACELEM_NONE,
OCELEM_NONE,
diff --git a/src/overlays/actors/ovl_En_Test/z_en_test.h b/src/overlays/actors/ovl_En_Test/z_en_test.h
index 8a0e41abf6..8cd0191654 100644
--- a/src/overlays/actors/ovl_En_Test/z_en_test.h
+++ b/src/overlays/actors/ovl_En_Test/z_en_test.h
@@ -3,76 +3,12 @@
#include "ultra64.h"
#include "actor.h"
+#include "assets/objects/object_sk2/object_sk2.h"
struct EnTest;
typedef void (*EnTestActionFunc)(struct EnTest*, struct PlayState*);
-typedef enum StalfosLimb {
- /* 0x00 */ STALFOS_LIMB_NONE,
- /* 0x01 */ STALFOS_LIMB_ROOT,
- /* 0x02 */ STALFOS_LIMB_UPPERBODY_ROOT,
- /* 0x03 */ STALFOS_LIMB_CORE_LOWER_ROOT,
- /* 0x04 */ STALFOS_LIMB_CORE_UPPER_ROOT,
- /* 0x05 */ STALFOS_LIMB_NECK_ROOT,
- /* 0x06 */ STALFOS_LIMB_HEAD_ROOT,
- /* 0x07 */ STALFOS_LIMB_7,
- /* 0x08 */ STALFOS_LIMB_8,
- /* 0x09 */ STALFOS_LIMB_JAW_ROOT,
- /* 0x0A */ STALFOS_LIMB_JAW,
- /* 0x0B */ STALFOS_LIMB_HEAD,
- /* 0x0C */ STALFOS_LIMB_NECK_UPPER,
- /* 0x0D */ STALFOS_LIMB_NECK_LOWER,
- /* 0x0E */ STALFOS_LIMB_CORE_UPPER,
- /* 0x0F */ STALFOS_LIMB_CHEST,
- /* 0x10 */ STALFOS_LIMB_SHOULDER_R_ROOT,
- /* 0x11 */ STALFOS_LIMB_SHOULDER_ARMOR_R_ROOT,
- /* 0x12 */ STALFOS_LIMB_SHOULDER_ARMOR_R,
- /* 0x13 */ STALFOS_LIMB_SHOULDER_L_ROOT,
- /* 0x14 */ STALFOS_LIMB_SHOULDER_ARMOR_L_ROOT,
- /* 0x15 */ STALFOS_LIMB_SHOULDER_ARMOR_L,
- /* 0x16 */ STALFOS_LIMB_ARM_L_ROOT,
- /* 0x17 */ STALFOS_LIMB_UPPERARM_L_ROOT,
- /* 0x18 */ STALFOS_LIMB_FOREARM_L_ROOT,
- /* 0x19 */ STALFOS_LIMB_HAND_L_ROOT,
- /* 0x1A */ STALFOS_LIMB_HAND_L,
- /* 0x1B */ STALFOS_LIMB_SHIELD,
- /* 0x1C */ STALFOS_LIMB_FOREARM_L,
- /* 0x1D */ STALFOS_LIMB_UPPERARM_L,
- /* 0x1E */ STALFOS_LIMB_ARM_R_ROOT,
- /* 0x1F */ STALFOS_LIMB_UPPERARM_R_ROOT,
- /* 0x20 */ STALFOS_LIMB_FOREARM_R_ROOT,
- /* 0x21 */ STALFOS_LIMB_HAND_R_ROOT,
- /* 0x22 */ STALFOS_LIMB_SWORD,
- /* 0x23 */ STALFOS_LIMB_HAND_R,
- /* 0x24 */ STALFOS_LIMB_FOREARM_R,
- /* 0x25 */ STALFOS_LIMB_UPPERARM_R,
- /* 0x26 */ STALFOS_LIMB_CORE_LOWER,
- /* 0x27 */ STALFOS_LIMB_LOWERBODY_ROOT,
- /* 0x28 */ STALFOS_LIMB_WAIST_ROOT,
- /* 0x29 */ STALFOS_LIMB_LEGS_ROOT,
- /* 0x2A */ STALFOS_LIMB_LEG_L_ROOT,
- /* 0x2B */ STALFOS_LIMB_THIGH_L_ROOT,
- /* 0x2C */ STALFOS_LIMB_LOWERLEG_L_ROOT,
- /* 0x2D */ STALFOS_LIMB_ANKLE_L_ROOT,
- /* 0x2E */ STALFOS_LIMB_ANKLE_L,
- /* 0x2F */ STALFOS_LIMB_FOOT_L_ROOT,
- /* 0x30 */ STALFOS_LIMB_FOOT_L,
- /* 0x31 */ STALFOS_LIMB_LOWERLEG_L,
- /* 0x32 */ STALFOS_LIMB_THIGH_L,
- /* 0x33 */ STALFOS_LIMB_LEG_R_ROOT,
- /* 0x34 */ STALFOS_LIMB_THIGH_R_ROOT,
- /* 0x35 */ STALFOS_LIMB_LOWERLEG_R_ROOT,
- /* 0x36 */ STALFOS_LIMB_ANKLE_R_ROOT,
- /* 0x37 */ STALFOS_LIMB_ANKLE_R,
- /* 0x38 */ STALFOS_LIMB_FOOT_R_ROOT,
- /* 0x39 */ STALFOS_LIMB_FOOT_R,
- /* 0x3A */ STALFOS_LIMB_LOWERLEG_R,
- /* 0x3B */ STALFOS_LIMB_THIGH_R,
- /* 0x3C */ STALFOS_LIMB_WAIST,
- /* 0x3D */ STALFOS_LIMB_MAX
-} StalfosLimb;
-
typedef struct EnTest {
/* 0x000 */ Actor actor;
/* 0x14C */ Vec3s bodyPartsPos[10];
diff --git a/src/overlays/actors/ovl_En_Tg/z_en_tg.c b/src/overlays/actors/ovl_En_Tg/z_en_tg.c
index e0e7ef04b2..5ad2d2108b 100644
--- a/src/overlays/actors/ovl_En_Tg/z_en_tg.c
+++ b/src/overlays/actors/ovl_En_Tg/z_en_tg.c
@@ -33,8 +33,8 @@ static ColliderCylinderInit sCylinderInit = {
},
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0x00000000, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0x00000000, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_NONE,
OCELEM_ON,
diff --git a/src/overlays/actors/ovl_En_Tite/z_en_tite.c b/src/overlays/actors/ovl_En_Tite/z_en_tite.c
index 1f45f2541b..08fad96d3c 100644
--- a/src/overlays/actors/ovl_En_Tite/z_en_tite.c
+++ b/src/overlays/actors/ovl_En_Tite/z_en_tite.c
@@ -9,6 +9,7 @@
#include "overlays/effects/ovl_Effect_Ss_Dead_Sound/z_eff_ss_dead_sound.h"
#include "libc64/qrand.h"
+#include "array_count.h"
#include "gfx.h"
#include "gfx_setupdl.h"
#include "ichain.h"
@@ -102,12 +103,12 @@ ActorProfile En_Tite_Profile = {
/**/ EnTite_Draw,
};
-static ColliderJntSphElementInit sJntSphElementsInit[1] = {
+static ColliderJntSphElementInit sJntSphElementsInit[] = {
{
{
ELEM_MATERIAL_UNK0,
- { 0xFFCFFFFF, 0x00, 0x08 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x08 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON | ACELEM_HOOKABLE,
OCELEM_ON,
@@ -125,7 +126,7 @@ static ColliderJntSphInit sJntSphInit = {
OC2_TYPE_1,
COLSHAPE_JNTSPH,
},
- 1,
+ ARRAY_COUNT(sJntSphElementsInit),
sJntSphElementsInit,
};
diff --git a/src/overlays/actors/ovl_En_Tk/z_en_tk.c b/src/overlays/actors/ovl_En_Tk/z_en_tk.c
index a802541986..4d234504e8 100644
--- a/src/overlays/actors/ovl_En_Tk/z_en_tk.c
+++ b/src/overlays/actors/ovl_En_Tk/z_en_tk.c
@@ -163,8 +163,8 @@ static ColliderCylinderInit sCylinderInit = {
},
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0x00000000, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0x00000000, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_NONE,
OCELEM_ON,
@@ -640,8 +640,7 @@ void EnTk_Dig(EnTk* this, PlayState* play) {
Actor_PlaySfx(&this->actor, NA_SE_SY_ERROR);
} else if (this->currentReward == 4) {
/* Heart piece */
- Audio_PlaySfxGeneral(NA_SE_SY_CORRECT_CHIME, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_CORRECT_CHIME);
} else {
/* Rupee */
Actor_PlaySfx(&this->actor, NA_SE_SY_TRE_BOX_APPEAR);
diff --git a/src/overlays/actors/ovl_En_Torch2/z_en_torch2.c b/src/overlays/actors/ovl_En_Torch2/z_en_torch2.c
index 3f10462ead..9d54250bcd 100644
--- a/src/overlays/actors/ovl_En_Torch2/z_en_torch2.c
+++ b/src/overlays/actors/ovl_En_Torch2/z_en_torch2.c
@@ -25,6 +25,8 @@
#include "assets/objects/object_torch2/object_torch2.h"
+#pragma increment_block_number "ique-cn:128"
+
#define FLAGS \
(ACTOR_FLAG_ATTENTION_ENABLED | ACTOR_FLAG_HOSTILE | ACTOR_FLAG_UPDATE_CULLING_DISABLED | \
ACTOR_FLAG_DRAW_CULLING_DISABLED)
diff --git a/src/overlays/actors/ovl_En_Toryo/z_en_toryo.c b/src/overlays/actors/ovl_En_Toryo/z_en_toryo.c
index 361ef77182..54526030e4 100644
--- a/src/overlays/actors/ovl_En_Toryo/z_en_toryo.c
+++ b/src/overlays/actors/ovl_En_Toryo/z_en_toryo.c
@@ -52,8 +52,8 @@ static ColliderCylinderInit sCylinderInit = {
},
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0x00000000, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0x00000000, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_NONE,
OCELEM_ON,
diff --git a/src/overlays/actors/ovl_En_Tp/z_en_tp.c b/src/overlays/actors/ovl_En_Tp/z_en_tp.c
index f197510c55..ef62bfb826 100644
--- a/src/overlays/actors/ovl_En_Tp/z_en_tp.c
+++ b/src/overlays/actors/ovl_En_Tp/z_en_tp.c
@@ -7,6 +7,7 @@
#include "z_en_tp.h"
#include "libc64/qrand.h"
+#include "array_count.h"
#include "gfx.h"
#include "gfx_setupdl.h"
#include "ichain.h"
@@ -68,12 +69,12 @@ ActorProfile En_Tp_Profile = {
/**/ EnTp_Draw,
};
-static ColliderJntSphElementInit sJntSphElementsInit[1] = {
+static ColliderJntSphElementInit sJntSphElementsInit[] = {
{
{
ELEM_MATERIAL_UNK0,
- { 0xFFCFFFFF, 0x03, 0x08 },
- { 0xFFCFFFFF, 0x01, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_ELECTRIC, 0x08 },
+ { 0xFFCFFFFF, HIT_BACKLASH_ELECTRIC, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_NONE,
@@ -91,7 +92,7 @@ static ColliderJntSphInit sJntSphInit = {
OC2_TYPE_1,
COLSHAPE_JNTSPH,
},
- 1,
+ ARRAY_COUNT(sJntSphElementsInit),
sJntSphElementsInit,
};
@@ -261,8 +262,7 @@ void EnTp_Head_ApproachPlayer(EnTp* this, PlayState* play) {
Player* player = GET_PLAYER(play);
Math_SmoothStepToF(&this->actor.world.pos.y, player->actor.world.pos.y + 30.0f, 1.0f, 0.5f, 0.0f);
- Audio_PlaySfxGeneral(NA_SE_EN_TAIL_FLY - SFX_FLAG, &this->actor.projectedPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&this->actor.projectedPos, NA_SE_EN_TAIL_FLY - SFX_FLAG);
if (this->collider.base.atFlags & AT_HIT) {
this->collider.base.atFlags &= ~AT_HIT;
@@ -403,8 +403,7 @@ void EnTp_Head_TakeOff(EnTp* this, PlayState* play) {
Math_SmoothStepToF(&this->actor.speed, 2.5f, 0.1f, 0.2f, 0.0f);
Math_SmoothStepToF(&this->actor.world.pos.y, player->actor.world.pos.y + 85.0f + this->horizontalVariation, 1.0f,
this->actor.speed * 0.25f, 0.0f);
- Audio_PlaySfxGeneral(NA_SE_EN_TAIL_FLY - SFX_FLAG, &this->actor.projectedPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&this->actor.projectedPos, NA_SE_EN_TAIL_FLY - SFX_FLAG);
if (this->collider.base.atFlags & AT_HIT) {
this->collider.base.atFlags &= ~AT_HIT;
@@ -501,8 +500,7 @@ void EnTp_Head_Wait(EnTp* this, PlayState* play) {
this->actor.shape.rot.y = this->actor.world.rot.y;
if (this->actor.world.pos.y != this->actor.home.pos.y) {
- Audio_PlaySfxGeneral(NA_SE_EN_TAIL_FLY - SFX_FLAG, &this->actor.projectedPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&this->actor.projectedPos, NA_SE_EN_TAIL_FLY - SFX_FLAG);
}
}
@@ -571,8 +569,7 @@ void EnTp_Head_BurrowReturnHome(EnTp* this, PlayState* play) {
}
if (this->actor.world.pos.y != this->actor.home.pos.y) {
- Audio_PlaySfxGeneral(NA_SE_EN_TAIL_FLY - SFX_FLAG, &this->actor.projectedPos, 4,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&this->actor.projectedPos, NA_SE_EN_TAIL_FLY - SFX_FLAG);
}
if (closeToFloor && ((play->gameplayFrames & 1) != 0)) {
@@ -721,8 +718,7 @@ void EnTp_Update(Actor* thisx, PlayState* play) {
this->actor.shape.rot.z += 0x800;
if (this->actor.shape.rot.z == 0) {
- Audio_PlaySfxGeneral(NA_SE_EN_TAIL_CRY, &this->actor.projectedPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&this->actor.projectedPos, NA_SE_EN_TAIL_CRY);
}
if (this->actionIndex >= TAILPASARAN_ACTION_TAIL_FOLLOWHEAD) {
diff --git a/src/overlays/actors/ovl_En_Tr/z_en_tr.c b/src/overlays/actors/ovl_En_Tr/z_en_tr.c
index 84b2dd4cf6..4ec4839c66 100644
--- a/src/overlays/actors/ovl_En_Tr/z_en_tr.c
+++ b/src/overlays/actors/ovl_En_Tr/z_en_tr.c
@@ -137,8 +137,7 @@ void EnTr_CrySpellcast(EnTr* this, PlayState* play) {
if (this->timer == 11) {
// Both cry in the title screen cutscene, but only Kotake in the in-game cutscene
if ((this->actor.params != TR_KOUME) || (gSaveContext.sceneLayer == 6)) {
- Audio_PlaySfxGeneral(NA_SE_EN_TWINROBA_SHOOT_VOICE, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_EN_TWINROBA_SHOOT_VOICE);
}
}
diff --git a/src/overlays/actors/ovl_En_Trap/z_en_trap.c b/src/overlays/actors/ovl_En_Trap/z_en_trap.c
index 22b44abdfc..fc2a850392 100644
--- a/src/overlays/actors/ovl_En_Trap/z_en_trap.c
+++ b/src/overlays/actors/ovl_En_Trap/z_en_trap.c
@@ -61,7 +61,14 @@ static ColliderCylinderInit sCylinderInit = {
OC2_TYPE_1,
COLSHAPE_CYLINDER,
},
- { ELEM_MATERIAL_UNK0, { 0x00000000, 0x00, 0x00 }, { 0x00001000, 0x00, 0x00 }, ATELEM_NONE, ACELEM_ON, OCELEM_ON },
+ {
+ ELEM_MATERIAL_UNK0,
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0x00001000, HIT_BACKLASH_NONE, 0x00 },
+ ATELEM_NONE,
+ ACELEM_ON,
+ OCELEM_ON,
+ },
{ 30, 20, 0, { 0, 0, 0 } },
};
diff --git a/src/overlays/actors/ovl_En_Tubo_Trap/z_en_tubo_trap.c b/src/overlays/actors/ovl_En_Tubo_Trap/z_en_tubo_trap.c
index b7afe53f41..72a4012a4a 100644
--- a/src/overlays/actors/ovl_En_Tubo_Trap/z_en_tubo_trap.c
+++ b/src/overlays/actors/ovl_En_Tubo_Trap/z_en_tubo_trap.c
@@ -44,13 +44,13 @@ static ColliderCylinderInit sCylinderInit = {
},
{
ELEM_MATERIAL_UNK0,
- { 0xFFCFFFFF, 0x00, 0x04 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x04 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_NONE,
},
- { 9, 23, 0, { 0 } },
+ { 9, 23, 0, { 0, 0, 0 } },
};
ActorProfile En_Tubo_Trap_Profile = {
diff --git a/src/overlays/actors/ovl_En_Vali/z_en_vali.c b/src/overlays/actors/ovl_En_Vali/z_en_vali.c
index 643cae1b35..b69184006f 100644
--- a/src/overlays/actors/ovl_En_Vali/z_en_vali.c
+++ b/src/overlays/actors/ovl_En_Vali/z_en_vali.c
@@ -66,8 +66,8 @@ static ColliderQuadInit sQuadInit = {
},
{
ELEM_MATERIAL_UNK0,
- { 0xFFCFFFFF, 0x07, 0x08 },
- { 0x00000000, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_7, 0x08 },
+ { 0x00000000, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NONE,
ACELEM_NONE,
OCELEM_NONE,
@@ -86,8 +86,8 @@ static ColliderCylinderInit sCylinderInit = {
},
{
ELEM_MATERIAL_UNK0,
- { 0xFFCFFFFF, 0x07, 0x08 },
- { 0xFFCFFFFF, 0x01, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_7, 0x08 },
+ { 0xFFCFFFFF, HIT_BACKLASH_ELECTRIC, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
@@ -156,7 +156,7 @@ void EnVali_Init(Actor* thisx, PlayState* play) {
ActorShape_Init(&this->actor.shape, 0.0f, ActorShadow_DrawCircle, 27.0f);
this->actor.shape.shadowAlpha = 155;
SkelAnime_Init(play, &this->skelAnime, &gBariSkel, &gBariLurkingAnim, this->jointTable, this->morphTable,
- EN_VALI_LIMB_MAX);
+ VALI_LIMB_MAX);
Collider_InitQuad(play, &this->leftArmCollider);
Collider_SetQuad(play, &this->leftArmCollider, &this->actor, &sQuadInit);
@@ -272,7 +272,7 @@ void EnVali_SetupStunned(EnVali* this) {
this->timer = 80;
this->actor.velocity.y = 0.0f;
Actor_SetColorFilter(&this->actor, COLORFILTER_COLORFLAG_BLUE, 255, COLORFILTER_BUFFLAG_XLU, 80);
- this->bodyCollider.elem.acDmgInfo.effect = 0;
+ this->bodyCollider.elem.acDmgInfo.hitBacklash = HIT_BACKLASH_NONE;
Actor_PlaySfx(&this->actor, NA_SE_EN_GOMA_JR_FREEZE);
this->actor.velocity.y = 1.0f;
this->actionFunc = EnVali_Stunned;
@@ -462,7 +462,7 @@ void EnVali_Stunned(EnVali* this, PlayState* play) {
}
if (this->timer == 0) {
- this->bodyCollider.elem.acDmgInfo.effect = 1; // Shock?
+ this->bodyCollider.elem.acDmgInfo.hitBacklash = HIT_BACKLASH_ELECTRIC;
EnVali_SetupFloatIdle(this);
}
}
@@ -689,14 +689,14 @@ s32 EnVali_OverrideLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3f*
EnVali* this = (EnVali*)thisx;
f32 curFrame;
- if ((limbIndex == EN_VALI_LIMB_NUCLEUS) || (limbIndex == EN_VALI_LIMB_OUTER_HOOD) ||
- (limbIndex == EN_VALI_LIMB_INNER_HOOD)) {
+ if ((limbIndex == VALI_LIMB_NUCLEUS) || (limbIndex == VALI_LIMB_OUTER_HOOD) ||
+ (limbIndex == VALI_LIMB_INNER_HOOD)) {
*dList = NULL;
return false;
} else {
curFrame = this->skelAnime.curFrame;
- if ((limbIndex == EN_VALI_LIMB_LEFT_ARM_BASE) || (limbIndex == EN_VALI_LIMB_RIGHT_ARM_BASE)) {
+ if ((limbIndex == VALI_LIMB_LEFT_ARM_BASE) || (limbIndex == VALI_LIMB_RIGHT_ARM_BASE)) {
if (EnVali_SetArmLength(this, curFrame)) {
Matrix_Scale(this->armScale, 1.0f, 1.0f, MTXMODE_APPLY);
}
@@ -714,11 +714,11 @@ void EnVali_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot
EnVali* this = (EnVali*)thisx;
if (this->actionFunc == EnVali_FloatIdle) {
- if ((limbIndex == EN_VALI_LIMB_LEFT_FOREARM_BASE) || (limbIndex == EN_VALI_LIMB_RIGHT_FOREARM_BASE)) {
+ if ((limbIndex == VALI_LIMB_LEFT_FOREARM_BASE) || (limbIndex == VALI_LIMB_RIGHT_FOREARM_BASE)) {
Matrix_MultVec3f(&D_80B28970, &sp3C);
Matrix_MultVec3f(&D_80B2897C, &sp30);
- if (limbIndex == EN_VALI_LIMB_LEFT_FOREARM_BASE) {
+ if (limbIndex == VALI_LIMB_LEFT_FOREARM_BASE) {
Collider_SetQuadVertices(&this->leftArmCollider, &sp30, &sp3C, &this->leftArmCollider.dim.quad[0],
&this->leftArmCollider.dim.quad[1]);
} else {
diff --git a/src/overlays/actors/ovl_En_Vali/z_en_vali.h b/src/overlays/actors/ovl_En_Vali/z_en_vali.h
index 66ac96d3d1..3659882f61 100644
--- a/src/overlays/actors/ovl_En_Vali/z_en_vali.h
+++ b/src/overlays/actors/ovl_En_Vali/z_en_vali.h
@@ -3,44 +3,12 @@
#include "ultra64.h"
#include "actor.h"
+#include "assets/objects/object_vali/object_vali.h"
struct EnVali;
typedef void (*EnValiActionFunc)(struct EnVali*, struct PlayState*);
-typedef enum EnValiLimb {
- /* 0x00 */ EN_VALI_LIMB_NONE,
- /* 0x01 */ EN_VALI_LIMB_NUCLEUS_BASE,
- /* 0x02 */ EN_VALI_LIMB_NUCLEUS,
- /* 0x03 */ EN_VALI_LIMB_RIGHT_MANDIBLE_BASE_BASE,
- /* 0x04 */ EN_VALI_LIMB_RIGHT_MANDIBLE_BASE,
- /* 0x05 */ EN_VALI_LIMB_RIGHT_MANDIBLE,
- /* 0x06 */ EN_VALI_LIMB_LEFT_MANDIBLE_BASE_BASE,
- /* 0x07 */ EN_VALI_LIMB_LEFT_MANDIBLE_BASE,
- /* 0x08 */ EN_VALI_LIMB_LEFT_MANDIBLE,
- /* 0x09 */ EN_VALI_LIMB_LEFT_ARM_BASE,
- /* 0x0A */ EN_VALI_LIMB_LEFT_UPPER_ARM_BASE,
- /* 0x0B */ EN_VALI_LIMB_LEFT_FOREARM_BASE,
- /* 0x0C */ EN_VALI_LIMB_LEFT_CLAW_BODY_BASE,
- /* 0x0D */ EN_VALI_LIMB_LEFT_CLAW_TIP_BASE,
- /* 0x0E */ EN_VALI_LIMB_LEFT_CLAW_TIP,
- /* 0x0F */ EN_VALI_LIMB_LEFT_CLAW_BODY,
- /* 0x10 */ EN_VALI_LIMB_LEFT_FOREARM,
- /* 0x11 */ EN_VALI_LIMB_LEFT_UPPER_ARM,
- /* 0x12 */ EN_VALI_LIMB_RIGHT_ARM_BASE,
- /* 0x13 */ EN_VALI_LIMB_RIGHT_UPPER_ARM_BASE,
- /* 0x14 */ EN_VALI_LIMB_RIGHT_FOREARM_BASE,
- /* 0x15 */ EN_VALI_LIMB_RIGHT_CLAW_BODY_BASE,
- /* 0x16 */ EN_VALI_LIMB_RIGHT_CLAW_TIP_BASE,
- /* 0x17 */ EN_VALI_LIMB_RIGHT_CLAW_TIP,
- /* 0x18 */ EN_VALI_LIMB_RIGHT_CLAW_BODY,
- /* 0x19 */ EN_VALI_LIMB_RIGHT_FOREARM,
- /* 0x1A */ EN_VALI_LIMB_RIGHT_UPPER_ARM,
- /* 0x1B */ EN_VALI_LIMB_INNER_HOOD,
- /* 0x1C */ EN_VALI_LIMB_OUTER_HOOD,
- /* 0x1D */ EN_VALI_LIMB_MAX
-} EnValiLimb;
-
typedef struct EnVali {
/* 0x0000 */ Actor actor;
/* 0x014C */ SkelAnime skelAnime;
@@ -48,8 +16,8 @@ typedef struct EnVali {
/* 0x0194 */ u8 lightningTimer;
/* 0x0195 */ u8 slingshotReactionTimer;
/* 0x0196 */ s16 timer;
- /* 0x0198 */ Vec3s jointTable[EN_VALI_LIMB_MAX];
- /* 0x0246 */ Vec3s morphTable[EN_VALI_LIMB_MAX];
+ /* 0x0198 */ Vec3s jointTable[VALI_LIMB_MAX];
+ /* 0x0246 */ Vec3s morphTable[VALI_LIMB_MAX];
/* 0x02F4 */ f32 armScale;
/* 0x02F8 */ f32 floatHomeHeight; // Used as a centre for floating when visible (home is used for the lurk height)
/* 0x02FC */ ColliderQuad leftArmCollider;
diff --git a/src/overlays/actors/ovl_En_Vb_Ball/z_en_vb_ball.c b/src/overlays/actors/ovl_En_Vb_Ball/z_en_vb_ball.c
index 826d7f0ebe..d67c549234 100644
--- a/src/overlays/actors/ovl_En_Vb_Ball/z_en_vb_ball.c
+++ b/src/overlays/actors/ovl_En_Vb_Ball/z_en_vb_ball.c
@@ -51,8 +51,8 @@ static ColliderCylinderInit sCylinderInit = {
},
{
ELEM_MATERIAL_UNK6,
- { 0x00100700, 0x00, 0x20 },
- { 0x00100700, 0x00, 0x00 },
+ { 0x00100700, HIT_SPECIAL_EFFECT_NONE, 0x20 },
+ { 0x00100700, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
@@ -147,8 +147,7 @@ void EnVbBall_UpdateBones(EnVbBall* this, PlayState* play) {
this->actor.velocity.z = cosf(angle) * 10.0f;
this->actor.velocity.y *= -0.5f;
if (PARAMS_GET_U(this->actor.params, 0, 1)) {
- Audio_PlaySfxGeneral(NA_SE_EN_VALVAISA_LAND, &this->actor.projectedPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&this->actor.projectedPos, NA_SE_EN_VALVAISA_LAND);
}
for (i = 0; i < 10; i++) {
Vec3f dustVel = { 0.0f, 0.0f, 0.0f };
@@ -230,9 +229,7 @@ void EnVbBall_Update(Actor* thisx, PlayState* play2) {
this->actor.world.rot.z * 0.5f, this->actor.params + 1);
if (newActor != NULL) {
if ((i == 0) && (this->actor.params == 100)) {
- Audio_PlaySfxGeneral(NA_SE_EN_VALVAISA_ROCK, &newActor->actor.projectedPos, 4,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&newActor->actor.projectedPos, NA_SE_EN_VALVAISA_ROCK);
}
newActor->actor.parent = this->actor.parent;
newActor->actor.velocity = spawnOffset;
diff --git a/src/overlays/actors/ovl_En_Viewer/z_en_viewer.c b/src/overlays/actors/ovl_En_Viewer/z_en_viewer.c
index ce7ea7e2c9..6dffc30ecd 100644
--- a/src/overlays/actors/ovl_En_Viewer/z_en_viewer.c
+++ b/src/overlays/actors/ovl_En_Viewer/z_en_viewer.c
@@ -246,8 +246,7 @@ void EnViewer_UpdateImpl(EnViewer* this, PlayState* play) {
case 380:
case 409:
case 438:
- Audio_PlaySfxGeneral(NA_SE_SY_DEMO_CUT, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_DEMO_CUT);
break;
}
}
@@ -264,8 +263,7 @@ void EnViewer_UpdateImpl(EnViewer* this, PlayState* play) {
SEQCMD_PLAY_SEQUENCE(SEQ_PLAYER_FANFARE, 0, 0, NA_BGM_OPENING_GANON);
}
if (play->csCtx.curFrame == 960) {
- Audio_PlaySfxGeneral(NA_SE_EV_HORSE_GROAN, &this->actor.projectedPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&this->actor.projectedPos, NA_SE_EV_HORSE_GROAN);
}
} else if (type == ENVIEWER_TYPE_6_HORSE_GANONDORF) {
if (gSaveContext.sceneLayer == 5 || gSaveContext.sceneLayer == 10) {
@@ -456,8 +454,7 @@ void EnViewer_UpdateImpl(EnViewer* this, PlayState* play) {
case 0:
if ((play->csCtx.state != CS_STATE_IDLE) && (play->csCtx.actorCues[1] != NULL) &&
(play->csCtx.actorCues[1]->id == 7)) {
- Audio_PlaySfxGeneral(NA_SE_EN_GANON_LAUGH, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_EN_GANON_LAUGH);
Animation_MorphToPlayOnce(&this->skin.skelAnime, &gYoungGanondorfLaughStartAnim, -5.0f);
this->state++;
}
@@ -750,8 +747,7 @@ void EnViewer_UpdatePosition(EnViewer* this, PlayState* play) {
if (type == ENVIEWER_TYPE_0_HORSE_ZELDA) {
if (!sHorseSfxPlayed) {
sHorseSfxPlayed = true;
- Audio_PlaySfxGeneral(NA_SE_EV_HORSE_NEIGH, &this->actor.projectedPos, 4,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&this->actor.projectedPos, NA_SE_EV_HORSE_NEIGH);
}
Actor_PlaySfx(&this->actor, NA_SE_EV_HORSE_RUN_LEVEL - SFX_FLAG);
}
@@ -800,8 +796,7 @@ void EnViewer_UpdatePosition(EnViewer* this, PlayState* play) {
}
}
if (type == ENVIEWER_TYPE_5_GANONDORF) {
- Audio_PlaySfxGeneral(NA_SE_EV_BURNING - SFX_FLAG, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_EV_BURNING - SFX_FLAG);
EnViewer_DrawFireEffects(this, play);
}
}
diff --git a/src/overlays/actors/ovl_En_Viewer/z_en_viewer.h b/src/overlays/actors/ovl_En_Viewer/z_en_viewer.h
index 1bb5780203..c23a2edba4 100644
--- a/src/overlays/actors/ovl_En_Viewer/z_en_viewer.h
+++ b/src/overlays/actors/ovl_En_Viewer/z_en_viewer.h
@@ -59,34 +59,6 @@ typedef struct EnViewerFireEffect {
/* 0x30 */ u8 state;
} EnViewerFireEffect; // size = 0x34
-typedef enum YoungGanondorfLimb {
- /* 0 */ YOUNG_GANONDORF_LIMB_NONE,
- /* 1 */ YOUNG_GANONDORF_LIMB_ROOT,
- /* 2 */ YOUNG_GANONDORF_LIMB_TORSO,
- /* 3 */ YOUNG_GANONDORF_LIMB_LEFT_UPPER_ARM,
- /* 4 */ YOUNG_GANONDORF_LIMB_LEFT_FOREARM,
- /* 5 */ YOUNG_GANONDORF_LIMB_LEFT_HAND,
- /* 6 */ YOUNG_GANONDORF_LIMB_RIGHT_UPPER_ARM,
- /* 7 */ YOUNG_GANONDORF_LIMB_RIGHT_FOREARM,
- /* 8 */ YOUNG_GANONDORF_LIMB_RIGHT_HAND,
- /* 9 */ YOUNG_GANONDORF_LIMB_JEWEL,
- /* 10 */ YOUNG_GANONDORF_LIMB_LEFT_UPPER_LIP,
- /* 11 */ YOUNG_GANONDORF_LIMB_JAW,
- /* 12 */ YOUNG_GANONDORF_LIMB_CHIN,
- /* 13 */ YOUNG_GANONDORF_LIMB_RIGHT_UPPER_LIP,
- /* 14 */ YOUNG_GANONDORF_LIMB_TEETH,
- /* 15 */ YOUNG_GANONDORF_LIMB_HEAD,
- /* 16 */ YOUNG_GANONDORF_LIMB_PELVIS,
- /* 17 */ YOUNG_GANONDORF_LIMB_LEFT_THIGH,
- /* 18 */ YOUNG_GANONDORF_LIMB_LEFT_SHIN,
- /* 19 */ YOUNG_GANONDORF_LIMB_LEFT_FOOT,
- /* 20 */ YOUNG_GANONDORF_LIMB_KNIFE,
- /* 21 */ YOUNG_GANONDORF_LIMB_RIGHT_THIGH,
- /* 22 */ YOUNG_GANONDORF_LIMB_RIGHT_SHIN,
- /* 23 */ YOUNG_GANONDORF_LIMB_RIGHT_FOOT,
- /* 24 */ YOUNG_GANONDORF_LIMB_MAX
-} YoungGanondorfLimb;
-
typedef struct EnViewer {
/* 0x0000 */ Actor actor;
/* 0x014C */ Skin skin;
diff --git a/src/overlays/actors/ovl_En_Vm/z_en_vm.c b/src/overlays/actors/ovl_En_Vm/z_en_vm.c
index 128a0af5f4..050942aac4 100644
--- a/src/overlays/actors/ovl_En_Vm/z_en_vm.c
+++ b/src/overlays/actors/ovl_En_Vm/z_en_vm.c
@@ -61,8 +61,8 @@ static ColliderCylinderInit sCylinderInit = {
},
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON,
OCELEM_ON,
@@ -81,8 +81,8 @@ static ColliderQuadInit sQuadInit1 = {
},
{
ELEM_MATERIAL_UNK0,
- { 0xFFCFFFFF, 0x00, 0x10 },
- { 0x00000000, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x10 },
+ { 0x00000000, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL | ATELEM_UNK7,
ACELEM_NONE,
OCELEM_NONE,
@@ -101,8 +101,8 @@ static ColliderQuadInit sQuadInit2 = {
},
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON,
OCELEM_NONE,
diff --git a/src/overlays/actors/ovl_En_Wallmas/z_en_wallmas.c b/src/overlays/actors/ovl_En_Wallmas/z_en_wallmas.c
index 7373f441a6..0192c2cd28 100644
--- a/src/overlays/actors/ovl_En_Wallmas/z_en_wallmas.c
+++ b/src/overlays/actors/ovl_En_Wallmas/z_en_wallmas.c
@@ -71,13 +71,13 @@ static ColliderCylinderInit sCylinderInit = {
},
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON,
OCELEM_ON,
},
- { 30, 40, 0, { 0 } },
+ { 30, 40, 0, { 0, 0, 0 } },
};
static CollisionCheckInfoInit sColChkInfoInit = { 4, 30, 40, 150 };
diff --git a/src/overlays/actors/ovl_En_Weiyer/z_en_weiyer.c b/src/overlays/actors/ovl_En_Weiyer/z_en_weiyer.c
index 35e232c69b..919eb6bd75 100644
--- a/src/overlays/actors/ovl_En_Weiyer/z_en_weiyer.c
+++ b/src/overlays/actors/ovl_En_Weiyer/z_en_weiyer.c
@@ -61,8 +61,8 @@ static ColliderCylinderInit sCylinderInit = {
},
{
ELEM_MATERIAL_UNK0,
- { 0xFFCFFFFF, 0x00, 0x08 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x08 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_HARD,
ACELEM_ON,
OCELEM_ON,
diff --git a/src/overlays/actors/ovl_En_Wf/z_en_wf.c b/src/overlays/actors/ovl_En_Wf/z_en_wf.c
index c651e4ff4a..aed59d0990 100644
--- a/src/overlays/actors/ovl_En_Wf/z_en_wf.c
+++ b/src/overlays/actors/ovl_En_Wf/z_en_wf.c
@@ -63,12 +63,12 @@ void EnWf_SetupDie(EnWf* this);
void EnWf_Die(EnWf* this, PlayState* play);
s32 EnWf_DodgeRanged(PlayState* play, EnWf* this);
-static ColliderJntSphElementInit sJntSphElementsInit[4] = {
+static ColliderJntSphElementInit sJntSphElementsInit[] = {
{
{
ELEM_MATERIAL_UNK0,
- { 0xFFCFFFFF, 0x00, 0x04 },
- { 0x00000000, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x04 },
+ { 0x00000000, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_NONE,
OCELEM_NONE,
@@ -78,8 +78,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[4] = {
{
{
ELEM_MATERIAL_UNK0,
- { 0xFFCFFFFF, 0x00, 0x04 },
- { 0x00000000, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x04 },
+ { 0x00000000, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_NONE,
OCELEM_NONE,
@@ -89,8 +89,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[4] = {
{
{
ELEM_MATERIAL_UNK1,
- { 0x00000000, 0x00, 0x00 },
- { 0xFFC1FFFF, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0xFFC1FFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON | ACELEM_HOOKABLE,
OCELEM_ON,
@@ -100,8 +100,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[4] = {
{
{
ELEM_MATERIAL_UNK1,
- { 0x00000000, 0x00, 0x00 },
- { 0xFFC1FFFF, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0xFFC1FFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON | ACELEM_HOOKABLE,
OCELEM_ON,
@@ -134,8 +134,8 @@ static ColliderCylinderInit sBodyCylinderInit = {
},
{
ELEM_MATERIAL_UNK1,
- { 0x00000000, 0x00, 0x00 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON,
OCELEM_NONE,
@@ -154,8 +154,8 @@ static ColliderCylinderInit sTailCylinderInit = {
},
{
ELEM_MATERIAL_UNK1,
- { 0x00000000, 0x00, 0x00 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON,
OCELEM_NONE,
diff --git a/src/overlays/actors/ovl_En_Wonder_Item/z_en_wonder_item.c b/src/overlays/actors/ovl_En_Wonder_Item/z_en_wonder_item.c
index 7cfe974b8a..a8a840d82d 100644
--- a/src/overlays/actors/ovl_En_Wonder_Item/z_en_wonder_item.c
+++ b/src/overlays/actors/ovl_En_Wonder_Item/z_en_wonder_item.c
@@ -42,8 +42,8 @@ static ColliderCylinderInit sCylinderInit = {
},
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON,
OCELEM_NONE,
diff --git a/src/overlays/actors/ovl_En_Wood02/z_en_wood02.c b/src/overlays/actors/ovl_En_Wood02/z_en_wood02.c
index 2d351c9184..bb1acebc24 100644
--- a/src/overlays/actors/ovl_En_Wood02/z_en_wood02.c
+++ b/src/overlays/actors/ovl_En_Wood02/z_en_wood02.c
@@ -71,8 +71,8 @@ static ColliderCylinderInit sCylinderInit = {
},
{
ELEM_MATERIAL_UNK5,
- { 0x00000000, 0x00, 0x00 },
- { 0x0FC0074A, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0x0FC0074A, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON,
OCELEM_ON,
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 60a247490b..e28d8f584f 100644
--- a/src/overlays/actors/ovl_En_Xc/z_en_xc.c
+++ b/src/overlays/actors/ovl_En_Xc/z_en_xc.c
@@ -60,8 +60,8 @@ static ColliderCylinderInitType1 sCylinderInit = {
},
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0x00000000, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0x00000000, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_NONE,
OCELEM_ON,
diff --git a/src/overlays/actors/ovl_En_Yabusame_Mark/z_en_yabusame_mark.c b/src/overlays/actors/ovl_En_Yabusame_Mark/z_en_yabusame_mark.c
index ee1d8b8161..528fd9c0c7 100644
--- a/src/overlays/actors/ovl_En_Yabusame_Mark/z_en_yabusame_mark.c
+++ b/src/overlays/actors/ovl_En_Yabusame_Mark/z_en_yabusame_mark.c
@@ -37,9 +37,9 @@ static ColliderQuadInit sQuadInit = {
},
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0x0001F824, 0x00, 0x00 },
- ATELEM_NONE | ATELEM_SFX_NORMAL,
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0x0001F824, HIT_BACKLASH_NONE, 0x00 },
+ ATELEM_NONE,
ACELEM_ON,
OCELEM_NONE,
},
diff --git a/src/overlays/actors/ovl_En_Yukabyun/z_en_yukabyun.c b/src/overlays/actors/ovl_En_Yukabyun/z_en_yukabyun.c
index 772eceb114..ab9dc51d68 100644
--- a/src/overlays/actors/ovl_En_Yukabyun/z_en_yukabyun.c
+++ b/src/overlays/actors/ovl_En_Yukabyun/z_en_yukabyun.c
@@ -52,8 +52,8 @@ static ColliderCylinderInit sCylinderInit = {
},
{
ELEM_MATERIAL_UNK0,
- { 0xFFCFFFFF, 0x00, 0x04 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x04 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_HARD,
ACELEM_ON,
OCELEM_ON,
diff --git a/src/overlays/actors/ovl_En_Zf/z_en_zf.c b/src/overlays/actors/ovl_En_Zf/z_en_zf.c
index 7fa645e64a..9481a81ed8 100644
--- a/src/overlays/actors/ovl_En_Zf/z_en_zf.c
+++ b/src/overlays/actors/ovl_En_Zf/z_en_zf.c
@@ -140,8 +140,8 @@ static ColliderCylinderInit sBodyCylinderInit = {
},
{
ELEM_MATERIAL_UNK1,
- { 0x00000000, 0x00, 0x00 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON,
OCELEM_ON,
@@ -160,8 +160,8 @@ static ColliderQuadInit sSwordQuadInit = {
},
{
ELEM_MATERIAL_UNK0,
- { 0xFFCFFFFF, 0x00, 0x08 },
- { 0x00000000, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x08 },
+ { 0x00000000, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL | ATELEM_UNK7,
ACELEM_ON,
OCELEM_NONE,
diff --git a/src/overlays/actors/ovl_En_Zl1/z_en_zl1.c b/src/overlays/actors/ovl_En_Zl1/z_en_zl1.c
index 8de9163341..a1cca466a6 100644
--- a/src/overlays/actors/ovl_En_Zl1/z_en_zl1.c
+++ b/src/overlays/actors/ovl_En_Zl1/z_en_zl1.c
@@ -64,8 +64,8 @@ static ColliderCylinderInit sCylinderInit = {
},
{
ELEM_MATERIAL_UNK1,
- { 0x00000000, 0x00, 0x00 },
- { 0x00000000, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0x00000000, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_NONE,
OCELEM_ON,
diff --git a/src/overlays/actors/ovl_En_Zl3/z_en_zl3.c b/src/overlays/actors/ovl_En_Zl3/z_en_zl3.c
index b9c396dfcc..a071640323 100644
--- a/src/overlays/actors/ovl_En_Zl3/z_en_zl3.c
+++ b/src/overlays/actors/ovl_En_Zl3/z_en_zl3.c
@@ -53,8 +53,8 @@ static ColliderCylinderInitType1 sCylinderInit = {
},
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0x00000000, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0x00000000, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_NONE,
OCELEM_ON,
@@ -2622,8 +2622,7 @@ void func_80B59828(EnZl3* this, PlayState* play) {
void func_80B59A80(EnZl3* this, PlayState* play) {
if (func_80B59768(this, play)) {
- Audio_PlaySfxGeneral(NA_SE_OC_REVENGE, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_OC_REVENGE);
}
}
diff --git a/src/overlays/actors/ovl_En_Zl4/z_en_zl4.c b/src/overlays/actors/ovl_En_Zl4/z_en_zl4.c
index be729698f4..6f55b607ff 100644
--- a/src/overlays/actors/ovl_En_Zl4/z_en_zl4.c
+++ b/src/overlays/actors/ovl_En_Zl4/z_en_zl4.c
@@ -98,8 +98,8 @@ static ColliderCylinderInit sCylinderInit = {
},
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0x00000000, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0x00000000, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_NONE,
OCELEM_ON,
@@ -796,7 +796,7 @@ s32 EnZl4_CsAskName(EnZl4* this, PlayState* play) {
if (this->talkTimer2 == 130) {
play->msgCtx.msgMode = MSGMODE_PAUSED;
play->nextEntranceIndex = ENTR_CUTSCENE_MAP_0;
- gSaveContext.nextCutsceneIndex = 0xFFF7;
+ gSaveContext.nextCutsceneIndex = CS_INDEX_7;
play->transitionTrigger = TRANS_TRIGGER_START;
play->transitionType = TRANS_TYPE_FADE_WHITE;
}
diff --git a/src/overlays/actors/ovl_En_Zo/z_en_zo.c b/src/overlays/actors/ovl_En_Zo/z_en_zo.c
index 85f0f300e9..f8b738c295 100644
--- a/src/overlays/actors/ovl_En_Zo/z_en_zo.c
+++ b/src/overlays/actors/ovl_En_Zo/z_en_zo.c
@@ -299,8 +299,8 @@ static ColliderCylinderInit sCylinderInit = {
},
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0x00000000, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0x00000000, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_NONE,
OCELEM_ON,
diff --git a/src/overlays/actors/ovl_Fishing/z_fishing.c b/src/overlays/actors/ovl_Fishing/z_fishing.c
index 9f94310a35..52e636c77d 100644
--- a/src/overlays/actors/ovl_Fishing/z_fishing.c
+++ b/src/overlays/actors/ovl_Fishing/z_fishing.c
@@ -9,6 +9,7 @@
#include "overlays/actors/ovl_En_Kanban/z_en_kanban.h"
#include "assets/objects/object_fish/object_fish.h"
#include "libc64/math64.h"
+#include "array_count.h"
#include "attributes.h"
#include "controller.h"
#include "gfx.h"
@@ -37,8 +38,8 @@
#include "cic6105.h"
#endif
-#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 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:224 gc-eu-mq:224 gc-jp:224 gc-jp-ce:224 gc-jp-mq:224 gc-us:224 gc-us-mq:224" \
+ "ntsc-1.0:128 ntsc-1.1:128 ntsc-1.2:128 pal-1.0:128 pal-1.1:128"
#define FLAGS ACTOR_FLAG_UPDATE_CULLING_DISABLED
@@ -224,12 +225,12 @@ static u8 sFishingPlayerCinematicState = 0;
static u8 sFishingCinematicTimer = 0;
static u8 sSinkingLureFound = false;
-static ColliderJntSphElementInit sJntSphElementsInit[12] = {
+static ColliderJntSphElementInit sJntSphElementsInit[] = {
{
{
ELEM_MATERIAL_UNK0,
- { 0xFFCFFFFF, 0x00, 0x10 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x10 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_NONE,
OCELEM_ON,
@@ -239,8 +240,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[12] = {
{
{
ELEM_MATERIAL_UNK0,
- { 0xFFCFFFFF, 0x00, 0x10 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x10 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_NONE,
OCELEM_ON,
@@ -250,8 +251,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[12] = {
{
{
ELEM_MATERIAL_UNK0,
- { 0xFFCFFFFF, 0x00, 0x10 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x10 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_NONE,
OCELEM_ON,
@@ -261,8 +262,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[12] = {
{
{
ELEM_MATERIAL_UNK0,
- { 0xFFCFFFFF, 0x00, 0x10 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x10 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_NONE,
OCELEM_ON,
@@ -272,8 +273,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[12] = {
{
{
ELEM_MATERIAL_UNK0,
- { 0xFFCFFFFF, 0x00, 0x10 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x10 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_NONE,
OCELEM_ON,
@@ -283,8 +284,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[12] = {
{
{
ELEM_MATERIAL_UNK0,
- { 0xFFCFFFFF, 0x00, 0x10 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x10 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_NONE,
OCELEM_ON,
@@ -294,8 +295,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[12] = {
{
{
ELEM_MATERIAL_UNK0,
- { 0xFFCFFFFF, 0x00, 0x10 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x10 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_NONE,
OCELEM_ON,
@@ -305,8 +306,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[12] = {
{
{
ELEM_MATERIAL_UNK0,
- { 0xFFCFFFFF, 0x00, 0x10 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x10 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_NONE,
OCELEM_ON,
@@ -316,8 +317,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[12] = {
{
{
ELEM_MATERIAL_UNK0,
- { 0xFFCFFFFF, 0x00, 0x10 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x10 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_NONE,
OCELEM_ON,
@@ -327,8 +328,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[12] = {
{
{
ELEM_MATERIAL_UNK0,
- { 0xFFCFFFFF, 0x00, 0x10 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x10 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_NONE,
OCELEM_ON,
@@ -338,8 +339,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[12] = {
{
{
ELEM_MATERIAL_UNK0,
- { 0xFFCFFFFF, 0x00, 0x10 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x10 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_NONE,
OCELEM_ON,
@@ -349,8 +350,8 @@ static ColliderJntSphElementInit sJntSphElementsInit[12] = {
{
{
ELEM_MATERIAL_UNK0,
- { 0xFFCFFFFF, 0x00, 0x10 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_NONE, 0x10 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_NONE,
OCELEM_ON,
@@ -363,12 +364,12 @@ static ColliderJntSphInit sJntSphInit = {
{
COL_MATERIAL_NONE,
AT_TYPE_ENEMY,
- AC_TYPE_PLAYER,
+ AC_NONE | AC_TYPE_PLAYER,
OC1_ON | OC1_TYPE_PLAYER,
OC2_TYPE_1,
COLSHAPE_JNTSPH,
},
- 12,
+ ARRAY_COUNT(sJntSphElementsInit),
sJntSphElementsInit,
};
diff --git a/src/overlays/actors/ovl_Item_Shield/z_item_shield.c b/src/overlays/actors/ovl_Item_Shield/z_item_shield.c
index 9dda7af3f0..eaedc5813c 100644
--- a/src/overlays/actors/ovl_Item_Shield/z_item_shield.c
+++ b/src/overlays/actors/ovl_Item_Shield/z_item_shield.c
@@ -43,8 +43,8 @@ static ColliderCylinderInit sCylinderInit = {
},
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0x00000004, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0x00000004, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON,
OCELEM_ON,
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..a16c32a0d5 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 = {
{
@@ -64,8 +81,8 @@ static ColliderCylinderInit sCylinderInit = {
},
{
ELEM_MATERIAL_UNK0,
- { 0x00020000, 0x00, 0x01 },
- { 0x00000000, 0x00, 0x00 },
+ { 0x00020000, HIT_SPECIAL_EFFECT_NONE, 0x01 },
+ { 0x00000000, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NONE,
ACELEM_NONE,
OCELEM_NONE,
diff --git a/src/overlays/actors/ovl_Mir_Ray/z_mir_ray.c b/src/overlays/actors/ovl_Mir_Ray/z_mir_ray.c
index 06254d6ca6..0ed454941f 100644
--- a/src/overlays/actors/ovl_Mir_Ray/z_mir_ray.c
+++ b/src/overlays/actors/ovl_Mir_Ray/z_mir_ray.c
@@ -7,6 +7,7 @@
#include "z_mir_ray.h"
#include "libu64/debug.h"
+#include "array_count.h"
#include "gfx.h"
#include "gfx_setupdl.h"
#include "ichain.h"
@@ -70,8 +71,8 @@ static ColliderQuadInit sQuadInit = {
},
{
ELEM_MATERIAL_UNK0,
- { 0x00200000, 0x00, 0x00 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0x00200000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_NONE,
OCELEM_NONE,
@@ -79,12 +80,12 @@ static ColliderQuadInit sQuadInit = {
{ { { 0.0f, 0.0f, 0.0f }, { 0.0f, 0.0f, 0.0f }, { 0.0f, 0.0f, 0.0f }, { 0.0f, 0.0f, 0.0f } } },
};
-static ColliderJntSphElementInit sJntSphElementsInit[1] = {
+static ColliderJntSphElementInit sJntSphElementsInit[] = {
{
{
ELEM_MATERIAL_UNK0,
- { 0x00200000, 0x00, 0x00 },
- { 0x00000000, 0x00, 0x00 },
+ { 0x00200000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0x00000000, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_NONE,
OCELEM_NONE,
@@ -102,7 +103,7 @@ static ColliderJntSphInit sJntSphInit = {
OC2_NONE,
COLSHAPE_JNTSPH,
},
- 1,
+ ARRAY_COUNT(sJntSphElementsInit),
sJntSphElementsInit,
};
diff --git a/src/overlays/actors/ovl_Obj_Bean/z_obj_bean.c b/src/overlays/actors/ovl_Obj_Bean/z_obj_bean.c
index 7ccb70299d..78faf2c0dd 100644
--- a/src/overlays/actors/ovl_Obj_Bean/z_obj_bean.c
+++ b/src/overlays/actors/ovl_Obj_Bean/z_obj_bean.c
@@ -113,8 +113,8 @@ static ColliderCylinderInit sCylinderInit = {
},
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0x00000000, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0x00000000, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_NONE,
OCELEM_ON,
diff --git a/src/overlays/actors/ovl_Obj_Bombiwa/z_obj_bombiwa.c b/src/overlays/actors/ovl_Obj_Bombiwa/z_obj_bombiwa.c
index 1ebc95cff8..09675c4bc7 100644
--- a/src/overlays/actors/ovl_Obj_Bombiwa/z_obj_bombiwa.c
+++ b/src/overlays/actors/ovl_Obj_Bombiwa/z_obj_bombiwa.c
@@ -51,13 +51,13 @@ static ColliderCylinderInit sCylinderInit = {
},
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0x4FC1FFFE, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0x4FC1FFFE, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON,
OCELEM_ON,
},
- { 55, 70, 0, { 0 } },
+ { 55, 70, 0, { 0, 0, 0 } },
};
static CollisionCheckInfoInit sColChkInfoInit = { 0, 12, 60, MASS_IMMOVABLE };
diff --git a/src/overlays/actors/ovl_Obj_Comb/z_obj_comb.c b/src/overlays/actors/ovl_Obj_Comb/z_obj_comb.c
index 9430414f3e..49575ed0a7 100644
--- a/src/overlays/actors/ovl_Obj_Comb/z_obj_comb.c
+++ b/src/overlays/actors/ovl_Obj_Comb/z_obj_comb.c
@@ -8,6 +8,7 @@
#include "overlays/effects/ovl_Effect_Ss_Kakera/z_eff_ss_kakera.h"
#include "libc64/qrand.h"
+#include "array_count.h"
#include "gfx.h"
#include "gfx_setupdl.h"
#include "ichain.h"
@@ -43,12 +44,12 @@ ActorProfile Obj_Comb_Profile = {
/**/ ObjComb_Draw,
};
-static ColliderJntSphElementInit sJntSphElementsInit[1] = {
+static ColliderJntSphElementInit sJntSphElementsInit[] = {
{
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0x4001FFFE, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0x4001FFFE, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON,
OCELEM_ON,
@@ -66,7 +67,7 @@ static ColliderJntSphInit sJntSphInit = {
OC2_TYPE_2,
COLSHAPE_JNTSPH,
},
- 1,
+ ARRAY_COUNT(sJntSphElementsInit),
sJntSphElementsInit,
};
diff --git a/src/overlays/actors/ovl_Obj_Dekujr/z_obj_dekujr.c b/src/overlays/actors/ovl_Obj_Dekujr/z_obj_dekujr.c
index 3484ffcefa..cef0fe97cf 100644
--- a/src/overlays/actors/ovl_Obj_Dekujr/z_obj_dekujr.c
+++ b/src/overlays/actors/ovl_Obj_Dekujr/z_obj_dekujr.c
@@ -39,12 +39,19 @@ ActorProfile Obj_Dekujr_Profile = {
static ColliderCylinderInitToActor sCylinderInit = {
{
NULL,
- 0x00,
- 0x00,
- 0x39,
+ AT_NONE,
+ AC_NONE,
+ OC1_ON | OC1_TYPE_ALL,
COLSHAPE_CYLINDER,
},
- { 0x02, { 0x00000000, 0x00, 0x00 }, { 0xFFCFFFFF, 0x00, 0x00 }, 0x00, 0x00, 0x01 },
+ {
+ ELEM_MATERIAL_UNK2,
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
+ ATELEM_NONE,
+ ACELEM_NONE,
+ OCELEM_ON,
+ },
{ 60, 80, 0, { 0, 0, 0 } },
};
@@ -52,7 +59,7 @@ void ObjDekujr_Init(Actor* thisx, PlayState* play) {
ObjDekujr* this = (ObjDekujr*)thisx;
s32 pad;
- if (gSaveContext.save.cutsceneIndex < 0xFFF0) {
+ if (gSaveContext.save.cutsceneIndex < CS_INDEX_0) {
if (!LINK_IS_ADULT) {
Actor_Kill(thisx);
return;
@@ -148,7 +155,7 @@ void ObjDekujr_Update(Actor* thisx, PlayState* play) {
Collider_UpdateCylinder(&this->actor, &this->collider);
CollisionCheck_SetOC(play, &play->colChkCtx, &this->collider.base);
- if ((gSaveContext.save.cutsceneIndex >= 0xFFF0) && (this->unk_19B == 0)) {
+ if ((gSaveContext.save.cutsceneIndex >= CS_INDEX_0) && (this->unk_19B == 0)) {
this->unk_19C = 0;
this->unk_19B = 1;
}
diff --git a/src/overlays/actors/ovl_Obj_Hamishi/z_obj_hamishi.c b/src/overlays/actors/ovl_Obj_Hamishi/z_obj_hamishi.c
index 97c898f466..6490db46ae 100644
--- a/src/overlays/actors/ovl_Obj_Hamishi/z_obj_hamishi.c
+++ b/src/overlays/actors/ovl_Obj_Hamishi/z_obj_hamishi.c
@@ -50,8 +50,8 @@ static ColliderCylinderInit sCylinderInit = {
},
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0x4FC1FFF6, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0x4FC1FFF6, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON,
OCELEM_ON,
diff --git a/src/overlays/actors/ovl_Obj_Hana/z_obj_hana.c b/src/overlays/actors/ovl_Obj_Hana/z_obj_hana.c
index 8cfaa9599e..fe731ff59b 100644
--- a/src/overlays/actors/ovl_Obj_Hana/z_obj_hana.c
+++ b/src/overlays/actors/ovl_Obj_Hana/z_obj_hana.c
@@ -42,8 +42,8 @@ static ColliderCylinderInit sCylinderInit = {
},
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0x00000000, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0x00000000, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_NONE,
OCELEM_ON,
diff --git a/src/overlays/actors/ovl_Obj_Ice_Poly/z_obj_ice_poly.c b/src/overlays/actors/ovl_Obj_Ice_Poly/z_obj_ice_poly.c
index 3dac2d7fe4..ee56e5d203 100644
--- a/src/overlays/actors/ovl_Obj_Ice_Poly/z_obj_ice_poly.c
+++ b/src/overlays/actors/ovl_Obj_Ice_Poly/z_obj_ice_poly.c
@@ -51,8 +51,8 @@ static ColliderCylinderInit sCylinderInitIce = {
},
{
ELEM_MATERIAL_UNK0,
- { 0xFFCFFFFF, 0x02, 0x00 },
- { 0x00020800, 0x00, 0x00 },
+ { 0xFFCFFFFF, HIT_SPECIAL_EFFECT_ICE, 0x00 },
+ { 0x00020800, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NONE,
ACELEM_ON,
OCELEM_ON,
@@ -71,8 +71,8 @@ static ColliderCylinderInit sCylinderInitHard = {
},
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0x4E01F7F6, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0x4E01F7F6, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON,
OCELEM_NONE,
diff --git a/src/overlays/actors/ovl_Obj_Kibako/z_obj_kibako.c b/src/overlays/actors/ovl_Obj_Kibako/z_obj_kibako.c
index b4dd823735..a45735f2df 100644
--- a/src/overlays/actors/ovl_Obj_Kibako/z_obj_kibako.c
+++ b/src/overlays/actors/ovl_Obj_Kibako/z_obj_kibako.c
@@ -57,8 +57,8 @@ static ColliderCylinderInit sCylinderInit = {
},
{
ELEM_MATERIAL_UNK0,
- { 0x00000002, 0x00, 0x01 },
- { 0x4FC00748, 0x00, 0x00 },
+ { 0x00000002, HIT_SPECIAL_EFFECT_NONE, 0x01 },
+ { 0x4FC00748, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
diff --git a/src/overlays/actors/ovl_Obj_Kibako2/z_obj_kibako2.c b/src/overlays/actors/ovl_Obj_Kibako2/z_obj_kibako2.c
index c8c0a1211f..08c20a9ff5 100644
--- a/src/overlays/actors/ovl_Obj_Kibako2/z_obj_kibako2.c
+++ b/src/overlays/actors/ovl_Obj_Kibako2/z_obj_kibako2.c
@@ -51,8 +51,8 @@ static ColliderCylinderInit sCylinderInit = {
},
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0x40000040, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0x40000040, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON,
OCELEM_NONE,
diff --git a/src/overlays/actors/ovl_Obj_Lightswitch/z_obj_lightswitch.c b/src/overlays/actors/ovl_Obj_Lightswitch/z_obj_lightswitch.c
index 3a99282723..39f3e80dc1 100644
--- a/src/overlays/actors/ovl_Obj_Lightswitch/z_obj_lightswitch.c
+++ b/src/overlays/actors/ovl_Obj_Lightswitch/z_obj_lightswitch.c
@@ -8,6 +8,7 @@
#include "overlays/actors/ovl_Obj_Oshihiki/z_obj_oshihiki.h"
#include "libc64/qrand.h"
+#include "array_count.h"
#include "gfx.h"
#include "gfx_setupdl.h"
#include "ichain.h"
@@ -66,8 +67,8 @@ static ColliderJntSphElementInit sColliderJntSphElementsInit[] = {
{
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0x00200000, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0x00200000, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON,
OCELEM_ON,
@@ -84,7 +85,7 @@ static ColliderJntSphInit sColliderJntSphInit = {
OC2_TYPE_2,
COLSHAPE_JNTSPH,
},
- 1,
+ ARRAY_COUNT(sColliderJntSphElementsInit),
sColliderJntSphElementsInit,
};
diff --git a/src/overlays/actors/ovl_Obj_Roomtimer/z_obj_roomtimer.c b/src/overlays/actors/ovl_Obj_Roomtimer/z_obj_roomtimer.c
index 0ff67cc85c..52d535de7b 100644
--- a/src/overlays/actors/ovl_Obj_Roomtimer/z_obj_roomtimer.c
+++ b/src/overlays/actors/ovl_Obj_Roomtimer/z_obj_roomtimer.c
@@ -75,8 +75,7 @@ void func_80B9D0B0(ObjRoomtimer* this, PlayState* play) {
}
if ((this->actor.params != 0x3FF) && (gSaveContext.timerSeconds == 0)) {
- Audio_PlaySfxGeneral(NA_SE_OC_ABYSS, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_OC_ABYSS);
Play_TriggerVoidOut(play);
Actor_Kill(&this->actor);
}
diff --git a/src/overlays/actors/ovl_Obj_Switch/z_obj_switch.c b/src/overlays/actors/ovl_Obj_Switch/z_obj_switch.c
index f8cc6397f8..dbe4193bef 100644
--- a/src/overlays/actors/ovl_Obj_Switch/z_obj_switch.c
+++ b/src/overlays/actors/ovl_Obj_Switch/z_obj_switch.c
@@ -87,12 +87,12 @@ static f32 sFocusHeights[] = {
30, // OBJSWITCH_TYPE_CRYSTAL_TARGETABLE
};
-static ColliderTrisElementInit sRustyFloorTrisElementsInit[2] = {
+static ColliderTrisElementInit sRustyFloorTrisElementsInit[] = {
{
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0x40000040, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0x40000040, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON,
OCELEM_NONE,
@@ -102,8 +102,8 @@ static ColliderTrisElementInit sRustyFloorTrisElementsInit[2] = {
{
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0x40000040, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0x40000040, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON,
OCELEM_NONE,
@@ -125,12 +125,12 @@ static ColliderTrisInit sRustyFloorTrisInit = {
sRustyFloorTrisElementsInit,
};
-static ColliderTrisElementInit sEyeTrisElementsInit[2] = {
+static ColliderTrisElementInit sEyeTrisElementsInit[] = {
{
{
ELEM_MATERIAL_UNK4,
- { 0x00000000, 0x00, 0x00 },
- { 0x0001F824, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0x0001F824, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON,
OCELEM_NONE,
@@ -140,8 +140,8 @@ static ColliderTrisElementInit sEyeTrisElementsInit[2] = {
{
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0x0001F824, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0x0001F824, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON,
OCELEM_NONE,
@@ -163,12 +163,12 @@ static ColliderTrisInit sEyeTrisInit = {
sEyeTrisElementsInit,
};
-static ColliderJntSphElementInit sCrystalJntSphElementsInit[1] = {
+static ColliderJntSphElementInit sCrystalJntSphElementsInit[] = {
{
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0xEFC1FFFE, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0xEFC1FFFE, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON,
OCELEM_ON,
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 ccebc0615e..a75c504b6f 100644
--- a/src/overlays/actors/ovl_Obj_Syokudai/z_obj_syokudai.c
+++ b/src/overlays/actors/ovl_Obj_Syokudai/z_obj_syokudai.c
@@ -50,8 +50,8 @@ static ColliderCylinderInit sCylInitStand = {
},
{
ELEM_MATERIAL_UNK2,
- { 0x00100000, 0x00, 0x00 },
- { 0xEE01FFFF, 0x00, 0x00 },
+ { 0x00100000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0xEE01FFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON | ACELEM_HOOKABLE,
OCELEM_ON,
@@ -70,8 +70,8 @@ static ColliderCylinderInit sCylInitFlame = {
},
{
ELEM_MATERIAL_UNK2,
- { 0x00000000, 0x00, 0x00 },
- { 0x00020820, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0x00020820, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON,
OCELEM_NONE,
@@ -199,9 +199,7 @@ void ObjSyokudai_Update(Actor* thisx, PlayState* play2) {
if (interactionType < 0) {
if (player->unk_860 == 0) {
player->unk_860 = 210;
- Audio_PlaySfxGeneral(NA_SE_EV_FLAME_IGNITION, &this->actor.projectedPos, 4,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&this->actor.projectedPos, NA_SE_EV_FLAME_IGNITION);
} else if (player->unk_860 < 200) {
player->unk_860 = 200;
}
@@ -237,8 +235,7 @@ void ObjSyokudai_Update(Actor* thisx, PlayState* play2) {
this->litTimer = (litTimeScale * 50) + 110;
}
}
- Audio_PlaySfxGeneral(NA_SE_EV_FLAME_IGNITION, &this->actor.projectedPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&this->actor.projectedPos, NA_SE_EV_FLAME_IGNITION);
}
}
}
diff --git a/src/overlays/actors/ovl_Obj_Tsubo/z_obj_tsubo.c b/src/overlays/actors/ovl_Obj_Tsubo/z_obj_tsubo.c
index 4a2ba2d3d9..4719667c40 100644
--- a/src/overlays/actors/ovl_Obj_Tsubo/z_obj_tsubo.c
+++ b/src/overlays/actors/ovl_Obj_Tsubo/z_obj_tsubo.c
@@ -78,8 +78,8 @@ static ColliderCylinderInit sCylinderInit = {
},
{
ELEM_MATERIAL_UNK0,
- { 0x00000002, 0x00, 0x01 },
- { 0x4FC1FFFE, 0x00, 0x00 },
+ { 0x00000002, HIT_SPECIAL_EFFECT_NONE, 0x01 },
+ { 0x4FC1FFFE, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_ON,
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/src/overlays/actors/ovl_Shot_Sun/z_shot_sun.c b/src/overlays/actors/ovl_Shot_Sun/z_shot_sun.c
index 1ba86361ed..c36b928ad1 100644
--- a/src/overlays/actors/ovl_Shot_Sun/z_shot_sun.c
+++ b/src/overlays/actors/ovl_Shot_Sun/z_shot_sun.c
@@ -65,8 +65,8 @@ static ColliderCylinderInit sCylinderInit = {
},
{
ELEM_MATERIAL_UNK0,
- { 0x00000000, 0x00, 0x00 },
- { 0x00000020, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0x00000020, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON,
OCELEM_ON,
diff --git a/src/overlays/actors/ovl_player_actor/z_player.c b/src/overlays/actors/ovl_player_actor/z_player.c
index 68a2683ca9..0fe5048f20 100644
--- a/src/overlays/actors/ovl_player_actor/z_player.c
+++ b/src/overlays/actors/ovl_player_actor/z_player.c
@@ -369,7 +369,7 @@ static s32 D_80858AA0;
// TODO: There's probably a way to match BSS ordering with less padding by spreading the variables out and moving
// data around. It would be easier if we had more options for controlling BSS ordering in debug.
-#pragma increment_block_number "gc-eu:224 gc-eu-mq:224 gc-jp:192 gc-jp-ce:192 gc-jp-mq:192 gc-us:192 gc-us-mq:192" \
+#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:192 ntsc-1.1:192 ntsc-1.2:192 pal-1.0:192 pal-1.1:192"
static s32 sSavedCurrentMask;
@@ -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) {
@@ -4619,7 +4619,7 @@ static LinkAnimationHeader* D_808544B0[] = {
&gPlayerAnim_link_normal_back_hit, &gPlayerAnim_link_anchor_back_hitR,
};
-void func_80837C0C(PlayState* play, Player* this, s32 damageResponseType, f32 speed, f32 yVelocity, s16 yRot,
+void func_80837C0C(PlayState* play, Player* this, s32 hitResponseType, f32 speed, f32 yVelocity, s16 yRot,
s32 invincibilityTimer) {
LinkAnimationHeader* anim = NULL;
LinkAnimationHeader** sp28;
@@ -4642,7 +4642,7 @@ void func_80837C0C(PlayState* play, Player* this, s32 damageResponseType, f32 sp
Player_SetIntangibility(this, invincibilityTimer);
- if (damageResponseType == PLAYER_HIT_RESPONSE_ICE_TRAP) {
+ if (hitResponseType == PLAYER_HIT_RESPONSE_FROZEN) {
Player_SetupAction(play, this, Player_Action_8084FB10, 0);
anim = &gPlayerAnim_link_normal_ice_down;
@@ -4652,7 +4652,7 @@ void func_80837C0C(PlayState* play, Player* this, s32 damageResponseType, f32 sp
Player_PlaySfx(this, NA_SE_PL_FREEZE_S);
Player_PlayVoiceSfx(this, NA_SE_VO_LI_FREEZE);
- } else if (damageResponseType == PLAYER_HIT_RESPONSE_ELECTRIC_SHOCK) {
+ } else if (hitResponseType == PLAYER_HIT_RESPONSE_ELECTRIFIED) {
Player_SetupAction(play, this, Player_Action_8084FBF4, 0);
Player_RequestRumble(this, 255, 80, 150, 0);
@@ -4673,8 +4673,8 @@ void func_80837C0C(PlayState* play, Player* this, s32 damageResponseType, f32 sp
anim = &gPlayerAnim_link_swimer_swim_hit;
Player_PlayVoiceSfx(this, NA_SE_VO_LI_DAMAGE_S);
- } else if ((damageResponseType == PLAYER_HIT_RESPONSE_KNOCKBACK_LARGE) ||
- (damageResponseType == PLAYER_HIT_RESPONSE_KNOCKBACK_SMALL) ||
+ } else if ((hitResponseType == PLAYER_HIT_RESPONSE_KNOCKBACK_LARGE) ||
+ (hitResponseType == PLAYER_HIT_RESPONSE_KNOCKBACK_SMALL) ||
!(this->actor.bgCheckFlags & BGCHECKFLAG_GROUND) ||
(this->stateFlags1 & (PLAYER_STATE1_13 | PLAYER_STATE1_14 | PLAYER_STATE1_21))) {
Player_SetupAction(play, this, Player_Action_8084377C, 0);
@@ -4684,7 +4684,7 @@ void func_80837C0C(PlayState* play, Player* this, s32 damageResponseType, f32 sp
Player_RequestRumble(this, 255, 20, 150, 0);
func_80832224(this);
- if (damageResponseType == PLAYER_HIT_RESPONSE_KNOCKBACK_SMALL) {
+ if (hitResponseType == PLAYER_HIT_RESPONSE_KNOCKBACK_SMALL) {
this->av2.actionVar2 = 4;
this->actor.speed = 3.0f;
@@ -4798,7 +4798,7 @@ void func_8083821C(Player* this) {
}
void func_80838280(Player* this) {
- if (this->actor.colChkInfo.acHitEffect == 1) {
+ if (this->actor.colChkInfo.acHitSpecialEffect == HIT_SPECIAL_EFFECT_FIRE) {
func_8083821C(this);
}
Player_PlayVoiceSfx(this, NA_SE_VO_LI_FALL_L);
@@ -4867,7 +4867,7 @@ s32 func_808382DC(Player* this, PlayState* play) {
func_80838280(this);
- if (this->knockbackType == PLAYER_KNOCKBACK_LARGE_SHOCK) {
+ if (this->knockbackType == PLAYER_KNOCKBACK_LARGE_ELECTRIFIED) {
this->bodyShockTimer = 40;
}
@@ -4915,7 +4915,7 @@ s32 func_808382DC(Player* this, PlayState* play) {
}
}
- if (sp64 && (this->shieldQuad.elem.acHitElem->atDmgInfo.effect == 1)) {
+ if (sp64 && (this->shieldQuad.elem.acHitElem->atDmgInfo.hitSpecialEffect == HIT_SPECIAL_EFFECT_FIRE)) {
func_8083819C(this, play);
}
@@ -4938,11 +4938,11 @@ s32 func_808382DC(Player* this, PlayState* play) {
if (this->stateFlags1 & PLAYER_STATE1_27) {
sp4C = PLAYER_HIT_RESPONSE_NONE;
- } else if (this->actor.colChkInfo.acHitEffect == 2) {
- sp4C = PLAYER_HIT_RESPONSE_ICE_TRAP;
- } else if (this->actor.colChkInfo.acHitEffect == 3) {
- sp4C = PLAYER_HIT_RESPONSE_ELECTRIC_SHOCK;
- } else if (this->actor.colChkInfo.acHitEffect == 4) {
+ } else if (this->actor.colChkInfo.acHitSpecialEffect == HIT_SPECIAL_EFFECT_ICE) {
+ sp4C = PLAYER_HIT_RESPONSE_FROZEN;
+ } else if (this->actor.colChkInfo.acHitSpecialEffect == HIT_SPECIAL_EFFECT_ELECTRIC) {
+ sp4C = PLAYER_HIT_RESPONSE_ELECTRIFIED;
+ } else if (this->actor.colChkInfo.acHitSpecialEffect == HIT_SPECIAL_EFFECT_KNOCKBACK) {
sp4C = PLAYER_HIT_RESPONSE_KNOCKBACK_LARGE;
} else {
func_80838280(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;
@@ -9145,10 +9145,9 @@ s32 func_80842DF4(PlayState* play, Player* this) {
if ((func_80842AC4(play, this) == 0) && (this->heldItemAction != PLAYER_IA_HAMMER)) {
func_80842B7C(play, this);
- if (this->actor.colChkInfo.atHitEffect == 1) {
+ if (this->actor.colChkInfo.atHitBacklash == HIT_BACKLASH_ELECTRIC) {
this->actor.colChkInfo.damage = 8;
- func_80837C0C(play, this, PLAYER_HIT_RESPONSE_ELECTRIC_SHOCK, 0.0f, 0.0f, this->actor.shape.rot.y,
- 20);
+ func_80837C0C(play, this, PLAYER_HIT_RESPONSE_ELECTRIFIED, 0.0f, 0.0f, this->actor.shape.rot.y, 20);
return 1;
}
}
@@ -10477,8 +10476,8 @@ static ColliderCylinderInit D_80854624 = {
},
{
ELEM_MATERIAL_UNK1,
- { 0x00000000, 0x00, 0x00 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0x00000000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_NONE,
ACELEM_ON,
OCELEM_ON,
@@ -10497,8 +10496,8 @@ static ColliderQuadInit D_80854650 = {
},
{
ELEM_MATERIAL_UNK2,
- { 0x00000100, 0x00, 0x01 },
- { 0xFFCFFFFF, 0x00, 0x00 },
+ { 0x00000100, HIT_SPECIAL_EFFECT_NONE, 0x01 },
+ { 0xFFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_NONE,
OCELEM_NONE,
@@ -10517,8 +10516,8 @@ static ColliderQuadInit D_808546A0 = {
},
{
ELEM_MATERIAL_UNK2,
- { 0x00100000, 0x00, 0x00 },
- { 0xDFCFFFFF, 0x00, 0x00 },
+ { 0x00100000, HIT_SPECIAL_EFFECT_NONE, 0x00 },
+ { 0xDFCFFFFF, HIT_BACKLASH_NONE, 0x00 },
ATELEM_ON | ATELEM_SFX_NORMAL,
ACELEM_ON,
OCELEM_NONE,
@@ -10799,7 +10798,7 @@ void Player_Init(Actor* thisx, PlayState* play2) {
startMode = PLAYER_GET_START_MODE(thisx);
if ((startMode == PLAYER_START_MODE_WARP_SONG) || (startMode == PLAYER_START_MODE_FARORES_WIND)) {
- if (gSaveContext.save.cutsceneIndex >= 0xFFF0) {
+ if (gSaveContext.save.cutsceneIndex >= CS_INDEX_0) {
startMode = PLAYER_START_MODE_IDLE;
}
}
@@ -13706,8 +13705,7 @@ s32 func_8084DFF4(PlayState* play, Player* this) {
((this->getItemId >= GI_RUPEE_PURPLE) && (this->getItemId <= GI_RUPEE_GOLD)) ||
((this->getItemId >= GI_RUPEE_GREEN_LOSE) && (this->getItemId <= GI_RUPEE_PURPLE_LOSE)) ||
(this->getItemId == GI_RECOVERY_HEART)) {
- Audio_PlaySfxGeneral(NA_SE_SY_GET_BOXITEM, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_GET_BOXITEM);
} else {
if ((this->getItemId == GI_HEART_CONTAINER_2) || (this->getItemId == GI_HEART_CONTAINER) ||
((this->getItemId == GI_HEART_PIECE) &&
@@ -13723,7 +13721,7 @@ s32 func_8084DFF4(PlayState* play, Player* this) {
if (this->getItemId == GI_SILVER_GAUNTLETS) {
play->nextEntranceIndex = ENTR_DESERT_COLOSSUS_0;
play->transitionTrigger = TRANS_TRIGGER_START;
- gSaveContext.nextCutsceneIndex = 0xFFF1;
+ gSaveContext.nextCutsceneIndex = CS_INDEX_1;
play->transitionType = TRANS_TYPE_SANDSTORM_END;
this->stateFlags1 &= ~PLAYER_STATE1_29;
Player_TryCsAction(play, NULL, PLAYER_CSACTION_8);
@@ -13748,7 +13746,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);
}
@@ -13906,7 +13904,7 @@ void Player_Action_8084E6D4(Player* this, PlayState* play) {
func_8083C0E8(this, play);
} else {
this->actor.colChkInfo.damage = 0;
- func_80837C0C(play, this, PLAYER_HIT_RESPONSE_ICE_TRAP, 0.0f, 0.0f, 0, 20);
+ func_80837C0C(play, this, PLAYER_HIT_RESPONSE_FROZEN, 0.0f, 0.0f, 0, 20);
}
return;
}
@@ -13918,7 +13916,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 +14118,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 +16217,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);
}
}
diff --git a/src/overlays/effects/ovl_Effect_Ss_Dead_Db/z_eff_ss_dead_db.c b/src/overlays/effects/ovl_Effect_Ss_Dead_Db/z_eff_ss_dead_db.c
index b75a7077c8..8e83ca9f11 100644
--- a/src/overlays/effects/ovl_Effect_Ss_Dead_Db/z_eff_ss_dead_db.c
+++ b/src/overlays/effects/ovl_Effect_Ss_Dead_Db/z_eff_ss_dead_db.c
@@ -141,7 +141,6 @@ void EffectSsDeadDb_Update(PlayState* play, u32 index, EffectSs* this) {
if (this->rPlaySfx && (this->rTextIdx == 1)) {
SkinMatrix_Vec3fMtxFMultXYZW(&play->viewProjectionMtxF, &this->pos, &this->vec, &w);
- Audio_PlaySfxGeneral(NA_SE_EN_EXTINCT, &this->vec, 4, &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&this->vec, NA_SE_EN_EXTINCT);
}
}
diff --git a/src/overlays/effects/ovl_Effect_Ss_Dead_Sound/z_eff_ss_dead_sound.c b/src/overlays/effects/ovl_Effect_Ss_Dead_Sound/z_eff_ss_dead_sound.c
index 4a577652b9..fa5df19368 100644
--- a/src/overlays/effects/ovl_Effect_Ss_Dead_Sound/z_eff_ss_dead_sound.c
+++ b/src/overlays/effects/ovl_Effect_Ss_Dead_Sound/z_eff_ss_dead_sound.c
@@ -50,6 +50,5 @@ void EffectSsDeadSound_Update(PlayState* play, u32 index, EffectSs* this) {
return;
}
- Audio_PlaySfxGeneral(this->rSfxId, &this->pos, 4, &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultReverb);
+ SFX_PLAY_AT_POS(&this->pos, this->rSfxId);
}
diff --git a/src/overlays/gamestates/ovl_file_choose/z_file_choose.c b/src/overlays/gamestates/ovl_file_choose/z_file_choose.c
index fdb36d94bd..2e6dc9afde 100644
--- a/src/overlays/gamestates/ovl_file_choose/z_file_choose.c
+++ b/src/overlays/gamestates/ovl_file_choose/z_file_choose.c
@@ -155,10 +155,8 @@ void FileSelect_UpdateInitialLanguageMenu(FileSelectState* this) {
if (CHECK_BTN_ALL(input->press.button, BTN_A) || CHECK_BTN_ALL(input->press.button, BTN_B) ||
CHECK_BTN_ALL(input->press.button, BTN_START)) {
- Audio_PlaySfxGeneral(NA_SE_SY_FSEL_DECIDE_L, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
- Audio_PlaySfxGeneral(NA_SE_SY_FSEL_DECIDE_L, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_FSEL_DECIDE_L);
+ SFX_PLAY_CENTERED(NA_SE_SY_FSEL_DECIDE_L);
sramCtx->readBuff[2] = gSaveContext.language;
Sram_WriteSramHeader(sramCtx);
this->configMode++;
@@ -166,15 +164,13 @@ void FileSelect_UpdateInitialLanguageMenu(FileSelectState* this) {
}
if (sInitialLanguageStickAdjX < -30) {
- Audio_PlaySfxGeneral(NA_SE_SY_FSEL_CURSOR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_FSEL_CURSOR);
gSaveContext.language--;
if (gSaveContext.language >= LANGUAGE_MAX) {
gSaveContext.language = LANGUAGE_MAX - 1;
}
} else if (sInitialLanguageStickAdjX > 30) {
- Audio_PlaySfxGeneral(NA_SE_SY_FSEL_CURSOR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_FSEL_CURSOR);
gSaveContext.language++;
if (gSaveContext.language >= LANGUAGE_MAX) {
gSaveContext.language = 0;
@@ -527,8 +523,7 @@ void FileSelect_UpdateMainMenu(GameState* thisx) {
GET_NEWF(sramCtx, this->buttonIndex, 5));
if (!SLOT_OCCUPIED(sramCtx, this->buttonIndex)) {
- Audio_PlaySfxGeneral(NA_SE_SY_FSEL_DECIDE_L, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_FSEL_DECIDE_L);
this->configMode = CM_ROTATE_TO_NAME_ENTRY;
this->kbdButton = FS_KBD_BTN_NONE;
@@ -550,16 +545,14 @@ void FileSelect_UpdateMainMenu(GameState* thisx) {
this->nameEntryBoxAlpha = 0;
MemCpy(&this->fileNames[this->buttonIndex][0], &emptyName, sizeof(emptyName));
} else if (this->n64ddFlags[this->buttonIndex] == this->n64ddFlag) {
- Audio_PlaySfxGeneral(NA_SE_SY_FSEL_DECIDE_L, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_FSEL_DECIDE_L);
this->actionTimer = 8;
this->selectMode = SM_FADE_MAIN_TO_SELECT;
this->selectedFileIndex = this->buttonIndex;
this->menuMode = FS_MENU_MODE_SELECT;
this->nextTitleLabel = FS_TITLE_OPEN_FILE;
} else if (!this->n64ddFlags[this->buttonIndex]) {
- Audio_PlaySfxGeneral(NA_SE_SY_FSEL_ERROR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_FSEL_ERROR);
} else {
#if PLATFORM_N64
if (D_80121212 != 0) {
@@ -571,8 +564,7 @@ void FileSelect_UpdateMainMenu(GameState* thisx) {
}
} else {
if (this->warningLabel == FS_WARNING_NONE) {
- Audio_PlaySfxGeneral(NA_SE_SY_FSEL_DECIDE_L, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_FSEL_DECIDE_L);
this->prevConfigMode = this->configMode;
if (this->buttonIndex == FS_BTN_MAIN_COPY) {
@@ -593,14 +585,12 @@ void FileSelect_UpdateMainMenu(GameState* thisx) {
this->actionTimer = 8;
} else {
- Audio_PlaySfxGeneral(NA_SE_SY_FSEL_ERROR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_FSEL_ERROR);
}
}
} else {
if (ABS(this->stickAdjY) > 30) {
- Audio_PlaySfxGeneral(NA_SE_SY_FSEL_CURSOR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_FSEL_CURSOR);
if (this->stickAdjY > 30) {
this->buttonIndex--;
@@ -1762,22 +1752,18 @@ void FileSelect_ConfirmFile(GameState* thisx) {
if (CHECK_BTN_ALL(input->press.button, BTN_START) || (CHECK_BTN_ALL(input->press.button, BTN_A))) {
if (this->confirmButtonIndex == FS_BTN_CONFIRM_YES) {
Rumble_Request(300.0f, 180, 20, 100);
- Audio_PlaySfxGeneral(NA_SE_SY_FSEL_DECIDE_L, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_FSEL_DECIDE_L);
this->selectMode = SM_FADE_OUT;
func_800F6964(0xF);
} else {
- Audio_PlaySfxGeneral(NA_SE_SY_FSEL_CLOSE, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_FSEL_CLOSE);
this->selectMode++;
}
} else if (CHECK_BTN_ALL(input->press.button, BTN_B)) {
- Audio_PlaySfxGeneral(NA_SE_SY_FSEL_CLOSE, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_FSEL_CLOSE);
this->selectMode++;
} else if (ABS(this->stickAdjY) >= 30) {
- Audio_PlaySfxGeneral(NA_SE_SY_FSEL_CURSOR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_FSEL_CURSOR);
this->confirmButtonIndex ^= 1;
}
}
@@ -1882,8 +1868,7 @@ void FileSelect_LoadGame(GameState* thisx) {
#if DEBUG_FEATURES
if (this->buttonIndex == FS_BTN_SELECT_FILE_1) {
- Audio_PlaySfxGeneral(NA_SE_SY_FSEL_DECIDE_L, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_FSEL_DECIDE_L);
gSaveContext.fileNum = this->buttonIndex;
Sram_OpenSave(&this->sramCtx);
gSaveContext.gameMode = GAMEMODE_NORMAL;
@@ -1892,8 +1877,7 @@ void FileSelect_LoadGame(GameState* thisx) {
} else
#endif
{
- Audio_PlaySfxGeneral(NA_SE_SY_FSEL_DECIDE_L, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_FSEL_DECIDE_L);
gSaveContext.fileNum = this->buttonIndex;
Sram_OpenSave(&this->sramCtx);
gSaveContext.gameMode = GAMEMODE_NORMAL;
@@ -1921,7 +1905,7 @@ void FileSelect_LoadGame(GameState* thisx) {
gSaveContext.forcedSeqId = NA_BGM_GENERAL_SFX;
gSaveContext.skyboxTime = CLOCK_TIME(0, 0);
gSaveContext.nextTransitionType = TRANS_NEXT_TYPE_DEFAULT;
- gSaveContext.nextCutsceneIndex = 0xFFEF;
+ gSaveContext.nextCutsceneIndex = NEXT_CS_INDEX_NONE;
gSaveContext.cutsceneTrigger = 0;
gSaveContext.chamberCutsceneNum = CHAMBER_CS_FOREST;
gSaveContext.nextDayTime = NEXT_TIME_NONE;
diff --git a/src/overlays/gamestates/ovl_file_choose/z_file_copy_erase.c b/src/overlays/gamestates/ovl_file_choose/z_file_copy_erase.c
index fb14504bd7..e230ab56f7 100644
--- a/src/overlays/gamestates/ovl_file_choose/z_file_copy_erase.c
+++ b/src/overlays/gamestates/ovl_file_choose/z_file_copy_erase.c
@@ -98,24 +98,20 @@ void FileSelect_SelectCopySource(GameState* thisx) {
this->nextTitleLabel = FS_TITLE_SELECT_FILE;
this->configMode = CM_COPY_RETURN_MAIN;
this->warningLabel = FS_WARNING_NONE;
- Audio_PlaySfxGeneral(NA_SE_SY_FSEL_CLOSE, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_FSEL_CLOSE);
} else if (CHECK_BTN_ANY(input->press.button, BTN_A | BTN_START)) {
if (SLOT_OCCUPIED(sramCtx, this->buttonIndex)) {
this->actionTimer = 8;
this->selectedFileIndex = this->buttonIndex;
this->configMode = CM_SETUP_COPY_DEST_1;
this->nextTitleLabel = FS_TITLE_COPY_TO;
- Audio_PlaySfxGeneral(NA_SE_SY_FSEL_DECIDE_L, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_FSEL_DECIDE_L);
} else {
- Audio_PlaySfxGeneral(NA_SE_SY_FSEL_ERROR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_FSEL_ERROR);
}
} else {
if (ABS(this->stickAdjY) >= 30) {
- Audio_PlaySfxGeneral(NA_SE_SY_FSEL_CURSOR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_FSEL_CURSOR);
if (this->stickAdjY >= 30) {
this->buttonIndex--;
@@ -270,25 +266,21 @@ void FileSelect_SelectCopyDest(GameState* thisx) {
this->nextTitleLabel = FS_TITLE_COPY_FROM;
this->actionTimer = 8;
this->configMode = CM_EXIT_TO_COPY_SOURCE_1;
- Audio_PlaySfxGeneral(NA_SE_SY_FSEL_CLOSE, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_FSEL_CLOSE);
} else if (CHECK_BTN_ANY(input->press.button, BTN_A | BTN_START)) {
if (!SLOT_OCCUPIED(sramCtx, this->buttonIndex)) {
this->copyDestFileIndex = this->buttonIndex;
this->nextTitleLabel = FS_TITLE_COPY_CONFIRM;
this->actionTimer = 8;
this->configMode = CM_SETUP_COPY_CONFIRM_1;
- Audio_PlaySfxGeneral(NA_SE_SY_FSEL_DECIDE_L, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_FSEL_DECIDE_L);
} else {
- Audio_PlaySfxGeneral(NA_SE_SY_FSEL_ERROR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_FSEL_ERROR);
}
} else {
if (ABS(this->stickAdjY) >= 30) {
- Audio_PlaySfxGeneral(NA_SE_SY_FSEL_CURSOR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_FSEL_CURSOR);
if (this->stickAdjY >= 30) {
this->buttonIndex--;
@@ -553,8 +545,7 @@ void FileSelect_CopyConfirm(GameState* thisx) {
this->actionTimer = 8;
this->nextTitleLabel = FS_TITLE_COPY_TO;
this->configMode = CM_RETURN_TO_COPY_DEST;
- Audio_PlaySfxGeneral(NA_SE_SY_FSEL_CLOSE, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_FSEL_CLOSE);
} else if (CHECK_BTN_ANY(input->press.button, BTN_A | BTN_START)) {
dayTime = gSaveContext.save.dayTime;
Sram_CopySave(this, sramCtx);
@@ -564,11 +555,9 @@ void FileSelect_CopyConfirm(GameState* thisx) {
this->actionTimer = 8;
this->configMode = CM_COPY_ANIM_1;
Rumble_Request(300.0f, 180, 20, 100);
- Audio_PlaySfxGeneral(NA_SE_SY_FSEL_DECIDE_L, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_FSEL_DECIDE_L);
} else if (ABS(this->stickAdjY) >= 30) {
- Audio_PlaySfxGeneral(NA_SE_SY_FSEL_CURSOR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_FSEL_CURSOR);
this->buttonIndex ^= 1;
}
}
@@ -758,8 +747,7 @@ void FileSelect_CopyAnim3(GameState* thisx) {
if (this->actionTimer == 75) {
this->connectorAlpha[this->copyDestFileIndex] = 255;
- Audio_PlaySfxGeneral(NA_SE_EV_DIAMOND_SWITCH, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_EV_DIAMOND_SWITCH);
}
this->actionTimer--;
@@ -769,8 +757,7 @@ void FileSelect_CopyAnim3(GameState* thisx) {
this->actionTimer = 8;
this->nextTitleLabel = FS_TITLE_SELECT_FILE;
this->configMode++;
- Audio_PlaySfxGeneral(NA_SE_SY_FSEL_DECIDE_L, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_FSEL_DECIDE_L);
}
}
}
@@ -1154,24 +1141,20 @@ void FileSelect_EraseSelect(GameState* thisx) {
this->nextTitleLabel = FS_TITLE_SELECT_FILE;
this->configMode = CM_EXIT_ERASE_TO_MAIN;
this->warningLabel = FS_WARNING_NONE;
- Audio_PlaySfxGeneral(NA_SE_SY_FSEL_CLOSE, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_FSEL_CLOSE);
} else if (CHECK_BTN_ANY(input->press.button, BTN_A | BTN_START)) {
if (SLOT_OCCUPIED(sramCtx, this->buttonIndex)) {
this->actionTimer = 8;
this->selectedFileIndex = this->buttonIndex;
this->configMode = CM_SETUP_ERASE_CONFIRM_1;
this->nextTitleLabel = FS_TITLE_ERASE_CONFIRM;
- Audio_PlaySfxGeneral(NA_SE_SY_FSEL_DECIDE_L, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_FSEL_DECIDE_L);
} else {
- Audio_PlaySfxGeneral(NA_SE_SY_FSEL_ERROR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_FSEL_ERROR);
}
} else {
if (ABS(this->stickAdjY) >= 30) {
- Audio_PlaySfxGeneral(NA_SE_SY_FSEL_CURSOR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_FSEL_CURSOR);
if (this->stickAdjY >= 30) {
this->buttonIndex--;
@@ -1391,20 +1374,17 @@ void FileSelect_EraseConfirm(GameState* thisx) {
this->nextTitleLabel = FS_TITLE_ERASE_FILE;
this->configMode = CM_EXIT_TO_ERASE_SELECT_1;
this->actionTimer = 8;
- Audio_PlaySfxGeneral(NA_SE_SY_FSEL_CLOSE, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_FSEL_CLOSE);
} else if (CHECK_BTN_ANY(input->press.button, BTN_A | BTN_START)) {
this->n64ddFlags[this->selectedFileIndex] = this->connectorAlpha[this->selectedFileIndex] = 0;
- Audio_PlaySfxGeneral(NA_SE_EV_DIAMOND_SWITCH, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_EV_DIAMOND_SWITCH);
this->actionTimer = 8;
this->configMode = CM_ERASE_ANIM_1;
this->nextTitleLabel = FS_TITLE_ERASE_COMPLETE;
Rumble_Request(200.0f, 255, 20, 150);
sEraseDelayTimer = 15;
} else if (ABS(this->stickAdjY) >= 30) {
- Audio_PlaySfxGeneral(NA_SE_SY_FSEL_CURSOR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_FSEL_CURSOR);
this->buttonIndex ^= 1;
}
}
@@ -1622,8 +1602,7 @@ void FileSelect_EraseAnim1(GameState* thisx) {
sEraseDelayTimer--;
if (sEraseDelayTimer == 0) {
- Audio_PlaySfxGeneral(NA_SE_OC_ABYSS, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_OC_ABYSS);
}
}
}
@@ -1641,8 +1620,7 @@ void FileSelect_EraseAnim2(GameState* thisx) {
this->actionTimer = 8;
this->nextTitleLabel = FS_TITLE_SELECT_FILE;
this->configMode++;
- Audio_PlaySfxGeneral(NA_SE_SY_FSEL_CLOSE, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_FSEL_CLOSE);
}
}
diff --git a/src/overlays/gamestates/ovl_file_choose/z_file_nameset.c b/src/overlays/gamestates/ovl_file_choose/z_file_nameset.c
index faf219fd93..d80dd7bc99 100644
--- a/src/overlays/gamestates/ovl_file_choose/z_file_nameset.c
+++ b/src/overlays/gamestates/ovl_file_choose/z_file_nameset.c
@@ -649,8 +649,7 @@ void FileSelect_DrawNameEntry(GameState* thisx) {
if (this->configMode == CM_NAME_ENTRY) {
if (CHECK_BTN_ALL(input->press.button, BTN_START)) {
- Audio_PlaySfxGeneral(NA_SE_SY_FSEL_DECIDE_L, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_FSEL_DECIDE_L);
// place cursor on END button
this->kbdY = 5;
this->kbdX = 4;
@@ -661,8 +660,7 @@ void FileSelect_DrawNameEntry(GameState* thisx) {
}
this->fileNames[this->buttonIndex][i] = FILENAME_SPACE;
- Audio_PlaySfxGeneral(NA_SE_SY_FSEL_DECIDE_S, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_FSEL_DECIDE_S);
} else {
this->newFileNameCharCount--;
@@ -675,8 +673,7 @@ void FileSelect_DrawNameEntry(GameState* thisx) {
}
this->fileNames[this->buttonIndex][i] = FILENAME_SPACE;
- Audio_PlaySfxGeneral(NA_SE_SY_FSEL_DECIDE_S, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_FSEL_DECIDE_S);
}
}
} else {
@@ -695,18 +692,12 @@ void FileSelect_DrawNameEntry(GameState* thisx) {
(gCharPageHira[this->charIndex] == FILENAME_HANDAKUTEN)) {
if (!FileSelect_ApplyDiacriticToFilename(&this->state,
gCharPageHira[this->charIndex])) {
- Audio_PlaySfxGeneral(NA_SE_SY_FSEL_ERROR, &gSfxDefaultPos, 4,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_FSEL_ERROR);
} else {
- Audio_PlaySfxGeneral(NA_SE_SY_FSEL_DECIDE_S, &gSfxDefaultPos, 4,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_FSEL_DECIDE_S);
}
} else {
- Audio_PlaySfxGeneral(NA_SE_SY_FSEL_DECIDE_S, &gSfxDefaultPos, 4,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_FSEL_DECIDE_S);
this->fileNames[this->buttonIndex][this->newFileNameCharCount] =
gCharPageHira[this->charIndex];
this->newFileNameCharCount++;
@@ -724,18 +715,12 @@ void FileSelect_DrawNameEntry(GameState* thisx) {
(gCharPageHira[this->charIndex] == FILENAME_HANDAKUTEN)) {
if (!FileSelect_ApplyDiacriticToFilename(&this->state,
gCharPageHira[this->charIndex])) {
- Audio_PlaySfxGeneral(NA_SE_SY_FSEL_ERROR, &gSfxDefaultPos, 4,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_FSEL_ERROR);
} else {
- Audio_PlaySfxGeneral(NA_SE_SY_FSEL_DECIDE_S, &gSfxDefaultPos, 4,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_FSEL_DECIDE_S);
}
} else {
- Audio_PlaySfxGeneral(NA_SE_SY_FSEL_DECIDE_S, &gSfxDefaultPos, 4,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_FSEL_DECIDE_S);
this->fileNames[this->buttonIndex][this->newFileNameCharCount] =
gCharPageKata[this->charIndex];
this->newFileNameCharCount++;
@@ -751,9 +736,7 @@ void FileSelect_DrawNameEntry(GameState* thisx) {
font->fontBuf + gCharPageEng[this->charIndex] * FONT_CHAR_TEX_SIZE, 0);
if (CHECK_BTN_ALL(input->press.button, BTN_A)) {
- Audio_PlaySfxGeneral(NA_SE_SY_FSEL_DECIDE_S, &gSfxDefaultPos, 4,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_FSEL_DECIDE_S);
this->fileNames[this->buttonIndex][this->newFileNameCharCount] =
gCharPageEng[this->charIndex];
this->newFileNameCharCount++;
@@ -770,24 +753,21 @@ void FileSelect_DrawNameEntry(GameState* thisx) {
} else {
this->charPage = FS_CHAR_PAGE_ENG_TO_HIRA;
}
- Audio_PlaySfxGeneral(NA_SE_SY_WIN_OPEN, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_WIN_OPEN);
} else if (this->kbdButton == FS_KBD_BTN_KATA) {
if (this->charPage == FS_CHAR_PAGE_HIRA) {
this->charPage = FS_CHAR_PAGE_HIRA_TO_KATA;
} else {
this->charPage = FS_CHAR_PAGE_ENG_TO_KATA;
}
- Audio_PlaySfxGeneral(NA_SE_SY_WIN_OPEN, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_WIN_OPEN);
} else if (this->kbdButton == FS_KBD_BTN_ENG) {
if (this->charPage == FS_CHAR_PAGE_HIRA) {
this->charPage = FS_CHAR_PAGE_HIRA_TO_ENG;
} else {
this->charPage = FS_CHAR_PAGE_KATA_TO_ENG;
}
- Audio_PlaySfxGeneral(NA_SE_SY_WIN_OPEN, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_WIN_OPEN);
} else {
if (this->kbdButton == FS_KBD_BTN_BACKSPACE) {
if ((this->newFileNameCharCount == 7) &&
@@ -797,9 +777,7 @@ void FileSelect_DrawNameEntry(GameState* thisx) {
}
this->fileNames[this->buttonIndex][i] = FILENAME_SPACE;
- Audio_PlaySfxGeneral(NA_SE_SY_FSEL_DECIDE_S, &gSfxDefaultPos, 4,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_FSEL_DECIDE_S);
} else {
this->newFileNameCharCount--;
@@ -812,9 +790,7 @@ void FileSelect_DrawNameEntry(GameState* thisx) {
}
this->fileNames[this->buttonIndex][i] = FILENAME_SPACE;
- Audio_PlaySfxGeneral(NA_SE_SY_FSEL_DECIDE_S, &gSfxDefaultPos, 4,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_FSEL_DECIDE_S);
}
} else if (this->kbdButton == FS_KBD_BTN_END) {
validName = false;
@@ -827,9 +803,7 @@ void FileSelect_DrawNameEntry(GameState* thisx) {
}
if (validName) {
- Audio_PlaySfxGeneral(NA_SE_SY_FSEL_DECIDE_L, &gSfxDefaultPos, 4,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_FSEL_DECIDE_L);
gSaveContext.fileNum = this->buttonIndex;
dayTime = ((void)0, gSaveContext.save.dayTime);
Sram_InitSave(this, &this->sramCtx);
@@ -839,25 +813,21 @@ void FileSelect_DrawNameEntry(GameState* thisx) {
this->connectorAlpha[this->buttonIndex] = 255;
Rumble_Request(300.0f, 180, 20, 100);
} else {
- Audio_PlaySfxGeneral(NA_SE_SY_FSEL_ERROR, &gSfxDefaultPos, 4,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_FSEL_ERROR);
}
}
}
}
if (CHECK_BTN_ALL(input->press.button, BTN_CRIGHT)) {
- Audio_PlaySfxGeneral(NA_SE_SY_FSEL_CURSOR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_FSEL_CURSOR);
this->newFileNameCharCount++;
if (this->newFileNameCharCount > 7) {
this->newFileNameCharCount = 7;
}
} else if (CHECK_BTN_ALL(input->press.button, BTN_CLEFT)) {
- Audio_PlaySfxGeneral(NA_SE_SY_FSEL_CURSOR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_FSEL_CURSOR);
this->newFileNameCharCount--;
if (this->newFileNameCharCount < 0) {
@@ -865,8 +835,7 @@ void FileSelect_DrawNameEntry(GameState* thisx) {
}
} else if (CHECK_BTN_ALL(input->press.button, BTN_Z)) {
if (FileSelect_ApplyDiacriticToFilename(&this->state, FILENAME_SPACE)) {
- Audio_PlaySfxGeneral(NA_SE_SY_FSEL_DECIDE_S, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_FSEL_DECIDE_S);
}
}
#else
@@ -880,8 +849,7 @@ void FileSelect_DrawNameEntry(GameState* thisx) {
font->fontBuf + gCharPageEng[this->charIndex] * FONT_CHAR_TEX_SIZE, 0);
if (CHECK_BTN_ALL(input->press.button, BTN_A)) {
- Audio_PlaySfxGeneral(NA_SE_SY_FSEL_DECIDE_S, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_FSEL_DECIDE_S);
this->fileNames[this->buttonIndex][this->newFileNameCharCount] = gCharPageEng[this->charIndex];
this->newFileNameCharCount++;
@@ -898,9 +866,7 @@ void FileSelect_DrawNameEntry(GameState* thisx) {
}
this->fileNames[this->buttonIndex][i] = FILENAME_SPACE;
- Audio_PlaySfxGeneral(NA_SE_SY_FSEL_DECIDE_S, &gSfxDefaultPos, 4,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_FSEL_DECIDE_S);
} else {
this->newFileNameCharCount--;
@@ -913,9 +879,7 @@ void FileSelect_DrawNameEntry(GameState* thisx) {
}
this->fileNames[this->buttonIndex][i] = FILENAME_SPACE;
- Audio_PlaySfxGeneral(NA_SE_SY_FSEL_DECIDE_S, &gSfxDefaultPos, 4,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_FSEL_DECIDE_S);
}
} else if (this->kbdButton == FS_KBD_BTN_END) {
validName = false;
@@ -928,9 +892,7 @@ void FileSelect_DrawNameEntry(GameState* thisx) {
}
if (validName) {
- Audio_PlaySfxGeneral(NA_SE_SY_FSEL_DECIDE_L, &gSfxDefaultPos, 4,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_FSEL_DECIDE_L);
gSaveContext.fileNum = this->buttonIndex;
dayTime = ((void)0, gSaveContext.save.dayTime);
Sram_InitSave(this, &this->sramCtx);
@@ -940,23 +902,20 @@ void FileSelect_DrawNameEntry(GameState* thisx) {
this->connectorAlpha[this->buttonIndex] = 255;
Rumble_Request(300.0f, 180, 20, 100);
} else {
- Audio_PlaySfxGeneral(NA_SE_SY_FSEL_ERROR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_FSEL_ERROR);
}
}
}
if (CHECK_BTN_ALL(input->press.button, BTN_CRIGHT)) {
- Audio_PlaySfxGeneral(NA_SE_SY_FSEL_CURSOR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_FSEL_CURSOR);
this->newFileNameCharCount++;
if (this->newFileNameCharCount > 7) {
this->newFileNameCharCount = 7;
}
} else if (CHECK_BTN_ALL(input->press.button, BTN_CLEFT)) {
- Audio_PlaySfxGeneral(NA_SE_SY_FSEL_CURSOR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_FSEL_CURSOR);
this->newFileNameCharCount--;
if (this->newFileNameCharCount < 0) {
@@ -1020,16 +979,13 @@ void FileSelect_UpdateKeyboardCursor(GameState* thisx) {
if (gSaveContext.language == LANGUAGE_JPN) {
if (this->charPage == FS_CHAR_PAGE_HIRA) {
this->charPage = FS_CHAR_PAGE_HIRA_TO_KATA;
- Audio_PlaySfxGeneral(NA_SE_SY_WIN_OPEN, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_WIN_OPEN);
} else if (this->charPage == FS_CHAR_PAGE_KATA) {
this->charPage = FS_CHAR_PAGE_KATA_TO_ENG;
- Audio_PlaySfxGeneral(NA_SE_SY_WIN_OPEN, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_WIN_OPEN);
} else if (this->charPage == FS_CHAR_PAGE_ENG) {
this->charPage = FS_CHAR_PAGE_ENG_TO_HIRA;
- Audio_PlaySfxGeneral(NA_SE_SY_WIN_OPEN, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_WIN_OPEN);
}
}
} else {
@@ -1037,8 +993,7 @@ void FileSelect_UpdateKeyboardCursor(GameState* thisx) {
if (this->kbdY != 5) {
if (this->stickAdjX < -30) {
- Audio_PlaySfxGeneral(NA_SE_SY_FSEL_CURSOR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_FSEL_CURSOR);
this->charIndex--;
this->kbdX--;
if (this->kbdX < 0) {
@@ -1046,8 +1001,7 @@ void FileSelect_UpdateKeyboardCursor(GameState* thisx) {
this->charIndex = this->kbdY * 13 + this->kbdX;
}
} else if (this->stickAdjX > 30) {
- Audio_PlaySfxGeneral(NA_SE_SY_FSEL_CURSOR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_FSEL_CURSOR);
this->charIndex++;
this->kbdX++;
if (this->kbdX >= 13) {
@@ -1057,15 +1011,13 @@ void FileSelect_UpdateKeyboardCursor(GameState* thisx) {
}
} else if (gSaveContext.language == LANGUAGE_JPN) {
if (this->stickAdjX < -30) {
- Audio_PlaySfxGeneral(NA_SE_SY_FSEL_CURSOR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_FSEL_CURSOR);
this->kbdX--;
if (this->kbdX < 0) {
this->kbdX = 4;
}
} else if (this->stickAdjX > 30) {
- Audio_PlaySfxGeneral(NA_SE_SY_FSEL_CURSOR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_FSEL_CURSOR);
this->kbdX++;
if (this->kbdX >= 5) {
this->kbdX = 0;
@@ -1073,15 +1025,13 @@ void FileSelect_UpdateKeyboardCursor(GameState* thisx) {
}
} else {
if (this->stickAdjX < -30) {
- Audio_PlaySfxGeneral(NA_SE_SY_FSEL_CURSOR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_FSEL_CURSOR);
this->kbdX--;
if (this->kbdX < 3) {
this->kbdX = 4;
}
} else if (this->stickAdjX > 30) {
- Audio_PlaySfxGeneral(NA_SE_SY_FSEL_CURSOR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_FSEL_CURSOR);
this->kbdX++;
if (this->kbdX >= 5) {
this->kbdX = 3;
@@ -1090,8 +1040,7 @@ void FileSelect_UpdateKeyboardCursor(GameState* thisx) {
}
if (this->stickAdjY > 30) {
- Audio_PlaySfxGeneral(NA_SE_SY_FSEL_CURSOR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_FSEL_CURSOR);
this->kbdY--;
if (this->kbdY < 0) {
if (gSaveContext.language == LANGUAGE_JPN) {
@@ -1138,8 +1087,7 @@ void FileSelect_UpdateKeyboardCursor(GameState* thisx) {
}
}
} else if (this->stickAdjY < -30) {
- Audio_PlaySfxGeneral(NA_SE_SY_FSEL_CURSOR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_FSEL_CURSOR);
this->kbdY++;
if (this->kbdY >= 6) {
@@ -1207,8 +1155,7 @@ void FileSelect_UpdateKeyboardCursor(GameState* thisx) {
if (this->kbdY != 5) {
if (this->stickAdjX < -30) {
- Audio_PlaySfxGeneral(NA_SE_SY_FSEL_CURSOR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_FSEL_CURSOR);
this->charIndex--;
this->kbdX--;
if (this->kbdX < 0) {
@@ -1216,8 +1163,7 @@ void FileSelect_UpdateKeyboardCursor(GameState* thisx) {
this->charIndex = this->kbdY * 13 + this->kbdX;
}
} else if (this->stickAdjX > 30) {
- Audio_PlaySfxGeneral(NA_SE_SY_FSEL_CURSOR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_FSEL_CURSOR);
this->charIndex++;
this->kbdX++;
if (this->kbdX >= 13) {
@@ -1227,15 +1173,13 @@ void FileSelect_UpdateKeyboardCursor(GameState* thisx) {
}
} else {
if (this->stickAdjX < -30) {
- Audio_PlaySfxGeneral(NA_SE_SY_FSEL_CURSOR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_FSEL_CURSOR);
this->kbdX--;
if (this->kbdX < 3) {
this->kbdX = 4;
}
} else if (this->stickAdjX > 30) {
- Audio_PlaySfxGeneral(NA_SE_SY_FSEL_CURSOR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_FSEL_CURSOR);
this->kbdX++;
if (this->kbdX >= 5) {
this->kbdX = 3;
@@ -1244,8 +1188,7 @@ void FileSelect_UpdateKeyboardCursor(GameState* thisx) {
}
if (this->stickAdjY > 30) {
- Audio_PlaySfxGeneral(NA_SE_SY_FSEL_CURSOR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_FSEL_CURSOR);
this->kbdY--;
if (this->kbdY < 0) {
// don't go to bottom row
@@ -1273,8 +1216,7 @@ void FileSelect_UpdateKeyboardCursor(GameState* thisx) {
}
}
} else if (this->stickAdjY < -30) {
- Audio_PlaySfxGeneral(NA_SE_SY_FSEL_CURSOR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_FSEL_CURSOR);
this->kbdY++;
if (this->kbdY >= 6) {
@@ -1352,8 +1294,7 @@ void FileSelect_UpdateOptionsMenu(GameState* thisx) {
Input* input = &this->state.input[0];
if (CHECK_BTN_ALL(input->press.button, BTN_B)) {
- Audio_PlaySfxGeneral(NA_SE_SY_FSEL_DECIDE_L, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_FSEL_DECIDE_L);
this->configMode = CM_OPTIONS_TO_MAIN;
sramCtx->readBuff[0] = gSaveContext.soundSetting;
sramCtx->readBuff[1] = gSaveContext.zTargetSetting;
@@ -1375,8 +1316,7 @@ void FileSelect_UpdateOptionsMenu(GameState* thisx) {
}
if (this->stickAdjX < -30) {
- Audio_PlaySfxGeneral(NA_SE_SY_FSEL_CURSOR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_FSEL_CURSOR);
if (sSelectedSetting == FS_SETTING_AUDIO) {
gSaveContext.soundSetting--;
@@ -1400,8 +1340,7 @@ void FileSelect_UpdateOptionsMenu(GameState* thisx) {
#endif
}
} else if (this->stickAdjX > 30) {
- Audio_PlaySfxGeneral(NA_SE_SY_FSEL_CURSOR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_FSEL_CURSOR);
if (sSelectedSetting == FS_SETTING_AUDIO) {
gSaveContext.soundSetting++;
@@ -1427,32 +1366,27 @@ void FileSelect_UpdateOptionsMenu(GameState* thisx) {
#if !OOT_PAL_N64
if ((this->stickAdjY < -30) || (this->stickAdjY > 30)) {
- Audio_PlaySfxGeneral(NA_SE_SY_FSEL_CURSOR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_FSEL_CURSOR);
sSelectedSetting ^= 1;
} else if (CHECK_BTN_ALL(input->press.button, BTN_A)) {
- Audio_PlaySfxGeneral(NA_SE_SY_FSEL_DECIDE_L, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_FSEL_DECIDE_L);
sSelectedSetting ^= 1;
}
#else
if (this->stickAdjY < -30) {
- Audio_PlaySfxGeneral(NA_SE_SY_FSEL_CURSOR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_FSEL_CURSOR);
sSelectedSetting++;
if (sSelectedSetting >= FS_SETTING_MAX) {
sSelectedSetting = 0;
}
} else if (this->stickAdjY > 30) {
- Audio_PlaySfxGeneral(NA_SE_SY_FSEL_CURSOR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_FSEL_CURSOR);
sSelectedSetting--;
if (sSelectedSetting >= FS_SETTING_MAX) {
sSelectedSetting = FS_SETTING_MAX - 1;
}
} else if (CHECK_BTN_ALL(input->press.button, BTN_A)) {
- Audio_PlaySfxGeneral(NA_SE_SY_FSEL_DECIDE_L, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_FSEL_DECIDE_L);
sSelectedSetting++;
if (sSelectedSetting >= FS_SETTING_MAX) {
sSelectedSetting = 0;
diff --git a/src/overlays/gamestates/ovl_opening/z_opening.c b/src/overlays/gamestates/ovl_opening/z_opening.c
index f300c1ea7b..5ecef658d6 100644
--- a/src/overlays/gamestates/ovl_opening/z_opening.c
+++ b/src/overlays/gamestates/ovl_opening/z_opening.c
@@ -19,8 +19,9 @@ void TitleSetup_SetupTitleScreen(TitleSetupState* this) {
this->state.running = false;
gSaveContext.save.linkAge = LINK_AGE_ADULT;
Sram_InitDebugSave();
- gSaveContext.save.cutsceneIndex = 0xFFF3;
- gSaveContext.sceneLayer = 7;
+ gSaveContext.save.cutsceneIndex = CS_INDEX_3;
+ // assigning scene layer here is redundant, as Play_Init sets it right away
+ gSaveContext.sceneLayer = GET_CUTSCENE_LAYER(CS_INDEX_3);
SET_NEXT_GAMESTATE(&this->state, Play_Init, PlayState);
}
diff --git a/src/overlays/gamestates/ovl_select/z_select.c b/src/overlays/gamestates/ovl_select/z_select.c
index 329af45f22..a8d5f1ecc7 100644
--- a/src/overlays/gamestates/ovl_select/z_select.c
+++ b/src/overlays/gamestates/ovl_select/z_select.c
@@ -310,65 +310,65 @@ void MapSelect_UpdateMenu(MapSelectState* this) {
}
if (CHECK_BTN_ALL(input->press.button, BTN_Z)) {
- if (gSaveContext.save.cutsceneIndex == 0x8000) {
- gSaveContext.save.cutsceneIndex = 0;
- } else if (gSaveContext.save.cutsceneIndex == 0) {
- gSaveContext.save.cutsceneIndex = 0xFFF0;
- } else if (gSaveContext.save.cutsceneIndex == 0xFFF0) {
- gSaveContext.save.cutsceneIndex = 0xFFF1;
- } else if (gSaveContext.save.cutsceneIndex == 0xFFF1) {
- gSaveContext.save.cutsceneIndex = 0xFFF2;
- } else if (gSaveContext.save.cutsceneIndex == 0xFFF2) {
- gSaveContext.save.cutsceneIndex = 0xFFF3;
- } else if (gSaveContext.save.cutsceneIndex == 0xFFF3) {
- gSaveContext.save.cutsceneIndex = 0xFFF4;
- } else if (gSaveContext.save.cutsceneIndex == 0xFFF4) {
- gSaveContext.save.cutsceneIndex = 0xFFF5;
- } else if (gSaveContext.save.cutsceneIndex == 0xFFF5) {
- gSaveContext.save.cutsceneIndex = 0xFFF6;
- } else if (gSaveContext.save.cutsceneIndex == 0xFFF6) {
- gSaveContext.save.cutsceneIndex = 0xFFF7;
- } else if (gSaveContext.save.cutsceneIndex == 0xFFF7) {
- gSaveContext.save.cutsceneIndex = 0xFFF8;
- } else if (gSaveContext.save.cutsceneIndex == 0xFFF8) {
- gSaveContext.save.cutsceneIndex = 0xFFF9;
- } else if (gSaveContext.save.cutsceneIndex == 0xFFF9) {
- gSaveContext.save.cutsceneIndex = 0xFFFA;
- } else if (gSaveContext.save.cutsceneIndex == 0xFFFA) {
- gSaveContext.save.cutsceneIndex = 0x8000;
+ if (gSaveContext.save.cutsceneIndex == CS_INDEX_DAY) {
+ gSaveContext.save.cutsceneIndex = CS_INDEX_NIGHT;
+ } else if (gSaveContext.save.cutsceneIndex == CS_INDEX_NIGHT) {
+ gSaveContext.save.cutsceneIndex = CS_INDEX_0;
+ } else if (gSaveContext.save.cutsceneIndex == CS_INDEX_0) {
+ gSaveContext.save.cutsceneIndex = CS_INDEX_1;
+ } else if (gSaveContext.save.cutsceneIndex == CS_INDEX_1) {
+ gSaveContext.save.cutsceneIndex = CS_INDEX_2;
+ } else if (gSaveContext.save.cutsceneIndex == CS_INDEX_2) {
+ gSaveContext.save.cutsceneIndex = CS_INDEX_3;
+ } else if (gSaveContext.save.cutsceneIndex == CS_INDEX_3) {
+ gSaveContext.save.cutsceneIndex = CS_INDEX_4;
+ } else if (gSaveContext.save.cutsceneIndex == CS_INDEX_4) {
+ gSaveContext.save.cutsceneIndex = CS_INDEX_5;
+ } else if (gSaveContext.save.cutsceneIndex == CS_INDEX_5) {
+ gSaveContext.save.cutsceneIndex = CS_INDEX_6;
+ } else if (gSaveContext.save.cutsceneIndex == CS_INDEX_6) {
+ gSaveContext.save.cutsceneIndex = CS_INDEX_7;
+ } else if (gSaveContext.save.cutsceneIndex == CS_INDEX_7) {
+ gSaveContext.save.cutsceneIndex = CS_INDEX_8;
+ } else if (gSaveContext.save.cutsceneIndex == CS_INDEX_8) {
+ gSaveContext.save.cutsceneIndex = CS_INDEX_9;
+ } else if (gSaveContext.save.cutsceneIndex == CS_INDEX_9) {
+ gSaveContext.save.cutsceneIndex = CS_INDEX_A;
+ } else if (gSaveContext.save.cutsceneIndex == CS_INDEX_A) {
+ gSaveContext.save.cutsceneIndex = CS_INDEX_DAY;
}
} else if (CHECK_BTN_ALL(input->press.button, BTN_R)) {
- if (gSaveContext.save.cutsceneIndex == 0x8000) {
- gSaveContext.save.cutsceneIndex = 0xFFFA;
- } else if (gSaveContext.save.cutsceneIndex == 0) {
- gSaveContext.save.cutsceneIndex = 0x8000;
- } else if (gSaveContext.save.cutsceneIndex == 0xFFF0) {
- gSaveContext.save.cutsceneIndex = 0;
- } else if (gSaveContext.save.cutsceneIndex == 0xFFF1) {
- gSaveContext.save.cutsceneIndex = 0xFFF0;
- } else if (gSaveContext.save.cutsceneIndex == 0xFFF2) {
- gSaveContext.save.cutsceneIndex = 0xFFF1;
- } else if (gSaveContext.save.cutsceneIndex == 0xFFF3) {
- gSaveContext.save.cutsceneIndex = 0xFFF2;
- } else if (gSaveContext.save.cutsceneIndex == 0xFFF4) {
- gSaveContext.save.cutsceneIndex = 0xFFF3;
- } else if (gSaveContext.save.cutsceneIndex == 0xFFF5) {
- gSaveContext.save.cutsceneIndex = 0xFFF4;
- } else if (gSaveContext.save.cutsceneIndex == 0xFFF6) {
- gSaveContext.save.cutsceneIndex = 0xFFF5;
- } else if (gSaveContext.save.cutsceneIndex == 0xFFF7) {
- gSaveContext.save.cutsceneIndex = 0xFFF6;
- } else if (gSaveContext.save.cutsceneIndex == 0xFFF8) {
- gSaveContext.save.cutsceneIndex = 0xFFF7;
- } else if (gSaveContext.save.cutsceneIndex == 0xFFF9) {
- gSaveContext.save.cutsceneIndex = 0xFFF8;
- } else if (gSaveContext.save.cutsceneIndex == 0xFFFA) {
- gSaveContext.save.cutsceneIndex = 0xFFF9;
+ if (gSaveContext.save.cutsceneIndex == CS_INDEX_DAY) {
+ gSaveContext.save.cutsceneIndex = CS_INDEX_A;
+ } else if (gSaveContext.save.cutsceneIndex == CS_INDEX_NIGHT) {
+ gSaveContext.save.cutsceneIndex = CS_INDEX_DAY;
+ } else if (gSaveContext.save.cutsceneIndex == CS_INDEX_0) {
+ gSaveContext.save.cutsceneIndex = CS_INDEX_NIGHT;
+ } else if (gSaveContext.save.cutsceneIndex == CS_INDEX_1) {
+ gSaveContext.save.cutsceneIndex = CS_INDEX_0;
+ } else if (gSaveContext.save.cutsceneIndex == CS_INDEX_2) {
+ gSaveContext.save.cutsceneIndex = CS_INDEX_1;
+ } else if (gSaveContext.save.cutsceneIndex == CS_INDEX_3) {
+ gSaveContext.save.cutsceneIndex = CS_INDEX_2;
+ } else if (gSaveContext.save.cutsceneIndex == CS_INDEX_4) {
+ gSaveContext.save.cutsceneIndex = CS_INDEX_3;
+ } else if (gSaveContext.save.cutsceneIndex == CS_INDEX_5) {
+ gSaveContext.save.cutsceneIndex = CS_INDEX_4;
+ } else if (gSaveContext.save.cutsceneIndex == CS_INDEX_6) {
+ gSaveContext.save.cutsceneIndex = CS_INDEX_5;
+ } else if (gSaveContext.save.cutsceneIndex == CS_INDEX_7) {
+ gSaveContext.save.cutsceneIndex = CS_INDEX_6;
+ } else if (gSaveContext.save.cutsceneIndex == CS_INDEX_8) {
+ gSaveContext.save.cutsceneIndex = CS_INDEX_7;
+ } else if (gSaveContext.save.cutsceneIndex == CS_INDEX_9) {
+ gSaveContext.save.cutsceneIndex = CS_INDEX_8;
+ } else if (gSaveContext.save.cutsceneIndex == CS_INDEX_A) {
+ gSaveContext.save.cutsceneIndex = CS_INDEX_9;
}
}
gSaveContext.save.nightFlag = 0;
- if (gSaveContext.save.cutsceneIndex == 0) {
+ if (gSaveContext.save.cutsceneIndex == CS_INDEX_NIGHT) {
gSaveContext.save.nightFlag = 1;
}
@@ -387,15 +387,13 @@ void MapSelect_UpdateMenu(MapSelectState* this) {
if (this->timerUp == 0) {
this->timerUp = 20;
this->lockUp = true;
- Audio_PlaySfxGeneral(NA_SE_IT_SWORD_IMPACT, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_IT_SWORD_IMPACT);
this->verticalInput = R_UPDATE_RATE;
}
}
if (CHECK_BTN_ALL(input->cur.button, BTN_DUP) && this->timerUp == 0) {
- Audio_PlaySfxGeneral(NA_SE_IT_SWORD_IMPACT, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_IT_SWORD_IMPACT);
this->verticalInput = R_UPDATE_RATE * 3;
}
@@ -406,27 +404,23 @@ void MapSelect_UpdateMenu(MapSelectState* this) {
if (this->timerDown == 0) {
this->timerDown = 20;
this->lockDown = true;
- Audio_PlaySfxGeneral(NA_SE_IT_SWORD_IMPACT, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_IT_SWORD_IMPACT);
this->verticalInput = -R_UPDATE_RATE;
}
}
if (CHECK_BTN_ALL(input->cur.button, BTN_DDOWN) && (this->timerDown == 0)) {
- Audio_PlaySfxGeneral(NA_SE_IT_SWORD_IMPACT, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_IT_SWORD_IMPACT);
this->verticalInput = -R_UPDATE_RATE * 3;
}
if (CHECK_BTN_ALL(input->press.button, BTN_DLEFT) || CHECK_BTN_ALL(input->cur.button, BTN_DLEFT)) {
- Audio_PlaySfxGeneral(NA_SE_IT_SWORD_IMPACT, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_IT_SWORD_IMPACT);
this->verticalInput = R_UPDATE_RATE;
}
if (CHECK_BTN_ALL(input->press.button, BTN_DRIGHT) || CHECK_BTN_ALL(input->cur.button, BTN_DRIGHT)) {
- Audio_PlaySfxGeneral(NA_SE_IT_SWORD_IMPACT, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_IT_SWORD_IMPACT);
this->verticalInput = -R_UPDATE_RATE;
}
}
@@ -571,48 +565,48 @@ void MapSelect_PrintCutsceneSetting(MapSelectState* this, GfxPrint* printer, u16
GfxPrint_SetColor(printer, 255, 255, 55, 255);
switch (csIndex) {
- case 0:
+ case CS_INDEX_NIGHT:
label = T(GFXP_HIRAGANA " ヨル " GFXP_KATAKANA "ゴロン", "Night");
gSaveContext.save.dayTime = CLOCK_TIME(0, 0);
break;
- case 0x8000:
+ case CS_INDEX_DAY:
// clang-format off
gSaveContext.save.dayTime = CLOCK_TIME(12, 0); label = T(GFXP_HIRAGANA "オヒル " GFXP_KATAKANA "ジャラ", "Day");
// clang-format on
break;
- case 0xFFF0:
+ case CS_INDEX_0:
// clang-format off
gSaveContext.save.dayTime = CLOCK_TIME(12, 0); label = T("デモ00", "Demo 00");
// clang-format on
break;
- case 0xFFF1:
+ case CS_INDEX_1:
label = T("デモ01", "Demo 01");
break;
- case 0xFFF2:
+ case CS_INDEX_2:
label = T("デモ02", "Demo 02");
break;
- case 0xFFF3:
+ case CS_INDEX_3:
label = T("デモ03", "Demo 03");
break;
- case 0xFFF4:
+ case CS_INDEX_4:
label = T("デモ04", "Demo 04");
break;
- case 0xFFF5:
+ case CS_INDEX_5:
label = T("デモ05", "Demo 05");
break;
- case 0xFFF6:
+ case CS_INDEX_6:
label = T("デモ06", "Demo 06");
break;
- case 0xFFF7:
+ case CS_INDEX_7:
label = T("デモ07", "Demo 07");
break;
- case 0xFFF8:
+ case CS_INDEX_8:
label = T("デモ08", "Demo 08");
break;
- case 0xFFF9:
+ case CS_INDEX_9:
label = T("デモ09", "Demo 09");
break;
- case 0xFFFA:
+ case CS_INDEX_A:
label = T("デモ0A", "Demo 0A");
break;
};
@@ -742,6 +736,6 @@ void MapSelect_Init(GameState* thisx) {
DMA_REQUEST_SYNC(this->staticSegment, (uintptr_t)_z_select_staticSegmentRomStart, size, "../z_select.c", 1115);
}
- gSaveContext.save.cutsceneIndex = 0x8000;
+ gSaveContext.save.cutsceneIndex = CS_INDEX_DAY;
gSaveContext.save.linkAge = LINK_AGE_CHILD;
}
diff --git a/src/overlays/misc/ovl_kaleido_scope/z_kaleido_collect.c b/src/overlays/misc/ovl_kaleido_scope/z_kaleido_collect.c
index 87a30a53b5..78dcccb573 100644
--- a/src/overlays/misc/ovl_kaleido_scope/z_kaleido_collect.c
+++ b/src/overlays/misc/ovl_kaleido_scope/z_kaleido_collect.c
@@ -252,8 +252,7 @@ void KaleidoScope_DrawQuestStatus(PlayState* play, GraphicsContext* gfxCtx) {
// if the cursor point changed
if (pauseCtx->cursorPoint[PAUSE_QUEST] != prevCursorPoint) {
pauseCtx->mainState = PAUSE_MAIN_STATE_IDLE;
- Audio_PlaySfxGeneral(NA_SE_SY_CURSOR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_CURSOR);
}
// Update cursor item and slot
@@ -351,8 +350,7 @@ void KaleidoScope_DrawQuestStatus(PlayState* play, GraphicsContext* gfxCtx) {
cursor = pauseCtx->cursorPoint[PAUSE_QUEST];
KaleidoScope_SetCursorPos(pauseCtx, cursor * 4, pauseCtx->questVtx);
- Audio_PlaySfxGeneral(NA_SE_SY_CURSOR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_CURSOR);
if (CHECK_QUEST_ITEM(pauseCtx->cursorPoint[PAUSE_QUEST])) {
cursorItem = ITEM_STONE_OF_AGONY - QUEST_STONE_OF_AGONY + pauseCtx->cursorPoint[PAUSE_QUEST];
@@ -373,8 +371,7 @@ void KaleidoScope_DrawQuestStatus(PlayState* play, GraphicsContext* gfxCtx) {
cursor = pauseCtx->cursorPoint[PAUSE_QUEST];
KaleidoScope_SetCursorPos(pauseCtx, cursor * 4, pauseCtx->questVtx);
- Audio_PlaySfxGeneral(NA_SE_SY_CURSOR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_CURSOR);
if (CHECK_QUEST_ITEM(pauseCtx->cursorPoint[PAUSE_QUEST])) {
// Only the first if may be reached, as QUEST_MEDALLION_FOREST is set above
diff --git a/src/overlays/misc/ovl_kaleido_scope/z_kaleido_equipment.c b/src/overlays/misc/ovl_kaleido_scope/z_kaleido_equipment.c
index 1f573ca3e3..1ac3237125 100644
--- a/src/overlays/misc/ovl_kaleido_scope/z_kaleido_equipment.c
+++ b/src/overlays/misc/ovl_kaleido_scope/z_kaleido_equipment.c
@@ -377,8 +377,7 @@ void KaleidoScope_DrawEquipment(PlayState* play) {
pauseCtx->nameDisplayTimer = 0;
pauseCtx->cursorSpecialPos = 0;
- Audio_PlaySfxGeneral(NA_SE_SY_CURSOR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_CURSOR);
cursorPoint = cursorX = cursorY = 0;
while (true) {
@@ -424,8 +423,7 @@ void KaleidoScope_DrawEquipment(PlayState* play) {
if (pauseCtx->stickAdjX < -30) {
pauseCtx->nameDisplayTimer = 0;
pauseCtx->cursorSpecialPos = 0;
- Audio_PlaySfxGeneral(NA_SE_SY_CURSOR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_CURSOR);
cursorPoint = cursorX = 3;
cursorY = 0;
@@ -574,21 +572,18 @@ void KaleidoScope_DrawEquipment(PlayState* play) {
Interface_LoadItemIcon1(play, 0);
}
- Audio_PlaySfxGeneral(NA_SE_SY_DECIDE, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_DECIDE);
// Wait 10 frames before accepting input again
pauseCtx->mainState = PAUSE_MAIN_STATE_EQUIP_CHANGED;
sEquipTimer = 10;
} else {
- Audio_PlaySfxGeneral(NA_SE_SY_ERROR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_ERROR);
}
}
if (oldCursorPoint != pauseCtx->cursorPoint[PAUSE_EQUIP]) {
- Audio_PlaySfxGeneral(NA_SE_SY_CURSOR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_CURSOR);
}
} else if ((pauseCtx->mainState == PAUSE_MAIN_STATE_EQUIP_CHANGED) && (pauseCtx->pageIndex == PAUSE_EQUIP)) {
KaleidoScope_SetCursorPos(pauseCtx, pauseCtx->cursorSlot[PAUSE_EQUIP] * 4, pauseCtx->equipVtx);
diff --git a/src/overlays/misc/ovl_kaleido_scope/z_kaleido_item.c b/src/overlays/misc/ovl_kaleido_scope/z_kaleido_item.c
index eb4d7e3c7a..a1dda57997 100644
--- a/src/overlays/misc/ovl_kaleido_scope/z_kaleido_item.c
+++ b/src/overlays/misc/ovl_kaleido_scope/z_kaleido_item.c
@@ -110,7 +110,14 @@ void KaleidoScope_DrawAmmoCount(PauseContext* pauseCtx, GraphicsContext* gfxCtx,
CLOSE_DISPS(gfxCtx, "../z_kaleido_item.c", 116);
}
+/**
+ * Set the cursor to the position of `vtx[index]`.
+ * The position indicates the cursor's top-left.
+ *
+ * @see KaleidoScope_UpdateCursorVtx where this position is used to update all cursor quads.
+ */
void KaleidoScope_SetCursorPos(PauseContext* pauseCtx, u16 index, Vtx* vtx) {
+ // PAUSE_QUAD_CURSOR_TL
pauseCtx->cursorVtx[0].v.ob[0] = vtx[index].v.ob[0];
pauseCtx->cursorVtx[0].v.ob[1] = vtx[index].v.ob[1];
}
@@ -257,8 +264,7 @@ void KaleidoScope_DrawItemSelect(PlayState* play) {
pauseCtx->nameDisplayTimer = 0;
pauseCtx->cursorSpecialPos = 0;
- Audio_PlaySfxGeneral(NA_SE_SY_CURSOR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_CURSOR);
cursorPoint = cursorX = cursorY = 0;
while (true) {
@@ -288,8 +294,7 @@ void KaleidoScope_DrawItemSelect(PlayState* play) {
pauseCtx->nameDisplayTimer = 0;
pauseCtx->cursorSpecialPos = 0;
- Audio_PlaySfxGeneral(NA_SE_SY_CURSOR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_CURSOR);
cursorPoint = cursorX = ITEM_GRID_COLS - 1;
cursorY = 0;
@@ -416,20 +421,16 @@ void KaleidoScope_DrawItemSelect(PlayState* play) {
if (pauseCtx->equipTargetItem == ITEM_ARROW_LIGHT) {
index = 2;
}
- Audio_PlaySfxGeneral(NA_SE_SY_SET_FIRE_ARROW + index, &gSfxDefaultPos, 4,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_SET_FIRE_ARROW + index);
pauseCtx->equipTargetItem = 0xBF + index;
sEquipState = 0;
pauseCtx->equipAnimAlpha = 0;
sEquipMoveTimer = 6;
} else {
- Audio_PlaySfxGeneral(NA_SE_SY_DECIDE, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_DECIDE);
}
} else {
- Audio_PlaySfxGeneral(NA_SE_SY_ERROR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_ERROR);
}
}
}
@@ -445,8 +446,7 @@ void KaleidoScope_DrawItemSelect(PlayState* play) {
}
if (oldCursorPoint != pauseCtx->cursorPoint[PAUSE_ITEM]) {
- Audio_PlaySfxGeneral(NA_SE_SY_CURSOR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_CURSOR);
}
} else if ((pauseCtx->mainState == PAUSE_MAIN_STATE_3) && (pauseCtx->pageIndex == PAUSE_ITEM)) {
//! @bug cursorSlot is uninitialized
@@ -568,8 +568,7 @@ void KaleidoScope_UpdateItemEquip(PlayState* play) {
WREG(90) = 320;
WREG(87) = WREG(91);
sEquipState++;
- Audio_PlaySfxGeneral(NA_SE_SY_SYNTH_MAGIC_ARROW, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_SYNTH_MAGIC_ARROW);
}
return;
}
diff --git a/src/overlays/misc/ovl_kaleido_scope/z_kaleido_map.c b/src/overlays/misc/ovl_kaleido_scope/z_kaleido_map.c
index 00c57579b0..f454594b4d 100644
--- a/src/overlays/misc/ovl_kaleido_scope/z_kaleido_map.c
+++ b/src/overlays/misc/ovl_kaleido_scope/z_kaleido_map.c
@@ -164,8 +164,7 @@ void KaleidoScope_DrawDungeonMap(PlayState* play, GraphicsContext* gfxCtx) {
pauseCtx->cursorX[PAUSE_MAP] = 0;
j = (pauseCtx->cursorSlot[PAUSE_MAP] + 18) * 4;
KaleidoScope_SetCursorPos(pauseCtx, j, pauseCtx->mapPageVtx);
- Audio_PlaySfxGeneral(NA_SE_SY_CURSOR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_CURSOR);
}
} else {
if (pauseCtx->stickAdjX < -30) {
@@ -195,14 +194,12 @@ void KaleidoScope_DrawDungeonMap(PlayState* play, GraphicsContext* gfxCtx) {
PRINTF("kscope->cursor_point====%d\n", pauseCtx->cursorPoint[PAUSE_MAP]);
j = (pauseCtx->cursorSlot[PAUSE_MAP] + 18) * 4;
KaleidoScope_SetCursorPos(pauseCtx, j, pauseCtx->mapPageVtx);
- Audio_PlaySfxGeneral(NA_SE_SY_CURSOR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_CURSOR);
}
}
if (oldCursorPoint != pauseCtx->cursorPoint[PAUSE_MAP]) {
- Audio_PlaySfxGeneral(NA_SE_SY_CURSOR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_CURSOR);
}
}
@@ -592,7 +589,13 @@ void KaleidoScope_DrawWorldMap(PlayState* play, GraphicsContext* gfxCtx) {
PAGE_BG_QUADS + WORLD_MAP_QUAD_POINT_FIRST + pauseCtx->cursorPoint[PAUSE_WORLD_MAP];
KaleidoScope_SetCursorPos(pauseCtx, pauseCtx->cursorSlot[PAUSE_MAP] * 4, pauseCtx->mapPageVtx);
} else {
+
+ //! @bug This causes a weird DMA request in `KaleidoScope_UpdateNamePanel`,
+ //! either for unintended data or outside the intended segment.
+ // This isn't a visual issue in practice because drawing the texture loaded in
+ // `KaleidoScope_UpdateNamePanel` is only done under `cursorSpecialPos == 0`.
pauseCtx->cursorItem[PAUSE_MAP] = gSaveContext.worldMapArea + 0x18;
+
if (pauseCtx->cursorSpecialPos == PAUSE_CURSOR_PAGE_LEFT) {
if (pauseCtx->stickAdjX > 30) {
pauseCtx->cursorSpecialPos = 0;
@@ -607,8 +610,7 @@ void KaleidoScope_DrawWorldMap(PlayState* play, GraphicsContext* gfxCtx) {
pauseCtx->cursorSlot[PAUSE_MAP] =
PAGE_BG_QUADS + WORLD_MAP_QUAD_POINT_FIRST + pauseCtx->cursorPoint[PAUSE_WORLD_MAP];
KaleidoScope_SetCursorPos(pauseCtx, pauseCtx->cursorSlot[PAUSE_MAP] * 4, pauseCtx->mapPageVtx);
- Audio_PlaySfxGeneral(NA_SE_SY_CURSOR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_CURSOR);
D_8082A6D4 = 0;
}
} else {
@@ -625,8 +627,7 @@ void KaleidoScope_DrawWorldMap(PlayState* play, GraphicsContext* gfxCtx) {
pauseCtx->cursorSlot[PAUSE_MAP] =
PAGE_BG_QUADS + WORLD_MAP_QUAD_POINT_FIRST + pauseCtx->cursorPoint[PAUSE_WORLD_MAP];
KaleidoScope_SetCursorPos(pauseCtx, pauseCtx->cursorSlot[PAUSE_MAP] * 4, pauseCtx->mapPageVtx);
- Audio_PlaySfxGeneral(NA_SE_SY_CURSOR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_CURSOR);
D_8082A6D4 = 0;
}
}
@@ -637,8 +638,7 @@ void KaleidoScope_DrawWorldMap(PlayState* play, GraphicsContext* gfxCtx) {
}
if (oldCursorPoint != pauseCtx->cursorPoint[PAUSE_WORLD_MAP]) {
- Audio_PlaySfxGeneral(NA_SE_SY_CURSOR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_CURSOR);
}
}
diff --git a/src/overlays/misc/ovl_kaleido_scope/z_kaleido_prompt.c b/src/overlays/misc/ovl_kaleido_scope/z_kaleido_prompt.c
index 265a122116..71f4a71a9c 100644
--- a/src/overlays/misc/ovl_kaleido_scope/z_kaleido_prompt.c
+++ b/src/overlays/misc/ovl_kaleido_scope/z_kaleido_prompt.c
@@ -19,12 +19,10 @@ void KaleidoScope_UpdatePrompt(PlayState* play) {
(pauseCtx->state == PAUSE_STATE_GAME_OVER_CONTINUE_PROMPT)) {
if ((pauseCtx->promptChoice == 0) && (stickAdjX >= 30)) {
- Audio_PlaySfxGeneral(NA_SE_SY_CURSOR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_CURSOR);
pauseCtx->promptChoice = 4;
} else if ((pauseCtx->promptChoice != 0) && (stickAdjX <= -30)) {
- Audio_PlaySfxGeneral(NA_SE_SY_CURSOR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_CURSOR);
pauseCtx->promptChoice = 0;
}
diff --git a/src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope.c b/src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope.c
index 2a76a40fa2..c7b7042244 100644
--- a/src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope.c
+++ b/src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope.c
@@ -63,7 +63,7 @@
#define KALEIDO_COLOR_CURSOR_UNK_B 50
#endif
-typedef enum {
+typedef enum VtxPageInit {
/* 0 */ VTX_PAGE_ITEM,
/* 1 */ VTX_PAGE_EQUIP,
/* 2 */ VTX_PAGE_MAP_DUNGEON,
@@ -932,7 +932,7 @@ static void* sPromptChoiceTexs[][2] = {
//! non-static, but we make it static here to match the bss order and patch the relocation section later in the build
//! as our relocation generator does count COMMON symbols.
-static u8 D_808321A8[5];
+static u8 sSavedButtonStatus[5];
static PreRender sPlayerPreRender;
void* sPreRenderCvg;
@@ -1020,8 +1020,7 @@ void KaleidoScope_MoveCursorToSpecialPos(PlayState* play, u16 specialPos) {
pauseCtx->cursorSpecialPos = specialPos;
pauseCtx->pageSwitchInputTimer = 0;
- Audio_PlaySfxGeneral(NA_SE_SY_DECIDE, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_DECIDE);
}
void KaleidoScope_DrawQuadTextureRGBA32(GraphicsContext* gfxCtx, void* texture, u16 width, u16 height, u16 point) {
@@ -1078,13 +1077,11 @@ void KaleidoScope_SetupPageSwitch(PauseContext* pauseCtx, u8 pt) {
if (!pt) { // PAGE_SWITCH_PT_LEFT
pauseCtx->nextPageMode = pauseCtx->pageIndex * 2 + 1;
- Audio_PlaySfxGeneral(NA_SE_SY_WIN_SCROLL_LEFT, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_WIN_SCROLL_LEFT);
pauseCtx->cursorSpecialPos = PAUSE_CURSOR_PAGE_RIGHT;
} else { // PAGE_SWITCH_PT_RIGHT
pauseCtx->nextPageMode = pauseCtx->pageIndex * 2;
- Audio_PlaySfxGeneral(NA_SE_SY_WIN_SCROLL_RIGHT, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_WIN_SCROLL_RIGHT);
pauseCtx->cursorSpecialPos = PAUSE_CURSOR_PAGE_LEFT;
}
@@ -1652,14 +1649,17 @@ void KaleidoScope_DrawPages(PlayState* play, GraphicsContext* gfxCtx) {
CLOSE_DISPS(gfxCtx, "../z_kaleido_scope_PAL.c", 1577);
}
-void KaleidoScope_DrawInfoPanel(PlayState* play) {
- static void* D_8082AD54[] =
+/**
+ * Draws the buttons for scrolling left/right, and the info plate.
+ */
+void KaleidoScope_DrawUIOverlay(PlayState* play) {
+ static void* sToEquipTextTextures[] =
LANGUAGE_ARRAY(gPauseToEquipJPNTex, gPauseToEquipENGTex, gPauseToEquipGERTex, gPauseToEquipFRATex);
- static void* D_8082AD60[] =
+ static void* sToDecideTextTextures[] =
LANGUAGE_ARRAY(gPauseToDecideJPNTex, gPauseToDecideENGTex, gPauseToDecideGERTex, gPauseToDecideFRATex);
- static void* D_8082AD6C[] = LANGUAGE_ARRAY(gPauseToPlayMelodyJPNTex, gPauseToPlayMelodyENGTex,
- gPauseToPlayMelodyGERTex, gPauseToPlayMelodyFRATex);
- static void* D_8082AD78[][LANGUAGE_MAX] = {
+ static void* sToPlayMelodyTextTextures[] = LANGUAGE_ARRAY(gPauseToPlayMelodyJPNTex, gPauseToPlayMelodyENGTex,
+ gPauseToPlayMelodyGERTex, gPauseToPlayMelodyFRATex);
+ static void* sScrollLeftLabels[][LANGUAGE_MAX] = {
LANGUAGE_ARRAY(gPauseToEquipmentJPNTex, gPauseToEquipmentENGTex, gPauseToEquipmentGERTex,
gPauseToEquipmentFRATex),
LANGUAGE_ARRAY(gPauseToSelectItemJPNTex, gPauseToSelectItemENGTex, gPauseToSelectItemGERTex,
@@ -1668,7 +1668,7 @@ void KaleidoScope_DrawInfoPanel(PlayState* play) {
LANGUAGE_ARRAY(gPauseToQuestStatusJPNTex, gPauseToQuestStatusENGTex, gPauseToQuestStatusGERTex,
gPauseToQuestStatusFRATex),
};
- static void* D_8082ADA8[][LANGUAGE_MAX] = {
+ static void* sScrollRightLabels[][LANGUAGE_MAX] = {
LANGUAGE_ARRAY(gPauseToMapJPNTex, gPauseToMapENGTex, gPauseToMapGERTex, gPauseToMapFRATex),
LANGUAGE_ARRAY(gPauseToQuestStatusJPNTex, gPauseToQuestStatusENGTex, gPauseToQuestStatusGERTex,
gPauseToQuestStatusFRATex),
@@ -1677,9 +1677,13 @@ void KaleidoScope_DrawInfoPanel(PlayState* play) {
LANGUAGE_ARRAY(gPauseToSelectItemJPNTex, gPauseToSelectItemENGTex, gPauseToSelectItemGERTex,
gPauseToSelectItemFRATex),
};
- static u16 D_8082ADD8[] = LANGUAGE_ARRAY(56, 56, 88, 80);
- static u16 D_8082ADE0[] = LANGUAGE_ARRAY(48, 64, 88, 72);
- static u16 D_8082ADE8[] = LANGUAGE_ARRAY(96, 80, 104, 112);
+ static u16 sToEquipTextWidths[] = LANGUAGE_ARRAY(gPauseToEquipJPNTex_WIDTH, gPauseToEquipENGTex_WIDTH,
+ gPauseToEquipGERTex_WIDTH, gPauseToEquipFRATex_WIDTH);
+ static u16 sToDecideTextWidths[] = LANGUAGE_ARRAY(gPauseToDecideJPNTex_WIDTH, gPauseToDecideENGTex_WIDTH,
+ gPauseToDecideGERTex_WIDTH, gPauseToDecideFRATex_WIDTH);
+ static u16 sToPlayMelodyTextWidths[] =
+ LANGUAGE_ARRAY(gPauseToPlayMelodyJPNTex_WIDTH, gPauseToPlayMelodyENGTex_WIDTH, gPauseToPlayMelodyGERTex_WIDTH,
+ gPauseToPlayMelodyFRATex_WIDTH);
static s16 D_8082ADF0[][4] = {
{ 180, 210, 255, 220 },
{ 100, 100, 150, 220 },
@@ -1701,7 +1705,7 @@ void KaleidoScope_DrawInfoPanel(PlayState* play) {
s16 stepG;
s16 stepB;
s16 stepA;
- s16 temp;
+ s16 y;
s16 i;
s16 j;
@@ -1742,91 +1746,98 @@ void KaleidoScope_DrawInfoPanel(PlayState* play) {
D_8082AE04 ^= 1;
}
- temp = pauseCtx->infoPanelOffsetY - 76;
- for (j = 0, i = 0; i < 7; i++, j += 4) {
- pauseCtx->infoPanelVtx[j + 0].v.ob[0] = pauseCtx->infoPanelVtx[j + 2].v.ob[0] = -72;
+ y = pauseCtx->infoPanelOffsetY - 76;
+ for (j = 0, i = 0; i < UI_OVERLAY_QUAD_MAX; i++, j += 4) {
+ pauseCtx->uiOverlayVtx[j + 0].v.ob[0] = pauseCtx->uiOverlayVtx[j + 2].v.ob[0] = -72;
- pauseCtx->infoPanelVtx[j + 1].v.ob[0] = pauseCtx->infoPanelVtx[j + 3].v.ob[0] = 0;
+ pauseCtx->uiOverlayVtx[j + 1].v.ob[0] = pauseCtx->uiOverlayVtx[j + 3].v.ob[0] = 0;
- pauseCtx->infoPanelVtx[j + 0].v.ob[1] = pauseCtx->infoPanelVtx[j + 1].v.ob[1] = temp;
+ pauseCtx->uiOverlayVtx[j + 0].v.ob[1] = pauseCtx->uiOverlayVtx[j + 1].v.ob[1] = y;
- pauseCtx->infoPanelVtx[j + 2].v.ob[1] = pauseCtx->infoPanelVtx[j + 3].v.ob[1] = temp - 24;
+ pauseCtx->uiOverlayVtx[j + 2].v.ob[1] = pauseCtx->uiOverlayVtx[j + 3].v.ob[1] = y - 24;
- pauseCtx->infoPanelVtx[j + 0].v.ob[2] = pauseCtx->infoPanelVtx[j + 1].v.ob[2] =
- pauseCtx->infoPanelVtx[j + 2].v.ob[2] = pauseCtx->infoPanelVtx[j + 3].v.ob[2] = 0;
+ pauseCtx->uiOverlayVtx[j + 0].v.ob[2] = pauseCtx->uiOverlayVtx[j + 1].v.ob[2] =
+ pauseCtx->uiOverlayVtx[j + 2].v.ob[2] = pauseCtx->uiOverlayVtx[j + 3].v.ob[2] = 0;
- pauseCtx->infoPanelVtx[j + 0].v.flag = pauseCtx->infoPanelVtx[j + 1].v.flag =
- pauseCtx->infoPanelVtx[j + 2].v.flag = pauseCtx->infoPanelVtx[j + 3].v.flag = 0;
+ pauseCtx->uiOverlayVtx[j + 0].v.flag = pauseCtx->uiOverlayVtx[j + 1].v.flag =
+ pauseCtx->uiOverlayVtx[j + 2].v.flag = pauseCtx->uiOverlayVtx[j + 3].v.flag = 0;
- pauseCtx->infoPanelVtx[j + 0].v.tc[0] = pauseCtx->infoPanelVtx[j + 0].v.tc[1] =
- pauseCtx->infoPanelVtx[j + 1].v.tc[1] = pauseCtx->infoPanelVtx[j + 2].v.tc[0] = 0;
+ pauseCtx->uiOverlayVtx[j + 0].v.tc[0] = pauseCtx->uiOverlayVtx[j + 0].v.tc[1] =
+ pauseCtx->uiOverlayVtx[j + 1].v.tc[1] = pauseCtx->uiOverlayVtx[j + 2].v.tc[0] = 0;
- pauseCtx->infoPanelVtx[j + 1].v.tc[0] = pauseCtx->infoPanelVtx[j + 3].v.tc[0] = 0x900;
+ pauseCtx->uiOverlayVtx[j + 1].v.tc[0] = pauseCtx->uiOverlayVtx[j + 3].v.tc[0] = 72 * (1 << 5);
- pauseCtx->infoPanelVtx[j + 2].v.tc[1] = pauseCtx->infoPanelVtx[j + 3].v.tc[1] = 0x300;
+ // 24 = gInfoPanelBgLeftTex_HEIGHT, gInfoPanelBgRightTex_HEIGHT, gQuestIconGoldSkulltulaTex_HEIGHT
+ pauseCtx->uiOverlayVtx[j + 2].v.tc[1] = pauseCtx->uiOverlayVtx[j + 3].v.tc[1] = 24 * (1 << 5);
- pauseCtx->infoPanelVtx[j + 0].v.cn[0] = pauseCtx->infoPanelVtx[j + 2].v.cn[0] =
- pauseCtx->infoPanelVtx[j + 0].v.cn[1] = pauseCtx->infoPanelVtx[j + 2].v.cn[1] =
- pauseCtx->infoPanelVtx[j + 0].v.cn[2] = pauseCtx->infoPanelVtx[j + 2].v.cn[2] =
- pauseCtx->infoPanelVtx[j + 1].v.cn[0] = pauseCtx->infoPanelVtx[j + 3].v.cn[0] =
- pauseCtx->infoPanelVtx[j + 1].v.cn[1] = pauseCtx->infoPanelVtx[j + 3].v.cn[1] =
- pauseCtx->infoPanelVtx[j + 1].v.cn[2] = pauseCtx->infoPanelVtx[j + 3].v.cn[2] = 200;
+ pauseCtx->uiOverlayVtx[j + 0].v.cn[0] = pauseCtx->uiOverlayVtx[j + 2].v.cn[0] =
+ pauseCtx->uiOverlayVtx[j + 0].v.cn[1] = pauseCtx->uiOverlayVtx[j + 2].v.cn[1] =
+ pauseCtx->uiOverlayVtx[j + 0].v.cn[2] = pauseCtx->uiOverlayVtx[j + 2].v.cn[2] =
+ pauseCtx->uiOverlayVtx[j + 1].v.cn[0] = pauseCtx->uiOverlayVtx[j + 3].v.cn[0] =
+ pauseCtx->uiOverlayVtx[j + 1].v.cn[1] = pauseCtx->uiOverlayVtx[j + 3].v.cn[1] =
+ pauseCtx->uiOverlayVtx[j + 1].v.cn[2] = pauseCtx->uiOverlayVtx[j + 3].v.cn[2] = 200;
- pauseCtx->infoPanelVtx[j + 0].v.cn[3] = pauseCtx->infoPanelVtx[j + 2].v.cn[3] =
- pauseCtx->infoPanelVtx[j + 1].v.cn[3] = pauseCtx->infoPanelVtx[j + 3].v.cn[3] = pauseCtx->alpha;
+ pauseCtx->uiOverlayVtx[j + 0].v.cn[3] = pauseCtx->uiOverlayVtx[j + 2].v.cn[3] =
+ pauseCtx->uiOverlayVtx[j + 1].v.cn[3] = pauseCtx->uiOverlayVtx[j + 3].v.cn[3] = pauseCtx->alpha;
}
- pauseCtx->infoPanelVtx[4].v.ob[0] = pauseCtx->infoPanelVtx[6].v.ob[0] = pauseCtx->infoPanelVtx[0].v.ob[0] + 72;
+ // UI_OVERLAY_QUAD_INFO_BG_RIGHT
+ pauseCtx->uiOverlayVtx[4].v.ob[0] = pauseCtx->uiOverlayVtx[6].v.ob[0] = pauseCtx->uiOverlayVtx[0].v.ob[0] + 72;
- pauseCtx->infoPanelVtx[5].v.ob[0] = pauseCtx->infoPanelVtx[7].v.ob[0] = pauseCtx->infoPanelVtx[4].v.ob[0] + 72;
+ pauseCtx->uiOverlayVtx[5].v.ob[0] = pauseCtx->uiOverlayVtx[7].v.ob[0] = pauseCtx->uiOverlayVtx[4].v.ob[0] + 72;
+ // UI_OVERLAY_QUAD_BUTTON_LEFT
if ((pauseCtx->cursorSpecialPos == PAUSE_CURSOR_PAGE_LEFT) && (pauseCtx->mainState == PAUSE_MAIN_STATE_IDLE)) {
- pauseCtx->infoPanelVtx[8].v.ob[0] = pauseCtx->infoPanelVtx[10].v.ob[0] = WREG(16);
+ pauseCtx->uiOverlayVtx[8].v.ob[0] = pauseCtx->uiOverlayVtx[10].v.ob[0] = R_PAUSE_BUTTON_LEFT_X;
- pauseCtx->infoPanelVtx[9].v.ob[0] = pauseCtx->infoPanelVtx[11].v.ob[0] = pauseCtx->infoPanelVtx[8].v.ob[0] + 24;
+ pauseCtx->uiOverlayVtx[9].v.ob[0] = pauseCtx->uiOverlayVtx[11].v.ob[0] =
+ pauseCtx->uiOverlayVtx[8].v.ob[0] + UI_OVERLAY_QUAD_BUTTON_LR_WIDTH;
- pauseCtx->infoPanelVtx[8].v.ob[1] = pauseCtx->infoPanelVtx[9].v.ob[1] = WREG(18);
+ pauseCtx->uiOverlayVtx[8].v.ob[1] = pauseCtx->uiOverlayVtx[9].v.ob[1] = R_PAUSE_BUTTON_LEFT_RIGHT_Y;
- pauseCtx->infoPanelVtx[10].v.ob[1] = pauseCtx->infoPanelVtx[11].v.ob[1] =
- pauseCtx->infoPanelVtx[8].v.ob[1] - 32;
+ pauseCtx->uiOverlayVtx[10].v.ob[1] = pauseCtx->uiOverlayVtx[11].v.ob[1] =
+ pauseCtx->uiOverlayVtx[8].v.ob[1] - UI_OVERLAY_QUAD_BUTTON_LR_HEIGHT;
} else {
- pauseCtx->infoPanelVtx[8].v.ob[0] = pauseCtx->infoPanelVtx[10].v.ob[0] = WREG(16) + 3;
+ pauseCtx->uiOverlayVtx[8].v.ob[0] = pauseCtx->uiOverlayVtx[10].v.ob[0] = R_PAUSE_BUTTON_LEFT_X + 3;
- pauseCtx->infoPanelVtx[9].v.ob[0] = pauseCtx->infoPanelVtx[11].v.ob[0] = pauseCtx->infoPanelVtx[8].v.ob[0] + 18;
+ pauseCtx->uiOverlayVtx[9].v.ob[0] = pauseCtx->uiOverlayVtx[11].v.ob[0] =
+ pauseCtx->uiOverlayVtx[8].v.ob[0] + (UI_OVERLAY_QUAD_BUTTON_LR_WIDTH - 2 * 3);
- pauseCtx->infoPanelVtx[8].v.ob[1] = pauseCtx->infoPanelVtx[9].v.ob[1] = WREG(18) - 3;
+ pauseCtx->uiOverlayVtx[8].v.ob[1] = pauseCtx->uiOverlayVtx[9].v.ob[1] = R_PAUSE_BUTTON_LEFT_RIGHT_Y - 3;
- pauseCtx->infoPanelVtx[10].v.ob[1] = pauseCtx->infoPanelVtx[11].v.ob[1] =
- pauseCtx->infoPanelVtx[8].v.ob[1] - 26;
+ pauseCtx->uiOverlayVtx[10].v.ob[1] = pauseCtx->uiOverlayVtx[11].v.ob[1] =
+ pauseCtx->uiOverlayVtx[8].v.ob[1] - (UI_OVERLAY_QUAD_BUTTON_LR_HEIGHT - 2 * 3);
}
+ // UI_OVERLAY_QUAD_BUTTON_RIGHT
if ((pauseCtx->cursorSpecialPos == PAUSE_CURSOR_PAGE_RIGHT) && (pauseCtx->mainState == PAUSE_MAIN_STATE_IDLE)) {
- pauseCtx->infoPanelVtx[12].v.ob[0] = pauseCtx->infoPanelVtx[14].v.ob[0] = WREG(17);
+ pauseCtx->uiOverlayVtx[12].v.ob[0] = pauseCtx->uiOverlayVtx[14].v.ob[0] = R_PAUSE_BUTTON_RIGHT_X;
- pauseCtx->infoPanelVtx[13].v.ob[0] = pauseCtx->infoPanelVtx[15].v.ob[0] =
- pauseCtx->infoPanelVtx[12].v.ob[0] + 24;
+ pauseCtx->uiOverlayVtx[13].v.ob[0] = pauseCtx->uiOverlayVtx[15].v.ob[0] =
+ pauseCtx->uiOverlayVtx[12].v.ob[0] + UI_OVERLAY_QUAD_BUTTON_LR_WIDTH;
- pauseCtx->infoPanelVtx[12].v.ob[1] = pauseCtx->infoPanelVtx[13].v.ob[1] = WREG(18);
+ pauseCtx->uiOverlayVtx[12].v.ob[1] = pauseCtx->uiOverlayVtx[13].v.ob[1] = R_PAUSE_BUTTON_LEFT_RIGHT_Y;
- pauseCtx->infoPanelVtx[14].v.ob[1] = pauseCtx->infoPanelVtx[15].v.ob[1] =
- pauseCtx->infoPanelVtx[12].v.ob[1] - 32;
+ pauseCtx->uiOverlayVtx[14].v.ob[1] = pauseCtx->uiOverlayVtx[15].v.ob[1] =
+ pauseCtx->uiOverlayVtx[12].v.ob[1] - UI_OVERLAY_QUAD_BUTTON_LR_HEIGHT;
} else {
- pauseCtx->infoPanelVtx[12].v.ob[0] = pauseCtx->infoPanelVtx[14].v.ob[0] = WREG(17) + 3;
+ pauseCtx->uiOverlayVtx[12].v.ob[0] = pauseCtx->uiOverlayVtx[14].v.ob[0] = R_PAUSE_BUTTON_RIGHT_X + 3;
- pauseCtx->infoPanelVtx[13].v.ob[0] = pauseCtx->infoPanelVtx[15].v.ob[0] =
- pauseCtx->infoPanelVtx[12].v.ob[0] + 18;
+ pauseCtx->uiOverlayVtx[13].v.ob[0] = pauseCtx->uiOverlayVtx[15].v.ob[0] =
+ pauseCtx->uiOverlayVtx[12].v.ob[0] + (UI_OVERLAY_QUAD_BUTTON_LR_WIDTH - 2 * 3);
- pauseCtx->infoPanelVtx[12].v.ob[1] = pauseCtx->infoPanelVtx[13].v.ob[1] = WREG(18) - 3;
+ pauseCtx->uiOverlayVtx[12].v.ob[1] = pauseCtx->uiOverlayVtx[13].v.ob[1] = R_PAUSE_BUTTON_LEFT_RIGHT_Y - 3;
- pauseCtx->infoPanelVtx[14].v.ob[1] = pauseCtx->infoPanelVtx[15].v.ob[1] =
- pauseCtx->infoPanelVtx[12].v.ob[1] - 26;
+ pauseCtx->uiOverlayVtx[14].v.ob[1] = pauseCtx->uiOverlayVtx[15].v.ob[1] =
+ pauseCtx->uiOverlayVtx[12].v.ob[1] - (UI_OVERLAY_QUAD_BUTTON_LR_HEIGHT - 2 * 3);
}
- pauseCtx->infoPanelVtx[9].v.tc[0] = pauseCtx->infoPanelVtx[11].v.tc[0] = pauseCtx->infoPanelVtx[13].v.tc[0] =
- pauseCtx->infoPanelVtx[15].v.tc[0] = 0x300;
+ // UI_OVERLAY_QUAD_BUTTON_LEFT, UI_OVERLAY_QUAD_BUTTON_RIGHT
+ pauseCtx->uiOverlayVtx[9].v.tc[0] = pauseCtx->uiOverlayVtx[11].v.tc[0] = pauseCtx->uiOverlayVtx[13].v.tc[0] =
+ pauseCtx->uiOverlayVtx[15].v.tc[0] = UI_OVERLAY_QUAD_BUTTON_LR_TEX_WIDTH * (1 << 5);
- pauseCtx->infoPanelVtx[10].v.tc[1] = pauseCtx->infoPanelVtx[11].v.tc[1] = pauseCtx->infoPanelVtx[14].v.tc[1] =
- pauseCtx->infoPanelVtx[15].v.tc[1] = 0x400;
+ pauseCtx->uiOverlayVtx[10].v.tc[1] = pauseCtx->uiOverlayVtx[11].v.tc[1] = pauseCtx->uiOverlayVtx[14].v.tc[1] =
+ pauseCtx->uiOverlayVtx[15].v.tc[1] = UI_OVERLAY_QUAD_BUTTON_LR_TEX_HEIGHT * (1 << 5);
gDPSetCombineMode(POLY_OPA_DISP++, G_CC_MODULATEIA_PRIM, G_CC_MODULATEIA_PRIM);
@@ -1836,14 +1847,16 @@ void KaleidoScope_DrawInfoPanel(PlayState* play) {
MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_kaleido_scope_PAL.c", 1755);
gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, 90, 100, 130, 255);
- gSPVertex(POLY_OPA_DISP++, &pauseCtx->infoPanelVtx[0], 16, 0);
+ gSPVertex(POLY_OPA_DISP++, &pauseCtx->uiOverlayVtx[0], 16, 0);
- gSPDisplayList(POLY_OPA_DISP++, gItemNamePanelDL);
+ // Draw UI_OVERLAY_QUAD_INFO_BG_LEFT, UI_OVERLAY_QUAD_INFO_BG_RIGHT
+ gSPDisplayList(POLY_OPA_DISP++, gInfoPanelBgDL);
if ((pauseCtx->cursorSpecialPos == PAUSE_CURSOR_PAGE_LEFT) && (pauseCtx->mainState == PAUSE_MAIN_STATE_IDLE)) {
gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, D_808321A0, D_808321A2, D_808321A4, D_808321A6);
}
+ // Draw UI_OVERLAY_QUAD_BUTTON_LEFT
gSPDisplayList(POLY_OPA_DISP++, gLButtonIconDL);
gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, 180, 210, 255, 220);
@@ -1852,21 +1865,25 @@ void KaleidoScope_DrawInfoPanel(PlayState* play) {
gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, D_808321A0, D_808321A2, D_808321A4, D_808321A6);
}
+ // Draw UI_OVERLAY_QUAD_BUTTON_RIGHT
gSPDisplayList(POLY_OPA_DISP++, gRButtonIconDL);
if (pauseCtx->cursorSpecialPos != 0) {
j = (pauseCtx->cursorSpecialPos - 8) * 4;
- pauseCtx->cursorVtx[0].v.ob[0] = pauseCtx->infoPanelVtx[j].v.ob[0];
- pauseCtx->cursorVtx[0].v.ob[1] = pauseCtx->infoPanelVtx[j].v.ob[1];
+ pauseCtx->cursorVtx[0].v.ob[0] = pauseCtx->uiOverlayVtx[j].v.ob[0];
+ pauseCtx->cursorVtx[0].v.ob[1] = pauseCtx->uiOverlayVtx[j].v.ob[1];
KaleidoScope_DrawCursor(play, pauseCtx->pageIndex);
}
- temp = pauseCtx->infoPanelOffsetY - 80;
- pauseCtx->infoPanelVtx[16].v.ob[1] = pauseCtx->infoPanelVtx[17].v.ob[1] = temp;
+ // UI_OVERLAY_QUAD_INFO_ICON
+ y = pauseCtx->infoPanelOffsetY - 80;
+ pauseCtx->uiOverlayVtx[16].v.ob[1] = pauseCtx->uiOverlayVtx[17].v.ob[1] = y;
- pauseCtx->infoPanelVtx[18].v.ob[1] = pauseCtx->infoPanelVtx[19].v.ob[1] = pauseCtx->infoPanelVtx[16].v.ob[1] - 16;
+ pauseCtx->uiOverlayVtx[18].v.ob[1] = pauseCtx->uiOverlayVtx[19].v.ob[1] =
+ pauseCtx->uiOverlayVtx[16].v.ob[1] - UI_OVERLAY_QUAD_INFO_ICON_HEIGHT;
- pauseCtx->infoPanelVtx[18].v.tc[1] = pauseCtx->infoPanelVtx[19].v.tc[1] = 0x200;
+ pauseCtx->uiOverlayVtx[18].v.tc[1] = pauseCtx->uiOverlayVtx[19].v.tc[1] =
+ UI_OVERLAY_QUAD_INFO_ICON_TEX_HEIGHT * (1 << 5);
gDPPipeSync(POLY_OPA_DISP++);
gDPSetCombineLERP(POLY_OPA_DISP++, PRIMITIVE, ENVIRONMENT, TEXEL0, ENVIRONMENT, TEXEL0, 0, PRIMITIVE, 0, PRIMITIVE,
@@ -1886,14 +1903,16 @@ void KaleidoScope_DrawInfoPanel(PlayState* play) {
((pauseCtx->mainState >= PAUSE_MAIN_STATE_SONG_PROMPT_INIT) &&
(pauseCtx->mainState <= PAUSE_MAIN_STATE_EQUIP_CHANGED)) ||
(pauseCtx->mainState == PAUSE_MAIN_STATE_IDLE_CURSOR_ON_SONG)) {
- pauseCtx->infoPanelVtx[16].v.ob[0] = pauseCtx->infoPanelVtx[18].v.ob[0] = -63;
- pauseCtx->infoPanelVtx[17].v.ob[0] = pauseCtx->infoPanelVtx[19].v.ob[0] =
- pauseCtx->infoPanelVtx[16].v.ob[0] + 128;
+ // UI_OVERLAY_QUAD_INFO_ICON
+ pauseCtx->uiOverlayVtx[16].v.ob[0] = pauseCtx->uiOverlayVtx[18].v.ob[0] = -63;
- pauseCtx->infoPanelVtx[17].v.tc[0] = pauseCtx->infoPanelVtx[19].v.tc[0] = 0x1000;
+ pauseCtx->uiOverlayVtx[17].v.ob[0] = pauseCtx->uiOverlayVtx[19].v.ob[0] =
+ pauseCtx->uiOverlayVtx[16].v.ob[0] + ITEM_NAME_TEX_WIDTH;
- gSPVertex(POLY_OPA_DISP++, &pauseCtx->infoPanelVtx[16], 4, 0);
+ pauseCtx->uiOverlayVtx[17].v.tc[0] = pauseCtx->uiOverlayVtx[19].v.tc[0] = ITEM_NAME_TEX_WIDTH * (1 << 5);
+
+ gSPVertex(POLY_OPA_DISP++, &pauseCtx->uiOverlayVtx[16], 4, 0);
if (pauseCtx->nameColorSet == 1) {
gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, 70, 70, 70, 255);
@@ -1927,21 +1946,22 @@ void KaleidoScope_DrawInfoPanel(PlayState* play) {
if (GET_GS_FLAGS(D_8082AE30[pauseCtx->cursorPoint[PAUSE_WORLD_MAP]]) ==
gAreaGsFlags[D_8082AE30[pauseCtx->cursorPoint[PAUSE_WORLD_MAP]]]) {
- pauseCtx->infoPanelVtx[24].v.ob[0] = pauseCtx->infoPanelVtx[26].v.ob[0] = -74;
+ // UI_OVERLAY_QUAD_HAVE_ALL_GS
+ pauseCtx->uiOverlayVtx[24].v.ob[0] = pauseCtx->uiOverlayVtx[26].v.ob[0] = -74;
- pauseCtx->infoPanelVtx[25].v.ob[0] = pauseCtx->infoPanelVtx[27].v.ob[0] =
- pauseCtx->infoPanelVtx[24].v.ob[0] + 19;
+ pauseCtx->uiOverlayVtx[25].v.ob[0] = pauseCtx->uiOverlayVtx[27].v.ob[0] =
+ pauseCtx->uiOverlayVtx[24].v.ob[0] + 19;
- pauseCtx->infoPanelVtx[24].v.ob[1] = pauseCtx->infoPanelVtx[25].v.ob[1] =
- pauseCtx->infoPanelVtx[24].v.ob[1] - 2;
+ pauseCtx->uiOverlayVtx[24].v.ob[1] = pauseCtx->uiOverlayVtx[25].v.ob[1] =
+ pauseCtx->uiOverlayVtx[24].v.ob[1] - 2;
- pauseCtx->infoPanelVtx[26].v.ob[1] = pauseCtx->infoPanelVtx[27].v.ob[1] =
- pauseCtx->infoPanelVtx[24].v.ob[1] - 19;
+ pauseCtx->uiOverlayVtx[26].v.ob[1] = pauseCtx->uiOverlayVtx[27].v.ob[1] =
+ pauseCtx->uiOverlayVtx[24].v.ob[1] - 19;
- pauseCtx->infoPanelVtx[25].v.tc[0] = pauseCtx->infoPanelVtx[27].v.tc[0] = 0x300;
+ pauseCtx->uiOverlayVtx[25].v.tc[0] = pauseCtx->uiOverlayVtx[27].v.tc[0] = QUEST_ICON_WIDTH * (1 << 5);
gDPPipeSync(POLY_OPA_DISP++);
- gSPVertex(POLY_OPA_DISP++, &pauseCtx->infoPanelVtx[24], 4, 0);
+ gSPVertex(POLY_OPA_DISP++, &pauseCtx->uiOverlayVtx[24], 4, 0);
gDPSetCombineLERP(POLY_OPA_DISP++, PRIMITIVE, ENVIRONMENT, TEXEL0, ENVIRONMENT, TEXEL0, 0, PRIMITIVE, 0,
PRIMITIVE, ENVIRONMENT, TEXEL0, ENVIRONMENT, TEXEL0, 0, PRIMITIVE, 0);
@@ -1954,148 +1974,172 @@ void KaleidoScope_DrawInfoPanel(PlayState* play) {
}
} else if ((pauseCtx->mainState < PAUSE_MAIN_STATE_3) || (pauseCtx->mainState == PAUSE_MAIN_STATE_EQUIP_CHANGED) ||
(pauseCtx->mainState == PAUSE_MAIN_STATE_IDLE_CURSOR_ON_SONG)) {
- pauseCtx->infoPanelVtx[20].v.ob[1] = pauseCtx->infoPanelVtx[21].v.ob[1] = temp;
+ // UI_OVERLAY_QUAD_INFO_TEXT
+ pauseCtx->uiOverlayVtx[20].v.ob[1] = pauseCtx->uiOverlayVtx[21].v.ob[1] = y;
- pauseCtx->infoPanelVtx[22].v.ob[1] = pauseCtx->infoPanelVtx[23].v.ob[1] =
- pauseCtx->infoPanelVtx[20].v.ob[1] - 16;
+ pauseCtx->uiOverlayVtx[22].v.ob[1] = pauseCtx->uiOverlayVtx[23].v.ob[1] =
+ pauseCtx->uiOverlayVtx[20].v.ob[1] - 16;
- pauseCtx->infoPanelVtx[22].v.tc[1] = pauseCtx->infoPanelVtx[23].v.tc[1] = 0x200;
+ pauseCtx->uiOverlayVtx[22].v.tc[1] = pauseCtx->uiOverlayVtx[23].v.tc[1] = 16 * (1 << 5);
- gSPVertex(POLY_OPA_DISP++, &pauseCtx->infoPanelVtx[16], 8, 0);
+ gSPVertex(POLY_OPA_DISP++, &pauseCtx->uiOverlayVtx[16], 8, 0);
if (pauseCtx->state == PAUSE_STATE_SAVE_PROMPT) {
- pauseCtx->infoPanelVtx[16].v.ob[0] = pauseCtx->infoPanelVtx[18].v.ob[0] =
- R_KALEIDO_UNK5(gSaveContext.language);
+ // UI_OVERLAY_QUAD_INFO_ICON
+ pauseCtx->uiOverlayVtx[16].v.ob[0] = pauseCtx->uiOverlayVtx[18].v.ob[0] =
+ R_PAUSE_INFO_PANEL_ICON_SAVE_PROMPT_X(gSaveContext.language);
- pauseCtx->infoPanelVtx[17].v.ob[0] = pauseCtx->infoPanelVtx[19].v.ob[0] =
- pauseCtx->infoPanelVtx[16].v.ob[0] + 24;
+ pauseCtx->uiOverlayVtx[17].v.ob[0] = pauseCtx->uiOverlayVtx[19].v.ob[0] =
+ pauseCtx->uiOverlayVtx[16].v.ob[0] + gABtnSymbolTex_WIDTH;
- pauseCtx->infoPanelVtx[20].v.ob[0] = pauseCtx->infoPanelVtx[22].v.ob[0] =
- pauseCtx->infoPanelVtx[16].v.ob[0] + R_KALEIDO_UNK2(gSaveContext.language);
+ // UI_OVERLAY_QUAD_INFO_TEXT
+ pauseCtx->uiOverlayVtx[20].v.ob[0] = pauseCtx->uiOverlayVtx[22].v.ob[0] =
+ pauseCtx->uiOverlayVtx[16].v.ob[0] + R_PAUSE_INFO_PANEL_TEXT_X(gSaveContext.language);
- pauseCtx->infoPanelVtx[21].v.ob[0] = pauseCtx->infoPanelVtx[23].v.ob[0] =
- pauseCtx->infoPanelVtx[20].v.ob[0] + D_8082ADE0[gSaveContext.language];
+ pauseCtx->uiOverlayVtx[21].v.ob[0] = pauseCtx->uiOverlayVtx[23].v.ob[0] =
+ pauseCtx->uiOverlayVtx[20].v.ob[0] + sToDecideTextWidths[gSaveContext.language];
- pauseCtx->infoPanelVtx[17].v.tc[0] = pauseCtx->infoPanelVtx[19].v.tc[0] = 0x300;
+ // UI_OVERLAY_QUAD_INFO_ICON
+ pauseCtx->uiOverlayVtx[17].v.tc[0] = pauseCtx->uiOverlayVtx[19].v.tc[0] = gABtnSymbolTex_WIDTH * (1 << 5);
- pauseCtx->infoPanelVtx[21].v.tc[0] = pauseCtx->infoPanelVtx[23].v.tc[0] = D_8082ADE0[gSaveContext.language]
- << 5;
+ // UI_OVERLAY_QUAD_INFO_TEXT
+ pauseCtx->uiOverlayVtx[21].v.tc[0] = pauseCtx->uiOverlayVtx[23].v.tc[0] =
+ sToDecideTextWidths[gSaveContext.language] << 5;
gSPDisplayList(POLY_OPA_DISP++, gAButtonIconDL);
gDPPipeSync(POLY_OPA_DISP++);
gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, 255, 255, 255, 255);
- POLY_OPA_DISP = KaleidoScope_QuadTextureIA8(POLY_OPA_DISP, D_8082AD60[gSaveContext.language],
- D_8082ADE0[gSaveContext.language], 16, 4);
+ POLY_OPA_DISP = KaleidoScope_QuadTextureIA8(POLY_OPA_DISP, sToDecideTextTextures[gSaveContext.language],
+ sToDecideTextWidths[gSaveContext.language], 16, 4);
} else if (pauseCtx->cursorSpecialPos != 0) {
if ((pauseCtx->state == PAUSE_STATE_MAIN) && (pauseCtx->mainState == PAUSE_MAIN_STATE_IDLE)) {
- pauseCtx->infoPanelVtx[16].v.ob[0] = pauseCtx->infoPanelVtx[18].v.ob[0] = -63;
+ // UI_OVERLAY_QUAD_INFO_ICON
+ pauseCtx->uiOverlayVtx[16].v.ob[0] = pauseCtx->uiOverlayVtx[18].v.ob[0] = -63;
- pauseCtx->infoPanelVtx[17].v.ob[0] = pauseCtx->infoPanelVtx[19].v.ob[0] =
- pauseCtx->infoPanelVtx[16].v.ob[0] + 128;
+ pauseCtx->uiOverlayVtx[17].v.ob[0] = pauseCtx->uiOverlayVtx[19].v.ob[0] =
+ pauseCtx->uiOverlayVtx[16].v.ob[0] + 128;
- pauseCtx->infoPanelVtx[17].v.tc[0] = pauseCtx->infoPanelVtx[19].v.tc[0] = 0x1000;
+ pauseCtx->uiOverlayVtx[17].v.tc[0] = pauseCtx->uiOverlayVtx[19].v.tc[0] = 128 * (1 << 5);
gDPPipeSync(POLY_OPA_DISP++);
gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, 255, 200, 0, 255);
if (pauseCtx->cursorSpecialPos == PAUSE_CURSOR_PAGE_LEFT) {
POLY_OPA_DISP = KaleidoScope_QuadTextureIA8(
- POLY_OPA_DISP, D_8082AD78[pauseCtx->pageIndex][gSaveContext.language], 128, 16, 0);
+ POLY_OPA_DISP, sScrollLeftLabels[pauseCtx->pageIndex][gSaveContext.language],
+ TO_PAGE_LABEL_TEX_WIDTH, TO_PAGE_LABEL_TEX_HEIGHT, 0);
} else {
POLY_OPA_DISP = KaleidoScope_QuadTextureIA8(
- POLY_OPA_DISP, D_8082ADA8[pauseCtx->pageIndex][gSaveContext.language], 128, 16, 0);
+ POLY_OPA_DISP, sScrollRightLabels[pauseCtx->pageIndex][gSaveContext.language],
+ TO_PAGE_LABEL_TEX_WIDTH, TO_PAGE_LABEL_TEX_HEIGHT, 0);
}
}
} else {
if ((u32)pauseCtx->pageIndex == PAUSE_ITEM) {
- pauseCtx->infoPanelVtx[16].v.ob[0] = pauseCtx->infoPanelVtx[18].v.ob[0] =
- R_KALEIDO_UNK1(gSaveContext.language);
+ // UI_OVERLAY_QUAD_INFO_ICON
+ pauseCtx->uiOverlayVtx[16].v.ob[0] = pauseCtx->uiOverlayVtx[18].v.ob[0] =
+ R_PAUSE_INFO_PANEL_ICON_C_ITEM_X(gSaveContext.language);
- pauseCtx->infoPanelVtx[17].v.ob[0] = pauseCtx->infoPanelVtx[19].v.ob[0] =
- pauseCtx->infoPanelVtx[16].v.ob[0] + 48;
+ pauseCtx->uiOverlayVtx[17].v.ob[0] = pauseCtx->uiOverlayVtx[19].v.ob[0] =
+ pauseCtx->uiOverlayVtx[16].v.ob[0] + gCBtnSymbolsTex_WIDTH;
- pauseCtx->infoPanelVtx[20].v.ob[0] = pauseCtx->infoPanelVtx[22].v.ob[0] =
- pauseCtx->infoPanelVtx[16].v.ob[0] + R_KALEIDO_UNK4(gSaveContext.language);
+ // UI_OVERLAY_QUAD_INFO_TEXT
+ pauseCtx->uiOverlayVtx[20].v.ob[0] = pauseCtx->uiOverlayVtx[22].v.ob[0] =
+ pauseCtx->uiOverlayVtx[16].v.ob[0] + R_PAUSE_INFO_PANEL_TEXT_C_ITEM_X(gSaveContext.language);
- pauseCtx->infoPanelVtx[21].v.ob[0] = pauseCtx->infoPanelVtx[23].v.ob[0] =
- pauseCtx->infoPanelVtx[20].v.ob[0] + D_8082ADD8[gSaveContext.language];
+ pauseCtx->uiOverlayVtx[21].v.ob[0] = pauseCtx->uiOverlayVtx[23].v.ob[0] =
+ pauseCtx->uiOverlayVtx[20].v.ob[0] + sToEquipTextWidths[gSaveContext.language];
- pauseCtx->infoPanelVtx[17].v.tc[0] = pauseCtx->infoPanelVtx[19].v.tc[0] = 0x600;
+ // UI_OVERLAY_QUAD_INFO_ICON
+ pauseCtx->uiOverlayVtx[17].v.tc[0] = pauseCtx->uiOverlayVtx[19].v.tc[0] =
+ gCBtnSymbolsTex_WIDTH * (1 << 5);
- pauseCtx->infoPanelVtx[21].v.tc[0] = pauseCtx->infoPanelVtx[23].v.tc[0] =
- D_8082ADD8[gSaveContext.language] << 5;
+ // UI_OVERLAY_QUAD_INFO_TEXT
+ pauseCtx->uiOverlayVtx[21].v.tc[0] = pauseCtx->uiOverlayVtx[23].v.tc[0] =
+ sToEquipTextWidths[gSaveContext.language] << 5;
gSPDisplayList(POLY_OPA_DISP++, gCButtonIconsDL);
gDPPipeSync(POLY_OPA_DISP++);
gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, 255, 255, 255, 255);
- POLY_OPA_DISP = KaleidoScope_QuadTextureIA8(POLY_OPA_DISP, D_8082AD54[gSaveContext.language],
- D_8082ADD8[gSaveContext.language], 16, 4);
+ POLY_OPA_DISP = KaleidoScope_QuadTextureIA8(POLY_OPA_DISP, sToEquipTextTextures[gSaveContext.language],
+ sToEquipTextWidths[gSaveContext.language], 16, 4);
} else if ((pauseCtx->pageIndex == PAUSE_MAP) && sInDungeonScene) {
} else if ((pauseCtx->pageIndex == PAUSE_QUEST) &&
((pauseCtx->cursorSlot[PAUSE_QUEST] >= 6) && (pauseCtx->cursorSlot[PAUSE_QUEST] <= 0x11))) {
if (pauseCtx->namedItem != PAUSE_ITEM_NONE) {
- pauseCtx->infoPanelVtx[16].v.ob[0] = pauseCtx->infoPanelVtx[18].v.ob[0] =
- R_KALEIDO_UNK3(gSaveContext.language);
+ // UI_OVERLAY_QUAD_INFO_ICON
+ pauseCtx->uiOverlayVtx[16].v.ob[0] = pauseCtx->uiOverlayVtx[18].v.ob[0] =
+ R_PAUSE_INFO_PANEL_ICON_PLAY_SONG_X(gSaveContext.language);
- pauseCtx->infoPanelVtx[17].v.ob[0] = pauseCtx->infoPanelVtx[19].v.ob[0] =
- pauseCtx->infoPanelVtx[16].v.ob[0] + 24;
+ pauseCtx->uiOverlayVtx[17].v.ob[0] = pauseCtx->uiOverlayVtx[19].v.ob[0] =
+ pauseCtx->uiOverlayVtx[16].v.ob[0] + 24;
- pauseCtx->infoPanelVtx[20].v.ob[0] = pauseCtx->infoPanelVtx[22].v.ob[0] =
- pauseCtx->infoPanelVtx[16].v.ob[0] + R_KALEIDO_UNK2(gSaveContext.language);
+ // UI_OVERLAY_QUAD_INFO_TEXT
+ pauseCtx->uiOverlayVtx[20].v.ob[0] = pauseCtx->uiOverlayVtx[22].v.ob[0] =
+ pauseCtx->uiOverlayVtx[16].v.ob[0] + R_PAUSE_INFO_PANEL_TEXT_X(gSaveContext.language);
#if OOT_PAL
if (gSaveContext.language == LANGUAGE_GER) {
- pauseCtx->infoPanelVtx[20].v.ob[0] = pauseCtx->infoPanelVtx[22].v.ob[0] =
- pauseCtx->infoPanelVtx[16].v.ob[0] - 99;
+ pauseCtx->uiOverlayVtx[20].v.ob[0] = pauseCtx->uiOverlayVtx[22].v.ob[0] =
+ pauseCtx->uiOverlayVtx[16].v.ob[0] - 99;
}
#endif
- pauseCtx->infoPanelVtx[21].v.ob[0] = pauseCtx->infoPanelVtx[23].v.ob[0] =
- pauseCtx->infoPanelVtx[20].v.ob[0] + D_8082ADE8[gSaveContext.language];
+ pauseCtx->uiOverlayVtx[21].v.ob[0] = pauseCtx->uiOverlayVtx[23].v.ob[0] =
+ pauseCtx->uiOverlayVtx[20].v.ob[0] + sToPlayMelodyTextWidths[gSaveContext.language];
- pauseCtx->infoPanelVtx[17].v.tc[0] = pauseCtx->infoPanelVtx[19].v.tc[0] = 0x300;
+ // UI_OVERLAY_QUAD_INFO_ICON
+ pauseCtx->uiOverlayVtx[17].v.tc[0] = pauseCtx->uiOverlayVtx[19].v.tc[0] =
+ gABtnSymbolTex_WIDTH * (1 << 5);
- pauseCtx->infoPanelVtx[21].v.tc[0] = pauseCtx->infoPanelVtx[23].v.tc[0] =
- D_8082ADE8[gSaveContext.language] << 5;
+ // UI_OVERLAY_QUAD_INFO_TEXT
+ pauseCtx->uiOverlayVtx[21].v.tc[0] = pauseCtx->uiOverlayVtx[23].v.tc[0] =
+ sToPlayMelodyTextWidths[gSaveContext.language] << 5;
gSPDisplayList(POLY_OPA_DISP++, gAButtonIconDL);
gDPPipeSync(POLY_OPA_DISP++);
gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, 255, 255, 255, 255);
- POLY_OPA_DISP = KaleidoScope_QuadTextureIA8(POLY_OPA_DISP, D_8082AD6C[gSaveContext.language],
- D_8082ADE8[gSaveContext.language], 16, 4);
+ POLY_OPA_DISP = KaleidoScope_QuadTextureIA8(
+ POLY_OPA_DISP, sToPlayMelodyTextTextures[gSaveContext.language],
+ sToPlayMelodyTextWidths[gSaveContext.language], UI_OVERLAY_QUAD_INFO_TEXT_TEX_HEIGHT, 4);
}
} else if (pauseCtx->pageIndex == PAUSE_EQUIP) {
- pauseCtx->infoPanelVtx[16].v.ob[0] = pauseCtx->infoPanelVtx[18].v.ob[0] =
- R_KALEIDO_UNK6(gSaveContext.language);
+ // UI_OVERLAY_QUAD_INFO_ICON
+ pauseCtx->uiOverlayVtx[16].v.ob[0] = pauseCtx->uiOverlayVtx[18].v.ob[0] =
+ R_PAUSE_INFO_PANEL_ICON_EQUIP_X(gSaveContext.language);
- pauseCtx->infoPanelVtx[17].v.ob[0] = pauseCtx->infoPanelVtx[19].v.ob[0] =
- pauseCtx->infoPanelVtx[16].v.ob[0] + 24;
+ pauseCtx->uiOverlayVtx[17].v.ob[0] = pauseCtx->uiOverlayVtx[19].v.ob[0] =
+ pauseCtx->uiOverlayVtx[16].v.ob[0] + 24;
- pauseCtx->infoPanelVtx[20].v.ob[0] = pauseCtx->infoPanelVtx[22].v.ob[0] =
- pauseCtx->infoPanelVtx[16].v.ob[0] + R_KALEIDO_UNK2(gSaveContext.language);
+ // UI_OVERLAY_QUAD_INFO_TEXT
+ pauseCtx->uiOverlayVtx[20].v.ob[0] = pauseCtx->uiOverlayVtx[22].v.ob[0] =
+ pauseCtx->uiOverlayVtx[16].v.ob[0] + R_PAUSE_INFO_PANEL_TEXT_X(gSaveContext.language);
- pauseCtx->infoPanelVtx[21].v.ob[0] = pauseCtx->infoPanelVtx[23].v.ob[0] =
- pauseCtx->infoPanelVtx[20].v.ob[0] + D_8082ADD8[gSaveContext.language];
+ pauseCtx->uiOverlayVtx[21].v.ob[0] = pauseCtx->uiOverlayVtx[23].v.ob[0] =
+ pauseCtx->uiOverlayVtx[20].v.ob[0] + sToEquipTextWidths[gSaveContext.language];
- pauseCtx->infoPanelVtx[17].v.tc[0] = pauseCtx->infoPanelVtx[19].v.tc[0] = 0x300;
+ // UI_OVERLAY_QUAD_INFO_ICON
+ pauseCtx->uiOverlayVtx[17].v.tc[0] = pauseCtx->uiOverlayVtx[19].v.tc[0] =
+ gABtnSymbolTex_WIDTH * (1 << 5);
- pauseCtx->infoPanelVtx[21].v.tc[0] = pauseCtx->infoPanelVtx[23].v.tc[0] =
- D_8082ADD8[gSaveContext.language] << 5;
+ // UI_OVERLAY_QUAD_INFO_TEXT
+ pauseCtx->uiOverlayVtx[21].v.tc[0] = pauseCtx->uiOverlayVtx[23].v.tc[0] =
+ sToEquipTextWidths[gSaveContext.language] << 5;
gSPDisplayList(POLY_OPA_DISP++, gAButtonIconDL);
gDPPipeSync(POLY_OPA_DISP++);
gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, 255, 255, 255, 255);
- POLY_OPA_DISP = KaleidoScope_QuadTextureIA8(POLY_OPA_DISP, D_8082AD54[gSaveContext.language],
- D_8082ADD8[gSaveContext.language], 16, 4);
+ POLY_OPA_DISP = KaleidoScope_QuadTextureIA8(POLY_OPA_DISP, sToEquipTextTextures[gSaveContext.language],
+ sToEquipTextWidths[gSaveContext.language], 16, 4);
}
}
}
@@ -2189,11 +2233,11 @@ void KaleidoScope_UpdatePageSwitch(PlayState* play, Input* input) {
if (pauseCtx->nextPageMode) {}
if (pauseCtx->pageSwitchTimer < ((4 * PAGE_SWITCH_NSTEPS) / 2)) {
- WREG(16) -= WREG(25) / WREG(6);
- WREG(17) -= WREG(26) / WREG(6);
+ R_PAUSE_BUTTON_LEFT_X -= WREG(25) / WREG(6);
+ R_PAUSE_BUTTON_RIGHT_X -= WREG(26) / WREG(6);
} else {
- WREG(16) += WREG(25) / WREG(6);
- WREG(17) += WREG(26) / WREG(6);
+ R_PAUSE_BUTTON_LEFT_X += WREG(25) / WREG(6);
+ R_PAUSE_BUTTON_RIGHT_X += WREG(26) / WREG(6);
}
pauseCtx->pageSwitchTimer += 4;
@@ -2252,8 +2296,7 @@ static u8 sPageBgColorBlue[][4] = {
static s16 sVtxPageItemQuadsX[CLAMP_MIN(VTX_PAGE_ITEM_QUADS, 1)] = { 0 };
static s16 sVtxPageEquipQuadsX[CLAMP_MIN(VTX_PAGE_EQUIP_QUADS, 1)] = { 0 };
static s16 sVtxPageMapDungeonQuadsX[VTX_PAGE_MAP_DUNGEON_QUADS] = {
- 0xFFDC, 0x000C, 0xFFEE, 0x0046, 0x0046, 0x0046, 0xFFA8, 0xFFA8, 0xFFA8,
- 0xFFA8, 0xFFA8, 0xFFA8, 0xFFA8, 0xFFA8, 0xFF96, 0xFFC2, 0xFFD8,
+ -36, 12, -18, 70, 70, 70, -88, -88, -88, -88, -88, -88, -88, -88, -106, -62, -40,
};
static s16 sVtxPageQuestQuadsX[CLAMP_MIN(VTX_PAGE_QUEST_QUADS, 1)] = { 0 };
static s16 sVtxPageMapWorldQuadsX[VTX_PAGE_MAP_WORLD_QUADS] = {
@@ -2300,8 +2343,7 @@ static s16 sVtxPagePromptQuadsX[VTX_PAGE_PROMPT_QUADS] = {
static s16 sVtxPageItemQuadsWidth[CLAMP_MIN(VTX_PAGE_ITEM_QUADS, 1)] = { 0 };
static s16 sVtxPageEquipQuadsWidth[CLAMP_MIN(VTX_PAGE_EQUIP_QUADS, 1)] = { 0 };
static s16 sVtxPageMapDungeonQuadsWidth[VTX_PAGE_MAP_DUNGEON_QUADS] = {
- 0x0030, 0x0030, 0x0060, 0x0018, 0x0018, 0x0018, 0x0018, 0x0018, 0x0018,
- 0x0018, 0x0018, 0x0018, 0x0018, 0x0018, 0x0010, 0x0010, 0x0018,
+ 48, 48, 96, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 16, 16, 24,
};
static s16 sVtxPageQuestQuadsWidth[CLAMP_MIN(VTX_PAGE_QUEST_QUADS, 1)] = { 0 };
static s16 sVtxPagePromptQuadsWidth[VTX_PAGE_PROMPT_QUADS] = {
@@ -2314,8 +2356,7 @@ static s16 sVtxPagePromptQuadsWidth[VTX_PAGE_PROMPT_QUADS] = {
static s16 sVtxPageItemQuadsY[CLAMP_MIN(VTX_PAGE_ITEM_QUADS, 1)] = { 0 };
static s16 sVtxPageEquipQuadsY[CLAMP_MIN(VTX_PAGE_EQUIP_QUADS, 1)] = { 0 };
static s16 sVtxPageMapDungeonQuadsY[VTX_PAGE_MAP_DUNGEON_QUADS] = {
- 0x001C, 0x001C, 0x002E, 0x001C, 0xFFFE, 0xFFE0, 0x0032, 0x0024, 0x0016,
- 0x0008, 0xFFFA, 0xFFEC, 0xFFDE, 0xFFD0, 0x0012, 0x0012, 0x0032,
+ 28, 28, 46, 28, -2, -32, 50, 36, 22, 8, -6, -20, -34, -48, 18, 18, 50,
};
static s16 sVtxPageQuestQuadsY[CLAMP_MIN(VTX_PAGE_QUEST_QUADS, 1)] = { 0 };
static s16 sVtxPageMapWorldQuadsY[VTX_PAGE_MAP_WORLD_QUADS] = {
@@ -2362,8 +2403,7 @@ static s16 sVtxPagePromptQuadsY[VTX_PAGE_PROMPT_QUADS] = {
static s16 sVtxPageItemQuadsHeight[CLAMP_MIN(VTX_PAGE_ITEM_QUADS, 1)] = { 0 };
static s16 sVtxPageEquipQuadsHeight[CLAMP_MIN(VTX_PAGE_EQUIP_QUADS, 1)] = { 0 };
static s16 sVtxPageMapDungeonQuadsHeight[VTX_PAGE_MAP_DUNGEON_QUADS] = {
- 0x0055, 0x0055, 0x0010, 0x0018, 0x0018, 0x0018, 0x0010, 0x0010, 0x0010,
- 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0018,
+ 85, 85, 16, 24, 24, 24, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 24,
};
static s16 sVtxPageQuestQuadsHeight[CLAMP_MIN(VTX_PAGE_QUEST_QUADS, 1)] = { 0 };
static s16 sVtxPagePromptQuadsHeight[VTX_PAGE_PROMPT_QUADS] = {
@@ -3328,7 +3368,7 @@ void KaleidoScope_SetVertices(PlayState* play, GraphicsContext* gfxCtx) {
pauseCtx->questVtx[k + 3].v.cn[3] = pauseCtx->alpha;
}
- pauseCtx->infoPanelVtx = GRAPH_ALLOC(gfxCtx, 28 * sizeof(Vtx));
+ pauseCtx->uiOverlayVtx = GRAPH_ALLOC(gfxCtx, (UI_OVERLAY_QUAD_MAX * 4) * sizeof(Vtx));
pauseCtx->promptPageVtx = GRAPH_ALLOC(gfxCtx, ((PAGE_BG_QUADS + VTX_PAGE_PROMPT_QUADS) * 4) * sizeof(Vtx));
KaleidoScope_SetPageVertices(play, pauseCtx->promptPageVtx, VTX_PAGE_PROMPT, VTX_PAGE_PROMPT_QUADS);
@@ -3411,7 +3451,7 @@ void KaleidoScope_Draw(PlayState* play) {
KaleidoScope_SetView(pauseCtx, 0.0f, 0.0f, 64.0f);
if (!IS_PAUSE_STATE_GAMEOVER(pauseCtx)) {
- KaleidoScope_DrawInfoPanel(play);
+ KaleidoScope_DrawUIOverlay(play);
}
}
@@ -3665,18 +3705,18 @@ void KaleidoScope_Update(PlayState* play) {
switch (pauseCtx->state) {
case PAUSE_STATE_INIT:
- D_808321A8[0] = gSaveContext.buttonStatus[0];
- D_808321A8[1] = gSaveContext.buttonStatus[1];
- D_808321A8[2] = gSaveContext.buttonStatus[2];
- D_808321A8[3] = gSaveContext.buttonStatus[3];
- D_808321A8[4] = gSaveContext.buttonStatus[4];
+ sSavedButtonStatus[0] = gSaveContext.buttonStatus[0];
+ sSavedButtonStatus[1] = gSaveContext.buttonStatus[1];
+ sSavedButtonStatus[2] = gSaveContext.buttonStatus[2];
+ sSavedButtonStatus[3] = gSaveContext.buttonStatus[3];
+ sSavedButtonStatus[4] = gSaveContext.buttonStatus[4];
pauseCtx->cursorX[PAUSE_MAP] = 0;
pauseCtx->cursorSlot[PAUSE_MAP] = pauseCtx->cursorPoint[PAUSE_MAP] = pauseCtx->dungeonMapSlot =
VREG(30) + 3;
- WREG(16) = -175;
- WREG(17) = 155;
+ R_PAUSE_BUTTON_LEFT_X = -175;
+ R_PAUSE_BUTTON_RIGHT_X = 155;
pauseCtx->promptPitch = -314.0f;
@@ -4051,8 +4091,8 @@ void KaleidoScope_Update(PlayState* play) {
160.0f / WREG(6);
pauseCtx->infoPanelOffsetY += 40 / WREG(6);
interfaceCtx->startAlpha += 255 / WREG(6);
- WREG(16) += WREG(25) / WREG(6);
- WREG(17) += WREG(26) / WREG(6);
+ R_PAUSE_BUTTON_LEFT_X += WREG(25) / WREG(6);
+ R_PAUSE_BUTTON_RIGHT_X += WREG(26) / WREG(6);
XREG(5) += 150 / WREG(6);
pauseCtx->alpha += (u16)(255 / (WREG(6) + WREG(4)));
@@ -4088,8 +4128,7 @@ void KaleidoScope_Update(PlayState* play) {
} else if (CHECK_BTN_ALL(input->press.button, BTN_B)) {
pauseCtx->nextPageMode = 0;
pauseCtx->promptChoice = 0;
- Audio_PlaySfxGeneral(NA_SE_SY_DECIDE, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_DECIDE);
gSaveContext.buttonStatus[0] = gSaveContext.buttonStatus[1] = gSaveContext.buttonStatus[2] =
gSaveContext.buttonStatus[3] = BTN_DISABLED;
gSaveContext.buttonStatus[4] = BTN_ENABLED;
@@ -4136,8 +4175,7 @@ void KaleidoScope_Update(PlayState* play) {
pauseCtx->mainState = PAUSE_MAIN_STATE_IDLE;
pauseCtx->nextPageMode = 0;
pauseCtx->promptChoice = 0;
- Audio_PlaySfxGeneral(NA_SE_SY_DECIDE, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_DECIDE);
gSaveContext.buttonStatus[0] = gSaveContext.buttonStatus[1] = gSaveContext.buttonStatus[2] =
gSaveContext.buttonStatus[3] = BTN_DISABLED;
gSaveContext.buttonStatus[4] = BTN_ENABLED;
@@ -4147,16 +4185,14 @@ void KaleidoScope_Update(PlayState* play) {
pauseCtx->state = PAUSE_STATE_SAVE_PROMPT;
} else if (pauseCtx->ocarinaStaff->state == pauseCtx->ocarinaSongIdx) {
// The player successfully played the song
- Audio_PlaySfxGeneral(NA_SE_SY_TRE_BOX_APPEAR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_TRE_BOX_APPEAR);
sMainStateAfterSongPlayerPlayingDone = PAUSE_MAIN_STATE_IDLE;
sDelayTimer = 30;
pauseCtx->mainState = PAUSE_MAIN_STATE_SONG_PROMPT_DONE;
} else if (pauseCtx->ocarinaStaff->state == 0xFF) {
// The player failed to play the song
- Audio_PlaySfxGeneral(NA_SE_SY_OCARINA_ERROR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_OCARINA_ERROR);
sMainStateAfterSongPlayerPlayingDone = PAUSE_MAIN_STATE_SONG_PROMPT_INIT;
sDelayTimer = 20;
@@ -4190,8 +4226,7 @@ void KaleidoScope_Update(PlayState* play) {
pauseCtx->mainState = PAUSE_MAIN_STATE_IDLE;
pauseCtx->nextPageMode = 0;
pauseCtx->promptChoice = 0;
- Audio_PlaySfxGeneral(NA_SE_SY_DECIDE, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_DECIDE);
gSaveContext.buttonStatus[0] = gSaveContext.buttonStatus[1] = gSaveContext.buttonStatus[2] =
gSaveContext.buttonStatus[3] = BTN_DISABLED;
gSaveContext.buttonStatus[4] = BTN_ENABLED;
@@ -4215,8 +4250,9 @@ void KaleidoScope_Update(PlayState* play) {
switch (pauseCtx->savePromptState) {
case PAUSE_SAVE_PROMPT_STATE_APPEARING:
pauseCtx->promptPitch -= 314.0f / WREG(6);
- WREG(16) -= WREG(25) / WREG(6);
- WREG(17) -= WREG(26) / WREG(6);
+ R_PAUSE_BUTTON_LEFT_X -= WREG(25) / WREG(6);
+ R_PAUSE_BUTTON_RIGHT_X -= WREG(26) / WREG(6);
+
if (pauseCtx->promptPitch <= -628.0f) {
pauseCtx->promptPitch = -628.0f;
pauseCtx->savePromptState = PAUSE_SAVE_PROMPT_STATE_WAIT_CHOICE;
@@ -4239,9 +4275,7 @@ void KaleidoScope_Update(PlayState* play) {
AudioOcarina_SetInstrument(OCARINA_INSTRUMENT_OFF);
#endif
} else {
- Audio_PlaySfxGeneral(NA_SE_SY_PIECE_OF_HEART, &gSfxDefaultPos, 4,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_PIECE_OF_HEART);
Play_SaveSceneFlags(play);
gSaveContext.save.info.playerData.savedSceneId = play->sceneId;
Sram_WriteSave(&play->sramCtx);
@@ -4287,8 +4321,9 @@ void KaleidoScope_Update(PlayState* play) {
case PAUSE_SAVE_PROMPT_STATE_RETURN_TO_MENU:
case PAUSE_SAVE_PROMPT_STATE_RETURN_TO_MENU_2:
pauseCtx->promptPitch += 314.0f / WREG(6);
- WREG(16) += WREG(25) / WREG(6);
- WREG(17) += WREG(26) / WREG(6);
+ R_PAUSE_BUTTON_LEFT_X += WREG(25) / WREG(6);
+ R_PAUSE_BUTTON_RIGHT_X += WREG(26) / WREG(6);
+
if (pauseCtx->promptPitch >= -314.0f) {
pauseCtx->state = PAUSE_STATE_MAIN;
pauseCtx->savePromptState = PAUSE_SAVE_PROMPT_STATE_APPEARING;
@@ -4305,8 +4340,8 @@ void KaleidoScope_Update(PlayState* play) {
pauseCtx->questPagePitch += 160.0f / WREG(6);
pauseCtx->promptPitch += 160.0f / WREG(6);
pauseCtx->infoPanelOffsetY -= 40 / WREG(6);
- WREG(16) -= WREG(25) / WREG(6);
- WREG(17) -= WREG(26) / WREG(6);
+ R_PAUSE_BUTTON_LEFT_X -= WREG(25) / WREG(6);
+ R_PAUSE_BUTTON_RIGHT_X -= WREG(26) / WREG(6);
XREG(5) -= 150 / WREG(6);
pauseCtx->alpha -= (u16)(255 / WREG(6));
if (pauseCtx->promptPitch == (YREG(8) + 160.0f)) {
@@ -4331,8 +4366,8 @@ void KaleidoScope_Update(PlayState* play) {
case PAUSE_STATE_GAME_OVER_INIT:
pauseCtx->cursorSlot[PAUSE_MAP] = pauseCtx->cursorPoint[PAUSE_MAP] = pauseCtx->dungeonMapSlot =
VREG(30) + 3;
- WREG(16) = -175;
- WREG(17) = 155;
+ R_PAUSE_BUTTON_LEFT_X = -175;
+ R_PAUSE_BUTTON_RIGHT_X = 155;
pauseCtx->promptPitch = -434.0f;
Interface_ChangeHudVisibilityMode(HUD_VISIBILITY_NOTHING);
@@ -4476,8 +4511,8 @@ void KaleidoScope_Update(PlayState* play) {
pauseCtx->infoPanelOffsetY += 40 / WREG(6);
interfaceCtx->startAlpha += 255 / WREG(6);
VREG(88) -= 3;
- WREG(16) += WREG(25) / WREG(6);
- WREG(17) += WREG(26) / WREG(6);
+ R_PAUSE_BUTTON_LEFT_X += WREG(25) / WREG(6);
+ R_PAUSE_BUTTON_RIGHT_X += WREG(26) / WREG(6);
XREG(5) += 150 / WREG(6);
pauseCtx->alpha += (u16)(255 / (WREG(6) + WREG(4)));
if (pauseCtx->promptPitch < -628.0f) {
@@ -4499,13 +4534,11 @@ void KaleidoScope_Update(PlayState* play) {
if (CHECK_BTN_ALL(input->press.button, BTN_A)) {
if (pauseCtx->promptChoice != 0) {
pauseCtx->promptChoice = 0;
- Audio_PlaySfxGeneral(NA_SE_SY_DECIDE, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_DECIDE);
pauseCtx->state = PAUSE_STATE_GAME_OVER_CONTINUE_PROMPT;
gameOverCtx->state++;
} else {
- Audio_PlaySfxGeneral(NA_SE_SY_PIECE_OF_HEART, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_PIECE_OF_HEART);
pauseCtx->promptChoice = 0;
Play_SaveSceneFlags(play);
gSaveContext.save.info.playerData.savedSceneId = play->sceneId;
@@ -4536,8 +4569,7 @@ void KaleidoScope_Update(PlayState* play) {
case PAUSE_STATE_GAME_OVER_CONTINUE_PROMPT:
if (CHECK_BTN_ALL(input->press.button, BTN_A) || CHECK_BTN_ALL(input->press.button, BTN_START)) {
if (pauseCtx->promptChoice == 0) {
- Audio_PlaySfxGeneral(NA_SE_SY_PIECE_OF_HEART, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_PIECE_OF_HEART);
Play_SaveSceneFlags(play);
switch (gSaveContext.save.entranceIndex) {
@@ -4595,8 +4627,7 @@ void KaleidoScope_Update(PlayState* play) {
break;
}
} else {
- Audio_PlaySfxGeneral(NA_SE_SY_DECIDE, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
- &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
+ SFX_PLAY_CENTERED(NA_SE_SY_DECIDE);
}
pauseCtx->state = PAUSE_STATE_GAME_OVER_FINISH;
@@ -4648,8 +4679,8 @@ void KaleidoScope_Update(PlayState* play) {
pauseCtx->questPagePitch += 160.0f / WREG(6);
pauseCtx->infoPanelOffsetY -= 40 / WREG(6);
interfaceCtx->startAlpha -= 255 / WREG(6);
- WREG(16) -= WREG(25) / WREG(6);
- WREG(17) -= WREG(26) / WREG(6);
+ R_PAUSE_BUTTON_LEFT_X -= WREG(25) / WREG(6);
+ R_PAUSE_BUTTON_RIGHT_X -= WREG(26) / WREG(6);
XREG(5) -= 150 / WREG(6);
pauseCtx->alpha -= (u16)(255 / WREG(6));
if (pauseCtx->itemPagePitch == 160.0f) {
@@ -4698,11 +4729,11 @@ void KaleidoScope_Update(PlayState* play) {
break;
}
- gSaveContext.buttonStatus[0] = D_808321A8[0];
- gSaveContext.buttonStatus[1] = D_808321A8[1];
- gSaveContext.buttonStatus[2] = D_808321A8[2];
- gSaveContext.buttonStatus[3] = D_808321A8[3];
- gSaveContext.buttonStatus[4] = D_808321A8[4];
+ gSaveContext.buttonStatus[0] = sSavedButtonStatus[0];
+ gSaveContext.buttonStatus[1] = sSavedButtonStatus[1];
+ gSaveContext.buttonStatus[2] = sSavedButtonStatus[2];
+ gSaveContext.buttonStatus[3] = sSavedButtonStatus[3];
+ gSaveContext.buttonStatus[4] = sSavedButtonStatus[4];
interfaceCtx->unk_1FA = interfaceCtx->unk_1FC = 0;
PRINTF_COLOR_YELLOW();
PRINTF("i=%d LAST_TIME_TYPE=%d\n", i, gSaveContext.prevHudVisibilityMode);
diff --git a/src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope.h b/src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope.h
index 8f42eb244d..d19b5757a4 100644
--- a/src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope.h
+++ b/src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope.h
@@ -218,6 +218,31 @@ typedef enum ItemQuad {
/* 41 */ ITEM_QUAD_MAX
} ItemQuad;
+#define TO_PAGE_LABEL_TEX_WIDTH 128
+#define TO_PAGE_LABEL_TEX_HEIGHT UI_OVERLAY_QUAD_INFO_TEXT_TEX_HEIGHT
+
+#define UI_OVERLAY_QUAD_BUTTON_LR_WIDTH 24
+#define UI_OVERLAY_QUAD_BUTTON_LR_HEIGHT 32
+#define UI_OVERLAY_QUAD_BUTTON_LR_TEX_WIDTH 24
+#define UI_OVERLAY_QUAD_BUTTON_LR_TEX_HEIGHT 32
+
+#define UI_OVERLAY_QUAD_INFO_ICON_HEIGHT 16
+#define UI_OVERLAY_QUAD_INFO_ICON_TEX_HEIGHT 16
+
+#define UI_OVERLAY_QUAD_INFO_TEXT_HEIGHT 16
+#define UI_OVERLAY_QUAD_INFO_TEXT_TEX_HEIGHT 16
+
+typedef enum UIOverlayQuad {
+ /* 0 */ UI_OVERLAY_QUAD_INFO_BG_LEFT, // The left half of the info plate background
+ /* 1 */ UI_OVERLAY_QUAD_INFO_BG_RIGHT, // The right half of the info plate background
+ /* 2 */ UI_OVERLAY_QUAD_BUTTON_LEFT, // The button for scrolling to the left page
+ /* 3 */ UI_OVERLAY_QUAD_BUTTON_RIGHT, // The button for scrolling to the right page
+ /* 4 */ UI_OVERLAY_QUAD_INFO_ICON, // The icon in the info plate
+ /* 5 */ UI_OVERLAY_QUAD_INFO_TEXT, // The text in the info plate
+ /* 6 */ UI_OVERLAY_QUAD_HAVE_ALL_GS, // On the overworld map page, the indicator that the selected area has been cleared of gold skulltulas
+ /* 7 */ UI_OVERLAY_QUAD_MAX
+} UIOverlayQuad;
+
void KaleidoScope_DrawQuestStatus(struct PlayState* play, GraphicsContext* gfxCtx);
s32 KaleidoScope_UpdateQuestStatusPoint(PauseContext* pauseCtx, s32 point);
void KaleidoScope_DrawInventoryEditor(struct PlayState* play);
diff --git a/tools/assets/extract/write_source.txt b/tools/assets/extract/write_source.txt
index 4d77381e33..e4171fb6a1 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
@@ -354,16 +353,12 @@ assets/objects/object_tk/object_tk.c
assets/objects/object_toki_objects/object_toki_objects.c
assets/objects/object_torch2/object_torch2.c
assets/objects/object_toryo/object_toryo.c
-assets/objects/object_tp/object_tp.c
assets/objects/object_trap/object_trap.c
-assets/objects/object_triforce_spot/object_triforce_spot.c
assets/objects/object_tr/object_tr.c
assets/objects/object_ts/object_ts.c
assets/objects/object_tsubo/object_tsubo.c
assets/objects/object_tw/object_tw.c
-assets/objects/object_umajump/object_umajump.c
assets/objects/object_vali/object_vali.c
-assets/objects/object_vase/object_vase.c
assets/objects/object_vm/object_vm.c
assets/objects/object_wallmaster/object_wallmaster.c
assets/objects/object_warp1/object_warp1.c
@@ -373,38 +368,23 @@ assets/objects/object_wood02/object_wood02.c
assets/objects/object_xc/object_xc.c
assets/objects/object_yabusame_point/object_yabusame_point.c
assets/objects/object_ydan_objects/object_ydan_objects.c
-assets/objects/object_yukabyun/object_yukabyun.c
assets/objects/object_zf/object_zf.c
-assets/objects/object_zg/object_zg.c
assets/objects/object_zl1/object_zl1.c
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_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