1
0
Fork 0
mirror of https://github.com/zeldaret/oot.git synced 2025-08-06 06:10:21 +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

@ -435,37 +435,37 @@ void DemoEffect_Init(Actor* thisx, GlobalContext* globalCtx) {
case DEMO_EFFECT_MEDAL_FIRE:
DemoEffect_InitGetItem(this);
this->getItem.giIndex = 12;
this->getItem.drawId = GID_MEDALLION_FIRE;
break;
case DEMO_EFFECT_MEDAL_WATER:
DemoEffect_InitGetItem(this);
this->getItem.giIndex = 13;
this->getItem.drawId = GID_MEDALLION_WATER;
break;
case DEMO_EFFECT_MEDAL_FOREST:
DemoEffect_InitGetItem(this);
this->getItem.giIndex = 11;
this->getItem.drawId = GID_MEDALLION_FOREST;
break;
case DEMO_EFFECT_MEDAL_SPIRIT:
DemoEffect_InitGetItem(this);
this->getItem.giIndex = 14;
this->getItem.drawId = GID_MEDALLION_SPIRIT;
break;
case DEMO_EFFECT_MEDAL_SHADOW:
DemoEffect_InitGetItem(this);
this->getItem.giIndex = 15;
this->getItem.drawId = GID_MEDALLION_SHADOW;
break;
case DEMO_EFFECT_MEDAL_LIGHT:
DemoEffect_InitGetItem(this);
this->getItem.giIndex = 16;
this->getItem.drawId = GID_MEDALLION_LIGHT;
break;
case DEMO_EFFECT_LIGHTARROW:
DemoEffect_InitGetItem(this);
this->getItem.giIndex = 97;
this->getItem.drawId = GID_ARROW_LIGHT;
break;
case DEMO_EFFECT_TIMEWARP_TIMEBLOCK_LARGE:
@ -635,7 +635,7 @@ void DemoEffect_UpdateGetItem(DemoEffect* this, GlobalContext* globalCtx) {
this->getItem.isPositionInit = 1;
}
if (this->getItem.giIndex != 97) {
if (this->getItem.drawId != GID_ARROW_LIGHT) {
this->actor.shape.rot.x = 0xE0C0;
} else {
this->actor.shape.rot.y += 0x0400;
@ -660,14 +660,14 @@ void DemoEffect_UpdateGetItem(DemoEffect* this, GlobalContext* globalCtx) {
} else {
func_800788CC(NA_SE_EV_MEDAL_APPEAR_S - SFX_FLAG);
}
if (this->getItem.giIndex != 97) {
if (this->getItem.drawId != GID_ARROW_LIGHT) {
this->actor.shape.rot.y += 0x3E80;
}
this->getItem.rotation = 0x3E80;
break;
case 3:
this->getItem.rotation -= (s16)((this->getItem.rotation - 0x03E8) * 0.10f);
if (this->getItem.giIndex != 97) {
if (this->getItem.drawId != GID_ARROW_LIGHT) {
this->actor.shape.rot.y += this->getItem.rotation;
}
if (gSaveContext.entranceIndex == 0x0053) {
@ -2038,7 +2038,7 @@ void DemoEffect_DrawTriforceSpot(Actor* thisx, GlobalContext* globalCtx) {
/**
* Draw function for the Get Item Actors.
* This is either Medals or Light Arrows based on the giIndex.
* This is either Medals or Light Arrows based on the drawId.
*/
void DemoEffect_DrawGetItem(Actor* thisx, GlobalContext* globalCtx) {
DemoEffect* this = THIS;
@ -2049,7 +2049,7 @@ void DemoEffect_DrawGetItem(Actor* thisx, GlobalContext* globalCtx) {
}
func_8002EBCC(thisx, globalCtx, 0);
func_8002ED80(thisx, globalCtx, 0);
func_800694A0(globalCtx, this->getItem.giIndex);
GetItem_Draw(globalCtx, this->getItem.drawId);
}
}

View file

@ -54,7 +54,7 @@ typedef struct {
typedef struct {
/* 0x00 */ u8 isPositionInit;
/* 0x01 */ u8 isLoaded;
/* 0x02 */ u8 giIndex;
/* 0x02 */ u8 drawId;
/* 0x04 */ s16 rotation;
} DemoEffectGetItem;