diff --git a/map.tin b/map.tin index e2957c4..73c7d85 100644 --- a/map.tin +++ b/map.tin @@ -1,6 +1,8 @@ #map flag nofollow off #map flag direction off #map flag static on +#map flag vtmap off +#map flag unicodegraphics on #unpathdir n #unpathdir s @@ -11,10 +13,10 @@ #list dirs create -#action {~\e[0m\e[36m%1$} {#regex {%1} {%w speaks from the %*} {#line {log} {.wotmud-comms}} {room %1}} {1} -#action {^[ obvious exits: %1 ]$} {exits %1;dirmove} {1} -#action {^[ obvious exits: ]$} {exits {};dirmove} {1} -#action {~%1 HP:%2 MV:%3 > \e[36m%4$} {#regex {%4} {%w speaks from the %*} {#nop} {room %4}} {1} +#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} @@ -53,11 +55,54 @@ #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"} {#map move $dir;showmap}}} - - -#alias exits #var exits %1 -#alias room #var room %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} @@ -66,13 +111,17 @@ #alias w {#send west;dirpush w} #alias u {#send up;dirpush u} #alias d {#send down;dirpush d} -#alias l {#send look;dirpush l} +#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 19 +#var maprows 30 #var mapcols 60 #var mapout map.out