@program movement-manager.muf 1 100 d i $include $lib/rp $include $lib/alynna lvar param : vars ( s -- s ) me @ "@/lastloc" getprop todbref name "%oloc" subst me @ location name "%loc" subst me @ swap pronoun_sub trig swap param @ tolower 0 parsempi ; : main param ! ( make sure defaults exist ) #0 "_mm/arrive" getprop not if #0 "_mm/arrive" "%n has arrived." setprop then #0 "_mm/depart" getprop not if #0 "_mm/depart" "%n has left." setprop then ( process arrivals ) param @ tolower "arrive" smatch if me @ "D" flag? not if ( Tell where I am, that I'm here ) loc @ me @ loc @ "_mm/arrive" envpropstr swap pop vars ansi_notify_except then then ( if departing record where we were ) param @ tolower "depart" smatch if loc @ me @ loc @ "_mm/depart" envpropstr swap pop vars ansi_notify_except me @ "@/lastloc" loc @ setprop then ( perform any undarking operations ) param @ tolower "arrive" smatch if me @ "@/pending-undark" getprop if me @ "!D" set me @ "@/pending-undark" 0 setprop then then ; . c q