summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--world/map/npc/002-3/mine_triggerone.txt44
-rw-r--r--world/map/npc/002-3/mine_triggerthree.txt44
-rw-r--r--world/map/npc/002-3/mine_triggertwo.txt44
-rw-r--r--world/map/npc/002-3/naem.txt90
-rw-r--r--world/map/npc/002-3/nathan.txt83
-rw-r--r--world/map/npc/002-3/underground_palace_barrier.txt14
6 files changed, 207 insertions, 112 deletions
diff --git a/world/map/npc/002-3/mine_triggerone.txt b/world/map/npc/002-3/mine_triggerone.txt
index b757c453..c4e7569f 100644
--- a/world/map/npc/002-3/mine_triggerone.txt
+++ b/world/map/npc/002-3/mine_triggerone.txt
@@ -1,13 +1,19 @@
//Sandstorm mine trigger 1 Trigger 002-3 35,43 (127)
+// Variables used: nibble 4 and 5 of QUEST_SouthTulimshar
002-3.gat,30,47,0|script|Button|127,0,0,{
- if (TMW_Quest == 36) goto L_Trigger_Wrong_1;
- if (TMW_Quest == 35) goto L_Trigger_Wrong_1;
- if (TMW_Quest == 34) goto L_Trigger_1;
+ // This NPC previously used the variable TMW_Quest
+ callfunc "ClearVarTMW_Quest";
+
+ set @state, ((QUEST_SouthTulimshar & BYTE_2_MASK) >> BYTE_2_SHIFT);
+
+ if (@state == 24) goto L_Trigger_Wrong_1;
+ if (@state == 23) goto L_Trigger_Wrong_1;
+ if (@state == 22) goto L_Trigger_1;
mes "There is a large button on the ground. A key hole appears on the button.";
- close;
+ goto L_Close;
L_Trigger_Wrong_1:
mes "There is a large button on the ground. A key hole appears on the button.";
@@ -15,17 +21,18 @@ L_Trigger_Wrong_1:
"Put the key in, turn right.", L_Right_Wrong_1,
"Put the key in, turn left.", L_Left_Wrong_1,
"Do nothing.", L_Nothing_1;
- close;
L_Right_Wrong_1:
- set TMW_Quest, 34;
+ set @state, 22;
+ callsub S_Update_Var;
mes "You turn the key right.";
- close;
+ goto L_Close;
L_Left_Wrong_1:
- set TMW_Quest, 34;
+ set @state, 22;
+ callsub S_Update_Var;
mes "You turn the key left.";
- close;
+ goto L_Close;
L_Trigger_1:
mes "There is a large button on the ground. A key hole appears on the button.";
@@ -33,19 +40,28 @@ L_Trigger_1:
"Put the key in, turn right.", L_Right_1,
"Put the key in, turn left.", L_Left_1,
"Do nothing.", L_Nothing_1;
- close;
L_Right_1:
- set TMW_Quest, 35;
+ set @state, 23;
+ callsub S_Update_Var;
mes "You turn the key right. A clicking sound echoes throughout the mine.";
- close;
+ goto L_Close;
L_Left_1:
- set TMW_Quest, 34;
+ set @state, 22;
+ callsub S_Update_Var;
mes "You turn the key left.";
- close;
+ goto L_Close;
L_Nothing_1:
mes "You leave the button alone.";
+ goto L_Close;
+
+L_Close:
+ set @state, 0;
close;
+
+S_Update_Var:
+ set QUEST_SouthTulimshar, (QUEST_SouthTulimshar & ~(BYTE_2_MASK) | (@state << BYTE_2_SHIFT));
+ return;
}
diff --git a/world/map/npc/002-3/mine_triggerthree.txt b/world/map/npc/002-3/mine_triggerthree.txt
index c1b7b3c6..bd234617 100644
--- a/world/map/npc/002-3/mine_triggerthree.txt
+++ b/world/map/npc/002-3/mine_triggerthree.txt
@@ -1,13 +1,19 @@
//Sandstorm mine trigger 3 Trigger 002-3 98,42 (127)
+// Variables used: nibble 4 and 5 of QUEST_SouthTulimshar
002-3.gat,91,99,0|script|Button|127,0,0,{
- if (TMW_Quest == 36) goto L_Trigger_Wrong_3;
- if (TMW_Quest == 35) goto L_Trigger_3;
- if (TMW_Quest == 34) goto L_Trigger_Wrong_3;
+ // This NPC previously used the variable TMW_Quest
+ callfunc "ClearVarTMW_Quest";
+
+ set @state, ((QUEST_SouthTulimshar & BYTE_2_MASK) >> BYTE_2_SHIFT);
+
+ if (@state == 24) goto L_Trigger_Wrong_3;
+ if (@state == 23) goto L_Trigger_3;
+ if (@state == 22) goto L_Trigger_Wrong_3;
mes "There is a large button on the ground. A key hole appears on the button.";
- close;
+ goto L_Close;
L_Trigger_Wrong_3:
mes "There is a large button on the ground. A key hole appears on the button.";
@@ -15,17 +21,18 @@ L_Trigger_Wrong_3:
"Put the key in, turn right.", L_Right_Wrong_3,
"Put the key in, turn left.", L_Left_Wrong_3,
"Do nothing.", L_Nothing_3;
- close;
L_Right_Wrong_3:
- set TMW_Quest, 34;
+ set @state, 22;
+ callsub S_Update_Var;
mes "You turn the key right.";
- close;
+ goto L_Close;
L_Left_Wrong_3:
- set TMW_Quest, 34;
+ set @state, 22;
+ callsub S_Update_Var;
mes "You turn the key left.";
- close;
+ goto L_Close;
L_Trigger_3:
mes "There is a large button on the ground. A key hole appears on the button.";
@@ -33,19 +40,28 @@ L_Trigger_3:
"Put the key in, turn right.", L_Right_3,
"Put the key in, turn left.", L_Left_3,
"Do nothing.", L_Nothing_3;
- close;
L_Right_3:
- set TMW_Quest, 34;
+ set @state, 22;
+ callsub S_Update_Var;
mes "You turn the key right.";
- close;
+ goto L_Close;
L_Left_3:
- set TMW_Quest, 36;
+ set @state, 24;
+ callsub S_Update_Var;
mes "You turn the key left. A clicking sound echoes throughout the mine.";
- close;
+ goto L_Close;
L_Nothing_3:
mes "You leave the button alone.";
+ goto L_Close;
+
+L_Close:
+ set @state, 0;
close;
+
+S_Update_Var:
+ set QUEST_SouthTulimshar, (QUEST_SouthTulimshar & ~(BYTE_2_MASK) | (@state << BYTE_2_SHIFT));
+ return;
}
diff --git a/world/map/npc/002-3/mine_triggertwo.txt b/world/map/npc/002-3/mine_triggertwo.txt
index 478351b1..c4898d4c 100644
--- a/world/map/npc/002-3/mine_triggertwo.txt
+++ b/world/map/npc/002-3/mine_triggertwo.txt
@@ -1,13 +1,19 @@
//Sandstorm mine trigger
+// Variables used: nibble 4 and 5 of QUEST_SouthTulimshar
002-3.gat,100,37,0|script|Button|127,0,0,{
- if (TMW_Quest == 36) goto L_Trigger_2;
- if (TMW_Quest == 35) goto L_Trigger_Wrong_2;
- if (TMW_Quest == 34) goto L_Trigger_Wrong_2;
+ // This NPC previously used the variable TMW_Quest
+ callfunc "ClearVarTMW_Quest";
+
+ set @state, ((QUEST_SouthTulimshar & BYTE_2_MASK) >> BYTE_2_SHIFT);
+
+ if (@state == 24) goto L_Trigger_2;
+ if (@state == 23) goto L_Trigger_Wrong_2;
+ if (@state == 22) goto L_Trigger_Wrong_2;
mes "There is a large button on the ground. A key hole appears on the button.";
- close;
+ goto L_Close;
L_Trigger_Wrong_2:
mes "There is a large button on the ground. A key hole appears on the button.";
@@ -15,17 +21,18 @@ L_Trigger_Wrong_2:
"Put the key in, turn right.", L_Right_Wrong_2,
"Put the key in, turn left.", L_Left_Wrong_2,
"Do nothing.", L_Nothing_2;
- close;
L_Right_Wrong_2:
- set TMW_Quest, 34;
+ set @state, 22;
+ callsub S_Update_Var;
mes "You turn the key right.";
- close;
+ goto L_Close;
L_Left_Wrong_2:
- set TMW_Quest, 34;
+ set @state, 22;
+ callsub S_Update_Var;
mes "You turn the key left.";
- close;
+ goto L_Close;
L_Trigger_2:
mes "There is a large button on the ground. A key hole appears on the button.";
@@ -33,20 +40,29 @@ L_Trigger_2:
"Put the key in, turn right.", L_Right_2,
"Put the key in, turn left.", L_Left_2,
"Do nothing.", L_Nothing_2;
- close;
L_Right_2:
- set TMW_Quest, 34;
+ set @state, 22;
+ callsub S_Update_Var;
mes "You turn the key right.";
- close;
+ goto L_Close;
L_Left_2:
- set TMW_Quest, 37;
+ set @state, 25;
+ callsub S_Update_Var;
set FLAGS, FLAGS | FLAG_OPENED_UNDERGROUND;
mes "You turn the key left. A clicking sound echoes throughout the mine, followed by a loud thump.";
- close;
+ goto L_Close;
L_Nothing_2:
mes "You leave the button alone.";
+ goto L_Close;
+
+L_Close:
+ set @state, 0;
close;
+
+S_Update_Var:
+ set QUEST_SouthTulimshar, (QUEST_SouthTulimshar & ~(BYTE_2_MASK) | (@state << BYTE_2_SHIFT));
+ return;
}
diff --git a/world/map/npc/002-3/naem.txt b/world/map/npc/002-3/naem.txt
index d5ddbd2b..a38953ee 100644
--- a/world/map/npc/002-3/naem.txt
+++ b/world/map/npc/002-3/naem.txt
@@ -1,39 +1,46 @@
-//
+// Variables used: nibble 4 and 5 of QUEST_SouthTulimshar
002-3.gat,85,97,6|script|Naem|109,{
+ // This NPC previously used the variable TMW_Quest
+ callfunc "ClearVarTMW_Quest";
+
+ set @state, ((QUEST_SouthTulimshar & BYTE_2_MASK) >> BYTE_2_SHIFT);
+
if (FLAGS & FLAG_GOT_NAEM_GLOVES) goto L_Naem_Complete;
if (FLAGS & FLAG_OPENED_UNDERGROUND) goto L_Naem_Gloves;
- if (TMW_Quest == 34) goto L_Naem_Code;
- if (TMW_Quest == 33) goto L_Naem_Lt;
- if (TMW_Quest == 32) goto L_Naem_Memory;
- if (TMW_Quest > 29) && (TMW_Quest < 31)goto L_Naem_Great;
- if (TMW_Quest == 29) goto L_Naem_Waits_3;
- if (TMW_Quest == 28) goto L_Naem_Help_3;
- if (TMW_Quest == 27) goto L_Naem_Waits_2;
- if (TMW_Quest == 26) goto L_Naem_Help_2;
- if (TMW_Quest == 25) goto L_Naem_Waits_1;
- if (TMW_Quest == 24) goto L_Naem_Help_1;
- if (TMW_Quest == 22) goto L_Naem_Cool;
- if (TMW_Quest == 21) goto L_Naem_Okay;
+ if (@state == 22) goto L_Naem_Code;
+ if (@state == 21) goto L_Naem_Lt;
+ if (@state == 20) goto L_Naem_Memory;
+ if (@state > 17) && (@state < 19)goto L_Naem_Great;
+ if (@state == 17) goto L_Naem_Waits_3;
+ if (@state == 16) goto L_Naem_Help_3;
+ if (@state == 15) goto L_Naem_Waits_2;
+ if (@state == 14) goto L_Naem_Help_2;
+ if (@state == 13) goto L_Naem_Waits_1;
+ if (@state == 12) goto L_Naem_Help_1;
+ if (@state == 10) goto L_Naem_Cool;
+ if (@state == 9) goto L_Naem_Okay;
mes "[Naem]";
mes "\"I'm just mining away here. Lots of work to do.\"";
- close;
+ goto L_Close;
L_Naem_Okay:
- set TMW_Quest, 22;
+ set @state, 10;
+ callsub S_Update_Var;
mes "[Naem]";
mes "\"Oh, hello there. Nickos wanted you to check on me? Yeah, you can tell him I'm okay.\"";
- close;
+ goto L_Close;
L_Naem_Cool:
mes "[Naem]";
mes "\"Yeah, I'm cool. Just mining away here.\"";
- close;
+ goto L_Close;
L_Naem_Help_1:
- set TMW_Quest, 25;
+ set @state, 13;
+ callsub S_Update_Var;
mes "[Naem]";
mes "\"Oh, you are here to help move my bags? Cool, I've got a few ready to go. Go ahead and take this one!\"";
next;
@@ -41,43 +48,45 @@ L_Naem_Help_1:
next;
mes "[Naem]";
mes "\"After you deliver that one to Nathan, come on back, I've got a couple more ready to go.\"";
- close;
+ goto L_Close;
L_Naem_Waits_1:
mes "[Naem]";
mes "\"After you deliver that bag of ore to Nathan, come on back, I've got a couple more ready to go.\"";
- close;
+ goto L_Close;
L_Naem_Help_2:
- set TMW_Quest, 27;
+ set @state, 15;
+ callsub S_Update_Var;
mes "Naem gives you a bag of ore.";
next;
mes "[Naem]";
mes "\"Just one more after this one and we'll be all caught up!\"";
- close;
+ goto L_Close;
L_Naem_Waits_2:
mes "[Naem]";
mes "\"Just one more bag of ore after the one you got and we'll be all caught up!\"";
- close;
+ goto L_Close;
L_Naem_Help_3:
- set TMW_Quest, 29;
+ set @state, 17;
+ callsub S_Update_Var;
mes "[Naem]";
mes "Hands a bag of ore to you.";
next;
mes "\"Last one!\"";
- close;
+ goto L_Close;
L_Naem_Waits_3:
mes "[Naem]";
mes "\"You got my last sack already. Just give it to Nathan and we'll have caught up.\"";
- close;
+ goto L_Close;
L_Naem_Great:
mes "[Naem]";
mes "\"Hi ho! It's off to work I go! I work every day for meager pay, a miner's life for me...\"";
- close;
+ goto L_Close;
L_Naem_Memory:
mes "You see Naem grimacing in pain as you approach.";
@@ -87,45 +96,54 @@ L_Naem_Memory:
menu
"Don't you have a key so I can go to the underground palace?", L_Naem_Palace_No,
"You should be more careful.", L_Naem_Duh;
- close;
L_Naem_Duh:
mes "[Naem]";
mes "\"I guess I should...\"";
- close;
+ goto L_Close;
L_Naem_Palace_No:
- set TMW_Quest, 33;
+ set @state, 21;
+ callsub S_Update_Var;
mes "[Naem]";
mes "\"Oh no! I lost the key! Don't worry though, talk to Lieutenant Dausen about getting the spare key.\"";
- close;
+ goto L_Close;
L_Naem_Lt:
mes "[Naem]";
mes "\"I hurt my head pretty bad. I also lost my key. If you want to get into the underground palace, you'll have to talk to Lieutenant Dausen about getting the spare.\"";
- close;
+ goto L_Close;
L_Naem_Code:
mes "[Naem]";
mes "\"Oh, you got the key. That is good! But my head still hurts... All I remember about the code is you have to put the key into the key hole buttons around the mine in a certain order and turn them in a certain order and it will unlock the underground palace. Sorry, that's all I have for you. Good luck!\"";
- close;
+ goto L_Close;
L_Naem_Gloves:
getinventorylist;
- if (@inventorylist_count == 100) goto L_Nathan_TooMany;
+ if (@inventorylist_count == 100)
+ goto L_Nathan_TooMany;
set FLAGS, FLAGS | FLAG_GOT_NAEM_GLOVES;
getitem "MinerGloves", 1;
mes "[Naem]";
mes "\"Hey, good job on getting that together! Take these gloves, they might prove useful in the underground palace.\"";
- close;
+ goto L_Close;
L_Naem_TooMany:
mes "[Naem]";
mes "\"You have too many items for me to give you a reward.\"";
- close;
+ goto L_Close;
L_Naem_Complete:
mes "[Naem]";
mes "\"Yo-ho-ho, a miner's life for me!\"";
+ goto L_Close;
+
+L_Close:
+ set @state, 0;
close;
+
+S_Update_Var:
+ set QUEST_SouthTulimshar, (QUEST_SouthTulimshar & ~(BYTE_2_MASK) | (@state << BYTE_2_SHIFT));
+ return;
}
diff --git a/world/map/npc/002-3/nathan.txt b/world/map/npc/002-3/nathan.txt
index 7a6b5fd5..b668f7b7 100644
--- a/world/map/npc/002-3/nathan.txt
+++ b/world/map/npc/002-3/nathan.txt
@@ -1,76 +1,87 @@
-//
+// Variables used: nibble 4 and 5 of QUEST_SouthTulimshar
002-3.gat,35,35,6|script|Nathan|109,{
- if (TMW_Quest >= 32) goto L_Nathan_Complete;
- if (TMW_Quest == 31) goto L_Nathan_UGQ_Naem;
- if (TMW_Quest == 30) goto L_Nathan_Help_Cool;
- if (TMW_Quest == 29) goto L_Nathan_Help_Done;
- if (TMW_Quest == 28) goto L_Nathan_Waits_3;
- if (TMW_Quest == 27) goto L_Nathan_Help_3;
- if (TMW_Quest == 26) goto L_Nathan_Waits_2;
- if (TMW_Quest == 25) goto L_Nathan_Help_2;
- if (TMW_Quest == 24) goto L_Nathan_Waits_1;
- if (TMW_Quest == 23) goto L_Nathan_Help_1;
- if (TMW_Quest == 21) goto L_Nathan_Cool;
- if (TMW_Quest == 20) goto L_Nathan_Okay;
+ // This NPC previously used the variable TMW_Quest
+ callfunc "ClearVarTMW_Quest";
+
+ set @state, ((QUEST_SouthTulimshar & BYTE_2_MASK) >> BYTE_2_SHIFT);
+
+ if (@state >= 20) goto L_Nathan_Complete;
+ if (@state == 19) goto L_Nathan_UGQ_Naem;
+ if (@state == 18) goto L_Nathan_Help_Cool;
+ if (@state == 17) goto L_Nathan_Help_Done;
+ if (@state == 16) goto L_Nathan_Waits_3;
+ if (@state == 15) goto L_Nathan_Help_3;
+ if (@state == 14) goto L_Nathan_Waits_2;
+ if (@state == 13) goto L_Nathan_Help_2;
+ if (@state == 12) goto L_Nathan_Waits_1;
+ if (@state == 11) goto L_Nathan_Help_1;
+ if (@state == 9) goto L_Nathan_Cool;
+ if (@state == 8) goto L_Nathan_Okay;
mes "[Nathan the Miner]";
mes "\"It's very dangerous in here. We had a big earthquake here just recently, too... so be careful!\"";
- close;
+ goto L_Close;
L_Nathan_Okay:
- set TMW_Quest, 21;
+ set @state, 9;
+ callsub S_Update_Var;
mes "[Nathan]";
mes "\"Hey there! Just mining away down here. You say Nickos was worried about us? Nothing down here we can't handle, but you should try to be safe down here yourself. The monsters can be rather aggressive. Come to think of it, you might want to check on Naem to make sure he's okay. You can find him in the southeast parts of the mine.\"";
- close;
+ goto L_Close;
L_Nathan_Cool:
mes "[Nathan]";
mes "\"Hey, be careful down here, the monsters can be rather aggressive! You might want to check on Naem too. He's at the southeast parts of the mine.\"";
- close;
+ goto L_Close;
L_Nathan_Help_1:
- set TMW_Quest, 24;
+ set @state, 12;
+ callsub S_Update_Var;
mes "[Nathan]";
mes "\"Oh, hey again! Nickos told you we need some help down here too? Yeah, Naem could use a spare pair of hands moving his bags of ore to me. He's got a lot of work built up. Just go talk to him and he'll give you the bags. You might have to make a few trips, but I'll make it worth your troubles.\"";
- close;
+ goto L_Close;
L_Nathan_Waits_1:
mes "[Nathan]";
mes "\"Naem could use some help moving his bags of ore to me. He's got a lot of work built up. Just go talk to him and he'll give you the bags. You might have to make a few trips, but I'll make it worth your troubles.\"";
- close;
+ goto L_Close;
L_Nathan_Help_2:
- set TMW_Quest, 26;
+ set @state, 14;
+ callsub S_Update_Var;
mes "You give the bag of ore to Nathan";
next;
mes "[Nathan]";
mes "\"Ah, thank you. Just a couple more and we'll have caught up!\"";
- close;
+ goto L_Close;
L_Nathan_Waits_2:
mes "[Nathan]";
mes "\"Just a couple more and we'll be all caught up!\"";
- close;
+ goto L_Close;
L_Nathan_Help_3:
- set TMW_Quest, 28;
+ set @state, 16;
+ callsub S_Update_Var;
mes "You hand the bag of ore to Nathan.";
next;
mes "[Nathan]";
mes "\"Just one more bag and you'll be done!\"";
- close;
+ goto L_Close;
L_Nathan_Waits_3:
mes "[Nathan]";
mes "\"Just get one more bag of ore from Naem and bring it to me and you'll be done.\"";
- close;
+ goto L_Close;
L_Nathan_Help_Done:
getinventorylist;
- if (@inventorylist_count == 100) goto L_Nathan_TooMany;
- set TMW_Quest, 30;
+ if (@inventorylist_count == 100)
+ goto L_Nathan_TooMany;
+ set @state, 18;
+ callsub S_Update_Var;
getitem "MinersHat", 1;
mes "[Nathan]";
mes "You hand the bag of ore to Nathan.";
@@ -78,25 +89,33 @@ L_Nathan_Help_Done:
mes "\"Ah, that should be it! Thank you for your help. Here, take this Miner's Hat. You're a real miner now!\"";
next;
mes "\"Oh, and I noticed a problem with these angry scorpions down here, they seem to make things much more difficult. Maybe you could tell Nickos about it on your way out?\"";
- close;
+ goto L_Close;
L_Nathan_TooMany:
mes "[Nathan]";
mes "\"You have too many items for me to give you a reward.\"";
- close;
+ goto L_Close;
L_Nathan_Help_Cool:
mes "[Nathan]";
mes "\"Be safe down here, it's dangerous for the unexperienced. Mining is a dangerous job, but somebody's got to do it!\"";
- close;
+ goto L_Close;
L_Nathan_UGQ_Naem:
mes "[Nathan]";
mes "\"Thanks for thinning down the angry scorpion population. It sure has made mining a little easier down here! Oh, you say Nickos has given you permission to check out the underground palace? Talk to Naem, he's got the key and the code.\"";
- close;
+ goto L_Close;
L_Nathan_Complete:
mes "[Nathan]";
mes "\"Mining is a dangerous job, but somebody's got to do it!\"";
+ goto L_Close;
+
+L_Close:
+ set @state, 0;
close;
+
+S_Update_Var:
+ set QUEST_SouthTulimshar, (QUEST_SouthTulimshar & ~(BYTE_2_MASK) | (@state << BYTE_2_SHIFT));
+ return;
}
diff --git a/world/map/npc/002-3/underground_palace_barrier.txt b/world/map/npc/002-3/underground_palace_barrier.txt
index 60befa87..a56fe801 100644
--- a/world/map/npc/002-3/underground_palace_barrier.txt
+++ b/world/map/npc/002-3/underground_palace_barrier.txt
@@ -2,11 +2,21 @@
002-3.gat,68,98,0|script|#UGP_Barrier|45,0,0,{
- if (TMW_Quest >= 37) goto L_Underground_Palace_Barrier_Open;
+ // This NPC previously used the variable TMW_Quest
+ callfunc "ClearVarTMW_Quest";
+
+ set @state, ((QUEST_SouthTulimshar & BYTE_2_MASK) >> BYTE_2_SHIFT);
+
+ if (@state >= 25) goto L_Underground_Palace_Barrier_Open;
+
message strcharinfo(0), "Some force seems to block your entrance.";
- end;
+ goto L_End;
L_Underground_Palace_Barrier_Open:
warp "002-4.gat",34,98;
+ goto L_End;
+
+L_End:
+ set @state, 0;
end;
}