Files
jak-project/goal_src/jak1/engine/debug/assert.gc
T
2024-05-20 15:04:15 -04:00

55 lines
1.9 KiB
Common Lisp

;;-*-Lisp-*-
(in-package goal)
(bundles "ENGINE.CGO" "GAME.CGO")
(require "engine/debug/assert-h.gc")
;; name: assert.gc
;; name in dgo: assert
;; dgos: GAME, ENGINE
(define *run-time-assert-enable* #t)
;; TODO macros
(defun __assert ((expr symbol) (msg string))
"Assert that expr is truthy, print assert information otherwise"
(when (not expr)
(format #t "(ASSERT ~S) FAILED in " msg)
(print-pos *__private-assert-info*))
0)
(defun __assert-min-max-range-float ((expr float) (minimum float) (maximum float) (msg-expr string) (msg-min string) (msg-max string))
"Assert that float expr is a larger value than minimum and smaller than maximum, print assert information otherwise"
(when (or (< expr minimum) (< maximum expr))
(format #t
"(ASSERT_MIN_MAX_RANGE_FLOAT ~S ~S ~S) FAILED (values ~F ~F ~F) in "
msg-expr
msg-min
msg-max
expr
minimum
maximum)
(print-pos *__private-assert-info*))
0)
(defun __assert-min-max-range-int ((expr int) (minimum int) (maximum int) (msg-expr string) (msg-min string) (msg-max string))
"Assert that integer expr is a larger value than minimum and smaller than maximum, print assert information otherwise"
(when (or (< expr minimum) (< maximum expr))
(format #t
"(ASSERT_MIN_MAX_RANGE_INT ~S ~S ~S) FAILED (values ~D ~D ~D) in "
msg-expr
msg-min
msg-max
expr
minimum
maximum)
(print-pos *__private-assert-info*))
0)
(defun __assert-zero-lim-range-int ((expr int) (maximum int) (msg-expr string) (msg-max string))
"Assert that integer expr is a larger value than zero and smaller than maximum, print assert information otherwise"
(when (or (< expr 0) (>= expr max))
(format #t "(ASSERT_ZERO_LIM_RANGE_INT ~S ~S) FAILED (values ~D ~D) in " msg-expr msg-max expr maximum)
(print-pos *__private-assert-info*))
0)