mirror of
https://github.com/open-goal/jak-project
synced 2026-08-10 11:14:50 -04:00
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.
This commit is contained in:
+375
-361
File diff suppressed because it is too large
Load Diff
@@ -1175,5 +1175,18 @@
|
||||
"guard": [
|
||||
[19, "(function collide-shape-prim none)"],
|
||||
[39, "(function crimson-guard collide-shape-moving vector symbol)"]
|
||||
],
|
||||
"drill-turret": [
|
||||
[9, "(function object)"],
|
||||
[10, "(function object)"],
|
||||
[11, "(function turret object)"],
|
||||
[12, "(function symbol)"]
|
||||
],
|
||||
"wasp": [[9, "(function wasp cspace float float vector vector int none)"]],
|
||||
"crimson-guard-hover": [
|
||||
[
|
||||
13,
|
||||
"(function crimson-guard-hover cspace float float vector vector int none)"
|
||||
]
|
||||
]
|
||||
}
|
||||
|
||||
@@ -36,7 +36,6 @@
|
||||
"asm_functions_by_name": [
|
||||
// checking boxed type is different now - these make the cfg stuff sad
|
||||
"name=",
|
||||
"(method 77 flamer)",
|
||||
"(method 77 grenadier)",
|
||||
// until loop without nop:
|
||||
"target-history-print",
|
||||
@@ -46,8 +45,6 @@
|
||||
"anim-tester-get-playing-item",
|
||||
"start-pilot-recorder",
|
||||
"(anon-function 10 pilot-recorder)",
|
||||
"(method 0 hover-nav-control)",
|
||||
"(method 24 nav-network)",
|
||||
"(anon-function 10 sig-recorder)",
|
||||
// actual asm
|
||||
"quad-copy!",
|
||||
|
||||
@@ -1560,5 +1560,49 @@
|
||||
"metalhead-flitter": [
|
||||
["L161", "vector"],
|
||||
["L160", "vector"]
|
||||
]
|
||||
],
|
||||
"target-turret": [
|
||||
["L408", "attack-info"],
|
||||
["L391", "vector"],
|
||||
["L395", "(pointer int32)", 4],
|
||||
["L399", "attack-info"],
|
||||
["L401", "attack-info"]
|
||||
],
|
||||
"wasp": [
|
||||
["L160", "vector"],
|
||||
["L159", "vector"],
|
||||
["L158", "vector"]
|
||||
],
|
||||
"crimson-guard-hover": [
|
||||
["L178", "vector"],
|
||||
["L177", "vector"],
|
||||
["L176", "vector"]
|
||||
],
|
||||
"flamer": [
|
||||
["L187", "vector"],
|
||||
["L186", "vector"],
|
||||
["L185", "vector"],
|
||||
["L192", "(pointer int32)", 4],
|
||||
["L193", "(pointer uint64)", 3]
|
||||
],
|
||||
"jellyfish": [
|
||||
["L187", "attack-info"],
|
||||
["L186", "attack-info"],
|
||||
["L178", "jellyfish-joint-mod-tentacle-info"],
|
||||
["L177", "jellyfish-joint-mod-tentacle-info"],
|
||||
["L176", "jellyfish-joint-mod-tentacle-info"],
|
||||
["L175", "jellyfish-joint-mod-tentacle-info"],
|
||||
["L174", "jellyfish-joint-mod-tentacle-info"],
|
||||
["L181", "vector"],
|
||||
["L180", "vector"],
|
||||
["L179", "vector"],
|
||||
["L173", "vector"],
|
||||
["L172", "vector"]
|
||||
],
|
||||
"drill-turret": [
|
||||
["L172", "turret-path", true],
|
||||
["L138", "turret-path", true],
|
||||
["L119", "turret-path", true]
|
||||
],
|
||||
"drill-baron": [["L183", "turret-path-event", true]]
|
||||
}
|
||||
|
||||
@@ -2013,5 +2013,74 @@
|
||||
[128, "vector"],
|
||||
[144, "vector"],
|
||||
[176, "vector"]
|
||||
],
|
||||
"(code die base-turret)": [[192, "vector"]],
|
||||
"(method 47 base-turret)": [
|
||||
[16, ["array", "collide-shape", 32]],
|
||||
[144, "vector"],
|
||||
[160, "vector"],
|
||||
[176, "vector"],
|
||||
[192, "vector"]
|
||||
],
|
||||
"(method 155 hover-enemy)": [[16, "vector"]],
|
||||
"(method 15 hover-nav-control)": [[16, "vector"]],
|
||||
"(method 13 hover-nav-control)": [[64, "vector"]],
|
||||
"(method 25 hover-nav-control)": [[16, "hover-nav-path-segment"]],
|
||||
"(method 16 hover-nav-control)": [[16, "vector"]],
|
||||
"(method 11 hover-nav-control)": [
|
||||
[128, "vector"],
|
||||
[144, "vector"],
|
||||
[160, "vector"],
|
||||
[176, "vector"]
|
||||
],
|
||||
"(method 26 nav-network)": [[16, "vector"]],
|
||||
"hover-enemy-hostile-post": [[16, "event-message-block"]],
|
||||
"(method 148 hover-enemy)": [
|
||||
[16, "vector"],
|
||||
[32, "vector"]
|
||||
],
|
||||
"(method 18 hover-enemy-manager)": [[16, "transformq"]],
|
||||
"(anon-function 9 wasp)": [[112, "quaternion"]],
|
||||
"(method 107 wasp)": [[48, "vector"]],
|
||||
"(event attack wasp)": [[16, "projectile-init-by-other-params"]],
|
||||
"(anon-function 13 crimson-guard-hover)": [[112, "quaternion"]],
|
||||
"(event attack crimson-guard-hover)": [
|
||||
[16, "projectile-init-by-other-params"]
|
||||
],
|
||||
"(event ambush-attack crimson-guard-hover)": [
|
||||
[16, "projectile-init-by-other-params"]
|
||||
],
|
||||
"(method 187 flamer)": [[64, "vector"]],
|
||||
"(method 191 flamer)": [
|
||||
[16, "vector"],
|
||||
[32, "vector"]
|
||||
],
|
||||
"(method 163 jellyfish)": [[16, "vector"]],
|
||||
"(enter active jellyfish)": [
|
||||
[16, "vector"],
|
||||
[32, "vector"]
|
||||
],
|
||||
"(trans active jellyfish)": [
|
||||
[16, "vector"],
|
||||
[32, "vector"],
|
||||
[48, "vector"]
|
||||
],
|
||||
"(method 12 jellyfish-chain-physics)": [
|
||||
[16, "collide-query"],
|
||||
[560, "bounding-box"],
|
||||
[592, "sphere"]
|
||||
],
|
||||
"(trans stare jellyfish)": [[16, "vector"]],
|
||||
"jellyfish-joint-mod-tentacle": [
|
||||
[32, "quaternion"],
|
||||
[16, "quaternion"]
|
||||
],
|
||||
"(method 164 jellyfish)": [
|
||||
[16, "vector"],
|
||||
[32, "vector"]
|
||||
],
|
||||
"(event attack drill-barons-ship-turret)": [[16, "vector"]],
|
||||
"(post attack drill-barons-ship-turret)": [
|
||||
[16, "projectile-init-by-other-params"]
|
||||
]
|
||||
}
|
||||
|
||||
@@ -9466,5 +9466,360 @@
|
||||
"(trans fire metalhead-predator)": [
|
||||
[14, "v1", "process-focusable"],
|
||||
[19, "v1", "process-focusable"]
|
||||
],
|
||||
"(method 18 hud-turret-health)": [
|
||||
[11, "v1", "float"],
|
||||
[22, "v1", "float"],
|
||||
[31, "v1", "float"],
|
||||
[50, "v1", "float"]
|
||||
],
|
||||
"(method 48 base-turret)": [[7, "v0", "vector"]],
|
||||
"(code target-turret-get-off)": [[73, "v1", "art-joint-anim"]],
|
||||
"(code target-turret-get-on)": [
|
||||
[73, "s5", "process-focusable"],
|
||||
[79, "s5", "process-focusable"],
|
||||
[98, "v1", "art-joint-anim"],
|
||||
[167, "a0", "process-focusable"]
|
||||
],
|
||||
"(code cam-turret)": [
|
||||
[19, "gp", "process-focusable"],
|
||||
[28, "gp", "target"],
|
||||
[43, "v1", "process-focusable"]
|
||||
],
|
||||
"(event target-turret-stance)": [[65, "gp", "attack-info"]],
|
||||
"(code target-turret-stance)": [[17, "v1", "process-focusable"]],
|
||||
"(exit active base-turret)": [[7, "v1", "collide-shape-prim-group"]],
|
||||
"(method 33 base-turret)": [
|
||||
[197, "a0", "collide-shape-moving"],
|
||||
["_stack_", 16, "res-tag"],
|
||||
[203, "a0", "collide-shape-moving"]
|
||||
],
|
||||
"(enter active base-turret)": [[46, "v1", "collide-shape-prim-group"]],
|
||||
"(event active base-turret)": [[93, "s5", "attack-info"]],
|
||||
"(method 47 base-turret)": [
|
||||
[115, "s4", "process-focusable"],
|
||||
[51, "s2", "process-focusable"]
|
||||
],
|
||||
"(method 155 hover-enemy)": [[79, "v1", "vector"]],
|
||||
"(method 140 hover-enemy)": [
|
||||
[6, "a0", "collide-shape-prim-group"],
|
||||
[8, "a0", "collide-shape-prim-group"],
|
||||
[10, "a0", "collide-shape-prim-group"]
|
||||
],
|
||||
"hover-enemy-fly-code": [
|
||||
[17, "gp", "art-joint-anim"],
|
||||
[39, "gp", "art-joint-anim"],
|
||||
[61, "gp", "art-joint-anim"]
|
||||
],
|
||||
"(method 17 hover-nav-control)": [[7, "a0", "collide-shape-prim-group"]],
|
||||
"(method 15 nav-network)": [
|
||||
[64, "a2", "nav-network-path-node"],
|
||||
[71, "a2", "nav-network-path-node"],
|
||||
[111, "a2", "nav-network-path-node"],
|
||||
[117, "a2", "nav-network-path-node"],
|
||||
[38, "v1", "nav-network-path-node"],
|
||||
[39, "v1", "nav-network-path-node"]
|
||||
],
|
||||
"(method 27 nav-network)": [
|
||||
[81, "v1", "hover-nav-sphere"],
|
||||
[5, "v1", "hover-nav-sphere"],
|
||||
[13, "v1", "hover-nav-sphere"],
|
||||
[12, "v1", "hover-nav-sphere"]
|
||||
],
|
||||
"(method 26 nav-network)": [
|
||||
[21, "v1", "hover-nav-sphere"],
|
||||
[23, "v1", "hover-nav-sphere"]
|
||||
],
|
||||
"(method 24 nav-network)": [
|
||||
[93, "s3", "nav-network-path-node"],
|
||||
[72, "s3", "nav-network-path-node"],
|
||||
[85, "s3", "nav-network-path-node"],
|
||||
[87, "s3", "nav-network-path-node"],
|
||||
[90, "s3", "nav-network-path-node"]
|
||||
],
|
||||
"(method 25 nav-network)": [
|
||||
[14, "v1", "hover-nav-sphere"],
|
||||
[16, "v1", "hover-nav-sphere"],
|
||||
[19, "a3", "hover-nav-sphere"]
|
||||
],
|
||||
"(method 29 hover-nav-control)": [
|
||||
[7, "a0", "hover-nav-path-segment"],
|
||||
[8, "a0", "vector"],
|
||||
[34, "a0", "hover-nav-path-segment"],
|
||||
[6, "s4", "hover-nav-path-segment"],
|
||||
[33, "s4", "hover-nav-path-segment"],
|
||||
[37, "s4", "hover-nav-path-segment"],
|
||||
[38, "s4", "hover-nav-path-segment"],
|
||||
[43, "s4", "hover-nav-path-segment"],
|
||||
[12, "s4", "hover-nav-path-segment"],
|
||||
[18, "s4", "hover-nav-path-segment"],
|
||||
[19, "s4", "hover-nav-path-segment"],
|
||||
[20, "s4", "hover-nav-path-segment"]
|
||||
],
|
||||
"hover-enemy-hostile-post": [
|
||||
[14, "v0", "hover-formation"],
|
||||
[42, "a0", "process-focusable"],
|
||||
[45, "a0", "process-focusable"]
|
||||
],
|
||||
"(method 74 hover-enemy)": [
|
||||
[126, "s5", "vector"],
|
||||
[151, "a0", "collide-shape-prim-group"]
|
||||
],
|
||||
"(enter ambush hover-enemy)": [[80, "a0", "collide-shape-prim-group"]],
|
||||
"(code flying-death hover-enemy)": [[20, "v1", "art-joint-anim"]],
|
||||
"(enter flying-death hover-enemy)": [[46, "a1", "process-focusable"]],
|
||||
"(code knocked-recover hover-enemy)": [[22, "v1", "art-joint-anim"]],
|
||||
"(exit knocked hover-enemy)": [[4, "v0", "state"]],
|
||||
"(enter knocked hover-enemy)": [
|
||||
[4, "v0", "state"],
|
||||
[6, "t9", "(function enemy none)"]
|
||||
],
|
||||
"(method 129 hover-enemy)": [
|
||||
[19, "a0", "process-focusable"],
|
||||
[22, "a0", "process-focusable"]
|
||||
],
|
||||
"(method 17 hover-enemy-manager)": [["_stack_", 16, "res-tag"]],
|
||||
"(method 18 hover-enemy-manager)": [
|
||||
[13, "s1", "entity-actor"],
|
||||
[22, "s1", "entity-actor"]
|
||||
],
|
||||
"hover-enemy-manager-post": [
|
||||
[6, "t9", "(function hover-formation-control none)"]
|
||||
],
|
||||
"(method 7 hover-enemy-manager)": [
|
||||
[21, "t9", "(function process int process)"]
|
||||
],
|
||||
"(method 35 turret)": [[55, "t9", "(function base-turret none)"]],
|
||||
"(enter die turret)": [[11, "v0", "(state base-turret)"]],
|
||||
"(exit active turret)": [[4, "v0", "(state base-turret)"]],
|
||||
"(post active turret)": [
|
||||
[4, "v0", "(state base-turret)"],
|
||||
[6, "t9", "(function none)"],
|
||||
[112, "v0", "int"],
|
||||
[134, "v0", "int"],
|
||||
[157, "v0", "int"]
|
||||
],
|
||||
"(method 115 wasp)": [
|
||||
["_stack_", 16, "res-tag"],
|
||||
["_stack_", 32, "res-tag"],
|
||||
["_stack_", 48, "res-tag"],
|
||||
["_stack_", 64, "res-tag"],
|
||||
[91, "v0", "(pointer actor-group)"],
|
||||
[117, "v0", "(pointer float)"],
|
||||
[153, "v0", "(pointer float)"],
|
||||
[182, "v0", "(pointer float)"]
|
||||
],
|
||||
"(code knocked-recover wasp)": [[20, "v1", "art-joint-anim"]],
|
||||
"(code attack wasp)": [[38, "v1", "art-joint-anim"]],
|
||||
"(post notice wasp)": [[4, "t9", "(function none)"]],
|
||||
"(post ambush wasp)": [[4, "t9", "(function none)"]],
|
||||
"(code shoot-bridge-attack wasp)": [[38, "v1", "art-joint-anim"]],
|
||||
"(method 77 wasp)": [[32, "a1", "art-joint-anim"]],
|
||||
"(method 107 wasp)": [
|
||||
[25, "s5", "process-focusable"],
|
||||
[44, "s5", "process-focusable"]
|
||||
],
|
||||
"(method 78 wasp)": [[11, "v1", "art-joint-anim"]],
|
||||
"(trans hostile wasp)": [[36, "v1", "art-joint-anim"]],
|
||||
"(method 52 wasp)": [
|
||||
[21, "a1", "process-focusable"],
|
||||
[99, "t9", "(function enemy vector none)"]
|
||||
],
|
||||
"(method 115 crimson-guard-hover)": [
|
||||
["_stack_", 16, "res-tag"],
|
||||
["_stack_", 32, "res-tag"],
|
||||
["_stack_", 48, "res-tag"],
|
||||
["_stack_", 64, "res-tag"],
|
||||
[102, "v0", "(pointer actor-group)"],
|
||||
[128, "v0", "(pointer float)"],
|
||||
[162, "v0", "(pointer float)"],
|
||||
[188, "v0", "(pointer float)"]
|
||||
],
|
||||
"(enter flying-death crimson-guard-hover)": [
|
||||
[4, "v0", "(state hover-enemy)"]
|
||||
],
|
||||
"(code knocked-recover crimson-guard-hover)": [[20, "v1", "art-joint-anim"]],
|
||||
"(code attack crimson-guard-hover)": [[56, "v1", "art-joint-anim"]],
|
||||
"(trans hostile crimson-guard-hover)": [[22, "gp", "process-focusable"]],
|
||||
"(enter flying-death-explode crimson-guard-hover)": [
|
||||
[4, "v0", "(state hover-enemy)"]
|
||||
],
|
||||
"(code flying-death crimson-guard-hover)": [
|
||||
[17, "v1", "art-joint-anim"],
|
||||
[70, "v1", "art-joint-anim"]
|
||||
],
|
||||
"(enter knocked crimson-guard-hover)": [[4, "v0", "(state hover-enemy)"]],
|
||||
"(post kick-attack crimson-guard-hover)": [
|
||||
[34, "a0", "process-focusable"],
|
||||
[37, "a0", "process-focusable"]
|
||||
],
|
||||
"(post notice crimson-guard-hover)": [[4, "t9", "(function none)"]],
|
||||
"(post ambush-attack crimson-guard-hover)": [[66, "t9", "(function none)"]],
|
||||
"(code ambush-attack crimson-guard-hover)": [[37, "v1", "art-joint-anim"]],
|
||||
"(trans ambush-fly crimson-guard-hover)": [[47, "gp", "process-focusable"]],
|
||||
"(method 74 crimson-guard-hover)": [
|
||||
[9, "v1", "attack-info"],
|
||||
[
|
||||
124,
|
||||
"t9",
|
||||
"(function enemy process int symbol event-message-block object)"
|
||||
],
|
||||
[131, "a0", "symbol"],
|
||||
[132, "v1", "process-focusable"],
|
||||
[135, "v1", "process-focusable"],
|
||||
[
|
||||
170,
|
||||
"t9",
|
||||
"(function enemy process int symbol event-message-block object)"
|
||||
],
|
||||
[
|
||||
182,
|
||||
"t9",
|
||||
"(function enemy process int symbol event-message-block object)"
|
||||
]
|
||||
],
|
||||
"(method 162 crimson-guard-hover)": [
|
||||
[31, "a0", "process-focusable"],
|
||||
[34, "a0", "process-focusable"]
|
||||
],
|
||||
"(method 52 crimson-guard-hover)": [
|
||||
[21, "a1", "process-focusable"],
|
||||
[99, "t9", "(function hover-enemy vector none)"]
|
||||
],
|
||||
"(method 135 crimson-guard-hover)": [
|
||||
[34, "t9", "(function enemy int sound-id)"]
|
||||
],
|
||||
"(method 77 crimson-guard-hover)": [
|
||||
[19, "v1", "art-joint-anim"],
|
||||
[49, "v1", "art-joint-anim"]
|
||||
],
|
||||
"(method 78 crimson-guard-hover)": [[18, "v1", "art-joint-anim"]],
|
||||
"flamer-fly-code": [
|
||||
[33, "v1", "art-joint-anim"],
|
||||
[64, "v1", "art-joint-anim"],
|
||||
[95, "v1", "art-joint-anim"]
|
||||
],
|
||||
"(method 7 flamer)": [
|
||||
[14, "t9", "(function process-drawable int process-drawable)"]
|
||||
],
|
||||
"(method 74 flamer)": [[78, "v1", "vector"]],
|
||||
"(trans hostile flamer)": [
|
||||
[20, "a0", "process-focusable"],
|
||||
[23, "a0", "process-focusable"]
|
||||
],
|
||||
"(event attack flamer)": [
|
||||
[22, "s5", "process-focusable"],
|
||||
[25, "s5", "process-focusable"]
|
||||
],
|
||||
"(post knocked flamer)": [[22, "t9", "(function none)"]],
|
||||
"(method 77 flamer)": [
|
||||
[100, "a1", "art-joint-anim"],
|
||||
[70, "s4", "art-joint-anim"]
|
||||
],
|
||||
"(method 46 flamer)": [
|
||||
[10, "v1", "collide-shape-prim-group"],
|
||||
[30, "v1", "collide-shape-prim-group"]
|
||||
],
|
||||
"(method 183 flamer)": [[15, "v0", "hover-formation-control"]],
|
||||
"(code attack flamer)": [
|
||||
[19, "v1", "art-joint-anim"],
|
||||
[72, "v1", "art-joint-anim"]
|
||||
],
|
||||
"(method 182 flamer)": [[36, "v0", "hover-formation-control"]],
|
||||
"(method 25 hover-nav-control)": [
|
||||
[74, "v1", "vector"],
|
||||
[100, "a0", "vector"]
|
||||
],
|
||||
"(method 14 nav-network)": [
|
||||
[4, "a3", "list-node"],
|
||||
[7, "a3", "list-node"]
|
||||
],
|
||||
"(method 13 nav-network)": [
|
||||
[44, "a0", "list-node"],
|
||||
[47, "a0", "list-node"]
|
||||
],
|
||||
"(method 13 hover-nav-control)": [["_stack_", 144, "float"]],
|
||||
"(method 10 jellyfish)": [[10, "t9", "(function process-drawable none)"]],
|
||||
"(code grab-mech jellyfish)": [
|
||||
[48, "v1", "art-joint-anim"],
|
||||
[155, "v1", "art-joint-anim"],
|
||||
[403, "v1", "art-joint-anim"],
|
||||
[262, "v1", "art-joint-anim"]
|
||||
],
|
||||
"(code charge-attack jellyfish)": [
|
||||
[10, "v1", "art-joint-anim"],
|
||||
[62, "v1", "art-joint-anim"]
|
||||
],
|
||||
"(trans charge-attack jellyfish)": [
|
||||
[42, "s5", "process-focusable"],
|
||||
[45, "s5", "process-focusable"]
|
||||
],
|
||||
"(code threaten jellyfish)": [
|
||||
[16, "v1", "art-joint-anim"],
|
||||
[86, "gp", "process-focusable"],
|
||||
[89, "gp", "process-focusable"]
|
||||
],
|
||||
"(method 55 jellyfish)": [
|
||||
[98, "a0", "process-focusable"],
|
||||
[103, "a0", "process-focusable"],
|
||||
[108, "a0", "process-focusable"],
|
||||
[111, "a0", "process-focusable"]
|
||||
],
|
||||
"(method 162 jellyfish)": [[63, "a0", "collide-shape-prim-group"]],
|
||||
"(method 163 jellyfish)": [
|
||||
[46, "a0", "process-focusable"],
|
||||
[65, "s4", "process-focusable"]
|
||||
],
|
||||
"(code die jellyfish)": [[28, "v1", "art-joint-anim"]],
|
||||
"(method 12 jellyfish-chain-physics)": [[9, "v1", "collide-shape-moving"]],
|
||||
"(enter stare jellyfish)": [[4, "v0", "(state enemy)"]],
|
||||
"(code die-now jellyfish)": [[25, "v1", "art-joint-anim"]],
|
||||
"jellyfish-joint-mod-tentacle": [
|
||||
[9, "s4", "jellyfish"],
|
||||
[10, "s3", "jellyfish-joint-mod-tentacle-info"],
|
||||
[22, "s3", "jellyfish-joint-mod-tentacle-info"],
|
||||
[27, "s3", "jellyfish-joint-mod-tentacle-info"],
|
||||
[43, "s4", "jellyfish"]
|
||||
],
|
||||
"(method 164 jellyfish)": [
|
||||
[61, "a0", "process-focusable"],
|
||||
[80, "s4", "process-focusable"]
|
||||
],
|
||||
"(enter hidden drill-barons-ship)": [[19, "v0", "turret"]],
|
||||
"(method 24 drill-barons-ship-turret)": [
|
||||
[10, "a1", "drill-barons-ship"],
|
||||
[28, "v1", "drill-barons-ship"]
|
||||
],
|
||||
"drill-barons-ship-explode-init-by-other": [[25, "a0", "process-drawable"]],
|
||||
"(method 31 drill-ship-shot)": [[7, "t9", "(function guard-shot none)"]],
|
||||
"drill-barons-ship-turret-init-by-other": [
|
||||
[117, "a0", "drill-barons-ship"],
|
||||
[126, "v1", "drill-barons-ship"]
|
||||
],
|
||||
"(method 7 drill-barons-ship-turret)": [
|
||||
[30, "t9", "(function process-drawable int process-drawable)"]
|
||||
],
|
||||
"(trans going-down drill-barons-ship-turret)": [
|
||||
[9, "a1", "drill-barons-ship"],
|
||||
[14, "v1", "drill-barons-ship"],
|
||||
[19, "v1", "drill-barons-ship"]
|
||||
],
|
||||
"(event attack drill-barons-ship-turret)": [[241, "v1", "drill-barons-ship"]],
|
||||
"(post attack drill-barons-ship-turret)": [
|
||||
[7, "v1", "drill-barons-ship"],
|
||||
[12, "v1", "drill-barons-ship"]
|
||||
],
|
||||
"(trans dead drill-barons-ship-turret)": [
|
||||
[9, "a1", "drill-barons-ship"],
|
||||
[27, "v1", "drill-barons-ship"],
|
||||
[33, "v1", "drill-barons-ship"],
|
||||
[38, "v1", "drill-barons-ship"]
|
||||
],
|
||||
"(enter going-down drill-barons-ship-turret)": [
|
||||
[2, "v1", "drill-barons-ship"]
|
||||
],
|
||||
"(method 37 drill-ship-shot)": [
|
||||
[2, "v1", "drill-barons-ship"],
|
||||
[7, "v1", "drill-barons-ship"]
|
||||
]
|
||||
}
|
||||
|
||||
@@ -512,6 +512,9 @@ goos::Object decomp_ref_to_inline_array_guess_size(
|
||||
} else {
|
||||
const auto& end_label = labels.at(end_label_idx);
|
||||
end_offset = end_label.offset;
|
||||
// if misaligned, round down - labels may point 2 bytes into the first word if the data is a
|
||||
// pair, and we should not treat those 2 bytes as padding for this check
|
||||
end_offset &= ~3;
|
||||
}
|
||||
|
||||
// lg::print("Data is from {} to {}\n", start_label.name, end_label.name);
|
||||
@@ -896,10 +899,11 @@ const std::unordered_map<
|
||||
{{"cells", ArrayFieldDecompMeta(TypeSpec("int32"),
|
||||
4,
|
||||
ArrayFieldDecompMeta::Kind::REF_TO_INTEGER_ARR)},
|
||||
{"pulse-ops",
|
||||
ArrayFieldDecompMeta(TypeSpec("int8"),
|
||||
1,
|
||||
ArrayFieldDecompMeta::Kind::REF_TO_INTEGER_ARR)}}}}}};
|
||||
{"pulse-ops", ArrayFieldDecompMeta(TypeSpec("int8"),
|
||||
1,
|
||||
ArrayFieldDecompMeta::Kind::REF_TO_INTEGER_ARR)}}},
|
||||
{"turret-path",
|
||||
{{"event-tbl", ArrayFieldDecompMeta(TypeSpec("turret-path-event"), 16)}}}}}};
|
||||
|
||||
goos::Object decompile_structure(const TypeSpec& type,
|
||||
const DecompilerLabel& label,
|
||||
|
||||
@@ -70,7 +70,72 @@
|
||||
:default-hit-points 10
|
||||
:gnd-collide-with (collide-spec backgnd)
|
||||
:overlaps-others-collide-with-filter (collide-spec jak civilian enemy vehicle-sphere hit-by-others-list player-list)
|
||||
:penetrate-knocked #xffffffffffffffff
|
||||
:penetrate-knocked (penetrate
|
||||
touch
|
||||
generic-attack
|
||||
lunge
|
||||
flop
|
||||
punch
|
||||
spin
|
||||
roll
|
||||
uppercut
|
||||
bonk
|
||||
tube
|
||||
vehicle
|
||||
flut-attack
|
||||
board
|
||||
mech
|
||||
mech-punch
|
||||
mech-bonk
|
||||
dark-skin
|
||||
dark-punch
|
||||
dark-bomb
|
||||
dark-giant
|
||||
shield
|
||||
explode
|
||||
jak-yellow-shot
|
||||
jak-red-shot
|
||||
jak-blue-shot
|
||||
jak-dark-shot
|
||||
enemy-yellow-shot
|
||||
enemy-dark-shot
|
||||
eco-yellow
|
||||
eco-red
|
||||
eco-blue
|
||||
eco-green
|
||||
knocked
|
||||
penetrate-33
|
||||
penetrate-34
|
||||
penetrate-35
|
||||
penetrate-36
|
||||
penetrate-37
|
||||
penetrate-38
|
||||
penetrate-39
|
||||
penetrate-40
|
||||
penetrate-41
|
||||
penetrate-42
|
||||
penetrate-43
|
||||
penetrate-44
|
||||
penetrate-45
|
||||
penetrate-46
|
||||
penetrate-47
|
||||
penetrate-48
|
||||
penetrate-49
|
||||
penetrate-50
|
||||
penetrate-51
|
||||
penetrate-52
|
||||
penetrate-53
|
||||
penetrate-54
|
||||
penetrate-55
|
||||
penetrate-56
|
||||
penetrate-57
|
||||
penetrate-58
|
||||
penetrate-59
|
||||
penetrate-60
|
||||
penetrate-61
|
||||
penetrate-62
|
||||
penetrate-63
|
||||
)
|
||||
:movement-gravity (meters -100)
|
||||
:friction 0.7
|
||||
:attack-shove-back (meters 3)
|
||||
@@ -686,7 +751,7 @@
|
||||
(set! (-> v1-13 attack-id) a0-10)
|
||||
(set! (-> s4-0 attack-id) a0-10)
|
||||
)
|
||||
(set! (-> s4-0 timeout) (new 'static 'handle :process #x4b0 :u64 #x4b0))
|
||||
(set! (-> s4-0 timeout) (seconds 4))
|
||||
(vector<-cspace! (-> s4-0 pos) (-> obj node-list data 22))
|
||||
(set! (-> s4-0 vel quad) (-> arg0 quad))
|
||||
(vector-! (-> s4-0 vel) (-> s4-0 vel) (-> s4-0 pos))
|
||||
@@ -1291,7 +1356,9 @@
|
||||
)
|
||||
)
|
||||
(when (>= s5-0 0)
|
||||
(set! (-> obj victory-speech-time) (+ (get-rand-int-range obj 1200 2100) (-> pp clock frame-counter)))
|
||||
(set! (-> obj victory-speech-time)
|
||||
(the-as time-frame (+ (get-rand-int-range obj 1200 2100) (-> pp clock frame-counter)))
|
||||
)
|
||||
(play-speech obj s5-0)
|
||||
)
|
||||
)
|
||||
|
||||
@@ -73,7 +73,72 @@
|
||||
:default-hit-points 20
|
||||
:gnd-collide-with (collide-spec backgnd obstacle hit-by-others-list)
|
||||
:overlaps-others-collide-with-filter (collide-spec jak civilian enemy vehicle-sphere hit-by-others-list player-list)
|
||||
:penetrate-knocked #xffffffffffffffff
|
||||
:penetrate-knocked (penetrate
|
||||
touch
|
||||
generic-attack
|
||||
lunge
|
||||
flop
|
||||
punch
|
||||
spin
|
||||
roll
|
||||
uppercut
|
||||
bonk
|
||||
tube
|
||||
vehicle
|
||||
flut-attack
|
||||
board
|
||||
mech
|
||||
mech-punch
|
||||
mech-bonk
|
||||
dark-skin
|
||||
dark-punch
|
||||
dark-bomb
|
||||
dark-giant
|
||||
shield
|
||||
explode
|
||||
jak-yellow-shot
|
||||
jak-red-shot
|
||||
jak-blue-shot
|
||||
jak-dark-shot
|
||||
enemy-yellow-shot
|
||||
enemy-dark-shot
|
||||
eco-yellow
|
||||
eco-red
|
||||
eco-blue
|
||||
eco-green
|
||||
knocked
|
||||
penetrate-33
|
||||
penetrate-34
|
||||
penetrate-35
|
||||
penetrate-36
|
||||
penetrate-37
|
||||
penetrate-38
|
||||
penetrate-39
|
||||
penetrate-40
|
||||
penetrate-41
|
||||
penetrate-42
|
||||
penetrate-43
|
||||
penetrate-44
|
||||
penetrate-45
|
||||
penetrate-46
|
||||
penetrate-47
|
||||
penetrate-48
|
||||
penetrate-49
|
||||
penetrate-50
|
||||
penetrate-51
|
||||
penetrate-52
|
||||
penetrate-53
|
||||
penetrate-54
|
||||
penetrate-55
|
||||
penetrate-56
|
||||
penetrate-57
|
||||
penetrate-58
|
||||
penetrate-59
|
||||
penetrate-60
|
||||
penetrate-61
|
||||
penetrate-62
|
||||
penetrate-63
|
||||
)
|
||||
:movement-gravity (meters -100)
|
||||
:friction 0.7
|
||||
:attack-shove-back (meters 3)
|
||||
@@ -717,7 +782,7 @@
|
||||
(set! (-> v1-11 attack-id) a0-10)
|
||||
(set! (-> s5-0 attack-id) a0-10)
|
||||
)
|
||||
(set! (-> s5-0 timeout) (new 'static 'handle :process #x4b0 :u64 #x4b0))
|
||||
(set! (-> s5-0 timeout) (seconds 4))
|
||||
(vector<-cspace! (-> s5-0 pos) (-> obj node-list data 24))
|
||||
(set! (-> s5-0 vel quad) (-> arg0 quad))
|
||||
(vector-! (-> s5-0 vel) (-> s5-0 vel) (-> s5-0 pos))
|
||||
|
||||
@@ -407,6 +407,7 @@
|
||||
cam-standoff-read-entity
|
||||
cam-stick
|
||||
cam-string
|
||||
cam-turret
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
@@ -97,7 +97,7 @@
|
||||
(ignore-handle handle :offset-assert 40)
|
||||
(pos vector :inline :offset-assert 48)
|
||||
(vel vector :inline :offset-assert 64)
|
||||
(timeout handle :offset-assert 80)
|
||||
(timeout time-frame :offset-assert 80)
|
||||
)
|
||||
:method-count-assert 9
|
||||
:size-assert #x58
|
||||
|
||||
@@ -21,8 +21,7 @@
|
||||
|
||||
;; WARN: Return type mismatch int vs sound-id.
|
||||
(defmethod play-impact-sound! projectile ((obj projectile))
|
||||
"Plays impact sound
|
||||
:virtual"
|
||||
"Plays impact sound"
|
||||
(the-as sound-id 0)
|
||||
)
|
||||
|
||||
@@ -118,8 +117,7 @@ If we've met or exceeded the projectiles maximum allowed hits, switch to the [[p
|
||||
)
|
||||
|
||||
(defmethod draw-laser-sight projectile ((obj projectile))
|
||||
"TODO - confirm If applicable, draw the laser sight particles
|
||||
:virtual"
|
||||
"TODO - confirm If applicable, draw the laser sight particles"
|
||||
0
|
||||
(none)
|
||||
)
|
||||
@@ -395,8 +393,7 @@ If we've met or exceeded the projectiles maximum allowed hits, switch to the [[p
|
||||
)
|
||||
|
||||
(defmethod init-proj-settings! projectile ((obj projectile))
|
||||
"Init relevant settings for the [[projectile]] such as gravity, speed, timeout, etc
|
||||
:virtual"
|
||||
"Init relevant settings for the [[projectile]] such as gravity, speed, timeout, etc"
|
||||
0
|
||||
(none)
|
||||
)
|
||||
@@ -470,7 +467,7 @@ If we've met or exceeded the projectiles maximum allowed hits, switch to the [[p
|
||||
(set! (-> self max-speed) 40960.0)
|
||||
(set! (-> self tween) 1.0)
|
||||
(set! (-> self last-target) (the-as handle #f))
|
||||
(set! (-> self timeout) (the-as time-frame (-> arg0 timeout)))
|
||||
(set! (-> self timeout) (-> arg0 timeout))
|
||||
(set! (-> self max-hits) 1)
|
||||
(set! (-> self spawn-time) (-> self clock frame-counter))
|
||||
(set! (-> self update-velocity) #f)
|
||||
@@ -609,8 +606,7 @@ If we've met or exceeded the projectiles maximum allowed hits, switch to the [[p
|
||||
)
|
||||
|
||||
(defmethod play-impact-sound! projectile-bounce ((obj projectile-bounce))
|
||||
"Plays impact sound
|
||||
:virtual"
|
||||
"Plays impact sound"
|
||||
(let* ((a2-0 (-> obj root-override))
|
||||
(v1-0 (-> a2-0 status))
|
||||
)
|
||||
@@ -662,8 +658,7 @@ If we've met or exceeded the projectiles maximum allowed hits, switch to the [[p
|
||||
)
|
||||
|
||||
(defmethod init-proj-settings! projectile-bounce ((obj projectile-bounce))
|
||||
"Init relevant settings for the [[projectile]] such as gravity, speed, timeout, etc
|
||||
:virtual"
|
||||
"Init relevant settings for the [[projectile]] such as gravity, speed, timeout, etc"
|
||||
(set! (-> obj max-speed) 450560.0)
|
||||
(set! (-> obj timeout) (seconds 1.6))
|
||||
(set! (-> obj update-velocity) projectile-bounce-update-velocity)
|
||||
|
||||
@@ -2079,9 +2079,9 @@
|
||||
)
|
||||
|
||||
;; more texture mapping.
|
||||
; (if (-> *texture-pool* update-flag)
|
||||
; (update-warp-and-hud *texture-pool*)
|
||||
; )
|
||||
(if (-> *texture-pool* update-flag)
|
||||
(update-warp-and-hud *texture-pool*)
|
||||
)
|
||||
|
||||
;; unclear why eyes are here... maybe they rely on textures that were just remapped.
|
||||
; (-> *display* frames (-> *display* on-screen) global-buf)
|
||||
|
||||
@@ -58,7 +58,7 @@
|
||||
:heap-size #x4000
|
||||
)
|
||||
(new 'static 'entity-info
|
||||
:ptype (type-ref jellyfish :method-count 167)
|
||||
:ptype (type-ref jellyfish :method-count 165)
|
||||
:package "game"
|
||||
:art-group '()
|
||||
:pool '*16k-dead-pool*
|
||||
|
||||
@@ -39,7 +39,7 @@
|
||||
(stretch-vel-parallel float :offset-assert 1348)
|
||||
(compress-vel float :offset-assert 1352)
|
||||
(compress-vel-parallel float :offset-assert 1356)
|
||||
(negate-y basic :offset-assert 1360)
|
||||
(negate-y symbol :offset-assert 1360)
|
||||
(axial-slop float :offset-assert 1364)
|
||||
(maximum-stretch float :offset-assert 1368)
|
||||
(turn-off-start time-frame :offset-assert 1376)
|
||||
@@ -52,11 +52,11 @@
|
||||
(initialize-chain-joints (_type_) symbol 9)
|
||||
(turn-off (_type_ time-frame) none :behavior process 10)
|
||||
(update (_type_ process-drawable) none :behavior process 11)
|
||||
(gravity-update (_type_) none 12)
|
||||
(gravity-update (_type_ process-drawable) none 12)
|
||||
(apply-gravity (_type_ vector int process-drawable) none :behavior process 13)
|
||||
(chain-physics-method-14 (_type_ vector int) none 14)
|
||||
(clamp-length (_type_ vector vector object process-drawable) vector 15)
|
||||
(chain-physics-method-16 (_type_ int) float 16)
|
||||
(chain-physics-method-17 (_type_ vector) none 17)
|
||||
(chain-physics-method-17 (_type_ vector int) none 17)
|
||||
)
|
||||
)
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
|
||||
;; DECOMP BEGINS
|
||||
|
||||
(defmethod gravity-update chain-physics ((obj chain-physics))
|
||||
(defmethod gravity-update chain-physics ((obj chain-physics) (arg0 process-drawable))
|
||||
(vector-seek-3d-smooth! (-> obj gravity) (-> obj gravity-target) 0.05 0.1)
|
||||
0
|
||||
(none)
|
||||
@@ -45,7 +45,7 @@
|
||||
(lerp-scale 5461.3335 10922.667 (the float arg0) 0.0 8.0)
|
||||
)
|
||||
|
||||
(defmethod chain-physics-method-17 chain-physics ((obj chain-physics) (arg0 vector))
|
||||
(defmethod chain-physics-method-17 chain-physics ((obj chain-physics) (arg0 vector) (arg1 int))
|
||||
0
|
||||
(none)
|
||||
)
|
||||
@@ -101,7 +101,7 @@
|
||||
(vf6 :class vf)
|
||||
)
|
||||
(init-vf0-vector)
|
||||
(gravity-update obj)
|
||||
(gravity-update obj arg0)
|
||||
(let ((s4-0 (new 'stack-no-clear 'matrix))
|
||||
(s3-0 (vector<-cspace! (new 'stack-no-clear 'vector) (-> arg0 node-list data (-> obj root-joint-index))))
|
||||
(s2-0 (vector-normalize-copy!
|
||||
@@ -207,7 +207,7 @@
|
||||
(vector+float*! sv-528 s3-0 sv-400 f28-1)
|
||||
)
|
||||
)
|
||||
(chain-physics-method-17 obj sv-528)
|
||||
(chain-physics-method-17 obj sv-528 s0-0)
|
||||
(set! sv-432 (new 'stack-no-clear 'vector))
|
||||
(let ((v1-61 s3-0)
|
||||
(a0-27 sv-528)
|
||||
|
||||
@@ -2534,7 +2534,7 @@
|
||||
(set! (-> v1-24 attack-id) a0-13)
|
||||
(set! (-> s5-2 attack-id) a0-13)
|
||||
)
|
||||
(set! (-> s5-2 timeout) (new 'static 'handle :process #x4b0 :u64 #x4b0))
|
||||
(set! (-> s5-2 timeout) (seconds 4))
|
||||
(vector<-cspace! (-> s5-2 pos) a1-5)
|
||||
(set! (-> s5-2 vel quad) (-> *zero-vector* quad))
|
||||
(spawn-projectile grenade s5-2 self *default-dead-pool*)
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
(set! (-> v1-13 attack-id) a0-15)
|
||||
(set! (-> s4-1 attack-id) a0-15)
|
||||
)
|
||||
(set! (-> s4-1 timeout) (new 'static 'handle :process #x4b0 :u64 #x4b0))
|
||||
(set! (-> s4-1 timeout) (seconds 4))
|
||||
(spawn-projectile gun-blue-shot s4-1 (ppointer->process (-> gp-0 gun)) *default-dead-pool*)
|
||||
)
|
||||
)
|
||||
@@ -51,8 +51,7 @@
|
||||
|
||||
|
||||
(defmethod draw-laser-sight gun-blue-shot ((obj gun-blue-shot))
|
||||
"TODO - confirm If applicable, draw the laser sight particles
|
||||
:virtual"
|
||||
"TODO - confirm If applicable, draw the laser sight particles"
|
||||
(let* ((s5-0 (ppointer->process (-> obj parent)))
|
||||
(s4-0 (-> *part-id-table* 196))
|
||||
(s3-0 (get-field-spec-by-id s4-0 (sp-field-id spt-omega)))
|
||||
@@ -312,8 +311,7 @@
|
||||
)
|
||||
|
||||
(defmethod init-proj-settings! gun-blue-shot ((obj gun-blue-shot))
|
||||
"Init relevant settings for the [[projectile]] such as gravity, speed, timeout, etc
|
||||
:virtual"
|
||||
"Init relevant settings for the [[projectile]] such as gravity, speed, timeout, etc"
|
||||
(with-pp
|
||||
(cpad-set-buzz! (-> *cpad-list* cpads 0) 1 204 (seconds 0.1))
|
||||
(set! (-> obj init-pos quad) (-> obj root-override trans quad))
|
||||
|
||||
@@ -131,7 +131,7 @@
|
||||
(set! (-> v1-8 attack-id) a0-11)
|
||||
(set! (-> gp-0 attack-id) a0-11)
|
||||
)
|
||||
(set! (-> gp-0 timeout) (new 'static 'handle :process #x4b0 :u64 #x4b0))
|
||||
(set! (-> gp-0 timeout) (seconds 4))
|
||||
(let ((v0-1 (spawn-projectile gun-dark-shot gp-0 (ppointer->process (-> s5-0 gun)) *default-dead-pool*)))
|
||||
(when v0-1
|
||||
(set! (-> (the-as gun-dark-shot (-> v0-1 0)) track-target) (-> self gun track-target 0 handle))
|
||||
@@ -143,8 +143,7 @@
|
||||
)
|
||||
|
||||
(defmethod init-proj-settings! gun-dark-shot ((obj gun-dark-shot))
|
||||
"Init relevant settings for the [[projectile]] such as gravity, speed, timeout, etc
|
||||
:virtual"
|
||||
"Init relevant settings for the [[projectile]] such as gravity, speed, timeout, etc"
|
||||
(set! (-> obj attack-mode) 'eco-dark)
|
||||
(vector-normalize! (-> obj root-override transv) (+ 225280.0 (* 225280.0 (-> obj charge-level))))
|
||||
(set! (-> obj part) (create-launch-control (-> *part-group-id-table* 72) obj))
|
||||
|
||||
@@ -17,8 +17,7 @@
|
||||
|
||||
|
||||
(defmethod init-proj-settings! gun-eject ((obj gun-eject))
|
||||
"Init relevant settings for the [[projectile]] such as gravity, speed, timeout, etc
|
||||
:virtual"
|
||||
"Init relevant settings for the [[projectile]] such as gravity, speed, timeout, etc"
|
||||
(initialize-skeleton
|
||||
obj
|
||||
(the-as skeleton-group (art-group-get-by-name *level* "skel-gun" (the-as (pointer uint32) #f)))
|
||||
@@ -49,8 +48,7 @@
|
||||
|
||||
|
||||
(defmethod init-proj-settings! gun-mag-yellow ((obj gun-mag-yellow))
|
||||
"Init relevant settings for the [[projectile]] such as gravity, speed, timeout, etc
|
||||
:virtual"
|
||||
"Init relevant settings for the [[projectile]] such as gravity, speed, timeout, etc"
|
||||
(initialize-skeleton
|
||||
obj
|
||||
(the-as skeleton-group (art-group-get-by-name *level* "skel-ammo-yellow" (the-as (pointer uint32) #f)))
|
||||
@@ -75,8 +73,7 @@
|
||||
|
||||
|
||||
(defmethod init-proj-settings! gun-mag-red ((obj gun-mag-red))
|
||||
"Init relevant settings for the [[projectile]] such as gravity, speed, timeout, etc
|
||||
:virtual"
|
||||
"Init relevant settings for the [[projectile]] such as gravity, speed, timeout, etc"
|
||||
(initialize-skeleton
|
||||
obj
|
||||
(the-as skeleton-group (art-group-get-by-name *level* "skel-ammo-red" (the-as (pointer uint32) #f)))
|
||||
@@ -101,8 +98,7 @@
|
||||
|
||||
|
||||
(defmethod init-proj-settings! gun-mag-blue ((obj gun-mag-blue))
|
||||
"Init relevant settings for the [[projectile]] such as gravity, speed, timeout, etc
|
||||
:virtual"
|
||||
"Init relevant settings for the [[projectile]] such as gravity, speed, timeout, etc"
|
||||
(initialize-skeleton
|
||||
obj
|
||||
(the-as skeleton-group (art-group-get-by-name *level* "skel-ammo-blue" (the-as (pointer uint32) #f)))
|
||||
@@ -127,8 +123,7 @@
|
||||
|
||||
|
||||
(defmethod init-proj-settings! gun-mag-dark ((obj gun-mag-dark))
|
||||
"Init relevant settings for the [[projectile]] such as gravity, speed, timeout, etc
|
||||
:virtual"
|
||||
"Init relevant settings for the [[projectile]] such as gravity, speed, timeout, etc"
|
||||
(initialize-skeleton
|
||||
obj
|
||||
(the-as skeleton-group (art-group-get-by-name *level* "skel-ammo-dark" (the-as (pointer uint32) #f)))
|
||||
@@ -361,7 +356,7 @@
|
||||
(set! (-> v1-98 attack-id) a0-44)
|
||||
(set! (-> s5-2 attack-id) a0-44)
|
||||
)
|
||||
(set! (-> s5-2 timeout) (new 'static 'handle :process #x4b0 :u64 #x4b0))
|
||||
(set! (-> s5-2 timeout) (seconds 4))
|
||||
(let ((t9-7 spawn-projectile)
|
||||
(v1-100 gp-1)
|
||||
)
|
||||
@@ -897,7 +892,7 @@
|
||||
(set! (-> v1-13 attack-id) a0-12)
|
||||
(set! (-> gp-0 attack-id) a0-12)
|
||||
)
|
||||
(set! (-> gp-0 timeout) (new 'static 'handle :process #x4b0 :u64 #x4b0))
|
||||
(set! (-> gp-0 timeout) (seconds 4))
|
||||
(spawn-projectile gun-eject gp-0 self *default-dead-pool*)
|
||||
)
|
||||
(ja-channel-set! 0)
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
(set! (-> v1-9 attack-id) a0-9)
|
||||
(set! (-> gp-0 attack-id) a0-9)
|
||||
)
|
||||
(set! (-> gp-0 timeout) (new 'static 'handle :process #x4b0 :u64 #x4b0))
|
||||
(set! (-> gp-0 timeout) (seconds 4))
|
||||
(vector-float*! (-> gp-0 vel) (-> s5-0 fire-dir-out) 819200.0)
|
||||
(spawn-projectile gun-yellow-shot gp-0 (ppointer->process (-> s5-0 gun)) *default-dead-pool*)
|
||||
)
|
||||
@@ -45,7 +45,7 @@
|
||||
(set! (-> v1-7 attack-id) a0-8)
|
||||
(set! (-> gp-0 attack-id) a0-8)
|
||||
)
|
||||
(set! (-> gp-0 timeout) (new 'static 'handle :process #x4b0 :u64 #x4b0))
|
||||
(set! (-> gp-0 timeout) (seconds 4))
|
||||
(vector-normalize-copy! (-> gp-0 vel) arg2 819200.0)
|
||||
(spawn-projectile gun-yellow-shot gp-0 arg0 *default-dead-pool*)
|
||||
)
|
||||
@@ -64,8 +64,7 @@
|
||||
|
||||
|
||||
(defmethod draw-laser-sight gun-yellow-shot ((obj gun-yellow-shot))
|
||||
"TODO - confirm If applicable, draw the laser sight particles
|
||||
:virtual"
|
||||
"TODO - confirm If applicable, draw the laser sight particles"
|
||||
(draw-beam (-> *part-id-table* 227) (-> obj tail-pos) (-> obj starting-dir) #f #t)
|
||||
0
|
||||
(none)
|
||||
@@ -376,8 +375,7 @@
|
||||
)
|
||||
|
||||
(defmethod init-proj-settings! gun-yellow-shot ((obj gun-yellow-shot))
|
||||
"Init relevant settings for the [[projectile]] such as gravity, speed, timeout, etc
|
||||
:virtual"
|
||||
"Init relevant settings for the [[projectile]] such as gravity, speed, timeout, etc"
|
||||
(set! (-> obj hit-actor?) #f)
|
||||
(set! (-> obj tail-pos quad) (-> obj root-override trans quad))
|
||||
(cpad-set-buzz! (-> *cpad-list* cpads 0) 1 204 (seconds 0.1))
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
(declare-type darkjak-info basic)
|
||||
(declare-type mech-info basic)
|
||||
(declare-type indax-info basic)
|
||||
(declare-type turret-info basic)
|
||||
(declare-type sparticle-launcher basic)
|
||||
|
||||
;; NOTE - for level-info, defined in `logic-target`
|
||||
@@ -242,7 +243,7 @@
|
||||
(pilot pilot-info :offset-assert 2208)
|
||||
(gun gun-info :offset-assert 2212)
|
||||
(mech mech-info :offset-assert 2216)
|
||||
(turret basic :offset-assert 2220)
|
||||
(turret turret-info :offset-assert 2220)
|
||||
(darkjak darkjak-info :offset-assert 2224)
|
||||
(indax indax-info :offset-assert 2228)
|
||||
)
|
||||
@@ -400,7 +401,9 @@
|
||||
(target-tube-jump float float)
|
||||
(target-tube-start handle)
|
||||
target-turn-around
|
||||
target-turret-get-off
|
||||
(target-turret-get-on handle)
|
||||
(target-turret-stance handle)
|
||||
target-wade-stance
|
||||
target-wade-walk
|
||||
target-walk
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -735,6 +735,7 @@
|
||||
(none)
|
||||
)
|
||||
|
||||
;; WARN: Return type mismatch object vs none.
|
||||
(defmethod juicer-method-180 juicer ((obj juicer))
|
||||
(if (and (= (-> obj incoming knocked-type) (knocked-type knocked-type-4))
|
||||
(not (and (-> obj next-state) (let ((v1-6 (-> obj next-state name)))
|
||||
@@ -1272,7 +1273,7 @@
|
||||
(set! (-> s5-0 owner-handle) (the-as handle #f))
|
||||
(set! (-> s5-0 ignore-handle) (process->handle obj))
|
||||
(set! (-> s5-0 attack-id) arg1)
|
||||
(set! (-> s5-0 timeout) (new 'static 'handle :process #x4b0 :u64 #x4b0))
|
||||
(set! (-> s5-0 timeout) (seconds 4))
|
||||
)
|
||||
(vector-normalize! (vector-! (-> s5-0 pos) (get-trans arg0 3) s4-0) 1.0)
|
||||
(vector-float*! (-> s5-0 vel) (-> s5-0 pos) (* 24576.0 (-> pp clock frames-per-second)))
|
||||
|
||||
@@ -1285,7 +1285,7 @@
|
||||
(set! (-> a0-13 attack-id) a1-12)
|
||||
(set! (-> s4-1 attack-id) a1-12)
|
||||
)
|
||||
(set! (-> s4-1 timeout) (new 'static 'handle :process #x4b0 :u64 #x4b0))
|
||||
(set! (-> s4-1 timeout) (seconds 4))
|
||||
(set! (-> s4-1 pos quad) (-> s5-0 quad))
|
||||
(set! (-> s4-1 vel quad) (-> v1-3 quad))
|
||||
(vector-normalize! (-> s4-1 vel) 819200.0)
|
||||
@@ -3076,7 +3076,7 @@
|
||||
(set! (-> s0-1 owner-handle) (the-as handle #f))
|
||||
(set! (-> s0-1 ignore-handle) (process->handle obj))
|
||||
(set! (-> s0-1 attack-id) (-> obj attack-id))
|
||||
(set! (-> s0-1 timeout) (new 'static 'handle :process #x4b0 :u64 #x4b0))
|
||||
(set! (-> s0-1 timeout) (seconds 4))
|
||||
(set! (-> s0-1 pos quad) (-> s4-0 quad))
|
||||
(vector-! (-> s0-1 vel) s5-0 s4-0)
|
||||
(vector-normalize! (-> s0-1 vel) 131072.0)
|
||||
|
||||
@@ -688,7 +688,7 @@
|
||||
(set! (-> v1-10 attack-id) a0-11)
|
||||
(set! (-> s5-0 attack-id) a0-11)
|
||||
)
|
||||
(set! (-> s5-0 timeout) (new 'static 'handle :process #x4b0 :u64 #x4b0))
|
||||
(set! (-> s5-0 timeout) (seconds 4))
|
||||
(vector<-cspace! (-> s5-0 pos) a1-1)
|
||||
(let ((s3-0 (handle->process (-> obj focus handle)))
|
||||
(s2-0 (new 'stack-no-clear 'vector))
|
||||
|
||||
@@ -516,7 +516,7 @@
|
||||
(set! (-> v1-14 attack-id) a0-16)
|
||||
(set! (-> s4-0 proj-params attack-id) a0-16)
|
||||
)
|
||||
(set! (-> s4-0 proj-params timeout) (new 'static 'handle :process #x4b0 :u64 #x4b0))
|
||||
(set! (-> s4-0 proj-params timeout) (seconds 4))
|
||||
(let* ((v1-16 (-> s4-0 mat-1))
|
||||
(a3-0 (-> arg0 node-list data (-> obj info joint-index) bone transform))
|
||||
(a0-20 (-> a3-0 quad 0))
|
||||
@@ -802,7 +802,7 @@
|
||||
(set! (-> v1-15 attack-id) a0-14)
|
||||
(set! (-> a1-1 attack-id) a0-14)
|
||||
)
|
||||
(set! (-> a1-1 timeout) (new 'static 'handle :process #x4b0 :u64 #x4b0))
|
||||
(set! (-> a1-1 timeout) (seconds 4))
|
||||
(spawn-projectile vehicle-grenade a1-1 obj *default-dead-pool*)
|
||||
)
|
||||
(let ((a1-2 (new 'stack-no-clear 'traffic-danger-info)))
|
||||
@@ -837,7 +837,7 @@
|
||||
(set! (-> v1-38 attack-id) a0-36)
|
||||
(set! (-> s5-1 proj-params attack-id) a0-36)
|
||||
)
|
||||
(set! (-> s5-1 proj-params timeout) (new 'static 'handle :process #x4b0 :u64 #x4b0))
|
||||
(set! (-> s5-1 proj-params timeout) (seconds 4))
|
||||
(vector+float*! (-> s5-1 proj-params pos) (the-as vector (-> s5-1 mat-1)) (-> s5-1 mat-1 vector 1) 16384.0)
|
||||
(vector-float*! (-> s5-1 proj-params vel) (-> s5-1 mat-1 vector 1) 819200.0)
|
||||
(spawn-projectile guard-shot (-> s5-1 proj-params) obj *default-dead-pool*)
|
||||
|
||||
@@ -796,8 +796,7 @@
|
||||
(set! (-> a1-0 decay-rate) 0.0)
|
||||
(set! (-> a1-0 flags) (traffic-danger-flags tdf0))
|
||||
(set! (-> a1-0 danger-type) (traffic-danger-type tdt0))
|
||||
;; TODO - traffic
|
||||
;; (add-danger-sphere *traffic-engine* a1-0)
|
||||
(add-danger *traffic-engine* a1-0)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
@@ -1813,7 +1812,7 @@
|
||||
(set! (-> v1-69 attack-id) a0-67)
|
||||
(set! (-> s2-1 attack-id) a0-67)
|
||||
)
|
||||
(set! (-> s2-1 timeout) (new 'static 'handle :process #x4b0 :u64 #x4b0))
|
||||
(set! (-> s2-1 timeout) (seconds 4))
|
||||
(set! (-> s2-1 pos quad) (-> s3-0 start-pos quad))
|
||||
(vector+! (-> s2-1 vel) (-> s3-0 start-pos) s5-0)
|
||||
(vector-normalize-copy! (-> s2-1 vel) (-> s3-0 move-dist) 40960000.0)
|
||||
|
||||
@@ -117,7 +117,72 @@
|
||||
:default-hit-points 4
|
||||
:gnd-collide-with (collide-spec backgnd obstacle hit-by-others-list pusher)
|
||||
:overlaps-others-collide-with-filter (collide-spec jak bot player-list)
|
||||
:penetrate-knocked #xffffffffffffffff
|
||||
:penetrate-knocked (penetrate
|
||||
touch
|
||||
generic-attack
|
||||
lunge
|
||||
flop
|
||||
punch
|
||||
spin
|
||||
roll
|
||||
uppercut
|
||||
bonk
|
||||
tube
|
||||
vehicle
|
||||
flut-attack
|
||||
board
|
||||
mech
|
||||
mech-punch
|
||||
mech-bonk
|
||||
dark-skin
|
||||
dark-punch
|
||||
dark-bomb
|
||||
dark-giant
|
||||
shield
|
||||
explode
|
||||
jak-yellow-shot
|
||||
jak-red-shot
|
||||
jak-blue-shot
|
||||
jak-dark-shot
|
||||
enemy-yellow-shot
|
||||
enemy-dark-shot
|
||||
eco-yellow
|
||||
eco-red
|
||||
eco-blue
|
||||
eco-green
|
||||
knocked
|
||||
penetrate-33
|
||||
penetrate-34
|
||||
penetrate-35
|
||||
penetrate-36
|
||||
penetrate-37
|
||||
penetrate-38
|
||||
penetrate-39
|
||||
penetrate-40
|
||||
penetrate-41
|
||||
penetrate-42
|
||||
penetrate-43
|
||||
penetrate-44
|
||||
penetrate-45
|
||||
penetrate-46
|
||||
penetrate-47
|
||||
penetrate-48
|
||||
penetrate-49
|
||||
penetrate-50
|
||||
penetrate-51
|
||||
penetrate-52
|
||||
penetrate-53
|
||||
penetrate-54
|
||||
penetrate-55
|
||||
penetrate-56
|
||||
penetrate-57
|
||||
penetrate-58
|
||||
penetrate-59
|
||||
penetrate-60
|
||||
penetrate-61
|
||||
penetrate-62
|
||||
penetrate-63
|
||||
)
|
||||
:movement-gravity (meters -100)
|
||||
:friction 0.5
|
||||
:attack-shove-back (meters 3)
|
||||
@@ -229,7 +294,72 @@
|
||||
:default-hit-points 4
|
||||
:gnd-collide-with (collide-spec backgnd obstacle hit-by-others-list pusher)
|
||||
:overlaps-others-collide-with-filter (collide-spec jak bot player-list)
|
||||
:penetrate-knocked #xffffffffffffffff
|
||||
:penetrate-knocked (penetrate
|
||||
touch
|
||||
generic-attack
|
||||
lunge
|
||||
flop
|
||||
punch
|
||||
spin
|
||||
roll
|
||||
uppercut
|
||||
bonk
|
||||
tube
|
||||
vehicle
|
||||
flut-attack
|
||||
board
|
||||
mech
|
||||
mech-punch
|
||||
mech-bonk
|
||||
dark-skin
|
||||
dark-punch
|
||||
dark-bomb
|
||||
dark-giant
|
||||
shield
|
||||
explode
|
||||
jak-yellow-shot
|
||||
jak-red-shot
|
||||
jak-blue-shot
|
||||
jak-dark-shot
|
||||
enemy-yellow-shot
|
||||
enemy-dark-shot
|
||||
eco-yellow
|
||||
eco-red
|
||||
eco-blue
|
||||
eco-green
|
||||
knocked
|
||||
penetrate-33
|
||||
penetrate-34
|
||||
penetrate-35
|
||||
penetrate-36
|
||||
penetrate-37
|
||||
penetrate-38
|
||||
penetrate-39
|
||||
penetrate-40
|
||||
penetrate-41
|
||||
penetrate-42
|
||||
penetrate-43
|
||||
penetrate-44
|
||||
penetrate-45
|
||||
penetrate-46
|
||||
penetrate-47
|
||||
penetrate-48
|
||||
penetrate-49
|
||||
penetrate-50
|
||||
penetrate-51
|
||||
penetrate-52
|
||||
penetrate-53
|
||||
penetrate-54
|
||||
penetrate-55
|
||||
penetrate-56
|
||||
penetrate-57
|
||||
penetrate-58
|
||||
penetrate-59
|
||||
penetrate-60
|
||||
penetrate-61
|
||||
penetrate-62
|
||||
penetrate-63
|
||||
)
|
||||
:movement-gravity (meters -100)
|
||||
:friction 0.5
|
||||
:attack-shove-back (meters 3)
|
||||
@@ -341,7 +471,72 @@
|
||||
:default-hit-points 4
|
||||
:gnd-collide-with (collide-spec backgnd obstacle hit-by-others-list pusher)
|
||||
:overlaps-others-collide-with-filter (collide-spec jak bot player-list)
|
||||
:penetrate-knocked #xffffffffffffffff
|
||||
:penetrate-knocked (penetrate
|
||||
touch
|
||||
generic-attack
|
||||
lunge
|
||||
flop
|
||||
punch
|
||||
spin
|
||||
roll
|
||||
uppercut
|
||||
bonk
|
||||
tube
|
||||
vehicle
|
||||
flut-attack
|
||||
board
|
||||
mech
|
||||
mech-punch
|
||||
mech-bonk
|
||||
dark-skin
|
||||
dark-punch
|
||||
dark-bomb
|
||||
dark-giant
|
||||
shield
|
||||
explode
|
||||
jak-yellow-shot
|
||||
jak-red-shot
|
||||
jak-blue-shot
|
||||
jak-dark-shot
|
||||
enemy-yellow-shot
|
||||
enemy-dark-shot
|
||||
eco-yellow
|
||||
eco-red
|
||||
eco-blue
|
||||
eco-green
|
||||
knocked
|
||||
penetrate-33
|
||||
penetrate-34
|
||||
penetrate-35
|
||||
penetrate-36
|
||||
penetrate-37
|
||||
penetrate-38
|
||||
penetrate-39
|
||||
penetrate-40
|
||||
penetrate-41
|
||||
penetrate-42
|
||||
penetrate-43
|
||||
penetrate-44
|
||||
penetrate-45
|
||||
penetrate-46
|
||||
penetrate-47
|
||||
penetrate-48
|
||||
penetrate-49
|
||||
penetrate-50
|
||||
penetrate-51
|
||||
penetrate-52
|
||||
penetrate-53
|
||||
penetrate-54
|
||||
penetrate-55
|
||||
penetrate-56
|
||||
penetrate-57
|
||||
penetrate-58
|
||||
penetrate-59
|
||||
penetrate-60
|
||||
penetrate-61
|
||||
penetrate-62
|
||||
penetrate-63
|
||||
)
|
||||
:movement-gravity (meters -100)
|
||||
:friction 0.5
|
||||
:attack-shove-back (meters 3)
|
||||
@@ -453,7 +648,72 @@
|
||||
:default-hit-points 4
|
||||
:gnd-collide-with (collide-spec backgnd obstacle hit-by-others-list pusher)
|
||||
:overlaps-others-collide-with-filter (collide-spec jak bot player-list)
|
||||
:penetrate-knocked #xffffffffffffffff
|
||||
:penetrate-knocked (penetrate
|
||||
touch
|
||||
generic-attack
|
||||
lunge
|
||||
flop
|
||||
punch
|
||||
spin
|
||||
roll
|
||||
uppercut
|
||||
bonk
|
||||
tube
|
||||
vehicle
|
||||
flut-attack
|
||||
board
|
||||
mech
|
||||
mech-punch
|
||||
mech-bonk
|
||||
dark-skin
|
||||
dark-punch
|
||||
dark-bomb
|
||||
dark-giant
|
||||
shield
|
||||
explode
|
||||
jak-yellow-shot
|
||||
jak-red-shot
|
||||
jak-blue-shot
|
||||
jak-dark-shot
|
||||
enemy-yellow-shot
|
||||
enemy-dark-shot
|
||||
eco-yellow
|
||||
eco-red
|
||||
eco-blue
|
||||
eco-green
|
||||
knocked
|
||||
penetrate-33
|
||||
penetrate-34
|
||||
penetrate-35
|
||||
penetrate-36
|
||||
penetrate-37
|
||||
penetrate-38
|
||||
penetrate-39
|
||||
penetrate-40
|
||||
penetrate-41
|
||||
penetrate-42
|
||||
penetrate-43
|
||||
penetrate-44
|
||||
penetrate-45
|
||||
penetrate-46
|
||||
penetrate-47
|
||||
penetrate-48
|
||||
penetrate-49
|
||||
penetrate-50
|
||||
penetrate-51
|
||||
penetrate-52
|
||||
penetrate-53
|
||||
penetrate-54
|
||||
penetrate-55
|
||||
penetrate-56
|
||||
penetrate-57
|
||||
penetrate-58
|
||||
penetrate-59
|
||||
penetrate-60
|
||||
penetrate-61
|
||||
penetrate-62
|
||||
penetrate-63
|
||||
)
|
||||
:movement-gravity (meters -100)
|
||||
:friction 0.5
|
||||
:attack-shove-back (meters 3)
|
||||
@@ -565,7 +825,72 @@
|
||||
:default-hit-points 4
|
||||
:gnd-collide-with (collide-spec backgnd obstacle hit-by-others-list pusher)
|
||||
:overlaps-others-collide-with-filter (collide-spec jak bot player-list)
|
||||
:penetrate-knocked #xffffffffffffffff
|
||||
:penetrate-knocked (penetrate
|
||||
touch
|
||||
generic-attack
|
||||
lunge
|
||||
flop
|
||||
punch
|
||||
spin
|
||||
roll
|
||||
uppercut
|
||||
bonk
|
||||
tube
|
||||
vehicle
|
||||
flut-attack
|
||||
board
|
||||
mech
|
||||
mech-punch
|
||||
mech-bonk
|
||||
dark-skin
|
||||
dark-punch
|
||||
dark-bomb
|
||||
dark-giant
|
||||
shield
|
||||
explode
|
||||
jak-yellow-shot
|
||||
jak-red-shot
|
||||
jak-blue-shot
|
||||
jak-dark-shot
|
||||
enemy-yellow-shot
|
||||
enemy-dark-shot
|
||||
eco-yellow
|
||||
eco-red
|
||||
eco-blue
|
||||
eco-green
|
||||
knocked
|
||||
penetrate-33
|
||||
penetrate-34
|
||||
penetrate-35
|
||||
penetrate-36
|
||||
penetrate-37
|
||||
penetrate-38
|
||||
penetrate-39
|
||||
penetrate-40
|
||||
penetrate-41
|
||||
penetrate-42
|
||||
penetrate-43
|
||||
penetrate-44
|
||||
penetrate-45
|
||||
penetrate-46
|
||||
penetrate-47
|
||||
penetrate-48
|
||||
penetrate-49
|
||||
penetrate-50
|
||||
penetrate-51
|
||||
penetrate-52
|
||||
penetrate-53
|
||||
penetrate-54
|
||||
penetrate-55
|
||||
penetrate-56
|
||||
penetrate-57
|
||||
penetrate-58
|
||||
penetrate-59
|
||||
penetrate-60
|
||||
penetrate-61
|
||||
penetrate-62
|
||||
penetrate-63
|
||||
)
|
||||
:movement-gravity (meters -100)
|
||||
:friction 0.5
|
||||
:attack-shove-back (meters 3)
|
||||
@@ -871,7 +1196,7 @@
|
||||
(set! (-> a0-13 attack-id) a1-12)
|
||||
(set! (-> s4-1 attack-id) a1-12)
|
||||
)
|
||||
(set! (-> s4-1 timeout) (new 'static 'handle :process #x4b0 :u64 #x4b0))
|
||||
(set! (-> s4-1 timeout) (seconds 4))
|
||||
(set! (-> s4-1 pos quad) (-> s5-0 quad))
|
||||
(set! (-> s4-1 vel quad) (-> v1-3 quad))
|
||||
(vector-normalize! (-> s4-1 vel) 819200.0)
|
||||
@@ -2476,7 +2801,7 @@
|
||||
(set! (-> v1-24 attack-id) a0-23)
|
||||
(set! (-> a1-9 attack-id) a0-23)
|
||||
)
|
||||
(set! (-> a1-9 timeout) (new 'static 'handle :process #x4b0 :u64 #x4b0))
|
||||
(set! (-> a1-9 timeout) (seconds 4))
|
||||
(spawn-projectile vehicle-grenade a1-9 obj *default-dead-pool*)
|
||||
)
|
||||
)
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -5,5 +5,318 @@
|
||||
;; name in dgo: hover-enemy-battle
|
||||
;; dgos: FOR, DMI, FRA, STR, NEB, D3A, UNB
|
||||
|
||||
(declare-type base-turret process-focusable)
|
||||
(declare-type turret base-turret)
|
||||
|
||||
;; DECOMP BEGINS
|
||||
|
||||
(deftype hover-enemy-battle-command (structure)
|
||||
((command symbol :offset-assert 0)
|
||||
(wave uint16 :offset-assert 4)
|
||||
(time time-frame :offset-assert 8)
|
||||
(alive-count int32 :offset-assert 16)
|
||||
)
|
||||
:method-count-assert 9
|
||||
:size-assert #x14
|
||||
:flag-assert #x900000014
|
||||
)
|
||||
|
||||
|
||||
(deftype hover-enemy-manager (process)
|
||||
((command-table (array hover-enemy-battle-command) :offset-assert 128)
|
||||
(path path-control :offset-assert 132)
|
||||
(formation hover-formation-control :offset-assert 136)
|
||||
(actor-group (pointer actor-group) :offset-assert 140)
|
||||
(actor-group-count int32 :offset-assert 144)
|
||||
(total-to-spawn int32 :offset-assert 148)
|
||||
(num-spawned int32 :offset-assert 152)
|
||||
(alive-count int32 :offset-assert 156)
|
||||
(formation-timer time-frame :offset-assert 160)
|
||||
)
|
||||
:heap-base #x30
|
||||
:method-count-assert 19
|
||||
:size-assert #xa8
|
||||
:flag-assert #x13003000a8
|
||||
(:methods
|
||||
(idle () _type_ :state 14)
|
||||
(spawning (object object process pointer) _type_ :state 15)
|
||||
(die () _type_ :state 16)
|
||||
(hover-enemy-manager-init! (_type_ (array hover-enemy-battle-command)) none 17)
|
||||
(spawn-enemy (_type_ uint) none 18)
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
(defbehavior hover-enemy-manager-handler hover-enemy-manager ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
|
||||
(local-vars (v0-0 object))
|
||||
(case arg2
|
||||
(('join 'leave 'set-type 'get-formation 'set-los)
|
||||
(when (-> self formation)
|
||||
(let ((v1-2 (-> self formation))
|
||||
(a1-8 arg0)
|
||||
)
|
||||
(case arg2
|
||||
(('join)
|
||||
(hover-formation-control-method-17 v1-2 a1-8)
|
||||
)
|
||||
(('leave)
|
||||
(hover-formation-control-method-18 v1-2 a1-8)
|
||||
)
|
||||
(('set-type)
|
||||
(let ((a1-11 1))
|
||||
(case (-> arg3 param 0)
|
||||
(('line)
|
||||
(set! a1-11 0)
|
||||
)
|
||||
(('circle)
|
||||
(set! a1-11 2)
|
||||
)
|
||||
(('semicircle)
|
||||
(set! a1-11 3)
|
||||
)
|
||||
)
|
||||
(try-update-formation-type v1-2 (the-as formation-type a1-11))
|
||||
)
|
||||
)
|
||||
(('get-formation)
|
||||
v1-2
|
||||
)
|
||||
(('set-los)
|
||||
(cond
|
||||
((-> arg3 param 0)
|
||||
(set! v0-0 (logior (-> v1-2 flags) 2))
|
||||
(set! (-> v1-2 flags) (the-as uint v0-0))
|
||||
)
|
||||
(else
|
||||
(set! v0-0 (logand -3 (-> v1-2 flags)))
|
||||
(set! (-> v1-2 flags) (the-as uint v0-0))
|
||||
)
|
||||
)
|
||||
v0-0
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(('num-alive?)
|
||||
(-> self alive-count)
|
||||
)
|
||||
(('num-spawned?)
|
||||
(-> self num-spawned)
|
||||
)
|
||||
(('total-to-spawn?)
|
||||
(-> self total-to-spawn)
|
||||
)
|
||||
(('hover-die)
|
||||
(set! v0-0 (max 0 (+ (-> self alive-count) -1)))
|
||||
(set! (-> self alive-count) (the-as int v0-0))
|
||||
v0-0
|
||||
)
|
||||
(('path)
|
||||
(if (not (logtest? (-> self path flags) (path-control-flag not-found)))
|
||||
(-> self path)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
(defbehavior hover-enemy-manager-post hover-enemy-manager ()
|
||||
(when (-> self formation)
|
||||
(let ((gp-0 (-> self formation)))
|
||||
(let ((a0-0 gp-0))
|
||||
((the-as (function hover-formation-control none) (method-of-object a0-0 hover-formation-control-method-14))
|
||||
a0-0
|
||||
)
|
||||
)
|
||||
(when (and (logtest? (-> gp-0 flags) 2)
|
||||
(>= (- (-> self clock frame-counter) (-> self formation-timer)) (seconds 0.2))
|
||||
)
|
||||
(hover-formation-control-method-11 gp-0)
|
||||
(set! (-> self formation-timer) (-> self clock frame-counter))
|
||||
)
|
||||
)
|
||||
)
|
||||
(if (not (logtest? (-> self path flags) (path-control-flag not-found)))
|
||||
(debug-draw (-> self path))
|
||||
)
|
||||
(none)
|
||||
)
|
||||
|
||||
(defstate idle (hover-enemy-manager)
|
||||
:virtual #t
|
||||
:event (behavior ((proc process) (arg1 int) (event-type symbol) (event event-message-block))
|
||||
(case event-type
|
||||
(('trigger)
|
||||
(go-virtual spawning proc arg1 (the-as process event-type) (the-as pointer event))
|
||||
)
|
||||
(else
|
||||
(hover-enemy-manager-handler proc arg1 event-type event)
|
||||
)
|
||||
)
|
||||
)
|
||||
:code (the-as (function none :behavior hover-enemy-manager) sleep-code)
|
||||
:post hover-enemy-manager-post
|
||||
)
|
||||
|
||||
(defstate spawning (hover-enemy-manager)
|
||||
:virtual #t
|
||||
:event (behavior ((proc process) (arg1 int) (event-type symbol) (event event-message-block))
|
||||
(case event-type
|
||||
(('spawning?)
|
||||
#t
|
||||
)
|
||||
(else
|
||||
(hover-enemy-manager-handler proc arg1 event-type event)
|
||||
)
|
||||
)
|
||||
)
|
||||
:enter (behavior ((arg0 object) (arg1 object) (arg2 process) (arg3 pointer))
|
||||
(let ((a0-1 (-> self formation)))
|
||||
(if a0-1
|
||||
(set-anchor-proc a0-1 (process->handle *target*))
|
||||
)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
:code (behavior ((arg0 object) (arg1 object) (arg2 process) (arg3 pointer))
|
||||
(let ((gp-0 (-> self command-table)))
|
||||
(dotimes (s5-0 (-> gp-0 length))
|
||||
(case (-> gp-0 s5-0 command)
|
||||
(('spawn)
|
||||
(spawn-enemy self (-> gp-0 s5-0 wave))
|
||||
)
|
||||
(('wait)
|
||||
)
|
||||
)
|
||||
(let ((s4-0 (-> self clock frame-counter)))
|
||||
(until (>= (- (-> self clock frame-counter) s4-0) (-> gp-0 s5-0 time))
|
||||
(suspend)
|
||||
)
|
||||
)
|
||||
(while (< (-> gp-0 s5-0 alive-count) (-> self alive-count))
|
||||
(suspend)
|
||||
)
|
||||
)
|
||||
)
|
||||
(let ((gp-1 (-> self clock frame-counter)))
|
||||
(until (>= (- (-> self clock frame-counter) gp-1) (seconds 2))
|
||||
(suspend)
|
||||
)
|
||||
)
|
||||
(go-virtual die)
|
||||
(none)
|
||||
)
|
||||
:post hover-enemy-manager-post
|
||||
)
|
||||
|
||||
(defstate die (hover-enemy-manager)
|
||||
:virtual #t
|
||||
:event hover-enemy-manager-handler
|
||||
:code (behavior ()
|
||||
(while (-> self child)
|
||||
(suspend)
|
||||
)
|
||||
(process-entity-status! self (entity-perm-status dead) #t)
|
||||
(none)
|
||||
)
|
||||
)
|
||||
|
||||
(defmethod spawn-enemy hover-enemy-manager ((obj hover-enemy-manager) (arg0 uint))
|
||||
(when (< arg0 (the-as uint (-> obj actor-group-count)))
|
||||
(dotimes (s4-0 (-> obj actor-group arg0 length))
|
||||
(let* ((s1-0 (-> obj actor-group arg0 data s4-0 actor))
|
||||
(s2-0 (-> (the-as entity-actor s1-0) etype))
|
||||
(s3-0 (new 'stack-no-clear 'transformq))
|
||||
)
|
||||
(set! (-> s3-0 trans quad) (-> s1-0 extra trans quad))
|
||||
(quaternion-copy! (-> s3-0 quat) (-> (the-as entity-actor s1-0) quat))
|
||||
(set! (-> s3-0 scale x) (the-as float s1-0))
|
||||
(set! (-> s3-0 scale y) (the-as float #f))
|
||||
(set! (-> s3-0 scale z) (the-as float #t))
|
||||
(let ((s1-1 (get-process *default-dead-pool* s2-0 #x4000)))
|
||||
(when (when s1-1
|
||||
(let ((t9-2 (method-of-type process activate)))
|
||||
(t9-2 s1-1 obj (symbol->string (-> s2-0 symbol)) (the-as pointer #x70004000))
|
||||
)
|
||||
(run-now-in-process s1-1 enemy-init-by-other obj s3-0)
|
||||
(-> s1-1 ppointer)
|
||||
)
|
||||
(+! (-> obj alive-count) 1)
|
||||
(+! (-> obj num-spawned) 1)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
0
|
||||
(none)
|
||||
)
|
||||
|
||||
;; WARN: Return type mismatch process vs hover-enemy-manager.
|
||||
(defmethod relocate hover-enemy-manager ((obj hover-enemy-manager) (arg0 int))
|
||||
(when (-> obj formation)
|
||||
(if (nonzero? (-> obj formation))
|
||||
(&+! (-> obj formation) arg0)
|
||||
)
|
||||
)
|
||||
(if (nonzero? (-> obj path))
|
||||
(&+! (-> obj path) arg0)
|
||||
)
|
||||
(the-as
|
||||
hover-enemy-manager
|
||||
((the-as (function process int process) (find-parent-method hover-enemy-manager 7)) obj arg0)
|
||||
)
|
||||
)
|
||||
|
||||
(defmethod hover-enemy-manager-init! hover-enemy-manager ((obj hover-enemy-manager) (arg0 (array hover-enemy-battle-command)))
|
||||
"Initialize this [[hover-enemy-manager]]."
|
||||
(local-vars (sv-16 res-tag))
|
||||
(with-pp
|
||||
(set! (-> obj command-table) arg0)
|
||||
(set! (-> obj path) (new 'process 'path-control obj 'path 0.0 (-> obj entity) #f))
|
||||
(logior! (-> obj path flags) (path-control-flag display draw-line draw-point draw-text))
|
||||
(set! sv-16 (new 'static 'res-tag))
|
||||
(let ((v1-5 (res-lump-data (-> obj entity) 'actor-groups pointer :tag-ptr (& sv-16))))
|
||||
(cond
|
||||
((and v1-5 (nonzero? (-> sv-16 elt-count)))
|
||||
(set! (-> obj actor-group) (the-as (pointer actor-group) v1-5))
|
||||
(set! (-> obj actor-group-count) (the-as int (-> sv-16 elt-count)))
|
||||
)
|
||||
(else
|
||||
(set! (-> obj actor-group) (the-as (pointer actor-group) #f))
|
||||
(set! (-> obj actor-group-count) 0)
|
||||
0
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! (-> obj total-to-spawn) 0)
|
||||
(set! (-> obj num-spawned) 0)
|
||||
(when (-> obj command-table)
|
||||
(let ((v1-13 (-> obj command-table)))
|
||||
(dotimes (a0-6 (-> v1-13 length))
|
||||
(if (= (-> v1-13 a0-6 command) 'spawn)
|
||||
(+! (-> obj total-to-spawn) (-> obj actor-group (-> v1-13 a0-6 wave) length))
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! (-> obj formation) #f)
|
||||
(set! (-> obj formation-timer) (-> pp clock frame-counter))
|
||||
(set! (-> obj alive-count) 0)
|
||||
0
|
||||
(none)
|
||||
)
|
||||
)
|
||||
|
||||
;; WARN: Return type mismatch object vs none.
|
||||
(defbehavior hover-enemy-manager-init-by-other hover-enemy-manager ((arg0 entity-actor) (arg1 (array hover-enemy-battle-command)))
|
||||
(set! (-> self entity) arg0)
|
||||
(hover-enemy-manager-init! self arg1)
|
||||
(go-virtual idle)
|
||||
(none)
|
||||
)
|
||||
|
||||
;; WARN: Return type mismatch process-tree vs process.
|
||||
(defun hover-manager-spawn ((arg0 turret) (arg1 entity-actor) (arg2 (array hover-enemy-battle-command)))
|
||||
(the-as process (ppointer->process (process-spawn hover-enemy-manager arg1 arg2 :to arg0)))
|
||||
)
|
||||
|
||||
@@ -27,56 +27,56 @@
|
||||
|
||||
|
||||
(deftype hover-enemy (enemy)
|
||||
((hover basic :offset-assert 532)
|
||||
(hover-info hover-enemy-info :offset-assert 536)
|
||||
(formation-entity basic :offset-assert 540)
|
||||
(fly-anim-speed float :offset-assert 544)
|
||||
(restart-fly-anims basic :offset-assert 548)
|
||||
(main-joint-acc vector :inline :offset-assert 560)
|
||||
(main-joint-vel vector :inline :offset-assert 576)
|
||||
(main-joint-pos vector :inline :offset-assert 592)
|
||||
(thrust int64 2 :offset-assert 608)
|
||||
(rotation-vec vector :inline :offset-assert 624)
|
||||
(dest-pos vector :inline :offset-assert 640)
|
||||
(offset vector :inline :offset-assert 656)
|
||||
(surface-normal vector :inline :offset-assert 672)
|
||||
(local-dir vector :inline :offset-assert 688)
|
||||
(scale float :offset-assert 704)
|
||||
(scale-timer uint64 :offset-assert 712)
|
||||
(hit-surface? basic :offset-assert 720)
|
||||
(knocked-start-level float :offset-assert 724)
|
||||
(knocked-fall-dist float :offset-assert 728)
|
||||
(flying-death-anim int32 :offset-assert 732)
|
||||
(flying-death-transv vector :inline :offset-assert 736)
|
||||
(flying-death-engine int32 :offset-assert 752)
|
||||
(flying-death-thrust-rotate float :offset-assert 756)
|
||||
(flying-death-spin float :offset-assert 760)
|
||||
(flying-death-spin-dest float :offset-assert 764)
|
||||
(flying-death-spin-axis vector :inline :offset-assert 768)
|
||||
((hover hover-nav-control :offset-assert 532)
|
||||
(hover-info hover-enemy-info :offset-assert 536)
|
||||
(formation-entity entity :offset-assert 540)
|
||||
(fly-anim-speed float :offset-assert 544)
|
||||
(restart-fly-anims symbol :offset-assert 548)
|
||||
(main-joint-acc vector :inline :offset-assert 560)
|
||||
(main-joint-vel vector :inline :offset-assert 576)
|
||||
(main-joint-pos vector :inline :offset-assert 592)
|
||||
(thrust float 2 :offset-assert 608)
|
||||
(rotation-vec vector :inline :offset-assert 624)
|
||||
(dest-pos vector :inline :offset-assert 640)
|
||||
(offset vector :inline :offset-assert 656)
|
||||
(surface-normal vector :inline :offset-assert 672)
|
||||
(local-dir vector :inline :offset-assert 688)
|
||||
(scale float :offset-assert 704)
|
||||
(scale-timer uint64 :offset-assert 712)
|
||||
(hit-surface? symbol :offset-assert 720)
|
||||
(knocked-start-level float :offset-assert 724)
|
||||
(knocked-fall-dist float :offset-assert 728)
|
||||
(flying-death-anim int32 :offset-assert 732)
|
||||
(flying-death-transv vector :inline :offset-assert 736)
|
||||
(flying-death-engine int32 :offset-assert 752)
|
||||
(flying-death-thrust-rotate float :offset-assert 756)
|
||||
(flying-death-spin float :offset-assert 760)
|
||||
(flying-death-spin-dest float :offset-assert 764)
|
||||
(flying-death-spin-axis vector :inline :offset-assert 768)
|
||||
)
|
||||
:heap-base #x290
|
||||
:method-count-assert 156
|
||||
:size-assert #x310
|
||||
:flag-assert #x9c02900310
|
||||
(:methods
|
||||
(hover-enemy-method-137 () none 137)
|
||||
(hover-enemy-method-138 () none 138)
|
||||
(hover-enemy-method-139 () none 139)
|
||||
(hover-enemy-method-140 () none 140)
|
||||
(hover-enemy-method-141 () none 141)
|
||||
(hover-enemy-method-142 () none 142)
|
||||
(hover-enemy-method-143 () none 143)
|
||||
(hover-enemy-method-144 () none 144)
|
||||
(hover-enemy-method-145 () none 145)
|
||||
(hover-enemy-method-146 () none 146)
|
||||
(hover-enemy-method-147 () none 147)
|
||||
(hover-enemy-method-148 () none 148)
|
||||
(hover-enemy-method-149 () none 149)
|
||||
(hover-enemy-method-150 () none 150)
|
||||
(hover-enemy-method-151 () none 151)
|
||||
(hover-enemy-method-152 () none 152)
|
||||
(hover-enemy-method-153 () none 153)
|
||||
(hover-enemy-method-154 () none 154)
|
||||
(hover-enemy-method-155 () none 155)
|
||||
(knocked-recover () _type_ :state 137)
|
||||
(flying-death () _type_ :state 138)
|
||||
(flying-death-explode () _type_ :state 139)
|
||||
(hover-enemy-method-140 (_type_ symbol) none 140)
|
||||
(hover-enemy-method-141 (_type_ float) none 141)
|
||||
(hover-enemy-method-142 (_type_) none 142)
|
||||
(hover-enemy-method-143 (_type_ int float) none 143)
|
||||
(hover-enemy-method-144 (_type_) none 144)
|
||||
(hover-enemy-method-145 (_type_ int float int int) none 145)
|
||||
(hover-enemy-method-146 (_type_) none 146)
|
||||
(hover-enemy-method-147 (_type_) none 147)
|
||||
(hover-enemy-method-148 (_type_) none 148)
|
||||
(hover-enemy-method-149 (_type_) none 149)
|
||||
(hover-enemy-method-150 (_type_) enemy-info 150)
|
||||
(hover-enemy-method-151 (_type_) hover-enemy-info 151)
|
||||
(hover-enemy-method-152 (_type_) hover-nav-params 152)
|
||||
(hover-enemy-method-153 (_type_) none 153)
|
||||
(hover-enemy-method-154 (_type_) none 154)
|
||||
(hover-enemy-method-155 (_type_) none 155)
|
||||
)
|
||||
)
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -35,7 +35,7 @@
|
||||
|
||||
|
||||
(deftype hover-actor (structure)
|
||||
((handle uint64 :offset-assert 0)
|
||||
((handle handle :offset-assert 0)
|
||||
(offset vector :inline :offset-assert 16)
|
||||
)
|
||||
:method-count-assert 9
|
||||
@@ -91,6 +91,6 @@
|
||||
:flag-assert #x1000100090
|
||||
(:methods
|
||||
(idle () _type_ :state 14)
|
||||
(hover-formation-method-15 (_type_) int 15)
|
||||
(hover-formation-method-15 (_type_ vector vector) int 15)
|
||||
)
|
||||
)
|
||||
|
||||
@@ -671,7 +671,7 @@
|
||||
(the-as hover-formation ((the-as (function basic int basic) (find-parent-method hover-formation 7)) obj arg0))
|
||||
)
|
||||
|
||||
(defmethod hover-formation-method-15 hover-formation ((obj hover-formation))
|
||||
(defmethod hover-formation-method-15 hover-formation ((obj hover-formation) (arg0 vector) (arg1 vector))
|
||||
0
|
||||
)
|
||||
|
||||
@@ -720,8 +720,14 @@ This commonly includes things such as:
|
||||
)
|
||||
(set! (-> obj formation-timer) (the-as uint (-> pp clock frame-counter)))
|
||||
(logclear! (-> obj mask) (process-mask actor-pause))
|
||||
(process-entity-status! obj (entity-perm-status no-kill) #t)
|
||||
(hover-formation-method-15 obj)
|
||||
(let ((t9-6 process-entity-status!)
|
||||
(a0-9 obj)
|
||||
(a1-7 8)
|
||||
(a2-6 #t)
|
||||
)
|
||||
(t9-6 a0-9 (the-as entity-perm-status a1-7) a2-6)
|
||||
(hover-formation-method-15 obj (the-as vector a1-7) (the-as vector a2-6))
|
||||
)
|
||||
(go (method-of-object obj idle))
|
||||
(none)
|
||||
)
|
||||
|
||||
@@ -88,9 +88,9 @@
|
||||
(set! (-> nav-network-info-array heap-base) (the-as uint 80))
|
||||
|
||||
(deftype hover-nav-sphere (list-node)
|
||||
((sphere sphere :inline :offset-assert 16)
|
||||
(handle uint64 :offset-assert 32)
|
||||
(timer uint64 :offset-assert 40)
|
||||
((sphere sphere :inline :offset-assert 16)
|
||||
(handle handle :offset-assert 32)
|
||||
(timer time-frame :offset-assert 40)
|
||||
)
|
||||
:method-count-assert 9
|
||||
:size-assert #x30
|
||||
@@ -100,7 +100,7 @@
|
||||
|
||||
(deftype hover-nav-path-segment (list-node)
|
||||
((curve-matrix matrix :inline :offset-assert 16)
|
||||
(pos-index int32 2 :offset-assert 80)
|
||||
(pos-index float 2 :offset-assert 80)
|
||||
(dist float :offset-assert 88)
|
||||
(du float :offset-assert 92)
|
||||
)
|
||||
@@ -129,7 +129,7 @@
|
||||
:size-assert #x10
|
||||
:flag-assert #xa00000010
|
||||
(:methods
|
||||
(hover-nav-path-info-method-9 () none 9)
|
||||
(hover-nav-path-info-method-9 (_type_) none 9)
|
||||
)
|
||||
)
|
||||
|
||||
@@ -146,46 +146,47 @@
|
||||
(set! (-> path-index-array heap-base) (the-as uint 4))
|
||||
|
||||
(deftype nav-network (basic)
|
||||
((network basic :offset-assert 4)
|
||||
(dummy nav-network-info :inline :offset-assert 16)
|
||||
(control-handle handle :offset-assert 88)
|
||||
(list-table list-node 5 :offset-assert 96)
|
||||
(open-list nav-network-path-node :offset 96)
|
||||
(closed-list nav-network-path-node :offset 100)
|
||||
(sphere-list hover-nav-sphere :offset 108)
|
||||
(free-segment-list hover-nav-path-segment :offset 104)
|
||||
(free-sphere-list hover-nav-sphere :offset 112)
|
||||
(segment-pool uint32 :offset-assert 116)
|
||||
(sphere-pool uint32 :offset-assert 120)
|
||||
((network (array nav-network-info) :offset-assert 4)
|
||||
(dummy nav-network-info :inline :offset-assert 16)
|
||||
(control-handle handle :offset-assert 88)
|
||||
(list-table list-node 5 :offset-assert 96)
|
||||
(open-list nav-network-path-node :offset 96)
|
||||
(closed-list nav-network-path-node :offset 100)
|
||||
(sphere-list hover-nav-sphere :offset 108)
|
||||
(free-segment-list hover-nav-path-segment :offset 104)
|
||||
(free-sphere-list hover-nav-sphere :offset 112)
|
||||
(segment-pool (pointer hover-nav-path-segment) :offset-assert 116)
|
||||
(sphere-pool (pointer hover-nav-sphere) :offset-assert 120)
|
||||
)
|
||||
:method-count-assert 33
|
||||
:size-assert #x7c
|
||||
:flag-assert #x210000007c
|
||||
(:methods
|
||||
(new (symbol type) _type_ 0)
|
||||
(nav-network-method-9 (_type_) none 9)
|
||||
(nav-network-method-10 (_type_ level (array nav-network-info)) none 10)
|
||||
(nav-network-method-11 (_type_) none 11)
|
||||
(nav-network-method-12 (_type_) none 12)
|
||||
(nav-network-method-13 (_type_) none 13)
|
||||
(nav-network-method-14 (_type_ int) none 14)
|
||||
(nav-network-method-15 (_type_) none 15)
|
||||
(nav-network-method-16 (_type_) none 16)
|
||||
(nav-network-method-13 (_type_ int nav-network-path-node) none 13)
|
||||
(nav-network-method-14 (_type_ int nav-network-path-node) object 14)
|
||||
(nav-network-method-15 (_type_ nav-network-path-node) object 15)
|
||||
(nav-network-method-16 (_type_ nav-network-path-node) none 16)
|
||||
(nav-network-method-17 (_type_) nav-network-path-node 17)
|
||||
(nav-network-method-18 (_type_) none 18)
|
||||
(nav-network-method-19 (_type_) none 19)
|
||||
(nav-network-method-20 (_type_) none 20)
|
||||
(nav-network-method-21 (_type_) none 21)
|
||||
(nav-network-method-22 (_type_) none 22)
|
||||
(nav-network-method-23 (_type_) none 23)
|
||||
(nav-network-method-24 (_type_) none 24)
|
||||
(nav-network-method-25 (_type_) none 25)
|
||||
(nav-network-method-26 (_type_) none 26)
|
||||
(nav-network-method-18 (_type_ nav-network-path-node) none 18)
|
||||
(nav-network-method-19 (_type_ nav-network-path-node) none 19)
|
||||
(nav-network-method-20 (_type_ nav-network-path-node vector) none 20)
|
||||
(nav-network-method-21 (_type_ object int int) none 21)
|
||||
(nav-network-method-22 (_type_ hover-nav-path-info vector vector int int) hover-nav-path-segment 22)
|
||||
(nav-network-method-23 (_type_ hover-nav-path-info) none 23)
|
||||
(nav-network-method-24 (_type_ hover-nav-path-info int int int) symbol 24)
|
||||
(nav-network-method-25 (_type_ process collide-prim-core) none 25)
|
||||
(nav-network-method-26 (_type_ vector process vector vector float) vector 26)
|
||||
(nav-network-method-27 (_type_) none 27)
|
||||
(nav-network-method-28 (_type_) none 28)
|
||||
(nav-network-method-29 (_type_) symbol 29)
|
||||
(get-network (_type_) basic 30)
|
||||
(nav-network-method-31 () none 31)
|
||||
(nav-network-method-32 () none 32)
|
||||
(get-network (_type_) (array nav-network-info) 30)
|
||||
(nav-network-method-31 (_type_ bounding-box) none 31)
|
||||
(nav-network-method-32 (_type_ string) none 32)
|
||||
)
|
||||
)
|
||||
|
||||
@@ -207,58 +208,59 @@
|
||||
|
||||
|
||||
(deftype hover-nav-control (basic)
|
||||
((root basic :offset-assert 4)
|
||||
(nav basic :offset-assert 8)
|
||||
(flags uint16 :offset-assert 12)
|
||||
(params hover-nav-params :offset-assert 16)
|
||||
(path-timer uint64 :offset-assert 24)
|
||||
(transvv vector :inline :offset-assert 32)
|
||||
(dest-pos vector :inline :offset-assert 48)
|
||||
(dest-vel vector :inline :offset-assert 64)
|
||||
(dest-move-dir vector :inline :offset-assert 80)
|
||||
(dest-offset vector :inline :offset-assert 96)
|
||||
(move-dir vector :inline :offset-assert 112)
|
||||
(nav-collide-impulse vector :inline :offset-assert 128)
|
||||
(nav-collide-impulse-len float :offset-assert 144)
|
||||
(dest-speed float :offset-assert 148)
|
||||
(local-dist float :offset-assert 152)
|
||||
(speed float :offset-assert 156)
|
||||
(max-los-speed float :offset-assert 160)
|
||||
(target-speed float :offset-assert 164)
|
||||
(target-acceleration float :offset-assert 168)
|
||||
(speed-dest float :offset-assert 172)
|
||||
(path-info hover-nav-path-info :inline :offset-assert 176)
|
||||
(curr-dest-pt int32 :offset-assert 192)
|
||||
(los-obstruction-distance float :offset-assert 196)
|
||||
(los-last-clear-time time-frame :offset-assert 200)
|
||||
(max-speed-multiplier float :offset-assert 208)
|
||||
(max-acceleration-multiplier float :offset-assert 212)
|
||||
((root collide-shape-moving :offset-assert 4)
|
||||
(nav nav-network :offset-assert 8)
|
||||
(flags uint16 :offset-assert 12)
|
||||
(params hover-nav-params :offset-assert 16)
|
||||
(path-timer time-frame :offset-assert 24)
|
||||
(transvv vector :inline :offset-assert 32)
|
||||
(dest-pos vector :inline :offset-assert 48)
|
||||
(dest-vel vector :inline :offset-assert 64)
|
||||
(dest-move-dir vector :inline :offset-assert 80)
|
||||
(dest-offset vector :inline :offset-assert 96)
|
||||
(move-dir vector :inline :offset-assert 112)
|
||||
(nav-collide-impulse vector :inline :offset-assert 128)
|
||||
(nav-collide-impulse-len float :offset-assert 144)
|
||||
(dest-speed float :offset-assert 148)
|
||||
(local-dist float :offset-assert 152)
|
||||
(speed float :offset-assert 156)
|
||||
(max-los-speed float :offset-assert 160)
|
||||
(target-speed float :offset-assert 164)
|
||||
(target-acceleration float :offset-assert 168)
|
||||
(speed-dest float :offset-assert 172)
|
||||
(path-info hover-nav-path-info :inline :offset-assert 176)
|
||||
(curr-dest-pt int32 :offset-assert 192)
|
||||
(los-obstruction-distance float :offset-assert 196)
|
||||
(los-last-clear-time time-frame :offset-assert 200)
|
||||
(max-speed-multiplier float :offset-assert 208)
|
||||
(max-acceleration-multiplier float :offset-assert 212)
|
||||
)
|
||||
:method-count-assert 32
|
||||
:size-assert #xd8
|
||||
:flag-assert #x20000000d8
|
||||
(:methods
|
||||
(new (symbol type process collide-shape-moving hover-nav-params) _type_ 0)
|
||||
(hover-nav-control-method-9 (_type_) none 9)
|
||||
(hover-nav-control-method-10 (_type_) none 10)
|
||||
(hover-nav-control-method-11 (_type_) none 11)
|
||||
(hover-nav-control-method-10 (_type_ vector vector vector) none 10)
|
||||
(hover-nav-control-method-11 (_type_ vector) none 11)
|
||||
(hover-nav-control-method-12 (_type_) none 12)
|
||||
(hover-nav-control-method-13 (_type_) none 13)
|
||||
(hover-nav-control-method-14 (_type_ float float) none 14)
|
||||
(hover-nav-control-method-15 (_type_) none 15)
|
||||
(hover-nav-control-method-16 (_type_) none 16)
|
||||
(hover-nav-control-method-17 (_type_) none 17)
|
||||
(hover-nav-control-method-18 (_type_) none 18)
|
||||
(hover-nav-control-method-19 (_type_) none 19)
|
||||
(hover-nav-control-method-15 (_type_ vector) none 15)
|
||||
(hover-nav-control-method-16 (_type_ vector) vector 16)
|
||||
(hover-nav-control-method-17 (_type_) collide-prim-core 17)
|
||||
(hover-nav-control-method-18 (_type_ path-control int int) none 18)
|
||||
(hover-nav-control-method-19 (_type_ (inline-array vector) int) none 19)
|
||||
(hover-nav-control-method-20 (_type_) none 20)
|
||||
(hover-nav-control-method-21 (_type_) none 21)
|
||||
(hover-nav-control-method-22 (_type_) hover-nav-path-segment 22)
|
||||
(hover-nav-control-method-23 (_type_) object 23)
|
||||
(hover-nav-control-method-24 (_type_) none 24)
|
||||
(hover-nav-control-method-25 (_type_) none 25)
|
||||
(hover-nav-control-method-26 (_type_) none 26)
|
||||
(hover-nav-control-method-27 (_type_) none 27)
|
||||
(hover-nav-control-method-28 (_type_) none 28)
|
||||
(hover-nav-control-method-29 (_type_) none 29)
|
||||
(hover-nav-control-method-26 (_type_ vector vector float) symbol 26)
|
||||
(hover-nav-control-method-27 (_type_ vector vector) int 27)
|
||||
(hover-nav-control-method-28 (_type_ vector vector) none 28)
|
||||
(hover-nav-control-method-29 (_type_ vector) none 29)
|
||||
(hover-nav-control-method-30 (_type_) float 30)
|
||||
(hover-nav-control-method-31 (_type_) float 31)
|
||||
)
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -169,8 +169,7 @@
|
||||
)
|
||||
|
||||
(defmethod init-proj-settings! centurion-shot ((obj centurion-shot))
|
||||
"Init relevant settings for the [[projectile]] such as gravity, speed, timeout, etc
|
||||
:virtual"
|
||||
"Init relevant settings for the [[projectile]] such as gravity, speed, timeout, etc"
|
||||
((the-as (function projectile none) (find-parent-method centurion-shot 31)) obj)
|
||||
(set! (-> obj max-speed) 327680.0)
|
||||
(set! (-> obj timeout) (seconds 1.25))
|
||||
@@ -277,7 +276,72 @@
|
||||
:default-hit-points 3
|
||||
:gnd-collide-with (collide-spec backgnd)
|
||||
:overlaps-others-collide-with-filter (collide-spec jak bot player-list)
|
||||
:penetrate-knocked #xffffffffffffffff
|
||||
:penetrate-knocked (penetrate
|
||||
touch
|
||||
generic-attack
|
||||
lunge
|
||||
flop
|
||||
punch
|
||||
spin
|
||||
roll
|
||||
uppercut
|
||||
bonk
|
||||
tube
|
||||
vehicle
|
||||
flut-attack
|
||||
board
|
||||
mech
|
||||
mech-punch
|
||||
mech-bonk
|
||||
dark-skin
|
||||
dark-punch
|
||||
dark-bomb
|
||||
dark-giant
|
||||
shield
|
||||
explode
|
||||
jak-yellow-shot
|
||||
jak-red-shot
|
||||
jak-blue-shot
|
||||
jak-dark-shot
|
||||
enemy-yellow-shot
|
||||
enemy-dark-shot
|
||||
eco-yellow
|
||||
eco-red
|
||||
eco-blue
|
||||
eco-green
|
||||
knocked
|
||||
penetrate-33
|
||||
penetrate-34
|
||||
penetrate-35
|
||||
penetrate-36
|
||||
penetrate-37
|
||||
penetrate-38
|
||||
penetrate-39
|
||||
penetrate-40
|
||||
penetrate-41
|
||||
penetrate-42
|
||||
penetrate-43
|
||||
penetrate-44
|
||||
penetrate-45
|
||||
penetrate-46
|
||||
penetrate-47
|
||||
penetrate-48
|
||||
penetrate-49
|
||||
penetrate-50
|
||||
penetrate-51
|
||||
penetrate-52
|
||||
penetrate-53
|
||||
penetrate-54
|
||||
penetrate-55
|
||||
penetrate-56
|
||||
penetrate-57
|
||||
penetrate-58
|
||||
penetrate-59
|
||||
penetrate-60
|
||||
penetrate-61
|
||||
penetrate-62
|
||||
penetrate-63
|
||||
)
|
||||
:movement-gravity (meters -100)
|
||||
:friction 0.1
|
||||
:attack-shove-back (meters 3)
|
||||
@@ -701,7 +765,7 @@
|
||||
(set! (-> v1-32 attack-id) a0-26)
|
||||
(set! (-> s5-0 attack-id) a0-26)
|
||||
)
|
||||
(set! (-> s5-0 timeout) (new 'static 'handle :process #x4b0 :u64 #x4b0))
|
||||
(set! (-> s5-0 timeout) (seconds 4))
|
||||
(spawn-projectile centurion-shot s5-0 obj *default-dead-pool*)
|
||||
)
|
||||
(set! (-> obj can-shoot?) #f)
|
||||
|
||||
@@ -139,7 +139,72 @@
|
||||
:default-hit-points 14
|
||||
:gnd-collide-with (collide-spec backgnd)
|
||||
:overlaps-others-collide-with-filter (collide-spec jak bot player-list)
|
||||
:penetrate-knocked #xffffffffffffffff
|
||||
:penetrate-knocked (penetrate
|
||||
touch
|
||||
generic-attack
|
||||
lunge
|
||||
flop
|
||||
punch
|
||||
spin
|
||||
roll
|
||||
uppercut
|
||||
bonk
|
||||
tube
|
||||
vehicle
|
||||
flut-attack
|
||||
board
|
||||
mech
|
||||
mech-punch
|
||||
mech-bonk
|
||||
dark-skin
|
||||
dark-punch
|
||||
dark-bomb
|
||||
dark-giant
|
||||
shield
|
||||
explode
|
||||
jak-yellow-shot
|
||||
jak-red-shot
|
||||
jak-blue-shot
|
||||
jak-dark-shot
|
||||
enemy-yellow-shot
|
||||
enemy-dark-shot
|
||||
eco-yellow
|
||||
eco-red
|
||||
eco-blue
|
||||
eco-green
|
||||
knocked
|
||||
penetrate-33
|
||||
penetrate-34
|
||||
penetrate-35
|
||||
penetrate-36
|
||||
penetrate-37
|
||||
penetrate-38
|
||||
penetrate-39
|
||||
penetrate-40
|
||||
penetrate-41
|
||||
penetrate-42
|
||||
penetrate-43
|
||||
penetrate-44
|
||||
penetrate-45
|
||||
penetrate-46
|
||||
penetrate-47
|
||||
penetrate-48
|
||||
penetrate-49
|
||||
penetrate-50
|
||||
penetrate-51
|
||||
penetrate-52
|
||||
penetrate-53
|
||||
penetrate-54
|
||||
penetrate-55
|
||||
penetrate-56
|
||||
penetrate-57
|
||||
penetrate-58
|
||||
penetrate-59
|
||||
penetrate-60
|
||||
penetrate-61
|
||||
penetrate-62
|
||||
penetrate-63
|
||||
)
|
||||
:movement-gravity (meters -100)
|
||||
:friction 0.8
|
||||
:attack-shove-back (meters 3)
|
||||
@@ -776,7 +841,7 @@
|
||||
(set! (-> v1-27 attack-id) a0-27)
|
||||
(set! (-> a1-9 attack-id) a0-27)
|
||||
)
|
||||
(set! (-> a1-9 timeout) (new 'static 'handle :process #x4b0 :u64 #x4b0))
|
||||
(set! (-> a1-9 timeout) (seconds 4))
|
||||
(spawn-projectile metalhead-grenade-shot a1-9 self *default-dead-pool*)
|
||||
)
|
||||
)
|
||||
|
||||
@@ -999,7 +999,7 @@
|
||||
(set! (-> a0-10 attack-id) a3-11)
|
||||
(set! (-> gp-0 attack-id) a3-11)
|
||||
)
|
||||
(set! (-> gp-0 timeout) (new 'static 'handle :process #x4b0 :u64 #x4b0))
|
||||
(set! (-> gp-0 timeout) (seconds 4))
|
||||
(vector-normalize! (vector-! (-> gp-0 vel) a1-1 (the-as vector v1-0)) arg1)
|
||||
)
|
||||
(spawn-projectile spyder-shot gp-0 obj *default-dead-pool*)
|
||||
|
||||
@@ -696,7 +696,7 @@
|
||||
(set! (-> v1-12 attack-id) a0-18)
|
||||
(set! (-> proj-params attack-id) a0-18)
|
||||
)
|
||||
(set! (-> proj-params timeout) (new 'static 'handle :process #x4b0 :u64 #x4b0))
|
||||
(set! (-> proj-params timeout) (seconds 4))
|
||||
(vector-normalize-copy! (-> proj-params vel) s2-1 491520.0)
|
||||
(let ((f30-1 (fmin 16384.0 f30-0)))
|
||||
(set-vector! temp-vec (-> s2-1 z) (-> s2-1 y) (- (-> s2-1 x)) 1.0)
|
||||
|
||||
@@ -319,8 +319,7 @@
|
||||
|
||||
|
||||
(defmethod draw-laser-sight metalhead-shot ((obj metalhead-shot))
|
||||
"TODO - confirm If applicable, draw the laser sight particles
|
||||
:virtual"
|
||||
"TODO - confirm If applicable, draw the laser sight particles"
|
||||
(draw-beam (-> *part-id-table* 624) (-> obj tail-pos) (-> obj starting-dir) #f #t)
|
||||
(let* ((a0-3 (vector-normalize-copy! (new 'stack-no-clear 'vector) (-> obj starting-dir) 2048.0))
|
||||
(v1-2 (vector+! (new 'stack-no-clear 'vector) (-> obj tail-pos) a0-3))
|
||||
@@ -559,8 +558,7 @@
|
||||
)
|
||||
|
||||
(defmethod init-proj-settings! metalhead-shot ((obj metalhead-shot))
|
||||
"Init relevant settings for the [[projectile]] such as gravity, speed, timeout, etc
|
||||
:virtual"
|
||||
"Init relevant settings for the [[projectile]] such as gravity, speed, timeout, etc"
|
||||
(set! (-> obj tail-pos quad) (-> obj root-override trans quad))
|
||||
(set! (-> obj attack-mode) 'metalhead-shot)
|
||||
(set! (-> obj max-speed) 532480.0)
|
||||
@@ -586,7 +584,7 @@
|
||||
(set! (-> a0-10 attack-id) a2-11)
|
||||
(set! (-> gp-0 attack-id) a2-11)
|
||||
)
|
||||
(set! (-> gp-0 timeout) (new 'static 'handle :process #x4b0 :u64 #x4b0))
|
||||
(set! (-> gp-0 timeout) (seconds 4))
|
||||
(set! (-> gp-0 pos quad) (-> arg1 quad))
|
||||
(vector-normalize-copy! (-> gp-0 vel) v1-1 arg3)
|
||||
)
|
||||
@@ -914,8 +912,7 @@
|
||||
|
||||
;; WARN: Return type mismatch sound-id vs none.
|
||||
(defmethod init-proj-settings! metalhead-grenade-shot ((obj metalhead-grenade-shot))
|
||||
"Init relevant settings for the [[projectile]] such as gravity, speed, timeout, etc
|
||||
:virtual"
|
||||
"Init relevant settings for the [[projectile]] such as gravity, speed, timeout, etc"
|
||||
(set! (-> obj attack-mode) 'eco-yellow)
|
||||
(set! (-> obj blast-radius) 4096.0)
|
||||
(set! (-> obj max-speed) 135168.0)
|
||||
@@ -949,7 +946,7 @@
|
||||
(set! (-> a0-10 attack-id) a2-11)
|
||||
(set! (-> gp-0 attack-id) a2-11)
|
||||
)
|
||||
(set! (-> gp-0 timeout) (new 'static 'handle :process #x4b0 :u64 #x4b0))
|
||||
(set! (-> gp-0 timeout) (seconds 4))
|
||||
(set! (-> gp-0 pos quad) (-> arg1 quad))
|
||||
(vector-normalize-copy! (-> gp-0 vel) v1-1 arg3)
|
||||
)
|
||||
|
||||
@@ -720,7 +720,7 @@ This commonly includes things such as:
|
||||
(set! (-> a0-8 attack-id) a1-6)
|
||||
(set! (-> v1-7 attack-id) a1-6)
|
||||
)
|
||||
(set! (-> v1-7 timeout) (new 'static 'handle :process #x4b0 :u64 #x4b0))
|
||||
(set! (-> v1-7 timeout) (seconds 4))
|
||||
(vector+! (-> v1-7 pos) (-> self root trans) s5-1)
|
||||
(vector-float*! (-> v1-7 vel) gp-2 163840.0)
|
||||
(spawn-projectile
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1534,7 +1534,7 @@ This commonly includes things such as:
|
||||
(set! (-> v1-48 attack-id) a0-24)
|
||||
(set! (-> s4-4 attack-id) a0-24)
|
||||
)
|
||||
(set! (-> s4-4 timeout) (new 'static 'handle :process #x4b0 :u64 #x4b0))
|
||||
(set! (-> s4-4 timeout) (seconds 4))
|
||||
(set! (-> s4-4 pos quad) (-> s5-1 start-pos quad))
|
||||
(vector-normalize-copy! (-> s4-4 vel) (-> s5-1 move-dist) 4096000.0)
|
||||
(spawn-projectile guard-lazer-shot s4-4 self *default-dead-pool*)
|
||||
@@ -1703,20 +1703,20 @@ This commonly includes things such as:
|
||||
(set-subtask-hook! *game-info* 118 1 (lambda () (the-as object (speech-control-method-9 *speech-control*))))
|
||||
|
||||
(defun drill-login ()
|
||||
;; (set! *nav-network* (new 'loading-level 'nav-network))
|
||||
;; (nav-network-method-9 *nav-network*)
|
||||
(set! *nav-network* (new 'loading-level 'nav-network))
|
||||
(nav-network-method-9 *nav-network*)
|
||||
0
|
||||
(none)
|
||||
)
|
||||
|
||||
(defun drill-deactivate ((arg0 level))
|
||||
;; (set! *nav-network* (the-as nav-network 0))
|
||||
(set! *nav-network* (the-as nav-network 0))
|
||||
0
|
||||
(none)
|
||||
)
|
||||
|
||||
(defun drill-activate ((arg0 level))
|
||||
;; (nav-network-method-10 *nav-network* arg0 *drill-adjacency*)
|
||||
(nav-network-method-10 *nav-network* arg0 *drill-adjacency*)
|
||||
0
|
||||
(none)
|
||||
)
|
||||
|
||||
@@ -7,3 +7,577 @@
|
||||
|
||||
;; DECOMP BEGINS
|
||||
|
||||
(deftype turret (base-turret)
|
||||
((hover-battle handle :offset-assert 568)
|
||||
(hover-formation hover-formation :offset-assert 576)
|
||||
(use-egg-hud symbol :offset-assert 580)
|
||||
(hud-egg handle :offset-assert 584)
|
||||
(use-cgh-hud symbol :offset-assert 592)
|
||||
(hud-cgh handle :offset-assert 600)
|
||||
(hud-cgh-event symbol :offset-assert 608)
|
||||
(egg-timer time-frame :offset-assert 616)
|
||||
(cgh-timer time-frame :offset-assert 624)
|
||||
)
|
||||
:heap-base #x200
|
||||
:method-count-assert 49
|
||||
:size-assert #x278
|
||||
:flag-assert #x3102000278
|
||||
)
|
||||
|
||||
|
||||
(define *drill-turret-10-battle*
|
||||
(new 'static 'boxed-array :type hover-enemy-battle-command
|
||||
(new 'static 'hover-enemy-battle-command :command 'spawn :time (seconds 2) :alive-count 1)
|
||||
(new 'static 'hover-enemy-battle-command :command 'spawn :wave #x1 :time (seconds 2))
|
||||
(new 'static 'hover-enemy-battle-command :command 'spawn :wave #x2 :time (seconds 2) :alive-count 1)
|
||||
(new 'static 'hover-enemy-battle-command :command 'spawn :wave #x3 :time (seconds 2))
|
||||
(new 'static 'hover-enemy-battle-command :command 'spawn :time (seconds 2) :alive-count 1)
|
||||
(new 'static 'hover-enemy-battle-command :command 'spawn :wave #x2 :time (seconds 2) :alive-count 1)
|
||||
(new 'static 'hover-enemy-battle-command :command 'spawn :wave #x1 :time (seconds 2))
|
||||
(new 'static 'hover-enemy-battle-command :command 'spawn :time (seconds 2))
|
||||
(new 'static 'hover-enemy-battle-command :command 'spawn :wave #x3 :time (seconds 2))
|
||||
)
|
||||
)
|
||||
|
||||
(define *drill-turret-11-battle*
|
||||
(new 'static 'boxed-array :type hover-enemy-battle-command
|
||||
(new 'static 'hover-enemy-battle-command :command 'spawn :time (seconds 2) :alive-count 1)
|
||||
(new 'static 'hover-enemy-battle-command :command 'spawn :wave #x1 :time (seconds 2) :alive-count 1)
|
||||
(new 'static 'hover-enemy-battle-command :command 'spawn :wave #x2 :time (seconds 2))
|
||||
(new 'static 'hover-enemy-battle-command :command 'spawn :wave #x3 :time (seconds 2))
|
||||
)
|
||||
)
|
||||
|
||||
(define *drill-turret-12-battle*
|
||||
(new 'static 'boxed-array :type hover-enemy-battle-command
|
||||
(new 'static 'hover-enemy-battle-command :command 'spawn :time (seconds 2) :alive-count 1)
|
||||
(new 'static 'hover-enemy-battle-command :command 'spawn :wave #x1 :time (seconds 2) :alive-count 2)
|
||||
(new 'static 'hover-enemy-battle-command :command 'spawn :wave #x2 :time (seconds 2) :alive-count 2)
|
||||
(new 'static 'hover-enemy-battle-command :command 'spawn :wave #x3 :time (seconds 2))
|
||||
)
|
||||
)
|
||||
|
||||
;; NOTE: the turret paths were decompiled by hand
|
||||
;; the static boxed-arrays were originally just int32's, but that didn't compile
|
||||
;; TODO make these decompile
|
||||
(define *turret-13-path*
|
||||
(new 'static 'turret-path
|
||||
:event-count 16
|
||||
:event-tbl (new 'static 'inline-array turret-path-event 16
|
||||
(new 'static 'turret-path-event
|
||||
:pos (the-as float #x3d4ccccd)
|
||||
:event-type 'set-speed-mult
|
||||
:param (new 'static 'boxed-array :type int32 #xa0)
|
||||
)
|
||||
(new 'static 'turret-path-event
|
||||
:pos (the-as float #x3dcccccd)
|
||||
:event-type 'script
|
||||
:param '(send-event "drill-elec-gate-1" 'shutdown)
|
||||
)
|
||||
(new 'static 'turret-path-event
|
||||
:pos (the-as float #x3dcccccd)
|
||||
:event-type 'cue-chase
|
||||
:param "crimson-guard-hover-5"
|
||||
)
|
||||
(new 'static 'turret-path-event
|
||||
:pos (the-as float #x3f800000)
|
||||
:event-type 'cue-chase
|
||||
:param "crimson-guard-hover-6"
|
||||
)
|
||||
(new 'static 'turret-path-event
|
||||
:pos (the-as float #x3f800000)
|
||||
:event-type 'set-speed-mult
|
||||
:param (new 'static 'boxed-array :type int32 #x50)
|
||||
)
|
||||
(new 'static 'turret-path-event
|
||||
:pos (the-as float #x40400000)
|
||||
:event-type 'cue-chase
|
||||
:param "crimson-guard-hover-3"
|
||||
)
|
||||
(new 'static 'turret-path-event
|
||||
:pos (the-as float #x40666666)
|
||||
:event-type 'cue-chase
|
||||
:param "crimson-guard-hover-1"
|
||||
)
|
||||
(new 'static 'turret-path-event
|
||||
:pos (the-as float #x40d00000)
|
||||
:event-type 'cue-chase
|
||||
:param "crimson-guard-hover-7"
|
||||
)
|
||||
(new 'static 'turret-path-event
|
||||
:pos (the-as float #x41066666)
|
||||
:event-type 'cue-chase
|
||||
:param "crimson-guard-hover-9"
|
||||
)
|
||||
(new 'static 'turret-path-event
|
||||
:pos (the-as float #x4109999a)
|
||||
:event-type 'cue-chase
|
||||
:param "crimson-guard-hover-8"
|
||||
)
|
||||
(new 'static 'turret-path-event
|
||||
:pos (the-as float #x41500000)
|
||||
:event-type 'pause-until
|
||||
:param (lambda ()
|
||||
(and (logtest? (-> (entity-by-name "crimson-guard-hover-1") extra perm status)
|
||||
(entity-perm-status subtask-complete)
|
||||
)
|
||||
(logtest? (-> (entity-by-name "crimson-guard-hover-3") extra perm status)
|
||||
(entity-perm-status subtask-complete)
|
||||
)
|
||||
(logtest? (-> (entity-by-name "crimson-guard-hover-5") extra perm status)
|
||||
(entity-perm-status subtask-complete)
|
||||
)
|
||||
(logtest? (-> (entity-by-name "crimson-guard-hover-6") extra perm status)
|
||||
(entity-perm-status subtask-complete)
|
||||
)
|
||||
(logtest? (-> (entity-by-name "crimson-guard-hover-7") extra perm status)
|
||||
(entity-perm-status subtask-complete)
|
||||
)
|
||||
(logtest? (-> (entity-by-name "crimson-guard-hover-8") extra perm status)
|
||||
(entity-perm-status subtask-complete)
|
||||
)
|
||||
(logtest? (-> (entity-by-name "crimson-guard-hover-9") extra perm status)
|
||||
(entity-perm-status subtask-complete)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(new 'static 'turret-path-event
|
||||
:pos (the-as float #x41580000)
|
||||
:event-type 'trigger-battle
|
||||
:param '()
|
||||
)
|
||||
(new 'static 'turret-path-event
|
||||
:pos (the-as float #x41580000)
|
||||
:event-type 'pause-while
|
||||
:param (lambda ((arg0 turret))
|
||||
(send-event (handle->process (-> arg0 hover-battle)) 'spawning?)
|
||||
)
|
||||
)
|
||||
(new 'static 'turret-path-event
|
||||
:pos (the-as float #x41680000)
|
||||
:event-type 'set-speed-mult
|
||||
:param (new 'static 'boxed-array :type int32 #x1e0)
|
||||
)
|
||||
(new 'static 'turret-path-event
|
||||
:pos (the-as float #x41800000)
|
||||
:event-type 'script
|
||||
:param '(send-event "drill-elec-gate-7" 'shutdown)
|
||||
)
|
||||
(new 'static 'turret-path-event
|
||||
:pos (the-as float #x41940000)
|
||||
:event-type 'set-speed-mult
|
||||
:param (new 'static 'boxed-array :type int32 #x50)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
;; (define *turret-14-path* (the-as turret-path L138))
|
||||
(define *turret-14-path*
|
||||
(new 'static 'turret-path
|
||||
:event-count 11
|
||||
:event-tbl (new 'static 'inline-array turret-path-event 11
|
||||
(new 'static 'turret-path-event
|
||||
:pos (the-as float #x3d4ccccd)
|
||||
:event-type 'set-speed-mult
|
||||
:param (new 'static 'boxed-array :type int32 #x50)
|
||||
)
|
||||
(new 'static 'turret-path-event
|
||||
:pos (the-as float #x3d4ccccd)
|
||||
:event-type 'cue-chase
|
||||
:param "crimson-guard-hover-25"
|
||||
)
|
||||
(new 'static 'turret-path-event
|
||||
:pos (the-as float #x3dcccccd)
|
||||
:event-type 'cue-chase
|
||||
:param "crimson-guard-hover-26"
|
||||
)
|
||||
(new 'static 'turret-path-event
|
||||
:pos (the-as float #x40800000)
|
||||
:event-type 'script
|
||||
:param '(send-event "drill-barons-ship-3" 'trigger)
|
||||
)
|
||||
(new 'static 'turret-path-event
|
||||
:pos (the-as float #x41000000)
|
||||
:event-type 'cue-chase
|
||||
:param "crimson-guard-hover-47"
|
||||
)
|
||||
(new 'static 'turret-path-event
|
||||
:pos (the-as float #x41d80000)
|
||||
:event-type 'cue-chase
|
||||
:param "crimson-guard-hover-49"
|
||||
)
|
||||
(new 'static 'turret-path-event
|
||||
:pos (the-as float #x422b999a)
|
||||
:event-type 'cue-chase
|
||||
:param "crimson-guard-hover-48"
|
||||
)
|
||||
(new 'static 'turret-path-event
|
||||
:pos (the-as float #x42340000)
|
||||
:event-type 'pause-until
|
||||
:param (lambda ()
|
||||
(let ((a0-1 (process-by-name "drill-barons-ship-3" *active-pool*)))
|
||||
(and a0-1 (send-event a0-1 'pass-complete?))
|
||||
)
|
||||
)
|
||||
)
|
||||
(new 'static 'turret-path-event
|
||||
:pos (the-as float #x42380000)
|
||||
:event-type 'script
|
||||
:param '(send-event "drill-elec-gate-6" 'shutdown)
|
||||
)
|
||||
(new 'static 'turret-path-event
|
||||
:pos (the-as float #x42386666)
|
||||
:event-type 'set-speed-mult
|
||||
:param (new 'static 'boxed-array :type int32 #x140)
|
||||
)
|
||||
(new 'static 'turret-path-event
|
||||
:pos (the-as float #x42460000)
|
||||
:event-type 'set-speed-mult
|
||||
:param (new 'static 'boxed-array :type int32 #x50)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
;; (define *turret-15-path* (the-as turret-path L119))
|
||||
(define *turret-15-path*
|
||||
(new 'static 'turret-path
|
||||
:event-count 12
|
||||
:event-tbl (new 'static 'inline-array turret-path-event 12
|
||||
(new 'static 'turret-path-event
|
||||
:pos (the-as float #x3d4ccccd)
|
||||
:event-type 'set-speed-mult
|
||||
:param (new 'static 'boxed-array :type int32 #x50)
|
||||
)
|
||||
(new 'static 'turret-path-event
|
||||
:pos (the-as float #x40000000)
|
||||
:event-type 'cue-chase
|
||||
:param "crimson-guard-hover-27"
|
||||
)
|
||||
(new 'static 'turret-path-event
|
||||
:pos (the-as float #x400ccccd)
|
||||
:event-type 'cue-chase
|
||||
:param "crimson-guard-hover-28"
|
||||
)
|
||||
(new 'static 'turret-path-event
|
||||
:pos (the-as float #x40400000)
|
||||
:event-type 'script
|
||||
:param '(send-event "drill-barons-ship-3" 'trigger-back)
|
||||
)
|
||||
(new 'static 'turret-path-event
|
||||
:pos (the-as float #x41000000)
|
||||
:event-type 'cue-chase
|
||||
:param "crimson-guard-hover-53"
|
||||
)
|
||||
(new 'static 'turret-path-event
|
||||
:pos (the-as float #x41800000)
|
||||
:event-type 'cue-chase
|
||||
:param "crimson-guard-hover-54"
|
||||
)
|
||||
(new 'static 'turret-path-event
|
||||
:pos (the-as float #x41f00000)
|
||||
:event-type 'cue-chase
|
||||
:param "crimson-guard-hover-55"
|
||||
)
|
||||
(new 'static 'turret-path-event
|
||||
:pos (the-as float #x420f999a)
|
||||
:event-type 'cue-chase
|
||||
:param "crimson-guard-hover-56"
|
||||
)
|
||||
(new 'static 'turret-path-event
|
||||
:pos (the-as float #x42100000)
|
||||
:event-type 'pause-until
|
||||
:param (lambda ()
|
||||
(let ((a0-1 (process-by-name "drill-barons-ship-3" *active-pool*)))
|
||||
(and a0-1 (send-event a0-1 'pass-complete?))
|
||||
)
|
||||
)
|
||||
)
|
||||
(new 'static 'turret-path-event
|
||||
:pos (the-as float #x42120000)
|
||||
:event-type 'script
|
||||
:param '(send-event "drill-elec-gate-8" 'shutdown)
|
||||
)
|
||||
(new 'static 'turret-path-event
|
||||
:pos (the-as float #x42146666)
|
||||
:event-type 'set-speed-mult
|
||||
:param (new 'static 'boxed-array :type int32 #x140)
|
||||
)
|
||||
(new 'static 'turret-path-event
|
||||
:pos (the-as float #x421e0000)
|
||||
:event-type 'set-speed-mult
|
||||
:param (new 'static 'boxed-array :type int32 #x50)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
(define *drill-turret-13-battle*
|
||||
(new 'static 'boxed-array :type hover-enemy-battle-command
|
||||
(new 'static 'hover-enemy-battle-command :command 'spawn :time (seconds 2) :alive-count 2)
|
||||
(new 'static 'hover-enemy-battle-command :command 'spawn :wave #x1 :time (seconds 2) :alive-count 2)
|
||||
(new 'static 'hover-enemy-battle-command :command 'spawn :wave #x2 :time (seconds 2) :alive-count 2)
|
||||
(new 'static 'hover-enemy-battle-command :command 'spawn :wave #x3 :time (seconds 2) :alive-count 2)
|
||||
(new 'static 'hover-enemy-battle-command :command 'spawn :wave #x4 :time (seconds 4))
|
||||
(new 'static 'hover-enemy-battle-command :command 'spawn :time (seconds 1) :alive-count 2)
|
||||
(new 'static 'hover-enemy-battle-command :command 'spawn :wave #x2 :time (seconds 1) :alive-count 3)
|
||||
(new 'static 'hover-enemy-battle-command :command 'spawn :wave #x4 :time (seconds 1) :alive-count 2)
|
||||
(new 'static 'hover-enemy-battle-command :command 'spawn :alive-count 3)
|
||||
(new 'static 'hover-enemy-battle-command :command 'spawn :wave #x1 :alive-count 3)
|
||||
(new 'static 'hover-enemy-battle-command :command 'spawn :wave #x2 :alive-count 3)
|
||||
(new 'static 'hover-enemy-battle-command :command 'spawn :wave #x3 :alive-count 3)
|
||||
(new 'static 'hover-enemy-battle-command :command 'spawn :wave #x4)
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
(defstate active (turret)
|
||||
:virtual #t
|
||||
:enter (behavior ()
|
||||
(let ((t9-0 (-> (method-of-type base-turret active) enter)))
|
||||
(if t9-0
|
||||
(t9-0)
|
||||
)
|
||||
)
|
||||
(set! (-> *game-info* counter) 0.0)
|
||||
(set! (-> self egg-timer) 0)
|
||||
(set! (-> self cgh-timer) 0)
|
||||
(if (and (handle->process (-> self hover-battle)) (zero? (-> self path-event)))
|
||||
(send-event (handle->process (-> self hover-battle)) 'trigger)
|
||||
)
|
||||
(let ((a1-2 (new 'stack-no-clear 'event-message-block)))
|
||||
(set! (-> a1-2 from) (process->ppointer self))
|
||||
(set! (-> a1-2 num-params) 1)
|
||||
(set! (-> a1-2 message) 'set-los)
|
||||
(set! (-> a1-2 param 0) (the-as uint #f))
|
||||
(let ((t9-2 send-event-function)
|
||||
(v1-20 (-> self hover-formation))
|
||||
)
|
||||
(t9-2
|
||||
(if v1-20
|
||||
(-> v1-20 child 3)
|
||||
)
|
||||
a1-2
|
||||
)
|
||||
)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
:exit (behavior ()
|
||||
(let ((t9-1 (-> (the-as (state base-turret) (find-parent-method turret 29)) exit)))
|
||||
(if t9-1
|
||||
(t9-1)
|
||||
)
|
||||
)
|
||||
(send-event (handle->process (-> self hud-egg)) 'hide-and-die)
|
||||
(send-event (handle->process (-> self hud-cgh)) 'hide-and-die)
|
||||
(let ((a1-3 (new 'stack-no-clear 'event-message-block)))
|
||||
(set! (-> a1-3 from) (process->ppointer self))
|
||||
(set! (-> a1-3 num-params) 1)
|
||||
(set! (-> a1-3 message) 'set-los)
|
||||
(set! (-> a1-3 param 0) (the-as uint #t))
|
||||
(let ((t9-4 send-event-function)
|
||||
(v1-18 (-> self hover-formation))
|
||||
)
|
||||
(t9-4
|
||||
(if v1-18
|
||||
(-> v1-18 child 3)
|
||||
)
|
||||
a1-3
|
||||
)
|
||||
)
|
||||
)
|
||||
(when (< 0.0 (-> *game-info* counter))
|
||||
(let* ((v1-22 (rand-vu-int-count 3))
|
||||
(t0-0 (cond
|
||||
((zero? v1-22)
|
||||
"ds439"
|
||||
)
|
||||
((= v1-22 1)
|
||||
"ds440"
|
||||
)
|
||||
((= v1-22 2)
|
||||
"ds441"
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(add-process *gui-control* self (gui-channel daxter) (gui-action play) t0-0 -99.0 0)
|
||||
)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
:post (behavior ()
|
||||
(let ((t9-1 (-> (the-as (state base-turret) (find-parent-method turret 29)) post)))
|
||||
(if t9-1
|
||||
((the-as (function none) t9-1))
|
||||
)
|
||||
)
|
||||
(when (and (-> self use-egg-hud) (< (-> self egg-timer) (-> self clock frame-counter)))
|
||||
(let ((v1-6 0))
|
||||
(let ((a0-4 (+ (-> self actor-group-count) -1)))
|
||||
(dotimes (a1-1 (-> self actor-group a0-4 length))
|
||||
(let ((a2-4 (-> self actor-group a0-4 data a1-1 actor)))
|
||||
(when a2-4
|
||||
(if (not (logtest? (-> a2-4 extra perm status) (entity-perm-status subtask-complete)))
|
||||
(+! v1-6 1)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! (-> *game-info* counter) (the float v1-6))
|
||||
)
|
||||
(set! (-> self egg-timer) (+ (-> self clock frame-counter) (the int (* 300.0 (rand-vu-float-range 0.2 0.4)))))
|
||||
)
|
||||
(when (and (-> self use-cgh-hud)
|
||||
(< (-> self cgh-timer) (-> self clock frame-counter))
|
||||
(handle->process (-> self hover-battle))
|
||||
)
|
||||
(if (= (-> *game-info* counter) 0.0)
|
||||
(set! (-> self hud-cgh-event) 'force-hide)
|
||||
)
|
||||
0
|
||||
(let ((a1-4 (new 'stack-no-clear 'event-message-block)))
|
||||
(set! (-> a1-4 from) (process->ppointer self))
|
||||
(set! (-> a1-4 num-params) 0)
|
||||
(set! (-> a1-4 message) 'total-to-spawn?)
|
||||
(let ((gp-1 (the-as int (send-event-function (handle->process (-> self hover-battle)) a1-4)))
|
||||
(a1-5 (new 'stack-no-clear 'event-message-block))
|
||||
)
|
||||
(set! (-> a1-5 from) (process->ppointer self))
|
||||
(set! (-> a1-5 num-params) 0)
|
||||
(set! (-> a1-5 message) 'num-spawned?)
|
||||
;; NOTE: added int casts
|
||||
(let ((gp-2 (- gp-1 (the-as int (send-event-function (handle->process (-> self hover-battle)) a1-5)))))
|
||||
(set! (-> *game-info* counter)
|
||||
(the float (+ gp-2 (the-as int (send-event (handle->process (-> self hover-battle)) 'num-alive?))))
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(if (= (-> *game-info* counter) 0.0)
|
||||
(set! (-> self cgh-timer) (+ (-> self clock frame-counter) (seconds 4)))
|
||||
(set! (-> self cgh-timer) (+ (-> self clock frame-counter) (the int (* 300.0 (rand-vu-float-range 0.2 0.4)))))
|
||||
)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
)
|
||||
|
||||
(defstate die (turret)
|
||||
:virtual #t
|
||||
:enter (behavior ()
|
||||
(speech-control-method-12 *speech-control* self (speech-type speech-type-1 speech-type-3))
|
||||
(let ((t9-2 (-> (the-as (state base-turret) (find-parent-method turret 32)) enter)))
|
||||
(if t9-2
|
||||
(t9-2)
|
||||
)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
)
|
||||
|
||||
(defmethod turret-init! turret ((obj turret) (arg0 entity-actor) (arg1 matrix))
|
||||
(set! (-> obj hover-battle) (the-as handle #f))
|
||||
(let ((v1-1 (res-lump-value (-> obj entity) 'extra-id uint128 :default (the-as uint128 -1) :time -1000000000.0)))
|
||||
(cond
|
||||
((zero? v1-1)
|
||||
(set! (-> obj hover-battle)
|
||||
(process->handle (hover-manager-spawn obj (-> obj entity) *drill-turret-10-battle*))
|
||||
)
|
||||
(set! (-> obj use-egg-hud) #t)
|
||||
(set! (-> obj use-cgh-hud) #f)
|
||||
)
|
||||
((= (the-as uint v1-1) 1)
|
||||
(set! (-> obj hover-battle)
|
||||
(process->handle (hover-manager-spawn obj (-> obj entity) *drill-turret-11-battle*))
|
||||
)
|
||||
(set! (-> obj use-egg-hud) #t)
|
||||
(set! (-> obj use-cgh-hud) #f)
|
||||
)
|
||||
((= (the-as uint v1-1) 2)
|
||||
(set! (-> obj hover-battle)
|
||||
(process->handle (hover-manager-spawn obj (-> obj entity) *drill-turret-12-battle*))
|
||||
)
|
||||
(set! (-> obj use-egg-hud) #t)
|
||||
(set! (-> obj use-cgh-hud) #f)
|
||||
)
|
||||
((= (the-as uint v1-1) 3)
|
||||
(set! (-> obj path-event) *turret-13-path*)
|
||||
(set! (-> obj hover-battle)
|
||||
(process->handle (hover-manager-spawn obj (-> obj entity) *drill-turret-13-battle*))
|
||||
)
|
||||
(set! (-> obj use-egg-hud) #f)
|
||||
(set! (-> obj use-cgh-hud) #t)
|
||||
)
|
||||
((= (the-as uint v1-1) 4)
|
||||
(set! (-> obj path-event) *turret-14-path*)
|
||||
(set! (-> obj use-egg-hud) #f)
|
||||
(set! (-> obj use-cgh-hud) #f)
|
||||
)
|
||||
(else
|
||||
(set! (-> obj path-event) *turret-15-path*)
|
||||
(set! (-> obj use-egg-hud) #f)
|
||||
(set! (-> obj use-cgh-hud) #f)
|
||||
)
|
||||
)
|
||||
)
|
||||
(let ((t9-5 (method-of-type base-turret turret-init!)))
|
||||
(t9-5 obj arg0 arg1)
|
||||
)
|
||||
(set! (-> obj hud-egg) (the-as handle #f))
|
||||
(set! (-> obj hud-cgh) (the-as handle #f))
|
||||
(set! (-> obj hover-formation) (the-as hover-formation (entity-actor-lookup arg0 'formation-actor 0)))
|
||||
(if (or (name= (-> obj name) "turret-14") (name= (-> obj name) "turret-15"))
|
||||
(set! (-> obj shot-timeout) (seconds 2.667))
|
||||
)
|
||||
(none)
|
||||
)
|
||||
|
||||
(defmethod base-turret-method-39 turret ((obj turret) (arg0 turret-path-event))
|
||||
(case (-> arg0 event-type)
|
||||
(('trigger-battle)
|
||||
(set! (-> obj hud-cgh-event) 'force-show)
|
||||
(send-event (handle->process (-> obj hover-battle)) 'trigger)
|
||||
)
|
||||
(else
|
||||
((method-of-type base-turret base-turret-method-39) obj arg0)
|
||||
)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
|
||||
(defmethod base-turret-method-34 turret ((obj turret) (arg0 process))
|
||||
(set! (-> obj hud)
|
||||
(ppointer->handle (process-spawn hud-drill-turret-health :init hud-init-by-other :to arg0))
|
||||
)
|
||||
(if (-> obj use-egg-hud)
|
||||
(set! (-> obj hud-egg) (ppointer->handle (process-spawn hud-gruntegg :init hud-init-by-other :to arg0)))
|
||||
)
|
||||
(when (-> obj use-cgh-hud)
|
||||
(set! (-> obj hud-cgh) (ppointer->handle (process-spawn hud-crimsonhover :init hud-init-by-other :to arg0)))
|
||||
(set! (-> obj hud-cgh-event) 'force-hide)
|
||||
)
|
||||
0
|
||||
(none)
|
||||
)
|
||||
|
||||
(defmethod base-turret-method-35 turret ((obj turret))
|
||||
(if (-> obj use-egg-hud)
|
||||
(send-event (handle->process (-> obj hud-egg)) 'force-show)
|
||||
)
|
||||
(if (-> obj use-cgh-hud)
|
||||
(send-event (handle->process (-> obj hud-cgh)) (-> obj hud-cgh-event))
|
||||
)
|
||||
((the-as (function base-turret none) (find-parent-method turret 35)) obj)
|
||||
(none)
|
||||
)
|
||||
|
||||
(defmethod base-turret-method-46 turret ((obj turret) (arg0 process))
|
||||
(if (type? arg0 hover-enemy)
|
||||
arg0
|
||||
)
|
||||
)
|
||||
|
||||
@@ -180,8 +180,7 @@
|
||||
)
|
||||
|
||||
(defmethod init-proj-settings! predator-shot ((obj predator-shot))
|
||||
"Init relevant settings for the [[projectile]] such as gravity, speed, timeout, etc
|
||||
:virtual"
|
||||
"Init relevant settings for the [[projectile]] such as gravity, speed, timeout, etc"
|
||||
(set! (-> obj tail-pos quad) (-> obj root-override trans quad))
|
||||
(set! (-> obj attack-mode) 'predator-shot)
|
||||
(set! (-> obj max-speed) 532480.0)
|
||||
@@ -271,7 +270,72 @@
|
||||
:default-hit-points 5
|
||||
:gnd-collide-with (collide-spec backgnd)
|
||||
:overlaps-others-collide-with-filter (collide-spec jak bot player-list)
|
||||
:penetrate-knocked #xffffffffffffffff
|
||||
:penetrate-knocked (penetrate
|
||||
touch
|
||||
generic-attack
|
||||
lunge
|
||||
flop
|
||||
punch
|
||||
spin
|
||||
roll
|
||||
uppercut
|
||||
bonk
|
||||
tube
|
||||
vehicle
|
||||
flut-attack
|
||||
board
|
||||
mech
|
||||
mech-punch
|
||||
mech-bonk
|
||||
dark-skin
|
||||
dark-punch
|
||||
dark-bomb
|
||||
dark-giant
|
||||
shield
|
||||
explode
|
||||
jak-yellow-shot
|
||||
jak-red-shot
|
||||
jak-blue-shot
|
||||
jak-dark-shot
|
||||
enemy-yellow-shot
|
||||
enemy-dark-shot
|
||||
eco-yellow
|
||||
eco-red
|
||||
eco-blue
|
||||
eco-green
|
||||
knocked
|
||||
penetrate-33
|
||||
penetrate-34
|
||||
penetrate-35
|
||||
penetrate-36
|
||||
penetrate-37
|
||||
penetrate-38
|
||||
penetrate-39
|
||||
penetrate-40
|
||||
penetrate-41
|
||||
penetrate-42
|
||||
penetrate-43
|
||||
penetrate-44
|
||||
penetrate-45
|
||||
penetrate-46
|
||||
penetrate-47
|
||||
penetrate-48
|
||||
penetrate-49
|
||||
penetrate-50
|
||||
penetrate-51
|
||||
penetrate-52
|
||||
penetrate-53
|
||||
penetrate-54
|
||||
penetrate-55
|
||||
penetrate-56
|
||||
penetrate-57
|
||||
penetrate-58
|
||||
penetrate-59
|
||||
penetrate-60
|
||||
penetrate-61
|
||||
penetrate-62
|
||||
penetrate-63
|
||||
)
|
||||
:movement-gravity (meters -100)
|
||||
:friction 0.8
|
||||
:attack-shove-back (meters 3)
|
||||
@@ -632,7 +696,7 @@
|
||||
(set! (-> v1-10 attack-id) a0-11)
|
||||
(set! (-> s5-0 attack-id) a0-11)
|
||||
)
|
||||
(set! (-> s5-0 timeout) (new 'static 'handle :process #x4b0 :u64 #x4b0))
|
||||
(set! (-> s5-0 timeout) (seconds 4))
|
||||
(vector<-cspace! (-> s5-0 pos) a1-1)
|
||||
(let ((s2-0 (handle->process (-> obj focus handle)))
|
||||
(s3-0 (new 'stack-no-clear 'vector))
|
||||
|
||||
@@ -681,8 +681,7 @@
|
||||
)
|
||||
|
||||
(defmethod init-proj-settings! fort-robotank-shot ((obj fort-robotank-shot))
|
||||
"Init relevant settings for the [[projectile]] such as gravity, speed, timeout, etc
|
||||
:virtual"
|
||||
"Init relevant settings for the [[projectile]] such as gravity, speed, timeout, etc"
|
||||
(set! (-> obj tail-pos quad) (-> obj root-override trans quad))
|
||||
(set! (-> obj attack-mode) 'fort-robotank-shot)
|
||||
(set! (-> obj max-speed) 819200.0)
|
||||
@@ -742,7 +741,7 @@
|
||||
(set! (-> a1-10 attack-id) a2-11)
|
||||
(set! (-> gp-0 attack-id) a2-11)
|
||||
)
|
||||
(set! (-> gp-0 timeout) (new 'static 'handle :process #x4b0 :u64 #x4b0))
|
||||
(set! (-> gp-0 timeout) (seconds 4))
|
||||
(vector-! (-> gp-0 vel) a0-1 v1-0)
|
||||
)
|
||||
(vector-normalize! (-> gp-0 vel) 512000.0)
|
||||
|
||||
@@ -717,7 +717,7 @@
|
||||
(set! (-> v1-10 attack-id) a0-18)
|
||||
(set! (-> s4-0 attack-id) a0-18)
|
||||
)
|
||||
(set! (-> s4-0 timeout) (new 'static 'handle :process #x4b0 :u64 #x4b0))
|
||||
(set! (-> s4-0 timeout) (seconds 4))
|
||||
(vector-normalize-copy! (-> s4-0 vel) s2-1 491520.0)
|
||||
(let ((f30-1 (fmin 16384.0 f30-0)))
|
||||
(set-vector! s3-0 (-> s2-1 z) (-> s2-1 y) (- (-> s2-1 x)) 1.0)
|
||||
|
||||
@@ -58,7 +58,7 @@
|
||||
(set! (-> v1-13 attack-id) a0-12)
|
||||
(set! (-> s5-0 attack-id) a0-12)
|
||||
)
|
||||
(set! (-> s5-0 timeout) (new 'static 'handle :process #x4b0 :u64 #x4b0))
|
||||
(set! (-> s5-0 timeout) (seconds 4))
|
||||
(vector-normalize-copy! (-> s5-0 vel) arg2 491520.0)
|
||||
(let ((f30-1 (fmin 16384.0 f30-0)))
|
||||
(set-vector! s3-0 (-> arg2 z) (-> arg2 y) (- (-> arg2 x)) 1.0)
|
||||
|
||||
@@ -45,7 +45,7 @@
|
||||
(set! (-> a0-10 attack-id) a2-11)
|
||||
(set! (-> gp-0 attack-id) a2-11)
|
||||
)
|
||||
(set! (-> gp-0 timeout) (new 'static 'handle :process #x4b0 :u64 #x4b0))
|
||||
(set! (-> gp-0 timeout) (seconds 4))
|
||||
(set! (-> gp-0 pos quad) (-> arg1 quad))
|
||||
(vector-normalize-copy! (-> gp-0 vel) v1-1 arg3)
|
||||
)
|
||||
|
||||
@@ -2741,6 +2741,7 @@ This commonly includes things such as:
|
||||
)
|
||||
)
|
||||
|
||||
;; WARN: Return type mismatch (pointer process) vs (pointer squid-whirlwind).
|
||||
(defmethod spawn-whirlwind squid ((obj squid))
|
||||
(let ((gp-0 (new 'stack-no-clear 'vector))
|
||||
(s4-0 (squid-method-42 obj (new 'stack-no-clear 'vector)))
|
||||
@@ -2790,7 +2791,7 @@ This commonly includes things such as:
|
||||
(set! (-> a1-11 attack-id) a2-12)
|
||||
(set! (-> s4-1 attack-id) a2-12)
|
||||
)
|
||||
(set! (-> s4-1 timeout) (new 'static 'handle :process #x4b0 :u64 #x4b0))
|
||||
(set! (-> s4-1 timeout) (seconds 4))
|
||||
(vector-! (-> s4-1 vel) v1-6 a0-3)
|
||||
)
|
||||
(set! (-> arg1 grenade) (ppointer->handle (spawn-projectile squid-grenade s4-1 obj *default-dead-pool*)))
|
||||
|
||||
@@ -834,7 +834,7 @@ This commonly includes things such as:
|
||||
(set! (-> v1-26 attack-id) a0-17)
|
||||
(set! (-> a1-2 attack-id) a0-17)
|
||||
)
|
||||
(set! (-> a1-2 timeout) (new 'static 'handle :process #x4b0 :u64 #x4b0))
|
||||
(set! (-> a1-2 timeout) (seconds 4))
|
||||
(set! (-> a1-2 pos quad) (-> s5-0 quad))
|
||||
(set! (-> a1-2 vel quad) (-> gp-0 quad))
|
||||
(spawn-projectile palent-turret-shot a1-2 self *default-dead-pool*)
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1395,16 +1395,9 @@ This commonly includes things such as:
|
||||
:code (the-as (function none :behavior under-mine) sleep-code)
|
||||
:post (behavior ()
|
||||
(transform-post)
|
||||
;; TODO uncomment when hover-formation is in
|
||||
;; (when *nav-network*
|
||||
;; (let* ((a0-0 *nav-network*)
|
||||
;; (t9-1 (method-of-object a0-0 nav-network-method-25))
|
||||
;; )
|
||||
;; self
|
||||
;; (-> self root-override root-prim prim-core)
|
||||
;; (t9-1 a0-0)
|
||||
;; )
|
||||
;; )
|
||||
(if *nav-network*
|
||||
(nav-network-method-25 *nav-network* self (-> self root-override root-prim prim-core))
|
||||
)
|
||||
(when (not (-> self chain-initialized))
|
||||
(set! (-> self chain-initialized) #t)
|
||||
(initialize-chain-joints (-> self chain))
|
||||
@@ -1462,7 +1455,7 @@ This commonly includes things such as:
|
||||
(set! (-> obj chain-initialized) #f)
|
||||
(set! (-> obj chain) (new 'process 'under-mine-chain-physics))
|
||||
(chain-physics-initialize obj (-> obj chain) 15 1843.2 *under-mine-chain-setup*)
|
||||
(set! (-> obj chain negate-y) (the-as basic #t))
|
||||
(set! (-> obj chain negate-y) #t)
|
||||
(set! (-> obj chain axial-slop) 1820.4445)
|
||||
(set! (-> obj chain maximum-stretch) 100.0)
|
||||
(set! (-> obj chain stretch-vel) 0.7)
|
||||
|
||||
+1
-1
@@ -802,7 +802,7 @@
|
||||
(set! (-> v1-13 attack-id) a0-10)
|
||||
(set! (-> s4-0 attack-id) a0-10)
|
||||
)
|
||||
(set! (-> s4-0 timeout) (new 'static 'handle :process #x4b0 :u64 #x4b0))
|
||||
(set! (-> s4-0 timeout) (seconds 4))
|
||||
(vector<-cspace! (-> s4-0 pos) (-> obj node-list data 22))
|
||||
(set! (-> s4-0 vel quad) (-> arg0 quad))
|
||||
(vector-! (-> s4-0 vel) (-> s4-0 vel) (-> s4-0 pos))
|
||||
|
||||
+1
-1
@@ -828,7 +828,7 @@
|
||||
(set! (-> v1-11 attack-id) a0-10)
|
||||
(set! (-> s5-0 attack-id) a0-10)
|
||||
)
|
||||
(set! (-> s5-0 timeout) (new 'static 'handle :process #x4b0 :u64 #x4b0))
|
||||
(set! (-> s5-0 timeout) (seconds 4))
|
||||
(vector<-cspace! (-> s5-0 pos) (-> obj node-list data 24))
|
||||
(set! (-> s5-0 vel quad) (-> arg0 quad))
|
||||
(vector-! (-> s5-0 vel) (-> s5-0 vel) (-> s5-0 pos))
|
||||
|
||||
+1
@@ -514,6 +514,7 @@
|
||||
cam-standoff-read-entity
|
||||
cam-stick
|
||||
cam-string
|
||||
cam-turret
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
+1
-1
@@ -113,7 +113,7 @@
|
||||
(ignore-handle handle :offset-assert 40)
|
||||
(pos vector :inline :offset-assert 48)
|
||||
(vel vector :inline :offset-assert 64)
|
||||
(timeout handle :offset-assert 80)
|
||||
(timeout time-frame :offset-assert 80)
|
||||
)
|
||||
:method-count-assert 9
|
||||
:size-assert #x58
|
||||
|
||||
+1
-1
@@ -507,7 +507,7 @@ If we've met or exceeded the projectiles maximum allowed hits, switch to the [[p
|
||||
(set! (-> self max-speed) 40960.0)
|
||||
(set! (-> self tween) 1.0)
|
||||
(set! (-> self last-target) (the-as handle #f))
|
||||
(set! (-> self timeout) (the-as time-frame (-> arg0 timeout)))
|
||||
(set! (-> self timeout) (-> arg0 timeout))
|
||||
(set! (-> self max-hits) 1)
|
||||
(set! (-> self spawn-time) (-> self clock frame-counter))
|
||||
(set! (-> self update-velocity) #f)
|
||||
|
||||
+1
-1
@@ -53,7 +53,7 @@
|
||||
:heap-size #x4000
|
||||
)
|
||||
(new 'static 'entity-info
|
||||
:ptype (type-ref jellyfish :method-count 167)
|
||||
:ptype (type-ref jellyfish :method-count 165)
|
||||
:package "game"
|
||||
:art-group '()
|
||||
:pool '*16k-dead-pool*
|
||||
|
||||
+3
-3
@@ -61,7 +61,7 @@
|
||||
(stretch-vel-parallel float :offset-assert 1348)
|
||||
(compress-vel float :offset-assert 1352)
|
||||
(compress-vel-parallel float :offset-assert 1356)
|
||||
(negate-y basic :offset-assert 1360)
|
||||
(negate-y symbol :offset-assert 1360)
|
||||
(axial-slop float :offset-assert 1364)
|
||||
(maximum-stretch float :offset-assert 1368)
|
||||
(turn-off-start time-frame :offset-assert 1376)
|
||||
@@ -74,12 +74,12 @@
|
||||
(initialize-chain-joints (_type_) symbol 9)
|
||||
(turn-off (_type_ time-frame) none :behavior process 10)
|
||||
(update (_type_ process-drawable) none :behavior process 11)
|
||||
(gravity-update (_type_) none 12)
|
||||
(gravity-update (_type_ process-drawable) none 12)
|
||||
(apply-gravity (_type_ vector int process-drawable) none :behavior process 13)
|
||||
(chain-physics-method-14 (_type_ vector int) none 14)
|
||||
(clamp-length (_type_ vector vector object process-drawable) vector 15)
|
||||
(chain-physics-method-16 (_type_ int) float 16)
|
||||
(chain-physics-method-17 (_type_ vector) none 17)
|
||||
(chain-physics-method-17 (_type_ vector int) none 17)
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
+4
-4
@@ -3,7 +3,7 @@
|
||||
|
||||
;; definition for method 12 of type chain-physics
|
||||
;; WARN: Return type mismatch int vs none.
|
||||
(defmethod gravity-update chain-physics ((obj chain-physics))
|
||||
(defmethod gravity-update chain-physics ((obj chain-physics) (arg0 process-drawable))
|
||||
(vector-seek-3d-smooth! (-> obj gravity) (-> obj gravity-target) 0.05 0.1)
|
||||
0
|
||||
(none)
|
||||
@@ -49,7 +49,7 @@
|
||||
|
||||
;; definition for method 17 of type chain-physics
|
||||
;; WARN: Return type mismatch int vs none.
|
||||
(defmethod chain-physics-method-17 chain-physics ((obj chain-physics) (arg0 vector))
|
||||
(defmethod chain-physics-method-17 chain-physics ((obj chain-physics) (arg0 vector) (arg1 int))
|
||||
0
|
||||
(none)
|
||||
)
|
||||
@@ -111,7 +111,7 @@
|
||||
(vf6 :class vf)
|
||||
)
|
||||
(init-vf0-vector)
|
||||
(gravity-update obj)
|
||||
(gravity-update obj arg0)
|
||||
(let ((s4-0 (new 'stack-no-clear 'matrix))
|
||||
(s3-0 (vector<-cspace! (new 'stack-no-clear 'vector) (-> arg0 node-list data (-> obj root-joint-index))))
|
||||
(s2-0 (vector-normalize-copy!
|
||||
@@ -217,7 +217,7 @@
|
||||
(vector+float*! sv-528 s3-0 sv-400 f28-1)
|
||||
)
|
||||
)
|
||||
(chain-physics-method-17 obj sv-528)
|
||||
(chain-physics-method-17 obj sv-528 s0-0)
|
||||
(set! sv-432 (new 'stack-no-clear 'vector))
|
||||
(let ((v1-61 s3-0)
|
||||
(a0-27 sv-528)
|
||||
|
||||
+1
-1
@@ -2534,7 +2534,7 @@
|
||||
(set! (-> v1-24 attack-id) a0-13)
|
||||
(set! (-> s5-2 attack-id) a0-13)
|
||||
)
|
||||
(set! (-> s5-2 timeout) (new 'static 'handle :process #x4b0 :u64 #x4b0))
|
||||
(set! (-> s5-2 timeout) (seconds 4))
|
||||
(vector<-cspace! (-> s5-2 pos) a1-5)
|
||||
(set! (-> s5-2 vel quad) (-> *zero-vector* quad))
|
||||
(spawn-projectile grenade s5-2 self *default-dead-pool*)
|
||||
|
||||
+1
-1
@@ -28,7 +28,7 @@
|
||||
(set! (-> v1-13 attack-id) a0-15)
|
||||
(set! (-> s4-1 attack-id) a0-15)
|
||||
)
|
||||
(set! (-> s4-1 timeout) (new 'static 'handle :process #x4b0 :u64 #x4b0))
|
||||
(set! (-> s4-1 timeout) (seconds 4))
|
||||
(spawn-projectile gun-blue-shot s4-1 (ppointer->process (-> gp-0 gun)) *default-dead-pool*)
|
||||
)
|
||||
)
|
||||
|
||||
+1
-1
@@ -152,7 +152,7 @@
|
||||
(set! (-> v1-8 attack-id) a0-11)
|
||||
(set! (-> gp-0 attack-id) a0-11)
|
||||
)
|
||||
(set! (-> gp-0 timeout) (new 'static 'handle :process #x4b0 :u64 #x4b0))
|
||||
(set! (-> gp-0 timeout) (seconds 4))
|
||||
(let ((v0-1 (spawn-projectile gun-dark-shot gp-0 (ppointer->process (-> s5-0 gun)) *default-dead-pool*)))
|
||||
(when v0-1
|
||||
(set! (-> (the-as gun-dark-shot (-> v0-1 0)) track-target) (-> self gun track-target 0 handle))
|
||||
|
||||
+2
-2
@@ -449,7 +449,7 @@
|
||||
(set! (-> v1-98 attack-id) a0-44)
|
||||
(set! (-> s5-2 attack-id) a0-44)
|
||||
)
|
||||
(set! (-> s5-2 timeout) (new 'static 'handle :process #x4b0 :u64 #x4b0))
|
||||
(set! (-> s5-2 timeout) (seconds 4))
|
||||
(let ((t9-7 spawn-projectile)
|
||||
(v1-100 gp-1)
|
||||
)
|
||||
@@ -989,7 +989,7 @@
|
||||
(set! (-> v1-13 attack-id) a0-12)
|
||||
(set! (-> gp-0 attack-id) a0-12)
|
||||
)
|
||||
(set! (-> gp-0 timeout) (new 'static 'handle :process #x4b0 :u64 #x4b0))
|
||||
(set! (-> gp-0 timeout) (seconds 4))
|
||||
(spawn-projectile gun-eject gp-0 self *default-dead-pool*)
|
||||
)
|
||||
(ja-channel-set! 0)
|
||||
|
||||
+2
-2
@@ -20,7 +20,7 @@
|
||||
(set! (-> v1-9 attack-id) a0-9)
|
||||
(set! (-> gp-0 attack-id) a0-9)
|
||||
)
|
||||
(set! (-> gp-0 timeout) (new 'static 'handle :process #x4b0 :u64 #x4b0))
|
||||
(set! (-> gp-0 timeout) (seconds 4))
|
||||
(vector-float*! (-> gp-0 vel) (-> s5-0 fire-dir-out) 819200.0)
|
||||
(spawn-projectile gun-yellow-shot gp-0 (ppointer->process (-> s5-0 gun)) *default-dead-pool*)
|
||||
)
|
||||
@@ -43,7 +43,7 @@
|
||||
(set! (-> v1-7 attack-id) a0-8)
|
||||
(set! (-> gp-0 attack-id) a0-8)
|
||||
)
|
||||
(set! (-> gp-0 timeout) (new 'static 'handle :process #x4b0 :u64 #x4b0))
|
||||
(set! (-> gp-0 timeout) (seconds 4))
|
||||
(vector-normalize-copy! (-> gp-0 vel) arg2 819200.0)
|
||||
(spawn-projectile gun-yellow-shot gp-0 arg0 *default-dead-pool*)
|
||||
)
|
||||
|
||||
+3
-1
@@ -67,7 +67,7 @@
|
||||
(pilot pilot-info :offset-assert 2208)
|
||||
(gun gun-info :offset-assert 2212)
|
||||
(mech mech-info :offset-assert 2216)
|
||||
(turret basic :offset-assert 2220)
|
||||
(turret turret-info :offset-assert 2220)
|
||||
(darkjak darkjak-info :offset-assert 2224)
|
||||
(indax indax-info :offset-assert 2228)
|
||||
)
|
||||
@@ -225,7 +225,9 @@
|
||||
(target-tube-jump float float)
|
||||
(target-tube-start handle)
|
||||
target-turn-around
|
||||
target-turret-get-off
|
||||
(target-turret-get-on handle)
|
||||
(target-turret-stance handle)
|
||||
target-wade-stance
|
||||
target-wade-walk
|
||||
target-walk
|
||||
|
||||
+2829
File diff suppressed because it is too large
Load Diff
+2
-1
@@ -842,6 +842,7 @@
|
||||
)
|
||||
|
||||
;; definition for method 180 of type juicer
|
||||
;; WARN: Return type mismatch object vs none.
|
||||
(defmethod juicer-method-180 juicer ((obj juicer))
|
||||
(if (and (= (-> obj incoming knocked-type) (knocked-type knocked-type-4))
|
||||
(not (and (-> obj next-state) (let ((v1-6 (-> obj next-state name)))
|
||||
@@ -1391,7 +1392,7 @@
|
||||
(set! (-> s5-0 owner-handle) (the-as handle #f))
|
||||
(set! (-> s5-0 ignore-handle) (process->handle obj))
|
||||
(set! (-> s5-0 attack-id) arg1)
|
||||
(set! (-> s5-0 timeout) (new 'static 'handle :process #x4b0 :u64 #x4b0))
|
||||
(set! (-> s5-0 timeout) (seconds 4))
|
||||
)
|
||||
(vector-normalize! (vector-! (-> s5-0 pos) (get-trans arg0 3) s4-0) 1.0)
|
||||
(vector-float*! (-> s5-0 vel) (-> s5-0 pos) (* 24576.0 (-> pp clock frames-per-second)))
|
||||
|
||||
+2
-6
@@ -1410,7 +1410,7 @@
|
||||
(set! (-> a0-13 attack-id) a1-12)
|
||||
(set! (-> s4-1 attack-id) a1-12)
|
||||
)
|
||||
(set! (-> s4-1 timeout) (new 'static 'handle :process #x4b0 :u64 #x4b0))
|
||||
(set! (-> s4-1 timeout) (seconds 4))
|
||||
(set! (-> s4-1 pos quad) (-> s5-0 quad))
|
||||
(set! (-> s4-1 vel quad) (-> v1-3 quad))
|
||||
(vector-normalize! (-> s4-1 vel) 819200.0)
|
||||
@@ -3229,7 +3229,7 @@
|
||||
(set! (-> s0-1 owner-handle) (the-as handle #f))
|
||||
(set! (-> s0-1 ignore-handle) (process->handle obj))
|
||||
(set! (-> s0-1 attack-id) (-> obj attack-id))
|
||||
(set! (-> s0-1 timeout) (new 'static 'handle :process #x4b0 :u64 #x4b0))
|
||||
(set! (-> s0-1 timeout) (seconds 4))
|
||||
(set! (-> s0-1 pos quad) (-> s4-0 quad))
|
||||
(vector-! (-> s0-1 vel) s5-0 s4-0)
|
||||
(vector-normalize! (-> s0-1 vel) 131072.0)
|
||||
@@ -4234,7 +4234,3 @@
|
||||
0
|
||||
(none)
|
||||
)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
+3
-3
@@ -588,7 +588,7 @@
|
||||
(set! (-> v1-14 attack-id) a0-16)
|
||||
(set! (-> s4-0 proj-params attack-id) a0-16)
|
||||
)
|
||||
(set! (-> s4-0 proj-params timeout) (new 'static 'handle :process #x4b0 :u64 #x4b0))
|
||||
(set! (-> s4-0 proj-params timeout) (seconds 4))
|
||||
(let* ((v1-16 (-> s4-0 mat-1))
|
||||
(a3-0 (-> arg0 node-list data (-> obj info joint-index) bone transform))
|
||||
(a0-20 (-> a3-0 quad 0))
|
||||
@@ -954,7 +954,7 @@
|
||||
(set! (-> v1-15 attack-id) a0-14)
|
||||
(set! (-> a1-1 attack-id) a0-14)
|
||||
)
|
||||
(set! (-> a1-1 timeout) (new 'static 'handle :process #x4b0 :u64 #x4b0))
|
||||
(set! (-> a1-1 timeout) (seconds 4))
|
||||
(spawn-projectile vehicle-grenade a1-1 obj *default-dead-pool*)
|
||||
)
|
||||
(let ((a1-2 (new 'stack-no-clear 'traffic-danger-info)))
|
||||
@@ -989,7 +989,7 @@
|
||||
(set! (-> v1-38 attack-id) a0-36)
|
||||
(set! (-> s5-1 proj-params attack-id) a0-36)
|
||||
)
|
||||
(set! (-> s5-1 proj-params timeout) (new 'static 'handle :process #x4b0 :u64 #x4b0))
|
||||
(set! (-> s5-1 proj-params timeout) (seconds 4))
|
||||
(vector+float*! (-> s5-1 proj-params pos) (the-as vector (-> s5-1 mat-1)) (-> s5-1 mat-1 vector 1) 16384.0)
|
||||
(vector-float*! (-> s5-1 proj-params vel) (-> s5-1 mat-1 vector 1) 819200.0)
|
||||
(spawn-projectile guard-shot (-> s5-1 proj-params) obj *default-dead-pool*)
|
||||
|
||||
+1
-1
@@ -1950,7 +1950,7 @@
|
||||
(set! (-> v1-69 attack-id) a0-67)
|
||||
(set! (-> s2-1 attack-id) a0-67)
|
||||
)
|
||||
(set! (-> s2-1 timeout) (new 'static 'handle :process #x4b0 :u64 #x4b0))
|
||||
(set! (-> s2-1 timeout) (seconds 4))
|
||||
(set! (-> s2-1 pos quad) (-> s3-0 start-pos quad))
|
||||
(vector+! (-> s2-1 vel) (-> s3-0 start-pos) s5-0)
|
||||
(vector-normalize-copy! (-> s2-1 vel) (-> s3-0 move-dist) 40960000.0)
|
||||
|
||||
Generated
Vendored
+2
-2
@@ -1306,7 +1306,7 @@
|
||||
(set! (-> a0-13 attack-id) a1-12)
|
||||
(set! (-> s4-1 attack-id) a1-12)
|
||||
)
|
||||
(set! (-> s4-1 timeout) (new 'static 'handle :process #x4b0 :u64 #x4b0))
|
||||
(set! (-> s4-1 timeout) (seconds 4))
|
||||
(set! (-> s4-1 pos quad) (-> s5-0 quad))
|
||||
(set! (-> s4-1 vel quad) (-> v1-3 quad))
|
||||
(vector-normalize! (-> s4-1 vel) 819200.0)
|
||||
@@ -2939,7 +2939,7 @@
|
||||
(set! (-> v1-24 attack-id) a0-23)
|
||||
(set! (-> a1-9 attack-id) a0-23)
|
||||
)
|
||||
(set! (-> a1-9 timeout) (new 'static 'handle :process #x4b0 :u64 #x4b0))
|
||||
(set! (-> a1-9 timeout) (seconds 4))
|
||||
(spawn-projectile vehicle-grenade a1-9 obj *default-dead-pool*)
|
||||
)
|
||||
)
|
||||
|
||||
Generated
Vendored
+2050
File diff suppressed because it is too large
Load Diff
+1653
File diff suppressed because it is too large
Load Diff
Generated
Vendored
+371
@@ -0,0 +1,371 @@
|
||||
;;-*-Lisp-*-
|
||||
(in-package goal)
|
||||
|
||||
;; definition of type hover-enemy-battle-command
|
||||
(deftype hover-enemy-battle-command (structure)
|
||||
((command symbol :offset-assert 0)
|
||||
(wave uint16 :offset-assert 4)
|
||||
(time time-frame :offset-assert 8)
|
||||
(alive-count int32 :offset-assert 16)
|
||||
)
|
||||
:method-count-assert 9
|
||||
:size-assert #x14
|
||||
:flag-assert #x900000014
|
||||
)
|
||||
|
||||
;; definition for method 3 of type hover-enemy-battle-command
|
||||
(defmethod inspect hover-enemy-battle-command ((obj hover-enemy-battle-command))
|
||||
(when (not obj)
|
||||
(set! obj obj)
|
||||
(goto cfg-4)
|
||||
)
|
||||
(format #t "[~8x] ~A~%" obj 'hover-enemy-battle-command)
|
||||
(format #t "~1Tcommand: ~A~%" (-> obj command))
|
||||
(format #t "~1Twave: ~D~%" (-> obj wave))
|
||||
(format #t "~1Ttime: ~D~%" (-> obj time))
|
||||
(format #t "~1Talive-count: ~D~%" (-> obj alive-count))
|
||||
(label cfg-4)
|
||||
obj
|
||||
)
|
||||
|
||||
;; definition of type hover-enemy-manager
|
||||
(deftype hover-enemy-manager (process)
|
||||
((command-table (array hover-enemy-battle-command) :offset-assert 128)
|
||||
(path path-control :offset-assert 132)
|
||||
(formation hover-formation-control :offset-assert 136)
|
||||
(actor-group (pointer actor-group) :offset-assert 140)
|
||||
(actor-group-count int32 :offset-assert 144)
|
||||
(total-to-spawn int32 :offset-assert 148)
|
||||
(num-spawned int32 :offset-assert 152)
|
||||
(alive-count int32 :offset-assert 156)
|
||||
(formation-timer time-frame :offset-assert 160)
|
||||
)
|
||||
:heap-base #x30
|
||||
:method-count-assert 19
|
||||
:size-assert #xa8
|
||||
:flag-assert #x13003000a8
|
||||
(:methods
|
||||
(idle () _type_ :state 14)
|
||||
(spawning (object object process pointer) _type_ :state 15)
|
||||
(die () _type_ :state 16)
|
||||
(hover-enemy-manager-init! (_type_ (array hover-enemy-battle-command)) none 17)
|
||||
(spawn-enemy (_type_ uint) none 18)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for method 3 of type hover-enemy-manager
|
||||
(defmethod inspect hover-enemy-manager ((obj hover-enemy-manager))
|
||||
(when (not obj)
|
||||
(set! obj obj)
|
||||
(goto cfg-7)
|
||||
)
|
||||
(let ((t9-0 (method-of-type process inspect)))
|
||||
(t9-0 obj)
|
||||
)
|
||||
(format #t "~2Tcommand-table: ~A~%" (-> obj command-table))
|
||||
(format #t "~2Tpath: ~A~%" (-> obj path))
|
||||
(format #t "~2Tformation: ~A~%" (-> obj formation))
|
||||
(format #t "~2Tactor-group: #x~X~%" (-> obj actor-group))
|
||||
(dotimes (s5-0 (-> obj actor-group-count))
|
||||
(format #t "~T [~D]~2Tactor-group: ~`actor-group`P~%" s5-0 (-> obj actor-group s5-0))
|
||||
)
|
||||
(format #t "~2Tactor-group-count: ~D~%" (-> obj actor-group-count))
|
||||
(format #t "~2Ttotal-to-spawn: ~D~%" (-> obj total-to-spawn))
|
||||
(format #t "~2Tnum-spawned: ~D~%" (-> obj num-spawned))
|
||||
(format #t "~2Talive-count: ~D~%" (-> obj alive-count))
|
||||
(format #t "~2Tformation-timer: ~D~%" (-> obj formation-timer))
|
||||
(label cfg-7)
|
||||
obj
|
||||
)
|
||||
|
||||
;; definition for function hover-enemy-manager-handler
|
||||
(defbehavior hover-enemy-manager-handler hover-enemy-manager ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
|
||||
(local-vars (v0-0 object))
|
||||
(case arg2
|
||||
(('join 'leave 'set-type 'get-formation 'set-los)
|
||||
(when (-> self formation)
|
||||
(let ((v1-2 (-> self formation))
|
||||
(a1-8 arg0)
|
||||
)
|
||||
(case arg2
|
||||
(('join)
|
||||
(hover-formation-control-method-17 v1-2 a1-8)
|
||||
)
|
||||
(('leave)
|
||||
(hover-formation-control-method-18 v1-2 a1-8)
|
||||
)
|
||||
(('set-type)
|
||||
(let ((a1-11 1))
|
||||
(case (-> arg3 param 0)
|
||||
(('line)
|
||||
(set! a1-11 0)
|
||||
)
|
||||
(('circle)
|
||||
(set! a1-11 2)
|
||||
)
|
||||
(('semicircle)
|
||||
(set! a1-11 3)
|
||||
)
|
||||
)
|
||||
(try-update-formation-type v1-2 (the-as formation-type a1-11))
|
||||
)
|
||||
)
|
||||
(('get-formation)
|
||||
v1-2
|
||||
)
|
||||
(('set-los)
|
||||
(cond
|
||||
((-> arg3 param 0)
|
||||
(set! v0-0 (logior (-> v1-2 flags) 2))
|
||||
(set! (-> v1-2 flags) (the-as uint v0-0))
|
||||
)
|
||||
(else
|
||||
(set! v0-0 (logand -3 (-> v1-2 flags)))
|
||||
(set! (-> v1-2 flags) (the-as uint v0-0))
|
||||
)
|
||||
)
|
||||
v0-0
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(('num-alive?)
|
||||
(-> self alive-count)
|
||||
)
|
||||
(('num-spawned?)
|
||||
(-> self num-spawned)
|
||||
)
|
||||
(('total-to-spawn?)
|
||||
(-> self total-to-spawn)
|
||||
)
|
||||
(('hover-die)
|
||||
(set! v0-0 (max 0 (+ (-> self alive-count) -1)))
|
||||
(set! (-> self alive-count) (the-as int v0-0))
|
||||
v0-0
|
||||
)
|
||||
(('path)
|
||||
(if (not (logtest? (-> self path flags) (path-control-flag not-found)))
|
||||
(-> self path)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for function hover-enemy-manager-post
|
||||
(defbehavior hover-enemy-manager-post hover-enemy-manager ()
|
||||
(when (-> self formation)
|
||||
(let ((gp-0 (-> self formation)))
|
||||
(let ((a0-0 gp-0))
|
||||
((the-as (function hover-formation-control none) (method-of-object a0-0 hover-formation-control-method-14))
|
||||
a0-0
|
||||
)
|
||||
)
|
||||
(when (and (logtest? (-> gp-0 flags) 2)
|
||||
(>= (- (-> self clock frame-counter) (-> self formation-timer)) (seconds 0.2))
|
||||
)
|
||||
(hover-formation-control-method-11 gp-0)
|
||||
(set! (-> self formation-timer) (-> self clock frame-counter))
|
||||
)
|
||||
)
|
||||
)
|
||||
(if (not (logtest? (-> self path flags) (path-control-flag not-found)))
|
||||
(debug-draw (-> self path))
|
||||
)
|
||||
(none)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defstate idle (hover-enemy-manager)
|
||||
:virtual #t
|
||||
:event (behavior ((proc process) (arg1 int) (event-type symbol) (event event-message-block))
|
||||
(case event-type
|
||||
(('trigger)
|
||||
(go-virtual spawning proc arg1 (the-as process event-type) (the-as pointer event))
|
||||
)
|
||||
(else
|
||||
(hover-enemy-manager-handler proc arg1 event-type event)
|
||||
)
|
||||
)
|
||||
)
|
||||
:code (the-as (function none :behavior hover-enemy-manager) sleep-code)
|
||||
:post hover-enemy-manager-post
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defstate spawning (hover-enemy-manager)
|
||||
:virtual #t
|
||||
:event (behavior ((proc process) (arg1 int) (event-type symbol) (event event-message-block))
|
||||
(case event-type
|
||||
(('spawning?)
|
||||
#t
|
||||
)
|
||||
(else
|
||||
(hover-enemy-manager-handler proc arg1 event-type event)
|
||||
)
|
||||
)
|
||||
)
|
||||
:enter (behavior ((arg0 object) (arg1 object) (arg2 process) (arg3 pointer))
|
||||
(let ((a0-1 (-> self formation)))
|
||||
(if a0-1
|
||||
(set-anchor-proc a0-1 (process->handle *target*))
|
||||
)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
:code (behavior ((arg0 object) (arg1 object) (arg2 process) (arg3 pointer))
|
||||
(let ((gp-0 (-> self command-table)))
|
||||
(dotimes (s5-0 (-> gp-0 length))
|
||||
(case (-> gp-0 s5-0 command)
|
||||
(('spawn)
|
||||
(spawn-enemy self (-> gp-0 s5-0 wave))
|
||||
)
|
||||
(('wait)
|
||||
)
|
||||
)
|
||||
(let ((s4-0 (-> self clock frame-counter)))
|
||||
(until (>= (- (-> self clock frame-counter) s4-0) (-> gp-0 s5-0 time))
|
||||
(suspend)
|
||||
)
|
||||
)
|
||||
(while (< (-> gp-0 s5-0 alive-count) (-> self alive-count))
|
||||
(suspend)
|
||||
)
|
||||
)
|
||||
)
|
||||
(let ((gp-1 (-> self clock frame-counter)))
|
||||
(until (>= (- (-> self clock frame-counter) gp-1) (seconds 2))
|
||||
(suspend)
|
||||
)
|
||||
)
|
||||
(go-virtual die)
|
||||
(none)
|
||||
)
|
||||
:post hover-enemy-manager-post
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defstate die (hover-enemy-manager)
|
||||
:virtual #t
|
||||
:event hover-enemy-manager-handler
|
||||
:code (behavior ()
|
||||
(while (-> self child)
|
||||
(suspend)
|
||||
)
|
||||
(process-entity-status! self (entity-perm-status dead) #t)
|
||||
(none)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for method 18 of type hover-enemy-manager
|
||||
;; INFO: Used lq/sq
|
||||
;; WARN: Return type mismatch int vs none.
|
||||
(defmethod spawn-enemy hover-enemy-manager ((obj hover-enemy-manager) (arg0 uint))
|
||||
(when (< arg0 (the-as uint (-> obj actor-group-count)))
|
||||
(dotimes (s4-0 (-> obj actor-group arg0 length))
|
||||
(let* ((s1-0 (-> obj actor-group arg0 data s4-0 actor))
|
||||
(s2-0 (-> (the-as entity-actor s1-0) etype))
|
||||
(s3-0 (new 'stack-no-clear 'transformq))
|
||||
)
|
||||
(set! (-> s3-0 trans quad) (-> s1-0 extra trans quad))
|
||||
(quaternion-copy! (-> s3-0 quat) (-> (the-as entity-actor s1-0) quat))
|
||||
(set! (-> s3-0 scale x) (the-as float s1-0))
|
||||
(set! (-> s3-0 scale y) (the-as float #f))
|
||||
(set! (-> s3-0 scale z) (the-as float #t))
|
||||
(let ((s1-1 (get-process *default-dead-pool* s2-0 #x4000)))
|
||||
(when (when s1-1
|
||||
(let ((t9-2 (method-of-type process activate)))
|
||||
(t9-2 s1-1 obj (symbol->string (-> s2-0 symbol)) (the-as pointer #x70004000))
|
||||
)
|
||||
(run-now-in-process s1-1 enemy-init-by-other obj s3-0)
|
||||
(-> s1-1 ppointer)
|
||||
)
|
||||
(+! (-> obj alive-count) 1)
|
||||
(+! (-> obj num-spawned) 1)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
0
|
||||
(none)
|
||||
)
|
||||
|
||||
;; definition for method 7 of type hover-enemy-manager
|
||||
;; WARN: Return type mismatch process vs hover-enemy-manager.
|
||||
(defmethod relocate hover-enemy-manager ((obj hover-enemy-manager) (arg0 int))
|
||||
(when (-> obj formation)
|
||||
(if (nonzero? (-> obj formation))
|
||||
(&+! (-> obj formation) arg0)
|
||||
)
|
||||
)
|
||||
(if (nonzero? (-> obj path))
|
||||
(&+! (-> obj path) arg0)
|
||||
)
|
||||
(the-as
|
||||
hover-enemy-manager
|
||||
((the-as (function process int process) (find-parent-method hover-enemy-manager 7)) obj arg0)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for method 17 of type hover-enemy-manager
|
||||
;; INFO: Used lq/sq
|
||||
;; WARN: Return type mismatch int vs none.
|
||||
(defmethod hover-enemy-manager-init! hover-enemy-manager ((obj hover-enemy-manager) (arg0 (array hover-enemy-battle-command)))
|
||||
"Initialize this [[hover-enemy-manager]]."
|
||||
(local-vars (sv-16 res-tag))
|
||||
(with-pp
|
||||
(set! (-> obj command-table) arg0)
|
||||
(set! (-> obj path) (new 'process 'path-control obj 'path 0.0 (-> obj entity) #f))
|
||||
(logior! (-> obj path flags) (path-control-flag display draw-line draw-point draw-text))
|
||||
(set! sv-16 (new 'static 'res-tag))
|
||||
(let ((v1-5 (res-lump-data (-> obj entity) 'actor-groups pointer :tag-ptr (& sv-16))))
|
||||
(cond
|
||||
((and v1-5 (nonzero? (-> sv-16 elt-count)))
|
||||
(set! (-> obj actor-group) (the-as (pointer actor-group) v1-5))
|
||||
(set! (-> obj actor-group-count) (the-as int (-> sv-16 elt-count)))
|
||||
)
|
||||
(else
|
||||
(set! (-> obj actor-group) (the-as (pointer actor-group) #f))
|
||||
(set! (-> obj actor-group-count) 0)
|
||||
0
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! (-> obj total-to-spawn) 0)
|
||||
(set! (-> obj num-spawned) 0)
|
||||
(when (-> obj command-table)
|
||||
(let ((v1-13 (-> obj command-table)))
|
||||
(dotimes (a0-6 (-> v1-13 length))
|
||||
(if (= (-> v1-13 a0-6 command) 'spawn)
|
||||
(+! (-> obj total-to-spawn) (-> obj actor-group (-> v1-13 a0-6 wave) length))
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! (-> obj formation) #f)
|
||||
(set! (-> obj formation-timer) (-> pp clock frame-counter))
|
||||
(set! (-> obj alive-count) 0)
|
||||
0
|
||||
(none)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for function hover-enemy-manager-init-by-other
|
||||
;; WARN: Return type mismatch object vs none.
|
||||
(defbehavior hover-enemy-manager-init-by-other hover-enemy-manager ((arg0 entity-actor) (arg1 (array hover-enemy-battle-command)))
|
||||
(set! (-> self entity) arg0)
|
||||
(hover-enemy-manager-init! self arg1)
|
||||
(go-virtual idle)
|
||||
(none)
|
||||
)
|
||||
|
||||
;; definition for function hover-manager-spawn
|
||||
;; WARN: Return type mismatch process-tree vs process.
|
||||
(defun hover-manager-spawn ((arg0 turret) (arg1 entity-actor) (arg2 (array hover-enemy-battle-command)))
|
||||
(the-as process (ppointer->process (process-spawn hover-enemy-manager arg1 arg2 :to arg0)))
|
||||
)
|
||||
|
||||
|
||||
|
||||
|
||||
+45
-49
@@ -44,57 +44,57 @@
|
||||
|
||||
;; definition of type hover-enemy
|
||||
(deftype hover-enemy (enemy)
|
||||
((hover basic :offset-assert 532)
|
||||
(hover-info hover-enemy-info :offset-assert 536)
|
||||
(formation-entity basic :offset-assert 540)
|
||||
(fly-anim-speed float :offset-assert 544)
|
||||
(restart-fly-anims basic :offset-assert 548)
|
||||
(main-joint-acc vector :inline :offset-assert 560)
|
||||
(main-joint-vel vector :inline :offset-assert 576)
|
||||
(main-joint-pos vector :inline :offset-assert 592)
|
||||
(thrust int64 2 :offset-assert 608)
|
||||
(rotation-vec vector :inline :offset-assert 624)
|
||||
(dest-pos vector :inline :offset-assert 640)
|
||||
(offset vector :inline :offset-assert 656)
|
||||
(surface-normal vector :inline :offset-assert 672)
|
||||
(local-dir vector :inline :offset-assert 688)
|
||||
(scale float :offset-assert 704)
|
||||
(scale-timer uint64 :offset-assert 712)
|
||||
(hit-surface? basic :offset-assert 720)
|
||||
(knocked-start-level float :offset-assert 724)
|
||||
(knocked-fall-dist float :offset-assert 728)
|
||||
(flying-death-anim int32 :offset-assert 732)
|
||||
(flying-death-transv vector :inline :offset-assert 736)
|
||||
(flying-death-engine int32 :offset-assert 752)
|
||||
(flying-death-thrust-rotate float :offset-assert 756)
|
||||
(flying-death-spin float :offset-assert 760)
|
||||
(flying-death-spin-dest float :offset-assert 764)
|
||||
(flying-death-spin-axis vector :inline :offset-assert 768)
|
||||
((hover hover-nav-control :offset-assert 532)
|
||||
(hover-info hover-enemy-info :offset-assert 536)
|
||||
(formation-entity entity :offset-assert 540)
|
||||
(fly-anim-speed float :offset-assert 544)
|
||||
(restart-fly-anims symbol :offset-assert 548)
|
||||
(main-joint-acc vector :inline :offset-assert 560)
|
||||
(main-joint-vel vector :inline :offset-assert 576)
|
||||
(main-joint-pos vector :inline :offset-assert 592)
|
||||
(thrust float 2 :offset-assert 608)
|
||||
(rotation-vec vector :inline :offset-assert 624)
|
||||
(dest-pos vector :inline :offset-assert 640)
|
||||
(offset vector :inline :offset-assert 656)
|
||||
(surface-normal vector :inline :offset-assert 672)
|
||||
(local-dir vector :inline :offset-assert 688)
|
||||
(scale float :offset-assert 704)
|
||||
(scale-timer uint64 :offset-assert 712)
|
||||
(hit-surface? symbol :offset-assert 720)
|
||||
(knocked-start-level float :offset-assert 724)
|
||||
(knocked-fall-dist float :offset-assert 728)
|
||||
(flying-death-anim int32 :offset-assert 732)
|
||||
(flying-death-transv vector :inline :offset-assert 736)
|
||||
(flying-death-engine int32 :offset-assert 752)
|
||||
(flying-death-thrust-rotate float :offset-assert 756)
|
||||
(flying-death-spin float :offset-assert 760)
|
||||
(flying-death-spin-dest float :offset-assert 764)
|
||||
(flying-death-spin-axis vector :inline :offset-assert 768)
|
||||
)
|
||||
:heap-base #x290
|
||||
:method-count-assert 156
|
||||
:size-assert #x310
|
||||
:flag-assert #x9c02900310
|
||||
(:methods
|
||||
(hover-enemy-method-137 () none 137)
|
||||
(hover-enemy-method-138 () none 138)
|
||||
(hover-enemy-method-139 () none 139)
|
||||
(hover-enemy-method-140 () none 140)
|
||||
(hover-enemy-method-141 () none 141)
|
||||
(hover-enemy-method-142 () none 142)
|
||||
(hover-enemy-method-143 () none 143)
|
||||
(hover-enemy-method-144 () none 144)
|
||||
(hover-enemy-method-145 () none 145)
|
||||
(hover-enemy-method-146 () none 146)
|
||||
(hover-enemy-method-147 () none 147)
|
||||
(hover-enemy-method-148 () none 148)
|
||||
(hover-enemy-method-149 () none 149)
|
||||
(hover-enemy-method-150 () none 150)
|
||||
(hover-enemy-method-151 () none 151)
|
||||
(hover-enemy-method-152 () none 152)
|
||||
(hover-enemy-method-153 () none 153)
|
||||
(hover-enemy-method-154 () none 154)
|
||||
(hover-enemy-method-155 () none 155)
|
||||
(knocked-recover () _type_ :state 137)
|
||||
(flying-death () _type_ :state 138)
|
||||
(flying-death-explode () _type_ :state 139)
|
||||
(hover-enemy-method-140 (_type_ symbol) none 140)
|
||||
(hover-enemy-method-141 (_type_ float) none 141)
|
||||
(hover-enemy-method-142 (_type_) none 142)
|
||||
(hover-enemy-method-143 (_type_ int float) none 143)
|
||||
(hover-enemy-method-144 (_type_) none 144)
|
||||
(hover-enemy-method-145 (_type_ int float int int) none 145)
|
||||
(hover-enemy-method-146 (_type_) none 146)
|
||||
(hover-enemy-method-147 (_type_) none 147)
|
||||
(hover-enemy-method-148 (_type_) none 148)
|
||||
(hover-enemy-method-149 (_type_) none 149)
|
||||
(hover-enemy-method-150 (_type_) enemy-info 150)
|
||||
(hover-enemy-method-151 (_type_) hover-enemy-info 151)
|
||||
(hover-enemy-method-152 (_type_) hover-nav-params 152)
|
||||
(hover-enemy-method-153 (_type_) none 153)
|
||||
(hover-enemy-method-154 (_type_) none 154)
|
||||
(hover-enemy-method-155 (_type_) none 155)
|
||||
)
|
||||
)
|
||||
|
||||
@@ -139,7 +139,3 @@
|
||||
|
||||
;; failed to figure out what this is:
|
||||
0
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
+1115
File diff suppressed because it is too large
Load Diff
Generated
Vendored
+2
-2
@@ -40,7 +40,7 @@
|
||||
|
||||
;; definition of type hover-actor
|
||||
(deftype hover-actor (structure)
|
||||
((handle uint64 :offset-assert 0)
|
||||
((handle handle :offset-assert 0)
|
||||
(offset vector :inline :offset-assert 16)
|
||||
)
|
||||
:method-count-assert 9
|
||||
@@ -133,7 +133,7 @@
|
||||
:flag-assert #x1000100090
|
||||
(:methods
|
||||
(idle () _type_ :state 14)
|
||||
(hover-formation-method-15 (_type_) int 15)
|
||||
(hover-formation-method-15 (_type_ vector vector) int 15)
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
+9
-3
@@ -705,7 +705,7 @@
|
||||
)
|
||||
|
||||
;; definition for method 15 of type hover-formation
|
||||
(defmethod hover-formation-method-15 hover-formation ((obj hover-formation))
|
||||
(defmethod hover-formation-method-15 hover-formation ((obj hover-formation) (arg0 vector) (arg1 vector))
|
||||
0
|
||||
)
|
||||
|
||||
@@ -756,8 +756,14 @@ This commonly includes things such as:
|
||||
)
|
||||
(set! (-> obj formation-timer) (the-as uint (-> pp clock frame-counter)))
|
||||
(logclear! (-> obj mask) (process-mask actor-pause))
|
||||
(process-entity-status! obj (entity-perm-status no-kill) #t)
|
||||
(hover-formation-method-15 obj)
|
||||
(let ((t9-6 process-entity-status!)
|
||||
(a0-9 obj)
|
||||
(a1-7 8)
|
||||
(a2-6 #t)
|
||||
)
|
||||
(t9-6 a0-9 (the-as entity-perm-status a1-7) a2-6)
|
||||
(hover-formation-method-15 obj (the-as vector a1-7) (the-as vector a2-6))
|
||||
)
|
||||
(go (method-of-object obj idle))
|
||||
(none)
|
||||
)
|
||||
|
||||
Generated
Vendored
+71
-69
@@ -170,9 +170,9 @@
|
||||
|
||||
;; definition of type hover-nav-sphere
|
||||
(deftype hover-nav-sphere (list-node)
|
||||
((sphere sphere :inline :offset-assert 16)
|
||||
(handle uint64 :offset-assert 32)
|
||||
(timer uint64 :offset-assert 40)
|
||||
((sphere sphere :inline :offset-assert 16)
|
||||
(handle handle :offset-assert 32)
|
||||
(timer time-frame :offset-assert 40)
|
||||
)
|
||||
:method-count-assert 9
|
||||
:size-assert #x30
|
||||
@@ -198,7 +198,7 @@
|
||||
;; definition of type hover-nav-path-segment
|
||||
(deftype hover-nav-path-segment (list-node)
|
||||
((curve-matrix matrix :inline :offset-assert 16)
|
||||
(pos-index int32 2 :offset-assert 80)
|
||||
(pos-index float 2 :offset-assert 80)
|
||||
(dist float :offset-assert 88)
|
||||
(du float :offset-assert 92)
|
||||
)
|
||||
@@ -246,7 +246,7 @@
|
||||
:size-assert #x10
|
||||
:flag-assert #xa00000010
|
||||
(:methods
|
||||
(hover-nav-path-info-method-9 () none 9)
|
||||
(hover-nav-path-info-method-9 (_type_) none 9)
|
||||
)
|
||||
)
|
||||
|
||||
@@ -293,46 +293,47 @@
|
||||
|
||||
;; definition of type nav-network
|
||||
(deftype nav-network (basic)
|
||||
((network basic :offset-assert 4)
|
||||
(dummy nav-network-info :inline :offset-assert 16)
|
||||
(control-handle handle :offset-assert 88)
|
||||
(list-table list-node 5 :offset-assert 96)
|
||||
(open-list nav-network-path-node :offset 96)
|
||||
(closed-list nav-network-path-node :offset 100)
|
||||
(sphere-list hover-nav-sphere :offset 108)
|
||||
(free-segment-list hover-nav-path-segment :offset 104)
|
||||
(free-sphere-list hover-nav-sphere :offset 112)
|
||||
(segment-pool uint32 :offset-assert 116)
|
||||
(sphere-pool uint32 :offset-assert 120)
|
||||
((network (array nav-network-info) :offset-assert 4)
|
||||
(dummy nav-network-info :inline :offset-assert 16)
|
||||
(control-handle handle :offset-assert 88)
|
||||
(list-table list-node 5 :offset-assert 96)
|
||||
(open-list nav-network-path-node :offset 96)
|
||||
(closed-list nav-network-path-node :offset 100)
|
||||
(sphere-list hover-nav-sphere :offset 108)
|
||||
(free-segment-list hover-nav-path-segment :offset 104)
|
||||
(free-sphere-list hover-nav-sphere :offset 112)
|
||||
(segment-pool (pointer hover-nav-path-segment) :offset-assert 116)
|
||||
(sphere-pool (pointer hover-nav-sphere) :offset-assert 120)
|
||||
)
|
||||
:method-count-assert 33
|
||||
:size-assert #x7c
|
||||
:flag-assert #x210000007c
|
||||
(:methods
|
||||
(new (symbol type) _type_ 0)
|
||||
(nav-network-method-9 (_type_) none 9)
|
||||
(nav-network-method-10 (_type_ level (array nav-network-info)) none 10)
|
||||
(nav-network-method-11 (_type_) none 11)
|
||||
(nav-network-method-12 (_type_) none 12)
|
||||
(nav-network-method-13 (_type_) none 13)
|
||||
(nav-network-method-14 (_type_ int) none 14)
|
||||
(nav-network-method-15 (_type_) none 15)
|
||||
(nav-network-method-16 (_type_) none 16)
|
||||
(nav-network-method-13 (_type_ int nav-network-path-node) none 13)
|
||||
(nav-network-method-14 (_type_ int nav-network-path-node) object 14)
|
||||
(nav-network-method-15 (_type_ nav-network-path-node) object 15)
|
||||
(nav-network-method-16 (_type_ nav-network-path-node) none 16)
|
||||
(nav-network-method-17 (_type_) nav-network-path-node 17)
|
||||
(nav-network-method-18 (_type_) none 18)
|
||||
(nav-network-method-19 (_type_) none 19)
|
||||
(nav-network-method-20 (_type_) none 20)
|
||||
(nav-network-method-21 (_type_) none 21)
|
||||
(nav-network-method-22 (_type_) none 22)
|
||||
(nav-network-method-23 (_type_) none 23)
|
||||
(nav-network-method-24 (_type_) none 24)
|
||||
(nav-network-method-25 (_type_) none 25)
|
||||
(nav-network-method-26 (_type_) none 26)
|
||||
(nav-network-method-18 (_type_ nav-network-path-node) none 18)
|
||||
(nav-network-method-19 (_type_ nav-network-path-node) none 19)
|
||||
(nav-network-method-20 (_type_ nav-network-path-node vector) none 20)
|
||||
(nav-network-method-21 (_type_ object int int) none 21)
|
||||
(nav-network-method-22 (_type_ hover-nav-path-info vector vector int int) hover-nav-path-segment 22)
|
||||
(nav-network-method-23 (_type_ hover-nav-path-info) none 23)
|
||||
(nav-network-method-24 (_type_ hover-nav-path-info int int int) symbol 24)
|
||||
(nav-network-method-25 (_type_ process collide-prim-core) none 25)
|
||||
(nav-network-method-26 (_type_ vector process vector vector float) vector 26)
|
||||
(nav-network-method-27 (_type_) none 27)
|
||||
(nav-network-method-28 (_type_) none 28)
|
||||
(nav-network-method-29 (_type_) symbol 29)
|
||||
(get-network (_type_) basic 30)
|
||||
(nav-network-method-31 () none 31)
|
||||
(nav-network-method-32 () none 32)
|
||||
(get-network (_type_) (array nav-network-info) 30)
|
||||
(nav-network-method-31 (_type_ bounding-box) none 31)
|
||||
(nav-network-method-32 (_type_ string) none 32)
|
||||
)
|
||||
)
|
||||
|
||||
@@ -392,58 +393,59 @@
|
||||
|
||||
;; definition of type hover-nav-control
|
||||
(deftype hover-nav-control (basic)
|
||||
((root basic :offset-assert 4)
|
||||
(nav basic :offset-assert 8)
|
||||
(flags uint16 :offset-assert 12)
|
||||
(params hover-nav-params :offset-assert 16)
|
||||
(path-timer uint64 :offset-assert 24)
|
||||
(transvv vector :inline :offset-assert 32)
|
||||
(dest-pos vector :inline :offset-assert 48)
|
||||
(dest-vel vector :inline :offset-assert 64)
|
||||
(dest-move-dir vector :inline :offset-assert 80)
|
||||
(dest-offset vector :inline :offset-assert 96)
|
||||
(move-dir vector :inline :offset-assert 112)
|
||||
(nav-collide-impulse vector :inline :offset-assert 128)
|
||||
(nav-collide-impulse-len float :offset-assert 144)
|
||||
(dest-speed float :offset-assert 148)
|
||||
(local-dist float :offset-assert 152)
|
||||
(speed float :offset-assert 156)
|
||||
(max-los-speed float :offset-assert 160)
|
||||
(target-speed float :offset-assert 164)
|
||||
(target-acceleration float :offset-assert 168)
|
||||
(speed-dest float :offset-assert 172)
|
||||
(path-info hover-nav-path-info :inline :offset-assert 176)
|
||||
(curr-dest-pt int32 :offset-assert 192)
|
||||
(los-obstruction-distance float :offset-assert 196)
|
||||
(los-last-clear-time time-frame :offset-assert 200)
|
||||
(max-speed-multiplier float :offset-assert 208)
|
||||
(max-acceleration-multiplier float :offset-assert 212)
|
||||
((root collide-shape-moving :offset-assert 4)
|
||||
(nav nav-network :offset-assert 8)
|
||||
(flags uint16 :offset-assert 12)
|
||||
(params hover-nav-params :offset-assert 16)
|
||||
(path-timer time-frame :offset-assert 24)
|
||||
(transvv vector :inline :offset-assert 32)
|
||||
(dest-pos vector :inline :offset-assert 48)
|
||||
(dest-vel vector :inline :offset-assert 64)
|
||||
(dest-move-dir vector :inline :offset-assert 80)
|
||||
(dest-offset vector :inline :offset-assert 96)
|
||||
(move-dir vector :inline :offset-assert 112)
|
||||
(nav-collide-impulse vector :inline :offset-assert 128)
|
||||
(nav-collide-impulse-len float :offset-assert 144)
|
||||
(dest-speed float :offset-assert 148)
|
||||
(local-dist float :offset-assert 152)
|
||||
(speed float :offset-assert 156)
|
||||
(max-los-speed float :offset-assert 160)
|
||||
(target-speed float :offset-assert 164)
|
||||
(target-acceleration float :offset-assert 168)
|
||||
(speed-dest float :offset-assert 172)
|
||||
(path-info hover-nav-path-info :inline :offset-assert 176)
|
||||
(curr-dest-pt int32 :offset-assert 192)
|
||||
(los-obstruction-distance float :offset-assert 196)
|
||||
(los-last-clear-time time-frame :offset-assert 200)
|
||||
(max-speed-multiplier float :offset-assert 208)
|
||||
(max-acceleration-multiplier float :offset-assert 212)
|
||||
)
|
||||
:method-count-assert 32
|
||||
:size-assert #xd8
|
||||
:flag-assert #x20000000d8
|
||||
(:methods
|
||||
(new (symbol type process collide-shape-moving hover-nav-params) _type_ 0)
|
||||
(hover-nav-control-method-9 (_type_) none 9)
|
||||
(hover-nav-control-method-10 (_type_) none 10)
|
||||
(hover-nav-control-method-11 (_type_) none 11)
|
||||
(hover-nav-control-method-10 (_type_ vector vector vector) none 10)
|
||||
(hover-nav-control-method-11 (_type_ vector) none 11)
|
||||
(hover-nav-control-method-12 (_type_) none 12)
|
||||
(hover-nav-control-method-13 (_type_) none 13)
|
||||
(hover-nav-control-method-14 (_type_ float float) none 14)
|
||||
(hover-nav-control-method-15 (_type_) none 15)
|
||||
(hover-nav-control-method-16 (_type_) none 16)
|
||||
(hover-nav-control-method-17 (_type_) none 17)
|
||||
(hover-nav-control-method-18 (_type_) none 18)
|
||||
(hover-nav-control-method-19 (_type_) none 19)
|
||||
(hover-nav-control-method-15 (_type_ vector) none 15)
|
||||
(hover-nav-control-method-16 (_type_ vector) vector 16)
|
||||
(hover-nav-control-method-17 (_type_) collide-prim-core 17)
|
||||
(hover-nav-control-method-18 (_type_ path-control int int) none 18)
|
||||
(hover-nav-control-method-19 (_type_ (inline-array vector) int) none 19)
|
||||
(hover-nav-control-method-20 (_type_) none 20)
|
||||
(hover-nav-control-method-21 (_type_) none 21)
|
||||
(hover-nav-control-method-22 (_type_) hover-nav-path-segment 22)
|
||||
(hover-nav-control-method-23 (_type_) object 23)
|
||||
(hover-nav-control-method-24 (_type_) none 24)
|
||||
(hover-nav-control-method-25 (_type_) none 25)
|
||||
(hover-nav-control-method-26 (_type_) none 26)
|
||||
(hover-nav-control-method-27 (_type_) none 27)
|
||||
(hover-nav-control-method-28 (_type_) none 28)
|
||||
(hover-nav-control-method-29 (_type_) none 29)
|
||||
(hover-nav-control-method-26 (_type_ vector vector float) symbol 26)
|
||||
(hover-nav-control-method-27 (_type_ vector vector) int 27)
|
||||
(hover-nav-control-method-28 (_type_ vector vector) none 28)
|
||||
(hover-nav-control-method-29 (_type_ vector) none 29)
|
||||
(hover-nav-control-method-30 (_type_) float 30)
|
||||
(hover-nav-control-method-31 (_type_) float 31)
|
||||
)
|
||||
|
||||
Generated
Vendored
+1854
File diff suppressed because it is too large
Load Diff
+1705
File diff suppressed because it is too large
Load Diff
Generated
Vendored
+1
-1
@@ -858,7 +858,7 @@
|
||||
(set! (-> v1-32 attack-id) a0-26)
|
||||
(set! (-> s5-0 attack-id) a0-26)
|
||||
)
|
||||
(set! (-> s5-0 timeout) (new 'static 'handle :process #x4b0 :u64 #x4b0))
|
||||
(set! (-> s5-0 timeout) (seconds 4))
|
||||
(spawn-projectile centurion-shot s5-0 obj *default-dead-pool*)
|
||||
)
|
||||
(set! (-> obj can-shoot?) #f)
|
||||
|
||||
Generated
Vendored
+1
-1
@@ -891,7 +891,7 @@
|
||||
(set! (-> v1-27 attack-id) a0-27)
|
||||
(set! (-> a1-9 attack-id) a0-27)
|
||||
)
|
||||
(set! (-> a1-9 timeout) (new 'static 'handle :process #x4b0 :u64 #x4b0))
|
||||
(set! (-> a1-9 timeout) (seconds 4))
|
||||
(spawn-projectile metalhead-grenade-shot a1-9 self *default-dead-pool*)
|
||||
)
|
||||
)
|
||||
|
||||
+1
-1
@@ -1087,7 +1087,7 @@
|
||||
(set! (-> a0-10 attack-id) a3-11)
|
||||
(set! (-> gp-0 attack-id) a3-11)
|
||||
)
|
||||
(set! (-> gp-0 timeout) (new 'static 'handle :process #x4b0 :u64 #x4b0))
|
||||
(set! (-> gp-0 timeout) (seconds 4))
|
||||
(vector-normalize! (vector-! (-> gp-0 vel) a1-1 (the-as vector v1-0)) arg1)
|
||||
)
|
||||
(spawn-projectile spyder-shot gp-0 obj *default-dead-pool*)
|
||||
|
||||
+1
-1
@@ -776,7 +776,7 @@
|
||||
(set! (-> v1-12 attack-id) a0-18)
|
||||
(set! (-> proj-params attack-id) a0-18)
|
||||
)
|
||||
(set! (-> proj-params timeout) (new 'static 'handle :process #x4b0 :u64 #x4b0))
|
||||
(set! (-> proj-params timeout) (seconds 4))
|
||||
(vector-normalize-copy! (-> proj-params vel) s2-1 491520.0)
|
||||
(let ((f30-1 (fmin 16384.0 f30-0)))
|
||||
(set-vector! temp-vec (-> s2-1 z) (-> s2-1 y) (- (-> s2-1 x)) 1.0)
|
||||
|
||||
+2
-2
@@ -628,7 +628,7 @@
|
||||
(set! (-> a0-10 attack-id) a2-11)
|
||||
(set! (-> gp-0 attack-id) a2-11)
|
||||
)
|
||||
(set! (-> gp-0 timeout) (new 'static 'handle :process #x4b0 :u64 #x4b0))
|
||||
(set! (-> gp-0 timeout) (seconds 4))
|
||||
(set! (-> gp-0 pos quad) (-> arg1 quad))
|
||||
(vector-normalize-copy! (-> gp-0 vel) v1-1 arg3)
|
||||
)
|
||||
@@ -1028,7 +1028,7 @@
|
||||
(set! (-> a0-10 attack-id) a2-11)
|
||||
(set! (-> gp-0 attack-id) a2-11)
|
||||
)
|
||||
(set! (-> gp-0 timeout) (new 'static 'handle :process #x4b0 :u64 #x4b0))
|
||||
(set! (-> gp-0 timeout) (seconds 4))
|
||||
(set! (-> gp-0 pos quad) (-> arg1 quad))
|
||||
(vector-normalize-copy! (-> gp-0 vel) v1-1 arg3)
|
||||
)
|
||||
|
||||
+1
-1
@@ -793,7 +793,7 @@ This commonly includes things such as:
|
||||
(set! (-> a0-8 attack-id) a1-6)
|
||||
(set! (-> v1-7 attack-id) a1-6)
|
||||
)
|
||||
(set! (-> v1-7 timeout) (new 'static 'handle :process #x4b0 :u64 #x4b0))
|
||||
(set! (-> v1-7 timeout) (seconds 4))
|
||||
(vector+! (-> v1-7 pos) (-> self root trans) s5-1)
|
||||
(vector-float*! (-> v1-7 vel) gp-2 163840.0)
|
||||
(spawn-projectile
|
||||
|
||||
+1
-1
@@ -1745,7 +1745,7 @@ This commonly includes things such as:
|
||||
(set! (-> v1-48 attack-id) a0-24)
|
||||
(set! (-> s4-4 attack-id) a0-24)
|
||||
)
|
||||
(set! (-> s4-4 timeout) (new 'static 'handle :process #x4b0 :u64 #x4b0))
|
||||
(set! (-> s4-4 timeout) (seconds 4))
|
||||
(set! (-> s4-4 pos quad) (-> s5-1 start-pos quad))
|
||||
(vector-normalize-copy! (-> s4-4 vel) (-> s5-1 move-dist) 4096000.0)
|
||||
(spawn-projectile guard-lazer-shot s4-4 self *default-dead-pool*)
|
||||
|
||||
+1
-1
@@ -759,7 +759,7 @@
|
||||
(set! (-> v1-10 attack-id) a0-11)
|
||||
(set! (-> s5-0 attack-id) a0-11)
|
||||
)
|
||||
(set! (-> s5-0 timeout) (new 'static 'handle :process #x4b0 :u64 #x4b0))
|
||||
(set! (-> s5-0 timeout) (seconds 4))
|
||||
(vector<-cspace! (-> s5-0 pos) a1-1)
|
||||
(let ((s2-0 (handle->process (-> obj focus handle)))
|
||||
(s3-0 (new 'stack-no-clear 'vector))
|
||||
|
||||
Generated
Vendored
+1
-1
@@ -1016,7 +1016,7 @@
|
||||
(set! (-> a1-10 attack-id) a2-11)
|
||||
(set! (-> gp-0 attack-id) a2-11)
|
||||
)
|
||||
(set! (-> gp-0 timeout) (new 'static 'handle :process #x4b0 :u64 #x4b0))
|
||||
(set! (-> gp-0 timeout) (seconds 4))
|
||||
(vector-! (-> gp-0 vel) a0-1 v1-0)
|
||||
)
|
||||
(vector-normalize! (-> gp-0 vel) 512000.0)
|
||||
|
||||
+1
-1
@@ -779,7 +779,7 @@
|
||||
(set! (-> v1-10 attack-id) a0-18)
|
||||
(set! (-> s4-0 attack-id) a0-18)
|
||||
)
|
||||
(set! (-> s4-0 timeout) (new 'static 'handle :process #x4b0 :u64 #x4b0))
|
||||
(set! (-> s4-0 timeout) (seconds 4))
|
||||
(vector-normalize-copy! (-> s4-0 vel) s2-1 491520.0)
|
||||
(let ((f30-1 (fmin 16384.0 f30-0)))
|
||||
(set-vector! s3-0 (-> s2-1 z) (-> s2-1 y) (- (-> s2-1 x)) 1.0)
|
||||
|
||||
+1
-1
@@ -57,7 +57,7 @@
|
||||
(set! (-> v1-13 attack-id) a0-12)
|
||||
(set! (-> s5-0 attack-id) a0-12)
|
||||
)
|
||||
(set! (-> s5-0 timeout) (new 'static 'handle :process #x4b0 :u64 #x4b0))
|
||||
(set! (-> s5-0 timeout) (seconds 4))
|
||||
(vector-normalize-copy! (-> s5-0 vel) arg2 491520.0)
|
||||
(let ((f30-1 (fmin 16384.0 f30-0)))
|
||||
(set-vector! s3-0 (-> arg2 z) (-> arg2 y) (- (-> arg2 x)) 1.0)
|
||||
|
||||
+1
-1
@@ -53,7 +53,7 @@
|
||||
(set! (-> a0-10 attack-id) a2-11)
|
||||
(set! (-> gp-0 attack-id) a2-11)
|
||||
)
|
||||
(set! (-> gp-0 timeout) (new 'static 'handle :process #x4b0 :u64 #x4b0))
|
||||
(set! (-> gp-0 timeout) (seconds 4))
|
||||
(set! (-> gp-0 pos quad) (-> arg1 quad))
|
||||
(vector-normalize-copy! (-> gp-0 vel) v1-1 arg3)
|
||||
)
|
||||
|
||||
+1
-5
@@ -3066,7 +3066,7 @@ This commonly includes things such as:
|
||||
(set! (-> a1-11 attack-id) a2-12)
|
||||
(set! (-> s4-1 attack-id) a2-12)
|
||||
)
|
||||
(set! (-> s4-1 timeout) (new 'static 'handle :process #x4b0 :u64 #x4b0))
|
||||
(set! (-> s4-1 timeout) (seconds 4))
|
||||
(vector-! (-> s4-1 vel) v1-6 a0-3)
|
||||
)
|
||||
(set! (-> arg1 grenade) (ppointer->handle (spawn-projectile squid-grenade s4-1 obj *default-dead-pool*)))
|
||||
@@ -3296,7 +3296,3 @@ This commonly includes things such as:
|
||||
;; definition for method 53 of type squid
|
||||
;; INFO: function output is handled by mips2c
|
||||
(defmethod-mips2c "(method 53 squid)" 53 squid)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user