mirror of
https://github.com/zeldaret/ph
synced 2026-05-26 07:38:52 -04:00
Decomp ItemManager::PlayItemFanfareSfx
This commit is contained in:
@@ -4,5 +4,5 @@
|
||||
.extern data_ov00_020eec68
|
||||
.extern func_020196bc
|
||||
.extern func_020196fc
|
||||
.extern func_ov00_020d73bc
|
||||
.extern PlaySoundEffect
|
||||
.extern gItemManager
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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]
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
.extern _ZN11ItemManager15SetEquippedItemEi
|
||||
.extern _ZN11ItemManager17EquipPreviousItemEv
|
||||
.extern _ZN11ItemManager18EquipItem_vfunc_38Ei
|
||||
.extern _ZN11ItemManager18func_ov00_020ae648Ejjj
|
||||
.extern _ZN11ItemManager18PlayItemFanfareSfxEi
|
||||
.extern _ZN11ItemManager8GiveItemEi
|
||||
.extern _ZN11ItemManager9SetPotionEjh
|
||||
.extern _ZN12ActorManager12FilterActorsEP15ActorFilterBaseP9ActorList
|
||||
|
||||
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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,
|
||||
};
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user