diff --git a/QuickStart.esp b/QuickStart.esp new file mode 100644 index 00000000..8364666c Binary files /dev/null and b/QuickStart.esp differ diff --git a/scripts/EnderalUpgradeAlias.pex b/scripts/EnderalUpgradeAlias.pex index 9870bba7..4acc599a 100644 Binary files a/scripts/EnderalUpgradeAlias.pex and b/scripts/EnderalUpgradeAlias.pex differ diff --git a/scripts/_00e_mqp01_functions.pex b/scripts/_00e_mqp01_functions.pex index b5039e45..1185aaf5 100644 Binary files a/scripts/_00e_mqp01_functions.pex and b/scripts/_00e_mqp01_functions.pex differ diff --git a/scripts/_00e_mqp01_startsc.pex b/scripts/_00e_mqp01_startsc.pex index 7555044b..dd98ef02 100644 Binary files a/scripts/_00e_mqp01_startsc.pex and b/scripts/_00e_mqp01_startsc.pex differ diff --git a/scripts/_00e_mqp02_functions.pex b/scripts/_00e_mqp02_functions.pex index e6e73ad6..3085c66c 100644 Binary files a/scripts/_00e_mqp02_functions.pex and b/scripts/_00e_mqp02_functions.pex differ diff --git a/scripts/_00e_mqp03_functions.pex b/scripts/_00e_mqp03_functions.pex index 7dc4f007..0c215ee7 100644 Binary files a/scripts/_00e_mqp03_functions.pex and b/scripts/_00e_mqp03_functions.pex differ diff --git a/scripts/qf_mqp03_0007b1e5.pex b/scripts/qf_mqp03_0007b1e5.pex index 8055983f..ebaa3075 100644 Binary files a/scripts/qf_mqp03_0007b1e5.pex and b/scripts/qf_mqp03_0007b1e5.pex differ diff --git a/source/scripts/EnderalUpgradeAlias.psc b/source/scripts/EnderalUpgradeAlias.psc index a400ee21..2e8112b2 100644 --- a/source/scripts/EnderalUpgradeAlias.psc +++ b/source/scripts/EnderalUpgradeAlias.psc @@ -7,8 +7,8 @@ float fPatchVersion Event OnInit() ; MQP01 - if (Game.GetForm(0x46F1A) as Quest).IsStageDone(10) - + Quest startQuest = Game.GetForm(0x46F1A) as Quest + if startQuest.IsStageDone(10) || startQuest.IsCompleted() While Utility.IsInMenuMode() Utility.WaitMenuMode(0.1) EndWhile diff --git a/source/scripts/_00e_mqp01_functions.psc b/source/scripts/_00e_mqp01_functions.psc index 79ad674c..7d351cc3 100644 --- a/source/scripts/_00e_mqp01_functions.psc +++ b/source/scripts/_00e_mqp01_functions.psc @@ -21,12 +21,6 @@ Function SetUpScene() MQP01_DreamDoorREF.BlockActivation(True) Wait(5.0) - if EnderalFunctions.GetNewGameCount() > 1 - Game.EnablePlayerControls() - Game.QuitToMainMenu() - Debug.MessageBox("Due to an engine bug, new game should not be started after quitting to the main menu. Please, restart Enderal first.") - endif - EndFunction Function UnlockDoor() diff --git a/source/scripts/_00e_mqp01_startsc.psc b/source/scripts/_00e_mqp01_startsc.psc index 9605b9cd..b982e5ed 100644 --- a/source/scripts/_00e_mqp01_startsc.psc +++ b/source/scripts/_00e_mqp01_startsc.psc @@ -2,23 +2,48 @@ Scriptname _00E_MQP01_StartSC extends ObjectReference Event OnTriggerEnter (ObjectReference akActionREF) -if akActionRef == PlayerREF && !bDone - If !MQ10a.IsRunning() - If !MQ12c.IsRunning() - MQP01.SetCurrentStageID(10) - Self.Delete() + if akActionRef == PlayerREF && !bDone + bDone = true ; deletion may take some time + Delete() + If !MQ10a.IsRunning() + If !MQ12c.IsRunning() + if EnderalFunctions.GetNewGameCount() > 1 + Game.QuitToMainMenu() + Debug.MessageBox("Due to an engine bug, new game should not be started after quitting to the main menu. Please, restart Enderal first.") + return + endif + + if _00E_QuickStartPrompt.Show() > 0 + MQP01.CompleteAllObjectives() + MQP01.CompleteQuest() + MQP02.CompleteAllObjectives() + MQP02.CompleteQuest() + Utility.wait(0.5) + PlayerREF.MoveTo(_00E_ClassMenuOrigin) + Debug.SendAnimationEvent(PlayerRef, "IdleForceDefaultState") + Game.ShowRaceMenu() + Game.DisablePlayerControls(false, true, true, false, true, false, false, true) + MQP03.SetCurrentStageID(15) + (MQP02 as _00E_MQP02_Functions).AddRacialAbilites() + else + MQP01.SetCurrentStageID(10) + endif + EndIf EndIf EndIf -EndIf EndEvent bool bDone Quest Property MQP01 Auto +Quest Property MQP02 Auto +Quest Property MQP03 Auto Quest Property MQ12c Auto Quest Property MQ10a Auto -Actor Property PlayerREF Auto +Actor Property PlayerREF Auto +Message Property _00E_QuickStartPrompt Auto +ObjectReference Property _00E_ClassMenuOrigin Auto diff --git a/source/scripts/_00e_mqp02_functions.psc b/source/scripts/_00e_mqp02_functions.psc index 0af54c89..834f74e0 100644 --- a/source/scripts/_00e_mqp02_functions.psc +++ b/source/scripts/_00e_mqp02_functions.psc @@ -398,7 +398,7 @@ Function RocioKillPlayer() Wait(3) Game.RequestAutoSave() Self.SetCurrentStageID(115) - MQP03.Start() + MQP03.SetCurrentStageID(5) EndFunction diff --git a/source/scripts/_00e_mqp03_functions.psc b/source/scripts/_00e_mqp03_functions.psc index 1b5653e8..4f7b31d6 100644 --- a/source/scripts/_00e_mqp03_functions.psc +++ b/source/scripts/_00e_mqp03_functions.psc @@ -39,7 +39,7 @@ Function MovePlayerToStart() DisablePlayerControls(false, true, true, false, true, false, false, true) PlayerREF.SetAlpha(0.0) PlayerREF.MoveTo(_00E_ClassMenuOrigin) - Self.SetCurrentStageID(10) + SetCurrentStageID(10) EndFunction @@ -52,17 +52,22 @@ Function ShowVisionBinkMovie() FadeToBlackHoldIMOD.PopTo(_00E_MQP03_WakeUpIMOD) Wait(4) _00E_SilenceAbruptHighPriority.Remove() + Message.ResetHelpMessage("Empty") + _00E_MQP03_Thoughts01.ShowAsHelpMessage("Empty", 5, 1, 1) + SetCurrentStageID(15) + +EndFunction + +function SetupPlayer() + Game.SetInCharGen(false, true, false) PlayerREF.AddShout(_00E_Class_Meditate) Game.UnlockWord(_00E_Class_ClassMenuWord) Game.TeachWord(_00E_Class_ClassMenuWord) _00E_MQP03_sMemoryPointGained.Show(1) TalentPoints.SetValueInt(1) PlayerREF.SetActorValue("dragonsouls", TalentPoints.GetValueInt()) - Message.ResetHelpMessage("Empty") - _00E_MQP03_Thoughts01.ShowAsHelpMessage("Empty", 5, 1, 1) RegisterForSingleUpdate(20) - -EndFunction +endfunction Function StrandingCutscene() @@ -226,4 +231,4 @@ WordOfPower Property _00E_Class_ClassMenuWord Auto Shout Property _00E_Class_Meditate Auto VisualEffect Property FXCameraAttachEmbersHeavyEffects Auto -VisualEffect Property FXCameraAttachEmbersEffect Auto \ No newline at end of file +VisualEffect Property FXCameraAttachEmbersEffect Auto diff --git a/source/scripts/qf_mqp03_0007b1e5.psc b/source/scripts/qf_mqp03_0007b1e5.psc index 52d7c8de..91b35f52 100644 --- a/source/scripts/qf_mqp03_0007b1e5.psc +++ b/source/scripts/qf_mqp03_0007b1e5.psc @@ -1,5 +1,5 @@ ;BEGIN FRAGMENT CODE - Do not edit anything between this and the end comment -;NEXT FRAGMENT INDEX 22 +;NEXT FRAGMENT INDEX 28 Scriptname QF_MQP03_0007B1E5 Extends Quest Hidden ;BEGIN ALIAS PROPERTY PlayerAlias @@ -7,6 +7,19 @@ Scriptname QF_MQP03_0007B1E5 Extends Quest Hidden ReferenceAlias Property Alias_PlayerAlias Auto ;END ALIAS PROPERTY +;BEGIN FRAGMENT Fragment_1 +Function Fragment_1() +;BEGIN AUTOCAST TYPE _00E_MQP03_Functions +Quest __temp = self as Quest +_00E_MQP03_Functions kmyQuest = __temp as _00E_MQP03_Functions +;END AUTOCAST +;BEGIN CODE +kmyQuest.ShowVisionBinkMovie() +Game.SetHudCartMode(False) +;END CODE +EndFunction +;END FRAGMENT + ;BEGIN FRAGMENT Fragment_16 Function Fragment_16() ;BEGIN AUTOCAST TYPE _00E_MQP03_Functions @@ -19,10 +32,14 @@ kmyQuest.PrepareSoundAndWeather() EndFunction ;END FRAGMENT -;BEGIN FRAGMENT Fragment_6 -Function Fragment_6() +;BEGIN FRAGMENT Fragment_27 +Function Fragment_27() +;BEGIN AUTOCAST TYPE _00E_MQP03_Functions +Quest __temp = self as Quest +_00E_MQP03_Functions kmyQuest = __temp as _00E_MQP03_Functions +;END AUTOCAST ;BEGIN CODE -Self.SetObjectiveDisplayed(5) +kmyQuest.SetupPlayer() ;END CODE EndFunction ;END FRAGMENT @@ -40,51 +57,58 @@ SetCurrentStageID(75) EndFunction ;END FRAGMENT -;BEGIN FRAGMENT Fragment_9 -Function Fragment_9() +;BEGIN FRAGMENT Fragment_0 +Function Fragment_0() ;BEGIN AUTOCAST TYPE _00E_MQP03_Functions Quest __temp = self as Quest _00E_MQP03_Functions kmyQuest = __temp as _00E_MQP03_Functions ;END AUTOCAST ;BEGIN CODE -kmyQuest.ShowSkillbookTutorial() +kmyQuest.MovePlayerToStart() ;END CODE EndFunction ;END FRAGMENT -;BEGIN FRAGMENT Fragment_1 -Function Fragment_1() +;BEGIN FRAGMENT Fragment_13 +Function Fragment_13() ;BEGIN AUTOCAST TYPE _00E_MQP03_Functions Quest __temp = self as Quest _00E_MQP03_Functions kmyQuest = __temp as _00E_MQP03_Functions ;END AUTOCAST ;BEGIN CODE -kmyQuest.ShowVisionBinkMovie() -Game.SetHudCartMode(False) +kmyQuest.ShowThoughtBox06() ;END CODE EndFunction ;END FRAGMENT -;BEGIN FRAGMENT Fragment_11 -Function Fragment_11() +;BEGIN FRAGMENT Fragment_8 +Function Fragment_8() ;BEGIN AUTOCAST TYPE _00E_MQP03_Functions Quest __temp = self as Quest _00E_MQP03_Functions kmyQuest = __temp as _00E_MQP03_Functions ;END AUTOCAST ;BEGIN CODE -kmyQuest.ShowSleepTutorial() +kmyQuest.ShowThoughtBox() ;END CODE EndFunction ;END FRAGMENT -;BEGIN FRAGMENT Fragment_3 -Function Fragment_3() +;BEGIN FRAGMENT Fragment_9 +Function Fragment_9() ;BEGIN AUTOCAST TYPE _00E_MQP03_Functions Quest __temp = self as Quest _00E_MQP03_Functions kmyQuest = __temp as _00E_MQP03_Functions ;END AUTOCAST ;BEGIN CODE -kmyQuest.StrandingCutscene() +kmyQuest.ShowSkillbookTutorial() +;END CODE +EndFunction +;END FRAGMENT + +;BEGIN FRAGMENT Fragment_17 +Function Fragment_17() +;BEGIN CODE +_00E_EPHandler.GiveEP(150) ;END CODE EndFunction ;END FRAGMENT @@ -101,46 +125,34 @@ kmyQuest.ShowThoughtBox05() EndFunction ;END FRAGMENT -;BEGIN FRAGMENT Fragment_0 -Function Fragment_0() +;BEGIN FRAGMENT Fragment_3 +Function Fragment_3() ;BEGIN AUTOCAST TYPE _00E_MQP03_Functions Quest __temp = self as Quest _00E_MQP03_Functions kmyQuest = __temp as _00E_MQP03_Functions ;END AUTOCAST ;BEGIN CODE -kmyQuest.MovePlayerToStart() -;END CODE -EndFunction -;END FRAGMENT - -;BEGIN FRAGMENT Fragment_17 -Function Fragment_17() -;BEGIN CODE -_00E_EPHandler.GiveEP(150) +kmyQuest.StrandingCutscene() ;END CODE EndFunction ;END FRAGMENT -;BEGIN FRAGMENT Fragment_8 -Function Fragment_8() +;BEGIN FRAGMENT Fragment_11 +Function Fragment_11() ;BEGIN AUTOCAST TYPE _00E_MQP03_Functions Quest __temp = self as Quest _00E_MQP03_Functions kmyQuest = __temp as _00E_MQP03_Functions ;END AUTOCAST ;BEGIN CODE -kmyQuest.ShowThoughtBox() +kmyQuest.ShowSleepTutorial() ;END CODE EndFunction ;END FRAGMENT -;BEGIN FRAGMENT Fragment_13 -Function Fragment_13() -;BEGIN AUTOCAST TYPE _00E_MQP03_Functions -Quest __temp = self as Quest -_00E_MQP03_Functions kmyQuest = __temp as _00E_MQP03_Functions -;END AUTOCAST +;BEGIN FRAGMENT Fragment_6 +Function Fragment_6() ;BEGIN CODE -kmyQuest.ShowThoughtBox06() +Self.SetObjectiveDisplayed(5) ;END CODE EndFunction ;END FRAGMENT