diff --git a/ATL/Pooh/pooh.atl b/ATL/Pooh/pooh.atl index cc7fa0d..e886759 100644 --- a/ATL/Pooh/pooh.atl +++ b/ATL/Pooh/pooh.atl @@ -19,7 +19,8 @@ strength 1 dexterity 4 constitution 4 - + +;TODO development - remove before release define-player "Christopher Robin" description "Christopher Robin is my game dev character." - place "Piglet's home" ;Development \ No newline at end of file + place "Piglet's home" \ No newline at end of file diff --git a/ATL/Pooh/pooh.atl b/ATL/Pooh/pooh.atl index cc7fa0d..e886759 100644 --- a/ATL/Pooh/pooh.atl +++ b/ATL/Pooh/pooh.atl @@ -19,7 +19,8 @@ strength 1 dexterity 4 constitution 4 - + +;TODO development - remove before release define-player "Christopher Robin" description "Christopher Robin is my game dev character." - place "Piglet's home" ;Development \ No newline at end of file + place "Piglet's home" \ No newline at end of file diff --git a/lisp/atlantis.lisp b/lisp/atlantis.lisp index 6970752..04055f2 100644 --- a/lisp/atlantis.lisp +++ b/lisp/atlantis.lisp @@ -1,8 +1,8 @@ ;;; -;;; Atlantis is a framework for creating multi-user dungeon worlds. +;;; Atlantis is a framework for creating text-adventure worlds. ;;; This is the Common Lisp implementation. ;;; -;;; Licensed under the terms of the MIT license. +;;; Licensed under the terms of the GNU GPLv3. ;;; author: Daniel Vedder ;;; date: 09/05/2015 ;;; diff --git a/ATL/Pooh/pooh.atl b/ATL/Pooh/pooh.atl index cc7fa0d..e886759 100644 --- a/ATL/Pooh/pooh.atl +++ b/ATL/Pooh/pooh.atl @@ -19,7 +19,8 @@ strength 1 dexterity 4 constitution 4 - + +;TODO development - remove before release define-player "Christopher Robin" description "Christopher Robin is my game dev character." - place "Piglet's home" ;Development \ No newline at end of file + place "Piglet's home" \ No newline at end of file diff --git a/lisp/atlantis.lisp b/lisp/atlantis.lisp index 6970752..04055f2 100644 --- a/lisp/atlantis.lisp +++ b/lisp/atlantis.lisp @@ -1,8 +1,8 @@ ;;; -;;; Atlantis is a framework for creating multi-user dungeon worlds. +;;; Atlantis is a framework for creating text-adventure worlds. ;;; This is the Common Lisp implementation. ;;; -;;; Licensed under the terms of the MIT license. +;;; Licensed under the terms of the GNU GPLv3. ;;; author: Daniel Vedder ;;; date: 09/05/2015 ;;; diff --git a/lisp/creator.lisp b/lisp/creator.lisp index cfd82ca..368ce0b 100644 --- a/lisp/creator.lisp +++ b/lisp/creator.lisp @@ -1,12 +1,12 @@ ;;; -;;; Atlantis is a framework for creating multi-user dungeon worlds. +;;; Atlantis is a framework for creating text-adventure worlds. ;;; This is the Common Lisp implementation. ;;; ;;; This is an ATL code-generating module to ease the world creation ;;; process for non-coders (and those too lazy to write more than ;;; necessary...). ;;; -;;; Licensed under the terms of the MIT license. +;;; Licensed under the terms of the GNU GPLv3. ;;; author: Daniel Vedder ;;; date: 20/06/2015 ;;; diff --git a/ATL/Pooh/pooh.atl b/ATL/Pooh/pooh.atl index cc7fa0d..e886759 100644 --- a/ATL/Pooh/pooh.atl +++ b/ATL/Pooh/pooh.atl @@ -19,7 +19,8 @@ strength 1 dexterity 4 constitution 4 - + +;TODO development - remove before release define-player "Christopher Robin" description "Christopher Robin is my game dev character." - place "Piglet's home" ;Development \ No newline at end of file + place "Piglet's home" \ No newline at end of file diff --git a/lisp/atlantis.lisp b/lisp/atlantis.lisp index 6970752..04055f2 100644 --- a/lisp/atlantis.lisp +++ b/lisp/atlantis.lisp @@ -1,8 +1,8 @@ ;;; -;;; Atlantis is a framework for creating multi-user dungeon worlds. +;;; Atlantis is a framework for creating text-adventure worlds. ;;; This is the Common Lisp implementation. ;;; -;;; Licensed under the terms of the MIT license. +;;; Licensed under the terms of the GNU GPLv3. ;;; author: Daniel Vedder ;;; date: 09/05/2015 ;;; diff --git a/lisp/creator.lisp b/lisp/creator.lisp index cfd82ca..368ce0b 100644 --- a/lisp/creator.lisp +++ b/lisp/creator.lisp @@ -1,12 +1,12 @@ ;;; -;;; Atlantis is a framework for creating multi-user dungeon worlds. +;;; Atlantis is a framework for creating text-adventure worlds. ;;; This is the Common Lisp implementation. ;;; ;;; This is an ATL code-generating module to ease the world creation ;;; process for non-coders (and those too lazy to write more than ;;; necessary...). ;;; -;;; Licensed under the terms of the MIT license. +;;; Licensed under the terms of the GNU GPLv3. ;;; author: Daniel Vedder ;;; date: 20/06/2015 ;;; diff --git a/lisp/game-objects.lisp b/lisp/game-objects.lisp index 33d3de7..f1c969c 100644 --- a/lisp/game-objects.lisp +++ b/lisp/game-objects.lisp @@ -1,11 +1,11 @@ ;;; -;;; Atlantis is a framework for creating multi-user dungeon worlds. +;;; Atlantis is a framework for creating text-adventure worlds. ;;; This is the Common Lisp implementation. ;;; ;;; This file contains all the various kinds of in-game objects like ;;; places, monsters, NPCs, items... ;;; -;;; Licensed under the terms of the MIT license. +;;; Licensed under the terms of the GNU GPLv3. ;;; author: Daniel Vedder ;;; date: 15/05/2015 ;;; diff --git a/ATL/Pooh/pooh.atl b/ATL/Pooh/pooh.atl index cc7fa0d..e886759 100644 --- a/ATL/Pooh/pooh.atl +++ b/ATL/Pooh/pooh.atl @@ -19,7 +19,8 @@ strength 1 dexterity 4 constitution 4 - + +;TODO development - remove before release define-player "Christopher Robin" description "Christopher Robin is my game dev character." - place "Piglet's home" ;Development \ No newline at end of file + place "Piglet's home" \ No newline at end of file diff --git a/lisp/atlantis.lisp b/lisp/atlantis.lisp index 6970752..04055f2 100644 --- a/lisp/atlantis.lisp +++ b/lisp/atlantis.lisp @@ -1,8 +1,8 @@ ;;; -;;; Atlantis is a framework for creating multi-user dungeon worlds. +;;; Atlantis is a framework for creating text-adventure worlds. ;;; This is the Common Lisp implementation. ;;; -;;; Licensed under the terms of the MIT license. +;;; Licensed under the terms of the GNU GPLv3. ;;; author: Daniel Vedder ;;; date: 09/05/2015 ;;; diff --git a/lisp/creator.lisp b/lisp/creator.lisp index cfd82ca..368ce0b 100644 --- a/lisp/creator.lisp +++ b/lisp/creator.lisp @@ -1,12 +1,12 @@ ;;; -;;; Atlantis is a framework for creating multi-user dungeon worlds. +;;; Atlantis is a framework for creating text-adventure worlds. ;;; This is the Common Lisp implementation. ;;; ;;; This is an ATL code-generating module to ease the world creation ;;; process for non-coders (and those too lazy to write more than ;;; necessary...). ;;; -;;; Licensed under the terms of the MIT license. +;;; Licensed under the terms of the GNU GPLv3. ;;; author: Daniel Vedder ;;; date: 20/06/2015 ;;; diff --git a/lisp/game-objects.lisp b/lisp/game-objects.lisp index 33d3de7..f1c969c 100644 --- a/lisp/game-objects.lisp +++ b/lisp/game-objects.lisp @@ -1,11 +1,11 @@ ;;; -;;; Atlantis is a framework for creating multi-user dungeon worlds. +;;; Atlantis is a framework for creating text-adventure worlds. ;;; This is the Common Lisp implementation. ;;; ;;; This file contains all the various kinds of in-game objects like ;;; places, monsters, NPCs, items... ;;; -;;; Licensed under the terms of the MIT license. +;;; Licensed under the terms of the GNU GPLv3. ;;; author: Daniel Vedder ;;; date: 15/05/2015 ;;; diff --git a/lisp/interpreter.lisp b/lisp/interpreter.lisp index 93506fa..3b8d635 100644 --- a/lisp/interpreter.lisp +++ b/lisp/interpreter.lisp @@ -1,10 +1,10 @@ ;;; -;;; Atlantis is a framework for creating multi-user dungeon worlds. +;;; Atlantis is a framework for creating text-adventure worlds. ;;; This is the Common Lisp implementation. ;;; ;;; The interpreter file loads an ATL source file and parses it. ;;; -;;; Licensed under the terms of the MIT license +;;; Licensed under the terms of the GNU GPLv3. ;;; author: Daniel Vedder ;;; date: 09/05/2015 ;;; @@ -13,8 +13,7 @@ ;; A list of ATL language constructs ;; (Note: not complete - each (defcommand) appends to this list) -;; FIXME name-world is currently superfluous -(defvar *atl-commands* '(load-file name-world)) +(defvar *atl-commands* '(load-file)) (defun build-define-command (object-type) "Build a new define command function for the specified object type" diff --git a/ATL/Pooh/pooh.atl b/ATL/Pooh/pooh.atl index cc7fa0d..e886759 100644 --- a/ATL/Pooh/pooh.atl +++ b/ATL/Pooh/pooh.atl @@ -19,7 +19,8 @@ strength 1 dexterity 4 constitution 4 - + +;TODO development - remove before release define-player "Christopher Robin" description "Christopher Robin is my game dev character." - place "Piglet's home" ;Development \ No newline at end of file + place "Piglet's home" \ No newline at end of file diff --git a/lisp/atlantis.lisp b/lisp/atlantis.lisp index 6970752..04055f2 100644 --- a/lisp/atlantis.lisp +++ b/lisp/atlantis.lisp @@ -1,8 +1,8 @@ ;;; -;;; Atlantis is a framework for creating multi-user dungeon worlds. +;;; Atlantis is a framework for creating text-adventure worlds. ;;; This is the Common Lisp implementation. ;;; -;;; Licensed under the terms of the MIT license. +;;; Licensed under the terms of the GNU GPLv3. ;;; author: Daniel Vedder ;;; date: 09/05/2015 ;;; diff --git a/lisp/creator.lisp b/lisp/creator.lisp index cfd82ca..368ce0b 100644 --- a/lisp/creator.lisp +++ b/lisp/creator.lisp @@ -1,12 +1,12 @@ ;;; -;;; Atlantis is a framework for creating multi-user dungeon worlds. +;;; Atlantis is a framework for creating text-adventure worlds. ;;; This is the Common Lisp implementation. ;;; ;;; This is an ATL code-generating module to ease the world creation ;;; process for non-coders (and those too lazy to write more than ;;; necessary...). ;;; -;;; Licensed under the terms of the MIT license. +;;; Licensed under the terms of the GNU GPLv3. ;;; author: Daniel Vedder ;;; date: 20/06/2015 ;;; diff --git a/lisp/game-objects.lisp b/lisp/game-objects.lisp index 33d3de7..f1c969c 100644 --- a/lisp/game-objects.lisp +++ b/lisp/game-objects.lisp @@ -1,11 +1,11 @@ ;;; -;;; Atlantis is a framework for creating multi-user dungeon worlds. +;;; Atlantis is a framework for creating text-adventure worlds. ;;; This is the Common Lisp implementation. ;;; ;;; This file contains all the various kinds of in-game objects like ;;; places, monsters, NPCs, items... ;;; -;;; Licensed under the terms of the MIT license. +;;; Licensed under the terms of the GNU GPLv3. ;;; author: Daniel Vedder ;;; date: 15/05/2015 ;;; diff --git a/lisp/interpreter.lisp b/lisp/interpreter.lisp index 93506fa..3b8d635 100644 --- a/lisp/interpreter.lisp +++ b/lisp/interpreter.lisp @@ -1,10 +1,10 @@ ;;; -;;; Atlantis is a framework for creating multi-user dungeon worlds. +;;; Atlantis is a framework for creating text-adventure worlds. ;;; This is the Common Lisp implementation. ;;; ;;; The interpreter file loads an ATL source file and parses it. ;;; -;;; Licensed under the terms of the MIT license +;;; Licensed under the terms of the GNU GPLv3. ;;; author: Daniel Vedder ;;; date: 09/05/2015 ;;; @@ -13,8 +13,7 @@ ;; A list of ATL language constructs ;; (Note: not complete - each (defcommand) appends to this list) -;; FIXME name-world is currently superfluous -(defvar *atl-commands* '(load-file name-world)) +(defvar *atl-commands* '(load-file)) (defun build-define-command (object-type) "Build a new define command function for the specified object type" diff --git a/lisp/player.lisp b/lisp/player.lisp index 9274fb4..e7c23c2 100644 --- a/lisp/player.lisp +++ b/lisp/player.lisp @@ -1,10 +1,10 @@ ;;; -;;; Atlantis is a framework for creating multi-user dungeon worlds. +;;; Atlantis is a framework for creating text-adventure worlds. ;;; This is the Common Lisp implementation. ;;; ;;; This file represents a single player. ;;; -;;; Licensed under the terms of the MIT license +;;; Licensed under the terms of the GNU GPLv3. ;;; author: Daniel Vedder ;;; date: 15/05/2015 ;;; diff --git a/ATL/Pooh/pooh.atl b/ATL/Pooh/pooh.atl index cc7fa0d..e886759 100644 --- a/ATL/Pooh/pooh.atl +++ b/ATL/Pooh/pooh.atl @@ -19,7 +19,8 @@ strength 1 dexterity 4 constitution 4 - + +;TODO development - remove before release define-player "Christopher Robin" description "Christopher Robin is my game dev character." - place "Piglet's home" ;Development \ No newline at end of file + place "Piglet's home" \ No newline at end of file diff --git a/lisp/atlantis.lisp b/lisp/atlantis.lisp index 6970752..04055f2 100644 --- a/lisp/atlantis.lisp +++ b/lisp/atlantis.lisp @@ -1,8 +1,8 @@ ;;; -;;; Atlantis is a framework for creating multi-user dungeon worlds. +;;; Atlantis is a framework for creating text-adventure worlds. ;;; This is the Common Lisp implementation. ;;; -;;; Licensed under the terms of the MIT license. +;;; Licensed under the terms of the GNU GPLv3. ;;; author: Daniel Vedder ;;; date: 09/05/2015 ;;; diff --git a/lisp/creator.lisp b/lisp/creator.lisp index cfd82ca..368ce0b 100644 --- a/lisp/creator.lisp +++ b/lisp/creator.lisp @@ -1,12 +1,12 @@ ;;; -;;; Atlantis is a framework for creating multi-user dungeon worlds. +;;; Atlantis is a framework for creating text-adventure worlds. ;;; This is the Common Lisp implementation. ;;; ;;; This is an ATL code-generating module to ease the world creation ;;; process for non-coders (and those too lazy to write more than ;;; necessary...). ;;; -;;; Licensed under the terms of the MIT license. +;;; Licensed under the terms of the GNU GPLv3. ;;; author: Daniel Vedder ;;; date: 20/06/2015 ;;; diff --git a/lisp/game-objects.lisp b/lisp/game-objects.lisp index 33d3de7..f1c969c 100644 --- a/lisp/game-objects.lisp +++ b/lisp/game-objects.lisp @@ -1,11 +1,11 @@ ;;; -;;; Atlantis is a framework for creating multi-user dungeon worlds. +;;; Atlantis is a framework for creating text-adventure worlds. ;;; This is the Common Lisp implementation. ;;; ;;; This file contains all the various kinds of in-game objects like ;;; places, monsters, NPCs, items... ;;; -;;; Licensed under the terms of the MIT license. +;;; Licensed under the terms of the GNU GPLv3. ;;; author: Daniel Vedder ;;; date: 15/05/2015 ;;; diff --git a/lisp/interpreter.lisp b/lisp/interpreter.lisp index 93506fa..3b8d635 100644 --- a/lisp/interpreter.lisp +++ b/lisp/interpreter.lisp @@ -1,10 +1,10 @@ ;;; -;;; Atlantis is a framework for creating multi-user dungeon worlds. +;;; Atlantis is a framework for creating text-adventure worlds. ;;; This is the Common Lisp implementation. ;;; ;;; The interpreter file loads an ATL source file and parses it. ;;; -;;; Licensed under the terms of the MIT license +;;; Licensed under the terms of the GNU GPLv3. ;;; author: Daniel Vedder ;;; date: 09/05/2015 ;;; @@ -13,8 +13,7 @@ ;; A list of ATL language constructs ;; (Note: not complete - each (defcommand) appends to this list) -;; FIXME name-world is currently superfluous -(defvar *atl-commands* '(load-file name-world)) +(defvar *atl-commands* '(load-file)) (defun build-define-command (object-type) "Build a new define command function for the specified object type" diff --git a/lisp/player.lisp b/lisp/player.lisp index 9274fb4..e7c23c2 100644 --- a/lisp/player.lisp +++ b/lisp/player.lisp @@ -1,10 +1,10 @@ ;;; -;;; Atlantis is a framework for creating multi-user dungeon worlds. +;;; Atlantis is a framework for creating text-adventure worlds. ;;; This is the Common Lisp implementation. ;;; ;;; This file represents a single player. ;;; -;;; Licensed under the terms of the MIT license +;;; Licensed under the terms of the GNU GPLv3. ;;; author: Daniel Vedder ;;; date: 15/05/2015 ;;; diff --git a/lisp/ui.lisp b/lisp/ui.lisp index 09ec11e..626035f 100644 --- a/lisp/ui.lisp +++ b/lisp/ui.lisp @@ -1,11 +1,11 @@ ;;; -;;; Atlantis is a framework for creating multi-user dungeon worlds. +;;; Atlantis is a framework for creating text-adventure worlds. ;;; This is the Common Lisp implementation. ;;; ;;; This module is responsible for the interactive user interface. All ;;; in-game UI should be done here. (Pre-game UI goes into atlantis.lisp.) ;;; -;;; Licensed under the terms of the MIT license. +;;; Licensed under the terms of the GNU GPLv3. ;;; author: Daniel Vedder ;;; date: 21/05/2015 ;;; diff --git a/ATL/Pooh/pooh.atl b/ATL/Pooh/pooh.atl index cc7fa0d..e886759 100644 --- a/ATL/Pooh/pooh.atl +++ b/ATL/Pooh/pooh.atl @@ -19,7 +19,8 @@ strength 1 dexterity 4 constitution 4 - + +;TODO development - remove before release define-player "Christopher Robin" description "Christopher Robin is my game dev character." - place "Piglet's home" ;Development \ No newline at end of file + place "Piglet's home" \ No newline at end of file diff --git a/lisp/atlantis.lisp b/lisp/atlantis.lisp index 6970752..04055f2 100644 --- a/lisp/atlantis.lisp +++ b/lisp/atlantis.lisp @@ -1,8 +1,8 @@ ;;; -;;; Atlantis is a framework for creating multi-user dungeon worlds. +;;; Atlantis is a framework for creating text-adventure worlds. ;;; This is the Common Lisp implementation. ;;; -;;; Licensed under the terms of the MIT license. +;;; Licensed under the terms of the GNU GPLv3. ;;; author: Daniel Vedder ;;; date: 09/05/2015 ;;; diff --git a/lisp/creator.lisp b/lisp/creator.lisp index cfd82ca..368ce0b 100644 --- a/lisp/creator.lisp +++ b/lisp/creator.lisp @@ -1,12 +1,12 @@ ;;; -;;; Atlantis is a framework for creating multi-user dungeon worlds. +;;; Atlantis is a framework for creating text-adventure worlds. ;;; This is the Common Lisp implementation. ;;; ;;; This is an ATL code-generating module to ease the world creation ;;; process for non-coders (and those too lazy to write more than ;;; necessary...). ;;; -;;; Licensed under the terms of the MIT license. +;;; Licensed under the terms of the GNU GPLv3. ;;; author: Daniel Vedder ;;; date: 20/06/2015 ;;; diff --git a/lisp/game-objects.lisp b/lisp/game-objects.lisp index 33d3de7..f1c969c 100644 --- a/lisp/game-objects.lisp +++ b/lisp/game-objects.lisp @@ -1,11 +1,11 @@ ;;; -;;; Atlantis is a framework for creating multi-user dungeon worlds. +;;; Atlantis is a framework for creating text-adventure worlds. ;;; This is the Common Lisp implementation. ;;; ;;; This file contains all the various kinds of in-game objects like ;;; places, monsters, NPCs, items... ;;; -;;; Licensed under the terms of the MIT license. +;;; Licensed under the terms of the GNU GPLv3. ;;; author: Daniel Vedder ;;; date: 15/05/2015 ;;; diff --git a/lisp/interpreter.lisp b/lisp/interpreter.lisp index 93506fa..3b8d635 100644 --- a/lisp/interpreter.lisp +++ b/lisp/interpreter.lisp @@ -1,10 +1,10 @@ ;;; -;;; Atlantis is a framework for creating multi-user dungeon worlds. +;;; Atlantis is a framework for creating text-adventure worlds. ;;; This is the Common Lisp implementation. ;;; ;;; The interpreter file loads an ATL source file and parses it. ;;; -;;; Licensed under the terms of the MIT license +;;; Licensed under the terms of the GNU GPLv3. ;;; author: Daniel Vedder ;;; date: 09/05/2015 ;;; @@ -13,8 +13,7 @@ ;; A list of ATL language constructs ;; (Note: not complete - each (defcommand) appends to this list) -;; FIXME name-world is currently superfluous -(defvar *atl-commands* '(load-file name-world)) +(defvar *atl-commands* '(load-file)) (defun build-define-command (object-type) "Build a new define command function for the specified object type" diff --git a/lisp/player.lisp b/lisp/player.lisp index 9274fb4..e7c23c2 100644 --- a/lisp/player.lisp +++ b/lisp/player.lisp @@ -1,10 +1,10 @@ ;;; -;;; Atlantis is a framework for creating multi-user dungeon worlds. +;;; Atlantis is a framework for creating text-adventure worlds. ;;; This is the Common Lisp implementation. ;;; ;;; This file represents a single player. ;;; -;;; Licensed under the terms of the MIT license +;;; Licensed under the terms of the GNU GPLv3. ;;; author: Daniel Vedder ;;; date: 15/05/2015 ;;; diff --git a/lisp/ui.lisp b/lisp/ui.lisp index 09ec11e..626035f 100644 --- a/lisp/ui.lisp +++ b/lisp/ui.lisp @@ -1,11 +1,11 @@ ;;; -;;; Atlantis is a framework for creating multi-user dungeon worlds. +;;; Atlantis is a framework for creating text-adventure worlds. ;;; This is the Common Lisp implementation. ;;; ;;; This module is responsible for the interactive user interface. All ;;; in-game UI should be done here. (Pre-game UI goes into atlantis.lisp.) ;;; -;;; Licensed under the terms of the MIT license. +;;; Licensed under the terms of the GNU GPLv3. ;;; author: Daniel Vedder ;;; date: 21/05/2015 ;;; diff --git a/lisp/util.lisp b/lisp/util.lisp index a618aeb..c885d6f 100644 --- a/lisp/util.lisp +++ b/lisp/util.lisp @@ -1,10 +1,10 @@ ;;; -;;; Atlantis is a framework for creating multi-user dungeon worlds. +;;; Atlantis is a framework for creating text-adventure worlds. ;;; This is the Common Lisp implementation. ;;; ;;; This file provides commonly used utility functions and macros. ;;; -;;; Licensed under the terms of the MIT license. +;;; Licensed under the terms of the GNU GPLv3. ;;; author: Daniel Vedder ;;; date: 09/05/2015 ;;; @@ -24,13 +24,6 @@ "If *debugging* is true, print str" `(when *debugging* (format t ,str ,@format-args))) -;; TODO DEPRECATED - Needs to be replaced in the current code -(defmacro simple-input (var &optional (prompt ">>>")) - "Take input from terminal and store it in var" - `(progn - (format t "~&~A " ,prompt) - (setf ,var (read)))) - ;; XXX potentially inefficient if called often (defmacro set-list (value &rest var-list) "Set each symbol in var-list to value" @@ -268,12 +261,17 @@ "The user chooses one out of a list of options, the index is returned" (dotimes (i (length option-list)) (format t "~&~S) ~A" (1+ i) (nth i option-list))) - (simple-input choice) - (while (or (not (numberp choice)) (< choice 1) - (> choice (length option-list))) + (format t "~&>>> ") + (setf choice (read-line)) + (while (or (zerop (length choice)) + (not (alphanumericp (aref choice 0))) + (not (numberp (read-from-string choice))) + (< (read-from-string choice) 1) + (> (read-from-string choice) (length option-list))) (format t "~&Invalid choice! Please choose again:") - (simple-input choice)) - (1- choice)) + (format t "~&>>> ") + (setf choice (read-line))) + (1- (read-from-string choice))) (defun choose-option (option-list) "Like choose-number-option, but return the value of the choice" diff --git a/ATL/Pooh/pooh.atl b/ATL/Pooh/pooh.atl index cc7fa0d..e886759 100644 --- a/ATL/Pooh/pooh.atl +++ b/ATL/Pooh/pooh.atl @@ -19,7 +19,8 @@ strength 1 dexterity 4 constitution 4 - + +;TODO development - remove before release define-player "Christopher Robin" description "Christopher Robin is my game dev character." - place "Piglet's home" ;Development \ No newline at end of file + place "Piglet's home" \ No newline at end of file diff --git a/lisp/atlantis.lisp b/lisp/atlantis.lisp index 6970752..04055f2 100644 --- a/lisp/atlantis.lisp +++ b/lisp/atlantis.lisp @@ -1,8 +1,8 @@ ;;; -;;; Atlantis is a framework for creating multi-user dungeon worlds. +;;; Atlantis is a framework for creating text-adventure worlds. ;;; This is the Common Lisp implementation. ;;; -;;; Licensed under the terms of the MIT license. +;;; Licensed under the terms of the GNU GPLv3. ;;; author: Daniel Vedder ;;; date: 09/05/2015 ;;; diff --git a/lisp/creator.lisp b/lisp/creator.lisp index cfd82ca..368ce0b 100644 --- a/lisp/creator.lisp +++ b/lisp/creator.lisp @@ -1,12 +1,12 @@ ;;; -;;; Atlantis is a framework for creating multi-user dungeon worlds. +;;; Atlantis is a framework for creating text-adventure worlds. ;;; This is the Common Lisp implementation. ;;; ;;; This is an ATL code-generating module to ease the world creation ;;; process for non-coders (and those too lazy to write more than ;;; necessary...). ;;; -;;; Licensed under the terms of the MIT license. +;;; Licensed under the terms of the GNU GPLv3. ;;; author: Daniel Vedder ;;; date: 20/06/2015 ;;; diff --git a/lisp/game-objects.lisp b/lisp/game-objects.lisp index 33d3de7..f1c969c 100644 --- a/lisp/game-objects.lisp +++ b/lisp/game-objects.lisp @@ -1,11 +1,11 @@ ;;; -;;; Atlantis is a framework for creating multi-user dungeon worlds. +;;; Atlantis is a framework for creating text-adventure worlds. ;;; This is the Common Lisp implementation. ;;; ;;; This file contains all the various kinds of in-game objects like ;;; places, monsters, NPCs, items... ;;; -;;; Licensed under the terms of the MIT license. +;;; Licensed under the terms of the GNU GPLv3. ;;; author: Daniel Vedder ;;; date: 15/05/2015 ;;; diff --git a/lisp/interpreter.lisp b/lisp/interpreter.lisp index 93506fa..3b8d635 100644 --- a/lisp/interpreter.lisp +++ b/lisp/interpreter.lisp @@ -1,10 +1,10 @@ ;;; -;;; Atlantis is a framework for creating multi-user dungeon worlds. +;;; Atlantis is a framework for creating text-adventure worlds. ;;; This is the Common Lisp implementation. ;;; ;;; The interpreter file loads an ATL source file and parses it. ;;; -;;; Licensed under the terms of the MIT license +;;; Licensed under the terms of the GNU GPLv3. ;;; author: Daniel Vedder ;;; date: 09/05/2015 ;;; @@ -13,8 +13,7 @@ ;; A list of ATL language constructs ;; (Note: not complete - each (defcommand) appends to this list) -;; FIXME name-world is currently superfluous -(defvar *atl-commands* '(load-file name-world)) +(defvar *atl-commands* '(load-file)) (defun build-define-command (object-type) "Build a new define command function for the specified object type" diff --git a/lisp/player.lisp b/lisp/player.lisp index 9274fb4..e7c23c2 100644 --- a/lisp/player.lisp +++ b/lisp/player.lisp @@ -1,10 +1,10 @@ ;;; -;;; Atlantis is a framework for creating multi-user dungeon worlds. +;;; Atlantis is a framework for creating text-adventure worlds. ;;; This is the Common Lisp implementation. ;;; ;;; This file represents a single player. ;;; -;;; Licensed under the terms of the MIT license +;;; Licensed under the terms of the GNU GPLv3. ;;; author: Daniel Vedder ;;; date: 15/05/2015 ;;; diff --git a/lisp/ui.lisp b/lisp/ui.lisp index 09ec11e..626035f 100644 --- a/lisp/ui.lisp +++ b/lisp/ui.lisp @@ -1,11 +1,11 @@ ;;; -;;; Atlantis is a framework for creating multi-user dungeon worlds. +;;; Atlantis is a framework for creating text-adventure worlds. ;;; This is the Common Lisp implementation. ;;; ;;; This module is responsible for the interactive user interface. All ;;; in-game UI should be done here. (Pre-game UI goes into atlantis.lisp.) ;;; -;;; Licensed under the terms of the MIT license. +;;; Licensed under the terms of the GNU GPLv3. ;;; author: Daniel Vedder ;;; date: 21/05/2015 ;;; diff --git a/lisp/util.lisp b/lisp/util.lisp index a618aeb..c885d6f 100644 --- a/lisp/util.lisp +++ b/lisp/util.lisp @@ -1,10 +1,10 @@ ;;; -;;; Atlantis is a framework for creating multi-user dungeon worlds. +;;; Atlantis is a framework for creating text-adventure worlds. ;;; This is the Common Lisp implementation. ;;; ;;; This file provides commonly used utility functions and macros. ;;; -;;; Licensed under the terms of the MIT license. +;;; Licensed under the terms of the GNU GPLv3. ;;; author: Daniel Vedder ;;; date: 09/05/2015 ;;; @@ -24,13 +24,6 @@ "If *debugging* is true, print str" `(when *debugging* (format t ,str ,@format-args))) -;; TODO DEPRECATED - Needs to be replaced in the current code -(defmacro simple-input (var &optional (prompt ">>>")) - "Take input from terminal and store it in var" - `(progn - (format t "~&~A " ,prompt) - (setf ,var (read)))) - ;; XXX potentially inefficient if called often (defmacro set-list (value &rest var-list) "Set each symbol in var-list to value" @@ -268,12 +261,17 @@ "The user chooses one out of a list of options, the index is returned" (dotimes (i (length option-list)) (format t "~&~S) ~A" (1+ i) (nth i option-list))) - (simple-input choice) - (while (or (not (numberp choice)) (< choice 1) - (> choice (length option-list))) + (format t "~&>>> ") + (setf choice (read-line)) + (while (or (zerop (length choice)) + (not (alphanumericp (aref choice 0))) + (not (numberp (read-from-string choice))) + (< (read-from-string choice) 1) + (> (read-from-string choice) (length option-list))) (format t "~&Invalid choice! Please choose again:") - (simple-input choice)) - (1- choice)) + (format t "~&>>> ") + (setf choice (read-line))) + (1- (read-from-string choice))) (defun choose-option (option-list) "Like choose-number-option, but return the value of the choice" diff --git a/lisp/world.lisp b/lisp/world.lisp index 53a3222..0509ee7 100644 --- a/lisp/world.lisp +++ b/lisp/world.lisp @@ -1,10 +1,10 @@ ;;; -;;; Atlantis is a framework for creating multi-user dungeon worlds. +;;; Atlantis is a framework for creating text-adventure worlds. ;;; This is the Common Lisp implementation. ;;; ;;; The world stores the current state of the game. ;;; -;;; Licensed under the terms of the MIT license +;;; Licensed under the terms of the GNU GPLv3. ;;; author: Daniel Vedder ;;; date: 15/05/2015 ;;;