1
0
Fork 0
mirror of https://github.com/zeldaret/oot.git synced 2025-08-21 22:41:14 +00:00

All* Get Item objects decompiled (#668)

* All get item objects OK

* Name z_draw functions

* fix skulltula tokens draw ids

* Review suggestions, merge extract_single_asset into extract_assets as an optional argument

Co-authored-by: Thar0 <maximilianc64@gmail.com>
This commit is contained in:
Tharo 2021-02-12 21:57:06 +00:00 committed by GitHub
parent 5f552a369c
commit 7ee8c8011c
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
96 changed files with 1453 additions and 511 deletions

View file

@ -44,7 +44,8 @@ static s16 sObjectIds[] = {
// Indexes passed to the item table in z_draw.c
static s16 sDrawItemIndexes[] = {
0x0000, 0x0044, 0x002B, 0x0015, 0x0029, 0x002A, 0x0001, 0x005F, 0x006C, 0x006D, 0x006E, 0x0070, 0x0013, 0x0001,
GID_BOTTLE, GID_LETTER_RUTO, GID_SHIELD_HYLIAN, GID_QUIVER_40, GID_SCALE_SILVER, GID_SCALE_GOLDEN, GID_KEY_SMALL,
GID_ARROW_FIRE, GID_RUPEE_GREEN, GID_RUPEE_BLUE, GID_RUPEE_RED, GID_RUPEE_PURPLE, GID_HEART_PIECE, GID_KEY_SMALL,
};
static s16 sGetItemIds[] = {
@ -71,7 +72,7 @@ void ItemEtcetera_Init(Actor* thisx, GlobalContext* globalCtx) {
} else {
this->objBankIndex = objBankIndex;
}
this->drawId = sDrawItemIndexes[type];
this->giDrawId = sDrawItemIndexes[type];
this->getItemId = sGetItemIds[type];
this->futureActionFunc = func_80B85824;
this->drawFunc = ItemEtcetera_Draw;
@ -204,7 +205,7 @@ void ItemEtcetera_DrawThroughLens(Actor* thisx, GlobalContext* globalCtx) {
if (globalCtx->actorCtx.unk_03 != 0) {
func_8002EBCC(&this->actor, globalCtx, 0);
func_8002ED80(&this->actor, globalCtx, 0);
func_800694A0(globalCtx, this->drawId);
GetItem_Draw(globalCtx, this->giDrawId);
}
}
@ -213,5 +214,5 @@ void ItemEtcetera_Draw(Actor* thisx, GlobalContext* globalCtx) {
func_8002EBCC(&this->actor, globalCtx, 0);
func_8002ED80(&this->actor, globalCtx, 0);
func_800694A0(globalCtx, this->drawId);
GetItem_Draw(globalCtx, this->giDrawId);
}

View file

@ -11,7 +11,7 @@ typedef void (*ItemEtceteraActionFunc)(struct ItemEtcetera*, GlobalContext*);
typedef struct ItemEtcetera {
/* 0x0000 */ Actor actor;
/* 0x014C */ ItemEtceteraActionFunc futureActionFunc;
/* 0x0150 */ s16 drawId;
/* 0x0150 */ s16 giDrawId;
/* 0x0152 */ s16 getItemId;
/* 0x0154 */ u8 objBankIndex;
/* 0x0158 */ ActorFunc drawFunc;