[game] pc port progress menu (#1281)

* fix typo

* more typo

* shorten discord rpc text

* allow expanding enums after the fact (untested)

* make `game_text` work similar to subtitles

* update progress decomp

* update some types + `do-not-decompile` in bitfield

* fixes and fall back to original progress code

* update `progress` decomp with new enums

* update config files

* fix enums and debug menu

* always allocate (but not use) a lot of particles

* small rework to display mode options

* revert resolution/aspect-ratio symbol mess

* begin the override stuff

* make `progress-draw` more readable

* more fixes

* codacy good boy points

* first step overriding code

* finish progress overrides, game options menu fully functional!

* minor fixes

* Update game.gp

* Update sparticle-launcher.gc

* clang

* change camera controls text

* oops

* some cleanup

* derp

* nice job

* implement menu scrolling lol

* make scrollable menus less cramped, fix arrows

* make some carousell things i guess

* add msaa carousell to test

* oops

* Update progress-pc.gc

* make `pc-get-screen-size` (untested)

* resolution menu

* input fixes

* return when selecting resolution

* scroll fixes

* Update progress-pc.gc

* add "fit to screen" button

* bug

* complete resolutions menu

* aspect ratio menu

* subtitles language

* subtitle speaker

* final adjustments

* ref test

* fix tests

* fix ref!

* reduce redundancy a bit

* fix mem leaks?

* save settings on progress exit

* fix init reorder

* remove unused code

* rename goal project-like files to the project extension

* sha display toggle

* aspect ratio settings fixes

* dont store text db's in compiler

* properly save+load native aspect stuff
This commit is contained in:
ManDude
2022-04-11 23:38:54 +01:00
committed by GitHub
parent b408c78698
commit a7eee4fdc9
185 changed files with 6172 additions and 11465 deletions
+1 -1
View File
@@ -499,7 +499,7 @@
(goto cfg-4)
)
(set! (-> obj max-spheres) sphere-count)
(set! (-> obj flags) (nav-control-flags bit8 bit13))
(set! (-> obj flags) (nav-control-flags navcf8 navcf13))
(set! (-> obj mesh) (nav-mesh-connect (-> shape process) shape obj))
(let ((ent (-> shape process entity)))
(set! (-> obj nearest-y-threshold)
+31 -31
View File
@@ -1271,14 +1271,14 @@
(let ((v1-1 (find-poly-fast obj arg0 arg1)))
(when v1-1
(if arg2
(set! (-> arg2 0) (logior (nav-control-flags bit20) (-> arg2 0)))
(set! (-> arg2 0) (logior (nav-control-flags navcf20) (-> arg2 0)))
)
(set! s3-1 v1-1)
(goto cfg-14)
)
)
(if arg2
(logclear! (-> arg2 0) (nav-control-flags bit20))
(logclear! (-> arg2 0) (nav-control-flags navcf20))
)
(let ((s2-0 (new 'stack-no-clear 'inline-array 'nav-vertex 3)))
(set! s3-1 (the-as nav-poly #f))
@@ -1750,7 +1750,7 @@
(when #t
(set! (-> s5-0 debug-time) (the-as uint (-> *display* actual-frame-counter)))
(add-debug-sphere
(logtest? (-> obj flags) (nav-control-flags bit1))
(logtest? (-> obj flags) (nav-control-flags navcf1))
(bucket-id debug-draw0)
(-> s5-0 bounds)
(-> s5-0 bounds w)
@@ -1758,7 +1758,7 @@
)
(add-debug-vector #t (bucket-id debug-draw1) (-> s5-0 origin) *x-vector* (meters 1.0) *color-red*)
(add-debug-vector #t (bucket-id debug-draw1) (-> s5-0 origin) *z-vector* (meters 1.0) *color-blue*)
(when (logtest? (-> obj flags) (nav-control-flags bit2))
(when (logtest? (-> obj flags) (nav-control-flags navcf2))
(dotimes (s3-0 (-> s5-0 vertex-count))
(add-debug-x
#t
@@ -1813,7 +1813,7 @@
)
)
)
(when (logtest? (-> obj flags) (nav-control-flags bit3))
(when (logtest? (-> obj flags) (nav-control-flags navcf3))
(dotimes (s3-2 (-> s5-0 poly-count))
(let ((s2-1 (-> s5-0 poly s3-2)))
(debug-draw-poly s5-0 s2-1 (the-as rgba (cond
@@ -1838,7 +1838,7 @@
)
)
)
(when (logtest? (-> obj flags) (nav-control-flags bit4))
(when (logtest? (-> obj flags) (nav-control-flags navcf4))
(let ((s1-1 add-debug-text-3d)
(s0-1 #t)
)
@@ -1862,7 +1862,7 @@
)
)
)
(when (logtest? (-> obj flags) (nav-control-flags bit5))
(when (logtest? (-> obj flags) (nav-control-flags navcf5))
(if (-> obj next-poly)
(debug-draw-poly s5-0 (-> obj next-poly) *color-cyan*)
)
@@ -1873,7 +1873,7 @@
(debug-draw-poly s5-0 (-> obj current-poly) *color-red*)
)
)
(when (logtest? (-> obj flags) (nav-control-flags bit7))
(when (logtest? (-> obj flags) (nav-control-flags navcf7))
(dotimes (s3-3 (the-as int (-> s5-0 static-sphere-count)))
(let ((s2-2 (-> s5-0 static-sphere s3-3)))
(add-debug-sphere #t (bucket-id debug-draw0) (the-as vector s2-2) (-> s2-2 trans w) *color-blue*)
@@ -1906,7 +1906,7 @@
)
)
)
(when (logtest? (-> obj flags) (nav-control-flags bit6))
(when (logtest? (-> obj flags) (nav-control-flags navcf6))
(when (and (-> obj portal 0) (-> obj portal 1))
(let ((v1-80 (-> s5-0 origin))
(a2-22 (new 'stack-no-clear 'vector))
@@ -1946,7 +1946,7 @@
(new 'static 'rgba :r #xff :g #xff :b #xff :a #x80)
)
)
(when (logtest? (-> obj flags) (nav-control-flags bit7))
(when (logtest? (-> obj flags) (nav-control-flags navcf7))
(add-debug-sphere
#t
(bucket-id debug-draw1)
@@ -2012,7 +2012,7 @@
;; INFO: Return type mismatch int vs none.
(defmethod set-current-poly! nav-control ((obj nav-control) (arg0 nav-poly))
(set! (-> obj current-poly) arg0)
(logior! (-> obj flags) (nav-control-flags bit9))
(logior! (-> obj flags) (nav-control-flags navcf9))
0
(none)
)
@@ -2066,7 +2066,7 @@
;; INFO: Return type mismatch int vs none.
;; Used lq/sq
(defun add-collide-shape-spheres ((arg0 nav-control) (arg1 collide-shape) (arg2 vector))
(when (logtest? (-> arg1 nav-flags) 1)
(when (logtest? (-> arg1 nav-flags) (nav-flags navf0))
(set! (-> arg2 quad) (-> arg1 root-prim prim-core world-sphere quad))
(set! (-> arg2 w) (-> arg1 nav-radius))
(let ((s4-0 arg0)
@@ -2088,7 +2088,7 @@
)
0
)
(when (logtest? (-> arg1 nav-flags) 2)
(when (logtest? (-> arg1 nav-flags) (nav-flags navf1))
(let ((s5-1 (-> arg1 process nav extra-nav-sphere)))
(when (< (-> arg0 num-spheres) (-> arg0 max-spheres))
(let* ((s4-1 (-> arg0 sphere (-> arg0 num-spheres)))
@@ -2127,13 +2127,13 @@
(s3-0 (new 'stack-no-clear 'vector))
)
(when (and *target*
(or (logtest? (-> obj flags) (nav-control-flags bit11)) (logtest? (-> *target* state-flags) #x80f8))
(or (logtest? (-> obj flags) (nav-control-flags navcf11)) (logtest? (-> *target* state-flags) #x80f8))
)
(let ((s2-0 obj)
(s1-0 (-> *target* control))
)
(let ((s0-0 s3-0))
(when (logtest? (-> s1-0 nav-flags) 1)
(when (logtest? (-> s1-0 nav-flags) (nav-flags navf0))
(set! (-> s0-0 quad) (-> s1-0 root-prim prim-core world-sphere quad))
(set! (-> s0-0 w) (-> s1-0 nav-radius))
(set! sv-32 s2-0)
@@ -2153,7 +2153,7 @@
0
)
)
(when (logtest? (-> s1-0 nav-flags) 2)
(when (logtest? (-> s1-0 nav-flags) (nav-flags navf1))
(let ((s1-1 (-> s1-0 process nav extra-nav-sphere)))
(when (< (-> s2-0 num-spheres) (-> s2-0 max-spheres))
(let* ((s0-1 (-> s2-0 sphere (-> s2-0 num-spheres)))
@@ -2173,7 +2173,7 @@
)
)
)
(when (logtest? (-> obj flags) (nav-control-flags bit13))
(when (logtest? (-> obj flags) (nav-control-flags navcf13))
(countdown (s2-1 (-> obj mesh static-sphere-count))
(let ((s1-2 obj)
(s0-2 (-> obj mesh static-sphere s2-1))
@@ -2203,7 +2203,7 @@
(when (not (or (= s0-3 (-> obj shape)) (zero? (logand arg0 (-> s0-3 root-prim prim-core collide-as)))))
(let ((s1-3 obj))
(set! sv-112 s3-0)
(when (logtest? (-> s0-3 nav-flags) 1)
(when (logtest? (-> s0-3 nav-flags) (nav-flags navf0))
(set! (-> sv-112 quad) (-> s0-3 root-prim prim-core world-sphere quad))
(set! (-> sv-112 w) (-> s0-3 nav-radius))
(set! sv-80 s1-3)
@@ -2226,7 +2226,7 @@
)
0
)
(when (logtest? (-> s0-3 nav-flags) 2)
(when (logtest? (-> s0-3 nav-flags) (nav-flags navf1))
(let ((s0-4 (-> s0-3 process nav extra-nav-sphere)))
(when (< (-> s1-3 num-spheres) (-> s1-3 max-spheres))
(set! sv-128 (-> s1-3 sphere (-> s1-3 num-spheres)))
@@ -2662,7 +2662,7 @@
(set! (-> obj blocked-travel quad) (-> obj travel quad))
(let ((f0-0 (vector-xz-length (-> obj travel))))
(when (and (>= f30-0 f0-0) (< f0-0 204.8))
(set! (-> obj flags) (logior (nav-control-flags bit17) (-> obj flags)))
(set! (-> obj flags) (logior (nav-control-flags navcf17) (-> obj flags)))
(set! (-> obj block-time) (-> *display* base-frame-counter))
(set! (-> obj block-count) (+ 1.0 (-> obj block-count)))
(if (-> obj block-event)
@@ -2709,21 +2709,21 @@
)
(cond
((or (vector= arg2 (-> obj target-pos)) (< (fabs f28-0) 364.0889))
(set! (-> obj flags) (logior (nav-control-flags bit21) (-> obj flags)))
(set! (-> obj flags) (logior (nav-control-flags navcf21) (-> obj flags)))
(set! (-> arg0 quad) (-> arg2 quad))
)
(else
(let ((s2-1 (vector-z-quaternion! (new 'stack-no-clear 'vector) (-> arg1 quat))))
(vector-rotate-y! s2-1 s2-1 (fmax (fmin f28-0 f30-0) (- f30-0)))
(vector-normalize! s2-1 819.2)
(logclear! (-> obj flags) (nav-control-flags bit21))
(logclear! (-> obj flags) (nav-control-flags navcf21))
(vector+! arg0 (-> arg1 trans) s2-1)
)
(when (or (not (dummy-16 obj arg0))
(logtest? (nav-control-flags bit17) (-> obj flags))
(zero? (logand (-> obj flags) (nav-control-flags bit10)))
(logtest? (nav-control-flags navcf17) (-> obj flags))
(zero? (logand (-> obj flags) (nav-control-flags navcf10)))
)
(set! (-> obj flags) (logior (nav-control-flags bit21) (-> obj flags)))
(set! (-> obj flags) (logior (nav-control-flags navcf21) (-> obj flags)))
(vector-! (-> obj travel) arg2 (-> arg1 trans))
(set! (-> arg0 quad) (-> arg2 quad))
)
@@ -2938,7 +2938,7 @@
v1-0
(-> obj current-poly)
(-> obj travel)
(zero? (logand (-> obj flags) (nav-control-flags bit12)))
(zero? (logand (-> obj flags) (nav-control-flags navcf12)))
arg0
arg1
)
@@ -3149,7 +3149,7 @@
sv-84
sv-88
(-> obj travel)
(zero? (logand (-> obj flags) (nav-control-flags bit12)))
(zero? (logand (-> obj flags) (nav-control-flags navcf12)))
204.8
s5-1
)
@@ -3254,9 +3254,9 @@
(set! (-> obj old-travel quad) (-> obj travel quad))
(-> obj block-count)
(set! (-> obj block-count) (seek (-> obj block-count) 0.0 0.016666668))
(logclear! (-> obj flags) (nav-control-flags bit9 bit17 bit18 bit19))
(logclear! (-> obj flags) (nav-control-flags navcf9 navcf17 navcf18 navcf19))
(TODO-RENAME-27 obj)
(if (logtest? (-> obj flags) (nav-control-flags bit8))
(if (logtest? (-> obj flags) (nav-control-flags navcf8))
(TODO-RENAME-28 obj (collide-kind
background
cak-1
@@ -3331,7 +3331,7 @@
(let ((s5-1 (new 'stack-no-clear 'nav-gap-info)))
(when (< (vector-xz-length (-> obj travel)) 204.8)
(cond
((logtest? (nav-control-flags bit17) (-> obj flags))
((logtest? (nav-control-flags navcf17) (-> obj flags))
)
((-> obj next-poly)
(cond
@@ -3349,7 +3349,7 @@
)
)
(else
(set! (-> obj flags) (logior (nav-control-flags bit19) (-> obj flags)))
(set! (-> obj flags) (logior (nav-control-flags navcf19) (-> obj flags)))
)
)
)