mirror of
https://github.com/HarbourMasters/Shipwright.git
synced 2024-12-18 06:12:20 -05:00
Skip the Mweep cutscene (#4646)
* Skip the Mweep cutscene * Fix bug: Ruto's letter was not removed from bottle
This commit is contained in:
parent
4010229de5
commit
d0bfa6860b
@ -309,6 +309,8 @@ typedef enum {
|
|||||||
// Vanilla condition: !EVENTCHKINF_PULLED_MASTER_SWORD_FROM_PEDESTAL
|
// Vanilla condition: !EVENTCHKINF_PULLED_MASTER_SWORD_FROM_PEDESTAL
|
||||||
VB_PLAY_PULL_MASTER_SWORD_CS,
|
VB_PLAY_PULL_MASTER_SWORD_CS,
|
||||||
VB_PLAY_DROP_FISH_FOR_JABU_CS,
|
VB_PLAY_DROP_FISH_FOR_JABU_CS,
|
||||||
|
// Opt: *EnKz
|
||||||
|
VB_PLAY_MWEEP_CS,
|
||||||
// Vanilla condition: player->getItemId == GI_GAUNTLETS_SILVER
|
// Vanilla condition: player->getItemId == GI_GAUNTLETS_SILVER
|
||||||
VB_PLAY_NABOORU_CAPTURED_CS,
|
VB_PLAY_NABOORU_CAPTURED_CS,
|
||||||
VB_PLAY_ZELDAS_LULLABY_CS,
|
VB_PLAY_ZELDAS_LULLABY_CS,
|
||||||
|
@ -404,6 +404,14 @@ void TimeSaverOnVanillaBehaviorHandler(GIVanillaBehavior id, bool* should, va_li
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
case VB_PLAY_MWEEP_CS: {
|
||||||
|
if (CVarGetInteger(CVAR_ENHANCEMENT("TimeSavers.SkipCutscene.Story"), 0)) {
|
||||||
|
*should = false;
|
||||||
|
Inventory_ReplaceItem(gPlayState, ITEM_LETTER_RUTO, ITEM_BOTTLE);
|
||||||
|
Flags_SetEventChkInf(EVENTCHKINF_KING_ZORA_MOVED);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
case VB_PLAY_EYEDROP_CREATION_ANIM:
|
case VB_PLAY_EYEDROP_CREATION_ANIM:
|
||||||
case VB_PLAY_EYEDROPS_CS:
|
case VB_PLAY_EYEDROPS_CS:
|
||||||
case VB_PLAY_DROP_FISH_FOR_JABU_CS:
|
case VB_PLAY_DROP_FISH_FOR_JABU_CS:
|
||||||
|
@ -437,17 +437,23 @@ void EnKz_SetupMweep(EnKz* this, PlayState* play) {
|
|||||||
Vec3f pos;
|
Vec3f pos;
|
||||||
Vec3f initPos;
|
Vec3f initPos;
|
||||||
|
|
||||||
|
bool shouldPlayCutscene = GameInteractor_Should(VB_PLAY_MWEEP_CS, true);
|
||||||
|
|
||||||
|
if (shouldPlayCutscene) {
|
||||||
this->cutsceneCamera = Play_CreateSubCamera(play);
|
this->cutsceneCamera = Play_CreateSubCamera(play);
|
||||||
this->gameplayCamera = play->activeCamera;
|
this->gameplayCamera = play->activeCamera;
|
||||||
Play_ChangeCameraStatus(play, this->gameplayCamera, CAM_STAT_WAIT);
|
Play_ChangeCameraStatus(play, this->gameplayCamera, CAM_STAT_WAIT);
|
||||||
Play_ChangeCameraStatus(play, this->cutsceneCamera, CAM_STAT_ACTIVE);
|
Play_ChangeCameraStatus(play, this->cutsceneCamera, CAM_STAT_ACTIVE);
|
||||||
|
}
|
||||||
pos = this->actor.world.pos;
|
pos = this->actor.world.pos;
|
||||||
initPos = this->actor.home.pos;
|
initPos = this->actor.home.pos;
|
||||||
pos.y += 60.0f;
|
pos.y += 60.0f;
|
||||||
initPos.y += -100.0f;
|
initPos.y += -100.0f;
|
||||||
initPos.z += 260.0f;
|
initPos.z += 260.0f;
|
||||||
|
if (shouldPlayCutscene) {
|
||||||
Play_CameraSetAtEye(play, this->cutsceneCamera, &pos, &initPos);
|
Play_CameraSetAtEye(play, this->cutsceneCamera, &pos, &initPos);
|
||||||
Player_SetCsActionWithHaltedActors(play, &this->actor, 8);
|
Player_SetCsActionWithHaltedActors(play, &this->actor, 8);
|
||||||
|
}
|
||||||
this->actor.speedXZ = 0.1f * CVarGetFloat(CVAR_ENHANCEMENT("MweepSpeed"), 1.0f);
|
this->actor.speedXZ = 0.1f * CVarGetFloat(CVAR_ENHANCEMENT("MweepSpeed"), 1.0f);
|
||||||
this->actionFunc = EnKz_Mweep;
|
this->actionFunc = EnKz_Mweep;
|
||||||
}
|
}
|
||||||
@ -462,7 +468,9 @@ void EnKz_Mweep(EnKz* this, PlayState* play) {
|
|||||||
pos.y += 60.0f;
|
pos.y += 60.0f;
|
||||||
initPos.y += -100.0f;
|
initPos.y += -100.0f;
|
||||||
initPos.z += 260.0f;
|
initPos.z += 260.0f;
|
||||||
|
if (GameInteractor_Should(VB_PLAY_MWEEP_CS, true)) {
|
||||||
Play_CameraSetAtEye(play, this->cutsceneCamera, &pos, &initPos);
|
Play_CameraSetAtEye(play, this->cutsceneCamera, &pos, &initPos);
|
||||||
|
}
|
||||||
if ((EnKz_FollowPath(this, play) == 1) && (this->waypoint == 0)) {
|
if ((EnKz_FollowPath(this, play) == 1) && (this->waypoint == 0)) {
|
||||||
Animation_ChangeByInfo(&this->skelanime, sAnimationInfo, ENKZ_ANIM_1);
|
Animation_ChangeByInfo(&this->skelanime, sAnimationInfo, ENKZ_ANIM_1);
|
||||||
Inventory_ReplaceItem(play, ITEM_LETTER_RUTO, ITEM_BOTTLE);
|
Inventory_ReplaceItem(play, ITEM_LETTER_RUTO, ITEM_BOTTLE);
|
||||||
@ -477,9 +485,11 @@ void EnKz_Mweep(EnKz* this, PlayState* play) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void EnKz_StopMweep(EnKz* this, PlayState* play) {
|
void EnKz_StopMweep(EnKz* this, PlayState* play) {
|
||||||
|
if (GameInteractor_Should(VB_PLAY_MWEEP_CS, true)) {
|
||||||
Play_ChangeCameraStatus(play, this->gameplayCamera, CAM_STAT_ACTIVE);
|
Play_ChangeCameraStatus(play, this->gameplayCamera, CAM_STAT_ACTIVE);
|
||||||
Play_ClearCamera(play, this->cutsceneCamera);
|
Play_ClearCamera(play, this->cutsceneCamera);
|
||||||
Player_SetCsActionWithHaltedActors(play, &this->actor, 7);
|
Player_SetCsActionWithHaltedActors(play, &this->actor, 7);
|
||||||
|
}
|
||||||
this->actionFunc = EnKz_Wait;
|
this->actionFunc = EnKz_Wait;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user