Put const data in itemOcarina

This commit is contained in:
Tal Hayon 2022-04-16 20:58:27 +03:00
parent 2cad513327
commit 8c3854d7ef
3 changed files with 7 additions and 13 deletions

View File

@ -1,9 +0,0 @@
.include "asm/macros.inc"
.include "constants/constants.inc"
.section .rodata
.align 2
gOcarinaStates:: @ 0811BDD8
.4byte OcarinaUse
.4byte OcarinaUpdate

View File

@ -1314,7 +1314,7 @@ SECTIONS {
src/item/itemBomb.o(.rodata);
src/item/itemTryPickupObject.o(.rodata);
src/item/itemPegasusBoots.o(.rodata);
data/const/item/itemOcarina.o(.rodata);
src/item/itemOcarina.o(.rodata);
data/const/item/itemPacciCane.o(.rodata);
data/const/item/itemShield.o(.rodata);
src/item/itemGustJar.o(.rodata);

View File

@ -2,13 +2,16 @@
#include "sound.h"
#include "functions.h"
extern void (*const gOcarinaStates[4])(ItemBehavior*, u32);
extern void ResetPlayerVelocity(void);
extern void CreateBird(void);
void OcarinaUse(ItemBehavior*, u32);
void OcarinaUpdate(ItemBehavior*, u32);
void ItemOcarina(ItemBehavior* this, u32 idx) {
static void (*const gOcarinaStates[])(ItemBehavior*, u32) = {
OcarinaUse,
OcarinaUpdate,
};
gOcarinaStates[this->stateID](this, idx);
gPlayerEntity.field_0x7a.HWORD += 1;
}