(defparameter *cfont* nil)
-(defun start-game (&key (music nil) room-function (15-fps nil))
+(defun run-testing-room ()
+ (start-game :room-function #'make-testing-room))
+
+(defun run-room (item-list)
+ (start-game :room-function
+ #'(lambda () (create-room-from-item-list item-list))))
+
+(defun start-game (&key (music nil)
+ (room-function #'make-additional-testing-room)
+ (15-fps nil))
"Start the Game: Call room-function for getting the room-object to
run. Music is ignored so far. 15-fps makes only every second frame be
drawn (for very slow computers)"
+ (sdl:set-video-driver "directx")
(sdl:with-init (sdl:sdl-init-video sdl:sdl-init-audio)
(sdl:window +screen-width+ +screen-height+
:title-caption "Uxul World"
;:flags (logior sdl:sdl-hw-surface) #| sdl:sdl-fullscreen )|#
)
;;(if music (sdl-mixer:OPEN-AUDIO :frequency 44100))
- (let ((*graphics-table*
- #-ecl (trivial-garbage:make-weak-hash-table
- :weakness :value
- :test #'equal)
- #+ecl (make-hash-table :test #'equal)
- ))
+ (let ((*graphics-table* (make-hash-table :test #'equal)))
(if 15-fps
(setf (sdl:frame-rate) 15)
(setf (sdl:frame-rate) 30))
(cond
((sdl:key= key :SDL-KEY-ESCAPE)
(sdl:push-quit-event))
+ ((sdl:key= key :SDL-KEY-O)
+ (setf *zoom-ash*
+ (max -3 (1- *zoom-ash*))))
+ ((sdl:key= key :SDL-KEY-I)
+ (setf *zoom-ash*
+ (min 0 (1+ *zoom-ash*))))
(T
(on-key-down *current-room* key))))
(:key-up-event (:key key)
(draw my-anim)
(sdl:update-display)
- ))))))
\ No newline at end of file
+ ))))))