#map flag nofollow off
#map flag direction off
#map flag static on
#map flag vtmap off
#map flag unicodegraphics on

#unpathdir n
#unpathdir s
#unpathdir e
#unpathdir w
#unpathdir u
#unpathdir d

#list dirs create

#action {~\e[36m%1$} {#regex {%1} {%w speaks from the %*} {#line {log} {.wotmud-comms}} {roomname {%1}}} {1}
#action {^[ obvious exits: %1 ]$} {roomexits {%1};dirmove} {1}
#action {^[ obvious exits: ]$} {roomexits {};dirmove} {1}
#action {~%1 HP:%2 MV:%3 > \e[36m%4$} {#regex {%4} {%w speaks from the %*} {#nop} {roomname {%4}}} {1}

#action {It is pitch black...} {dirmove} {1}
#action {Alas, you cannot go that way...} {dirpop} {1}
#action {You can't ride in there.} {dirpop} {1}
#action {Your mount is too exhausted.} {dirpop} {1}
#action {In your dreams, or what?} {dirpop} {1}
#action {Maybe you should get on your feet first?} {dirpop} {1}
#action {No way!  You're fighting for your life!} {dirpop} {1}
#action {You would need to swim there, you can't just walk it.} {dirpop} {1}
#action {You are too exhausted.} {dirpop} {1}
#action {You need a boat to go there.} {dirpop} {1}
#action {You would need to swim there, you can't just walk it.} {dirpop} {1}
#action {You shudder at the concept of crossing water.} {dirpop} {1}
#action {You need to swim to go there.} {dirpop} {1}
#action {You can't ride there on a horse!} {dirpop} {1}
#action {You can't ride on water.} {dirpop} {1}
#action {Nah... You feel too relaxed to do that..} {dirpop} {1}
#action {PANIC!  You couldn't escape!} {dirpop} {1}
#action {You would need to climb there from here.} {dirpop} {1}
#action {The %1 seems to be closed.} {dirpop;#variable door %1} {1}

#alias leader {#var leader %1}
#action {You now follow %1.} {leader %1}
#action {You stop following %1.} {#unvar leader}
#action {%1 leaves %2.} {#if {"%1" == "$leader"} {dirpush %2}} {2}
#action {%1 leaves %2 riding a %3.} {#if {"%1" == "$leader"} {dirpush move %2}} {1}
#action {%1 (Head of group)} {leader %1}
#action {You are now a member of %1's group.} {leader %1} {1}

#alias maprows {#var maprows %1}
#alias mapcols {#var mapcols %1}
#alias mapout {#var mapout %1}
#alias showmap {#map map $maprows $mapcols overwrite $mapout}

#alias dirpush #list dirs insert -1 %1
#alias dirget #list dirs get 1 dir
#alias dirpop {#list dirs size dirsize;#if {$dirsize == 0} {#nop} {#list dirs delete 1}}

#alias dirmove {dirget;#if {"$dir" !== "0"} {dirpop;#if {"$dir" !== "l"} {#if {"$dir" == "f"} {doflee}; #else {domove}}}}
#alias domove {#map get roomvnum lastroom;#map move $dir;#map get roomvnum currentroom;showmap}


#alias doflee {
	#map get roomvnum lastroom;
	#map get {roomexits} {lastexits} {$lastroom};
	#foreach {$lastexits[%+]} {vnum} {
		#map get {roomname} {exitname} {$vnum};
		#if {"$exitname" == "$roomname"} {
			#map get {roomexits} {foundexits} {$vnum};
			#list currentroomexits create;
			#parse {$roomexits} {pexit} {
				#if {"$pexit" != " "} {
					#format {pexit} {%l} {$pexit};
					#list currentroomexits add {$pexit};
				}
			};
			#foreach {$currentroomexits[%+]} {cre} {
				#var roommatch true;
				#if {"$foundexits[$cre]" == ""} {
					#var roommatch false;
				};
				#else {
					#unvar {foundexits[$cre]};
				};
			};
			#if {"$roommatch" == "true" && &foundexits[%+] == 0} {
				#map get roomvnum lastroom;
				#map goto {$vnum};
				#map get roomvnum currentroom;
				showmap;
				#break;
			}
		}
	}
}


#alias roomexits #var roomexits %1
#alias roomname {
	#regex {%1} {%+} {
		#line substitute variables #line strip #var {roomname} {%1}
	};
	#else {
		#var roomname
	}
}


#alias n {#send north;dirpush n}
#alias e {#send east;dirpush e}
#alias s {#send south;dirpush s}
#alias w {#send west;dirpush w}
#alias u {#send up;dirpush u}
#alias d {#send down;dirpush d}
#alias l {#send look %1;dirpush l}
#alias l {#regex {%1} {%+} {#send look %1} {#send look}}

#alias f {#send flee;dirpush f}
#alias flee {#send flee;dirpush f}

#alias dirstack {#var dirs}
#alias dirclear {#list dirs create}


#var maprows 30
#var mapcols 60
#var mapout map.out

