| Paste number 34536: | NIL or not NIL? |
| Pasted by: | _deepfire |
| 1 year, 10 months ago | |
| #lisp | Context in IRC logs | |
| Paste contents: |
| (defun box-intersect (b0 b1) (declare (type box b0 b1)) (let ((lu (v2max (box-o b0) (box-o b1))) (rd (v2min (box-o+d b0) (box-o+d b1)))) (format t "INTERSECT!~%") (when (not (v2minusp-or (v2- rd lu))) (let ((r (make-box-pts :lu lu :rd rd))) (format t "INTERSECT: ~S~%" r) r)))) (declaim (ftype (function (box box) (or nil box)) box-intersect)) (defun vport-render-terrain (vport targetvis) (let* ((loc (vport-location vport)) (vbox (vport-box vport)) (terr (loc-terrain loc)) (scale (vport-scale vport)) (inters (box-intersect (box-extend-v2 (loc-largest-visdim loc) vbox) (make-box :o (v2zero) :d (loc-d loc))))) (format t "inters: ~S ~A~%" inters inters) (when inters (format t "go NONNIL inters: ~S ~A~%" inters inters) (do-loc-area (pt inters loc) (let ((terrc (aref-v2 terr pt))) (when (and terrc (v2eq (box-o (ent-box terrc)) pt)) (visual-blit (v2*i scale (v2- pt (box-o vbox))) (ent-visual terrc) targetvis))))))) ==================== *starndard-output*: INTERSECT! inters: NIL NIL go NONNIL inters: NIL NIL i.e.: box-intersect returns NIL -- because WHEN in BOX-INTERSECT is not satisfied i think it also means that this NIL is generated by lisp itself and is guaranteed to be CL:NIL yet -- WHEN in VPORT-RENDER-TERRAIN thinks that NIL is good and well and is not NIL at all... |
This paste has no annotations.