Decomp ItemManager::PlayItemFanfareSfx

This commit is contained in:
Aetias
2024-04-30 19:10:44 +02:00
parent b046f33b3c
commit 5fed1c8b09
23 changed files with 102 additions and 138 deletions
+1 -1
View File
@@ -4,5 +4,5 @@
.extern data_ov00_020eec68
.extern func_020196bc
.extern func_020196fc
.extern func_ov00_020d73bc
.extern PlaySoundEffect
.extern gItemManager
-103
View File
@@ -3,109 +3,6 @@
.text
.global _ZN11ItemManager18func_ov00_020ae648Ejjj
thumb_func_start _ZN11ItemManager18func_ov00_020ae648Ejjj
_ZN11ItemManager18func_ov00_020ae648Ejjj: ; 0x020ae648
push {r3, lr}
ldr r1, _020ae6e8 ; =gItemManager
ldr r2, [r1]
mov r1, #0x53
lsl r1, r1, #2
ldrb r3, [r2, r1]
cmp r3, #1
bne _020ae65e
mov r0, #0
strb r0, [r2, r1]
pop {r3, pc}
_020ae65e:
cmp r0, #0x2d
bgt _020ae692
bge _020ae6b4
cmp r0, #0x18
bgt _020ae684
bge _020ae6bc
cmp r0, #2
bgt _020ae67e
cmp r0, #0
blt _020ae6cc
beq _020ae6c4
cmp r0, #1
beq _020ae6bc
cmp r0, #2
beq _020ae6bc
b _020ae6cc
_020ae67e:
cmp r0, #0xa
beq _020ae6c8
b _020ae6cc
_020ae684:
cmp r0, #0x19
bgt _020ae68c
beq _020ae6bc
b _020ae6cc
_020ae68c:
cmp r0, #0x1b
beq _020ae6b8
b _020ae6cc
_020ae692:
cmp r0, #0x3e
bgt _020ae6a6
bge _020ae6c4
cmp r0, #0x2e
bgt _020ae6a0
beq _020ae6b4
b _020ae6cc
_020ae6a0:
cmp r0, #0x2f
beq _020ae6b4
b _020ae6cc
_020ae6a6:
cmp r0, #0x81
bgt _020ae6ae
beq _020ae6c0
b _020ae6cc
_020ae6ae:
cmp r0, #0x82
beq _020ae6c0
b _020ae6cc
_020ae6b4:
mov r1, #0x2e
b _020ae6ce
_020ae6b8:
mov r1, #0x2a
b _020ae6ce
_020ae6bc:
mov r1, #0x29
b _020ae6ce
_020ae6c0:
mov r1, #0x2b
b _020ae6ce
_020ae6c4:
mov r1, #0x2c
b _020ae6ce
_020ae6c8:
mov r1, #0x2d
b _020ae6ce
_020ae6cc:
mov r1, #0x28
_020ae6ce:
mov r0, #0x47
lsl r0, r0, #2
ldr r3, [r2, r0]
cmp r3, #0
beq _020ae6de
add r1, r3, #0
mov r3, #0
str r3, [r2, r0]
_020ae6de:
ldr r0, _020ae6ec ; =data_ov00_020eec68
blx func_ov00_020d73bc
pop {r3, pc}
nop
thumb_func_end _ZN11ItemManager18func_ov00_020ae648Ejjj
_020ae6e8: .word gItemManager
_020ae6ec: .word data_ov00_020eec68
.global _ZNK11ItemManager18IsTreasureSalvagedEjj
thumb_func_start _ZNK11ItemManager18IsTreasureSalvagedEjj
_ZNK11ItemManager18IsTreasureSalvagedEjj: ; 0x020ae6f0
+4 -4
View File
@@ -24429,9 +24429,9 @@ _020d73b0:
ldmia sp!, {r4, pc}
arm_func_end func_ov00_020d7394
.global func_ov00_020d73bc
arm_func_start func_ov00_020d73bc
func_ov00_020d73bc: ; 0x020d73bc
.global PlaySoundEffect
arm_func_start PlaySoundEffect
PlaySoundEffect: ; 0x020d73bc
stmdb sp!, {r3, r4, r5, lr}
mov r4, r1
mov r5, r0
@@ -24445,7 +24445,7 @@ func_ov00_020d73bc: ; 0x020d73bc
str ip, [sp]
bl func_ov00_020d6d30
ldmia sp!, {r3, r4, r5, pc}
arm_func_end func_ov00_020d73bc
arm_func_end PlaySoundEffect
.global func_ov00_020d73f0
arm_func_start func_ov00_020d73f0
+1 -1
View File
@@ -26,7 +26,7 @@
.extern _ZN10PlayerBase18func_ov00_020a7c00Ei
.extern _ZN11ItemManager12GetItemModelEj
.extern _ZN11ItemManager15LoadFanfareItemEi
.extern _ZN11ItemManager18func_ov00_020ae648Ejjj
.extern _ZN11ItemManager18PlayItemFanfareSfxEi
.extern _ZN11ItemManager8GiveItemEi
.extern _ZN12ActorManager11DeleteActorEjb
.extern _ZN12ActorManager12FilterActorsEP15ActorFilterBaseP9ActorList
+1 -1
View File
@@ -10245,7 +10245,7 @@ _02109354:
cmp r0, #0
beq _02109380
ldr r0, [r5, #0x74]
blx _ZN11ItemManager18func_ov00_020ae648Ejjj
blx _ZN11ItemManager18PlayItemFanfareSfxEi
_02109380:
mov r0, r5
bl _ZN13LinkStateBase18func_ov00_020a8d50Ev
+1 -1
View File
@@ -632,7 +632,7 @@
.extern func_ov00_020d70a4
.extern func_ov00_020d716c
.extern func_ov00_020d7180
.extern func_ov00_020d73bc
.extern PlaySoundEffect
.extern func_ov00_020d7404
.extern func_ov00_020d77e4
.extern func_ov00_020d7a84
+2 -2
View File
@@ -20651,7 +20651,7 @@ _021239cc:
bl func_ov12_02124dfc
mov r1, r0
ldr r0, _02123a20 ; =data_ov00_020eec68
bl func_ov00_020d73bc
bl PlaySoundEffect
b _02123a04
_021239ec:
ldrb r0, [r6, #0x370]
@@ -20659,7 +20659,7 @@ _021239ec:
beq _02123a04
ldr r0, _02123a20 ; =data_ov00_020eec68
mov r1, #0x2b
bl func_ov00_020d73bc
bl PlaySoundEffect
_02123a04:
mov r0, #7
str r0, [r6, #0xc]
+1 -1
View File
@@ -11,7 +11,7 @@
.extern _ZN11ItemManager15SetEquippedItemEi
.extern _ZN11ItemManager17EquipPreviousItemEv
.extern _ZN11ItemManager18EquipItem_vfunc_38Ei
.extern _ZN11ItemManager18func_ov00_020ae648Ejjj
.extern _ZN11ItemManager18PlayItemFanfareSfxEi
.extern _ZN11ItemManager8GiveItemEi
.extern _ZN11ItemManager9SetPotionEjh
.extern _ZN12ActorManager12FilterActorsEP15ActorFilterBaseP9ActorList
+1 -1
View File
@@ -27197,7 +27197,7 @@ _021508ce:
ldr r0, [r4, #8]
blx func_ov03_020fc10c
ldr r0, [r4, #8]
bl _ZN11ItemManager18func_ov00_020ae648Ejjj
bl _ZN11ItemManager18PlayItemFanfareSfxEi
pop {r4, pc}
.align 2, 0
thumb_func_end func_ov14_021508b8
+2 -2
View File
@@ -14,7 +14,7 @@
.extern _ZN11ItemManager10SetUnk_09eEjt
.extern _ZN11ItemManager15LoadFanfareItemEi
.extern _ZN11ItemManager18func_ov00_020ad528Ev
.extern _ZN11ItemManager18func_ov00_020ae648Ejjj
.extern _ZN11ItemManager18PlayItemFanfareSfxEi
.extern _ZN11ItemManager19SetTreasureSalvagedEj
.extern _ZN11ItemManager8GiveItemEi
.extern _ZN12ActorManager12FilterActorsEP15ActorFilterBaseP9ActorList
@@ -723,7 +723,7 @@
.extern func_ov00_020d70a4
.extern func_ov00_020d716c
.extern func_ov00_020d71a0
.extern func_ov00_020d73bc
.extern PlaySoundEffect
.extern func_ov00_020d7424
.extern func_ov00_020d74bc
.extern func_ov00_020d77e4
+8 -8
View File
@@ -42710,7 +42710,7 @@ _0214389c:
ldr r0, _02143a38 ; =data_ov00_020eec68
mov r1, #0xda
str r2, [r7, #0x378]
bl func_ov00_020d73bc
bl PlaySoundEffect
_021438f4:
ldr r0, [r7, #0x20]
bl func_ov15_02149acc
@@ -43237,7 +43237,7 @@ _02144020:
bl func_ov00_020d716c
ldr r0, _0214415c ; =data_ov00_020eec68
mov r1, #0xdb
bl func_ov00_020d73bc
bl PlaySoundEffect
add r0, sp, #0
bl func_ov00_0209a4f4
mov r2, #0
@@ -43346,7 +43346,7 @@ _021441a8:
bl func_ov00_020d716c
ldr r0, _021442d8 ; =data_ov00_020eec68
mov r1, #0xdb
bl func_ov00_020d73bc
bl PlaySoundEffect
add r0, sp, #0
bl func_ov00_0209a4f4
mov r2, #0
@@ -44561,7 +44561,7 @@ _02145370:
mov r4, r0
bl func_ov03_020fc10c
mov r0, r4
blx _ZN11ItemManager18func_ov00_020ae648Ejjj
blx _ZN11ItemManager18PlayItemFanfareSfxEi
mov r0, #0x10
strb r0, [r9, #0x34d]
b _02145420
@@ -61729,7 +61729,7 @@ _02153b28:
bl func_ov15_02153938
ldr r0, [r4, #0x41c]
add r0, r0, #0x46
blx _ZN11ItemManager18func_ov00_020ae648Ejjj
blx _ZN11ItemManager18PlayItemFanfareSfxEi
mov r0, #5
strb r0, [r5, #0x436]
b _02153d74
@@ -62211,7 +62211,7 @@ _02154254:
bl func_ov15_02153938
ldr r0, [r5, #0x41c]
add r0, r0, #0x46
blx _ZN11ItemManager18func_ov00_020ae648Ejjj
blx _ZN11ItemManager18PlayItemFanfareSfxEi
mov r0, #5
strb r0, [r4, #0x436]
b _02154304
@@ -62311,7 +62311,7 @@ _02154374:
bl func_ov00_020d716c
ldr r0, _02154620 ; =data_ov00_020eec68
mov r1, #0xde
bl func_ov00_020d73bc
bl PlaySoundEffect
mov r0, #1
strb r0, [r5, #0x436]
mov r0, #0
@@ -88292,7 +88292,7 @@ _0216a994:
bl func_ov03_020fc10c
ldr r0, _0216aa24 ; =data_ov00_020eec68
mov r1, #0x28
bl func_ov00_020d73bc
bl PlaySoundEffect
mov r1, #0
sub r0, r1, #0x1000
str r0, [sp, #0x18]
+1 -1
View File
@@ -457,7 +457,7 @@
.extern func_ov00_020d1980
.extern func_ov00_020d70a4
.extern func_ov00_020d716c
.extern func_ov00_020d73bc
.extern PlaySoundEffect
.extern func_ov00_020d77e4
.extern func_ov00_020d7a84
.extern func_ov00_020d7b20
+2 -2
View File
@@ -1892,14 +1892,14 @@ _0216ee88:
_0216eea4:
ldr r0, _0216eeec ; =data_ov00_020eec68
mov r1, #0xc2
bl func_ov00_020d73bc
bl PlaySoundEffect
add sp, sp, #8
mov r0, #1
ldmia sp!, {r4, r5, r6, pc}
_0216eebc:
ldr r0, _0216eeec ; =data_ov00_020eec68
mov r1, #0xc4
bl func_ov00_020d73bc
bl PlaySoundEffect
add sp, sp, #8
mov r0, #1
ldmia sp!, {r4, r5, r6, pc}
+1 -1
View File
@@ -406,7 +406,7 @@
.extern func_ov00_020d70a4
.extern func_ov00_020d716c
.extern func_ov00_020d7180
.extern func_ov00_020d73bc
.extern PlaySoundEffect
.extern func_ov00_020d73f0
.extern func_ov00_020d77e4
.extern func_ov00_020d7c8c
+1 -1
View File
@@ -8276,7 +8276,7 @@ _02173dac:
str r0, [r4, #0x78]
ldr r0, _02173de8 ; =data_ov00_020eec68
mov r1, #0x4c
blx func_ov00_020d73bc
blx PlaySoundEffect
pop {r3, r4, r5, pc}
nop
thumb_func_end func_ov26_02173cec
+1 -1
View File
@@ -217,7 +217,7 @@
.extern func_ov00_020d5f98
.extern func_ov00_020d70a4
.extern func_ov00_020d716c
.extern func_ov00_020d73bc
.extern PlaySoundEffect
.extern func_ov00_020d73f0
.extern func_ov00_020d7c8c
.extern func_ov00_020d7d18
+1 -1
View File
@@ -208,7 +208,7 @@ func_ov38_0217bf48: ; 0x0217bf48
bl func_ov00_020d8388
ldr r0, _0217c048 ; =data_ov00_020eec68
mov r1, #0xcf
bl func_ov00_020d73bc
bl PlaySoundEffect
ldr r0, _0217c04c ; =data_ov38_021891e0
ldr r0, [r0, #0x58]
bl func_ov38_02184a18
+1 -1
View File
@@ -230,7 +230,7 @@
.extern func_ov00_020d18f4
.extern func_ov00_020d1980
.extern func_ov00_020d716c
.extern func_ov00_020d73bc
.extern PlaySoundEffect
.extern func_ov00_020d73f0
.extern func_ov00_020d77e4
.extern func_ov00_020d7ad4
+1 -1
View File
@@ -112,7 +112,7 @@ _0217bed4:
bl func_ov00_0207c5d4
ldr r0, _0217bf2c ; =data_ov00_020eec68
mov r1, #0xd2
bl func_ov00_020d73bc
bl PlaySoundEffect
ldr r1, [r4, #8]
ldr r0, [r1, #0x158]
bic r0, r0, #0x4000000
+1 -1
View File
@@ -89,7 +89,7 @@ enum ItemFlag_ {
typedef s32 ItemId;
enum ItemId_ {
/* 0x00 */ ItemId_Unk_0 = 0,
/* 0x00 */ ItemId_None = 0,
/* 0x01 */ ItemId_SmallKey = 1,
/* 0x02 */ ItemId_GreenRupee = 2,
/* 0x03 */ ItemId_OshusSword = 3,
+3 -2
View File
@@ -15,6 +15,7 @@ extern "C" {
#include "Map/MapManager.hpp"
#include "Player/EquipItem.hpp"
#include "Player/HealthManager.hpp"
#include "Sound/Sfx.hpp"
#include "System/SysNew.hpp"
#include "System/OverlayManager.hpp"
#include "Render/ModelRender.hpp"
@@ -222,7 +223,7 @@ private:
/* 138 */ u32 mSalvagedTreasureFlags;
/* 13c */ ShipPartPricesShown mShipPartPricesShown;
/* 148 */ u32 mTreasurePriceShownFlags[CEIL_DIV(Treasure_COUNT, 32)];
/* 14c */ unk8 mUnk_14c;
/* 14c */ bool mUnk_14c;
/* 14d */ u8 mUnk_14d;
/* 14e */ unk8 mUnk_14e[0x2];
/* 150 */
@@ -278,6 +279,7 @@ public:
void LoadFanfareItem(ItemId id);
bool GetFanfareItemScale(Vec3p *pScale) const;
void LoadDungeonItemModels();
static void PlayItemFanfareSfx(ItemId item);
// Ship
ShipType GetEquippedShipPart(ShipPart part) const;
@@ -327,7 +329,6 @@ public:
// Unknown
void func_ov00_020ae4dc(s32 param1);
void func_ov00_020ae648(unk32 param1, unk32 param2, unk32 param3);
};
extern ItemManager *gItemManager;
+15
View File
@@ -0,0 +1,15 @@
#pragma once
#include "global.h"
#include "types.h"
typedef u32 SfxId;
enum SfxId_ {
SfxId_FanfareDefault = 0x28,
SfxId_FanfareRupee = 0x29,
SfxId_FanfareGoldRupee = 0x2a,
SfxId_FanfareRupoor = 0x2b,
SfxId_FanfareNothing = 0x2c,
SfxId_FanfareHeartContainer = 0x2d,
SfxId_FanfareGem = 0x2e,
};
+52 -1
View File
@@ -716,7 +716,7 @@ THUMB void ItemManager::GiveItem(ItemId id) {
this->GiveRupees(-50, true);
} break;
case ItemId_Unk_0: break;
case ItemId_None: break;
case ItemId_Unk_5: break;
case ItemId_Unk_16: break;
case ItemId_Unk_131: break;
@@ -914,3 +914,54 @@ THUMB void ItemManager::LoadDungeonItemModels() {
func_020196fc(mDungeonItemModels[i], unk2);
}
}
extern unk32 data_ov00_020eec68;
extern "C" void PlaySoundEffect(void *param1, SfxId sfx);
THUMB void ItemManager::PlayItemFanfareSfx(ItemId item) {
if (gItemManager->mUnk_14c == true) {
gItemManager->mUnk_14c = false;
return;
}
SfxId sfx;
switch (item) {
case ItemId_PowerGem:
case ItemId_WisdomGem:
case ItemId_CourageGem: {
sfx = SfxId_FanfareGem;
} break;
case ItemId_GoldRupee: {
sfx = SfxId_FanfareGoldRupee;
} break;
case ItemId_SmallKey:
case ItemId_GreenRupee:
case ItemId_BlueRupee:
case ItemId_RedRupee: {
sfx = SfxId_FanfareRupee;
} break;
case ItemId_Rupoor10:
case ItemId_Rupoor50: {
sfx = SfxId_FanfareRupoor;
} break;
case ItemId_None:
case ItemId_HerosNewClothes: {
sfx = SfxId_FanfareNothing;
} break;
case ItemId_HeartContainer: {
sfx = SfxId_FanfareHeartContainer;
} break;
default: {
sfx = SfxId_FanfareDefault;
} break;
}
if (gItemManager->mUnk_11c != 0) {
sfx = gItemManager->mUnk_11c;
gItemManager->mUnk_11c = 0;
}
PlaySoundEffect(&data_ov00_020eec68, sfx);
}