Removed some boilerplate.
[uxul-world.git] / draw.lisp
index 1b058e6..a9988a6 100755 (executable)
--- a/draw.lisp
+++ b/draw.lisp
@@ -1,54 +1,41 @@
-;;; Copyright 2009 Christoph Senjak
+;;; Copyright 2009-2011 Christoph Senjak
 
 ;; various draw-methods
 
 (in-package :uxul-world)
 
 (defun draw-background (x-trans y-trans)
-  (let ((ani3 (car (images (make-animation 0 |background_test_layer_3|))))
-       (ani2 (car (images (make-animation 0 |background_test_layer_2|)))))
-
-    (loop for i from -1 to 16
-        do (loop for j from -1 to 12
-                do (progn
-                     (sdl:draw-surface-at-* ani2
-                                            (+ (* i 64) (round
-                                                         (mod (/ x-trans 4) 64)))
-                                            (+ (* j 64) (round
-                                                         (mod (/ y-trans 4) 64)))))))
-    (loop for i from -1 to 16
-        do (loop for j from -1 to 12
-                do 
-                (sdl:draw-surface-at-* ani3
-                                            (+ (* 64 i) (round
-                                                         (mod (/ x-trans 2) 64)))
-                                            (+ (* 64 j) (round
-                                                         (mod (/ y-trans 2) 64))))))))
+  ;; (let ((ani3 (car (images (make-animation 0 |background_test_layer_3|))))
+;;     (ani2 (car (images (make-animation 0 |background_test_layer_2|)))))
+
+;;     (loop for i from -1 to 16
+;;      do (loop for j from -1 to 12
+;;              do (progn
+;;                   (sdl:draw-surface-at-* ani2
+;;                                          (+ (* i 64) (round
+;;                                                       (mod (/ x-trans 4) 64)))
+;;                                          (+ (* j 64) (round
+;;                                                       (mod (/ y-trans 4) 64)))))))
+;;     (loop for i from -1 to 16
+;;      do (loop for j from -1 to 12
+;;              do 
+;;              (sdl:draw-surface-at-* ani3
+;;                                          (+ (* 64 i) (round
+;;                                                       (mod (/ x-trans 2) 64)))
+;;                                          (+ (* 64 j) (round
+;;                                                       (mod (/ y-trans 2) 64)))))))
+  )
 
 (defmethod draw ((obj room))
   (let ((*current-translation-x*
-        #|(cond
-          ((< (- (x (graphic-centralizer obj)) 400) 0) 0)
-          ((> (+ (x (graphic-centralizer obj)) 400) (width obj))
-           (- 800 (width obj)))
-          (T
-           (- 400 (x (graphic-centralizer obj)))))|#
-        (- 400 (x (graphic-centralizer obj)))
-         )
+        (* (- +screen-width+ (x (graphic-centralizer obj)))))
        (*current-translation-y*
-        #|(cond
-          ((< (- (y (graphic-centralizer obj)) 300) 0) 0)
-          ((> (+ (y (graphic-centralizer obj)) 300) (height obj))
-           (- 600 (height obj)))
-          (T
-           (- 300 (y (graphic-centralizer obj)))))|#
-        (- 300 (y (graphic-centralizer obj)))
-         ))
+        (* (- +screen-height+ (y (graphic-centralizer obj))))))
     (draw-background *current-translation-x* *current-translation-y*)
+    (gl:scale *zoomx* (- *zoomy*) 1)
+    (gl:translate *current-translation-x* *current-translation-y* 0)
     (dolist (image (get-objects obj 'uxul-world::game-object))
-      (if (and (redraw image)
-              (visible image)
-              (rectangle-in-screen image)) (draw image)))))
+      (and (redraw image) (visible image) (draw image)))))
 
 
 ;; FIXME
           (old-draw-rectangle obj :r 255 :g 255 :b 255))
 
   ;;; FIXME ************
-  (sdl:draw-box-*
-   10 10 (floor (* (power obj) (/ (- +screen-width+ 20) 10))) 10
-   :color (sdl:color :r (abs *player-bar-color*) :g (abs *player-bar-color*) :b (abs *player-bar-color*)))
+  ;; (sdl:draw-box-*
+  ;;  10 10 (floor (* (power obj) (/ (- +screen-width+ 20) 10))) 10
+  ;;  :color (sdl:color :r (abs *player-bar-color*) :g (abs *player-bar-color*) :b (abs *player-bar-color*)))
   (incf *player-bar-color* 5)
   (if (= *player-bar-color* 255) (setf *player-bar-color* -255))
 
   (call-next-method))
 
-(defmethod draw ((obj stone))
-  (call-next-method)
-  #+nil(if (rectangle-in-screen obj)
-      (old-draw-rectangle obj :r 255 :g 255 :b 255)))
+(defmethod draw ((obj stone)) (call-next-method))
 
-(defmethod draw ((obj simple-enemy))
-  (call-next-method)
-  #+nil(if (rectangle-in-screen obj)
-      (old-draw-rectangle obj :r 255 :g 255 :b 255)))
+(defmethod draw ((obj simple-enemy)) (call-next-method))