@q
@program vsys-@vlookout
1 99999 d
i
 
( vsys-@vlookout    v1.0    Jessy @ FurryMUCK    4/00
  
  Part of the vsys vehicle system, this program handles display of
  a vehicle's location to interior rooms.
  
  INSTALLATION:
  
  Port the program, set it Wizard and Link_OK. Create a global action
  with a name such as '@vlookout', and link it to the program. Type
  '<action name> #install'.
  
  Vsys-@vlookout requires lib-vsys. See the header comment of lib-vsys
  for more complete documentation of the vehicle system.
  
  Vsys-@vlookout may be freely ported. Please comment any changes.
)
  
$include $lib/vsys
 
$define Tell me @ swap notify $enddef
 
lvar ourString
lvar ourVehicle
 
: DoInit  (  --  )              (* ensure program is W and registered *)
                                           (* create {vlookout} macro *)
  LibInit
  prog "W" flag? if
    #0 "_reg/vsys/vlookout-prog" prog setprop
    #0 "_reg/vsys/vlookout-com"  trig setprop
    #0 "_msgmacs/vlookout" "{muf:#$prog,}"
    prog intostr "$prog" subst setprop
  else
    prog name " must be set Wizard." strcat me @ swap notify
    pid kill
  then
;
  
: DoInstall  (  --  )                  (* doesn't really do anything *)
  
  DoInit
  ">>  $prog installed." prog name "$prog" subst Tell
;
 
: DoHelp
  
  " " Tell
  prog name " (#" strcat prog intostr strcat ")" strcat Tell " " Tell
  
  "This program displays vehicle locations to interior rooms." Tell
  " " Tell
  
  "  $com ....................... Show vehicle location." 
  command @ "$com" subst Tell " " Tell
  
  "The {vlookout} macro also calls this program. Include {vlookout} "
  "in an object's desc to casuse looking at it to show the vehicle's "
  "location. @vlookout and {vlookout} produce no result if you are "
  "not currently in a vehicle." strcat strcat strcat Tell " " Tell
  
  "For complete information on the vehicle system, type '@view $lib/vsys' "
  "(long)." strcat Tell
;
 
: DoVlookout  (  --  )                       (* show current location *)
  
  me @ GetVehicle dup if
    ourVehicle !
    me @ ShowLocation   
  then
;
  
: main
  
  "me" match me !
  DoInit
  
  dup if
    ourString !
  then
  
  ourString @ if
    "#help"    ourString @ stringpfx if DoHelp    exit then
    "#install" ourString @ stringpfx if DoInstall exit then
    DoVlookout
  else
    DoVlookout
  then
;
.
c
q