From c02585787deadc6ef738239b72512d787a7abc62 Mon Sep 17 00:00:00 2001 From: Guillaume Melquiond Date: Wed, 29 Aug 2007 05:41:34 +0000 Subject: Fixed race condition between quest_reply and npc_next. --- data/scripts/libtmw.lua | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'data') diff --git a/data/scripts/libtmw.lua b/data/scripts/libtmw.lua index 3189da6a..b2c22c68 100644 --- a/data/scripts/libtmw.lua +++ b/data/scripts/libtmw.lua @@ -131,9 +131,17 @@ end -- Checks that the NPC expects it, and processes the respective coroutine. function npc_next(npc, ch) local w = states[ch] - if not (w and w[1] == npc and w[3] == 1 and process_npc(w)) then - states[ch] = nil + if w then + local w3 = w[3] + if w3 == 4 then + w[3] = 3 + return + end + if w3 == 1 and process_npc(w) then + return + end end + states[ch] = nil end -- Called by the game whenever a player selects a particular reply. -- cgit v1.2.3-70-g09d2