summaryrefslogtreecommitdiff
path: root/npc/functions/util.txt
diff options
context:
space:
mode:
Diffstat (limited to 'npc/functions/util.txt')
-rw-r--r--npc/functions/util.txt52
1 files changed, 52 insertions, 0 deletions
diff --git a/npc/functions/util.txt b/npc/functions/util.txt
index 6e390a70b..60274204e 100644
--- a/npc/functions/util.txt
+++ b/npc/functions/util.txt
@@ -650,3 +650,55 @@ function script gettimeparam {
return .@t;
}
+
+// Bug Warning
+// ReportBug( BugID, {Flags{, Return Code}} )
+function script ReportBug {
+ // Fill variable
+ .@msg$=getarg(0);
+ .@gf=getarg(1,RB_DEFAULT);
+
+ if (.@gf & RB_DISPBOTTOM)
+ dispbottom("ERROR: "+.@msg$);
+
+ if (.@gf & RB_DEBUGMES)
+ debugmes("[Warning] "+.@msg$);
+
+ if (.@gf & RB_SPEECH)
+ mesc("ERROR, REPORT ME! "+.@msg$, 1);
+
+ if (.@gf & RB_PLEASEREPORT)
+ dispbottom("Please take a screenshot and report this bug, explaining how it happened.");
+
+ if (.@gf & RB_ISFATAL) {
+ if (.@gf & RB_SPEECH) {
+ mesc l("This error is fatal."), 1;
+ close;
+ }
+ if (.@gf & RB_DISPBOTTOM)
+ dispbottom("This error is fatal, we stop execution.");
+
+ if (.@gf & RB_DEBUGMES)
+ debugmes("[Error] The error is fatal.");
+ end;
+ }
+
+ return getarg(2, 0);
+
+}
+
+// Upon entering a town
+// EnterTown( LocName )
+function script EnterTown {
+ // Fill variable
+ .@v$=getarg(0);
+
+ // Validade variable, see npc/000-1/exit.txt first
+ setarray .@locs$, "Candor", "Tulim", "Halin", "Hurns", "LoF", "Lilit", "Nival", "Frostia";
+ if (array_find(.@locs$, .@v$) < 0)
+ return ReportBug("Invalid location passed to EnterTown: "+.@v$);
+
+ LOCATION$=.@v$;
+ return;
+}
+