mirror of
https://github.com/open-goal/jak-project
synced 2026-08-17 05:31:46 -04:00
58a5440c8a
Makes a bunch of missions mostly playable, including: - `arena-training-1` - `arena-fight-1` - `wascity-chase` - `arena-fight-2` - `arena-fight-3` - `volcano-darkeco` - `desert-hover` - `nest-eggs` - `temple-climb` - `temple-oracle` - `temple-tests` - `desert-beast-battle` - `desert-turtle-training` - `desert-course-race` - `desert-artifact-race1` - `wascity-leaper-race` - `wascity-pre-game` - `sewer-met-hum` - `forest-kill-plants` - `forest-ring-chase` - `temple-defend` - `tower-destroy` - `desert-glide` --- Files: - `ripple` - `waswide-mood` - `sig-rider` - `nst-tasks` - `nst-part` - `nst-gas` - `nst-eggs-h` - `nst-obs` - `nst-mood` - `egg-spider` - `wasdoors-init` - `wasall-tasks` - `wvehicle-race` - `wcar-marauder` - `wcar-marauder-b` - `turret-control` - `was-squad-control` - `turtle-training` - `kleever-rider` - `course-race` - `artifact-race` - `desert-hover` - `desbeast-path-h` - `des-beast` - `desertg-obs` - `desertf-obs` - `desertd-obs` - `desert-dust-storm` - `des-cactus` - `race-hud` - `race-info` - `race-manager` - `tizard` - `flyingsaw` - `hover-training` - `temple-mood` - `temple-obs` - `temple-obs2` - `temple-part` - `temple-scenes` - `templex-mood` - `templex-obs` - `templex-part` - `tomb-baby-spider` - `target-turret-shot` - `target-turret` - `beast-battle-path` - `des-beast-2` - `mh-flyer` - `scorpion-gun` - `hover-enemy-h` - `hover-enemy` - `hover-formation-h` - `hover-formation` - `hover-nav-control-h` - `hover-nav-control` - `flamer-hover` - `hover-nav-templea` - `robo-hover` - `hover-nav-sewb` - `hover-nav-sewg` - `hover-nav-sewj` - `hover-nav-sewl` - `hover-nav-sewo` - `hover-nav-towera` - `tower-mood` - `tower-obs` - `tower-scenes` - `tower-part` - `eco-green-collider` - `forest-bridges` - `forest-kill-plants` - `forest-mood` - `forest-ring-chase` - `forest-tasks` - `forest-part` - `foresta-obs` - `hover-nav-foresta` - `mh-plant` - `dp-bipedal-part` - `dp-bipedal-shot` - `dp-bipedal` - `neo-spawner` - `for-turret` - `for-turret-shot` - `neo-wasp` - `neo-wasp-part` - `volcanox-scenes` - `volcanox-mood` - `volcano-scenes` - `volcano-mood` - `volcano-obs` - `volcano-obs2` - `chain-physics` - `rigid-body-plat` - `volcano-part` - `flamer-lava` - `flitter` - `spiky-frog` - `flut-wild` - `target-indax` - `target-indax-hang` - `mantis` - `volcanox-obs` - `spyder` - `wcar-faccar` - `mhcity-obs2` - `mhcity-part` - `mhcity-obs` - `dm-mine-spider` - `rapid-gunner` - `stadium-mood` - `stadium-scenes` - `stadiuma-mood` - `stadiuma-part` - `kanga-lizard` - `marauder` - `arena-scenes` - `wasstada-mood` - `wasstada-obs` - `wasstada-part` - `wasstadb-obs` - `wasstadc-obs` - `dm-flyer` - `maker-part` - `maker-projectile` - `skeet-part` - `wascity-turret` - `wasgun-h` - `wasgun-hud` - `wasgun-manager` - `nav-graph-h` - `traffic-engine-h` - `waswide-init` - `cty-borrow-manager-h` - `cty-borrow-manager` - `desert-part` - `height-map-h` - `height-map` - `traffic-height-map` - `vehicle-control` - `hvehicle-h` - `hvehicle` - `hvehicle-effects` - `hvehicle-physics` - `hvehicle-util` - `glider-h` - `glider-hud` - `glider-manager` - `glider-ring` - `glider-ring-part` - `h-glider` - `hanga-init` - `was-pre-game` - `was-leaper-race` - `flut-racer` - `desert-scenes` - `desert-lizard-h` - `desert-lizard-task` - `desert-lizard` - `throne-scenes` - `waspal-mood` - `waspala-obs` - `waspala-part` - `deswalk-obs` - `deswalk-part` - `terraformer-drone` - `terraformer-head` - `terraformer-part` - `terraformer-setup`
230 lines
6.5 KiB
Common Lisp
230 lines
6.5 KiB
Common Lisp
;;-*-Lisp-*-
|
|
(in-package goal)
|
|
|
|
;; name: ragdoll-h.gc
|
|
;; name in dgo: ragdoll-h
|
|
;; dgos: GAME
|
|
|
|
(declare-type ragdoll basic)
|
|
(declare-type ragdoll-joint structure)
|
|
(declare-type ragdoll-proc process)
|
|
(declare-type wings process-drawable)
|
|
|
|
;; +++ragdoll-joint-flag
|
|
(defenum ragdoll-joint-flag
|
|
:type uint32
|
|
:bitfield #t
|
|
(rjf0 0)
|
|
(rjf1 1)
|
|
(rjf2 2)
|
|
(rjf3 3)
|
|
(rjf4 4)
|
|
(rjf5 5)
|
|
(rjf6 6)
|
|
(rjf7 7)
|
|
(rjf8 8)
|
|
(rjf9 9)
|
|
(rjf10 10)
|
|
(rjf11 11)
|
|
(rjf12 12)
|
|
(rjf13 13)
|
|
(rjf14 14)
|
|
(rjf15 15)
|
|
)
|
|
;; ---ragdoll-joint-flag
|
|
|
|
|
|
;; +++ragdoll-flag
|
|
(defenum ragdoll-flag
|
|
:type uint32
|
|
:bitfield #t
|
|
(rf0 0)
|
|
(rf1 1)
|
|
(rf2 2)
|
|
(rf3 3)
|
|
(rf4 4)
|
|
(rf5 5)
|
|
(rf6 6)
|
|
(rf7 7)
|
|
(mirror 8)
|
|
(rf9 9)
|
|
(rf10 10)
|
|
(rf11 11)
|
|
(rf12 12)
|
|
(rf13 13)
|
|
(rf14 14)
|
|
(rf15 15)
|
|
)
|
|
;; ---ragdoll-flag
|
|
|
|
(define-extern ragdoll-other-joint-callback (function cspace transformq none :behavior ragdoll-proc))
|
|
|
|
;; DECOMP BEGINS
|
|
|
|
(deftype ragdoll-edit-info (structure)
|
|
((editing symbol)
|
|
(current-func uint64)
|
|
(analog-func uint64)
|
|
(affect uint64)
|
|
(single-step uint64)
|
|
(collision symbol)
|
|
(gravity symbol)
|
|
(skel-visible uint64)
|
|
(current-joint int8)
|
|
(auto-setup-now basic)
|
|
(child-stack ragdoll-joint 60)
|
|
(child-stack-num int8)
|
|
(last-frame time-frame)
|
|
(last-frame-dur time-frame)
|
|
)
|
|
(:methods
|
|
(has-joint? (_type_ ragdoll-joint) symbol)
|
|
(ragdoll-edit-info-method-10 (_type_ object ragdoll-joint) symbol)
|
|
(fill-child-stack! (_type_ ragdoll) none)
|
|
(ragdoll-edit-info-method-12 (_type_) none)
|
|
(cycle-joints! (_type_ ragdoll) none)
|
|
(ragdoll-edit-info-method-14 (_type_ matrix vector (inline-array ragdoll-joint) ragdoll process-drawable) vector)
|
|
(ragdoll-edit-info-method-15 (_type_) none)
|
|
(ragdoll-edit-info-method-16 (_type_ ragdoll process-drawable) none)
|
|
(ragdoll-edit-info-method-17 (_type_ ragdoll process-drawable) none)
|
|
)
|
|
)
|
|
|
|
|
|
(define *ragdoll-edit-info* (the-as ragdoll-edit-info 0))
|
|
|
|
(define *ragdoll-edit-info* (new 'static 'ragdoll-edit-info
|
|
:editing #t
|
|
:current-func #x9
|
|
:single-step #x2
|
|
:collision #t
|
|
:gravity #t
|
|
:skel-visible #x1
|
|
)
|
|
)
|
|
|
|
(deftype ragdoll-joint-setup (structure)
|
|
((joint-index int32)
|
|
(parent-joint int32)
|
|
(joint-type uint64)
|
|
(pre-tform vector :inline)
|
|
(geo-tform vector :inline)
|
|
(axial-slop float)
|
|
(max-angle float)
|
|
(coll-rad float)
|
|
(hit-sound sound-name)
|
|
)
|
|
)
|
|
|
|
|
|
(deftype ragdoll-setup (structure)
|
|
((orient-tform vector :inline)
|
|
(scale vector :inline)
|
|
(bg-collide-with collide-spec)
|
|
(joint-setup (array ragdoll-joint-setup))
|
|
)
|
|
)
|
|
|
|
|
|
(deftype ragdoll-joint (structure)
|
|
((quat quaternion :inline)
|
|
(position vector :inline)
|
|
(velocity vector :inline)
|
|
(bounce vector :inline)
|
|
(old-x vector :inline)
|
|
(pre-tform vector :inline)
|
|
(geo-tform vector :inline)
|
|
(axial-slop float)
|
|
(max-angle degrees)
|
|
(joint-length float)
|
|
(coll-rad float)
|
|
(ragdoll-joint-flags ragdoll-joint-flag)
|
|
(joint-type uint64)
|
|
(joint-index int8)
|
|
(parent-joint int8)
|
|
(parent-index int8)
|
|
(num-children int8)
|
|
(old-param0 basic)
|
|
(hit-sound sound-name)
|
|
(ground-pat pat-surface)
|
|
(user0 int32)
|
|
(original-speed float)
|
|
)
|
|
)
|
|
|
|
|
|
(deftype ragdoll (basic)
|
|
((ragdoll-joints ragdoll-joint 60 :inline)
|
|
(num-joints uint8)
|
|
(mirror matrix :inline)
|
|
(gravity vector :inline)
|
|
(gravity-target vector :inline)
|
|
(orient-tform vector :inline)
|
|
(scale vector :inline)
|
|
(stretch-vel float)
|
|
(stretch-vel-parallel float)
|
|
(compress-vel float)
|
|
(compress-vel-parallel float)
|
|
(momentum float)
|
|
(maximum-stretch float)
|
|
(turn-off-start time-frame)
|
|
(turn-off-duration time-frame)
|
|
(copy-velocity-start time-frame)
|
|
(root-offset vector :inline)
|
|
(rotate-vel quaternion :inline)
|
|
(rotate-adj quaternion :inline)
|
|
(rotate-adj-count int8)
|
|
(ragdoll-flags ragdoll-flag)
|
|
(flex-blend float)
|
|
(stable-joints int8)
|
|
(ragdoll-joint-remap uint8 100)
|
|
(allow-destabilize uint64)
|
|
(bg-collide-with uint32)
|
|
(water-info water-info :inline)
|
|
)
|
|
(:methods
|
|
(ragdoll-method-9 (_type_ matrix process-drawable) none)
|
|
(ragdoll-method-10 (_type_ process-drawable symbol vector symbol) none)
|
|
(turn-off-for-duration! (_type_ time-frame) none)
|
|
(get-parent-joint (_type_ (inline-array ragdoll-joint)) ragdoll-joint)
|
|
(ragdoll-method-13 (_type_ ragdoll-edit-info ragdoll-joint matrix matrix) none)
|
|
(ragdoll-method-14 (_type_ process-drawable ragdoll-joint object matrix) none)
|
|
(ragdoll-method-15 (_type_ process-drawable ragdoll-edit-info) none)
|
|
(ragdoll-setup! (_type_ process-drawable ragdoll-setup) none)
|
|
(ragdoll-method-17 (_type_ process-drawable) none)
|
|
(ragdoll-method-18 (_type_) none)
|
|
(ragdoll-method-19 (_type_ vector int object matrix) none)
|
|
(reset-vec! (_type_ vector) none)
|
|
(ragdoll-method-21 (_type_ vector vector float) vector)
|
|
(get-max-angle-for-joint-idx (_type_ int) degrees)
|
|
(ragdoll-method-23 (_type_ vector vector float symbol) none)
|
|
(ragdoll-method-24 (_type_ vector int) none)
|
|
(enable-ragdoll! (_type_ process-drawable) none)
|
|
)
|
|
)
|
|
|
|
|
|
(deftype ragdoll-proc (process)
|
|
((self ragdoll-proc :override)
|
|
(parent (pointer process-drawable) :override)
|
|
(ragdoll ragdoll)
|
|
(last-attack-id uint32)
|
|
)
|
|
(:state-methods
|
|
idle
|
|
)
|
|
(:methods
|
|
(ragdoll-proc-method-15 (_type_ symbol vector symbol) none)
|
|
(disable-for-duration (_type_ time-frame) none)
|
|
(ragdoll-proc-method-17 (_type_ ragdoll-edit-info) none)
|
|
(ragdoll-proc-method-18 (_type_ ragdoll-edit-info) none)
|
|
(ragdoll-proc-method-19 (_type_) none)
|
|
)
|
|
)
|
|
|
|
|
|
(deftype wings-ragdoll-proc (ragdoll-proc)
|
|
((parent (pointer wings) :override)
|
|
)
|
|
)
|