jak-project/goal_src/jak2/engine/debug/default-menu.gc
ManDude 18ddd1613c
Jak 2 pc subtitle support (#2672)
Adds support for adding custom subtitles to Jak 2 audio. Comes with a
new editor for the new system and format. Compared to the Jak 1 system,
this is much simpler to make an editor for.

Comes with a few subtitles already made as an example.
Cutscenes are not officially supported but you can technically subtitle
those with editor, so please don't right now.

This new system supports multiple subtitles playing at once (even from a
single source!) and will smartly push the subtitles up if there's a
message already playing:

![image](https://github.com/open-goal/jak-project/assets/7569514/033e6374-a05a-4c31-b029-51868153a932)

![image](https://github.com/open-goal/jak-project/assets/7569514/5298aa6d-a183-446e-bdb6-61c4682df917)

Unlike in Jak 1, it will not hide the bottom HUD when subtitles are
active:

![image](https://github.com/open-goal/jak-project/assets/7569514/d466bfc0-55d0-4689-a6e1-b7784b9fff59)

Sadly this leaves us with not much space for the subtitle region (and
the subtitles are shrunk when the minimap is enabled) but when you have
guards and citizens talking all the time, hiding the HUD every time
anyone spoke would get really frustrating.

The subtitle speaker is also color-coded now, because I thought that
would be fun to do.

TODO:
- [x] proper cutscene support.
- [x] merge mode for cutscenes so we don't have to rewrite the script?

---------

Co-authored-by: Hat Kid <6624576+Hat-Kid@users.noreply.github.com>
2023-06-08 01:04:16 +01:00

6109 lines
250 KiB
Common Lisp

;;-*-Lisp-*-
(in-package goal)
;; name: default-menu.gc
;; name in dgo: default-menu
;; dgos: ENGINE, GAME
(declare-type debug-menu-context basic)
(defenum dm-time-of-day-setting
:type int64
(7am-sunrise)
(10am-morning)
(12pm-noon)
(2pm-afternoon)
(6pm-sunset)
(7pm-twilight)
(11pm-evening)
(4am-green-sun)
(fast-mode))
(defenum dm-time-of-day-palette-settings
:type int64
(palette-0)
(palette-1)
(palette-2)
(palette-3)
(palette-4)
(palette-5)
(palette-6)
(palette-7))
;; og:ignore-form:all-texture-tweak-adjust
(defmacro dm-lambda-boolean-flag (val)
"helper macro for making boolean buttons that don't just access symbols directly"
`,(lambda (arg (msg debug-menu-msg))
(if (= msg (debug-menu-msg press))
(not! ,val)
)
,val)
)
;; DECOMP BEGINS
;; this file is debug only
(declare-file (debug))
(define *debug-menu-context* (new 'debug 'debug-menu-context))
(define *dm-cam-mode-interpolation* 0)
(defun dm-cam-mode-func ((arg0 (state camera-slave)) (arg1 debug-menu-msg))
(if (and (= arg1 (debug-menu-msg press)) arg0)
(set-setting-by-param *setting-control* 'mode-name (-> arg0 name) 0 0)
)
(if *camera*
(send-event *camera* 'query-state arg0)
(not arg0)
)
)
(defun dm-cam-mode-default ((arg0 object) (arg1 debug-menu-msg))
(if (= arg1 (debug-menu-msg press))
(remove-setting-by-arg0 *setting-control* 'mode-name)
)
(not (setting-control-method-14 *setting-control* 'mode-name))
)
(defun dm-cam-settings-default ((arg0 object) (arg1 debug-menu-msg))
(when (= arg1 (debug-menu-msg press))
(remove-setting-by-arg0 *setting-control* 'fov)
(remove-setting-by-arg0 *setting-control* 'slave-options)
)
(and (not (setting-control-method-14 *setting-control* 'fov))
(not (setting-control-method-14 *setting-control* 'slave-options))
)
)
(defun dm-cam-settings-func ((arg0 cam-slave-options) (arg1 debug-menu-msg))
(when (and (= arg1 (debug-menu-msg press)) *camera*)
(cond
((zero? arg0)
(send-event *camera* 'toggle-slave-option 1)
)
((= arg0 (cam-slave-options BUTT_CAM))
(send-event *camera* 'toggle-slave-option 2)
)
((= arg0 (cam-slave-options SAME_SIDE))
(send-event *camera* 'toggle-slave-option 4)
)
((= arg0 (cam-slave-options BUTT_CAM SAME_SIDE))
(send-event *camera* 'toggle-slave-option 128)
)
((= arg0 (cam-slave-options MOVE_SPHERICAL))
(send-event *camera* 'toggle-slave-option 8)
)
((= arg0 (cam-slave-options SAME_SIDE MOVE_SPHERICAL))
(set-setting-by-param *setting-control* 'slave-options 'clear 0 16)
)
((= arg0 (cam-slave-options BUTT_CAM SAME_SIDE MOVE_SPHERICAL))
(send-event *camera* 'toggle-slave-option 64)
)
((= arg0 (cam-slave-options ALLOW_Z_ROT))
(send-event *camera* 'toggle-slave-option 32)
)
((= arg0 (cam-slave-options BUTT_CAM ALLOW_Z_ROT))
(send-event *camera* 'toggle-slave-option 512)
)
((= arg0 (cam-slave-options SAME_SIDE ALLOW_Z_ROT))
(send-event *camera* 'toggle-slave-option #x4000)
)
((= arg0 (cam-slave-options BUTT_CAM SAME_SIDE ALLOW_Z_ROT))
(send-event *camera* 'toggle-slave-option #x8000)
)
)
)
(cond
(*camera*
(cond
((zero? arg0)
(logtest? (-> *camera* slave-options) 1)
)
((= arg0 (cam-slave-options BUTT_CAM))
(logtest? (-> *camera* slave-options) 2)
)
((= arg0 (cam-slave-options SAME_SIDE))
(logtest? (-> *camera* slave-options) 4)
)
((= arg0 (cam-slave-options BUTT_CAM SAME_SIDE))
(logtest? (-> *camera* slave-options) 128)
)
((= arg0 (cam-slave-options MOVE_SPHERICAL))
(logtest? (-> *camera* slave-options) 8)
)
((= arg0 (cam-slave-options SAME_SIDE MOVE_SPHERICAL))
(not (setting-control-method-14 *setting-control* 'slave-options))
)
((= arg0 (cam-slave-options BUTT_CAM SAME_SIDE MOVE_SPHERICAL))
(logtest? (-> *camera* slave-options) 64)
)
((= arg0 (cam-slave-options ALLOW_Z_ROT))
(logtest? (-> *camera* slave-options) 32)
)
((= arg0 (cam-slave-options BUTT_CAM ALLOW_Z_ROT))
(logtest? (-> *camera* slave-options) 512)
)
((= arg0 (cam-slave-options SAME_SIDE ALLOW_Z_ROT))
(logtest? (-> *camera* slave-options) #x4000)
)
((= arg0 (cam-slave-options BUTT_CAM SAME_SIDE ALLOW_Z_ROT))
(logtest? (-> *camera* slave-options) #x8000)
)
(else
#f
)
)
)
(else
#f
)
)
)
(defun dm-cam-settings-func-int ((arg0 int) (arg1 debug-menu-msg) (arg2 int) (arg3 int))
(when (and (= arg1 (debug-menu-msg press)) *camera*)
(if (= (/ arg0 8) 5)
(set! *dm-cam-mode-interpolation* arg2)
)
)
(cond
(*camera*
(if (= (/ arg0 8) 5)
*dm-cam-mode-interpolation*
arg3
)
)
(else
arg3
)
)
)
(defun dm-cam-externalize ((arg0 symbol) (arg1 debug-menu-msg))
(when (= arg1 (debug-menu-msg press))
(cond
((= arg0 'reset)
(if (!= *external-cam-mode* 'locked)
(external-cam-reset!)
)
)
((= arg0 'allow-z)
(set! *external-cam-options* (logxor *external-cam-options* (external-cam-option allow-z)))
)
((= *external-cam-mode* arg0)
(set! *external-cam-mode* #f)
)
(else
(if (not *external-cam-mode*)
(external-cam-reset!)
)
(set! *external-cam-mode* arg0)
)
)
)
(if (= arg0 'allow-z)
(logtest? *external-cam-options* (external-cam-option allow-z))
(= *external-cam-mode* arg0)
)
)
(defun dm-cam-setting-float ((arg0 float) (arg1 debug-menu-msg) (arg2 float) (arg3 float))
(when (= arg1 (debug-menu-msg press))
(let ((v1-2 arg0))
(when (= (the-as int v1-2) 'fov)
(if (not (setting-control-method-14 *setting-control* 'fov))
(set! arg2 64.0)
)
(set-setting-by-param *setting-control* 'fov #f (* 182.04445 arg2) 0)
(if *camera-combiner*
(set! (-> *camera-combiner* fov) (* 182.04445 arg2))
)
(if (and *camera* (-> *camera* slave))
(set! (-> *camera* slave 0 fov) (* 182.04445 arg2))
)
)
)
)
(cond
((= (the-as int arg0) 'fov)
(cond
((setting-control-method-14 *setting-control* 'fov)
(empty)
arg2
)
(*math-camera*
(* 0.005493164 (-> *math-camera* fov))
)
(else
arg3
)
)
)
(else
arg3
)
)
)
(defun dm-cam-render-float ((arg0 int) (arg1 debug-menu-msg) (arg2 float) (arg3 float))
(when (= arg1 (debug-menu-msg press))
(when (zero? (/ arg0 8))
(when *math-camera*
(set! (-> *math-camera* fov) (* 182.04445 arg2))
(update-math-camera
*math-camera*
(-> *setting-control* user-current video-mode)
(-> *setting-control* user-current aspect-ratio)
(-> *math-camera* fov)
)
)
)
)
(cond
((zero? (/ arg0 8))
(cond
(*math-camera*
(* 0.005493164 (-> *math-camera* fov))
)
(else
(empty)
arg3
)
)
)
(else
(empty)
arg3
)
)
)
(defun dm-subdiv-float ((arg0 symbol) (arg1 debug-menu-msg) (arg2 float) (arg3 float))
(when (= arg1 (debug-menu-msg press))
(case arg0
(('close)
(if (and *math-camera* *subdivide-settings*)
(set! (-> *subdivide-settings* close 7) (* 4096.0 arg2))
)
)
(('far)
(if (and *math-camera* *subdivide-settings*)
(set! (-> *subdivide-settings* far 7) (* 4096.0 arg2))
)
)
)
)
(case arg0
(('close)
(if (and *math-camera* *subdivide-settings*)
(* 0.00024414062 (-> *subdivide-settings* close 7))
arg3
)
)
(('far)
(if (and *math-camera* *subdivide-settings*)
(* 0.00024414062 (-> *subdivide-settings* far 7))
arg3
)
)
(else
arg3
)
)
)
(defun dm-subdiv-int ((arg0 symbol) (arg1 debug-menu-msg) (arg2 int) (arg3 int))
(when (= arg1 (debug-menu-msg press))
(case arg0
(('anim-speed)
(if *anim-tester*
(set! (-> *anim-tester* 0 speed) arg2)
)
)
)
)
(case arg0
(('anim-speed)
(if *anim-tester*
(-> *anim-tester* 0 speed)
arg3
)
)
(else
arg3
)
)
)
(defun dm-select-race-path ((arg0 object) (arg1 debug-menu-msg) (arg2 int))
(if (= arg1 (debug-menu-msg press))
(set! *select-race-path* arg2)
)
*select-race-path*
)
(defun dm-setting-language ((arg0 int) (arg1 debug-menu-msg))
(if (= arg1 (debug-menu-msg press))
(set! (-> *setting-control* user-default language) (the-as language-enum (/ arg0 8)))
)
(= (-> *setting-control* user-default language) (/ arg0 8))
)
(defun dm-setting-subtitle-language ((arg0 int) (arg1 debug-menu-msg))
(if (= arg1 (debug-menu-msg press))
(set! (-> *setting-control* user-default subtitle-language) (the-as language-enum (/ arg0 8)))
)
(= (-> *setting-control* user-default subtitle-language) (/ arg0 8))
)
(defun dm-setting-stereo-mode ((arg0 object) (arg1 debug-menu-msg))
(if (= arg1 (debug-menu-msg press))
(set! (-> *setting-control* user-default stereo-mode) (the-as int (/ (the-as int arg0) 8)))
)
(= (-> *setting-control* user-default stereo-mode) (/ (the-as int arg0) 8))
)
(defun dm-current-continue ((arg0 string) (arg1 debug-menu-msg))
(if (= arg1 (debug-menu-msg press))
(start 'play (get-continue-by-name *game-info* arg0))
)
(string= (-> (get-current-continue-forced *game-info*) name) arg0)
)
(defun dm-subdiv-draw-func ((arg0 int) (arg1 debug-menu-msg))
(if (= arg1 (debug-menu-msg press))
(set! *subdivide-draw-mode* (the-as subdivide-setting (/ arg0 8)))
)
(= (/ arg0 8) *subdivide-draw-mode*)
)
(defun dm-scissor-subdiv-draw-func ((arg0 int) (arg1 debug-menu-msg))
(if (= arg1 (debug-menu-msg press))
(set! *subdivide-scissor-draw-mode* (the-as subdivide-setting (/ arg0 8)))
)
(= (/ arg0 8) *subdivide-scissor-draw-mode*)
)
(defun dm-foreground-subdiv-draw-func ((arg0 int) (arg1 debug-menu-msg))
(when (= arg1 (debug-menu-msg press))
(set! *subdivide-foreground-draw-mode* (the-as subdivide-setting (/ arg0 8)))
(let ((v1-3 *generic-consts*)
(a1-1 (/ arg0 8))
)
(cond
((zero? a1-1)
(set! (-> v1-3 base-strgif str-prim)
(new 'static 'gif-tag-prim
:pre #x1
:prim (new 'static 'gs-prim :prim (gs-prim-type tri-strip) :iip #x1 :tme #x1 :fge #x1 :abe #x1)
:nreg #x3
)
)
(set! (-> v1-3 base-strgif fan-prim)
(new 'static 'gif-tag-prim
:pre #x1
:prim (new 'static 'gs-prim :prim (gs-prim-type tri-fan) :iip #x1 :tme #x1 :fge #x1 :abe #x1)
:nreg #x3
)
)
)
((= a1-1 1)
(set! (-> v1-3 base-strgif str-prim)
(new 'static 'gif-tag-prim
:pre #x1
:prim (new 'static 'gs-prim :prim (gs-prim-type line-strip) :iip #x1 :tme #x1 :fge #x1 :abe #x1)
:nreg #x3
)
)
(set! (-> v1-3 base-strgif fan-prim)
(new 'static 'gif-tag-prim
:pre #x1
:prim (new 'static 'gs-prim :prim (gs-prim-type line-strip) :iip #x1 :tme #x1 :fge #x1 :abe #x1)
:nreg #x3
)
)
)
((= a1-1 2)
(set! (-> v1-3 base-strgif str-prim)
(new 'static 'gif-tag-prim
:pre #x1
:prim (new 'static 'gs-prim :prim (gs-prim-type tri-strip) :iip #x1 :fge #x1 :abe #x1)
:nreg #x3
)
)
(set! (-> v1-3 base-strgif fan-prim)
(new 'static 'gif-tag-prim
:pre #x1
:prim (new 'static 'gs-prim :prim (gs-prim-type tri-fan) :iip #x1 :fge #x1 :abe #x1)
:nreg #x3
)
)
)
((= a1-1 3)
(set! (-> v1-3 base-strgif str-prim)
(new 'static 'gif-tag-prim
:pre #x1
:prim (new 'static 'gs-prim :prim (gs-prim-type line-strip) :iip #x1 :fge #x1 :abe #x1)
:nreg #x3
)
)
(set! (-> v1-3 base-strgif fan-prim)
(new 'static 'gif-tag-prim
:pre #x1
:prim (new 'static 'gs-prim :prim (gs-prim-type tri-fan) :iip #x1 :fge #x1 :abe #x1)
:nreg #x3
)
)
)
)
)
)
(= (/ arg0 8) *subdivide-foreground-draw-mode*)
)
(defun dm-col-rend-on-func ((arg0 object) (arg1 debug-menu-msg))
(let ((v1-0 *col-rend*))
(if (= arg1 (debug-menu-msg press))
(set! (-> v1-0 draw?) (not (-> v1-0 draw?)))
)
(-> v1-0 draw?)
)
)
(defun dm-col-rend-outline-func ((arg0 object) (arg1 debug-menu-msg))
(let ((v1-0 *col-rend*))
(if (= arg1 (debug-menu-msg press))
(set! (-> v1-0 outline?) (not (-> v1-0 outline?)))
)
(-> v1-0 outline?)
)
)
(defun dm-col-rend-back-face-func ((arg0 object) (arg1 debug-menu-msg))
(let ((v1-0 *col-rend*))
(if (= arg1 (debug-menu-msg press))
(set! (-> v1-0 show-back-faces?) (not (-> v1-0 show-back-faces?)))
)
(-> v1-0 show-back-faces?)
)
)
(defun dm-col-rend-normals-func ((arg0 object) (arg1 debug-menu-msg))
(let ((v1-0 *col-rend*))
(if (= arg1 (debug-menu-msg press))
(set! (-> v1-0 show-normals?) (not (-> v1-0 show-normals?)))
)
(-> v1-0 show-normals?)
)
)
(defun dm-col-rend-ghost-hidden-func ((arg0 object) (arg1 debug-menu-msg))
(let ((v1-0 *col-rend*))
(if (= arg1 (debug-menu-msg press))
(set! (-> v1-0 ghost-hidden?) (not (-> v1-0 ghost-hidden?)))
)
(-> v1-0 ghost-hidden?)
)
)
(defun dm-col-rend-track-func ((arg0 int) (arg1 debug-menu-msg))
(let ((v1-0 *col-rend*))
(if (= arg1 (debug-menu-msg press))
(set! (-> v1-0 track) (the-as uint (/ arg0 8)))
)
(= (/ arg0 8) (-> v1-0 track))
)
)
(defun dm-col-rend-show-only-toggle-func ((arg0 uint) (arg1 debug-menu-msg))
(let ((v1-0 *col-rend*))
(when (= arg1 (debug-menu-msg press))
(logxor! (-> v1-0 show-only) arg0)
(set! (-> v1-0 show-only) (logand -57 (-> v1-0 show-only)))
)
(logtest? (-> v1-0 show-only) arg0)
)
)
(defun dm-col-rend-show-only-set-func ((arg0 uint) (arg1 debug-menu-msg))
(let ((v1-0 *col-rend*))
(if (= arg1 (debug-menu-msg press))
(set! (-> v1-0 show-only) arg0)
)
(= (-> v1-0 show-only) arg0)
)
)
(defun dm-col-rend-cspec-toggle ((arg0 uint) (arg1 debug-menu-msg))
(let ((v1-0 *col-rend*))
(if (= arg1 (debug-menu-msg press))
(logxor! (-> v1-0 cspec) (the-as uint arg0))
)
(logtest? (-> v1-0 cspec) arg0)
)
)
(defun dm-col-rend-size ((arg0 object) (arg1 debug-menu-msg) (arg2 float))
(let ((v1-0 *col-rend*))
(if (= arg1 (debug-menu-msg press))
(set! (-> v1-0 bbox-radius) (* 2048.0 arg2))
)
(* 0.00024414062 (* 2.0 (-> v1-0 bbox-radius)))
)
)
(defun dm-col-rend-cam-dist ((arg0 object) (arg1 debug-menu-msg) (arg2 float))
(let ((v1-0 *col-rend*))
(if (= arg1 (debug-menu-msg press))
(set! (-> v1-0 camera-to-bbox-dist) (* 4096.0 arg2))
)
(* 0.00024414062 (-> v1-0 camera-to-bbox-dist))
)
)
(defun dm-ocean-height-func ((arg0 ocean-height-hack) (arg1 debug-menu-msg))
(when (= arg1 (debug-menu-msg press))
(set! *ocean-height-hack* (the-as ocean-height-hack (/ (the-as int arg0) 8)))
(let* ((v1-3 (/ (the-as int arg0) 8))
(f0-0 (cond
((= v1-3 2)
-16384000.0
)
((= v1-3 3)
-216498.17
)
((= v1-3 4)
-265650.2
)
((= v1-3 5)
-314802.2
)
((= v1-3 6)
-368050.2
)
(else
0.0
)
)
)
)
(set-height! *ocean-map-sewer* f0-0)
)
)
(= (/ (the-as int arg0) 8) *ocean-height-hack*)
)
(defun dm-ocean-subdiv-draw-func ((arg0 object) (arg1 debug-menu-msg))
(if (= arg1 (debug-menu-msg press))
(set! *subdivide-ocean-draw-mode* (the-as subdivide-setting (/ (the-as int arg0) 8)))
)
(= (/ (the-as int arg0) 8) *subdivide-ocean-draw-mode*)
)
(defun dm-time-of-day-func ((arg0 dm-time-of-day-setting) (arg1 debug-menu-msg))
(when (= arg1 (debug-menu-msg press))
(cond
((zero? (/ (the-as int arg0) 8))
(send-event (ppointer->process *time-of-day*) 'change 'ratio 0)
(send-event (ppointer->process *time-of-day*) 'change 'hour 7)
(set! (-> *time-of-day-context* mode) (the-as time-of-day-palette-id (/ (the-as int arg0) 8)))
)
((= (/ (the-as int arg0) 8) 1)
(send-event (ppointer->process *time-of-day*) 'change 'ratio 0)
(send-event (ppointer->process *time-of-day*) 'change 'hour 10)
(set! (-> *time-of-day-context* mode) (the-as time-of-day-palette-id (/ (the-as int arg0) 8)))
)
((= (/ (the-as int arg0) 8) 2)
(send-event (ppointer->process *time-of-day*) 'change 'ratio 0)
(send-event (ppointer->process *time-of-day*) 'change 'hour 12)
(set! (-> *time-of-day-context* mode) (the-as time-of-day-palette-id (/ (the-as int arg0) 8)))
)
((= (/ (the-as int arg0) 8) 3)
(send-event (ppointer->process *time-of-day*) 'change 'ratio 0)
(send-event (ppointer->process *time-of-day*) 'change 'hour 14)
(set! (-> *time-of-day-context* mode) (the-as time-of-day-palette-id (/ (the-as int arg0) 8)))
)
((= (/ (the-as int arg0) 8) 4)
(send-event (ppointer->process *time-of-day*) 'change 'ratio 0)
(send-event (ppointer->process *time-of-day*) 'change 'hour 18)
(set! (-> *time-of-day-context* mode) (the-as time-of-day-palette-id (/ (the-as int arg0) 8)))
)
((= (/ (the-as int arg0) 8) 5)
(send-event (ppointer->process *time-of-day*) 'change 'ratio 0)
(send-event (ppointer->process *time-of-day*) 'change 'hour 19)
(set! (-> *time-of-day-context* mode) (the-as time-of-day-palette-id (/ (the-as int arg0) 8)))
)
((= (/ (the-as int arg0) 8) 6)
(send-event (ppointer->process *time-of-day*) 'change 'ratio 0)
(send-event (ppointer->process *time-of-day*) 'change 'hour 23)
(set! (-> *time-of-day-context* mode) (the-as time-of-day-palette-id (/ (the-as int arg0) 8)))
)
((= (/ (the-as int arg0) 8) 7)
(send-event (ppointer->process *time-of-day*) 'change 'ratio 0)
(send-event (ppointer->process *time-of-day*) 'change 'hour 4)
(set! (-> *time-of-day-context* mode) (the-as time-of-day-palette-id (/ (the-as int arg0) 8)))
)
((= (/ (the-as int arg0) 8) 8)
(send-event
(ppointer->process *time-of-day*)
'dest-clock-ratio-set
(if *time-of-day-fast*
#x42700000
#x3f800000
)
600
)
)
(else
(send-event (ppointer->process *time-of-day*) 'change 'ratio 0)
(set! (-> *time-of-day-context* mode)
(logand (logxor (-> *time-of-day-context* mode) (the-as uint (/ (the-as int arg0) 8)))
(time-of-day-palette-id palette-0 palette-1 palette-2 palette-3 palette-4 palette-5 palette-6 palette-7)
)
)
)
)
(send-event (ppointer->process *time-of-day*) 'change 'minutes 0)
(send-event (ppointer->process *time-of-day*) 'change 'seconds 0)
(send-event (ppointer->process *time-of-day*) 'change 'frames 0)
(set! *teleport-count* 1)
)
(cond
((< (the-as int (/ (the-as int arg0) 8)) 9)
(= (/ (the-as int arg0) 8) (-> *time-of-day-context* mode))
)
((< (the-as int (/ (the-as int arg0) 8)) 8)
#f
)
(else
(logtest? (-> *time-of-day-context* mode) (/ (the-as int arg0) 8))
)
)
)
(defun dm-time-of-day-func2 ((arg0 symbol) (arg1 debug-menu-msg))
(when (= arg1 (debug-menu-msg press))
(set! (-> arg0 value) (not (-> arg0 value)))
(if (nonzero? (send-event (ppointer->process *time-of-day*) 'ratio))
(send-event
(ppointer->process *time-of-day*)
'dest-clock-ratio-set
(if *time-of-day-fast*
#x42700000
#x3f800000
)
600
)
)
)
(-> arg0 value)
)
(defun dm-time-of-day-palette-func ((arg0 dm-time-of-day-palette-settings) (arg1 debug-menu-msg))
(when (= arg1 (debug-menu-msg press))
(set! (-> *time-of-day-context* overide-palette) (the-as time-of-day-palette-id (/ (the-as int arg0) 8)))
(cond
((zero? (/ (the-as int arg0) 8))
(set! (-> *time-of-day-context* mode) (time-of-day-palette-id palette-0))
)
((= (/ (the-as int arg0) 8) 1)
(set! (-> *time-of-day-context* mode) (time-of-day-palette-id palette-1))
)
((= (/ (the-as int arg0) 8) 2)
(set! (-> *time-of-day-context* mode) (time-of-day-palette-id palette-2))
)
((= (/ (the-as int arg0) 8) 3)
(set! (-> *time-of-day-context* mode) (time-of-day-palette-id palette-3))
)
((= (/ (the-as int arg0) 8) 4)
(set! (-> *time-of-day-context* mode) (time-of-day-palette-id palette-4))
)
((= (/ (the-as int arg0) 8) 5)
(set! (-> *time-of-day-context* mode) (time-of-day-palette-id palette-5))
)
((= (/ (the-as int arg0) 8) 6)
(set! (-> *time-of-day-context* mode) (time-of-day-palette-id palette-6))
)
((= (/ (the-as int arg0) 8) 7)
(set! (-> *time-of-day-context* mode) (time-of-day-palette-id palette-7))
)
)
(send-event (ppointer->process *time-of-day*) 'change 'ratio 0)
)
(cond
((zero? (/ (the-as int arg0) 8))
(= (-> *time-of-day-context* mode) 16)
)
((= (/ (the-as int arg0) 8) 1)
(= (-> *time-of-day-context* mode) 32)
)
((= (/ (the-as int arg0) 8) 2)
(= (-> *time-of-day-context* mode) 64)
)
((= (/ (the-as int arg0) 8) 3)
(= (-> *time-of-day-context* mode) 128)
)
((= (/ (the-as int arg0) 8) 4)
(= (-> *time-of-day-context* mode) 256)
)
((= (/ (the-as int arg0) 8) 5)
(= (-> *time-of-day-context* mode) 512)
)
((= (/ (the-as int arg0) 8) 6)
(= (-> *time-of-day-context* mode) 1024)
)
((= (/ (the-as int arg0) 8) 7)
(= (-> *time-of-day-context* mode) 2048)
)
)
)
(defun dm-boolean-toggle-pick-func ((arg0 symbol) (arg1 debug-menu-msg))
(if (= arg1 (debug-menu-msg press))
(set! (-> arg0 value) (not (-> arg0 value)))
)
(-> arg0 value)
)
(defun dm-time-of-day-pick-func ((arg0 symbol) (arg1 debug-menu-msg))
(time-of-day-setup (= arg1 (debug-menu-msg press)))
)
(defun dm-stats-memory-func ((arg0 int) (arg1 debug-menu-msg))
(let ((v1-0 (/ arg0 8)))
(if (= arg1 (debug-menu-msg press))
(set! *stats-memory-level-index* v1-0)
)
(= *stats-memory-level-index* v1-0)
)
)
(defun dm-actor-marks-pick-func ((arg0 symbol) (arg1 debug-menu-msg))
(if (= arg1 (debug-menu-msg press))
(set! *display-actor-marks* arg0)
)
(= *display-actor-marks* arg0)
)
(defun dm-select-race-pick-func ((arg0 int) (arg1 debug-menu-msg))
(if (= arg1 (debug-menu-msg press))
(set! *select-race* (the-as race-selection (/ arg0 8)))
)
(= (/ arg0 8) *select-race*)
)
(defun dm-compact-actor-pick-func ((arg0 symbol) (arg1 debug-menu-msg))
(if (= arg1 (debug-menu-msg press))
(set! *compact-actors* arg0)
)
(= *compact-actors* arg0)
)
(defun dm-actor-vis-pick-func ((arg0 symbol) (arg1 debug-menu-msg))
(if (= arg1 (debug-menu-msg press))
(set! *display-actor-vis* arg0)
)
(= *display-actor-vis* arg0)
)
(defun dm-game-mode-pick-func ((arg0 symbol) (arg1 debug-menu-msg))
(if (= arg1 (debug-menu-msg press))
(set! (-> *game-info* mode) arg0)
)
(= (-> *game-info* mode) arg0)
)
(defun dm-game-feature-toggle-pick-func ((arg0 int) (arg1 debug-menu-msg))
(when (= arg1 (debug-menu-msg press))
(logxor! (-> *game-info* features) (the-as uint (/ arg0 8)))
(set! (-> *game-info* debug-features)
(logior (logclear (-> *game-info* debug-features) (/ arg0 8)) (logand (-> *game-info* features) (/ arg0 8)))
)
(if (logtest? (-> *game-info* features) (game-feature gun-yellow gun-red gun-blue gun-dark))
(logior! (-> *game-info* features) (game-feature gun))
(logclear! (-> *game-info* features) (game-feature gun))
)
(if (logtest? (-> *game-info* debug-features) (game-feature gun-yellow gun-red gun-blue gun-dark))
(logior! (-> *game-info* debug-features) (game-feature gun))
(logclear! (-> *game-info* debug-features) (game-feature gun))
)
)
(logtest? (-> *game-info* features) (/ arg0 8))
)
(defun dm-game-secret-toggle-pick-func ((arg0 int) (arg1 debug-menu-msg))
(if (= arg1 (debug-menu-msg press))
(logxor! (-> *game-info* secrets) (the-as uint (/ arg0 8)))
)
(logtest? (-> *game-info* secrets) (/ arg0 8))
)
(defun display-scene-control-toggle-pick-func ((arg0 int) (arg1 debug-menu-msg))
(if (= arg1 (debug-menu-msg press))
(set! *display-scene-control* (logxor *display-scene-control* (the-as uint arg0)))
)
(logtest? *display-scene-control* arg0)
)
(defun display-scene-control-set-pick-func ((arg0 scene-controls) (arg1 debug-menu-msg))
(if (= arg1 (debug-menu-msg press))
(set! *display-scene-control* arg0)
)
(= *display-scene-control* arg0)
)
(defun display-bot-marks-toggle-pick-func ((arg0 int) (arg1 debug-menu-msg))
(if (= arg1 (debug-menu-msg press))
(set! *display-bot-marks* (logxor *display-bot-marks* (the-as uint arg0)))
)
(logtest? *display-bot-marks* arg0)
)
(defun display-bot-marks-set-pick-func ((arg0 bot-marks-controls) (arg1 debug-menu-msg))
(if (= arg1 (debug-menu-msg press))
(set! *display-bot-marks* arg0)
)
(= *display-bot-marks* arg0)
)
(defun display-race-marks-toggle-pick-func ((arg0 int) (arg1 debug-menu-msg))
(if (= arg1 (debug-menu-msg press))
(set! *display-race-marks* (logxor *display-race-marks* (the-as uint arg0)))
)
(logtest? *display-race-marks* arg0)
)
(defun display-race-marks-set-pick-func ((arg0 race-marks-controls) (arg1 debug-menu-msg))
(if (= arg1 (debug-menu-msg press))
(set! *display-race-marks* arg0)
)
(= *display-race-marks* arg0)
)
(defun dm-vu1-user-toggle-pick-func ((arg0 vu1-renderer-mask) (arg1 debug-menu-msg))
(let ((v1-1 (ash 1 (/ (the-as int arg0) 8))))
(if (= arg1 (debug-menu-msg press))
(logxor! (-> *display* vu1-enable-user-menu) (the-as uint v1-1))
)
(logtest? (-> *display* vu1-enable-user-menu) v1-1)
)
)
(defun dm-vu1-user-all-pick-func ((arg0 symbol) (arg1 debug-menu-msg))
(let ((v1-1 (the-as uint #x5fffffff8)))
(if (= arg1 (debug-menu-msg press))
(set! (-> *display* vu1-enable-user-menu) (the-as vu1-renderer-mask v1-1))
)
(= (-> *display* vu1-enable-user-menu) v1-1)
)
)
(defun dm-vu1-user-none-pick-func ((arg0 symbol) (arg1 debug-menu-msg))
(let ((v1-0 0))
(if (= arg1 (debug-menu-msg press))
(set! (-> *display* vu1-enable-user-menu) (the-as vu1-renderer-mask v1-0))
)
(= (-> *display* vu1-enable-user-menu) v1-0)
)
)
(defun dm-texture-user-toggle-pick-func ((arg0 int) (arg1 debug-menu-msg))
(if (= arg1 (debug-menu-msg press))
(logxor! (-> *texture-pool* texture-enable-user-menu) (the-as uint arg0))
)
(logtest? (-> *texture-pool* texture-enable-user-menu) arg0)
)
(defun dm-texture-user-set-pick-func ((arg0 int) (arg1 debug-menu-msg))
(if (= arg1 (debug-menu-msg press))
(set! (-> *texture-pool* texture-enable-user-menu) (the-as texture-enable-mask arg0))
)
(= (-> *texture-pool* texture-enable-user-menu) arg0)
)
(defun dm-strip-lines-toggle-pick-func ((arg0 int) (arg1 debug-menu-msg))
(if (= arg1 (debug-menu-msg press))
(set! *display-strip-lines* (logxor *display-strip-lines* (the-as uint (/ arg0 8))))
)
(logtest? *display-strip-lines* (/ arg0 8))
)
(defun dm-strip-lines-set-pick-func ((arg0 strip-lines-controls) (arg1 debug-menu-msg))
(if (= arg1 (debug-menu-msg press))
(set! *display-strip-lines* (the-as strip-lines-controls (/ (the-as int arg0) 8)))
)
(= *display-strip-lines* (/ (the-as int arg0) 8))
)
(defun dm-edit-instance-toggle-pick-func ((arg0 int) (arg1 debug-menu-msg))
(let ((v1-0 (find-instance-by-name *edit-instance*)))
(when v1-0
(if (= arg1 (debug-menu-msg press))
(logxor! (-> v1-0 flags) (the-as uint arg0))
)
(logtest? (-> v1-0 flags) arg0)
)
)
)
;; WARN: Return type mismatch int vs none.
(defun all-texture-tweak-adjust ((arg0 texture-page-dir) (arg1 float))
;; TODO - currently broken
(none)
)
(defun dm-float-field-tie-rvanish-func ((arg0 symbol) (arg1 debug-menu-msg) (arg2 float) (arg3 float))
"NOTE - Weird cast, it's not an instance-tie...but it is?"
(let ((gp-0 (find-instance-by-name (the-as string (-> arg0 value)))))
(cond
(gp-0
(case (prototype-bucket-type gp-0)
((instance-tie)
(let* ((f0-0 (-> (the-as prototype-bucket-tie gp-0) tie-vanish-far))
(f1-2 (- f0-0 (/ 128.0 (-> (the-as prototype-bucket-tie gp-0) tie-rvanish))))
)
(let ((f2-1 (-> (the-as prototype-bucket-tie gp-0) dists w)))
(when (= arg1 (debug-menu-msg press))
(logior! (-> (the-as prototype-bucket-tie gp-0) flags) (prototype-flags vanish))
(set! f1-2 (fmax (fmin (* 4096.0 arg2) f0-0) (+ 4096.0 f2-1)))
(let ((f0-1 (fmax f0-0 (+ 4096.0 f1-2))))
(set! (-> (the-as prototype-bucket-tie gp-0) tie-rvanish) (/ 128.0 (- f0-1 f1-2)))
(set! (-> (the-as prototype-bucket-tie gp-0) tie-vanish-far) f0-1)
)
)
)
(* 0.00024414062 f1-2)
)
)
(else
(empty)
arg3
)
)
)
(else
(empty)
arg3
)
)
)
)
(defun dm-float-field-tie-vanish-far-func ((arg0 symbol) (arg1 debug-menu-msg) (arg2 float) (arg3 float))
"NOTE - Weird cast, it's not an instance-tie...but it is?"
(let ((gp-0 (find-instance-by-name (the-as string (-> arg0 value)))))
(cond
(gp-0
(case (prototype-bucket-type gp-0)
((instance-tie)
(let ((f0-0 (-> (the-as prototype-bucket-tie gp-0) tie-vanish-far)))
(let ((f2-1 (- f0-0 (/ 128.0 (-> (the-as prototype-bucket-tie gp-0) tie-rvanish))))
(f1-2 (-> (the-as prototype-bucket-tie gp-0) dists w))
)
(when (= arg1 (debug-menu-msg press))
(logior! (-> (the-as prototype-bucket-tie gp-0) flags) (prototype-flags vanish))
(set! f0-0 (fmax (* 4096.0 arg2) (+ 4096.0 f2-1)))
(let ((f1-4 (fmax (fmin f2-1 f0-0) (+ 4096.0 f1-2))))
(set! (-> (the-as prototype-bucket-tie gp-0) tie-rvanish) (/ 128.0 (- f0-0 f1-4)))
)
(set! (-> (the-as prototype-bucket-tie gp-0) tie-vanish-far) f0-0)
)
)
(* 0.00024414062 f0-0)
)
)
(else
(empty)
arg3
)
)
)
(else
(empty)
arg3
)
)
)
)
(defun dm-bug-report-output-pick-func ((arg0 symbol) (arg1 debug-menu-msg))
(if (= arg1 (debug-menu-msg press))
(set! *bug-report-output-mode* arg0)
)
(= *bug-report-output-mode* arg0)
)
(defun dm-bug-report-report-pick-func ((arg0 symbol) (arg1 debug-menu-msg))
(if (= arg1 (debug-menu-msg press))
(bug-report-display arg0)
)
0
(none)
)
(defun debug-menu-node<? ((arg0 debug-menu-node) (arg1 debug-menu-node))
(string<=? (-> arg0 name) (-> arg1 name))
)
(defun dm-shader-pick-func ((arg0 texture-id) (arg1 debug-menu-msg))
(if (and (= arg1 (debug-menu-msg press))
*texture-page-dir*
(-> *texture-page-dir* entries (-> arg0 page) page)
(-> *texture-page-dir* entries (-> arg0 page) link)
(nonzero? (-> *texture-page-dir* entries (-> arg0 page) link next (-> arg0 index)))
)
(set! *edit-shader* arg0)
)
(and (nonzero? *edit-shader*) (= arg0 *edit-shader*))
)
(define *shader-pick-menu* (the-as debug-menu #f))
;; WARN: Return type mismatch pair vs none.
(defun build-shader-list ()
(debug-menu-remove-all-items *shader-pick-menu*)
(when *texture-page-dir*
(dotimes (gp-0 (-> *texture-page-dir* length))
(let ((s5-0 (-> *texture-page-dir* entries gp-0 page))
(s4-0 (-> *texture-page-dir* entries gp-0 link))
)
(when (and s5-0 s4-0)
(dotimes (s3-0 (-> s5-0 length))
(when (and (-> s5-0 data s3-0) (nonzero? (-> s4-0 next s3-0)))
(let ((a1-1 (new
'debug
'debug-menu-item-flag
(-> s5-0 data s3-0 name)
(logior (shr (shl s3-0 52) 44) (shr (shl gp-0 52) 32))
dm-shader-pick-func
)
)
)
(debug-menu-append-item *shader-pick-menu* a1-1)
)
)
)
)
)
)
)
(set! (-> *shader-pick-menu* items) (sort (-> *shader-pick-menu* items) debug-menu-node<?))
(none)
)
;; WARN: Return type mismatch object vs basic.
(defun dm-instance-pick-func ((arg0 string) (arg1 debug-menu-msg))
(when (= arg1 (debug-menu-msg press))
(if (find-instance-by-name arg0)
(set! *edit-instance* arg0)
(set! *edit-instance* #f)
)
)
(the-as basic (and *edit-instance* (string= arg0 *edit-instance*)))
)
(defun dm-enable-instance-func ((arg0 string) (arg1 debug-menu-msg))
(let ((v1-0 (find-instance-by-name arg0)))
(cond
(v1-0
(if (= arg1 (debug-menu-msg press))
(logxor! (-> v1-0 flags) (prototype-flags disable))
)
(not (logtest? (-> v1-0 flags) (prototype-flags disable)))
)
(else
#f
)
)
)
)
(define *instance-shrub-menu* (the-as debug-menu #f))
(define *instance-tie-menu* (the-as debug-menu #f))
(define *enable-instance-shrub-menu* (the-as debug-menu #f))
(define *enable-instance-tie-menu* (the-as debug-menu #f))
(defun build-instance-list ((arg0 object))
(debug-menu-remove-all-items *instance-shrub-menu*)
(debug-menu-remove-all-items *instance-tie-menu*)
(debug-menu-remove-all-items *enable-instance-shrub-menu*)
(debug-menu-remove-all-items *enable-instance-tie-menu*)
(set! *display-instance-info* #f)
(dotimes (gp-0 (-> *level* length))
(let ((v1-3 (-> *level* level gp-0)))
(when (= (-> v1-3 status) 'active)
(let ((s5-0 (-> v1-3 bsp drawable-trees)))
(dotimes (s4-0 (-> s5-0 length))
(let ((v1-7 (-> s5-0 trees s4-0)))
(case (-> v1-7 type)
((drawable-tree-instance-shrub)
(let ((s3-0 (-> (the-as drawable-tree-instance-shrub v1-7) info prototype-inline-array-shrub)))
(dotimes (s2-0 (-> s3-0 length))
(let ((a1-4
(new 'debug 'debug-menu-item-flag (-> s3-0 data s2-0 name) (-> s3-0 data s2-0 name) dm-instance-pick-func)
)
)
(debug-menu-append-item *instance-shrub-menu* a1-4)
)
(let ((a1-6
(new 'debug 'debug-menu-item-flag (-> s3-0 data s2-0 name) (-> s3-0 data s2-0 name) dm-enable-instance-func)
)
)
(set! (-> a1-6 is-on) #t)
(debug-menu-append-item *enable-instance-shrub-menu* a1-6)
)
)
)
)
((drawable-tree-instance-tie)
(let ((s3-1 (-> (the-as drawable-tree-instance-tie v1-7) prototypes prototype-array-tie)))
(dotimes (s2-1 (-> s3-1 length))
(let ((a1-9
(new
'debug
'debug-menu-item-flag
(-> s3-1 array-data s2-1 name)
(-> s3-1 array-data s2-1 name)
dm-instance-pick-func
)
)
)
(debug-menu-append-item *instance-tie-menu* a1-9)
)
(let ((a1-11
(new
'debug
'debug-menu-item-flag
(-> s3-1 array-data s2-1 name)
(-> s3-1 array-data s2-1 name)
dm-enable-instance-func
)
)
)
(set! (-> a1-11 is-on) #t)
(debug-menu-append-item *enable-instance-tie-menu* a1-11)
)
)
)
)
)
)
)
)
)
)
)
(set! (-> *instance-shrub-menu* items)
(sort
(-> *instance-shrub-menu* items)
(lambda ((arg0 debug-menu) (arg1 debug-menu)) (string<=? (-> arg0 name) (-> arg1 name)))
)
)
(set! (-> *instance-tie-menu* items)
(sort
(-> *instance-tie-menu* items)
(lambda ((arg0 debug-menu) (arg1 debug-menu)) (string<=? (-> arg0 name) (-> arg1 name)))
)
)
(set! (-> *enable-instance-shrub-menu* items)
(sort
(-> *enable-instance-shrub-menu* items)
(lambda ((arg0 debug-menu) (arg1 debug-menu)) (string<=? (-> arg0 name) (-> arg1 name)))
)
)
(set! (-> *enable-instance-tie-menu* items)
(sort
(-> *enable-instance-tie-menu* items)
(lambda ((arg0 debug-menu) (arg1 debug-menu)) (string<=? (-> arg0 name) (-> arg1 name)))
)
)
0
(none)
)
(defun dm-scene-load-pick-func ((arg0 pair) (arg1 debug-menu-msg))
(when (= arg1 (debug-menu-msg press))
(let ((s5-0 *display-profile*))
(play-clean #f)
(set! *display-profile* s5-0)
)
(let ((s5-1 (car (cdr arg0))))
(when (and (type? s5-1 string) (or (string= (the-as string s5-1) "outro-palace")
(string= (the-as string s5-1) "outro-hiphog")
(string= (the-as string s5-1) "outro-port")
(string= (the-as string s5-1) "outro-nest")
)
)
(set! (-> palout memory-mode) (load-buffer-mode borrow))
(set! (-> hiphog memory-mode) (load-buffer-mode small-center))
)
(process-spawn scene-player :init scene-player-init s5-1 #t (car arg0))
)
(debug-menu-context-send-msg *debug-menu-context* (debug-menu-msg deactivate) (debug-menu-dest activation))
(set-master-mode 'game)
)
#f
)
;; WARN: Return type mismatch object vs none.
(defun debug-create-cam-restore ()
(cond
(*math-camera*
(format #t "(defun-debug cam-restore ()~%")
(format #t " ;;this function is a hack, don't use it as an example~%")
(format #t " (let ((pos (new 'stack 'vector))~%")
(format #t " (rot (new 'stack 'matrix)))~%")
(format #t " (set! (-> pos x) ~12F)~%" (-> *math-camera* trans x))
(format #t " (set! (-> pos y) ~12F)~%" (-> *math-camera* trans y))
(format #t " (set! (-> pos z) ~12F)~%" (-> *math-camera* trans z))
(format #t " (set! (-> pos w) 1.0)~%")
(format #t " (set! (-> rot data 0) ~12F)~%" (-> *math-camera* inv-camera-rot vector 0 x))
(format #t " (set! (-> rot data 1) ~12F)~%" (-> *math-camera* inv-camera-rot vector 0 y))
(format #t " (set! (-> rot data 2) ~12F)~%" (-> *math-camera* inv-camera-rot vector 0 z))
(format #t " (set! (-> rot data 3) ~12F)~%" (-> *math-camera* inv-camera-rot vector 0 w))
(format #t " (set! (-> rot data 4) ~12F)~%" (-> *math-camera* inv-camera-rot vector 1 x))
(format #t " (set! (-> rot data 5) ~12F)~%" (-> *math-camera* inv-camera-rot vector 1 y))
(format #t " (set! (-> rot data 6) ~12F)~%" (-> *math-camera* inv-camera-rot vector 1 z))
(format #t " (set! (-> rot data 7) ~12F)~%" (-> *math-camera* inv-camera-rot vector 1 w))
(format #t " (set! (-> rot data 8) ~12F)~%" (-> *math-camera* inv-camera-rot vector 2 x))
(format #t " (set! (-> rot data 9) ~12F)~%" (-> *math-camera* inv-camera-rot vector 2 y))
(format #t " (set! (-> rot data 10) ~12F)~%" (-> *math-camera* inv-camera-rot vector 2 z))
(format #t " (set! (-> rot data 11) ~12F)~%" (-> *math-camera* inv-camera-rot vector 2 w))
(format #t " (set! (-> rot data 12) ~12F)~%" 0)
(format #t " (set! (-> rot data 13) ~12F)~%" 0)
(format #t " (set! (-> rot data 14) ~12F)~%" 0)
(format #t " (set! (-> rot data 15) ~12F)~%" #x3f800000)
(let ((gp-0 (new 'stack-no-clear 'euler-angles)))
(matrix->eul gp-0 (-> *math-camera* inv-camera-rot) 21)
(format #t " ;; euler angles (xyz order degrees) x ~R y ~R z ~R~%" (-> gp-0 x) (-> gp-0 y) (-> gp-0 z))
(format
#t
" ;; MAYA euler angles (xyz order degrees) x ~R y ~R z ~R~%"
(-> gp-0 x)
(- 32768.0 (-> gp-0 y))
(-> gp-0 z)
)
)
(format #t " (debug-set-camera-pos-rot! pos rot)~%")
(format #t " (send-event *camera* 'set-fov (deg ~f))~%" (* 0.005493164 (-> *math-camera* fov)))
(format #t " (clear *camera-old-level*)~%")
(format #t " (format *camera-old-level* \"~A\")~%" (-> *level* level0 name))
(let ((t9-31 format)
(a0-31 #t)
(a1-31 " (set! *camera-old-cpu* ~D)~%")
(a2-25 (-> *display* frames (-> *display* last-screen) profile-array data 0))
)
(t9-31 a0-31 a1-31 (- (-> a2-25 data 0 end-time) (-> a2-25 data 0 start-time)))
)
(let ((t9-32 format)
(a0-32 #t)
(a1-32 " (set! *camera-old-vu* ~D)~%")
(a2-29 (-> *display* frames (-> *display* on-screen) profile-array data 1))
)
(t9-32 a0-32 a1-32 (- (-> a2-29 data 0 end-time) (-> a2-29 data 0 start-time)))
)
(compute-memory-usage! (-> *level* level0) #f)
(format #t " (set! *camera-old-tfrag-bytes* ~D)~%" (+ (-> *level* level0 mem-usage-block data 1 total)
(-> *level* level0 mem-usage-block data 2 total)
(-> *level* level0 mem-usage-block data 3 total)
(-> *level* level0 mem-usage-block data 4 total)
(-> *level* level0 mem-usage-block data 5 total)
(-> *level* level0 mem-usage-block data 6 total)
(-> *level* level0 mem-usage-block data 7 total)
(-> *level* level0 mem-usage-block data 8 total)
)
)
(format #t " (clear *camera-old-stat-string-tfrag*)~%")
(format #t " (clear *camera-old-stat-string-tfrag-near*)~%")
(format #t " (clear *camera-old-stat-string-total*)~%")
(when *stats-poly*
(format #t " (format *camera-old-stat-string-tfrag* \"~S\")~%" *stat-string-tfrag*)
(format #t " (format *camera-old-stat-string-tfrag-near* \"~S\")~%" *stat-string-tfrag-scissor*)
(format #t " (format *camera-old-stat-string-total* \"~S\")~%" *stat-string-total*)
)
(format #t " (set! *display-camera-old-stats* #t)~%")
(format #t " )~%")
(format #t " )~%")
)
(else
(format #t "camera save failed~%")
)
)
(none)
)
(defun debug-menu-make-camera-mode-menu ((arg0 debug-menu) (arg1 debug-menu))
(new 'debug 'debug-menu-item-submenu "Camera" arg0)
(let ((a1-3 (new 'debug 'debug-menu-item-submenu "Mode" arg1)))
(debug-menu-append-item arg0 a1-3)
)
(let ((a1-5 (new 'debug 'debug-menu-item-flag "Default" #f dm-cam-mode-default)))
(debug-menu-append-item arg1 a1-5)
)
(let ((a1-7 (new 'debug 'debug-menu-item-flag "Free-floating" cam-free-floating dm-cam-mode-func)))
(debug-menu-append-item arg1 a1-7)
)
(let ((a1-9 (new 'debug 'debug-menu-item-flag "Fixed" cam-fixed dm-cam-mode-func)))
(debug-menu-append-item arg1 a1-9)
)
(let ((a1-11 (new 'debug 'debug-menu-item-flag "Pov" cam-pov dm-cam-mode-func)))
(debug-menu-append-item arg1 a1-11)
)
(let ((a1-13 (new 'debug 'debug-menu-item-flag "Pov180" cam-pov180 dm-cam-mode-func)))
(debug-menu-append-item arg1 a1-13)
)
(let ((a1-15 (new 'debug 'debug-menu-item-flag "Pov-track" cam-pov-track dm-cam-mode-func)))
(debug-menu-append-item arg1 a1-15)
)
(let ((a1-17 (new 'debug 'debug-menu-item-flag "Decel" cam-decel dm-cam-mode-func)))
(debug-menu-append-item arg1 a1-17)
)
(let ((a1-19 (new 'debug 'debug-menu-item-flag "Endless fall" cam-endlessfall dm-cam-mode-func)))
(debug-menu-append-item arg1 a1-19)
)
(let ((a1-21 (new 'debug 'debug-menu-item-flag "Eye" cam-eye dm-cam-mode-func)))
(debug-menu-append-item arg1 a1-21)
)
(let ((a1-23 (new 'debug 'debug-menu-item-flag "Stick" cam-stick dm-cam-mode-func)))
(debug-menu-append-item arg1 a1-23)
)
(let ((a1-25 (new 'debug 'debug-menu-item-flag "String" cam-string dm-cam-mode-func)))
(debug-menu-append-item arg1 a1-25)
)
(let ((a1-27 (new 'debug 'debug-menu-item-flag "Standoff" cam-standoff dm-cam-mode-func)))
(debug-menu-append-item arg1 a1-27)
)
(let ((a1-29 (new 'debug 'debug-menu-item-flag "Circular" cam-circular dm-cam-mode-func)))
(debug-menu-append-item arg1 a1-29)
)
(let ((a1-31 (new 'debug 'debug-menu-item-flag "Look At" cam-lookat dm-cam-mode-func)))
(debug-menu-append-item arg1 a1-31)
)
(let ((a1-33 (new 'debug 'debug-menu-item-flag "Center of world" cam-point-watch dm-cam-mode-func)))
(debug-menu-append-item arg1 a1-33)
)
(let ((a1-35 (new 'debug 'debug-menu-item-flag "Spline" cam-spline dm-cam-mode-func)))
(debug-menu-append-item arg1 a1-35)
)
(let ((a1-37 (new 'debug 'debug-menu-item-flag "Bike" cam-bike dm-cam-mode-func)))
(debug-menu-append-item arg1 a1-37)
)
(let ((a1-39 (new 'debug 'debug-menu-item-flag "Robotboss" cam-robotboss dm-cam-mode-func)))
(debug-menu-append-item arg1 a1-39)
)
)
(defun debug-menu-make-camera-menu ((arg0 debug-menu-context))
(let* ((gp-0 (new 'debug 'debug-menu arg0 "Camera menu"))
(s5-0 (new 'debug 'debug-menu-item-submenu "Camera" gp-0))
)
(let ((a1-3 (new 'debug 'debug-menu arg0 "Camera mode menu")))
(debug-menu-make-camera-mode-menu gp-0 a1-3)
)
(let ((s3-0 (new 'debug 'debug-menu arg0 "Camera externalize menu")))
(let ((a1-6 (new 'debug 'debug-menu-item-submenu "External" s3-0)))
(debug-menu-append-item gp-0 a1-6)
)
(let ((a1-8 (new 'debug 'debug-menu-item-flag "CPad 0" 'pad-0 dm-cam-externalize)))
(debug-menu-append-item s3-0 a1-8)
)
(let ((a1-10 (new 'debug 'debug-menu-item-flag "CPad 1" 'pad-1 dm-cam-externalize)))
(debug-menu-append-item s3-0 a1-10)
)
(let ((a1-12 (new 'debug 'debug-menu-item-flag "Lock" 'locked dm-cam-externalize)))
(debug-menu-append-item s3-0 a1-12)
)
(let ((a1-14 (new 'debug 'debug-menu-item-flag "Reset" 'reset dm-cam-externalize)))
(debug-menu-append-item s3-0 a1-14)
)
(let ((a1-16 (new 'debug 'debug-menu-item-flag "Allow z rot" 'allow-z dm-cam-externalize)))
(debug-menu-append-item s3-0 a1-16)
)
(let ((s2-0 (new 'debug 'debug-menu-item-var "Fov" 0 80)))
(debug-menu-item-var-make-float s2-0 dm-cam-render-float 1.0 #t 15.0 180.0 1)
(debug-menu-append-item s3-0 s2-0)
)
)
(let ((s3-1 (new 'debug 'debug-menu arg0 "Camera collision menu")))
(let ((a1-22 (new 'debug 'debug-menu-item-submenu "Collision" s3-1)))
(debug-menu-append-item gp-0 a1-22)
)
(let ((a1-24 (new 'debug 'debug-menu-item-flag "Record" '*record-cam-collide-history* dm-boolean-toggle-pick-func))
)
(debug-menu-append-item s3-1 a1-24)
)
(let ((a1-26
(new 'debug 'debug-menu-item-flag "Display" '*display-cam-collide-history* dm-boolean-toggle-pick-func)
)
)
(debug-menu-append-item s3-1 a1-26)
)
)
(let ((s4-1 (new 'debug 'debug-menu arg0 "Camera settings menu")))
(let ((a1-29 (new 'debug 'debug-menu-item-submenu "Settings" s4-1)))
(debug-menu-append-item gp-0 a1-29)
)
(let ((a1-31 (new 'debug 'debug-menu-item-flag "Default" #f dm-cam-settings-default)))
(debug-menu-append-item s4-1 a1-31)
)
(let ((s3-2 (new 'debug 'debug-menu-item-var "Fov" (the-as int 'fov) 80)))
(debug-menu-item-var-make-float
s3-2
(the-as (function int debug-menu-msg float float float) dm-cam-setting-float)
1.0
#t
15.0
180.0
1
)
(debug-menu-append-item s4-1 s3-2)
)
(let ((a1-36 (new 'debug 'debug-menu-item-flag "Butt cam" 0 dm-cam-settings-func)))
(debug-menu-append-item s4-1 a1-36)
)
(let ((a1-38 (new 'debug 'debug-menu-item-flag "Same side" 1 dm-cam-settings-func)))
(debug-menu-append-item s4-1 a1-38)
)
(let ((a1-40 (new 'debug 'debug-menu-item-flag "Move spherical" 2 dm-cam-settings-func)))
(debug-menu-append-item s4-1 a1-40)
)
(let ((a1-42 (new 'debug 'debug-menu-item-flag "Drag" 3 dm-cam-settings-func)))
(debug-menu-append-item s4-1 a1-42)
)
(let ((a1-44 (new 'debug 'debug-menu-item-flag "Allow Z rot" 4 dm-cam-settings-func)))
(debug-menu-append-item s4-1 a1-44)
)
(let ((a1-46 (new 'debug 'debug-menu-item-flag "Pitch for jump" 6 dm-cam-settings-func)))
(debug-menu-append-item s4-1 a1-46)
)
(let ((a1-48 (new 'debug 'debug-menu-item-flag "Find hidden target" 7 dm-cam-settings-func)))
(debug-menu-append-item s4-1 a1-48)
)
(let ((a1-50 (new 'debug 'debug-menu-item-flag "Collide" 8 dm-cam-settings-func)))
(debug-menu-append-item s4-1 a1-50)
)
(let ((a1-52 (new 'debug 'debug-menu-item-flag "Line of Sight" 9 dm-cam-settings-func)))
(debug-menu-append-item s4-1 a1-52)
)
(let ((a1-54 (new 'debug 'debug-menu-item-flag "No Rotate" 10 dm-cam-settings-func)))
(debug-menu-append-item s4-1 a1-54)
)
(let ((a1-56 (new 'debug 'debug-menu-item-flag "Sticky Angle" 11 dm-cam-settings-func)))
(debug-menu-append-item s4-1 a1-56)
)
(let ((s3-3 (new 'debug 'debug-menu-item-var "Interp Frms" 40 80)))
(debug-menu-item-var-make-int s3-3 dm-cam-settings-func-int 1 #f 0 0 #f)
(debug-menu-append-item s4-1 s3-3)
)
(let ((a1-61 (new
'debug
'debug-menu-item-flag
"no mip/lod correction"
'*camera-no-mip-correction*
dm-boolean-toggle-pick-func
)
)
)
(debug-menu-append-item s4-1 a1-61)
)
(let ((a1-63
(new 'debug 'debug-menu-item-flag "last attacker" '*display-camera-last-attacker* dm-boolean-toggle-pick-func)
)
)
(debug-menu-append-item s4-1 a1-63)
)
(let ((a1-65 (new 'debug 'debug-menu-item-flag "old stats" '*display-camera-old-stats* dm-boolean-toggle-pick-func))
)
(debug-menu-append-item s4-1 a1-65)
)
(let ((a1-67 (new 'debug 'debug-menu-item-flag "xyz axes" '*display-xyz-axes* dm-boolean-toggle-pick-func)))
(debug-menu-append-item s4-1 a1-67)
)
(let ((a1-69
(new 'debug 'debug-menu-item-flag "Master Marks" '*display-cam-master-marks* dm-boolean-toggle-pick-func)
)
)
(debug-menu-append-item s4-1 a1-69)
)
(let ((a1-71 (new 'debug 'debug-menu-item-flag "Other Marks" '*display-cam-other* dm-boolean-toggle-pick-func)))
(debug-menu-append-item s4-1 a1-71)
)
(let ((a1-73 (new 'debug 'debug-menu-item-flag "los debug" '*display-cam-los-debug* dm-boolean-toggle-pick-func)))
(debug-menu-append-item s4-1 a1-73)
)
(let ((a1-75 (new 'debug 'debug-menu-item-flag "los info" '*display-cam-los-info* dm-boolean-toggle-pick-func)))
(debug-menu-append-item s4-1 a1-75)
)
(let ((a1-77 (new 'debug 'debug-menu-item-flag "los Marks" '*display-cam-los-marks* dm-boolean-toggle-pick-func)))
(debug-menu-append-item s4-1 a1-77)
)
(let ((a1-79 (new 'debug 'debug-menu-item-flag "coll Marks" '*display-cam-coll-marks* dm-boolean-toggle-pick-func))
)
(debug-menu-append-item s4-1 a1-79)
)
(let ((a1-81 (new 'debug 'debug-menu-item-flag "Camera Marks" '*display-camera-marks* dm-boolean-toggle-pick-func))
)
(debug-menu-append-item s4-1 a1-81)
)
)
(let ((a1-83 (new 'debug 'debug-menu-item-flag "Edit" '*cam-layout* (lambda ((arg0 symbol) (arg1 debug-menu-msg))
(when (= arg1 (debug-menu-msg press))
(if (-> arg0 value)
(cam-layout-stop)
(cam-layout-start)
)
)
(-> arg0 value)
)
)
)
)
(debug-menu-append-item gp-0 a1-83)
)
(let ((a1-85 (new
'debug
'debug-menu-item-function
"Save Pos"
#f
(the-as (function object object) debug-create-cam-restore)
)
)
)
(debug-menu-append-item gp-0 a1-85)
)
s5-0
)
)
(defun debug-menu-make-shader-menu ((arg0 debug-menu-context))
(let* ((gp-0 (new 'debug 'debug-menu arg0 "Shader menu"))
(s5-0 (new 'debug 'debug-menu-item-submenu "Shader" gp-0))
)
(let ((a3-3 (new 'debug 'debug-menu arg0 "Shader pick menu")))
(set! *shader-pick-menu* a3-3)
(let ((a1-4 (new 'debug 'debug-menu-item-submenu "Pick Shader" a3-3)))
(debug-menu-append-item gp-0 a1-4)
)
)
(let ((a1-6 (new 'debug 'debug-menu-item-function "Refresh" #f (the-as (function object object) build-shader-list)))
)
(debug-menu-append-item gp-0 a1-6)
)
(let ((s4-1 (new 'debug 'debug-menu-item-var "tweak" (the-as int '*edit-shader*) 80)))
(debug-menu-item-var-make-float
s4-1
(the-as
(function int debug-menu-msg float float float)
(lambda ((arg0 symbol) (arg1 debug-menu-msg) (arg2 float) (arg3 float))
(cond
(*texture-page-dir*
(let* ((s4-0 (the-as texture-id (-> arg0 value)))
(gp-0 (lookup-texture-by-id s4-0))
(v1-3 (-> *texture-page-dir* entries (-> s4-0 page) link))
)
(cond
((and gp-0 v1-3)
(when (= arg1 (debug-menu-msg press))
(set! (-> gp-0 uv-dist) arg2)
(let ((s5-1 (the-as object (* (-> v1-3 next (-> s4-0 index) shader) 16))))
(while (nonzero? (the-as uint s5-1))
(adgif-shader-update! (the-as adgif-shader s5-1) gp-0)
(set! s5-1 (* (-> (the-as adgif-shader s5-1) next shader) 16))
)
)
)
(-> gp-0 uv-dist)
)
(else
(empty)
arg3
)
)
)
)
(else
(empty)
arg3
)
)
)
)
0.1
#t
0.1
30.0
1
)
(debug-menu-append-item gp-0 s4-1)
)
(let ((a1-11
(new
'debug
'debug-menu-item-function
"all tweak+"
#f
(the-as (function object object) (lambda () (all-texture-tweak-adjust *texture-page-dir* 0.1) (none)))
)
)
)
(debug-menu-append-item gp-0 a1-11)
)
(let ((a1-13
(new
'debug
'debug-menu-item-function
"all tweak-"
#f
(the-as (function object object) (lambda () (all-texture-tweak-adjust *texture-page-dir* -0.1) (none)))
)
)
)
(debug-menu-append-item gp-0 a1-13)
)
(let ((s4-2 (new 'debug 'debug-menu-item-var "l" (the-as int '*edit-shader*) 80)))
(debug-menu-item-var-make-int
s4-2
(the-as
(function int debug-menu-msg int int int)
(lambda ((arg0 symbol) (arg1 debug-menu-msg) (arg2 float) (arg3 float))
(the-as float (cond
(*texture-page-dir*
(let* ((v1-1 (the-as texture-id (-> arg0 value)))
(a0-3 (-> *texture-page-dir* entries (-> v1-1 page) link))
)
(cond
(a0-3
(when (= arg1 (debug-menu-msg press))
(let ((a1-8 (the-as object (* (-> a0-3 next (-> v1-1 index) shader) 16))))
(while (nonzero? (the-as uint a1-8))
(set! (-> (the-as adgif-shader a1-8) tex1 l) (the-as int arg2))
(set! a1-8 (* (-> (the-as adgif-shader a1-8) next shader) 16))
)
)
)
(let ((v1-8 (the-as object (* (-> a0-3 next (-> v1-1 index) shader) 16))))
(if (nonzero? (the-as uint v1-8))
(-> (the-as adgif-shader v1-8) tex1 l)
arg3
)
)
)
(else
arg3
)
)
)
)
(else
arg3
)
)
)
)
)
1
#t
0
3
#f
)
(debug-menu-append-item gp-0 s4-2)
)
(let ((s4-3 (new 'debug 'debug-menu-item-var "k" (the-as int '*edit-shader*) 80)))
(debug-menu-item-var-make-int
s4-3
(the-as
(function int debug-menu-msg int int int)
(lambda ((arg0 symbol) (arg1 debug-menu-msg) (arg2 float) (arg3 float))
(the-as
float
(cond
(*texture-page-dir*
(let* ((v1-1 (the-as texture-id (-> arg0 value)))
(a0-3 (-> *texture-page-dir* entries (-> v1-1 page) link))
)
(cond
(a0-3
(when (= arg1 (debug-menu-msg press))
(let ((a1-8 (the-as object (* (the-as int (-> a0-3 next (-> v1-1 index) shader)) 16))))
(while (nonzero? (the-as int a1-8))
(set! (-> (the-as adgif-shader a1-8) tex1 k) (the-as int arg2))
(set! a1-8 (* (-> (the-as adgif-shader a1-8) next shader) 16))
)
)
)
(let ((v1-8 (the-as object (* (-> a0-3 next (-> v1-1 index) shader) 16))))
(if (nonzero? (the-as uint v1-8))
(sar (shl (the-as int (the-as adgif-shader (-> (the-as adgif-shader v1-8) tex1))) 20) 52)
arg3
)
)
)
(else
arg3
)
)
)
)
(else
arg3
)
)
)
)
)
1
#t
-2048
2047
#f
)
(debug-menu-append-item gp-0 s4-3)
)
(let ((s4-4 (new 'debug 'debug-menu-item-var "mmin" (the-as int '*edit-shader*) 80)))
(debug-menu-item-var-make-int
s4-4
(the-as
(function int debug-menu-msg int int int)
(lambda ((arg0 symbol) (arg1 debug-menu-msg) (arg2 float) (arg3 float))
(the-as float (cond
(*texture-page-dir*
(let* ((v1-1 (the-as texture-id (-> arg0 value)))
(a0-3 (-> *texture-page-dir* entries (-> v1-1 page) link))
)
(cond
(a0-3
(when (= arg1 (debug-menu-msg press))
(let ((a1-8 (the-as object (* (-> a0-3 next (-> v1-1 index) shader) 16))))
(while (nonzero? (the-as uint a1-8))
(set! (-> (the-as adgif-shader a1-8) tex1 mmin) (the-as int arg2))
(set! a1-8 (* (-> (the-as adgif-shader a1-8) next shader) 16))
)
)
)
(let ((v1-8 (the-as object (* (-> a0-3 next (-> v1-1 index) shader) 16))))
(if (nonzero? (the-as uint v1-8))
(-> (the-as adgif-shader v1-8) tex1 mmin)
arg3
)
)
)
(else
arg3
)
)
)
)
(else
arg3
)
)
)
)
)
1
#t
0
5
#t
)
(debug-menu-append-item gp-0 s4-4)
)
(let ((s4-5 (new 'debug 'debug-menu-item-var "mmag" (the-as int '*edit-shader*) 80)))
(debug-menu-item-var-make-int
s4-5
(the-as
(function int debug-menu-msg int int int)
(lambda ((arg0 symbol) (arg1 debug-menu-msg) (arg2 float) (arg3 float))
(the-as float (cond
(*texture-page-dir*
(let* ((v1-1 (the-as texture-id (-> arg0 value)))
(a0-3 (-> *texture-page-dir* entries (-> v1-1 page) link))
)
(cond
(a0-3
(when (= arg1 (debug-menu-msg press))
(let ((a1-8 (the-as object (* (-> a0-3 next (-> v1-1 index) shader) 16))))
(while (nonzero? (the-as uint a1-8))
(set! (-> (the-as adgif-shader a1-8) tex1 mmag) (the-as int arg2))
(set! a1-8 (* (-> (the-as adgif-shader a1-8) next shader) 16))
)
)
)
(let ((v1-8 (the-as object (* (-> a0-3 next (-> v1-1 index) shader) 16))))
(if (nonzero? (the-as uint v1-8))
(-> (the-as adgif-shader v1-8) tex1 mmag)
arg3
)
)
)
(else
arg3
)
)
)
)
(else
arg3
)
)
)
)
)
1
#t
0
1
#t
)
(debug-menu-append-item gp-0 s4-5)
)
(let ((s4-6 (new 'debug 'debug-menu-item-var "lcm" (the-as int '*edit-shader*) 80)))
(debug-menu-item-var-make-int
s4-6
(the-as
(function int debug-menu-msg int int int)
(lambda ((arg0 symbol) (arg1 debug-menu-msg) (arg2 float) (arg3 float))
(the-as float (cond
(*texture-page-dir*
(let* ((v1-1 (the-as texture-id (-> arg0 value)))
(a0-3 (-> *texture-page-dir* entries (-> v1-1 page) link))
)
(cond
(a0-3
(when (= arg1 (debug-menu-msg press))
(let ((a1-8 (the-as object (* (-> a0-3 next (-> v1-1 index) shader) 16))))
(while (nonzero? (the-as uint a1-8))
(set! (-> (the-as adgif-shader a1-8) tex1 lcm) (the-as int arg2))
(set! a1-8 (* (-> (the-as adgif-shader a1-8) next shader) 16))
)
)
)
(let ((v1-8 (the-as object (* (-> a0-3 next (-> v1-1 index) shader) 16))))
(if (nonzero? (the-as uint v1-8))
(-> (the-as adgif-shader v1-8) tex1 lcm)
arg3
)
)
)
(else
arg3
)
)
)
)
(else
arg3
)
)
)
)
)
1
#t
0
1
#t
)
(debug-menu-append-item gp-0 s4-6)
)
(let ((s4-7 (new 'debug 'debug-menu-item-var "tfx" (the-as int '*edit-shader*) 80)))
(debug-menu-item-var-make-int
s4-7
(the-as
(function int debug-menu-msg int int int)
(lambda ((arg0 symbol) (arg1 debug-menu-msg) (arg2 float) (arg3 float))
(the-as
float
(cond
(*texture-page-dir*
(let* ((v1-1 (the-as texture-id (-> arg0 value)))
(a0-3 (-> *texture-page-dir* entries (-> v1-1 page) link))
)
(cond
(a0-3
(when (= arg1 (debug-menu-msg press))
(let ((a1-8 (the-as object (* (the-as int (-> a0-3 next (-> v1-1 index) shader)) 16))))
(while (nonzero? (the-as int a1-8))
(set! (-> (the-as adgif-shader a1-8) tex0 tfx) (the-as int arg2))
(set! a1-8 (* (-> (the-as adgif-shader a1-8) next shader) 16))
)
)
)
(let ((v1-8 (the-as object (* (-> a0-3 next (-> v1-1 index) shader) 16))))
(if (nonzero? (the-as uint v1-8))
(shr (shl (the-as int (the-as adgif-shader (-> (the-as adgif-shader v1-8) tex0))) 27) 62)
arg3
)
)
)
(else
arg3
)
)
)
)
(else
arg3
)
)
)
)
)
1
#t
0
3
#t
)
(debug-menu-append-item gp-0 s4-7)
)
(let ((s4-8 (new 'debug 'debug-menu-item-var "tbp" (the-as int '*edit-shader*) 80)))
(debug-menu-item-var-make-int
s4-8
(the-as
(function int debug-menu-msg int int int)
(lambda ((arg0 symbol) (arg1 debug-menu-msg) (arg2 float) (arg3 float))
(the-as float (cond
(*texture-page-dir*
(let* ((v1-1 (the-as texture-id (-> arg0 value)))
(a0-3 (-> *texture-page-dir* entries (-> v1-1 page) link))
)
(cond
(a0-3
(when (= arg1 (debug-menu-msg press))
(let ((a1-8 (the-as object (* (-> a0-3 next (-> v1-1 index) shader) 16))))
(while (nonzero? (the-as uint a1-8))
(set! (-> (the-as adgif-shader a1-8) tex0 tbp0) (the-as int arg2))
(set! a1-8 (* (-> (the-as adgif-shader a1-8) next shader) 16))
)
)
)
(let ((v1-8 (the-as object (* (-> a0-3 next (-> v1-1 index) shader) 16))))
(if (nonzero? (the-as uint v1-8))
(-> (the-as adgif-shader v1-8) tex0 tbp0)
arg3
)
)
)
(else
arg3
)
)
)
)
(else
arg3
)
)
)
)
)
1
#t
0
#x4000
#t
)
(debug-menu-append-item gp-0 s4-8)
)
(let ((s4-9 (new 'debug 'debug-menu-item-var "tbw" (the-as int '*edit-shader*) 80)))
(debug-menu-item-var-make-int
s4-9
(the-as
(function int debug-menu-msg int int int)
(lambda ((arg0 symbol) (arg1 debug-menu-msg) (arg2 float) (arg3 float))
(the-as float (cond
(*texture-page-dir*
(let* ((v1-1 (the-as texture-id (-> arg0 value)))
(a0-3 (-> *texture-page-dir* entries (-> v1-1 page) link))
)
(cond
(a0-3
(when (= arg1 (debug-menu-msg press))
(let ((a1-8 (the-as object (* (-> a0-3 next (-> v1-1 index) shader) 16))))
(while (nonzero? (the-as uint a1-8))
(set! (-> (the-as adgif-shader a1-8) tex0 tbw) (the-as int arg2))
(set! a1-8 (* (-> (the-as adgif-shader a1-8) next shader) 16))
)
)
)
(let ((v1-8 (the-as object (* (-> a0-3 next (-> v1-1 index) shader) 16))))
(if (nonzero? (the-as uint v1-8))
(-> (the-as adgif-shader v1-8) tex0 tbw)
arg3
)
)
)
(else
arg3
)
)
)
)
(else
arg3
)
)
)
)
)
1
#t
0
15
#t
)
(debug-menu-append-item gp-0 s4-9)
)
(let ((s4-10 (new 'debug 'debug-menu-item-var "tw" (the-as int '*edit-shader*) 80)))
(debug-menu-item-var-make-int
s4-10
(the-as
(function int debug-menu-msg int int int)
(lambda ((arg0 symbol) (arg1 debug-menu-msg) (arg2 float) (arg3 float))
(the-as float (cond
(*texture-page-dir*
(let* ((v1-1 (the-as texture-id (-> arg0 value)))
(a0-3 (-> *texture-page-dir* entries (-> v1-1 page) link))
)
(cond
(a0-3
(when (= arg1 (debug-menu-msg press))
(let ((a1-8 (the-as object (* (-> a0-3 next (-> v1-1 index) shader) 16))))
(while (nonzero? (the-as uint a1-8))
(set! (-> (the-as adgif-shader a1-8) tex0 tw) (the-as int arg2))
(set! a1-8 (* (-> (the-as adgif-shader a1-8) next shader) 16))
)
)
)
(let ((v1-8 (the-as object (* (-> a0-3 next (-> v1-1 index) shader) 16))))
(if (nonzero? (the-as uint v1-8))
(-> (the-as adgif-shader v1-8) tex0 tw)
arg3
)
)
)
(else
arg3
)
)
)
)
(else
arg3
)
)
)
)
)
1
#t
0
10
#t
)
(debug-menu-append-item gp-0 s4-10)
)
(let ((s4-11 (new 'debug 'debug-menu-item-var "th" (the-as int '*edit-shader*) 80)))
(debug-menu-item-var-make-int
s4-11
(the-as
(function int debug-menu-msg int int int)
(lambda ((arg0 symbol) (arg1 debug-menu-msg) (arg2 float) (arg3 float))
(the-as
float
(cond
(*texture-page-dir*
(let* ((v1-1 (the-as texture-id (-> arg0 value)))
(a0-3 (-> *texture-page-dir* entries (-> v1-1 page) link))
)
(cond
(a0-3
(when (= arg1 (debug-menu-msg press))
(let ((a1-8 (the-as object (* (the-as int (-> a0-3 next (-> v1-1 index) shader)) 16))))
(while (nonzero? (the-as int a1-8))
(set! (-> (the-as adgif-shader a1-8) tex0 th) (the-as int arg2))
(set! a1-8 (* (-> (the-as adgif-shader a1-8) next shader) 16))
)
)
)
(let ((v1-8 (the-as object (* (-> a0-3 next (-> v1-1 index) shader) 16))))
(if (nonzero? (the-as uint v1-8))
(shr (shl (the-as int (the-as adgif-shader (-> (the-as adgif-shader v1-8) tex0))) 30) 60)
arg3
)
)
)
(else
arg3
)
)
)
)
(else
arg3
)
)
)
)
)
1
#t
0
10
#t
)
(debug-menu-append-item gp-0 s4-11)
)
(let ((s4-12 (new 'debug 'debug-menu-item-var "mxl" (the-as int '*edit-shader*) 80)))
(debug-menu-item-var-make-int
s4-12
(the-as
(function int debug-menu-msg int int int)
(lambda ((arg0 symbol) (arg1 debug-menu-msg) (arg2 float) (arg3 float))
(the-as float (cond
(*texture-page-dir*
(let* ((v1-1 (the-as texture-id (-> arg0 value)))
(a0-3 (-> *texture-page-dir* entries (-> v1-1 page) link))
)
(cond
(a0-3
(when (= arg1 (debug-menu-msg press))
(let ((a1-8 (the-as object (* (-> a0-3 next (-> v1-1 index) shader) 16))))
(while (nonzero? (the-as uint a1-8))
(set! (-> (the-as adgif-shader a1-8) tex1 mxl) (the-as int arg2))
(set! a1-8 (* (-> (the-as adgif-shader a1-8) next shader) 16))
)
)
)
(let ((v1-8 (the-as object (* (-> a0-3 next (-> v1-1 index) shader) 16))))
(if (nonzero? (the-as uint v1-8))
(-> (the-as adgif-shader v1-8) tex1 mxl)
arg3
)
)
)
(else
arg3
)
)
)
)
(else
arg3
)
)
)
)
)
1
#t
0
6
#t
)
(debug-menu-append-item gp-0 s4-12)
)
(let ((s4-13 (new 'debug 'debug-menu-item-var "wms" (the-as int '*edit-shader*) 80)))
(debug-menu-item-var-make-int
s4-13
(the-as
(function int debug-menu-msg int int int)
(lambda ((arg0 symbol) (arg1 debug-menu-msg) (arg2 float) (arg3 float))
(the-as float (cond
(*texture-page-dir*
(let* ((v1-1 (the-as texture-id (-> arg0 value)))
(a0-3 (-> *texture-page-dir* entries (-> v1-1 page) link))
)
(cond
(a0-3
(when (= arg1 (debug-menu-msg press))
(let ((a1-8 (the-as object (* (-> a0-3 next (-> v1-1 index) shader) 16))))
(while (nonzero? (the-as uint a1-8))
(set! (-> (the-as adgif-shader a1-8) clamp wms) (the-as int arg2))
(set! a1-8 (* (-> (the-as adgif-shader a1-8) next shader) 16))
)
)
)
(let ((v1-8 (the-as object (* (-> a0-3 next (-> v1-1 index) shader) 16))))
(if (nonzero? (the-as uint v1-8))
(-> (the-as adgif-shader v1-8) clamp wms)
arg3
)
)
)
(else
arg3
)
)
)
)
(else
arg3
)
)
)
)
)
1
#t
0
3
#t
)
(debug-menu-append-item gp-0 s4-13)
)
(let ((s4-14 (new 'debug 'debug-menu-item-var "wmt" (the-as int '*edit-shader*) 80)))
(debug-menu-item-var-make-int
s4-14
(the-as
(function int debug-menu-msg int int int)
(lambda ((arg0 symbol) (arg1 debug-menu-msg) (arg2 float) (arg3 float))
(the-as float (cond
(*texture-page-dir*
(let* ((v1-1 (the-as texture-id (-> arg0 value)))
(a0-3 (-> *texture-page-dir* entries (-> v1-1 page) link))
)
(cond
(a0-3
(when (= arg1 (debug-menu-msg press))
(let ((a1-8 (the-as object (* (-> a0-3 next (-> v1-1 index) shader) 16))))
(while (nonzero? (the-as uint a1-8))
(set! (-> (the-as adgif-shader a1-8) clamp wmt) (the-as int arg2))
(set! a1-8 (* (-> (the-as adgif-shader a1-8) next shader) 16))
)
)
)
(let ((v1-8 (the-as object (* (-> a0-3 next (-> v1-1 index) shader) 16))))
(if (nonzero? (the-as uint v1-8))
(-> (the-as adgif-shader v1-8) clamp wmt)
arg3
)
)
)
(else
arg3
)
)
)
)
(else
arg3
)
)
)
)
)
1
#t
0
3
#t
)
(debug-menu-append-item gp-0 s4-14)
)
(let ((s4-15 (new 'debug 'debug-menu-item-var "minu" (the-as int '*edit-shader*) 80)))
(debug-menu-item-var-make-int
s4-15
(the-as
(function int debug-menu-msg int int int)
(lambda ((arg0 symbol) (arg1 debug-menu-msg) (arg2 float) (arg3 float))
(the-as float (cond
(*texture-page-dir*
(let* ((v1-1 (the-as texture-id (-> arg0 value)))
(a0-3 (-> *texture-page-dir* entries (-> v1-1 page) link))
)
(cond
(a0-3
(when (= arg1 (debug-menu-msg press))
(let ((a1-8 (the-as object (* (-> a0-3 next (-> v1-1 index) shader) 16))))
(while (nonzero? (the-as uint a1-8))
(set! (-> (the-as adgif-shader a1-8) clamp minu) (the-as int arg2))
(set! a1-8 (* (-> (the-as adgif-shader a1-8) next shader) 16))
)
)
)
(let ((v1-8 (the-as object (* (-> a0-3 next (-> v1-1 index) shader) 16))))
(if (nonzero? (the-as uint v1-8))
(-> (the-as adgif-shader v1-8) clamp minu)
arg3
)
)
)
(else
arg3
)
)
)
)
(else
arg3
)
)
)
)
)
1
#t
0
511
#t
)
(debug-menu-append-item gp-0 s4-15)
)
(let ((s4-16 (new 'debug 'debug-menu-item-var "maxu" (the-as int '*edit-shader*) 80)))
(debug-menu-item-var-make-int
s4-16
(the-as
(function int debug-menu-msg int int int)
(lambda ((arg0 symbol) (arg1 debug-menu-msg) (arg2 float) (arg3 float))
(the-as float (cond
(*texture-page-dir*
(let* ((v1-1 (the-as texture-id (-> arg0 value)))
(a0-3 (-> *texture-page-dir* entries (-> v1-1 page) link))
)
(cond
(a0-3
(when (= arg1 (debug-menu-msg press))
(let ((a1-8 (the-as object (* (-> a0-3 next (-> v1-1 index) shader) 16))))
(while (nonzero? (the-as uint a1-8))
(set! (-> (the-as adgif-shader a1-8) clamp maxu) (the-as int arg2))
(set! a1-8 (* (-> (the-as adgif-shader a1-8) next shader) 16))
)
)
)
(let ((v1-8 (the-as object (* (-> a0-3 next (-> v1-1 index) shader) 16))))
(if (nonzero? (the-as uint v1-8))
(-> (the-as adgif-shader v1-8) clamp maxu)
arg3
)
)
)
(else
arg3
)
)
)
)
(else
arg3
)
)
)
)
)
1
#t
0
511
#t
)
(debug-menu-append-item gp-0 s4-16)
)
(let ((s4-17 (new 'debug 'debug-menu-item-var "minv" (the-as int '*edit-shader*) 80)))
(debug-menu-item-var-make-int
s4-17
(the-as
(function int debug-menu-msg int int int)
(lambda ((arg0 symbol) (arg1 debug-menu-msg) (arg2 float) (arg3 float))
(the-as
float
(cond
(*texture-page-dir*
(let* ((v1-1 (the-as texture-id (-> arg0 value)))
(a0-3 (-> *texture-page-dir* entries (-> v1-1 page) link))
)
(cond
(a0-3
(when (= arg1 (debug-menu-msg press))
(let ((a1-8 (the-as object (* (the-as int (-> a0-3 next (-> v1-1 index) shader)) 16))))
(while (nonzero? (the-as int a1-8))
(set! (-> (the-as adgif-shader a1-8) clamp minv) (the-as int arg2))
(set! a1-8 (* (-> (the-as adgif-shader a1-8) next shader) 16))
)
)
)
(let ((v1-8 (the-as object (* (-> a0-3 next (-> v1-1 index) shader) 16))))
(if (nonzero? (the-as uint v1-8))
(shr (shl (the-as int (the-as adgif-shader (-> (the-as adgif-shader v1-8) clamp))) 30) 54)
arg3
)
)
)
(else
arg3
)
)
)
)
(else
arg3
)
)
)
)
)
1
#t
0
511
#t
)
(debug-menu-append-item gp-0 s4-17)
)
(let ((s4-18 (new 'debug 'debug-menu-item-var "maxv" (the-as int '*edit-shader*) 80)))
(debug-menu-item-var-make-int
s4-18
(the-as
(function int debug-menu-msg int int int)
(lambda ((arg0 symbol) (arg1 debug-menu-msg) (arg2 float) (arg3 float))
(the-as
float
(cond
(*texture-page-dir*
(let* ((v1-1 (the-as texture-id (-> arg0 value)))
(a0-3 (-> *texture-page-dir* entries (-> v1-1 page) link))
)
(cond
(a0-3
(when (= arg1 (debug-menu-msg press))
(let ((a1-8 (the-as object (* (the-as int (-> a0-3 next (-> v1-1 index) shader)) 16))))
(while (nonzero? (the-as int a1-8))
(set! (-> (the-as adgif-shader a1-8) clamp maxv) (the-as int arg2))
(set! a1-8 (* (-> (the-as adgif-shader a1-8) next shader) 16))
)
)
)
(let ((v1-8 (the-as object (* (-> a0-3 next (-> v1-1 index) shader) 16))))
(if (nonzero? (the-as uint v1-8))
(shr (shl (the-as int (the-as adgif-shader (-> (the-as adgif-shader v1-8) clamp))) 20) 54)
arg3
)
)
)
(else
arg3
)
)
)
)
(else
arg3
)
)
)
)
)
1
#t
0
511
#t
)
(debug-menu-append-item gp-0 s4-18)
)
s5-0
)
)
(defun debug-menu-make-instance-menu ((arg0 debug-menu-context))
(let* ((gp-0 (new 'debug 'debug-menu arg0 "Instance menu"))
(s5-0 (new 'debug 'debug-menu-item-submenu "Instance" gp-0))
)
(let ((a3-3 (new 'debug 'debug-menu arg0 "Instance shrub menu")))
(set! *instance-shrub-menu* a3-3)
(let ((a1-4 (new 'debug 'debug-menu-item-submenu "Pick Shrub" a3-3)))
(debug-menu-append-item gp-0 a1-4)
)
)
(let ((a3-5 (new 'debug 'debug-menu arg0 "Instance tie menu")))
(set! *instance-tie-menu* a3-5)
(let ((a1-7 (new 'debug 'debug-menu-item-submenu "Pick Tie" a3-5)))
(debug-menu-append-item gp-0 a1-7)
)
)
(let ((a1-9
(new 'debug 'debug-menu-item-function "Refresh" #f (the-as (function object object) build-instance-list))
)
)
(debug-menu-append-item gp-0 a1-9)
)
(let ((a1-11
(new 'debug 'debug-menu-item-function "Print Info" #f (the-as (function object object) print-prototype-list))
)
)
(debug-menu-append-item gp-0 a1-11)
)
(let ((s3-0 (new 'debug 'debug-menu-item-var "near" (the-as int '*edit-instance*) 80)))
(debug-menu-item-var-make-float
s3-0
(the-as
(function int debug-menu-msg float float float)
(lambda ((arg0 symbol) (arg1 debug-menu-msg) (arg2 float) (arg3 float))
(let ((gp-0 (find-instance-by-name (the-as string (-> arg0 value)))))
(cond
(gp-0
(when (= arg1 (debug-menu-msg press))
(set! (-> gp-0 dists x) (* 4096.0 arg2))
(prototype-bucket-recalc-fields gp-0)
)
(* 0.00024414062 (-> gp-0 dists x))
)
(else
(empty)
arg3
)
)
)
)
)
1.0
#t
10.0
250.0
1
)
(debug-menu-append-item gp-0 s3-0)
)
(let ((s3-1 (new 'debug 'debug-menu-item-var "far" (the-as int '*edit-instance*) 80)))
(debug-menu-item-var-make-float
s3-1
(the-as
(function int debug-menu-msg float float float)
(lambda ((arg0 symbol) (arg1 debug-menu-msg) (arg2 float) (arg3 float))
(let ((gp-0 (find-instance-by-name (the-as string (-> arg0 value)))))
(cond
(gp-0
(when (= arg1 (debug-menu-msg press))
(set! (-> gp-0 dists w) (* 4096.0 arg2))
(prototype-bucket-recalc-fields gp-0)
)
(* 0.00024414062 (-> gp-0 dists w))
)
(else
(empty)
arg3
)
)
)
)
)
1.0
#t
10.0
250.0
1
)
(debug-menu-append-item gp-0 s3-1)
)
(let ((s3-2 (new 'debug 'debug-menu-item-var "tie vanish near" (the-as int '*edit-instance*) 80)))
(debug-menu-item-var-make-float
s3-2
(the-as (function int debug-menu-msg float float float) dm-float-field-tie-rvanish-func)
1.0
#t
10.0
250.0
1
)
(debug-menu-append-item gp-0 s3-2)
)
(let ((s3-3 (new 'debug 'debug-menu-item-var "tie vanish far" (the-as int '*edit-instance*) 80)))
(debug-menu-item-var-make-float
s3-3
(the-as (function int debug-menu-msg float float float) dm-float-field-tie-vanish-far-func)
1.0
#t
10.0
250.0
1
)
(debug-menu-append-item gp-0 s3-3)
)
(let ((a1-25 (new 'debug 'debug-menu-item-flag "invisible" 1 dm-edit-instance-toggle-pick-func)))
(debug-menu-append-item gp-0 a1-25)
)
(let ((a3-18 (new 'debug 'debug-menu arg0 "Enable Instance Shrub Menu")))
(set! *enable-instance-shrub-menu* a3-18)
(let ((a1-28 (new 'debug 'debug-menu-item-submenu "Enable Shrub" a3-18)))
(debug-menu-append-item gp-0 a1-28)
)
)
(let ((a3-20 (new 'debug 'debug-menu arg0 "Enable Instance Tie Menu")))
(set! *enable-instance-tie-menu* a3-20)
(let ((a1-31 (new 'debug 'debug-menu-item-submenu "Enable Tie" a3-20)))
(debug-menu-append-item gp-0 a1-31)
)
)
(let ((a1-33
(new 'debug 'debug-menu-item-flag "Instance Info" '*display-instance-info* dm-boolean-toggle-pick-func)
)
)
(debug-menu-append-item gp-0 a1-33)
)
s5-0
)
)
(defun dm-task-menu-pick-func ((arg0 game-task) (arg1 debug-menu-msg))
(let ((gp-0 (/ (the-as int arg0) 8)))
(when (= arg1 (debug-menu-msg press))
(if (cpad-hold? 0 l1)
(task-node-open! (the-as game-task-node gp-0))
(task-node-close! (the-as game-task-node gp-0))
)
)
(if (and (not (task-node-closed? (the-as game-task-node gp-0)))
(not (task-node-open? (the-as game-task-node gp-0)))
)
(return 'invalid)
)
(task-node-closed? (the-as game-task-node gp-0))
)
)
(defun debug-menu-make-continue-sub-menu ((arg0 game-info) (arg1 symbol))
(local-vars
(sv-16 (function symbol type object object pair))
(sv-32 symbol)
(sv-48 type)
(sv-64 symbol)
(sv-80 (function symbol type object object pair))
(sv-96 symbol)
(sv-112 type)
(sv-128 string)
(sv-144 (function symbol type object object pair))
(sv-160 symbol)
(sv-176 type)
(sv-192 string)
)
(let ((s4-0 *level-load-list*)
(s5-0 '())
)
(while (not (null? s4-0))
(let ((v1-1 (-> (the-as symbol (car s4-0)) value)))
(when (or (= arg1 'test) (= (-> (the-as level-load-info v1-1) taskname) arg1))
(let ((s3-0 (-> (the-as level-load-info v1-1) continues)))
(while (not (null? s3-0))
(let ((v1-2 (car s3-0))
(a0-5 arg1)
)
(when (if (= a0-5 'test)
(logtest? (continue-flags test) (-> (the-as continue-point v1-2) flags))
#t
)
(let ((s2-0 (method-of-type pair new))
(s1-0 'debug)
(s0-0 pair)
)
(set! sv-16 (method-of-type pair new))
(set! sv-32 'debug)
(set! sv-48 pair)
(set! sv-64 'flag)
(set! sv-80 (method-of-type pair new))
(set! sv-96 'debug)
(set! sv-112 pair)
(set! sv-128 (-> (the-as continue-point v1-2) name))
(set! sv-144 (method-of-type pair new))
(set! sv-160 'debug)
(set! sv-176 pair)
(set! sv-192 (-> (the-as continue-point v1-2) name))
(let* ((a3-1 (dcons 'dm-current-continue '()))
(a3-2 (sv-144 sv-160 sv-176 sv-192 a3-1))
(a3-3 (sv-80 sv-96 sv-112 sv-128 a3-2))
)
(set! s5-0 (s2-0 s1-0 s0-0 (sv-16 sv-32 sv-48 sv-64 a3-3) s5-0))
)
)
)
)
(set! s3-0 (cdr s3-0))
)
)
)
)
(set! s4-0 (cdr s4-0))
)
(let ((a3-5 '()))
(let ((a2-6 (car s5-0)))
(while (not (null? s5-0))
(set! a3-5 (dcons a2-6 a3-5))
(set! s5-0 (cdr s5-0))
(set! a2-6 (car s5-0))
)
)
(dcons 'menu (dcons (symbol->string arg1) a3-5))
)
)
)
(defun debug-menu-make-task-sub-menu ((arg0 symbol))
"TODO - need to know more about game-info"
(local-vars
(sv-16 (function symbol type object object pair))
(sv-32 symbol)
(sv-48 type)
(sv-64 symbol)
(sv-80 (function symbol type object object pair))
(sv-96 symbol)
(sv-112 type)
(sv-128 string)
(sv-144 (function symbol type object object pair))
(sv-160 symbol)
(sv-176 type)
(sv-192 int)
)
(let ((gp-0 '()))
(let ((s4-0 (-> *game-info* sub-task-list)))
(countdown (s3-0 (-> s4-0 length))
(when (nonzero? s3-0)
(let ((v1-4 (-> s4-0 s3-0)))
(when (= (-> v1-4 level) arg0)
(let ((s2-0 (method-of-type pair new))
(s1-0 'debug)
(s0-0 pair)
)
(set! sv-16 (method-of-type pair new))
(set! sv-32 'debug)
(set! sv-48 pair)
(set! sv-64 'flag)
(set! sv-80 (method-of-type pair new))
(set! sv-96 'debug)
(set! sv-112 pair)
(set! sv-128 (-> v1-4 name))
(set! sv-144 (method-of-type pair new))
(set! sv-160 'debug)
(set! sv-176 pair)
(set! sv-192 (* s3-0 8))
(let* ((a3-1 (dcons 'dm-task-menu-pick-func '()))
(a3-2 (sv-144 sv-160 sv-176 sv-192 a3-1))
(a3-3 (sv-80 sv-96 sv-112 sv-128 a3-2))
)
(set! gp-0 (s2-0 s1-0 s0-0 (sv-16 sv-32 sv-48 sv-64 a3-3) gp-0))
)
)
)
)
)
)
)
(dcons 'menu (dcons (symbol->string arg0) gp-0))
)
)
(defun debug-menu-make-task-menu ((arg0 debug-menu-context))
(local-vars (sv-16 debug-menu-context))
(let* ((s5-0 (new 'debug 'debug-menu arg0 "Task menu"))
(s4-0 (new 'debug 'debug-menu-item-submenu "Task" s5-0))
)
(let* ((s3-0 '(city
fortress
stadium
palace
castle
ruins
atoll
sewer
strip
mountain
forest
drill
tomb
dig
canyon
consite
under
nest
default
test
)
)
(a0-3 (car s3-0))
)
(while (not (null? s3-0))
(let ((s2-0 debug-menu-append-item)
(s1-0 s5-0)
(s0-0 debug-menu-make-from-template)
)
(set! sv-16 arg0)
(let ((a1-2 (debug-menu-make-task-sub-menu (the-as symbol a0-3))))
(s2-0 s1-0 (s0-0 sv-16 a1-2))
)
)
(set! s3-0 (cdr s3-0))
(set! a0-3 (car s3-0))
)
)
s4-0
)
)
(defun dm-play-task-with-continue ((arg0 game-task) (arg1 string))
(let* ((t9-0 play-task)
(a1-1 'debug)
(a2-0 (cond
((cpad-hold? 0 l1)
'pre-play
)
((cpad-hold? 0 r1)
'kiosk
)
)
)
(a1-2 (t9-0 arg0 a1-1 a2-0))
)
(if arg1
(set! a1-2 arg1)
)
(start 'play (get-continue-by-name *game-info* a1-2))
)
(set-master-mode 'game)
0
(none)
)
(defun dm-play-task ((arg0 game-task))
(dm-play-task-with-continue (the-as game-task (/ (the-as int arg0) 8)) (the-as string #f))
(none)
)
(defun dm-play-race ((arg0 race-selection) (arg1 symbol))
(let ((s5-0 (the-as string #f))
(gp-0 0)
)
(case arg0
(((race-selection kiera-class3))
(set! gp-0 43)
(set! s5-0 "stadiumb-record-path")
)
(((race-selection kiera-class2))
(set! gp-0 55)
(set! s5-0 "stadiumc-record-path")
)
(((race-selection kiera-class1))
(set! gp-0 63)
(set! s5-0 "stadiumd-record-path")
)
(((race-selection errol))
(set! gp-0 57)
(set! s5-0 "ctyport-errol-record-path")
)
(((race-selection bush-class3))
(set! gp-0 104)
(set! s5-0 "stadiumb-record-path")
)
(((race-selection bush-class2))
(set! gp-0 105)
(set! s5-0 "stadiumc-record-path")
)
(((race-selection bush-class1))
(set! gp-0 106)
(set! s5-0 "stadiumd-record-path")
)
(((race-selection bush-errol))
(set! gp-0 101)
(set! s5-0 "ctyport-errol-record-path")
)
(((race-selection bush-port))
(set! gp-0 102)
(set! s5-0 "ctyport-race-record-path")
)
(((race-selection bush-class3-reverse))
(set! gp-0 107)
(set! s5-0 "stadiumb-record-path")
)
(((race-selection bush-class2-reverse))
(set! gp-0 108)
(set! s5-0 "stadiumc-record-path")
)
(((race-selection bush-class1-reverse))
(set! gp-0 109)
(set! s5-0 "stadiumd-record-path")
)
)
(if (not arg1)
(set! s5-0 (the-as string #f))
)
(format #t "dm-play-race starting task ~d continue ~s~%" gp-0 s5-0)
(if (nonzero? gp-0)
(dm-play-task-with-continue (the-as game-task gp-0) s5-0)
)
)
(none)
)
(defun debug-menu-make-play-menu ((arg0 debug-menu-context))
(local-vars
(sv-16 symbol)
(sv-32 type)
(sv-48 symbol)
(sv-64 (function symbol type object object pair))
(sv-80 symbol)
(sv-96 type)
(sv-112 string)
(sv-128 (function symbol type object object pair))
(sv-144 symbol)
(sv-160 type)
(sv-176 int)
)
(let ((gp-0 '()))
(countdown (s4-0 (-> *game-info* play-list length))
(let ((v1-4 (-> *game-info* play-list s4-0)))
(when (-> v1-4 play-continue)
(let ((s3-0 (method-of-type pair new))
(s2-0 'debug)
(s1-0 pair)
(s0-0 (method-of-type pair new))
)
(set! sv-16 'debug)
(set! sv-32 pair)
(set! sv-48 'function)
(set! sv-64 (method-of-type pair new))
(set! sv-80 'debug)
(set! sv-96 pair)
(set! sv-112 (-> v1-4 name))
(set! sv-128 (method-of-type pair new))
(set! sv-144 'debug)
(set! sv-160 pair)
(set! sv-176 (* s4-0 8))
(let* ((a3-1 (dcons 'dm-play-task '()))
(a3-2 (sv-128 sv-144 sv-160 sv-176 a3-1))
(a3-3 (sv-64 sv-80 sv-96 sv-112 a3-2))
)
(set! gp-0 (s3-0 s2-0 s1-0 (s0-0 sv-16 sv-32 sv-48 a3-3) gp-0))
)
)
)
)
)
(debug-menu-make-from-template arg0 (dcons 'menu (dcons "Play" gp-0)))
)
)
(defun dm-anim-tester-flag-func ((arg0 int) (arg1 debug-menu-msg))
(when *anim-tester*
(case arg0
(('at-apply-align)
(if (= arg1 (debug-menu-msg press))
(logxor! (-> *anim-tester* 0 debug-flags) (anim-tester-debug-flags at-apply-align))
)
(return (logtest? (-> *anim-tester* 0 debug-flags) (anim-tester-debug-flags at-apply-align)))
)
(('at-show-joint-info)
(if (= arg1 (debug-menu-msg press))
(logxor! (-> *anim-tester* 0 debug-flags) (anim-tester-debug-flags at-show-joint-info))
)
(return (logtest? (-> *anim-tester* 0 debug-flags) (anim-tester-debug-flags at-show-joint-info)))
)
)
)
#f
)
(defun dm-anim-tester-func ((arg0 int) (arg1 debug-menu-msg))
(local-vars (v0-1 symbol))
(if (not *anim-tester*)
(anim-tester-start)
)
(when *anim-tester*
(cond
((= arg0 'at-pick-object)
(send-event (ppointer->process *anim-tester*) 'pick-object)
(set! v0-1 #t)
(set! (-> *debug-menu-context* is-hidden) v0-1)
v0-1
)
((= arg0 'at-pick-joint-anim)
(send-event (ppointer->process *anim-tester*) 'pick-joint-anim)
(set! v0-1 #t)
(set! (-> *debug-menu-context* is-hidden) v0-1)
v0-1
)
)
)
)
;; WARN: Return type mismatch object vs none.
(defun dm-pilot-mode ((arg0 object))
"TODO - what is the third arg to target's change-mode?"
(if (not *target*)
(start 'debug (get-current-continue-forced *game-info*))
)
(send-event *target* 'change-mode 'pilot #f arg0 #t)
(none)
)
;; WARN: Return type mismatch object vs none.
(defun dm-pilot-race-mode ((arg0 object))
"TODO - what is the third arg to target's change-mode?"
(if (not *target*)
(start 'debug (get-current-continue-forced *game-info*))
)
(send-event *target* 'change-mode 'pilot-race #f arg0 #t)
(none)
)
(defun stop-watch-display ((arg0 object) (arg1 object))
(let ((v1-3 (- (-> *display* base-clock frame-counter) (the-as int (-> *game-info* stop-watch-start)))))
(format arg1 "Stop watch ~D:~D:~D~%" (/ v1-3 #x4650) (/ (mod v1-3 #x4650) 300) (/ (* 100 (mod v1-3 300)) 300))
)
#f
)
(defun debug-menu-context-make-default-menus ((arg0 debug-menu-context))
(local-vars (sv-16 debug-menu-context))
(let ((s5-0 (new 'debug 'debug-menu arg0 "Main menu")))
(debug-menu-context-set-root-menu arg0 s5-0)
(debug-menu-append-item
s5-0
(debug-menu-make-from-template
arg0
'(menu
"Artist"
(flag "Poly Stats" *stats-poly* dm-boolean-toggle-pick-func)
(menu
"Memory Stats"
(flag "Enable" *stats-memory* dm-boolean-toggle-pick-func)
(flag "Short" *stats-memory-short* dm-boolean-toggle-pick-func)
(flag "Level 0" 0 dm-stats-memory-func)
(flag "Level 1" 1 dm-stats-memory-func)
(flag "Level 2" 2 dm-stats-memory-func)
(flag "Level 3" 3 dm-stats-memory-func)
(flag "Level 4" 4 dm-stats-memory-func)
(flag "Level 5" 5 dm-stats-memory-func)
)
(flag "All Visible" *artist-all-visible* dm-boolean-toggle-pick-func)
(flag "Flip Visible" *artist-flip-visible* dm-boolean-toggle-pick-func)
(flag "Fix Visible" *artist-fix-visible* dm-boolean-toggle-pick-func)
(flag "Fix Frustum" *artist-fix-frustum* dm-boolean-toggle-pick-func)
(flag "Manual Sample Point" *manual-sample-point* dm-boolean-toggle-pick-func)
(flag "Error Spheres" *artist-error-spheres* dm-boolean-toggle-pick-func)
(flag "Use menu subdiv" *artist-use-menu-subdiv* dm-boolean-toggle-pick-func)
(float-var "Subdiv Close" close dm-subdiv-float 10 1 #t 1 200 1)
(float-var "Subdiv Far" far dm-subdiv-float 10 1 #t 1 200 1)
(function "Target Start" #f ,(lambda () (start 'debug (get-current-continue-forced *game-info*))))
(function "Target Stop" #f ,(lambda () (stop 'debug)))
(menu
"Anim Tester"
(int-var "Speed" anim-speed dm-subdiv-int 10 10 #t -300 1000)
(flag "Apply Align" at-apply-align dm-anim-tester-flag-func)
(flag "Show Joint Inf" at-show-joint-info dm-anim-tester-flag-func)
(function "Pick Object" at-pick-object dm-anim-tester-func)
(function "Pick Joint Anim" at-pick-joint-anim dm-anim-tester-func)
(function "Pick Sequence" at-pick-sequence dm-anim-tester-func)
(function "Save Sequences" at-save-sequences dm-anim-tester-func)
)
(flag "Show Entity Errors" *display-entity-errors* dm-boolean-toggle-pick-func)
(flag "Sprite Info" *display-sprite-info* dm-boolean-toggle-pick-func)
(flag "Sprite Marks" *display-sprite-marks* dm-boolean-toggle-pick-func)
(flag "Sprite Spheres" *display-sprite-spheres* dm-boolean-toggle-pick-func)
(flag "Time of Day" #f dm-time-of-day-pick-func)
(flag "Preload Anims" *preload-spool-anims* dm-boolean-toggle-pick-func)
(function
"Mike F"
#f
,(lambda () (debug-actor "drill-crane-14") (send-event (the-as process-tree *debug-actor*) 'die))
)
(function
"Editor"
#f
,(lambda ()
(kill-by-type editable-player *active-pool*)
(process-spawn editable-player :init editable-player-init #f :to *entity-pool*)
(set-master-mode 'game)
(none)
)
)
(flag
"Screen shot highres enable"
#f
,(lambda ((arg0 object) (arg1 debug-menu-msg))
(if (= arg1 (debug-menu-msg press))
(set! (-> *screen-shot-work* highres-enable) (not (-> *screen-shot-work* highres-enable)))
)
(-> *screen-shot-work* highres-enable)
)
)
(flag
"Screen shot hud enable"
#f
,(lambda ((arg0 object) (arg1 debug-menu-msg))
(if (= arg1 (debug-menu-msg press))
(set! (-> *screen-shot-work* hud-enable) (not (-> *screen-shot-work* hud-enable)))
)
(-> *screen-shot-work* hud-enable)
)
)
)
)
)
(debug-menu-append-item
s5-0
(debug-menu-make-from-template
arg0
'(menu
"Game"
(function "New Game" #f ,(lambda () (initialize! *game-info* 'game (the-as game-save #f) (the-as string #f))))
(function "New Life" #f ,(lambda () (initialize! *game-info* 'dead (the-as game-save #f) (the-as string #f))))
(function
"Reset Game"
#f
,(lambda ()
(set! (-> *game-info* mode) 'debug)
(initialize! *game-info* 'game (the-as game-save #f) (the-as string #f))
)
)
(function "Reset Actors" #f ,(lambda () (reset-actors 'debug) (none)))
(function "Save Game" #f ,(lambda () (auto-save-command 'save 0 0 *default-pool* #f) (none)))
(function "Load Game" #f ,(lambda () (auto-save-command 'restore 0 0 *default-pool* #f) (none)))
(flag "Target" #f ,(lambda ((arg0 object) (arg1 debug-menu-msg))
(when (= arg1 (debug-menu-msg press))
(if *target*
(stop 'debug)
(start 'debug (get-current-continue-forced *game-info*))
)
)
*target*
)
)
(flag "Game Mode" play dm-game-mode-pick-func)
(flag "Debug Mode" debug dm-game-mode-pick-func)
(function
"Stop Watch Start"
#f
,(lambda ()
(remove-by-param0 *debug-engine* stop-watch-display)
(add-connection *debug-engine* *dproc* stop-watch-display *dproc* *stdcon0* #f)
(set! (-> *game-info* stop-watch-start) (the-as uint (-> *display* base-clock frame-counter)))
(set! (-> *game-info* stop-watch-stop) (the-as uint 0))
(format #t "Stop watch started!~%")
(none)
)
)
(function
"Stop Watch Stop"
#f
,(lambda ()
(remove-by-param0 *debug-engine* stop-watch-display)
(set! (-> *game-info* stop-watch-stop) (the-as uint (-> *display* base-clock frame-counter)))
(let ((v1-7 (- (-> *game-info* stop-watch-stop) (-> *game-info* stop-watch-start))))
(format
#t
"Stop watch elasped time was ~D:~D:~D~%"
(/ (the-as int v1-7) #x4650)
(/ (mod (the-as int v1-7) #x4650) 300)
(/ (* 100 (mod (the-as int v1-7) 300)) 300)
)
)
(none)
)
)
(function "Continue Start" #f ,(lambda () (start 'play (-> *game-info* current-continue))))
(function "Kiosk Reset" #f ,(lambda () (auto-save-command 'restore 0 0 *default-pool* #f) (none)))
(menu
"Secrets"
(flag "toggle-beard" 1 dm-game-secret-toggle-pick-func)
(flag "hflip-screen" 2 dm-game-secret-toggle-pick-func)
(flag "endless-ammo" 4 dm-game-secret-toggle-pick-func)
(flag "invulnerable" 8 dm-game-secret-toggle-pick-func)
(flag "endless-dark" 16 dm-game-secret-toggle-pick-func)
(flag "scene-player-1" 32 dm-game-secret-toggle-pick-func)
(flag "scene-player-2" 64 dm-game-secret-toggle-pick-func)
(flag "scene-player-3" 128 dm-game-secret-toggle-pick-func)
(flag "level-select" 256 dm-game-secret-toggle-pick-func)
(flag "scrap-book-1" 512 dm-game-secret-toggle-pick-func)
(flag "scrap-book-2" 1024 dm-game-secret-toggle-pick-func)
(flag "gungame-blue" 4096 dm-game-secret-toggle-pick-func)
(flag "gungame-dark" 8192 dm-game-secret-toggle-pick-func)
(flag "reverse-races" 16384 dm-game-secret-toggle-pick-func)
(flag "hero-mode" 32768 dm-game-secret-toggle-pick-func)
(flag "big-head" 65536 dm-game-secret-toggle-pick-func)
(flag "little-head" 131072 dm-game-secret-toggle-pick-func)
)
(menu "Continue")
(menu
"Settings"
(float-var
"sfx-volume"
#f
,(lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float))
(cond
((= arg1 (debug-menu-msg press))
(if (and *setting-control* (nonzero? *setting-control*))
(set! (-> *setting-control* user-default sfx-volume) arg2)
)
)
((or (not *setting-control*) (zero? *setting-control*))
0.0
)
(else
(-> *setting-control* user-default sfx-volume)
)
)
)
2
(new 'static 'bfloat :data 0.01)
#t
0
1
0
)
(float-var
"ambient-volume"
#f
,(lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float))
(cond
((= arg1 (debug-menu-msg press))
(if (and *setting-control* (nonzero? *setting-control*))
(set! (-> *setting-control* user-default ambient-volume) arg2)
)
)
((or (not *setting-control*) (zero? *setting-control*))
0.0
)
(else
(-> *setting-control* user-default ambient-volume)
)
)
)
2
(new 'static 'bfloat :data 0.01)
#t
0
1
0
)
(float-var
"music-volume"
#f
,(lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float))
(cond
((= arg1 (debug-menu-msg press))
(if (and *setting-control* (nonzero? *setting-control*))
(set! (-> *setting-control* user-default music-volume) arg2)
)
)
((or (not *setting-control*) (zero? *setting-control*))
0.0
)
(else
(-> *setting-control* user-default music-volume)
)
)
)
2
(new 'static 'bfloat :data 0.01)
#t
0
1
0
)
(float-var
"dialog-volume"
#f
,(lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float))
(cond
((= arg1 (debug-menu-msg press))
(if (and *setting-control* (nonzero? *setting-control*))
(set! (-> *setting-control* user-default dialog-volume) arg2)
)
)
((or (not *setting-control*) (zero? *setting-control*))
0.0
)
(else
(-> *setting-control* user-default dialog-volume)
)
)
)
2
(new 'static 'bfloat :data 0.01)
#t
0
1
0
)
(menu
"Language"
(flag "english" 0 dm-setting-language)
(flag "french" 1 dm-setting-language)
(flag "german" 2 dm-setting-language)
(flag "spanish" 3 dm-setting-language)
(flag "italian" 4 dm-setting-language)
(flag "japanese" 5 dm-setting-language)
(flag "korean" 6 dm-setting-language)
(flag "uk-english" 7 dm-setting-language)
)
(menu
"Subtitle Language"
(flag "english" 0 dm-setting-subtitle-language)
(flag "french" 1 dm-setting-subtitle-language)
(flag "german" 2 dm-setting-subtitle-language)
(flag "spanish" 3 dm-setting-subtitle-language)
(flag "italian" 4 dm-setting-subtitle-language)
(flag "japanese" 5 dm-setting-subtitle-language)
(flag "korean" 6 dm-setting-subtitle-language)
(flag "uk-english" 7 dm-setting-subtitle-language)
)
(flag
"play-hints "
#f
,(lambda ((arg0 object) (arg1 debug-menu-msg))
(if (= arg1 (debug-menu-msg press))
(set! (-> *setting-control* user-default play-hints) (not (-> *setting-control* user-default play-hints)))
)
(the-as uint (-> *setting-control* user-default play-hints))
)
)
(flag
"subtitle "
#f
,(lambda ((arg0 object) (arg1 debug-menu-msg))
(if (= arg1 (debug-menu-msg press))
(set! (-> *setting-control* user-default subtitle) (not (-> *setting-control* user-default subtitle)))
)
(-> *setting-control* user-default subtitle)
)
)
(flag
"vibration"
#f
,(lambda ((arg0 object) (arg1 debug-menu-msg))
(if (= arg1 (debug-menu-msg press))
(set! (-> *setting-control* user-default vibration) (not (-> *setting-control* user-default vibration)))
)
(the-as uint (-> *setting-control* user-default vibration))
)
)
(menu
"Stereo Mode"
(flag "mono" 0 dm-setting-stereo-mode)
(flag "stereo" 1 dm-setting-stereo-mode)
(flag "surround" 2 dm-setting-stereo-mode)
)
(flag
"camera-stick-dir"
#f
,(lambda ((arg0 object) (arg1 debug-menu-msg))
(if (= arg1 (debug-menu-msg press))
(set! (-> *setting-control* user-default unknowng-symbol-00)
(not (-> *setting-control* user-default unknowng-symbol-00))
)
)
(the-as uint (-> *setting-control* user-default unknowng-symbol-00))
)
)
(flag
"progressive-scan"
#f
,(lambda ((arg0 object) (arg1 debug-menu-msg))
(if (= arg1 (debug-menu-msg press))
(set! (-> *setting-control* user-default use-progressive-scan)
(not (-> *setting-control* user-default use-progressive-scan))
)
)
(the-as uint (-> *setting-control* user-default use-progressive-scan))
)
)
(flag
"border-mode"
#f
,(lambda ((arg0 object) (arg1 debug-menu-msg))
(when (= arg1 (debug-menu-msg press))
(set! (-> *setting-control* user-default border-mode) (not (-> *setting-control* user-default border-mode)))
(set! (-> *level* play?) (-> *setting-control* user-default border-mode))
)
(-> *setting-control* user-default border-mode)
)
)
)
(menu
"Features"
(flag "board" 1024 dm-game-feature-toggle-pick-func)
(flag "board-training" 67108864 dm-game-feature-toggle-pick-func)
(flag "carry" 2048 dm-game-feature-toggle-pick-func)
(flag "sidekick" 4096 dm-game-feature-toggle-pick-func)
(flag "darkjak" 8192 dm-game-feature-toggle-pick-func)
(flag "darkjak-bomb0" 4194304 dm-game-feature-toggle-pick-func)
(flag "darkjak-bomb1" 8388608 dm-game-feature-toggle-pick-func)
(flag "darkjak-invinc" 16777216 dm-game-feature-toggle-pick-func)
(flag "darkjak-giant" 33554432 dm-game-feature-toggle-pick-func)
(flag "gun-yellow" 64 dm-game-feature-toggle-pick-func)
(flag "gun-red" 128 dm-game-feature-toggle-pick-func)
(flag "gun-blue" 256 dm-game-feature-toggle-pick-func)
(flag "gun-dark" 512 dm-game-feature-toggle-pick-func)
(flag "gun-upgrade-speed" 16384 dm-game-feature-toggle-pick-func)
(flag "gun-upgrade-ammo" 32768 dm-game-feature-toggle-pick-func)
(flag "gun-upgrade-damage" 65536 dm-game-feature-toggle-pick-func)
(flag "pass-red" 262144 dm-game-feature-toggle-pick-func)
(flag "pass-green" 524288 dm-game-feature-toggle-pick-func)
(flag "pass-yellow" 1048576 dm-game-feature-toggle-pick-func)
)
)
)
)
(let* ((s4-2 (debug-menu-find-from-template arg0 '("Game" "Continue")))
(s3-2
'(city
fortress
stadium
palace
castle
ruins
atoll
sewer
strip
mountain
forest
drill
tomb
dig
canyon
consite
under
nest
default
test
)
)
(a1-7 (car s3-2))
)
(while (not (null? s3-2))
(let ((s2-0 debug-menu-append-item)
(s1-0 s4-2)
(s0-0 debug-menu-make-from-template)
)
(set! sv-16 arg0)
(let ((a1-8 (debug-menu-make-continue-sub-menu *game-info* (the-as symbol a1-7))))
(s2-0 s1-0 (s0-0 sv-16 a1-8))
)
)
(set! s3-2 (cdr s3-2))
(set! a1-7 (car s3-2))
)
)
(debug-menu-append-item
s5-0
(debug-menu-make-from-template
arg0
'(menu
"Stats"
(flag "Poly" *stats-poly* dm-boolean-toggle-pick-func)
(flag "Collide" *stats-collide* dm-boolean-toggle-pick-func)
(flag "Bsp" *stats-bsp* dm-boolean-toggle-pick-func)
(flag "Buffer" *stats-buffer* dm-boolean-toggle-pick-func)
(flag "Target" *stats-target* dm-boolean-toggle-pick-func)
(flag "Blerc" *stats-blerc* dm-boolean-toggle-pick-func)
(flag "Profile bars" *stats-profile-bars* dm-boolean-toggle-pick-func)
(flag "Perf" *stats-perf* dm-boolean-toggle-pick-func)
(menu
"Memory Stats"
(flag "Enable" *stats-memory* dm-boolean-toggle-pick-func)
(flag "Short" *stats-memory-short* dm-boolean-toggle-pick-func)
(flag "Level 0" 0 dm-stats-memory-func)
(flag "Level 1" 1 dm-stats-memory-func)
(flag "Level 2" 2 dm-stats-memory-func)
(flag "Level 3" 3 dm-stats-memory-func)
(flag "Level 4" 4 dm-stats-memory-func)
(flag "Level 5" 5 dm-stats-memory-func)
)
(function
"Print Entity Memory"
#f
,(lambda ()
(format #t "~%~%========================= Entity Memory =========================~%~%")
(let ((gp-0 (-> *level* level0)))
(inspect (-> gp-0 art-group))
(dotimes (s5-0 (-> gp-0 art-group art-group-array length))
(inspect (-> gp-0 art-group art-group-array s5-0))
)
)
#f
)
)
(function
"Print Texture Info"
#f
,(lambda ()
(format #t "~%~%========================= Texture Info =========================~%~%")
(inspect *texture-page-dir*)
)
)
(function
"Print Texture Verbose"
#f
,(lambda ()
(format #t "~%~%========================= Texture Info =========================~%~%")
(texture-page-dir-inspect *texture-page-dir* #t)
(none)
)
)
(function
"Print Merc Stats"
#f
,(lambda ()
(format #t "~%~%========================== Merc Stats ==========================~%~%")
(merc-stats)
(none)
)
)
)
)
)
(debug-menu-append-item
s5-0
(debug-menu-make-from-template
arg0
'(menu
"Render"
(menu
"Background"
(flag "Textured" 0 dm-subdiv-draw-func)
(flag "Outline" 1 dm-subdiv-draw-func)
(flag "Gouraud" 2 dm-subdiv-draw-func)
(flag "Hack" 3 dm-subdiv-draw-func)
)
(menu
"Background Scissor"
(flag "Textured" 0 dm-scissor-subdiv-draw-func)
(flag "Outline" 1 dm-scissor-subdiv-draw-func)
(flag "Gouraud" 2 dm-scissor-subdiv-draw-func)
(flag "Hack" 3 dm-scissor-subdiv-draw-func)
)
(menu
"Foreground"
(flag "Textured" 0 dm-foreground-subdiv-draw-func)
(flag "Outline" 1 dm-foreground-subdiv-draw-func)
(flag "Gouraud" 2 dm-foreground-subdiv-draw-func)
(flag "Hack" 3 dm-foreground-subdiv-draw-func)
)
(menu
"Ocean"
(flag "Textured" 0 dm-ocean-subdiv-draw-func)
(flag "Outline" 1 dm-ocean-subdiv-draw-func)
(flag "Gouraud" 2 dm-ocean-subdiv-draw-func)
(flag "Hack" 3 dm-ocean-subdiv-draw-func)
)
(flag "SKY TEXTURES" 32 dm-texture-user-toggle-pick-func)
(flag "sky" 3 dm-vu1-user-toggle-pick-func)
(flag "ocean" 4 dm-vu1-user-toggle-pick-func)
(flag "ocean-wave" 5 dm-vu1-user-toggle-pick-func)
(flag "TFRAG TIE TEXTURES" #x1 dm-texture-user-toggle-pick-func)
(flag "tfrag" 6 dm-vu1-user-toggle-pick-func)
(flag "tie" 8 dm-vu1-user-toggle-pick-func)
(flag "tie-envmap" 9 dm-vu1-user-toggle-pick-func)
(flag "tie-scissor" 7 dm-vu1-user-toggle-pick-func)
(flag "tie-envmap-scissor" 10 dm-vu1-user-toggle-pick-func)
(flag "tie-vanish" 11 dm-vu1-user-toggle-pick-func)
(flag "SHRUB TEXTURES" #x4 dm-texture-user-toggle-pick-func)
(flag "shrub-near" 16 dm-vu1-user-toggle-pick-func)
(flag "shrubbery" 15 dm-vu1-user-toggle-pick-func)
(flag "shrubbery-vanish" 18 dm-vu1-user-toggle-pick-func)
(flag "billboard" 17 dm-vu1-user-toggle-pick-func)
(flag "ALPHA TEXTURES" 1 dm-texture-user-toggle-pick-func)
(flag "tfrag-trans" 19 dm-vu1-user-toggle-pick-func)
(flag "tie-trans" 21 dm-vu1-user-toggle-pick-func)
(flag "tie-envmap-trans" 22 dm-vu1-user-toggle-pick-func)
(flag "tie-scissor-trans" 20 dm-vu1-user-toggle-pick-func)
(flag "tie-envmap-scissor-trans" 23 dm-vu1-user-toggle-pick-func)
(flag "PRIS TEXTURES" #x2 dm-texture-user-toggle-pick-func)
(flag "merc" 13 dm-vu1-user-toggle-pick-func)
(flag "emerc" 14 dm-vu1-user-toggle-pick-func)
(flag "generic" 12 dm-vu1-user-toggle-pick-func)
(flag "WATER TEXTURES" 2 dm-texture-user-toggle-pick-func)
(flag "tfrag-water" 24 dm-vu1-user-toggle-pick-func)
(flag "tie-water" 26 dm-vu1-user-toggle-pick-func)
(flag "tie-envmap-water" 27 dm-vu1-user-toggle-pick-func)
(flag "tie-scissor-water" 25 dm-vu1-user-toggle-pick-func)
(flag "tie-envmap-scissor-water" 28 dm-vu1-user-toggle-pick-func)
(flag "SPRITE TEXTURES" 8 dm-texture-user-toggle-pick-func)
(flag "sprite" 29 dm-vu1-user-toggle-pick-func)
(flag "shadow" 30 dm-vu1-user-toggle-pick-func)
(flag "shadow-debug" *shadow-debug* dm-boolean-toggle-pick-func)
(flag "depth-cue" 34 dm-vu1-user-toggle-pick-func)
(flag "WARP TEXTURES" 4 dm-texture-user-toggle-pick-func)
(flag "HUD TEXTURES" 16 dm-texture-user-toggle-pick-func)
(flag "all on" #f dm-vu1-user-all-pick-func)
(flag "all off" #f dm-vu1-user-none-pick-func)
(flag "all textures on" #x1ff dm-texture-user-set-pick-func)
(flag "all textures off" 0 dm-texture-user-set-pick-func)
)
)
)
(debug-menu-append-item
s5-0
(debug-menu-make-from-template
arg0
'(menu
"Collision"
(menu
"Collision Renderer"
(flag "On" 0 dm-col-rend-on-func)
(flag "Track Player" 0 dm-col-rend-track-func)
(flag "Track Camera" 1 dm-col-rend-track-func)
(float-var " Dist" #f dm-col-rend-cam-dist 10 1 #t 0 80 1)
(flag "Fixed Pos" 2 dm-col-rend-track-func)
(float-var "Size" #f dm-col-rend-size 10 1 #t 1 20 1)
(flag "Outline" 0 dm-col-rend-outline-func)
(flag "Show Back-faces" 0 dm-col-rend-back-face-func)
(flag "Show Normals" 0 dm-col-rend-normals-func)
(flag "Ghost Hidden" 0 dm-col-rend-ghost-hidden-func)
(menu
"Show Only"
(flag "(board)" 1 dm-col-rend-show-only-set-func)
(flag "(grind)" 2 dm-col-rend-show-only-set-func)
(flag "(grindonly)" 4 dm-col-rend-show-only-set-func)
(flag "melt" 16384 dm-col-rend-show-only-toggle-func)
(flag "noboard" 8 dm-col-rend-show-only-toggle-func)
(flag "nocamera" 16 dm-col-rend-show-only-toggle-func)
(flag "noedge" 32 dm-col-rend-show-only-toggle-func)
(flag "noendlessfall" 64 dm-col-rend-show-only-toggle-func)
(flag "noentity" 128 dm-col-rend-show-only-toggle-func)
(flag "nogrind" 256 dm-col-rend-show-only-toggle-func)
(flag "nojak" 512 dm-col-rend-show-only-toggle-func)
(flag "nolineofsight" 1024 dm-col-rend-show-only-toggle-func)
(flag "nomech" 2048 dm-col-rend-show-only-toggle-func)
(flag "nopilot" 4096 dm-col-rend-show-only-toggle-func)
(flag "noproj" 8192 dm-col-rend-show-only-toggle-func)
(flag "probe" 32768 dm-col-rend-show-only-toggle-func)
(flag "Select All" 49144 dm-col-rend-show-only-set-func)
(flag "Unselect All" 0 dm-col-rend-show-only-set-func)
)
(menu
"Find"
(flag "background" 1 dm-col-rend-cspec-toggle)
(flag "obstacles" 2 dm-col-rend-cspec-toggle)
(flag "pushers" 4 dm-col-rend-cspec-toggle)
(flag "Jak" 8 dm-col-rend-cspec-toggle)
(flag "other" 16 dm-col-rend-cspec-toggle)
)
)
(flag "Collision Cache" *display-collide-cache* dm-boolean-toggle-pick-func)
(flag "Collision Marks" *display-collision-marks* dm-boolean-toggle-pick-func)
(flag "Ground Stats" *display-ground-stats* dm-boolean-toggle-pick-func)
(flag "Hipri Collision Marks" *display-hipri-collision-marks* dm-boolean-toggle-pick-func)
(flag "Edge Collision Marks" *display-edge-collision-marks* dm-boolean-toggle-pick-func)
(flag "Collide Stats" *stats-collide* dm-boolean-toggle-pick-func)
(flag "Render Collision" *display-render-collision* dm-boolean-toggle-pick-func)
(flag "Collide List Boxes" *collide-list-boxes* dm-boolean-toggle-pick-func)
)
)
)
(debug-menu-append-item
s5-0
(debug-menu-make-from-template
arg0
'(menu
"Display"
(flag "Profile" *display-profile* dm-boolean-toggle-pick-func)
(flag "Ticks" *profile-ticks* dm-boolean-toggle-pick-func)
(flag "File Info" *display-file-info* dm-boolean-toggle-pick-func)
(flag "Level Spheres" *display-level-spheres* dm-boolean-toggle-pick-func)
(flag "Camera Marks" *display-camera-marks* dm-boolean-toggle-pick-func)
(flag "Camera Info" *display-camera-info* dm-boolean-toggle-pick-func)
(flag "Geometry Marks" *display-geo-marks* dm-boolean-toggle-pick-func)
(flag "Art Control" *display-art-control* dm-boolean-toggle-pick-func)
(flag "Gui Control" *display-gui-control* dm-boolean-toggle-pick-func)
(flag "Instance Info" *display-instance-info* dm-boolean-toggle-pick-func)
(menu
"strip lines"
(flag "strippable" 1 dm-strip-lines-toggle-pick-func)
(flag "convertible" 2 dm-strip-lines-toggle-pick-func)
(flag "edgeable" 4 dm-strip-lines-toggle-pick-func)
(flag "ordinary" 8 dm-strip-lines-toggle-pick-func)
(flag "color mismatch" 16 dm-strip-lines-toggle-pick-func)
(flag "shader mismatch" 32 dm-strip-lines-toggle-pick-func)
(flag "uv mismatch" 64 dm-strip-lines-toggle-pick-func)
(flag "too big" 128 dm-strip-lines-toggle-pick-func)
(flag "good" 3 dm-strip-lines-set-pick-func)
(flag "bad" 240 dm-strip-lines-set-pick-func)
(flag "all edges" 255 dm-strip-lines-set-pick-func)
(flag "strips" 256 dm-strip-lines-set-pick-func)
(flag "frags" 512 dm-strip-lines-set-pick-func)
(flag "none" 0 dm-strip-lines-set-pick-func)
)
(menu
"collision mesh"
(flag "wall" 1024 dm-strip-lines-toggle-pick-func)
(flag "ground" 2048 dm-strip-lines-toggle-pick-func)
(flag "all" 3072 dm-strip-lines-set-pick-func)
(flag "none" 0 dm-strip-lines-set-pick-func)
)
(flag "Texture Distances" *display-texture-distances* dm-boolean-toggle-pick-func)
(flag "Texture Download" *display-texture-download* dm-boolean-toggle-pick-func)
(flag "Level Border" *display-level-border* dm-boolean-toggle-pick-func)
(flag "Split Boxes" *display-split-boxes* dm-boolean-toggle-pick-func)
(flag "Split Box Info" *display-split-box-info* dm-boolean-toggle-pick-func)
(flag "Memcard Info" *display-memcard-info* dm-boolean-toggle-pick-func)
(flag "Trail Graph" *display-trail-graph* dm-boolean-toggle-pick-func)
(flag "Color Bars" *display-color-bars* dm-boolean-toggle-pick-func)
)
)
)
(debug-menu-append-item
s5-0
(debug-menu-make-from-template
arg0
'(menu
"Actor"
(flag "Spawn Actors" *spawn-actors* dm-boolean-toggle-pick-func)
(function "Reset Actors" #f ,(lambda () (reset-actors 'debug) (none)))
(function "Traffic Start" #f ,(lambda ()
(let ((gp-0 traffic-start))
(if (valid? gp-0 function "" #t 0)
(gp-0)
)
)
(none)
)
)
(function "Traffic Kill" #f ,(lambda ()
(let ((gp-0 traffic-kill))
(if (valid? gp-0 function "" #t 0)
(gp-0)
)
)
(none)
)
)
(menu
"Bot"
(function
"Bot Next"
#f
,(lambda ()
(send-event (process-by-name "sig-atoll-1" *active-pool*) 'skip)
(send-event (process-by-name "hal-sewer-1" *active-pool*) 'skip)
(send-event (process-by-name "hal-escort-1" *active-pool*) 'skip)
(send-event (process-by-name "squid-2" *active-pool*) 'skip)
(send-event (process-by-name "metalkor-1" *active-pool*) 'skip)
(send-event (process-by-name "sig-under-1" *active-pool*) 'skip)
)
)
(menu
"Bot Marks"
(flag "course spots" 1 display-bot-marks-toggle-pick-func)
(flag "task spots" 2 display-bot-marks-toggle-pick-func)
(flag "all on" 3 display-bot-marks-set-pick-func)
(flag "all off" 0 display-bot-marks-set-pick-func)
)
(function
"Record sig5-cent1-path0"
#f
,(lambda ()
(set! *bot-record-path* 0)
(dm-play-task-with-continue (game-task under-sig) "cent1-path0-record-path")
(none)
)
)
(function
"Record sig5-cent2-path0"
#f
,(lambda ()
(set! *bot-record-path* 1)
(dm-play-task-with-continue (game-task under-sig) "cent2-path0-record-path")
(none)
)
)
)
(menu
"Actor Compaction"
(flag "off" #f dm-compact-actor-pick-func)
(flag "on" #t dm-compact-actor-pick-func)
(flag "debug" debug dm-compact-actor-pick-func)
)
(flag "Traffic height map" *display-traffic-height-map* dm-boolean-toggle-pick-func)
(flag "View Anims" *debug-view-anims* dm-boolean-toggle-pick-func)
(flag "Unkillable" *debug-unkillable* dm-boolean-toggle-pick-func)
(flag "Regions" *execute-regions* dm-boolean-toggle-pick-func)
(flag "Region Marks" *display-region-marks* dm-boolean-toggle-pick-func)
(flag "Actor Vis" *vis-actors* dm-boolean-toggle-pick-func)
(flag "Battle Marks" *display-battle-marks* dm-boolean-toggle-pick-func)
(menu
"Hover Marks"
(flag "Nav Network" *display-nav-network* dm-boolean-toggle-pick-func)
(flag "Debug Hover" *debug-hover* dm-boolean-toggle-pick-func)
)
(flag "Joint Axes" *display-joint-axes* dm-boolean-toggle-pick-func)
(flag "Path Marks" *display-path-marks* dm-boolean-toggle-pick-func)
(flag "Nav Marks" *display-nav-marks* dm-boolean-toggle-pick-func)
(flag "Vol Marks" *display-vol-marks* dm-boolean-toggle-pick-func)
(flag "Collision Marks" *display-collision-marks* dm-boolean-toggle-pick-func)
(menu
"Actor Vis"
(flag "off" #f dm-actor-vis-pick-func)
(flag "box" box dm-actor-vis-pick-func)
(flag "sphere" sphere dm-actor-vis-pick-func)
(flag "all" #t dm-actor-vis-pick-func)
)
(menu
"Actor Marks"
(flag "off" #f dm-actor-marks-pick-func)
(flag "alive entities" #t dm-actor-marks-pick-func)
(flag "all entities" full dm-actor-marks-pick-func)
(flag "processes" process dm-actor-marks-pick-func)
)
)
)
)
(debug-menu-append-item
s5-0
(debug-menu-make-from-template
arg0
'(menu
"Target"
(menu
"Mode"
(function "normal" #f ,(lambda () (send-event *target* 'end-mode)))
(function "racer" #f ,(lambda ()
(if (not *target*)
(start 'debug (get-current-continue-forced *game-info*))
)
(send-event *target* 'change-mode 'racer #f)
)
)
(function "flut" #f ,(lambda ()
(if (not *target*)
(start 'debug (get-current-continue-forced *game-info*))
)
(send-event *target* 'change-mode 'flut #f)
)
)
(function "board" #f ,(lambda ()
(if (not *target*)
(start 'debug (get-current-continue-forced *game-info*))
)
(logior! (-> *game-info* features) (game-feature board))
(logior! (-> *game-info* debug-features) (game-feature board))
(send-event *target* 'change-mode 'board #f)
)
)
(function "mech" #f ,(lambda ()
(if (not *target*)
(start 'debug (get-current-continue-forced *game-info*))
)
(send-event *target* 'change-mode 'mech #f)
)
)
(function "gun" #f ,(lambda ()
(if (not *target*)
(start 'debug (get-current-continue-forced *game-info*))
)
(logior! (-> *game-info* features) (game-feature gun))
(logior! (-> *game-info* debug-features) (game-feature gun))
(send-event *target* 'change-mode 'gun #f 0)
)
)
(function "darkjak" #f ,(lambda ()
(if (not *target*)
(start 'debug (get-current-continue-forced *game-info*))
)
(logior! (-> *game-info* features) (game-feature darkjak))
(logior! (-> *game-info* debug-features) (game-feature darkjak))
(send-event *target* 'change-mode 'darkjak #f 3)
)
)
(function "indax" #f ,(lambda ()
(if (not *target*)
(start 'debug (get-current-continue-forced *game-info*))
)
(send-event *target* 'change-mode 'indax #f)
)
)
)
(menu
"Pilot Mode"
(function "bikea" #f ,(lambda () (dm-pilot-mode 0) (none)))
(function "bikeb" #f ,(lambda () (dm-pilot-mode 1) (none)))
(function "bikec" #f ,(lambda () (dm-pilot-mode 2) (none)))
(function "crimson-bike" #f ,(lambda () (dm-pilot-mode 6) (none)))
(function "cara" #f ,(lambda () (dm-pilot-mode 3) (none)))
(function "carb" #f ,(lambda () (dm-pilot-mode 4) (none)))
(function "carc" #f ,(lambda () (dm-pilot-mode 5) (none)))
(function "hellcat" #f ,(lambda () (dm-pilot-mode 7) (none)))
;; race-bike-a/b require the city-erol-challenge task to be active
(function "race-bike-a" #f ,(lambda () (dm-pilot-race-mode 0) (none)))
(function "race-bike-b" #f ,(lambda () (dm-pilot-race-mode 1) (none)))
;; race-bike-c doesn't actually work?
(function "race-bike-c" #f ,(lambda () (dm-pilot-race-mode 2) (none)))
;; race-bike-d/e require one of the stadium race tasks to be active
(function "race-bike-d" #f ,(lambda () (dm-pilot-race-mode 3) (none)))
(function "race-bike-e" #f ,(lambda () (dm-pilot-race-mode 4) (none)))
(function "evantestbike" #f ,(lambda () (dm-pilot-mode 8) (none)))
(function "test-bike" #f ,(lambda () (dm-pilot-mode 9) (none)))
(function "test-car" #f ,(lambda () (dm-pilot-mode 10) (none)))
)
(flag "Target" #f ,(lambda ((arg0 object) (arg1 debug-menu-msg))
(when (= arg1 (debug-menu-msg press))
(if *target*
(stop 'debug)
(start 'debug (get-current-continue-forced *game-info*))
)
)
*target*
)
)
(menu
"Darkjak"
(function
"get all"
#f
,(lambda ((arg0 object) (arg1 debug-menu-msg))
(set! (-> *game-info* features)
(logior (game-feature darkjak darkjak-bomb0 darkjak-bomb1 darkjak-invinc darkjak-giant)
(-> *game-info* features)
)
)
(set! (-> *game-info* debug-features)
(logior (game-feature darkjak darkjak-bomb0 darkjak-bomb1 darkjak-invinc darkjak-giant)
(-> *game-info* debug-features)
)
)
(send-event *target* 'get-pickup 7 #x42c80000)
)
)
(function "manual" #f ,(lambda ((arg0 object) (arg1 debug-menu-msg))
(if (not *target*)
(start 'debug (get-current-continue-forced *game-info*))
)
(logior! (-> *game-info* features) (game-feature darkjak))
(logior! (-> *game-info* debug-features) (game-feature darkjak))
(send-event *target* 'change-mode 'darkjak #f 3)
)
)
(function "rapid" #f ,(lambda ((arg0 object) (arg1 debug-menu-msg))
(if (not *target*)
(start 'debug (get-current-continue-forced *game-info*))
)
(logior! (-> *game-info* features) (game-feature darkjak))
(logior! (-> *game-info* debug-features) (game-feature darkjak))
(send-event *target* 'change-mode 'darkjak #f 2)
)
)
(function "bomb0" #f ,(lambda ((arg0 object) (arg1 debug-menu-msg))
(if (not *target*)
(start 'debug (get-current-continue-forced *game-info*))
)
(send-event *target* 'change-mode 'darkjak #f 7)
)
)
(function "bomb1" #f ,(lambda ((arg0 object) (arg1 debug-menu-msg))
(if (not *target*)
(start 'debug (get-current-continue-forced *game-info*))
)
(send-event *target* 'change-mode 'darkjak #f 15)
)
)
(function "invinc" #f ,(lambda ((arg0 object) (arg1 debug-menu-msg))
(if (not *target*)
(start 'debug (get-current-continue-forced *game-info*))
)
(send-event *target* 'change-mode 'darkjak #f 31)
)
)
(function "giant" #f ,(lambda ((arg0 object) (arg1 debug-menu-msg))
(if (not *target*)
(start 'debug (get-current-continue-forced *game-info*))
)
(send-event *target* 'change-mode 'darkjak #f 63)
)
)
)
(menu
"Gun"
(flag "yellow" (the binteger (game-feature gun-yellow)) dm-game-feature-toggle-pick-func)
(flag "red" (the binteger (game-feature gun-red)) dm-game-feature-toggle-pick-func)
(flag "blue" (the binteger (game-feature gun-blue)) dm-game-feature-toggle-pick-func)
(flag "dark" (the binteger (game-feature gun-dark)) dm-game-feature-toggle-pick-func)
(flag "gun-upgrade-speed" 16384 dm-game-feature-toggle-pick-func)
(flag "gun-upgrade-ammo" 32768 dm-game-feature-toggle-pick-func)
(flag "gun-upgrade-damage" 65536 dm-game-feature-toggle-pick-func)
)
(flag "Target Marks" *display-target-marks* dm-boolean-toggle-pick-func)
(flag "Gun Marks" *gun-marks* dm-boolean-toggle-pick-func)
(flag "Target Stats" *stats-target* dm-boolean-toggle-pick-func)
(flag "Sidekick Stats" *display-sidekick-stats* dm-boolean-toggle-pick-func)
(flag "Invulnerable" #f ,(lambda ((arg0 object) (arg1 debug-menu-msg))
(when (= arg1 (debug-menu-msg press))
(if *target*
(logxor! (-> *target* state-flags) (state-flags sf2))
)
)
(and *target* (logtest? (-> *target* state-flags) (state-flags sf2)))
)
)
(flag
"Endless Ammo"
#f
,(lambda ((arg0 object) (arg1 debug-menu-msg))
(when (= arg1 (debug-menu-msg press))
(if *target*
(set! (-> *target* state-flags) (the-as state-flags (logxor #x10000 (the-as int (-> *target* state-flags)))))
)
)
(and *target* (logtest? (state-flags sf16) (-> *target* state-flags)))
)
)
(function
"Full Stuff"
#f
,(lambda ()
(send-event *target* 'get-pickup 18 #x447a0000)
(send-event *target* 'get-pickup 17 #x447a0000)
(send-event *target* 'get-pickup 13 #x447a0000)
(send-event *target* 'get-pickup 14 #x447a0000)
(send-event *target* 'get-pickup 15 #x447a0000)
(send-event *target* 'get-pickup 16 #x447a0000)
(send-event *target* 'get-pickup 7 #x42c80000)
(logior! (-> *game-info* features) (game-feature gun gun-yellow gun-red gun-blue gun-dark board darkjak))
(let ((v0-7
(logior (-> *game-info* debug-features) (game-feature gun gun-yellow gun-red gun-blue gun-dark board darkjak))
)
)
(set! (-> *game-info* debug-features) v0-7)
v0-7
)
)
)
(function
"Dump Stuff"
#f
,(lambda ()
(send-event *target* 'get-pickup 17 -998637568)
(send-event *target* 'get-pickup 13 -998637568)
(send-event *target* 'get-pickup 14 -998637568)
(send-event *target* 'get-pickup 15 -998637568)
(send-event *target* 'get-pickup 16 -998637568)
)
)
(function "Trick Mode" #f ,(lambda () (send-event *target* 'get-pickup 20 #x468ca000)))
(function "Reset Trans" #f ,(lambda () (when *target*
(position-in-front-of-camera! (target-pos 0) 40960.0 4096.0)
(set! (-> *target* control transv quad) (the-as uint128 0))
(quaternion-identity! (-> *target* control quat))
(quaternion-identity! (-> *target* control quat-for-control))
(quaternion-identity! (-> *target* control dir-targ))
)
)
)
(function "Zero Trans" #f ,(lambda () (when *target*
(set-vector! (-> *target* control trans) 0.0 163840.0 0.0 1.0)
(set! (-> *target* control transv quad) (the-as uint128 0))
(quaternion-identity! (-> *target* control quat))
(quaternion-identity! (-> *target* control quat-for-control))
(quaternion-identity! (-> *target* control dir-targ))
)
)
)
(flag "Slow Frame Rate" *slow-frame-rate* dm-boolean-toggle-pick-func)
(function "Print Pos" #f ,(lambda ()
(let ((v1-0 (target-pos 0)))
(format #t "~6,,2m ~6,,2m ~6,,2m~%" (-> v1-0 x) (-> v1-0 y) (-> v1-0 z))
)
0
)
)
(function "Save Continue" #f ,(lambda () (the-as symbol (if *target*
(trsq->continue-point (-> *target* control))
)
)
)
)
(flag "RC Board Controls" *target-rc-board-controls* dm-boolean-toggle-pick-func)
)
)
)
(debug-menu-append-item s5-0 (debug-menu-make-camera-menu arg0))
(debug-menu-append-item
s5-0
(debug-menu-make-from-template
arg0
'(menu
"Racing"
(flag "Kiera Class 3 (kierac)" 0 dm-select-race-pick-func)
(flag "Kiera Class 2 (kierab)" 1 dm-select-race-pick-func)
(flag "Kiera Class 1 (kieraa)" 2 dm-select-race-pick-func)
(flag "Errol (errol)" 3 dm-select-race-pick-func)
(flag "Bush Class 3" 4 dm-select-race-pick-func)
(flag "Bush Class 2" 5 dm-select-race-pick-func)
(flag "Bush Class 1" 6 dm-select-race-pick-func)
(flag "Bush Class 3R" 9 dm-select-race-pick-func)
(flag "Bush Class 2R" 10 dm-select-race-pick-func)
(flag "Bush Class 1R" 11 dm-select-race-pick-func)
(flag "Bush Errol" 7 dm-select-race-pick-func)
(flag "Bush Port" 8 dm-select-race-pick-func)
(int-var "Select Path" 0 dm-select-race-path 10 1 #t 0 7)
(menu
"Race Marks"
(flag "Path 0 (Red)" 1 display-race-marks-toggle-pick-func)
(flag "Path 1 (Green)" 2 display-race-marks-toggle-pick-func)
(flag "Path 2 (Blue)" 4 display-race-marks-toggle-pick-func)
(flag "Path 3 (Yellow)" 8 display-race-marks-toggle-pick-func)
(flag "Path 4 (Cyan)" 16 display-race-marks-toggle-pick-func)
(flag "Path 5 (Violet)" 32 display-race-marks-toggle-pick-func)
(flag "Path 6 (Orange)" 64 display-race-marks-toggle-pick-func)
(flag "Path 7 (Black)" 128 display-race-marks-toggle-pick-func)
(flag "All Paths On" 255 display-race-marks-set-pick-func)
(flag "All Off" 0 display-race-marks-set-pick-func)
)
(function
"Record Selected Path"
#f
,(lambda () (set! *race-record-path* #t) (dm-play-race *select-race* #t) (none))
)
(function "Play Race" #f ,(lambda () (set! *race-record-path* #f) (dm-play-race *select-race* #f) (none)))
)
)
)
(debug-menu-append-item
s5-0
(debug-menu-make-from-template
arg0
'(menu
"Nav Graph"
(function "Start Editor" #f ,(lambda ()
(if (not (get-nav-graph-editor))
(run-nav-graph-editor 'test)
)
(none)
)
)
(function "Exit Editor" #f ,(lambda ()
(if (get-nav-graph-editor)
(exit-nav-graph-editor)
)
(none)
)
)
(function "Toggle Plane Mode" #f ,(lambda ()
(let ((a0-0 (get-nav-graph-editor)))
(if a0-0
(nav-graph-editor-method-60 a0-0)
)
)
(none)
)
)
(function "Toggle Hover Mode" #f ,(lambda ()
(let ((a0-0 (get-nav-graph-editor)))
(if a0-0
(nav-graph-editor-method-61 a0-0)
)
)
(none)
)
)
(menu
"Load"
(function "Hover Drillmid" #f ,(lambda ()
(let ((a0-0 (get-nav-graph-editor)))
(if a0-0
(nav-graph-editor-method-62 a0-0 'hover 'drillmid)
)
)
(none)
)
)
(function "Hover Forresca" #f ,(lambda ()
(let ((a0-0 (get-nav-graph-editor)))
(if a0-0
(nav-graph-editor-method-62 a0-0 'hover 'forresca)
)
)
(none)
)
)
(function "Hover Forest" #f ,(lambda ()
(let ((a0-0 (get-nav-graph-editor)))
(if a0-0
(nav-graph-editor-method-62 a0-0 'hover 'forest)
)
)
(none)
)
)
(function "Hover Under" #f ,(lambda ()
(let ((a0-0 (get-nav-graph-editor)))
(if a0-0
(nav-graph-editor-method-62 a0-0 'hover 'under)
)
)
(none)
)
)
(function "Traffic" #f ,(lambda ()
(let ((a0-0 (get-nav-graph-editor)))
(if a0-0
(nav-graph-editor-method-62 a0-0 'traffic #f)
)
)
(none)
)
)
(function "Minimap" #f ,(lambda ()
(let ((a0-0 (get-nav-graph-editor)))
(if a0-0
(nav-graph-editor-method-62 a0-0 'minimap #f)
)
)
(none)
)
)
)
(function "Save" #f ,(lambda ()
(let ((a0-0 (get-nav-graph-editor)))
(if a0-0
(nav-graph-editor-method-63 a0-0)
)
)
(none)
)
)
)
)
)
(debug-menu-append-item
s5-0
(debug-menu-make-from-template
arg0
'(menu
"Map"
(flag "Record Mode" #f ,(lambda ((arg0 object) (arg1 debug-menu-msg))
(if (= arg1 (debug-menu-msg press))
(set! (-> *bigmap* recording-flag) (not (-> *bigmap* recording-flag)))
)
(-> *bigmap* recording-flag)
)
)
(function
"Clear map"
#f
,(lambda ()
(let ((v1-1 (process-spawn-function process (lambda ()
(set-master-mode 'game)
(let ((gp-0 (current-time)))
(until (>= (- (current-time) gp-0) (seconds 0.3))
(suspend)
)
)
(until #f
(format *stdcon* "press x clear map, press circle cancel~%")
(cond
((cpad-pressed? 0 x)
(initialize *bigmap*)
(return #f)
)
((cpad-pressed? 0 circle)
(return #f)
)
)
(suspend)
)
#f
)
)
)
)
(when v1-1
(let ((v0-3 (logclear (-> v1-1 0 mask) (process-mask menu))))
(set! (-> v1-1 0 mask) v0-3)
v0-3
)
)
)
)
)
(flag "Fill in" #f ,(lambda ((arg0 object) (arg1 debug-menu-msg))
(if (= arg1 (debug-menu-msg press))
(set! (-> *bigmap* fill-flag) (not (-> *bigmap* fill-flag)))
)
(-> *bigmap* fill-flag)
)
)
(function "Save" #f ,(lambda ((arg0 object) (arg1 debug-menu-msg)) (dump-to-file *bigmap*) (none)))
)
)
)
(debug-menu-append-item
s5-0
(debug-menu-make-from-template
arg0
'(menu
"Ocean"
(menu
"Ocean Height"
(flag "zero" 1 dm-ocean-height-func)
(flag "far-below" 2 dm-ocean-height-func)
(flag "sewer-start" 3 dm-ocean-height-func)
(flag "sewer-hi" 4 dm-ocean-height-func)
(flag "sewer-med" 5 dm-ocean-height-func)
(flag "sewer-lo" 6 dm-ocean-height-func)
)
(menu
"Ocean Subdiv"
(flag "Textured" 0 dm-ocean-subdiv-draw-func)
(flag "Outline" 1 dm-ocean-subdiv-draw-func)
(flag "Gouraud" 2 dm-ocean-subdiv-draw-func)
)
)
)
)
(debug-menu-append-item
s5-0
(debug-menu-make-from-template
arg0
'(menu
"Time of day"
(flag "7am sunrise" 0 dm-time-of-day-func)
(flag "10am morning" 1 dm-time-of-day-func)
(flag "12pm noon" 2 dm-time-of-day-func)
(flag "2pm afternoon" 3 dm-time-of-day-func)
(flag "6pm sunset" 4 dm-time-of-day-func)
(flag "7pm twilight" 5 dm-time-of-day-func)
(flag "11pm evening" 6 dm-time-of-day-func)
(flag "4am green sun" 7 dm-time-of-day-func)
(flag "palette 0" 16 dm-time-of-day-func)
(flag "palette 1" 32 dm-time-of-day-func)
(flag "palette 2" 64 dm-time-of-day-func)
(flag "palette 3" 128 dm-time-of-day-func)
(flag "palette 4" 256 dm-time-of-day-func)
(flag "palette 5" 512 dm-time-of-day-func)
(flag "palette 6" 1024 dm-time-of-day-func)
(flag "palette 7" 2048 dm-time-of-day-func)
(flag "on" #f dm-time-of-day-pick-func)
(flag "Fast" *time-of-day-fast* dm-time-of-day-func2)
)
)
)
(debug-menu-append-item
s5-0
(debug-menu-make-from-template
arg0
'(menu
"Mood"
(flag
"Overide Enable"
#f
,(lambda ((arg0 object) (arg1 debug-menu-msg))
(if (= arg1 (debug-menu-msg press))
(set! (-> *time-of-day-context* overide-enable) (not (-> *time-of-day-context* overide-enable)))
)
(-> *time-of-day-context* overide-enable)
)
)
(menu
"Weather"
(flag
"Overide Weather Enable"
#f
,(lambda ((arg0 object) (arg1 debug-menu-msg))
(if (= arg1 (debug-menu-msg press))
(set! (-> *mood-control* overide-weather-flag) (not (-> *mood-control* overide-weather-flag)))
)
(-> *mood-control* overide-weather-flag)
)
)
(flag
"Display Values"
#f
,(lambda ((arg0 object) (arg1 debug-menu-msg))
(if (= arg1 (debug-menu-msg press))
(set! (-> *mood-control* display-flag) (not (-> *mood-control* display-flag)))
)
(-> *mood-control* display-flag)
)
)
(float-var
"Clouds"
#f
,(lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float))
(cond
((= arg1 (debug-menu-msg press))
(if (and *mood-control* (nonzero? *mood-control*))
(set! (-> *mood-control* overide cloud) arg2)
)
)
((or (not *mood-control*) (zero? *mood-control*))
0.0
)
(else
(-> *mood-control* overide cloud)
)
)
)
1
(new 'static 'bfloat :data 0.00390625)
#t
0
(new 'static 'bfloat :data 1.0)
0
)
(float-var
"Fog"
#f
,(lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float))
(cond
((= arg1 (debug-menu-msg press))
(if (and *mood-control* (nonzero? *mood-control*))
(set! (-> *mood-control* overide fog) arg2)
)
)
((or (not *mood-control*) (zero? *mood-control*))
0.0
)
(else
(-> *mood-control* overide fog)
)
)
)
1
(new 'static 'bfloat :data 0.00390625)
#t
0
(new 'static 'bfloat :data 1.0)
0
)
)
(menu
"Colors"
(flag "7am sunrise" 0 dm-time-of-day-func)
(flag "10am morning" 1 dm-time-of-day-func)
(flag "12pm noon" 2 dm-time-of-day-func)
(flag "2pm afternoon" 3 dm-time-of-day-func)
(flag "6pm sunset" 4 dm-time-of-day-func)
(flag "7pm twilight" 5 dm-time-of-day-func)
(flag "11pm evening" 6 dm-time-of-day-func)
(flag "4am green sun" 7 dm-time-of-day-func)
(flag "time of day on" #f dm-time-of-day-pick-func)
(float-var
"Ambient Red"
#f
,(lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float))
(cond
((= arg1 (debug-menu-msg press))
(if (and *overide-mood-color-table* (nonzero? *overide-mood-color-table*))
(set! (-> *overide-mood-color-table*
data
(logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2))
amb-color
x
)
arg2
)
)
)
((or (not *overide-mood-color-table*) (zero? *overide-mood-color-table*))
0.0
)
(else
(-> *overide-mood-color-table*
data
(logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2))
amb-color
x
)
)
)
)
2
(new 'static 'bfloat :data 0.00390625)
#t
0
(new 'static 'bfloat :data 1.9921875)
0
)
(float-var
"Ambient Green"
#f
,(lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float))
(cond
((= arg1 (debug-menu-msg press))
(if (and *overide-mood-color-table* (nonzero? *overide-mood-color-table*))
(set! (-> *overide-mood-color-table*
data
(logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2))
amb-color
y
)
arg2
)
)
)
((or (not *overide-mood-color-table*) (zero? *overide-mood-color-table*))
0.0
)
(else
(-> *overide-mood-color-table*
data
(logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2))
amb-color
y
)
)
)
)
2
(new 'static 'bfloat :data 0.00390625)
#t
0
(new 'static 'bfloat :data 1.9921875)
0
)
(float-var
"Ambient Blue"
#f
,(lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float))
(cond
((= arg1 (debug-menu-msg press))
(if (and *overide-mood-color-table* (nonzero? *overide-mood-color-table*))
(set! (-> *overide-mood-color-table*
data
(logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2))
amb-color
z
)
arg2
)
)
)
((or (not *overide-mood-color-table*) (zero? *overide-mood-color-table*))
0.0
)
(else
(-> *overide-mood-color-table*
data
(logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2))
amb-color
z
)
)
)
)
2
(new 'static 'bfloat :data 0.00390625)
#t
0
(new 'static 'bfloat :data 1.9921875)
0
)
(float-var
"Ambient Mult"
#f
,(lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float))
(cond
((= arg1 (debug-menu-msg press))
(if (and *overide-mood-color-table* (nonzero? *overide-mood-color-table*))
(set! (-> *overide-mood-color-table*
data
(logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2))
amb-color
w
)
arg2
)
)
)
((or (not *overide-mood-color-table*) (zero? *overide-mood-color-table*))
0.0
)
(else
(-> *overide-mood-color-table*
data
(logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2))
amb-color
w
)
)
)
)
2
(new 'static 'bfloat :data 0.00390625)
#t
0
2
0
)
(float-var
"Light Red"
#f
,(lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float))
(cond
((= arg1 (debug-menu-msg press))
(if (and *overide-mood-color-table* (nonzero? *overide-mood-color-table*))
(set! (-> *overide-mood-color-table*
data
(logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2))
lgt-color
x
)
arg2
)
)
)
((or (not *overide-mood-color-table*) (zero? *overide-mood-color-table*))
0.0
)
(else
(-> *overide-mood-color-table*
data
(logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2))
lgt-color
x
)
)
)
)
2
(new 'static 'bfloat :data 0.00390625)
#t
0
(new 'static 'bfloat :data 1.9921875)
0
)
(float-var
"Light Green"
#f
,(lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float))
(cond
((= arg1 (debug-menu-msg press))
(if (and *overide-mood-color-table* (nonzero? *overide-mood-color-table*))
(set! (-> *overide-mood-color-table*
data
(logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2))
lgt-color
y
)
arg2
)
)
)
((or (not *overide-mood-color-table*) (zero? *overide-mood-color-table*))
0.0
)
(else
(-> *overide-mood-color-table*
data
(logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2))
lgt-color
y
)
)
)
)
2
(new 'static 'bfloat :data 0.00390625)
#t
0
(new 'static 'bfloat :data 1.9921875)
0
)
(float-var
"Light Blue"
#f
,(lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float))
(cond
((= arg1 (debug-menu-msg press))
(if (and *overide-mood-color-table* (nonzero? *overide-mood-color-table*))
(set! (-> *overide-mood-color-table*
data
(logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2))
lgt-color
z
)
arg2
)
)
)
((or (not *overide-mood-color-table*) (zero? *overide-mood-color-table*))
0.0
)
(else
(-> *overide-mood-color-table*
data
(logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2))
lgt-color
z
)
)
)
)
2
(new 'static 'bfloat :data 0.00390625)
#t
0
(new 'static 'bfloat :data 1.9921875)
0
)
(float-var
"Light Mult"
#f
,(lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float))
(cond
((= arg1 (debug-menu-msg press))
(if (and *overide-mood-color-table* (nonzero? *overide-mood-color-table*))
(set! (-> *overide-mood-color-table*
data
(logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2))
lgt-color
w
)
arg2
)
)
)
((or (not *overide-mood-color-table*) (zero? *overide-mood-color-table*))
0.0
)
(else
(-> *overide-mood-color-table*
data
(logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2))
lgt-color
w
)
)
)
)
2
(new 'static 'bfloat :data 0.00390625)
#t
0
2
0
)
(function
"reset selected time"
#f
,(lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float))
(mem-copy!
(the-as
pointer
(-> *overide-mood-color-table*
data
(logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2))
)
)
(the-as
pointer
(-> *mood-control*
mood-color-table
data
(logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2))
)
)
32
)
(set! (-> *overide-mood-color-table*
data
(logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2))
lgt-color
w
)
1.0
)
(set! (-> *overide-mood-color-table*
data
(logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2))
amb-color
w
)
1.0
)
)
)
(function
"reset all times"
#f
,(lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float))
(mem-copy!
(the-as pointer *overide-mood-color-table*)
(the-as pointer (-> *mood-control* mood-color-table))
256
)
(dotimes (v1-1 8)
(set! (-> *overide-mood-color-table* data v1-1 lgt-color w) 1.0)
(set! (-> *overide-mood-color-table* data v1-1 amb-color w) 1.0)
)
(the-as float #f)
)
)
)
(menu
"Fog"
(flag "7am sunrise" 0 dm-time-of-day-func)
(flag "10am morning" 1 dm-time-of-day-func)
(flag "12pm noon" 2 dm-time-of-day-func)
(flag "2pm afternoon" 3 dm-time-of-day-func)
(flag "6pm sunset" 4 dm-time-of-day-func)
(flag "7pm twilight" 5 dm-time-of-day-func)
(flag "11pm evening" 6 dm-time-of-day-func)
(flag "4am green sun" 7 dm-time-of-day-func)
(flag "time of day on" #f dm-time-of-day-pick-func)
(float-var
"Red"
#f
,(lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float))
(cond
((= arg1 (debug-menu-msg press))
(if (and *overide-mood-fog-table* (nonzero? *overide-mood-fog-table*))
(set! (-> *overide-mood-fog-table*
data
(the-as uint (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2)))
fog-color
x
)
arg2
)
)
)
((or (not *overide-mood-fog-table*) (zero? *overide-mood-fog-table*))
0.0
)
(else
(-> *overide-mood-fog-table*
data
(the-as uint (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2)))
fog-color
x
)
)
)
)
2
(new 'static 'bfloat :data 1.0)
#t
0
255
0
)
(float-var
"Green"
#f
,(lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float))
(cond
((= arg1 (debug-menu-msg press))
(if (and *overide-mood-fog-table* (nonzero? *overide-mood-fog-table*))
(set! (-> *overide-mood-fog-table*
data
(the-as uint (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2)))
fog-color
y
)
arg2
)
)
)
((or (not *overide-mood-fog-table*) (zero? *overide-mood-fog-table*))
0.0
)
(else
(-> *overide-mood-fog-table*
data
(the-as uint (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2)))
fog-color
y
)
)
)
)
2
(new 'static 'bfloat :data 1.0)
#t
0
255
0
)
(float-var
"Blue"
#f
,(lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float))
(cond
((= arg1 (debug-menu-msg press))
(if (and *overide-mood-fog-table* (nonzero? *overide-mood-fog-table*))
(set! (-> *overide-mood-fog-table*
data
(the-as uint (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2)))
fog-color
z
)
arg2
)
)
)
((or (not *overide-mood-fog-table*) (zero? *overide-mood-fog-table*))
0.0
)
(else
(-> *overide-mood-fog-table*
data
(the-as uint (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2)))
fog-color
z
)
)
)
)
2
(new 'static 'bfloat :data 1.0)
#t
0
255
0
)
(float-var
"Mult"
#f
,(lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float))
(cond
((= arg1 (debug-menu-msg press))
(if (and *overide-mood-fog-table* (nonzero? *overide-mood-fog-table*))
(set! (-> *overide-mood-fog-table*
data
(the-as uint (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2)))
fog-color
w
)
arg2
)
)
)
((or (not *overide-mood-fog-table*) (zero? *overide-mood-fog-table*))
0.0
)
(else
(-> *overide-mood-fog-table*
data
(the-as uint (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2)))
fog-color
w
)
)
)
)
2
(new 'static 'bfloat :data 0.00390625)
#t
0
1
0
)
(float-var
"Start"
#f
,(lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float))
(cond
((= arg1 (debug-menu-msg press))
(if (and *overide-mood-fog-table* (nonzero? *overide-mood-fog-table*))
(set! (-> *overide-mood-fog-table*
data
(the-as uint (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2)))
fog-dists
x
)
arg2
)
)
)
((or (not *overide-mood-fog-table*) (zero? *overide-mood-fog-table*))
0.0
)
(else
(-> *overide-mood-fog-table*
data
(the-as uint (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2)))
fog-dists
x
)
)
)
)
2
(new 'static 'bfloat :data 1.0)
#t
-1000
10000
0
)
(float-var
"End"
#f
,(lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float))
(cond
((= arg1 (debug-menu-msg press))
(if (and *overide-mood-fog-table* (nonzero? *overide-mood-fog-table*))
(set! (-> *overide-mood-fog-table*
data
(the-as uint (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2)))
fog-dists
y
)
arg2
)
)
)
((or (not *overide-mood-fog-table*) (zero? *overide-mood-fog-table*))
0.0
)
(else
(-> *overide-mood-fog-table*
data
(the-as uint (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2)))
fog-dists
y
)
)
)
)
2
(new 'static 'bfloat :data 1.0)
#t
0
10000
0
)
(float-var
"Max"
#f
,(lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float))
(cond
((= arg1 (debug-menu-msg press))
(if (and *overide-mood-fog-table* (nonzero? *overide-mood-fog-table*))
(set! (-> *overide-mood-fog-table*
data
(the-as uint (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2)))
fog-dists
w
)
arg2
)
)
)
((or (not *overide-mood-fog-table*) (zero? *overide-mood-fog-table*))
0.0
)
(else
(-> *overide-mood-fog-table*
data
(the-as uint (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2)))
fog-dists
w
)
)
)
)
2
(new 'static 'bfloat :data 0.5)
#t
0
255
0
)
(float-var
"Min"
#f
,(lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float))
(cond
((= arg1 (debug-menu-msg press))
(if (and *overide-mood-fog-table* (nonzero? *overide-mood-fog-table*))
(set! (-> *overide-mood-fog-table*
data
(the-as uint (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2)))
fog-dists
z
)
arg2
)
)
)
((or (not *overide-mood-fog-table*) (zero? *overide-mood-fog-table*))
0.0
)
(else
(-> *overide-mood-fog-table*
data
(the-as uint (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2)))
fog-dists
z
)
)
)
)
2
(new 'static 'bfloat :data 0.5)
#t
0
255
0
)
(function
"reset selected time"
#f
,(lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float))
(mem-copy!
(the-as
pointer
(-> *overide-mood-fog-table*
data
(the-as uint (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2)))
)
)
(the-as
pointer
(-> *mood-control*
mood-fog-table
data
(the-as uint (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2)))
)
)
48
)
(set! (-> *overide-mood-fog-table*
data
(the-as uint (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2)))
fog-color
w
)
1.0
)
(set! (-> *overide-mood-fog-table*
data
(the-as uint (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2)))
fog-dists
x
)
(* 0.00024414062
(-> *overide-mood-fog-table*
data
(the-as uint (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2)))
fog-dists
x
)
)
)
(set! (-> *overide-mood-fog-table*
data
(the-as uint (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2)))
fog-dists
y
)
(* 0.00024414062
(-> *overide-mood-fog-table*
data
(the-as uint (logand (-> *time-of-day-context* mode) (time-of-day-palette-id unk0 unk1 unk2)))
fog-dists
y
)
)
)
)
)
(function
"reset all times"
#f
,(lambda ()
(mem-copy! (the-as pointer *overide-mood-fog-table*) (the-as pointer (-> *mood-control* mood-fog-table)) 384)
(dotimes (v1-1 8)
(set! (-> *overide-mood-fog-table* data v1-1 fog-color w) 1.0)
(set! (-> *overide-mood-fog-table* data v1-1 fog-dists x)
(* 0.00024414062 (-> *overide-mood-fog-table* data v1-1 fog-dists x))
)
(set! (-> *overide-mood-fog-table* data v1-1 fog-dists y)
(* 0.00024414062 (-> *overide-mood-fog-table* data v1-1 fog-dists y))
)
)
#f
)
)
)
(menu
"Palette"
(flag "palette 0" 0 dm-time-of-day-palette-func)
(flag "palette 1" 1 dm-time-of-day-palette-func)
(flag "palette 2" 2 dm-time-of-day-palette-func)
(flag "palette 3" 3 dm-time-of-day-palette-func)
(flag "palette 4" 4 dm-time-of-day-palette-func)
(flag "palette 5" 5 dm-time-of-day-palette-func)
(flag "palette 6" 6 dm-time-of-day-palette-func)
(flag "palette 7" 7 dm-time-of-day-palette-func)
(flag "time of day on" #f dm-time-of-day-pick-func)
(float-var
"Red"
#f
,(lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float))
(cond
((= arg1 (debug-menu-msg press))
(if (and *time-of-day-context* (nonzero? *time-of-day-context*))
(set! (-> *time-of-day-context* times (-> *time-of-day-context* overide-palette) x) arg2)
)
)
((or (not *time-of-day-context*) (zero? *time-of-day-context*))
0.0
)
(else
(-> *time-of-day-context* times (-> *time-of-day-context* overide-palette) x)
)
)
)
2
(new 'static 'bfloat :data 0.00390625)
#t
0
(new 'static 'bfloat :data 1.9921875)
0
)
(float-var
"Green"
#f
,(lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float))
(cond
((= arg1 (debug-menu-msg press))
(if (and *time-of-day-context* (nonzero? *time-of-day-context*))
(set! (-> *time-of-day-context* times (-> *time-of-day-context* overide-palette) y) arg2)
)
)
((or (not *time-of-day-context*) (zero? *time-of-day-context*))
0.0
)
(else
(-> *time-of-day-context* times (-> *time-of-day-context* overide-palette) y)
)
)
)
2
(new 'static 'bfloat :data 0.00390625)
#t
0
(new 'static 'bfloat :data 1.9921875)
0
)
(float-var
"Blue"
#f
,(lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float))
(cond
((= arg1 (debug-menu-msg press))
(if (and *time-of-day-context* (nonzero? *time-of-day-context*))
(set! (-> *time-of-day-context* times (-> *time-of-day-context* overide-palette) z) arg2)
)
)
((or (not *time-of-day-context*) (zero? *time-of-day-context*))
0.0
)
(else
(-> *time-of-day-context* times (-> *time-of-day-context* overide-palette) z)
)
)
)
2
(new 'static 'bfloat :data 0.00390625)
#t
0
(new 'static 'bfloat :data 1.9921875)
0
)
(float-var
"Mult"
#f
,(lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float))
(cond
((= arg1 (debug-menu-msg press))
(if (and *time-of-day-context* (nonzero? *time-of-day-context*))
(set! (-> *time-of-day-context* times (-> *time-of-day-context* overide-palette) w) arg2)
)
)
((or (not *time-of-day-context*) (zero? *time-of-day-context*))
0.0
)
(else
(-> *time-of-day-context* times (-> *time-of-day-context* overide-palette) w)
)
)
)
2
(new 'static 'bfloat :data 0.00390625)
#t
0
2
0
)
(function
"reset selected time"
#f
,(lambda () (let ((v0-0 (-> *time-of-day-context* times (-> *time-of-day-context* overide-palette))))
(set! (-> v0-0 x) 1.0)
(set! (-> v0-0 y) 1.0)
(set! (-> v0-0 z) 1.0)
(set! (-> v0-0 w) 1.0)
v0-0
)
)
)
(function "reset all times" #f ,(lambda ()
(dotimes (v1-0 8)
(set-vector! (-> *time-of-day-context* times v1-0) 1.0 1.0 1.0 1.0)
)
#f
)
)
)
(menu
"Filter"
(float-var
"Red"
#f
,(lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float))
(cond
((= arg1 (debug-menu-msg press))
(if (and *time-of-day-context* (nonzero? *time-of-day-context*))
(set! (-> *time-of-day-context* filter-color x) arg2)
)
)
((or (not *time-of-day-context*) (zero? *time-of-day-context*))
0.0
)
(else
(-> *time-of-day-context* filter-color x)
)
)
)
2
(new 'static 'bfloat :data 0.00390625)
#t
0
(new 'static 'bfloat :data 1.9921875)
0
)
(float-var
"Green"
#f
,(lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float))
(cond
((= arg1 (debug-menu-msg press))
(if (and *time-of-day-context* (nonzero? *time-of-day-context*))
(set! (-> *time-of-day-context* filter-color y) arg2)
)
)
((or (not *time-of-day-context*) (zero? *time-of-day-context*))
0.0
)
(else
(-> *time-of-day-context* filter-color y)
)
)
)
2
(new 'static 'bfloat :data 0.00390625)
#t
0
(new 'static 'bfloat :data 1.9921875)
0
)
(float-var
"Blue"
#f
,(lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float))
(cond
((= arg1 (debug-menu-msg press))
(if (and *time-of-day-context* (nonzero? *time-of-day-context*))
(set! (-> *time-of-day-context* filter-color z) arg2)
)
)
((or (not *time-of-day-context*) (zero? *time-of-day-context*))
0.0
)
(else
(-> *time-of-day-context* filter-color z)
)
)
)
2
(new 'static 'bfloat :data 0.00390625)
#t
0
(new 'static 'bfloat :data 1.9921875)
0
)
(float-var
"Mult"
#f
,(lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float))
(cond
((= arg1 (debug-menu-msg press))
(if (and *time-of-day-context* (nonzero? *time-of-day-context*))
(set! (-> *time-of-day-context* filter-color w) arg2)
)
)
((or (not *time-of-day-context*) (zero? *time-of-day-context*))
0.0
)
(else
(-> *time-of-day-context* filter-color w)
)
)
)
2
(new 'static 'bfloat :data 0.00390625)
#t
0
2
0
)
(function "reset filter" #f ,(lambda () (let ((v0-0 (-> *time-of-day-context* filter-color)))
(set! (-> v0-0 x) 1.0)
(set! (-> v0-0 y) 1.0)
(set! (-> v0-0 z) 1.0)
(set! (-> v0-0 w) 1.0)
(the-as symbol v0-0)
)
)
)
)
(menu
"Sky"
(float-var
"Cloud Min"
#f
,(lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float))
(cond
((= arg1 (debug-menu-msg press))
(if (and *time-of-day-context* (nonzero? *time-of-day-context*))
(set! (-> *time-of-day-context* current-clouds cloud-min) arg2)
)
)
((or (not *time-of-day-context*) (zero? *time-of-day-context*))
0.0
)
(else
(-> *time-of-day-context* current-clouds cloud-min)
)
)
)
1
(new 'static 'bfloat :data 0.00390625)
#t
0
1
0
)
(float-var
"Cloud Max"
#f
,(lambda ((arg0 object) (arg1 debug-menu-msg) (arg2 float))
(cond
((= arg1 (debug-menu-msg press))
(if (and *time-of-day-context* (nonzero? *time-of-day-context*))
(set! (-> *time-of-day-context* current-clouds cloud-max) arg2)
)
)
((or (not *time-of-day-context*) (zero? *time-of-day-context*))
0.0
)
(else
(-> *time-of-day-context* current-clouds cloud-max)
)
)
)
1
(new 'static 'bfloat :data 0.00390625)
#t
0
1
0
)
(function
"reset sky"
#f
,(lambda ()
(set! (-> *time-of-day-context* current-clouds cloud-min) (-> *mood-control* mood-clouds cloud-min))
(set! (-> *time-of-day-context* current-clouds cloud-max) (-> *mood-control* mood-clouds cloud-max))
)
)
)
(function "Print mood tables" #f ,(lambda () (print-mood-tables) (none)))
(function
"reset everything"
#f
,(lambda ()
(mem-copy!
(the-as pointer *overide-mood-color-table*)
(the-as pointer (-> *mood-control* mood-color-table))
256
)
(mem-copy! (the-as pointer *overide-mood-fog-table*) (the-as pointer (-> *mood-control* mood-fog-table)) 384)
(dotimes (v1-2 8)
(set! (-> *overide-mood-color-table* data v1-2 lgt-color w) 1.0)
(set! (-> *overide-mood-color-table* data v1-2 amb-color w) 1.0)
(set! (-> *overide-mood-fog-table* data v1-2 fog-color w) 1.0)
(set! (-> *overide-mood-fog-table* data v1-2 fog-dists x)
(* 0.00024414062 (-> *overide-mood-fog-table* data v1-2 fog-dists x))
)
(set! (-> *overide-mood-fog-table* data v1-2 fog-dists y)
(* 0.00024414062 (-> *overide-mood-fog-table* data v1-2 fog-dists y))
)
(set-vector! (-> *time-of-day-context* times v1-2) 1.0 1.0 1.0 1.0)
)
(set-vector! (-> *time-of-day-context* filter-color) 1.0 1.0 1.0 1.0)
(set! (-> *time-of-day-context* current-clouds cloud-min) (-> *mood-control* mood-clouds cloud-min))
(set! (-> *time-of-day-context* current-clouds cloud-max) (-> *mood-control* mood-clouds cloud-max))
)
)
)
)
)
(debug-menu-append-item
s5-0
(debug-menu-make-from-template
arg0
'(menu
"Sound"
(flag "Effect Debug" *debug-effect-control* dm-boolean-toggle-pick-func)
(flag "Regions" *execute-regions* dm-boolean-toggle-pick-func)
(flag "Region Marks" *display-region-marks* dm-boolean-toggle-pick-func)
(flag "Sound channels" *display-iop-info* dm-boolean-toggle-pick-func)
(function "Reload Banks" #f sound-bank-reload)
(function "List Sounds" #f ,(lambda () (list-sounds) (none)))
(function "IOP Info" #f ,(lambda () (loader-test-command (sound-command iop-mem) (the-as uint 0)) (none)))
)
)
)
(debug-menu-append-item s5-0 (debug-menu-make-shader-menu arg0))
(debug-menu-append-item s5-0 (debug-menu-make-instance-menu arg0))
(debug-menu-append-item
s5-0
(debug-menu-make-from-template
arg0
'(menu
"Bug Report"
(flag "display" *display-bug-report* dm-boolean-toggle-pick-func)
(flag "screen" *stdcon* dm-bug-report-output-pick-func)
(flag "listener" listener dm-bug-report-output-pick-func)
(flag "file" file-stream dm-bug-report-output-pick-func)
(function "visgood" "visgood" dm-bug-report-report-pick-func)
(function "visbad" "visbad" dm-bug-report-report-pick-func)
(function "collision" "collision" dm-bug-report-report-pick-func)
)
)
)
(debug-menu-append-item
s5-0
(debug-menu-make-from-template
arg0
'(menu
"Scene"
(menu
"Scene Info"
(flag "channel" 1 display-scene-control-toggle-pick-func)
(flag "anim name" 2 display-scene-control-toggle-pick-func)
(flag "dma size" 4 display-scene-control-toggle-pick-func)
(flag "bounds spheres" 8 display-scene-control-toggle-pick-func)
(flag "actors" 16 display-scene-control-toggle-pick-func)
(flag "actor-marks" 32 display-scene-control-toggle-pick-func)
(flag "special fma spheres" 64 display-scene-control-toggle-pick-func)
(flag "all on" 95 display-scene-control-set-pick-func)
(flag "all off" 0 display-scene-control-set-pick-func)
)
(menu
"city"
(function "city-help-kid-intro" ("ctyslumb-fort" "city-help-kid-intro") dm-scene-load-pick-func)
(function "city-help-kid-resolution" ("ctyslumb-fort" "city-help-kid-resolution") dm-scene-load-pick-func)
(function
"city-intercept-tanker-intro"
("ctymarkb-tanker" "city-intercept-tanker-intro")
dm-scene-load-pick-func
)
(function "city-intercept-tanker-res" ("ctymarkb-tanker" "city-intercept-tanker-res") dm-scene-load-pick-func)
(function "city-get-yellow-gun" ("gungame-movie" "city-get-yellow-gun") dm-scene-load-pick-func)
(function "city-get-hoverboard" ("ctyfarma-airlock-movie" "city-get-hoverboard") dm-scene-load-pick-func)
(function "city-get-dark-gun" ("gungame-movie" "city-get-dark-gun") dm-scene-load-pick-func)
(function "city-meet-brutter-res" ("kiosk-start" "city-meet-brutter-res") dm-scene-load-pick-func)
(function "city-save-lurkers-intro" ("kiosk-start" "city-save-lurkers-intro") dm-scene-load-pick-func)
(function
"city-errol-challenge-res"
("garage-start-class3" "city-errol-challenge-res")
dm-scene-load-pick-func
)
(function "city-air-train-in-caspad" ("ctyport-air-train" "city-air-train-in-caspad") dm-scene-load-pick-func)
(function "city-air-train-in-nest" ("ctyport-air-train" "city-air-train-in-nest") dm-scene-load-pick-func)
(function "city-air-train-out" ("ctyport-air-train" "city-air-train-out") dm-scene-load-pick-func)
(function
"city-ashelin-drop-off"
("ctyport-air-train-ashelin" "city-ashelin-drop-off")
dm-scene-load-pick-func
)
(function
"city-protect-slums-intro"
("ctyslumc-seal-movie" "city-protect-slums-intro")
dm-scene-load-pick-func
)
)
(menu
"atoll"
(function "atoll-1-res" ("atoll-movie" "atoll-1-res") dm-scene-load-pick-func)
(function "atoll-save-ashelin-res-a" ("atoll-movie" "atoll-save-ashelin-res-a") dm-scene-load-pick-func)
(function "atoll-save-ashelin-res-b" ("atoll-movie" "atoll-save-ashelin-res-b") dm-scene-load-pick-func)
(function "atoll-sig-intro" ("atoll-movie" "atoll-sig-intro") dm-scene-load-pick-func)
(function "atoll-sig-tank" ("atoll-movie" "atoll-sig-tank") dm-scene-load-pick-func)
(function "atoll-sniper-a" ("atoll-movie" "atoll-sniper-a") dm-scene-load-pick-func)
(function "atoll-sniper-b" ("atoll-movie" "atoll-sniper-b") dm-scene-load-pick-func)
(function "atoll-sniper-c" ("atoll-movie" "atoll-sniper-c") dm-scene-load-pick-func)
(function "atoll-sniper-d" ("atoll-movie" "atoll-sniper-d") dm-scene-load-pick-func)
(function "atoll-sniper-e" ("atoll-movie" "atoll-sniper-e") dm-scene-load-pick-func)
)
(menu
"canyon"
(function "canyon-insert-items-intro" ("mountain-movie" "canyon-insert-items-intro") dm-scene-load-pick-func)
(function "canyon-insert-items-res" ("mincan-city" "canyon-insert-items-res") dm-scene-load-pick-func)
)
(menu
"caspad"
(function "caspad-air-train-in" ("caspad-warp" "caspad-air-train-in") dm-scene-load-pick-func)
(function "caspad-air-train-out" ("caspad-warp" "caspad-air-train-out") dm-scene-load-pick-func)
)
(menu
"castle"
(function
"castle-krew-boss-fight-intro"
("casboss-start" "castle-krew-boss-fight-intro")
dm-scene-load-pick-func
)
(function "castle-krew-boss-fight-res" ("casboss-start" "castle-krew-boss-fight-res") dm-scene-load-pick-func)
)
(menu
"consite"
(function "consite-find-baron-res" ("consite-start" "consite-find-baron-res") dm-scene-load-pick-func)
)
(menu
"dig"
(function "dig-find-totem-res" ("dig-totem" "dig-find-totem-res") dm-scene-load-pick-func)
(function "dig-digger-explode" ("dig1-start" "dig-digger-explode") dm-scene-load-pick-func)
)
(menu
"drill"
(function "drill-top-explode" ("drillmid-checkpoint" "drill-top-explode") dm-scene-load-pick-func)
)
(menu
"forest"
(function
"forest-protect-samos-intro-b"
("forest-tree" "forest-protect-samos-intro-b")
dm-scene-load-pick-func
)
(function "forest-protect-samos-res" ("forest-tree" "forest-protect-samos-res") dm-scene-load-pick-func)
)
(menu
"fortress"
(function
"fortress-blow-up-ammo-res-a"
("fordumpc-start" "fortress-blow-up-ammo-res-a")
dm-scene-load-pick-func
)
(function
"fortress-blow-up-ammo-res-b"
("fordumpc-explode-movie" "fortress-blow-up-ammo-res-b")
dm-scene-load-pick-func
)
(function "fortress-save-friends-res" ("prison-start" "fortress-save-friends-res") dm-scene-load-pick-func)
(function
"test-fortress-blow-up-ammo-res-b-a"
("fordumpc-explode-movie" "test-fortress-blow-up-ammo-res-b-a")
dm-scene-load-pick-func
)
(function "test-fortress-blast" ("fordumpc-explode-movie" "test-fortress-blast") dm-scene-load-pick-func)
)
(menu
"hideout"
(function "city-krew-delivery-intro" ("hideout-start" "city-krew-delivery-intro") dm-scene-load-pick-func)
(function
"city-destroy-guard-vehicles-intro"
("hideout-start" "city-destroy-guard-vehicles-intro")
dm-scene-load-pick-func
)
(function "ruins-sacred-intro" ("hideout-start" "ruins-sacred-intro") dm-scene-load-pick-func)
(function "ruins-tower-intro" ("ctysluma-tower-intro" "ruins-tower-intro") dm-scene-load-pick-func)
(function "vin-rescue-intro" ("hideout-start" "vin-rescue-intro") dm-scene-load-pick-func)
(function "fortress-2-intro" ("hideout-start" "fortress-2-intro") dm-scene-load-pick-func)
(function "atoll-1-int" ("hideout-start" "atoll-1-int") dm-scene-load-pick-func)
(function "atoll-3-intro" ("hideout-start" "atoll-3-intro") dm-scene-load-pick-func)
(function
"city-shuttle-underground-intro"
("hideout-start" "city-shuttle-underground-intro")
dm-scene-load-pick-func
)
(function "city-escort-kid-intro" ("escort-kid-intro" "city-escort-kid-intro") dm-scene-load-pick-func)
(function "city-stop-bomb-bots-intro" ("hideout-start" "city-stop-bomb-bots-intro") dm-scene-load-pick-func)
(function
"forest-catch-metal-heads-intro"
("hideout-start" "forest-catch-metal-heads-intro")
dm-scene-load-pick-func
)
(function
"fortress-save-friends-intro-a"
("hideout-start" "fortress-save-friends-intro-a")
dm-scene-load-pick-func
)
)
(menu
"hiphog"
(function "atoll-2-intro" ("hiphog-start" "atoll-2-intro") dm-scene-load-pick-func)
(function "sewer-1-intro" ("hiphog-start" "sewer-1-intro") dm-scene-load-pick-func)
(function "sewer-1-res" ("hiphog-start" "sewer-1-res") dm-scene-load-pick-func)
(function "sewer-2-intro" ("hiphog-start" "sewer-2-intro") dm-scene-load-pick-func)
(function "krew-delivery-res" ("hiphog-start" "krew-delivery-res") dm-scene-load-pick-func)
(function "city-meet-brutter-intro" ("hiphog-start" "city-meet-brutter-intro") dm-scene-load-pick-func)
(function "city-keira-delivery-intro" ("hiphog-start" "city-keira-delivery-intro") dm-scene-load-pick-func)
(function "city-krew-collection-intro" ("hiphog-start" "city-krew-collection-intro") dm-scene-load-pick-func)
(function "city-krew-collection-res" ("hiphog-start" "city-krew-collection-res") dm-scene-load-pick-func)
(function
"forest-hunt-camo-metal-heads-intro"
("hiphog-start" "forest-hunt-camo-metal-heads-intro")
dm-scene-load-pick-func
)
(function "sewer-blow-up-statue-intro" ("hiphog-start" "sewer-blow-up-statue-intro") dm-scene-load-pick-func)
(function "city-errol-challenge-intro" ("hiphog-start" "city-errol-challenge-intro") dm-scene-load-pick-func)
(function "city-whack-a-metal-intro" ("hiphog-start" "city-whack-a-metal-intro") dm-scene-load-pick-func)
(function "city-whack-a-metal-res" ("hiphog-start" "city-whack-a-metal-res") dm-scene-load-pick-func)
)
(menu
"intro/outro"
(function
"intro"
("village1-start" ("intro-samos-hut" "intro-vortex" "intro-city-square" "intro-prison"))
dm-scene-load-pick-func
)
(function "intro-samos-hut" ("village1-start" "intro-samos-hut") dm-scene-load-pick-func)
(function "intro-vortex" ("village1-start" "intro-vortex") dm-scene-load-pick-func)
(function "intro-city-square" ("ctyindb-intro-start" "intro-city-square") dm-scene-load-pick-func)
(function "intro-prison" ("prison-intro-start" "intro-prison") dm-scene-load-pick-func)
(function
"outro"
("nestb-outro" ("outro-nest" "outro-palace" "outro-hiphog" "outro-port"))
dm-scene-load-pick-func
)
(function "outro-nest" ("nestb-outro" "outro-nest") dm-scene-load-pick-func)
(function "outro-palace" ("throne-outro" "outro-palace") dm-scene-load-pick-func)
(function "outro-hiphog" ("hiphog-outro" "outro-hiphog") dm-scene-load-pick-func)
(function "outro-port" ("ctyport-outro" "outro-port") dm-scene-load-pick-func)
)
(menu
"mountain"
(function "mtn-step-plat-rocks-a" ("mountain-start" "mtn-step-plat-rocks-a") dm-scene-load-pick-func)
(function "mtn-step-plat-rocks-b" ("mountain-start" "mtn-step-plat-rocks-b") dm-scene-load-pick-func)
(function "mtn-step-plat-rocks-c" ("mountain-start" "mtn-step-plat-rocks-c") dm-scene-load-pick-func)
(function "mtn-plat-buried-rocks-a" ("mountain-start" "mtn-plat-buried-rocks-a") dm-scene-load-pick-func)
(function "mountain-lens-res" ("mountain-start" "mountain-lens-res") dm-scene-load-pick-func)
(function "mountain-shard-res" ("mountain-start" "mountain-shard-res") dm-scene-load-pick-func)
(function "mountain-gear-res" ("mountain-start" "mountain-gear-res") dm-scene-load-pick-func)
)
(menu
"nest"
(function "nest-break-barrier-res" ("nest-gun" "nest-break-barrier-res") dm-scene-load-pick-func)
(function "nest-air-train-in" ("nest-warp" "nest-air-train-in") dm-scene-load-pick-func)
(function "nest-air-train-out" ("nest-warp" "nest-air-train-out") dm-scene-load-pick-func)
(function "nest-kor-boss-fight-intro-b" ("nestb-boss" "nest-kor-boss-fight-intro-b") dm-scene-load-pick-func)
(function "nest-kor-boss-fight-mid" ("nestb-boss" "nest-kor-boss-fight-mid") dm-scene-load-pick-func)
)
(menu
"onintent"
(function "mountain-finditems-intro" ("onintent-start" "mountain-finditems-intro") dm-scene-load-pick-func)
(function "dig-find-totem-intro" ("onintent-start" "dig-find-totem-intro") dm-scene-load-pick-func)
(function
"forest-protect-samos-intro-a"
("onintent-start" "forest-protect-samos-intro-a")
dm-scene-load-pick-func
)
(function "city-play-onin-game-intro" ("onintent-start" "city-play-onin-game-intro") dm-scene-load-pick-func)
(function "city-play-onin-game-res" ("onintent-start" "city-play-onin-game-res") dm-scene-load-pick-func)
(function
"test-mountain-finditems-intro"
("onintent-start" "test-mountain-finditems-intro")
dm-scene-load-pick-func
)
)
(menu
"oracle"
(function "city-oracle-intro" ("oracle-start" "city-oracle-intro") dm-scene-load-pick-func)
(function "city-oracle-level-0" ("oracle-start" "city-oracle-level-0") dm-scene-load-pick-func)
(function "city-oracle-level-1" ("oracle-start" "city-oracle-level-1") dm-scene-load-pick-func)
(function "city-oracle-level-2" ("oracle-start" "city-oracle-level-2") dm-scene-load-pick-func)
(function "city-oracle-level-3" ("oracle-start" "city-oracle-level-3") dm-scene-load-pick-func)
)
(menu
"palace"
(function "palace-outside-window-res" ("palroof-throne" "palace-outside-window-res") dm-scene-load-pick-func)
(function
"palace-outside-window-res-b"
("palroof-boss" "palace-outside-window-res-b")
dm-scene-load-pick-func
)
(function "palace-boss-res" ("palroof-boss" "palace-boss-res") dm-scene-load-pick-func)
(function "palace-sneak-in-res" ("palroof-throne" "palace-sneak-in-res") dm-scene-load-pick-func)
)
(menu
"ruins"
(function "ruins-tower-victory" ("ruins-hut" "ruins-tower-victory") dm-scene-load-pick-func)
(function "ruins-sacred-victory" ("ruins-hut" "ruins-sacred-victory") dm-scene-load-pick-func)
(function "ruins-get-to-hut-res" ("ruins-hut" "ruins-get-to-hut-res") dm-scene-load-pick-func)
(function "test-scene" ("ruins-hut" "test-scene") dm-scene-load-pick-func)
)
(menu
"sewer"
(function "sewer-drain-res" ("sewer-start" "sewer-drain-res") dm-scene-load-pick-func)
(function "sewer-blow-up-statue-res" ("sewesc-start" "sewer-blow-up-statue-res") dm-scene-load-pick-func)
(function "sewer-hosehead" ("sewesc-start" "sewer-hosehead") dm-scene-load-pick-func)
)
(menu
"stadium"
(function
"city-keira-hover-challenge-intro"
("garage-start-skate" "city-keira-hover-challenge-intro")
dm-scene-load-pick-func
)
(function
"city-keira-hover-challenge-res"
("garage-start-skate" "city-keira-hover-challenge-res")
dm-scene-load-pick-func
)
(function
"city-class-1-race-intro-a"
("garage-class3-movie" "city-class-1-race-intro-a")
dm-scene-load-pick-func
)
(function "city-class-1-race-intro-b" ("stadiumd-start" "city-class-1-race-intro-b") dm-scene-load-pick-func)
(function "city-class-1-race-res" ("stadiumd-start" "city-class-1-race-res") dm-scene-load-pick-func)
(function "city-class-3-race-intro" ("garage-class3-movie" "city-class-3-race-intro") dm-scene-load-pick-func)
(function "city-class-3-race-res" ("garage-class3-movie" "city-class-3-race-res") dm-scene-load-pick-func)
(function "city-put-hoverboard" ("skatea-start" "city-put-hoverboard") dm-scene-load-pick-func)
(function "city-class-2-race-intro" ("garage-class3-movie" "city-class-2-race-intro") dm-scene-load-pick-func)
(function "city-class-2-race-res" ("garage-class3-movie" "city-class-2-race-res") dm-scene-load-pick-func)
(function "city-defend-stadium-intro" ("stadium-blimp" "city-defend-stadium-intro") dm-scene-load-pick-func)
(function "city-defend-stadium-res" ("stadium-blimp" "city-defend-stadium-res") dm-scene-load-pick-func)
)
(menu
"strip"
(function "crane-victory" ("strip-start" "crane-victory") dm-scene-load-pick-func)
(function "ecowells-victory" ("strip-start" "ecowells-victory") dm-scene-load-pick-func)
(function "vin-rescue" ("strip-start" "vin-rescue") dm-scene-load-pick-func)
(function "test-crane-victory" ("strip-start" "test-crane-victory") dm-scene-load-pick-func)
)
(menu
"tomb"
(function "tomb-face-tests-intro" ("tombd-start" "tomb-face-tests-intro") dm-scene-load-pick-func)
(function "tomb-boulder-start" ("tomb-boulder" "tomb-boulder-start") dm-scene-load-pick-func)
(function "tomb-spider-scare" ("tomb-boulder-explode" "tomb-spider-scare") dm-scene-load-pick-func)
(function "tomb-unlock-start" ("tomb-water-switch" "tomb-unlock-start") dm-scene-load-pick-func)
(function "tomb-unlock-water" ("tomb-water-switch" "tomb-unlock-water") dm-scene-load-pick-func)
(function "tomb-unlock-poles" ("tomb-poles-switch" "tomb-unlock-poles") dm-scene-load-pick-func)
(function "tomb-boss-open" ("tombboss-start" "tomb-boss-open") dm-scene-load-pick-func)
(function "tomb-boss-intro" ("tombboss-start" "tomb-boss-intro") dm-scene-load-pick-func)
(function "tomb-boss-res" ("tombboss-start" "tomb-boss-res") dm-scene-load-pick-func)
)
(menu
"under"
(function "under-find-sig-res" ("under-start" "under-find-sig-res") dm-scene-load-pick-func)
(function "under-centipede-one" ("under-start" "under-centipede-one") dm-scene-load-pick-func)
(function "under-centipede-two" ("under-start" "under-centipede-two") dm-scene-load-pick-func)
(function "under-centipede-three" ("under-start" "under-centipede-three") dm-scene-load-pick-func)
(function "under-get-sig-out-res" ("under-start" "under-get-sig-out-res") dm-scene-load-pick-func)
)
(menu
"vinroom"
(function "crane-intro" ("vinroom-start" "crane-intro") dm-scene-load-pick-func)
(function
"drill-kill-metal-heads-intro"
("vinroom-start" "drill-kill-metal-heads-intro")
dm-scene-load-pick-func
)
(function "ecowells-intro" ("vinroom-start" "ecowells-intro") dm-scene-load-pick-func)
(function "city-switch-on-power-intro" ("vinroom-start" "city-switch-on-power-intro") dm-scene-load-pick-func)
(function
"dig-knock-down-scaffolding-intro"
("vinroom-start" "dig-knock-down-scaffolding-intro")
dm-scene-load-pick-func
)
(function "drill-destroy-ship-intro" ("vinroom-start" "drill-destroy-ship-intro") dm-scene-load-pick-func)
(function
"drill-destroy-control-tower-intro"
("vinroom-start" "drill-destroy-control-tower-intro")
dm-scene-load-pick-func
)
)
(menu "demo" (function "demo-disk-intro" ("demo-movie" "demo-disk-intro") dm-scene-load-pick-func))
(menu
"cover-test"
(function "cover-test-1" ("chartest-1" "cover-test-1") dm-scene-load-pick-func)
(function "cover-test-2" ("chartest-1" "cover-test-2") dm-scene-load-pick-func)
)
)
)
)
(debug-menu-append-item s5-0 (debug-menu-make-task-menu arg0))
(debug-menu-append-item s5-0 (debug-menu-make-play-menu arg0))
)
arg0
)
(define *popup-menu-context* (new 'debug 'debug-menu-context))
(defun popup-menu-context-make-default-menus ((arg0 debug-menu-context))
(debug-menu-make-from-template
arg0
'(main-menu
"Popup"
(flag "Cam 1" pad-1 dm-cam-externalize)
(flag "Target" #f ,(lambda ((arg0 object) (arg1 debug-menu-msg))
(when (= arg1 (debug-menu-msg press))
(if *target*
(stop 'debug)
(start 'debug (get-current-continue-forced *game-info*))
)
)
*target*
)
)
(menu
"Mode"
(function "normal" #f ,(lambda () (send-event *target* 'end-mode)))
(function "racer" #f ,(lambda ()
(if (not *target*)
(start 'debug (get-current-continue-forced *game-info*))
)
(send-event *target* 'change-mode 'racer #f)
)
)
(function "flut" #f ,(lambda ()
(if (not *target*)
(start 'debug (get-current-continue-forced *game-info*))
)
(send-event *target* 'change-mode 'flut #f)
)
)
(function "board" #f ,(lambda ()
(if (not *target*)
(start 'debug (get-current-continue-forced *game-info*))
)
(logior! (-> *game-info* features) (game-feature board))
(logior! (-> *game-info* debug-features) (game-feature board))
(send-event *target* 'change-mode 'board #f)
)
)
(function "mech" #f ,(lambda ()
(if (not *target*)
(start 'debug (get-current-continue-forced *game-info*))
)
(send-event *target* 'change-mode 'mech #f)
)
)
(function "gun" #f ,(lambda ()
(if (not *target*)
(start 'debug (get-current-continue-forced *game-info*))
)
(logior! (-> *game-info* features) (game-feature gun))
(logior! (-> *game-info* debug-features) (game-feature gun))
(send-event *target* 'change-mode 'gun #f 0)
)
)
(function "darkjak" #f ,(lambda ()
(if (not *target*)
(start 'debug (get-current-continue-forced *game-info*))
)
(logior! (-> *game-info* features) (game-feature darkjak))
(logior! (-> *game-info* debug-features) (game-feature darkjak))
(send-event *target* 'change-mode 'darkjak #f 3)
)
)
(function "indax" #f ,(lambda ()
(if (not *target*)
(start 'debug (get-current-continue-forced *game-info*))
)
(send-event *target* 'change-mode 'indax #f)
)
)
)
(flag "Game" #f ,(lambda ((arg0 object) (arg1 debug-menu-msg))
(when (= arg1 (debug-menu-msg press))
(let ((v1-3 (-> *game-info* mode)))
(set! (-> *game-info* mode) (cond
((= v1-3 'play)
'debug
)
((= v1-3 'debug)
'play
)
(else
(-> *game-info* mode)
)
)
)
)
)
(= (-> *game-info* mode) 'play)
)
)
(function "Clean" #f ,(lambda ()
(if (time-of-day-setup #f)
(time-of-day-setup #t)
)
(play-clean #f)
(none)
)
)
(flag "Stats" *stats-target* dm-boolean-toggle-pick-func)
(function "Reset" #f ,(lambda () (reset-actors 'debug) (none)))
(function "Start" #f ,(lambda () (start 'play (-> *game-info* current-continue)) (none)))
(function "Editor" #f ,(lambda ()
(kill-by-type editable-player *active-pool*)
(process-spawn editable-player :init editable-player-init #f :to *entity-pool*)
(set-master-mode 'game)
(none)
)
)
)
)
arg0
)
(debug-menu-context-make-default-menus *debug-menu-context*)
(popup-menu-context-make-default-menus *popup-menu-context*)
(defun menu-respond-to-pause ()
(case *master-mode*
(('menu)
(cond
((and (cpad-hold? 0 l3) (cpad-hold? 0 select))
(debug-menu-context-send-msg *popup-menu-context* (debug-menu-msg activate) (debug-menu-dest activation))
(debug-menu-context-send-msg *debug-menu-context* (debug-menu-msg deactivate) (debug-menu-dest activation))
(debug-menu-context-send-msg *editable-menu-context* (debug-menu-msg deactivate) (debug-menu-dest activation))
)
((and (cpad-hold? 1 start) *editable*)
(debug-menu-context-send-msg *editable-menu-context* (debug-menu-msg activate) (debug-menu-dest activation))
(debug-menu-context-send-msg *debug-menu-context* (debug-menu-msg deactivate) (debug-menu-dest activation))
(debug-menu-context-send-msg *popup-menu-context* (debug-menu-msg deactivate) (debug-menu-dest activation))
)
((and (cpad-hold? 0 l3) (cpad-hold? 0 start))
(debug-menu-context-send-msg *debug-menu-context* (debug-menu-msg activate) (debug-menu-dest activation))
(debug-menu-context-send-msg *popup-menu-context* (debug-menu-msg deactivate) (debug-menu-dest activation))
(debug-menu-context-send-msg *editable-menu-context* (debug-menu-msg deactivate) (debug-menu-dest activation))
)
)
)
(else
(debug-menu-context-send-msg *debug-menu-context* (debug-menu-msg deactivate) (debug-menu-dest activation))
(debug-menu-context-send-msg *popup-menu-context* (debug-menu-msg deactivate) (debug-menu-dest activation))
(debug-menu-context-send-msg *editable-menu-context* (debug-menu-msg deactivate) (debug-menu-dest activation))
)
)
#f
)
(defun *menu-hook* ()
(debug-menus-handler *debug-menu-context*)
(debug-menus-handler *popup-menu-context*)
)