|
@@ -138,8 +138,12 @@
|
138
|
138
|
((= key bearlibterminal-ffi:+tk-s+) (move-down viewport map))
|
139
|
139
|
((= key bearlibterminal-ffi:+tk-space+) (update-location viewport map (slot-value viewport 'location) (slot-value player 'location)))))
|
140
|
140
|
|
141
|
|
-(defun create-viewport ()
|
|
141
|
+(defun create-viewport (map)
|
142
|
142
|
(multiple-value-bind (width height) (get-window-size)
|
|
143
|
+ (when (> width (game-map-width map))
|
|
144
|
+ (setf width (game-map-width map)))
|
|
145
|
+ (when (> height (game-map-height map))
|
|
146
|
+ (setf height (game-map-height map)))
|
143
|
147
|
(make-instance 'viewport :width width :height height)))
|
144
|
148
|
|
145
|
149
|
(defun main-loop ()
|
|
@@ -148,7 +152,7 @@
|
148
|
152
|
|
149
|
153
|
:location 0)))
|
150
|
154
|
(loop with map = (initialize-map (make-instance 'game-map) player)
|
151
|
|
- with viewport = (create-viewport)
|
|
155
|
+ with viewport = (create-viewport map)
|
152
|
156
|
as key = (terminal-read) do
|
153
|
157
|
(handle-input key map viewport player)
|
154
|
158
|
(terminal-clear)
|