summaryrefslogtreecommitdiff
path: root/world/map/npc/functions/clear_vars.txt
diff options
context:
space:
mode:
Diffstat (limited to 'world/map/npc/functions/clear_vars.txt')
-rw-r--r--world/map/npc/functions/clear_vars.txt81
1 files changed, 81 insertions, 0 deletions
diff --git a/world/map/npc/functions/clear_vars.txt b/world/map/npc/functions/clear_vars.txt
index cc6f097d..48002fa4 100644
--- a/world/map/npc/functions/clear_vars.txt
+++ b/world/map/npc/functions/clear_vars.txt
@@ -1,6 +1,8 @@
// Clears old variables
function|script|ClearVariables|{
+ set EasterQuest, 0;
+
// Halloween 2006
set HWQUEST1, 0;
set HWQUEST2, 0;
@@ -46,6 +48,8 @@ function|script|ClearVariables|{
set XMASQUEST19, 0;
set XMASQUEST20, 0;
+ set QUEST_Halloween07_state, 0;
+
set QUEST_xmas07_state, 0;
set QUEST_xmas07_milk, 0;
set QUEST_xmas07_cookies, 0;
@@ -94,6 +98,19 @@ function|script|ClearVariables|{
set Xmas2010, 0;
set Golbenez_Inn_Cost, 0;
+ set QUEST_Easter11, 0;
+
+ // contains bad karma information
+ // set hw2011, 0;
+
+ set xmas11, 0;
+
+ set QUEST_Easter12, 0;
+
+ set xmas2012, 0;
+
+ set QUEST_clothdyer_angus, 0;
+
// Tulimshar and Mine Variables which aren't used anymore
set Scorp, 0;
set Bugleg, 0;
@@ -106,6 +123,16 @@ function|script|ClearVariables|{
// quest was turned into a Daily Quest, so the variable isn't needed anymore
set CaveSnakeLamp, 0;
+ // move Scythe quest into bitmasked variable QUEST_Hurnscald
+ if (QUEST_Scythe_state)
+ set QUEST_Hurnscald, (QUEST_Hurnscald & ~(NIBBLE_1_MASK)) | (QUEST_Scythe_state << NIBBLE_1_SHIFT);
+ set QUEST_Scythe_state, 0;
+
+ // move Demon Mask quest into bitmasked variable QUEST_Hurnscald
+ if (QUEST_demon_mines)
+ set QUEST_Hurnscald, (QUEST_Hurnscald & ~(NIBBLE_2_MASK)) | (QUEST_demon_mines << NIBBLE_2_SHIFT);
+ set QUEST_demon_mines, 0;
+
//These lines are needed to migrate stuff from variables to flags
if (Open_Underground_Palace_Barrier)
set FLAGS, FLAGS | FLAG_OPENED_UNDERGROUND;
@@ -123,6 +150,10 @@ function|script|ClearVariables|{
set FLAGS, FLAGS | FLAG_SANTAS_HELPER;
set ChristmasQuest2, 0;
+ if (ChestQuest)
+ set FLAGS, FLAGS | FLAG_HURNSMINE_CHEST;
+ set ChestQuest, 0;
+
if (#BankAccount < 0)
goto FixBank;
@@ -143,6 +174,56 @@ L_Fix_Full:
return;
}
+// The variable TMW_Quest was used to save the progress in several subquests linearly.
+// The subquests are moved to different nibbles of other variables
+// to make it possible to do some of the quests in parallel.
+function|script|ClearVarTMW_Quest|{
+
+ if (TMW_Quest == 0) goto L_Done;
+ if (TMW_Quest <= 6) goto L_Bernard_Mikhail;
+ if (TMW_Quest <= 8) goto L_Sarah;
+ if (TMW_Quest <= 10) goto L_Vincent;
+ if (TMW_Quest <= 12) goto L_Sandra;
+ if (TMW_Quest <= 40) goto L_Desert;
+
+L_Bandit:
+// move Bandit subquest into Nibble 0 of QUEST_Hurnscald
+ set @bandit, TMW_Quest - 40;
+ set QUEST_Hurnscald, (QUEST_Hurnscald & ~(NIBBLE_0_MASK) | (@bandit << NIBBLE_0_SHIFT));
+ set TMW_Quest, 40;
+ set @bandit, 0;
+L_Desert:
+// move guard and miner subquest into Byte 2 (Nibble 4 and 5) of QUEST_SouthTulimshar
+ set @miners, TMW_Quest - 12;
+ set QUEST_SouthTulimshar, (QUEST_SouthTulimshar & ~(BYTE_2_MASK) | (@miners << BYTE_2_SHIFT));
+ set TMW_Quest, 12;
+ set @miners, 0;
+L_Sandra:
+// move Sandra subquest into Nibble 3 of QUEST_SouthTulimshar
+ set @sandra, TMW_Quest - 10;
+ set QUEST_SouthTulimshar, (QUEST_SouthTulimshar & ~(NIBBLE_3_MASK) | (@sandra << NIBBLE_3_SHIFT));
+ set TMW_Quest, 10;
+ set @sandra, 0;
+L_Vincent:
+// move Vincent subquest into Nibble 2 of QUEST_SouthTulimshar
+ set @vincent, TMW_Quest - 8;
+ set QUEST_SouthTulimshar, (QUEST_SouthTulimshar & ~(NIBBLE_2_MASK) | (@vincent << NIBBLE_2_SHIFT));
+ set TMW_Quest, 8;
+ set @vincent, 0;
+L_Sarah:
+// move Sarah subquest into Nibble 1 of QUEST_SouthTulimshar
+ set @sarah, TMW_Quest - 6;
+ set QUEST_SouthTulimshar, (QUEST_SouthTulimshar & ~(NIBBLE_1_MASK) | (@sarah << NIBBLE_1_SHIFT));
+ set TMW_Quest, 6;
+ set @sarah, 0;
+L_Bernard_Mikhail:
+// move Bernard and Mikhail subquest into Nibble 0 of QUEST_SouthTulimshar
+ set QUEST_SouthTulimshar, (QUEST_SouthTulimshar & ~(NIBBLE_0_MASK) | (TMW_Quest << NIBBLE_0_SHIFT));
+ set TMW_Quest, 0;
+L_Done:
+ return;
+}
+
-|script|#ClearGlobalVars|-1,{
OnInit: