Bläddra i källkod

Fix viewport being bigger than game map

Lily Carpenter 9 år sedan
förälder
incheckning
0ad86fbb7f
1 ändrade filer med 6 tillägg och 2 borttagningar
  1. 6 2
      crypts-and-corpses.lisp

+ 6 - 2
crypts-and-corpses.lisp

@@ -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)