home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 January / usenetsourcesnewsgroupsinfomagicjanuary1994.iso / sources / games / volume14 / dunnet / part02 / dun-batch.el < prev    next >
Lisp/Scheme  |  1992-08-31  |  2KB  |  66 lines

  1. ;;;;;;;;;;;;;;;;;;;
  2. ;;;;;;;;;;;;;;;;;;;
  3.  
  4.  
  5. ; These are functions, and function re-definitions so that dungeon can
  6. ; be run in batch mode.
  7.  
  8. (defun mprinc (arg)
  9.  
  10.    (if (stringp arg)
  11.        (send-string-to-terminal arg)
  12.      (send-string-to-terminal (prin1-to-string arg))))
  13. (defun mprincl (arg)
  14.  
  15.    (if (stringp arg)
  16.        (progn
  17.            (send-string-to-terminal arg)
  18.            (send-string-to-terminal "\n"))
  19.      (send-string-to-terminal (prin1-to-string arg))
  20.      (send-string-to-terminal "\n")))
  21. (defun parse (ignore verblist line)
  22.   (setq line-list (listify-string (concat line " ")))
  23.   (doverb ignore verblist (car line-list) (cdr line-list)))
  24.  
  25. (defun parse2 (ignore verblist line)
  26.   (setq line-list (listify-string2 (concat line " ")))
  27.   (doverb ignore verblist (car line-list) (cdr line-list)))
  28.  
  29. (defun read-line ()
  30.   (read-string ""))
  31.  
  32. (setq batch-mode t)
  33.  
  34. (defun dungeon-batch-loop ()
  35.   (setq dead nil)
  36.   (setq room 0)
  37.   (while (not dead)
  38.     (if (eq dungeon-mode 'dungeon)
  39.     (progn
  40.       (if (not (= room current-room))
  41.           (progn
  42.         (describe-room current-room)
  43.         (setq room current-room)))
  44.       (mprinc ">")
  45.       (setq line (downcase (read-string "")))
  46.       (if (eq (parse ignore verblist line) -1)
  47.           (mprinc "I don't understand that.\n"))))))
  48.  
  49.   (defun unix-interface ()
  50.     (login)
  51.     (if logged-in
  52.     (progn
  53.       (setq dungeon-mode 'unix)
  54.       (while (eq dungeon-mode 'unix)
  55.         (mprinc "$ ")
  56.         (setq line (downcase (read-string "")))
  57.         (if (eq (parse2 nil unix-verbs line) -1)
  58.         (progn
  59.           (if (setq esign (string-match "=" line))
  60.               (doassign line)        
  61.             (mprinc (car line-list))
  62.             (mprincl ": not found.")))))
  63.       (goto-char (point-max))
  64.       (mprinc "\n"))))
  65.  
  66.