From 382514c0f0524457f570ee80161c4064c1dc9a3c Mon Sep 17 00:00:00 2001 From: engineer124 Date: Wed, 23 Nov 2022 21:54:54 -0500 Subject: [PATCH 01/10] material --- include/functions.h | 4 +- include/z64bgcheck.h | 51 +++++++++++++------ include/z64player.h | 2 +- src/code/z_actor.c | 10 ++-- src/code/z_bgcheck.c | 42 +++++++-------- src/code/z_camera.c | 2 +- .../ovl_Bg_Hidan_Rock/z_bg_hidan_rock.c | 6 +-- src/overlays/actors/ovl_Demo_Im/z_demo_im.c | 4 +- .../actors/ovl_En_Encount1/z_en_encount1.c | 2 +- src/overlays/actors/ovl_En_Js/z_en_js.c | 4 +- src/overlays/actors/ovl_En_Xc/z_en_xc.c | 12 ++--- src/overlays/actors/ovl_En_Zl2/z_en_zl2.c | 4 +- src/overlays/actors/ovl_En_Zl3/z_en_zl3.c | 4 +- .../actors/ovl_Obj_Oshihiki/z_obj_oshihiki.c | 7 +-- .../actors/ovl_player_actor/z_player.c | 31 +++++------ 15 files changed, 103 insertions(+), 82 deletions(-) diff --git a/include/functions.h b/include/functions.h index 5d072fda42f..ca3b1311207 100644 --- a/include/functions.h +++ b/include/functions.h @@ -601,8 +601,8 @@ s32 SurfaceType_CheckWallFlag2(CollisionContext* colCtx, CollisionPoly* poly, s3 u32 SurfaceType_GetFloorProperty(CollisionContext* colCtx, CollisionPoly* poly, s32 bgId); u32 SurfaceType_IsSoft(CollisionContext* colCtx, CollisionPoly* poly, s32 bgId); u32 SurfaceType_IsHorseBlocked(CollisionContext* colCtx, CollisionPoly* poly, s32 bgId); -u32 SurfaceType_GetSfxType(CollisionContext* colCtx, CollisionPoly* poly, s32 bgId); -u16 SurfaceType_GetSfxId(CollisionContext* colCtx, CollisionPoly* poly, s32 bgId); +u32 SurfaceType_GetSceneMaterial(CollisionContext* colCtx, CollisionPoly* poly, s32 bgId); +u16 SurfaceType_GetMaterial(CollisionContext* colCtx, CollisionPoly* poly, s32 bgId); u32 SurfaceType_GetFloorEffect(CollisionContext* colCtx, CollisionPoly* poly, s32 bgId); u32 SurfaceType_GetLightSetting(CollisionContext* colCtx, CollisionPoly* poly, s32 bgId); u32 SurfaceType_GetEcho(CollisionContext* colCtx, CollisionPoly* poly, s32 bgId); diff --git a/include/z64bgcheck.h b/include/z64bgcheck.h index fa90ab78d89..33377fdb704 100644 --- a/include/z64bgcheck.h +++ b/include/z64bgcheck.h @@ -162,22 +162,41 @@ typedef enum { } FloorProperty; typedef enum { - /* 0 */ SURFACE_SFX_TYPE_0, - /* 1 */ SURFACE_SFX_TYPE_1, - /* 2 */ SURFACE_SFX_TYPE_2, - /* 3 */ SURFACE_SFX_TYPE_3, - /* 4 */ SURFACE_SFX_TYPE_4, - /* 5 */ SURFACE_SFX_TYPE_5, - /* 6 */ SURFACE_SFX_TYPE_6, - /* 7 */ SURFACE_SFX_TYPE_7, - /* 8 */ SURFACE_SFX_TYPE_8, - /* 9 */ SURFACE_SFX_TYPE_9, - /* 10 */ SURFACE_SFX_TYPE_10, - /* 11 */ SURFACE_SFX_TYPE_11, - /* 12 */ SURFACE_SFX_TYPE_12, - /* 13 */ SURFACE_SFX_TYPE_13, - /* 14 */ SURFACE_SFX_TYPE_MAX -} SurfaceSfxType; + /* 0 */ SURFACE_MATERIAL_DIRT, + /* 1 */ SURFACE_MATERIAL_SAND, + /* 2 */ SURFACE_MATERIAL_STONE, + /* 3 */ SURFACE_MATERIAL_JABU, + /* 4 */ SURFACE_MATERIAL_WATER_SHALLOW, + /* 5 */ SURFACE_MATERIAL_WATER_DEEP, + /* 6 */ SURFACE_MATERIAL_TALL_GRASS, + /* 7 */ SURFACE_MATERIAL_LAVA, // MAGMA? + /* 8 */ SURFACE_MATERIAL_GRASS, + /* 9 */ SURFACE_MATERIAL_CARPET, + /* 10 */ SURFACE_MATERIAL_WOOD, + /* 11 */ SURFACE_MATERIAL_BRIDGE, // WOOD_PLANK? + /* 12 */ SURFACE_MATERIAL_VINE, + /* 13 */ SURFACE_MATERIAL_IRON_BOOTS, + /* 14 */ SURFACE_MATERIAL_UNUSED, + /* 15 */ SURFACE_MATERIAL_ICE +} SurfaceMaterial; + +typedef enum { + /* 0 */ SURFACE_MATERIAL_SCENE_DIRT, + /* 1 */ SURFACE_MATERIAL_SCENE_SAND, + /* 2 */ SURFACE_MATERIAL_SCENE_STONE, + /* 3 */ SURFACE_MATERIAL_SCENE_JABU, + /* 4 */ SURFACE_MATERIAL_SCENE_WATER_SHALLOW, + /* 5 */ SURFACE_MATERIAL_SCENE_WATER_DEEP, + /* 6 */ SURFACE_MATERIAL_SCENE_TALL_GRASS, + /* 7 */ SURFACE_MATERIAL_SCENE_LAVA, // MAGMA? + /* 8 */ SURFACE_MATERIAL_SCENE_GRASS, + /* 9 */ SURFACE_MATERIAL_SCENE_BRIDGE, // WOOD_PLANK? + /* 10 */ SURFACE_MATERIAL_SCENE_WOOD, + /* 11 */ SURFACE_MATERIAL_SCENE_DIRT_SOFT, + /* 12 */ SURFACE_MATERIAL_SCENE_ICE, + /* 13 */ SURFACE_MATERIAL_SCENE_CARPET, + /* 14 */ SURFACE_MATERIAL_SCENE_MAX +} SurfaceMaterialScene; typedef enum { /* 0 */ FLOOR_EFFECT_0, diff --git a/include/z64player.h b/include/z64player.h index d080a107055..da79dbd089c 100644 --- a/include/z64player.h +++ b/include/z64player.h @@ -618,7 +618,7 @@ typedef struct Player { /* 0x0898 */ s16 unk_898; /* 0x089A */ s16 unk_89A; /* 0x089C */ s16 unk_89C; - /* 0x089E */ u16 unk_89E; + /* 0x089E */ u16 surfaceMaterial; /* 0x08A0 */ u8 unk_8A0; /* 0x08A1 */ u8 unk_8A1; /* 0x08A2 */ s16 unk_8A2; diff --git a/src/code/z_actor.c b/src/code/z_actor.c index 618f80f9766..3890bdcb5ca 100644 --- a/src/code/z_actor.c +++ b/src/code/z_actor.c @@ -1701,20 +1701,20 @@ void Audio_PlayActorSfx2(Actor* actor, u16 sfxId) { } void func_8002F850(PlayState* play, Actor* actor) { - s32 sfxId; + s32 surfaceMaterial; if (actor->bgCheckFlags & BGCHECKFLAG_WATER) { if (actor->yDistToWater < 20.0f) { - sfxId = NA_SE_PL_WALK_WATER0 - SFX_FLAG; + surfaceMaterial = SURFACE_MATERIAL_WATER_SHALLOW; } else { - sfxId = NA_SE_PL_WALK_WATER1 - SFX_FLAG; + surfaceMaterial = SURFACE_MATERIAL_WATER_DEEP; } } else { - sfxId = SurfaceType_GetSfxId(&play->colCtx, actor->floorPoly, actor->floorBgId); + surfaceMaterial = SurfaceType_GetMaterial(&play->colCtx, actor->floorPoly, actor->floorBgId); } func_80078914(&actor->projectedPos, NA_SE_EV_BOMB_BOUND); - func_80078914(&actor->projectedPos, sfxId + SFX_FLAG); + func_80078914(&actor->projectedPos, NA_SE_PL_WALK_GROUND + surfaceMaterial); } void func_8002F8F0(Actor* actor, u16 sfxId) { diff --git a/src/code/z_bgcheck.c b/src/code/z_bgcheck.c index 1385bbc835f..5fe2e19075a 100644 --- a/src/code/z_bgcheck.c +++ b/src/code/z_bgcheck.c @@ -68,21 +68,21 @@ s32 D_80119D90[WALL_TYPE_MAX] = { WALL_FLAG_6, // WALL_TYPE_7 }; -u16 D_80119E10[SURFACE_SFX_TYPE_MAX] = { - NA_SE_PL_WALK_GROUND - SFX_FLAG, // SURFACE_SFX_TYPE_0 - NA_SE_PL_WALK_SAND - SFX_FLAG, // SURFACE_SFX_TYPE_1 - NA_SE_PL_WALK_CONCRETE - SFX_FLAG, // SURFACE_SFX_TYPE_2 - NA_SE_PL_WALK_DIRT - SFX_FLAG, // SURFACE_SFX_TYPE_3 - NA_SE_PL_WALK_WATER0 - SFX_FLAG, // SURFACE_SFX_TYPE_4 - NA_SE_PL_WALK_WATER1 - SFX_FLAG, // SURFACE_SFX_TYPE_5 - NA_SE_PL_WALK_WATER2 - SFX_FLAG, // SURFACE_SFX_TYPE_6 - NA_SE_PL_WALK_MAGMA - SFX_FLAG, // SURFACE_SFX_TYPE_7 - NA_SE_PL_WALK_GRASS - SFX_FLAG, // SURFACE_SFX_TYPE_8 - NA_SE_PL_WALK_GLASS - SFX_FLAG, // SURFACE_SFX_TYPE_9 - NA_SE_PL_WALK_LADDER - SFX_FLAG, // SURFACE_SFX_TYPE_10 - NA_SE_PL_WALK_GROUND - SFX_FLAG, // SURFACE_SFX_TYPE_11 - NA_SE_PL_WALK_ICE - SFX_FLAG, // SURFACE_SFX_TYPE_12 - NA_SE_PL_WALK_IRON - SFX_FLAG, // SURFACE_SFX_TYPE_13 +u16 sMaterialInternalToExternal[SURFACE_MATERIAL_SCENE_MAX] = { + SURFACE_MATERIAL_DIRT, // SURFACE_MATERIAL_SCENE_DIRT + SURFACE_MATERIAL_SAND, // SURFACE_MATERIAL_SCENE_SAND + SURFACE_MATERIAL_STONE, // SURFACE_MATERIAL_SCENE_STONE + SURFACE_MATERIAL_JABU, // SURFACE_MATERIAL_SCENE_JABU + SURFACE_MATERIAL_WATER_SHALLOW, // SURFACE_MATERIAL_SCENE_WATER_SHALLOW + SURFACE_MATERIAL_WATER_DEEP, // SURFACE_MATERIAL_SCENE_WATER_DEEP + SURFACE_MATERIAL_TALL_GRASS, // SURFACE_MATERIAL_SCENE_TALL_GRASS + SURFACE_MATERIAL_LAVA, // SURFACE_MATERIAL_SCENE_LAVA + SURFACE_MATERIAL_GRASS, // SURFACE_MATERIAL_SCENE_GRASS + SURFACE_MATERIAL_BRIDGE, // SURFACE_MATERIAL_SCENE_BRIDGE + SURFACE_MATERIAL_WOOD, // SURFACE_MATERIAL_SCENE_WOOD + SURFACE_MATERIAL_DIRT, // SURFACE_MATERIAL_SCENE_DIRT_SOFT + SURFACE_MATERIAL_ICE, // SURFACE_MATERIAL_SCENE_ICE + SURFACE_MATERIAL_CARPET, // SURFACE_MATERIAL_SCENE_CARPET }; /** @@ -4108,17 +4108,17 @@ u32 SurfaceType_IsHorseBlocked(CollisionContext* colCtx, CollisionPoly* poly, s3 return SurfaceType_GetData(colCtx, poly, bgId, 0) >> 31 & 1; } -u32 SurfaceType_GetSfxType(CollisionContext* colCtx, CollisionPoly* poly, s32 bgId) { +u32 SurfaceType_GetSceneMaterial(CollisionContext* colCtx, CollisionPoly* poly, s32 bgId) { return SurfaceType_GetData(colCtx, poly, bgId, 1) & 0xF; } -u16 SurfaceType_GetSfxId(CollisionContext* colCtx, CollisionPoly* poly, s32 bgId) { - s32 sfxType = SurfaceType_GetSfxType(colCtx, poly, bgId); +u16 SurfaceType_GetMaterial(CollisionContext* colCtx, CollisionPoly* poly, s32 bgId) { + s32 sceneSurfaceMaterial = SurfaceType_GetSceneMaterial(colCtx, poly, bgId); - if (sfxType < 0 || sfxType >= ARRAY_COUNT(D_80119E10)) { - return NA_SE_PL_WALK_GROUND - SFX_FLAG; + if ((sceneSurfaceMaterial < 0) || (sceneSurfaceMaterial >= ARRAY_COUNT(sMaterialInternalToExternal))) { + return SURFACE_MATERIAL_DIRT; } - return D_80119E10[sfxType]; + return sMaterialInternalToExternal[sceneSurfaceMaterial]; } u32 SurfaceType_GetFloorEffect(CollisionContext* colCtx, CollisionPoly* poly, s32 bgId) { diff --git a/src/code/z_camera.c b/src/code/z_camera.c index a395d1ca8a3..b4be1efd45c 100644 --- a/src/code/z_camera.c +++ b/src/code/z_camera.c @@ -4501,7 +4501,7 @@ s32 Camera_Subj4(Camera* camera) { if ((eyeLerp > rwData->eyeLerp) && !rwData->isSfxOff) { player = camera->player; rwData->isSfxOff = true; - func_800F4010(&player->actor.projectedPos, NA_SE_PL_CRAWL + player->unk_89E, 4.0f); + func_800F4010(&player->actor.projectedPos, NA_SE_PL_CRAWL + player->surfaceMaterial, 4.0f); } else if (eyeLerp < rwData->eyeLerp) { rwData->isSfxOff = false; } 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 0f3487c8fe1..89c9ceaefb1 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 @@ -251,9 +251,9 @@ void func_8088B79C(BgHidanRock* this, PlayState* play) { } Audio_PlayActorSfx2(&this->dyna.actor, NA_SE_EV_BLOCK_BOUND); - Audio_PlayActorSfx2( - &this->dyna.actor, - SurfaceType_GetSfxId(&play->colCtx, this->dyna.actor.floorPoly, this->dyna.actor.floorBgId) + SFX_FLAG); + Audio_PlayActorSfx2(&this->dyna.actor, + NA_SE_PL_WALK_GROUND + SurfaceType_GetMaterial(&play->colCtx, this->dyna.actor.floorPoly, + this->dyna.actor.floorBgId)); } this->unk_16C -= 0.5f; 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 3ede44a0f18..c69e303cabc 100644 --- a/src/overlays/actors/ovl_Demo_Im/z_demo_im.c +++ b/src/overlays/actors/ovl_Demo_Im/z_demo_im.c @@ -717,9 +717,9 @@ void func_8098652C(DemoIm* this, PlayState* play) { void func_80986570(DemoIm* this, PlayState* play) { if (Animation_OnFrame(&this->skelAnime, 7.0f) && (this->actor.bgCheckFlags & BGCHECKFLAG_GROUND)) { - u32 sfxId = SFX_FLAG; + u32 sfxId = NA_SE_PL_WALK_GROUND; - sfxId += SurfaceType_GetSfxId(&play->colCtx, this->actor.floorPoly, this->actor.floorBgId); + sfxId += SurfaceType_GetMaterial(&play->colCtx, this->actor.floorPoly, this->actor.floorBgId); Audio_PlaySfxGeneral(sfxId, &this->actor.projectedPos, 4, &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb); } diff --git a/src/overlays/actors/ovl_En_Encount1/z_en_encount1.c b/src/overlays/actors/ovl_En_Encount1/z_en_encount1.c index 1aac497fe91..7d237cdf18f 100644 --- a/src/overlays/actors/ovl_En_Encount1/z_en_encount1.c +++ b/src/overlays/actors/ovl_En_Encount1/z_en_encount1.c @@ -241,7 +241,7 @@ void EnEncount1_SpawnStalchildOrWolfos(EnEncount1* this, PlayState* play) { if ((this->curNumSpawn < this->maxCurSpawns) && (this->totalNumSpawn < this->maxTotalSpawns)) { while ((this->curNumSpawn < this->maxCurSpawns) && (this->totalNumSpawn < this->maxTotalSpawns)) { if (play->sceneId == SCENE_SPOT00) { - if ((player->unk_89E == SURFACE_SFX_TYPE_0) || (player->actor.floorBgId != BGCHECK_SCENE) || + if ((player->surfaceMaterial == SURFACE_MATERIAL_DIRT) || (player->actor.floorBgId != BGCHECK_SCENE) || !(player->actor.bgCheckFlags & BGCHECKFLAG_GROUND) || (player->stateFlags1 & PLAYER_STATE1_27)) { this->fieldSpawnTimer = 60; 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 ddef053fc28..1e367fef777 100644 --- a/src/overlays/actors/ovl_En_Js/z_en_js.c +++ b/src/overlays/actors/ovl_En_Js/z_en_js.c @@ -174,8 +174,8 @@ void EnJs_Update(Actor* thisx, PlayState* play) { Actor_UpdateBgCheckInfo(play, &this->actor, 0.0f, 0.0f, 0.0f, UPDBGCHECKINFO_FLAG_2); if (this->actor.bgCheckFlags & BGCHECKFLAG_GROUND) { - if (SurfaceType_GetSfxId(&play->colCtx, this->actor.floorPoly, this->actor.floorBgId) == - (NA_SE_PL_WALK_SAND - SFX_FLAG)) { + if (SurfaceType_GetMaterial(&play->colCtx, this->actor.floorPoly, this->actor.floorBgId) == + SURFACE_MATERIAL_SAND) { Math_ApproachF(&this->actor.shape.yOffset, sREG(80) + -2000.0f, 1.0f, (sREG(81) / 10.0f) + 50.0f); } } else { 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 1be73bdaedd..32245aad374 100644 --- a/src/overlays/actors/ovl_En_Xc/z_en_xc.c +++ b/src/overlays/actors/ovl_En_Xc/z_en_xc.c @@ -371,8 +371,8 @@ void EnXc_SetWalkingSFX(EnXc* this, PlayState* play) { if (Animation_OnFrame(&this->skelAnime, 11.0f) || Animation_OnFrame(&this->skelAnime, 23.0f)) { if (this->actor.bgCheckFlags & BGCHECKFLAG_GROUND) { - sfxId = SFX_FLAG; - sfxId += SurfaceType_GetSfxId(&play->colCtx, this->actor.floorPoly, this->actor.floorBgId); + sfxId = NA_SE_PL_WALK_GROUND; + sfxId += SurfaceType_GetMaterial(&play->colCtx, this->actor.floorPoly, this->actor.floorBgId); func_80078914(&this->actor.projectedPos, sfxId); } } @@ -385,8 +385,8 @@ void EnXc_SetNutThrowSFX(EnXc* this, PlayState* play) { if (Animation_OnFrame(&this->skelAnime, 7.0f)) { if (this->actor.bgCheckFlags & BGCHECKFLAG_GROUND) { - sfxId = SFX_FLAG; - sfxId += SurfaceType_GetSfxId(&play->colCtx, this->actor.floorPoly, this->actor.floorBgId); + sfxId = NA_SE_PL_WALK_GROUND; + sfxId += SurfaceType_GetMaterial(&play->colCtx, this->actor.floorPoly, this->actor.floorBgId); func_80078914(&this->actor.projectedPos, sfxId); } } @@ -401,8 +401,8 @@ void EnXc_SetLandingSFX(EnXc* this, PlayState* play) { if ((gSaveContext.sceneLayer != 4) || (sceneId != SCENE_SPOT11)) { if (Animation_OnFrame(&this->skelAnime, 11.0f)) { - sfxId = SFX_FLAG; - sfxId += SurfaceType_GetSfxId(&play->colCtx, this->actor.floorPoly, this->actor.floorBgId); + sfxId = NA_SE_PL_WALK_GROUND; + sfxId += SurfaceType_GetMaterial(&play->colCtx, this->actor.floorPoly, this->actor.floorBgId); func_80078914(&this->actor.projectedPos, sfxId); } } diff --git a/src/overlays/actors/ovl_En_Zl2/z_en_zl2.c b/src/overlays/actors/ovl_En_Zl2/z_en_zl2.c index 69989faa622..644dd96d97d 100644 --- a/src/overlays/actors/ovl_En_Zl2/z_en_zl2.c +++ b/src/overlays/actors/ovl_En_Zl2/z_en_zl2.c @@ -1436,8 +1436,8 @@ void func_80B51D24(EnZl2* this, PlayState* play) { if (Animation_OnFrame(skelAnime, 6.0f) || Animation_OnFrame(skelAnime, 0.0f)) { if (this->actor.bgCheckFlags & BGCHECKFLAG_GROUND) { - sfxId = SFX_FLAG; - sfxId += SurfaceType_GetSfxId(&play->colCtx, this->actor.floorPoly, this->actor.floorBgId); + sfxId = NA_SE_PL_WALK_GROUND; + sfxId += SurfaceType_GetMaterial(&play->colCtx, this->actor.floorPoly, this->actor.floorBgId); func_80078914(&this->actor.projectedPos, sfxId); } } 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 8e6ae1b7226..7ea9d298ce1 100644 --- a/src/overlays/actors/ovl_En_Zl3/z_en_zl3.c +++ b/src/overlays/actors/ovl_En_Zl3/z_en_zl3.c @@ -1541,8 +1541,8 @@ void func_80B56E38(EnZl3* this, PlayState* play) { if ((Animation_OnFrame(sp20, 6.0f) || Animation_OnFrame(sp20, 0.0f)) && (this->actor.bgCheckFlags & BGCHECKFLAG_GROUND)) { - sfxId = 0x800; - sfxId += SurfaceType_GetSfxId(&play->colCtx, this->actor.floorPoly, this->actor.floorBgId); + sfxId = NA_SE_PL_WALK_GROUND; + sfxId += SurfaceType_GetMaterial(&play->colCtx, this->actor.floorPoly, this->actor.floorBgId); func_80078914(&this->actor.projectedPos, sfxId); } } diff --git a/src/overlays/actors/ovl_Obj_Oshihiki/z_obj_oshihiki.c b/src/overlays/actors/ovl_Obj_Oshihiki/z_obj_oshihiki.c index 4e448fe246c..4cbbc6942ac 100644 --- a/src/overlays/actors/ovl_Obj_Oshihiki/z_obj_oshihiki.c +++ b/src/overlays/actors/ovl_Obj_Oshihiki/z_obj_oshihiki.c @@ -604,9 +604,10 @@ void ObjOshihiki_Fall(ObjOshihiki* this, PlayState* play) { ObjOshihiki_SetupOnActor(this, play); } Audio_PlayActorSfx2(&this->dyna.actor, NA_SE_EV_BLOCK_BOUND); - Audio_PlayActorSfx2(&this->dyna.actor, SurfaceType_GetSfxId(&play->colCtx, this->floorPolys[this->highestFloor], - this->floorBgIds[this->highestFloor]) + - SFX_FLAG); + Audio_PlayActorSfx2(&this->dyna.actor, + NA_SE_PL_WALK_GROUND + SurfaceType_GetMaterial(&play->colCtx, + this->floorPolys[this->highestFloor], + this->floorBgIds[this->highestFloor])); } } diff --git a/src/overlays/actors/ovl_player_actor/z_player.c b/src/overlays/actors/ovl_player_actor/z_player.c index e5f239227ca..afbfee1338b 100644 --- a/src/overlays/actors/ovl_player_actor/z_player.c +++ b/src/overlays/actors/ovl_player_actor/z_player.c @@ -1732,7 +1732,7 @@ void func_808326F0(Player* this) { } u16 func_8083275C(Player* this, u16 sfxId) { - return sfxId + this->unk_89E; + return sfxId + this->surfaceMaterial; } void func_80832770(Player* this, u16 sfxId) { @@ -1740,7 +1740,7 @@ void func_80832770(Player* this, u16 sfxId) { } u16 func_808327A4(Player* this, u16 sfxId) { - return sfxId + this->unk_89E + this->ageProperties->unk_94; + return sfxId + this->surfaceMaterial + this->ageProperties->unk_94; } void func_808327C4(Player* this, u16 sfxId) { @@ -5058,7 +5058,7 @@ void func_8083AA10(Player* this, PlayState* play) { func_80835C58(play, this, func_8084411C, 1); func_80832440(play, this); - this->unk_89E = this->unk_A82; + this->surfaceMaterial = this->unk_A82; if ((this->actor.bgCheckFlags & BGCHECKFLAG_GROUND_LEAVE) && !(this->stateFlags1 & PLAYER_STATE1_27) && (D_80853604 != FLOOR_PROPERTY_6) && (D_80853604 != FLOOR_PROPERTY_9) && (D_80853600 > 20.0f) && @@ -7922,7 +7922,7 @@ static Vec3f D_808545C0 = { 0.0f, 0.0f, 0.0f }; s32 func_8084269C(PlayState* play, Player* this) { Vec3f sp2C; - if ((this->unk_89E == SURFACE_SFX_TYPE_0) || (this->unk_89E == SURFACE_SFX_TYPE_1)) { + if ((this->surfaceMaterial == SURFACE_MATERIAL_DIRT) || (this->surfaceMaterial == SURFACE_MATERIAL_SAND)) { func_8084260C(&this->actor.shape.feetPos[FOOT_LEFT], &sp2C, this->actor.floorHeight - this->actor.shape.feetPos[FOOT_LEFT].y, 7.0f, 5.0f); func_800286CC(play, &sp2C, &D_808545B4, &D_808545C0, 50, 30); @@ -8068,7 +8068,7 @@ s32 func_80842DF4(PlayState* play, Player* this) { Vec3f sp5C; Vec3f sp50; s32 temp1; - s32 sp48; + s32 sceneSurfaceMaterial; if (this->meleeWeaponState > 0) { if (this->meleeWeaponAnimation < PLAYER_MWA_SPIN_ATTACK_1H) { @@ -8100,13 +8100,13 @@ s32 func_80842DF4(PlayState* play, Player* this) { } if (this->linearVelocity >= 0.0f) { - sp48 = SurfaceType_GetSfxType(&play->colCtx, sp78, sp74); + sceneSurfaceMaterial = SurfaceType_GetSceneMaterial(&play->colCtx, sp78, sp74); - if (sp48 == SURFACE_SFX_TYPE_10) { + if (sceneSurfaceMaterial == SURFACE_MATERIAL_SCENE_WOOD) { CollisionCheck_SpawnShieldParticlesWood(play, &sp5C, &this->actor.projectedPos); } else { CollisionCheck_SpawnShieldParticles(play, &sp5C); - if (sp48 == SURFACE_SFX_TYPE_11) { + if (sceneSurfaceMaterial == SURFACE_MATERIAL_SCENE_DIRT_SOFT) { func_8002F7DC(&this->actor, NA_SE_IT_WALL_HIT_SOFT); } else { func_8002F7DC(&this->actor, NA_SE_IT_WALL_HIT_HARD); @@ -10006,20 +10006,19 @@ void func_80847BA0(PlayState* play, Player* this) { if (floorPoly != NULL) { this->unk_A7A = SurfaceType_GetFloorProperty(&play->colCtx, floorPoly, this->actor.floorBgId); - this->unk_A82 = this->unk_89E; + this->unk_A82 = this->surfaceMaterial; if (this->actor.bgCheckFlags & BGCHECKFLAG_WATER) { if (this->actor.yDistToWater < 20.0f) { - this->unk_89E = SURFACE_SFX_TYPE_4; + this->surfaceMaterial = SURFACE_MATERIAL_WATER_SHALLOW; } else { - this->unk_89E = SURFACE_SFX_TYPE_5; + this->surfaceMaterial = SURFACE_MATERIAL_WATER_DEEP; } } else { if (this->stateFlags2 & PLAYER_STATE2_9) { - this->unk_89E = SURFACE_SFX_TYPE_1; + this->surfaceMaterial = SURFACE_MATERIAL_SAND; } else { - // unk_89E is a sfxType, but SurfaceType_GetSfxId returns a sfxId? - this->unk_89E = SurfaceType_GetSfxId(&play->colCtx, floorPoly, this->actor.floorBgId); + this->surfaceMaterial = SurfaceType_GetMaterial(&play->colCtx, floorPoly, this->actor.floorBgId); } } @@ -11752,7 +11751,9 @@ void func_8084C5F8(Player* this, PlayState* play) { sp24.y = this->actor.world.pos.y + 20.0f; sp24.z = this->actor.world.pos.z; if (BgCheck_EntityRaycastDown3(&play->colCtx, &groundPoly, &sp30, &sp24) != 0.0f) { - this->unk_89E = SurfaceType_GetSfxType(&play->colCtx, groundPoly, sp30); + //! @bug should use `SurfaceType_GetMaterial` instead of the internal scene material function + // Most material map to itself, so this will mostly result in the correct material, but not all. + this->surfaceMaterial = SurfaceType_GetSceneMaterial(&play->colCtx, groundPoly, sp30); func_808328A0(this); } } From 708062a30c8d741744b1979bd3bb11cfe9a81560 Mon Sep 17 00:00:00 2001 From: engineer124 Date: Wed, 23 Nov 2022 22:18:52 -0500 Subject: [PATCH 02/10] cleanup --- include/z64player.h | 2 +- .../actors/ovl_player_actor/z_player.c | 28 ++++++++++--------- 2 files changed, 16 insertions(+), 14 deletions(-) diff --git a/include/z64player.h b/include/z64player.h index da79dbd089c..c0c333ab557 100644 --- a/include/z64player.h +++ b/include/z64player.h @@ -640,7 +640,7 @@ typedef struct Player { /* 0x0A7B */ u8 unk_A7B; /* 0x0A7C */ f32 unk_A7C; /* 0x0A80 */ s16 unk_A80; - /* 0x0A82 */ u16 unk_A82; + /* 0x0A82 */ u16 prevSurfaceMaterial; /* 0x0A84 */ s16 unk_A84; /* 0x0A86 */ s8 unk_A86; /* 0x0A87 */ u8 unk_A87; diff --git a/src/overlays/actors/ovl_player_actor/z_player.c b/src/overlays/actors/ovl_player_actor/z_player.c index afbfee1338b..665d924727d 100644 --- a/src/overlays/actors/ovl_player_actor/z_player.c +++ b/src/overlays/actors/ovl_player_actor/z_player.c @@ -5058,7 +5058,7 @@ void func_8083AA10(Player* this, PlayState* play) { func_80835C58(play, this, func_8084411C, 1); func_80832440(play, this); - this->surfaceMaterial = this->unk_A82; + this->surfaceMaterial = this->prevSurfaceMaterial; if ((this->actor.bgCheckFlags & BGCHECKFLAG_GROUND_LEAVE) && !(this->stateFlags1 & PLAYER_STATE1_27) && (D_80853604 != FLOOR_PROPERTY_6) && (D_80853604 != FLOOR_PROPERTY_9) && (D_80853600 > 20.0f) && @@ -8062,8 +8062,8 @@ void func_80842D20(PlayState* play, Player* this) { s32 func_80842DF4(PlayState* play, Player* this) { f32 phi_f2; - CollisionPoly* sp78; - s32 sp74; + CollisionPoly* groundPoly; + s32 bgId; Vec3f sp68; Vec3f sp5C; Vec3f sp50; @@ -8086,11 +8086,11 @@ s32 func_80842DF4(PlayState* play, Player* this) { sp68.y = this->meleeWeaponInfo[0].tip.y + (sp50.y * phi_f2); sp68.z = this->meleeWeaponInfo[0].tip.z + (sp50.z * phi_f2); - if (BgCheck_EntityLineTest1(&play->colCtx, &sp68, &this->meleeWeaponInfo[0].tip, &sp5C, &sp78, true, - false, false, true, &sp74) && - !SurfaceType_IsIgnoredByEntities(&play->colCtx, sp78, sp74) && - (SurfaceType_GetFloorType(&play->colCtx, sp78, sp74) != FLOOR_TYPE_6) && - (func_8002F9EC(play, &this->actor, sp78, sp74, &sp5C) == 0)) { + if (BgCheck_EntityLineTest1(&play->colCtx, &sp68, &this->meleeWeaponInfo[0].tip, &sp5C, &groundPoly, + true, false, false, true, &bgId) && + !SurfaceType_IsIgnoredByEntities(&play->colCtx, groundPoly, bgId) && + (SurfaceType_GetFloorType(&play->colCtx, groundPoly, bgId) != FLOOR_TYPE_6) && + (func_8002F9EC(play, &this->actor, groundPoly, bgId, &sp5C) == 0)) { if (this->heldItemAction == PLAYER_IA_HAMMER) { func_80832630(play); @@ -8100,7 +8100,9 @@ s32 func_80842DF4(PlayState* play, Player* this) { } if (this->linearVelocity >= 0.0f) { - sceneSurfaceMaterial = SurfaceType_GetSceneMaterial(&play->colCtx, sp78, sp74); + // The internal material is used because the internal DIRT and DIRT_SOFT map externally to + // DIRT, so the internal material is needed to distinguish between the two + sceneSurfaceMaterial = SurfaceType_GetSceneMaterial(&play->colCtx, groundPoly, bgId); if (sceneSurfaceMaterial == SURFACE_MATERIAL_SCENE_WOOD) { CollisionCheck_SpawnShieldParticlesWood(play, &sp5C, &this->actor.projectedPos); @@ -10006,7 +10008,7 @@ void func_80847BA0(PlayState* play, Player* this) { if (floorPoly != NULL) { this->unk_A7A = SurfaceType_GetFloorProperty(&play->colCtx, floorPoly, this->actor.floorBgId); - this->unk_A82 = this->surfaceMaterial; + this->prevSurfaceMaterial = this->surfaceMaterial; if (this->actor.bgCheckFlags & BGCHECKFLAG_WATER) { if (this->actor.yDistToWater < 20.0f) { @@ -11721,7 +11723,7 @@ void func_8084C5F8(Player* this, PlayState* play) { s32 temp; f32* sp38; CollisionPoly* groundPoly; - s32 sp30; + s32 bgId; Vec3f sp24; this->stateFlags2 |= PLAYER_STATE2_6; @@ -11750,10 +11752,10 @@ void func_8084C5F8(Player* this, PlayState* play) { sp24.x = this->actor.world.pos.x; sp24.y = this->actor.world.pos.y + 20.0f; sp24.z = this->actor.world.pos.z; - if (BgCheck_EntityRaycastDown3(&play->colCtx, &groundPoly, &sp30, &sp24) != 0.0f) { + if (BgCheck_EntityRaycastDown3(&play->colCtx, &groundPoly, &bgId, &sp24) != 0.0f) { //! @bug should use `SurfaceType_GetMaterial` instead of the internal scene material function // Most material map to itself, so this will mostly result in the correct material, but not all. - this->surfaceMaterial = SurfaceType_GetSceneMaterial(&play->colCtx, groundPoly, sp30); + this->surfaceMaterial = SurfaceType_GetSceneMaterial(&play->colCtx, groundPoly, bgId); func_808328A0(this); } } From 5e2aff6157640bd8a35ee207b37e2179d9904c70 Mon Sep 17 00:00:00 2001 From: engineer124 Date: Wed, 23 Nov 2022 22:26:20 -0500 Subject: [PATCH 03/10] iron boots --- src/overlays/actors/ovl_player_actor/z_player.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/overlays/actors/ovl_player_actor/z_player.c b/src/overlays/actors/ovl_player_actor/z_player.c index 665d924727d..c0a51f34510 100644 --- a/src/overlays/actors/ovl_player_actor/z_player.c +++ b/src/overlays/actors/ovl_player_actor/z_player.c @@ -1751,7 +1751,7 @@ void func_808327F8(Player* this, f32 arg1) { s32 sfxId; if (this->currentBoots == PLAYER_BOOTS_IRON) { - sfxId = NA_SE_PL_WALK_HEAVYBOOTS; + sfxId = NA_SE_PL_WALK_GROUND + SURFACE_MATERIAL_IRON_BOOTS; } else { sfxId = func_808327A4(this, NA_SE_PL_WALK_GROUND); } @@ -1763,7 +1763,7 @@ void func_80832854(Player* this) { s32 sfxId; if (this->currentBoots == PLAYER_BOOTS_IRON) { - sfxId = NA_SE_PL_JUMP_HEAVYBOOTS; + sfxId = NA_SE_PL_JUMP + SURFACE_MATERIAL_IRON_BOOTS; } else { sfxId = func_808327A4(this, NA_SE_PL_JUMP); } @@ -1775,7 +1775,7 @@ void func_808328A0(Player* this) { s32 sfxId; if (this->currentBoots == PLAYER_BOOTS_IRON) { - sfxId = NA_SE_PL_LAND_HEAVYBOOTS; + sfxId = NA_SE_PL_LAND + SURFACE_MATERIAL_IRON_BOOTS; } else { sfxId = func_808327A4(this, NA_SE_PL_LAND); } From 4418beab898406272d782c131e6ac3893a232760 Mon Sep 17 00:00:00 2001 From: engineer124 Date: Wed, 23 Nov 2022 23:00:37 -0500 Subject: [PATCH 04/10] climb --- src/overlays/actors/ovl_player_actor/z_player.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/overlays/actors/ovl_player_actor/z_player.c b/src/overlays/actors/ovl_player_actor/z_player.c index c0a51f34510..0beb8ebb1b6 100644 --- a/src/overlays/actors/ovl_player_actor/z_player.c +++ b/src/overlays/actors/ovl_player_actor/z_player.c @@ -11564,7 +11564,8 @@ void func_8084BDFC(Player* this, PlayState* play) { } void func_8084BEE4(Player* this) { - func_8002F7DC(&this->actor, (this->unk_84F != 0) ? NA_SE_PL_WALK_WALL : NA_SE_PL_WALK_LADDER); + func_8002F7DC(&this->actor, (this->unk_84F != 0) ? NA_SE_PL_WALK_GROUND + SURFACE_MATERIAL_VINE + : NA_SE_PL_WALK_GROUND + SURFACE_MATERIAL_WOOD); } void func_8084BF1C(Player* this, PlayState* play) { From 16bf17278797db1a47be0f0a5cd245f35f80c2cf Mon Sep 17 00:00:00 2001 From: engineer124 Date: Wed, 23 Nov 2022 23:45:30 -0500 Subject: [PATCH 05/10] more docs --- include/sfx.h | 1 + src/code/z_actor.c | 6 +- src/code/z_collision_check.c | 8 +- src/code/z_message_PAL.c | 3 +- .../actors/ovl_Boss_Ganon/z_boss_ganon.c | 4 +- .../ovl_Boss_Ganondrof/z_boss_ganondrof.c | 4 +- src/overlays/actors/ovl_Boss_Mo/z_boss_mo.c | 205 +++++++++--------- src/overlays/actors/ovl_En_Nb/z_en_nb.c | 4 +- src/overlays/actors/ovl_En_Ru1/z_en_ru1.c | 4 +- src/overlays/actors/ovl_En_Sa/z_en_sa.c | 4 +- src/overlays/actors/ovl_En_Ta/z_en_ta.c | 2 +- src/overlays/actors/ovl_En_Xc/z_en_xc.c | 10 +- src/overlays/actors/ovl_En_Zl2/z_en_zl2.c | 2 +- src/overlays/actors/ovl_Fishing/z_fishing.c | 2 +- .../actors/ovl_player_actor/z_player.c | 11 +- 15 files changed, 138 insertions(+), 132 deletions(-) diff --git a/include/sfx.h b/include/sfx.h index 373cbc0d9b4..8dffa13c9a8 100644 --- a/include/sfx.h +++ b/include/sfx.h @@ -58,6 +58,7 @@ typedef struct { #define DEFINE_SFX(enum, _1, _2, _3, _4) enum, typedef enum { + NA_SE_NONE, NA_SE_PL_BASE = 0x7FF, #include "tables/sfx/playerbank_table.h" NA_SE_IT_BASE = 0x17FF, diff --git a/src/code/z_actor.c b/src/code/z_actor.c index 3890bdcb5ca..de714ab41fe 100644 --- a/src/code/z_actor.c +++ b/src/code/z_actor.c @@ -1744,11 +1744,11 @@ void func_8002F994(Actor* actor, s32 arg1) { actor->flags |= ACTOR_FLAG_28; actor->flags &= ~(ACTOR_FLAG_19 | ACTOR_FLAG_20 | ACTOR_FLAG_21); if (arg1 < 40) { - actor->sfx = NA_SE_PL_WALK_DIRT - SFX_FLAG; + actor->sfx = 3; } else if (arg1 < 100) { - actor->sfx = NA_SE_PL_WALK_CONCRETE - SFX_FLAG; + actor->sfx = 2; } else { - actor->sfx = NA_SE_PL_WALK_SAND - SFX_FLAG; + actor->sfx = 1; } } diff --git a/src/code/z_collision_check.c b/src/code/z_collision_check.c index 6ac812d6bfe..7c4d4259a64 100644 --- a/src/code/z_collision_check.c +++ b/src/code/z_collision_check.c @@ -1610,11 +1610,11 @@ s32 CollisionCheck_SwordHitAudio(Collider* at, ColliderInfo* acInfo) { Audio_PlaySfxGeneral(NA_SE_IT_SWORD_STRIKE_HARD, &at->actor->projectedPos, 4, &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb); } else if (acInfo->elemType == ELEMTYPE_UNK2) { - Audio_PlaySfxGeneral(NA_SE_PL_WALK_GROUND - SFX_FLAG, &at->actor->projectedPos, 4, - &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb); + Audio_PlaySfxGeneral(NA_SE_NONE, &at->actor->projectedPos, 4, &gSfxDefaultFreqAndVolScale, + &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb); } else if (acInfo->elemType == ELEMTYPE_UNK3) { - Audio_PlaySfxGeneral(NA_SE_PL_WALK_GROUND - SFX_FLAG, &at->actor->projectedPos, 4, - &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb); + Audio_PlaySfxGeneral(NA_SE_NONE, &at->actor->projectedPos, 4, &gSfxDefaultFreqAndVolScale, + &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb); } } return true; diff --git a/src/code/z_message_PAL.c b/src/code/z_message_PAL.c index e5b0ba115a6..5cce382f57b 100644 --- a/src/code/z_message_PAL.c +++ b/src/code/z_message_PAL.c @@ -3170,8 +3170,7 @@ void Message_Update(PlayState* play) { R_TEXTBOX_TEXHEIGHT = 512; } else { Message_GrowTextbox(msgCtx); - // TODO: this may be NA_SE_PL_WALK_GROUND - SFX_FLAG, or not, investigate sfxId=0 - Audio_PlaySfxIfNotInCutscene(0); + Audio_PlaySfxIfNotInCutscene(NA_SE_NONE); msgCtx->stateTimer = 0; msgCtx->msgMode = MSGMODE_TEXT_BOX_GROWING; } 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 95b85c97a9c..39ba8034f16 100644 --- a/src/overlays/actors/ovl_Boss_Ganon/z_boss_ganon.c +++ b/src/overlays/actors/ovl_Boss_Ganon/z_boss_ganon.c @@ -2464,7 +2464,7 @@ void BossGanon_HitByLightBall(BossGanon* this, PlayState* play) { BossGanonEff_SpawnSparkle(play, &this->unk_1FC, &sp50, &sZeroVec, Rand_ZeroFloat(200.0f) + 500.0f, 0x14); } - Audio_PlayActorSfx2(&this->actor, NA_SE_PL_WALK_WATER2); + Audio_PlayActorSfx2(&this->actor, NA_SE_PL_WALK_GROUND + SURFACE_MATERIAL_TALL_GRASS); } if (Animation_OnFrame(&this->skelAnime, this->fwork[GDF_FWORK_1])) { @@ -2646,7 +2646,7 @@ void BossGanon_Vulnerable(BossGanon* this, PlayState* play) { 0x14); } - Audio_PlayActorSfx2(&this->actor, NA_SE_PL_WALK_WATER2); + Audio_PlayActorSfx2(&this->actor, NA_SE_PL_WALK_GROUND + SURFACE_MATERIAL_TALL_GRASS); this->timers[3] = 50; } 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 70d2a663e6c..1ab566705ea 100644 --- a/src/overlays/actors/ovl_Boss_Ganondrof/z_boss_ganondrof.c +++ b/src/overlays/actors/ovl_Boss_Ganondrof/z_boss_ganondrof.c @@ -1239,7 +1239,7 @@ void BossGanondrof_CollisionCheck(BossGanondrof* this, PlayState* play) { } if (this->flyMode != GND_FLY_PAINTING) { if (acHit && (this->actionFunc != BossGanondrof_Stunned) && (hurtbox->toucher.dmgFlags & DMG_RANGED)) { - Audio_PlayActorSfx2(&this->actor, NA_SE_PL_WALK_GROUND - SFX_FLAG); + Audio_PlayActorSfx2(&this->actor, NA_SE_NONE); osSyncPrintf("hit != 0 \n"); } else if (this->actionFunc != BossGanondrof_Charge) { if (this->returnCount == 0) { @@ -1270,7 +1270,7 @@ void BossGanondrof_CollisionCheck(BossGanondrof* this, PlayState* play) { horse->hitTimer = 20; Audio_PlayActorSfx2(&this->actor, NA_SE_EN_FANTOM_DAMAGE); } else { - Audio_PlayActorSfx2(&this->actor, NA_SE_PL_WALK_GROUND - SFX_FLAG); + Audio_PlayActorSfx2(&this->actor, NA_SE_NONE); } } else if (acHit && (hurtbox->toucher.dmgFlags & DMG_RANGED)) { this->work[GND_INVINC_TIMER] = 10; 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 70a29beffa4..b8142e97f57 100644 --- a/src/overlays/actors/ovl_Boss_Mo/z_boss_mo.c +++ b/src/overlays/actors/ovl_Boss_Mo/z_boss_mo.c @@ -3040,53 +3040,56 @@ void BossMo_Unknown(void) { // Appears to be a test function for sound effects. static Vec3f zeroVec = { 0.0f, 0.0f, 0.0f }; static u16 unkSfx[] = { - NA_SE_PL_WALK_GROUND, - NA_SE_PL_WALK_GROUND, - NA_SE_PL_WALK_GROUND, - NA_SE_PL_WALK_SAND, - NA_SE_PL_WALK_CONCRETE, - NA_SE_PL_WALK_DIRT, - NA_SE_PL_WALK_WATER0, - NA_SE_PL_WALK_WATER1, - NA_SE_PL_WALK_WATER2, - NA_SE_PL_WALK_MAGMA, - NA_SE_PL_WALK_GRASS, - NA_SE_PL_WALK_GLASS, - NA_SE_PL_WALK_LADDER, - NA_SE_PL_WALK_GLASS, - NA_SE_PL_WALK_WALL, - NA_SE_PL_WALK_HEAVYBOOTS, - NA_SE_PL_WALK_ICE, - NA_SE_PL_JUMP, - NA_SE_PL_JUMP, - NA_SE_PL_JUMP_SAND, - NA_SE_PL_JUMP_CONCRETE, - NA_SE_PL_JUMP_DIRT, - NA_SE_PL_JUMP_WATER0, - NA_SE_PL_JUMP_WATER1, - NA_SE_PL_JUMP_WATER2, - NA_SE_PL_JUMP_MAGMA, - NA_SE_PL_JUMP_GRASS, - NA_SE_PL_JUMP_GLASS, - NA_SE_PL_JUMP_LADDER, - NA_SE_PL_JUMP_GLASS, - NA_SE_PL_JUMP_HEAVYBOOTS, - NA_SE_PL_JUMP_ICE, - NA_SE_PL_LAND, - NA_SE_PL_LAND, - NA_SE_PL_LAND_SAND, - NA_SE_PL_LAND_CONCRETE, - NA_SE_PL_LAND_DIRT, - NA_SE_PL_LAND_WATER0, - NA_SE_PL_LAND_WATER1, - NA_SE_PL_LAND_WATER2, - NA_SE_PL_LAND_MAGMA, - NA_SE_PL_LAND_GRASS, - NA_SE_PL_LAND_GLASS, - NA_SE_PL_LAND_LADDER, - NA_SE_PL_LAND_GLASS, - NA_SE_PL_LAND_HEAVYBOOTS, - NA_SE_PL_LAND_ICE, + // Walking + NA_SE_PL_WALK_GROUND + SURFACE_MATERIAL_DIRT, + NA_SE_PL_WALK_GROUND + SURFACE_MATERIAL_DIRT, + NA_SE_PL_WALK_GROUND + SURFACE_MATERIAL_DIRT, + NA_SE_PL_WALK_GROUND + SURFACE_MATERIAL_SAND, + NA_SE_PL_WALK_GROUND + SURFACE_MATERIAL_STONE, + NA_SE_PL_WALK_GROUND + SURFACE_MATERIAL_JABU, + NA_SE_PL_WALK_GROUND + SURFACE_MATERIAL_WATER_SHALLOW, + NA_SE_PL_WALK_GROUND + SURFACE_MATERIAL_WATER_DEEP, + NA_SE_PL_WALK_GROUND + SURFACE_MATERIAL_TALL_GRASS, + NA_SE_PL_WALK_GROUND + SURFACE_MATERIAL_LAVA, + NA_SE_PL_WALK_GROUND + SURFACE_MATERIAL_GRASS, + NA_SE_PL_WALK_GROUND + SURFACE_MATERIAL_BRIDGE, + NA_SE_PL_WALK_GROUND + SURFACE_MATERIAL_WOOD, + NA_SE_PL_WALK_GROUND + SURFACE_MATERIAL_BRIDGE, + NA_SE_PL_WALK_GROUND + SURFACE_MATERIAL_VINE, + NA_SE_PL_WALK_GROUND + SURFACE_MATERIAL_IRON_BOOTS, + NA_SE_PL_WALK_GROUND + SURFACE_MATERIAL_ICE, + // Jumping + NA_SE_PL_JUMP + SURFACE_MATERIAL_DIRT, + NA_SE_PL_JUMP + SURFACE_MATERIAL_DIRT, + NA_SE_PL_JUMP + SURFACE_MATERIAL_SAND, + NA_SE_PL_JUMP + SURFACE_MATERIAL_STONE, + NA_SE_PL_JUMP + SURFACE_MATERIAL_JABU, + NA_SE_PL_JUMP + SURFACE_MATERIAL_WATER_SHALLOW, + NA_SE_PL_JUMP + SURFACE_MATERIAL_WATER_DEEP, + NA_SE_PL_JUMP + SURFACE_MATERIAL_TALL_GRASS, + NA_SE_PL_JUMP + SURFACE_MATERIAL_LAVA, + NA_SE_PL_JUMP + SURFACE_MATERIAL_GRASS, + NA_SE_PL_JUMP + SURFACE_MATERIAL_BRIDGE, + NA_SE_PL_JUMP + SURFACE_MATERIAL_WOOD, + NA_SE_PL_JUMP + SURFACE_MATERIAL_BRIDGE, + NA_SE_PL_JUMP + SURFACE_MATERIAL_IRON_BOOTS, + NA_SE_PL_JUMP + SURFACE_MATERIAL_ICE, + // Landing + NA_SE_PL_LAND + SURFACE_MATERIAL_DIRT, + NA_SE_PL_LAND + SURFACE_MATERIAL_DIRT, + NA_SE_PL_LAND + SURFACE_MATERIAL_SAND, + NA_SE_PL_LAND + SURFACE_MATERIAL_STONE, + NA_SE_PL_LAND + SURFACE_MATERIAL_JABU, + NA_SE_PL_LAND + SURFACE_MATERIAL_WATER_SHALLOW, + NA_SE_PL_LAND + SURFACE_MATERIAL_WATER_DEEP, + NA_SE_PL_LAND + SURFACE_MATERIAL_TALL_GRASS, + NA_SE_PL_LAND + SURFACE_MATERIAL_LAVA, + NA_SE_PL_LAND + SURFACE_MATERIAL_GRASS, + NA_SE_PL_LAND + SURFACE_MATERIAL_BRIDGE, + NA_SE_PL_LAND + SURFACE_MATERIAL_WOOD, + NA_SE_PL_LAND + SURFACE_MATERIAL_BRIDGE, + NA_SE_PL_LAND + SURFACE_MATERIAL_IRON_BOOTS, + NA_SE_PL_LAND + SURFACE_MATERIAL_ICE, NA_SE_PL_SLIPDOWN, NA_SE_PL_CLIMB_CLIFF, NA_SE_PL_CLIMB_CLIFF, @@ -3114,37 +3117,39 @@ void BossMo_Unknown(void) { NA_SE_PL_SKIP, NA_SE_PL_BODY_HIT, NA_SE_PL_DAMAGE, - NA_SE_PL_SLIP, - NA_SE_PL_SLIP, - NA_SE_PL_SLIP, - NA_SE_PL_SLIP_SAND, - NA_SE_PL_SLIP_CONCRETE, - NA_SE_PL_SLIP_DIRT, - NA_SE_PL_SLIP_WATER0, - NA_SE_PL_SLIP_WATER1, - NA_SE_PL_SLIP_WATER2, - NA_SE_PL_SLIP_MAGMA, - NA_SE_PL_SLIP_GRASS, - NA_SE_PL_SLIP_GLASS, - NA_SE_PL_SLIP_LADDER, - NA_SE_PL_SLIP_GLASS, - NA_SE_PL_SLIP_HEAVYBOOTS, - NA_SE_PL_SLIP_ICE, - NA_SE_PL_BOUND, - NA_SE_PL_BOUND, - NA_SE_PL_BOUND_SAND, - NA_SE_PL_BOUND_CONCRETE, - NA_SE_PL_BOUND_DIRT, - NA_SE_PL_BOUND_WATER0, - NA_SE_PL_BOUND_WATER1, - NA_SE_PL_BOUND_WATER2, - NA_SE_PL_BOUND_MAGMA, - NA_SE_PL_BOUND_GRASS, - NA_SE_PL_BOUND_WOOD, - NA_SE_PL_BOUND_LADDER, - NA_SE_PL_BOUND_WOOD, - NA_SE_PL_BOUND_HEAVYBOOTS, - NA_SE_PL_BOUND_ICE, + // Slipping + NA_SE_PL_SLIP + SURFACE_MATERIAL_DIRT, + NA_SE_PL_SLIP + SURFACE_MATERIAL_DIRT, + NA_SE_PL_SLIP + SURFACE_MATERIAL_DIRT, + NA_SE_PL_SLIP + SURFACE_MATERIAL_SAND, + NA_SE_PL_SLIP + SURFACE_MATERIAL_STONE, + NA_SE_PL_SLIP + SURFACE_MATERIAL_JABU, + NA_SE_PL_SLIP + SURFACE_MATERIAL_WATER_SHALLOW, + NA_SE_PL_SLIP + SURFACE_MATERIAL_WATER_DEEP, + NA_SE_PL_SLIP + SURFACE_MATERIAL_TALL_GRASS, + NA_SE_PL_SLIP + SURFACE_MATERIAL_LAVA, + NA_SE_PL_SLIP + SURFACE_MATERIAL_GRASS, + NA_SE_PL_SLIP + SURFACE_MATERIAL_BRIDGE, + NA_SE_PL_SLIP + SURFACE_MATERIAL_WOOD, + NA_SE_PL_SLIP + SURFACE_MATERIAL_BRIDGE, + NA_SE_PL_SLIP + SURFACE_MATERIAL_IRON_BOOTS, + NA_SE_PL_SLIP + SURFACE_MATERIAL_ICE, + // Bound + NA_SE_PL_BOUND + SURFACE_MATERIAL_DIRT, + NA_SE_PL_BOUND + SURFACE_MATERIAL_DIRT, + NA_SE_PL_BOUND + SURFACE_MATERIAL_SAND, + NA_SE_PL_BOUND + SURFACE_MATERIAL_STONE, + NA_SE_PL_BOUND + SURFACE_MATERIAL_JABU, + NA_SE_PL_BOUND + SURFACE_MATERIAL_WATER_SHALLOW, + NA_SE_PL_BOUND + SURFACE_MATERIAL_WATER_DEEP, + NA_SE_PL_BOUND + SURFACE_MATERIAL_TALL_GRASS, + NA_SE_PL_BOUND + SURFACE_MATERIAL_LAVA, + NA_SE_PL_BOUND + SURFACE_MATERIAL_GRASS, + NA_SE_PL_BOUND + SURFACE_MATERIAL_BRIDGE, + NA_SE_PL_BOUND + SURFACE_MATERIAL_WOOD, + NA_SE_PL_BOUND + SURFACE_MATERIAL_BRIDGE, + NA_SE_PL_BOUND + SURFACE_MATERIAL_IRON_BOOTS, + NA_SE_PL_BOUND + SURFACE_MATERIAL_ICE, NA_SE_PL_FACE_UP, NA_SE_PL_DIVE_BUBBLE, NA_SE_PL_MOVE_BUBBLE, @@ -3175,8 +3180,8 @@ void BossMo_Unknown(void) { NA_SE_IT_ARROW_STICK_CRE, NA_SE_IT_ARROW_STICK_CRE, NA_SE_IT_ARROW_STICK_OBJ, - NA_SE_PL_WALK_GROUND - SFX_FLAG, - NA_SE_PL_WALK_GROUND - SFX_FLAG, + NA_SE_NONE, + NA_SE_NONE, NA_SE_IT_SWORD_SWING_HARD, NA_SE_IT_WALL_HIT_HARD, NA_SE_IT_WALL_HIT_SOFT, @@ -3289,8 +3294,8 @@ void BossMo_Unknown(void) { NA_SE_EV_TREE_CUT, NA_SE_EV_WATERDROP, NA_SE_EV_TORCH, - NA_SE_PL_WALK_GROUND - SFX_FLAG, - NA_SE_PL_WALK_GROUND - SFX_FLAG, + NA_SE_NONE, + NA_SE_NONE, NA_SE_EN_DODO_J_WALK, NA_SE_EN_DODO_J_CRY, NA_SE_EN_DODO_J_FIRE - SFX_FLAG, @@ -3441,13 +3446,13 @@ void BossMo_Unknown(void) { NA_SE_EN_OCTAROCK_LAND, NA_SE_EN_OCTAROCK_SINK, NA_SE_EN_OCTAROCK_BUBLE, - NA_SE_PL_WALK_GROUND - SFX_FLAG, - NA_SE_PL_WALK_GROUND - SFX_FLAG, - NA_SE_PL_WALK_GROUND - SFX_FLAG, - NA_SE_PL_WALK_GROUND - SFX_FLAG, - NA_SE_PL_WALK_GROUND - SFX_FLAG, - NA_SE_PL_WALK_GROUND - SFX_FLAG, - NA_SE_PL_WALK_GROUND - SFX_FLAG, + NA_SE_NONE, + NA_SE_NONE, + NA_SE_NONE, + NA_SE_NONE, + NA_SE_NONE, + NA_SE_NONE, + NA_SE_NONE, NA_SE_SY_WIN_OPEN, NA_SE_SY_WIN_CLOSE, NA_SE_SY_CORRECT_CHIME, @@ -3463,7 +3468,7 @@ void BossMo_Unknown(void) { NA_SE_SY_HP_RECOVER, NA_SE_SY_ATTENTION_ON, NA_SE_SY_ATTENTION_ON, - NA_SE_PL_WALK_GROUND - SFX_FLAG, + NA_SE_NONE, NA_SE_SY_LOCK_ON, NA_SE_SY_LOCK_ON, NA_SE_SY_LOCK_OFF, @@ -3473,9 +3478,9 @@ void BossMo_Unknown(void) { NA_SE_SY_ATTENTION_ON_OLD, NA_SE_SY_ATTENTION_URGENCY, NA_SE_SY_MESSAGE_PASS, - NA_SE_PL_WALK_GROUND - SFX_FLAG, - NA_SE_PL_WALK_GROUND - SFX_FLAG, - NA_SE_PL_WALK_GROUND - SFX_FLAG, + NA_SE_NONE, + NA_SE_NONE, + NA_SE_NONE, NA_SE_SY_PIECE_OF_HEART, NA_SE_SY_GET_ITEM, NA_SE_SY_WIN_SCROLL_LEFT, @@ -3488,7 +3493,7 @@ void BossMo_Unknown(void) { NA_SE_SY_ATTENTION_ON, NA_SE_SY_ATTENTION_URGENCY, NA_SE_OC_OCARINA, - NA_SE_PL_WALK_GROUND - SFX_FLAG, + NA_SE_NONE, NA_SE_PL_LAND - SFX_FLAG, NA_SE_VO_LI_SWORD_N, NA_SE_VO_LI_SWORD_N, @@ -3566,12 +3571,12 @@ void BossMo_Unknown(void) { NA_SE_EN_DEADHAND_BITE, NA_SE_EN_DEADHAND_WALK, NA_SE_EN_DEADHAND_GRIP, - NA_SE_PL_WALK_GROUND - SFX_FLAG, - NA_SE_PL_WALK_GROUND - SFX_FLAG, - NA_SE_PL_WALK_GROUND - SFX_FLAG, - NA_SE_PL_WALK_GROUND - SFX_FLAG, - NA_SE_PL_WALK_GROUND - SFX_FLAG, - NA_SE_PL_WALK_GROUND - SFX_FLAG, + NA_SE_NONE, + NA_SE_NONE, + NA_SE_NONE, + NA_SE_NONE, + NA_SE_NONE, + NA_SE_NONE, }; if (BREG(32) != 0) { 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 dc28a2ee478..70660f1ce9c 100644 --- a/src/overlays/actors/ovl_En_Nb/z_en_nb.c +++ b/src/overlays/actors/ovl_En_Nb/z_en_nb.c @@ -717,7 +717,7 @@ void EnNb_PlayLookRightSFX(EnNb* this) { s32 pad[2]; if ((this->skelAnime.mode == 2) && Animation_OnFrame(&this->skelAnime, 9.0f)) { - func_80078914(&this->actor.projectedPos, NA_SE_PL_WALK_CONCRETE); + func_80078914(&this->actor.projectedPos, NA_SE_PL_WALK_GROUND + SURFACE_MATERIAL_STONE); } } @@ -725,7 +725,7 @@ void EnNb_PlayLookLeftSFX(EnNb* this) { s32 pad[2]; if (Animation_OnFrame(&this->skelAnime, 9.0f) || Animation_OnFrame(&this->skelAnime, 13.0f)) { - func_80078914(&this->actor.projectedPos, NA_SE_PL_WALK_CONCRETE); + func_80078914(&this->actor.projectedPos, NA_SE_PL_WALK_GROUND + SURFACE_MATERIAL_STONE); } } 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 0f322b70053..1b71261420e 100644 --- a/src/overlays/actors/ovl_En_Ru1/z_en_ru1.c +++ b/src/overlays/actors/ovl_En_Ru1/z_en_ru1.c @@ -833,7 +833,7 @@ void func_80AEC650(EnRu1* this) { if (this->unk_280 == 0) { if (Animation_OnFrame(&this->skelAnime, 2.0f) || Animation_OnFrame(&this->skelAnime, 7.0f)) { - func_80078914(&this->actor.projectedPos, NA_SE_PL_WALK_DIRT); + func_80078914(&this->actor.projectedPos, NA_SE_PL_WALK_GROUND + SURFACE_MATERIAL_JABU); } } } @@ -1899,7 +1899,7 @@ void func_80AEF40C(EnRu1* this) { if (Animation_OnFrame(skelAnime, 2.0f) || Animation_OnFrame(skelAnime, 7.0f) || Animation_OnFrame(skelAnime, 12.0f) || Animation_OnFrame(skelAnime, 18.0f) || Animation_OnFrame(skelAnime, 25.0f) || Animation_OnFrame(skelAnime, 33.0f)) { - func_80078914(&this->actor.projectedPos, NA_SE_PL_WALK_DIRT); + func_80078914(&this->actor.projectedPos, NA_SE_PL_WALK_GROUND + SURFACE_MATERIAL_JABU); } } 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 05803aa3f07..d2066a69947 100644 --- a/src/overlays/actors/ovl_En_Sa/z_en_sa.c +++ b/src/overlays/actors/ovl_En_Sa/z_en_sa.c @@ -675,8 +675,8 @@ void func_80AF68E4(EnSa* this, PlayState* play) { phi_v0 = this->unk_20C; } if (phi_v0 == 0) { - Audio_PlaySfxGeneral(NA_SE_PL_WALK_GROUND, &this->actor.projectedPos, 4, &gSfxDefaultFreqAndVolScale, - &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb); + Audio_PlaySfxGeneral(NA_SE_PL_WALK_GROUND + SURFACE_MATERIAL_DIRT, &this->actor.projectedPos, 4, + &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb); this->unk_20C = 8; } } 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 4bb2f57e366..bf92119336e 100644 --- a/src/overlays/actors/ovl_En_Ta/z_en_ta.c +++ b/src/overlays/actors/ovl_En_Ta/z_en_ta.c @@ -431,7 +431,7 @@ void EnTa_RunWithAccelerationAndSfx(EnTa* this, PlayState* play) { s32 framesMod12 = (s32)play->state.frames % 12; if (framesMod12 == 0 || framesMod12 == 6) { - Audio_PlayActorSfx2(&this->actor, NA_SE_PL_WALK_GROUND); + Audio_PlayActorSfx2(&this->actor, NA_SE_PL_WALK_GROUND + SURFACE_MATERIAL_DIRT); } if (this->actor.speedXZ < 6.0f) { this->actor.speedXZ += 0.4f; 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 32245aad374..256b48b1a28 100644 --- a/src/overlays/actors/ovl_En_Xc/z_en_xc.c +++ b/src/overlays/actors/ovl_En_Xc/z_en_xc.c @@ -429,7 +429,7 @@ void EnXc_SetColossusAppearSFX(EnXc* this, PlayState* play) { s32 pad; SkinMatrix_Vec3fMtxFMultXYZW(&play->viewProjectionMtxF, &pos, &sXyzDist, wDest); - func_80078914(&sXyzDist, NA_SE_PL_WALK_CONCRETE); + func_80078914(&sXyzDist, NA_SE_PL_WALK_GROUND + SURFACE_MATERIAL_STONE); } } } @@ -1746,14 +1746,14 @@ void EnXc_SetThrownAroundSFX(EnXc* this) { SkelAnime* skelAnime = &this->skelAnime; if (Animation_OnFrame(skelAnime, 9.0f)) { - func_80078914(&this->actor.projectedPos, NA_SE_PL_BOUND_GRASS); + func_80078914(&this->actor.projectedPos, NA_SE_PL_BOUND + SURFACE_MATERIAL_GRASS); func_80078914(&this->actor.projectedPos, NA_SE_VO_SK_CRASH); } else if (Animation_OnFrame(skelAnime, 26.0f)) { - func_80078914(&this->actor.projectedPos, NA_SE_PL_BOUND_GRASS); + func_80078914(&this->actor.projectedPos, NA_SE_PL_BOUND + SURFACE_MATERIAL_GRASS); } else if (Animation_OnFrame(skelAnime, 28.0f)) { - func_80078914(&this->actor.projectedPos, NA_SE_PL_WALK_GRASS); + func_80078914(&this->actor.projectedPos, NA_SE_PL_WALK_GROUND + SURFACE_MATERIAL_GRASS); } else if (Animation_OnFrame(skelAnime, 34.0f)) { - func_80078914(&this->actor.projectedPos, NA_SE_PL_WALK_GRASS); + func_80078914(&this->actor.projectedPos, NA_SE_PL_WALK_GROUND + SURFACE_MATERIAL_GRASS); } } diff --git a/src/overlays/actors/ovl_En_Zl2/z_en_zl2.c b/src/overlays/actors/ovl_En_Zl2/z_en_zl2.c index 644dd96d97d..4bab9c0031d 100644 --- a/src/overlays/actors/ovl_En_Zl2/z_en_zl2.c +++ b/src/overlays/actors/ovl_En_Zl2/z_en_zl2.c @@ -589,7 +589,7 @@ void func_80B4FD90(EnZl2* this, PlayState* play) { void func_80B4FDD4(EnZl2* this) { if (Animation_OnFrame(&this->skelAnime, 14.0f)) { - func_80078914(&this->actor.projectedPos, NA_SE_PL_WALK_CONCRETE); + func_80078914(&this->actor.projectedPos, NA_SE_PL_WALK_GROUND + SURFACE_MATERIAL_STONE); } } diff --git a/src/overlays/actors/ovl_Fishing/z_fishing.c b/src/overlays/actors/ovl_Fishing/z_fishing.c index b8846fde1e5..3e8d7c0d227 100644 --- a/src/overlays/actors/ovl_Fishing/z_fishing.c +++ b/src/overlays/actors/ovl_Fishing/z_fishing.c @@ -2479,7 +2479,7 @@ void Fishing_UpdateLure(Fishing* this, PlayState* play) { sLureRot.x = 0.0f; if (CHECK_BTN_ALL(input->press.button, BTN_B)) { D_80B7E144 += 6.0f; - func_80078914(&D_80B7AF94, NA_SE_PL_WALK_SAND); + func_80078914(&D_80B7AF94, NA_SE_PL_WALK_GROUND + SURFACE_MATERIAL_SAND); } } else { if (D_80B7E144 > 150.0f) { diff --git a/src/overlays/actors/ovl_player_actor/z_player.c b/src/overlays/actors/ovl_player_actor/z_player.c index 0beb8ebb1b6..2bcf4f265f3 100644 --- a/src/overlays/actors/ovl_player_actor/z_player.c +++ b/src/overlays/actors/ovl_player_actor/z_player.c @@ -1815,7 +1815,8 @@ void func_80832924(Player* this, struct_80832924* entry) { } else if (flags == 0x4000) { func_808327F8(this, 0.0f); } else if (flags == 0x4800) { - func_800F4010(&this->actor.projectedPos, this->ageProperties->unk_94 + NA_SE_PL_WALK_LADDER, 0.0f); + func_800F4010(&this->actor.projectedPos, + NA_SE_PL_WALK_GROUND + SURFACE_MATERIAL_WOOD + this->ageProperties->unk_94, 0.0f); } } cont = (entry->field >= 0); @@ -11715,9 +11716,9 @@ static f32 D_80854898[] = { 10.0f, 20.0f }; static f32 D_808548A0[] = { 40.0f, 50.0f }; static struct_80832924 D_808548A8[] = { - { NA_SE_PL_WALK_LADDER, 0x80A }, - { NA_SE_PL_WALK_LADDER, 0x814 }, - { NA_SE_PL_WALK_LADDER, -0x81E }, + { NA_SE_PL_WALK_GROUND + SURFACE_MATERIAL_WOOD, 0x80A }, + { NA_SE_PL_WALK_GROUND + SURFACE_MATERIAL_WOOD, 0x814 }, + { NA_SE_PL_WALK_GROUND + SURFACE_MATERIAL_WOOD, -0x81E }, }; void func_8084C5F8(Player* this, PlayState* play) { @@ -14304,7 +14305,7 @@ void func_80851FB0(PlayState* play, Player* this, CsCmdActorAction* arg2) { } static struct_80832924 D_808551C8[] = { - { NA_SE_PL_LAND_LADDER, 0x843 }, + { NA_SE_PL_LAND + SURFACE_MATERIAL_WOOD, 0x843 }, { 0, 0x4854 }, { 0, 0x485A }, { 0, -0x4860 }, From 028b957e80f14b33756efde8dc0779b96efd7477 Mon Sep 17 00:00:00 2001 From: engineer124 Date: Thu, 24 Nov 2022 00:57:21 -0500 Subject: [PATCH 06/10] rename --- include/functions.h | 4 +- include/z64bgcheck.h | 48 +++--- include/z64player.h | 2 +- src/code/z_actor.c | 10 +- src/code/z_bgcheck.c | 42 ++--- src/code/z_camera.c | 2 +- .../ovl_Bg_Hidan_Rock/z_bg_hidan_rock.c | 4 +- .../actors/ovl_Boss_Ganon/z_boss_ganon.c | 4 +- src/overlays/actors/ovl_Boss_Mo/z_boss_mo.c | 156 +++++++++--------- src/overlays/actors/ovl_Demo_Im/z_demo_im.c | 2 +- .../actors/ovl_En_Encount1/z_en_encount1.c | 2 +- src/overlays/actors/ovl_En_Js/z_en_js.c | 4 +- src/overlays/actors/ovl_En_Nb/z_en_nb.c | 4 +- src/overlays/actors/ovl_En_Ru1/z_en_ru1.c | 4 +- src/overlays/actors/ovl_En_Sa/z_en_sa.c | 2 +- src/overlays/actors/ovl_En_Ta/z_en_ta.c | 2 +- src/overlays/actors/ovl_En_Xc/z_en_xc.c | 16 +- src/overlays/actors/ovl_En_Zl2/z_en_zl2.c | 4 +- src/overlays/actors/ovl_En_Zl3/z_en_zl3.c | 2 +- src/overlays/actors/ovl_Fishing/z_fishing.c | 2 +- .../actors/ovl_Obj_Oshihiki/z_obj_oshihiki.c | 6 +- .../actors/ovl_player_actor/z_player.c | 52 +++--- 22 files changed, 186 insertions(+), 188 deletions(-) diff --git a/include/functions.h b/include/functions.h index ca3b1311207..6e7cd56b359 100644 --- a/include/functions.h +++ b/include/functions.h @@ -601,8 +601,8 @@ s32 SurfaceType_CheckWallFlag2(CollisionContext* colCtx, CollisionPoly* poly, s3 u32 SurfaceType_GetFloorProperty(CollisionContext* colCtx, CollisionPoly* poly, s32 bgId); u32 SurfaceType_IsSoft(CollisionContext* colCtx, CollisionPoly* poly, s32 bgId); u32 SurfaceType_IsHorseBlocked(CollisionContext* colCtx, CollisionPoly* poly, s32 bgId); -u32 SurfaceType_GetSceneMaterial(CollisionContext* colCtx, CollisionPoly* poly, s32 bgId); -u16 SurfaceType_GetMaterial(CollisionContext* colCtx, CollisionPoly* poly, s32 bgId); +u32 SurfaceType_GetMaterial(CollisionContext* colCtx, CollisionPoly* poly, s32 bgId); +u16 SurfaceType_GetSfxOffset(CollisionContext* colCtx, CollisionPoly* poly, s32 bgId); u32 SurfaceType_GetFloorEffect(CollisionContext* colCtx, CollisionPoly* poly, s32 bgId); u32 SurfaceType_GetLightSetting(CollisionContext* colCtx, CollisionPoly* poly, s32 bgId); u32 SurfaceType_GetEcho(CollisionContext* colCtx, CollisionPoly* poly, s32 bgId); diff --git a/include/z64bgcheck.h b/include/z64bgcheck.h index 33377fdb704..aa25557c115 100644 --- a/include/z64bgcheck.h +++ b/include/z64bgcheck.h @@ -161,6 +161,25 @@ typedef enum { /* 12 */ FLOOR_PROPERTY_12 } FloorProperty; +typedef enum { + /* 0 */ SURFACE_SFX_OFFSET_DIRT, + /* 1 */ SURFACE_SFX_OFFSET_SAND, + /* 2 */ SURFACE_SFX_OFFSET_STONE, + /* 3 */ SURFACE_SFX_OFFSET_JABU, + /* 4 */ SURFACE_SFX_OFFSET_WATER_SHALLOW, + /* 5 */ SURFACE_SFX_OFFSET_WATER_DEEP, + /* 6 */ SURFACE_SFX_OFFSET_TALL_GRASS, + /* 7 */ SURFACE_SFX_OFFSET_LAVA, // MAGMA? + /* 8 */ SURFACE_SFX_OFFSET_GRASS, + /* 9 */ SURFACE_SFX_OFFSET_CARPET, + /* 10 */ SURFACE_SFX_OFFSET_WOOD, + /* 11 */ SURFACE_SFX_OFFSET_BRIDGE, // WOOD_PLANK? + /* 12 */ SURFACE_SFX_OFFSET_VINE, + /* 13 */ SURFACE_SFX_OFFSET_IRON_BOOTS, + /* 14 */ SURFACE_SFX_OFFSET_UNUSED, + /* 15 */ SURFACE_SFX_OFFSET_ICE +} SurfaceSfxOffset; + typedef enum { /* 0 */ SURFACE_MATERIAL_DIRT, /* 1 */ SURFACE_MATERIAL_SAND, @@ -171,33 +190,14 @@ typedef enum { /* 6 */ SURFACE_MATERIAL_TALL_GRASS, /* 7 */ SURFACE_MATERIAL_LAVA, // MAGMA? /* 8 */ SURFACE_MATERIAL_GRASS, - /* 9 */ SURFACE_MATERIAL_CARPET, + /* 9 */ SURFACE_MATERIAL_BRIDGE, // WOOD_PLANK? /* 10 */ SURFACE_MATERIAL_WOOD, - /* 11 */ SURFACE_MATERIAL_BRIDGE, // WOOD_PLANK? - /* 12 */ SURFACE_MATERIAL_VINE, - /* 13 */ SURFACE_MATERIAL_IRON_BOOTS, - /* 14 */ SURFACE_MATERIAL_UNUSED, - /* 15 */ SURFACE_MATERIAL_ICE + /* 11 */ SURFACE_MATERIAL_DIRT_SOFT, + /* 12 */ SURFACE_MATERIAL_ICE, + /* 13 */ SURFACE_MATERIAL_CARPET, + /* 14 */ SURFACE_MATERIAL_MAX } SurfaceMaterial; -typedef enum { - /* 0 */ SURFACE_MATERIAL_SCENE_DIRT, - /* 1 */ SURFACE_MATERIAL_SCENE_SAND, - /* 2 */ SURFACE_MATERIAL_SCENE_STONE, - /* 3 */ SURFACE_MATERIAL_SCENE_JABU, - /* 4 */ SURFACE_MATERIAL_SCENE_WATER_SHALLOW, - /* 5 */ SURFACE_MATERIAL_SCENE_WATER_DEEP, - /* 6 */ SURFACE_MATERIAL_SCENE_TALL_GRASS, - /* 7 */ SURFACE_MATERIAL_SCENE_LAVA, // MAGMA? - /* 8 */ SURFACE_MATERIAL_SCENE_GRASS, - /* 9 */ SURFACE_MATERIAL_SCENE_BRIDGE, // WOOD_PLANK? - /* 10 */ SURFACE_MATERIAL_SCENE_WOOD, - /* 11 */ SURFACE_MATERIAL_SCENE_DIRT_SOFT, - /* 12 */ SURFACE_MATERIAL_SCENE_ICE, - /* 13 */ SURFACE_MATERIAL_SCENE_CARPET, - /* 14 */ SURFACE_MATERIAL_SCENE_MAX -} SurfaceMaterialScene; - typedef enum { /* 0 */ FLOOR_EFFECT_0, /* 1 */ FLOOR_EFFECT_1, diff --git a/include/z64player.h b/include/z64player.h index c0c333ab557..a33cd2d301a 100644 --- a/include/z64player.h +++ b/include/z64player.h @@ -618,7 +618,7 @@ typedef struct Player { /* 0x0898 */ s16 unk_898; /* 0x089A */ s16 unk_89A; /* 0x089C */ s16 unk_89C; - /* 0x089E */ u16 surfaceMaterial; + /* 0x089E */ u16 floorSfxOffset; /* 0x08A0 */ u8 unk_8A0; /* 0x08A1 */ u8 unk_8A1; /* 0x08A2 */ s16 unk_8A2; diff --git a/src/code/z_actor.c b/src/code/z_actor.c index de714ab41fe..e2b2101b66c 100644 --- a/src/code/z_actor.c +++ b/src/code/z_actor.c @@ -1701,20 +1701,20 @@ void Audio_PlayActorSfx2(Actor* actor, u16 sfxId) { } void func_8002F850(PlayState* play, Actor* actor) { - s32 surfaceMaterial; + s32 surfaceSfxOffset; if (actor->bgCheckFlags & BGCHECKFLAG_WATER) { if (actor->yDistToWater < 20.0f) { - surfaceMaterial = SURFACE_MATERIAL_WATER_SHALLOW; + surfaceSfxOffset = SURFACE_SFX_OFFSET_WATER_SHALLOW; } else { - surfaceMaterial = SURFACE_MATERIAL_WATER_DEEP; + surfaceSfxOffset = SURFACE_SFX_OFFSET_WATER_DEEP; } } else { - surfaceMaterial = SurfaceType_GetMaterial(&play->colCtx, actor->floorPoly, actor->floorBgId); + surfaceSfxOffset = SurfaceType_GetSfxOffset(&play->colCtx, actor->floorPoly, actor->floorBgId); } func_80078914(&actor->projectedPos, NA_SE_EV_BOMB_BOUND); - func_80078914(&actor->projectedPos, NA_SE_PL_WALK_GROUND + surfaceMaterial); + func_80078914(&actor->projectedPos, NA_SE_PL_WALK_GROUND + surfaceSfxOffset); } void func_8002F8F0(Actor* actor, u16 sfxId) { diff --git a/src/code/z_bgcheck.c b/src/code/z_bgcheck.c index 5fe2e19075a..49366febfe0 100644 --- a/src/code/z_bgcheck.c +++ b/src/code/z_bgcheck.c @@ -68,21 +68,21 @@ s32 D_80119D90[WALL_TYPE_MAX] = { WALL_FLAG_6, // WALL_TYPE_7 }; -u16 sMaterialInternalToExternal[SURFACE_MATERIAL_SCENE_MAX] = { - SURFACE_MATERIAL_DIRT, // SURFACE_MATERIAL_SCENE_DIRT - SURFACE_MATERIAL_SAND, // SURFACE_MATERIAL_SCENE_SAND - SURFACE_MATERIAL_STONE, // SURFACE_MATERIAL_SCENE_STONE - SURFACE_MATERIAL_JABU, // SURFACE_MATERIAL_SCENE_JABU - SURFACE_MATERIAL_WATER_SHALLOW, // SURFACE_MATERIAL_SCENE_WATER_SHALLOW - SURFACE_MATERIAL_WATER_DEEP, // SURFACE_MATERIAL_SCENE_WATER_DEEP - SURFACE_MATERIAL_TALL_GRASS, // SURFACE_MATERIAL_SCENE_TALL_GRASS - SURFACE_MATERIAL_LAVA, // SURFACE_MATERIAL_SCENE_LAVA - SURFACE_MATERIAL_GRASS, // SURFACE_MATERIAL_SCENE_GRASS - SURFACE_MATERIAL_BRIDGE, // SURFACE_MATERIAL_SCENE_BRIDGE - SURFACE_MATERIAL_WOOD, // SURFACE_MATERIAL_SCENE_WOOD - SURFACE_MATERIAL_DIRT, // SURFACE_MATERIAL_SCENE_DIRT_SOFT - SURFACE_MATERIAL_ICE, // SURFACE_MATERIAL_SCENE_ICE - SURFACE_MATERIAL_CARPET, // SURFACE_MATERIAL_SCENE_CARPET +u16 sSurfaceMaterialToSfxOffset[SURFACE_MATERIAL_MAX] = { + SURFACE_SFX_OFFSET_DIRT, // SURFACE_MATERIAL_DIRT + SURFACE_SFX_OFFSET_SAND, // SURFACE_MATERIAL_SAND + SURFACE_SFX_OFFSET_STONE, // SURFACE_MATERIAL_STONE + SURFACE_SFX_OFFSET_JABU, // SURFACE_MATERIAL_JABU + SURFACE_SFX_OFFSET_WATER_SHALLOW, // SURFACE_MATERIAL_WATER_SHALLOW + SURFACE_SFX_OFFSET_WATER_DEEP, // SURFACE_MATERIAL_WATER_DEEP + SURFACE_SFX_OFFSET_TALL_GRASS, // SURFACE_MATERIAL_TALL_GRASS + SURFACE_SFX_OFFSET_LAVA, // SURFACE_MATERIAL_LAVA + SURFACE_SFX_OFFSET_GRASS, // SURFACE_MATERIAL_GRASS + SURFACE_SFX_OFFSET_BRIDGE, // SURFACE_MATERIAL_BRIDGE + SURFACE_SFX_OFFSET_WOOD, // SURFACE_MATERIAL_WOOD + SURFACE_SFX_OFFSET_DIRT, // SURFACE_MATERIAL_DIRT_SOFT + SURFACE_SFX_OFFSET_ICE, // SURFACE_MATERIAL_ICE + SURFACE_SFX_OFFSET_CARPET, // SURFACE_MATERIAL_CARPET }; /** @@ -4108,17 +4108,17 @@ u32 SurfaceType_IsHorseBlocked(CollisionContext* colCtx, CollisionPoly* poly, s3 return SurfaceType_GetData(colCtx, poly, bgId, 0) >> 31 & 1; } -u32 SurfaceType_GetSceneMaterial(CollisionContext* colCtx, CollisionPoly* poly, s32 bgId) { +u32 SurfaceType_GetMaterial(CollisionContext* colCtx, CollisionPoly* poly, s32 bgId) { return SurfaceType_GetData(colCtx, poly, bgId, 1) & 0xF; } -u16 SurfaceType_GetMaterial(CollisionContext* colCtx, CollisionPoly* poly, s32 bgId) { - s32 sceneSurfaceMaterial = SurfaceType_GetSceneMaterial(colCtx, poly, bgId); +u16 SurfaceType_GetSfxOffset(CollisionContext* colCtx, CollisionPoly* poly, s32 bgId) { + s32 surfaceMaterial = SurfaceType_GetMaterial(colCtx, poly, bgId); - if ((sceneSurfaceMaterial < 0) || (sceneSurfaceMaterial >= ARRAY_COUNT(sMaterialInternalToExternal))) { - return SURFACE_MATERIAL_DIRT; + if ((surfaceMaterial < 0) || (surfaceMaterial >= ARRAY_COUNT(sSurfaceMaterialToSfxOffset))) { + return SURFACE_SFX_OFFSET_DIRT; } - return sMaterialInternalToExternal[sceneSurfaceMaterial]; + return sSurfaceMaterialToSfxOffset[surfaceMaterial]; } u32 SurfaceType_GetFloorEffect(CollisionContext* colCtx, CollisionPoly* poly, s32 bgId) { diff --git a/src/code/z_camera.c b/src/code/z_camera.c index b4be1efd45c..a5d91fb4ecf 100644 --- a/src/code/z_camera.c +++ b/src/code/z_camera.c @@ -4501,7 +4501,7 @@ s32 Camera_Subj4(Camera* camera) { if ((eyeLerp > rwData->eyeLerp) && !rwData->isSfxOff) { player = camera->player; rwData->isSfxOff = true; - func_800F4010(&player->actor.projectedPos, NA_SE_PL_CRAWL + player->surfaceMaterial, 4.0f); + func_800F4010(&player->actor.projectedPos, NA_SE_PL_CRAWL + player->floorSfxOffset, 4.0f); } else if (eyeLerp < rwData->eyeLerp) { rwData->isSfxOff = false; } 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 89c9ceaefb1..47d85407a41 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 @@ -252,8 +252,8 @@ void func_8088B79C(BgHidanRock* this, PlayState* play) { Audio_PlayActorSfx2(&this->dyna.actor, NA_SE_EV_BLOCK_BOUND); Audio_PlayActorSfx2(&this->dyna.actor, - NA_SE_PL_WALK_GROUND + SurfaceType_GetMaterial(&play->colCtx, this->dyna.actor.floorPoly, - this->dyna.actor.floorBgId)); + NA_SE_PL_WALK_GROUND + SurfaceType_GetSfxOffset(&play->colCtx, this->dyna.actor.floorPoly, + this->dyna.actor.floorBgId)); } this->unk_16C -= 0.5f; 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 39ba8034f16..3cc44c2dd2f 100644 --- a/src/overlays/actors/ovl_Boss_Ganon/z_boss_ganon.c +++ b/src/overlays/actors/ovl_Boss_Ganon/z_boss_ganon.c @@ -2464,7 +2464,7 @@ void BossGanon_HitByLightBall(BossGanon* this, PlayState* play) { BossGanonEff_SpawnSparkle(play, &this->unk_1FC, &sp50, &sZeroVec, Rand_ZeroFloat(200.0f) + 500.0f, 0x14); } - Audio_PlayActorSfx2(&this->actor, NA_SE_PL_WALK_GROUND + SURFACE_MATERIAL_TALL_GRASS); + Audio_PlayActorSfx2(&this->actor, NA_SE_PL_WALK_GROUND + SURFACE_SFX_OFFSET_TALL_GRASS); } if (Animation_OnFrame(&this->skelAnime, this->fwork[GDF_FWORK_1])) { @@ -2646,7 +2646,7 @@ void BossGanon_Vulnerable(BossGanon* this, PlayState* play) { 0x14); } - Audio_PlayActorSfx2(&this->actor, NA_SE_PL_WALK_GROUND + SURFACE_MATERIAL_TALL_GRASS); + Audio_PlayActorSfx2(&this->actor, NA_SE_PL_WALK_GROUND + SURFACE_SFX_OFFSET_TALL_GRASS); this->timers[3] = 50; } 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 b8142e97f57..3ed01826552 100644 --- a/src/overlays/actors/ovl_Boss_Mo/z_boss_mo.c +++ b/src/overlays/actors/ovl_Boss_Mo/z_boss_mo.c @@ -3041,55 +3041,55 @@ void BossMo_Unknown(void) { static Vec3f zeroVec = { 0.0f, 0.0f, 0.0f }; static u16 unkSfx[] = { // Walking - NA_SE_PL_WALK_GROUND + SURFACE_MATERIAL_DIRT, - NA_SE_PL_WALK_GROUND + SURFACE_MATERIAL_DIRT, - NA_SE_PL_WALK_GROUND + SURFACE_MATERIAL_DIRT, - NA_SE_PL_WALK_GROUND + SURFACE_MATERIAL_SAND, - NA_SE_PL_WALK_GROUND + SURFACE_MATERIAL_STONE, - NA_SE_PL_WALK_GROUND + SURFACE_MATERIAL_JABU, - NA_SE_PL_WALK_GROUND + SURFACE_MATERIAL_WATER_SHALLOW, - NA_SE_PL_WALK_GROUND + SURFACE_MATERIAL_WATER_DEEP, - NA_SE_PL_WALK_GROUND + SURFACE_MATERIAL_TALL_GRASS, - NA_SE_PL_WALK_GROUND + SURFACE_MATERIAL_LAVA, - NA_SE_PL_WALK_GROUND + SURFACE_MATERIAL_GRASS, - NA_SE_PL_WALK_GROUND + SURFACE_MATERIAL_BRIDGE, - NA_SE_PL_WALK_GROUND + SURFACE_MATERIAL_WOOD, - NA_SE_PL_WALK_GROUND + SURFACE_MATERIAL_BRIDGE, - NA_SE_PL_WALK_GROUND + SURFACE_MATERIAL_VINE, - NA_SE_PL_WALK_GROUND + SURFACE_MATERIAL_IRON_BOOTS, - NA_SE_PL_WALK_GROUND + SURFACE_MATERIAL_ICE, + NA_SE_PL_WALK_GROUND + SURFACE_SFX_OFFSET_DIRT, + NA_SE_PL_WALK_GROUND + SURFACE_SFX_OFFSET_DIRT, + NA_SE_PL_WALK_GROUND + SURFACE_SFX_OFFSET_DIRT, + NA_SE_PL_WALK_GROUND + SURFACE_SFX_OFFSET_SAND, + NA_SE_PL_WALK_GROUND + SURFACE_SFX_OFFSET_STONE, + NA_SE_PL_WALK_GROUND + SURFACE_SFX_OFFSET_JABU, + NA_SE_PL_WALK_GROUND + SURFACE_SFX_OFFSET_WATER_SHALLOW, + NA_SE_PL_WALK_GROUND + SURFACE_SFX_OFFSET_WATER_DEEP, + NA_SE_PL_WALK_GROUND + SURFACE_SFX_OFFSET_TALL_GRASS, + NA_SE_PL_WALK_GROUND + SURFACE_SFX_OFFSET_LAVA, + NA_SE_PL_WALK_GROUND + SURFACE_SFX_OFFSET_GRASS, + NA_SE_PL_WALK_GROUND + SURFACE_SFX_OFFSET_BRIDGE, + NA_SE_PL_WALK_GROUND + SURFACE_SFX_OFFSET_WOOD, + NA_SE_PL_WALK_GROUND + SURFACE_SFX_OFFSET_BRIDGE, + NA_SE_PL_WALK_GROUND + SURFACE_SFX_OFFSET_VINE, + NA_SE_PL_WALK_GROUND + SURFACE_SFX_OFFSET_IRON_BOOTS, + NA_SE_PL_WALK_GROUND + SURFACE_SFX_OFFSET_ICE, // Jumping - NA_SE_PL_JUMP + SURFACE_MATERIAL_DIRT, - NA_SE_PL_JUMP + SURFACE_MATERIAL_DIRT, - NA_SE_PL_JUMP + SURFACE_MATERIAL_SAND, - NA_SE_PL_JUMP + SURFACE_MATERIAL_STONE, - NA_SE_PL_JUMP + SURFACE_MATERIAL_JABU, - NA_SE_PL_JUMP + SURFACE_MATERIAL_WATER_SHALLOW, - NA_SE_PL_JUMP + SURFACE_MATERIAL_WATER_DEEP, - NA_SE_PL_JUMP + SURFACE_MATERIAL_TALL_GRASS, - NA_SE_PL_JUMP + SURFACE_MATERIAL_LAVA, - NA_SE_PL_JUMP + SURFACE_MATERIAL_GRASS, - NA_SE_PL_JUMP + SURFACE_MATERIAL_BRIDGE, - NA_SE_PL_JUMP + SURFACE_MATERIAL_WOOD, - NA_SE_PL_JUMP + SURFACE_MATERIAL_BRIDGE, - NA_SE_PL_JUMP + SURFACE_MATERIAL_IRON_BOOTS, - NA_SE_PL_JUMP + SURFACE_MATERIAL_ICE, + NA_SE_PL_JUMP + SURFACE_SFX_OFFSET_DIRT, + NA_SE_PL_JUMP + SURFACE_SFX_OFFSET_DIRT, + NA_SE_PL_JUMP + SURFACE_SFX_OFFSET_SAND, + NA_SE_PL_JUMP + SURFACE_SFX_OFFSET_STONE, + NA_SE_PL_JUMP + SURFACE_SFX_OFFSET_JABU, + NA_SE_PL_JUMP + SURFACE_SFX_OFFSET_WATER_SHALLOW, + NA_SE_PL_JUMP + SURFACE_SFX_OFFSET_WATER_DEEP, + NA_SE_PL_JUMP + SURFACE_SFX_OFFSET_TALL_GRASS, + NA_SE_PL_JUMP + SURFACE_SFX_OFFSET_LAVA, + NA_SE_PL_JUMP + SURFACE_SFX_OFFSET_GRASS, + NA_SE_PL_JUMP + SURFACE_SFX_OFFSET_BRIDGE, + NA_SE_PL_JUMP + SURFACE_SFX_OFFSET_WOOD, + NA_SE_PL_JUMP + SURFACE_SFX_OFFSET_BRIDGE, + NA_SE_PL_JUMP + SURFACE_SFX_OFFSET_IRON_BOOTS, + NA_SE_PL_JUMP + SURFACE_SFX_OFFSET_ICE, // Landing - NA_SE_PL_LAND + SURFACE_MATERIAL_DIRT, - NA_SE_PL_LAND + SURFACE_MATERIAL_DIRT, - NA_SE_PL_LAND + SURFACE_MATERIAL_SAND, - NA_SE_PL_LAND + SURFACE_MATERIAL_STONE, - NA_SE_PL_LAND + SURFACE_MATERIAL_JABU, - NA_SE_PL_LAND + SURFACE_MATERIAL_WATER_SHALLOW, - NA_SE_PL_LAND + SURFACE_MATERIAL_WATER_DEEP, - NA_SE_PL_LAND + SURFACE_MATERIAL_TALL_GRASS, - NA_SE_PL_LAND + SURFACE_MATERIAL_LAVA, - NA_SE_PL_LAND + SURFACE_MATERIAL_GRASS, - NA_SE_PL_LAND + SURFACE_MATERIAL_BRIDGE, - NA_SE_PL_LAND + SURFACE_MATERIAL_WOOD, - NA_SE_PL_LAND + SURFACE_MATERIAL_BRIDGE, - NA_SE_PL_LAND + SURFACE_MATERIAL_IRON_BOOTS, - NA_SE_PL_LAND + SURFACE_MATERIAL_ICE, + NA_SE_PL_LAND + SURFACE_SFX_OFFSET_DIRT, + NA_SE_PL_LAND + SURFACE_SFX_OFFSET_DIRT, + NA_SE_PL_LAND + SURFACE_SFX_OFFSET_SAND, + NA_SE_PL_LAND + SURFACE_SFX_OFFSET_STONE, + NA_SE_PL_LAND + SURFACE_SFX_OFFSET_JABU, + NA_SE_PL_LAND + SURFACE_SFX_OFFSET_WATER_SHALLOW, + NA_SE_PL_LAND + SURFACE_SFX_OFFSET_WATER_DEEP, + NA_SE_PL_LAND + SURFACE_SFX_OFFSET_TALL_GRASS, + NA_SE_PL_LAND + SURFACE_SFX_OFFSET_LAVA, + NA_SE_PL_LAND + SURFACE_SFX_OFFSET_GRASS, + NA_SE_PL_LAND + SURFACE_SFX_OFFSET_BRIDGE, + NA_SE_PL_LAND + SURFACE_SFX_OFFSET_WOOD, + NA_SE_PL_LAND + SURFACE_SFX_OFFSET_BRIDGE, + NA_SE_PL_LAND + SURFACE_SFX_OFFSET_IRON_BOOTS, + NA_SE_PL_LAND + SURFACE_SFX_OFFSET_ICE, NA_SE_PL_SLIPDOWN, NA_SE_PL_CLIMB_CLIFF, NA_SE_PL_CLIMB_CLIFF, @@ -3118,38 +3118,38 @@ void BossMo_Unknown(void) { NA_SE_PL_BODY_HIT, NA_SE_PL_DAMAGE, // Slipping - NA_SE_PL_SLIP + SURFACE_MATERIAL_DIRT, - NA_SE_PL_SLIP + SURFACE_MATERIAL_DIRT, - NA_SE_PL_SLIP + SURFACE_MATERIAL_DIRT, - NA_SE_PL_SLIP + SURFACE_MATERIAL_SAND, - NA_SE_PL_SLIP + SURFACE_MATERIAL_STONE, - NA_SE_PL_SLIP + SURFACE_MATERIAL_JABU, - NA_SE_PL_SLIP + SURFACE_MATERIAL_WATER_SHALLOW, - NA_SE_PL_SLIP + SURFACE_MATERIAL_WATER_DEEP, - NA_SE_PL_SLIP + SURFACE_MATERIAL_TALL_GRASS, - NA_SE_PL_SLIP + SURFACE_MATERIAL_LAVA, - NA_SE_PL_SLIP + SURFACE_MATERIAL_GRASS, - NA_SE_PL_SLIP + SURFACE_MATERIAL_BRIDGE, - NA_SE_PL_SLIP + SURFACE_MATERIAL_WOOD, - NA_SE_PL_SLIP + SURFACE_MATERIAL_BRIDGE, - NA_SE_PL_SLIP + SURFACE_MATERIAL_IRON_BOOTS, - NA_SE_PL_SLIP + SURFACE_MATERIAL_ICE, + NA_SE_PL_SLIP + SURFACE_SFX_OFFSET_DIRT, + NA_SE_PL_SLIP + SURFACE_SFX_OFFSET_DIRT, + NA_SE_PL_SLIP + SURFACE_SFX_OFFSET_DIRT, + NA_SE_PL_SLIP + SURFACE_SFX_OFFSET_SAND, + NA_SE_PL_SLIP + SURFACE_SFX_OFFSET_STONE, + NA_SE_PL_SLIP + SURFACE_SFX_OFFSET_JABU, + NA_SE_PL_SLIP + SURFACE_SFX_OFFSET_WATER_SHALLOW, + NA_SE_PL_SLIP + SURFACE_SFX_OFFSET_WATER_DEEP, + NA_SE_PL_SLIP + SURFACE_SFX_OFFSET_TALL_GRASS, + NA_SE_PL_SLIP + SURFACE_SFX_OFFSET_LAVA, + NA_SE_PL_SLIP + SURFACE_SFX_OFFSET_GRASS, + NA_SE_PL_SLIP + SURFACE_SFX_OFFSET_BRIDGE, + NA_SE_PL_SLIP + SURFACE_SFX_OFFSET_WOOD, + NA_SE_PL_SLIP + SURFACE_SFX_OFFSET_BRIDGE, + NA_SE_PL_SLIP + SURFACE_SFX_OFFSET_IRON_BOOTS, + NA_SE_PL_SLIP + SURFACE_SFX_OFFSET_ICE, // Bound - NA_SE_PL_BOUND + SURFACE_MATERIAL_DIRT, - NA_SE_PL_BOUND + SURFACE_MATERIAL_DIRT, - NA_SE_PL_BOUND + SURFACE_MATERIAL_SAND, - NA_SE_PL_BOUND + SURFACE_MATERIAL_STONE, - NA_SE_PL_BOUND + SURFACE_MATERIAL_JABU, - NA_SE_PL_BOUND + SURFACE_MATERIAL_WATER_SHALLOW, - NA_SE_PL_BOUND + SURFACE_MATERIAL_WATER_DEEP, - NA_SE_PL_BOUND + SURFACE_MATERIAL_TALL_GRASS, - NA_SE_PL_BOUND + SURFACE_MATERIAL_LAVA, - NA_SE_PL_BOUND + SURFACE_MATERIAL_GRASS, - NA_SE_PL_BOUND + SURFACE_MATERIAL_BRIDGE, - NA_SE_PL_BOUND + SURFACE_MATERIAL_WOOD, - NA_SE_PL_BOUND + SURFACE_MATERIAL_BRIDGE, - NA_SE_PL_BOUND + SURFACE_MATERIAL_IRON_BOOTS, - NA_SE_PL_BOUND + SURFACE_MATERIAL_ICE, + NA_SE_PL_BOUND + SURFACE_SFX_OFFSET_DIRT, + NA_SE_PL_BOUND + SURFACE_SFX_OFFSET_DIRT, + NA_SE_PL_BOUND + SURFACE_SFX_OFFSET_SAND, + NA_SE_PL_BOUND + SURFACE_SFX_OFFSET_STONE, + NA_SE_PL_BOUND + SURFACE_SFX_OFFSET_JABU, + NA_SE_PL_BOUND + SURFACE_SFX_OFFSET_WATER_SHALLOW, + NA_SE_PL_BOUND + SURFACE_SFX_OFFSET_WATER_DEEP, + NA_SE_PL_BOUND + SURFACE_SFX_OFFSET_TALL_GRASS, + NA_SE_PL_BOUND + SURFACE_SFX_OFFSET_LAVA, + NA_SE_PL_BOUND + SURFACE_SFX_OFFSET_GRASS, + NA_SE_PL_BOUND + SURFACE_SFX_OFFSET_BRIDGE, + NA_SE_PL_BOUND + SURFACE_SFX_OFFSET_WOOD, + NA_SE_PL_BOUND + SURFACE_SFX_OFFSET_BRIDGE, + NA_SE_PL_BOUND + SURFACE_SFX_OFFSET_IRON_BOOTS, + NA_SE_PL_BOUND + SURFACE_SFX_OFFSET_ICE, NA_SE_PL_FACE_UP, NA_SE_PL_DIVE_BUBBLE, NA_SE_PL_MOVE_BUBBLE, 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 c69e303cabc..fdea6c996a9 100644 --- a/src/overlays/actors/ovl_Demo_Im/z_demo_im.c +++ b/src/overlays/actors/ovl_Demo_Im/z_demo_im.c @@ -719,7 +719,7 @@ void func_80986570(DemoIm* this, PlayState* play) { if (Animation_OnFrame(&this->skelAnime, 7.0f) && (this->actor.bgCheckFlags & BGCHECKFLAG_GROUND)) { u32 sfxId = NA_SE_PL_WALK_GROUND; - sfxId += SurfaceType_GetMaterial(&play->colCtx, this->actor.floorPoly, this->actor.floorBgId); + sfxId += SurfaceType_GetSfxOffset(&play->colCtx, this->actor.floorPoly, this->actor.floorBgId); Audio_PlaySfxGeneral(sfxId, &this->actor.projectedPos, 4, &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb); } diff --git a/src/overlays/actors/ovl_En_Encount1/z_en_encount1.c b/src/overlays/actors/ovl_En_Encount1/z_en_encount1.c index 7d237cdf18f..00c8724d808 100644 --- a/src/overlays/actors/ovl_En_Encount1/z_en_encount1.c +++ b/src/overlays/actors/ovl_En_Encount1/z_en_encount1.c @@ -241,7 +241,7 @@ void EnEncount1_SpawnStalchildOrWolfos(EnEncount1* this, PlayState* play) { if ((this->curNumSpawn < this->maxCurSpawns) && (this->totalNumSpawn < this->maxTotalSpawns)) { while ((this->curNumSpawn < this->maxCurSpawns) && (this->totalNumSpawn < this->maxTotalSpawns)) { if (play->sceneId == SCENE_SPOT00) { - if ((player->surfaceMaterial == SURFACE_MATERIAL_DIRT) || (player->actor.floorBgId != BGCHECK_SCENE) || + if ((player->floorSfxOffset == SURFACE_SFX_OFFSET_DIRT) || (player->actor.floorBgId != BGCHECK_SCENE) || !(player->actor.bgCheckFlags & BGCHECKFLAG_GROUND) || (player->stateFlags1 & PLAYER_STATE1_27)) { this->fieldSpawnTimer = 60; 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 1e367fef777..29e60e1e10e 100644 --- a/src/overlays/actors/ovl_En_Js/z_en_js.c +++ b/src/overlays/actors/ovl_En_Js/z_en_js.c @@ -174,8 +174,8 @@ void EnJs_Update(Actor* thisx, PlayState* play) { Actor_UpdateBgCheckInfo(play, &this->actor, 0.0f, 0.0f, 0.0f, UPDBGCHECKINFO_FLAG_2); if (this->actor.bgCheckFlags & BGCHECKFLAG_GROUND) { - if (SurfaceType_GetMaterial(&play->colCtx, this->actor.floorPoly, this->actor.floorBgId) == - SURFACE_MATERIAL_SAND) { + if (SurfaceType_GetSfxOffset(&play->colCtx, this->actor.floorPoly, this->actor.floorBgId) == + SURFACE_SFX_OFFSET_SAND) { Math_ApproachF(&this->actor.shape.yOffset, sREG(80) + -2000.0f, 1.0f, (sREG(81) / 10.0f) + 50.0f); } } else { 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 70660f1ce9c..668e7593c15 100644 --- a/src/overlays/actors/ovl_En_Nb/z_en_nb.c +++ b/src/overlays/actors/ovl_En_Nb/z_en_nb.c @@ -717,7 +717,7 @@ void EnNb_PlayLookRightSFX(EnNb* this) { s32 pad[2]; if ((this->skelAnime.mode == 2) && Animation_OnFrame(&this->skelAnime, 9.0f)) { - func_80078914(&this->actor.projectedPos, NA_SE_PL_WALK_GROUND + SURFACE_MATERIAL_STONE); + func_80078914(&this->actor.projectedPos, NA_SE_PL_WALK_GROUND + SURFACE_SFX_OFFSET_STONE); } } @@ -725,7 +725,7 @@ void EnNb_PlayLookLeftSFX(EnNb* this) { s32 pad[2]; if (Animation_OnFrame(&this->skelAnime, 9.0f) || Animation_OnFrame(&this->skelAnime, 13.0f)) { - func_80078914(&this->actor.projectedPos, NA_SE_PL_WALK_GROUND + SURFACE_MATERIAL_STONE); + func_80078914(&this->actor.projectedPos, NA_SE_PL_WALK_GROUND + SURFACE_SFX_OFFSET_STONE); } } 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 1b71261420e..148fe3bdc56 100644 --- a/src/overlays/actors/ovl_En_Ru1/z_en_ru1.c +++ b/src/overlays/actors/ovl_En_Ru1/z_en_ru1.c @@ -833,7 +833,7 @@ void func_80AEC650(EnRu1* this) { if (this->unk_280 == 0) { if (Animation_OnFrame(&this->skelAnime, 2.0f) || Animation_OnFrame(&this->skelAnime, 7.0f)) { - func_80078914(&this->actor.projectedPos, NA_SE_PL_WALK_GROUND + SURFACE_MATERIAL_JABU); + func_80078914(&this->actor.projectedPos, NA_SE_PL_WALK_GROUND + SURFACE_SFX_OFFSET_JABU); } } } @@ -1899,7 +1899,7 @@ void func_80AEF40C(EnRu1* this) { if (Animation_OnFrame(skelAnime, 2.0f) || Animation_OnFrame(skelAnime, 7.0f) || Animation_OnFrame(skelAnime, 12.0f) || Animation_OnFrame(skelAnime, 18.0f) || Animation_OnFrame(skelAnime, 25.0f) || Animation_OnFrame(skelAnime, 33.0f)) { - func_80078914(&this->actor.projectedPos, NA_SE_PL_WALK_GROUND + SURFACE_MATERIAL_JABU); + func_80078914(&this->actor.projectedPos, NA_SE_PL_WALK_GROUND + SURFACE_SFX_OFFSET_JABU); } } 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 d2066a69947..524bcd1259b 100644 --- a/src/overlays/actors/ovl_En_Sa/z_en_sa.c +++ b/src/overlays/actors/ovl_En_Sa/z_en_sa.c @@ -675,7 +675,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_MATERIAL_DIRT, &this->actor.projectedPos, 4, + Audio_PlaySfxGeneral(NA_SE_PL_WALK_GROUND + SURFACE_SFX_OFFSET_DIRT, &this->actor.projectedPos, 4, &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb); this->unk_20C = 8; } 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 bf92119336e..e9488e6e2ac 100644 --- a/src/overlays/actors/ovl_En_Ta/z_en_ta.c +++ b/src/overlays/actors/ovl_En_Ta/z_en_ta.c @@ -431,7 +431,7 @@ void EnTa_RunWithAccelerationAndSfx(EnTa* this, PlayState* play) { s32 framesMod12 = (s32)play->state.frames % 12; if (framesMod12 == 0 || framesMod12 == 6) { - Audio_PlayActorSfx2(&this->actor, NA_SE_PL_WALK_GROUND + SURFACE_MATERIAL_DIRT); + Audio_PlayActorSfx2(&this->actor, NA_SE_PL_WALK_GROUND + SURFACE_SFX_OFFSET_DIRT); } if (this->actor.speedXZ < 6.0f) { this->actor.speedXZ += 0.4f; 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 256b48b1a28..fd53d4edfcb 100644 --- a/src/overlays/actors/ovl_En_Xc/z_en_xc.c +++ b/src/overlays/actors/ovl_En_Xc/z_en_xc.c @@ -372,7 +372,7 @@ void EnXc_SetWalkingSFX(EnXc* this, PlayState* play) { if (Animation_OnFrame(&this->skelAnime, 11.0f) || Animation_OnFrame(&this->skelAnime, 23.0f)) { if (this->actor.bgCheckFlags & BGCHECKFLAG_GROUND) { sfxId = NA_SE_PL_WALK_GROUND; - sfxId += SurfaceType_GetMaterial(&play->colCtx, this->actor.floorPoly, this->actor.floorBgId); + sfxId += SurfaceType_GetSfxOffset(&play->colCtx, this->actor.floorPoly, this->actor.floorBgId); func_80078914(&this->actor.projectedPos, sfxId); } } @@ -386,7 +386,7 @@ void EnXc_SetNutThrowSFX(EnXc* this, PlayState* play) { if (Animation_OnFrame(&this->skelAnime, 7.0f)) { if (this->actor.bgCheckFlags & BGCHECKFLAG_GROUND) { sfxId = NA_SE_PL_WALK_GROUND; - sfxId += SurfaceType_GetMaterial(&play->colCtx, this->actor.floorPoly, this->actor.floorBgId); + sfxId += SurfaceType_GetSfxOffset(&play->colCtx, this->actor.floorPoly, this->actor.floorBgId); func_80078914(&this->actor.projectedPos, sfxId); } } @@ -402,7 +402,7 @@ void EnXc_SetLandingSFX(EnXc* this, PlayState* play) { if ((gSaveContext.sceneLayer != 4) || (sceneId != SCENE_SPOT11)) { if (Animation_OnFrame(&this->skelAnime, 11.0f)) { sfxId = NA_SE_PL_WALK_GROUND; - sfxId += SurfaceType_GetMaterial(&play->colCtx, this->actor.floorPoly, this->actor.floorBgId); + sfxId += SurfaceType_GetSfxOffset(&play->colCtx, this->actor.floorPoly, this->actor.floorBgId); func_80078914(&this->actor.projectedPos, sfxId); } } @@ -429,7 +429,7 @@ void EnXc_SetColossusAppearSFX(EnXc* this, PlayState* play) { s32 pad; SkinMatrix_Vec3fMtxFMultXYZW(&play->viewProjectionMtxF, &pos, &sXyzDist, wDest); - func_80078914(&sXyzDist, NA_SE_PL_WALK_GROUND + SURFACE_MATERIAL_STONE); + func_80078914(&sXyzDist, NA_SE_PL_WALK_GROUND + SURFACE_SFX_OFFSET_STONE); } } } @@ -1746,14 +1746,14 @@ void EnXc_SetThrownAroundSFX(EnXc* this) { SkelAnime* skelAnime = &this->skelAnime; if (Animation_OnFrame(skelAnime, 9.0f)) { - func_80078914(&this->actor.projectedPos, NA_SE_PL_BOUND + SURFACE_MATERIAL_GRASS); + func_80078914(&this->actor.projectedPos, NA_SE_PL_BOUND + SURFACE_SFX_OFFSET_GRASS); func_80078914(&this->actor.projectedPos, NA_SE_VO_SK_CRASH); } else if (Animation_OnFrame(skelAnime, 26.0f)) { - func_80078914(&this->actor.projectedPos, NA_SE_PL_BOUND + SURFACE_MATERIAL_GRASS); + func_80078914(&this->actor.projectedPos, NA_SE_PL_BOUND + SURFACE_SFX_OFFSET_GRASS); } else if (Animation_OnFrame(skelAnime, 28.0f)) { - func_80078914(&this->actor.projectedPos, NA_SE_PL_WALK_GROUND + SURFACE_MATERIAL_GRASS); + func_80078914(&this->actor.projectedPos, NA_SE_PL_WALK_GROUND + SURFACE_SFX_OFFSET_GRASS); } else if (Animation_OnFrame(skelAnime, 34.0f)) { - func_80078914(&this->actor.projectedPos, NA_SE_PL_WALK_GROUND + SURFACE_MATERIAL_GRASS); + func_80078914(&this->actor.projectedPos, NA_SE_PL_WALK_GROUND + SURFACE_SFX_OFFSET_GRASS); } } diff --git a/src/overlays/actors/ovl_En_Zl2/z_en_zl2.c b/src/overlays/actors/ovl_En_Zl2/z_en_zl2.c index 4bab9c0031d..05de71255f0 100644 --- a/src/overlays/actors/ovl_En_Zl2/z_en_zl2.c +++ b/src/overlays/actors/ovl_En_Zl2/z_en_zl2.c @@ -589,7 +589,7 @@ void func_80B4FD90(EnZl2* this, PlayState* play) { void func_80B4FDD4(EnZl2* this) { if (Animation_OnFrame(&this->skelAnime, 14.0f)) { - func_80078914(&this->actor.projectedPos, NA_SE_PL_WALK_GROUND + SURFACE_MATERIAL_STONE); + func_80078914(&this->actor.projectedPos, NA_SE_PL_WALK_GROUND + SURFACE_SFX_OFFSET_STONE); } } @@ -1437,7 +1437,7 @@ void func_80B51D24(EnZl2* this, PlayState* play) { if (Animation_OnFrame(skelAnime, 6.0f) || Animation_OnFrame(skelAnime, 0.0f)) { if (this->actor.bgCheckFlags & BGCHECKFLAG_GROUND) { sfxId = NA_SE_PL_WALK_GROUND; - sfxId += SurfaceType_GetMaterial(&play->colCtx, this->actor.floorPoly, this->actor.floorBgId); + sfxId += SurfaceType_GetSfxOffset(&play->colCtx, this->actor.floorPoly, this->actor.floorBgId); func_80078914(&this->actor.projectedPos, sfxId); } } 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 7ea9d298ce1..fc455b63d96 100644 --- a/src/overlays/actors/ovl_En_Zl3/z_en_zl3.c +++ b/src/overlays/actors/ovl_En_Zl3/z_en_zl3.c @@ -1542,7 +1542,7 @@ void func_80B56E38(EnZl3* this, PlayState* play) { if ((Animation_OnFrame(sp20, 6.0f) || Animation_OnFrame(sp20, 0.0f)) && (this->actor.bgCheckFlags & BGCHECKFLAG_GROUND)) { sfxId = NA_SE_PL_WALK_GROUND; - sfxId += SurfaceType_GetMaterial(&play->colCtx, this->actor.floorPoly, this->actor.floorBgId); + sfxId += SurfaceType_GetSfxOffset(&play->colCtx, this->actor.floorPoly, this->actor.floorBgId); func_80078914(&this->actor.projectedPos, sfxId); } } diff --git a/src/overlays/actors/ovl_Fishing/z_fishing.c b/src/overlays/actors/ovl_Fishing/z_fishing.c index 3e8d7c0d227..e15e3cdd248 100644 --- a/src/overlays/actors/ovl_Fishing/z_fishing.c +++ b/src/overlays/actors/ovl_Fishing/z_fishing.c @@ -2479,7 +2479,7 @@ void Fishing_UpdateLure(Fishing* this, PlayState* play) { sLureRot.x = 0.0f; if (CHECK_BTN_ALL(input->press.button, BTN_B)) { D_80B7E144 += 6.0f; - func_80078914(&D_80B7AF94, NA_SE_PL_WALK_GROUND + SURFACE_MATERIAL_SAND); + func_80078914(&D_80B7AF94, NA_SE_PL_WALK_GROUND + SURFACE_SFX_OFFSET_SAND); } } else { if (D_80B7E144 > 150.0f) { diff --git a/src/overlays/actors/ovl_Obj_Oshihiki/z_obj_oshihiki.c b/src/overlays/actors/ovl_Obj_Oshihiki/z_obj_oshihiki.c index 4cbbc6942ac..350d087bc71 100644 --- a/src/overlays/actors/ovl_Obj_Oshihiki/z_obj_oshihiki.c +++ b/src/overlays/actors/ovl_Obj_Oshihiki/z_obj_oshihiki.c @@ -605,9 +605,9 @@ void ObjOshihiki_Fall(ObjOshihiki* this, PlayState* play) { } Audio_PlayActorSfx2(&this->dyna.actor, NA_SE_EV_BLOCK_BOUND); Audio_PlayActorSfx2(&this->dyna.actor, - NA_SE_PL_WALK_GROUND + SurfaceType_GetMaterial(&play->colCtx, - this->floorPolys[this->highestFloor], - this->floorBgIds[this->highestFloor])); + NA_SE_PL_WALK_GROUND + SurfaceType_GetSfxOffset(&play->colCtx, + this->floorPolys[this->highestFloor], + this->floorBgIds[this->highestFloor])); } } diff --git a/src/overlays/actors/ovl_player_actor/z_player.c b/src/overlays/actors/ovl_player_actor/z_player.c index 2bcf4f265f3..70698eed488 100644 --- a/src/overlays/actors/ovl_player_actor/z_player.c +++ b/src/overlays/actors/ovl_player_actor/z_player.c @@ -1732,7 +1732,7 @@ void func_808326F0(Player* this) { } u16 func_8083275C(Player* this, u16 sfxId) { - return sfxId + this->surfaceMaterial; + return sfxId + this->floorSfxOffset; } void func_80832770(Player* this, u16 sfxId) { @@ -1740,7 +1740,7 @@ void func_80832770(Player* this, u16 sfxId) { } u16 func_808327A4(Player* this, u16 sfxId) { - return sfxId + this->surfaceMaterial + this->ageProperties->unk_94; + return sfxId + this->floorSfxOffset + this->ageProperties->unk_94; } void func_808327C4(Player* this, u16 sfxId) { @@ -1751,7 +1751,7 @@ void func_808327F8(Player* this, f32 arg1) { s32 sfxId; if (this->currentBoots == PLAYER_BOOTS_IRON) { - sfxId = NA_SE_PL_WALK_GROUND + SURFACE_MATERIAL_IRON_BOOTS; + sfxId = NA_SE_PL_WALK_GROUND + SURFACE_SFX_OFFSET_IRON_BOOTS; } else { sfxId = func_808327A4(this, NA_SE_PL_WALK_GROUND); } @@ -1763,7 +1763,7 @@ void func_80832854(Player* this) { s32 sfxId; if (this->currentBoots == PLAYER_BOOTS_IRON) { - sfxId = NA_SE_PL_JUMP + SURFACE_MATERIAL_IRON_BOOTS; + sfxId = NA_SE_PL_JUMP + SURFACE_SFX_OFFSET_IRON_BOOTS; } else { sfxId = func_808327A4(this, NA_SE_PL_JUMP); } @@ -1775,7 +1775,7 @@ void func_808328A0(Player* this) { s32 sfxId; if (this->currentBoots == PLAYER_BOOTS_IRON) { - sfxId = NA_SE_PL_LAND + SURFACE_MATERIAL_IRON_BOOTS; + sfxId = NA_SE_PL_LAND + SURFACE_SFX_OFFSET_IRON_BOOTS; } else { sfxId = func_808327A4(this, NA_SE_PL_LAND); } @@ -1816,7 +1816,7 @@ void func_80832924(Player* this, struct_80832924* entry) { func_808327F8(this, 0.0f); } else if (flags == 0x4800) { func_800F4010(&this->actor.projectedPos, - NA_SE_PL_WALK_GROUND + SURFACE_MATERIAL_WOOD + this->ageProperties->unk_94, 0.0f); + NA_SE_PL_WALK_GROUND + SURFACE_SFX_OFFSET_WOOD + this->ageProperties->unk_94, 0.0f); } } cont = (entry->field >= 0); @@ -5059,7 +5059,7 @@ void func_8083AA10(Player* this, PlayState* play) { func_80835C58(play, this, func_8084411C, 1); func_80832440(play, this); - this->surfaceMaterial = this->prevSurfaceMaterial; + this->floorSfxOffset = this->prevSurfaceMaterial; if ((this->actor.bgCheckFlags & BGCHECKFLAG_GROUND_LEAVE) && !(this->stateFlags1 & PLAYER_STATE1_27) && (D_80853604 != FLOOR_PROPERTY_6) && (D_80853604 != FLOOR_PROPERTY_9) && (D_80853600 > 20.0f) && @@ -7923,7 +7923,7 @@ static Vec3f D_808545C0 = { 0.0f, 0.0f, 0.0f }; s32 func_8084269C(PlayState* play, Player* this) { Vec3f sp2C; - if ((this->surfaceMaterial == SURFACE_MATERIAL_DIRT) || (this->surfaceMaterial == SURFACE_MATERIAL_SAND)) { + if ((this->floorSfxOffset == SURFACE_SFX_OFFSET_DIRT) || (this->floorSfxOffset == SURFACE_SFX_OFFSET_SAND)) { func_8084260C(&this->actor.shape.feetPos[FOOT_LEFT], &sp2C, this->actor.floorHeight - this->actor.shape.feetPos[FOOT_LEFT].y, 7.0f, 5.0f); func_800286CC(play, &sp2C, &D_808545B4, &D_808545C0, 50, 30); @@ -8069,7 +8069,7 @@ s32 func_80842DF4(PlayState* play, Player* this) { Vec3f sp5C; Vec3f sp50; s32 temp1; - s32 sceneSurfaceMaterial; + s32 surfaceMaterial; if (this->meleeWeaponState > 0) { if (this->meleeWeaponAnimation < PLAYER_MWA_SPIN_ATTACK_1H) { @@ -8101,15 +8101,13 @@ s32 func_80842DF4(PlayState* play, Player* this) { } if (this->linearVelocity >= 0.0f) { - // The internal material is used because the internal DIRT and DIRT_SOFT map externally to - // DIRT, so the internal material is needed to distinguish between the two - sceneSurfaceMaterial = SurfaceType_GetSceneMaterial(&play->colCtx, groundPoly, bgId); + surfaceMaterial = SurfaceType_GetMaterial(&play->colCtx, groundPoly, bgId); - if (sceneSurfaceMaterial == SURFACE_MATERIAL_SCENE_WOOD) { + if (surfaceMaterial == SURFACE_MATERIAL_WOOD) { CollisionCheck_SpawnShieldParticlesWood(play, &sp5C, &this->actor.projectedPos); } else { CollisionCheck_SpawnShieldParticles(play, &sp5C); - if (sceneSurfaceMaterial == SURFACE_MATERIAL_SCENE_DIRT_SOFT) { + if (surfaceMaterial == SURFACE_MATERIAL_DIRT_SOFT) { func_8002F7DC(&this->actor, NA_SE_IT_WALL_HIT_SOFT); } else { func_8002F7DC(&this->actor, NA_SE_IT_WALL_HIT_HARD); @@ -10009,19 +10007,19 @@ void func_80847BA0(PlayState* play, Player* this) { if (floorPoly != NULL) { this->unk_A7A = SurfaceType_GetFloorProperty(&play->colCtx, floorPoly, this->actor.floorBgId); - this->prevSurfaceMaterial = this->surfaceMaterial; + this->prevSurfaceMaterial = this->floorSfxOffset; if (this->actor.bgCheckFlags & BGCHECKFLAG_WATER) { if (this->actor.yDistToWater < 20.0f) { - this->surfaceMaterial = SURFACE_MATERIAL_WATER_SHALLOW; + this->floorSfxOffset = SURFACE_SFX_OFFSET_WATER_SHALLOW; } else { - this->surfaceMaterial = SURFACE_MATERIAL_WATER_DEEP; + this->floorSfxOffset = SURFACE_SFX_OFFSET_WATER_DEEP; } } else { if (this->stateFlags2 & PLAYER_STATE2_9) { - this->surfaceMaterial = SURFACE_MATERIAL_SAND; + this->floorSfxOffset = SURFACE_SFX_OFFSET_SAND; } else { - this->surfaceMaterial = SurfaceType_GetMaterial(&play->colCtx, floorPoly, this->actor.floorBgId); + this->floorSfxOffset = SurfaceType_GetSfxOffset(&play->colCtx, floorPoly, this->actor.floorBgId); } } @@ -11565,8 +11563,8 @@ void func_8084BDFC(Player* this, PlayState* play) { } void func_8084BEE4(Player* this) { - func_8002F7DC(&this->actor, (this->unk_84F != 0) ? NA_SE_PL_WALK_GROUND + SURFACE_MATERIAL_VINE - : NA_SE_PL_WALK_GROUND + SURFACE_MATERIAL_WOOD); + func_8002F7DC(&this->actor, (this->unk_84F != 0) ? NA_SE_PL_WALK_GROUND + SURFACE_SFX_OFFSET_VINE + : NA_SE_PL_WALK_GROUND + SURFACE_SFX_OFFSET_WOOD); } void func_8084BF1C(Player* this, PlayState* play) { @@ -11716,9 +11714,9 @@ static f32 D_80854898[] = { 10.0f, 20.0f }; static f32 D_808548A0[] = { 40.0f, 50.0f }; static struct_80832924 D_808548A8[] = { - { NA_SE_PL_WALK_GROUND + SURFACE_MATERIAL_WOOD, 0x80A }, - { NA_SE_PL_WALK_GROUND + SURFACE_MATERIAL_WOOD, 0x814 }, - { NA_SE_PL_WALK_GROUND + SURFACE_MATERIAL_WOOD, -0x81E }, + { NA_SE_PL_WALK_GROUND + SURFACE_SFX_OFFSET_WOOD, 0x80A }, + { NA_SE_PL_WALK_GROUND + SURFACE_SFX_OFFSET_WOOD, 0x814 }, + { NA_SE_PL_WALK_GROUND + SURFACE_SFX_OFFSET_WOOD, -0x81E }, }; void func_8084C5F8(Player* this, PlayState* play) { @@ -11755,9 +11753,9 @@ void func_8084C5F8(Player* this, PlayState* play) { sp24.y = this->actor.world.pos.y + 20.0f; sp24.z = this->actor.world.pos.z; if (BgCheck_EntityRaycastDown3(&play->colCtx, &groundPoly, &bgId, &sp24) != 0.0f) { - //! @bug should use `SurfaceType_GetMaterial` instead of the internal scene material function + //! @bug should use `SurfaceType_GetSfxOffset` instead of the internal scene material function // Most material map to itself, so this will mostly result in the correct material, but not all. - this->surfaceMaterial = SurfaceType_GetSceneMaterial(&play->colCtx, groundPoly, bgId); + this->floorSfxOffset = SurfaceType_GetMaterial(&play->colCtx, groundPoly, bgId); func_808328A0(this); } } @@ -14305,7 +14303,7 @@ void func_80851FB0(PlayState* play, Player* this, CsCmdActorAction* arg2) { } static struct_80832924 D_808551C8[] = { - { NA_SE_PL_LAND + SURFACE_MATERIAL_WOOD, 0x843 }, + { NA_SE_PL_LAND + SURFACE_SFX_OFFSET_WOOD, 0x843 }, { 0, 0x4854 }, { 0, 0x485A }, { 0, -0x4860 }, From 353e5c90e551ac885827aedcdc765c277f6df806 Mon Sep 17 00:00:00 2001 From: engineer124 Date: Thu, 24 Nov 2022 01:03:31 -0500 Subject: [PATCH 07/10] small fix --- include/z64player.h | 2 +- src/overlays/actors/ovl_player_actor/z_player.c | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/include/z64player.h b/include/z64player.h index a33cd2d301a..b86decabde4 100644 --- a/include/z64player.h +++ b/include/z64player.h @@ -640,7 +640,7 @@ typedef struct Player { /* 0x0A7B */ u8 unk_A7B; /* 0x0A7C */ f32 unk_A7C; /* 0x0A80 */ s16 unk_A80; - /* 0x0A82 */ u16 prevSurfaceMaterial; + /* 0x0A82 */ u16 prevFloorSfxOffset; /* 0x0A84 */ s16 unk_A84; /* 0x0A86 */ s8 unk_A86; /* 0x0A87 */ u8 unk_A87; diff --git a/src/overlays/actors/ovl_player_actor/z_player.c b/src/overlays/actors/ovl_player_actor/z_player.c index 70698eed488..95823ac24fa 100644 --- a/src/overlays/actors/ovl_player_actor/z_player.c +++ b/src/overlays/actors/ovl_player_actor/z_player.c @@ -5059,7 +5059,7 @@ void func_8083AA10(Player* this, PlayState* play) { func_80835C58(play, this, func_8084411C, 1); func_80832440(play, this); - this->floorSfxOffset = this->prevSurfaceMaterial; + this->floorSfxOffset = this->prevFloorSfxOffset; if ((this->actor.bgCheckFlags & BGCHECKFLAG_GROUND_LEAVE) && !(this->stateFlags1 & PLAYER_STATE1_27) && (D_80853604 != FLOOR_PROPERTY_6) && (D_80853604 != FLOOR_PROPERTY_9) && (D_80853600 > 20.0f) && @@ -10007,7 +10007,7 @@ void func_80847BA0(PlayState* play, Player* this) { if (floorPoly != NULL) { this->unk_A7A = SurfaceType_GetFloorProperty(&play->colCtx, floorPoly, this->actor.floorBgId); - this->prevSurfaceMaterial = this->floorSfxOffset; + this->prevFloorSfxOffset = this->floorSfxOffset; if (this->actor.bgCheckFlags & BGCHECKFLAG_WATER) { if (this->actor.yDistToWater < 20.0f) { From f2f0f8fc34c5f5f6ea3ffd5a635f596168d7b93c Mon Sep 17 00:00:00 2001 From: engineer124 Date: Thu, 24 Nov 2022 16:41:00 -0500 Subject: [PATCH 08/10] comments --- include/sfx.h | 2 +- src/code/z_actor.c | 9 ++++++--- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/include/sfx.h b/include/sfx.h index 8dffa13c9a8..c066fb80735 100644 --- a/include/sfx.h +++ b/include/sfx.h @@ -58,7 +58,7 @@ typedef struct { #define DEFINE_SFX(enum, _1, _2, _3, _4) enum, typedef enum { - NA_SE_NONE, + NA_SE_NONE, // Requesting a sfx with this id will play no sound NA_SE_PL_BASE = 0x7FF, #include "tables/sfx/playerbank_table.h" NA_SE_IT_BASE = 0x17FF, diff --git a/src/code/z_actor.c b/src/code/z_actor.c index e2b2101b66c..68cbea094b5 100644 --- a/src/code/z_actor.c +++ b/src/code/z_actor.c @@ -1740,12 +1740,15 @@ void func_8002F974(Actor* actor, u16 sfxId) { actor->sfx = sfxId; } -void func_8002F994(Actor* actor, s32 arg1) { +void func_8002F994(Actor* actor, s32 timer) { actor->flags |= ACTOR_FLAG_28; actor->flags &= ~(ACTOR_FLAG_19 | ACTOR_FLAG_20 | ACTOR_FLAG_21); - if (arg1 < 40) { + + // The sfx here are not actually sound effects, but instead this is data that gets sent into + // the io ports of sequence 0, and act as indices to a table to delay ticks of the timer sfx. + if (timer < 40) { actor->sfx = 3; - } else if (arg1 < 100) { + } else if (timer < 100) { actor->sfx = 2; } else { actor->sfx = 1; From 433ffa65cdaac6368db6827c28e5d3ca2612139f Mon Sep 17 00:00:00 2001 From: engineer124 Date: Thu, 24 Nov 2022 16:44:48 -0500 Subject: [PATCH 09/10] adjust bug comment --- src/overlays/actors/ovl_player_actor/z_player.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/overlays/actors/ovl_player_actor/z_player.c b/src/overlays/actors/ovl_player_actor/z_player.c index 95823ac24fa..2e98c3c6cd3 100644 --- a/src/overlays/actors/ovl_player_actor/z_player.c +++ b/src/overlays/actors/ovl_player_actor/z_player.c @@ -11753,8 +11753,9 @@ void func_8084C5F8(Player* this, PlayState* play) { sp24.y = this->actor.world.pos.y + 20.0f; sp24.z = this->actor.world.pos.z; if (BgCheck_EntityRaycastDown3(&play->colCtx, &groundPoly, &bgId, &sp24) != 0.0f) { - //! @bug should use `SurfaceType_GetSfxOffset` instead of the internal scene material function - // Most material map to itself, so this will mostly result in the correct material, but not all. + //! @bug should use `SurfaceType_GetSfxOffset` instead of `SurfaceType_GetMaterial`. + // Most material and sfxOffsets share identical enum values, + // so this will mostly result in the correct sfx played, but not in all cases, such as carpet and ice. this->floorSfxOffset = SurfaceType_GetMaterial(&play->colCtx, groundPoly, bgId); func_808328A0(this); } From 2efe3ec9daec093a5655ead1d23f3af2429c93d9 Mon Sep 17 00:00:00 2001 From: engineer124 Date: Sat, 26 Nov 2022 18:00:39 -0500 Subject: [PATCH 10/10] simplify comment --- src/code/z_actor.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/code/z_actor.c b/src/code/z_actor.c index c3feb8de7d7..8197e5f18ef 100644 --- a/src/code/z_actor.c +++ b/src/code/z_actor.c @@ -1744,8 +1744,8 @@ void func_8002F994(Actor* actor, s32 timer) { actor->flags |= ACTOR_FLAG_28; actor->flags &= ~(ACTOR_FLAG_19 | ACTOR_FLAG_20 | ACTOR_FLAG_21); - // The sfx here are not actually sound effects, but instead this is data that gets sent into - // the io ports of sequence 0, and act as indices to a table to delay ticks of the timer sfx. + // The sfx field is not used for an actual sound effect here. + // Instead, it controls the tick speed of the timer sound effect. if (timer < 40) { actor->sfx = 3; } else if (timer < 100) {