// Variables used:
// - nibble 4 and 5 of QUEST_SouthTulimshar
// - in FLAGS, bits FLAG_GOT_NAEM_GLOVES and FLAG_OPENED_UNDERGROUND
002-4.gat,91,96,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 (@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.\"";
goto L_Close;
L_Naem_Okay:
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.\"";
goto L_Close;
L_Naem_Cool:
mes "[Naem]";
mes "\"Yeah, I'm cool. Just mining away here.\"";
goto L_Close;
L_Naem_Help_1:
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;
mes "Naem hands you a bag of ore.";
next;
mes "[Naem]";
mes "\"After you deliver that one to Nathan, come on back, I've got a couple more ready to go.\"";
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.\"";
goto L_Close;
L_Naem_Help_2:
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!\"";
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!\"";
goto L_Close;
L_Naem_Help_3:
set @state, 17;
callsub S_Update_Var;
mes "[Naem]";
mes "Hands a bag of ore to you.";
next;
mes "\"Last one!\"";
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.\"";
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...\"";
goto L_Close;
L_Naem_Memory:
mes "You see Naem grimacing in pain as you approach.";
next;
mes "[Naem]";
mes "\"Oh, my head! Some rocks fell on me and bonked me pretty good. I'm still a little sore.\"";
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;
L_Naem_Duh:
mes "[Naem]";
mes "\"I guess I should...\"";
goto L_Close;
L_Naem_Palace_No:
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.\"";
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.\"";
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!\"";
goto L_Close;
L_Naem_Gloves:
getinventorylist;
if (@inventorylist_count == 100)
goto L_Naem_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.\"";
goto L_Close;
L_Naem_Complete:
mes "[Naem]";
mes "\"Yo-ho-ho, a miner's life for me!\"";
goto L_Close;
L_Naem_TooMany:
mes "[Naem]";
mes "\"You have too many items for me to give you a reward.\"";
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;
}