mirror of
https://github.com/zeldaret/mm.git
synced 2026-09-04 18:21:33 -04:00
71 lines
2.2 KiB
C
71 lines
2.2 KiB
C
#ifndef Z_EN_ITEM00_H
|
|
#define Z_EN_ITEM00_H
|
|
|
|
#include "ultra64.h"
|
|
#include "z64actor.h"
|
|
|
|
typedef enum Item00Type {
|
|
/* 0x00 */ ITEM00_RUPEE_GREEN,
|
|
/* 0x01 */ ITEM00_RUPEE_BLUE,
|
|
/* 0x02 */ ITEM00_RUPEE_RED,
|
|
/* 0x03 */ ITEM00_RECOVERY_HEART,
|
|
/* 0x04 */ ITEM00_BOMBS_A,
|
|
/* 0x05 */ ITEM00_ARROWS_10,
|
|
/* 0x06 */ ITEM00_HEART_PIECE,
|
|
/* 0x07 */ ITEM00_HEART_CONTAINER,
|
|
/* 0x08 */ ITEM00_ARROWS_30,
|
|
/* 0x09 */ ITEM00_ARROWS_40,
|
|
/* 0x0A */ ITEM00_ARROWS_50,
|
|
/* 0x0B */ ITEM00_BOMBS_B,
|
|
/* 0x0C */ ITEM00_DEKU_NUTS_1,
|
|
/* 0x0D */ ITEM00_DEKU_STICK,
|
|
/* 0x0E */ ITEM00_MAGIC_JAR_BIG,
|
|
/* 0x0F */ ITEM00_MAGIC_JAR_SMALL,
|
|
/* 0x10 */ ITEM00_MASK,
|
|
/* 0x11 */ ITEM00_SMALL_KEY,
|
|
/* 0x12 */ ITEM00_FLEXIBLE,
|
|
/* 0x13 */ ITEM00_RUPEE_HUGE,
|
|
/* 0x14 */ ITEM00_RUPEE_PURPLE,
|
|
/* 0x15 */ ITEM00_3_HEARTS,
|
|
/* 0x16 */ ITEM00_SHIELD_HERO,
|
|
/* 0x17 */ ITEM00_DEKU_NUTS_10,
|
|
/* 0x18 */ ITEM00_NOTHING,
|
|
/* 0x19 */ ITEM00_BOMBS_0,
|
|
/* 0x1A */ ITEM00_BIG_FAIRY,
|
|
/* 0x1B */ ITEM00_MAP,
|
|
/* 0x1C */ ITEM00_COMPASS,
|
|
/* 0x1D */ ITEM00_MUSHROOM_CLOUD,
|
|
|
|
/* 0xFF */ ITEM00_NO_DROP = -1
|
|
} Item00Type;
|
|
|
|
struct EnItem00;
|
|
|
|
typedef void (*EnItem00ActionFunc)(struct EnItem00*, struct PlayState*);
|
|
|
|
#define ENITEM00_GET_8000(thisx) ((thisx)->params & 0x8000)
|
|
#define ENITEM00_GET_7F00(thisx) (((thisx)->params & 0x7F00) >> 8)
|
|
|
|
typedef struct EnItem00 {
|
|
/* 0x000 */ Actor actor;
|
|
/* 0x144 */ EnItem00ActionFunc actionFunc;
|
|
/* 0x148 */ s16 collectibleFlag;
|
|
/* 0x14A */ s16 getItemId;
|
|
/* 0x14C */ s16 unk14C;
|
|
/* 0x14E */ s16 unk14E;
|
|
/* 0x150 */ s16 unk150;
|
|
/* 0x152 */ s16 unk152;
|
|
/* 0x154 */ f32 unk154;
|
|
/* 0x158 */ ColliderCylinder collider;
|
|
/* 0x1A4 */ s8 unk1A4;
|
|
} EnItem00; // size = 0x1A8
|
|
|
|
Actor* Item_DropCollectible(struct PlayState* play, Vec3f* spawnPos, u32 params);
|
|
Actor* Item_DropCollectible2(struct PlayState* play, Vec3f* spawnPos, s32 params);
|
|
void Item_DropCollectibleRandom(struct PlayState* play, Actor* fromActor, Vec3f* spawnPos, s16 params);
|
|
s32 func_800A8150(s32 index);
|
|
s32 func_800A817C(s32 index);
|
|
bool Item_CanDropBigFairy(struct PlayState* play, s32 index, s32 collectibleFlag);
|
|
|
|
#endif
|