Skip owl statue text referencing save deletion if autosave is enabled (#19)
This commit is contained in:
parent
83b196a4e5
commit
2a72fc25ca
|
@ -3,6 +3,7 @@
|
||||||
#include "z64save.h"
|
#include "z64save.h"
|
||||||
#include "overlays/gamestates/ovl_file_choose/z_file_select.h"
|
#include "overlays/gamestates/ovl_file_choose/z_file_select.h"
|
||||||
#include "overlays/kaleido_scope/ovl_kaleido_scope/z_kaleido_scope.h"
|
#include "overlays/kaleido_scope/ovl_kaleido_scope/z_kaleido_scope.h"
|
||||||
|
#include "overlays/actors/ovl_Obj_Warpstone/z_obj_warpstone.h"
|
||||||
#include "misc_funcs.h"
|
#include "misc_funcs.h"
|
||||||
|
|
||||||
#define SAVE_TYPE_AUTOSAVE 2
|
#define SAVE_TYPE_AUTOSAVE 2
|
||||||
|
@ -563,3 +564,43 @@ void Sram_OpenSave(FileSelectState* fileSelect, SramContext* sramCtx) {
|
||||||
// @recomp Initialize the autosave state tracking.
|
// @recomp Initialize the autosave state tracking.
|
||||||
autosave_init();
|
autosave_init();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
extern s32 Actor_ProcessTalkRequest(Actor* actor, GameState* gameState);
|
||||||
|
|
||||||
|
// @recomp If autosave is enabled, skip the part of the owl statue dialog that talks about the file being deleted on load, since it's not true.
|
||||||
|
void ObjWarpstone_Update(Actor* thisx, PlayState* play) {
|
||||||
|
ObjWarpstone* this = (ObjWarpstone*)thisx;
|
||||||
|
s32 pad;
|
||||||
|
|
||||||
|
if (this->isTalking) {
|
||||||
|
if (Actor_TextboxIsClosing(&this->dyna.actor, play)) {
|
||||||
|
this->isTalking = false;
|
||||||
|
} else if ((Message_GetState(&play->msgCtx) == TEXT_STATE_CHOICE) && Message_ShouldAdvance(play)) {
|
||||||
|
if (play->msgCtx.choiceIndex != 0) {
|
||||||
|
Audio_PlaySfx_MessageDecide();
|
||||||
|
play->msgCtx.msgMode = MSGMODE_OWL_SAVE_0;
|
||||||
|
play->msgCtx.unk120D6 = 0;
|
||||||
|
play->msgCtx.unk120D4 = 0;
|
||||||
|
gSaveContext.save.owlWarpId = OBJ_WARPSTONE_GET_OWL_WARP_ID(&this->dyna.actor);
|
||||||
|
} else {
|
||||||
|
Message_CloseTextbox(play);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else if (Actor_ProcessTalkRequest(&this->dyna.actor, &play->state)) {
|
||||||
|
this->isTalking = true;
|
||||||
|
} else if (!this->actionFunc(this, play)) {
|
||||||
|
Actor_OfferTalkNearColChkInfoCylinder(&this->dyna.actor, play);
|
||||||
|
}
|
||||||
|
|
||||||
|
// @recomp Skip the text talking about the save being deleted on load, if autosave is enabled.
|
||||||
|
if (recomp_autosave_enabled()) {
|
||||||
|
if (this->isTalking && play->msgCtx.currentTextId == 0xC01 && play->msgCtx.msgBufPos == 269) {
|
||||||
|
play->msgCtx.msgBufPos = 530;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Collider_ResetCylinderAC(play, &this->collider.base);
|
||||||
|
Collider_UpdateCylinder(&this->dyna.actor, &this->collider);
|
||||||
|
CollisionCheck_SetOC(play, &play->colChkCtx, &this->collider.base);
|
||||||
|
CollisionCheck_SetAC(play, &play->colChkCtx, &this->collider.base);
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue