mirror of
https://github.com/open-goal/jak-project.git
synced 2024-10-20 11:26:18 -04: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
|
;; dynamics-h
|
||||||
(deftype dynamics (basic)
|
(deftype dynamics (basic)
|
||||||
((name basic :offset-assert 4)
|
((name basic :offset-assert 4)
|
||||||
(gravity-max float :offset-assert 8) ;; meters
|
(gravity-max float :offset-assert 8) ;; meters
|
||||||
(gravity-length float :offset-assert 12) ;; meters
|
(gravity-length float :offset-assert 12) ;; meters
|
||||||
(gravity vector :inline :offset-assert 16)
|
(gravity vector :inline :offset-assert 16)
|
||||||
(gravity-normal vector :inline :offset-assert 32)
|
(gravity-normal vector :inline :offset-assert 32)
|
||||||
(walk-distance float :offset-assert 48) ;meters
|
(walk-distance float :offset-assert 48) ;; meters
|
||||||
(run-distance float :offset-assert 52) ; meters
|
(run-distance float :offset-assert 52) ;; meters
|
||||||
)
|
)
|
||||||
:method-count-assert 9
|
:method-count-assert 9
|
||||||
:size-assert #x38
|
:size-assert #x38
|
||||||
|
@ -7718,57 +7718,57 @@
|
||||||
(define-extern surface-interp! (function surface surface surface float surface))
|
(define-extern surface-interp! (function surface surface surface float surface))
|
||||||
|
|
||||||
;;(define-extern standard object) ;; unknown type
|
;;(define-extern standard object) ;; unknown type
|
||||||
;;(define-extern *edge-surface* object) ;; unknown type
|
(define-extern *edge-surface* surface) ;; unknown type
|
||||||
;;(define-extern *uppercut-jump-mods* object) ;; unknown type
|
(define-extern *uppercut-jump-mods* surface) ;; unknown type
|
||||||
;;(define-extern *forward-pole-jump-mods* object) ;; unknown type
|
(define-extern *forward-pole-jump-mods* surface) ;; unknown type
|
||||||
;;(define-extern *flip-jump-mods* object) ;; unknown type
|
(define-extern *flip-jump-mods* surface) ;; unknown type
|
||||||
(define-extern surface-clamp-speed (function surface surface surface int none))
|
(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 surface type)
|
||||||
;;(define-extern *smack-jump-mods* object) ;; unknown type
|
(define-extern *smack-jump-mods* surface) ;; unknown type
|
||||||
;;(define-extern *dive-mods* object) ;; unknown type
|
(define-extern *dive-mods* surface) ;; unknown type
|
||||||
;;(define-extern *swim-surface* object) ;; unknown type
|
(define-extern *swim-surface* surface) ;; unknown type
|
||||||
(define-extern calc-terminal2-vel (function float float float float float))
|
(define-extern calc-terminal2-vel (function float float float float float))
|
||||||
;;(define-extern *wade-surface* object) ;; unknown type
|
(define-extern *wade-surface* surface) ;; unknown type
|
||||||
;;(define-extern *jump-mods* object) ;; unknown type
|
(define-extern *jump-mods* surface) ;; unknown type
|
||||||
;;(define-extern *turn-around-mods* object) ;; unknown type
|
(define-extern *turn-around-mods* surface) ;; unknown type
|
||||||
;;(define-extern *jump-attack-mods* object) ;; unknown type
|
(define-extern *jump-attack-mods* surface) ;; unknown type
|
||||||
;;(define-extern *grass-surface* object) ;; unknown type
|
(define-extern *grass-surface* surface) ;; unknown type
|
||||||
;;(define-extern *dive-bottom-mods* object) ;; unknown type
|
(define-extern *dive-bottom-mods* surface) ;; unknown type
|
||||||
;;(define-extern *tread-surface* object) ;; unknown type
|
(define-extern *tread-surface* surface) ;; unknown type
|
||||||
(define-extern surface-mult! (function surface surface surface surface))
|
(define-extern surface-mult! (function surface surface surface surface))
|
||||||
;;(define-extern *forward-high-jump-mods* object) ;; unknown type
|
(define-extern *forward-high-jump-mods* surface) ;; unknown type
|
||||||
;;(define-extern *double-jump-mods* object) ;; unknown type
|
(define-extern *double-jump-mods* surface) ;; unknown type
|
||||||
;;(define-extern edge-grab object) ;; unknown type
|
;;(define-extern edge-grab object) ;; unknown type
|
||||||
;;(define-extern *high-jump-mods* object) ;; unknown type
|
(define-extern *high-jump-mods* surface) ;; unknown type
|
||||||
;;(define-extern *ice-surface* object) ;; unknown type
|
(define-extern *ice-surface* surface) ;; unknown type
|
||||||
;;(define-extern *grab-mods* object) ;; unknown type
|
(define-extern *grab-mods* surface) ;; unknown type
|
||||||
;;(define-extern *run-attack-mods* object) ;; unknown type
|
(define-extern *run-attack-mods* surface) ;; unknown type
|
||||||
;;(define-extern *quicksand-surface* object) ;; unknown type
|
(define-extern *quicksand-surface* surface) ;; unknown type
|
||||||
;;(define-extern *walk-no-turn-mods* object) ;; unknown type
|
(define-extern *walk-no-turn-mods* surface) ;; unknown type
|
||||||
(define-extern calc-terminal-vel (function float float float float))
|
(define-extern calc-terminal-vel (function float float float float))
|
||||||
;;(define-extern *duck-mods* object) ;; unknown type
|
(define-extern *duck-mods* surface) ;; unknown type
|
||||||
;;(define-extern *duck-attack-mods* object) ;; unknown type
|
(define-extern *duck-attack-mods* surface) ;; unknown type
|
||||||
;;(define-extern *slope-surface* object) ;; unknown type
|
(define-extern *slope-surface* surface) ;; unknown type
|
||||||
(define-extern calc-terminal4-vel (function float float float float))
|
(define-extern calc-terminal4-vel (function float float float float))
|
||||||
;;(define-extern *edge-grab-mods* object) ;; unknown type
|
(define-extern *edge-grab-mods* surface) ;; unknown type
|
||||||
;;(define-extern *standard-ground-surface* object) ;; unknown type
|
(define-extern *standard-ground-surface* surface) ;; unknown type
|
||||||
;;(define-extern *flop-land-mods* object) ;; unknown type
|
(define-extern *flop-land-mods* surface) ;; unknown type
|
||||||
;;(define-extern *wheel-mods* object) ;; unknown type
|
(define-extern *wheel-mods* surface) ;; unknown type
|
||||||
;;(define-extern *swim-mods* object) ;; unknown type
|
(define-extern *swim-mods* surface) ;; unknown type
|
||||||
|
|
||||||
(define-extern *walk-mods* surface) ;; unknown type
|
(define-extern *walk-mods* surface) ;; unknown type
|
||||||
;;(define-extern *attack-mods* object) ;; unknown type
|
(define-extern *attack-mods* surface) ;; unknown type
|
||||||
;;(define-extern *neutral-mods* object) ;; unknown type
|
(define-extern *neutral-mods* surface) ;; unknown type
|
||||||
;;(define-extern grab object) ;; unknown type
|
;;(define-extern grab object) ;; unknown type
|
||||||
;;(define-extern *wade-mods* object) ;; unknown type
|
(define-extern *wade-mods* surface) ;; unknown type
|
||||||
;;(define-extern *forward-jump-mods* object) ;; unknown type
|
(define-extern *forward-jump-mods* surface) ;; unknown type
|
||||||
(define-extern *stone-surface* surface) ;; unknown type
|
(define-extern *stone-surface* surface) ;; unknown type
|
||||||
;;(define-extern *launch-jump-mods* object) ;; unknown type
|
(define-extern *launch-jump-mods* surface) ;; unknown type
|
||||||
;;(define-extern *empty-mods* object) ;; unknown type
|
(define-extern *empty-mods* surface) ;; unknown type
|
||||||
;;(define-extern *tar-surface* object) ;; unknown type
|
(define-extern *tar-surface* surface) ;; unknown type
|
||||||
;;(define-extern *wheel-flip-mods* object) ;; unknown type
|
(define-extern *wheel-flip-mods* surface) ;; unknown type
|
||||||
;;(define-extern *pole-mods* object) ;; unknown type
|
(define-extern *pole-mods* surface) ;; unknown type
|
||||||
|
|
||||||
;; pat-h
|
;; pat-h
|
||||||
(deftype pat-surface (uint32)
|
(deftype pat-surface (uint32)
|
||||||
|
@ -33245,8 +33245,7 @@
|
||||||
(define-extern vu-lights<-light-group! function)
|
(define-extern vu-lights<-light-group! function)
|
||||||
(define-extern time-to-apex (function float float int))
|
(define-extern time-to-apex (function float float int))
|
||||||
(define-extern time-to-ground (function float float float int))
|
(define-extern time-to-ground (function float float float int))
|
||||||
;;(define-extern *standard-dynamics* object) ;; unknown type
|
(define-extern *standard-dynamics* dynamics)
|
||||||
(define-extern dynamics type)
|
|
||||||
|
|
||||||
;;(define-extern pole object) ;; unknown type
|
;;(define-extern pole object) ;; unknown type
|
||||||
;;(define-extern wheel-flip object) ;; unknown type
|
;;(define-extern wheel-flip object) ;; unknown type
|
||||||
|
|
|
@ -5,17 +5,21 @@
|
||||||
;; name in dgo: dynamics-h
|
;; name in dgo: dynamics-h
|
||||||
;; dgos: GAME, ENGINE
|
;; dgos: GAME, ENGINE
|
||||||
|
|
||||||
;; 1 / 300.
|
;; TODO move these elsewhere
|
||||||
(defconstant TICKS_TO_SECONDS (the-as float #x3b5a740e))
|
(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)
|
(deftype dynamics (basic)
|
||||||
((name basic :offset-assert 4)
|
((name basic :offset-assert 4)
|
||||||
(gravity-max float :offset-assert 8) ;; meters
|
(gravity-max float :offset-assert 8) ;; meters
|
||||||
(gravity-length float :offset-assert 12) ;; meters
|
(gravity-length float :offset-assert 12) ;; meters
|
||||||
(gravity vector :inline :offset-assert 16)
|
(gravity vector :inline :offset-assert 16)
|
||||||
(gravity-normal vector :inline :offset-assert 32)
|
(gravity-normal vector :inline :offset-assert 32)
|
||||||
(walk-distance float :offset-assert 48) ;meters
|
(walk-distance float :offset-assert 48) ;; meters
|
||||||
(run-distance float :offset-assert 52) ; meters
|
(run-distance float :offset-assert 52) ;; meters
|
||||||
)
|
)
|
||||||
:method-count-assert 9
|
:method-count-assert 9
|
||||||
:size-assert #x38
|
:size-assert #x38
|
||||||
|
@ -23,31 +27,32 @@
|
||||||
)
|
)
|
||||||
|
|
||||||
(defun time-to-apex ((arg0 float) (arg1 float))
|
(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))
|
(defun time-to-ground ((velocity float) (gravity float) (height float))
|
||||||
"How long to fall from height?"
|
"How long to fall from height?"
|
||||||
(local-vars (v0-0 int) (position float))
|
(let ((height-checked 0.0)
|
||||||
(set! position 0.000000)
|
(ticks 0))
|
||||||
(set! v0-0 0)
|
;; loop in ticks until we reach the ground
|
||||||
;; loop in ticks until below the ground.
|
(while (< (- height) height-checked)
|
||||||
(while (< (- height) position)
|
(let ((velocity (- velocity (vel-to-tick gravity))))
|
||||||
(set! velocity (- velocity (* TICKS_TO_SECONDS gravity)))
|
(+! height-checked (vel-to-tick velocity))
|
||||||
(+! position (* TICKS_TO_SECONDS velocity))
|
)
|
||||||
(+! v0-0 1)
|
(+! ticks 1)
|
||||||
|
)
|
||||||
|
ticks
|
||||||
)
|
)
|
||||||
v0-0
|
|
||||||
)
|
)
|
||||||
|
|
||||||
(define *standard-dynamics*
|
(define *standard-dynamics*
|
||||||
(new 'static 'dynamics
|
(new 'static 'dynamics
|
||||||
:name 'standard
|
:name 'standard
|
||||||
:gravity-max 163840.000000
|
:gravity-max GRAVITY_MAX
|
||||||
:gravity-length 245760.000000
|
:gravity-length GRAVITY_AMOUNT
|
||||||
:gravity (new 'static 'vector :y 245760.000000 :w 1.000000)
|
:gravity (new 'static 'vector :x 0.0 :y GRAVITY_AMOUNT :z 0.0 :w 1.0)
|
||||||
:gravity-normal (new 'static 'vector :y 1.000000 :w 1.000000)
|
:gravity-normal (new 'static 'vector :x 0.0 :y 1.0 :z 0.0 :w 1.0)
|
||||||
:walk-distance 8192.000000
|
:walk-distance 8192.0
|
||||||
:run-distance 20480.000000
|
:run-distance 20480.0
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
|
@ -6,3 +6,5 @@
|
||||||
;; dgos: GAME, ENGINE
|
;; 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…
Reference in a new issue