OSDN Git Service

fixed inputs on new entity management
[rulp/rulp.git] / graphics / view.lisp
index 616ae03..400d594 100644 (file)
@@ -121,12 +121,12 @@ DEBUG-INFO can be used to display the content on screen for test and debug purpo
           (:quit () t)
           (:keydown ()
                     ;; FIXME: incorporate into input.lisp. check for input every now and then outside keydown
-                    ;; (when (sdl2:keyboard-state-p :scancode-up) (setf (cdr *viewpoint-offset*) (+ (cdr *viewpoint-offset*) 10)))
-                    ;; (when (sdl2:keyboard-state-p :scancode-down) (setf (cdr *viewpoint-offset*) (+ (cdr *viewpoint-offset*) -10)))
-                    ;; (when (sdl2:keyboard-state-p :scancode-left) (setf (car *viewpoint-offset*) (+ (car *viewpoint-offset*) 10)))
-                    ;; (when (sdl2:keyboard-state-p :scancode-right) (setf (car *viewpoint-offset*) (+ (car *viewpoint-offset*) -10)))
-                    ;; (when (sdl2:keyboard-state-p :scancode-p) (setf *viewpoint-zoom* (+ *viewpoint-zoom* 0.2))) ; FIXME: find the scancode for the plus sign
-                    ;; (when (sdl2:keyboard-state-p :scancode-m) (setf *viewpoint-zoom* (+ *viewpoint-zoom* -0.2)))
+                    (when (sdl2:keyboard-state-p :scancode-up) (setf (cdr *viewpoint-offset*) (+ (cdr *viewpoint-offset*) 10)))
+                    (when (sdl2:keyboard-state-p :scancode-down) (setf (cdr *viewpoint-offset*) (+ (cdr *viewpoint-offset*) -10)))
+                    (when (sdl2:keyboard-state-p :scancode-left) (setf (car *viewpoint-offset*) (+ (car *viewpoint-offset*) 10)))
+                    (when (sdl2:keyboard-state-p :scancode-right) (setf (car *viewpoint-offset*) (+ (car *viewpoint-offset*) -10)))
+                    (when (sdl2:keyboard-state-p :scancode-p) (setf *viewpoint-zoom* (+ *viewpoint-zoom* 0.2))) ; FIXME: find the scancode for the plus sign
+                    (when (sdl2:keyboard-state-p :scancode-m) (setf *viewpoint-zoom* (+ *viewpoint-zoom* -0.2)))
                     )
           (:mousebuttondown ()
                             (setf *is-mouse-hold* t)
@@ -134,7 +134,7 @@ DEBUG-INFO can be used to display the content on screen for test and debug purpo
                             ;; of calling the second element of the keybind list it calls
                             ;; the third element. If there is something there it would
                             ;; execute a special function for when the mouse is released.
-                            ;; (mouse-event *mouse-position*)
+                            (mouse-event *mouse-position*)
                             )
           (:mousebuttonup ()
                           ;; what about functions that require a single press? just create
@@ -209,13 +209,14 @@ DEBUG-INFO can be used to display the content on screen for test and debug purpo
                    ;; pointer section
                    (when *pointer* ;; NOTE: to test this out
                      (sdl2:set-render-draw-color rulp.render:*renderer* 128 250 33 255)
-                     (multiple-value-bind (coordinates size) (grid-layout (car (coordinate (nth *pointer* (entities-list *plane*))))
-                                                                          (cdr (coordinate (nth *pointer* (entities-list *plane*))))
-                                                                          :size (car (size (nth *pointer* (entities-list *plane*)))))
-                       ;; FIXME: bodged the size here, check this piece and repair
-                       (let ((select-rectangle (sdl2:make-rect (car coordinates) (cdr coordinates) size size)))
-                         (sdl2:render-draw-rect rulp.render:*renderer* select-rectangle)
-                         (sdl2:free-rect select-rectangle)))
+                     (let* ((object (nth *pointer* (entities-list *plane*)))
+                            (grid (plane-grid *plane*))
+                            (obj-position (to-grid grid (coordinates object)))
+                            (obj-size (to-grid grid (size object))))
+                       (rulp.render:render-square (car obj-position)
+                                                  (cdr obj-position)
+                                                  (car obj-size)
+                                                  (cdr obj-size)))
                      (sdl2:set-render-draw-color rulp.render:*renderer* 0 0 0 255)
                      ))