Ported to OpenGL
[uxul-world.git] / on-collision.lisp
index 68e284e..645c968 100755 (executable)
@@ -1,4 +1,4 @@
-;;; Copyright 2009 Christoph Senjak
+;;; Copyright 2009-2011 Christoph Senjak
 
 (in-package :uxul-world)
 
         (setf (maycontjump moving-rectangle) nil)))
   (collide-blocks moving-rectangle standing-rectangle collision))
 
+(defmethod on-collision
+    ((moving-rectangle player)
+     (standing-rectangle teleporter)
+     (collision collision))
+  ;; make rectangle active to check for overlapping
+  (setf (active standing-rectangle) T)
+  ;; walk through
+  (setf (colliding standing-rectangle) nil)
+  (move-about moving-rectangle (desired-movement collision))
+  (setf (colliding standing-rectangle) t))
 
 (defmethod on-collision
     ((moving-rectangle player)
   (setf (autojump moving-rectangle) 5)
   (player-hits-enemy moving-rectangle
                     standing-rectangle
-                    collision))
+                    collision)
+  (setf (colliding standing-rectangle) nil)
+  (move-about moving-rectangle (desired-movement collision))
+  (setf (colliding standing-rectangle) t)
+)
 
 (defmethod on-collision
     ((moving-rectangle player)
                  collision)
   (enemy-hits-player moving-rectangle
                     standing-rectangle
-                    collision))
+                    collision)
+  (setf (colliding standing-rectangle) nil)
+  (move-about moving-rectangle (desired-movement collision))
+  (setf (colliding standing-rectangle) t)
+)