summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFate <fate-tmw@googlemail.com>2009-06-06 07:46:33 +0000
committerFate <fate-tmw@googlemail.com>2009-06-06 07:46:33 +0000
commitd8767bf2587a14a46c86f8ced7a9653ef3c52c0d (patch)
treeb5aae7288ce3972b6d15d2c9e29ab4c4a17b4f80
parent96a3ac1608a6096114bf4c5a5417f8865703cfbc (diff)
downloadserverdata-d8767bf2587a14a46c86f8ced7a9653ef3c52c0d.tar.gz
serverdata-d8767bf2587a14a46c86f8ced7a9653ef3c52c0d.tar.bz2
serverdata-d8767bf2587a14a46c86f8ced7a9653ef3c52c0d.tar.xz
serverdata-d8767bf2587a14a46c86f8ced7a9653ef3c52c0d.zip
Fixed spirit to write to QUEST_MAGIC2 variable, doc updates
-rw-r--r--npc/005-1_Snake_desert/spirit.txt2
-rw-r--r--npc/009-2_Hurnscald/wyara.txt6
-rw-r--r--npc/doc/magic10
3 files changed, 17 insertions, 1 deletions
diff --git a/npc/005-1_Snake_desert/spirit.txt b/npc/005-1_Snake_desert/spirit.txt
index ad835121..a7f8dd04 100644
--- a/npc/005-1_Snake_desert/spirit.txt
+++ b/npc/005-1_Snake_desert/spirit.txt
@@ -287,7 +287,7 @@ L_close:
S_update_var:
set QUEST_MAGIC2,
- (QUEST_MAGIC & ~(@Q_MASK)
+ (QUEST_MAGIC2 & ~(@Q_MASK)
| (@Q_status << @Q_SHIFT));
return;
}
diff --git a/npc/009-2_Hurnscald/wyara.txt b/npc/009-2_Hurnscald/wyara.txt
index a799cdf0..0e62fccb 100644
--- a/npc/009-2_Hurnscald/wyara.txt
+++ b/npc/009-2_Hurnscald/wyara.txt
@@ -11,6 +11,12 @@
set @STATUS_PURIFY_ONCE, 2;
set @STATUS_PURIFY_TWICE, 3;
set @STATUS_PURIFY_OVER, 4;
+ set @STATUS_MAX, @STATUS_PURIFY_OVER;
+
+ // This operation
+ if (@Q_status > @Q_STATUS_MAX)
+ set @Q_status, @STATUS_INITIAL;
+ callsub S_update_var;
set @has_magic, getskilllv(SKILL_MAGIC);
diff --git a/npc/doc/magic b/npc/doc/magic
index 931e637e..3e5863e0 100644
--- a/npc/doc/magic
+++ b/npc/doc/magic
@@ -11,3 +11,13 @@ Nibble use:
N1: Elanore
N2: Wyara
N3: Elanore subquests (Cure Kadiya)
+ N4-N7: may be messy at this point
+
+The various magic scripts pack their status into these variables.
+Locally, they use `@Q_status' to maintain the state, and use a function
+`S_update_var' to update it. This is all re-using the same code, setting
+the `@Q_MASK' and `@Q_SHIFT' variables appropriately.
+
+ There are a few exceptions (such as the Kadiya quest) wherein
+a separate helper function sets a dedicated local variable, or some hackery
+in Auldsbel wherein we read stati directly, merely to enable certain options. \ No newline at end of file