mirror of
https://github.com/zeldaret/oot.git
synced 2025-08-06 06:10:21 +00:00
En_Elf Decompiled (#432)
* init matched * everything but navi OK * progress * 4 left * remove asm * progress * progress * asm and spec * remove comment * suggestion * review1 * use type enum * name func * overridelimbdraw * review 2 * forgot one * merge master * format
This commit is contained in:
parent
3ba022128c
commit
6e000fcc54
77 changed files with 1637 additions and 4303 deletions
|
@ -148,7 +148,7 @@ void BgHidanFwbig_Lower(BgHidanFwbig* this, GlobalContext* globalCtx) {
|
|||
}
|
||||
|
||||
void BgHidanFwbig_WaitForTimer(BgHidanFwbig* this, GlobalContext* globalCtx) {
|
||||
if(this->timer != 0) {
|
||||
if (this->timer != 0) {
|
||||
this->timer--;
|
||||
}
|
||||
if (this->timer == 0) {
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
#include "z_bg_spot11_oasis.h"
|
||||
#include "overlays/actors/ovl_En_Elf/z_en_elf.h"
|
||||
|
||||
#define FLAGS 0x00000010
|
||||
|
||||
|
@ -105,7 +106,7 @@ void func_808B29F0(BgSpot11Oasis* this, GlobalContext* globalCtx) {
|
|||
if (Math_ApproxF(&this->actor.posRot.pos.y, 0.0f, 0.7f)) {
|
||||
func_808B2AA8(this);
|
||||
Actor_Spawn(&globalCtx->actorCtx, globalCtx, ACTOR_EN_ELF, this->actor.posRot.pos.x,
|
||||
this->actor.posRot.pos.y + 40.0f, this->actor.posRot.pos.z, 0, 0, 0, 4);
|
||||
this->actor.posRot.pos.y + 40.0f, this->actor.posRot.pos.z, 0, 0, 0, FAIRY_SPAWNER);
|
||||
func_80078884(NA_SE_SY_CORRECT_CHIME);
|
||||
}
|
||||
func_808B27F0(globalCtx, this->actor.posRot.pos.y);
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
*/
|
||||
|
||||
#include "z_demo_sa.h"
|
||||
#include "overlays/actors/ovl_En_Elf/z_en_elf.h"
|
||||
|
||||
#include "vt.h"
|
||||
|
||||
|
@ -605,7 +606,7 @@ void func_8098F83C(DemoSa* this, GlobalContext* globalCtx) {
|
|||
|
||||
SkelAnime_InitSV(globalCtx, &this->skelAnime, &D_0600B1A0, &D_0601113C, NULL, NULL, 0);
|
||||
Actor_SpawnAsChild(&globalCtx->actorCtx, &this->actor, globalCtx, ACTOR_EN_ELF, thisPos->x, thisPos->y, thisPos->z,
|
||||
0, 0, 0, 3);
|
||||
0, 0, 0, FAIRY_KOKIRI);
|
||||
this->action = 16;
|
||||
this->drawConfig = 0;
|
||||
this->actor.shape.unk_14 = 0;
|
||||
|
|
|
@ -114,9 +114,9 @@ void func_8099485C(DoorGerudo* this, GlobalContext* globalCtx) {
|
|||
Player* player = PLAYER;
|
||||
|
||||
if (gSaveContext.inventory.dungeonKeys[gSaveContext.mapIndex] <= 0) {
|
||||
player->naviMessageId = -0x203;
|
||||
player->naviTextId = -0x203;
|
||||
} else if (!Flags_GetCollectible(globalCtx, (this->dyna.actor.params >> 8) & 0x1F)) {
|
||||
player->naviMessageId = -0x225;
|
||||
player->naviTextId = -0x225;
|
||||
} else {
|
||||
player->doorType = 2;
|
||||
player->doorDirection = direction;
|
||||
|
|
|
@ -179,8 +179,8 @@ void ElfMsg_CallNaviCuboid(ElfMsg* this, GlobalContext* globalCtx) {
|
|||
(this->actor.posRot.pos.y <= player->actor.posRot.pos.y) &&
|
||||
((player->actor.posRot.pos.y - this->actor.posRot.pos.y) < (100.0f * this->actor.scale.y)) &&
|
||||
(fabsf(player->actor.posRot.pos.z - this->actor.posRot.pos.z) < (100.0f * this->actor.scale.z))) {
|
||||
player->naviMessageId = ElfMsg_GetMessageId(this);
|
||||
navi->unk_298 = &this->actor;
|
||||
player->naviTextId = ElfMsg_GetMessageId(this);
|
||||
navi->elfMsg = this;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -195,8 +195,8 @@ void ElfMsg_CallNaviCylinder(ElfMsg* this, GlobalContext* globalCtx) {
|
|||
if (ElfMsg_WithinXZDistance(&player->actor.posRot.pos, &this->actor.posRot.pos, this->actor.scale.x * 100.0f) &&
|
||||
(this->actor.posRot.pos.y <= player->actor.posRot.pos.y) &&
|
||||
((player->actor.posRot.pos.y - this->actor.posRot.pos.y) < (100.0f * this->actor.scale.y))) {
|
||||
player->naviMessageId = ElfMsg_GetMessageId(this);
|
||||
navi->unk_298 = &this->actor;
|
||||
player->naviTextId = ElfMsg_GetMessageId(this);
|
||||
navi->elfMsg = this;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
*/
|
||||
|
||||
#include "z_en_butte.h"
|
||||
#include "overlays/actors/ovl_En_Elf/z_en_elf.h"
|
||||
|
||||
#define FLAGS 0x00000000
|
||||
|
||||
|
@ -347,7 +348,7 @@ void EnButte_TransformIntoFairy(EnButte* this, GlobalContext* globalCtx) {
|
|||
Audio_PlaySoundAtPosition(globalCtx, &this->actor.posRot.pos, 60, NA_SE_EV_BUTTERFRY_TO_FAIRY);
|
||||
} else if (this->timer == 4) {
|
||||
Actor_Spawn(&globalCtx->actorCtx, globalCtx, ACTOR_EN_ELF, this->actor.posRot2.pos.x, this->actor.posRot2.pos.y,
|
||||
this->actor.posRot2.pos.z, 0, this->actor.shape.rot.y, 0, 2);
|
||||
this->actor.posRot2.pos.z, 0, this->actor.shape.rot.y, 0, FAIRY_HEAL_TIMED);
|
||||
this->drawSkelAnime = false;
|
||||
} else if (this->timer <= 0) {
|
||||
EnButte_SetupWaitToDie(this);
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -3,16 +3,58 @@
|
|||
|
||||
#include "ultra64.h"
|
||||
#include "global.h"
|
||||
#include "overlays/actors/ovl_Elf_Msg/z_elf_msg.h"
|
||||
|
||||
struct EnElf;
|
||||
|
||||
typedef void (*EnElfActionFunc)(struct EnElf*, GlobalContext*);
|
||||
typedef void (*EnElfUnkFunc)(struct EnElf*, GlobalContext*);
|
||||
|
||||
typedef struct EnElf {
|
||||
/* 0x0000 */ Actor actor;
|
||||
/* 0x014C */ char unk_14C[0x14C];
|
||||
/* 0x0298 */ Actor* unk_298;
|
||||
/* 0x029C */ char unk_29C[0x34];
|
||||
/* 0x014C */ SkelAnime skelAnime;
|
||||
/* 0x0190 */ Vec3s limbDrawTable[15];
|
||||
/* 0x01EA */ Vec3s transitionDrawTable[15];
|
||||
/* 0x0244 */ Color_RGBAf innerColor;
|
||||
/* 0x0254 */ Color_RGBAf outerColor;
|
||||
/* 0x0264 */ LightInfo lightInfoGlow;
|
||||
/* 0x0274 */ LightNode* lightNodeGlow;
|
||||
/* 0x0278 */ LightInfo lightInfoNoGlow;
|
||||
/* 0x0288 */ LightNode* lightNodeNoGlow;
|
||||
/* 0x028C */ Vec3f unk_28C;
|
||||
/* 0x0298 */ ElfMsg* elfMsg;
|
||||
/* 0x029C */ f32 unk_29C;
|
||||
/* 0x02A0 */ f32 unk_2A0;
|
||||
/* 0x02A4 */ f32 unk_2A4;
|
||||
/* 0x02A8 */ s16 unk_2A8;
|
||||
/* 0x02AA */ s16 unk_2AA;
|
||||
/* 0x02AC */ s16 unk_2AC;
|
||||
/* 0x02AE */ s16 unk_2AE;
|
||||
/* 0x02B0 */ s16 unk_2B0;
|
||||
/* 0x02B4 */ f32 unk_2B4;
|
||||
/* 0x02B8 */ f32 unk_2B8;
|
||||
/* 0x02BC */ s16 unk_2BC;
|
||||
/* 0x02BE */ u16 timer;
|
||||
/* 0x02C0 */ s16 unk_2C0;
|
||||
/* 0x02C2 */ s16 disappearTimer;
|
||||
/* 0x02C4 */ u16 fairyFlags;
|
||||
/* 0x02C6 */ u8 unk_2C6;
|
||||
/* 0x02C7 */ u8 unk_2C7;
|
||||
/* 0x02C8 */ EnElfUnkFunc func_2C8;
|
||||
/* 0x02CC */ EnElfActionFunc actionFunc;
|
||||
} EnElf; // size = 0x02D0
|
||||
|
||||
typedef enum {
|
||||
/* 0x00 */ FAIRY_NAVI,
|
||||
/* 0x01 */ FAIRY_REVIVE_BOTTLE,
|
||||
/* 0x02 */ FAIRY_HEAL_TIMED,
|
||||
/* 0x03 */ FAIRY_KOKIRI,
|
||||
/* 0x04 */ FAIRY_SPAWNER,
|
||||
/* 0x05 */ FAIRY_REVIVE_DEATH,
|
||||
/* 0x06 */ FAIRY_HEAL,
|
||||
/* 0x07 */ FAIRY_HEAL_BIG
|
||||
} FairyType;
|
||||
|
||||
extern const ActorInit En_Elf_InitVars;
|
||||
|
||||
#endif
|
||||
|
|
|
@ -341,7 +341,7 @@ s32 func_80A4CB78(EnGoroiwa* this, GlobalContext* globalCtx) {
|
|||
Vec3f sp5C;
|
||||
f32 temp_f0_2;
|
||||
s32 pad2;
|
||||
u32 sp50;
|
||||
s32 sp50;
|
||||
Vec3f sp44;
|
||||
WaterBox* waterBox;
|
||||
f32 ySurface;
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
*/
|
||||
|
||||
#include "z_en_gs.h"
|
||||
#include "overlays/actors/ovl_En_Elf/z_en_elf.h"
|
||||
|
||||
#define FLAGS 0x02000009
|
||||
|
||||
|
@ -114,11 +115,11 @@ void func_80A4E470(EnGs* this, GlobalContext* globalCtx) {
|
|||
(globalCtx->msgCtx.unk_E3F2 == 8) || (globalCtx->msgCtx.unk_E3F2 == 9) ||
|
||||
(globalCtx->msgCtx.unk_E3F2 == 10)) {
|
||||
Actor_Spawn(&globalCtx->actorCtx, globalCtx, ACTOR_EN_ELF, this->actor.posRot.pos.x,
|
||||
this->actor.posRot.pos.y + 40.0f, this->actor.posRot.pos.z, 0, 0, 0, 2);
|
||||
this->actor.posRot.pos.y + 40.0f, this->actor.posRot.pos.z, 0, 0, 0, FAIRY_HEAL_TIMED);
|
||||
Audio_PlayActorSound2(&this->actor, NA_SE_EV_BUTTERFRY_TO_FAIRY);
|
||||
} else if (globalCtx->msgCtx.unk_E3F2 == 11) {
|
||||
Actor_Spawn(&globalCtx->actorCtx, globalCtx, ACTOR_EN_ELF, this->actor.posRot.pos.x,
|
||||
this->actor.posRot.pos.y + 40.0f, this->actor.posRot.pos.z, 0, 0, 0, 7);
|
||||
this->actor.posRot.pos.y + 40.0f, this->actor.posRot.pos.z, 0, 0, 0, FAIRY_HEAL_BIG);
|
||||
Audio_PlayActorSound2(&this->actor, NA_SE_EV_BUTTERFRY_TO_FAIRY);
|
||||
}
|
||||
this->unk_19D = 0;
|
||||
|
|
|
@ -774,7 +774,7 @@ void EnInsect_Update(Actor* thisx, GlobalContext* globalCtx) {
|
|||
}
|
||||
|
||||
if (!(this->unk_314 & 8) && D_80A7DEB4 < 4 && func_80A7BE6C(this, globalCtx) != 0 &&
|
||||
func_8002F434(&this->actor, globalCtx, 0x7E, 60.0f, 30.0f) != 0) {
|
||||
func_8002F434(&this->actor, globalCtx, GI_MAX, 60.0f, 30.0f) != 0) {
|
||||
D_80A7DEB4++;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,4 +1,11 @@
|
|||
/*
|
||||
* File: z_en_md.c
|
||||
* Overlay: ovl_En_Md
|
||||
* Description: Mido
|
||||
*/
|
||||
|
||||
#include "z_en_md.h"
|
||||
#include "overlays/actors/ovl_En_Elf/z_en_elf.h"
|
||||
|
||||
#define FLAGS 0x02000019
|
||||
|
||||
|
@ -602,7 +609,7 @@ void EnMd_Init(Actor* thisx, GlobalContext* globalCtx) {
|
|||
this->actor.unk_1F = 6;
|
||||
this->alpha = 255;
|
||||
Actor_SpawnAsChild(&globalCtx->actorCtx, &this->actor, globalCtx, ACTOR_EN_ELF, this->actor.posRot.pos.x,
|
||||
this->actor.posRot.pos.y, this->actor.posRot.pos.z, 0, 0, 0, 3);
|
||||
this->actor.posRot.pos.y, this->actor.posRot.pos.z, 0, 0, 0, FAIRY_KOKIRI);
|
||||
|
||||
if (((globalCtx->sceneNum == SCENE_SPOT04) && !(gSaveContext.eventChkInf[0] & 0x10)) ||
|
||||
((globalCtx->sceneNum == SCENE_SPOT04) && (gSaveContext.eventChkInf[0] & 0x10) &&
|
||||
|
|
|
@ -221,9 +221,9 @@ void ObjOshihiki_CheckType(ObjOshihiki* this, GlobalContext* globalCtx) {
|
|||
break;
|
||||
default:
|
||||
// Error : type cannot be determined
|
||||
osSyncPrintf("Error : タイプが判別できない(%s %d)(arg_data 0x%04x)\n",
|
||||
"../z_obj_oshihiki.c", 444, this->dyna.actor.params);
|
||||
break;
|
||||
osSyncPrintf("Error : タイプが判別できない(%s %d)(arg_data 0x%04x)\n", "../z_obj_oshihiki.c", 444,
|
||||
this->dyna.actor.params);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -279,11 +279,10 @@ void ObjOshihiki_SetColor(ObjOshihiki* this, GlobalContext* globalCtx) {
|
|||
void ObjOshihiki_Init(Actor* thisx, GlobalContext* globalCtx2) {
|
||||
GlobalContext* globalCtx = globalCtx2;
|
||||
ObjOshihiki* this = THIS;
|
||||
|
||||
|
||||
ObjOshihiki_CheckType(this, globalCtx);
|
||||
|
||||
if ((((this->dyna.actor.params >> 8) & 0xFF) >= 0)
|
||||
&& (((this->dyna.actor.params >> 8) & 0xFF) <= 0x3F)) {
|
||||
|
||||
if ((((this->dyna.actor.params >> 8) & 0xFF) >= 0) && (((this->dyna.actor.params >> 8) & 0xFF) <= 0x3F)) {
|
||||
if (Flags_GetSwitch(globalCtx, (this->dyna.actor.params >> 8) & 0x3F)) {
|
||||
switch (this->dyna.actor.params & 0xF) {
|
||||
case PUSHBLOCK_SMALL_START_ON:
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
*/
|
||||
|
||||
#include "z_shot_sun.h"
|
||||
#include "overlays/actors/ovl_En_Elf/z_en_elf.h"
|
||||
#include "vt.h"
|
||||
|
||||
#define FLAGS 0x00000009
|
||||
|
@ -72,7 +73,7 @@ void ShotSun_Destroy(Actor* thisx, GlobalContext* globalCtx) {
|
|||
|
||||
void ShotSun_SpawnFairy(ShotSun* this, GlobalContext* globalCtx) {
|
||||
s32 params = this->actor.params & 0xFF;
|
||||
s32 fairyParams;
|
||||
s32 fairyType;
|
||||
|
||||
if (this->timer > 0) {
|
||||
this->timer--;
|
||||
|
@ -81,16 +82,16 @@ void ShotSun_SpawnFairy(ShotSun* this, GlobalContext* globalCtx) {
|
|||
|
||||
switch (params) {
|
||||
case 0x40:
|
||||
fairyParams = 7;
|
||||
fairyType = FAIRY_HEAL_BIG;
|
||||
break;
|
||||
case 0x41:
|
||||
fairyParams = 7;
|
||||
fairyType = FAIRY_HEAL_BIG;
|
||||
break;
|
||||
}
|
||||
|
||||
// UB: fairyParams may be uninitialized
|
||||
//! @bug fairyType may be uninitialized
|
||||
Actor_Spawn(&globalCtx->actorCtx, globalCtx, ACTOR_EN_ELF, this->actor.initPosRot.pos.x,
|
||||
this->actor.initPosRot.pos.y, this->actor.initPosRot.pos.z, 0, 0, 0, fairyParams);
|
||||
this->actor.initPosRot.pos.y, this->actor.initPosRot.pos.z, 0, 0, 0, fairyType);
|
||||
|
||||
Actor_Kill(&this->actor);
|
||||
}
|
||||
|
|
|
@ -12,6 +12,7 @@
|
|||
#include "overlays/actors/ovl_En_Boom/z_en_boom.h"
|
||||
#include "overlays/actors/ovl_En_Box/z_en_box.h"
|
||||
#include "overlays/actors/ovl_En_Door/z_en_door.h"
|
||||
#include "overlays/actors/ovl_En_Elf/z_en_elf.h"
|
||||
#include "overlays/actors/ovl_En_Horse/z_en_horse.h"
|
||||
#include "overlays/effects/ovl_Effect_Ss_Fhg_Flash/z_eff_ss_fhg_flash.h"
|
||||
|
||||
|
@ -4110,7 +4111,7 @@ void func_808395DC(Player* this, Vec3f* arg1, Vec3f* arg2, Vec3f* arg3) {
|
|||
arg3->z = arg1->z + ((arg2->z * cos) - (arg2->x * sin));
|
||||
}
|
||||
|
||||
Actor* func_80839680(GlobalContext* globalCtx, Player* this, Vec3f* arg2, Vec3f* arg3, s32 type) {
|
||||
Actor* Player_SpawnFairy(GlobalContext* globalCtx, Player* this, Vec3f* arg2, Vec3f* arg3, s32 type) {
|
||||
Vec3f pos;
|
||||
|
||||
func_808395DC(this, arg2, arg3, &pos);
|
||||
|
@ -4891,8 +4892,8 @@ s32 func_8083B644(Player* this, GlobalContext* globalCtx) {
|
|||
|
||||
sp24 = (sp30 != NULL) && (((sp30->flags & 0x40001) == 0x40001) || (sp30->naviEnemyId != 0xFF));
|
||||
|
||||
if (sp24 || (this->naviMessageId != 0)) {
|
||||
sp28 = (this->naviMessageId < 0) && ((ABS(this->naviMessageId) & 0xFF00) != 0x200);
|
||||
if (sp24 || (this->naviTextId != 0)) {
|
||||
sp28 = (this->naviTextId < 0) && ((ABS(this->naviTextId) & 0xFF00) != 0x200);
|
||||
if (sp28 || !sp24) {
|
||||
sp2C = this->naviActor;
|
||||
if (sp28) {
|
||||
|
@ -4934,10 +4935,10 @@ s32 func_8083B644(Player* this, GlobalContext* globalCtx) {
|
|||
this->targetActor = NULL;
|
||||
|
||||
if (sp28 || !sp24) {
|
||||
if (this->naviMessageId >= 0) {
|
||||
sp2C->textId = this->naviMessageId;
|
||||
if (this->naviTextId >= 0) {
|
||||
sp2C->textId = this->naviTextId;
|
||||
} else {
|
||||
sp2C->textId = -this->naviMessageId;
|
||||
sp2C->textId = -this->naviTextId;
|
||||
}
|
||||
} else {
|
||||
if (sp2C->naviEnemyId != 0xFF) {
|
||||
|
@ -4978,9 +4979,8 @@ s32 func_8083B998(Player* this, GlobalContext* globalCtx) {
|
|||
if ((this->unk_664 != NULL) &&
|
||||
(((this->unk_664->flags & 0x40001) == 0x40001) || (this->unk_664->naviEnemyId != 0xFF))) {
|
||||
this->stateFlags2 |= 0x200000;
|
||||
} else if ((this->naviMessageId == 0) && !func_8008E9C4(this) &&
|
||||
CHECK_BTN_ALL(sControlInput->press.button, BTN_CUP) && (YREG(15) != 0x10) && (YREG(15) != 0x20) &&
|
||||
!func_8083B8F4(this, globalCtx)) {
|
||||
} else if ((this->naviTextId == 0) && !func_8008E9C4(this) && CHECK_BTN_ALL(sControlInput->press.button, BTN_CUP) &&
|
||||
(YREG(15) != 0x10) && (YREG(15) != 0x20) && !func_8083B8F4(this, globalCtx)) {
|
||||
func_80078884(NA_SE_SY_ERROR);
|
||||
}
|
||||
|
||||
|
@ -7896,7 +7896,7 @@ void func_80843AE8(GlobalContext* globalCtx, Player* this) {
|
|||
}
|
||||
} else if (this->unk_84F != 0) {
|
||||
this->unk_850 = 60;
|
||||
func_80839680(globalCtx, this, &this->actor.posRot.pos, &D_808545E4, 5);
|
||||
Player_SpawnFairy(globalCtx, this, &this->actor.posRot.pos, &D_808545E4, FAIRY_REVIVE_DEATH);
|
||||
func_8002F7DC(&this->actor, NA_SE_EV_FIATY_HEAL - SFX_FLAG);
|
||||
func_800800F8(globalCtx, 0x26B4, 125, &this->actor, 0);
|
||||
} else if (globalCtx->unk_10A20 == 2) {
|
||||
|
@ -9164,7 +9164,7 @@ void Player_Init(Actor* thisx, GlobalContext* globalCtx) {
|
|||
|
||||
if (initMode != 0) {
|
||||
if ((gSaveContext.gameMode == 0) || (gSaveContext.gameMode == 3)) {
|
||||
this->naviActor = func_80839680(globalCtx, this, &this->actor.posRot.pos, &D_80854778, 0);
|
||||
this->naviActor = Player_SpawnFairy(globalCtx, this, &this->actor.posRot.pos, &D_80854778, FAIRY_NAVI);
|
||||
if (gSaveContext.dogParams != 0) {
|
||||
gSaveContext.dogParams |= 0x8000;
|
||||
}
|
||||
|
@ -10158,7 +10158,7 @@ void Player_UpdateCommon(Player* this, GlobalContext* globalCtx, Input* input) {
|
|||
|
||||
func_8083D6EC(globalCtx, this);
|
||||
|
||||
if ((this->unk_664 == NULL) && (this->naviMessageId == 0)) {
|
||||
if ((this->unk_664 == NULL) && (this->naviTextId == 0)) {
|
||||
this->stateFlags2 &= ~0x200002;
|
||||
}
|
||||
|
||||
|
@ -10209,7 +10209,7 @@ void Player_UpdateCommon(Player* this, GlobalContext* globalCtx, Input* input) {
|
|||
this->rideActor = NULL;
|
||||
}
|
||||
|
||||
this->naviMessageId = 0;
|
||||
this->naviTextId = 0;
|
||||
|
||||
if (!(this->stateFlags2 & 0x2000000)) {
|
||||
this->unk_6A8 = NULL;
|
||||
|
@ -11909,9 +11909,9 @@ void func_8084E3C4(Player* this, GlobalContext* globalCtx) {
|
|||
|
||||
if ((this->targetActor != NULL) && (this->targetActor == this->unk_6A8)) {
|
||||
func_80853148(globalCtx, this->targetActor);
|
||||
} else if (this->naviMessageId < 0) {
|
||||
} else if (this->naviTextId < 0) {
|
||||
this->targetActor = this->naviActor;
|
||||
this->naviActor->textId = -this->naviMessageId;
|
||||
this->naviActor->textId = -this->naviTextId;
|
||||
func_80853148(globalCtx, this->targetActor);
|
||||
} else if (!func_8083B040(this, globalCtx)) {
|
||||
func_8083A098(this, &D_04003098, globalCtx);
|
||||
|
@ -12099,7 +12099,7 @@ void func_8084EAC0(Player* this, GlobalContext* globalCtx) {
|
|||
}
|
||||
|
||||
if (sp28 & 2) {
|
||||
func_80087680(globalCtx);
|
||||
Magic_Fill(globalCtx);
|
||||
}
|
||||
|
||||
if (sp28 & 4) {
|
||||
|
@ -12205,7 +12205,7 @@ void func_8084EED8(Player* this, GlobalContext* globalCtx) {
|
|||
}
|
||||
|
||||
if (func_800A4530(&this->skelAnime, 37.0f)) {
|
||||
func_80839680(globalCtx, this, &this->leftHandPos, &D_80854A1C, 1);
|
||||
Player_SpawnFairy(globalCtx, this, &this->leftHandPos, &D_80854A1C, FAIRY_REVIVE_BOTTLE);
|
||||
Player_UpdateBottleHeld(globalCtx, this, ITEM_BOTTLE, PLAYER_AP_BOTTLE);
|
||||
func_8002F7DC(&this->actor, NA_SE_EV_BOTTLE_CAP_OPEN);
|
||||
func_8002F7DC(&this->actor, NA_SE_EV_FIATY_HEAL - SFX_FLAG);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue