(: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)
;; 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
;; 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)
))