2022-06-30 01:22:51 -04:00
|
|
|
;;-*-Lisp-*-
|
|
|
|
(in-package goal)
|
|
|
|
|
|
|
|
;; name: target-h.gc
|
|
|
|
;; name in dgo: target-h
|
|
|
|
;; dgos: ENGINE, GAME
|
|
|
|
|
2022-08-24 00:29:51 -04:00
|
|
|
(declare-type sidekick process-drawable)
|
2022-10-14 19:35:57 -04:00
|
|
|
(declare-type gun process-drawable)
|
2022-08-24 00:29:51 -04:00
|
|
|
(declare-type racer-info basic)
|
|
|
|
(declare-type tube-info basic)
|
|
|
|
(declare-type flut-info basic)
|
2022-08-26 14:57:32 -04:00
|
|
|
(declare-type board-info basic)
|
|
|
|
(declare-type pilot-info basic)
|
|
|
|
(declare-type gun-info basic)
|
2022-09-08 18:26:33 -04:00
|
|
|
(declare-type darkjak-info basic)
|
2022-12-22 13:57:57 -05:00
|
|
|
(declare-type mech-info basic)
|
decomp: `tomb-*` files, `target-indax`, `grunt-mech`, `breakable-wall`, `pillar-collapse`, `mechtest-obs`, `ruins-obs` (#2114)
Manual patches in:
- `tomb-boulder`: a few `ppointer->handle`s (I think) were not being
decompiled properly (all used in combination with `clone-anim-once`)
- `ruins-obs`, `pillar-collapse`: `art-joint-anim` casts
- `tomb-beetle`: commented out a call to `shadow-control-method-14` that
was crashing the game when spawning the beetles
- `grunt-mech`: commented out `(.mula.s)` instruction
Notes:
- `enemy-info`'s `idle-anim-script` is most likely a `(pointer
idle-control-frame)`, however, some `nav-enemy-info` labels set it to
`#f` (first encountered in `tomb-beetle`, but also present in `hal`,
`roboguard` and `metalkor-setup`), which crashes the decompiler. This
may become a problem in the future when we eventually get to these
files. For this PR, I made `tomb-beetle` decompile with
`idle-anim-script` set to `#f` and have not noticed any issues/crashes
with that.
- `tomb-boulder` compiles and doesn't crash, but when trying to play the
Daxter chase sequence, the boulder sometimes either spawns at the origin
or spawns in the correct place, but doesn't move.
Co-authored-by: water <awaterford111445@gmail.com>
2023-01-14 13:53:31 -05:00
|
|
|
(declare-type indax-info basic)
|
decomp: `hover-*` files, `wasp`, `crimson-guard-hover`, `flamer`, `target-turret`, `drill-turret`, `jellyfish` (#2198)
Manual patches:
- `drill-turret`: The static data for `*turret-13-path*`,
`*turret-14-path*` and `*turret-15-path*` was decompiled by hand and the
integers in the `set-speed-mult` events have been replaced with boxed
integer arrays that contain only that integer in order to make the
compiler happy. To that effect, the event handler in `target-turret` was
changed to access that array instead of just accessing the int.
- `hover-nav-control`: In `hover-nav-control::10`, `arg2` is usually a
`vector`, but there are some places where it is called with `#t` as
`arg2` and, subsequently, crashes the game because it tries to access
the `quad` of `arg2` if `arg2` is truthy. To mitigate this, the
condition `arg2` has been replaced with `(and (!= arg2 #t) arg2)` (in
this case, it would jump to the `else` that just resets the `dest-vel`
and `transv` `quad`s)
- `drill-baron`: The static data for `*drill-ship-turret-speed-event*`
has been decompiled by hand.
TODOs:
- Jellyfish crash the game
- Destroying the metalhead eggs that are on the breakable wall crashes
the game (already happened with the Peacemaker before)
- Figure out why static data of type `turret-path-event` doesn't
decompile
The docs for all the hover-nav and nav-network code could use some love
in the future, I'm not smart enough to figure out what any of that code
actually means, but it seems to work...
Also threw in the fix for the ▲ that was accidentally left commented
out.
2023-02-09 18:22:56 -05:00
|
|
|
(declare-type turret-info basic)
|
2022-10-14 19:35:57 -04:00
|
|
|
(declare-type sparticle-launcher basic)
|
2022-08-24 00:29:51 -04:00
|
|
|
|
2022-08-28 16:13:42 -04:00
|
|
|
;; NOTE - for level-info, defined in `logic-target`
|
|
|
|
(define-extern start (function symbol continue-point target))
|
|
|
|
|
2022-09-25 12:07:37 -04:00
|
|
|
;; for target
|
|
|
|
(define-extern want-to-darkjak? (function symbol :behavior target))
|
|
|
|
(define-extern can-feet? (function symbol symbol :behavior target))
|
|
|
|
(define-extern slide-down-test (function none :behavior target))
|
|
|
|
(define-extern target-standard-event-handler (function process int symbol event-message-block object :behavior target))
|
|
|
|
(define-extern target-state-hook-exit (function none :behavior target))
|
|
|
|
(define-extern move-legs? (function symbol :behavior target))
|
|
|
|
(define-extern can-duck? (function symbol :behavior target))
|
|
|
|
(define-extern can-jump? (function symbol symbol :behavior target))
|
|
|
|
(define-extern target-jump-go (function none :behavior target))
|
|
|
|
(define-extern can-hands? (function symbol symbol :behavior target))
|
|
|
|
(define-extern target-stance-anim (function none :behavior target))
|
|
|
|
(define-extern target-effect-exit (function none :behavior target))
|
|
|
|
(define-extern can-roll? (function symbol :behavior target))
|
|
|
|
(define-extern target-walk-event-handler (function process int symbol event-message-block object :behavior target))
|
|
|
|
(define-extern target-walk-anim (function int none :behavior target))
|
|
|
|
(define-extern set-forward-vel (function float vector :behavior target))
|
|
|
|
(define-extern ja-done? (function int symbol :behavior process-drawable))
|
|
|
|
(define-extern delete-back-vel (function none :behavior target))
|
|
|
|
(define-extern target-top-anim-base-mode (function int none :behavior target))
|
|
|
|
(define-extern target-jump-event-handler (function process int symbol event-message-block object :behavior target))
|
|
|
|
(define-extern ja-group-size (function int :behavior process-drawable))
|
|
|
|
(define-extern target-falling-anim (function int time-frame symbol :behavior target))
|
|
|
|
(define-extern *uppercut-jump-mods* surface)
|
|
|
|
(define-extern ja-eval (function int :behavior process-drawable))
|
|
|
|
(define-extern target-land-effect (function none :behavior target))
|
2022-11-12 11:19:04 -05:00
|
|
|
(define-extern target-hit-ground-anim (function symbol symbol none :behavior target))
|
2022-09-25 12:07:37 -04:00
|
|
|
(define-extern are-still? (function symbol :behavior target))
|
|
|
|
(define-extern *attack-end-mods* surface)
|
|
|
|
(define-extern target-dangerous-event-handler (function process int symbol event-message-block object :behavior target))
|
|
|
|
(define-extern target-start-attack (function none :behavior target))
|
2022-10-14 19:35:57 -04:00
|
|
|
(define-extern target-danger-set! (function symbol symbol none :behavior target))
|
2022-09-25 12:07:37 -04:00
|
|
|
(define-extern smack-surface? (function symbol symbol :behavior target))
|
|
|
|
(define-extern target-height-above-ground (function float :behavior target))
|
|
|
|
(define-extern target-align-vel-z-adjust (function float float :behavior target))
|
2022-11-12 17:56:07 -05:00
|
|
|
(define-extern part-tracker-init (function sparticle-launch-group time-frame (function part-tracker none) (pointer process-drawable) process matrix none :behavior part-tracker))
|
2022-09-25 12:07:37 -04:00
|
|
|
(define-extern target-bonk-event-handler (function process int symbol event-message-block object :behavior target))
|
|
|
|
(define-extern target-attack-air-anim (function none :behavior target))
|
|
|
|
(define-extern *uppercut-mods* surface)
|
|
|
|
(define-extern touch-tracker-init (function vector float time-frame none :behavior touch-tracker))
|
|
|
|
|
2022-10-14 19:35:57 -04:00
|
|
|
;; target-util
|
|
|
|
(define-extern target-move-dist (function time-frame float :behavior target))
|
|
|
|
(define-extern get-intersect-point (function vector touching-prims-entry collide-shape touching-shapes-entry vector))
|
|
|
|
|
|
|
|
;; target-swim
|
|
|
|
|
|
|
|
;; target-darkjak
|
|
|
|
(define-extern set-darkjak-texture-morph! (function float none))
|
|
|
|
(define-extern process-drawable-random-point! (function process-drawable vector vector))
|
|
|
|
(define-extern target-falling-anim-trans (function none :behavior target))
|
|
|
|
(define-extern ja-blend-eval (function int :behavior process-drawable))
|
|
|
|
|
2022-10-29 15:22:57 -04:00
|
|
|
;; target-gun - TODO move to `gun-h` perhaps?
|
2022-10-14 19:35:57 -04:00
|
|
|
(define-extern target-gun-end-mode (function symbol symbol :behavior target))
|
|
|
|
(define-extern target-gun-marking-menu (function target none))
|
|
|
|
(define-extern gun-init (function none :behavior gun))
|
2022-10-29 15:22:57 -04:00
|
|
|
(declare-type gun-red-shot process-drawable)
|
2022-10-14 19:35:57 -04:00
|
|
|
(define-extern target-gun-type-set! (function int none :behavior target))
|
2022-10-29 15:22:57 -04:00
|
|
|
(define-extern target-gun-fire-blue (function (pointer process) :behavior target))
|
|
|
|
(define-extern target-gun-fire-yellow (function (pointer process) :behavior target))
|
|
|
|
(define-extern target-gun-fire-red (function (pointer gun-red-shot) :behavior target))
|
|
|
|
(define-extern target-gun-fire-dark (function (pointer process) :behavior target))
|
|
|
|
|
|
|
|
(define-extern target-pos (function int vector))
|
|
|
|
(define-extern stop (function symbol int))
|
2022-10-14 19:35:57 -04:00
|
|
|
|
2022-11-12 11:19:04 -05:00
|
|
|
;; target-anim
|
|
|
|
|
2022-11-13 11:38:25 -05:00
|
|
|
;; target2
|
|
|
|
(define-extern target-gun-check (function none :behavior target))
|
|
|
|
(define-extern target-gun-fire (function pickup-type none :behavior target))
|
|
|
|
(define-extern target-darkjak-end-mode (function none :behavior target))
|
|
|
|
(define-extern target-gun-init (function int none :behavior target))
|
|
|
|
(define-extern *hit-ground-hard-mods* surface)
|
|
|
|
(define-extern *float-mods* surface)
|
|
|
|
|
2022-11-30 22:36:09 -05:00
|
|
|
(define-extern target-send-attack (function process symbol touching-shapes-entry int int penetrate symbol :behavior target))
|
2022-11-20 09:21:25 -05:00
|
|
|
(define-extern target-powerup-effect (function symbol none :behavior target))
|
|
|
|
|
|
|
|
|
2023-08-22 11:39:52 -04:00
|
|
|
(defenum darkjak-stage
|
|
|
|
:bitfield #t
|
|
|
|
:type uint32
|
|
|
|
(force-on)
|
|
|
|
(active)
|
|
|
|
(bomb0)
|
|
|
|
(bomb1)
|
|
|
|
(invinc)
|
|
|
|
(giant)
|
|
|
|
(no-anim)
|
|
|
|
(disable-force-on)
|
|
|
|
)
|
|
|
|
|
2022-10-29 18:27:31 -04:00
|
|
|
;; og:ignore-form:(new 'static 'boxed-array
|
|
|
|
|
2022-08-05 16:12:54 -04:00
|
|
|
;; DECOMP BEGINS
|
|
|
|
|
2022-08-24 00:29:51 -04:00
|
|
|
(deftype target (process-focusable)
|
2023-07-04 17:23:24 -04:00
|
|
|
((self target :override)
|
|
|
|
(fact fact-info-target :override)
|
2022-10-29 18:27:31 -04:00
|
|
|
(control control-info :offset 128)
|
2022-10-14 19:35:57 -04:00
|
|
|
(skel2 joint-control :offset-assert 204)
|
2022-09-01 18:25:42 -04:00
|
|
|
(shadow-backup shadow-geo :offset-assert 208)
|
2022-08-24 00:29:51 -04:00
|
|
|
(target-flags uint32 :offset 188)
|
|
|
|
(game game-info :offset-assert 212)
|
|
|
|
(neck joint-mod :offset-assert 216)
|
2022-09-08 18:26:33 -04:00
|
|
|
(head joint-mod :offset-assert 220)
|
|
|
|
(upper-body joint-mod :offset-assert 224)
|
|
|
|
(horns joint-mod :offset-assert 228)
|
|
|
|
(hair joint-mod 2 :offset-assert 232)
|
2022-08-24 00:29:51 -04:00
|
|
|
(darkjak-interp float :offset-assert 240)
|
|
|
|
(darkjak-giant-interp float :offset-assert 244)
|
2022-09-08 18:26:33 -04:00
|
|
|
(arm-ik joint-mod-ik 2 :offset-assert 248)
|
|
|
|
(leg-ik joint-mod-ik 2 :offset-assert 256)
|
|
|
|
(foot joint-mod 2 :offset-assert 264)
|
2023-01-07 10:32:03 -05:00
|
|
|
(mech-ik joint-mod-ik 2 :offset-assert 272)
|
decomp: `tomb-*` files, `target-indax`, `grunt-mech`, `breakable-wall`, `pillar-collapse`, `mechtest-obs`, `ruins-obs` (#2114)
Manual patches in:
- `tomb-boulder`: a few `ppointer->handle`s (I think) were not being
decompiled properly (all used in combination with `clone-anim-once`)
- `ruins-obs`, `pillar-collapse`: `art-joint-anim` casts
- `tomb-beetle`: commented out a call to `shadow-control-method-14` that
was crashing the game when spawning the beetles
- `grunt-mech`: commented out `(.mula.s)` instruction
Notes:
- `enemy-info`'s `idle-anim-script` is most likely a `(pointer
idle-control-frame)`, however, some `nav-enemy-info` labels set it to
`#f` (first encountered in `tomb-beetle`, but also present in `hal`,
`roboguard` and `metalkor-setup`), which crashes the decompiler. This
may become a problem in the future when we eventually get to these
files. For this PR, I made `tomb-beetle` decompile with
`idle-anim-script` set to `#f` and have not noticed any issues/crashes
with that.
- `tomb-boulder` compiles and doesn't crash, but when trying to play the
Daxter chase sequence, the boulder sometimes either spawns at the origin
or spawns in the correct place, but doesn't move.
Co-authored-by: water <awaterford111445@gmail.com>
2023-01-14 13:53:31 -05:00
|
|
|
(init-time time-frame :offset 272)
|
2022-08-24 00:29:51 -04:00
|
|
|
(teleport-time time-frame :offset-assert 280)
|
|
|
|
(state-hook-time time-frame :offset-assert 288)
|
|
|
|
(state-hook (function none :behavior target) :offset-assert 296)
|
|
|
|
(cam-user-mode symbol :offset-assert 300)
|
|
|
|
(sidekick (pointer sidekick) :offset-assert 304)
|
|
|
|
(manipy (pointer manipy) :offset-assert 308)
|
2022-09-08 18:26:33 -04:00
|
|
|
(mirror (pointer process-drawable) :offset-assert 312)
|
2022-08-24 00:29:51 -04:00
|
|
|
(attack-info attack-info :inline :offset-assert 320)
|
|
|
|
(attack-info-rec attack-info :inline :offset-assert 480)
|
|
|
|
(attack-info-old attack-info 8 :inline :offset-assert 640)
|
|
|
|
(anim-seed uint64 :offset-assert 1920)
|
|
|
|
(alt-cam-pos vector :inline :offset-assert 1936)
|
|
|
|
(current-level level :offset-assert 1952)
|
|
|
|
(saved-pos transformq :inline :offset-assert 1968)
|
|
|
|
(saved-owner uint64 :offset-assert 2016)
|
|
|
|
(alt-neck-pos vector :inline :offset-assert 2032)
|
2022-09-08 18:26:33 -04:00
|
|
|
(focus-search (array collide-shape) :offset-assert 2048)
|
2022-08-24 00:29:51 -04:00
|
|
|
(excitement float :offset-assert 2052)
|
|
|
|
(shock-effect-time time-frame :offset-assert 2056)
|
2022-09-08 18:26:33 -04:00
|
|
|
(beard? symbol :offset-assert 2064)
|
2022-10-14 19:35:57 -04:00
|
|
|
(spool-anim spool-anim :offset-assert 2068)
|
2022-08-24 00:29:51 -04:00
|
|
|
(ambient-time time-frame :offset-assert 2072)
|
2022-09-08 18:26:33 -04:00
|
|
|
(fp-hud handle :offset-assert 2080)
|
2022-08-24 00:29:51 -04:00
|
|
|
(no-load-wait uint64 :offset-assert 2088)
|
|
|
|
(no-look-around-wait uint64 :offset-assert 2096)
|
2022-09-08 18:26:33 -04:00
|
|
|
(burn-proc handle :offset-assert 2104)
|
|
|
|
(pre-joint-hook (function none :behavior target) :offset-assert 2112)
|
2022-09-25 12:07:37 -04:00
|
|
|
(notify handle :offset-assert 2120)
|
2022-08-24 00:29:51 -04:00
|
|
|
(mode-cache basic :offset-assert 2128)
|
2022-10-29 18:27:31 -04:00
|
|
|
(mode-param1 handle :offset-assert 2136)
|
2022-08-24 00:29:51 -04:00
|
|
|
(mode-param2 uint64 :offset-assert 2144)
|
|
|
|
(mode-param3 uint64 :offset-assert 2152)
|
2022-09-08 18:26:33 -04:00
|
|
|
(tobot-state state :offset-assert 2160)
|
|
|
|
(tobot? symbol :offset-assert 2164)
|
2022-08-24 00:29:51 -04:00
|
|
|
(tobot-recorder basic :offset-assert 2168)
|
|
|
|
(color-effect basic :offset-assert 2172)
|
|
|
|
(color-effect-start-time time-frame :offset-assert 2176)
|
|
|
|
(color-effect-duration uint64 :offset-assert 2184)
|
|
|
|
(racer racer-info :offset-assert 2192)
|
|
|
|
(tube tube-info :offset-assert 2196)
|
|
|
|
(flut flut-info :offset-assert 2200)
|
2022-08-26 14:57:32 -04:00
|
|
|
(board board-info :offset-assert 2204)
|
|
|
|
(pilot pilot-info :offset-assert 2208)
|
|
|
|
(gun gun-info :offset-assert 2212)
|
2022-12-22 13:57:57 -05:00
|
|
|
(mech mech-info :offset-assert 2216)
|
decomp: `hover-*` files, `wasp`, `crimson-guard-hover`, `flamer`, `target-turret`, `drill-turret`, `jellyfish` (#2198)
Manual patches:
- `drill-turret`: The static data for `*turret-13-path*`,
`*turret-14-path*` and `*turret-15-path*` was decompiled by hand and the
integers in the `set-speed-mult` events have been replaced with boxed
integer arrays that contain only that integer in order to make the
compiler happy. To that effect, the event handler in `target-turret` was
changed to access that array instead of just accessing the int.
- `hover-nav-control`: In `hover-nav-control::10`, `arg2` is usually a
`vector`, but there are some places where it is called with `#t` as
`arg2` and, subsequently, crashes the game because it tries to access
the `quad` of `arg2` if `arg2` is truthy. To mitigate this, the
condition `arg2` has been replaced with `(and (!= arg2 #t) arg2)` (in
this case, it would jump to the `else` that just resets the `dest-vel`
and `transv` `quad`s)
- `drill-baron`: The static data for `*drill-ship-turret-speed-event*`
has been decompiled by hand.
TODOs:
- Jellyfish crash the game
- Destroying the metalhead eggs that are on the breakable wall crashes
the game (already happened with the Peacemaker before)
- Figure out why static data of type `turret-path-event` doesn't
decompile
The docs for all the hover-nav and nav-network code could use some love
in the future, I'm not smart enough to figure out what any of that code
actually means, but it seems to work...
Also threw in the fix for the ▲ that was accidentally left commented
out.
2023-02-09 18:22:56 -05:00
|
|
|
(turret turret-info :offset-assert 2220)
|
2022-09-08 18:26:33 -04:00
|
|
|
(darkjak darkjak-info :offset-assert 2224)
|
decomp: `tomb-*` files, `target-indax`, `grunt-mech`, `breakable-wall`, `pillar-collapse`, `mechtest-obs`, `ruins-obs` (#2114)
Manual patches in:
- `tomb-boulder`: a few `ppointer->handle`s (I think) were not being
decompiled properly (all used in combination with `clone-anim-once`)
- `ruins-obs`, `pillar-collapse`: `art-joint-anim` casts
- `tomb-beetle`: commented out a call to `shadow-control-method-14` that
was crashing the game when spawning the beetles
- `grunt-mech`: commented out `(.mula.s)` instruction
Notes:
- `enemy-info`'s `idle-anim-script` is most likely a `(pointer
idle-control-frame)`, however, some `nav-enemy-info` labels set it to
`#f` (first encountered in `tomb-beetle`, but also present in `hal`,
`roboguard` and `metalkor-setup`), which crashes the decompiler. This
may become a problem in the future when we eventually get to these
files. For this PR, I made `tomb-beetle` decompile with
`idle-anim-script` set to `#f` and have not noticed any issues/crashes
with that.
- `tomb-boulder` compiles and doesn't crash, but when trying to play the
Daxter chase sequence, the boulder sometimes either spawns at the origin
or spawns in the correct place, but doesn't move.
Co-authored-by: water <awaterford111445@gmail.com>
2023-01-14 13:53:31 -05:00
|
|
|
(indax indax-info :offset-assert 2228)
|
2022-08-24 00:29:51 -04:00
|
|
|
)
|
|
|
|
:heap-base #x840
|
|
|
|
:method-count-assert 29
|
|
|
|
:size-assert #x8b8
|
|
|
|
:flag-assert #x1d084008b8
|
|
|
|
(:methods
|
2022-10-30 15:54:10 -04:00
|
|
|
(do-edge-grabs (_type_ collide-cache collide-edge-spec) none 27)
|
2022-09-08 18:26:33 -04:00
|
|
|
(init-target (_type_ continue-point symbol) none :behavior target 28)
|
2022-08-24 00:29:51 -04:00
|
|
|
)
|
2022-10-29 18:27:31 -04:00
|
|
|
(:states
|
2023-01-21 20:45:45 -05:00
|
|
|
target-attack
|
|
|
|
(target-attack-air symbol)
|
|
|
|
(target-attack-uppercut float float)
|
|
|
|
(target-attack-uppercut-jump float float)
|
|
|
|
(target-board-clone-anim handle)
|
|
|
|
target-board-duck-stance
|
|
|
|
target-board-falling
|
|
|
|
(target-board-flip float float symbol)
|
|
|
|
(target-board-get-off object symbol)
|
|
|
|
target-board-get-on
|
|
|
|
(target-board-grab symbol)
|
|
|
|
(target-board-grenade handle)
|
|
|
|
target-board-halfpipe
|
|
|
|
(target-board-hit vector attack-info)
|
|
|
|
target-board-hit-ground
|
|
|
|
(target-board-hold float float symbol)
|
|
|
|
(target-board-jump meters meters symbol)
|
|
|
|
target-board-jump-kick
|
|
|
|
(target-board-pegasus handle)
|
2023-09-22 05:54:49 -04:00
|
|
|
(target-board-ride-edge symbol)
|
2023-01-21 20:45:45 -05:00
|
|
|
target-board-stance
|
|
|
|
(target-board-start object)
|
|
|
|
(target-board-trickx float float symbol)
|
|
|
|
(target-board-turn-to vector time-frame)
|
|
|
|
(target-board-wall-kick vector float)
|
2022-10-29 18:27:31 -04:00
|
|
|
target-carry-drop
|
|
|
|
target-carry-falling
|
|
|
|
(target-carry-hit-ground symbol)
|
2023-06-14 17:04:00 -04:00
|
|
|
(target-carry-jump float float symbol)
|
2023-01-21 20:45:45 -05:00
|
|
|
target-carry-pickup
|
2022-10-29 18:27:31 -04:00
|
|
|
target-carry-stance
|
|
|
|
target-carry-throw
|
|
|
|
target-carry-walk
|
2023-01-21 20:45:45 -05:00
|
|
|
(target-clone-anim handle)
|
|
|
|
(target-continue continue-point)
|
|
|
|
target-darkjak-bomb0
|
|
|
|
(target-darkjak-bomb1 float float)
|
|
|
|
target-darkjak-get-off
|
2023-08-22 11:39:52 -04:00
|
|
|
(target-darkjak-get-on darkjak-stage)
|
2023-01-21 20:45:45 -05:00
|
|
|
target-darkjak-giant
|
|
|
|
target-darkjak-running-attack
|
|
|
|
(target-death symbol)
|
|
|
|
(target-demo symbol)
|
|
|
|
(target-double-jump float float)
|
|
|
|
(target-duck-high-jump float float symbol)
|
|
|
|
(target-duck-high-jump-jump float float symbol)
|
|
|
|
(target-duck-stance symbol)
|
|
|
|
(target-duck-walk symbol)
|
|
|
|
target-edge-grab
|
|
|
|
(target-edge-grab-jump float float)
|
|
|
|
target-edge-grab-off
|
|
|
|
(target-falling symbol)
|
|
|
|
target-float
|
|
|
|
(target-flop float float float)
|
|
|
|
(target-flop-hit-ground symbol)
|
2022-12-22 13:57:57 -05:00
|
|
|
(target-flut-start handle)
|
2023-01-21 20:45:45 -05:00
|
|
|
(target-grab symbol)
|
|
|
|
target-gun-stance
|
|
|
|
target-gun-walk
|
|
|
|
target-hide
|
|
|
|
(target-high-jump float float object)
|
|
|
|
(target-hit symbol attack-info)
|
|
|
|
(target-hit-ground symbol)
|
|
|
|
(target-hit-ground-hard float)
|
|
|
|
target-ice-stance
|
|
|
|
target-ice-walk
|
|
|
|
target-indax-attack
|
|
|
|
(target-indax-attack-air symbol)
|
|
|
|
(target-indax-death symbol)
|
|
|
|
(target-indax-double-jump float float)
|
|
|
|
(target-indax-falling symbol)
|
|
|
|
(target-indax-hit symbol attack-info)
|
|
|
|
(target-indax-hit-ground symbol)
|
|
|
|
(target-indax-jump float float surface)
|
|
|
|
target-indax-running-attack
|
|
|
|
target-indax-stance
|
2023-06-14 17:04:00 -04:00
|
|
|
(target-indax-start handle)
|
2023-01-21 20:45:45 -05:00
|
|
|
target-indax-trip
|
|
|
|
target-indax-walk
|
|
|
|
(target-jump float float surface)
|
|
|
|
(target-jump-forward float float)
|
|
|
|
(target-launch float symbol vector int)
|
|
|
|
target-load-wait
|
|
|
|
target-look-around
|
|
|
|
target-mech-carry-drag
|
|
|
|
target-mech-carry-drop
|
|
|
|
target-mech-carry-falling
|
|
|
|
(target-mech-carry-hit-ground symbol)
|
2023-06-14 17:04:00 -04:00
|
|
|
(target-mech-carry-jump float float symbol)
|
2023-01-21 20:45:45 -05:00
|
|
|
target-mech-carry-pickup
|
|
|
|
target-mech-carry-stance
|
|
|
|
target-mech-carry-throw
|
|
|
|
target-mech-carry-walk
|
|
|
|
(target-mech-clone-anim handle)
|
|
|
|
(target-mech-death symbol)
|
|
|
|
(target-mech-falling symbol)
|
|
|
|
target-mech-get-off
|
|
|
|
(target-mech-get-on handle)
|
|
|
|
target-mech-grab
|
|
|
|
(target-mech-hit symbol attack-info)
|
|
|
|
(target-mech-hit-ground symbol)
|
|
|
|
(target-mech-jump float float surface)
|
|
|
|
target-mech-punch
|
|
|
|
target-mech-stance
|
2023-01-28 16:02:58 -05:00
|
|
|
(target-mech-start handle float symbol)
|
2023-01-21 20:45:45 -05:00
|
|
|
target-mech-walk
|
2023-02-05 18:16:58 -05:00
|
|
|
(target-pilot-clone-anim handle)
|
|
|
|
(target-pilot-death symbol)
|
|
|
|
(target-pilot-edge-grab pilot-edge-grab-info)
|
|
|
|
target-pilot-get-off
|
|
|
|
target-pilot-get-on
|
|
|
|
target-pilot-grab
|
|
|
|
(target-pilot-hit symbol attack-info)
|
|
|
|
target-pilot-impact
|
|
|
|
target-pilot-stance
|
|
|
|
(target-pilot-start handle symbol symbol)
|
2023-01-21 20:45:45 -05:00
|
|
|
(target-play-anim string handle)
|
|
|
|
(target-pole-cycle handle)
|
|
|
|
(target-pole-flip-forward float float float)
|
|
|
|
(target-pole-flip-forward-jump float float)
|
|
|
|
(target-pole-flip-up object object float)
|
|
|
|
(target-pole-flip-up-jump float float)
|
2022-11-20 09:21:25 -05:00
|
|
|
(target-racing-start handle)
|
2023-01-21 20:45:45 -05:00
|
|
|
target-roll
|
|
|
|
(target-roll-flip float float)
|
|
|
|
target-running-attack
|
|
|
|
target-slide-down
|
|
|
|
target-slide-down-to-ground
|
|
|
|
target-stance
|
|
|
|
target-stance-ambient
|
|
|
|
target-stance-look-around
|
|
|
|
target-startup
|
|
|
|
target-swim-down
|
|
|
|
(target-swim-jump float float)
|
|
|
|
(target-swim-jump-jump float float surface)
|
|
|
|
target-swim-stance
|
|
|
|
target-swim-up
|
|
|
|
target-swim-walk
|
|
|
|
(target-title symbol)
|
|
|
|
target-tube
|
|
|
|
(target-tube-death symbol)
|
|
|
|
(target-tube-hit symbol attack-info)
|
|
|
|
(target-tube-jump float float)
|
2022-11-20 09:21:25 -05:00
|
|
|
(target-tube-start handle)
|
2023-01-21 20:45:45 -05:00
|
|
|
target-turn-around
|
decomp: `hover-*` files, `wasp`, `crimson-guard-hover`, `flamer`, `target-turret`, `drill-turret`, `jellyfish` (#2198)
Manual patches:
- `drill-turret`: The static data for `*turret-13-path*`,
`*turret-14-path*` and `*turret-15-path*` was decompiled by hand and the
integers in the `set-speed-mult` events have been replaced with boxed
integer arrays that contain only that integer in order to make the
compiler happy. To that effect, the event handler in `target-turret` was
changed to access that array instead of just accessing the int.
- `hover-nav-control`: In `hover-nav-control::10`, `arg2` is usually a
`vector`, but there are some places where it is called with `#t` as
`arg2` and, subsequently, crashes the game because it tries to access
the `quad` of `arg2` if `arg2` is truthy. To mitigate this, the
condition `arg2` has been replaced with `(and (!= arg2 #t) arg2)` (in
this case, it would jump to the `else` that just resets the `dest-vel`
and `transv` `quad`s)
- `drill-baron`: The static data for `*drill-ship-turret-speed-event*`
has been decompiled by hand.
TODOs:
- Jellyfish crash the game
- Destroying the metalhead eggs that are on the breakable wall crashes
the game (already happened with the Peacemaker before)
- Figure out why static data of type `turret-path-event` doesn't
decompile
The docs for all the hover-nav and nav-network code could use some love
in the future, I'm not smart enough to figure out what any of that code
actually means, but it seems to work...
Also threw in the fix for the ▲ that was accidentally left commented
out.
2023-02-09 18:22:56 -05:00
|
|
|
target-turret-get-off
|
2023-01-21 20:45:45 -05:00
|
|
|
(target-turret-get-on handle)
|
decomp: `hover-*` files, `wasp`, `crimson-guard-hover`, `flamer`, `target-turret`, `drill-turret`, `jellyfish` (#2198)
Manual patches:
- `drill-turret`: The static data for `*turret-13-path*`,
`*turret-14-path*` and `*turret-15-path*` was decompiled by hand and the
integers in the `set-speed-mult` events have been replaced with boxed
integer arrays that contain only that integer in order to make the
compiler happy. To that effect, the event handler in `target-turret` was
changed to access that array instead of just accessing the int.
- `hover-nav-control`: In `hover-nav-control::10`, `arg2` is usually a
`vector`, but there are some places where it is called with `#t` as
`arg2` and, subsequently, crashes the game because it tries to access
the `quad` of `arg2` if `arg2` is truthy. To mitigate this, the
condition `arg2` has been replaced with `(and (!= arg2 #t) arg2)` (in
this case, it would jump to the `else` that just resets the `dest-vel`
and `transv` `quad`s)
- `drill-baron`: The static data for `*drill-ship-turret-speed-event*`
has been decompiled by hand.
TODOs:
- Jellyfish crash the game
- Destroying the metalhead eggs that are on the breakable wall crashes
the game (already happened with the Peacemaker before)
- Figure out why static data of type `turret-path-event` doesn't
decompile
The docs for all the hover-nav and nav-network code could use some love
in the future, I'm not smart enough to figure out what any of that code
actually means, but it seems to work...
Also threw in the fix for the ▲ that was accidentally left commented
out.
2023-02-09 18:22:56 -05:00
|
|
|
(target-turret-stance handle)
|
2023-01-21 20:45:45 -05:00
|
|
|
target-wade-stance
|
|
|
|
target-wade-walk
|
|
|
|
target-walk
|
2022-12-22 13:57:57 -05:00
|
|
|
(target-warp-in vector vector target)
|
|
|
|
(target-warp-out vector vector target)
|
2023-01-21 20:45:45 -05:00
|
|
|
target-yellow-jump-blast
|
2022-10-29 18:27:31 -04:00
|
|
|
)
|
2022-08-24 00:29:51 -04:00
|
|
|
)
|
|
|
|
|
2022-10-29 15:22:57 -04:00
|
|
|
|
2022-08-24 00:29:51 -04:00
|
|
|
(define-perm *target* target #f)
|
|
|
|
|
|
|
|
(deftype sidekick (process-drawable)
|
2023-07-04 17:23:24 -04:00
|
|
|
((parent (pointer target) :override)
|
2022-10-29 18:27:31 -04:00
|
|
|
(control control-info :offset 128)
|
|
|
|
(anim-seed uint64 :offset 208)
|
|
|
|
(shadow-in-movie? symbol :offset-assert 216)
|
|
|
|
(special-anim-time time-frame :offset-assert 224)
|
|
|
|
(special-anim-interp float :offset-assert 232)
|
|
|
|
(special-anim-frame float :offset-assert 236)
|
|
|
|
(offset transformq :inline :offset-assert 240)
|
|
|
|
(mirror (pointer process-drawable) :offset-assert 288)
|
2022-08-24 00:29:51 -04:00
|
|
|
)
|
|
|
|
:heap-base #xb0
|
|
|
|
:method-count-assert 20
|
|
|
|
:size-assert #x124
|
|
|
|
:flag-assert #x1400b00124
|
2022-10-29 18:27:31 -04:00
|
|
|
(:states
|
|
|
|
sidekick-clone
|
|
|
|
)
|
2022-08-24 00:29:51 -04:00
|
|
|
)
|
|
|
|
|
2022-10-29 15:22:57 -04:00
|
|
|
|
2022-08-24 00:29:51 -04:00
|
|
|
(define-perm *sidekick* sidekick #f)
|