mirror of
https://github.com/open-goal/jak-project
synced 2026-08-14 12:34:36 -04:00
[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:
+3
-3
@@ -185,15 +185,15 @@
|
||||
(debug-draw (_type_) none 9)
|
||||
(fill-and-probe-using-line-sphere (_type_ vector vector float collide-kind process collide-tri-result int) float 10)
|
||||
(fill-and-probe-using-spheres (_type_ collide-using-spheres-params) symbol 11)
|
||||
(fill-and-probe-using-y-probe (_type_ vector float collide-kind process collide-tri-result uint) float 12)
|
||||
(fill-and-probe-using-y-probe (_type_ vector float collide-kind process-drawable collide-tri-result pat-surface) float 12)
|
||||
(fill-using-bounding-box (_type_ bounding-box collide-kind process-drawable pat-surface) none 13)
|
||||
(fill-using-line-sphere (_type_ vector vector float collide-kind process-drawable int) none 14)
|
||||
(fill-using-spheres (_type_ collide-using-spheres-params) none 15)
|
||||
(fill-using-y-probe (_type_ vector float collide-kind process-drawable uint) none 16)
|
||||
(fill-using-y-probe (_type_ vector float collide-kind process-drawable pat-surface) none 16)
|
||||
(initialize (_type_) none 17)
|
||||
(probe-using-line-sphere (_type_ vector vector float collide-kind collide-tri-result int) float 18)
|
||||
(probe-using-spheres (_type_ collide-using-spheres-params) symbol 19)
|
||||
(probe-using-y-probe (_type_ vector float collide-kind collide-tri-result uint) float 20)
|
||||
(probe-using-y-probe (_type_ vector float collide-kind collide-tri-result pat-surface) float 20)
|
||||
(fill-from-background (_type_ (function bsp-header int collide-list none) (function collide-cache object none)) none 21)
|
||||
(fill-from-foreground-using-box (_type_) none 22)
|
||||
(fill-from-foreground-using-line-sphere (_type_) none 23)
|
||||
|
||||
+4
-4
@@ -377,7 +377,7 @@
|
||||
(deftype collide-shape (trsqv)
|
||||
((process process-drawable :offset-assert 140)
|
||||
(max-iteration-count uint8 :offset-assert 144)
|
||||
(nav-flags uint8 :offset-assert 145)
|
||||
(nav-flags nav-flags :offset-assert 145)
|
||||
(pad-byte uint8 2 :offset-assert 146)
|
||||
(pat-ignore-mask pat-surface :offset-assert 148)
|
||||
(event-self basic :offset-assert 152)
|
||||
@@ -638,17 +638,17 @@
|
||||
(let ((obj (object-new allocation type-to-make (the-as int (-> type-to-make size)))))
|
||||
(set! (-> obj process) proc)
|
||||
(set! (-> obj max-iteration-count) (the-as uint 1))
|
||||
(set! (-> obj nav-flags) (the-as uint 1))
|
||||
(set! (-> obj nav-flags) (nav-flags navf0))
|
||||
(set! (-> obj event-self) #f)
|
||||
(set! (-> obj event-other) #f)
|
||||
(set! (-> obj riders) #f)
|
||||
(set! (-> obj root-prim) #f)
|
||||
(case (-> proc type symbol)
|
||||
(('camera)
|
||||
(set! (-> obj pat-ignore-mask) (new 'static 'pat-surface :skip #x2 :nocamera #x1))
|
||||
(set! (-> obj pat-ignore-mask) (new 'static 'pat-surface :nocamera #x1))
|
||||
)
|
||||
(else
|
||||
(set! (-> obj pat-ignore-mask) (new 'static 'pat-surface :skip #x1 :noentity #x1))
|
||||
(set! (-> obj pat-ignore-mask) (new 'static 'pat-surface :noentity #x1))
|
||||
)
|
||||
)
|
||||
(set! (-> obj trans w) 1.0)
|
||||
|
||||
+1
-1
@@ -1629,7 +1629,7 @@
|
||||
)
|
||||
(toggle-pause)
|
||||
)
|
||||
(when (or (not *progress-process*) (dummy-32 (-> *progress-process* 0)))
|
||||
(when (or (not *progress-process*) (can-go-back? (-> *progress-process* 0)))
|
||||
(if (or (cpad-pressed? 0 select r3 start)
|
||||
(and (logtest? (-> *cpad-list* cpads 0 valid) 128)
|
||||
(= *master-mode* 'game)
|
||||
|
||||
+2
-2
@@ -3003,9 +3003,9 @@
|
||||
s2-1
|
||||
(the-as float 81920.0)
|
||||
(collide-kind background)
|
||||
(the-as process #f)
|
||||
(the-as process-drawable #f)
|
||||
s1-1
|
||||
(the-as uint 1)
|
||||
(new 'static 'pat-surface :noentity #x1)
|
||||
)
|
||||
0.0
|
||||
)
|
||||
|
||||
+4
-4
@@ -219,7 +219,7 @@
|
||||
(((game-save-elt buzzer-total))
|
||||
"buzzer-total"
|
||||
)
|
||||
(((game-save-elt moeny-per-level))
|
||||
(((game-save-elt money-per-level))
|
||||
"money-per-level"
|
||||
)
|
||||
(((game-save-elt money-total))
|
||||
@@ -312,7 +312,7 @@
|
||||
)
|
||||
(when detail
|
||||
(case (-> tag elt-type)
|
||||
(((game-save-elt moeny-per-level) (game-save-elt deaths-per-level))
|
||||
(((game-save-elt money-per-level) (game-save-elt deaths-per-level))
|
||||
(dotimes (prog-lev-idx (-> tag elt-count))
|
||||
(let ((lev-name (progress-level-index->string prog-lev-idx)))
|
||||
(if lev-name
|
||||
@@ -510,7 +510,7 @@
|
||||
)
|
||||
(let ((v1-56 (&+ v1-55 16)))
|
||||
(let ((a0-30 (the-as game-save-tag (&+ v1-56 0))))
|
||||
(set! (-> a0-30 elt-type) (game-save-elt moeny-per-level))
|
||||
(set! (-> a0-30 elt-type) (game-save-elt money-per-level))
|
||||
(set! (-> a0-30 elt-count) 32)
|
||||
(set! (-> a0-30 elt-size) (the-as uint 1))
|
||||
)
|
||||
@@ -944,7 +944,7 @@
|
||||
(((game-save-elt money-total))
|
||||
(set! (-> obj money-total) (-> data user-float0))
|
||||
)
|
||||
(((game-save-elt moeny-per-level))
|
||||
(((game-save-elt money-per-level))
|
||||
(let ((v1-34 (min 32 (-> data elt-count))))
|
||||
(dotimes (a0-76 v1-34)
|
||||
(set! (-> obj money-per-level a0-76) (-> (the-as (pointer uint8) (&+ (the-as pointer data) 16)) a0-76))
|
||||
|
||||
+1
-1
@@ -1099,7 +1099,7 @@
|
||||
(-> obj root-override shadow-pos)
|
||||
8192.0
|
||||
(collide-kind background)
|
||||
(the-as process #f)
|
||||
(the-as process-drawable #f)
|
||||
12288.0
|
||||
81920.0
|
||||
)
|
||||
|
||||
+19
-2
@@ -115,14 +115,31 @@
|
||||
;; definition for function find-ground-and-draw-shadow
|
||||
;; INFO: Return type mismatch int vs none.
|
||||
;; Used lq/sq
|
||||
(defun find-ground-and-draw-shadow ((arg0 vector) (arg1 vector) (arg2 float) (arg3 collide-kind) (arg4 process) (arg5 float) (arg6 float))
|
||||
(defun find-ground-and-draw-shadow ((arg0 vector)
|
||||
(arg1 vector)
|
||||
(arg2 float)
|
||||
(arg3 collide-kind)
|
||||
(arg4 process-drawable)
|
||||
(arg5 float)
|
||||
(arg6 float)
|
||||
)
|
||||
(let ((s2-0 (new 'stack-no-clear 'vector)))
|
||||
(set! (-> s2-0 quad) (-> arg0 quad))
|
||||
(new 'stack-no-clear 'vector)
|
||||
(+! (-> s2-0 y) arg5)
|
||||
(let ((s4-0 (new 'stack-no-clear 'collide-tri-result)))
|
||||
(cond
|
||||
((>= (fill-and-probe-using-y-probe *collide-cache* s2-0 arg6 arg3 arg4 s4-0 (the-as uint 1)) 0.0)
|
||||
((>= (fill-and-probe-using-y-probe
|
||||
*collide-cache*
|
||||
s2-0
|
||||
arg6
|
||||
arg3
|
||||
arg4
|
||||
s4-0
|
||||
(new 'static 'pat-surface :noentity #x1)
|
||||
)
|
||||
0.0
|
||||
)
|
||||
(if (!= arg2 0.0)
|
||||
(compute-and-draw-shadow s2-0 (-> s4-0 intersect) (-> s4-0 normal) (the-as vector arg2) arg6 (the-as float 0))
|
||||
)
|
||||
|
||||
+1
-1
@@ -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
@@ -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)))
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
+1
-1
@@ -1185,7 +1185,7 @@
|
||||
(clear-pending-settings-from-process *setting-control* self 'process-mask)
|
||||
(clear-pending-settings-from-process *setting-control* self 'allow-progress)
|
||||
(restore-collide-with-as (-> self control))
|
||||
(set! (-> self control pat-ignore-mask) (new 'static 'pat-surface :skip #x1 :noentity #x1))
|
||||
(set! (-> self control pat-ignore-mask) (new 'static 'pat-surface :noentity #x1))
|
||||
(set! (-> self control dynam gravity-max) (-> self control unknown-dynamics00 gravity-max))
|
||||
(set! (-> self control dynam gravity-length) (-> self control unknown-dynamics00 gravity-length))
|
||||
(none)
|
||||
|
||||
+1
-1
@@ -43,7 +43,7 @@
|
||||
(collide-kind background cak-1 cak-2 cak-3 water powerup crate enemy wall-object ground-object mother-spider)
|
||||
s5-0
|
||||
s3-0
|
||||
(the-as uint 1)
|
||||
(new 'static 'pat-surface :noentity #x1)
|
||||
)
|
||||
0.0
|
||||
)
|
||||
|
||||
+20
-20
@@ -84,13 +84,13 @@
|
||||
|
||||
;; definition of type game-option
|
||||
(deftype game-option (basic)
|
||||
((option-type uint64 :offset-assert 8)
|
||||
(name game-text-id :offset-assert 16)
|
||||
(scale basic :offset-assert 20)
|
||||
(param1 float :offset-assert 24)
|
||||
(param2 float :offset-assert 28)
|
||||
(param3 int32 :offset-assert 32)
|
||||
(value-to-modify pointer :offset-assert 36)
|
||||
((option-type game-option-type :offset-assert 8)
|
||||
(name game-text-id :offset-assert 16)
|
||||
(scale symbol :offset-assert 20)
|
||||
(param1 float :offset-assert 24)
|
||||
(param2 float :offset-assert 28)
|
||||
(param3 game-option-menu :offset-assert 32)
|
||||
(value-to-modify pointer :offset-assert 36)
|
||||
)
|
||||
:method-count-assert 9
|
||||
:size-assert #x28
|
||||
@@ -130,8 +130,8 @@
|
||||
(force-transition basic :offset-assert 180)
|
||||
(stat-transition basic :offset-assert 184)
|
||||
(level-transition int32 :offset-assert 188)
|
||||
(language-selection uint64 :offset-assert 192)
|
||||
(language-direction basic :offset-assert 200)
|
||||
(language-selection language-enum :offset-assert 192)
|
||||
(language-direction symbol :offset-assert 200)
|
||||
(language-transition basic :offset-assert 204)
|
||||
(language-x-offset int32 :offset-assert 208)
|
||||
(sides-x-scale float :offset-assert 212)
|
||||
@@ -172,12 +172,12 @@
|
||||
:size-assert #x2dc
|
||||
:flag-assert #x3b027002dc
|
||||
(:methods
|
||||
(dummy-14 (_type_) none 14)
|
||||
(dummy-15 (_type_) none 15)
|
||||
(dummy-16 (_type_) none 16)
|
||||
(progress-dummy-14 (_type_) none 14)
|
||||
(progress-dummy-15 (_type_) none 15)
|
||||
(progress-dummy-16 (_type_) none 16)
|
||||
(draw-progress (_type_) none 17)
|
||||
(dummy-18 () none 18)
|
||||
(dummy-19 (_type_) symbol 19)
|
||||
(progress-dummy-18 () none 18)
|
||||
(visible? (_type_) symbol 19)
|
||||
(hidden? (_type_) symbol 20)
|
||||
(adjust-sprites (_type_) none 21)
|
||||
(adjust-icons (_type_) none 22)
|
||||
@@ -187,10 +187,10 @@
|
||||
(draw-buzzer-screen (_type_ int) none 26)
|
||||
(draw-notice-screen (_type_) none 27)
|
||||
(draw-options (_type_ int int float) none 28)
|
||||
(dummy-29 (_type_) none 29)
|
||||
(respond-common (_type_) none 29)
|
||||
(respond-progress (_type_) none 30)
|
||||
(dummy-31 (_type_) none 31)
|
||||
(dummy-32 (_type_) symbol 32)
|
||||
(respond-memcard (_type_) none 31)
|
||||
(can-go-back? (_type_) symbol 32)
|
||||
(initialize-icons (_type_) none 33)
|
||||
(initialize-particles (_type_) none 34)
|
||||
(draw-memcard-storage-error (_type_ font-context) none 35)
|
||||
@@ -202,16 +202,16 @@
|
||||
(draw-memcard-auto-save-error (_type_ font-context) none 41)
|
||||
(draw-memcard-removed (_type_ font-context) none 42)
|
||||
(draw-memcard-error (_type_ font-context) none 43)
|
||||
(dummy-44 (_type_) none 44)
|
||||
(progress-dummy-44 (_type_) none 44)
|
||||
(push! (_type_) none 45)
|
||||
(pop! (_type_) none 46)
|
||||
(dummy-47 (_type_) none 47)
|
||||
(progress-dummy-47 (_type_) none 47)
|
||||
(enter! (_type_ progress-screen int) none 48)
|
||||
(draw-memcard-format (_type_ font-context) none 49)
|
||||
(draw-auto-save (_type_ font-context) none 50)
|
||||
(set-transition-progress! (_type_ int) none 51)
|
||||
(set-transition-speed! (_type_) none 52)
|
||||
(dummy-53 (_type_ progress-screen) progress-screen 53)
|
||||
(set-memcard-screen (_type_ progress-screen) progress-screen 53)
|
||||
(draw-pal-change-to-60hz (_type_ font-context) none 54)
|
||||
(draw-pal-now-60hz (_type_ font-context) none 55)
|
||||
(draw-no-disc (_type_ font-context) none 56)
|
||||
|
||||
+210
-210
@@ -1579,7 +1579,7 @@
|
||||
(sv-464 int)
|
||||
(sv-480 int)
|
||||
(sv-496 int)
|
||||
(sv-512 uint)
|
||||
(sv-512 int)
|
||||
(sv-528 (function _varargs_ object))
|
||||
(sv-544 string)
|
||||
(sv-560 string)
|
||||
@@ -1629,7 +1629,7 @@
|
||||
(set! sv-144 s2-1)
|
||||
(let ((v1-18 (-> s3-0 s0-0 option-type)))
|
||||
(cond
|
||||
((= v1-18 7)
|
||||
((= v1-18 (game-option-type yes-no))
|
||||
(cond
|
||||
((-> (the-as (pointer uint32) (-> s3-0 s0-0 value-to-modify)))
|
||||
(set! sv-160 format)
|
||||
@@ -1655,7 +1655,7 @@
|
||||
)
|
||||
)
|
||||
)
|
||||
((or (= v1-18 6) (= v1-18 8))
|
||||
((or (= v1-18 (game-option-type menu)) (= v1-18 (game-option-type button)))
|
||||
(cond
|
||||
((nonzero? (-> s3-0 s0-0 name))
|
||||
(set! sv-912 (lookup-text! *common-text* (-> s3-0 s0-0 name) #f))
|
||||
@@ -1673,7 +1673,7 @@
|
||||
)
|
||||
(set! (-> sv-112 origin x) (the float (- sv-128 (-> obj left-x-offset))))
|
||||
(case (-> s3-0 s0-0 option-type)
|
||||
((3)
|
||||
(((game-option-type center-screen))
|
||||
(set! (-> sv-112 origin y) (the float (+ s2-1 -20)))
|
||||
)
|
||||
(else
|
||||
@@ -1693,7 +1693,7 @@
|
||||
(sv-288 a0-23 a1-11 a2-10 a3-4 t0-1)
|
||||
)
|
||||
(case (-> s3-0 s0-0 option-type)
|
||||
((3)
|
||||
(((game-option-type center-screen))
|
||||
(set! sv-144 (+ s2-1 3))
|
||||
sv-144
|
||||
)
|
||||
@@ -1702,243 +1702,243 @@
|
||||
sv-144
|
||||
)
|
||||
)
|
||||
(let ((v1-81 (-> s3-0 s0-0 option-type)))
|
||||
(cond
|
||||
((zero? v1-81)
|
||||
(let* ((v1-82 (the-as uint #x8000ffff))
|
||||
(f0-12 (* 0.01 (-> (the-as (pointer float) (-> s3-0 s0-0 value-to-modify)))))
|
||||
(a0-34 (logior (logand v1-82 -256) (shr (shl (the int (+ 64.0 (* 191.0 f0-12))) 56) 56)))
|
||||
(a3-5 (logior (logand a0-34 -65281) (shr (shl (shr (shl a0-34 56) 56) 56) 48)))
|
||||
)
|
||||
(draw-percent-bar (- 75 (-> obj left-x-offset)) (+ s2-1 8) f0-12 (the-as int a3-5))
|
||||
)
|
||||
(set! sv-304 format)
|
||||
(let ((a0-42 (clear *temp-string*))
|
||||
(a1-13 "~D")
|
||||
(a2-12 (the int (-> (the-as (pointer float) (-> s3-0 s0-0 value-to-modify)))))
|
||||
)
|
||||
(sv-304 a0-42 a1-13 a2-12)
|
||||
)
|
||||
(set! sv-912 *temp-string*)
|
||||
(set! sv-128 (+ (the int (* 2.5 (-> (the-as (pointer float) (-> s3-0 s0-0 value-to-modify))))) -100))
|
||||
sv-128
|
||||
)
|
||||
((= v1-81 2)
|
||||
(cond
|
||||
((-> (the-as (pointer uint32) (-> s3-0 s0-0 value-to-modify)))
|
||||
(set! sv-320 format)
|
||||
(set! sv-336 (clear *temp-string*))
|
||||
(set! sv-352 "~30L~S~0L ~S")
|
||||
(set! sv-368 (lookup-text! *common-text* (game-text-id on) #f))
|
||||
(let ((a3-6 (lookup-text! *common-text* (game-text-id off) #f)))
|
||||
(sv-320 sv-336 sv-352 sv-368 a3-6)
|
||||
(case (-> s3-0 s0-0 option-type)
|
||||
(((game-option-type slider))
|
||||
(let* ((v1-82 (the-as uint #x8000ffff))
|
||||
(f0-12 (* 0.01 (-> (the-as (pointer float) (-> s3-0 s0-0 value-to-modify)))))
|
||||
(a0-34 (logior (logand v1-82 -256) (shr (shl (the int (+ 64.0 (* 191.0 f0-12))) 56) 56)))
|
||||
(a3-5 (logior (logand a0-34 -65281) (shr (shl (shr (shl a0-34 56) 56) 56) 48)))
|
||||
)
|
||||
(set! sv-912 *temp-string*)
|
||||
sv-912
|
||||
)
|
||||
(else
|
||||
(set! sv-384 format)
|
||||
(set! sv-400 (clear *temp-string*))
|
||||
(set! sv-416 "~0L~S ~30L~S~1L")
|
||||
(set! sv-432 (lookup-text! *common-text* (game-text-id on) #f))
|
||||
(let ((a3-7 (lookup-text! *common-text* (game-text-id off) #f)))
|
||||
(sv-384 sv-400 sv-416 sv-432 a3-7)
|
||||
)
|
||||
(set! sv-912 *temp-string*)
|
||||
sv-912
|
||||
(draw-percent-bar (- 75 (-> obj left-x-offset)) (+ s2-1 8) f0-12 (the-as int a3-5))
|
||||
)
|
||||
(set! sv-304 format)
|
||||
(let ((a0-42 (clear *temp-string*))
|
||||
(a1-13 "~D")
|
||||
(a2-12 (the int (-> (the-as (pointer float) (-> s3-0 s0-0 value-to-modify)))))
|
||||
)
|
||||
(sv-304 a0-42 a1-13 a2-12)
|
||||
)
|
||||
(set! sv-912 *temp-string*)
|
||||
(set! sv-128 (+ (the int (* 2.5 (-> (the-as (pointer float) (-> s3-0 s0-0 value-to-modify))))) -100))
|
||||
sv-128
|
||||
)
|
||||
(((game-option-type on-off))
|
||||
(cond
|
||||
((-> (the-as (pointer uint32) (-> s3-0 s0-0 value-to-modify)))
|
||||
(set! sv-320 format)
|
||||
(set! sv-336 (clear *temp-string*))
|
||||
(set! sv-352 "~30L~S~0L ~S")
|
||||
(set! sv-368 (lookup-text! *common-text* (game-text-id on) #f))
|
||||
(let ((a3-6 (lookup-text! *common-text* (game-text-id off) #f)))
|
||||
(sv-320 sv-336 sv-352 sv-368 a3-6)
|
||||
)
|
||||
(set! sv-912 *temp-string*)
|
||||
sv-912
|
||||
)
|
||||
(else
|
||||
(set! sv-384 format)
|
||||
(set! sv-400 (clear *temp-string*))
|
||||
(set! sv-416 "~0L~S ~30L~S~1L")
|
||||
(set! sv-432 (lookup-text! *common-text* (game-text-id on) #f))
|
||||
(let ((a3-7 (lookup-text! *common-text* (game-text-id off) #f)))
|
||||
(sv-384 sv-400 sv-416 sv-432 a3-7)
|
||||
)
|
||||
(set! sv-912 *temp-string*)
|
||||
sv-912
|
||||
)
|
||||
)
|
||||
((= v1-81 1)
|
||||
(set! sv-512 (-> obj language-selection))
|
||||
(set! sv-448 (-> (the-as (pointer uint64) (-> s3-0 s0-0 value-to-modify))))
|
||||
(if (and (zero? (scf-get-territory))
|
||||
(not (and (= *progress-cheat* 'language) (cpad-hold? 0 l2) (cpad-hold? 0 r2)))
|
||||
)
|
||||
(set! sv-464 5)
|
||||
(set! sv-464 6)
|
||||
)
|
||||
(if (-> obj language-transition)
|
||||
(set! (-> obj language-x-offset)
|
||||
(seekl (-> obj language-x-offset) 200 (the int (* 10.0 (-> *display* time-adjust-ratio))))
|
||||
)
|
||||
)
|
||||
(when (>= (-> obj language-x-offset) 100)
|
||||
(set! (-> obj language-selection) sv-448)
|
||||
(set! sv-512 sv-448)
|
||||
(set! (-> obj language-transition) #f)
|
||||
(set! (-> obj language-x-offset) 0)
|
||||
0
|
||||
)
|
||||
(((game-option-type language))
|
||||
(set! sv-512 (the-as int (-> obj language-selection)))
|
||||
(set! sv-448 (-> (the-as (pointer uint64) (-> s3-0 s0-0 value-to-modify))))
|
||||
(if (and (zero? (scf-get-territory))
|
||||
(not (and (= *progress-cheat* 'language) (cpad-hold? 0 l2) (cpad-hold? 0 r2)))
|
||||
)
|
||||
(set! sv-464 5)
|
||||
(set! sv-464 6)
|
||||
)
|
||||
(set! (-> sv-112 origin y) (the float (+ s2-1 3)))
|
||||
(let ((a0-62 sv-112))
|
||||
(set! (-> a0-62 color) (font-color lighter-lighter-blue))
|
||||
(if (-> obj language-transition)
|
||||
(set! (-> obj language-x-offset)
|
||||
(seekl (-> obj language-x-offset) 200 (the int (* 10.0 (-> *display* time-adjust-ratio))))
|
||||
)
|
||||
)
|
||||
(when (>= (-> obj language-x-offset) 100)
|
||||
(set! (-> obj language-selection) (the-as language-enum sv-448))
|
||||
(set! sv-512 (the-as int sv-448))
|
||||
(set! (-> obj language-transition) #f)
|
||||
(set! (-> obj language-x-offset) 0)
|
||||
0
|
||||
(set! sv-480 (mod (the-as int (+ sv-512 1)) sv-464))
|
||||
(let ((a0-66 (mod (+ sv-464 -1 sv-512) sv-464))
|
||||
(v1-153 (mod (the-as int (+ sv-512 2)) sv-464))
|
||||
)
|
||||
(set! sv-496 (mod (+ sv-464 -2 sv-512) sv-464))
|
||||
(cond
|
||||
((-> obj language-direction)
|
||||
(let ((a2-22 (- 200 (+ (-> obj language-x-offset) 100))))
|
||||
(print-language-name a0-66 sv-112 a2-22 #f)
|
||||
)
|
||||
(let ((a2-23 (+ (-> obj language-x-offset) 100)))
|
||||
(cond
|
||||
((< a2-23 150)
|
||||
(let ((t9-27 print-language-name)
|
||||
(a1-30 sv-112)
|
||||
(a3-9 #t)
|
||||
)
|
||||
(t9-27 sv-480 a1-30 a2-23 a3-9)
|
||||
)
|
||||
)
|
||||
(set! (-> sv-112 origin y) (the float (+ s2-1 3)))
|
||||
(let ((a0-62 sv-112))
|
||||
(set! (-> a0-62 color) (font-color lighter-lighter-blue))
|
||||
)
|
||||
0
|
||||
(set! sv-480 (mod (+ sv-512 1) sv-464))
|
||||
(let ((a0-66 (mod (+ sv-464 -1 sv-512) sv-464))
|
||||
(v1-153 (mod (+ sv-512 2) sv-464))
|
||||
)
|
||||
(set! sv-496 (mod (+ sv-464 -2 sv-512) sv-464))
|
||||
(cond
|
||||
((-> obj language-direction)
|
||||
(let ((a2-22 (- 200 (+ (-> obj language-x-offset) 100))))
|
||||
(print-language-name a0-66 sv-112 a2-22 #f)
|
||||
)
|
||||
(let ((a2-23 (+ (-> obj language-x-offset) 100)))
|
||||
(cond
|
||||
((< a2-23 150)
|
||||
(let ((t9-27 print-language-name)
|
||||
(a1-30 sv-112)
|
||||
(a3-9 #t)
|
||||
)
|
||||
(t9-27 sv-480 a1-30 a2-23 a3-9)
|
||||
)
|
||||
(else
|
||||
(let ((a2-24 (- 200 (-> obj language-x-offset)))
|
||||
(t9-28 print-language-name)
|
||||
(a1-31 sv-112)
|
||||
(a3-10 #f)
|
||||
)
|
||||
(t9-28 sv-496 a1-31 a2-24 a3-10)
|
||||
)
|
||||
)
|
||||
(else
|
||||
(let ((a2-24 (- 200 (-> obj language-x-offset)))
|
||||
(t9-28 print-language-name)
|
||||
(a1-31 sv-112)
|
||||
(a3-10 #f)
|
||||
)
|
||||
(t9-28 sv-496 a1-31 a2-24 a3-10)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(else
|
||||
(let ((a2-25 (+ (-> obj language-x-offset) 100)))
|
||||
(cond
|
||||
((< a2-25 150)
|
||||
(print-language-name a0-66 sv-112 a2-25 #f)
|
||||
)
|
||||
(else
|
||||
(let ((a2-26 (- 200 (-> obj language-x-offset))))
|
||||
(print-language-name v1-153 sv-112 a2-26 #t)
|
||||
)
|
||||
)
|
||||
(else
|
||||
(let ((a2-25 (+ (-> obj language-x-offset) 100)))
|
||||
(cond
|
||||
((< a2-25 150)
|
||||
(print-language-name a0-66 sv-112 a2-25 #f)
|
||||
)
|
||||
(else
|
||||
(let ((a2-26 (- 200 (-> obj language-x-offset))))
|
||||
(print-language-name v1-153 sv-112 a2-26 #t)
|
||||
)
|
||||
)
|
||||
)
|
||||
(let ((a2-27 (- 200 (+ (-> obj language-x-offset) 100))))
|
||||
(print-language-name sv-480 sv-112 a2-27 #t)
|
||||
)
|
||||
)
|
||||
(let ((a2-27 (- 200 (+ (-> obj language-x-offset) 100))))
|
||||
(print-language-name sv-480 sv-112 a2-27 #t)
|
||||
)
|
||||
)
|
||||
)
|
||||
(when (not (-> obj language-transition))
|
||||
(let ((a0-75 sv-112))
|
||||
(set! (-> a0-75 color) (font-color yellow-green-2))
|
||||
)
|
||||
(when (not (-> obj language-transition))
|
||||
(let ((a0-75 sv-112))
|
||||
(set! (-> a0-75 color) (font-color yellow-green-2))
|
||||
)
|
||||
)
|
||||
(let ((t9-32 print-language-name)
|
||||
(a1-37 sv-112)
|
||||
(a2-28 (-> obj language-x-offset))
|
||||
(a3-14 (-> obj language-direction))
|
||||
)
|
||||
)
|
||||
(let ((t9-32 print-language-name)
|
||||
(a1-37 sv-112)
|
||||
(a2-28 (-> obj language-x-offset))
|
||||
(a3-14 (-> obj language-direction))
|
||||
)
|
||||
(t9-32 (the-as int sv-512) a1-37 a2-28 (the-as symbol a3-14))
|
||||
)
|
||||
(t9-32 sv-512 a1-37 a2-28 a3-14)
|
||||
)
|
||||
((= v1-81 3)
|
||||
(set! sv-912 (lookup-text! *common-text* (game-text-id move-dpad) #f))
|
||||
sv-912
|
||||
)
|
||||
((= v1-81 4)
|
||||
(cond
|
||||
((= (-> (the-as (pointer uint32) (-> s3-0 s0-0 value-to-modify))) 'aspect4x3)
|
||||
(set! sv-528 format)
|
||||
(set! sv-544 (clear *temp-string*))
|
||||
(set! sv-560 "~30L~S~0L ~S")
|
||||
(set! sv-576 (lookup-text! *common-text* (game-text-id 4x3) #f))
|
||||
(let ((a3-15 (lookup-text! *common-text* (game-text-id 16x9) #f)))
|
||||
(sv-528 sv-544 sv-560 sv-576 a3-15)
|
||||
)
|
||||
(set! sv-912 *temp-string*)
|
||||
sv-912
|
||||
)
|
||||
(((game-option-type center-screen))
|
||||
(set! sv-912 (lookup-text! *common-text* (game-text-id move-dpad) #f))
|
||||
sv-912
|
||||
)
|
||||
(((game-option-type aspect-ratio))
|
||||
(cond
|
||||
((= (-> (the-as (pointer uint32) (-> s3-0 s0-0 value-to-modify))) 'aspect4x3)
|
||||
(set! sv-528 format)
|
||||
(set! sv-544 (clear *temp-string*))
|
||||
(set! sv-560 "~30L~S~0L ~S")
|
||||
(set! sv-576 (lookup-text! *common-text* (game-text-id 4x3) #f))
|
||||
(let ((a3-15 (lookup-text! *common-text* (game-text-id 16x9) #f)))
|
||||
(sv-528 sv-544 sv-560 sv-576 a3-15)
|
||||
)
|
||||
(else
|
||||
(set! sv-592 format)
|
||||
(set! sv-608 (clear *temp-string*))
|
||||
(set! sv-624 "~0L~S ~30L~S~1L")
|
||||
(set! sv-640 (lookup-text! *common-text* (game-text-id 4x3) #f))
|
||||
(let ((a3-16 (lookup-text! *common-text* (game-text-id 16x9) #f)))
|
||||
(sv-592 sv-608 sv-624 sv-640 a3-16)
|
||||
)
|
||||
(set! sv-912 *temp-string*)
|
||||
sv-912
|
||||
(set! sv-912 *temp-string*)
|
||||
sv-912
|
||||
)
|
||||
(else
|
||||
(set! sv-592 format)
|
||||
(set! sv-608 (clear *temp-string*))
|
||||
(set! sv-624 "~0L~S ~30L~S~1L")
|
||||
(set! sv-640 (lookup-text! *common-text* (game-text-id 4x3) #f))
|
||||
(let ((a3-16 (lookup-text! *common-text* (game-text-id 16x9) #f)))
|
||||
(sv-592 sv-608 sv-624 sv-640 a3-16)
|
||||
)
|
||||
(set! sv-912 *temp-string*)
|
||||
sv-912
|
||||
)
|
||||
)
|
||||
((= v1-81 5)
|
||||
(cond
|
||||
((= (-> (the-as (pointer uint32) (-> s3-0 s0-0 value-to-modify))) 'ntsc)
|
||||
(set! sv-656 format)
|
||||
(set! sv-672 (clear *temp-string*))
|
||||
(set! sv-688 "~0L~S ~30L~S~1L")
|
||||
(set! sv-704 (lookup-text! *common-text* (game-text-id 50hz) #f))
|
||||
(let ((a3-17 (lookup-text! *common-text* (game-text-id 60hz) #f)))
|
||||
(sv-656 sv-672 sv-688 sv-704 a3-17)
|
||||
)
|
||||
(set! sv-912 *temp-string*)
|
||||
sv-912
|
||||
)
|
||||
(((game-option-type video-mode))
|
||||
(cond
|
||||
((= (-> (the-as (pointer uint32) (-> s3-0 s0-0 value-to-modify))) 'ntsc)
|
||||
(set! sv-656 format)
|
||||
(set! sv-672 (clear *temp-string*))
|
||||
(set! sv-688 "~0L~S ~30L~S~1L")
|
||||
(set! sv-704 (lookup-text! *common-text* (game-text-id 50hz) #f))
|
||||
(let ((a3-17 (lookup-text! *common-text* (game-text-id 60hz) #f)))
|
||||
(sv-656 sv-672 sv-688 sv-704 a3-17)
|
||||
)
|
||||
(else
|
||||
(set! sv-720 format)
|
||||
(set! sv-736 (clear *temp-string*))
|
||||
(set! sv-752 "~30L~S~0L ~S")
|
||||
(set! sv-768 (lookup-text! *common-text* (game-text-id 50hz) #f))
|
||||
(let ((a3-18 (lookup-text! *common-text* (game-text-id 60hz) #f)))
|
||||
(sv-720 sv-736 sv-752 sv-768 a3-18)
|
||||
)
|
||||
(set! sv-912 *temp-string*)
|
||||
sv-912
|
||||
(set! sv-912 *temp-string*)
|
||||
sv-912
|
||||
)
|
||||
(else
|
||||
(set! sv-720 format)
|
||||
(set! sv-736 (clear *temp-string*))
|
||||
(set! sv-752 "~30L~S~0L ~S")
|
||||
(set! sv-768 (lookup-text! *common-text* (game-text-id 50hz) #f))
|
||||
(let ((a3-18 (lookup-text! *common-text* (game-text-id 60hz) #f)))
|
||||
(sv-720 sv-736 sv-752 sv-768 a3-18)
|
||||
)
|
||||
(set! sv-912 *temp-string*)
|
||||
sv-912
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(else
|
||||
(let ((v1-195 (-> s3-0 s0-0 option-type)))
|
||||
(cond
|
||||
((or (zero? v1-195) (= v1-195 3) (= v1-195 4) (= v1-195 5))
|
||||
(set! sv-912 (lookup-text! *common-text* (-> s3-0 s0-0 name) #f))
|
||||
sv-912
|
||||
)
|
||||
((= v1-195 2)
|
||||
(set! sv-784 format)
|
||||
(set! sv-800 (clear *temp-string*))
|
||||
(set! sv-816 "~S: ~S")
|
||||
(set! sv-832 (lookup-text! *common-text* (-> s3-0 s0-0 name) #f))
|
||||
(let ((a3-19 (if (-> (the-as (pointer uint32) (-> s3-0 s0-0 value-to-modify)))
|
||||
(lookup-text! *common-text* (game-text-id on) #f)
|
||||
(lookup-text! *common-text* (game-text-id off) #f)
|
||||
)
|
||||
)
|
||||
)
|
||||
(sv-784 sv-800 sv-816 sv-832 a3-19)
|
||||
)
|
||||
(set! sv-912 *temp-string*)
|
||||
sv-912
|
||||
)
|
||||
((= v1-195 1)
|
||||
(set! sv-848 format)
|
||||
(set! sv-864 (clear *temp-string*))
|
||||
(set! sv-880 "~S: ~S")
|
||||
(set! sv-896 (lookup-text! *common-text* (-> s3-0 s0-0 name) #f))
|
||||
(let ((a3-20 (lookup-text!
|
||||
*common-text*
|
||||
(-> *language-name-remap* (-> (the-as (pointer uint64) (-> s3-0 s0-0 value-to-modify))))
|
||||
#f
|
||||
)
|
||||
)
|
||||
)
|
||||
(sv-848 sv-864 sv-880 sv-896 a3-20)
|
||||
)
|
||||
(set! sv-912 *temp-string*)
|
||||
sv-912
|
||||
)
|
||||
(case (-> s3-0 s0-0 option-type)
|
||||
(((game-option-type slider)
|
||||
(game-option-type center-screen)
|
||||
(game-option-type aspect-ratio)
|
||||
(game-option-type video-mode)
|
||||
)
|
||||
(set! sv-912 (lookup-text! *common-text* (-> s3-0 s0-0 name) #f))
|
||||
sv-912
|
||||
)
|
||||
(((game-option-type on-off))
|
||||
(set! sv-784 format)
|
||||
(set! sv-800 (clear *temp-string*))
|
||||
(set! sv-816 "~S: ~S")
|
||||
(set! sv-832 (lookup-text! *common-text* (-> s3-0 s0-0 name) #f))
|
||||
(let ((a3-19 (if (-> (the-as (pointer uint32) (-> s3-0 s0-0 value-to-modify)))
|
||||
(lookup-text! *common-text* (game-text-id on) #f)
|
||||
(lookup-text! *common-text* (game-text-id off) #f)
|
||||
)
|
||||
)
|
||||
)
|
||||
(sv-784 sv-800 sv-816 sv-832 a3-19)
|
||||
)
|
||||
(set! sv-912 *temp-string*)
|
||||
sv-912
|
||||
)
|
||||
(((game-option-type language))
|
||||
(set! sv-848 format)
|
||||
(set! sv-864 (clear *temp-string*))
|
||||
(set! sv-880 "~S: ~S")
|
||||
(set! sv-896 (lookup-text! *common-text* (-> s3-0 s0-0 name) #f))
|
||||
(let ((a3-20 (lookup-text!
|
||||
*common-text*
|
||||
(-> *language-name-remap* (-> (the-as (pointer uint64) (-> s3-0 s0-0 value-to-modify))))
|
||||
#f
|
||||
)
|
||||
)
|
||||
)
|
||||
(sv-848 sv-864 sv-880 sv-896 a3-20)
|
||||
)
|
||||
(set! sv-912 *temp-string*)
|
||||
sv-912
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
+1429
-1352
File diff suppressed because it is too large
Load Diff
+134
-144
@@ -10,7 +10,7 @@
|
||||
(starting-state progress-screen :offset-assert 24)
|
||||
(last-slot-saved int32 :offset-assert 32)
|
||||
(slider-backup float :offset-assert 36)
|
||||
(language-backup int64 :offset-assert 40)
|
||||
(language-backup language-enum :offset-assert 40)
|
||||
(on-off-backup symbol :offset-assert 48)
|
||||
(center-x-backup int32 :offset-assert 52)
|
||||
(center-y-backup int32 :offset-assert 56)
|
||||
@@ -1065,7 +1065,7 @@
|
||||
)
|
||||
|
||||
;; definition for method 32 of type progress
|
||||
(defmethod dummy-32 progress ((obj progress))
|
||||
(defmethod can-go-back? progress ((obj progress))
|
||||
(let ((v1-2 (-> *progress-process* 0 display-state))
|
||||
(a1-1 (-> *progress-state* starting-state))
|
||||
)
|
||||
@@ -1095,7 +1095,7 @@
|
||||
|
||||
;; definition for method 19 of type progress
|
||||
;; INFO: Return type mismatch object vs symbol.
|
||||
(defmethod dummy-19 progress ((obj progress))
|
||||
(defmethod visible? progress ((obj progress))
|
||||
(the-as symbol (and *progress-process* (zero? (-> *progress-process* 0 in-out-position))))
|
||||
)
|
||||
|
||||
@@ -1147,7 +1147,7 @@
|
||||
)
|
||||
|
||||
;; definition for method 53 of type progress
|
||||
(defmethod dummy-53 progress ((obj progress) (arg0 progress-screen))
|
||||
(defmethod set-memcard-screen progress ((obj progress) (arg0 progress-screen))
|
||||
(let ((s4-0 (-> obj card-info))
|
||||
(gp-0 arg0)
|
||||
)
|
||||
@@ -1250,7 +1250,7 @@
|
||||
|
||||
;; definition for method 31 of type progress
|
||||
;; INFO: Return type mismatch int vs none.
|
||||
(defmethod dummy-31 progress ((obj progress))
|
||||
(defmethod respond-memcard progress ((obj progress))
|
||||
(let ((s5-0 (-> obj card-info)))
|
||||
(when (and s5-0 (not (-> obj in-transition)))
|
||||
(when (or (cpad-pressed? 0 x) (cpad-pressed? 0 circle))
|
||||
@@ -1307,14 +1307,12 @@
|
||||
(sound-play-by-name (static-sound-name "start-options") (new-sound-id) 1024 0 0 1 #t)
|
||||
(set! (-> obj next-display-state) (progress-screen memcard-saving))
|
||||
)
|
||||
((begin
|
||||
(sound-play-by-name (static-sound-name "cursor-options") (new-sound-id) 1024 0 0 1 #t)
|
||||
(= (-> obj display-state-stack 0) (progress-screen title))
|
||||
)
|
||||
(set! (-> obj next-display-state) (progress-screen save-game-title))
|
||||
)
|
||||
(else
|
||||
(set! (-> obj next-display-state) (progress-screen save-game))
|
||||
(sound-play-by-name (static-sound-name "cursor-options") (new-sound-id) 1024 0 0 1 #t)
|
||||
(if (= (-> obj display-state-stack 0) (progress-screen title))
|
||||
(set! (-> obj next-display-state) (progress-screen save-game-title))
|
||||
(set! (-> obj next-display-state) (progress-screen save-game))
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
@@ -1443,7 +1441,7 @@
|
||||
|
||||
;; definition for method 29 of type progress
|
||||
;; INFO: Return type mismatch int vs none.
|
||||
(defmethod dummy-29 progress ((obj progress))
|
||||
(defmethod respond-common progress ((obj progress))
|
||||
(mc-get-slot-info 0 *progress-save-info*)
|
||||
(set! (-> obj card-info) *progress-save-info*)
|
||||
(let ((s5-0 (-> *options-remap* (-> obj display-state))))
|
||||
@@ -1467,7 +1465,7 @@
|
||||
(when (-> obj selected-option)
|
||||
(let ((v1-34 #f))
|
||||
(case (-> s5-0 (-> obj option-index) option-type)
|
||||
((3)
|
||||
(((game-option-type center-screen))
|
||||
(when (< -48 (-> *setting-control* current screeny))
|
||||
(set! v1-34 #t)
|
||||
(+! (-> *setting-control* default screeny) -1)
|
||||
@@ -1508,7 +1506,7 @@
|
||||
(when (-> obj selected-option)
|
||||
(let ((v1-69 #f))
|
||||
(case (-> s5-0 (-> obj option-index) option-type)
|
||||
((3)
|
||||
(((game-option-type center-screen))
|
||||
(when (< (-> *setting-control* current screeny) 48)
|
||||
(set! v1-69 #t)
|
||||
(+! (-> *setting-control* default screeny) 1)
|
||||
@@ -1529,10 +1527,10 @@
|
||||
((cpad-hold? 0 left)
|
||||
(cond
|
||||
((cpad-pressed? 0 left)
|
||||
(when (or (-> obj selected-option) (= (-> s5-0 (-> obj option-index) option-type) 7))
|
||||
(when (or (-> obj selected-option) (= (-> s5-0 (-> obj option-index) option-type) (game-option-type yes-no)))
|
||||
(let ((s4-5 #f))
|
||||
(case (-> s5-0 (-> obj option-index) option-type)
|
||||
((2 7)
|
||||
(((game-option-type on-off) (game-option-type yes-no))
|
||||
(when (not (-> (the-as (pointer uint32) (-> s5-0 (-> obj option-index) value-to-modify))))
|
||||
(set! s4-5 #t)
|
||||
(if (= (-> s5-0 (-> obj option-index) value-to-modify) (&-> *setting-control* current vibration))
|
||||
@@ -1541,15 +1539,15 @@
|
||||
)
|
||||
(set! (-> (the-as (pointer symbol) (-> s5-0 (-> obj option-index) value-to-modify)) 0) #t)
|
||||
)
|
||||
((4)
|
||||
(((game-option-type aspect-ratio))
|
||||
(set! s4-5 (= (-> (the-as (pointer symbol) (-> s5-0 (-> obj option-index) value-to-modify)) 0) 'aspect16x9))
|
||||
(set! (-> (the-as (pointer symbol) (-> s5-0 (-> obj option-index) value-to-modify)) 0) 'aspect4x3)
|
||||
)
|
||||
((5)
|
||||
(((game-option-type video-mode))
|
||||
(set! s4-5 (= (-> (the-as (pointer symbol) (-> s5-0 (-> obj option-index) value-to-modify)) 0) 'ntsc))
|
||||
(set! (-> (the-as (pointer symbol) (-> s5-0 (-> obj option-index) value-to-modify)) 0) 'pal)
|
||||
)
|
||||
((1)
|
||||
(((game-option-type language))
|
||||
(if (> (the-as int (-> (the-as (pointer uint64) (-> s5-0 (-> obj option-index) value-to-modify)))) 0)
|
||||
(+! (-> (the-as (pointer uint64) (-> s5-0 (-> obj option-index) value-to-modify))) -1)
|
||||
(set! (-> (the-as (pointer int64) (-> s5-0 (-> obj option-index) value-to-modify)))
|
||||
@@ -1575,35 +1573,33 @@
|
||||
(else
|
||||
(when (-> obj selected-option)
|
||||
(let ((v1-157 #f))
|
||||
(let ((a0-101 (-> s5-0 (-> obj option-index) option-type)))
|
||||
(cond
|
||||
((zero? a0-101)
|
||||
(cond
|
||||
((>= (-> (the-as (pointer float) (-> s5-0 (-> obj option-index) value-to-modify)))
|
||||
(+ 1.0 (-> s5-0 (-> obj option-index) param1))
|
||||
(case (-> s5-0 (-> obj option-index) option-type)
|
||||
(((game-option-type slider))
|
||||
(cond
|
||||
((>= (-> (the-as (pointer float) (-> s5-0 (-> obj option-index) value-to-modify)))
|
||||
(+ 1.0 (-> s5-0 (-> obj option-index) param1))
|
||||
)
|
||||
(set! (-> (the-as (pointer float) (-> s5-0 (-> obj option-index) value-to-modify)))
|
||||
(+ -1.0 (-> (the-as (pointer float) (-> s5-0 (-> obj option-index) value-to-modify))))
|
||||
)
|
||||
(set! (-> (the-as (pointer float) (-> s5-0 (-> obj option-index) value-to-modify)))
|
||||
(+ -1.0 (-> (the-as (pointer float) (-> s5-0 (-> obj option-index) value-to-modify))))
|
||||
)
|
||||
(set! v1-157 #t)
|
||||
)
|
||||
((< (-> s5-0 (-> obj option-index) param1)
|
||||
(-> (the-as (pointer float) (-> s5-0 (-> obj option-index) value-to-modify)))
|
||||
)
|
||||
(set! (-> (the-as (pointer float) (-> s5-0 (-> obj option-index) value-to-modify)))
|
||||
(-> s5-0 (-> obj option-index) param1)
|
||||
)
|
||||
(set! v1-157 #t)
|
||||
)
|
||||
)
|
||||
(set! v1-157 #t)
|
||||
)
|
||||
((< (-> s5-0 (-> obj option-index) param1)
|
||||
(-> (the-as (pointer float) (-> s5-0 (-> obj option-index) value-to-modify)))
|
||||
)
|
||||
(set! (-> (the-as (pointer float) (-> s5-0 (-> obj option-index) value-to-modify)))
|
||||
(-> s5-0 (-> obj option-index) param1)
|
||||
)
|
||||
(set! v1-157 #t)
|
||||
)
|
||||
)
|
||||
((= a0-101 3)
|
||||
(when (< -96 (-> *setting-control* default screenx))
|
||||
(set! v1-157 #t)
|
||||
(+! (-> *setting-control* default screenx) -1)
|
||||
)
|
||||
)
|
||||
(((game-option-type center-screen))
|
||||
(when (< -96 (-> *setting-control* default screenx))
|
||||
(set! v1-157 #t)
|
||||
(+! (-> *setting-control* default screenx) -1)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(when v1-157
|
||||
(let ((f30-0 100.0))
|
||||
@@ -1626,22 +1622,22 @@
|
||||
((cpad-hold? 0 right)
|
||||
(cond
|
||||
((cpad-pressed? 0 right)
|
||||
(when (or (-> obj selected-option) (= (-> s5-0 (-> obj option-index) option-type) 7))
|
||||
(when (or (-> obj selected-option) (= (-> s5-0 (-> obj option-index) option-type) (game-option-type yes-no)))
|
||||
(let ((v1-217 (the-as object #f)))
|
||||
(case (-> s5-0 (-> obj option-index) option-type)
|
||||
((2 7)
|
||||
(((game-option-type on-off) (game-option-type yes-no))
|
||||
(set! v1-217 (-> (the-as (pointer uint32) (-> s5-0 (-> obj option-index) value-to-modify))))
|
||||
(set! (-> (the-as (pointer symbol) (-> s5-0 (-> obj option-index) value-to-modify)) 0) #f)
|
||||
)
|
||||
((4)
|
||||
(((game-option-type aspect-ratio))
|
||||
(set! v1-217 (= (-> (the-as (pointer symbol) (-> s5-0 (-> obj option-index) value-to-modify)) 0) 'aspect4x3))
|
||||
(set! (-> (the-as (pointer symbol) (-> s5-0 (-> obj option-index) value-to-modify)) 0) 'aspect16x9)
|
||||
)
|
||||
((5)
|
||||
(((game-option-type video-mode))
|
||||
(set! v1-217 (= (-> (the-as (pointer symbol) (-> s5-0 (-> obj option-index) value-to-modify)) 0) 'pal))
|
||||
(set! (-> (the-as (pointer symbol) (-> s5-0 (-> obj option-index) value-to-modify)) 0) 'ntsc)
|
||||
)
|
||||
((1)
|
||||
(((game-option-type language))
|
||||
(let ((v1-243 (if (and (zero? (scf-get-territory))
|
||||
(not (and (= *progress-cheat* 'language) (cpad-hold? 0 l2) (cpad-hold? 0 r2)))
|
||||
)
|
||||
@@ -1674,35 +1670,33 @@
|
||||
(else
|
||||
(when (-> obj selected-option)
|
||||
(let ((v1-263 #f))
|
||||
(let ((a0-177 (-> s5-0 (-> obj option-index) option-type)))
|
||||
(cond
|
||||
((zero? a0-177)
|
||||
(cond
|
||||
((>= (+ -1.0 (-> s5-0 (-> obj option-index) param2))
|
||||
(-> (the-as (pointer float) (-> s5-0 (-> obj option-index) value-to-modify)))
|
||||
(case (-> s5-0 (-> obj option-index) option-type)
|
||||
(((game-option-type slider))
|
||||
(cond
|
||||
((>= (+ -1.0 (-> s5-0 (-> obj option-index) param2))
|
||||
(-> (the-as (pointer float) (-> s5-0 (-> obj option-index) value-to-modify)))
|
||||
)
|
||||
(set! (-> (the-as (pointer float) (-> s5-0 (-> obj option-index) value-to-modify)))
|
||||
(+ 1.0 (-> (the-as (pointer float) (-> s5-0 (-> obj option-index) value-to-modify))))
|
||||
)
|
||||
(set! (-> (the-as (pointer float) (-> s5-0 (-> obj option-index) value-to-modify)))
|
||||
(+ 1.0 (-> (the-as (pointer float) (-> s5-0 (-> obj option-index) value-to-modify))))
|
||||
)
|
||||
(set! v1-263 #t)
|
||||
)
|
||||
((< (-> (the-as (pointer float) (-> s5-0 (-> obj option-index) value-to-modify)))
|
||||
(-> s5-0 (-> obj option-index) param2)
|
||||
)
|
||||
(set! (-> (the-as (pointer float) (-> s5-0 (-> obj option-index) value-to-modify)))
|
||||
(-> s5-0 (-> obj option-index) param2)
|
||||
)
|
||||
(set! v1-263 #t)
|
||||
)
|
||||
)
|
||||
(set! v1-263 #t)
|
||||
)
|
||||
((< (-> (the-as (pointer float) (-> s5-0 (-> obj option-index) value-to-modify)))
|
||||
(-> s5-0 (-> obj option-index) param2)
|
||||
)
|
||||
(set! (-> (the-as (pointer float) (-> s5-0 (-> obj option-index) value-to-modify)))
|
||||
(-> s5-0 (-> obj option-index) param2)
|
||||
)
|
||||
(set! v1-263 #t)
|
||||
)
|
||||
)
|
||||
((= a0-177 3)
|
||||
(when (< (-> *setting-control* default screenx) 96)
|
||||
(set! v1-263 #t)
|
||||
(+! (-> *setting-control* default screenx) 1)
|
||||
)
|
||||
)
|
||||
(((game-option-type center-screen))
|
||||
(when (< (-> *setting-control* default screenx) 96)
|
||||
(set! v1-263 #t)
|
||||
(+! (-> *setting-control* default screenx) 1)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(when v1-263
|
||||
(let ((f30-1 100.0))
|
||||
@@ -1725,38 +1719,36 @@
|
||||
((or (cpad-pressed? 0 square) (cpad-pressed? 0 triangle))
|
||||
(cond
|
||||
((-> obj selected-option)
|
||||
(let ((v1-319 (-> s5-0 (-> obj option-index) option-type)))
|
||||
(cond
|
||||
((zero? v1-319)
|
||||
(set! (-> (the-as (pointer float) (-> s5-0 (-> obj option-index) value-to-modify)))
|
||||
(-> *progress-state* slider-backup)
|
||||
)
|
||||
)
|
||||
((= v1-319 1)
|
||||
(set! (-> (the-as (pointer int64) (-> s5-0 (-> obj option-index) value-to-modify)))
|
||||
(-> *progress-state* language-backup)
|
||||
)
|
||||
)
|
||||
((= v1-319 2)
|
||||
(set! (-> (the-as (pointer symbol) (-> s5-0 (-> obj option-index) value-to-modify)) 0)
|
||||
(-> *progress-state* on-off-backup)
|
||||
)
|
||||
)
|
||||
((= v1-319 3)
|
||||
(set! (-> *setting-control* default screenx) (-> *progress-state* center-x-backup))
|
||||
(set! (-> *setting-control* default screeny) (-> *progress-state* center-y-backup))
|
||||
)
|
||||
((or (= v1-319 4) (= v1-319 5))
|
||||
(set! (-> (the-as (pointer symbol) (-> s5-0 (-> obj option-index) value-to-modify)) 0)
|
||||
(-> *progress-state* aspect-ratio-backup)
|
||||
)
|
||||
)
|
||||
)
|
||||
(case (-> s5-0 (-> obj option-index) option-type)
|
||||
(((game-option-type slider))
|
||||
(set! (-> (the-as (pointer float) (-> s5-0 (-> obj option-index) value-to-modify)))
|
||||
(-> *progress-state* slider-backup)
|
||||
)
|
||||
)
|
||||
(((game-option-type language))
|
||||
(set! (-> (the-as (pointer language-enum) (-> s5-0 (-> obj option-index) value-to-modify)) 0)
|
||||
(-> *progress-state* language-backup)
|
||||
)
|
||||
)
|
||||
(((game-option-type on-off))
|
||||
(set! (-> (the-as (pointer symbol) (-> s5-0 (-> obj option-index) value-to-modify)) 0)
|
||||
(-> *progress-state* on-off-backup)
|
||||
)
|
||||
)
|
||||
(((game-option-type center-screen))
|
||||
(set! (-> *setting-control* default screenx) (-> *progress-state* center-x-backup))
|
||||
(set! (-> *setting-control* default screeny) (-> *progress-state* center-y-backup))
|
||||
)
|
||||
(((game-option-type aspect-ratio) (game-option-type video-mode))
|
||||
(set! (-> (the-as (pointer symbol) (-> s5-0 (-> obj option-index) value-to-modify)) 0)
|
||||
(-> *progress-state* aspect-ratio-backup)
|
||||
)
|
||||
)
|
||||
)
|
||||
(sound-play-by-name (static-sound-name "cursor-options") (new-sound-id) 1024 0 0 1 #t)
|
||||
(set! (-> obj selected-option) #f)
|
||||
)
|
||||
((or (dummy-32 obj)
|
||||
((or (can-go-back? obj)
|
||||
(= (-> obj display-state) (progress-screen load-game))
|
||||
(= (-> obj display-state) (progress-screen save-game))
|
||||
(= (-> obj display-state) (progress-screen save-game-title))
|
||||
@@ -1778,7 +1770,7 @@
|
||||
(cond
|
||||
((not (-> obj selected-option))
|
||||
(cond
|
||||
((= (-> s5-0 (-> obj option-index) option-type) 6)
|
||||
((= (-> s5-0 (-> obj option-index) option-type) (game-option-type menu))
|
||||
(logclear! (-> *cpad-list* cpads 0 button0-abs 0) (pad-buttons x))
|
||||
(logclear! (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons x))
|
||||
(logclear! (-> *cpad-list* cpads 0 button0-abs 0) (pad-buttons circle))
|
||||
@@ -1788,11 +1780,11 @@
|
||||
(set! (-> obj next-display-state) (the-as progress-screen (-> s5-0 (-> obj option-index) param3)))
|
||||
(case (-> obj next-display-state)
|
||||
(((progress-screen load-game) (progress-screen save-game) (progress-screen save-game-title))
|
||||
(set! (-> obj next-display-state) (dummy-53 obj (-> obj next-display-state)))
|
||||
(set! (-> obj next-display-state) (set-memcard-screen obj (-> obj next-display-state)))
|
||||
)
|
||||
)
|
||||
)
|
||||
((= (-> s5-0 (-> obj option-index) option-type) 8)
|
||||
((= (-> s5-0 (-> obj option-index) option-type) (game-option-type button))
|
||||
(cond
|
||||
((= (-> s5-0 (-> obj option-index) name) (game-text-id exit-demo))
|
||||
(set! *master-exit* 'force)
|
||||
@@ -1808,34 +1800,32 @@
|
||||
)
|
||||
)
|
||||
)
|
||||
((!= (-> s5-0 (-> obj option-index) option-type) 7)
|
||||
(let ((v1-427 (-> s5-0 (-> obj option-index) option-type)))
|
||||
(cond
|
||||
((zero? v1-427)
|
||||
(set! (-> *progress-state* slider-backup)
|
||||
(-> (the-as (pointer float) (-> s5-0 (-> obj option-index) value-to-modify)))
|
||||
)
|
||||
)
|
||||
((= v1-427 1)
|
||||
(set! (-> *progress-state* language-backup)
|
||||
(the-as int (-> (the-as (pointer uint64) (-> s5-0 (-> obj option-index) value-to-modify))))
|
||||
)
|
||||
)
|
||||
((= v1-427 2)
|
||||
(set! (-> *progress-state* on-off-backup)
|
||||
(the-as symbol (-> (the-as (pointer uint32) (-> s5-0 (-> obj option-index) value-to-modify))))
|
||||
)
|
||||
)
|
||||
((= v1-427 3)
|
||||
(set! (-> *progress-state* center-x-backup) (-> *setting-control* default screenx))
|
||||
(set! (-> *progress-state* center-y-backup) (-> *setting-control* default screeny))
|
||||
)
|
||||
((or (= v1-427 4) (= v1-427 5))
|
||||
(set! (-> *progress-state* aspect-ratio-backup)
|
||||
(the-as symbol (-> (the-as (pointer uint32) (-> s5-0 (-> obj option-index) value-to-modify))))
|
||||
)
|
||||
)
|
||||
)
|
||||
((!= (-> s5-0 (-> obj option-index) option-type) (game-option-type yes-no))
|
||||
(case (-> s5-0 (-> obj option-index) option-type)
|
||||
(((game-option-type slider))
|
||||
(set! (-> *progress-state* slider-backup)
|
||||
(-> (the-as (pointer float) (-> s5-0 (-> obj option-index) value-to-modify)))
|
||||
)
|
||||
)
|
||||
(((game-option-type language))
|
||||
(set! (-> *progress-state* language-backup)
|
||||
(the-as language-enum (-> (the-as (pointer uint64) (-> s5-0 (-> obj option-index) value-to-modify))))
|
||||
)
|
||||
)
|
||||
(((game-option-type on-off))
|
||||
(set! (-> *progress-state* on-off-backup)
|
||||
(the-as symbol (-> (the-as (pointer uint32) (-> s5-0 (-> obj option-index) value-to-modify))))
|
||||
)
|
||||
)
|
||||
(((game-option-type center-screen))
|
||||
(set! (-> *progress-state* center-x-backup) (-> *setting-control* default screenx))
|
||||
(set! (-> *progress-state* center-y-backup) (-> *setting-control* default screeny))
|
||||
)
|
||||
(((game-option-type aspect-ratio) (game-option-type video-mode))
|
||||
(set! (-> *progress-state* aspect-ratio-backup)
|
||||
(the-as symbol (-> (the-as (pointer uint32) (-> s5-0 (-> obj option-index) value-to-modify))))
|
||||
)
|
||||
)
|
||||
)
|
||||
(sound-play-by-name (static-sound-name "select-option") (new-sound-id) 1024 0 0 1 #t)
|
||||
(logclear! (-> *cpad-list* cpads 0 button0-abs 0) (pad-buttons x))
|
||||
@@ -1843,8 +1833,8 @@
|
||||
(logclear! (-> *cpad-list* cpads 0 button0-abs 0) (pad-buttons circle))
|
||||
(logclear! (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons circle))
|
||||
(set! (-> obj selected-option) #t)
|
||||
(when (= (-> s5-0 (-> obj option-index) option-type) 1)
|
||||
(set! (-> obj language-selection) (the-as uint (-> *setting-control* current language)))
|
||||
(when (= (-> s5-0 (-> obj option-index) option-type) (game-option-type language))
|
||||
(set! (-> obj language-selection) (-> *setting-control* current language))
|
||||
(set! (-> obj language-direction) #t)
|
||||
(set! (-> obj language-transition) #f)
|
||||
(set! (-> obj language-x-offset) 0)
|
||||
@@ -1857,12 +1847,12 @@
|
||||
(sound-play-by-name (static-sound-name "start-options") (new-sound-id) 1024 0 0 1 #t)
|
||||
(set! (-> obj selected-option) #f)
|
||||
(case (-> s5-0 (-> obj option-index) option-type)
|
||||
((4)
|
||||
(((game-option-type aspect-ratio))
|
||||
(set! (-> *setting-control* default aspect-ratio)
|
||||
(the-as symbol (-> (the-as (pointer uint32) (-> s5-0 (-> obj option-index) value-to-modify))))
|
||||
)
|
||||
)
|
||||
((5)
|
||||
(((game-option-type video-mode))
|
||||
(case (-> (the-as (pointer uint32) (-> s5-0 (-> obj option-index) value-to-modify)))
|
||||
(('pal)
|
||||
(set! (-> *setting-control* default video-mode)
|
||||
@@ -1875,7 +1865,7 @@
|
||||
)
|
||||
)
|
||||
)
|
||||
((1)
|
||||
(((game-option-type language))
|
||||
(if (not (-> obj language-transition))
|
||||
(load-level-text-files (-> obj display-level-index))
|
||||
)
|
||||
@@ -2238,8 +2228,8 @@
|
||||
)
|
||||
)
|
||||
)
|
||||
(dummy-29 self)
|
||||
(set! (-> self next-display-state) (dummy-53 self (-> self next-display-state)))
|
||||
(respond-common self)
|
||||
(set! (-> self next-display-state) (set-memcard-screen self (-> self next-display-state)))
|
||||
(let ((v1-74 (-> self display-state)))
|
||||
(cond
|
||||
((or (= v1-74 (progress-screen fuel-cell))
|
||||
@@ -2270,7 +2260,7 @@
|
||||
(= v1-74 (progress-screen bad-disc))
|
||||
(= v1-74 (progress-screen quit))
|
||||
)
|
||||
(dummy-31 self)
|
||||
(respond-memcard self)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
+19
-19
@@ -89,7 +89,7 @@
|
||||
;; definition for method 44 of type lurkercrab
|
||||
;; INFO: Return type mismatch symbol vs object.
|
||||
(defmethod dummy-44 lurkercrab ((obj lurkercrab) (arg0 process) (arg1 event-message-block))
|
||||
(if (and (logtest? (-> obj nav-enemy-flags) 64)
|
||||
(if (and (logtest? (-> obj nav-enemy-flags) (nav-enemy-flags navenmf6))
|
||||
((method-of-type touching-shapes-entry prims-touching?)
|
||||
(the-as touching-shapes-entry (-> arg1 param 0))
|
||||
(-> obj collide-info)
|
||||
@@ -106,7 +106,7 @@
|
||||
6144.0
|
||||
16384.0
|
||||
)
|
||||
(the-as object (if (zero? (logand (-> obj nav-enemy-flags) 256))
|
||||
(the-as object (if (zero? (logand (-> obj nav-enemy-flags) (nav-enemy-flags navenmf8)))
|
||||
(do-push-aways! (-> obj collide-info))
|
||||
)
|
||||
)
|
||||
@@ -125,7 +125,7 @@
|
||||
)
|
||||
((= v1-1 'punch)
|
||||
(cond
|
||||
((logtest? (-> obj nav-enemy-flags) 32)
|
||||
((logtest? (-> obj nav-enemy-flags) (nav-enemy-flags navenmf5))
|
||||
(logclear! (-> obj mask) (process-mask actor-pause))
|
||||
(go (method-of-object obj nav-enemy-die))
|
||||
)
|
||||
@@ -147,7 +147,7 @@
|
||||
)
|
||||
)
|
||||
)
|
||||
((logtest? (-> obj nav-enemy-flags) 32)
|
||||
((logtest? (-> obj nav-enemy-flags) (nav-enemy-flags navenmf5))
|
||||
(logclear! (-> obj mask) (process-mask actor-pause))
|
||||
(go (method-of-object obj nav-enemy-die))
|
||||
)
|
||||
@@ -178,7 +178,7 @@ nav-enemy-default-event-handler
|
||||
;; INFO: Return type mismatch int vs none.
|
||||
(defmethod TODO-RENAME-37 lurkercrab ((obj lurkercrab))
|
||||
(when (-> obj orient)
|
||||
(if (logtest? (nav-control-flags bit19) (-> obj nav flags))
|
||||
(if (logtest? (nav-control-flags navcf19) (-> obj nav flags))
|
||||
(seek-to-point-toward-point!
|
||||
(-> obj collide-info)
|
||||
(-> obj nav target-pos)
|
||||
@@ -293,7 +293,7 @@ nav-enemy-default-event-handler
|
||||
|
||||
;; definition for function lurkercrab-invulnerable
|
||||
(defbehavior lurkercrab-invulnerable lurkercrab ()
|
||||
(set! (-> self nav-enemy-flags) (logand -33 (-> self nav-enemy-flags)))
|
||||
(logclear! (-> self nav-enemy-flags) (nav-enemy-flags navenmf5))
|
||||
(let ((v1-3 (find-prim-by-id (-> self collide-info) (the-as uint 2))))
|
||||
(when v1-3
|
||||
(let ((v0-1 4))
|
||||
@@ -306,7 +306,7 @@ nav-enemy-default-event-handler
|
||||
|
||||
;; definition for function lurkercrab-vulnerable
|
||||
(defbehavior lurkercrab-vulnerable lurkercrab ()
|
||||
(logior! (-> self nav-enemy-flags) 32)
|
||||
(logior! (-> self nav-enemy-flags) (nav-enemy-flags navenmf5))
|
||||
(let ((v1-3 (find-prim-by-id (-> self collide-info) (the-as uint 2))))
|
||||
(when v1-3
|
||||
(let ((v0-1 1))
|
||||
@@ -328,8 +328,8 @@ nav-enemy-default-event-handler
|
||||
:exit
|
||||
(behavior ()
|
||||
(lurkercrab-invulnerable)
|
||||
(set! (-> self nav-enemy-flags) (logand -65 (-> self nav-enemy-flags)))
|
||||
(logior! (-> self nav-enemy-flags) 8)
|
||||
(logclear! (-> self nav-enemy-flags) (nav-enemy-flags navenmf6))
|
||||
(logior! (-> self nav-enemy-flags) (nav-enemy-flags enable-rotate))
|
||||
(none)
|
||||
)
|
||||
:code
|
||||
@@ -384,7 +384,7 @@ nav-enemy-default-event-handler
|
||||
(joint-control-channel-group! a0-12 (the-as art-joint-anim #f) num-func-loop!)
|
||||
)
|
||||
(ja-channel-push! 1 180)
|
||||
(set! (-> self nav-enemy-flags) (logand -9 (-> self nav-enemy-flags)))
|
||||
(logclear! (-> self nav-enemy-flags) (nav-enemy-flags enable-rotate))
|
||||
(nav-enemy-rnd-int-range 2 6)
|
||||
(until (not (nav-enemy-rnd-go-idle? 0.2))
|
||||
(let ((gp-1 (-> self skel root-channel 0)))
|
||||
@@ -401,7 +401,7 @@ nav-enemy-default-event-handler
|
||||
)
|
||||
)
|
||||
)
|
||||
(logior! (-> self nav-enemy-flags) 8)
|
||||
(logior! (-> self nav-enemy-flags) (nav-enemy-flags enable-rotate))
|
||||
(let ((a0-19 (-> self skel root-channel 0)))
|
||||
(set! (-> a0-19 frame-group) (the-as art-joint-anim (-> self draw art-group data 5)))
|
||||
(set! (-> a0-19 param 0)
|
||||
@@ -436,7 +436,7 @@ nav-enemy-default-event-handler
|
||||
)
|
||||
)
|
||||
(lurkercrab-vulnerable)
|
||||
(logior! (-> self nav-enemy-flags) 64)
|
||||
(logior! (-> self nav-enemy-flags) (nav-enemy-flags navenmf6))
|
||||
(dotimes (gp-5 2)
|
||||
(let ((s5-0 (-> self skel root-channel 0)))
|
||||
(set! (-> s5-0 frame-group) (the-as art-joint-anim (-> self draw art-group data 7)))
|
||||
@@ -455,7 +455,7 @@ nav-enemy-default-event-handler
|
||||
)
|
||||
)
|
||||
(lurkercrab-invulnerable)
|
||||
(set! (-> self nav-enemy-flags) (logand -65 (-> self nav-enemy-flags)))
|
||||
(logclear! (-> self nav-enemy-flags) (nav-enemy-flags navenmf6))
|
||||
(let ((gp-6 (-> self skel root-channel 0)))
|
||||
(set! (-> gp-6 frame-group) (the-as art-joint-anim (-> self draw art-group data 8)))
|
||||
(set! (-> gp-6 param 0) (ja-aframe 90.0 0))
|
||||
@@ -502,7 +502,7 @@ nav-enemy-default-event-handler
|
||||
:exit
|
||||
(behavior ()
|
||||
(lurkercrab-invulnerable)
|
||||
(set! (-> self nav-enemy-flags) (logand -65 (-> self nav-enemy-flags)))
|
||||
(logclear! (-> self nav-enemy-flags) (nav-enemy-flags navenmf6))
|
||||
(none)
|
||||
)
|
||||
:trans
|
||||
@@ -517,7 +517,7 @@ nav-enemy-default-event-handler
|
||||
)
|
||||
:code
|
||||
(behavior ()
|
||||
(logior! (-> self nav-enemy-flags) 8)
|
||||
(logior! (-> self nav-enemy-flags) (nav-enemy-flags enable-rotate))
|
||||
(ja-channel-push! 1 22)
|
||||
(while #t
|
||||
(let ((a0-1 (-> self skel root-channel 0)))
|
||||
@@ -538,7 +538,7 @@ nav-enemy-default-event-handler
|
||||
)
|
||||
)
|
||||
(lurkercrab-vulnerable)
|
||||
(logior! (-> self nav-enemy-flags) 64)
|
||||
(logior! (-> self nav-enemy-flags) (nav-enemy-flags navenmf6))
|
||||
(let ((gp-0 (-> self skel root-channel 0)))
|
||||
(set! (-> gp-0 frame-group) (the-as art-joint-anim (-> self draw art-group data 7)))
|
||||
(set! (-> gp-0 param 0) (ja-aframe 30.0 0))
|
||||
@@ -600,7 +600,7 @@ nav-enemy-default-event-handler
|
||||
)
|
||||
)
|
||||
(lurkercrab-invulnerable)
|
||||
(set! (-> self nav-enemy-flags) (logand -65 (-> self nav-enemy-flags)))
|
||||
(logclear! (-> self nav-enemy-flags) (nav-enemy-flags navenmf6))
|
||||
(let ((gp-8 (-> self skel root-channel 0)))
|
||||
(set! (-> gp-8 frame-group) (the-as art-joint-anim (-> self draw art-group data 8)))
|
||||
(set! (-> gp-8 param 0) (ja-aframe 90.0 0))
|
||||
@@ -819,7 +819,7 @@ nav-enemy-default-event-handler
|
||||
:use-proximity-notice #f
|
||||
:use-jump-blocked #f
|
||||
:use-jump-patrol #f
|
||||
:gnd-collide-with #x1
|
||||
:gnd-collide-with (collide-kind background)
|
||||
:debug-draw-neck #f
|
||||
:debug-draw-jump #f
|
||||
)
|
||||
@@ -874,7 +874,7 @@ nav-enemy-default-event-handler
|
||||
(TODO-RENAME-45 obj *lurkercrab-nav-enemy-info*)
|
||||
(set! (-> obj part) (create-launch-control (-> *part-group-id-table* 159) obj))
|
||||
(set! (-> obj orient) #t)
|
||||
(set! (-> obj nav-enemy-flags) (logand -97 (-> obj nav-enemy-flags)))
|
||||
(logclear! (-> obj nav-enemy-flags) (nav-enemy-flags navenmf5 navenmf6))
|
||||
(set! (-> obj target-speed) 0.0)
|
||||
(set! (-> obj momentum-speed) 0.0)
|
||||
(set! (-> obj draw force-lod) 2)
|
||||
|
||||
+12
-12
@@ -123,7 +123,7 @@ nav-enemy-default-event-handler
|
||||
(joint-control-channel-group! a0-14 (the-as art-joint-anim (-> self draw art-group data 7)) num-func-seek!)
|
||||
)
|
||||
(until (ja-done? 0)
|
||||
(if (logtest? (-> self nav-enemy-flags) 256)
|
||||
(if (logtest? (-> self nav-enemy-flags) (nav-enemy-flags navenmf8))
|
||||
(go-virtual nav-enemy-attack)
|
||||
)
|
||||
(suspend)
|
||||
@@ -151,10 +151,10 @@ nav-enemy-default-event-handler
|
||||
(behavior ()
|
||||
(set! (-> self rotate-speed) 1456355.5)
|
||||
(set! (-> self turn-time) (seconds 0.1))
|
||||
(set! (-> self nav-enemy-flags) (logand -17 (-> self nav-enemy-flags)))
|
||||
(logclear! (-> self nav-enemy-flags) (nav-enemy-flags enable-travel))
|
||||
(let ((f30-0 (rand-vu-float-range 0.8 1.2)))
|
||||
(while #t
|
||||
(logior! (-> self nav-enemy-flags) 16)
|
||||
(logior! (-> self nav-enemy-flags) (nav-enemy-flags enable-travel))
|
||||
(ja-channel-push! 1 30)
|
||||
(let ((gp-0 (-> self skel root-channel 0)))
|
||||
(set! (-> gp-0 frame-group) (the-as art-joint-anim (-> self draw art-group data 8)))
|
||||
@@ -165,9 +165,9 @@ nav-enemy-default-event-handler
|
||||
)
|
||||
(until (ja-done? 0)
|
||||
(let ((f0-3 (ja-aframe-num 0)))
|
||||
(set! (-> self nav-enemy-flags) (logand -17 (-> self nav-enemy-flags)))
|
||||
(logclear! (-> self nav-enemy-flags) (nav-enemy-flags enable-travel))
|
||||
(if (and (>= f0-3 2.5) (>= 7.5 f0-3))
|
||||
(logior! (-> self nav-enemy-flags) 16)
|
||||
(logior! (-> self nav-enemy-flags) (nav-enemy-flags enable-travel))
|
||||
)
|
||||
)
|
||||
(suspend)
|
||||
@@ -177,7 +177,7 @@ nav-enemy-default-event-handler
|
||||
(joint-control-channel-group-eval! gp-1 (the-as art-joint-anim #f) num-func-seek!)
|
||||
)
|
||||
)
|
||||
(set! (-> self nav-enemy-flags) (logand -17 (-> self nav-enemy-flags)))
|
||||
(logclear! (-> self nav-enemy-flags) (nav-enemy-flags enable-travel))
|
||||
(let ((a0-11 (-> self skel root-channel 0)))
|
||||
(set! (-> a0-11 param 0) 1.0)
|
||||
(joint-control-channel-group! a0-11 (the-as art-joint-anim #f) num-func-loop!)
|
||||
@@ -238,7 +238,7 @@ nav-enemy-default-event-handler
|
||||
(joint-control-channel-group-eval! a0-2 (the-as art-joint-anim #f) num-func-seek!)
|
||||
)
|
||||
)
|
||||
(logclear! (-> self nav flags) (nav-control-flags bit17 bit19))
|
||||
(logclear! (-> self nav flags) (nav-control-flags navcf17 navcf19))
|
||||
(nav-enemy-get-new-patrol-point)
|
||||
(let ((a0-7 (-> self skel root-channel 0)))
|
||||
(set! (-> a0-7 frame-group) (the-as art-joint-anim (-> self draw art-group data 5)))
|
||||
@@ -294,12 +294,12 @@ nav-enemy-default-event-handler
|
||||
)
|
||||
:exit
|
||||
(behavior ()
|
||||
(logior! (-> self nav-enemy-flags) 16)
|
||||
(logior! (-> self nav-enemy-flags) (nav-enemy-flags enable-travel))
|
||||
(none)
|
||||
)
|
||||
:code
|
||||
(behavior ()
|
||||
(set! (-> self nav-enemy-flags) (logand -17 (-> self nav-enemy-flags)))
|
||||
(logclear! (-> self nav-enemy-flags) (nav-enemy-flags enable-travel))
|
||||
(ja-channel-push! 1 22)
|
||||
(dotimes (gp-0 4)
|
||||
(let ((a0-2 (-> self skel root-channel 0)))
|
||||
@@ -313,9 +313,9 @@ nav-enemy-default-event-handler
|
||||
)
|
||||
(until (ja-done? 0)
|
||||
(let ((f0-4 (ja-aframe-num 0)))
|
||||
(set! (-> self nav-enemy-flags) (logand -17 (-> self nav-enemy-flags)))
|
||||
(logclear! (-> self nav-enemy-flags) (nav-enemy-flags enable-travel))
|
||||
(if (and (>= f0-4 2.5) (>= 7.5 f0-4))
|
||||
(logior! (-> self nav-enemy-flags) 16)
|
||||
(logior! (-> self nav-enemy-flags) (nav-enemy-flags enable-travel))
|
||||
)
|
||||
)
|
||||
(suspend)
|
||||
@@ -382,7 +382,7 @@ nav-enemy-default-event-handler
|
||||
:use-proximity-notice #f
|
||||
:use-jump-blocked #f
|
||||
:use-jump-patrol #f
|
||||
:gnd-collide-with #x1
|
||||
:gnd-collide-with (collide-kind background)
|
||||
:debug-draw-neck #f
|
||||
:debug-draw-jump #f
|
||||
)
|
||||
|
||||
+1
-1
@@ -77,7 +77,7 @@
|
||||
:use-proximity-notice #f
|
||||
:use-jump-blocked #f
|
||||
:use-jump-patrol #f
|
||||
:gnd-collide-with #x1
|
||||
:gnd-collide-with (collide-kind background)
|
||||
:debug-draw-neck #f
|
||||
:debug-draw-jump #f
|
||||
)
|
||||
|
||||
+5
-5
@@ -145,7 +145,7 @@
|
||||
(behavior ()
|
||||
(set! (-> self turn-time) (seconds 0.2))
|
||||
(let ((f30-0 (nav-enemy-rnd-float-range 0.8 1.2)))
|
||||
(when (or (logtest? (-> self nav-enemy-flags) 256)
|
||||
(when (or (logtest? (-> self nav-enemy-flags) (nav-enemy-flags navenmf8))
|
||||
(and (nav-enemy-player-vulnerable?) (nav-enemy-rnd-percent? 0.5))
|
||||
)
|
||||
(ja-channel-push! 1 30)
|
||||
@@ -167,7 +167,7 @@
|
||||
)
|
||||
(while #t
|
||||
(when (not (nav-enemy-facing-player? 2730.6667))
|
||||
(logior! (-> self nav-enemy-flags) 16)
|
||||
(logior! (-> self nav-enemy-flags) (nav-enemy-flags enable-travel))
|
||||
(let ((a0-9 (-> self skel root-channel 0)))
|
||||
(set! (-> a0-9 param 0) 1.0)
|
||||
(joint-control-channel-group! a0-9 (the-as art-joint-anim #f) num-func-loop!)
|
||||
@@ -188,7 +188,7 @@
|
||||
(joint-control-channel-group-eval! a0-15 (the-as art-joint-anim #f) num-func-loop!)
|
||||
)
|
||||
)
|
||||
(set! (-> self nav-enemy-flags) (logand -17 (-> self nav-enemy-flags)))
|
||||
(logclear! (-> self nav-enemy-flags) (nav-enemy-flags enable-travel))
|
||||
)
|
||||
(if (not (= (if (> (-> self skel active-channels) 0)
|
||||
(-> self skel root-channel 0 frame-group)
|
||||
@@ -274,7 +274,7 @@
|
||||
)
|
||||
)
|
||||
)
|
||||
(logclear! (-> self nav flags) (nav-control-flags bit17 bit19))
|
||||
(logclear! (-> self nav flags) (nav-control-flags navcf17 navcf19))
|
||||
(nav-enemy-get-new-patrol-point)
|
||||
(let ((a0-12 (-> self skel root-channel 0)))
|
||||
(set! (-> a0-12 frame-group) (the-as art-joint-anim (-> self draw art-group data 10)))
|
||||
@@ -392,7 +392,7 @@
|
||||
:use-proximity-notice #t
|
||||
:use-jump-blocked #t
|
||||
:use-jump-patrol #f
|
||||
:gnd-collide-with #x1
|
||||
:gnd-collide-with (collide-kind background)
|
||||
:debug-draw-neck #f
|
||||
:debug-draw-jump #f
|
||||
)
|
||||
|
||||
+3
-3
@@ -208,7 +208,7 @@ battlecontroller-default-event-handler
|
||||
(let* ((s5-0 (-> self spawner-array gp-0))
|
||||
(s4-0 (handle->process (-> s5-0 creature)))
|
||||
)
|
||||
(when (and s4-0 (logtest? (-> (the-as nav-enemy s4-0) nav-enemy-flags) 2048))
|
||||
(when (and s4-0 (logtest? (-> (the-as nav-enemy s4-0) nav-enemy-flags) (nav-enemy-flags navenmf11)))
|
||||
(cond
|
||||
((< (-> s5-0 state) (-> s5-0 path curve num-cverts))
|
||||
(when (or (-> self noticed-player) (= (-> s5-0 state) 1))
|
||||
@@ -216,7 +216,7 @@ battlecontroller-default-event-handler
|
||||
(eval-path-curve-div! (-> s5-0 path) s3-0 (the float (-> s5-0 state)) 'interp)
|
||||
(send-event s4-0 'cue-jump-to-point s3-0)
|
||||
)
|
||||
(if (zero? (logand (-> (the-as nav-enemy s4-0) nav-enemy-flags) 2048))
|
||||
(if (zero? (logand (-> (the-as nav-enemy s4-0) nav-enemy-flags) (nav-enemy-flags navenmf11)))
|
||||
(+! (-> s5-0 state) 1)
|
||||
)
|
||||
)
|
||||
@@ -266,7 +266,7 @@ battlecontroller-default-event-handler
|
||||
(when (the-as (pointer nav-enemy) gp-0)
|
||||
(logclear! (-> (the-as (pointer nav-enemy) gp-0) 0 mask) (process-mask actor-pause))
|
||||
(if (-> self misty-ambush-collision-hack)
|
||||
(logior! (-> (the-as (pointer nav-enemy) gp-0) 0 nav-enemy-flags) #x8000)
|
||||
(logior! (-> (the-as (pointer nav-enemy) gp-0) 0 nav-enemy-flags) (nav-enemy-flags navenmf15))
|
||||
)
|
||||
(+! (-> self spawn-count) 1)
|
||||
(-> self fact pickup-type)
|
||||
|
||||
+1
-1
@@ -505,7 +505,7 @@
|
||||
(-> arg0 bbox)
|
||||
(collide-kind background)
|
||||
obj
|
||||
(new 'static 'pat-surface :skip #x1 :noentity #x1)
|
||||
(new 'static 'pat-surface :noentity #x1)
|
||||
)
|
||||
(let ((gp-1 (-> obj joints))
|
||||
(v1-2 (-> arg0 head))
|
||||
|
||||
+52
-52
@@ -3,57 +3,57 @@
|
||||
|
||||
;; definition of type nav-enemy-info
|
||||
(deftype nav-enemy-info (basic)
|
||||
((idle-anim int32 :offset-assert 4)
|
||||
(walk-anim int32 :offset-assert 8)
|
||||
(turn-anim int32 :offset-assert 12)
|
||||
(notice-anim int32 :offset-assert 16)
|
||||
(run-anim int32 :offset-assert 20)
|
||||
(jump-anim int32 :offset-assert 24)
|
||||
(jump-land-anim int32 :offset-assert 28)
|
||||
(victory-anim int32 :offset-assert 32)
|
||||
(taunt-anim int32 :offset-assert 36)
|
||||
(die-anim int32 :offset-assert 40)
|
||||
(neck-joint int32 :offset-assert 44)
|
||||
(player-look-at-joint int32 :offset-assert 48)
|
||||
(run-travel-speed meters :offset-assert 52)
|
||||
(run-rotate-speed degrees :offset-assert 56)
|
||||
(run-acceleration meters :offset-assert 60)
|
||||
(run-turn-time seconds :offset-assert 64)
|
||||
(walk-travel-speed meters :offset-assert 72)
|
||||
(walk-rotate-speed degrees :offset-assert 76)
|
||||
(walk-acceleration meters :offset-assert 80)
|
||||
(walk-turn-time seconds :offset-assert 88)
|
||||
(attack-shove-back meters :offset-assert 96)
|
||||
(attack-shove-up meters :offset-assert 100)
|
||||
(shadow-size meters :offset-assert 104)
|
||||
(notice-nav-radius meters :offset-assert 108)
|
||||
(nav-nearest-y-threshold meters :offset-assert 112)
|
||||
(notice-distance meters :offset-assert 116)
|
||||
(proximity-notice-distance meters :offset-assert 120)
|
||||
(stop-chase-distance meters :offset-assert 124)
|
||||
(frustration-distance meters :offset-assert 128)
|
||||
(frustration-time time-frame :offset-assert 136)
|
||||
(die-anim-hold-frame float :offset-assert 144)
|
||||
(jump-anim-start-frame float :offset-assert 148)
|
||||
(jump-land-anim-end-frame float :offset-assert 152)
|
||||
(jump-height-min meters :offset-assert 156)
|
||||
(jump-height-factor float :offset-assert 160)
|
||||
(jump-start-anim-speed float :offset-assert 164)
|
||||
(shadow-max-y meters :offset-assert 168)
|
||||
(shadow-min-y meters :offset-assert 172)
|
||||
(shadow-locus-dist meters :offset-assert 176)
|
||||
(use-align symbol :offset-assert 180)
|
||||
(draw-shadow symbol :offset-assert 184)
|
||||
(move-to-ground symbol :offset-assert 188)
|
||||
(hover-if-no-ground symbol :offset-assert 192)
|
||||
(use-momentum symbol :offset-assert 196)
|
||||
(use-flee symbol :offset-assert 200)
|
||||
(use-proximity-notice symbol :offset-assert 204)
|
||||
(use-jump-blocked symbol :offset-assert 208)
|
||||
(use-jump-patrol symbol :offset-assert 212)
|
||||
(gnd-collide-with uint64 :offset-assert 216)
|
||||
(debug-draw-neck symbol :offset-assert 224)
|
||||
(debug-draw-jump symbol :offset-assert 228)
|
||||
((idle-anim int32 :offset-assert 4)
|
||||
(walk-anim int32 :offset-assert 8)
|
||||
(turn-anim int32 :offset-assert 12)
|
||||
(notice-anim int32 :offset-assert 16)
|
||||
(run-anim int32 :offset-assert 20)
|
||||
(jump-anim int32 :offset-assert 24)
|
||||
(jump-land-anim int32 :offset-assert 28)
|
||||
(victory-anim int32 :offset-assert 32)
|
||||
(taunt-anim int32 :offset-assert 36)
|
||||
(die-anim int32 :offset-assert 40)
|
||||
(neck-joint int32 :offset-assert 44)
|
||||
(player-look-at-joint int32 :offset-assert 48)
|
||||
(run-travel-speed meters :offset-assert 52)
|
||||
(run-rotate-speed degrees :offset-assert 56)
|
||||
(run-acceleration meters :offset-assert 60)
|
||||
(run-turn-time seconds :offset-assert 64)
|
||||
(walk-travel-speed meters :offset-assert 72)
|
||||
(walk-rotate-speed degrees :offset-assert 76)
|
||||
(walk-acceleration meters :offset-assert 80)
|
||||
(walk-turn-time seconds :offset-assert 88)
|
||||
(attack-shove-back meters :offset-assert 96)
|
||||
(attack-shove-up meters :offset-assert 100)
|
||||
(shadow-size meters :offset-assert 104)
|
||||
(notice-nav-radius meters :offset-assert 108)
|
||||
(nav-nearest-y-threshold meters :offset-assert 112)
|
||||
(notice-distance meters :offset-assert 116)
|
||||
(proximity-notice-distance meters :offset-assert 120)
|
||||
(stop-chase-distance meters :offset-assert 124)
|
||||
(frustration-distance meters :offset-assert 128)
|
||||
(frustration-time time-frame :offset-assert 136)
|
||||
(die-anim-hold-frame float :offset-assert 144)
|
||||
(jump-anim-start-frame float :offset-assert 148)
|
||||
(jump-land-anim-end-frame float :offset-assert 152)
|
||||
(jump-height-min meters :offset-assert 156)
|
||||
(jump-height-factor float :offset-assert 160)
|
||||
(jump-start-anim-speed float :offset-assert 164)
|
||||
(shadow-max-y meters :offset-assert 168)
|
||||
(shadow-min-y meters :offset-assert 172)
|
||||
(shadow-locus-dist meters :offset-assert 176)
|
||||
(use-align symbol :offset-assert 180)
|
||||
(draw-shadow symbol :offset-assert 184)
|
||||
(move-to-ground symbol :offset-assert 188)
|
||||
(hover-if-no-ground symbol :offset-assert 192)
|
||||
(use-momentum symbol :offset-assert 196)
|
||||
(use-flee symbol :offset-assert 200)
|
||||
(use-proximity-notice symbol :offset-assert 204)
|
||||
(use-jump-blocked symbol :offset-assert 208)
|
||||
(use-jump-patrol symbol :offset-assert 212)
|
||||
(gnd-collide-with collide-kind :offset-assert 216)
|
||||
(debug-draw-neck symbol :offset-assert 224)
|
||||
(debug-draw-jump symbol :offset-assert 228)
|
||||
)
|
||||
:method-count-assert 9
|
||||
:size-assert #xe8
|
||||
@@ -141,7 +141,7 @@
|
||||
(state-timeout time-frame :offset-assert 352)
|
||||
(free-time time-frame :offset-assert 360)
|
||||
(touch-time time-frame :offset-assert 368)
|
||||
(nav-enemy-flags uint32 :offset-assert 376)
|
||||
(nav-enemy-flags nav-enemy-flags :offset-assert 376)
|
||||
(incomming-attack-id handle :offset-assert 384)
|
||||
(jump-return-state (state process) :offset-assert 392)
|
||||
(rand-gen random-generator :offset-assert 396)
|
||||
|
||||
+96
-94
@@ -79,14 +79,14 @@
|
||||
;; definition for method 39 of type nav-enemy
|
||||
;; INFO: Return type mismatch int vs none.
|
||||
(defmethod common-post nav-enemy ((obj nav-enemy))
|
||||
(when (and (logtest? (-> obj nav-enemy-flags) 256)
|
||||
(when (and (logtest? (-> obj nav-enemy-flags) (nav-enemy-flags navenmf8))
|
||||
(or (not *target*) (and (zero? (logand (-> *target* state-flags) #x80f8))
|
||||
(>= (- (-> *display* base-frame-counter) (-> obj touch-time)) (seconds 0.05))
|
||||
)
|
||||
)
|
||||
)
|
||||
(set-collide-offense (-> obj collide-info) 2 (collide-offense touch))
|
||||
(set! (-> obj nav-enemy-flags) (logand -257 (-> obj nav-enemy-flags)))
|
||||
(logclear! (-> obj nav-enemy-flags) (nav-enemy-flags navenmf8))
|
||||
)
|
||||
(update-direction-from-time-of-day (-> obj draw shadow-ctrl))
|
||||
(when *target*
|
||||
@@ -94,13 +94,13 @@
|
||||
(look-at-enemy!
|
||||
(-> *target* neck)
|
||||
(the-as vector (-> obj collide-info root-prim prim-core))
|
||||
(if (logtest? (-> obj nav-enemy-flags) 4)
|
||||
(if (logtest? (-> obj nav-enemy-flags) (nav-enemy-flags navenmf2))
|
||||
'attacking
|
||||
)
|
||||
obj
|
||||
)
|
||||
)
|
||||
(if (and (nonzero? (-> obj neck)) (logtest? (-> obj nav-enemy-flags) #x4000))
|
||||
(if (and (nonzero? (-> obj neck)) (logtest? (-> obj nav-enemy-flags) (nav-enemy-flags navenmf14)))
|
||||
(set-target! (-> obj neck) (target-pos (-> obj nav-info player-look-at-joint)))
|
||||
)
|
||||
)
|
||||
@@ -116,11 +116,12 @@
|
||||
|
||||
;; definition for method 44 of type nav-enemy
|
||||
(defmethod dummy-44 nav-enemy ((obj nav-enemy) (arg0 process) (arg1 event-message-block))
|
||||
(if (and (logtest? (-> obj nav-enemy-flags) 64) ((method-of-type touching-shapes-entry prims-touching?)
|
||||
(the-as touching-shapes-entry (-> arg1 param 0))
|
||||
(-> obj collide-info)
|
||||
(the-as uint 1)
|
||||
)
|
||||
(if (and (logtest? (-> obj nav-enemy-flags) (nav-enemy-flags navenmf6))
|
||||
((method-of-type touching-shapes-entry prims-touching?)
|
||||
(the-as touching-shapes-entry (-> arg1 param 0))
|
||||
(-> obj collide-info)
|
||||
(the-as uint 1)
|
||||
)
|
||||
)
|
||||
(nav-enemy-send-attack arg0 (the-as touching-shapes-entry (-> arg1 param 0)) 'generic)
|
||||
)
|
||||
@@ -128,11 +129,12 @@
|
||||
|
||||
;; definition for method 72 of type nav-enemy
|
||||
(defmethod nav-enemy-touch-handler nav-enemy ((obj nav-enemy) (arg0 process) (arg1 event-message-block))
|
||||
(if (and (logtest? (-> obj nav-enemy-flags) 64) ((method-of-type touching-shapes-entry prims-touching?)
|
||||
(the-as touching-shapes-entry (-> arg1 param 0))
|
||||
(-> obj collide-info)
|
||||
(the-as uint 1)
|
||||
)
|
||||
(if (and (logtest? (-> obj nav-enemy-flags) (nav-enemy-flags navenmf6))
|
||||
((method-of-type touching-shapes-entry prims-touching?)
|
||||
(the-as touching-shapes-entry (-> arg1 param 0))
|
||||
(-> obj collide-info)
|
||||
(the-as uint 1)
|
||||
)
|
||||
)
|
||||
(nav-enemy-send-attack arg0 (the-as touching-shapes-entry (-> arg1 param 0)) 'generic)
|
||||
)
|
||||
@@ -150,7 +152,7 @@
|
||||
;; definition for method 43 of type nav-enemy
|
||||
(defmethod dummy-43 nav-enemy ((obj nav-enemy) (arg0 process) (arg1 event-message-block))
|
||||
(cond
|
||||
((logtest? (-> obj nav-enemy-flags) 32)
|
||||
((logtest? (-> obj nav-enemy-flags) (nav-enemy-flags navenmf5))
|
||||
(send-event arg0 'get-attack-count 1)
|
||||
(logclear! (-> obj mask) (process-mask actor-pause attackable))
|
||||
(go (method-of-object obj nav-enemy-die))
|
||||
@@ -177,7 +179,7 @@
|
||||
)
|
||||
(the-as object (when (send-event-function arg0 v1-0)
|
||||
(set-collide-offense (-> self collide-info) 2 (collide-offense no-offense))
|
||||
(logior! (-> self nav-enemy-flags) 256)
|
||||
(logior! (-> self nav-enemy-flags) (nav-enemy-flags navenmf8))
|
||||
#t
|
||||
)
|
||||
)
|
||||
@@ -215,9 +217,9 @@
|
||||
)
|
||||
)
|
||||
(('cue-jump-to-point)
|
||||
(when (logtest? (-> self nav-enemy-flags) 2048)
|
||||
(when (logtest? (-> self nav-enemy-flags) (nav-enemy-flags navenmf11))
|
||||
(set! (-> self event-param-point quad) (-> (the-as vector (-> arg3 param 0)) quad))
|
||||
(set! (-> self nav-enemy-flags) (logand -2049 (-> self nav-enemy-flags)))
|
||||
(logclear! (-> self nav-enemy-flags) (nav-enemy-flags navenmf11))
|
||||
)
|
||||
)
|
||||
(('cue-chase)
|
||||
@@ -344,8 +346,10 @@ nav-enemy-default-event-handler
|
||||
;; definition for method 37 of type nav-enemy
|
||||
;; INFO: Return type mismatch int vs none.
|
||||
(defmethod TODO-RENAME-37 nav-enemy ((obj nav-enemy))
|
||||
(when (logtest? (-> obj nav-enemy-flags) 16)
|
||||
(if (or (logtest? (-> obj nav-enemy-flags) 128) (logtest? (nav-control-flags bit19) (-> obj nav flags)))
|
||||
(when (logtest? (-> obj nav-enemy-flags) (nav-enemy-flags enable-travel))
|
||||
(if (or (logtest? (-> obj nav-enemy-flags) (nav-enemy-flags navenmf7))
|
||||
(logtest? (nav-control-flags navcf19) (-> obj nav flags))
|
||||
)
|
||||
(seek-to-point-toward-point!
|
||||
(-> obj collide-info)
|
||||
(-> obj nav target-pos)
|
||||
@@ -366,11 +370,11 @@ nav-enemy-default-event-handler
|
||||
(integrate-for-enemy-with-move-to-ground!
|
||||
(-> obj collide-info)
|
||||
(-> obj collide-info transv)
|
||||
(the-as collide-kind (-> obj nav-info gnd-collide-with))
|
||||
(-> obj nav-info gnd-collide-with)
|
||||
8192.0
|
||||
#f
|
||||
(-> obj nav-info hover-if-no-ground)
|
||||
(logtest? (-> obj nav-enemy-flags) #x8000)
|
||||
(logtest? (-> obj nav-enemy-flags) (nav-enemy-flags navenmf15))
|
||||
)
|
||||
(dummy-58 (-> obj collide-info) (-> obj collide-info transv))
|
||||
)
|
||||
@@ -382,7 +386,7 @@ nav-enemy-default-event-handler
|
||||
;; INFO: Return type mismatch int vs none.
|
||||
(defbehavior nav-enemy-travel-post nav-enemy ()
|
||||
(cond
|
||||
((logtest? (-> self nav-enemy-flags) 8)
|
||||
((logtest? (-> self nav-enemy-flags) (nav-enemy-flags enable-rotate))
|
||||
(TODO-RENAME-9 (-> self align))
|
||||
(dummy-40 self)
|
||||
(dummy-41 self)
|
||||
@@ -415,9 +419,9 @@ nav-enemy-default-event-handler
|
||||
;; definition for function nav-enemy-patrol-post
|
||||
;; INFO: Return type mismatch int vs none.
|
||||
(defbehavior nav-enemy-patrol-post nav-enemy ()
|
||||
(when (or (logtest? (nav-control-flags bit19) (-> self nav flags)) (< 2.0 (-> self nav block-count)))
|
||||
(when (or (logtest? (nav-control-flags navcf19) (-> self nav flags)) (< 2.0 (-> self nav block-count)))
|
||||
(set! (-> self nav block-count) 2.0)
|
||||
(logior! (-> self nav flags) (nav-control-flags bit10))
|
||||
(logior! (-> self nav flags) (nav-control-flags navcf10))
|
||||
(nav-enemy-get-new-patrol-point)
|
||||
)
|
||||
(dummy-19
|
||||
@@ -427,8 +431,8 @@ nav-enemy-default-event-handler
|
||||
(-> self nav destination-pos)
|
||||
(-> self rotate-speed)
|
||||
)
|
||||
(if (logtest? (nav-control-flags bit21) (-> self nav flags))
|
||||
(logclear! (-> self nav flags) (nav-control-flags bit10))
|
||||
(if (logtest? (nav-control-flags navcf21) (-> self nav flags))
|
||||
(logclear! (-> self nav flags) (nav-control-flags navcf10))
|
||||
)
|
||||
(nav-enemy-travel-post)
|
||||
0
|
||||
@@ -467,7 +471,7 @@ nav-enemy-default-event-handler
|
||||
;; definition for function nav-enemy-face-player-post
|
||||
;; INFO: Return type mismatch int vs none.
|
||||
(defbehavior nav-enemy-face-player-post nav-enemy ()
|
||||
(if (and *target* (logtest? (-> self nav-enemy-flags) 16))
|
||||
(if (and *target* (logtest? (-> self nav-enemy-flags) (nav-enemy-flags enable-travel)))
|
||||
(seek-to-point-toward-point! (-> self collide-info) (target-pos 0) (-> self rotate-speed) (-> self turn-time))
|
||||
)
|
||||
(nav-enemy-simple-post)
|
||||
@@ -510,7 +514,7 @@ nav-enemy-default-event-handler
|
||||
;; definition for function nav-enemy-neck-control-look-at
|
||||
;; INFO: Return type mismatch int vs none.
|
||||
(defbehavior nav-enemy-neck-control-look-at nav-enemy ()
|
||||
(logior! (-> self nav-enemy-flags) #x4000)
|
||||
(logior! (-> self nav-enemy-flags) (nav-enemy-flags navenmf14))
|
||||
(if (nonzero? (-> self neck))
|
||||
(set-mode! (-> self neck) (joint-mod-handler-mode look-at))
|
||||
)
|
||||
@@ -521,8 +525,8 @@ nav-enemy-default-event-handler
|
||||
;; definition for function nav-enemy-neck-control-inactive
|
||||
;; INFO: Return type mismatch int vs none.
|
||||
(defbehavior nav-enemy-neck-control-inactive nav-enemy ()
|
||||
(when (and (nonzero? (-> self neck)) (logtest? (-> self nav-enemy-flags) #x4000))
|
||||
(set! (-> self nav-enemy-flags) (logand -16385 (-> self nav-enemy-flags)))
|
||||
(when (and (nonzero? (-> self neck)) (logtest? (-> self nav-enemy-flags) (nav-enemy-flags navenmf14)))
|
||||
(logclear! (-> self nav-enemy-flags) (nav-enemy-flags navenmf14))
|
||||
(shut-down! (-> self neck))
|
||||
)
|
||||
0
|
||||
@@ -539,7 +543,7 @@ nav-enemy-default-event-handler
|
||||
(defmethod TODO-RENAME-46 nav-enemy ((obj nav-enemy) (arg0 float))
|
||||
(and *target*
|
||||
(zero? (logand (-> *target* state-flags) #x80f8))
|
||||
(and (or (zero? (logand (-> obj nav-enemy-flags) 4096))
|
||||
(and (or (zero? (logand (-> obj nav-enemy-flags) (nav-enemy-flags navenmf12)))
|
||||
(< (vector-vector-distance (target-pos 0) (-> obj collide-info trans)) arg0)
|
||||
)
|
||||
(nav-enemy-test-point-near-nav-mesh? (-> *target* control shadow-pos))
|
||||
@@ -551,10 +555,10 @@ nav-enemy-default-event-handler
|
||||
(defbehavior nav-enemy-notice-player? nav-enemy ()
|
||||
(let ((gp-0 #f))
|
||||
(cond
|
||||
((logtest? (-> self nav-enemy-flags) 1)
|
||||
((logtest? (-> self nav-enemy-flags) (nav-enemy-flags navenmf0))
|
||||
(when (>= (- (-> *display* base-frame-counter) (-> self notice-time)) (-> self reaction-time))
|
||||
(set! gp-0 #t)
|
||||
(set! (-> self nav-enemy-flags) (logand -2 (-> self nav-enemy-flags)))
|
||||
(logclear! (-> self nav-enemy-flags) (nav-enemy-flags navenmf0))
|
||||
)
|
||||
)
|
||||
(else
|
||||
@@ -566,7 +570,7 @@ nav-enemy-default-event-handler
|
||||
)
|
||||
)
|
||||
)
|
||||
(logior! (-> self nav-enemy-flags) 1)
|
||||
(logior! (-> self nav-enemy-flags) (nav-enemy-flags navenmf0))
|
||||
(set! (-> self notice-time) (-> *display* base-frame-counter))
|
||||
)
|
||||
)
|
||||
@@ -830,15 +834,9 @@ nav-enemy-default-event-handler
|
||||
(nav-enemy-neck-control-inactive)
|
||||
(set! (-> self state-time) (-> *display* base-frame-counter))
|
||||
(if (-> self nav-info move-to-ground)
|
||||
(move-to-ground
|
||||
(-> self collide-info)
|
||||
40960.0
|
||||
40960.0
|
||||
#t
|
||||
(the-as collide-kind (-> self nav-info gnd-collide-with))
|
||||
)
|
||||
(move-to-ground (-> self collide-info) 40960.0 40960.0 #t (-> self nav-info gnd-collide-with))
|
||||
)
|
||||
(set! (-> self nav-enemy-flags) (logand -7 (-> self nav-enemy-flags)))
|
||||
(logclear! (-> self nav-enemy-flags) (nav-enemy-flags navenmf1 navenmf2))
|
||||
(set! (-> self state-timeout) (seconds 1))
|
||||
(none)
|
||||
)
|
||||
@@ -895,10 +893,10 @@ nav-enemy-default-event-handler
|
||||
(behavior ()
|
||||
(set! (-> self state-time) (-> *display* base-frame-counter))
|
||||
(set! (-> self nav flags)
|
||||
(the-as nav-control-flags (the-as int (logior (nav-control-flags bit19) (-> self nav flags))))
|
||||
(the-as nav-control-flags (the-as int (logior (nav-control-flags navcf19) (-> self nav flags))))
|
||||
)
|
||||
(set! (-> self nav-enemy-flags) (logand -5 (-> self nav-enemy-flags)))
|
||||
(logior! (-> self nav-enemy-flags) 8)
|
||||
(logclear! (-> self nav-enemy-flags) (nav-enemy-flags navenmf2))
|
||||
(logior! (-> self nav-enemy-flags) (nav-enemy-flags enable-rotate))
|
||||
(set! (-> self state-timeout) (seconds 1))
|
||||
(set! (-> self target-speed) (-> self nav-info walk-travel-speed))
|
||||
(set! (-> self acceleration) (-> self nav-info walk-acceleration))
|
||||
@@ -908,7 +906,7 @@ nav-enemy-default-event-handler
|
||||
)
|
||||
:exit
|
||||
(behavior ()
|
||||
(logior! (-> self nav-enemy-flags) 8)
|
||||
(logior! (-> self nav-enemy-flags) (nav-enemy-flags enable-rotate))
|
||||
(none)
|
||||
)
|
||||
:trans
|
||||
@@ -986,7 +984,7 @@ nav-enemy-default-event-handler
|
||||
(joint-control-channel-group! a0-5 (the-as art-joint-anim #f) num-func-loop!)
|
||||
)
|
||||
(ja-channel-push! 1 180)
|
||||
(set! (-> self nav-enemy-flags) (logand -9 (-> self nav-enemy-flags)))
|
||||
(logclear! (-> self nav-enemy-flags) (nav-enemy-flags enable-rotate))
|
||||
(let ((a0-8 (-> self skel root-channel 0)))
|
||||
(set! (-> a0-8 frame-group)
|
||||
(the-as art-joint-anim (-> self draw art-group data (-> self nav-info idle-anim)))
|
||||
@@ -1040,7 +1038,7 @@ nav-enemy-default-event-handler
|
||||
)
|
||||
)
|
||||
)
|
||||
(logior! (-> self nav-enemy-flags) 8)
|
||||
(logior! (-> self nav-enemy-flags) (nav-enemy-flags enable-rotate))
|
||||
(let ((a0-15 (-> self skel root-channel 0)))
|
||||
(set! (-> a0-15 param 0) 1.0)
|
||||
(joint-control-channel-group! a0-15 (the-as art-joint-anim #f) num-func-loop!)
|
||||
@@ -1091,12 +1089,12 @@ nav-enemy-default-event-handler
|
||||
)
|
||||
:enter
|
||||
(behavior ()
|
||||
(logior! (-> self nav-enemy-flags) 4)
|
||||
(logior! (-> self nav-enemy-flags) (nav-enemy-flags navenmf2))
|
||||
(nav-enemy-neck-control-look-at)
|
||||
(if (logtest? (-> self nav-enemy-flags) 2)
|
||||
(if (logtest? (-> self nav-enemy-flags) (nav-enemy-flags navenmf1))
|
||||
(go-virtual nav-enemy-chase)
|
||||
)
|
||||
(logior! (-> self nav-enemy-flags) 2)
|
||||
(logior! (-> self nav-enemy-flags) (nav-enemy-flags navenmf1))
|
||||
(let ((gp-0 (-> self nav))
|
||||
(v1-10 (target-pos 0))
|
||||
)
|
||||
@@ -1262,7 +1260,7 @@ nav-enemy-default-event-handler
|
||||
;; INFO: Return type mismatch int vs none.
|
||||
;; Used lq/sq
|
||||
(defbehavior nav-enemy-reset-frustration nav-enemy ()
|
||||
(set! (-> self nav-enemy-flags) (logand -8193 (-> self nav-enemy-flags)))
|
||||
(logclear! (-> self nav-enemy-flags) (nav-enemy-flags navenmf13))
|
||||
(if *target*
|
||||
(set! (-> self frustration-point quad) (-> *target* control shadow-pos quad))
|
||||
)
|
||||
@@ -1280,7 +1278,9 @@ nav-enemy-default-event-handler
|
||||
|
||||
;; definition for function nav-enemy-frustrated?
|
||||
(defbehavior nav-enemy-frustrated? nav-enemy ()
|
||||
(and (logtest? (-> self nav-enemy-flags) 8192) (nav-enemy-player-at-frustration-point?))
|
||||
(and (logtest? (-> self nav-enemy-flags) (nav-enemy-flags navenmf13))
|
||||
(nav-enemy-player-at-frustration-point?)
|
||||
)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
@@ -1296,7 +1296,7 @@ nav-enemy-default-event-handler
|
||||
(nav-enemy-neck-control-look-at)
|
||||
(set! (-> self state-time) (-> *display* base-frame-counter))
|
||||
(set! (-> self free-time) (-> *display* base-frame-counter))
|
||||
(logior! (-> self nav-enemy-flags) 4)
|
||||
(logior! (-> self nav-enemy-flags) (nav-enemy-flags navenmf2))
|
||||
(set! (-> self target-speed) (-> self nav-info run-travel-speed))
|
||||
(set! (-> self acceleration) (-> self nav-info run-acceleration))
|
||||
(set! (-> self rotate-speed) (-> self nav-info run-rotate-speed))
|
||||
@@ -1309,7 +1309,7 @@ nav-enemy-default-event-handler
|
||||
(if (logtest? (-> *target* state-flags) 128)
|
||||
(go-virtual nav-enemy-patrol)
|
||||
)
|
||||
(if (logtest? (-> self nav-enemy-flags) 256)
|
||||
(if (logtest? (-> self nav-enemy-flags) (nav-enemy-flags navenmf8))
|
||||
(go-virtual nav-enemy-victory)
|
||||
)
|
||||
(if (or (not (nav-enemy-player-at-frustration-point?))
|
||||
@@ -1323,15 +1323,15 @@ nav-enemy-default-event-handler
|
||||
(if (>= (- (-> *display* base-frame-counter) (-> self frustration-time))
|
||||
(+ (-> self reaction-time) (-> self nav-info frustration-time))
|
||||
)
|
||||
(logior! (-> self nav-enemy-flags) 8192)
|
||||
(logior! (-> self nav-enemy-flags) (nav-enemy-flags navenmf13))
|
||||
)
|
||||
(if (or (not (TODO-RENAME-46 self (-> self nav-info stop-chase-distance)))
|
||||
(logtest? (-> self nav-enemy-flags) 8192)
|
||||
(logtest? (-> self nav-enemy-flags) (nav-enemy-flags navenmf13))
|
||||
)
|
||||
(go-virtual nav-enemy-stop-chase)
|
||||
)
|
||||
(cond
|
||||
((logtest? (nav-control-flags bit17) (-> self nav flags))
|
||||
((logtest? (nav-control-flags navcf17) (-> self nav flags))
|
||||
(if (>= (- (-> *display* base-frame-counter) (-> self free-time)) (seconds 1))
|
||||
(go-virtual nav-enemy-patrol)
|
||||
)
|
||||
@@ -1406,7 +1406,7 @@ nav-enemy-default-event-handler
|
||||
(vector-vector-distance (-> self collide-info trans) (-> *target* control trans))
|
||||
)
|
||||
)
|
||||
(logtest? (nav-control-flags bit17) (-> self nav flags))
|
||||
(logtest? (nav-control-flags navcf17) (-> self nav flags))
|
||||
(>= (- (-> *display* base-frame-counter) (-> self state-time)) (-> self state-timeout))
|
||||
)
|
||||
(go-virtual nav-enemy-stare)
|
||||
@@ -1452,7 +1452,7 @@ nav-enemy-default-event-handler
|
||||
:enter
|
||||
(behavior ()
|
||||
(set! (-> self state-time) (-> *display* base-frame-counter))
|
||||
(set! (-> self nav-enemy-flags) (logand -17 (-> self nav-enemy-flags)))
|
||||
(logclear! (-> self nav-enemy-flags) (nav-enemy-flags enable-travel))
|
||||
(let ((f0-0 (vector-vector-distance (-> self collide-info trans) (target-pos 0))))
|
||||
(set! (-> self state-timeout)
|
||||
(the-as
|
||||
@@ -1468,7 +1468,7 @@ nav-enemy-default-event-handler
|
||||
)
|
||||
:exit
|
||||
(behavior ()
|
||||
(logior! (-> self nav-enemy-flags) 16)
|
||||
(logior! (-> self nav-enemy-flags) (nav-enemy-flags enable-travel))
|
||||
(none)
|
||||
)
|
||||
:trans
|
||||
@@ -1499,7 +1499,7 @@ nav-enemy-default-event-handler
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! (-> self nav-enemy-flags) (logand -5 (-> self nav-enemy-flags)))
|
||||
(logclear! (-> self nav-enemy-flags) (nav-enemy-flags navenmf2))
|
||||
(if (>= (- (-> *display* base-frame-counter) (-> self state-time)) (-> self state-timeout))
|
||||
(go-virtual nav-enemy-give-up)
|
||||
)
|
||||
@@ -1508,7 +1508,7 @@ nav-enemy-default-event-handler
|
||||
(vector-vector-distance (-> self collide-info trans) (-> *target* control trans))
|
||||
)
|
||||
)
|
||||
(logtest? (nav-control-flags bit17) (-> self nav flags))
|
||||
(logtest? (nav-control-flags navcf17) (-> self nav flags))
|
||||
)
|
||||
(go-virtual nav-enemy-give-up)
|
||||
)
|
||||
@@ -1536,7 +1536,7 @@ nav-enemy-default-event-handler
|
||||
(behavior ()
|
||||
(set! (-> self state-time) (-> *display* base-frame-counter))
|
||||
(nav-enemy-neck-control-inactive)
|
||||
(set! (-> self nav-enemy-flags) (logand -5 (-> self nav-enemy-flags)))
|
||||
(logclear! (-> self nav-enemy-flags) (nav-enemy-flags navenmf2))
|
||||
(none)
|
||||
)
|
||||
:trans
|
||||
@@ -1705,7 +1705,7 @@ nav-enemy-default-event-handler
|
||||
;; INFO: Return type mismatch int vs none.
|
||||
;; Used lq/sq
|
||||
(defbehavior nav-enemy-jump-post nav-enemy ()
|
||||
(if (logtest? (-> self nav-enemy-flags) 16)
|
||||
(if (logtest? (-> self nav-enemy-flags) (nav-enemy-flags enable-travel))
|
||||
(seek-to-point-toward-point!
|
||||
(-> self collide-info)
|
||||
(-> self jump-dest)
|
||||
@@ -1713,7 +1713,7 @@ nav-enemy-default-event-handler
|
||||
(-> self turn-time)
|
||||
)
|
||||
)
|
||||
(when (logtest? (-> self nav-enemy-flags) 8)
|
||||
(when (logtest? (-> self nav-enemy-flags) (nav-enemy-flags enable-rotate))
|
||||
(let ((f30-0 (the float (- (-> *display* base-frame-counter) (-> self jump-time)))))
|
||||
(let ((v1-12 (eval-position! (-> self jump-trajectory) f30-0 (new 'stack-no-clear 'vector))))
|
||||
(set! (-> self collide-info trans quad) (-> v1-12 quad))
|
||||
@@ -1744,24 +1744,24 @@ nav-enemy-default-event-handler
|
||||
(set! (-> s2-2 y) 0.0)
|
||||
(vector-xz-normalize! s1-1 1.0)
|
||||
(vector-xz-normalize! s2-2 1.0)
|
||||
(set! (-> self nav-enemy-flags) (logand -1537 (-> self nav-enemy-flags)))
|
||||
(logclear! (-> self nav-enemy-flags) (nav-enemy-flags standing-jump drop-jump))
|
||||
(if (or (>= (* 0.5 (-> self nav-info run-travel-speed)) f24-0) (>= (cos 3640.889) (vector-dot s1-1 s2-2)))
|
||||
(logior! (-> self nav-enemy-flags) 512)
|
||||
(logior! (-> self nav-enemy-flags) (nav-enemy-flags standing-jump))
|
||||
)
|
||||
)
|
||||
(if (or (and (< f26-0 0.0) (< f28-0 (fabs f26-0))) (and (< (fabs f26-0) 12288.0) (< f28-0 20480.0)))
|
||||
(logior! (-> self nav-enemy-flags) 1024)
|
||||
(logior! (-> self nav-enemy-flags) (nav-enemy-flags drop-jump))
|
||||
)
|
||||
)
|
||||
(when (and arg1 (logtest? (-> self nav-enemy-flags) 1024))
|
||||
(set! (-> self nav-enemy-flags) (logand -513 (-> self nav-enemy-flags)))
|
||||
(when (and arg1 (logtest? (-> self nav-enemy-flags) (nav-enemy-flags drop-jump)))
|
||||
(logclear! (-> self nav-enemy-flags) (nav-enemy-flags standing-jump))
|
||||
(set! f30-0 2048.0)
|
||||
)
|
||||
(setup-from-to-height! (-> self jump-trajectory) s4-0 arg0 f30-0 (* 0.000011111111 arg4))
|
||||
)
|
||||
(set! (-> self nav extra-nav-sphere quad) (-> arg0 quad))
|
||||
(set! (-> self nav extra-nav-sphere w) (-> self collide-info nav-radius))
|
||||
(logior! (-> self collide-info nav-flags) 2)
|
||||
(logior! (-> self collide-info nav-flags) (nav-flags navf1))
|
||||
0
|
||||
(none)
|
||||
)
|
||||
@@ -1784,13 +1784,13 @@ nav-enemy-default-event-handler
|
||||
;; INFO: Return type mismatch int vs none.
|
||||
;; Used lq/sq
|
||||
(defbehavior nav-enemy-execute-custom-jump nav-enemy ((arg0 int) (arg1 float) (arg2 float))
|
||||
(when (logtest? (-> self nav-enemy-flags) 512)
|
||||
(when (logtest? (-> self nav-enemy-flags) (nav-enemy-flags standing-jump))
|
||||
(let ((a0-1 (-> self skel root-channel 0)))
|
||||
(set! (-> a0-1 param 0) 1.0)
|
||||
(joint-control-channel-group! a0-1 (the-as art-joint-anim #f) num-func-loop!)
|
||||
)
|
||||
(ja-channel-push! 1 30)
|
||||
(set! (-> self nav-enemy-flags) (logand -9 (-> self nav-enemy-flags)))
|
||||
(logclear! (-> self nav-enemy-flags) (nav-enemy-flags enable-rotate))
|
||||
(let ((s3-0 (-> self skel root-channel 0)))
|
||||
(set! (-> s3-0 frame-group) (the-as art-joint-anim (-> self draw art-group data arg0)))
|
||||
(set! (-> s3-0 param 0) (ja-aframe arg1 0))
|
||||
@@ -1810,9 +1810,9 @@ nav-enemy-default-event-handler
|
||||
)
|
||||
(set! (-> self collide-info status) (logand -8 (-> self collide-info status)))
|
||||
(set! (-> self jump-time) (-> *display* base-frame-counter))
|
||||
(logior! (-> self nav-enemy-flags) 8)
|
||||
(logior! (-> self nav-enemy-flags) (nav-enemy-flags enable-rotate))
|
||||
(cond
|
||||
((logtest? (-> self nav-enemy-flags) 1024)
|
||||
((logtest? (-> self nav-enemy-flags) (nav-enemy-flags drop-jump))
|
||||
(cond
|
||||
((= (if (> (-> self skel active-channels) 0)
|
||||
(-> self skel root-channel 0 frame-group)
|
||||
@@ -1864,7 +1864,7 @@ nav-enemy-default-event-handler
|
||||
)
|
||||
(set! (-> self collide-info trans quad) (-> self jump-dest quad))
|
||||
(set! (-> self collide-info transv y) 0.0)
|
||||
(set! (-> self collide-info nav-flags) (logand -3 (-> self collide-info nav-flags)))
|
||||
(logclear! (-> self collide-info nav-flags) (nav-flags navf1))
|
||||
0
|
||||
(none)
|
||||
)
|
||||
@@ -1938,7 +1938,7 @@ nav-enemy-default-event-handler
|
||||
)
|
||||
:exit
|
||||
(behavior ()
|
||||
(logior! (-> self nav-enemy-flags) 24)
|
||||
(logior! (-> self nav-enemy-flags) (nav-enemy-flags enable-rotate enable-travel))
|
||||
(none)
|
||||
)
|
||||
:code
|
||||
@@ -1977,7 +1977,9 @@ nav-enemy-default-event-handler
|
||||
(set! (-> self collide-info transv x) (-> v1-9 x))
|
||||
(set! (-> self collide-info transv z) (-> v1-9 z))
|
||||
)
|
||||
(if (or (logtest? (-> self nav-enemy-flags) 128) (logtest? (nav-control-flags bit19) (-> self nav flags)))
|
||||
(if (or (logtest? (-> self nav-enemy-flags) (nav-enemy-flags navenmf7))
|
||||
(logtest? (nav-control-flags navcf19) (-> self nav flags))
|
||||
)
|
||||
(seek-to-point-toward-point!
|
||||
(-> self collide-info)
|
||||
(-> self nav target-pos)
|
||||
@@ -1998,7 +2000,7 @@ nav-enemy-default-event-handler
|
||||
(integrate-for-enemy-with-move-to-ground!
|
||||
(-> self collide-info)
|
||||
(-> self collide-info transv)
|
||||
(the-as collide-kind (-> self nav-info gnd-collide-with))
|
||||
(-> self nav-info gnd-collide-with)
|
||||
8192.0
|
||||
#f
|
||||
(-> self nav-info hover-if-no-ground)
|
||||
@@ -2019,7 +2021,7 @@ nav-enemy-default-event-handler
|
||||
:enter
|
||||
(behavior ()
|
||||
(set! (-> self state-time) (-> *display* base-frame-counter))
|
||||
(logclear! (-> self nav flags) (nav-control-flags bit19))
|
||||
(logclear! (-> self nav flags) (nav-control-flags navcf19))
|
||||
(let ((gp-0 (new 'stack-no-clear 'vector)))
|
||||
(set! (-> gp-0 quad) (-> self collide-info transv quad))
|
||||
(set! (-> gp-0 y) 0.0)
|
||||
@@ -2033,7 +2035,7 @@ nav-enemy-default-event-handler
|
||||
:trans
|
||||
(behavior ()
|
||||
(if (or (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.5))
|
||||
(logtest? (nav-control-flags bit19) (-> self nav flags))
|
||||
(logtest? (nav-control-flags navcf19) (-> self nav flags))
|
||||
)
|
||||
(go-virtual nav-enemy-chase)
|
||||
)
|
||||
@@ -2125,7 +2127,7 @@ nav-enemy-default-event-handler
|
||||
:code
|
||||
(behavior ()
|
||||
(set! (-> self state-time) (-> *display* base-frame-counter))
|
||||
(logior! (-> self nav-enemy-flags) 2048)
|
||||
(logior! (-> self nav-enemy-flags) (nav-enemy-flags navenmf11))
|
||||
(ja-channel-push! 1 30)
|
||||
(let ((f30-0 (nav-enemy-rnd-float-range 0.8 1.2)))
|
||||
(let ((v1-6 (-> self skel root-channel 0)))
|
||||
@@ -2137,7 +2139,7 @@ nav-enemy-default-event-handler
|
||||
(set! (-> v1-9 num-func) num-func-identity)
|
||||
(set! (-> v1-9 frame-num) 0.0)
|
||||
)
|
||||
(while (logtest? (-> self nav-enemy-flags) 2048)
|
||||
(while (logtest? (-> self nav-enemy-flags) (nav-enemy-flags navenmf11))
|
||||
(suspend)
|
||||
(let ((a0-8 (-> self skel root-channel 0)))
|
||||
(set! (-> a0-8 param 0) f30-0)
|
||||
@@ -2172,7 +2174,7 @@ nav-enemy-default-event-handler
|
||||
nav-enemy-jump-event-handler
|
||||
:exit
|
||||
(behavior ()
|
||||
(logior! (-> self nav-enemy-flags) 24)
|
||||
(logior! (-> self nav-enemy-flags) (nav-enemy-flags enable-rotate enable-travel))
|
||||
(none)
|
||||
)
|
||||
:trans
|
||||
@@ -2185,15 +2187,15 @@ nav-enemy-default-event-handler
|
||||
(set! (-> self state-time) (-> *display* base-frame-counter))
|
||||
(nav-enemy-initialize-jump (-> self event-param-point))
|
||||
(nav-enemy-neck-control-look-at)
|
||||
(logior! (-> self nav-enemy-flags) 16)
|
||||
(set! (-> self nav-enemy-flags) (logand -9 (-> self nav-enemy-flags)))
|
||||
(logior! (-> self nav-enemy-flags) (nav-enemy-flags enable-travel))
|
||||
(logclear! (-> self nav-enemy-flags) (nav-enemy-flags enable-rotate))
|
||||
(when (not (nav-enemy-facing-point? (-> self jump-dest) 5461.3335))
|
||||
(ja-channel-push! 1 60)
|
||||
(nav-enemy-turn-to-face-point (-> self jump-dest) 1820.4445)
|
||||
)
|
||||
(set! (-> self nav-enemy-flags) (logand -17 (-> self nav-enemy-flags)))
|
||||
(logclear! (-> self nav-enemy-flags) (nav-enemy-flags enable-travel))
|
||||
(nav-enemy-execute-jump)
|
||||
(set! (-> self nav-enemy-flags) (logand -9 (-> self nav-enemy-flags)))
|
||||
(logclear! (-> self nav-enemy-flags) (nav-enemy-flags enable-rotate))
|
||||
(nav-enemy-jump-land-anim)
|
||||
(go-virtual nav-enemy-wait-for-cue)
|
||||
(none)
|
||||
@@ -2239,7 +2241,7 @@ nav-enemy-default-event-handler
|
||||
)
|
||||
(set! (-> obj align) (new 'process 'align-control obj))
|
||||
(set! (-> obj nav) (new 'process 'nav-control (-> obj collide-info) 16 (-> arg0 nav-nearest-y-threshold)))
|
||||
(logior! (-> obj nav flags) (nav-control-flags display-marks bit3 bit5 bit6 bit7))
|
||||
(logior! (-> obj nav flags) (nav-control-flags display-marks navcf3 navcf5 navcf6 navcf7))
|
||||
(set! (-> obj nav gap-event) 'jump)
|
||||
(TODO-RENAME-26 (-> obj nav))
|
||||
(set! (-> obj path) (new 'process 'path-control obj 'path 0.0))
|
||||
@@ -2249,7 +2251,7 @@ nav-enemy-default-event-handler
|
||||
)
|
||||
(set! (-> obj reaction-time) (nav-enemy-rnd-int-range (seconds 0.1) (seconds 0.8)))
|
||||
(set! (-> obj speed-scale) 1.0)
|
||||
(logior! (-> obj nav-enemy-flags) 4216)
|
||||
(logior! (-> obj nav-enemy-flags) (nav-enemy-flags enable-rotate enable-travel navenmf5 navenmf6 navenmf12))
|
||||
0
|
||||
(none)
|
||||
)
|
||||
@@ -2291,8 +2293,8 @@ nav-enemy-default-event-handler
|
||||
(vector-identity! (-> self collide-info scale))
|
||||
(set! (-> self entity) (-> arg0 entity))
|
||||
(TODO-RENAME-48 self)
|
||||
(set! (-> self nav-enemy-flags) (logand -4097 (-> self nav-enemy-flags)))
|
||||
(logior! (-> self nav-enemy-flags) 2)
|
||||
(logclear! (-> self nav-enemy-flags) (nav-enemy-flags navenmf12))
|
||||
(logior! (-> self nav-enemy-flags) (nav-enemy-flags navenmf1))
|
||||
(go-virtual nav-enemy-wait-for-cue)
|
||||
(none)
|
||||
)
|
||||
|
||||
+5
-5
@@ -273,7 +273,7 @@ nav-enemy-default-event-handler
|
||||
:enter
|
||||
(behavior ()
|
||||
(set! (-> self state-time) (-> *display* base-frame-counter))
|
||||
(set! (-> self nav-enemy-flags) (logand -2 (-> self nav-enemy-flags)))
|
||||
(logclear! (-> self nav-enemy-flags) (nav-enemy-flags navenmf0))
|
||||
(none)
|
||||
)
|
||||
:exit
|
||||
@@ -295,8 +295,8 @@ nav-enemy-default-event-handler
|
||||
)
|
||||
)
|
||||
((sharkey-notice-player?)
|
||||
(when (zero? (logand (-> self nav-enemy-flags) 1))
|
||||
(logior! (-> self nav-enemy-flags) 1)
|
||||
(when (zero? (logand (-> self nav-enemy-flags) (nav-enemy-flags navenmf0)))
|
||||
(logior! (-> self nav-enemy-flags) (nav-enemy-flags navenmf0))
|
||||
(set! (-> self notice-time) (-> *display* base-frame-counter))
|
||||
)
|
||||
(let ((a0-4 (dummy-16 (-> self nav) (-> *target* control trans))))
|
||||
@@ -313,7 +313,7 @@ nav-enemy-default-event-handler
|
||||
)
|
||||
(else
|
||||
(if (>= (- (-> *display* base-frame-counter) (-> self notice-time)) (seconds 10))
|
||||
(set! (-> self nav-enemy-flags) (logand -2 (-> self nav-enemy-flags)))
|
||||
(logclear! (-> self nav-enemy-flags) (nav-enemy-flags navenmf0))
|
||||
)
|
||||
)
|
||||
)
|
||||
@@ -863,7 +863,7 @@ nav-enemy-default-event-handler
|
||||
:use-proximity-notice #f
|
||||
:use-jump-blocked #f
|
||||
:use-jump-patrol #f
|
||||
:gnd-collide-with #x1
|
||||
:gnd-collide-with (collide-kind background)
|
||||
:debug-draw-neck #f
|
||||
:debug-draw-jump #f
|
||||
)
|
||||
|
||||
+19
-16
@@ -120,7 +120,8 @@
|
||||
:use-proximity-notice #f
|
||||
:use-jump-blocked #t
|
||||
:use-jump-patrol #f
|
||||
:gnd-collide-with #x805
|
||||
:gnd-collide-with
|
||||
(collide-kind background cak-2 ground-object)
|
||||
:debug-draw-neck #f
|
||||
:debug-draw-jump #f
|
||||
)
|
||||
@@ -367,11 +368,12 @@
|
||||
|
||||
;; definition for method 44 of type green-eco-lurker
|
||||
(defmethod dummy-44 green-eco-lurker ((obj green-eco-lurker) (arg0 process) (arg1 event-message-block))
|
||||
(when (and (logtest? (-> obj nav-enemy-flags) 64) ((method-of-type touching-shapes-entry prims-touching?)
|
||||
(the-as touching-shapes-entry (-> arg1 param 0))
|
||||
(-> obj collide-info)
|
||||
(the-as uint 1)
|
||||
)
|
||||
(when (and (logtest? (-> obj nav-enemy-flags) (nav-enemy-flags navenmf6))
|
||||
((method-of-type touching-shapes-entry prims-touching?)
|
||||
(the-as touching-shapes-entry (-> arg1 param 0))
|
||||
(-> obj collide-info)
|
||||
(the-as uint 1)
|
||||
)
|
||||
)
|
||||
(if (nav-enemy-send-attack arg0 (the-as touching-shapes-entry (-> arg1 param 0)) 'generic)
|
||||
(send-event (ppointer->process (-> obj parent)) 'blob-hit-jak)
|
||||
@@ -381,11 +383,12 @@
|
||||
|
||||
;; definition for method 72 of type green-eco-lurker
|
||||
(defmethod nav-enemy-touch-handler green-eco-lurker ((obj green-eco-lurker) (arg0 process) (arg1 event-message-block))
|
||||
(when (and (logtest? (-> obj nav-enemy-flags) 64) ((method-of-type touching-shapes-entry prims-touching?)
|
||||
(the-as touching-shapes-entry (-> arg1 param 0))
|
||||
(-> obj collide-info)
|
||||
(the-as uint 1)
|
||||
)
|
||||
(when (and (logtest? (-> obj nav-enemy-flags) (nav-enemy-flags navenmf6))
|
||||
((method-of-type touching-shapes-entry prims-touching?)
|
||||
(the-as touching-shapes-entry (-> arg1 param 0))
|
||||
(-> obj collide-info)
|
||||
(the-as uint 1)
|
||||
)
|
||||
)
|
||||
(if (nav-enemy-send-attack arg0 (the-as touching-shapes-entry (-> arg1 param 0)) 'generic)
|
||||
(send-event (ppointer->process (-> obj parent)) 'blob-hit-jak)
|
||||
@@ -521,7 +524,7 @@
|
||||
(+ (-> (the-as green-eco-lurker-gen (-> self parent 0)) root trans x) (fmax -32768.0 (fmin 32768.0 f0-1)))
|
||||
)
|
||||
)
|
||||
(logior! (-> self collide-info nav-flags) 2)
|
||||
(logior! (-> self collide-info nav-flags) (nav-flags navf1))
|
||||
(set! (-> self nav extra-nav-sphere quad) (-> self appear-dest quad))
|
||||
(set! (-> self nav extra-nav-sphere w) 8192.0)
|
||||
(setup-from-to-duration! (-> self traj) (-> self collide-info trans) (-> self appear-dest) 225.0 -9.102222)
|
||||
@@ -551,8 +554,8 @@
|
||||
(let ((f30-0 (fmin (the float (- (-> *display* base-frame-counter) (-> self state-time))) (-> self traj time))))
|
||||
(eval-position! (-> self traj) f30-0 (-> self collide-info trans))
|
||||
(when (= f30-0 (-> self traj time))
|
||||
(logior! (-> self collide-info nav-flags) 1)
|
||||
(set! (-> self collide-info nav-flags) (logand -3 (-> self collide-info nav-flags)))
|
||||
(logior! (-> self collide-info nav-flags) (nav-flags navf0))
|
||||
(logclear! (-> self collide-info nav-flags) (nav-flags navf1))
|
||||
(go green-eco-lurker-appear-land)
|
||||
)
|
||||
)
|
||||
@@ -687,7 +690,7 @@
|
||||
(joint-control-channel-group-eval! a0-16 (the-as art-joint-anim #f) num-func-seek!)
|
||||
)
|
||||
)
|
||||
(logior! (-> self nav-enemy-flags) 2)
|
||||
(logior! (-> self nav-enemy-flags) (nav-enemy-flags navenmf1))
|
||||
(go-virtual nav-enemy-chase)
|
||||
(none)
|
||||
)
|
||||
@@ -942,7 +945,7 @@
|
||||
(defmethod TODO-RENAME-48 green-eco-lurker ((obj green-eco-lurker))
|
||||
(initialize-skeleton obj *green-eco-lurker-sg* '())
|
||||
(set! (-> obj draw origin-joint-index) (the-as uint 3))
|
||||
(set! (-> obj collide-info nav-flags) (logand -2 (-> obj collide-info nav-flags)))
|
||||
(logclear! (-> obj collide-info nav-flags) (nav-flags navf0))
|
||||
(TODO-RENAME-45 obj *green-eco-lurker-nav-enemy-info*)
|
||||
(logior! (-> obj draw shadow-ctrl settings flags) 4)
|
||||
(set! (-> obj neck up) (the-as uint 0))
|
||||
|
||||
+2
-2
@@ -4574,8 +4574,8 @@
|
||||
(initialize-skeleton obj *robotboss-sg* '())
|
||||
(aybabtu 2)
|
||||
(set! (-> obj nav) (new 'process 'nav-control (-> obj root-override) 16 (the-as float 40960.0)))
|
||||
(logior! (-> obj nav flags) (nav-control-flags display-marks bit3 bit5 bit6 bit7))
|
||||
(set! (-> obj root-override nav-flags) (logand -2 (-> obj root-override nav-flags)))
|
||||
(logior! (-> obj nav flags) (nav-control-flags display-marks navcf3 navcf5 navcf6 navcf7))
|
||||
(logclear! (-> obj root-override nav-flags) (nav-flags navf0))
|
||||
(set! (-> obj path) (new 'process 'path-control obj 'path (the-as float 0.0)))
|
||||
(logior! (-> obj path flags) (path-control-flag display draw-line draw-point draw-text))
|
||||
(logclear! (-> obj mask) (process-mask actor-pause))
|
||||
|
||||
+23
-16
@@ -57,9 +57,16 @@ nav-enemy-default-event-handler
|
||||
)
|
||||
(set! (-> s5-0 quad) (-> arg0 quad))
|
||||
(set! (-> s5-0 y) (+ 20480.0 (-> s5-0 y)))
|
||||
(let ((f0-2
|
||||
(fill-and-probe-using-y-probe *collide-cache* s5-0 f30-0 (collide-kind background) self t1-0 (the-as uint 1))
|
||||
)
|
||||
(let ((f0-2 (fill-and-probe-using-y-probe
|
||||
*collide-cache*
|
||||
s5-0
|
||||
f30-0
|
||||
(collide-kind background)
|
||||
self
|
||||
t1-0
|
||||
(new 'static 'pat-surface :noentity #x1)
|
||||
)
|
||||
)
|
||||
)
|
||||
(if (< f0-2 0.0)
|
||||
(return (the-as object #f))
|
||||
@@ -88,18 +95,18 @@ nav-enemy-default-event-handler
|
||||
(-> self nav-info jump-height-factor)
|
||||
-409600.0
|
||||
)
|
||||
(set! (-> self nav-enemy-flags) (logand -513 (-> self nav-enemy-flags)))
|
||||
(set! (-> self nav-enemy-flags) (logand -1025 (-> self nav-enemy-flags)))
|
||||
(logior! (-> self nav-enemy-flags) 16)
|
||||
(set! (-> self nav-enemy-flags) (logand -9 (-> self nav-enemy-flags)))
|
||||
(logclear! (-> self nav-enemy-flags) (nav-enemy-flags standing-jump))
|
||||
(logclear! (-> self nav-enemy-flags) (nav-enemy-flags drop-jump))
|
||||
(logior! (-> self nav-enemy-flags) (nav-enemy-flags enable-travel))
|
||||
(logclear! (-> self nav-enemy-flags) (nav-enemy-flags enable-rotate))
|
||||
(when (not (nav-enemy-facing-point? (-> self jump-dest) 5461.3335))
|
||||
(ja-channel-push! 1 60)
|
||||
(nav-enemy-turn-to-face-point (-> self jump-dest) 1820.4445)
|
||||
)
|
||||
(set! (-> self nav-enemy-flags) (logand -17 (-> self nav-enemy-flags)))
|
||||
(logclear! (-> self nav-enemy-flags) (nav-enemy-flags enable-travel))
|
||||
(nav-enemy-execute-jump)
|
||||
(set! (-> self shadow-min-y) (+ (-> self collide-info trans y) (-> self nav-info shadow-min-y)))
|
||||
(set! (-> self nav-enemy-flags) (logand -9 (-> self nav-enemy-flags)))
|
||||
(logclear! (-> self nav-enemy-flags) (nav-enemy-flags enable-rotate))
|
||||
(nav-enemy-jump-land-anim)
|
||||
0
|
||||
(none)
|
||||
@@ -181,7 +188,7 @@ nav-enemy-default-event-handler
|
||||
)
|
||||
:trans
|
||||
(behavior ()
|
||||
(if (zero? (logand (-> self nav-enemy-flags) 8))
|
||||
(if (zero? (logand (-> self nav-enemy-flags) (nav-enemy-flags enable-rotate)))
|
||||
((-> (method-of-type nav-enemy nav-enemy-patrol) trans))
|
||||
)
|
||||
(none)
|
||||
@@ -190,7 +197,7 @@ nav-enemy-default-event-handler
|
||||
(behavior ()
|
||||
(vector-reset! (-> self collide-info transv))
|
||||
(set! (-> self jump-length) 16384.0)
|
||||
(set! (-> self nav-enemy-flags) (logand -9 (-> self nav-enemy-flags)))
|
||||
(logclear! (-> self nav-enemy-flags) (nav-enemy-flags enable-rotate))
|
||||
(while #t
|
||||
(cond
|
||||
((= (if (> (-> self skel active-channels) 0)
|
||||
@@ -263,9 +270,9 @@ nav-enemy-default-event-handler
|
||||
(joint-control-channel-group-eval! a0-21 (the-as art-joint-anim #f) num-func-loop!)
|
||||
)
|
||||
)
|
||||
(when (or (logtest? (nav-control-flags bit19) (-> self nav flags)) (< 2.0 (-> self nav block-count)))
|
||||
(when (or (logtest? (nav-control-flags navcf19) (-> self nav flags)) (< 2.0 (-> self nav block-count)))
|
||||
(set! (-> self nav block-count) 0.0)
|
||||
(logior! (-> self nav flags) (nav-control-flags bit10))
|
||||
(logior! (-> self nav flags) (nav-control-flags navcf10))
|
||||
(nav-enemy-get-new-patrol-point)
|
||||
(set! (-> self nav target-pos quad) (-> self nav destination-pos quad))
|
||||
)
|
||||
@@ -302,7 +309,7 @@ nav-enemy-default-event-handler
|
||||
)
|
||||
:trans
|
||||
(behavior ()
|
||||
(if (zero? (logand (-> self nav-enemy-flags) 8))
|
||||
(if (zero? (logand (-> self nav-enemy-flags) (nav-enemy-flags enable-rotate)))
|
||||
((-> (method-of-type nav-enemy nav-enemy-chase) trans))
|
||||
)
|
||||
(none)
|
||||
@@ -311,7 +318,7 @@ nav-enemy-default-event-handler
|
||||
(behavior ()
|
||||
(vector-reset! (-> self collide-info transv))
|
||||
(set! (-> self jump-length) 32768.0)
|
||||
(set! (-> self nav-enemy-flags) (logand -9 (-> self nav-enemy-flags)))
|
||||
(logclear! (-> self nav-enemy-flags) (nav-enemy-flags enable-rotate))
|
||||
(while #t
|
||||
(cond
|
||||
((= (if (> (-> self skel active-channels) 0)
|
||||
@@ -457,7 +464,7 @@ nav-enemy-default-event-handler
|
||||
:use-proximity-notice #f
|
||||
:use-jump-blocked #f
|
||||
:use-jump-patrol #f
|
||||
:gnd-collide-with #x1
|
||||
:gnd-collide-with (collide-kind background)
|
||||
:debug-draw-neck #f
|
||||
:debug-draw-jump #t
|
||||
)
|
||||
|
||||
+1
-1
@@ -392,7 +392,7 @@ nav-enemy-default-event-handler
|
||||
:use-proximity-notice #f
|
||||
:use-jump-blocked #f
|
||||
:use-jump-patrol #f
|
||||
:gnd-collide-with #x1
|
||||
:gnd-collide-with (collide-kind background)
|
||||
:debug-draw-neck #f
|
||||
:debug-draw-jump #f
|
||||
)
|
||||
|
||||
+11
-9
@@ -32,14 +32,14 @@
|
||||
|
||||
;; definition for function aphid-invulnerable
|
||||
(defbehavior aphid-invulnerable aphid ()
|
||||
(set! (-> self nav-enemy-flags) (logand -33 (-> self nav-enemy-flags)))
|
||||
(logclear! (-> self nav-enemy-flags) (nav-enemy-flags navenmf5))
|
||||
(set-collide-offense (-> self collide-info) 2 (collide-offense indestructible))
|
||||
(none)
|
||||
)
|
||||
|
||||
;; definition for function aphid-vulnerable
|
||||
(defbehavior aphid-vulnerable aphid ()
|
||||
(logior! (-> self nav-enemy-flags) 32)
|
||||
(logior! (-> self nav-enemy-flags) (nav-enemy-flags navenmf5))
|
||||
(set-collide-offense (-> self collide-info) 2 (collide-offense touch))
|
||||
(none)
|
||||
)
|
||||
@@ -47,7 +47,9 @@
|
||||
;; definition for method 43 of type aphid
|
||||
(defmethod dummy-43 aphid ((obj aphid) (arg0 process) (arg1 event-message-block))
|
||||
(cond
|
||||
((or (logtest? (-> obj nav-enemy-flags) 32) (= arg0 (ppointer->process (-> obj parent))))
|
||||
((or (logtest? (-> obj nav-enemy-flags) (nav-enemy-flags navenmf5))
|
||||
(= arg0 (ppointer->process (-> obj parent)))
|
||||
)
|
||||
(send-event arg0 'get-attack-count 1)
|
||||
(logclear! (-> obj mask) (process-mask actor-pause attackable))
|
||||
(go (method-of-object obj nav-enemy-die))
|
||||
@@ -177,7 +179,7 @@
|
||||
(behavior ()
|
||||
(set! (-> self turn-time) (seconds 0.2))
|
||||
(let ((f30-0 (nav-enemy-rnd-float-range 0.8 1.2)))
|
||||
(when (or (logtest? (-> self nav-enemy-flags) 256)
|
||||
(when (or (logtest? (-> self nav-enemy-flags) (nav-enemy-flags navenmf8))
|
||||
(and (nav-enemy-player-vulnerable?) (nav-enemy-rnd-percent? 0.5))
|
||||
)
|
||||
(ja-channel-push! 1 30)
|
||||
@@ -201,7 +203,7 @@
|
||||
)
|
||||
(while #t
|
||||
(when (not (nav-enemy-facing-player? 2730.6667))
|
||||
(logior! (-> self nav-enemy-flags) 16)
|
||||
(logior! (-> self nav-enemy-flags) (nav-enemy-flags enable-travel))
|
||||
(let ((a0-7 (-> self skel root-channel 0)))
|
||||
(set! (-> a0-7 param 0) 1.0)
|
||||
(joint-control-channel-group! a0-7 (the-as art-joint-anim #f) num-func-loop!)
|
||||
@@ -222,7 +224,7 @@
|
||||
(joint-control-channel-group-eval! a0-13 (the-as art-joint-anim #f) num-func-loop!)
|
||||
)
|
||||
)
|
||||
(set! (-> self nav-enemy-flags) (logand -17 (-> self nav-enemy-flags)))
|
||||
(logclear! (-> self nav-enemy-flags) (nav-enemy-flags enable-travel))
|
||||
)
|
||||
(when (nav-enemy-rnd-percent? 0.3)
|
||||
(if (not (= (if (> (-> self skel active-channels) 0)
|
||||
@@ -292,7 +294,7 @@
|
||||
)
|
||||
)
|
||||
)
|
||||
(logclear! (-> self nav flags) (nav-control-flags bit17 bit19))
|
||||
(logclear! (-> self nav flags) (nav-control-flags navcf17 navcf19))
|
||||
(nav-enemy-get-new-patrol-point)
|
||||
(let ((a0-12 (-> self skel root-channel 0)))
|
||||
(set! (-> a0-12 frame-group) (the-as art-joint-anim (-> self draw art-group data 8)))
|
||||
@@ -371,7 +373,7 @@
|
||||
:use-proximity-notice #f
|
||||
:use-jump-blocked #f
|
||||
:use-jump-patrol #f
|
||||
:gnd-collide-with #x1
|
||||
:gnd-collide-with (collide-kind background)
|
||||
:debug-draw-neck #f
|
||||
:debug-draw-jump #f
|
||||
)
|
||||
@@ -431,7 +433,7 @@
|
||||
(vector-identity! (-> self collide-info scale))
|
||||
(set! (-> self entity) (-> arg0 entity))
|
||||
(TODO-RENAME-48 self)
|
||||
(set! (-> self nav-enemy-flags) (logand -4097 (-> self nav-enemy-flags)))
|
||||
(logclear! (-> self nav-enemy-flags) (nav-enemy-flags navenmf12))
|
||||
(let ((a1-3 (new 'stack-no-clear 'event-message-block)))
|
||||
(set! (-> a1-3 from) self)
|
||||
(set! (-> a1-3 num-params) 0)
|
||||
|
||||
+6
-6
@@ -146,7 +146,7 @@
|
||||
:use-proximity-notice #f
|
||||
:use-jump-blocked #f
|
||||
:use-jump-patrol #f
|
||||
:gnd-collide-with #x1
|
||||
:gnd-collide-with (collide-kind background)
|
||||
:debug-draw-neck #f
|
||||
:debug-draw-jump #f
|
||||
)
|
||||
@@ -200,7 +200,7 @@
|
||||
:use-proximity-notice #f
|
||||
:use-jump-blocked #f
|
||||
:use-jump-patrol #f
|
||||
:gnd-collide-with #x1
|
||||
:gnd-collide-with (collide-kind background)
|
||||
:debug-draw-neck #f
|
||||
:debug-draw-jump #f
|
||||
)
|
||||
@@ -656,7 +656,7 @@ baby-spider-default-event-handler
|
||||
(set! (-> self turn-time) (seconds 0.07333333))
|
||||
(let ((f30-0 (rand-vu-float-range 0.8 1.2)))
|
||||
(while #t
|
||||
(logior! (-> self nav-enemy-flags) 16)
|
||||
(logior! (-> self nav-enemy-flags) (nav-enemy-flags enable-travel))
|
||||
(ja-channel-push! 1 30)
|
||||
(let ((a0-2 (-> self skel root-channel 0)))
|
||||
(set! (-> a0-2 frame-group) (the-as art-joint-anim (-> self draw art-group data 12)))
|
||||
@@ -679,7 +679,7 @@ baby-spider-default-event-handler
|
||||
(set! (-> a0-5 param 0) 1.0)
|
||||
(joint-control-channel-group! a0-5 (the-as art-joint-anim #f) num-func-loop!)
|
||||
)
|
||||
(set! (-> self nav-enemy-flags) (logand -17 (-> self nav-enemy-flags)))
|
||||
(logclear! (-> self nav-enemy-flags) (nav-enemy-flags enable-travel))
|
||||
(let ((gp-0 (rand-vu-int-range 300 600))
|
||||
(s5-0 (-> *display* base-frame-counter))
|
||||
)
|
||||
@@ -736,7 +736,7 @@ baby-spider-default-event-handler
|
||||
(joint-control-channel-group-eval! a0-2 (the-as art-joint-anim #f) num-func-seek!)
|
||||
)
|
||||
)
|
||||
(logclear! (-> self nav flags) (nav-control-flags bit17 bit19))
|
||||
(logclear! (-> self nav flags) (nav-control-flags navcf17 navcf19))
|
||||
(nav-enemy-get-new-patrol-point)
|
||||
(let ((a0-7 (-> self skel root-channel 0)))
|
||||
(set! (-> a0-7 frame-group) (the-as art-joint-anim (-> self draw art-group data 6)))
|
||||
@@ -976,7 +976,7 @@ baby-spider-default-event-handler
|
||||
(set! (-> obj mask) (logior (process-mask enemy) (-> obj mask)))
|
||||
(logior! (-> obj mask) (process-mask actor-pause))
|
||||
(set! (-> obj nav) (new 'process 'nav-control (-> obj collide-info) 24 40960.0))
|
||||
(logior! (-> obj nav flags) (nav-control-flags display-marks bit3 bit5 bit6 bit7))
|
||||
(logior! (-> obj nav flags) (nav-control-flags display-marks navcf3 navcf5 navcf6 navcf7))
|
||||
(set! (-> obj path) (new 'process 'path-control obj 'path 0.0))
|
||||
(logior! (-> obj path flags) (path-control-flag display draw-line draw-point draw-text))
|
||||
(create-connection!
|
||||
|
||||
+5
-5
@@ -605,8 +605,8 @@
|
||||
(logior! (-> v1-8 settings flags) 32)
|
||||
)
|
||||
0
|
||||
(set! (-> self root-override nav-flags) (logand -2 (-> self root-override nav-flags)))
|
||||
(set! (-> self root-override nav-flags) (logand -3 (-> self root-override nav-flags)))
|
||||
(logclear! (-> self root-override nav-flags) (nav-flags navf0))
|
||||
(logclear! (-> self root-override nav-flags) (nav-flags navf1))
|
||||
(clear-collide-with-as (-> self root-override))
|
||||
(until (not (-> self child))
|
||||
(suspend)
|
||||
@@ -652,9 +652,9 @@
|
||||
(setup-lods! (-> self broken-look) *mother-spider-egg-broken-sg* (-> self draw art-group) (-> self entity))
|
||||
(set! (-> self draw shadow-ctrl) (new 'process 'shadow-control 0.0 0.0 614400.0 (the-as float 60) 245760.0))
|
||||
(set! (-> self nav) (new 'process 'nav-control (-> self root-override) 16 40960.0))
|
||||
(logior! (-> self nav flags) (nav-control-flags display-marks bit3 bit5 bit6 bit7))
|
||||
(set! (-> self root-override nav-flags) (logand -2 (-> self root-override nav-flags)))
|
||||
(logior! (-> self root-override nav-flags) 2)
|
||||
(logior! (-> self nav flags) (nav-control-flags display-marks navcf3 navcf5 navcf6 navcf7))
|
||||
(logclear! (-> self root-override nav-flags) (nav-flags navf0))
|
||||
(logior! (-> self root-override nav-flags) (nav-flags navf1))
|
||||
(set! (-> self nav extra-nav-sphere quad) (-> self fall-dest quad))
|
||||
(set! (-> self nav extra-nav-sphere w) 4096.0)
|
||||
(setup-from-to-height! (-> self traj) (-> self root-override trans) arg2 4096.0 -4.551111)
|
||||
|
||||
+1
-1
@@ -275,7 +275,7 @@
|
||||
(the-as vector #f)
|
||||
f0-5
|
||||
(collide-kind background)
|
||||
(the-as process #f)
|
||||
(the-as process-drawable #f)
|
||||
0.0
|
||||
81920.0
|
||||
)
|
||||
|
||||
+3
-3
@@ -2150,10 +2150,10 @@
|
||||
(process-drawable-from-entity! obj arg0)
|
||||
(initialize-skeleton obj *mother-spider-sg* '())
|
||||
(set! (-> obj nav) (new 'process 'nav-control (-> obj root-override) 16 40960.0))
|
||||
(logior! (-> obj nav flags) (nav-control-flags display-marks bit3 bit5 bit6 bit7))
|
||||
(logior! (-> obj nav flags) (nav-control-flags display-marks navcf3 navcf5 navcf6 navcf7))
|
||||
(set! (-> obj nav nearest-y-threshold) 409600.0)
|
||||
(set! (-> obj root-override nav-flags) (logand -2 (-> obj root-override nav-flags)))
|
||||
(set! (-> obj root-override nav-flags) (logand -3 (-> obj root-override nav-flags)))
|
||||
(logclear! (-> obj root-override nav-flags) (nav-flags navf0))
|
||||
(logclear! (-> obj root-override nav-flags) (nav-flags navf1))
|
||||
(set! (-> obj path) (new 'process 'path-control obj 'path 0.0))
|
||||
(logior! (-> obj path flags) (path-control-flag display draw-line draw-point draw-text))
|
||||
(set! (-> obj fact)
|
||||
|
||||
+8
-8
@@ -145,7 +145,7 @@ nav-enemy-default-event-handler
|
||||
(if (nav-enemy-notice-player?)
|
||||
(go-virtual nav-enemy-chase)
|
||||
)
|
||||
(if (logtest? (nav-control-flags bit19) (-> self nav flags))
|
||||
(if (logtest? (nav-control-flags navcf19) (-> self nav flags))
|
||||
(go babak-with-cannon-jump-onto-cannon)
|
||||
)
|
||||
(none)
|
||||
@@ -243,7 +243,7 @@ nav-enemy-default-event-handler
|
||||
)
|
||||
:exit
|
||||
(behavior ()
|
||||
(logior! (-> self nav-enemy-flags) 24)
|
||||
(logior! (-> self nav-enemy-flags) (nav-enemy-flags enable-rotate enable-travel))
|
||||
(none)
|
||||
)
|
||||
:code
|
||||
@@ -251,7 +251,7 @@ nav-enemy-default-event-handler
|
||||
(set! (-> self state-time) (-> *display* base-frame-counter))
|
||||
(set! (-> self rotate-speed) (-> self nav-info run-rotate-speed))
|
||||
(set! (-> self turn-time) (-> self nav-info run-turn-time))
|
||||
(set! (-> self nav-enemy-flags) (logand -25 (-> self nav-enemy-flags)))
|
||||
(logclear! (-> self nav-enemy-flags) (nav-enemy-flags enable-rotate enable-travel))
|
||||
(nav-enemy-neck-control-inactive)
|
||||
(let* ((v1-7 (-> self cannon-ent))
|
||||
(gp-0 (if v1-7
|
||||
@@ -277,9 +277,9 @@ nav-enemy-default-event-handler
|
||||
(ja-channel-push! 1 60)
|
||||
(nav-enemy-turn-to-face-point (-> self jump-dest) 1820.4445)
|
||||
)
|
||||
(logior! (-> self nav-enemy-flags) 16)
|
||||
(logior! (-> self nav-enemy-flags) (nav-enemy-flags enable-travel))
|
||||
(nav-enemy-execute-jump)
|
||||
(set! (-> self nav-enemy-flags) (logand -25 (-> self nav-enemy-flags)))
|
||||
(logclear! (-> self nav-enemy-flags) (nav-enemy-flags enable-rotate enable-travel))
|
||||
(let* ((v1-20 (-> self cannon-ent))
|
||||
(gp-1 (if v1-20
|
||||
(-> v1-20 extra process)
|
||||
@@ -334,7 +334,7 @@ nav-enemy-default-event-handler
|
||||
)
|
||||
:exit
|
||||
(behavior ()
|
||||
(logior! (-> self nav-enemy-flags) 24)
|
||||
(logior! (-> self nav-enemy-flags) (nav-enemy-flags enable-rotate enable-travel))
|
||||
(none)
|
||||
)
|
||||
:code
|
||||
@@ -342,7 +342,7 @@ nav-enemy-default-event-handler
|
||||
(set! (-> self state-time) (-> *display* base-frame-counter))
|
||||
(nav-enemy-initialize-jump (-> self entity extra trans))
|
||||
(nav-enemy-neck-control-look-at)
|
||||
(set! (-> self nav-enemy-flags) (logand -25 (-> self nav-enemy-flags)))
|
||||
(logclear! (-> self nav-enemy-flags) (nav-enemy-flags enable-rotate enable-travel))
|
||||
(let ((a0-2 (-> self skel root-channel 0)))
|
||||
(set! (-> a0-2 frame-group) (the-as art-joint-anim (-> self draw art-group data 17)))
|
||||
(set! (-> a0-2 param 0) 0.0)
|
||||
@@ -364,7 +364,7 @@ nav-enemy-default-event-handler
|
||||
(ja-channel-push! 1 60)
|
||||
(nav-enemy-turn-to-face-point (-> self jump-dest) 1820.4445)
|
||||
)
|
||||
(logior! (-> self nav-enemy-flags) 16)
|
||||
(logior! (-> self nav-enemy-flags) (nav-enemy-flags enable-travel))
|
||||
(nav-enemy-execute-jump)
|
||||
(let ((a1-6 (dummy-16 (-> self nav) (-> self jump-dest))))
|
||||
(set-current-poly! (-> self nav) a1-6)
|
||||
|
||||
+22
-23
@@ -52,20 +52,19 @@
|
||||
;; definition for method 44 of type bonelurker
|
||||
;; INFO: Return type mismatch symbol vs object.
|
||||
(defmethod dummy-44 bonelurker ((obj bonelurker) (arg0 process) (arg1 event-message-block))
|
||||
(the-as
|
||||
object
|
||||
(when (and (logtest? (-> obj nav-enemy-flags) 64) ((method-of-type touching-shapes-entry prims-touching?)
|
||||
(the-as touching-shapes-entry (-> arg1 param 0))
|
||||
(-> obj collide-info)
|
||||
(the-as uint 1)
|
||||
)
|
||||
)
|
||||
(when (nav-enemy-send-attack arg0 (the-as touching-shapes-entry (-> arg1 param 0)) 'generic)
|
||||
(set! (-> obj speed-scale) 0.5)
|
||||
#t
|
||||
)
|
||||
)
|
||||
)
|
||||
(the-as object (when (and (logtest? (-> obj nav-enemy-flags) (nav-enemy-flags navenmf6))
|
||||
((method-of-type touching-shapes-entry prims-touching?)
|
||||
(the-as touching-shapes-entry (-> arg1 param 0))
|
||||
(-> obj collide-info)
|
||||
(the-as uint 1)
|
||||
)
|
||||
)
|
||||
(when (nav-enemy-send-attack arg0 (the-as touching-shapes-entry (-> arg1 param 0)) 'generic)
|
||||
(set! (-> obj speed-scale) 0.5)
|
||||
#t
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for method 43 of type bonelurker
|
||||
@@ -134,7 +133,7 @@
|
||||
(send-event-function arg0 a1-6)
|
||||
)
|
||||
(set! (-> obj bump-player-time) (-> *display* base-frame-counter))
|
||||
(set! (-> obj nav-enemy-flags) (logand -65 (-> obj nav-enemy-flags)))
|
||||
(logclear! (-> obj nav-enemy-flags) (nav-enemy-flags navenmf6))
|
||||
'push
|
||||
)
|
||||
)
|
||||
@@ -256,10 +255,10 @@ nav-enemy-default-event-handler
|
||||
:trans
|
||||
(behavior ()
|
||||
((-> (method-of-type nav-enemy nav-enemy-chase) trans))
|
||||
(if (and (zero? (logand (-> self nav-enemy-flags) 64))
|
||||
(if (and (zero? (logand (-> self nav-enemy-flags) (nav-enemy-flags navenmf6)))
|
||||
(>= (- (-> *display* base-frame-counter) (-> self bump-player-time)) (seconds 0.5))
|
||||
)
|
||||
(logior! (-> self nav-enemy-flags) 64)
|
||||
(logior! (-> self nav-enemy-flags) (nav-enemy-flags navenmf6))
|
||||
)
|
||||
(none)
|
||||
)
|
||||
@@ -363,7 +362,7 @@ nav-enemy-default-event-handler
|
||||
(joint-control-channel-group-eval! a0-23 (the-as art-joint-anim #f) num-func-seek!)
|
||||
)
|
||||
)
|
||||
(if (logtest? (-> self nav-enemy-flags) 256)
|
||||
(if (logtest? (-> self nav-enemy-flags) (nav-enemy-flags navenmf8))
|
||||
(go-virtual nav-enemy-victory)
|
||||
)
|
||||
(let ((a0-25 (-> self skel root-channel 0)))
|
||||
@@ -383,7 +382,7 @@ nav-enemy-default-event-handler
|
||||
(joint-control-channel-group-eval! a0-26 (the-as art-joint-anim #f) num-func-seek!)
|
||||
)
|
||||
)
|
||||
(if (logtest? (-> self nav-enemy-flags) 256)
|
||||
(if (logtest? (-> self nav-enemy-flags) (nav-enemy-flags navenmf8))
|
||||
(go-virtual nav-enemy-victory)
|
||||
)
|
||||
(let ((a0-28 (-> self skel root-channel 0)))
|
||||
@@ -456,7 +455,7 @@ nav-enemy-default-event-handler
|
||||
)
|
||||
(while #t
|
||||
(when (not (nav-enemy-facing-player? 2730.6667))
|
||||
(logior! (-> self nav-enemy-flags) 16)
|
||||
(logior! (-> self nav-enemy-flags) (nav-enemy-flags enable-travel))
|
||||
(ja-channel-push! 1 60)
|
||||
(let ((v1-20 (-> self skel root-channel 0)))
|
||||
(set! (-> v1-20 frame-group) (the-as art-joint-anim (-> self draw art-group data 16)))
|
||||
@@ -473,7 +472,7 @@ nav-enemy-default-event-handler
|
||||
(joint-control-channel-group-eval! a0-14 (the-as art-joint-anim #f) num-func-loop!)
|
||||
)
|
||||
)
|
||||
(set! (-> self nav-enemy-flags) (logand -17 (-> self nav-enemy-flags)))
|
||||
(logclear! (-> self nav-enemy-flags) (nav-enemy-flags enable-travel))
|
||||
)
|
||||
(ja-channel-push! 1 75)
|
||||
(let ((a0-18 (-> self skel root-channel 0)))
|
||||
@@ -595,7 +594,7 @@ nav-enemy-default-event-handler
|
||||
)
|
||||
)
|
||||
)
|
||||
(logclear! (-> self nav flags) (nav-control-flags bit17 bit19))
|
||||
(logclear! (-> self nav flags) (nav-control-flags navcf17 navcf19))
|
||||
(nav-enemy-get-new-patrol-point)
|
||||
(let ((a0-18 (-> self skel root-channel 0)))
|
||||
(set! (-> a0-18 frame-group) (the-as art-joint-anim (-> self draw art-group data 5)))
|
||||
@@ -732,7 +731,7 @@ nav-enemy-default-event-handler
|
||||
:use-proximity-notice #f
|
||||
:use-jump-blocked #t
|
||||
:use-jump-patrol #f
|
||||
:gnd-collide-with #x1
|
||||
:gnd-collide-with (collide-kind background)
|
||||
:debug-draw-neck #f
|
||||
:debug-draw-jump #f
|
||||
)
|
||||
|
||||
+1
-1
@@ -917,7 +917,7 @@
|
||||
(-> self root-override shadow-pos)
|
||||
8192.0
|
||||
(collide-kind background)
|
||||
(the-as process #f)
|
||||
(the-as process-drawable #f)
|
||||
0.0
|
||||
81920.0
|
||||
)
|
||||
|
||||
+4
-4
@@ -409,8 +409,8 @@ nav-enemy-default-event-handler
|
||||
(-> self nav destination-pos)
|
||||
546133.3
|
||||
)
|
||||
(if (logtest? (nav-control-flags bit21) (-> self nav flags))
|
||||
(logclear! (-> self nav flags) (nav-control-flags bit10))
|
||||
(if (logtest? (nav-control-flags navcf21) (-> self nav flags))
|
||||
(logclear! (-> self nav flags) (nav-control-flags navcf10))
|
||||
)
|
||||
(nav-enemy-travel-post)
|
||||
(none)
|
||||
@@ -428,7 +428,7 @@ nav-enemy-default-event-handler
|
||||
:enter
|
||||
(behavior ()
|
||||
((-> (method-of-type nav-enemy nav-enemy-jump) enter))
|
||||
(set! (-> self nav-enemy-flags) (logand -513 (-> self nav-enemy-flags)))
|
||||
(logclear! (-> self nav-enemy-flags) (nav-enemy-flags standing-jump))
|
||||
(none)
|
||||
)
|
||||
:code
|
||||
@@ -641,7 +641,7 @@ nav-enemy-default-event-handler
|
||||
:use-proximity-notice #f
|
||||
:use-jump-blocked #f
|
||||
:use-jump-patrol #f
|
||||
:gnd-collide-with #x1
|
||||
:gnd-collide-with (collide-kind background)
|
||||
:debug-draw-neck #f
|
||||
:debug-draw-jump #f
|
||||
)
|
||||
|
||||
+2
-2
@@ -396,7 +396,7 @@
|
||||
(the-as vector #f)
|
||||
8192.0
|
||||
(collide-kind background)
|
||||
(the-as process #f)
|
||||
(the-as process-drawable #f)
|
||||
0.0
|
||||
81920.0
|
||||
)
|
||||
@@ -1240,7 +1240,7 @@
|
||||
(set-yaw-angle-clear-roll-pitch! (-> obj root-override) (rand-vu-float-range 0.0 65536.0))
|
||||
(initialize-skeleton obj *quicksandlurker-sg* '())
|
||||
(set! (-> obj nav) (new 'process 'nav-control (-> obj root-override) 16 40960.0))
|
||||
(logior! (-> obj nav flags) (nav-control-flags display-marks bit3 bit5 bit6 bit7))
|
||||
(logior! (-> obj nav flags) (nav-control-flags display-marks navcf3 navcf5 navcf6 navcf7))
|
||||
(set! (-> obj fact)
|
||||
(new 'process 'fact-info-enemy obj (pickup-type eco-pill-random) (-> *FACT-bank* default-pill-inc))
|
||||
)
|
||||
|
||||
+1
-1
@@ -1179,7 +1179,7 @@
|
||||
(the-as vector #f)
|
||||
(the-as float 49152.0)
|
||||
(collide-kind background)
|
||||
(the-as process #f)
|
||||
(the-as process-drawable #f)
|
||||
(-> (new 'static 'array float 1 0.0) 0)
|
||||
(the-as float 409600.0)
|
||||
)
|
||||
|
||||
+1
-1
@@ -1073,7 +1073,7 @@
|
||||
(send-event (ppointer->process (-> self manipy)) 'draw #t)
|
||||
(send-event (ppointer->process (-> self manipy)) 'anim-mode 'clone-anim)
|
||||
(target-timed-invulnerable-off self)
|
||||
(set! (-> self control pat-ignore-mask) (new 'static 'pat-surface :skip #x1 :noentity #x1))
|
||||
(set! (-> self control pat-ignore-mask) (new 'static 'pat-surface :noentity #x1))
|
||||
(restore-collide-with-as (-> self control))
|
||||
((-> target-racing-start exit))
|
||||
(target-exit)
|
||||
|
||||
+2
-2
@@ -398,9 +398,9 @@
|
||||
)
|
||||
(process-drawable-from-entity! obj arg0)
|
||||
(set! (-> obj nav) (new 'process 'nav-control (-> obj root-override) 16 40960.0))
|
||||
(logior! (-> obj nav flags) (nav-control-flags display-marks bit3 bit5 bit6 bit7))
|
||||
(logior! (-> obj nav flags) (nav-control-flags display-marks navcf3 navcf5 navcf6 navcf7))
|
||||
(set! (-> obj nav nearest-y-threshold) 409600.0)
|
||||
(set! (-> obj root-override nav-flags) (logand -2 (-> obj root-override nav-flags)))
|
||||
(logclear! (-> obj root-override nav-flags) (nav-flags navf0))
|
||||
(set! (-> obj path) (new 'process 'path-control obj 'path 0.0))
|
||||
(logior! (-> obj path flags) (path-control-flag display draw-line draw-point draw-text))
|
||||
(let ((s4-1 (entity-actor-count arg0 'alt-actor)))
|
||||
|
||||
+4
-4
@@ -503,13 +503,13 @@
|
||||
:virtual #t
|
||||
:enter
|
||||
(behavior ()
|
||||
(logior! (-> self nav flags) (nav-control-flags bit12))
|
||||
(logior! (-> self nav flags) (nav-control-flags navcf12))
|
||||
((-> (method-of-type nav-enemy nav-enemy-chase) enter))
|
||||
(none)
|
||||
)
|
||||
:exit
|
||||
(behavior ()
|
||||
(logclear! (-> self nav flags) (nav-control-flags bit12))
|
||||
(logclear! (-> self nav flags) (nav-control-flags navcf12))
|
||||
(none)
|
||||
)
|
||||
:trans
|
||||
@@ -1143,7 +1143,7 @@
|
||||
:use-proximity-notice #f
|
||||
:use-jump-blocked #f
|
||||
:use-jump-patrol #f
|
||||
:gnd-collide-with #x1
|
||||
:gnd-collide-with (collide-kind background)
|
||||
:debug-draw-neck #f
|
||||
:debug-draw-jump #f
|
||||
)
|
||||
@@ -1173,7 +1173,7 @@
|
||||
(process-drawable-from-entity! obj arg0)
|
||||
(initialize-skeleton obj *lightning-mole-sg* '())
|
||||
(TODO-RENAME-45 obj *lightning-mole-nav-enemy-info*)
|
||||
(logclear! (-> obj nav flags) (nav-control-flags bit5 bit6 bit7))
|
||||
(logclear! (-> obj nav flags) (nav-control-flags navcf5 navcf6 navcf7))
|
||||
(set! (-> obj draw origin-joint-index) (the-as uint 3))
|
||||
(set! (-> obj reaction-time) (seconds 0.05))
|
||||
(set! (-> obj last-reflection-time) 0)
|
||||
|
||||
+11
-11
@@ -135,7 +135,7 @@
|
||||
:use-proximity-notice #f
|
||||
:use-jump-blocked #f
|
||||
:use-jump-patrol #f
|
||||
:gnd-collide-with #x1
|
||||
:gnd-collide-with (collide-kind background)
|
||||
:debug-draw-neck #f
|
||||
:debug-draw-jump #f
|
||||
)
|
||||
@@ -463,7 +463,7 @@
|
||||
(= (-> arg0 type) target)
|
||||
)
|
||||
(set-collide-offense (-> self collide-info) 2 (collide-offense no-offense))
|
||||
(logior! (-> self nav-enemy-flags) 256)
|
||||
(logior! (-> self nav-enemy-flags) (nav-enemy-flags navenmf8))
|
||||
(level-hint-spawn (game-text-id ice-cube-hint) "sksp0350" (the-as entity #f) *entity-pool* (game-task none))
|
||||
)
|
||||
)
|
||||
@@ -497,8 +497,8 @@
|
||||
(= (-> arg0 type) target)
|
||||
)
|
||||
(set-collide-offense (-> self collide-info) 2 (collide-offense no-offense))
|
||||
(let ((v0-3 (the-as none (logior (-> self nav-enemy-flags) 256))))
|
||||
(set! (-> self nav-enemy-flags) (the-as uint v0-3))
|
||||
(let ((v0-3 (the-as none (logior (-> self nav-enemy-flags) (nav-enemy-flags navenmf8)))))
|
||||
(set! (-> self nav-enemy-flags) (the-as nav-enemy-flags v0-3))
|
||||
v0-3
|
||||
)
|
||||
)
|
||||
@@ -744,7 +744,7 @@
|
||||
(collide-kind background)
|
||||
(-> obj collide-info process)
|
||||
s4-0
|
||||
(the-as uint 1)
|
||||
(new 'static 'pat-surface :noentity #x1)
|
||||
)
|
||||
)
|
||||
)
|
||||
@@ -1038,7 +1038,7 @@
|
||||
:code
|
||||
(behavior ()
|
||||
(dummy-57 self)
|
||||
(set! (-> self nav-enemy-flags) (logand -3 (-> self nav-enemy-flags)))
|
||||
(logclear! (-> self nav-enemy-flags) (nav-enemy-flags navenmf1))
|
||||
(logclear! (-> self mask) (process-mask actor-pause))
|
||||
(go ice-cube-face-player)
|
||||
(none)
|
||||
@@ -1054,7 +1054,7 @@
|
||||
:enter
|
||||
(behavior ()
|
||||
(set! (-> self state-time) (-> *display* base-frame-counter))
|
||||
(logior! (-> self nav-enemy-flags) 4)
|
||||
(logior! (-> self nav-enemy-flags) (nav-enemy-flags navenmf2))
|
||||
(dummy-57 self)
|
||||
(logclear! (-> self mask) (process-mask actor-pause))
|
||||
(if (or (not *target*)
|
||||
@@ -1233,7 +1233,7 @@
|
||||
:enter
|
||||
(behavior ()
|
||||
(set! (-> self state-time) (-> *display* base-frame-counter))
|
||||
(logior! (-> self nav-enemy-flags) 4)
|
||||
(logior! (-> self nav-enemy-flags) (nav-enemy-flags navenmf2))
|
||||
(dummy-58 self)
|
||||
(if (or (not *target*)
|
||||
(logtest? (-> *target* state-flags) #x80f8)
|
||||
@@ -1347,7 +1347,7 @@
|
||||
(behavior ()
|
||||
(set! (-> self state-time) (-> *display* base-frame-counter))
|
||||
(dummy-58 self)
|
||||
(logior! (-> self nav-enemy-flags) 4)
|
||||
(logior! (-> self nav-enemy-flags) (nav-enemy-flags navenmf2))
|
||||
(set! (-> self next-skid-sound-time) (-> *display* base-frame-counter))
|
||||
(if (or (not *target*)
|
||||
(logtest? (-> *target* state-flags) #x80f8)
|
||||
@@ -1359,7 +1359,7 @@
|
||||
(set! (-> self acceleration) (-> self nav-info run-acceleration))
|
||||
(set! (-> self rotate-speed) (-> self nav-info run-rotate-speed))
|
||||
(set! (-> self turn-time) (-> self nav-info run-turn-time))
|
||||
(logclear! (-> self nav flags) (nav-control-flags bit8))
|
||||
(logclear! (-> self nav flags) (nav-control-flags navcf8))
|
||||
(set-root-prim-collide-with! (-> self collide-info) (collide-kind cak-2 cak-3 target crate enemy))
|
||||
(set! (-> self track-target?) #t)
|
||||
(set! (-> self slow-down?) #f)
|
||||
@@ -1373,7 +1373,7 @@
|
||||
)
|
||||
:exit
|
||||
(behavior ()
|
||||
(logior! (-> self nav flags) (nav-control-flags bit8))
|
||||
(logior! (-> self nav flags) (nav-control-flags navcf8))
|
||||
(set-root-prim-collide-with! (-> self collide-info) (collide-kind target))
|
||||
(none)
|
||||
)
|
||||
|
||||
+18
-18
@@ -123,7 +123,7 @@
|
||||
:use-proximity-notice #f
|
||||
:use-jump-blocked #f
|
||||
:use-jump-patrol #f
|
||||
:gnd-collide-with #x1
|
||||
:gnd-collide-with (collide-kind background)
|
||||
:debug-draw-neck #f
|
||||
:debug-draw-jump #f
|
||||
)
|
||||
@@ -147,7 +147,7 @@
|
||||
(when (send-event-function arg0 a1-5)
|
||||
(set! (-> self touch-time) (-> *display* base-frame-counter))
|
||||
(set-collide-offense (-> self collide-info) 2 (collide-offense no-offense))
|
||||
(logior! (-> self nav-enemy-flags) 256)
|
||||
(logior! (-> self nav-enemy-flags) (nav-enemy-flags navenmf8))
|
||||
(go-virtual snow-bunny-attack)
|
||||
)
|
||||
)
|
||||
@@ -292,8 +292,8 @@
|
||||
;; INFO: Return type mismatch int vs none.
|
||||
(defbehavior snow-bunny-initialize-jump snow-bunny ((arg0 vector))
|
||||
(nav-enemy-initialize-custom-jump arg0 #f (-> self jump-height-min) (-> self jump-height-factor) -307200.0)
|
||||
(set! (-> self nav-enemy-flags) (logand -1025 (-> self nav-enemy-flags)))
|
||||
(logior! (-> self nav-enemy-flags) 512)
|
||||
(logclear! (-> self nav-enemy-flags) (nav-enemy-flags drop-jump))
|
||||
(logior! (-> self nav-enemy-flags) (nav-enemy-flags standing-jump))
|
||||
0
|
||||
(none)
|
||||
)
|
||||
@@ -479,9 +479,9 @@
|
||||
(behavior ()
|
||||
(set! (-> self state-time) (-> *display* base-frame-counter))
|
||||
(dummy-76 self #f)
|
||||
(set! (-> self nav flags) (logior (nav-control-flags bit19) (-> self nav flags)))
|
||||
(set! (-> self nav-enemy-flags) (logand -5 (-> self nav-enemy-flags)))
|
||||
(logior! (-> self nav-enemy-flags) 8)
|
||||
(set! (-> self nav flags) (logior (nav-control-flags navcf19) (-> self nav flags)))
|
||||
(logclear! (-> self nav-enemy-flags) (nav-enemy-flags navenmf2))
|
||||
(logior! (-> self nav-enemy-flags) (nav-enemy-flags enable-rotate))
|
||||
(set! (-> self state-timeout) (seconds 0.1))
|
||||
(none)
|
||||
)
|
||||
@@ -583,7 +583,7 @@
|
||||
(collide-kind background)
|
||||
(-> obj collide-info process)
|
||||
s4-0
|
||||
(the-as uint 1)
|
||||
(new 'static 'pat-surface :noentity #x1)
|
||||
)
|
||||
)
|
||||
)
|
||||
@@ -719,8 +719,8 @@
|
||||
)
|
||||
:exit
|
||||
(behavior ()
|
||||
(logior! (-> self nav-enemy-flags) 24)
|
||||
(set! (-> self collide-info nav-flags) (logand -3 (-> self collide-info nav-flags)))
|
||||
(logior! (-> self nav-enemy-flags) (nav-enemy-flags enable-rotate enable-travel))
|
||||
(logclear! (-> self collide-info nav-flags) (nav-flags navf1))
|
||||
(none)
|
||||
)
|
||||
:trans
|
||||
@@ -753,12 +753,12 @@
|
||||
snow-bunny-default-event-handler
|
||||
:enter
|
||||
(behavior ()
|
||||
(logior! (-> self nav-enemy-flags) 4)
|
||||
(logior! (-> self nav-enemy-flags) (nav-enemy-flags navenmf2))
|
||||
(nav-enemy-neck-control-look-at)
|
||||
(if (logtest? (-> self nav-enemy-flags) 2)
|
||||
(if (logtest? (-> self nav-enemy-flags) (nav-enemy-flags navenmf1))
|
||||
(go-virtual nav-enemy-chase)
|
||||
)
|
||||
(logior! (-> self nav-enemy-flags) 2)
|
||||
(logior! (-> self nav-enemy-flags) (nav-enemy-flags navenmf1))
|
||||
(dummy-76 self #t)
|
||||
(set-vector! (-> self collide-info transv) 0.0 (nav-enemy-rnd-float-range 102400.0 131072.0) 0.0 1.0)
|
||||
(none)
|
||||
@@ -958,7 +958,7 @@
|
||||
(go-virtual snow-bunny-defend)
|
||||
)
|
||||
(when (not (dummy-52 self))
|
||||
(set! (-> self nav-enemy-flags) (logand -3 (-> self nav-enemy-flags)))
|
||||
(logclear! (-> self nav-enemy-flags) (nav-enemy-flags navenmf1))
|
||||
(go-virtual nav-enemy-notice)
|
||||
)
|
||||
(set-jump-height-factor! self 1)
|
||||
@@ -970,8 +970,8 @@
|
||||
)
|
||||
:exit
|
||||
(behavior ()
|
||||
(logior! (-> self nav-enemy-flags) 24)
|
||||
(set! (-> self collide-info nav-flags) (logand -3 (-> self collide-info nav-flags)))
|
||||
(logior! (-> self nav-enemy-flags) (nav-enemy-flags enable-rotate enable-travel))
|
||||
(logclear! (-> self collide-info nav-flags) (nav-flags navf1))
|
||||
(none)
|
||||
)
|
||||
:trans
|
||||
@@ -1268,8 +1268,8 @@
|
||||
)
|
||||
:exit
|
||||
(behavior ()
|
||||
(logior! (-> self nav-enemy-flags) 24)
|
||||
(set! (-> self collide-info nav-flags) (logand -3 (-> self collide-info nav-flags)))
|
||||
(logior! (-> self nav-enemy-flags) (nav-enemy-flags enable-rotate enable-travel))
|
||||
(logclear! (-> self collide-info nav-flags) (nav-flags navf1))
|
||||
(none)
|
||||
)
|
||||
:trans
|
||||
|
||||
+17
-17
@@ -157,7 +157,7 @@
|
||||
:use-proximity-notice #f
|
||||
:use-jump-blocked #f
|
||||
:use-jump-patrol #f
|
||||
:gnd-collide-with #x1
|
||||
:gnd-collide-with (collide-kind background)
|
||||
:debug-draw-neck #f
|
||||
:debug-draw-jump #f
|
||||
)
|
||||
@@ -211,7 +211,7 @@
|
||||
:use-proximity-notice #f
|
||||
:use-jump-blocked #f
|
||||
:use-jump-patrol #f
|
||||
:gnd-collide-with #x1
|
||||
:gnd-collide-with (collide-kind background)
|
||||
:debug-draw-neck #f
|
||||
:debug-draw-jump #f
|
||||
)
|
||||
@@ -537,7 +537,7 @@
|
||||
(the-as vector #f)
|
||||
f0-9
|
||||
(collide-kind background)
|
||||
(the-as process #f)
|
||||
(the-as process-drawable #f)
|
||||
0.0
|
||||
81920.0
|
||||
)
|
||||
@@ -998,7 +998,7 @@
|
||||
v0-4
|
||||
)
|
||||
((begin
|
||||
(if (zero? (logand (-> self nav-enemy-flags) 256))
|
||||
(if (zero? (logand (-> self nav-enemy-flags) (nav-enemy-flags navenmf8)))
|
||||
(do-push-aways! (-> self collide-info))
|
||||
)
|
||||
(level-hint-spawn
|
||||
@@ -1055,7 +1055,7 @@
|
||||
)
|
||||
)
|
||||
(('touch)
|
||||
(if (zero? (logand (-> self nav-enemy-flags) 256))
|
||||
(if (zero? (logand (-> self nav-enemy-flags) (nav-enemy-flags navenmf8)))
|
||||
(do-push-aways! (-> self collide-info))
|
||||
)
|
||||
(cond
|
||||
@@ -1320,7 +1320,7 @@
|
||||
)
|
||||
(else
|
||||
(ja-post)
|
||||
(logior! (-> self nav-enemy-flags) 2)
|
||||
(logior! (-> self nav-enemy-flags) (nav-enemy-flags navenmf1))
|
||||
(go ram-boss-idle)
|
||||
)
|
||||
)
|
||||
@@ -1472,7 +1472,7 @@
|
||||
)
|
||||
:code
|
||||
(behavior ()
|
||||
(logior! (-> self nav-enemy-flags) 4)
|
||||
(logior! (-> self nav-enemy-flags) (nav-enemy-flags navenmf2))
|
||||
(while #t
|
||||
(clone-anim-once
|
||||
(ppointer->handle (-> self parent-override))
|
||||
@@ -1513,7 +1513,7 @@
|
||||
:enter
|
||||
(behavior ((arg0 basic))
|
||||
(dummy-52 self)
|
||||
(logior! (-> self nav-enemy-flags) 4)
|
||||
(logior! (-> self nav-enemy-flags) (nav-enemy-flags navenmf2))
|
||||
(let ((s5-0 (new 'stack-no-clear 'vector))
|
||||
(gp-0 (-> self node-list data 0 bone transform))
|
||||
)
|
||||
@@ -1596,7 +1596,7 @@
|
||||
(-> ram-boss-jump-down event)
|
||||
:code
|
||||
(behavior ()
|
||||
(logior! (-> self nav-enemy-flags) 4)
|
||||
(logior! (-> self nav-enemy-flags) (nav-enemy-flags navenmf2))
|
||||
(activate! *camera-smush-control* 409.6 37 150 1.0 0.99)
|
||||
(let ((a0-1 (-> self skel root-channel 0)))
|
||||
(set! (-> a0-1 frame-group) (the-as art-joint-anim (-> self draw art-group data 17)))
|
||||
@@ -1615,7 +1615,7 @@
|
||||
(joint-control-channel-group-eval! a0-2 (the-as art-joint-anim #f) num-func-seek!)
|
||||
)
|
||||
)
|
||||
(logior! (-> self nav-enemy-flags) 2)
|
||||
(logior! (-> self nav-enemy-flags) (nav-enemy-flags navenmf1))
|
||||
(go ram-boss-nav-start)
|
||||
(none)
|
||||
)
|
||||
@@ -1627,7 +1627,7 @@
|
||||
(defstate ram-boss-already-down (ram-boss)
|
||||
:code
|
||||
(behavior ((arg0 basic))
|
||||
(logior! (-> self nav-enemy-flags) 4)
|
||||
(logior! (-> self nav-enemy-flags) (nav-enemy-flags navenmf2))
|
||||
(dummy-52 self)
|
||||
(let ((a1-0 (new 'stack-no-clear 'vector))
|
||||
(a2-0 (-> self parent-override 0 node-list data 0 bone transform))
|
||||
@@ -1750,7 +1750,7 @@
|
||||
)
|
||||
)
|
||||
(cond
|
||||
((logtest? (nav-control-flags bit17) (-> self nav flags))
|
||||
((logtest? (nav-control-flags navcf17) (-> self nav flags))
|
||||
(if (>= (- (-> *display* base-frame-counter) (-> self free-time)) (seconds 1))
|
||||
(go-virtual nav-enemy-patrol)
|
||||
)
|
||||
@@ -1812,7 +1812,7 @@
|
||||
(behavior ()
|
||||
(set! (-> self state-time) (-> *display* base-frame-counter))
|
||||
(set! (-> self facing-y) (quaternion-y-angle (-> self collide-info quat)))
|
||||
(logior! (-> self nav-enemy-flags) 4)
|
||||
(logior! (-> self nav-enemy-flags) (nav-enemy-flags navenmf2))
|
||||
(none)
|
||||
)
|
||||
:trans
|
||||
@@ -2016,7 +2016,7 @@
|
||||
:enter
|
||||
(behavior ()
|
||||
(set! (-> self frustration) 0)
|
||||
(logior! (-> self nav-enemy-flags) 4)
|
||||
(logior! (-> self nav-enemy-flags) (nav-enemy-flags navenmf2))
|
||||
(none)
|
||||
)
|
||||
:trans
|
||||
@@ -2057,7 +2057,7 @@
|
||||
:enter
|
||||
(behavior ()
|
||||
(set! (-> self frustration) 0)
|
||||
(logior! (-> self nav-enemy-flags) 4)
|
||||
(logior! (-> self nav-enemy-flags) (nav-enemy-flags navenmf2))
|
||||
(none)
|
||||
)
|
||||
:trans
|
||||
@@ -2171,7 +2171,7 @@
|
||||
ram-boss-on-ground-event-handler
|
||||
:enter
|
||||
(behavior ()
|
||||
(logior! (-> self nav-enemy-flags) 4)
|
||||
(logior! (-> self nav-enemy-flags) (nav-enemy-flags navenmf2))
|
||||
(let ((gp-0 (-> self child)))
|
||||
(while gp-0
|
||||
(send-event (ppointer->process gp-0) 'launch)
|
||||
@@ -2241,7 +2241,7 @@
|
||||
(defstate ram-boss-lose-shield (ram-boss)
|
||||
:enter
|
||||
(behavior ()
|
||||
(logior! (-> self nav-enemy-flags) 4)
|
||||
(logior! (-> self nav-enemy-flags) (nav-enemy-flags navenmf2))
|
||||
(nav-enemy-neck-control-inactive)
|
||||
(dummy-53 self)
|
||||
(TODO-RENAME-49 self *ram-boss-nav-enemy-info-no-shield*)
|
||||
|
||||
+8
-8
@@ -122,7 +122,7 @@
|
||||
:use-proximity-notice #f
|
||||
:use-jump-blocked #f
|
||||
:use-jump-patrol #f
|
||||
:gnd-collide-with #x1
|
||||
:gnd-collide-with (collide-kind background)
|
||||
:debug-draw-neck #f
|
||||
:debug-draw-jump #f
|
||||
)
|
||||
@@ -251,7 +251,7 @@
|
||||
(if (-> self nav-info move-to-ground)
|
||||
(move-to-ground (-> self collide-info) 40960.0 40960.0 #t (collide-kind background))
|
||||
)
|
||||
(set! (-> self nav-enemy-flags) (logand -7 (-> self nav-enemy-flags)))
|
||||
(logclear! (-> self nav-enemy-flags) (nav-enemy-flags navenmf1 navenmf2))
|
||||
(set! (-> self state-timeout) (seconds 1))
|
||||
(set! (-> self ground-y) (-> self collide-info trans y))
|
||||
(spawn (-> self part) (-> self collide-info trans))
|
||||
@@ -413,7 +413,7 @@
|
||||
(joint-control-channel-group! a0-14 (the-as art-joint-anim #f) num-func-loop!)
|
||||
)
|
||||
(ja-channel-push! 1 180)
|
||||
(set! (-> self nav-enemy-flags) (logand -9 (-> self nav-enemy-flags)))
|
||||
(logclear! (-> self nav-enemy-flags) (nav-enemy-flags enable-rotate))
|
||||
(let ((gp-1 (nav-enemy-rnd-int-range 2 6)))
|
||||
(dotimes (s5-0 gp-1)
|
||||
(let ((a0-18 (-> self skel root-channel 0)))
|
||||
@@ -436,7 +436,7 @@
|
||||
)
|
||||
)
|
||||
)
|
||||
(logior! (-> self nav-enemy-flags) 8)
|
||||
(logior! (-> self nav-enemy-flags) (nav-enemy-flags enable-rotate))
|
||||
(let ((a0-21 (-> self skel root-channel 0)))
|
||||
(set! (-> a0-21 param 0) 1.0)
|
||||
(joint-control-channel-group! a0-21 (the-as art-joint-anim #f) num-func-loop!)
|
||||
@@ -541,7 +541,7 @@
|
||||
(behavior ()
|
||||
(set! (-> self turn-time) (seconds 0.2))
|
||||
(let ((f30-0 (nav-enemy-rnd-float-range 0.8 1.2)))
|
||||
(when (or (logtest? (-> self nav-enemy-flags) 256)
|
||||
(when (or (logtest? (-> self nav-enemy-flags) (nav-enemy-flags navenmf8))
|
||||
(and (nav-enemy-player-vulnerable?) (nav-enemy-rnd-percent? 0.5))
|
||||
)
|
||||
(ja-channel-push! 1 30)
|
||||
@@ -563,7 +563,7 @@
|
||||
)
|
||||
(while #t
|
||||
(when (not (nav-enemy-facing-player? 2730.6667))
|
||||
(logior! (-> self nav-enemy-flags) 16)
|
||||
(logior! (-> self nav-enemy-flags) (nav-enemy-flags enable-travel))
|
||||
(let ((a0-9 (-> self skel root-channel 0)))
|
||||
(set! (-> a0-9 param 0) 1.0)
|
||||
(joint-control-channel-group! a0-9 (the-as art-joint-anim #f) num-func-loop!)
|
||||
@@ -584,7 +584,7 @@
|
||||
(joint-control-channel-group-eval! a0-15 (the-as art-joint-anim #f) num-func-loop!)
|
||||
)
|
||||
)
|
||||
(set! (-> self nav-enemy-flags) (logand -17 (-> self nav-enemy-flags)))
|
||||
(logclear! (-> self nav-enemy-flags) (nav-enemy-flags enable-travel))
|
||||
)
|
||||
(if (not (= (if (> (-> self skel active-channels) 0)
|
||||
(-> self skel root-channel 0 frame-group)
|
||||
@@ -670,7 +670,7 @@
|
||||
)
|
||||
)
|
||||
)
|
||||
(logclear! (-> self nav flags) (nav-control-flags bit17 bit19))
|
||||
(logclear! (-> self nav flags) (nav-control-flags navcf17 navcf19))
|
||||
(nav-enemy-get-new-patrol-point)
|
||||
(let ((a0-12 (-> self skel root-channel 0)))
|
||||
(set! (-> a0-12 frame-group) (the-as art-joint-anim (-> self draw art-group data 7)))
|
||||
|
||||
+1
-1
@@ -1106,7 +1106,7 @@
|
||||
(initialize-skeleton obj *bully-sg* '())
|
||||
(set! (-> obj draw shadow-ctrl) *bully-shadow-control*)
|
||||
(set! (-> obj nav) (new 'process 'nav-control (-> obj root-override) 16 40960.0))
|
||||
(logior! (-> obj nav flags) (nav-control-flags display-marks bit3 bit5 bit6 bit7))
|
||||
(logior! (-> obj nav flags) (nav-control-flags display-marks navcf3 navcf5 navcf6 navcf7))
|
||||
(set! (-> obj part) (create-launch-control (-> *part-group-id-table* 454) obj))
|
||||
(set! (-> obj fact-override)
|
||||
(new 'process 'fact-info-enemy obj (pickup-type eco-pill-random) (-> *FACT-bank* default-pill-inc))
|
||||
|
||||
+10
-10
@@ -136,7 +136,7 @@
|
||||
:use-proximity-notice #f
|
||||
:use-jump-blocked #f
|
||||
:use-jump-patrol #f
|
||||
:gnd-collide-with #x1
|
||||
:gnd-collide-with (collide-kind background)
|
||||
:debug-draw-neck #f
|
||||
:debug-draw-jump #f
|
||||
)
|
||||
@@ -191,7 +191,7 @@
|
||||
:use-proximity-notice #f
|
||||
:use-jump-blocked #f
|
||||
:use-jump-patrol #f
|
||||
:gnd-collide-with #x1
|
||||
:gnd-collide-with (collide-kind background)
|
||||
:debug-draw-neck #f
|
||||
:debug-draw-jump #f
|
||||
)
|
||||
@@ -246,7 +246,7 @@
|
||||
:use-proximity-notice #f
|
||||
:use-jump-blocked #f
|
||||
:use-jump-patrol #f
|
||||
:gnd-collide-with #x1
|
||||
:gnd-collide-with (collide-kind background)
|
||||
:debug-draw-neck #f
|
||||
:debug-draw-jump #f
|
||||
)
|
||||
@@ -352,8 +352,8 @@
|
||||
(set! (-> v1-3 settings flags) (logand -33 (-> v1-3 settings flags)))
|
||||
)
|
||||
0
|
||||
(set! (-> self collide-info nav-flags) (logand -2 (-> self collide-info nav-flags)))
|
||||
(logior! (-> self collide-info nav-flags) 2)
|
||||
(logclear! (-> self collide-info nav-flags) (nav-flags navf0))
|
||||
(logior! (-> self collide-info nav-flags) (nav-flags navf1))
|
||||
(set! (-> self nav extra-nav-sphere quad) (-> self fall-dest quad))
|
||||
(set! (-> self nav extra-nav-sphere w) 9011.2)
|
||||
(let ((gp-0 (new 'stack-no-clear 'vector)))
|
||||
@@ -383,8 +383,8 @@
|
||||
)
|
||||
)
|
||||
)
|
||||
(logior! (-> self collide-info nav-flags) 1)
|
||||
(set! (-> self collide-info nav-flags) (logand -3 (-> self collide-info nav-flags)))
|
||||
(logior! (-> self collide-info nav-flags) (nav-flags navf0))
|
||||
(logclear! (-> self collide-info nav-flags) (nav-flags navf1))
|
||||
(TODO-RENAME-27 (-> self nav))
|
||||
(go double-lurker-top-resume)
|
||||
(none)
|
||||
@@ -466,7 +466,7 @@
|
||||
;; definition for method 51 of type double-lurker-top
|
||||
(defmethod dummy-51 double-lurker-top ((obj double-lurker-top))
|
||||
(restore-collide-with-as (-> obj collide-info))
|
||||
(logior! (-> obj collide-info nav-flags) 1)
|
||||
(logior! (-> obj collide-info nav-flags) (nav-flags navf0))
|
||||
(TODO-RENAME-27 (-> obj nav))
|
||||
(none)
|
||||
)
|
||||
@@ -543,7 +543,7 @@
|
||||
)
|
||||
|
||||
;; definition for method 48 of type double-lurker-top
|
||||
;; INFO: Return type mismatch uint vs none.
|
||||
;; INFO: Return type mismatch nav-flags vs none.
|
||||
;; Used lq/sq
|
||||
(defmethod TODO-RENAME-48 double-lurker-top ((obj double-lurker-top))
|
||||
(initialize-skeleton obj *double-lurker-top-sg* '())
|
||||
@@ -554,7 +554,7 @@
|
||||
(set-vector! (-> obj collide-info scale) 1.0 1.0 1.0 1.0)
|
||||
(quaternion-copy! (-> obj collide-info quat) (-> v1-5 0 collide-info quat))
|
||||
)
|
||||
(set! (-> obj collide-info nav-flags) (logand -2 (-> obj collide-info nav-flags)))
|
||||
(logclear! (-> obj collide-info nav-flags) (nav-flags navf0))
|
||||
(none)
|
||||
)
|
||||
|
||||
|
||||
+6
-6
@@ -591,7 +591,7 @@
|
||||
;; Used lq/sq
|
||||
(defun get-nav-point! ((arg0 vector) (arg1 orbit-plat) (arg2 vector) (arg3 float))
|
||||
(set! (-> arg1 nav target-pos quad) (-> arg2 quad))
|
||||
(logclear! (-> arg1 nav flags) (nav-control-flags bit19))
|
||||
(logclear! (-> arg1 nav flags) (nav-control-flags navcf19))
|
||||
(dummy-11 (-> arg1 nav) (-> arg1 nav target-pos))
|
||||
(let ((f0-0 (vector-length (-> arg1 nav travel))))
|
||||
(if (< arg3 f0-0)
|
||||
@@ -759,7 +759,7 @@
|
||||
)
|
||||
)
|
||||
(when (>= 614.4 (vector-vector-xz-distance (-> obj basetrans) (-> obj reset-trans)))
|
||||
(set! v0-11 (logior (nav-control-flags bit19) (-> obj nav flags)))
|
||||
(set! v0-11 (logior (nav-control-flags navcf19) (-> obj nav flags)))
|
||||
(set! (-> obj nav flags) (the-as nav-control-flags v0-11))
|
||||
v0-11
|
||||
)
|
||||
@@ -786,7 +786,7 @@
|
||||
(vector-normalize! s5-2 (-> obj reset-length))
|
||||
(vector+! s5-2 s5-2 s4-1)
|
||||
(when (not (dummy-16 (-> obj nav) s5-2))
|
||||
(logclear! (-> obj nav flags) (nav-control-flags bit19))
|
||||
(logclear! (-> obj nav flags) (nav-control-flags navcf19))
|
||||
(get-rotate-point! s5-2 s4-1 (-> obj basetrans) (the-as vector (-> obj reset-length)) 0.0 40960.0)
|
||||
(when (not (dummy-16 (-> obj nav) s5-2))
|
||||
(get-rotate-point!
|
||||
@@ -855,13 +855,13 @@
|
||||
:code
|
||||
(behavior ()
|
||||
(set! (-> self plat-status) (the-as uint 3))
|
||||
(logclear! (-> self nav flags) (nav-control-flags bit19))
|
||||
(logclear! (-> self nav flags) (nav-control-flags navcf19))
|
||||
(let ((a0-3 (-> self skel root-channel 0)))
|
||||
(set! (-> a0-3 param 0) 0.0)
|
||||
(set! (-> a0-3 param 1) 1.0)
|
||||
(joint-control-channel-group! a0-3 (the-as art-joint-anim #f) num-func-seek!)
|
||||
)
|
||||
(while (zero? (logand (nav-control-flags bit19) (-> self nav flags)))
|
||||
(while (zero? (logand (nav-control-flags navcf19) (-> self nav flags)))
|
||||
(dummy-27 self)
|
||||
(when (nonzero? (-> self root-override riders num-riders))
|
||||
(let ((a1-1 (new 'stack-no-clear 'event-message-block)))
|
||||
@@ -974,7 +974,7 @@
|
||||
(update-transforms! (-> obj root-override))
|
||||
(dummy-21 obj)
|
||||
(set! (-> obj nav) (new 'process 'nav-control (-> obj root-override) 16 40960.0))
|
||||
(logior! (-> obj nav flags) (nav-control-flags display-marks bit3 bit5 bit6 bit7))
|
||||
(logior! (-> obj nav flags) (nav-control-flags display-marks navcf3 navcf5 navcf6 navcf7))
|
||||
(set! (-> obj nav gap-event) 'blocked)
|
||||
(set! (-> obj other) (entity-actor-lookup arg0 'alt-actor 0))
|
||||
(let ((f0-7 (res-lump-float arg0 'scale :default 1.0)))
|
||||
|
||||
+1
-1
@@ -1276,7 +1276,7 @@
|
||||
(set! (-> obj notice-dist) (res-lump-float arg0 'notice-dist :default 57344.0))
|
||||
(set! (-> obj give-up-dist) (+ 20480.0 (-> obj notice-dist)))
|
||||
(set! (-> obj nav) (new 'process 'nav-control (-> obj root-override) 16 40960.0))
|
||||
(logior! (-> obj nav flags) (nav-control-flags display-marks bit3 bit5 bit6 bit7))
|
||||
(logior! (-> obj nav flags) (nav-control-flags display-marks navcf3 navcf5 navcf6 navcf7))
|
||||
(TODO-RENAME-26 (-> obj nav))
|
||||
(set! (-> obj path) (new 'process 'path-control obj 'path 0.0))
|
||||
(logior! (-> obj path flags) (path-control-flag display draw-line draw-point draw-text))
|
||||
|
||||
+4
-4
@@ -329,7 +329,7 @@
|
||||
)
|
||||
)
|
||||
(send-event (ppointer->process (-> self billy)) 'billy-rat-needs-destination)
|
||||
(logclear! (-> self nav flags) (nav-control-flags bit19))
|
||||
(logclear! (-> self nav flags) (nav-control-flags navcf19))
|
||||
(go-virtual nav-enemy-chase)
|
||||
(none)
|
||||
)
|
||||
@@ -400,8 +400,8 @@
|
||||
(t9-1)
|
||||
)
|
||||
)
|
||||
(when (logtest? (nav-control-flags bit19) (-> self nav flags))
|
||||
(logclear! (-> self nav flags) (nav-control-flags bit19))
|
||||
(when (logtest? (nav-control-flags navcf19) (-> self nav flags))
|
||||
(logclear! (-> self nav flags) (nav-control-flags navcf19))
|
||||
(if (rat-about-to-eat? self (-> self billy 0))
|
||||
(go billy-rat-salivate)
|
||||
(send-event (ppointer->process (-> self billy)) 'billy-rat-needs-destination)
|
||||
@@ -427,7 +427,7 @@
|
||||
:trans
|
||||
(behavior ()
|
||||
(set! (-> self speed-scale) (-> self billy 0 rat-speed))
|
||||
(if (or (logtest? (nav-control-flags bit19) (-> self nav flags))
|
||||
(if (or (logtest? (nav-control-flags navcf19) (-> self nav flags))
|
||||
(>= (- (-> *display* base-frame-counter) (-> self state-time)) (-> self chase-rest-time))
|
||||
)
|
||||
(go-virtual nav-enemy-victory)
|
||||
|
||||
+5
-5
@@ -650,7 +650,7 @@
|
||||
(the-as vector #f)
|
||||
8192.0
|
||||
(collide-kind background)
|
||||
(the-as process #f)
|
||||
(the-as process-drawable #f)
|
||||
0.0
|
||||
81920.0
|
||||
)
|
||||
@@ -1016,7 +1016,7 @@
|
||||
;; Used lq/sq
|
||||
(defbehavior kermit-set-rotate-dir-to-nav-target kermit ()
|
||||
(cond
|
||||
((logtest? (nav-control-flags bit19) (-> self nav flags))
|
||||
((logtest? (nav-control-flags navcf19) (-> self nav flags))
|
||||
(vector-! (-> self rotate-dir) (-> self nav target-pos) (-> self collide-info trans))
|
||||
)
|
||||
(else
|
||||
@@ -1180,7 +1180,7 @@ nav-enemy-default-event-handler
|
||||
(if (and (not (-> self airborne)) (nav-enemy-test-point-in-nav-mesh? (target-pos 0)))
|
||||
(go kermit-notice)
|
||||
)
|
||||
(if (logtest? (nav-control-flags bit19) (-> self nav flags))
|
||||
(if (logtest? (nav-control-flags navcf19) (-> self nav flags))
|
||||
(kermit-get-new-patrol-point)
|
||||
)
|
||||
(none)
|
||||
@@ -1300,7 +1300,7 @@ nav-enemy-default-event-handler
|
||||
(behavior ()
|
||||
(when (not (-> self airborne))
|
||||
(if (or (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 3))
|
||||
(and (logtest? (nav-control-flags bit19) (-> self nav flags))
|
||||
(and (logtest? (nav-control-flags navcf19) (-> self nav flags))
|
||||
(>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.5))
|
||||
)
|
||||
)
|
||||
@@ -1739,7 +1739,7 @@ nav-enemy-default-event-handler
|
||||
:use-proximity-notice #f
|
||||
:use-jump-blocked #f
|
||||
:use-jump-patrol #f
|
||||
:gnd-collide-with #x1
|
||||
:gnd-collide-with (collide-kind background)
|
||||
:debug-draw-neck #f
|
||||
:debug-draw-jump #f
|
||||
)
|
||||
|
||||
+1
-1
@@ -994,7 +994,7 @@
|
||||
(set! (-> self entity) gp-0)
|
||||
)
|
||||
(set! (-> self nav) (new 'process 'nav-control (-> self root-override) 16 40960.0))
|
||||
(logior! (-> self nav flags) (nav-control-flags display-marks bit3 bit5 bit6 bit7))
|
||||
(logior! (-> self nav flags) (nav-control-flags display-marks navcf3 navcf5 navcf6 navcf7))
|
||||
(set-current-poly! (-> self nav) (find-poly (-> self nav) (-> self root-override trans)))
|
||||
(+! (-> self parent-process 0 hit-points) 3)
|
||||
(dummy-21 self)
|
||||
|
||||
+4
-4
@@ -327,7 +327,7 @@ swamp-rat-default-event-handler
|
||||
(set! (-> self turn-time) (seconds 0.07333333))
|
||||
(let ((f30-0 (rand-vu-float-range 0.8 1.2)))
|
||||
(while #t
|
||||
(logior! (-> self nav-enemy-flags) 16)
|
||||
(logior! (-> self nav-enemy-flags) (nav-enemy-flags enable-travel))
|
||||
(ja-channel-push! 1 30)
|
||||
(let ((a0-2 (-> self skel root-channel 0)))
|
||||
(set! (-> a0-2 frame-group) (the-as art-joint-anim (-> self draw art-group data 10)))
|
||||
@@ -350,7 +350,7 @@ swamp-rat-default-event-handler
|
||||
(set! (-> a0-5 param 0) 1.0)
|
||||
(joint-control-channel-group! a0-5 (the-as art-joint-anim #f) num-func-loop!)
|
||||
)
|
||||
(set! (-> self nav-enemy-flags) (logand -17 (-> self nav-enemy-flags)))
|
||||
(logclear! (-> self nav-enemy-flags) (nav-enemy-flags enable-travel))
|
||||
(let ((gp-0 (rand-vu-int-range 300 600))
|
||||
(s5-0 (-> *display* base-frame-counter))
|
||||
)
|
||||
@@ -395,7 +395,7 @@ swamp-rat-default-event-handler
|
||||
(joint-control-channel-group-eval! a0-2 (the-as art-joint-anim #f) num-func-seek!)
|
||||
)
|
||||
)
|
||||
(logclear! (-> self nav flags) (nav-control-flags bit17 bit19))
|
||||
(logclear! (-> self nav flags) (nav-control-flags navcf17 navcf19))
|
||||
(nav-enemy-get-new-patrol-point)
|
||||
(let ((a0-7 (-> self skel root-channel 0)))
|
||||
(set! (-> a0-7 frame-group) (the-as art-joint-anim (-> self draw art-group data 4)))
|
||||
@@ -595,7 +595,7 @@ swamp-rat-default-event-handler
|
||||
:use-proximity-notice #f
|
||||
:use-jump-blocked #f
|
||||
:use-jump-patrol #f
|
||||
:gnd-collide-with #x1
|
||||
:gnd-collide-with (collide-kind background)
|
||||
:debug-draw-neck #f
|
||||
:debug-draw-jump #f
|
||||
)
|
||||
|
||||
+2
-2
@@ -827,7 +827,7 @@
|
||||
:enter
|
||||
(behavior ()
|
||||
(set! (-> self state-time) (-> *display* base-frame-counter))
|
||||
(set! (-> self nav flags) (logior (nav-control-flags bit19) (-> self nav flags)))
|
||||
(set! (-> self nav flags) (logior (nav-control-flags navcf19) (-> self nav flags)))
|
||||
(none)
|
||||
)
|
||||
:trans
|
||||
@@ -918,7 +918,7 @@
|
||||
:use-proximity-notice #f
|
||||
:use-jump-blocked #f
|
||||
:use-jump-patrol #f
|
||||
:gnd-collide-with #x1
|
||||
:gnd-collide-with (collide-kind background)
|
||||
:debug-draw-neck #f
|
||||
:debug-draw-jump #f
|
||||
)
|
||||
|
||||
+6
-6
@@ -691,7 +691,7 @@ yakow-default-event-handler
|
||||
:enter
|
||||
(behavior ((arg0 vector))
|
||||
(set! (-> self state-time) (-> *display* base-frame-counter))
|
||||
(logior! (-> self nav flags) (nav-control-flags bit10))
|
||||
(logior! (-> self nav flags) (nav-control-flags navcf10))
|
||||
(set! (-> self nav destination-pos quad) (-> arg0 quad))
|
||||
(set! (-> self rotate-speed) (-> *YAKOW-bank* walk-rotate-speed))
|
||||
(set! (-> self turn-time) (-> *YAKOW-bank* walk-turn-time))
|
||||
@@ -710,7 +710,7 @@ yakow-default-event-handler
|
||||
(go yakow-notice)
|
||||
)
|
||||
(when (>= (- (-> *display* base-frame-counter) (-> self state-time)) (seconds 0.05))
|
||||
(when (or (logtest? (nav-control-flags bit19) (-> self nav flags))
|
||||
(when (or (logtest? (nav-control-flags navcf19) (-> self nav flags))
|
||||
(< (vector-vector-xz-distance (-> self root-override trans) (-> self nav destination-pos)) 4096.0)
|
||||
)
|
||||
(if (-> self in-pen)
|
||||
@@ -738,8 +738,8 @@ yakow-default-event-handler
|
||||
(-> self nav destination-pos)
|
||||
131072.0
|
||||
)
|
||||
(if (logtest? (nav-control-flags bit21) (-> self nav flags))
|
||||
(logclear! (-> self nav flags) (nav-control-flags bit10))
|
||||
(if (logtest? (nav-control-flags navcf21) (-> self nav flags))
|
||||
(logclear! (-> self nav flags) (nav-control-flags navcf10))
|
||||
)
|
||||
(yakow-post)
|
||||
(none)
|
||||
@@ -872,7 +872,7 @@ yakow-default-event-handler
|
||||
:enter
|
||||
(behavior ()
|
||||
(set! (-> self state-time) (-> *display* base-frame-counter))
|
||||
(logior! (-> self nav flags) (nav-control-flags bit10))
|
||||
(logior! (-> self nav flags) (nav-control-flags navcf10))
|
||||
(set! (-> self rotate-speed) (-> *YAKOW-bank* run-rotate-speed))
|
||||
(set! (-> self turn-time) (-> *YAKOW-bank* run-turn-time))
|
||||
(none)
|
||||
@@ -1064,7 +1064,7 @@ yakow-default-event-handler
|
||||
(process-drawable-from-entity! obj arg0)
|
||||
(set! (-> obj align) (new 'process 'align-control obj))
|
||||
(set! (-> obj nav) (new 'process 'nav-control (-> obj root-override) 16 40960.0))
|
||||
(logior! (-> obj nav flags) (nav-control-flags display-marks bit3 bit5 bit6 bit7))
|
||||
(logior! (-> obj nav flags) (nav-control-flags display-marks navcf3 navcf5 navcf6 navcf7))
|
||||
(set! (-> obj nav nearest-y-threshold) 409600.0)
|
||||
(set! (-> obj fact-override)
|
||||
(new 'process 'fact-info-enemy obj (pickup-type eco-pill-random) (-> *FACT-bank* default-pill-inc))
|
||||
|
||||
@@ -30,7 +30,7 @@ class WithGameTests : public ::testing::Test {
|
||||
shared_compiler->compiler.run_test_no_load(
|
||||
"test/goalc/source_templates/with_game/test-build-game.gc");
|
||||
shared_compiler->compiler.run_front_end_on_string(
|
||||
"(asm-data-file game-text \"test/test_data/test_game_text.txt\")");
|
||||
"(asm-text-file text 10 :files (\"test/test_data/test_game_text.txt\"))");
|
||||
} catch (std::exception& e) {
|
||||
fprintf(stderr, "caught exception %s\n", e.what());
|
||||
EXPECT_TRUE(false);
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
(language-count 3)
|
||||
(group-name "test")
|
||||
(language-id 0 1 2)
|
||||
|
||||
(#x123 "language 0"
|
||||
"language 1"
|
||||
|
||||
@@ -206,9 +206,9 @@ TEST(GoosReader, Symbol) {
|
||||
|
||||
namespace {
|
||||
bool first_list_matches(Object o, std::vector<Object> stuff) {
|
||||
auto lst = o.as_pair()->cdr.as_pair()->car;
|
||||
auto& lst = o.as_pair()->cdr.as_pair()->car;
|
||||
for (const auto& x : stuff) {
|
||||
const auto check = x.as_pair()->cdr.as_pair()->car;
|
||||
const auto& check = x.as_pair()->cdr.as_pair()->car;
|
||||
if (lst.as_pair()->car != check) {
|
||||
return false;
|
||||
}
|
||||
@@ -233,11 +233,11 @@ bool first_array_matches(Object o, std::vector<Object> stuff) {
|
||||
}
|
||||
|
||||
bool first_pair_matches(Object o, Object car, Object cdr) {
|
||||
auto lst = o.as_pair()->cdr.as_pair()->car;
|
||||
auto& lst = o.as_pair()->cdr.as_pair()->car;
|
||||
return (lst.as_pair()->car == car) && (lst.as_pair()->cdr == cdr);
|
||||
}
|
||||
|
||||
bool print_matches(Object o, std::string expected) {
|
||||
bool print_matches(Object o, const std::string& expected) {
|
||||
return o.as_pair()->cdr.as_pair()->car.print() == expected;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user