From 3b5bc3fffe364814902b14b1489f81850f681f29 Mon Sep 17 00:00:00 2001 From: Eddoursul Date: Thu, 28 Jul 2022 16:38:24 +0200 Subject: [PATCH] Prevent users from starting game twice during the same session to avoid an engine bug --- scripts/_00e_mqp01_functions.pex | Bin 9498 -> 9802 bytes scripts/enderallib.pex | Bin 995 -> 1043 bytes source/scripts/_00e_mqp01_functions.psc | 7 +++++++ source/scripts/enderallib.psc | 2 ++ 4 files changed, 9 insertions(+) diff --git a/scripts/_00e_mqp01_functions.pex b/scripts/_00e_mqp01_functions.pex index 42c9e288ca12eb9217f982c3fcf4dd08ee2716fa..358892d19ec4e4a0b191d57422b7c9d0266008b4 100644 GIT binary patch literal 9802 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 literal 9498 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 diff --git a/scripts/enderallib.pex b/scripts/enderallib.pex index 579ad243b4acd1081546fb5bc09a0d1384fc02a4..934566d5877b915f6037f7183a3d2a60fce0337d 100644 GIT binary patch delta 517 zcmYk2zfZzY5XZmQ7AOeC-$+qG1(n1Q9du}-g9eESVIk2tf>c9NT2e|FjgyHR>EfTm zzu-UMpqmr3i{2|3yr%E&KJWYP-o4L=ubzG1jNWAl1h(eK>lj+uZkcYws*D!C;b0)KUNcWHicZz`ta_<-v)*V{ zpckuEx8*fkb!cbh;%WZm0Lz`dQs-eeq3*jbVbk>O`^E;8BgYpNwj~NI*LlCx!e!s9 zId@`{uf!>->|4GK_1JZ6@cpIriAB~2eoO}Z^aeg30p6ZZ_q@SueDV~ z`Ufdkq7+}2xm`+x%(vJhHA&kL*28tt!7z{#cieZQ$&Ja~(4aYErh77++ zs44kInzbog#YnG(LMDMx`7}Zp`-LHlBZkj5mY=uXosQaEOi3A{kDG{Y?Ikj2~| o1QY_f9$=WK5{3mrN|M$rFf39iXGDyuDS@!|kJ49UvGlLs52{5z7XSbN diff --git a/source/scripts/_00e_mqp01_functions.psc b/source/scripts/_00e_mqp01_functions.psc index 1d4011b2..7dc73e15 100644 --- a/source/scripts/_00e_mqp01_functions.psc +++ b/source/scripts/_00e_mqp01_functions.psc @@ -20,6 +20,13 @@ Function SetUpScene() MQP01_DreamDoorREF.BlockActivation(True) Wait(5.0) Game.EnablePlayerControls() + + if EnderalLib.NewGameCount() > 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 + Game.DisablePlayerControls(false, true, true, false, true, false, false) Wait(1.0) _00E_MQP01_Thoughts01.ShowAsHelpMessage("Empty", 5, 1, 1) diff --git a/source/scripts/enderallib.psc b/source/scripts/enderallib.psc index 76a2424d..5feba6de 100644 --- a/source/scripts/enderallib.psc +++ b/source/scripts/enderallib.psc @@ -4,6 +4,8 @@ float function calculateContentStrength(ObjectReference container) native global Potion function CreatePotion(MagicEffect[] effects, float[] magnitudes, int[] areas, int[] durations, int arraySize) native global +int function NewGameCount() native global + bool function IsDLLLoaded() global return (SKSE.GetPluginVersion("fs_skse_functions") != -1) endfunction