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...