Files
jak-project/goal_src/jak1/engine/debug/default-menu.gc
T
ManDude 213f3bad20 Add extended environment mapping option to progress and enable it by default + other bug fixes (#2161)
![image](https://user-images.githubusercontent.com/7569514/214192592-d584e955-9d54-4092-94ee-1cbe12b071e8.png)

Note: if you had the option disabled, it will be enabled when you first
start the game again. You will have to turn it off again if you want it
disabled.

Also fixes #2150 and fixes #1738 and fixes #2145
2023-01-24 20:22:47 +00:00

4919 lines
236 KiB
Common Lisp

;;-*-Lisp-*-
(in-package goal)
;; name: default-menu.gc
;; name in dgo: default-menu
;; dgos: GAME, ENGINE
;; Forward declarations for stuff we haven't written yet:
(define-extern *edit-instance* string)
;; Necessary forward declarations
;; DECOMP BEGINS
;; this file is debug only
(declare-file (debug))
(when *debug-segment*
(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)
(send-event *camera* 'change-state arg0 *dm-cam-mode-interpolation*)
)
(if *camera*
(send-event *camera* 'query-state arg0)
(not arg0)
)
)
(defun dm-cam-settings-func ((arg0 int) (arg1 debug-menu-msg))
(when (and (= arg1 (debug-menu-msg press)) *camera*)
(cond
((zero? arg0)
(send-event *camera* 'toggle-slave-option 1)
)
((= arg0 13)
(send-event *camera* 'toggle-slave-option 8192)
)
((= arg0 1)
(send-event *camera* 'toggle-slave-option 2)
)
((= arg0 2)
(send-event *camera* 'toggle-slave-option 4)
)
((= arg0 3)
(send-event *camera* 'toggle-slave-option 128)
)
((= arg0 4)
(send-event *camera* 'toggle-slave-option 8)
)
((= arg0 7)
(send-event *camera* 'toggle-slave-option 16)
)
((= arg0 8)
(send-event *camera* 'toggle-slave-option 64)
)
((= arg0 6)
(send-event *camera* 'reset-root)
)
((= arg0 9)
(logxor! (-> *camera* master-options) 1)
)
((= arg0 10)
(logxor! (-> *camera* master-options) 4)
)
((= arg0 11)
(send-event *camera* 'toggle-slave-option 32)
)
((= arg0 12)
(send-event *camera* 'toggle-slave-option 512)
)
((= arg0 14)
(send-event *camera* 'toggle-slave-option #x8000)
)
((= arg0 15)
(send-event *camera* 'toggle-slave-option #x10000)
)
)
)
(cond
(*camera*
(cond
((zero? arg0)
(logtest? (-> *camera* slave-options) 1)
)
((= arg0 13)
(logtest? (-> *camera* slave-options) 8192)
)
((= arg0 1)
(logtest? (-> *camera* slave-options) 2)
)
((= arg0 2)
(logtest? (-> *camera* slave-options) 4)
)
((= arg0 3)
(logtest? (-> *camera* slave-options) 128)
)
((= arg0 4)
(logtest? (-> *camera* slave-options) 8)
)
((= arg0 7)
(logtest? (-> *camera* slave-options) 16)
)
((= arg0 8)
(logtest? (-> *camera* slave-options) 64)
)
((= arg0 11)
(logtest? (-> *camera* slave-options) 32)
)
((= arg0 12)
(logtest? (-> *camera* slave-options) 512)
)
((= arg0 14)
(logtest? (-> *camera* slave-options) #x8000)
)
((= arg0 15)
(logtest? #x10000 (-> *camera* slave-options))
)
((= arg0 9)
(logtest? (-> *camera* master-options) 1)
)
((= arg0 10)
(logtest? (-> *camera* master-options) 4)
)
(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-render-float ((arg0 int) (arg1 debug-menu-msg) (arg2 float) (arg3 float))
(when (= arg1 (debug-menu-msg press))
(cond
((zero? (/ arg0 8))
(when *math-camera*
(set! (-> *math-camera* fov) (* 182.04445 arg2))
(update-math-camera
*math-camera*
(-> *setting-control* current video-mode)
(-> *setting-control* current aspect-ratio)
)
)
)
((= (/ arg0 8) 1)
(if *camera*
(send-event *camera* 'set-fov (* 182.04445 arg2))
)
)
)
)
(cond
((zero? (/ arg0 8))
(cond
(*math-camera*
(* 0.005493164 (-> *math-camera* fov))
)
(else
(empty)
arg3
)
)
)
((= (/ arg0 8) 1)
(cond
(*camera*
(let ((f30-0 0.005493164))
(* f30-0 (the-as float (send-event *camera* 'query-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 3) (* 4096.0 arg2))
)
)
(('far)
(if (and *math-camera* *subdivide-settings*)
(set! (-> *subdivide-settings* far 3) (* 4096.0 arg2))
)
)
)
)
(case arg0
(('close)
(if (and *math-camera* *subdivide-settings*)
(* 0.00024414062 (-> *subdivide-settings* close 3))
arg3
)
)
(('far)
(if (and *math-camera* *subdivide-settings*)
(* 0.00024414062 (-> *subdivide-settings* far 3))
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-setting-language ((arg0 int) (arg1 debug-menu-msg))
(if (= arg1 (debug-menu-msg press))
(set! (-> *setting-control* default language) (the-as language-enum (/ arg0 8)))
)
(= (-> *setting-control* default language) (/ 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-or-create-continue! *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* (/ arg0 8))
)
(= (/ arg0 8) *subdivide-draw-mode*)
)
(defun dm-ocean-subdiv-draw-func ((arg0 int) (arg1 debug-menu-msg))
(if (= arg1 (debug-menu-msg press))
(set! *ocean-subdivide-draw-mode* (/ arg0 8))
)
(= (/ arg0 8) *ocean-subdivide-draw-mode*)
)
(defun dm-time-of-day-func ((arg0 int) (arg1 debug-menu-msg))
(when (= arg1 (debug-menu-msg press))
(set! *time-of-day-mode* (/ arg0 8))
(set! (-> *time-of-day-proc* 0 minute) 0)
(cond
((zero? (/ arg0 8))
(set! (-> *time-of-day-proc* 0 time-ratio) 0.0)
(set! (-> *time-of-day-proc* 0 hour) 7)
)
((= (/ arg0 8) 1)
(set! (-> *time-of-day-proc* 0 time-ratio) 0.0)
(set! (-> *time-of-day-proc* 0 hour) 9)
)
((= (/ arg0 8) 2)
(set! (-> *time-of-day-proc* 0 time-ratio) 0.0)
(set! (-> *time-of-day-proc* 0 hour) 12)
)
((= (/ arg0 8) 3)
(set! (-> *time-of-day-proc* 0 time-ratio) 0.0)
(set! (-> *time-of-day-proc* 0 hour) 15)
)
((= (/ arg0 8) 4)
(set! (-> *time-of-day-proc* 0 time-ratio) 0.0)
(set! (-> *time-of-day-proc* 0 hour) 18)
)
((= (/ arg0 8) 5)
(set! (-> *time-of-day-proc* 0 time-ratio) 0.0)
(set! (-> *time-of-day-proc* 0 hour) 19)
)
((= (/ arg0 8) 6)
(set! (-> *time-of-day-proc* 0 time-ratio) 0.0)
(set! (-> *time-of-day-proc* 0 hour) 23)
)
((= (/ arg0 8) 7)
(set! (-> *time-of-day-proc* 0 time-ratio) 0.0)
(set! (-> *time-of-day-proc* 0 hour) 4)
)
((= (/ arg0 8) 8)
(if *time-of-day-fast*
(set! (-> *time-of-day-proc* 0 time-ratio) 18000.0)
(set! (-> *time-of-day-proc* 0 time-ratio) 300.0)
)
)
)
)
(= (/ arg0 8) *time-of-day-mode*)
)
(defun dm-time-of-day-func2 ((arg0 (pointer symbol)) (arg1 debug-menu-msg))
(when (= arg1 (debug-menu-msg press))
(set! (-> arg0 0) (not (-> arg0 0)))
(when (!= (-> *time-of-day-proc* 0 time-ratio) 0.0)
(if *time-of-day-fast*
(set! (-> *time-of-day-proc* 0 time-ratio) 18000.0)
(set! (-> *time-of-day-proc* 0 time-ratio) 300.0)
)
)
)
(-> arg0 0)
)
(defun dm-boolean-toggle-pick-func ((arg0 (pointer symbol)) (arg1 debug-menu-msg))
(if (= arg1 (debug-menu-msg press))
(set! (-> arg0 0) (not (-> arg0 0)))
)
(-> arg0 0)
)
(defun dm-time-of-day-pick-func ((arg0 symbol) (arg1 debug-menu-msg))
(time-of-day-setup (= arg1 (debug-menu-msg press)))
(none)
)
(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-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-vu1-user-toggle-pick-func ((arg0 vu1-renderer-mask) (arg1 debug-menu-msg))
(if (= arg1 (debug-menu-msg press))
(set! *vu1-enable-user-menu* (logxor *vu1-enable-user-menu* (the-as uint arg0)))
)
(logtest? *vu1-enable-user-menu* arg0)
)
(defun dm-vu1-user-set-pick-func ((arg0 vu1-renderer-mask) (arg1 debug-menu-msg))
(if (= arg1 (debug-menu-msg press))
(set! *vu1-enable-user-menu* arg0)
)
(= *vu1-enable-user-menu* arg0)
)
(defun dm-texture-user-toggle-pick-func ((arg0 int) (arg1 debug-menu-msg))
(if (= arg1 (debug-menu-msg press))
(set! *texture-enable-user-menu* (logxor *texture-enable-user-menu* arg0))
)
(logtest? *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-enable-user-menu* arg0)
)
(= *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* (/ arg0 8)))
)
(logtest? *display-strip-lines* (/ arg0 8))
)
(defun dm-strip-lines-set-pick-func ((arg0 int) (arg1 debug-menu-msg))
(if (= arg1 (debug-menu-msg press))
(set! *display-strip-lines* (/ arg0 8))
)
(= *display-strip-lines* (/ 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)
)
)
)
(defun all-texture-tweak-adjust ((arg0 texture-page-dir) (arg1 float))
; (dotimes (s4-0 (-> arg0 length))
; (let ((s3-0 (-> arg0 entries s4-0 page)))
; (dotimes (s2-0 (min (-> s3-0 length) (-> arg0 entries s4-0 length)))
; (when (-> arg0 entries s4-0 link)
; (let ((v1-12 (+ (the-as uint (-> arg0 entries s4-0 link)) (* s2-0 4)))
; (s1-0 (-> arg0 entries s4-0 page data s2-0))
; )
; (+! (-> s1-0 uv-dist) arg1)
; (+ v1-12 0)
; (let ((s0-0 (the-as object (* (-> (dynamic-array-field-access v1-12 next PLACEHOLDER) shader) 16))))
; (while (nonzero? (the-as uint s0-0))
; (adgif-shader-update! (the-as adgif-shader s0-0) s1-0)
; (+ (the-as uint s0-0) 40)
; (set! s0-0 (* (-> (the-as adgif-shader s0-0) next shader) 16))
; )
; )
; )
; )
; )
; )
; )
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))
(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)
)
(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)
)
)
(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) 1)
)
(zero? (logand (-> v1-0 flags) 1))
)
(else
#f
)
)
)
)
(define *instance-shrub-menu* (the-as debug-menu #f))
(define *instance-tie-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-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 ;; was global
'debug-menu-item-flag
(the-as string (-> 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)
)
)
)
)
((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-7
(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-7)
)
(let ((a1-9
(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-9 is-on) #t)
(debug-menu-append-item *enable-instance-tie-menu* a1-9)
)
)
)
)
)
)
)
)
)
)
)
(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-tie-menu* items)
(sort
(-> *enable-instance-tie-menu* items)
(lambda ((arg0 debug-menu) (arg1 debug-menu)) (string<=? (-> arg0 name) (-> arg1 name)))
)
)
0
(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.0)
(format #t " (set! (-> rot data 13) ~12F)~%" 0.0)
(format #t " (set! (-> rot data 14) ~12F)~%" 0.0)
(format #t " (set! (-> rot data 15) ~12F)~%" 1.0)
(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)~%")
(v1-29 (-> *display* frames (-> *display* last-screen) frame profile-bar 0))
)
(t9-31 a0-31 a1-31 (-> v1-29 data (+ (-> v1-29 profile-frame-count) -2) time-stamp))
)
(let ((t9-32 format)
(a0-32 #t)
(a1-32 " (set! *camera-old-vu* ~D)~%")
(v1-34 (-> *display* frames (-> *display* last-screen) frame profile-bar 1))
)
(t9-32 a0-32 a1-32 (-> v1-34 data (+ (-> v1-34 profile-frame-count) -2) time-stamp))
)
(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-near*)
(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 "Off" #f dm-cam-mode-func)))
(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 "Billy" cam-billy dm-cam-mode-func)))
(debug-menu-append-item arg1 a1-15)
)
(let ((a1-17 (new 'debug 'debug-menu-item-flag "Pov-track" cam-pov-track dm-cam-mode-func)))
(debug-menu-append-item arg1 a1-17)
)
(let ((a1-19 (new 'debug 'debug-menu-item-flag "Decel" cam-decel dm-cam-mode-func)))
(debug-menu-append-item arg1 a1-19)
)
(let ((a1-21 (new 'debug 'debug-menu-item-flag "Endless fall" cam-endlessfall dm-cam-mode-func)))
(debug-menu-append-item arg1 a1-21)
)
(let ((a1-23 (new 'debug 'debug-menu-item-flag "Eye" cam-eye dm-cam-mode-func)))
(debug-menu-append-item arg1 a1-23)
)
(let ((a1-25 (new 'debug 'debug-menu-item-flag "Stick" cam-stick dm-cam-mode-func)))
(debug-menu-append-item arg1 a1-25)
)
(let ((a1-27 (new 'debug 'debug-menu-item-flag "String" cam-string dm-cam-mode-func)))
(debug-menu-append-item arg1 a1-27)
)
(let ((a1-29 (new 'debug 'debug-menu-item-flag "Standoff" cam-standoff dm-cam-mode-func)))
(debug-menu-append-item arg1 a1-29)
)
(let ((a1-31 (new 'debug 'debug-menu-item-flag "Circular" cam-circular dm-cam-mode-func)))
(debug-menu-append-item arg1 a1-31)
)
(let ((a1-33 (new 'debug 'debug-menu-item-flag "Look At" cam-lookat dm-cam-mode-func)))
(debug-menu-append-item arg1 a1-33)
)
(let ((a1-35 (new 'debug 'debug-menu-item-flag "Center of world" cam-point-watch dm-cam-mode-func)))
(debug-menu-append-item arg1 a1-35)
)
(let ((a1-37 (new 'debug 'debug-menu-item-flag "Spline" cam-spline dm-cam-mode-func)))
(debug-menu-append-item arg1 a1-37)
)
(let ((a1-39 (new 'debug 'debug-menu-item-flag "Bike" cam-bike dm-cam-mode-func)))
(debug-menu-append-item arg1 a1-39)
)
(let ((a1-41 (new 'debug 'debug-menu-item-flag "Robotboss" cam-robotboss dm-cam-mode-func)))
(debug-menu-append-item arg1 a1-41)
)
(let ((a1-43
(new 'debug 'debug-menu-item-function "Reset Free" 6 (the-as (function object object) dm-cam-settings-func))
)
)
(debug-menu-append-item arg1 a1-43)
)
(none)
)
(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
(the-as float 1.0)
#t
(the-as float 15.0)
(the-as float 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 "Butt cam" 0 dm-cam-settings-func)))
(debug-menu-append-item s4-1 a1-31)
)
(let ((a1-33 (new 'debug 'debug-menu-item-flag "Block shift buttons" 13 dm-cam-settings-func)))
(debug-menu-append-item s4-1 a1-33)
)
(let ((a1-35 (new 'debug 'debug-menu-item-flag "Same side" 1 dm-cam-settings-func)))
(debug-menu-append-item s4-1 a1-35)
)
(let ((a1-37 (new 'debug 'debug-menu-item-flag "Move spherical" 2 dm-cam-settings-func)))
(debug-menu-append-item s4-1 a1-37)
)
(let ((a1-39 (new 'debug 'debug-menu-item-flag "Drag" 3 dm-cam-settings-func)))
(debug-menu-append-item s4-1 a1-39)
)
(let ((a1-41 (new 'debug 'debug-menu-item-flag "Allow Z rot" 4 dm-cam-settings-func)))
(debug-menu-append-item s4-1 a1-41)
)
(let ((a1-43 (new 'debug 'debug-menu-item-flag "Pitch for jump" 7 dm-cam-settings-func)))
(debug-menu-append-item s4-1 a1-43)
)
(let ((a1-45 (new 'debug 'debug-menu-item-flag "Find hidden target" 8 dm-cam-settings-func)))
(debug-menu-append-item s4-1 a1-45)
)
(let ((a1-47
(new 'debug 'debug-menu-item-flag "Move along camera Z" '*cam-free-move-along-z* dm-boolean-toggle-pick-func)
)
)
(debug-menu-append-item s4-1 a1-47)
)
(let ((a1-49 (new 'debug 'debug-menu-item-flag "Ignore regions" 9 dm-cam-settings-func)))
(debug-menu-append-item s4-1 a1-49)
)
(let ((a1-51 (new 'debug 'debug-menu-item-flag "Switch only on ground" 10 dm-cam-settings-func)))
(debug-menu-append-item s4-1 a1-51)
)
(let ((a1-53 (new 'debug 'debug-menu-item-flag "Collide" 11 dm-cam-settings-func)))
(debug-menu-append-item s4-1 a1-53)
)
(let ((a1-55 (new 'debug 'debug-menu-item-flag "Line of Sight" 12 dm-cam-settings-func)))
(debug-menu-append-item s4-1 a1-55)
)
(let ((a1-57 (new 'debug 'debug-menu-item-flag "No Rotate" 14 dm-cam-settings-func)))
(debug-menu-append-item s4-1 a1-57)
)
(let ((a1-59 (new 'debug 'debug-menu-item-flag "Sticky Angle" 15 dm-cam-settings-func)))
(debug-menu-append-item s4-1 a1-59)
)
(let ((s3-2 (new 'debug 'debug-menu-item-var "Interp Frms" 40 80)))
(debug-menu-item-var-make-int s3-2 dm-cam-settings-func-int 1 #f 0 0 #f)
(debug-menu-append-item s4-1 s3-2)
)
(let ((s3-3 (new 'debug 'debug-menu-item-var "Fov" 8 80)))
(debug-menu-item-var-make-float
s3-3
dm-cam-render-float
(the-as float 1.0)
#t
(the-as float 15.0)
(the-as float 180.0)
1
)
(debug-menu-append-item s4-1 s3-3)
)
(let ((a1-67 (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-67)
)
(let ((a1-69
(new 'debug 'debug-menu-item-flag "last attacker" '*display-camera-last-attacker* dm-boolean-toggle-pick-func)
)
)
(debug-menu-append-item s4-1 a1-69)
)
(let ((a1-71 (new 'debug 'debug-menu-item-flag "old stats" '*display-camera-old-stats* dm-boolean-toggle-pick-func))
)
(debug-menu-append-item s4-1 a1-71)
)
(let ((a1-73 (new 'debug 'debug-menu-item-flag "xyz axes" '*display-xyz-axes* dm-boolean-toggle-pick-func)))
(debug-menu-append-item s4-1 a1-73)
)
(let ((a1-75
(new 'debug 'debug-menu-item-flag "Master Marks" '*display-cam-master-marks* dm-boolean-toggle-pick-func)
)
)
(debug-menu-append-item s4-1 a1-75)
)
(let ((a1-77 (new 'debug 'debug-menu-item-flag "Other Marks" '*display-cam-other* dm-boolean-toggle-pick-func)))
(debug-menu-append-item s4-1 a1-77)
)
(let ((a1-79 (new 'debug 'debug-menu-item-flag "los debug" '*display-cam-los-debug* dm-boolean-toggle-pick-func)))
(debug-menu-append-item s4-1 a1-79)
)
(let ((a1-81 (new 'debug 'debug-menu-item-flag "los info" '*display-cam-los-info* dm-boolean-toggle-pick-func)))
(debug-menu-append-item s4-1 a1-81)
)
(let ((a1-83 (new 'debug 'debug-menu-item-flag "los Marks" '*display-cam-los-marks* dm-boolean-toggle-pick-func)))
(debug-menu-append-item s4-1 a1-83)
)
(let ((a1-85 (new 'debug 'debug-menu-item-flag "coll Marks" '*display-cam-coll-marks* dm-boolean-toggle-pick-func))
)
(debug-menu-append-item s4-1 a1-85)
)
(let ((a1-87 (new 'debug 'debug-menu-item-flag "Camera Marks" '*display-camera-marks* dm-boolean-toggle-pick-func))
)
(debug-menu-append-item s4-1 a1-87)
)
)
(let ((a1-89 (new
'debug
'debug-menu-item-flag
"Edit"
'*cam-layout*
(the-as (function object debug-menu-msg object) (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-89)
)
(let ((a1-91 (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-91)
)
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))
(set! arg3 (cond
(*texture-page-dir*
(let* ((s4-0 (the-as texture-id (-> arg0 value)))
(gp-0 (lookup-texture-by-id (the-as texture-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
)
)
)
(none)
)
)
(the-as float 0.1)
#t
(the-as float 0.1)
(the-as float 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 () (the-as object (all-texture-tweak-adjust *texture-page-dir* (the-as float 0.1))))
)
)
)
)
(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 () (the-as object (all-texture-tweak-adjust *texture-page-dir* (the-as float -0.1))))
)
)
)
)
(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 int) (arg3 basic))
(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) 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 int) (arg3 basic))
(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 k) 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 k)
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 int) (arg3 basic))
(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) 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 int) (arg3 basic))
(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) 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 int) (arg3 basic))
(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) 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 int) (arg3 basic))
(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 tfx) 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 tfx)
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 int) (arg3 basic))
(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) 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 int) (arg3 basic))
(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) 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 int) (arg3 basic))
(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) 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 int) (arg3 basic))
(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 th) 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 th)
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 int) (arg3 basic))
(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) 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 int) (arg3 basic))
(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) 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 int) (arg3 basic))
(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) 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 int) (arg3 basic))
(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) 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 int) (arg3 basic))
(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) 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 int) (arg3 basic))
(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 minv) 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 minv)
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 int) (arg3 basic))
(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 maxv) 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 maxv)
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 ((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 debug-menu) (arg1 debug-menu-msg) (arg2 float) (arg3 float))
(let ((gp-0 (find-instance-by-name (-> arg0 name))))
(the-as object (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
)
)
)
)
)
)
(the-as float 1.0)
#t
(the-as float 10.0)
(the-as float 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 debug-menu) (arg1 debug-menu-msg) (arg2 float) (arg3 float))
(let ((gp-0 (find-instance-by-name (-> arg0 name))))
(the-as object (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
)
)
)
)
)
)
(the-as float 1.0)
#t
(the-as float 10.0)
(the-as float 250.0)
1
)
(debug-menu-append-item gp-0 s3-1)
)
(let ((a1-17 (new 'debug 'debug-menu-item-flag "invisible" 1 dm-edit-instance-toggle-pick-func)))
(debug-menu-append-item gp-0 a1-17)
)
(let ((a3-13 (new 'debug 'debug-menu arg0 "Enable Instance Tie Menu")))
(set! *enable-instance-tie-menu* a3-13)
(let ((a1-20 (new 'debug 'debug-menu-item-submenu "Enable Tie" a3-13)))
(debug-menu-append-item gp-0 a1-20)
)
)
(let ((a1-22
(new 'debug 'debug-menu-item-flag "Instance Info" '*display-instance-info* dm-boolean-toggle-pick-func)
)
)
(debug-menu-append-item gp-0 a1-22)
)
s5-0
)
)
(defun dm-task-unknown ((arg0 int) (arg1 debug-menu-msg))
(let ((gp-0 (/ arg0 8)))
(if (not (task-exists? (the-as game-task gp-0) (task-status unknown)))
(return 'invalid)
)
(if (= arg1 (debug-menu-msg press))
(close-specific-task! (the-as game-task gp-0) (task-status unknown))
)
(task-closed? (the-as game-task gp-0) (task-status unknown))
)
)
(defun dm-task-hint ((arg0 int) (arg1 debug-menu-msg))
(let ((gp-0 (/ arg0 8)))
(if (not (task-exists? (the-as game-task gp-0) (task-status need-hint)))
(return 'invalid)
)
(if (= arg1 (debug-menu-msg press))
(close-specific-task! (the-as game-task gp-0) (task-status need-hint))
)
(task-closed? (the-as game-task gp-0) (task-status need-hint))
)
)
(defun dm-task-introduction ((arg0 int) (arg1 debug-menu-msg))
(let ((gp-0 (/ arg0 8)))
(if (not (task-exists? (the-as game-task gp-0) (task-status need-introduction)))
(return 'invalid)
)
(if (= arg1 (debug-menu-msg press))
(close-specific-task! (the-as game-task gp-0) (task-status need-introduction))
)
(task-closed? (the-as game-task gp-0) (task-status need-introduction))
)
)
(defun dm-task-reminder-a ((arg0 int) (arg1 debug-menu-msg))
(let ((gp-0 (/ arg0 8)))
(if (not (task-exists? (the-as game-task gp-0) (task-status need-reminder-a)))
(return 'invalid)
)
(if (= arg1 (debug-menu-msg press))
(close-specific-task! (the-as game-task gp-0) (task-status need-reminder-a))
)
(task-closed? (the-as game-task gp-0) (task-status need-reminder-a))
)
)
(defun dm-task-reminder ((arg0 int) (arg1 debug-menu-msg))
(let ((gp-0 (/ arg0 8)))
(if (not (task-exists? (the-as game-task gp-0) (task-status need-reminder)))
(return 'invalid)
)
(if (= arg1 (debug-menu-msg press))
(close-specific-task! (the-as game-task gp-0) (task-status need-reminder))
)
(task-closed? (the-as game-task gp-0) (task-status need-reminder))
)
)
(defun dm-task-reward-speech ((arg0 int) (arg1 debug-menu-msg))
(let ((gp-0 (/ arg0 8)))
(if (not (task-exists? (the-as game-task gp-0) (task-status need-reward-speech)))
(return 'invalid)
)
(if (= arg1 (debug-menu-msg press))
(close-specific-task! (the-as game-task gp-0) (task-status need-reward-speech))
)
(task-closed? (the-as game-task gp-0) (task-status need-reward-speech))
)
)
(defun dm-task-resolution ((arg0 int) (arg1 debug-menu-msg))
(let ((gp-0 (/ arg0 8)))
(if (not (task-exists? (the-as game-task gp-0) (task-status need-resolution)))
(return 'invalid)
)
(when (= arg1 (debug-menu-msg press))
(send-event *target* 'get-pickup 6 (the float gp-0))
(close-specific-task! (the-as game-task gp-0) (task-status need-resolution))
)
(task-closed? (the-as game-task gp-0) (task-status need-resolution))
)
)
(defun debug-menu-make-task-unknown-menu ((arg0 debug-menu) (arg1 debug-menu-context))
(debug-menu-append-item
arg0
(debug-menu-make-from-template arg1 '(menu
"unknown"
#f
#f
(flag "jungle-eggtop" 2 dm-task-unknown)
(flag "jungle-lurkerm" 3 dm-task-unknown)
(flag "jungle-tower" 4 dm-task-unknown)
(flag "jungle-fishgame" 5 dm-task-unknown)
(flag "jungle-plant" 6 dm-task-unknown)
(flag "jungle-buzzer" 7 dm-task-unknown)
(flag "jungle-canyon-end" 8 dm-task-unknown)
(flag "jungle-temple-door" 9 dm-task-unknown)
(flag "village1-yakow" 10 dm-task-unknown)
(flag "village1-mayor-money" 11 dm-task-unknown)
(flag "village1-uncle-money" 12 dm-task-unknown)
(flag "village1-oracle-money1" 13 dm-task-unknown)
(flag "village1-oracle-money2" 14 dm-task-unknown)
(flag "beach-ecorocks" 15 dm-task-unknown)
(flag "beach-pelican" 16 dm-task-unknown)
(flag "beach-flutflut" 17 dm-task-unknown)
(flag "beach-seagull" 18 dm-task-unknown)
(flag "beach-cannon" 19 dm-task-unknown)
(flag "beach-buzzer" 20 dm-task-unknown)
(flag "beach-gimmie" 21 dm-task-unknown)
(flag "beach-sentinel" 22 dm-task-unknown)
(flag "misty-muse" 23 dm-task-unknown)
(flag "misty-boat" 24 dm-task-unknown)
(flag "misty-warehouse" 25 dm-task-unknown)
(flag "misty-cannon" 26 dm-task-unknown)
(flag "misty-bike" 27 dm-task-unknown)
(flag "misty-buzzer" 28 dm-task-unknown)
(flag "misty-bike-jump" 29 dm-task-unknown)
(flag "misty-eco-challenge" 30 dm-task-unknown)
(flag "village2-gambler-money" 31 dm-task-unknown)
(flag "village2-geologist-money" 32 dm-task-unknown)
(flag "village2-warrior-money" 33 dm-task-unknown)
(flag "village2-oracle-money1" 34 dm-task-unknown)
(flag "village2-oracle-money2" 35 dm-task-unknown)
(flag "swamp-billy" 36 dm-task-unknown)
(flag "swamp-flutflut" 37 dm-task-unknown)
(flag "swamp-battle" 38 dm-task-unknown)
(flag "swamp-tether-1" 39 dm-task-unknown)
(flag "swamp-tether-2" 40 dm-task-unknown)
(flag "swamp-tether-3" 41 dm-task-unknown)
(flag "swamp-tether-4" 42 dm-task-unknown)
(flag "swamp-buzzer" 43 dm-task-unknown)
(flag "sunken-platforms" 44 dm-task-unknown)
(flag "sunken-pipe" 45 dm-task-unknown)
(flag "sunken-slide" 46 dm-task-unknown)
(flag "sunken-room" 47 dm-task-unknown)
(flag "sunken-sharks" 48 dm-task-unknown)
(flag "sunken-buzzer" 49 dm-task-unknown)
(flag "sunken-top-of-helix" 50 dm-task-unknown)
(flag "sunken-spinning-room" 51 dm-task-unknown)
(flag "rolling-race" 52 dm-task-unknown)
(flag "rolling-robbers" 53 dm-task-unknown)
(flag "rolling-moles" 54 dm-task-unknown)
(flag "rolling-plants" 55 dm-task-unknown)
(flag "rolling-lake" 56 dm-task-unknown)
(flag "rolling-buzzer" 57 dm-task-unknown)
(flag "rolling-ring-chase-1" 58 dm-task-unknown)
(flag "rolling-ring-chase-2" 59 dm-task-unknown)
(flag "snow-eggtop" 60 dm-task-unknown)
(flag "snow-ram" 61 dm-task-unknown)
(flag "snow-fort" 62 dm-task-unknown)
(flag "snow-ball" 63 dm-task-unknown)
(flag "snow-bunnies" 64 dm-task-unknown)
(flag "snow-buzzer" 65 dm-task-unknown)
(flag "snow-bumpers" 66 dm-task-unknown)
(flag "snow-cage" 67 dm-task-unknown)
(flag "firecanyon-buzzer" 68 dm-task-unknown)
(flag "firecanyon-end" 69 dm-task-unknown)
(flag "citadel-sage-green" 70 dm-task-unknown)
(flag "citadel-sage-blue" 71 dm-task-unknown)
(flag "citadel-sage-red" 72 dm-task-unknown)
(flag "citadel-sage-yellow" 73 dm-task-unknown)
(flag "village3-extra1" 74 dm-task-unknown)
(flag "village1-buzzer" 75 dm-task-unknown)
(flag "village2-buzzer" 76 dm-task-unknown)
(flag "village3-buzzer" 77 dm-task-unknown)
(flag "cave-gnawers" 78 dm-task-unknown)
(flag "cave-dark-crystals" 79 dm-task-unknown)
(flag "cave-dark-climb" 80 dm-task-unknown)
(flag "cave-robot-climb" 81 dm-task-unknown)
(flag "cave-swing-poles" 82 dm-task-unknown)
(flag "cave-spider-tunnel" 83 dm-task-unknown)
(flag "cave-platforms" 84 dm-task-unknown)
(flag "cave-buzzer" 85 dm-task-unknown)
(flag "ogre-boss" 86 dm-task-unknown)
(flag "ogre-end" 87 dm-task-unknown)
(flag "ogre-buzzer" 88 dm-task-unknown)
(flag "lavatube-end" 89 dm-task-unknown)
(flag "lavatube-buzzer" 90 dm-task-unknown)
(flag "citadel-buzzer" 91 dm-task-unknown)
(flag "training-gimmie" 92 dm-task-unknown)
(flag "training-door" 93 dm-task-unknown)
(flag "training-climb" 94 dm-task-unknown)
(flag "training-buzzer" 95 dm-task-unknown)
(flag "village3-miner-money1" 96 dm-task-unknown)
(flag "village3-miner-money2" 97 dm-task-unknown)
(flag "village3-miner-money3" 98 dm-task-unknown)
(flag "village3-miner-money4" 99 dm-task-unknown)
(flag "village3-oracle-money1" 100 dm-task-unknown)
(flag "village3-oracle-money2" 101 dm-task-unknown)
(flag "firecanyon-assistant" 102 dm-task-unknown)
(flag "village2-levitator" 103 dm-task-unknown)
(flag "swamp-arm" 104 dm-task-unknown)
(flag "village3-button" 105 dm-task-unknown)
(flag "red-eggtop" 106 dm-task-unknown)
(flag "lavatube-balls" 107 dm-task-unknown)
(flag "lavatube-start" 108 dm-task-unknown)
(flag "intro" 109 dm-task-unknown)
(flag "ogre-secret" 110 dm-task-unknown)
(flag "village4-button" 111 dm-task-unknown)
(flag "finalboss-movies" 112 dm-task-unknown)
(flag "plunger-lurker-hit" 113 dm-task-unknown)
(flag "leaving-misty" 114 dm-task-unknown)
(flag "assistant-village3" 115 dm-task-unknown)
#f
#f
#f
#f
#f
#f
#f
#f
)
)
)
(none)
)
(defun debug-menu-make-task-need-hint-menu ((arg0 debug-menu) (arg1 debug-menu-context))
(debug-menu-append-item
arg0
(debug-menu-make-from-template arg1 '(menu
"need-hint"
#f
#f
(flag "jungle-eggtop" 2 dm-task-hint)
(flag "jungle-lurkerm" 3 dm-task-hint)
(flag "jungle-tower" 4 dm-task-hint)
(flag "jungle-fishgame" 5 dm-task-hint)
(flag "jungle-plant" 6 dm-task-hint)
(flag "jungle-buzzer" 7 dm-task-hint)
(flag "jungle-canyon-end" 8 dm-task-hint)
(flag "jungle-temple-door" 9 dm-task-hint)
(flag "village1-yakow" 10 dm-task-hint)
(flag "village1-mayor-money" 11 dm-task-hint)
(flag "village1-uncle-money" 12 dm-task-hint)
(flag "village1-oracle-money1" 13 dm-task-hint)
(flag "village1-oracle-money2" 14 dm-task-hint)
(flag "beach-ecorocks" 15 dm-task-hint)
(flag "beach-pelican" 16 dm-task-hint)
(flag "beach-flutflut" 17 dm-task-hint)
(flag "beach-seagull" 18 dm-task-hint)
(flag "beach-cannon" 19 dm-task-hint)
(flag "beach-buzzer" 20 dm-task-hint)
(flag "beach-gimmie" 21 dm-task-hint)
(flag "beach-sentinel" 22 dm-task-hint)
(flag "misty-muse" 23 dm-task-hint)
(flag "misty-boat" 24 dm-task-hint)
(flag "misty-warehouse" 25 dm-task-hint)
(flag "misty-cannon" 26 dm-task-hint)
(flag "misty-bike" 27 dm-task-hint)
(flag "misty-buzzer" 28 dm-task-hint)
(flag "misty-bike-jump" 29 dm-task-hint)
(flag "misty-eco-challenge" 30 dm-task-hint)
(flag "village2-gambler-money" 31 dm-task-hint)
(flag "village2-geologist-money" 32 dm-task-hint)
(flag "village2-warrior-money" 33 dm-task-hint)
(flag "village2-oracle-money1" 34 dm-task-hint)
(flag "village2-oracle-money2" 35 dm-task-hint)
(flag "swamp-billy" 36 dm-task-hint)
(flag "swamp-flutflut" 37 dm-task-hint)
(flag "swamp-battle" 38 dm-task-hint)
(flag "swamp-tether-1" 39 dm-task-hint)
(flag "swamp-tether-2" 40 dm-task-hint)
(flag "swamp-tether-3" 41 dm-task-hint)
(flag "swamp-tether-4" 42 dm-task-hint)
(flag "swamp-buzzer" 43 dm-task-hint)
(flag "sunken-platforms" 44 dm-task-hint)
(flag "sunken-pipe" 45 dm-task-hint)
(flag "sunken-slide" 46 dm-task-hint)
(flag "sunken-room" 47 dm-task-hint)
(flag "sunken-sharks" 48 dm-task-hint)
(flag "sunken-buzzer" 49 dm-task-hint)
(flag "sunken-top-of-helix" 50 dm-task-hint)
(flag "sunken-spinning-room" 51 dm-task-hint)
(flag "rolling-race" 52 dm-task-hint)
(flag "rolling-robbers" 53 dm-task-hint)
(flag "rolling-moles" 54 dm-task-hint)
(flag "rolling-plants" 55 dm-task-hint)
(flag "rolling-lake" 56 dm-task-hint)
(flag "rolling-buzzer" 57 dm-task-hint)
(flag "rolling-ring-chase-1" 58 dm-task-hint)
(flag "rolling-ring-chase-2" 59 dm-task-hint)
(flag "snow-eggtop" 60 dm-task-hint)
(flag "snow-ram" 61 dm-task-hint)
(flag "snow-fort" 62 dm-task-hint)
(flag "snow-ball" 63 dm-task-hint)
(flag "snow-bunnies" 64 dm-task-hint)
(flag "snow-buzzer" 65 dm-task-hint)
(flag "snow-bumpers" 66 dm-task-hint)
(flag "snow-cage" 67 dm-task-hint)
(flag "firecanyon-buzzer" 68 dm-task-hint)
(flag "firecanyon-end" 69 dm-task-hint)
(flag "citadel-sage-green" 70 dm-task-hint)
(flag "citadel-sage-blue" 71 dm-task-hint)
(flag "citadel-sage-red" 72 dm-task-hint)
(flag "citadel-sage-yellow" 73 dm-task-hint)
(flag "village3-extra1" 74 dm-task-hint)
(flag "village1-buzzer" 75 dm-task-hint)
(flag "village2-buzzer" 76 dm-task-hint)
(flag "village3-buzzer" 77 dm-task-hint)
(flag "cave-gnawers" 78 dm-task-hint)
(flag "cave-dark-crystals" 79 dm-task-hint)
(flag "cave-dark-climb" 80 dm-task-hint)
(flag "cave-robot-climb" 81 dm-task-hint)
(flag "cave-swing-poles" 82 dm-task-hint)
(flag "cave-spider-tunnel" 83 dm-task-hint)
(flag "cave-platforms" 84 dm-task-hint)
(flag "cave-buzzer" 85 dm-task-hint)
(flag "ogre-boss" 86 dm-task-hint)
(flag "ogre-end" 87 dm-task-hint)
(flag "ogre-buzzer" 88 dm-task-hint)
(flag "lavatube-end" 89 dm-task-hint)
(flag "lavatube-buzzer" 90 dm-task-hint)
(flag "citadel-buzzer" 91 dm-task-hint)
(flag "training-gimmie" 92 dm-task-hint)
(flag "training-door" 93 dm-task-hint)
(flag "training-climb" 94 dm-task-hint)
(flag "training-buzzer" 95 dm-task-hint)
(flag "village3-miner-money1" 96 dm-task-hint)
(flag "village3-miner-money2" 97 dm-task-hint)
(flag "village3-miner-money3" 98 dm-task-hint)
(flag "village3-miner-money4" 99 dm-task-hint)
(flag "village3-oracle-money1" 100 dm-task-hint)
(flag "village3-oracle-money2" 101 dm-task-hint)
(flag "firecanyon-assistant" 102 dm-task-hint)
(flag "village2-levitator" 103 dm-task-hint)
(flag "swamp-arm" 104 dm-task-hint)
(flag "village3-button" 105 dm-task-hint)
(flag "red-eggtop" 106 dm-task-hint)
(flag "lavatube-balls" 107 dm-task-hint)
(flag "lavatube-start" 108 dm-task-hint)
(flag "intro" 109 dm-task-hint)
(flag "ogre-secret" 110 dm-task-hint)
(flag "village4-button" 111 dm-task-hint)
(flag "finalboss-movies" 112 dm-task-hint)
(flag "plunger-lurker-hit" 113 dm-task-hint)
(flag "leaving-misty" 114 dm-task-hint)
(flag "assistant-village3" 115 dm-task-hint)
#f
#f
#f
#f
#f
#f
#f
#f
)
)
)
(none)
)
(defun debug-menu-make-task-need-introduction-menu ((arg0 debug-menu) (arg1 debug-menu-context))
(debug-menu-append-item
arg0
(debug-menu-make-from-template arg1 '(menu
"need-introduction"
#f
#f
(flag "jungle-eggtop" 2 dm-task-introduction)
(flag "jungle-lurkerm" 3 dm-task-introduction)
(flag "jungle-tower" 4 dm-task-introduction)
(flag "jungle-fishgame" 5 dm-task-introduction)
(flag "jungle-plant" 6 dm-task-introduction)
(flag "jungle-buzzer" 7 dm-task-introduction)
(flag "jungle-canyon-end" 8 dm-task-introduction)
(flag "jungle-temple-door" 9 dm-task-introduction)
(flag "village1-yakow" 10 dm-task-introduction)
(flag "village1-mayor-money" 11 dm-task-introduction)
(flag "village1-uncle-money" 12 dm-task-introduction)
(flag "village1-oracle-money1" 13 dm-task-introduction)
(flag "village1-oracle-money2" 14 dm-task-introduction)
(flag "beach-ecorocks" 15 dm-task-introduction)
(flag "beach-pelican" 16 dm-task-introduction)
(flag "beach-flutflut" 17 dm-task-introduction)
(flag "beach-seagull" 18 dm-task-introduction)
(flag "beach-cannon" 19 dm-task-introduction)
(flag "beach-buzzer" 20 dm-task-introduction)
(flag "beach-gimmie" 21 dm-task-introduction)
(flag "beach-sentinel" 22 dm-task-introduction)
(flag "misty-muse" 23 dm-task-introduction)
(flag "misty-boat" 24 dm-task-introduction)
(flag "misty-warehouse" 25 dm-task-introduction)
(flag "misty-cannon" 26 dm-task-introduction)
(flag "misty-bike" 27 dm-task-introduction)
(flag "misty-buzzer" 28 dm-task-introduction)
(flag "misty-bike-jump" 29 dm-task-introduction)
(flag "misty-eco-challenge" 30 dm-task-introduction)
(flag "village2-gambler-money" 31 dm-task-introduction)
(flag "village2-geologist-money" 32 dm-task-introduction)
(flag "village2-warrior-money" 33 dm-task-introduction)
(flag "village2-oracle-money1" 34 dm-task-introduction)
(flag "village2-oracle-money2" 35 dm-task-introduction)
(flag "swamp-billy" 36 dm-task-introduction)
(flag "swamp-flutflut" 37 dm-task-introduction)
(flag "swamp-battle" 38 dm-task-introduction)
(flag "swamp-tether-1" 39 dm-task-introduction)
(flag "swamp-tether-2" 40 dm-task-introduction)
(flag "swamp-tether-3" 41 dm-task-introduction)
(flag "swamp-tether-4" 42 dm-task-introduction)
(flag "swamp-buzzer" 43 dm-task-introduction)
(flag "sunken-platforms" 44 dm-task-introduction)
(flag "sunken-pipe" 45 dm-task-introduction)
(flag "sunken-slide" 46 dm-task-introduction)
(flag "sunken-room" 47 dm-task-introduction)
(flag "sunken-sharks" 48 dm-task-introduction)
(flag "sunken-buzzer" 49 dm-task-introduction)
(flag "sunken-top-of-helix" 50 dm-task-introduction)
(flag "sunken-spinning-room" 51 dm-task-introduction)
(flag "rolling-race" 52 dm-task-introduction)
(flag "rolling-robbers" 53 dm-task-introduction)
(flag "rolling-moles" 54 dm-task-introduction)
(flag "rolling-plants" 55 dm-task-introduction)
(flag "rolling-lake" 56 dm-task-introduction)
(flag "rolling-buzzer" 57 dm-task-introduction)
(flag "rolling-ring-chase-1" 58 dm-task-introduction)
(flag "rolling-ring-chase-2" 59 dm-task-introduction)
(flag "snow-eggtop" 60 dm-task-introduction)
(flag "snow-ram" 61 dm-task-introduction)
(flag "snow-fort" 62 dm-task-introduction)
(flag "snow-ball" 63 dm-task-introduction)
(flag "snow-bunnies" 64 dm-task-introduction)
(flag "snow-buzzer" 65 dm-task-introduction)
(flag "snow-bumpers" 66 dm-task-introduction)
(flag "snow-cage" 67 dm-task-introduction)
(flag "firecanyon-buzzer" 68 dm-task-introduction)
(flag "firecanyon-end" 69 dm-task-introduction)
(flag "citadel-sage-green" 70 dm-task-introduction)
(flag "citadel-sage-blue" 71 dm-task-introduction)
(flag "citadel-sage-red" 72 dm-task-introduction)
(flag "citadel-sage-yellow" 73 dm-task-introduction)
(flag "village3-extra1" 74 dm-task-introduction)
(flag "village1-buzzer" 75 dm-task-introduction)
(flag "village2-buzzer" 76 dm-task-introduction)
(flag "village3-buzzer" 77 dm-task-introduction)
(flag "cave-gnawers" 78 dm-task-introduction)
(flag "cave-dark-crystals" 79 dm-task-introduction)
(flag "cave-dark-climb" 80 dm-task-introduction)
(flag "cave-robot-climb" 81 dm-task-introduction)
(flag "cave-swing-poles" 82 dm-task-introduction)
(flag "cave-spider-tunnel" 83 dm-task-introduction)
(flag "cave-platforms" 84 dm-task-introduction)
(flag "cave-buzzer" 85 dm-task-introduction)
(flag "ogre-boss" 86 dm-task-introduction)
(flag "ogre-end" 87 dm-task-introduction)
(flag "ogre-buzzer" 88 dm-task-introduction)
(flag "lavatube-end" 89 dm-task-introduction)
(flag "lavatube-buzzer" 90 dm-task-introduction)
(flag "citadel-buzzer" 91 dm-task-introduction)
(flag "training-gimmie" 92 dm-task-introduction)
(flag "training-door" 93 dm-task-introduction)
(flag "training-climb" 94 dm-task-introduction)
(flag "training-buzzer" 95 dm-task-introduction)
(flag "village3-miner-money1" 96 dm-task-introduction)
(flag "village3-miner-money2" 97 dm-task-introduction)
(flag "village3-miner-money3" 98 dm-task-introduction)
(flag "village3-miner-money4" 99 dm-task-introduction)
(flag "village3-oracle-money1" 100 dm-task-introduction)
(flag "village3-oracle-money2" 101 dm-task-introduction)
(flag "firecanyon-assistant" 102 dm-task-introduction)
(flag "village2-levitator" 103 dm-task-introduction)
(flag "swamp-arm" 104 dm-task-introduction)
(flag "village3-button" 105 dm-task-introduction)
(flag "red-eggtop" 106 dm-task-introduction)
(flag "lavatube-balls" 107 dm-task-introduction)
(flag "lavatube-start" 108 dm-task-introduction)
(flag "intro" 109 dm-task-introduction)
(flag "ogre-secret" 110 dm-task-introduction)
(flag "village4-button" 111 dm-task-introduction)
(flag "finalboss-movies" 112 dm-task-introduction)
(flag "plunger-lurker-hit" 113 dm-task-introduction)
(flag "leaving-misty" 114 dm-task-introduction)
(flag "assistant-village3" 115 dm-task-introduction)
#f
#f
#f
#f
#f
#f
#f
#f
)
)
)
(none)
)
(defun debug-menu-make-task-need-reminder-a-menu ((arg0 debug-menu) (arg1 debug-menu-context))
(debug-menu-append-item
arg0
(debug-menu-make-from-template arg1 '(menu
"need-reminder-a"
#f
#f
(flag "jungle-eggtop" 2 dm-task-reminder-a)
(flag "jungle-lurkerm" 3 dm-task-reminder-a)
(flag "jungle-tower" 4 dm-task-reminder-a)
(flag "jungle-fishgame" 5 dm-task-reminder-a)
(flag "jungle-plant" 6 dm-task-reminder-a)
(flag "jungle-buzzer" 7 dm-task-reminder-a)
(flag "jungle-canyon-end" 8 dm-task-reminder-a)
(flag "jungle-temple-door" 9 dm-task-reminder-a)
(flag "village1-yakow" 10 dm-task-reminder-a)
(flag "village1-mayor-money" 11 dm-task-reminder-a)
(flag "village1-uncle-money" 12 dm-task-reminder-a)
(flag "village1-oracle-money1" 13 dm-task-reminder-a)
(flag "village1-oracle-money2" 14 dm-task-reminder-a)
(flag "beach-ecorocks" 15 dm-task-reminder-a)
(flag "beach-pelican" 16 dm-task-reminder-a)
(flag "beach-flutflut" 17 dm-task-reminder-a)
(flag "beach-seagull" 18 dm-task-reminder-a)
(flag "beach-cannon" 19 dm-task-reminder-a)
(flag "beach-buzzer" 20 dm-task-reminder-a)
(flag "beach-gimmie" 21 dm-task-reminder-a)
(flag "beach-sentinel" 22 dm-task-reminder-a)
(flag "misty-muse" 23 dm-task-reminder-a)
(flag "misty-boat" 24 dm-task-reminder-a)
(flag "misty-warehouse" 25 dm-task-reminder-a)
(flag "misty-cannon" 26 dm-task-reminder-a)
(flag "misty-bike" 27 dm-task-reminder-a)
(flag "misty-buzzer" 28 dm-task-reminder-a)
(flag "misty-bike-jump" 29 dm-task-reminder-a)
(flag "misty-eco-challenge" 30 dm-task-reminder-a)
(flag "village2-gambler-money" 31 dm-task-reminder-a)
(flag "village2-geologist-money" 32 dm-task-reminder-a)
(flag "village2-warrior-money" 33 dm-task-reminder-a)
(flag "village2-oracle-money1" 34 dm-task-reminder-a)
(flag "village2-oracle-money2" 35 dm-task-reminder-a)
(flag "swamp-billy" 36 dm-task-reminder-a)
(flag "swamp-flutflut" 37 dm-task-reminder-a)
(flag "swamp-battle" 38 dm-task-reminder-a)
(flag "swamp-tether-1" 39 dm-task-reminder-a)
(flag "swamp-tether-2" 40 dm-task-reminder-a)
(flag "swamp-tether-3" 41 dm-task-reminder-a)
(flag "swamp-tether-4" 42 dm-task-reminder-a)
(flag "swamp-buzzer" 43 dm-task-reminder-a)
(flag "sunken-platforms" 44 dm-task-reminder-a)
(flag "sunken-pipe" 45 dm-task-reminder-a)
(flag "sunken-slide" 46 dm-task-reminder-a)
(flag "sunken-room" 47 dm-task-reminder-a)
(flag "sunken-sharks" 48 dm-task-reminder-a)
(flag "sunken-buzzer" 49 dm-task-reminder-a)
(flag "sunken-top-of-helix" 50 dm-task-reminder-a)
(flag "sunken-spinning-room" 51 dm-task-reminder-a)
(flag "rolling-race" 52 dm-task-reminder-a)
(flag "rolling-robbers" 53 dm-task-reminder-a)
(flag "rolling-moles" 54 dm-task-reminder-a)
(flag "rolling-plants" 55 dm-task-reminder-a)
(flag "rolling-lake" 56 dm-task-reminder-a)
(flag "rolling-buzzer" 57 dm-task-reminder-a)
(flag "rolling-ring-chase-1" 58 dm-task-reminder-a)
(flag "rolling-ring-chase-2" 59 dm-task-reminder-a)
(flag "snow-eggtop" 60 dm-task-reminder-a)
(flag "snow-ram" 61 dm-task-reminder-a)
(flag "snow-fort" 62 dm-task-reminder-a)
(flag "snow-ball" 63 dm-task-reminder-a)
(flag "snow-bunnies" 64 dm-task-reminder-a)
(flag "snow-buzzer" 65 dm-task-reminder-a)
(flag "snow-bumpers" 66 dm-task-reminder-a)
(flag "snow-cage" 67 dm-task-reminder-a)
(flag "firecanyon-buzzer" 68 dm-task-reminder-a)
(flag "firecanyon-end" 69 dm-task-reminder-a)
(flag "citadel-sage-green" 70 dm-task-reminder-a)
(flag "citadel-sage-blue" 71 dm-task-reminder-a)
(flag "citadel-sage-red" 72 dm-task-reminder-a)
(flag "citadel-sage-yellow" 73 dm-task-reminder-a)
(flag "village3-extra1" 74 dm-task-reminder-a)
(flag "village1-buzzer" 75 dm-task-reminder-a)
(flag "village2-buzzer" 76 dm-task-reminder-a)
(flag "village3-buzzer" 77 dm-task-reminder-a)
(flag "cave-gnawers" 78 dm-task-reminder-a)
(flag "cave-dark-crystals" 79 dm-task-reminder-a)
(flag "cave-dark-climb" 80 dm-task-reminder-a)
(flag "cave-robot-climb" 81 dm-task-reminder-a)
(flag "cave-swing-poles" 82 dm-task-reminder-a)
(flag "cave-spider-tunnel" 83 dm-task-reminder-a)
(flag "cave-platforms" 84 dm-task-reminder-a)
(flag "cave-buzzer" 85 dm-task-reminder-a)
(flag "ogre-boss" 86 dm-task-reminder-a)
(flag "ogre-end" 87 dm-task-reminder-a)
(flag "ogre-buzzer" 88 dm-task-reminder-a)
(flag "lavatube-end" 89 dm-task-reminder-a)
(flag "lavatube-buzzer" 90 dm-task-reminder-a)
(flag "citadel-buzzer" 91 dm-task-reminder-a)
(flag "training-gimmie" 92 dm-task-reminder-a)
(flag "training-door" 93 dm-task-reminder-a)
(flag "training-climb" 94 dm-task-reminder-a)
(flag "training-buzzer" 95 dm-task-reminder-a)
(flag "village3-miner-money1" 96 dm-task-reminder-a)
(flag "village3-miner-money2" 97 dm-task-reminder-a)
(flag "village3-miner-money3" 98 dm-task-reminder-a)
(flag "village3-miner-money4" 99 dm-task-reminder-a)
(flag "village3-oracle-money1" 100 dm-task-reminder-a)
(flag "village3-oracle-money2" 101 dm-task-reminder-a)
(flag "firecanyon-assistant" 102 dm-task-reminder-a)
(flag "village2-levitator" 103 dm-task-reminder-a)
(flag "swamp-arm" 104 dm-task-reminder-a)
(flag "village3-button" 105 dm-task-reminder-a)
(flag "red-eggtop" 106 dm-task-reminder-a)
(flag "lavatube-balls" 107 dm-task-reminder-a)
(flag "lavatube-start" 108 dm-task-reminder-a)
(flag "intro" 109 dm-task-reminder-a)
(flag "ogre-secret" 110 dm-task-reminder-a)
(flag "village4-button" 111 dm-task-reminder-a)
(flag "finalboss-movies" 112 dm-task-reminder-a)
(flag "plunger-lurker-hit" 113 dm-task-reminder-a)
(flag "leaving-misty" 114 dm-task-reminder-a)
(flag "assistant-village3" 115 dm-task-reminder-a)
#f
#f
#f
#f
#f
#f
#f
#f
)
)
)
(none)
)
(defun debug-menu-make-task-need-reminder-menu ((arg0 debug-menu) (arg1 debug-menu-context))
(debug-menu-append-item
arg0
(debug-menu-make-from-template arg1 '(menu
"need-reminder"
#f
#f
(flag "jungle-eggtop" 2 dm-task-reminder)
(flag "jungle-lurkerm" 3 dm-task-reminder)
(flag "jungle-tower" 4 dm-task-reminder)
(flag "jungle-fishgame" 5 dm-task-reminder)
(flag "jungle-plant" 6 dm-task-reminder)
(flag "jungle-buzzer" 7 dm-task-reminder)
(flag "jungle-canyon-end" 8 dm-task-reminder)
(flag "jungle-temple-door" 9 dm-task-reminder)
(flag "village1-yakow" 10 dm-task-reminder)
(flag "village1-mayor-money" 11 dm-task-reminder)
(flag "village1-uncle-money" 12 dm-task-reminder)
(flag "village1-oracle-money1" 13 dm-task-reminder)
(flag "village1-oracle-money2" 14 dm-task-reminder)
(flag "beach-ecorocks" 15 dm-task-reminder)
(flag "beach-pelican" 16 dm-task-reminder)
(flag "beach-flutflut" 17 dm-task-reminder)
(flag "beach-seagull" 18 dm-task-reminder)
(flag "beach-cannon" 19 dm-task-reminder)
(flag "beach-buzzer" 20 dm-task-reminder)
(flag "beach-gimmie" 21 dm-task-reminder)
(flag "beach-sentinel" 22 dm-task-reminder)
(flag "misty-muse" 23 dm-task-reminder)
(flag "misty-boat" 24 dm-task-reminder)
(flag "misty-warehouse" 25 dm-task-reminder)
(flag "misty-cannon" 26 dm-task-reminder)
(flag "misty-bike" 27 dm-task-reminder)
(flag "misty-buzzer" 28 dm-task-reminder)
(flag "misty-bike-jump" 29 dm-task-reminder)
(flag "misty-eco-challenge" 30 dm-task-reminder)
(flag "village2-gambler-money" 31 dm-task-reminder)
(flag "village2-geologist-money" 32 dm-task-reminder)
(flag "village2-warrior-money" 33 dm-task-reminder)
(flag "village2-oracle-money1" 34 dm-task-reminder)
(flag "village2-oracle-money2" 35 dm-task-reminder)
(flag "swamp-billy" 36 dm-task-reminder)
(flag "swamp-flutflut" 37 dm-task-reminder)
(flag "swamp-battle" 38 dm-task-reminder)
(flag "swamp-tether-1" 39 dm-task-reminder)
(flag "swamp-tether-2" 40 dm-task-reminder)
(flag "swamp-tether-3" 41 dm-task-reminder)
(flag "swamp-tether-4" 42 dm-task-reminder)
(flag "swamp-buzzer" 43 dm-task-reminder)
(flag "sunken-platforms" 44 dm-task-reminder)
(flag "sunken-pipe" 45 dm-task-reminder)
(flag "sunken-slide" 46 dm-task-reminder)
(flag "sunken-room" 47 dm-task-reminder)
(flag "sunken-sharks" 48 dm-task-reminder)
(flag "sunken-buzzer" 49 dm-task-reminder)
(flag "sunken-top-of-helix" 50 dm-task-reminder)
(flag "sunken-spinning-room" 51 dm-task-reminder)
(flag "rolling-race" 52 dm-task-reminder)
(flag "rolling-robbers" 53 dm-task-reminder)
(flag "rolling-moles" 54 dm-task-reminder)
(flag "rolling-plants" 55 dm-task-reminder)
(flag "rolling-lake" 56 dm-task-reminder)
(flag "rolling-buzzer" 57 dm-task-reminder)
(flag "rolling-ring-chase-1" 58 dm-task-reminder)
(flag "rolling-ring-chase-2" 59 dm-task-reminder)
(flag "snow-eggtop" 60 dm-task-reminder)
(flag "snow-ram" 61 dm-task-reminder)
(flag "snow-fort" 62 dm-task-reminder)
(flag "snow-ball" 63 dm-task-reminder)
(flag "snow-bunnies" 64 dm-task-reminder)
(flag "snow-buzzer" 65 dm-task-reminder)
(flag "snow-bumpers" 66 dm-task-reminder)
(flag "snow-cage" 67 dm-task-reminder)
(flag "firecanyon-buzzer" 68 dm-task-reminder)
(flag "firecanyon-end" 69 dm-task-reminder)
(flag "citadel-sage-green" 70 dm-task-reminder)
(flag "citadel-sage-blue" 71 dm-task-reminder)
(flag "citadel-sage-red" 72 dm-task-reminder)
(flag "citadel-sage-yellow" 73 dm-task-reminder)
(flag "village3-extra1" 74 dm-task-reminder)
(flag "village1-buzzer" 75 dm-task-reminder)
(flag "village2-buzzer" 76 dm-task-reminder)
(flag "village3-buzzer" 77 dm-task-reminder)
(flag "cave-gnawers" 78 dm-task-reminder)
(flag "cave-dark-crystals" 79 dm-task-reminder)
(flag "cave-dark-climb" 80 dm-task-reminder)
(flag "cave-robot-climb" 81 dm-task-reminder)
(flag "cave-swing-poles" 82 dm-task-reminder)
(flag "cave-spider-tunnel" 83 dm-task-reminder)
(flag "cave-platforms" 84 dm-task-reminder)
(flag "cave-buzzer" 85 dm-task-reminder)
(flag "ogre-boss" 86 dm-task-reminder)
(flag "ogre-end" 87 dm-task-reminder)
(flag "ogre-buzzer" 88 dm-task-reminder)
(flag "lavatube-end" 89 dm-task-reminder)
(flag "lavatube-buzzer" 90 dm-task-reminder)
(flag "citadel-buzzer" 91 dm-task-reminder)
(flag "training-gimmie" 92 dm-task-reminder)
(flag "training-door" 93 dm-task-reminder)
(flag "training-climb" 94 dm-task-reminder)
(flag "training-buzzer" 95 dm-task-reminder)
(flag "village3-miner-money1" 96 dm-task-reminder)
(flag "village3-miner-money2" 97 dm-task-reminder)
(flag "village3-miner-money3" 98 dm-task-reminder)
(flag "village3-miner-money4" 99 dm-task-reminder)
(flag "village3-oracle-money1" 100 dm-task-reminder)
(flag "village3-oracle-money2" 101 dm-task-reminder)
(flag "firecanyon-assistant" 102 dm-task-reminder)
(flag "village2-levitator" 103 dm-task-reminder)
(flag "swamp-arm" 104 dm-task-reminder)
(flag "village3-button" 105 dm-task-reminder)
(flag "red-eggtop" 106 dm-task-reminder)
(flag "lavatube-balls" 107 dm-task-reminder)
(flag "lavatube-start" 108 dm-task-reminder)
(flag "intro" 109 dm-task-reminder)
(flag "ogre-secret" 110 dm-task-reminder)
(flag "village4-button" 111 dm-task-reminder)
(flag "finalboss-movies" 112 dm-task-reminder)
(flag "plunger-lurker-hit" 113 dm-task-reminder)
(flag "leaving-misty" 114 dm-task-reminder)
(flag "assistant-village3" 115 dm-task-reminder)
#f
#f
#f
#f
#f
#f
#f
#f
)
)
)
(none)
)
(defun debug-menu-make-task-need-reward-speech-menu ((arg0 debug-menu) (arg1 debug-menu-context))
(debug-menu-append-item
arg0
(debug-menu-make-from-template arg1 '(menu
"need-reward-speech"
#f
#f
(flag "jungle-eggtop" 2 dm-task-reward-speech)
(flag "jungle-lurkerm" 3 dm-task-reward-speech)
(flag "jungle-tower" 4 dm-task-reward-speech)
(flag "jungle-fishgame" 5 dm-task-reward-speech)
(flag "jungle-plant" 6 dm-task-reward-speech)
(flag "jungle-buzzer" 7 dm-task-reward-speech)
(flag "jungle-canyon-end" 8 dm-task-reward-speech)
(flag "jungle-temple-door" 9 dm-task-reward-speech)
(flag "village1-yakow" 10 dm-task-reward-speech)
(flag "village1-mayor-money" 11 dm-task-reward-speech)
(flag "village1-uncle-money" 12 dm-task-reward-speech)
(flag "village1-oracle-money1" 13 dm-task-reward-speech)
(flag "village1-oracle-money2" 14 dm-task-reward-speech)
(flag "beach-ecorocks" 15 dm-task-reward-speech)
(flag "beach-pelican" 16 dm-task-reward-speech)
(flag "beach-flutflut" 17 dm-task-reward-speech)
(flag "beach-seagull" 18 dm-task-reward-speech)
(flag "beach-cannon" 19 dm-task-reward-speech)
(flag "beach-buzzer" 20 dm-task-reward-speech)
(flag "beach-gimmie" 21 dm-task-reward-speech)
(flag "beach-sentinel" 22 dm-task-reward-speech)
(flag "misty-muse" 23 dm-task-reward-speech)
(flag "misty-boat" 24 dm-task-reward-speech)
(flag "misty-warehouse" 25 dm-task-reward-speech)
(flag "misty-cannon" 26 dm-task-reward-speech)
(flag "misty-bike" 27 dm-task-reward-speech)
(flag "misty-buzzer" 28 dm-task-reward-speech)
(flag "misty-bike-jump" 29 dm-task-reward-speech)
(flag "misty-eco-challenge" 30 dm-task-reward-speech)
(flag "village2-gambler-money" 31 dm-task-reward-speech)
(flag "village2-geologist-money" 32 dm-task-reward-speech)
(flag "village2-warrior-money" 33 dm-task-reward-speech)
(flag "village2-oracle-money1" 34 dm-task-reward-speech)
(flag "village2-oracle-money2" 35 dm-task-reward-speech)
(flag "swamp-billy" 36 dm-task-reward-speech)
(flag "swamp-flutflut" 37 dm-task-reward-speech)
(flag "swamp-battle" 38 dm-task-reward-speech)
(flag "swamp-tether-1" 39 dm-task-reward-speech)
(flag "swamp-tether-2" 40 dm-task-reward-speech)
(flag "swamp-tether-3" 41 dm-task-reward-speech)
(flag "swamp-tether-4" 42 dm-task-reward-speech)
(flag "swamp-buzzer" 43 dm-task-reward-speech)
(flag "sunken-platforms" 44 dm-task-reward-speech)
(flag "sunken-pipe" 45 dm-task-reward-speech)
(flag "sunken-slide" 46 dm-task-reward-speech)
(flag "sunken-room" 47 dm-task-reward-speech)
(flag "sunken-sharks" 48 dm-task-reward-speech)
(flag "sunken-buzzer" 49 dm-task-reward-speech)
(flag "sunken-top-of-helix" 50 dm-task-reward-speech)
(flag "sunken-spinning-room" 51 dm-task-reward-speech)
(flag "rolling-race" 52 dm-task-reward-speech)
(flag "rolling-robbers" 53 dm-task-reward-speech)
(flag "rolling-moles" 54 dm-task-reward-speech)
(flag "rolling-plants" 55 dm-task-reward-speech)
(flag "rolling-lake" 56 dm-task-reward-speech)
(flag "rolling-buzzer" 57 dm-task-reward-speech)
(flag "rolling-ring-chase-1" 58 dm-task-reward-speech)
(flag "rolling-ring-chase-2" 59 dm-task-reward-speech)
(flag "snow-eggtop" 60 dm-task-reward-speech)
(flag "snow-ram" 61 dm-task-reward-speech)
(flag "snow-fort" 62 dm-task-reward-speech)
(flag "snow-ball" 63 dm-task-reward-speech)
(flag "snow-bunnies" 64 dm-task-reward-speech)
(flag "snow-buzzer" 65 dm-task-reward-speech)
(flag "snow-bumpers" 66 dm-task-reward-speech)
(flag "snow-cage" 67 dm-task-reward-speech)
(flag "firecanyon-buzzer" 68 dm-task-reward-speech)
(flag "firecanyon-end" 69 dm-task-reward-speech)
(flag "citadel-sage-green" 70 dm-task-reward-speech)
(flag "citadel-sage-blue" 71 dm-task-reward-speech)
(flag "citadel-sage-red" 72 dm-task-reward-speech)
(flag "citadel-sage-yellow" 73 dm-task-reward-speech)
(flag "village3-extra1" 74 dm-task-reward-speech)
(flag "village1-buzzer" 75 dm-task-reward-speech)
(flag "village2-buzzer" 76 dm-task-reward-speech)
(flag "village3-buzzer" 77 dm-task-reward-speech)
(flag "cave-gnawers" 78 dm-task-reward-speech)
(flag "cave-dark-crystals" 79 dm-task-reward-speech)
(flag "cave-dark-climb" 80 dm-task-reward-speech)
(flag "cave-robot-climb" 81 dm-task-reward-speech)
(flag "cave-swing-poles" 82 dm-task-reward-speech)
(flag "cave-spider-tunnel" 83 dm-task-reward-speech)
(flag "cave-platforms" 84 dm-task-reward-speech)
(flag "cave-buzzer" 85 dm-task-reward-speech)
(flag "ogre-boss" 86 dm-task-reward-speech)
(flag "ogre-end" 87 dm-task-reward-speech)
(flag "ogre-buzzer" 88 dm-task-reward-speech)
(flag "lavatube-end" 89 dm-task-reward-speech)
(flag "lavatube-buzzer" 90 dm-task-reward-speech)
(flag "citadel-buzzer" 91 dm-task-reward-speech)
(flag "training-gimmie" 92 dm-task-reward-speech)
(flag "training-door" 93 dm-task-reward-speech)
(flag "training-climb" 94 dm-task-reward-speech)
(flag "training-buzzer" 95 dm-task-reward-speech)
(flag "village3-miner-money1" 96 dm-task-reward-speech)
(flag "village3-miner-money2" 97 dm-task-reward-speech)
(flag "village3-miner-money3" 98 dm-task-reward-speech)
(flag "village3-miner-money4" 99 dm-task-reward-speech)
(flag "village3-oracle-money1" 100 dm-task-reward-speech)
(flag "village3-oracle-money2" 101 dm-task-reward-speech)
(flag "firecanyon-assistant" 102 dm-task-reward-speech)
(flag "village2-levitator" 103 dm-task-reward-speech)
(flag "swamp-arm" 104 dm-task-reward-speech)
(flag "village3-button" 105 dm-task-reward-speech)
(flag "red-eggtop" 106 dm-task-reward-speech)
(flag "lavatube-balls" 107 dm-task-reward-speech)
(flag "lavatube-start" 108 dm-task-reward-speech)
(flag "intro" 109 dm-task-reward-speech)
(flag "ogre-secret" 110 dm-task-reward-speech)
(flag "village4-button" 111 dm-task-reward-speech)
(flag "finalboss-movies" 112 dm-task-reward-speech)
(flag "plunger-lurker-hit" 113 dm-task-reward-speech)
(flag "leaving-misty" 114 dm-task-reward-speech)
(flag "assistant-village3" 115 dm-task-reward-speech)
#f
#f
#f
#f
#f
#f
#f
#f
)
)
)
(none)
)
(defun debug-menu-make-task-need-resolution-menu ((arg0 debug-menu) (arg1 debug-menu-context))
(debug-menu-append-item
arg0
(debug-menu-make-from-template arg1 '(menu
"need-resolution"
#f
#f
(flag "jungle-eggtop" 2 dm-task-resolution)
(flag "jungle-lurkerm" 3 dm-task-resolution)
(flag "jungle-tower" 4 dm-task-resolution)
(flag "jungle-fishgame" 5 dm-task-resolution)
(flag "jungle-plant" 6 dm-task-resolution)
(flag "jungle-buzzer" 7 dm-task-resolution)
(flag "jungle-canyon-end" 8 dm-task-resolution)
(flag "jungle-temple-door" 9 dm-task-resolution)
(flag "village1-yakow" 10 dm-task-resolution)
(flag "village1-mayor-money" 11 dm-task-resolution)
(flag "village1-uncle-money" 12 dm-task-resolution)
(flag "village1-oracle-money1" 13 dm-task-resolution)
(flag "village1-oracle-money2" 14 dm-task-resolution)
(flag "beach-ecorocks" 15 dm-task-resolution)
(flag "beach-pelican" 16 dm-task-resolution)
(flag "beach-flutflut" 17 dm-task-resolution)
(flag "beach-seagull" 18 dm-task-resolution)
(flag "beach-cannon" 19 dm-task-resolution)
(flag "beach-buzzer" 20 dm-task-resolution)
(flag "beach-gimmie" 21 dm-task-resolution)
(flag "beach-sentinel" 22 dm-task-resolution)
(flag "misty-muse" 23 dm-task-resolution)
(flag "misty-boat" 24 dm-task-resolution)
(flag "misty-warehouse" 25 dm-task-resolution)
(flag "misty-cannon" 26 dm-task-resolution)
(flag "misty-bike" 27 dm-task-resolution)
(flag "misty-buzzer" 28 dm-task-resolution)
(flag "misty-bike-jump" 29 dm-task-resolution)
(flag "misty-eco-challenge" 30 dm-task-resolution)
(flag "village2-gambler-money" 31 dm-task-resolution)
(flag "village2-geologist-money" 32 dm-task-resolution)
(flag "village2-warrior-money" 33 dm-task-resolution)
(flag "village2-oracle-money1" 34 dm-task-resolution)
(flag "village2-oracle-money2" 35 dm-task-resolution)
(flag "swamp-billy" 36 dm-task-resolution)
(flag "swamp-flutflut" 37 dm-task-resolution)
(flag "swamp-battle" 38 dm-task-resolution)
(flag "swamp-tether-1" 39 dm-task-resolution)
(flag "swamp-tether-2" 40 dm-task-resolution)
(flag "swamp-tether-3" 41 dm-task-resolution)
(flag "swamp-tether-4" 42 dm-task-resolution)
(flag "swamp-buzzer" 43 dm-task-resolution)
(flag "sunken-platforms" 44 dm-task-resolution)
(flag "sunken-pipe" 45 dm-task-resolution)
(flag "sunken-slide" 46 dm-task-resolution)
(flag "sunken-room" 47 dm-task-resolution)
(flag "sunken-sharks" 48 dm-task-resolution)
(flag "sunken-buzzer" 49 dm-task-resolution)
(flag "sunken-top-of-helix" 50 dm-task-resolution)
(flag "sunken-spinning-room" 51 dm-task-resolution)
(flag "rolling-race" 52 dm-task-resolution)
(flag "rolling-robbers" 53 dm-task-resolution)
(flag "rolling-moles" 54 dm-task-resolution)
(flag "rolling-plants" 55 dm-task-resolution)
(flag "rolling-lake" 56 dm-task-resolution)
(flag "rolling-buzzer" 57 dm-task-resolution)
(flag "rolling-ring-chase-1" 58 dm-task-resolution)
(flag "rolling-ring-chase-2" 59 dm-task-resolution)
(flag "snow-eggtop" 60 dm-task-resolution)
(flag "snow-ram" 61 dm-task-resolution)
(flag "snow-fort" 62 dm-task-resolution)
(flag "snow-ball" 63 dm-task-resolution)
(flag "snow-bunnies" 64 dm-task-resolution)
(flag "snow-buzzer" 65 dm-task-resolution)
(flag "snow-bumpers" 66 dm-task-resolution)
(flag "snow-cage" 67 dm-task-resolution)
(flag "firecanyon-buzzer" 68 dm-task-resolution)
(flag "firecanyon-end" 69 dm-task-resolution)
(flag "citadel-sage-green" 70 dm-task-resolution)
(flag "citadel-sage-blue" 71 dm-task-resolution)
(flag "citadel-sage-red" 72 dm-task-resolution)
(flag "citadel-sage-yellow" 73 dm-task-resolution)
(flag "village3-extra1" 74 dm-task-resolution)
(flag "village1-buzzer" 75 dm-task-resolution)
(flag "village2-buzzer" 76 dm-task-resolution)
(flag "village3-buzzer" 77 dm-task-resolution)
(flag "cave-gnawers" 78 dm-task-resolution)
(flag "cave-dark-crystals" 79 dm-task-resolution)
(flag "cave-dark-climb" 80 dm-task-resolution)
(flag "cave-robot-climb" 81 dm-task-resolution)
(flag "cave-swing-poles" 82 dm-task-resolution)
(flag "cave-spider-tunnel" 83 dm-task-resolution)
(flag "cave-platforms" 84 dm-task-resolution)
(flag "cave-buzzer" 85 dm-task-resolution)
(flag "ogre-boss" 86 dm-task-resolution)
(flag "ogre-end" 87 dm-task-resolution)
(flag "ogre-buzzer" 88 dm-task-resolution)
(flag "lavatube-end" 89 dm-task-resolution)
(flag "lavatube-buzzer" 90 dm-task-resolution)
(flag "citadel-buzzer" 91 dm-task-resolution)
(flag "training-gimmie" 92 dm-task-resolution)
(flag "training-door" 93 dm-task-resolution)
(flag "training-climb" 94 dm-task-resolution)
(flag "training-buzzer" 95 dm-task-resolution)
(flag "village3-miner-money1" 96 dm-task-resolution)
(flag "village3-miner-money2" 97 dm-task-resolution)
(flag "village3-miner-money3" 98 dm-task-resolution)
(flag "village3-miner-money4" 99 dm-task-resolution)
(flag "village3-oracle-money1" 100 dm-task-resolution)
(flag "village3-oracle-money2" 101 dm-task-resolution)
(flag "firecanyon-assistant" 102 dm-task-resolution)
(flag "village2-levitator" 103 dm-task-resolution)
(flag "swamp-arm" 104 dm-task-resolution)
(flag "village3-button" 105 dm-task-resolution)
(flag "red-eggtop" 106 dm-task-resolution)
(flag "lavatube-balls" 107 dm-task-resolution)
(flag "lavatube-start" 108 dm-task-resolution)
(flag "intro" 109 dm-task-resolution)
(flag "ogre-secret" 110 dm-task-resolution)
(flag "village4-button" 111 dm-task-resolution)
(flag "finalboss-movies" 112 dm-task-resolution)
(flag "plunger-lurker-hit" 113 dm-task-resolution)
(flag "leaving-misty" 114 dm-task-resolution)
(flag "assistant-village3" 115 dm-task-resolution)
#f
#f
#f
#f
#f
#f
#f
#f
)
)
)
(none)
)
(defun dm-task-get-money ((arg0 int) (arg1 debug-menu-msg))
(if (= arg1 (debug-menu-msg press))
(send-event *target* 'get-pickup 5 (-> *GAME-bank* money-task-inc))
)
(>= (the-as float (send-event *target* 'query 'pickup (pickup-type money))) (-> *GAME-bank* money-task-inc))
)
(defun dm-give-all-cells ((arg0 int) (arg1 debug-menu-msg))
(when (= arg1 (debug-menu-msg press))
(dotimes (gp-0 100)
(send-event *target* 'get-pickup 6 (the float (+ gp-0 2)))
(close-specific-task! (the-as game-task (+ gp-0 2)) (task-status need-resolution))
)
)
(dotimes (gp-1 100)
(if (not (task-closed? (the-as game-task (+ gp-1 2)) (task-status need-resolution)))
(return #f)
)
)
#t
)
(defun dm-give-cell ((arg0 game-task))
(send-event *target* 'get-pickup 6 (the float arg0))
(close-specific-task! arg0 (task-status need-resolution))
(none)
)
(defun dm-levitator-ready ((arg0 int) (arg1 debug-menu-msg))
(when (= arg1 (debug-menu-msg press))
(close-specific-task! (game-task village2-levitator) (task-status need-introduction))
(close-specific-task! (game-task village2-levitator) (task-status need-reminder-a))
(dm-give-cell (game-task jungle-eggtop))
(dm-give-cell (game-task jungle-lurkerm))
(dm-give-cell (game-task jungle-tower))
(dm-give-cell (game-task jungle-fishgame))
(dm-give-cell (game-task jungle-plant))
(dm-give-cell (game-task jungle-buzzer))
(dm-give-cell (game-task jungle-canyon-end))
(dm-give-cell (game-task jungle-temple-door))
(dm-give-cell (game-task village1-yakow))
(dm-give-cell (game-task village1-mayor-money))
(dm-give-cell (game-task village1-uncle-money))
(dm-give-cell (game-task village1-oracle-money1))
(dm-give-cell (game-task village1-oracle-money2))
(dm-give-cell (game-task beach-ecorocks))
(dm-give-cell (game-task beach-pelican))
(dm-give-cell (game-task beach-flutflut))
(dm-give-cell (game-task beach-seagull))
(dm-give-cell (game-task beach-cannon))
(dm-give-cell (game-task beach-buzzer))
(dm-give-cell (game-task beach-gimmie))
(dm-give-cell (game-task beach-sentinel))
(dm-give-cell (game-task misty-muse))
(dm-give-cell (game-task misty-boat))
(dm-give-cell (game-task misty-warehouse))
(dm-give-cell (game-task misty-cannon))
(dm-give-cell (game-task misty-bike))
(dm-give-cell (game-task misty-buzzer))
(dm-give-cell (game-task misty-bike-jump))
(dm-give-cell (game-task misty-eco-challenge))
(dm-give-cell (game-task village2-gambler-money))
(dm-give-cell (game-task village2-geologist-money))
(dm-give-cell (game-task village2-oracle-money1))
(dm-give-cell (game-task village2-oracle-money2))
(dm-give-cell (game-task swamp-billy))
(dm-give-cell (game-task swamp-flutflut))
(dm-give-cell (game-task swamp-battle))
(dm-give-cell (game-task swamp-tether-1))
(dm-give-cell (game-task swamp-tether-2))
(dm-give-cell (game-task swamp-tether-3))
(dm-give-cell (game-task swamp-tether-4))
(dm-give-cell (game-task swamp-buzzer))
(dm-give-cell (game-task sunken-platforms))
(dm-give-cell (game-task sunken-pipe))
(dm-give-cell (game-task sunken-slide))
(dm-give-cell (game-task sunken-room))
(dm-give-cell (game-task sunken-sharks))
)
(= (get-task-status (game-task village2-levitator)) (task-status need-reward-speech))
)
(defun dm-lavabike-ready ((arg0 int) (arg1 debug-menu-msg))
(when (= arg1 (debug-menu-msg press))
(dm-give-cell (game-task jungle-eggtop))
(dm-give-cell (game-task jungle-lurkerm))
(dm-give-cell (game-task jungle-tower))
(dm-give-cell (game-task jungle-fishgame))
(dm-give-cell (game-task jungle-plant))
(dm-give-cell (game-task jungle-buzzer))
(dm-give-cell (game-task jungle-canyon-end))
(dm-give-cell (game-task jungle-temple-door))
(dm-give-cell (game-task village1-yakow))
(dm-give-cell (game-task village1-mayor-money))
(dm-give-cell (game-task village1-uncle-money))
(dm-give-cell (game-task village1-oracle-money1))
(dm-give-cell (game-task village1-oracle-money2))
(dm-give-cell (game-task beach-ecorocks))
(dm-give-cell (game-task beach-pelican))
(dm-give-cell (game-task beach-flutflut))
(dm-give-cell (game-task beach-seagull))
(dm-give-cell (game-task beach-cannon))
(dm-give-cell (game-task beach-buzzer))
(dm-give-cell (game-task beach-gimmie))
(dm-give-cell (game-task beach-sentinel))
(dm-give-cell (game-task misty-muse))
(dm-give-cell (game-task misty-boat))
(dm-give-cell (game-task misty-warehouse))
(dm-give-cell (game-task misty-cannon))
(dm-give-cell (game-task misty-bike))
(dm-give-cell (game-task misty-buzzer))
(dm-give-cell (game-task misty-bike-jump))
(dm-give-cell (game-task misty-eco-challenge))
(dm-give-cell (game-task village2-gambler-money))
(dm-give-cell (game-task village2-geologist-money))
(dm-give-cell (game-task village2-warrior-money))
(dm-give-cell (game-task village2-oracle-money1))
(dm-give-cell (game-task village2-oracle-money2))
(dm-give-cell (game-task swamp-billy))
(dm-give-cell (game-task swamp-flutflut))
(dm-give-cell (game-task swamp-battle))
(dm-give-cell (game-task swamp-tether-1))
(dm-give-cell (game-task swamp-tether-2))
(dm-give-cell (game-task swamp-tether-3))
(dm-give-cell (game-task swamp-tether-4))
(dm-give-cell (game-task swamp-buzzer))
(dm-give-cell (game-task sunken-platforms))
(dm-give-cell (game-task sunken-pipe))
(dm-give-cell (game-task sunken-slide))
(dm-give-cell (game-task sunken-room))
(dm-give-cell (game-task sunken-sharks))
(dm-give-cell (game-task sunken-buzzer))
(dm-give-cell (game-task sunken-top-of-helix))
(dm-give-cell (game-task sunken-spinning-room))
(dm-give-cell (game-task rolling-race))
(dm-give-cell (game-task rolling-robbers))
(dm-give-cell (game-task rolling-moles))
(dm-give-cell (game-task rolling-plants))
(dm-give-cell (game-task rolling-lake))
(dm-give-cell (game-task rolling-buzzer))
(dm-give-cell (game-task rolling-ring-chase-1))
(dm-give-cell (game-task rolling-ring-chase-2))
(dm-give-cell (game-task snow-eggtop))
(dm-give-cell (game-task snow-ram))
(dm-give-cell (game-task snow-fort))
(dm-give-cell (game-task snow-ball))
(dm-give-cell (game-task snow-bunnies))
(dm-give-cell (game-task snow-buzzer))
(dm-give-cell (game-task snow-bumpers))
(dm-give-cell (game-task snow-cage))
(dm-give-cell (game-task firecanyon-buzzer))
(dm-give-cell (game-task firecanyon-end))
(dm-give-cell (game-task citadel-sage-green))
(dm-give-cell (game-task citadel-sage-blue))
(dm-give-cell (game-task citadel-sage-red))
(dm-give-cell (game-task citadel-sage-yellow))
(dm-give-cell (game-task village3-extra1))
(dm-give-cell (game-task village1-buzzer))
(dm-give-cell (game-task village2-buzzer))
)
(= (get-task-status (game-task lavatube-start)) (task-status need-reward-speech))
)
(defun debug-menu-make-task-menu ((arg0 debug-menu-context))
(let* ((s5-0 (new 'debug 'debug-menu arg0 "Task menu"))
(s4-0 (new 'debug 'debug-menu-item-submenu "Task" s5-0))
)
(debug-menu-append-item s5-0 (new 'debug 'debug-menu-item-flag "enough money" #f dm-task-get-money))
(debug-menu-append-item s5-0 (new 'debug 'debug-menu-item-flag "levitator ready" #f dm-levitator-ready))
(debug-menu-append-item s5-0 (new 'debug 'debug-menu-item-flag "lavabike ready" #f dm-lavabike-ready))
(debug-menu-append-item s5-0 (new 'debug 'debug-menu-item-flag "all cells" #f dm-give-all-cells))
(debug-menu-make-task-unknown-menu s5-0 arg0)
(debug-menu-make-task-need-hint-menu s5-0 arg0)
(debug-menu-make-task-need-introduction-menu s5-0 arg0)
(debug-menu-make-task-need-reminder-a-menu s5-0 arg0)
(debug-menu-make-task-need-reminder-menu s5-0 arg0)
(debug-menu-make-task-need-reward-speech-menu s5-0 arg0)
(debug-menu-make-task-need-resolution-menu s5-0 arg0)
s4-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 flags) (anim-tester-flags fanimt5))
)
(return (logtest? (-> *anim-tester* 0 flags) (anim-tester-flags fanimt5)))
)
(('at-show-joint-info)
(if (= arg1 (debug-menu-msg press))
(logxor! (-> *anim-tester* 0 flags) (anim-tester-flags fanimt4))
)
(return (logtest? (-> *anim-tester* 0 flags) (anim-tester-flags fanimt4)))
)
)
)
#f
)
(defun dm-anim-tester-func ((arg0 int) (arg1 debug-menu-msg))
(if (not *anim-tester*)
(anim-tester-start)
)
(when *anim-tester*
(cond
((= arg0 'at-pick-object)
(send-event (ppointer->process *anim-tester*) 'pick-object)
(set! (-> *debug-menu-context* is-hidden) #t)
)
((= arg0 'at-pick-joint-anim)
(send-event (ppointer->process *anim-tester*) 'pick-joint-anim)
(set! (-> *debug-menu-context* is-hidden) #t)
)
((= arg0 'at-pick-sequence)
(send-event (ppointer->process *anim-tester*) 'pick-sequence)
(set! (-> *debug-menu-context* is-hidden) #t)
)
((= arg0 'at-save-sequences)
(send-event (ppointer->process *anim-tester*) 'save-sequences)
)
((= arg0 'at-cam-stick)
(set! *camera-orbit-target* *anim-tester*)
(send-event *camera* 'change-state cam-orbit 0)
)
((= arg0 'at-cam-free-floating)
(send-event *camera* 'change-state cam-free-floating 0)
)
)
)
(none)
)
(defun build-continue-menu ((arg0 debug-menu) (arg1 game-info))
(let ((s5-0 *level-load-list*))
(while (not (null? s5-0))
(let ((s4-0 (-> (the-as level-load-info (-> (the-as symbol (car s5-0)) value)) continues)))
(while (not (null? s4-0))
(let* ((v1-2 (the-as level-load-info (car s4-0)))
(a1-2 (new 'debug 'debug-menu-item-flag (the-as string (-> v1-2 name)) (-> v1-2 name) dm-current-continue))
)
(debug-menu-append-item arg0 a1-2)
)
(set! s4-0 (cdr s4-0))
)
)
(set! s5-0 (cdr s5-0))
)
)
(the-as debug-menu-context arg0)
)
(defun debug-menu-context-make-default-menus ((arg0 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)
(flag "Memory Stats" *stats-memory* dm-boolean-toggle-pick-func)
(flag "Memory Stats Short" *stats-memory-short* dm-boolean-toggle-pick-func)
(flag "Ground Stats" *display-ground-stats* dm-boolean-toggle-pick-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 "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-or-create-continue! *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 "Camera Face" at-cam-stick dm-anim-tester-func)
(function "Camera Free" at-cam-free-floating dm-anim-tester-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 "Time of Day" #f dm-time-of-day-pick-func)
(flag "Preload Anims" *preload-spool-anims* dm-boolean-toggle-pick-func)
)
)
)
(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)) (none))
)
(function
"New Life"
#f
,(lambda () (initialize! *game-info* 'die (the-as game-save #f) (the-as string #f)) (none))
)
(function
"Reset Game"
#f
,(lambda ()
(set! (-> *game-info* mode) 'debug)
(initialize! *game-info* 'game (the-as game-save #f) (the-as string #f))
(none)
)
)
(function "Reset Actors" #f ,(lambda () (reset-actors 'debug) (none)))
(function "Save Game" #f ,(lambda () (auto-save-command 'save 0 0 *default-pool*) (none)))
(function "Load Game" #f ,(lambda () (auto-save-command 'restore 0 0 *default-pool*) (none)))
(flag "Target" #f ,(lambda ((arg0 int) (arg1 debug-menu-msg))
(when (= arg1 (debug-menu-msg press))
(if *target*
(stop 'debug)
(start 'debug (get-or-create-continue! *game-info*))
)
)
*target*
)
)
(flag "Game Mode" play dm-game-mode-pick-func)
(flag "Debug Mode" debug dm-game-mode-pick-func)
(menu "Continue")
(menu
"Settings"
(float-var
"sfx-volume"
#f
,(lambda ((arg0 int) (arg1 debug-menu-msg) (arg2 float))
(cond
((= arg1 (debug-menu-msg press))
(let ((f0-0 arg2))
(set! (-> *setting-control* default sfx-volume) f0-0)
f0-0
)
)
(else
(-> *setting-control* default sfx-volume)
)
)
)
2
1
#t
0
100
0
)
(float-var
"music-volume"
#f
,(lambda ((arg0 int) (arg1 debug-menu-msg) (arg2 float))
(cond
((= arg1 (debug-menu-msg press))
(let ((f0-0 arg2))
(set! (-> *setting-control* default music-volume) f0-0)
f0-0
)
)
(else
(-> *setting-control* default music-volume)
)
)
)
2
1
#t
0
100
0
)
(float-var
"dialog-volume"
#f
,(lambda ((arg0 int) (arg1 debug-menu-msg) (arg2 float))
(cond
((= arg1 (debug-menu-msg press))
(let ((f0-0 arg2))
(set! (-> *setting-control* default dialog-volume) f0-0)
f0-0
)
)
(else
(-> *setting-control* default dialog-volume)
)
)
)
2
1
#t
0
100
0
)
(menu
"Language"
(flag "english" 0 dm-setting-language)
(flag "japanese" 5 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 "uk-english" 6 dm-setting-language)
)
(flag
"play-hints "
#f
,(lambda ((arg0 int) (arg1 debug-menu-msg))
(if (= arg1 (debug-menu-msg press))
(set! (-> *setting-control* default play-hints) (not (-> *setting-control* default play-hints)))
)
(-> *setting-control* default play-hints)
)
)
(flag
"vibration"
#f
,(lambda ((arg0 int) (arg1 debug-menu-msg))
(if (= arg1 (debug-menu-msg press))
(set! (-> *setting-control* default vibration) (not (-> *setting-control* default vibration)))
)
(-> *setting-control* default vibration)
)
)
(flag
"border-mode"
#f
,(lambda ((arg0 int) (arg1 debug-menu-msg))
(if (= arg1 (debug-menu-msg press))
(set! (-> *setting-control* default border-mode) (not (-> *setting-control* default border-mode)))
)
(-> *setting-control* default border-mode)
)
)
)
)
)
)
(let ((a0-8 (debug-menu-find-from-template arg0 '("Game" "Continue"))))
(build-continue-menu a0-8 *game-info*)
)
(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 "Dma test" *stats-dma-test* dm-boolean-toggle-pick-func)
(flag "Blerc" *stats-blerc* dm-boolean-toggle-pick-func)
(flag "Perf" *display-perf-stats* dm-boolean-toggle-pick-func)
)
)
)
(debug-menu-append-item
s5-0
(debug-menu-make-from-template
arg0
'(menu
"Render"
(flag "sky" 1 dm-vu1-user-toggle-pick-func)
(flag "ocean" 2 dm-vu1-user-toggle-pick-func)
(flag "ocean-wave" 4 dm-vu1-user-toggle-pick-func)
(flag "TFRAG TIE TEXTURES" #x1 dm-texture-user-toggle-pick-func)
(flag "tfrag" 8 dm-vu1-user-toggle-pick-func)
(flag "tie-near" 16 dm-vu1-user-toggle-pick-func)
(flag "tie" 32 dm-vu1-user-toggle-pick-func)
(flag "generic" 64 dm-vu1-user-toggle-pick-func)
(flag "generic-tie" *generic-tie* dm-boolean-toggle-pick-func)
(flag "PRIS TEXTURES" #x2 dm-texture-user-toggle-pick-func)
(flag "merc" 128 dm-vu1-user-toggle-pick-func)
(flag "SHRUB TEXTURES" #x4 dm-texture-user-toggle-pick-func)
(flag "shrub-near" 512 dm-vu1-user-toggle-pick-func)
(flag "shrubbery" 256 dm-vu1-user-toggle-pick-func)
(flag "billboard" 1024 dm-vu1-user-toggle-pick-func)
(flag "trans-shrubbery" 2048 dm-vu1-user-toggle-pick-func)
(flag "ALPHA TEXTURES" 1 dm-texture-user-toggle-pick-func)
(flag "trans-tfrag" 4096 dm-vu1-user-toggle-pick-func)
(flag "sprite" 8192 dm-vu1-user-toggle-pick-func)
(flag "shadow" 16384 dm-vu1-user-toggle-pick-func)
(flag "shadow-debug" *shadow-debug* dm-boolean-toggle-pick-func)
(flag "WATER TEXTURES" 2 dm-texture-user-toggle-pick-func)
(flag "depth-cue" 32768 dm-vu1-user-toggle-pick-func)
(flag "all on" 262143 dm-vu1-user-set-pick-func)
(flag "all off" 196608 dm-vu1-user-set-pick-func)
(flag "all textures on" #x1f 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"
(flag "Collide Stats" *stats-collide* dm-boolean-toggle-pick-func)
(flag "Collision Marks" *display-collision-marks* dm-boolean-toggle-pick-func)
(flag "Collision Cache" *display-collide-cache* dm-boolean-toggle-pick-func)
(flag "Render Collision" *display-render-collision* 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)
)
)
)
(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 "Collision Marks" *display-collision-marks* dm-boolean-toggle-pick-func)
(flag "Collision Cache" *display-collide-cache* 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 "Target Marks" *display-target-marks* dm-boolean-toggle-pick-func)
(flag "Target Stats" *stats-target* dm-boolean-toggle-pick-func)
(flag "Entity Lights" *display-lights* 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 "Nav Marks" *display-nav-marks* dm-boolean-toggle-pick-func)
(flag "Path Marks" *display-path-marks* dm-boolean-toggle-pick-func)
(flag "Vol Marks" *display-vol-marks* dm-boolean-toggle-pick-func)
(menu
"Ambient Marks"
(flag "Ambient Hint Marks" *display-ambient-hint-marks* dm-boolean-toggle-pick-func)
(flag "Ambient Sound Marks" *display-ambient-sound-marks* dm-boolean-toggle-pick-func)
(flag "Ambient Poi Marks" *display-ambient-poi-marks* dm-boolean-toggle-pick-func)
(flag "Ambient Light Marks" *display-ambient-light-marks* dm-boolean-toggle-pick-func)
(flag "Ambient Dark Marks" *display-ambient-dark-marks* dm-boolean-toggle-pick-func)
(flag "Ambient Weather Off Marks" *display-ambient-weather-off-marks* dm-boolean-toggle-pick-func)
(flag "Ambient Ocean Off Marks" *display-ambient-ocean-off-marks* dm-boolean-toggle-pick-func)
(flag "Ambient Ocean Near Off Marks" *display-ambient-ocean-near-off-marks* dm-boolean-toggle-pick-func)
(flag "Ambient Music" *display-ambient-music-marks* dm-boolean-toggle-pick-func)
)
(menu
"Actor Marks"
(flag "off" #f dm-actor-marks-pick-func)
(flag "on" #t dm-actor-marks-pick-func)
(flag "full" full dm-actor-marks-pick-func)
(flag "process" process dm-actor-marks-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)
)
(flag "Art Control" *display-art-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 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 "Load boundaries" *display-load-boundaries* dm-boolean-toggle-pick-func)
(flag "Memcard Info" *display-memcard-info* 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)))
(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 "Ambients" *execute-ambients* dm-boolean-toggle-pick-func)
(flag "Ambient Hint Marks" *display-ambient-hint-marks* dm-boolean-toggle-pick-func)
(flag "Ambient Sound Marks" *display-ambient-sound-marks* dm-boolean-toggle-pick-func)
(flag "Ambient Poi Marks" *display-ambient-poi-marks* dm-boolean-toggle-pick-func)
(flag "Ambient Light Marks" *display-ambient-light-marks* dm-boolean-toggle-pick-func)
(flag "Ambient Dark Marks" *display-ambient-dark-marks* dm-boolean-toggle-pick-func)
(flag "Ambient Weather Off Marks" *display-ambient-weather-off-marks* dm-boolean-toggle-pick-func)
(flag "Ambient Ocean Off Marks" *display-ambient-ocean-off-marks* dm-boolean-toggle-pick-func)
(flag "Ambient Ocean Near Off Marks" *display-ambient-ocean-near-off-marks* dm-boolean-toggle-pick-func)
(flag "Ambient Music" *display-ambient-music-marks* dm-boolean-toggle-pick-func)
(menu
"Actor Marks"
(flag "off" #f dm-actor-marks-pick-func)
(flag "on" #t dm-actor-marks-pick-func)
(flag "full" full dm-actor-marks-pick-func)
(flag "process" process dm-actor-marks-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)
)
(flag "Actor Vis" *vis-actors* dm-boolean-toggle-pick-func)
)
)
)
(debug-menu-append-item
s5-0
(debug-menu-make-from-template
arg0
'(menu
"Target"
(flag "Target Stats" *stats-target* dm-boolean-toggle-pick-func)
(function "Play" #f ,(lambda () (play #t #t)))
(function "Start" #f ,(lambda () (the-as int (start 'debug (get-or-create-continue! *game-info*)))))
(function "Stop" #f ,(lambda () (stop 'debug)))
(flag
"Invulnerable"
#f
,(lambda ((arg0 int) (arg1 debug-menu-msg))
(when (= arg1 (debug-menu-msg press))
(if *target*
(logxor! (-> *target* state-flags) (state-flags invulnerable))
)
)
(the-as symbol (and *target* (logtest? (-> *target* state-flags) (state-flags invulnerable))))
)
)
(function
"Reset Trans"
#f
,(lambda () (when *target*
(position-in-front-of-camera! (target-pos 0) (the-as float 40960.0) (the-as float 4096.0))
(set! (-> *target* control transv quad) (the-as uint128 0))
(quaternion-identity! (-> *target* control quat))
(quaternion-identity! (-> *target* control unknown-quaternion00))
(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 unknown-quaternion00))
(quaternion-identity! (-> *target* control dir-targ))
)
)
)
(menu
"Mode"
(function "normal" #f ,(lambda () (send-event *target* 'end-mode)))
(function "racing" #f ,(lambda () (send-event *target* 'change-mode 'racing #f)))
(function "snowball" #f ,(lambda () (send-event *target* 'change-mode 'snowball #f)))
)
(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
(none)
)
)
(function "Save Continue" #f ,(lambda ()
(if *target*
(trsq->continue-point (-> *target* control))
)
(none)
)
)
)
)
)
(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
"Subdiv"
(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)
)
)
)
(debug-menu-append-item
s5-0
(debug-menu-make-from-template
arg0
'(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 "9am morning" 1 dm-time-of-day-func)
(flag "12pm noon" 2 dm-time-of-day-func)
(flag "3pm 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 "on" 8 dm-time-of-day-func)
(flag "Effects" *time-of-day-effects* dm-boolean-toggle-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
"Sound"
(flag "Effect Debug" *debug-effect-control* dm-boolean-toggle-pick-func)
(flag "Amb Snd Marks" *display-ambient-sound-marks* dm-boolean-toggle-pick-func)
(flag "Amb Snd Class" *ambient-sound-class* dm-boolean-toggle-pick-func)
(flag "Amb Spheres" *execute-ambients* dm-boolean-toggle-pick-func)
(flag "Sound channels" *display-iop-info* dm-boolean-toggle-pick-func)
(function "List Sounds" #f ,(lambda () (list-sounds)))
)
)
)
(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-task-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 int) (arg1 debug-menu-msg))
(when (= arg1 (debug-menu-msg press))
(if *target*
(stop 'debug)
(start 'debug (get-or-create-continue! *game-info*))
)
)
*target*
)
)
(flag "Game" #f ,(lambda ((arg0 int) (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 ((arg0 int) (arg1 debug-menu-msg))
(if (time-of-day-setup #f)
(time-of-day-setup #t)
)
(set! *display-entity-errors* #f)
(set! *display-profile* #f)
(set! *display-actor-marks* #f)
#f
)
)
(flag "Stats" *stats-target* dm-boolean-toggle-pick-func)
(function "Reset" #f ,(lambda () (reset-actors 'debug) (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)
(if (cpad-hold? 0 l3)
(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 activate) (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))
)
)
#f
)
(defun *menu-hook* ()
(debug-menus-handler *debug-menu-context*)
(debug-menus-handler *popup-menu-context*)
)
(#when PC_PORT
(defmacro new-dm-func (text var func)
`(new 'debug 'debug-menu-item-function ,text ,var (the-as (function int object) ,func))
)
(defmacro new-dm-flag (text var func)
`(new 'debug 'debug-menu-item-flag ,text ,var (the-as (function int debug-menu-msg object) ,func))
)
(defmacro new-dm-bool (text sym func)
`(new-dm-flag ,text (quote ,sym) ,func)
)
(defmacro new-dm-submenu (text menu)
`(new 'debug 'debug-menu-item-submenu ,text ,menu)
)
(defmacro new-dm-var-float (text var func inc min max)
`(debug-menu-item-var-make-float (new 'debug 'debug-menu-item-var ,text ,var (* 8 20))
(the-as (function int debug-menu-msg float float float) ,func)
,inc #t ,min ,max 1)
)
(defun dm-want-level-toggle-pick-func ((arg0 pair) (arg1 debug-menu-msg))
(let* ((levname (the-as symbol (car arg0)))
(info (the-as level-load-info (-> levname value)))
(idx (the int (cdr arg0)))
(the-level (level-get *level* (-> info name)))
)
(if (and the-level (!= the-level (-> *level* level idx)))
(return 'invalid)
)
(if (= arg1 (debug-menu-msg press))
(load-state-want-levels
(if (= idx 0) (-> info name) (-> *level* level 0 name))
(if (= idx 1) (-> info name) (-> *level* level 1 name))
)
)
(eq? (-> *level* level idx name) (-> info name))
)
)
(defun dm-display-level-toggle-pick-func ((arg0 symbol) (arg1 debug-menu-msg))
(let ((the-level (level-get *level* arg0)))
(if (not the-level)
(return 'invalid)
)
(if (= arg1 (debug-menu-msg press))
(when the-level
(load-state-want-display-level arg0
(if (-> the-level display?) #f 'display)
)
)
)
(and the-level (-> the-level display?))
)
)
(defun debug-menu-make-load-want-menu ((ctx debug-menu-context) (lev-idx int))
(let ((want-menu (new 'debug 'debug-menu ctx "Level want menu")))
(let ((iter *level-load-list*))
(while (not (or (null? iter) (null? (cdr iter)) (null? (cddr iter))))
(debug-menu-append-item want-menu (new-dm-flag (symbol->string (the-as symbol (car iter))) (dcons (car iter) lev-idx) dm-want-level-toggle-pick-func))
(set! iter (cdr iter))
)
)
(new-dm-submenu (new 'debug 'string 0 (string-format "Want ~D" lev-idx)) want-menu)
)
)
(defun debug-menu-make-load-display-menu ((ctx debug-menu-context))
(let ((display-menu (new 'debug 'debug-menu ctx "Level display menu")))
(let ((iter *level-load-list*))
(while (not (or (null? iter) (null? (cdr iter)) (null? (cddr iter))))
(debug-menu-append-item display-menu (new-dm-flag (symbol->string (the-as symbol (car iter))) (car iter) dm-display-level-toggle-pick-func))
(set! iter (cdr iter))
)
)
(new-dm-submenu "Display" display-menu)
)
)
(defun debug-menu-make-load-teleport-menu ((ctx debug-menu-context))
(let ((teleport-menu (new 'debug 'debug-menu ctx "Camera teleport menu")))
(let ((iter *level-load-list*))
(while (not (or (null? iter) (null? (cdr iter)) (null? (cddr iter))))
(debug-menu-append-item teleport-menu
(new-dm-func (symbol->string (the-as symbol (car iter)))
(-> (the-as symbol (car iter)) value)
(lambda ((info level-load-info))
(let ((tf (new 'stack-no-clear 'transformq)))
(set! (-> tf trans x) (-> info bsphere x))
(set! (-> tf trans y) (-> info bsphere y))
(set! (-> tf trans z) (-> info bsphere z))
(quaternion-identity! (-> tf quat))
(vector-identity! (-> tf scale))
(send-event *camera* 'teleport-to-transformq tf)
)
)
))
(set! iter (cdr iter))
)
)
(new-dm-submenu "Camera teleport" teleport-menu)
)
)
(defun debug-menu-make-load-menu ((ctx debug-menu-context))
(let ((load-menu (new 'debug 'debug-menu ctx "Load menu")))
(debug-menu-append-item load-menu (new-dm-bool "Level Border" *display-level-border* dm-boolean-toggle-pick-func))
(debug-menu-append-item load-menu (debug-menu-make-from-template ctx '(flag
"border-mode"
#f
,(lambda ((arg0 int) (arg1 debug-menu-msg))
(if (= arg1 (debug-menu-msg press))
(set! (-> *setting-control* default border-mode) (not (-> *setting-control* default border-mode)))
)
(-> *setting-control* default border-mode)
)
)))
(debug-menu-append-item load-menu (debug-menu-make-load-want-menu ctx 0)) ;; Want 0
(debug-menu-append-item load-menu (debug-menu-make-load-want-menu ctx 1)) ;; Want 1
(debug-menu-append-item load-menu (debug-menu-make-load-display-menu ctx)) ;; Display
(debug-menu-append-item load-menu (debug-menu-make-load-teleport-menu ctx)) ;; Camera teleport
(new-dm-submenu "Load" load-menu)
)
)
(define *part-pick-menu* (the-as debug-menu #f))
(define *spawn-part-test* #t)
(defun dm-part-pick-func ((id int) (msg debug-menu-msg))
(if (zero? (-> *part-group-id-table* id))
(return 'invalid))
(when (= msg (debug-menu-msg press))
(set! *part-tester-id* id)
(if *spawn-part-test*
(start-part)
)
)
(= *part-tester-id* id)
)
(defun build-particles-list ()
(debug-menu-remove-all-items *part-pick-menu*)
(dotimes (i (-> *part-group-id-table* length))
(let ((part (-> *part-group-id-table* i)))
(when (and (nonzero? part))
(debug-menu-append-item *part-pick-menu* (new-dm-flag (-> part name) i dm-part-pick-func))
)
)
)
(set! (-> *part-pick-menu* items) (sort (-> *part-pick-menu* items) debug-menu-node<?))
)
(defun debug-menu-make-part-menu ((ctx debug-menu-context))
(let ((part-menu (new 'debug 'debug-menu ctx "Particles menu")))
(let ((pick-menu (new 'debug 'debug-menu ctx "Particle group pick menu")))
(set! *part-pick-menu* pick-menu)
(debug-menu-append-item part-menu (new-dm-submenu "Pick Particle group" pick-menu))
)
(debug-menu-append-item part-menu (new-dm-func "Refresh" #f build-particles-list))
(debug-menu-append-item part-menu (new-dm-bool "Spawn part tester" *spawn-part-test* dm-boolean-toggle-pick-func))
(new-dm-submenu "Particles" part-menu)
)
)
(define *entity-pick-menu* (the-as debug-menu #f))
(defun dm-entity-pick-func ((e entity) (msg debug-menu-msg))
(when (= msg (debug-menu-msg press))
(if (= (-> *entity-debug-inspect* entity) e)
(set-entity! *entity-debug-inspect* (the entity #f))
(set-entity! *entity-debug-inspect* e))
)
(= (-> *entity-debug-inspect* entity) e)
)
(defun build-entity-list ()
"Fill the entity pick menu"
;; clear old list
(debug-menu-remove-all-items *entity-pick-menu*)
;; go through active levels
(dotimes (s5-0 (-> *level* length))
(let ((s4-0 (-> *level* level s5-0)))
(when (= (-> s4-0 status) 'active)
;; actor entities
(let ((s3-0 (-> s4-0 bsp actors)))
(when (nonzero? s3-0)
(dotimes (s2-0 (-> s3-0 length))
(let ((s1-0 (-> s3-0 data s2-0 actor)))
(debug-menu-append-item *entity-pick-menu* (new-dm-flag (res-lump-struct s1-0 'name string) s1-0 dm-entity-pick-func))
)
)
)
)
;; ambients entities
(let ((s3-1 (-> s4-0 bsp ambients)))
(when (nonzero? s3-1)
(dotimes (s2-1 (-> s3-1 length))
(let ((s1-1 (-> s3-1 data s2-1 ambient)))
(debug-menu-append-item *entity-pick-menu* (new-dm-flag (res-lump-struct s1-1 'name string) s1-1 dm-entity-pick-func))
)
)
)
)
;; camera entities
(let ((s4-1 (-> s4-0 bsp cameras)))
(when (nonzero? s4-1)
(dotimes (s3-2 (-> s4-1 length))
(let ((s2-2 (-> s4-1 s3-2)))
(debug-menu-append-item *entity-pick-menu* (new-dm-flag (res-lump-struct s2-2 'name string) s2-2 dm-entity-pick-func))
)
)
)
)
)
)
)
(set! (-> *entity-pick-menu* items) (sort (-> *entity-pick-menu* items) debug-menu-node<?))
)
(defun dm-display-entities-pick-func ((arg0 symbol))
(debug-print-entities *level* arg0 (the-as type #f))
)
(defun debug-menu-make-entity-menu ((ctx debug-menu-context))
(let ((entity-menu (new 'debug 'debug-menu ctx "Entity menu")))
(let ((pick-menu (new 'debug 'debug-menu ctx "Pick entity menu")))
(set! *entity-pick-menu* pick-menu)
(debug-menu-append-item entity-menu (new-dm-submenu "Pick Entity" pick-menu))
)
(debug-menu-append-item entity-menu (new-dm-func "Refresh" #f build-entity-list))
(debug-menu-append-item entity-menu (new-dm-func "Go to entity" #f
(lambda ()
(unless (-> *entity-debug-inspect* entity) (return #f))
(let ((tf (new 'stack 'transformq)))
(vector-copy! (-> tf trans) (-> *entity-debug-inspect* entity trans))
(quaternion-identity! (-> tf quat))
(vector-identity! (-> tf scale))
(send-event *camera* 'teleport-to-transformq tf)
))))
(debug-menu-append-item entity-menu (new-dm-func "Print entity info" #t dm-display-entities-pick-func))
(debug-menu-append-item entity-menu (new-dm-func "Print entity info (ag)" 'art-group dm-display-entities-pick-func))
(debug-menu-append-item entity-menu (new-dm-func "Print entity info (meters)" 'entity-meters dm-display-entities-pick-func))
(debug-menu-append-item entity-menu (new-dm-func "Print entity info (perm)" 'entity-perm dm-display-entities-pick-func))
(new-dm-submenu "Entity" entity-menu)
)
)
(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)
)
(defmacro dm-lambda-int-var (val)
"helper macro for making int buttons"
`,(lambda (arg (msg debug-menu-msg) (newval int))
(cond
((= msg (debug-menu-msg press))
(set! ,val newval)
)
(else
,val
)
))
)
(defmacro dm-lambda-float-var (val)
"helper macro for making float buttons"
`(lambda (arg (msg debug-menu-msg) (newval float))
(cond
((= msg (debug-menu-msg press))
(set! ,val newval)
)
(else
,val
)
))
)
(defmacro dm-lambda-meters-var (val)
"helper macro for making meters buttons"
`,(lambda (arg (msg debug-menu-msg) (newval float))
(cond
((= msg (debug-menu-msg press))
(set! ,val (meters newval))
)
(else
(* (1/ METER_LENGTH) ,val)
)
))
)
(defun dm-toggle-collision-pick-func ((arg symbol) (msg debug-menu-msg))
(when (= msg (debug-menu-msg press))
(cond
((-> arg value)
(false! (-> arg value))
(logior! *vu1-enable-user-menu* (vu1-renderer-mask tfrag trans-tfrag tie tie-near))
(true! *generic-tie*)
)
(else
(true! (-> arg value))
(logclear! *vu1-enable-user-menu* (vu1-renderer-mask tfrag trans-tfrag tie tie-near))
(false! *generic-tie*)
)
)
)
(-> arg value)
)
(defun dm-collision-mode-pick-func ((arg pc-collision-mode) (msg debug-menu-msg))
(when (= msg (debug-menu-msg press))
(set! *collision-mode* arg)
)
(= *collision-mode* arg)
)
(defun dm-collision-filter-mode-pick-func ((arg int) (msg debug-menu-msg))
(when (= msg (debug-menu-msg press))
(pc-set-collision-mask (pc-collision-mode mode) arg (not (pc-get-collision-mask (pc-collision-mode mode) arg)))
)
(pc-get-collision-mask (pc-collision-mode mode) arg)
)
(defun dm-collision-filter-event-pick-func ((arg int) (msg debug-menu-msg))
(when (= msg (debug-menu-msg press))
(pc-set-collision-mask (pc-collision-mode event) arg (not (pc-get-collision-mask (pc-collision-mode event) arg)))
)
(pc-get-collision-mask (pc-collision-mode event) arg)
)
(defun dm-collision-filter-material-pick-func ((arg int) (msg debug-menu-msg))
(when (= msg (debug-menu-msg press))
(pc-set-collision-mask (pc-collision-mode material) arg (not (pc-get-collision-mask (pc-collision-mode material) arg)))
)
(pc-get-collision-mask (pc-collision-mode material) arg)
)
(defun dm-collision-filter-skip-pick-func ((arg int) (msg debug-menu-msg))
(when (= msg (debug-menu-msg press))
(pc-set-collision-mask (pc-collision-mode skip) arg (not (pc-get-collision-mask (pc-collision-mode skip) arg)))
)
(pc-get-collision-mask (pc-collision-mode skip) arg)
)
(defun debug-menu-make-collision-renderer-menu ((ctx debug-menu-context))
(let ((menu (new 'debug 'debug-menu ctx "Collision renderer menu")))
;; master toggle
(debug-menu-append-item menu (new-dm-bool "Enable" *collision-renderer* dm-toggle-collision-pick-func))
(debug-menu-append-item menu (new-dm-bool "Wireframe" *collision-wireframe* dm-boolean-toggle-pick-func))
(debug-menu-append-item menu (new-dm-submenu "Mode"
(let ((mode-menu (new 'debug 'debug-menu ctx "Collision renderer mode menu")))
(doenum (name val pc-collision-mode)
(debug-menu-append-item mode-menu (new-dm-flag name val dm-collision-mode-pick-func))
)
mode-menu)))
(debug-menu-append-item menu (new-dm-submenu "Filter mode"
(let ((filter-menu (new 'debug 'debug-menu ctx "Collision renderer filter mode menu")))
(doenum (name val pat-mode)
(debug-menu-append-item filter-menu (new-dm-flag name val dm-collision-filter-mode-pick-func))
)
filter-menu)))
(debug-menu-append-item menu (new-dm-submenu "Filter event"
(let ((filter-menu (new 'debug 'debug-menu ctx "Collision renderer filter event menu")))
(doenum (name val pat-event)
(debug-menu-append-item filter-menu (new-dm-flag name val dm-collision-filter-event-pick-func))
)
filter-menu)))
(debug-menu-append-item menu (new-dm-submenu "Filter material"
(let ((filter-menu (new 'debug 'debug-menu ctx "Collision renderer filter material menu")))
(doenum (name val pat-material)
(debug-menu-append-item filter-menu (new-dm-flag name val dm-collision-filter-material-pick-func))
)
filter-menu)))
(debug-menu-append-item menu (new-dm-submenu "Filter skip"
(let ((filter-menu (new 'debug 'debug-menu ctx "Collision renderer filter skip menu")))
(doenum (name val pc-pat-skip-hack)
(debug-menu-append-item filter-menu (new-dm-flag name val dm-collision-filter-skip-pick-func))
)
filter-menu)))
(new-dm-submenu "Collision renderer" menu)
)
)
(defun dm-lod-int ((arg0 int) (arg1 debug-menu-msg) (arg2 int) (arg3 int))
(when (= arg1 (debug-menu-msg press))
(case (/ arg0 8)
((0) (set! (-> *pc-settings* lod-force-tfrag) arg2))
((1) (set! (-> *pc-settings* lod-force-tie) arg2))
((2) (set! (-> *pc-settings* lod-force-ocean) arg2))
((3) (set! (-> *pc-settings* lod-force-actor) arg2))
)
)
(case (/ arg0 8)
((0) (-> *pc-settings* lod-force-tfrag))
((1) (-> *pc-settings* lod-force-tie))
((2) (-> *pc-settings* lod-force-ocean))
((3) (-> *pc-settings* lod-force-actor))
(else arg3)
)
)
(defun dm-subtitle-language ((blang int) (msg debug-menu-msg))
(let ((lang (the pc-subtitle-lang (/ blang 8))))
(when (= msg (debug-menu-msg press))
(set! (-> *pc-settings* subtitle-language) lang))
(= (-> *pc-settings* subtitle-language) lang)
)
)
(defun dm-text-language ((blang int) (msg debug-menu-msg))
(let ((lang (the pc-subtitle-lang (/ blang 8))))
(when (= msg (debug-menu-msg press))
(set! (-> *pc-settings* text-language) lang))
(= (-> *pc-settings* text-language) lang)
)
)
(defun dm-subtitle-setting ((setting symbol) (msg debug-menu-msg))
(when (= msg (debug-menu-msg press))
(set! (-> *pc-settings* subtitle-speaker?) setting))
(= (-> *pc-settings* subtitle-speaker?) setting)
)
(defun dm-mood-override-palette-pick-func ((bpal int) (msg debug-menu-msg))
(let* ((pal (/ bpal 8))
(cur-val (-> *pc-settings* mood-overrides pal)))
(when (= msg (debug-menu-msg press))
(set! (-> *pc-settings* mood-overrides pal) (if (= cur-val 0.0) 1.0 0.0))
(when (not (= 'mult (-> *pc-settings* mood-override?)))
(set! (-> *pc-settings* mood-override?) #f)
(dotimes (i 8)
(if (!= (-> *pc-settings* mood-overrides i) 0.0)
(set! (-> *pc-settings* mood-override?) 'copy)))
))
(= (-> *pc-settings* mood-overrides pal) 1.0)
)
)
(defun dm-mood-override-pick-func ((kind symbol) (msg debug-menu-msg))
(when (= msg (debug-menu-msg press))
(if (= kind (-> *pc-settings* mood-override?))
(set! (-> *pc-settings* mood-override?) #f)
(set! (-> *pc-settings* mood-override?) kind)))
(= kind (-> *pc-settings* mood-override?))
)
(defun dm-mood-palette-float ((pal int) (arg1 debug-menu-msg) (newval float) (val float))
(when (= arg1 (debug-menu-msg press))
(set! (-> *pc-settings* mood-overrides (/ pal 8)) newval))
(-> *pc-settings* mood-overrides (/ pal 8))
)
(defun dm-anim-tester-x-flag-func ((action symbol) (msg debug-menu-msg))
(case action
(('at-show-joint-info)
(if (= msg (debug-menu-msg press))
(logxor! (-> *ATX-settings* flags) (atx-flags show-joints)))
(return (logtest? (-> *ATX-settings* flags) (atx-flags show-joints)))
)
)
#f)
(defun dm-anim-tester-x-func ((action symbol))
(unless *atx*
(atx-start))
(case action
(('pick-art-group)
(set! (-> *atx* 0 edit-mode) (atx-edit-mode art-group))
(false! *camera-read-buttons*)
)
(('at-pick-joint-anim)
(when (-> *atx* 0 cur-art-group)
(set! (-> *atx* 0 edit-mode) (atx-edit-mode anim))
(false! *camera-read-buttons*)
)
)
(('pick-mesh-geo)
(when (-> *atx* 0 cur-art-group)
(set! (-> *atx* 0 edit-mode) (atx-edit-mode mgeo))
(false! *camera-read-buttons*)
)
)
(('pick-joint-geo)
(when (-> *atx* 0 cur-art-group)
(set! (-> *atx* 0 edit-mode) (atx-edit-mode jgeo))
(false! *camera-read-buttons*)
)
)
(('at-cam-free-floating)
(send-event *camera* 'change-state cam-free-floating 0)
)
(('at-cam-orbit)
(send-event *camera* 'change-state cam-orbit 0)
)
)
0)
(defun debug-menu-make-anim-tester-x-menu ((ctx debug-menu-context))
(let ((menu (new 'debug 'debug-menu ctx "Anim Tester X menu")))
;; master toggle
(debug-menu-append-item menu (new-dm-func "Start" #f atx-start))
(debug-menu-append-item menu (new-dm-func "Stop" #f atx-stop))
(debug-menu-append-item menu (new-dm-var-float "Speed" (the int #f) (dm-lambda-float-var (-> *ATX-settings* speed)) 0.01 -10.0 10.0))
(debug-menu-append-item menu (new-dm-var-float "Frame Num" (the int #f) (dm-lambda-float-var (-> *ATX-settings* frame-num)) 0.1 0.0 99999.0))
(debug-menu-append-item menu (new-dm-func "Pick Art Group" 'pick-art-group dm-anim-tester-x-func))
(debug-menu-append-item menu (new-dm-func "Pick Anim" 'at-pick-joint-anim dm-anim-tester-x-func))
(debug-menu-append-item menu (new-dm-func "Pick Mesh" 'pick-mesh-geo dm-anim-tester-x-func))
(debug-menu-append-item menu (new-dm-func "Pick Skeleton" 'pick-joint-geo dm-anim-tester-x-func))
(debug-menu-append-item menu (new-dm-flag "Show Joint Info" 'at-show-joint-info dm-anim-tester-x-flag-func))
(debug-menu-append-item menu (new-dm-func "Free Floating cam" 'at-cam-free-floating dm-anim-tester-x-func))
(debug-menu-append-item menu (new-dm-func "Orbit cam" 'at-cam-orbit dm-anim-tester-x-func))
(new-dm-submenu "Anim Tester X" menu)
)
)
(defun dm-music-player-func ((lst object))
(kill-by-name 'dm-player *active-pool*)
(set! *progress-flava* -1)
(process-spawn-function process :name 'dm-player
(lambda :behavior process ((lst pair))
(loop
(suspend)
(set-setting! 'music (the-as symbol (car lst)) 0.0 0)
(set! *progress-flava* (the-as int (cdr lst)))
)
)
lst
)
)
(defun debug-menu-make-music-player-menu ((ctx debug-menu-context))
(let ((music-menu (new 'debug 'debug-menu ctx "Music player menu")))
(dotimes (i (-> *music-flava-name-list* length))
(let* ((flava-list (-> *music-flava-name-list* i))
(level-name (new 'debug 'string 30 (game-text-id->string (-> flava-list 0))))
(lvl-menu (new 'debug 'debug-menu ctx (the-as string #f)))
)
(dotimes (j (-> flava-list length))
(let ((flava-name (new 'debug 'string 30 (game-text-id->string (-> flava-list j)))))
(when (and (string= (substring! *temp-string* level-name (- (length level-name) 11) (length level-name)) "-level-name")
(string= (substring! *temp-string* flava-name (- (length flava-name) 11) (length flava-name)) "-level-name"))
(copy-string<-string flava-name (symbol->string (ref *music-list* i)))
)
(unless (string= flava-name "zero")
(debug-menu-append-item lvl-menu (new-dm-func flava-name (dcons (ref *music-list* i) j) dm-music-player-func))
)
)
)
(let ((menu-name (new 'debug 'string 30 (symbol->string (ref *music-list* i)))))
(debug-menu-append-item music-menu (new-dm-submenu menu-name lvl-menu))
)
)
)
(debug-menu-append-item music-menu (new-dm-func "Reset" #f (lambda () (kill-by-name 'dm-player *active-pool*) (set! *progress-flava* -1))))
(new-dm-submenu "Music player" music-menu)
)
)
(when (-> *debug-menu-context* root-menu)
(debug-menu-append-item (-> *debug-menu-context* root-menu) (debug-menu-make-load-menu *debug-menu-context*))
(debug-menu-append-item (-> *debug-menu-context* root-menu) (debug-menu-make-part-menu *debug-menu-context*))
(debug-menu-append-item (-> *debug-menu-context* root-menu) (debug-menu-make-entity-menu *debug-menu-context*))
;; Scene menu TODO
(debug-menu-append-item (-> *debug-menu-context* root-menu)
(debug-menu-make-from-template *debug-menu-context*
'(menu "PC Settings"
(flag "Debug" #f ,(dm-lambda-boolean-flag (-> *pc-settings* debug?)))
(flag "Use native vis" #f ,(dm-lambda-boolean-flag (-> *pc-settings* use-vis?)))
(function "Toggle game aspect" #f ,(lambda ()
(cond
((= (-> *setting-control* default aspect-ratio) 'aspect4x3)
(set! (-> *setting-control* default aspect-ratio) 'aspect16x9)
)
(else
(set! (-> *setting-control* default aspect-ratio) 'aspect4x3)
)
)
(set-aspect-ratio (-> *setting-control* default aspect-ratio))
))
(flag "Auto aspect" #f ,(dm-lambda-boolean-flag (-> *pc-settings* aspect-ratio-auto?)))
(menu "Aspect test"
(function "4 x 3" #f ,(lambda () (set-aspect! *pc-settings* 4 3)))
(function "16 x 9" #f ,(lambda () (set-aspect! *pc-settings* 16 9)))
(function "64 x 27 (21:9)" #f ,(lambda () (set-aspect! *pc-settings* 64 27)))
(function "16 x 10" #f ,(lambda () (set-aspect! *pc-settings* 16 10)))
(function "2 x 1" #f ,(lambda () (set-aspect! *pc-settings* 2 1)))
(function "37 x 20" #f ,(lambda () (set-aspect! *pc-settings* 37 20)))
(function "21 x 9" #f ,(lambda () (set-aspect! *pc-settings* 21 9)))
(function "64 x 18" #f ,(lambda () (set-aspect! *pc-settings* 64 18)))
(int-var "Custom aspect X" #f ,(dm-lambda-int-var (-> *pc-settings* aspect-custom-x)) 20 1 #t 1 1000)
(int-var "Custom aspect Y" #f ,(dm-lambda-int-var (-> *pc-settings* aspect-custom-y)) 20 1 #t 1 1000)
(function "Custom" #f ,(lambda () (set-aspect! *pc-settings* (-> *pc-settings* aspect-custom-x) (-> *pc-settings* aspect-custom-y))))
)
(menu "Fullscreen"
(function "Windowed" #f ,(lambda () (set-display-mode! *pc-settings* 'windowed)))
(function "Fullscreen" #f ,(lambda () (set-display-mode! *pc-settings* 'fullscreen)))
(function "Borderless" #f ,(lambda () (set-display-mode! *pc-settings* 'borderless)))
)
(menu "Sizes"
(function "640 x 480" #f ,(lambda () (set-size! *pc-settings* 640 480)))
(function "640 x 360" #f ,(lambda () (set-size! *pc-settings* 640 360)))
(function "720 x 540" #f ,(lambda () (set-size! *pc-settings* 720 540)))
(function "960 x 540" #f ,(lambda () (set-size! *pc-settings* 960 540)))
(function "800 x 600" #f ,(lambda () (set-size! *pc-settings* 800 600)))
(function "960 x 720" #f ,(lambda () (set-size! *pc-settings* 960 720)))
(function "1280 x 720" #f ,(lambda () (set-size! *pc-settings* 1280 720)))
(function "1024 x 768" #f ,(lambda () (set-size! *pc-settings* 1024 768)))
(function "1366 x 768" #f ,(lambda () (set-size! *pc-settings* 1366 768)))
(function "1280 x 960" #f ,(lambda () (set-size! *pc-settings* 1280 960)))
(function "1440 x 1080" #f ,(lambda () (set-size! *pc-settings* 1440 1080)))
(function "1920 x 1080" #f ,(lambda () (set-size! *pc-settings* 1920 1080)))
(function "1920 x 1440" #f ,(lambda () (set-size! *pc-settings* 1920 1440)))
(function "2560 x 1440" #f ,(lambda () (set-size! *pc-settings* 2560 1440)))
(function "2880 x 2160" #f ,(lambda () (set-size! *pc-settings* 2880 2160)))
(function "3840 x 2160" #f ,(lambda () (set-size! *pc-settings* 3840 2160)))
(function "512 x 224" #f ,(lambda () (set-size! *pc-settings* 512 224)))
(function "512 x 256" #f ,(lambda () (set-size! *pc-settings* 512 256)))
(function "512 x 448" #f ,(lambda () (set-size! *pc-settings* 512 448)))
(function "512 x 512" #f ,(lambda () (set-size! *pc-settings* 512 512)))
)
(menu "Secrets"
(menu "PC cheats"
(flag "Big head jak" #f ,(lambda (arg (msg debug-menu-msg))
(when (= msg (debug-menu-msg press))
(pc-cheat-toggle-and-tune (-> *pc-settings* cheats) big-head)
)
(pc-cheats? (-> *pc-settings* cheats) big-head)))
(flag "Small head jak" #f ,(lambda (arg (msg debug-menu-msg))
(when (= msg (debug-menu-msg press))
(pc-cheat-toggle-and-tune (-> *pc-settings* cheats) small-head)
)
(pc-cheats? (-> *pc-settings* cheats) small-head)))
(flag "Big fist jak" #f ,(lambda (arg (msg debug-menu-msg))
(when (= msg (debug-menu-msg press))
(pc-cheat-toggle-and-tune (-> *pc-settings* cheats) big-fist)
)
(pc-cheats? (-> *pc-settings* cheats) big-fist)))
(flag "Big head npcs" #f ,(lambda (arg (msg debug-menu-msg))
(when (= msg (debug-menu-msg press))
(pc-cheat-toggle-and-tune (-> *pc-settings* cheats) big-head-npc)
)
(pc-cheats? (-> *pc-settings* cheats) big-head-npc)))
(flag "Huge head jak" #f ,(lambda (arg (msg debug-menu-msg))
(when (= msg (debug-menu-msg press))
(pc-cheat-toggle-and-tune (-> *pc-settings* cheats) huge-head)
)
(pc-cheats? (-> *pc-settings* cheats) huge-head)))
(flag "Mirrored mode" #f ,(lambda (arg (msg debug-menu-msg))
(when (= msg (debug-menu-msg press))
(pc-cheat-toggle-and-tune (-> *pc-settings* cheats) mirror)
)
(pc-cheats? (-> *pc-settings* cheats) mirror)))
(flag "Blue eco" #f ,(lambda (arg (msg debug-menu-msg))
(when (= msg (debug-menu-msg press))
(logclear! (-> *pc-settings* cheats) (pc-cheats eco-red eco-yellow eco-green))
(pc-cheat-toggle-and-tune (-> *pc-settings* cheats) eco-blue)
)
(pc-cheats? (-> *pc-settings* cheats) eco-blue)))
(flag "Red eco" #f ,(lambda (arg (msg debug-menu-msg))
(when (= msg (debug-menu-msg press))
(logclear! (-> *pc-settings* cheats) (pc-cheats eco-blue eco-yellow eco-green))
(pc-cheat-toggle-and-tune (-> *pc-settings* cheats) eco-red)
)
(pc-cheats? (-> *pc-settings* cheats) eco-red)))
(flag "Green eco" #f ,(lambda (arg (msg debug-menu-msg))
(when (= msg (debug-menu-msg press))
(logclear! (-> *pc-settings* cheats) (pc-cheats eco-red eco-yellow eco-blue))
(pc-cheat-toggle-and-tune (-> *pc-settings* cheats) eco-green)
)
(pc-cheats? (-> *pc-settings* cheats) eco-green)))
(flag "Yellow eco" #f ,(lambda (arg (msg debug-menu-msg))
(when (= msg (debug-menu-msg press))
(logclear! (-> *pc-settings* cheats) (pc-cheats eco-red eco-blue eco-green))
(pc-cheat-toggle-and-tune (-> *pc-settings* cheats) eco-yellow)
)
(pc-cheats? (-> *pc-settings* cheats) eco-yellow)))
(flag "Invincibility" #f ,(lambda (arg (msg debug-menu-msg))
(when (= msg (debug-menu-msg press))
(logclear! (-> *target* state-flags) 16)
(pc-cheat-toggle-and-tune (-> *pc-settings* cheats) invinc)
)
(pc-cheats? (-> *pc-settings* cheats) invinc)))
(flag "Blue sidekick" #f ,(lambda (arg (msg debug-menu-msg))
(when (= msg (debug-menu-msg press))
(pc-cheat-toggle-and-tune (-> *pc-settings* cheats) sidekick-blue)
)
(pc-cheats? (-> *pc-settings* cheats) sidekick-blue)))
(flag "All flavas" #f ,(lambda (arg (msg debug-menu-msg))
(when (= msg (debug-menu-msg press))
(pc-cheat-toggle-and-tune (-> *pc-settings* cheats) tunes)
)
(pc-cheats? (-> *pc-settings* cheats) tunes)))
(flag "Real time tod" #f ,(lambda (arg (msg debug-menu-msg))
(when (= msg (debug-menu-msg press))
(pc-cheat-toggle-and-tune (-> *pc-settings* cheats) sky)
)
(pc-cheats? (-> *pc-settings* cheats) sky)))
(flag "No textures" #f ,(lambda (arg (msg debug-menu-msg))
(when (= msg (debug-menu-msg press))
(pc-cheat-toggle-and-tune (-> *pc-settings* cheats) no-tex)
)
(pc-cheats? (-> *pc-settings* cheats) no-tex)))
;; (flag "Hard rats" #f ,(lambda (arg (msg debug-menu-msg))
;; (when (= msg (debug-menu-msg press))
;; (pc-cheat-toggle-and-tune (-> *pc-settings* cheats) hard-rats)
;; )
;; (pc-cheats? (-> *pc-settings* cheats) hard-rats)))
;; (flag "Hero mode" #f ,(lambda (arg (msg debug-menu-msg))
;; (when (= msg (debug-menu-msg press))
;; (pc-cheat-toggle-and-tune (-> *pc-settings* cheats) hero-mode)
;; )
;; (pc-cheats? (-> *pc-settings* cheats) hero-mode)))
)
)
(flag "Letterbox" #f ,(dm-lambda-boolean-flag (-> *pc-settings* letterbox?)))
(flag "Skip movies" #f ,(dm-lambda-boolean-flag (-> *pc-settings* skip-movies?)))
(flag "Money starburst" #f ,(dm-lambda-boolean-flag (-> *pc-settings* money-starburst?)))
(flag "Subtitles" #f ,(dm-lambda-boolean-flag (-> *pc-settings* subtitles?)))
(flag "Hinttitles" #f ,(dm-lambda-boolean-flag (-> *pc-settings* hinttitles?)))
(menu "Subtitle speaker"
(flag "Off" #f dm-subtitle-setting)
(flag "On" #t dm-subtitle-setting)
(flag "Auto" auto dm-subtitle-setting)
)
(menu "Subtitle language"
(flag "english" 0 dm-subtitle-language)
(flag "french" 1 dm-subtitle-language)
(flag "german" 2 dm-subtitle-language)
(flag "spanish" 3 dm-subtitle-language)
(flag "uk-english" 6 dm-subtitle-language)
(flag "br-portuguese" 13 dm-subtitle-language)
)
(menu "Text language"
(flag "english" 0 dm-text-language)
(flag "french" 1 dm-text-language)
(flag "german" 2 dm-text-language)
(flag "spanish" 3 dm-text-language)
(flag "italian" 4 dm-text-language)
(flag "japanese" 5 dm-text-language)
(flag "uk-english" 6 dm-text-language)
(flag "br-portuguese" 13 dm-text-language)
)
(flag "Discord RPC" #t ,(dm-lambda-boolean-flag (-> *pc-settings* discord-rpc?)))
(flag "Speedrunner Mode" #t ,(dm-lambda-boolean-flag (-> *pc-settings* speedrunner-mode?)))
(menu "PS2 settings"
;(flag "PS2 Load speed" #f ,(dm-lambda-boolean-flag (-> *pc-settings* ps2-read-speed?)))
(flag "PS2 Particles" #f ,(dm-lambda-boolean-flag (-> *pc-settings* ps2-parts?)))
;(flag "PS2 Music" #f ,(dm-lambda-boolean-flag (-> *pc-settings* ps2-music?)))
;(flag "PS2 Sound effects" #f ,(dm-lambda-boolean-flag (-> *pc-settings* ps2-se?)))
;(flag "PS2 Hints" #f ,(dm-lambda-boolean-flag (-> *pc-settings* ps2-hints?)))
)
(menu "Level of detail"
(flag "PS2 LOD " #f ,(dm-lambda-boolean-flag (-> *pc-settings* ps2-lod-dist?)))
(flag "Force Envmap" #f ,(dm-lambda-boolean-flag (-> *pc-settings* force-envmap?)))
(int-var "LOD Tfrag" 0 dm-lod-int 0 1 #t 0 2)
(int-var "LOD Tie" 1 dm-lod-int 0 1 #t 0 3)
;(int-var "LOD Ocean" 2 dm-lod-int 0 1 #t 0 3)
(int-var "LOD Actor" 3 dm-lod-int 0 1 #t 0 3)
(function "Best quality" #f ,(lambda () (set! (-> *pc-settings* lod-force-tfrag) 0)
(set! (-> *pc-settings* lod-force-tie) 0)
;(set! (-> *pc-settings* lod-force-ocean) 0)
(set! (-> *pc-settings* lod-force-actor) 0)
))
(function "Worst quality" #f ,(lambda () (set! (-> *pc-settings* lod-force-tfrag) 2)
(set! (-> *pc-settings* lod-force-tie) 3)
;(set! (-> *pc-settings* lod-force-ocean) 2)
(set! (-> *pc-settings* lod-force-actor) 3)
))
)
(menu "Framerate"
(flag "60" #f ,(lambda (arg (msg debug-menu-msg)) (when (= msg (debug-menu-msg press)) (set-frame-rate! *pc-settings* 60))
(= (-> *pc-settings* target-fps) 60)))
(flag "100" #f ,(lambda (arg (msg debug-menu-msg)) (when (= msg (debug-menu-msg press)) (set-frame-rate! *pc-settings* 100))
(= (-> *pc-settings* target-fps) 100)))
(flag "150" #f ,(lambda (arg (msg debug-menu-msg)) (when (= msg (debug-menu-msg press)) (set-frame-rate! *pc-settings* 150))
(= (-> *pc-settings* target-fps) 150)))
)
(menu "MSAA"
(flag "Off" #f ,(lambda (arg (msg debug-menu-msg)) (when (= msg (debug-menu-msg press)) (set! (-> *pc-settings* gfx-msaa) 1))
(= (-> *pc-settings* gfx-msaa) 1)))
(flag "x2" #f ,(lambda (arg (msg debug-menu-msg)) (when (= msg (debug-menu-msg press)) (set! (-> *pc-settings* gfx-msaa) 2))
(= (-> *pc-settings* gfx-msaa) 2)))
(flag "x4" #f ,(lambda (arg (msg debug-menu-msg)) (when (= msg (debug-menu-msg press)) (set! (-> *pc-settings* gfx-msaa) 4))
(= (-> *pc-settings* gfx-msaa) 4)))
(flag "x8" #f ,(lambda (arg (msg debug-menu-msg)) (when (= msg (debug-menu-msg press)) (set! (-> *pc-settings* gfx-msaa) 8))
(= (-> *pc-settings* gfx-msaa) 8)))
(flag "x16" #f ,(lambda (arg (msg debug-menu-msg)) (when (= msg (debug-menu-msg press)) (set! (-> *pc-settings* gfx-msaa) 16))
(= (-> *pc-settings* gfx-msaa) 16)))
)
(flag "V-sync" #f ,(dm-lambda-boolean-flag (-> *pc-settings* vsync?)))
;(flag "Alt load boundaries" #f ,(dm-lambda-boolean-flag (-> *pc-settings* new-lb?)))
(flag "All actors" #f ,(dm-lambda-boolean-flag (-> *pc-settings* force-actors?)))
(flag "Display actor counts" #f ,(dm-lambda-boolean-flag (-> *pc-settings* display-actor-counts)))
(flag "Display git commit" #f ,(dm-lambda-boolean-flag (-> *pc-settings* display-sha)))
(flag "Extra hud elements" #f ,(dm-lambda-boolean-flag (-> *pc-settings* extra-hud?)))
(flag "Music fadein" #f ,(dm-lambda-boolean-flag (-> *pc-settings* music-fadein?)))
(flag "Music fadeout" #f ,(dm-lambda-boolean-flag (-> *pc-settings* music-fadeout?)))
(function "Reset" #f ,(lambda () (reset *pc-settings*)))
(function "Save" #f ,(lambda () (commit-to-file *pc-settings*)))
(function "Load" #f ,(lambda () (load-settings *pc-settings*)))
)
)
)
(let* ((prog-menu (new 'debug 'debug-menu *debug-menu-context* "Progress menu"))
(prog-menu-node (new-dm-submenu "Progress" prog-menu))
(other-menu-node
(debug-menu-make-from-template *debug-menu-context*
'(menu "Other"
(flag "DECI Count" *display-deci-count* dm-boolean-toggle-pick-func)
;(flag "Actor graph" *display-actor-graph* dm-boolean-toggle-pick-func)
(flag "Update vis outside bsp" *update-leaf-when-outside-bsp* dm-boolean-toggle-pick-func)
(flag "Pad display" #f ,(dm-lambda-boolean-flag (-> *pc-settings* debug-pad-display)))
(flag "Display actor bank" #f ,(dm-lambda-boolean-flag (-> *pc-settings* display-actor-bank)))
(flag "Heap status" #f ,(dm-lambda-boolean-flag (-> *pc-settings* display-heap-status)))
(flag "Bug report" #f ,(dm-lambda-boolean-flag (-> *pc-settings* display-bug-report)))
(flag "Text boxes" #f ,(dm-lambda-boolean-flag (-> *pc-settings* display-text-box)))
(flag "Sidekick stats" *display-sidekick-stats* dm-boolean-toggle-pick-func)
(float-var "Actor birth dist" #f ,(dm-lambda-meters-var (-> *ACTOR-bank* birth-dist)) 20 1 #t 0 10000 1)
(float-var "Actor pause dist" #f ,(dm-lambda-meters-var (-> *ACTOR-bank* pause-dist)) 20 1 #t 0 10000 1)
(menu "Mood override"
(function "-- SIMPLE OVERRIDE" #f nothing)
(flag "Palette 0" 0 dm-mood-override-palette-pick-func)
(flag "Palette 1" 1 dm-mood-override-palette-pick-func)
(flag "Palette 2" 2 dm-mood-override-palette-pick-func)
(flag "Palette 3" 3 dm-mood-override-palette-pick-func)
(flag "Palette 4" 4 dm-mood-override-palette-pick-func)
(flag "Palette 5" 5 dm-mood-override-palette-pick-func)
(flag "Palette 6" 6 dm-mood-override-palette-pick-func)
(flag "Palette 7" 7 dm-mood-override-palette-pick-func)
(menu "Advanced"
(flag "Overwrite" copy dm-mood-override-pick-func)
(flag "Multiply" mult dm-mood-override-pick-func)
(float-fixed-var "Palette 0 Amt" 0 dm-mood-palette-float 0 10 #t 0 1000 3)
(float-fixed-var "Palette 1 Amt" 1 dm-mood-palette-float 0 10 #t 0 1000 3)
(float-fixed-var "Palette 2 Amt" 2 dm-mood-palette-float 0 10 #t 0 1000 3)
(float-fixed-var "Palette 3 Amt" 3 dm-mood-palette-float 0 10 #t 0 1000 3)
(float-fixed-var "Palette 4 Amt" 4 dm-mood-palette-float 0 10 #t 0 1000 3)
(float-fixed-var "Palette 5 Amt" 5 dm-mood-palette-float 0 10 #t 0 1000 3)
(float-fixed-var "Palette 6 Amt" 6 dm-mood-palette-float 0 10 #t 0 1000 3)
(float-fixed-var "Palette 7 Amt" 7 dm-mood-palette-float 0 10 #t 0 1000 3)
)
)
(flag "Joint names" *display-joint-names* dm-boolean-toggle-pick-func)
(flag "Bone lines" *display-bones* dm-boolean-toggle-pick-func)
)
))
(other-menu (-> (the-as debug-menu-item-submenu other-menu-node) submenu))
)
(dotimes (i (progress-screen max))
(debug-menu-append-item prog-menu
(new-dm-func (new 'debug 'string 0 (enum->string progress-screen i)) i
(lambda ((val progress-screen))
(activate-progress *dproc* val)
(set-master-mode 'progress)
)
))
)
(debug-menu-append-item other-menu prog-menu-node)
(debug-menu-append-item (-> *debug-menu-context* root-menu) other-menu-node)
)
(debug-menu-append-item (-> (the debug-menu-item-submenu (ref (-> *debug-menu-context* root-menu items) 4)) submenu)
(debug-menu-make-collision-renderer-menu *debug-menu-context*))
(debug-menu-append-item (-> (the debug-menu-item-submenu (car (-> *debug-menu-context* root-menu items))) submenu)
(debug-menu-make-anim-tester-x-menu *debug-menu-context*))
(debug-menu-append-item (-> (the debug-menu-item-submenu (ref (-> (the debug-menu-item-submenu (ref (-> *debug-menu-context* root-menu items) 19)) submenu items) 7)) submenu)
(debug-menu-make-music-player-menu *debug-menu-context*))
)
(defun bg-custom ((level-name symbol))
"Modified version of bg for the PC Port custom levels."
;; lookup info
(format 0 "(bg-custom ~A)%" level-name)
(let ((lev-info (lookup-level-info level-name)))
(when (= lev-info default-level)
(format 0 "Unable to (bg-custom ~A), the level was not found in *level-load-list*~%" level-name)
(return #f)
)
;; kill jak (rip)
(format 0 "doing stop~%")
(stop 'play)
;; kill levels
(dotimes (i 2)
(unload! (-> *level* data i))
)
;; enable visiblity. the custom level won't use it, but we want it on so other levels can be loaded.
(set! (-> *level* vis?) #t)
;; disable border and play mode to prevent loading levels
(set! (-> *level* border?) #f)
(set! (-> *setting-control* default border-mode) #f)
(set! (-> *level* play?) #f)
;; disable actor vis
(set! *vis-actors* #f)
(format 0 "doing level load~%")
;; allocate level. This may start the loading process, but won't finish it.
(let ((lev (level-get-for-use *level* level-name 'active)))
(when (not lev)
(format 0 "Unable to load level, could not level-get-for-use~%")
(return #f)
)
(format 0 "about to start load loop, game will freeze and hopefully come back soon~%")
;; spin in a loop and load it. This will cause the game to freeze during the load,
;; but this is good enough for now.
(while (or (= (-> lev status) 'loading)
(= (-> lev status) 'loading-bt)
(= (-> lev status) 'login)
)
(load-continue lev)
)
(when (not (-> lev info continues))
(format 0 "level info has no continues, can't load it.~%")
)
(let ((cont (car (-> lev info continues))))
(start 'play (the continue-point cont))
)
(vis-load lev)
(set! (-> lev all-visible?) #f)
(set! (-> lev force-all-visible?) #t)
;; reset things
;(initialize! *game-info* 'game (the-as game-save #f) (the-as string #f))
)
)
)
)
)