# HG changeset patch # User Steve Losh # Date 1342647169 14400 # Node ID 16038f1308d87da605078b04ec46df2bec1405c7 # Parent d8b58bf5f1660547e4084c0af48898ea6bbc5592 Fix entity drawing bounds. diff -r d8b58bf5f166 -r 16038f1308d8 src/caves/ui/drawing.clj --- a/src/caves/ui/drawing.clj Wed Jul 18 14:00:55 2012 -0400 +++ b/src/caves/ui/drawing.clj Wed Jul 18 17:32:49 2012 -0400 @@ -89,9 +89,13 @@ (s/put-string screen 0 hud-row info))) -(defn draw-entity [screen origin {:keys [location glyph color]}] - (let [[x y] (get-viewport-coords-of origin location)] - (s/put-string screen x y glyph {:fg color}))) +(defn draw-entity [screen origin vrows vcols {:keys [location glyph color]}] + (let [[x y] (get-viewport-coords-of origin location) + max-x (dec vcols) + max-y (dec vrows)] + (when (and (<= 0 x max-x) + (<= 0 y max-y)) + (s/put-string screen x y glyph {:fg color})))) (defn draw-world [screen vrows vcols [ox oy] tiles] @@ -122,7 +126,7 @@ origin (get-viewport-coords game (:location player) vcols vrows)] (draw-world screen vrows vcols origin tiles) (doseq [entity (vals entities)] - (draw-entity screen origin entity)) + (draw-entity screen origin vrows vcols entity)) (draw-hud screen game) (draw-messages screen (:messages player)) (highlight-player screen origin player)))