mirror of
https://github.com/open-goal/jak-project
synced 2026-07-31 16:17:16 -04:00
55 lines
1.9 KiB
Common Lisp
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)
|