mirror of
https://github.com/open-goal/jak-project
synced 2026-09-06 03:08:29 -04:00
[runtime] pckernel implementation (#1032)
* toggle for ripping level models * Create pckernel.gc * builds and works * fix defs * resolution info works * native letterboxing * menu * Fullscreen buttons * Update glfw * fix fullscreen taking over everything for some reason * fix screenshots and add more menu options * Cleanup DMA mess in load boundary render code (first try!!) * Update default-menu.gc * clang * fix accidental macros in pairs * refs * fix null reference bugs * add lavatube * custom aspect ratios work (3D only) * custom aspect ratios work (3D only) * fix aspect ratio and non-4x3 debug text * change `sceOpen` * deadzone setting * merge fixes * check out `debug-pad-display` * update readme imgs * settings save works * oops * settings read/load (incomplete) * add `:stop` to debugger and fix detach on Windows * settings load works * fullscreen and aspect ratio setting fixes * swap menu options for convenience * settings loads automatically properly * fix panic and font hack edge case * add rolling, ogre, snow, swamp, sunken b, jungle b * Fixed borderless on windows please work * Update fake_iso.txt * remove error from opengl debug filter * update refs * minor tfrag tod palette lookup change * accidentally nuked all opengl errors
This commit is contained in:
@@ -894,31 +894,11 @@
|
||||
(set! (-> gp-0 0 x) (* (sin (-> arg0 stick0-dir)) (-> arg0 stick0-speed)))
|
||||
(set! (-> gp-0 0 y) (* (cos (-> arg0 stick0-dir)) (-> arg0 stick0-speed)))
|
||||
(dotimes (s5-1 32)
|
||||
(let* ((s3-0 (-> (current-frame) debug-buf))
|
||||
(s4-0 (-> s3-0 base))
|
||||
)
|
||||
(draw-sprite2d-xy
|
||||
s3-0
|
||||
(the int (* 120.0 (-> gp-0 s5-1 x)))
|
||||
(the int (* 144.0 (-> gp-0 s5-1 y)))
|
||||
10
|
||||
10
|
||||
(new 'static 'rgba :a #x80 :r (- 255 (* 7 s5-1)))
|
||||
)
|
||||
(let ((a3-1 (-> s3-0 base)))
|
||||
(let ((v1-12 (the-as dma-packet (-> s3-0 base))))
|
||||
(set! (-> v1-12 dma) (new 'static 'dma-tag :id (dma-tag-id next)))
|
||||
(set! (-> v1-12 vif0) (new 'static 'vif-tag))
|
||||
(set! (-> v1-12 vif1) (new 'static 'vif-tag))
|
||||
(set! (-> s3-0 base) (&+ (the-as pointer v1-12) 16))
|
||||
)
|
||||
(dma-bucket-insert-tag
|
||||
(-> (current-frame) bucket-group)
|
||||
(bucket-id debug-draw0)
|
||||
s4-0
|
||||
(the-as (pointer dma-tag) a3-1)
|
||||
)
|
||||
)
|
||||
(with-dma-buffer-add-bucket ((s3-0 (-> (current-frame) debug-buf)) (bucket-id debug-draw0))
|
||||
(draw-sprite2d-xy s3-0
|
||||
(the int (* 120.0 (-> gp-0 s5-1 x)))
|
||||
(the int (* 144.0 (-> gp-0 s5-1 y)))
|
||||
10 10 (new 'static 'rgba :a #x80 :r (- 255 (* 7 s5-1))))
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
@@ -5,8 +5,6 @@
|
||||
;; name in dgo: default-menu
|
||||
;; dgos: GAME, ENGINE
|
||||
|
||||
(declare-file (debug))
|
||||
|
||||
;; Forward declarations for stuff we haven't written yet:
|
||||
(define-extern *edit-instance* string)
|
||||
|
||||
@@ -16,12 +14,13 @@
|
||||
;; 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-debug dm-cam-mode-func ((arg0 (state camera-slave)) (arg1 debug-menu-msg))
|
||||
(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*)
|
||||
)
|
||||
@@ -31,7 +30,7 @@
|
||||
)
|
||||
)
|
||||
|
||||
(defun-debug dm-cam-settings-func ((arg0 int) (arg1 debug-menu-msg))
|
||||
(defun dm-cam-settings-func ((arg0 int) (arg1 debug-menu-msg))
|
||||
(when (and (= arg1 (debug-menu-msg press)) *camera*)
|
||||
(cond
|
||||
((zero? arg0)
|
||||
@@ -137,7 +136,7 @@
|
||||
)
|
||||
)
|
||||
|
||||
(defun-debug dm-cam-settings-func-int ((arg0 int) (arg1 debug-menu-msg) (arg2 int) (arg3 int))
|
||||
(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)
|
||||
@@ -156,7 +155,7 @@
|
||||
)
|
||||
)
|
||||
|
||||
(defun-debug dm-cam-externalize ((arg0 symbol) (arg1 debug-menu-msg))
|
||||
(defun dm-cam-externalize ((arg0 symbol) (arg1 debug-menu-msg))
|
||||
(when (= arg1 (debug-menu-msg press))
|
||||
(cond
|
||||
((= arg0 'reset)
|
||||
@@ -184,7 +183,7 @@
|
||||
)
|
||||
)
|
||||
|
||||
(defun-debug dm-cam-render-float ((arg0 int) (arg1 debug-menu-msg) (arg2 float) (arg3 float))
|
||||
(defun dm-cam-render-float ((arg0 int) (arg1 debug-menu-msg) (arg2 float) (arg3 float))
|
||||
(with-pp
|
||||
(when (= arg1 (debug-menu-msg press))
|
||||
(cond
|
||||
@@ -243,7 +242,7 @@
|
||||
)
|
||||
)
|
||||
|
||||
(defun-debug dm-subdiv-float ((arg0 symbol) (arg1 debug-menu-msg) (arg2 float) (arg3 float))
|
||||
(defun dm-subdiv-float ((arg0 symbol) (arg1 debug-menu-msg) (arg2 float) (arg3 float))
|
||||
(when (= arg1 (debug-menu-msg press))
|
||||
(case arg0
|
||||
(('close)
|
||||
@@ -277,7 +276,7 @@
|
||||
)
|
||||
)
|
||||
|
||||
(defun-debug dm-subdiv-int ((arg0 symbol) (arg1 debug-menu-msg) (arg2 int) (arg3 int))
|
||||
(defun dm-subdiv-int ((arg0 symbol) (arg1 debug-menu-msg) (arg2 int) (arg3 int))
|
||||
(when (= arg1 (debug-menu-msg press))
|
||||
(case arg0
|
||||
(('anim-speed)
|
||||
@@ -300,35 +299,35 @@
|
||||
)
|
||||
)
|
||||
|
||||
(defun-debug dm-setting-language ((arg0 int) (arg1 debug-menu-msg))
|
||||
(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-debug dm-current-continue ((arg0 string) (arg1 debug-menu-msg))
|
||||
(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-debug dm-subdiv-draw-func ((arg0 int) (arg1 debug-menu-msg))
|
||||
(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-debug dm-ocean-subdiv-draw-func ((arg0 int) (arg1 debug-menu-msg))
|
||||
(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-debug dm-time-of-day-func ((arg0 int) (arg1 debug-menu-msg))
|
||||
(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)
|
||||
@@ -376,7 +375,7 @@
|
||||
(= (/ arg0 8) *time-of-day-mode*)
|
||||
)
|
||||
|
||||
(defun-debug dm-time-of-day-func2 ((arg0 (pointer symbol)) (arg1 debug-menu-msg))
|
||||
(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)
|
||||
@@ -389,89 +388,89 @@
|
||||
(-> arg0 0)
|
||||
)
|
||||
|
||||
(defun-debug dm-boolean-toggle-pick-func ((arg0 (pointer symbol)) (arg1 debug-menu-msg))
|
||||
(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-debug dm-time-of-day-pick-func ((arg0 symbol) (arg1 debug-menu-msg))
|
||||
(defun dm-time-of-day-pick-func ((arg0 symbol) (arg1 debug-menu-msg))
|
||||
(time-of-day-setup (= arg1 (debug-menu-msg press)))
|
||||
(none)
|
||||
)
|
||||
|
||||
(defun-debug dm-actor-marks-pick-func ((arg0 symbol) (arg1 debug-menu-msg))
|
||||
(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-debug dm-compact-actor-pick-func ((arg0 symbol) (arg1 debug-menu-msg))
|
||||
(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-debug dm-actor-vis-pick-func ((arg0 symbol) (arg1 debug-menu-msg))
|
||||
(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-debug dm-game-mode-pick-func ((arg0 symbol) (arg1 debug-menu-msg))
|
||||
(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-debug dm-vu1-user-toggle-pick-func ((arg0 vu1-renderer-mask) (arg1 debug-menu-msg))
|
||||
(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-debug dm-vu1-user-set-pick-func ((arg0 vu1-renderer-mask) (arg1 debug-menu-msg))
|
||||
(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-debug dm-texture-user-toggle-pick-func ((arg0 int) (arg1 debug-menu-msg))
|
||||
(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-debug dm-texture-user-set-pick-func ((arg0 int) (arg1 debug-menu-msg))
|
||||
(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-debug dm-strip-lines-toggle-pick-func ((arg0 int) (arg1 debug-menu-msg))
|
||||
(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-debug dm-strip-lines-set-pick-func ((arg0 int) (arg1 debug-menu-msg))
|
||||
(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-debug dm-edit-instance-toggle-pick-func ((arg0 int) (arg1 debug-menu-msg))
|
||||
(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))
|
||||
@@ -482,7 +481,7 @@
|
||||
)
|
||||
)
|
||||
|
||||
(defun-debug all-texture-tweak-adjust ((arg0 texture-page-dir) (arg1 float))
|
||||
(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)))
|
||||
@@ -508,11 +507,11 @@
|
||||
(none)
|
||||
)
|
||||
|
||||
(defun-debug debug-menu-node<? ((arg0 debug-menu-node) (arg1 debug-menu-node))
|
||||
(defun debug-menu-node<? ((arg0 debug-menu-node) (arg1 debug-menu-node))
|
||||
(string<=? (-> arg0 name) (-> arg1 name))
|
||||
)
|
||||
|
||||
(defun-debug dm-shader-pick-func ((arg0 texture-id) (arg1 debug-menu-msg))
|
||||
(defun dm-shader-pick-func ((arg0 texture-id) (arg1 debug-menu-msg))
|
||||
(if (and
|
||||
(= arg1 (debug-menu-msg press))
|
||||
*texture-page-dir*
|
||||
@@ -527,7 +526,7 @@
|
||||
|
||||
(define *shader-pick-menu* (the-as debug-menu #f))
|
||||
|
||||
(defun-debug build-shader-list ()
|
||||
(defun build-shader-list ()
|
||||
(debug-menu-remove-all-items *shader-pick-menu*)
|
||||
(when *texture-page-dir*
|
||||
(dotimes (gp-0 (-> *texture-page-dir* length))
|
||||
@@ -560,7 +559,7 @@
|
||||
)
|
||||
)
|
||||
|
||||
(defun-debug dm-instance-pick-func ((arg0 string) (arg1 debug-menu-msg))
|
||||
(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)
|
||||
@@ -570,7 +569,7 @@
|
||||
(and *edit-instance* (string= arg0 *edit-instance*))
|
||||
)
|
||||
|
||||
(defun-debug dm-enable-instance-func ((arg0 string) (arg1 debug-menu-msg))
|
||||
(defun dm-enable-instance-func ((arg0 string) (arg1 debug-menu-msg))
|
||||
(let ((v1-0 (find-instance-by-name arg0)))
|
||||
(cond
|
||||
(v1-0
|
||||
@@ -592,7 +591,7 @@
|
||||
|
||||
(define *enable-instance-tie-menu* (the-as debug-menu #f))
|
||||
|
||||
(defun-debug build-instance-list ((arg0 object))
|
||||
(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*)
|
||||
@@ -689,10 +688,10 @@
|
||||
(none)
|
||||
)
|
||||
|
||||
(defun-debug debug-create-cam-restore ()
|
||||
(defun debug-create-cam-restore ()
|
||||
(cond
|
||||
(*math-camera*
|
||||
(format #t "(defun-debug cam-restore ()~%")
|
||||
(format #t "(defun 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)))~%")
|
||||
@@ -775,7 +774,7 @@
|
||||
(none)
|
||||
)
|
||||
|
||||
(defun-debug debug-menu-make-camera-mode-menu ((arg0 debug-menu) (arg1 debug-menu))
|
||||
(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)
|
||||
@@ -846,7 +845,7 @@
|
||||
(none)
|
||||
)
|
||||
|
||||
(defun-debug debug-menu-make-camera-menu ((arg0 debug-menu-context))
|
||||
(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))
|
||||
)
|
||||
@@ -1055,7 +1054,7 @@
|
||||
)
|
||||
)
|
||||
|
||||
(defun-debug debug-menu-make-shader-menu ((arg0 debug-menu-context))
|
||||
(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))
|
||||
)
|
||||
@@ -1966,7 +1965,7 @@
|
||||
)
|
||||
)
|
||||
|
||||
(defun-debug debug-menu-make-instance-menu ((arg0 debug-menu-context))
|
||||
(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))
|
||||
)
|
||||
@@ -2071,7 +2070,7 @@
|
||||
)
|
||||
)
|
||||
|
||||
(defun-debug dm-task-unknown ((arg0 int) (arg1 debug-menu-msg))
|
||||
(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)
|
||||
@@ -2083,7 +2082,7 @@
|
||||
)
|
||||
)
|
||||
|
||||
(defun-debug dm-task-hint ((arg0 int) (arg1 debug-menu-msg))
|
||||
(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)
|
||||
@@ -2095,7 +2094,7 @@
|
||||
)
|
||||
)
|
||||
|
||||
(defun-debug dm-task-introduction ((arg0 int) (arg1 debug-menu-msg))
|
||||
(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)
|
||||
@@ -2107,7 +2106,7 @@
|
||||
)
|
||||
)
|
||||
|
||||
(defun-debug dm-task-reminder-a ((arg0 int) (arg1 debug-menu-msg))
|
||||
(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)
|
||||
@@ -2119,7 +2118,7 @@
|
||||
)
|
||||
)
|
||||
|
||||
(defun-debug dm-task-reminder ((arg0 int) (arg1 debug-menu-msg))
|
||||
(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)
|
||||
@@ -2131,7 +2130,7 @@
|
||||
)
|
||||
)
|
||||
|
||||
(defun-debug dm-task-reward-speech ((arg0 int) (arg1 debug-menu-msg))
|
||||
(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)
|
||||
@@ -2143,7 +2142,7 @@
|
||||
)
|
||||
)
|
||||
|
||||
(defun-debug dm-task-resolution ((arg0 int) (arg1 debug-menu-msg))
|
||||
(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)
|
||||
@@ -2156,7 +2155,7 @@
|
||||
)
|
||||
)
|
||||
|
||||
(defun-debug debug-menu-make-task-unknown-menu ((arg0 debug-menu) (arg1 debug-menu-context))
|
||||
(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
|
||||
@@ -2291,7 +2290,7 @@
|
||||
(none)
|
||||
)
|
||||
|
||||
(defun-debug debug-menu-make-task-need-hint-menu ((arg0 debug-menu) (arg1 debug-menu-context))
|
||||
(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
|
||||
@@ -2426,7 +2425,7 @@
|
||||
(none)
|
||||
)
|
||||
|
||||
(defun-debug debug-menu-make-task-need-introduction-menu ((arg0 debug-menu) (arg1 debug-menu-context))
|
||||
(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
|
||||
@@ -2561,7 +2560,7 @@
|
||||
(none)
|
||||
)
|
||||
|
||||
(defun-debug debug-menu-make-task-need-reminder-a-menu ((arg0 debug-menu) (arg1 debug-menu-context))
|
||||
(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
|
||||
@@ -2696,7 +2695,7 @@
|
||||
(none)
|
||||
)
|
||||
|
||||
(defun-debug debug-menu-make-task-need-reminder-menu ((arg0 debug-menu) (arg1 debug-menu-context))
|
||||
(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
|
||||
@@ -2831,7 +2830,7 @@
|
||||
(none)
|
||||
)
|
||||
|
||||
(defun-debug debug-menu-make-task-need-reward-speech-menu ((arg0 debug-menu) (arg1 debug-menu-context))
|
||||
(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
|
||||
@@ -2966,7 +2965,7 @@
|
||||
(none)
|
||||
)
|
||||
|
||||
(defun-debug debug-menu-make-task-need-resolution-menu ((arg0 debug-menu) (arg1 debug-menu-context))
|
||||
(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
|
||||
@@ -3101,7 +3100,7 @@
|
||||
(none)
|
||||
)
|
||||
|
||||
(defun-debug dm-task-get-money ((arg0 int) (arg1 debug-menu-msg))
|
||||
(defun dm-task-get-money ((arg0 int) (arg1 debug-menu-msg))
|
||||
(with-pp
|
||||
(if (= arg1 (debug-menu-msg press))
|
||||
(send-event *target* 'get-pickup 5 (-> *GAME-bank* money-task-inc))
|
||||
@@ -3117,7 +3116,7 @@
|
||||
)
|
||||
)
|
||||
|
||||
(defun-debug dm-give-all-cells ((arg0 int) (arg1 debug-menu-msg))
|
||||
(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)))
|
||||
@@ -3132,13 +3131,13 @@
|
||||
#t
|
||||
)
|
||||
|
||||
(defun-debug dm-give-cell ((arg0 game-task))
|
||||
(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-debug dm-levitator-ready ((arg0 int) (arg1 debug-menu-msg))
|
||||
(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))
|
||||
@@ -3192,7 +3191,7 @@
|
||||
(= (get-task-status (game-task village2-levitator)) (task-status need-reward-speech))
|
||||
)
|
||||
|
||||
(defun-debug dm-lavabike-ready ((arg0 int) (arg1 debug-menu-msg))
|
||||
(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))
|
||||
@@ -3273,7 +3272,7 @@
|
||||
(= (get-task-status (game-task lavatube-start)) (task-status need-reward-speech))
|
||||
)
|
||||
|
||||
(defun-debug debug-menu-make-task-menu ((arg0 debug-menu-context))
|
||||
(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))
|
||||
)
|
||||
@@ -3292,7 +3291,7 @@
|
||||
)
|
||||
)
|
||||
|
||||
(defun-debug dm-anim-tester-flag-func ((arg0 int) (arg1 debug-menu-msg))
|
||||
(defun dm-anim-tester-flag-func ((arg0 int) (arg1 debug-menu-msg))
|
||||
(when *anim-tester*
|
||||
(case arg0
|
||||
(('at-apply-align)
|
||||
@@ -3312,7 +3311,7 @@
|
||||
#f
|
||||
)
|
||||
|
||||
(defun-debug dm-anim-tester-func ((arg0 int) (arg1 debug-menu-msg))
|
||||
(defun dm-anim-tester-func ((arg0 int) (arg1 debug-menu-msg))
|
||||
(if (not *anim-tester*)
|
||||
(anim-tester-start)
|
||||
)
|
||||
@@ -3345,7 +3344,7 @@
|
||||
(none)
|
||||
)
|
||||
|
||||
(defun-debug build-continue-menu ((arg0 debug-menu) (arg1 game-info))
|
||||
(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)))
|
||||
@@ -3364,7 +3363,7 @@
|
||||
(the-as debug-menu-context arg0)
|
||||
)
|
||||
|
||||
(defun-debug debug-menu-context-make-default-menus ((arg0 debug-menu-context))
|
||||
(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
|
||||
@@ -3894,7 +3893,7 @@
|
||||
|
||||
(define *popup-menu-context* (new 'debug 'debug-menu-context))
|
||||
|
||||
(defun-debug popup-menu-context-make-default-menus ((arg0 debug-menu-context))
|
||||
(defun popup-menu-context-make-default-menus ((arg0 debug-menu-context))
|
||||
(debug-menu-make-from-template
|
||||
arg0
|
||||
'(main-menu
|
||||
@@ -3951,7 +3950,7 @@
|
||||
|
||||
(popup-menu-context-make-default-menus *popup-menu-context*)
|
||||
|
||||
(defun-debug menu-respond-to-pause ()
|
||||
(defun menu-respond-to-pause ()
|
||||
(case *master-mode*
|
||||
(('menu)
|
||||
(if (cpad-hold? 0 l3)
|
||||
@@ -3967,12 +3966,12 @@
|
||||
#f
|
||||
)
|
||||
|
||||
(defun-debug *menu-hook* ()
|
||||
(defun *menu-hook* ()
|
||||
(debug-menus-handler *debug-menu-context*)
|
||||
(debug-menus-handler *popup-menu-context*)
|
||||
)
|
||||
|
||||
(#when (user? dass)
|
||||
(#when PC_PORT
|
||||
|
||||
(defmacro new-dm-function (text var func)
|
||||
`(new 'debug 'debug-menu-item-function ,text ,var (the-as (function int object) ,func))
|
||||
@@ -3987,7 +3986,7 @@
|
||||
`(new 'debug 'debug-menu-item-submenu ,text ,menu)
|
||||
)
|
||||
|
||||
(defun-debug dm-want-level-toggle-pick-func ((arg0 pair) (arg1 debug-menu-msg))
|
||||
(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)))
|
||||
@@ -4006,7 +4005,7 @@
|
||||
)
|
||||
)
|
||||
|
||||
(defun-debug dm-display-level-toggle-pick-func ((arg0 symbol) (arg1 debug-menu-msg))
|
||||
(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)
|
||||
@@ -4022,7 +4021,7 @@
|
||||
)
|
||||
)
|
||||
|
||||
(defun-debug debug-menu-make-load-want-menu ((ctx debug-menu-context) (lev-idx int))
|
||||
(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")))
|
||||
|
||||
@@ -4038,7 +4037,7 @@
|
||||
)
|
||||
)
|
||||
|
||||
(defun-debug debug-menu-make-load-display-menu ((ctx debug-menu-context))
|
||||
(defun debug-menu-make-load-display-menu ((ctx debug-menu-context))
|
||||
|
||||
(let ((display-menu (new 'debug 'debug-menu ctx "Level display menu")))
|
||||
|
||||
@@ -4054,7 +4053,7 @@
|
||||
)
|
||||
)
|
||||
|
||||
(defun-debug debug-menu-make-load-teleport-menu ((ctx debug-menu-context))
|
||||
(defun debug-menu-make-load-teleport-menu ((ctx debug-menu-context))
|
||||
|
||||
(let ((teleport-menu (new 'debug 'debug-menu ctx "Camera teleport menu")))
|
||||
|
||||
@@ -4083,9 +4082,19 @@
|
||||
)
|
||||
)
|
||||
|
||||
(defun-debug debug-menu-make-load-menu ((ctx debug-menu-context))
|
||||
(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
|
||||
@@ -4096,14 +4105,167 @@
|
||||
)
|
||||
)
|
||||
|
||||
(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-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-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)
|
||||
)
|
||||
)
|
||||
|
||||
(when (-> *debug-menu-context* root-menu)
|
||||
(debug-menu-append-item (-> *debug-menu-context* root-menu) (debug-menu-make-load-menu *debug-menu-context*))
|
||||
;; Entity menu TODO
|
||||
;; Music menu TODO
|
||||
;; Secrets menu TODO
|
||||
;; Scene menu TODO
|
||||
;; PC Settings menu TODO
|
||||
;; Other 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-aspect-ratio 'aspect16x9)
|
||||
(set! (-> *setting-control* default aspect-ratio) 'aspect16x9)
|
||||
)
|
||||
(else
|
||||
(set-aspect-ratio 'aspect4x3)
|
||||
(set! (-> *setting-control* default aspect-ratio) 'aspect4x3)
|
||||
)
|
||||
)
|
||||
))
|
||||
(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-fullscreen! *pc-settings* #f)))
|
||||
(function "Fullscreen" #f (lambda () (set-fullscreen! *pc-settings* #t)))
|
||||
(function "Borderless" #f (lambda () (set-fullscreen! *pc-settings* 'borderless)))
|
||||
)
|
||||
(menu "Sizes"
|
||||
(function "640 x 480" #f (lambda () (set-size! *pc-settings* 640 480)))
|
||||
(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)))
|
||||
)
|
||||
(flag "Letterbox" #f (dm-lambda-boolean-flag (-> *pc-settings* letterbox?)))
|
||||
(flag "Skip movies" #f (dm-lambda-boolean-flag (-> *pc-settings* skip-movies?)))
|
||||
(flag "Subtitles" #f (dm-lambda-boolean-flag (-> *pc-settings* subtitles?)))
|
||||
(flag "Hinttitles" #f (dm-lambda-boolean-flag (-> *pc-settings* hinttitles?)))
|
||||
(menu "Game fixes"
|
||||
(flag "sagecage crash" #f (dm-lambda-boolean-flag (-> *pc-settings* fixes crash-sagecage)))
|
||||
(flag "memory crash" #f (dm-lambda-boolean-flag (-> *pc-settings* fixes crash-dma)))
|
||||
(flag "light eco crash" #f (dm-lambda-boolean-flag (-> *pc-settings* fixes crash-light-eco)))
|
||||
(flag "softlock pelican" #f (dm-lambda-boolean-flag (-> *pc-settings* fixes lockout-pelican)))
|
||||
(flag "softlock pipegame" #f (dm-lambda-boolean-flag (-> *pc-settings* fixes lockout-pipegame)))
|
||||
(flag "softlock gambler" #f (dm-lambda-boolean-flag (-> *pc-settings* fixes lockout-gambler)))
|
||||
(flag "fix movies" #f (dm-lambda-boolean-flag (-> *pc-settings* fixes fix-movies)))
|
||||
(flag "fix credits" #f (dm-lambda-boolean-flag (-> *pc-settings* fixes fix-credits)))
|
||||
)
|
||||
(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?)))
|
||||
(int-var "LOD Tfrag" 0 dm-lod-int 0 1 #t 0 3)
|
||||
(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)
|
||||
)
|
||||
;(flag "Alt load boundaries" #f (dm-lambda-boolean-flag (-> *pc-settings* new-lb?)))
|
||||
(flag "Display actor bank" #f (dm-lambda-boolean-flag (-> *pc-settings* display-actor-bank)))
|
||||
(flag "Pad display" #f (dm-lambda-boolean-flag (-> *pc-settings* debug-pad-display)))
|
||||
(function "Reset" #f (lambda () (reset *pc-settings*)))
|
||||
(function "Save" #f (lambda () (write-to-file *pc-settings* PC_SETTINGS_FILE_NAME)))
|
||||
(function "Load" #f (lambda () (read-from-file *pc-settings* PC_SETTINGS_FILE_NAME)))
|
||||
)
|
||||
)
|
||||
)
|
||||
(debug-menu-append-item (-> *debug-menu-context* root-menu)
|
||||
(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)
|
||||
(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)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
)
|
||||
|
||||
@@ -355,7 +355,7 @@
|
||||
(set! (-> item fval) range-min)
|
||||
(set! (-> item fval) 0.0)
|
||||
)
|
||||
|
||||
|
||||
;; note: the return value of the callback is treated as an integer and int->float converted. This is a bug in the original code.
|
||||
(if callback
|
||||
(set! (-> item fval)
|
||||
@@ -375,7 +375,7 @@
|
||||
(set! (-> gp-0 refresh-delay) 31)
|
||||
(set! (-> gp-0 refresh-ctr) (-> gp-0 refresh-delay))
|
||||
(set! (-> gp-0 id) id)
|
||||
(set! max-chars
|
||||
(set! max-chars
|
||||
(if (< 3 max-chars)
|
||||
max-chars
|
||||
3
|
||||
@@ -443,7 +443,7 @@
|
||||
(defun debug-menu-context-default-selection ((ctxt debug-menu-context) (keep-current symbol))
|
||||
"Set the menu to a default selection.
|
||||
If keep-current-selection is set to #t, this will only change the selection if nothing is selected yet."
|
||||
|
||||
|
||||
;; sel-length = 0 means nothing is selected
|
||||
(when (or (zero? (-> ctxt sel-length)) (not keep-current))
|
||||
(let ((menu (-> ctxt root-menu)))
|
||||
@@ -502,7 +502,7 @@
|
||||
|
||||
(defun debug-menu-context-set-root-menu ((context debug-menu-context) (menu debug-menu))
|
||||
"Set the root menu and reset everything."
|
||||
|
||||
|
||||
;; deactivate, if we are active
|
||||
(let ((active (-> context is-active)))
|
||||
(if active
|
||||
@@ -512,7 +512,7 @@
|
||||
;; reset
|
||||
(debug-menu-context-default-selection context #f)
|
||||
;; activate if needed
|
||||
(if active
|
||||
(if active
|
||||
(debug-menu-context-send-msg context (debug-menu-msg activate) (debug-menu-dest activation))
|
||||
)
|
||||
)
|
||||
@@ -559,7 +559,7 @@
|
||||
(defun debug-menu-func-decode ((arg0 object))
|
||||
"Get a function. The input can be a symbol or a function. Otherwise it will give you the nothing function."
|
||||
(let ((v1-1 (rtype-of arg0)))
|
||||
(the-as function
|
||||
(the-as function
|
||||
(cond
|
||||
((or (= v1-1 symbol) (= v1-1 type))
|
||||
(-> (the-as symbol arg0) value)
|
||||
@@ -637,14 +637,14 @@
|
||||
(else
|
||||
(set! s5-0 (cond
|
||||
((= s4-0 'flag)
|
||||
(new 'debug 'debug-menu-item-flag
|
||||
(new 'debug 'debug-menu-item-flag
|
||||
s5-1
|
||||
(the-as int (caddr arg1))
|
||||
(the (function int debug-menu-msg object) (debug-menu-func-decode (cadddr arg1)))
|
||||
)
|
||||
)
|
||||
((or (= s4-0 0) (= s4-0 'function))
|
||||
(new 'debug 'debug-menu-item-function
|
||||
(new 'debug 'debug-menu-item-function
|
||||
s5-1
|
||||
(the-as int (caddr arg1))
|
||||
(the (function int object) (debug-menu-func-decode (cadddr arg1)))
|
||||
@@ -667,11 +667,12 @@
|
||||
(/ (the-as int (ref arg1 8)) 8)
|
||||
(= s4-0 'hex-var)
|
||||
)
|
||||
(set! (-> (the-as debug-menu-item-var s5-0) ifloat-p) #t)
|
||||
;; changed... i have no idea what they were doing here
|
||||
(set! (-> (the-as debug-menu-item-var s5-0) ifloat-p) (= s4-0 'int-var-gat1));;#t)
|
||||
s5-0
|
||||
)
|
||||
((= s4-0 'float-var)
|
||||
(set! s5-0 (new 'debug 'debug-menu-item-var s5-1 (the-as int (cddr arg1)) (the-as int (ref arg1 4))))
|
||||
(set! s5-0 (new 'debug 'debug-menu-item-var s5-1 (the-as int (caddr arg1)) (the-as int (ref arg1 4))))
|
||||
(debug-menu-item-var-make-float
|
||||
(the-as debug-menu-item-var s5-0)
|
||||
(the-as (function int debug-menu-msg float float float) (debug-menu-func-decode (cadddr arg1)))
|
||||
@@ -760,6 +761,7 @@
|
||||
(with-dma-buffer-add-bucket ((s3-0 (-> (current-frame) debug-buf))
|
||||
(bucket-id debug-draw1))
|
||||
;; NOTE: the draw-string-adv advances too far on widescreen.
|
||||
;; NOTE 2: should be fixed?
|
||||
(draw-string-adv (-> item name) s3-0 s5-0)
|
||||
(draw-string-adv "..." s3-0 s5-0)
|
||||
)
|
||||
@@ -771,7 +773,7 @@
|
||||
"Draw the text for a function entry. Also updates the timer for the highlight."
|
||||
(let ((v1-2 (-> item parent context font)))
|
||||
(set-origin! v1-2 x y)
|
||||
(set! (-> v1-2 color)
|
||||
(set! (-> v1-2 color)
|
||||
(cond
|
||||
((> (-> item hilite-timer) 0)
|
||||
;; if the hilite is >0, we ran the function successfully, so we hilite in blue for a bit
|
||||
@@ -805,7 +807,7 @@
|
||||
"Draw the text for a flag."
|
||||
(let ((v1-2 (-> item parent context font)))
|
||||
(set-origin! v1-2 x y)
|
||||
(set! (-> v1-2 color)
|
||||
(set! (-> v1-2 color)
|
||||
(cond
|
||||
((= (-> item is-on) 'invalid)
|
||||
(font-color flat-dark-purple) ;; can't use this one.
|
||||
@@ -836,7 +838,7 @@
|
||||
"Draw the text for a variable"
|
||||
(let ((s5-0 (-> item parent context font)))
|
||||
(set-origin! s5-0 x y)
|
||||
(set! (-> s5-0 color)
|
||||
(set! (-> s5-0 color)
|
||||
(cond
|
||||
((zero? submenus)
|
||||
(if (-> item grabbed-joypad-p)
|
||||
@@ -864,7 +866,7 @@
|
||||
(else
|
||||
;; not enough room. normally just draw ...
|
||||
(draw-string "..." s1-0 s5-0)
|
||||
|
||||
|
||||
;; display the whole thing if: we're selected and there are no submenus.
|
||||
(set! selected (and (zero? submenus) selected))
|
||||
(when selected
|
||||
@@ -882,7 +884,7 @@
|
||||
|
||||
(defun debug-menu-item-render ((item debug-menu-item) (x int) (y int) (submenus int) (selected symbol))
|
||||
"Draw an item. This feels like it should have been a method..."
|
||||
|
||||
|
||||
;; do a refresh, if it's time.
|
||||
(when (> (-> item refresh-delay) 0)
|
||||
(+! (-> item refresh-ctr) -1)
|
||||
@@ -891,7 +893,7 @@
|
||||
(debug-menu-item-send-msg item (debug-menu-msg update))
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
;; call the appropriate render function.
|
||||
(cond
|
||||
((= (-> item type) debug-menu-item-submenu)
|
||||
@@ -916,7 +918,7 @@
|
||||
|
||||
(defun debug-menu-render ((menu debug-menu) (x-pos int) (y-pos int) (selected debug-menu-node) (submenus int))
|
||||
"Render a menu."
|
||||
|
||||
|
||||
;; draw the background
|
||||
(let ((v1-0 0))
|
||||
(let* ((a0-1 (-> menu items))
|
||||
@@ -938,9 +940,10 @@
|
||||
)
|
||||
(with-dma-buffer-add-bucket ((s0-0 (-> (current-frame) debug-buf))
|
||||
(bucket-id debug-draw1))
|
||||
(draw-sprite2d-xy s0-0 x-pos y-pos (-> menu pix-width) (-> menu pix-height) (static-rgba #x00 #x00 #x00 #x40))
|
||||
;; PC PORT : fixed for widescreen
|
||||
(draw-sprite2d-xy s0-0 (correct-x-int x-pos) y-pos (correct-x-int (-> menu pix-width)) (-> menu pix-height) (static-rgba #x00 #x00 #x00 #x40))
|
||||
)
|
||||
|
||||
|
||||
;; draw each item
|
||||
(let* ((s3-1 (+ x-pos 3))
|
||||
(s2-1 (+ y-pos 3))
|
||||
@@ -948,11 +951,11 @@
|
||||
(s0-1 (car s1-1))
|
||||
)
|
||||
(while (not (null? s1-1))
|
||||
|
||||
|
||||
;; draw > on the selected object
|
||||
(when (= s0-1 selected)
|
||||
;; dim it if it's in a parent menu.
|
||||
(set! (-> menu context font color)
|
||||
(set! (-> menu context font color)
|
||||
(if (nonzero? submenus)
|
||||
(font-color dim-gray)
|
||||
(font-color dim-white)
|
||||
@@ -964,7 +967,7 @@
|
||||
(draw-string ">" sv-16 (-> menu context font))
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
;; actually draw the item.
|
||||
(debug-menu-item-render (the-as debug-menu-item s0-1) (+ s3-1 12) s2-1 submenus (= s0-1 selected))
|
||||
(+! s2-1 8)
|
||||
@@ -1000,7 +1003,7 @@
|
||||
(defun debug-menu-context-select-next-or-prev-item ((arg0 debug-menu-context) (arg1 int))
|
||||
"Go up or down 1 in the currently open thing. The sign of arg1 determines direction"
|
||||
(local-vars (v1-6 object))
|
||||
|
||||
|
||||
;; search for the currently selected thing.
|
||||
(let ((s5-0 (-> arg0 sel-menu (+ (-> arg0 sel-length) -1))))
|
||||
(let ((a2-0 (-> s5-0 selected-item))
|
||||
|
||||
Reference in New Issue
Block a user