mirror of
https://github.com/open-goal/jak-project
synced 2026-09-08 20:02:39 -04:00
[decomp] game-info (#779)
* support more process stuff * more of game info * add ref file * progress on save
This commit is contained in:
@@ -152,15 +152,15 @@
|
||||
(momentum-speed float :offset-assert 296)
|
||||
(acceleration float :offset-assert 300)
|
||||
(rotate-speed float :offset-assert 304)
|
||||
(turn-time uint64 :offset-assert 312)
|
||||
(frustration-time uint64 :offset-assert 320)
|
||||
(turn-time int64 :offset-assert 312)
|
||||
(frustration-time int64 :offset-assert 320)
|
||||
(speed-scale float :offset-assert 328)
|
||||
(neck joint-mod :offset-assert 332)
|
||||
(reaction-time uint64 :offset-assert 336)
|
||||
(notice-time uint64 :offset-assert 344)
|
||||
(state-timeout uint64 :offset-assert 352)
|
||||
(free-time uint64 :offset-assert 360)
|
||||
(touch-time uint64 :offset-assert 368)
|
||||
(reaction-time int64 :offset-assert 336)
|
||||
(notice-time int64 :offset-assert 344)
|
||||
(state-timeout int64 :offset-assert 352)
|
||||
(free-time int64 :offset-assert 360)
|
||||
(touch-time int64 :offset-assert 368)
|
||||
(nav-enemy-flags uint32 :offset-assert 376)
|
||||
(incomming-attack-id handle :offset-assert 384)
|
||||
(jump-return-state (state process) :offset-assert 392)
|
||||
|
||||
+114
-136
@@ -109,10 +109,7 @@
|
||||
(not *target*)
|
||||
(and
|
||||
(zero? (logand (-> *target* state-flags) #x80f8))
|
||||
(>=
|
||||
(the-as int (- (-> *display* base-frame-counter) (-> obj touch-time)))
|
||||
15
|
||||
)
|
||||
(>= (- (-> *display* base-frame-counter) (-> obj touch-time)) 15)
|
||||
)
|
||||
)
|
||||
)
|
||||
@@ -459,13 +456,13 @@ nav-enemy-default-event-handler
|
||||
(-> obj collide-info)
|
||||
(-> obj nav target-pos)
|
||||
(-> obj rotate-speed)
|
||||
(the-as int (-> obj turn-time))
|
||||
(-> obj turn-time)
|
||||
)
|
||||
(seek-toward-heading-vec!
|
||||
(-> obj collide-info)
|
||||
(-> obj nav travel)
|
||||
(-> obj rotate-speed)
|
||||
(the-as int (-> obj turn-time))
|
||||
(-> obj turn-time)
|
||||
)
|
||||
)
|
||||
)
|
||||
@@ -602,7 +599,7 @@ nav-enemy-default-event-handler
|
||||
(-> self collide-info)
|
||||
(target-pos 0)
|
||||
(-> self rotate-speed)
|
||||
(the-as int (-> self turn-time))
|
||||
(-> self turn-time)
|
||||
)
|
||||
)
|
||||
(nav-enemy-simple-post)
|
||||
@@ -699,8 +696,8 @@ nav-enemy-default-event-handler
|
||||
((logtest? (-> self nav-enemy-flags) 1)
|
||||
(when
|
||||
(>=
|
||||
(the-as int (- (-> *display* base-frame-counter) (-> self notice-time)))
|
||||
(the-as int (-> self reaction-time))
|
||||
(- (-> *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)))
|
||||
@@ -931,7 +928,10 @@ nav-enemy-default-event-handler
|
||||
(set! (-> v1-14 num-func) num-func-identity)
|
||||
(set! (-> v1-14 frame-num) 0.0)
|
||||
)
|
||||
(set! (-> self state-time) (-> *display* base-frame-counter))
|
||||
(set!
|
||||
(-> self state-time)
|
||||
(the-as seconds (-> *display* base-frame-counter))
|
||||
)
|
||||
(set!
|
||||
(-> self collide-info status)
|
||||
(logand -8 (-> self collide-info status))
|
||||
@@ -1013,7 +1013,7 @@ nav-enemy-default-event-handler
|
||||
(-> self collide-info)
|
||||
arg0
|
||||
(-> self rotate-speed)
|
||||
(the-as int (-> self turn-time))
|
||||
(-> self turn-time)
|
||||
)
|
||||
(suspend)
|
||||
(let ((a0-8 (-> self skel root-channel 0)))
|
||||
@@ -1027,7 +1027,7 @@ nav-enemy-default-event-handler
|
||||
(set!
|
||||
v1-16
|
||||
(or
|
||||
(>= (the-as int (- (-> *display* base-frame-counter) s4-0)) 3000)
|
||||
(>= (- (-> *display* base-frame-counter) s4-0) 3000)
|
||||
(nav-enemy-facing-direction? arg0 arg1)
|
||||
)
|
||||
)
|
||||
@@ -1097,7 +1097,10 @@ nav-enemy-default-event-handler
|
||||
:enter
|
||||
(behavior ()
|
||||
(nav-enemy-neck-control-inactive)
|
||||
(set! (-> self state-time) (-> *display* base-frame-counter))
|
||||
(set!
|
||||
(-> self state-time)
|
||||
(the-as seconds (-> *display* base-frame-counter))
|
||||
)
|
||||
(if (-> self nav-info move-to-ground)
|
||||
(dummy-60
|
||||
(-> self collide-info)
|
||||
@@ -1108,7 +1111,7 @@ nav-enemy-default-event-handler
|
||||
)
|
||||
)
|
||||
(set! (-> self nav-enemy-flags) (logand -7 (-> self nav-enemy-flags)))
|
||||
(set! (-> self state-timeout) (the-as uint 300))
|
||||
(set! (-> self state-timeout) 300)
|
||||
(none)
|
||||
)
|
||||
:trans
|
||||
@@ -1126,11 +1129,8 @@ nav-enemy-default-event-handler
|
||||
)
|
||||
)
|
||||
(>=
|
||||
(the-as
|
||||
int
|
||||
(- (-> *display* base-frame-counter) (the-as uint (-> self state-time)))
|
||||
)
|
||||
(the-as int (-> self state-timeout))
|
||||
(- (-> *display* base-frame-counter) (the-as int (-> self state-time)))
|
||||
(-> self state-timeout)
|
||||
)
|
||||
(nonzero? (-> self draw))
|
||||
(logtest? (-> self draw status) 8)
|
||||
@@ -1184,18 +1184,21 @@ nav-enemy-default-event-handler
|
||||
)
|
||||
:enter
|
||||
(behavior ()
|
||||
(set! (-> self state-time) (-> *display* base-frame-counter))
|
||||
(set!
|
||||
(-> self state-time)
|
||||
(the-as seconds (-> *display* base-frame-counter))
|
||||
)
|
||||
(set!
|
||||
(-> self nav flags)
|
||||
(the-as nav-control-flags (the-as int (logior #x80000 (-> self nav flags))))
|
||||
)
|
||||
(set! (-> self nav-enemy-flags) (logand -5 (-> self nav-enemy-flags)))
|
||||
(logior! (-> self nav-enemy-flags) 8)
|
||||
(set! (-> self state-timeout) (the-as uint 300))
|
||||
(set! (-> self state-timeout) 300)
|
||||
(set! (-> self target-speed) (-> self nav-info walk-travel-speed))
|
||||
(set! (-> self acceleration) (-> self nav-info walk-acceleration))
|
||||
(set! (-> self rotate-speed) (-> self nav-info walk-rotate-speed))
|
||||
(set! (-> self turn-time) (the-as uint (-> self nav-info walk-turn-time)))
|
||||
(set! (-> self turn-time) (the-as int (-> self nav-info walk-turn-time)))
|
||||
(none)
|
||||
)
|
||||
:exit
|
||||
@@ -1207,19 +1210,13 @@ nav-enemy-default-event-handler
|
||||
(behavior ()
|
||||
(when
|
||||
(>=
|
||||
(the-as
|
||||
int
|
||||
(- (-> *display* base-frame-counter) (the-as uint (-> self state-time)))
|
||||
)
|
||||
(- (-> *display* base-frame-counter) (the-as int (-> self state-time)))
|
||||
30
|
||||
)
|
||||
(when
|
||||
(>=
|
||||
(the-as
|
||||
int
|
||||
(- (-> *display* base-frame-counter) (the-as uint (-> self state-time)))
|
||||
)
|
||||
(the-as int (-> self state-timeout))
|
||||
(- (-> *display* base-frame-counter) (the-as int (-> self state-time)))
|
||||
(-> self state-timeout)
|
||||
)
|
||||
(if (and (nonzero? (-> self draw)) (logtest? (-> self draw status) 8))
|
||||
(set! (-> self free-time) (-> *display* base-frame-counter))
|
||||
@@ -1236,10 +1233,7 @@ nav-enemy-default-event-handler
|
||||
)
|
||||
)
|
||||
)
|
||||
(>=
|
||||
(the-as int (- (-> *display* base-frame-counter) (-> self free-time)))
|
||||
600
|
||||
)
|
||||
(>= (- (-> *display* base-frame-counter) (-> self free-time)) 600)
|
||||
)
|
||||
(go-virtual nav-enemy-idle)
|
||||
)
|
||||
@@ -1546,7 +1540,7 @@ nav-enemy-default-event-handler
|
||||
)
|
||||
(dummy-11 (-> self nav) (-> self nav target-pos))
|
||||
(set! (-> self rotate-speed) (-> self nav-info run-rotate-speed))
|
||||
(set! (-> self turn-time) (the-as uint (-> self nav-info run-turn-time)))
|
||||
(set! (-> self turn-time) (the-as int (-> self nav-info run-turn-time)))
|
||||
(none)
|
||||
)
|
||||
:code
|
||||
@@ -1595,7 +1589,7 @@ nav-enemy-default-event-handler
|
||||
(-> self collide-info)
|
||||
(-> self nav travel)
|
||||
(-> self rotate-speed)
|
||||
(the-as int (-> self turn-time))
|
||||
(-> self turn-time)
|
||||
)
|
||||
(suspend)
|
||||
(let ((a0-4 (-> self skel root-channel 0)))
|
||||
@@ -1638,18 +1632,18 @@ nav-enemy-default-event-handler
|
||||
)
|
||||
:enter
|
||||
(behavior ()
|
||||
(set! (-> self state-time) (-> *display* base-frame-counter))
|
||||
(set!
|
||||
(-> self state-time)
|
||||
(the-as seconds (-> *display* base-frame-counter))
|
||||
)
|
||||
(none)
|
||||
)
|
||||
:trans
|
||||
(behavior ()
|
||||
(when
|
||||
(>=
|
||||
(the-as
|
||||
int
|
||||
(- (-> *display* base-frame-counter) (the-as uint (-> self state-time)))
|
||||
)
|
||||
(the-as int (-> self reaction-time))
|
||||
(- (-> *display* base-frame-counter) (the-as int (-> self state-time)))
|
||||
(-> self reaction-time)
|
||||
)
|
||||
(if
|
||||
(or
|
||||
@@ -1841,13 +1835,16 @@ nav-enemy-default-event-handler
|
||||
:enter
|
||||
(behavior ()
|
||||
(nav-enemy-neck-control-look-at)
|
||||
(set! (-> self state-time) (-> *display* base-frame-counter))
|
||||
(set!
|
||||
(-> self state-time)
|
||||
(the-as seconds (-> *display* base-frame-counter))
|
||||
)
|
||||
(set! (-> self free-time) (-> *display* base-frame-counter))
|
||||
(logior! (-> self nav-enemy-flags) 4)
|
||||
(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))
|
||||
(set! (-> self turn-time) (the-as uint (-> self nav-info run-turn-time)))
|
||||
(set! (-> self turn-time) (the-as int (-> self nav-info run-turn-time)))
|
||||
(nav-enemy-reset-frustration)
|
||||
(none)
|
||||
)
|
||||
@@ -1871,22 +1868,13 @@ nav-enemy-default-event-handler
|
||||
)
|
||||
(when
|
||||
(>=
|
||||
(the-as
|
||||
int
|
||||
(- (-> *display* base-frame-counter) (the-as uint (-> self state-time)))
|
||||
)
|
||||
(the-as int (-> self reaction-time))
|
||||
(- (-> *display* base-frame-counter) (the-as int (-> self state-time)))
|
||||
(-> self reaction-time)
|
||||
)
|
||||
(if
|
||||
(>=
|
||||
(the-as
|
||||
int
|
||||
(- (-> *display* base-frame-counter) (-> self frustration-time))
|
||||
)
|
||||
(the-as
|
||||
int
|
||||
(+ (-> self reaction-time) (-> self nav-info frustration-time))
|
||||
)
|
||||
(- (-> *display* base-frame-counter) (-> self frustration-time))
|
||||
(+ (-> self reaction-time) (-> self nav-info frustration-time))
|
||||
)
|
||||
(logior! (-> self nav-enemy-flags) 8192)
|
||||
)
|
||||
@@ -1899,11 +1887,7 @@ nav-enemy-default-event-handler
|
||||
)
|
||||
(cond
|
||||
((logtest? #x20000 (-> self nav flags))
|
||||
(if
|
||||
(>=
|
||||
(the-as int (- (-> *display* base-frame-counter) (-> self free-time)))
|
||||
300
|
||||
)
|
||||
(if (>= (- (-> *display* base-frame-counter) (-> self free-time)) 300)
|
||||
(go-virtual nav-enemy-patrol)
|
||||
)
|
||||
)
|
||||
@@ -1959,7 +1943,10 @@ nav-enemy-default-event-handler
|
||||
)
|
||||
:enter
|
||||
(behavior ()
|
||||
(set! (-> self state-time) (-> *display* base-frame-counter))
|
||||
(set!
|
||||
(-> self state-time)
|
||||
(the-as seconds (-> *display* base-frame-counter))
|
||||
)
|
||||
(let*
|
||||
((f30-0
|
||||
(vector-vector-distance (-> self collide-info trans) (target-pos 0))
|
||||
@@ -1977,22 +1964,19 @@ nav-enemy-default-event-handler
|
||||
(if (< f30-0 40960.0)
|
||||
(go-virtual nav-enemy-stare)
|
||||
)
|
||||
(set! (-> self state-timeout) (the-as uint gp-1))
|
||||
(set! (-> self state-timeout) gp-1)
|
||||
)
|
||||
(set! (-> self target-speed) (-> self nav-info walk-travel-speed))
|
||||
(set! (-> self acceleration) (-> self nav-info walk-acceleration))
|
||||
(set! (-> self rotate-speed) (-> self nav-info walk-rotate-speed))
|
||||
(set! (-> self turn-time) (the-as uint (-> self nav-info walk-turn-time)))
|
||||
(set! (-> self turn-time) (the-as int (-> self nav-info walk-turn-time)))
|
||||
(none)
|
||||
)
|
||||
:trans
|
||||
(behavior ()
|
||||
(when
|
||||
(>=
|
||||
(the-as
|
||||
int
|
||||
(- (-> *display* base-frame-counter) (the-as uint (-> self state-time)))
|
||||
)
|
||||
(- (-> *display* base-frame-counter) (the-as int (-> self state-time)))
|
||||
30
|
||||
)
|
||||
(if (logtest? (-> *target* state-flags) 128)
|
||||
@@ -2019,11 +2003,8 @@ nav-enemy-default-event-handler
|
||||
)
|
||||
(logtest? #x20000 (-> self nav flags))
|
||||
(>=
|
||||
(the-as
|
||||
int
|
||||
(- (-> *display* base-frame-counter) (the-as uint (-> self state-time)))
|
||||
)
|
||||
(the-as int (-> self state-timeout))
|
||||
(- (-> *display* base-frame-counter) (the-as int (-> self state-time)))
|
||||
(-> self state-timeout)
|
||||
)
|
||||
)
|
||||
(go-virtual nav-enemy-stare)
|
||||
@@ -2076,27 +2057,27 @@ nav-enemy-default-event-handler
|
||||
)
|
||||
:enter
|
||||
(behavior ()
|
||||
(set! (-> self state-time) (-> *display* base-frame-counter))
|
||||
(set!
|
||||
(-> self state-time)
|
||||
(the-as seconds (-> *display* base-frame-counter))
|
||||
)
|
||||
(set! (-> self nav-enemy-flags) (logand -17 (-> self nav-enemy-flags)))
|
||||
(let
|
||||
((f0-0 (vector-vector-distance (-> self collide-info trans) (target-pos 0)))
|
||||
)
|
||||
(set!
|
||||
(-> self state-timeout)
|
||||
(the-as
|
||||
uint
|
||||
(the
|
||||
int
|
||||
(+
|
||||
(lerp-scale 3000.0 0.0 f0-0 12288.0 122880.0)
|
||||
(nav-enemy-rnd-float-range 0.0 900.0)
|
||||
)
|
||||
(the
|
||||
int
|
||||
(+
|
||||
(lerp-scale 3000.0 0.0 f0-0 12288.0 122880.0)
|
||||
(nav-enemy-rnd-float-range 0.0 900.0)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! (-> self rotate-speed) (-> self nav-info run-rotate-speed))
|
||||
(set! (-> self turn-time) (the-as uint (-> self nav-info run-turn-time)))
|
||||
(set! (-> self turn-time) (the-as int (-> self nav-info run-turn-time)))
|
||||
(set! (-> self collide-info transv quad) (-> *null-vector* quad))
|
||||
(none)
|
||||
)
|
||||
@@ -2109,10 +2090,7 @@ nav-enemy-default-event-handler
|
||||
(behavior ()
|
||||
(when
|
||||
(>=
|
||||
(the-as
|
||||
int
|
||||
(- (-> *display* base-frame-counter) (the-as uint (-> self state-time)))
|
||||
)
|
||||
(- (-> *display* base-frame-counter) (the-as int (-> self state-time)))
|
||||
30
|
||||
)
|
||||
(if (logtest? (-> *target* state-flags) 128)
|
||||
@@ -2123,11 +2101,8 @@ nav-enemy-default-event-handler
|
||||
(if
|
||||
(and
|
||||
(>=
|
||||
(the-as
|
||||
int
|
||||
(- (-> *display* base-frame-counter) (-> self notice-time))
|
||||
)
|
||||
(the-as int (-> self reaction-time))
|
||||
(- (-> *display* base-frame-counter) (-> self notice-time))
|
||||
(-> self reaction-time)
|
||||
)
|
||||
(not (nav-enemy-frustrated?))
|
||||
)
|
||||
@@ -2167,11 +2142,8 @@ nav-enemy-default-event-handler
|
||||
(set! (-> self nav-enemy-flags) (logand -5 (-> self nav-enemy-flags)))
|
||||
(if
|
||||
(>=
|
||||
(the-as
|
||||
int
|
||||
(- (-> *display* base-frame-counter) (the-as uint (-> self state-time)))
|
||||
)
|
||||
(the-as int (-> self state-timeout))
|
||||
(- (-> *display* base-frame-counter) (the-as int (-> self state-time)))
|
||||
(-> self state-timeout)
|
||||
)
|
||||
(go-virtual nav-enemy-give-up)
|
||||
)
|
||||
@@ -2214,7 +2186,10 @@ nav-enemy-default-event-handler
|
||||
)
|
||||
:enter
|
||||
(behavior ()
|
||||
(set! (-> self state-time) (-> *display* base-frame-counter))
|
||||
(set!
|
||||
(-> self state-time)
|
||||
(the-as seconds (-> *display* base-frame-counter))
|
||||
)
|
||||
(nav-enemy-neck-control-inactive)
|
||||
(set! (-> self nav-enemy-flags) (logand -5 (-> self nav-enemy-flags)))
|
||||
(none)
|
||||
@@ -2223,10 +2198,7 @@ nav-enemy-default-event-handler
|
||||
(behavior ()
|
||||
(when
|
||||
(>=
|
||||
(the-as
|
||||
int
|
||||
(- (-> *display* base-frame-counter) (the-as uint (-> self state-time)))
|
||||
)
|
||||
(- (-> *display* base-frame-counter) (the-as int (-> self state-time)))
|
||||
30
|
||||
)
|
||||
(if (TODO-RENAME-46 self (-> self nav-info notice-distance))
|
||||
@@ -2352,16 +2324,7 @@ nav-enemy-default-event-handler
|
||||
(set! (-> a1-0 from) self)
|
||||
(set! (-> a1-0 num-params) 0)
|
||||
(set! (-> a1-0 message) 'child-die)
|
||||
(let ((t9-0 send-event-function)
|
||||
(v1-1 (-> self parent))
|
||||
)
|
||||
(t9-0 (the-as process (if v1-1
|
||||
(-> v1-1 0 self)
|
||||
)
|
||||
)
|
||||
a1-0
|
||||
)
|
||||
)
|
||||
(send-event-function (ppointer->process (-> self parent)) a1-0)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
@@ -2445,13 +2408,16 @@ nav-enemy-default-event-handler
|
||||
(-> self collide-info)
|
||||
(-> self jump-dest)
|
||||
(-> self rotate-speed)
|
||||
(the-as int (-> self turn-time))
|
||||
(-> self turn-time)
|
||||
)
|
||||
)
|
||||
(when (logtest? (-> self nav-enemy-flags) 8)
|
||||
(let
|
||||
((f30-0
|
||||
(the float (- (-> *display* base-frame-counter) (-> self jump-time)))
|
||||
(the
|
||||
float
|
||||
(- (-> *display* base-frame-counter) (the-as int (-> self jump-time)))
|
||||
)
|
||||
)
|
||||
)
|
||||
(let
|
||||
@@ -2598,7 +2564,7 @@ nav-enemy-default-event-handler
|
||||
)
|
||||
)
|
||||
(set! (-> self collide-info status) (logand -8 (-> self collide-info status)))
|
||||
(set! (-> self jump-time) (-> *display* base-frame-counter))
|
||||
(set! (-> self jump-time) (the-as uint (-> *display* base-frame-counter)))
|
||||
(logior! (-> self nav-enemy-flags) 8)
|
||||
(cond
|
||||
((logtest? (-> self nav-enemy-flags) 1024)
|
||||
@@ -2659,7 +2625,10 @@ nav-enemy-default-event-handler
|
||||
)
|
||||
(while
|
||||
(<
|
||||
(the float (- (-> *display* base-frame-counter) (-> self jump-time)))
|
||||
(the
|
||||
float
|
||||
(- (-> *display* base-frame-counter) (the-as int (-> self jump-time)))
|
||||
)
|
||||
(-> self jump-trajectory time)
|
||||
)
|
||||
(suspend)
|
||||
@@ -2775,7 +2744,10 @@ nav-enemy-default-event-handler
|
||||
nav-enemy-jump-event-handler
|
||||
:enter
|
||||
(behavior ()
|
||||
(set! (-> self state-time) (-> *display* base-frame-counter))
|
||||
(set!
|
||||
(-> self state-time)
|
||||
(the-as seconds (-> *display* base-frame-counter))
|
||||
)
|
||||
(if
|
||||
(and
|
||||
(-> self nav-info use-jump-blocked)
|
||||
@@ -2846,13 +2818,13 @@ nav-enemy-default-event-handler
|
||||
(-> self collide-info)
|
||||
(-> self nav target-pos)
|
||||
(-> self rotate-speed)
|
||||
(the-as int (-> self turn-time))
|
||||
(-> self turn-time)
|
||||
)
|
||||
(seek-toward-heading-vec!
|
||||
(-> self collide-info)
|
||||
(-> self nav travel)
|
||||
(-> self rotate-speed)
|
||||
(the-as int (-> self turn-time))
|
||||
(-> self turn-time)
|
||||
)
|
||||
)
|
||||
(vector-v++!
|
||||
@@ -2882,7 +2854,10 @@ nav-enemy-default-event-handler
|
||||
)
|
||||
:enter
|
||||
(behavior ()
|
||||
(set! (-> self state-time) (-> *display* base-frame-counter))
|
||||
(set!
|
||||
(-> self state-time)
|
||||
(the-as seconds (-> *display* base-frame-counter))
|
||||
)
|
||||
(logclear! (-> self nav flags) (nav-control-flags bit19))
|
||||
(let ((gp-0 (new 'stack-no-clear 'vector)))
|
||||
(set! (-> gp-0 quad) (-> self collide-info transv quad))
|
||||
@@ -2899,10 +2874,7 @@ nav-enemy-default-event-handler
|
||||
(if
|
||||
(or
|
||||
(>=
|
||||
(the-as
|
||||
int
|
||||
(- (-> *display* base-frame-counter) (the-as uint (-> self state-time)))
|
||||
)
|
||||
(- (-> *display* base-frame-counter) (the-as int (-> self state-time)))
|
||||
150
|
||||
)
|
||||
(logtest? #x80000 (-> self nav flags))
|
||||
@@ -2931,17 +2903,17 @@ nav-enemy-default-event-handler
|
||||
)
|
||||
:enter
|
||||
(behavior ()
|
||||
(set! (-> self state-time) (-> *display* base-frame-counter))
|
||||
(set!
|
||||
(-> self state-time)
|
||||
(the-as seconds (-> *display* base-frame-counter))
|
||||
)
|
||||
(none)
|
||||
)
|
||||
:trans
|
||||
(behavior ()
|
||||
(if
|
||||
(>=
|
||||
(the-as
|
||||
int
|
||||
(- (-> *display* base-frame-counter) (the-as uint (-> self state-time)))
|
||||
)
|
||||
(- (-> *display* base-frame-counter) (the-as int (-> self state-time)))
|
||||
150
|
||||
)
|
||||
(go (-> self jump-return-state))
|
||||
@@ -3013,7 +2985,10 @@ nav-enemy-default-event-handler
|
||||
)
|
||||
:code
|
||||
(behavior ()
|
||||
(set! (-> self state-time) (-> *display* base-frame-counter))
|
||||
(set!
|
||||
(-> self state-time)
|
||||
(the-as seconds (-> *display* base-frame-counter))
|
||||
)
|
||||
(logior! (-> self nav-enemy-flags) 2048)
|
||||
(ja-channel-push! 1 30)
|
||||
(let ((f30-0 (nav-enemy-rnd-float-range 0.8 1.2)))
|
||||
@@ -3046,7 +3021,7 @@ nav-enemy-default-event-handler
|
||||
(let ((gp-0 (nav-enemy-rnd-int-range 0 150))
|
||||
(s5-0 (-> *display* base-frame-counter))
|
||||
)
|
||||
(until (>= (the-as int (- (-> *display* base-frame-counter) s5-0)) gp-0)
|
||||
(until (>= (- (-> *display* base-frame-counter) s5-0) gp-0)
|
||||
(let ((a0-12 (-> self skel root-channel 0)))
|
||||
(set! (-> a0-12 param 0) f30-0)
|
||||
(joint-control-channel-group-eval!
|
||||
@@ -3083,7 +3058,10 @@ nav-enemy-default-event-handler
|
||||
)
|
||||
:code
|
||||
(behavior ()
|
||||
(set! (-> self state-time) (-> *display* base-frame-counter))
|
||||
(set!
|
||||
(-> self state-time)
|
||||
(the-as seconds (-> *display* base-frame-counter))
|
||||
)
|
||||
(nav-enemy-initialize-jump (-> self event-param-point))
|
||||
(nav-enemy-neck-control-look-at)
|
||||
(logior! (-> self nav-enemy-flags) 16)
|
||||
@@ -3173,7 +3151,7 @@ nav-enemy-default-event-handler
|
||||
(-> *FACT-bank* default-pill-inc)
|
||||
)
|
||||
)
|
||||
(set! (-> obj reaction-time) (the-as uint (nav-enemy-rnd-int-range 30 240)))
|
||||
(set! (-> obj reaction-time) (nav-enemy-rnd-int-range 30 240))
|
||||
(set! (-> obj speed-scale) 1.0)
|
||||
(logior! (-> obj nav-enemy-flags) 4216)
|
||||
0
|
||||
@@ -3184,7 +3162,7 @@ nav-enemy-default-event-handler
|
||||
(defmethod TODO-RENAME-49 nav-enemy ((obj nav-enemy) (arg0 nav-enemy-info))
|
||||
(set! (-> obj nav-info) arg0)
|
||||
(set! (-> obj rotate-speed) (-> obj nav-info walk-rotate-speed))
|
||||
(set! (-> obj turn-time) (the-as uint (-> obj nav-info walk-turn-time)))
|
||||
(set! (-> obj turn-time) (the-as int (-> obj nav-info walk-turn-time)))
|
||||
(when (and (!= (-> obj nav-info neck-joint) -1) (zero? (-> obj neck)))
|
||||
(set!
|
||||
(-> obj neck)
|
||||
|
||||
+5
-11
@@ -450,7 +450,7 @@
|
||||
(sim-time-remaining float :offset-assert 688)
|
||||
(float-height-offset float :offset-assert 692)
|
||||
(player-attack-id int32 :offset-assert 696)
|
||||
(player-bonk-timeout uint64 :offset-assert 704)
|
||||
(player-bonk-timeout int64 :offset-assert 704)
|
||||
(water-anim water-anim :offset-assert 712)
|
||||
(player-contact basic :offset-assert 716)
|
||||
(player-impulse collide-shape-prim-mesh :offset-assert 720)
|
||||
@@ -735,10 +735,7 @@
|
||||
(('bonk)
|
||||
(when
|
||||
(>=
|
||||
(the-as
|
||||
int
|
||||
(- (-> *display* base-frame-counter) (-> self player-bonk-timeout))
|
||||
)
|
||||
(- (-> *display* base-frame-counter) (-> self player-bonk-timeout))
|
||||
(the-as int (-> self info player-force-timeout))
|
||||
)
|
||||
(set! (-> self player-bonk-timeout) (-> *display* base-frame-counter))
|
||||
@@ -787,12 +784,9 @@
|
||||
((= (-> arg3 param 1) 'flop)
|
||||
(when
|
||||
(>=
|
||||
(the-as
|
||||
int
|
||||
(-
|
||||
(-> *display* base-frame-counter)
|
||||
(-> self player-bonk-timeout)
|
||||
)
|
||||
(-
|
||||
(-> *display* base-frame-counter)
|
||||
(-> self player-bonk-timeout)
|
||||
)
|
||||
(the-as int (-> self info player-force-timeout))
|
||||
)
|
||||
|
||||
+14
-21
@@ -3,10 +3,10 @@
|
||||
|
||||
;; definition of type ticky
|
||||
(deftype ticky (structure)
|
||||
((delay-til-ramp uint64 :offset-assert 0)
|
||||
(delay-til-timeout uint64 :offset-assert 8)
|
||||
(starting-time uint64 :offset-assert 16)
|
||||
(last-tick-time uint64 :offset-assert 24)
|
||||
((delay-til-ramp int64 :offset-assert 0)
|
||||
(delay-til-timeout int64 :offset-assert 8)
|
||||
(starting-time int64 :offset-assert 16)
|
||||
(last-tick-time int64 :offset-assert 24)
|
||||
)
|
||||
:method-count-assert 12
|
||||
:size-assert #x20
|
||||
@@ -32,9 +32,12 @@
|
||||
;; INFO: Return type mismatch int vs none.
|
||||
(defmethod sleep ticky ((obj ticky) (arg0 uint))
|
||||
(set! (-> obj starting-time) (-> *display* base-frame-counter))
|
||||
(set! (-> obj delay-til-timeout) arg0)
|
||||
(set! (-> obj delay-til-ramp) (max 0 (the-as int (+ arg0 -1200))))
|
||||
(set! (-> obj last-tick-time) (the-as uint 0))
|
||||
(set! (-> obj delay-til-timeout) (the-as int arg0))
|
||||
(set!
|
||||
(-> obj delay-til-ramp)
|
||||
(the-as int (max 0 (the-as int (+ arg0 -1200))))
|
||||
)
|
||||
(set! (-> obj last-tick-time) 0)
|
||||
0
|
||||
(none)
|
||||
)
|
||||
@@ -44,7 +47,7 @@
|
||||
(let ((gp-0 #f))
|
||||
(let ((v1-2 (- (-> *display* base-frame-counter) (-> obj starting-time))))
|
||||
(cond
|
||||
((>= (the-as int v1-2) (the-as int (-> obj delay-til-timeout)))
|
||||
((>= v1-2 (-> obj delay-til-timeout))
|
||||
(set! gp-0 #t)
|
||||
)
|
||||
(else
|
||||
@@ -53,7 +56,7 @@
|
||||
(fmin
|
||||
1.0
|
||||
(/
|
||||
(the float (max 0 (the-as int (- v1-2 (-> obj delay-til-ramp)))))
|
||||
(the float (max 0 (- v1-2 (-> obj delay-til-ramp))))
|
||||
(the float (- (-> obj delay-til-timeout) (-> obj delay-til-ramp)))
|
||||
)
|
||||
)
|
||||
@@ -61,13 +64,7 @@
|
||||
(v1-7 (the int (lerp 105.0 41.0 f0-1)))
|
||||
)
|
||||
(when
|
||||
(>=
|
||||
(the-as
|
||||
int
|
||||
(- (-> *display* base-frame-counter) (-> obj last-tick-time))
|
||||
)
|
||||
v1-7
|
||||
)
|
||||
(>= (- (-> *display* base-frame-counter) (-> obj last-tick-time)) v1-7)
|
||||
(set! (-> obj last-tick-time) (-> *display* base-frame-counter))
|
||||
(sound-play-by-name
|
||||
(static-sound-name "stopwatch")
|
||||
@@ -90,11 +87,7 @@
|
||||
;; definition for method 10 of type ticky
|
||||
(defmethod reached-delay? ticky ((obj ticky) (arg0 uint))
|
||||
(>=
|
||||
(the-as int (- (-> *display* base-frame-counter) (-> obj starting-time)))
|
||||
(- (-> *display* base-frame-counter) (-> obj starting-time))
|
||||
(the-as int arg0)
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user