jak-project/goal_src/engine/debug/assert.gc
ManDude 1af0f4a1a7
[decomp] most of level and some game loop functions + couple decomp… (#651)
* [decomp] most of `level` and some game loop functions + couple decompiler fixes

* add ART.CGO to fake-iso
2021-06-29 20:30:52 -04:00

59 lines
2 KiB
Common Lisp

;;-*-Lisp-*-
(in-package goal)
;; 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
)