mirror of
https://github.com/open-goal/jak-project.git
synced 2025-02-17 04:27:57 +00:00
update some physics code (#347)
* move commonly used scripts to specific folders * fixes * Update test.sh * Update test.sh * Fix file permission * move commonly used scripts to specific folders * fixes * Update test.sh * Update test.sh * Fix file permission * scripts to annoy me less * [dynamics-h] clean-up * make things neat * more cleanup * update surface-h * fix error * fix typo * Spoonfeed the compiler * [surface-h] rename sqrt to sqrtf
This commit is contained in:
parent
0a76e6e157
commit
7867de8fd7
@ -7659,12 +7659,12 @@
|
||||
;; dynamics-h
|
||||
(deftype dynamics (basic)
|
||||
((name basic :offset-assert 4)
|
||||
(gravity-max float :offset-assert 8) ;; meters
|
||||
(gravity-length float :offset-assert 12) ;; meters
|
||||
(gravity-max float :offset-assert 8) ;; meters
|
||||
(gravity-length float :offset-assert 12) ;; meters
|
||||
(gravity vector :inline :offset-assert 16)
|
||||
(gravity-normal vector :inline :offset-assert 32)
|
||||
(walk-distance float :offset-assert 48) ;meters
|
||||
(run-distance float :offset-assert 52) ; meters
|
||||
(walk-distance float :offset-assert 48) ;; meters
|
||||
(run-distance float :offset-assert 52) ;; meters
|
||||
)
|
||||
:method-count-assert 9
|
||||
:size-assert #x38
|
||||
@ -7718,57 +7718,57 @@
|
||||
(define-extern surface-interp! (function surface surface surface float surface))
|
||||
|
||||
;;(define-extern standard object) ;; unknown type
|
||||
;;(define-extern *edge-surface* object) ;; unknown type
|
||||
;;(define-extern *uppercut-jump-mods* object) ;; unknown type
|
||||
;;(define-extern *forward-pole-jump-mods* object) ;; unknown type
|
||||
;;(define-extern *flip-jump-mods* object) ;; unknown type
|
||||
(define-extern *edge-surface* surface) ;; unknown type
|
||||
(define-extern *uppercut-jump-mods* surface) ;; unknown type
|
||||
(define-extern *forward-pole-jump-mods* surface) ;; unknown type
|
||||
(define-extern *flip-jump-mods* surface) ;; unknown type
|
||||
(define-extern surface-clamp-speed (function surface surface surface int none))
|
||||
;;(define-extern *flop-mods* object) ;; unknown type
|
||||
(define-extern *flop-mods* surface) ;; unknown type
|
||||
(define-extern surface type)
|
||||
;;(define-extern *smack-jump-mods* object) ;; unknown type
|
||||
;;(define-extern *dive-mods* object) ;; unknown type
|
||||
;;(define-extern *swim-surface* object) ;; unknown type
|
||||
(define-extern *smack-jump-mods* surface) ;; unknown type
|
||||
(define-extern *dive-mods* surface) ;; unknown type
|
||||
(define-extern *swim-surface* surface) ;; unknown type
|
||||
(define-extern calc-terminal2-vel (function float float float float float))
|
||||
;;(define-extern *wade-surface* object) ;; unknown type
|
||||
;;(define-extern *jump-mods* object) ;; unknown type
|
||||
;;(define-extern *turn-around-mods* object) ;; unknown type
|
||||
;;(define-extern *jump-attack-mods* object) ;; unknown type
|
||||
;;(define-extern *grass-surface* object) ;; unknown type
|
||||
;;(define-extern *dive-bottom-mods* object) ;; unknown type
|
||||
;;(define-extern *tread-surface* object) ;; unknown type
|
||||
(define-extern *wade-surface* surface) ;; unknown type
|
||||
(define-extern *jump-mods* surface) ;; unknown type
|
||||
(define-extern *turn-around-mods* surface) ;; unknown type
|
||||
(define-extern *jump-attack-mods* surface) ;; unknown type
|
||||
(define-extern *grass-surface* surface) ;; unknown type
|
||||
(define-extern *dive-bottom-mods* surface) ;; unknown type
|
||||
(define-extern *tread-surface* surface) ;; unknown type
|
||||
(define-extern surface-mult! (function surface surface surface surface))
|
||||
;;(define-extern *forward-high-jump-mods* object) ;; unknown type
|
||||
;;(define-extern *double-jump-mods* object) ;; unknown type
|
||||
(define-extern *forward-high-jump-mods* surface) ;; unknown type
|
||||
(define-extern *double-jump-mods* surface) ;; unknown type
|
||||
;;(define-extern edge-grab object) ;; unknown type
|
||||
;;(define-extern *high-jump-mods* object) ;; unknown type
|
||||
;;(define-extern *ice-surface* object) ;; unknown type
|
||||
;;(define-extern *grab-mods* object) ;; unknown type
|
||||
;;(define-extern *run-attack-mods* object) ;; unknown type
|
||||
;;(define-extern *quicksand-surface* object) ;; unknown type
|
||||
;;(define-extern *walk-no-turn-mods* object) ;; unknown type
|
||||
(define-extern *high-jump-mods* surface) ;; unknown type
|
||||
(define-extern *ice-surface* surface) ;; unknown type
|
||||
(define-extern *grab-mods* surface) ;; unknown type
|
||||
(define-extern *run-attack-mods* surface) ;; unknown type
|
||||
(define-extern *quicksand-surface* surface) ;; unknown type
|
||||
(define-extern *walk-no-turn-mods* surface) ;; unknown type
|
||||
(define-extern calc-terminal-vel (function float float float float))
|
||||
;;(define-extern *duck-mods* object) ;; unknown type
|
||||
;;(define-extern *duck-attack-mods* object) ;; unknown type
|
||||
;;(define-extern *slope-surface* object) ;; unknown type
|
||||
(define-extern *duck-mods* surface) ;; unknown type
|
||||
(define-extern *duck-attack-mods* surface) ;; unknown type
|
||||
(define-extern *slope-surface* surface) ;; unknown type
|
||||
(define-extern calc-terminal4-vel (function float float float float))
|
||||
;;(define-extern *edge-grab-mods* object) ;; unknown type
|
||||
;;(define-extern *standard-ground-surface* object) ;; unknown type
|
||||
;;(define-extern *flop-land-mods* object) ;; unknown type
|
||||
;;(define-extern *wheel-mods* object) ;; unknown type
|
||||
;;(define-extern *swim-mods* object) ;; unknown type
|
||||
(define-extern *edge-grab-mods* surface) ;; unknown type
|
||||
(define-extern *standard-ground-surface* surface) ;; unknown type
|
||||
(define-extern *flop-land-mods* surface) ;; unknown type
|
||||
(define-extern *wheel-mods* surface) ;; unknown type
|
||||
(define-extern *swim-mods* surface) ;; unknown type
|
||||
|
||||
(define-extern *walk-mods* surface) ;; unknown type
|
||||
;;(define-extern *attack-mods* object) ;; unknown type
|
||||
;;(define-extern *neutral-mods* object) ;; unknown type
|
||||
(define-extern *attack-mods* surface) ;; unknown type
|
||||
(define-extern *neutral-mods* surface) ;; unknown type
|
||||
;;(define-extern grab object) ;; unknown type
|
||||
;;(define-extern *wade-mods* object) ;; unknown type
|
||||
;;(define-extern *forward-jump-mods* object) ;; unknown type
|
||||
(define-extern *wade-mods* surface) ;; unknown type
|
||||
(define-extern *forward-jump-mods* surface) ;; unknown type
|
||||
(define-extern *stone-surface* surface) ;; unknown type
|
||||
;;(define-extern *launch-jump-mods* object) ;; unknown type
|
||||
;;(define-extern *empty-mods* object) ;; unknown type
|
||||
;;(define-extern *tar-surface* object) ;; unknown type
|
||||
;;(define-extern *wheel-flip-mods* object) ;; unknown type
|
||||
;;(define-extern *pole-mods* object) ;; unknown type
|
||||
(define-extern *launch-jump-mods* surface) ;; unknown type
|
||||
(define-extern *empty-mods* surface) ;; unknown type
|
||||
(define-extern *tar-surface* surface) ;; unknown type
|
||||
(define-extern *wheel-flip-mods* surface) ;; unknown type
|
||||
(define-extern *pole-mods* surface) ;; unknown type
|
||||
|
||||
;; pat-h
|
||||
(deftype pat-surface (uint32)
|
||||
@ -33245,8 +33245,7 @@
|
||||
(define-extern vu-lights<-light-group! function)
|
||||
(define-extern time-to-apex (function float float int))
|
||||
(define-extern time-to-ground (function float float float int))
|
||||
;;(define-extern *standard-dynamics* object) ;; unknown type
|
||||
(define-extern dynamics type)
|
||||
(define-extern *standard-dynamics* dynamics)
|
||||
|
||||
;;(define-extern pole object) ;; unknown type
|
||||
;;(define-extern wheel-flip object) ;; unknown type
|
||||
|
@ -5,17 +5,21 @@
|
||||
;; name in dgo: dynamics-h
|
||||
;; dgos: GAME, ENGINE
|
||||
|
||||
;; 1 / 300.
|
||||
(defconstant TICKS_TO_SECONDS (the-as float #x3b5a740e))
|
||||
;; TODO move these elsewhere
|
||||
(defglobalconstant TICKS_TO_SECONDS (/ 1.0 300)) ;; #x3b5a740e - 0.0033333333...
|
||||
(defmacro vel-to-tick (vel)
|
||||
"turn a velocity value into a per-tick value"
|
||||
`(* ,TICKS_TO_SECONDS ,vel)
|
||||
)
|
||||
|
||||
(deftype dynamics (basic)
|
||||
((name basic :offset-assert 4)
|
||||
(gravity-max float :offset-assert 8) ;; meters
|
||||
(gravity-length float :offset-assert 12) ;; meters
|
||||
(gravity-max float :offset-assert 8) ;; meters
|
||||
(gravity-length float :offset-assert 12) ;; meters
|
||||
(gravity vector :inline :offset-assert 16)
|
||||
(gravity-normal vector :inline :offset-assert 32)
|
||||
(walk-distance float :offset-assert 48) ;meters
|
||||
(run-distance float :offset-assert 52) ; meters
|
||||
(walk-distance float :offset-assert 48) ;; meters
|
||||
(run-distance float :offset-assert 52) ;; meters
|
||||
)
|
||||
:method-count-assert 9
|
||||
:size-assert #x38
|
||||
@ -23,31 +27,32 @@
|
||||
)
|
||||
|
||||
(defun time-to-apex ((arg0 float) (arg1 float))
|
||||
(the int (/ arg0 (- (* TICKS_TO_SECONDS arg1))))
|
||||
(the int (/ arg0 (- (vel-to-tick arg1))))
|
||||
)
|
||||
|
||||
(defun time-to-ground ((velocity float) (gravity float) (height float))
|
||||
"How long to fall from height?"
|
||||
(local-vars (v0-0 int) (position float))
|
||||
(set! position 0.000000)
|
||||
(set! v0-0 0)
|
||||
;; loop in ticks until below the ground.
|
||||
(while (< (- height) position)
|
||||
(set! velocity (- velocity (* TICKS_TO_SECONDS gravity)))
|
||||
(+! position (* TICKS_TO_SECONDS velocity))
|
||||
(+! v0-0 1)
|
||||
(let ((height-checked 0.0)
|
||||
(ticks 0))
|
||||
;; loop in ticks until we reach the ground
|
||||
(while (< (- height) height-checked)
|
||||
(let ((velocity (- velocity (vel-to-tick gravity))))
|
||||
(+! height-checked (vel-to-tick velocity))
|
||||
)
|
||||
(+! ticks 1)
|
||||
)
|
||||
ticks
|
||||
)
|
||||
v0-0
|
||||
)
|
||||
|
||||
(define *standard-dynamics*
|
||||
(new 'static 'dynamics
|
||||
:name 'standard
|
||||
:gravity-max 163840.000000
|
||||
:gravity-length 245760.000000
|
||||
:gravity (new 'static 'vector :y 245760.000000 :w 1.000000)
|
||||
:gravity-normal (new 'static 'vector :y 1.000000 :w 1.000000)
|
||||
:walk-distance 8192.000000
|
||||
:run-distance 20480.000000
|
||||
:gravity-max GRAVITY_MAX
|
||||
:gravity-length GRAVITY_AMOUNT
|
||||
:gravity (new 'static 'vector :x 0.0 :y GRAVITY_AMOUNT :z 0.0 :w 1.0)
|
||||
:gravity-normal (new 'static 'vector :x 0.0 :y 1.0 :z 0.0 :w 1.0)
|
||||
:walk-distance 8192.0
|
||||
:run-distance 20480.0
|
||||
)
|
||||
)
|
||||
|
@ -5,4 +5,6 @@
|
||||
;; name in dgo: gravity-h
|
||||
;; dgos: GAME, ENGINE
|
||||
|
||||
;; This file generates no code.
|
||||
;; This file generates no code.
|
||||
(defconstant GRAVITY_AMOUNT 245760.0) ;; (meters 60)
|
||||
(defconstant GRAVITY_MAX 163840.0) ;; (meters 40)
|
||||
|
File diff suppressed because it is too large
Load Diff
2
scripts/batch/repo-settings-mark.bat
Normal file
2
scripts/batch/repo-settings-mark.bat
Normal file
@ -0,0 +1,2 @@
|
||||
cd ..\..
|
||||
git update-index --assume-unchanged decompiler\config\jak1_ntsc_black_label.jsonc
|
2
scripts/batch/repo-settings-unmark.bat
Normal file
2
scripts/batch/repo-settings-unmark.bat
Normal file
@ -0,0 +1,2 @@
|
||||
cd ..\..
|
||||
git update-index --no-assume-unchanged decompiler\config\jak1_ntsc_black_label.jsonc
|
Loading…
x
Reference in New Issue
Block a user