OK, I see that zone_check() does not have either "Little Canadia" or "MoxSign". I added those:
and now I get:
This is the parse tree for that case label. I wonder what that string is?
The switch statement did not match that string and fell out the bottom.
I'll poke around and see how it optimized the case labels...
Code:
case "Little Canadia": return canadia_available();
...
case "MoxSign": return gnomads_available();
It is not recognizing "Le Marais Dègueulasse". That has a non-ASCII character in it. Hmm.> ash import <canadv.ash> can_adv($location[Camp Logging Camp], false)
calling zone_check
checking zone Little Canadia
Returned: false
> ash import <canadv.ash> can_adv($location[The Edge of the Swamp], false)
calling zone_check
checking zone Le Marais Dègueulasse
zone_check returned true
Returned: true
> ash import <canadv.ash> can_adv($location[Thugnderdome], false)
calling zone_check
checking zone MoxSign
zone_check returned true
checking zone Beach
Returned: true
Let's see. Turning on ASH tracing:> ash ($location[The Edge of the Swamp].zone == "Le Marais Dègueulasse")
Returned: true
Code:
<SWITCH (OPTIMIZED)>
<VARREF> zone
<SCOPE>
...
<CASE>
<VALUE string [Le Marais D�gueulasse]>
<RETURN boolean>
<CALL canadia_available>
Code:
Entering function zone_check
switch
Value: zone
[NORMAL] <- Le Marais Dègueulasse
[NORMAL] <- void
Eval: true
Returning: true
[RETURN] <- true
Function zone_check returned: true
I'll poke around and see how it optimized the case labels...