From 1634ecb4f96c531de6fb79ddd88d506e4b4e6e5c Mon Sep 17 00:00:00 2001 From: Jesusaves Date: Thu, 2 May 2019 10:33:30 -0300 Subject: raise Exception() - I mean, return Exception. Along a proof-of-use. --- npc/functions/util.txt | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) (limited to 'npc/functions/util.txt') 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; +} + -- cgit v1.2.3-70-g09d2