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