mirror of
https://github.com/open-goal/jak-project
synced 2026-08-26 08:12:57 -04:00
decomp: tomb-* files, target-indax, grunt-mech, breakable-wall, pillar-collapse, mechtest-obs, ruins-obs (#2114)
Manual patches in: - `tomb-boulder`: a few `ppointer->handle`s (I think) were not being decompiled properly (all used in combination with `clone-anim-once`) - `ruins-obs`, `pillar-collapse`: `art-joint-anim` casts - `tomb-beetle`: commented out a call to `shadow-control-method-14` that was crashing the game when spawning the beetles - `grunt-mech`: commented out `(.mula.s)` instruction Notes: - `enemy-info`'s `idle-anim-script` is most likely a `(pointer idle-control-frame)`, however, some `nav-enemy-info` labels set it to `#f` (first encountered in `tomb-beetle`, but also present in `hal`, `roboguard` and `metalkor-setup`), which crashes the decompiler. This may become a problem in the future when we eventually get to these files. For this PR, I made `tomb-beetle` decompile with `idle-anim-script` set to `#f` and have not noticed any issues/crashes with that. - `tomb-boulder` compiles and doesn't crash, but when trying to play the Daxter chase sequence, the boulder sometimes either spawns at the origin or spawns in the correct place, but doesn't move. Co-authored-by: water <awaterford111445@gmail.com>
This commit is contained in:
+275
-280
File diff suppressed because it is too large
Load Diff
@@ -721,5 +721,15 @@
|
||||
[36, "(function process-focusable traffic-object-type-info none)"],
|
||||
[45, "(function process-tree none)"],
|
||||
[61, "(function vector matrix matrix)"] // a guess
|
||||
],
|
||||
"ruins-obs": [
|
||||
[0, "(function object :behavior task-manager)"],
|
||||
[1, "(function symbol :behavior task-manager)"],
|
||||
[2, "(function object :behavior task-manager)"],
|
||||
[3, "(function symbol :behavior task-manager)"]
|
||||
],
|
||||
"tomb-boulder": [
|
||||
[0, "(function process vector cspace object object (pointer process))"],
|
||||
[4, "(function process-drawable vector)"]
|
||||
]
|
||||
}
|
||||
|
||||
@@ -443,7 +443,7 @@
|
||||
"bones-mtx-calc-execute": [19, 7],
|
||||
"foreground-draw": [0, 1, 126],
|
||||
"dma-add-process-drawable": [0, 136],
|
||||
"(anon-function 3 ruins-obs)": [14],
|
||||
"(anon-function 3 ruins-obs)": [14, 22],
|
||||
"(anon-function 0 target-death)": [
|
||||
50, // goto 52
|
||||
51, // goto L65
|
||||
@@ -510,7 +510,16 @@
|
||||
"(method 18 traffic-tracker)": [2, 3, 5, 6, 7, 8],
|
||||
"(method 181 gator)": [
|
||||
2, 3, 7, 10, 11, 14, 15, 16, 17, 18, 19, 20, 21, 22, 25, 26, 30
|
||||
]
|
||||
],
|
||||
"(method 10 simple-sprite-system)": [0, 1, 3, 4, 5, 6, 9, 11],
|
||||
"target-pilot-post": [0, 2, 4, 5, 13, 16, 22, 27, 41],
|
||||
"(anon-function 0 ruins-obs)": [
|
||||
0, 5, 7, 12, 13, 15, 17, 23, 24, 33, 42, 45, 46, 53, 58
|
||||
],
|
||||
"(anon-function 1 ruins-obs)": [
|
||||
1, 2, 4, 6, 7, 14, 17, 19, 22, 24, 26, 27, 29, 31, 33, 35
|
||||
],
|
||||
"(anon-function 2 ruins-obs)": [7, 28, 37, 50, 51, 61, 62, 71]
|
||||
},
|
||||
|
||||
// Sometimes the game might use format strings that are fetched dynamically,
|
||||
|
||||
@@ -90,7 +90,7 @@
|
||||
"DGO/CFA.DGO",
|
||||
// "DGO/TOMBEXT.DGO",
|
||||
// "DGO/LCGUARD.DGO",
|
||||
// "DGO/TOE.DGO",
|
||||
"DGO/TOE.DGO",
|
||||
// "DGO/PALBOSS.DGO",
|
||||
"DGO/FRB.DGO",
|
||||
"DGO/PAE.DGO",
|
||||
@@ -215,10 +215,28 @@
|
||||
"LWIDEA.DGO",
|
||||
"LWIDEB.DGO",
|
||||
"LWIDEC.DGO",
|
||||
"FEA.DGO",
|
||||
"FEB.DGO",
|
||||
"DRI.DGO",
|
||||
"TOC.DGO",
|
||||
"FOB.DGO",
|
||||
"SAG.DGO",
|
||||
"MTX.DGO",
|
||||
"MCN.DGO",
|
||||
"MTN.DGO",
|
||||
"MTX.DGO",
|
||||
"TOB.DGO",
|
||||
"TOA.DGO",
|
||||
"TOD.DGO",
|
||||
"TOE.DGO",
|
||||
"DRILLMTN.DGO",
|
||||
"FOR.DGO",
|
||||
"LDJAKBRN.DGO",
|
||||
"HIDEOUT.DGO",
|
||||
"KIOSK.DGO",
|
||||
"DMI.DGO",
|
||||
"LSACK.DGO",
|
||||
"ORACLE.DGO",
|
||||
"MTN.DGO",
|
||||
"PRI.DGO",
|
||||
"RUI.DGO",
|
||||
"SAG.DGO",
|
||||
|
||||
@@ -64,7 +64,10 @@
|
||||
"rigid-body-plat": [["L47", "rigid-body-platform-constants"]],
|
||||
"sprite": [["L51", "vu-function"]],
|
||||
"sprite-distort": [["L27", "vu-function"]],
|
||||
"sprite-glow": [["L29", "vu-function"]],
|
||||
"sprite-glow": [
|
||||
["L29", "vu-function"],
|
||||
["L27", "vector"]
|
||||
],
|
||||
"debug": [
|
||||
["L250", "(inline-array vector)", 32],
|
||||
["L254", "(inline-array vector)", 3],
|
||||
@@ -1016,5 +1019,34 @@
|
||||
"traffic-engine": [
|
||||
["L803", "uint64", true],
|
||||
["L733", "uint64", true]
|
||||
],
|
||||
"mechtest-obs": [["L79", "attack-info"]],
|
||||
"pillar-collapse": [["L193", "attack-info"]],
|
||||
"tomb-boulder": [
|
||||
["L364", "attack-info"],
|
||||
["L343", "attack-info"],
|
||||
["L323", "attack-info"],
|
||||
["L322", "attack-info"]
|
||||
],
|
||||
"grunt-mech": [["L122", "attack-info"]],
|
||||
"tomb-obs": [
|
||||
["L225", "vector"],
|
||||
["L290", "vector"],
|
||||
["L286", "vector"],
|
||||
["L224", "vector"],
|
||||
["L301", "attack-info"]
|
||||
],
|
||||
"tomb-water": [
|
||||
["L552", "(inline-array vector)", 3],
|
||||
["L495", "attack-info"],
|
||||
["L524", "attack-info"],
|
||||
["L502", "(pointer handle)", 2],
|
||||
["L503", "(pointer int32)", 4],
|
||||
["L534", "(pointer sound-name)", 4],
|
||||
["L533", "(inline-array vector)", 4]
|
||||
],
|
||||
"tomb-beetle": [
|
||||
["L118", "attack-info"],
|
||||
["L126", "(pointer int64)", 2]
|
||||
]
|
||||
}
|
||||
|
||||
@@ -1559,5 +1559,49 @@
|
||||
[16, "bounding-box"],
|
||||
[48, "vector4w"]
|
||||
],
|
||||
"(method 22 traffic-tracker)": [[16, ["inline-array", "vector", 10]]]
|
||||
"(method 22 traffic-tracker)": [[16, ["inline-array", "vector", 10]]],
|
||||
"(method 10 simple-sprite-system)": [[16, ["array", "texture-id", 4]]],
|
||||
"(anon-function 3 ruins-obs)": [[16, "event-message-block"]],
|
||||
"(event unbroken ruins-breakable-wall)": [[16, "attack-info"]],
|
||||
"(method 21 spider-eyes)": [[32, "vector"]],
|
||||
"(code mech-lunge grunt-mech)": [[16, "matrix"]],
|
||||
"(method 193 grunt-mech)": [[32, "vector"]],
|
||||
"(code mech-dismount grunt-mech)": [[16, "matrix"]],
|
||||
"(post chase tomb-boulder)": [
|
||||
[16, "collide-query"],
|
||||
[560, "vector"],
|
||||
[576, "vector"],
|
||||
[592, "event-message-block"]
|
||||
],
|
||||
"(enter chase tomb-boulder)": [[32, "event-message-block"]],
|
||||
"(code doors-open tomb-sphinx)": [
|
||||
[32, "vector"],
|
||||
[48, "vector"],
|
||||
[64, "vector"],
|
||||
[80, "vector"]
|
||||
],
|
||||
"(code active tomb-sphinx)": [[80, "vector"]],
|
||||
"(trans wait-for-pools tomb-stair-block)": [[32, "event-message-block"]],
|
||||
"drop-pool": [[32, "vector"]],
|
||||
"(method 24 tomb-water-trap)": [
|
||||
[16, "vector"],
|
||||
[32, "vector"],
|
||||
[48, "vector"],
|
||||
[64, "vector"],
|
||||
[80, "matrix"],
|
||||
[144, "matrix"]
|
||||
],
|
||||
"(method 11 tomb-water-trap)": [
|
||||
[16, "sync-info-params"],
|
||||
[64, "sphere"]
|
||||
],
|
||||
"(method 23 tomb-water-trap)": [
|
||||
[592, "vector"],
|
||||
[608, "event-message-block"],
|
||||
[16, "collide-query"],
|
||||
[560, "vector"]
|
||||
],
|
||||
"(trans show-sequence tomb-plat-simon)": [[16, "event-message-block"]],
|
||||
"(event dangerous tomb-simon-block)": [[16, "vector"]],
|
||||
"(method 185 tomb-beetle)": [[16, "vector"]]
|
||||
}
|
||||
|
||||
@@ -5236,7 +5236,7 @@
|
||||
"(event impact turret-shot)": [[11, "s4", "process-drawable"]],
|
||||
"(code impact turret-shot)": [[4, "v1", "collide-shape-prim-group"]],
|
||||
"(method 29 sinking-plat)": [
|
||||
[6, "v0", "(function rigid-body-platform float none)"]
|
||||
[9, "t9", "(function rigid-body-platform float none)"]
|
||||
],
|
||||
"(code collapse beam)": [[25, "v1", "art-joint-anim"]],
|
||||
"(code fall ruins-bridge)": [
|
||||
@@ -6917,5 +6917,214 @@
|
||||
"(method 72 traffic-engine)": [[25, "a3", "int"]],
|
||||
"(method 60 traffic-engine)": [[29, "v1", "collide-shape"]],
|
||||
"(method 26 traffic-tracker)": [[26, "a0", "process-focusable"]],
|
||||
"(method 17 traffic-tracker)": [[23, "s1", "process-focusable"]]
|
||||
"(method 17 traffic-tracker)": [[23, "s1", "process-focusable"]],
|
||||
"target-pilot-post": [[96, "s5", "process-focusable"]],
|
||||
"(anon-function 1 ruins-obs)": [
|
||||
[85, "v1", "process-drawable"],
|
||||
[17, "v1", "process-drawable"]
|
||||
],
|
||||
"(anon-function 0 ruins-obs)": [
|
||||
[173, "v1", "process-drawable"],
|
||||
[36, "v1", "process-drawable"]
|
||||
],
|
||||
"(event idle mechblock)": [
|
||||
[15, "a0", "carry-info"],
|
||||
[29, "a0", "carry-info"],
|
||||
[20, "a0", "carry-info"],
|
||||
[32, "a0", "carry-info"]
|
||||
],
|
||||
"(event drag mechblock)": [
|
||||
[49, "a0", "carry-info"],
|
||||
[57, "a0", "vector"],
|
||||
[79, "a0", "vector"],
|
||||
[52, "a0", "carry-info"]
|
||||
],
|
||||
"(enter fall mechblock)": [
|
||||
[43, "a0", "carry-info"],
|
||||
[46, "a0", "carry-info"]
|
||||
],
|
||||
"(event carry mechblock)": [[15, "a0", "vector"]],
|
||||
"(method 30 ruins-breakable-wall)": [[55, "v1", "collide-shape-prim-group"]],
|
||||
"(event unbroken ruins-breakable-wall)": [
|
||||
[10, "s4", "attack-info"],
|
||||
[41, "s3", "attack-info"],
|
||||
[20, "s4", "pointer"]
|
||||
],
|
||||
"(method 11 ruins-pillar-collapse)": [
|
||||
[77, "s1", "pair"],
|
||||
[96, "s1", "pair"],
|
||||
[97, "v1", "pair"],
|
||||
[110, "s1", "pair"],
|
||||
[111, "v1", "pair"],
|
||||
[112, "v1", "pair"],
|
||||
[118, "s2", "pair"],
|
||||
[117, "s2", "pair"]
|
||||
],
|
||||
"(code fall ruins-pillar-collapse)": [
|
||||
[16, "v1", "collide-shape-prim-group"],
|
||||
[20, "v1", "collide-shape-prim-group"]
|
||||
],
|
||||
"(event fall ruins-pillar-collapse)": [
|
||||
[35, "a0", "process-focusable"],
|
||||
[13, "a0", "process-focusable"],
|
||||
[34, "gp", "process-focusable"]
|
||||
],
|
||||
"(event idle ruins-pillar-collapse)": [
|
||||
[10, "gp", "attack-info"],
|
||||
[27, "s3", "process-drawable"],
|
||||
[45, "gp", "attack-info"]
|
||||
],
|
||||
"target-indax-handler": [[88, "a0", "process"]],
|
||||
"(code target-indax-stance)": [
|
||||
[23, "v1", "art-joint-anim"],
|
||||
[240, "v1", "art-joint-anim"],
|
||||
[94, "v1", "art-joint-anim"],
|
||||
[182, "v1", "art-joint-anim"]
|
||||
],
|
||||
"(code target-indax-walk)": [[89, "v1", "art-joint-anim"]],
|
||||
"(code target-indax-hit-ground)": [[14, "v1", "art-joint-anim"]],
|
||||
"(code target-indax-attack-air)": [[11, "gp", "art-joint-anim"]],
|
||||
"(code target-indax-death)": [
|
||||
[134, "v1", "art-joint-anim"],
|
||||
[251, "v1", "art-joint-anim"],
|
||||
[341, "v1", "art-joint-anim"],
|
||||
[394, "v1", "art-joint-anim"],
|
||||
[478, "v1", "art-joint-anim"]
|
||||
],
|
||||
"(code target-indax-double-jump)": [
|
||||
[50, "v1", "art-joint-anim"],
|
||||
[104, "v1", "art-joint-anim"]
|
||||
],
|
||||
"(code target-indax-trip)": [
|
||||
[17, "v1", "art-joint-anim"],
|
||||
[90, "v1", "art-joint-anim"]
|
||||
],
|
||||
"(code target-indax-attack)": [[18, "gp", "art-joint-anim"]],
|
||||
"(code target-indax-running-attack)": [
|
||||
[42, "gp", "art-joint-anim"],
|
||||
[141, "f26", "float"],
|
||||
[224, "f26", "float"]
|
||||
],
|
||||
"(code idle tomb-boulder-stop)": [[4, "a0", "process"]],
|
||||
"tomb-spider-init": [[114, "gp", "process-drawable"]],
|
||||
"(code idle tomb-boulder-pillar)": [[4, "a0", "process"]],
|
||||
"(code mech-lunge grunt-mech)": [[25, "v1", "art-joint-anim"]],
|
||||
"(trans mech-post-circling grunt-mech)": [
|
||||
[14, "a0", "process-focusable"],
|
||||
[17, "a0", "process-focusable"]
|
||||
],
|
||||
"(code mech-dismount grunt-mech)": [
|
||||
[41, "v1", "art-joint-anim"],
|
||||
[149, "v1", "art-joint-anim"]
|
||||
],
|
||||
"(code mech-hold grunt-mech)": [
|
||||
[10, "v1", "art-joint-anim"],
|
||||
[531, "v1", "art-joint-anim"]
|
||||
],
|
||||
"(code chase tomb-boulder)": [[141, "gp", "handle"]],
|
||||
"(code idle tomb-boulder)": [[137, "gp", "handle"]],
|
||||
"(exit chase tomb-boulder)": [[24, "v0", "sound-rpc-set-param"]],
|
||||
"(post chase tomb-boulder)": [
|
||||
[606, "v0", "sound-rpc-set-param"],
|
||||
[496, "a0", "int"],
|
||||
[278, "v1", "vector"],
|
||||
[463, "a0", "(array float)"],
|
||||
[486, "v1", "(array float)"],
|
||||
[452, "a0", "(array float)"],
|
||||
[457, "a0", "(array float)"]
|
||||
],
|
||||
"(code idle tomb-spider)": [[[1, 9], "v1", "(pointer process)"]],
|
||||
"(method 10 tomb-sphinx)": [[10, "t9", "(function process-drawable none)"]],
|
||||
"tomb-stair-block-spikes-init-by-other": [
|
||||
[53, "s2", "pair"],
|
||||
[72, "s2", "pair"],
|
||||
[73, "v1", "pair"],
|
||||
[86, "s2", "pair"],
|
||||
[87, "v1", "pair"],
|
||||
[88, "v1", "pair"],
|
||||
[94, "s3", "pair"],
|
||||
[93, "s3", "pair"]
|
||||
],
|
||||
"(enter sunk tomb-stair-block)": [[16, "v1", "art-joint-anim"]],
|
||||
"(code sink tomb-stair-block)": [[109, "v1", "art-joint-anim"]],
|
||||
"(event idle tomb-stair-block-spikes)": [[24, "v1", "vector"]],
|
||||
"(code moving tomb-stair-block)": [[40, "v1", "art-joint-anim"]],
|
||||
"(post running tomb-elevator)": [[8, "t9", "(function none)"]],
|
||||
"(method 10 tomb-plat-return)": [
|
||||
[10, "t9", "(function process-drawable none)"]
|
||||
],
|
||||
"lift-pool": [
|
||||
[12, "v0", "(pointer actor-group)"],
|
||||
["_stack_", 16, "res-tag"]
|
||||
],
|
||||
"drop-pool": [
|
||||
[12, "v0", "(pointer actor-group)"],
|
||||
["_stack_", 16, "res-tag"]
|
||||
],
|
||||
"(trans wait-for-pools tomb-stair-block)": [
|
||||
[12, "v0", "(pointer actor-group)"],
|
||||
["_stack_", 16, "res-tag"]
|
||||
],
|
||||
"(enter idle tomb-stair-block)": [
|
||||
[40, "v0", "(pointer actor-group)"],
|
||||
["_stack_", 16, "res-tag"]
|
||||
],
|
||||
"(code die tomb-vibe)": [
|
||||
[14, "v1", "art-joint-anim"],
|
||||
[70, "v1", "art-joint-anim"]
|
||||
],
|
||||
"(code open tomb-smash-door)": [[10, "v1", "art-joint-anim"]],
|
||||
"(code close tomb-smash-door)": [[10, "v1", "art-joint-anim"]],
|
||||
"(method 33 tomb-button)": [[35, "v1", "art-joint-anim"]],
|
||||
"(code open tomb-beetle-door)": [[10, "v1", "art-joint-anim"]],
|
||||
"(code open tomb-door)": [[19, "v1", "art-joint-anim"]],
|
||||
"(trans up-idle tomb-beetle-button)": [[4, "v0", "(state basebutton)"]],
|
||||
"(code wobble-die tomb-simon-block)": [[10, "v1", "art-joint-anim"]],
|
||||
"(code open tomb-simon-button)": [
|
||||
[14, "v1", "art-joint-anim"],
|
||||
[47, "v1", "art-joint-anim"]
|
||||
],
|
||||
"(code unpress tomb-simon-button)": [[10, "v1", "art-joint-anim"]],
|
||||
"(method 23 tomb-water-trap)": [[42, "s2", "collide-shape-prim-sphere"]],
|
||||
"(code pressed tomb-simon-button)": [
|
||||
[19, "v1", "art-joint-anim"],
|
||||
[55, "v1", "art-joint-anim"]
|
||||
],
|
||||
"(enter waiting tomb-simon-button)": [[10, "v1", "art-joint-anim"]],
|
||||
"(event idle tomb-vibe)": [[6, "a0", "attack-info"]],
|
||||
"(method 11 tomb-beetle-door)": [["_stack_", 16, "res-tag"]],
|
||||
"(method 11 tomb-vibe)": [
|
||||
["_stack_", 16, "res-tag"],
|
||||
["_stack_", 32, "res-tag"]
|
||||
],
|
||||
"(method 11 tomb-plat-simon)": [["_stack_", 16, "res-tag"]],
|
||||
"(code ambush tomb-beetle)": [[14, "v1", "art-joint-anim"]],
|
||||
"(code active tomb-beetle)": [
|
||||
[74, "v1", "art-joint-anim"],
|
||||
[22, "v1", "art-joint-anim"]
|
||||
],
|
||||
"(code land tomb-beetle)": [
|
||||
[10, "v1", "art-joint-anim"],
|
||||
[111, "v1", "art-joint-anim"]
|
||||
],
|
||||
"(code key tomb-beetle)": [[10, "v1", "art-joint-anim"]],
|
||||
"(code go-to-door tomb-beetle)": [[85, "v1", "art-joint-anim"]],
|
||||
"(code die tomb-beetle)": [[30, "v1", "art-joint-anim"]],
|
||||
"(code fly-away tomb-beetle)": [
|
||||
[77, "v1", "art-joint-anim"],
|
||||
[212, "v1", "art-joint-anim"]
|
||||
],
|
||||
"(code stand tomb-beetle)": [[10, "v1", "art-joint-anim"]],
|
||||
"(enter dormant tomb-beetle)": [[17, "v0", "(state enemy)"]],
|
||||
"(enter go-to-door tomb-beetle)": [
|
||||
[[22, 153], "gp", "(inline-array tomb-beetle-fly-info)"],
|
||||
[65, "v1", "vector"],
|
||||
[35, "a0", "vector"],
|
||||
[51, "v1", "vector"]
|
||||
],
|
||||
"(trans go-to-door tomb-beetle)": [[23, "a0", "vector"]],
|
||||
"(enter fly-away tomb-beetle)": [
|
||||
[6, "a0", "vector"],
|
||||
[[1, 53], "gp", "(inline-array tomb-beetle-fly-info)"]
|
||||
]
|
||||
}
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
// if you want to filter to only some object names.
|
||||
// it will make the decompiler much faster.
|
||||
"allowed_objects": [],
|
||||
"banned_objects": ["texture-anim-tables"],
|
||||
"banned_objects": ["tomb-beetle", "texture-anim-tables"],
|
||||
|
||||
////////////////////////////
|
||||
// CODE ANALYSIS OPTIONS
|
||||
|
||||
@@ -752,12 +752,12 @@ const std::unordered_map<
|
||||
ArrayFieldDecompMeta::Kind::REF_TO_INTEGER_ARR)}}},
|
||||
{"enemy-info",
|
||||
{{"idle-anim-script",
|
||||
ArrayFieldDecompMeta(TypeSpec("uint32"),
|
||||
ArrayFieldDecompMeta(TypeSpec("idle-control-frame"),
|
||||
4,
|
||||
ArrayFieldDecompMeta::Kind::REF_TO_INTEGER_ARR)}}},
|
||||
{"nav-enemy-info",
|
||||
{{"idle-anim-script",
|
||||
ArrayFieldDecompMeta(TypeSpec("uint32"),
|
||||
ArrayFieldDecompMeta(TypeSpec("idle-control-frame"),
|
||||
4,
|
||||
ArrayFieldDecompMeta::Kind::REF_TO_INTEGER_ARR)}}},
|
||||
{"tpath-info",
|
||||
|
||||
@@ -93,7 +93,8 @@ void OpenGLRenderer::init_bucket_renderers_jak2() {
|
||||
init_bucket_renderer<TextureUploadHandler>("tex-lcom-sky-pre", BucketCategory::TEX,
|
||||
BucketId::TEX_LCOM_SKY_PRE);
|
||||
init_bucket_renderer<DirectRenderer>("sky-draw", BucketCategory::OTHER, BucketId::SKY_DRAW, 1024);
|
||||
init_bucket_renderer<SkipRenderer>("bucket-6", BucketCategory::OCEAN, BucketId::OCEAN_MID_FAR);
|
||||
init_bucket_renderer<SkipRenderer>("ocean-mid-far", BucketCategory::OCEAN,
|
||||
BucketId::OCEAN_MID_FAR);
|
||||
init_bucket_renderer<TextureUploadHandler>("tex-l0-tfrag", BucketCategory::TEX,
|
||||
BucketId::TEX_L0_TFRAG);
|
||||
init_bucket_renderer<TFragment>("tfrag-l0-tfrag", BucketCategory::TFRAG, BucketId::TFRAG_L0_TFRAG,
|
||||
@@ -163,9 +164,11 @@ void OpenGLRenderer::init_bucket_renderers_jak2() {
|
||||
BucketId::TFRAG_T_L1_ALPHA,
|
||||
std::vector{tfrag3::TFragmentTreeKind::TRANS}, false, 1);
|
||||
// 140
|
||||
init_bucket_renderer<TextureUploadHandler>("merc-l1-alpha", BucketCategory::MERC,
|
||||
BucketId::MERC_L1_ALPHA);
|
||||
init_bucket_renderer<Merc2>("merc-l1-alpha", BucketCategory::MERC, BucketId::MERC_L1_ALPHA);
|
||||
init_bucket_renderer<TextureUploadHandler>("tex-l2-alpha", BucketCategory::TEX,
|
||||
BucketId::TEX_L2_ALPHA);
|
||||
// 150
|
||||
init_bucket_renderer<Merc2>("merc-l2-alpha", BucketCategory::MERC, BucketId::MERC_L2_ALPHA);
|
||||
// 160
|
||||
// 170
|
||||
// 180
|
||||
|
||||
@@ -120,6 +120,8 @@ enum class BucketId {
|
||||
TEX_L1_ALPHA = 137,
|
||||
MERC_L1_ALPHA = 141,
|
||||
TFRAG_T_L1_ALPHA = 138,
|
||||
TEX_L2_ALPHA = 147,
|
||||
MERC_L2_ALPHA = 151,
|
||||
TEX_LCOM_TFRAG = 187,
|
||||
MERC_LCOM_TFRAG = 188,
|
||||
TEX_LCOM_SHRUB = 191,
|
||||
|
||||
@@ -105,87 +105,87 @@
|
||||
|
||||
|
||||
(deftype enemy-info (basic)
|
||||
((fact-defaults fact-info-enemy-defaults :offset-assert 4)
|
||||
(use-die-falling symbol :offset-assert 8)
|
||||
(use-victory symbol :offset-assert 12)
|
||||
(use-jump-blocked symbol :offset-assert 16)
|
||||
(debug-draw-neck symbol :offset-assert 20)
|
||||
(jump-debug-draw symbol :offset-assert 24)
|
||||
(move-to-ground symbol :offset-assert 28)
|
||||
(hover-if-no-ground symbol :offset-assert 32)
|
||||
(idle-anim-script (pointer uint32) :offset-assert 36)
|
||||
(idle-anim int32 :offset-assert 40)
|
||||
(notice-anim int32 :offset-assert 44)
|
||||
(hostile-anim int32 :offset-assert 48)
|
||||
(hit-anim int32 :offset-assert 52)
|
||||
(knocked-anim int32 :offset-assert 56)
|
||||
(knocked-land-anim int32 :offset-assert 60)
|
||||
(die-anim int32 :offset-assert 64)
|
||||
(die-falling-anim int32 :offset-assert 68)
|
||||
(victory-anim int32 :offset-assert 72)
|
||||
(jump-wind-up-anim int32 :offset-assert 76)
|
||||
(jump-in-air-anim int32 :offset-assert 80)
|
||||
(jump-land-anim int32 :offset-assert 84)
|
||||
(neck-joint int32 :offset-assert 88)
|
||||
(look-at-joint int32 :offset-assert 92)
|
||||
(bullseye-joint int32 :offset-assert 96)
|
||||
(sound-hit sound-name :offset-assert 112)
|
||||
(sound-die sound-name :offset-assert 128)
|
||||
(notice-distance meters :offset-assert 144)
|
||||
(notice-distance-delta meters :offset-assert 148)
|
||||
(proximity-notice-distance meters :offset-assert 152)
|
||||
(default-hit-points int32 :offset-assert 156)
|
||||
(gnd-collide-with collide-spec :offset-assert 160)
|
||||
(overlaps-others-collide-with-filter collide-spec :offset-assert 164)
|
||||
(penetrate-flinch uint64 :offset-assert 168)
|
||||
(penetrate-knocked uint64 :offset-assert 176)
|
||||
(movement-gravity meters :offset-assert 184)
|
||||
(friction float :offset-assert 188)
|
||||
(slip-factor float :offset-assert 192)
|
||||
(attack-shove-back meters :offset-assert 196)
|
||||
(attack-shove-up meters :offset-assert 200)
|
||||
(attack-mode symbol :offset-assert 204)
|
||||
(attack-damage int32 :offset-assert 208)
|
||||
(recover-gnd-collide-with collide-spec :offset-assert 212)
|
||||
(jump-height-min meters :offset-assert 216)
|
||||
(jump-height-factor float :offset-assert 220)
|
||||
(knocked-seek-ry-clamp float :offset-assert 224)
|
||||
(knocked-soft-vxz-lo float :offset-assert 228)
|
||||
(knocked-soft-vxz-hi float :offset-assert 232)
|
||||
(knocked-soft-vy-lo float :offset-assert 236)
|
||||
(knocked-soft-vy-hi float :offset-assert 240)
|
||||
(knocked-medium-vxz-lo float :offset-assert 244)
|
||||
(knocked-medium-vxz-hi float :offset-assert 248)
|
||||
(knocked-medium-vy-lo float :offset-assert 252)
|
||||
(knocked-medium-vy-hi float :offset-assert 256)
|
||||
(knocked-hard-vxz-lo float :offset-assert 260)
|
||||
(knocked-hard-vxz-hi float :offset-assert 264)
|
||||
(knocked-hard-vy-lo float :offset-assert 268)
|
||||
(knocked-hard-vy-hi float :offset-assert 272)
|
||||
(knocked-huge-vxz-lo float :offset-assert 276)
|
||||
(knocked-huge-vxz-hi float :offset-assert 280)
|
||||
(knocked-huge-vy-lo float :offset-assert 284)
|
||||
(knocked-huge-vy-hi float :offset-assert 288)
|
||||
(knocked-yellow-vxz-lo float :offset-assert 292)
|
||||
(knocked-yellow-vxz-hi float :offset-assert 296)
|
||||
(knocked-yellow-vy-lo float :offset-assert 300)
|
||||
(knocked-yellow-vy-hi float :offset-assert 304)
|
||||
(knocked-red-vxz-lo float :offset-assert 308)
|
||||
(knocked-red-vxz-hi float :offset-assert 312)
|
||||
(knocked-red-vy-lo float :offset-assert 316)
|
||||
(knocked-red-vy-hi float :offset-assert 320)
|
||||
(knocked-blue-vxz-lo float :offset-assert 324)
|
||||
(knocked-blue-vxz-hi float :offset-assert 328)
|
||||
(knocked-blue-vy-lo float :offset-assert 332)
|
||||
(knocked-blue-vy-hi float :offset-assert 336)
|
||||
(shadow-size meters :offset-assert 340)
|
||||
(shadow-max-y meters :offset-assert 344)
|
||||
(shadow-min-y meters :offset-assert 348)
|
||||
(shadow-locus-dist meters :offset-assert 352)
|
||||
(gem-joint int32 :offset-assert 356)
|
||||
(gem-seg uint32 :offset-assert 360)
|
||||
(gem-no-seg uint32 :offset-assert 364)
|
||||
(gem-offset sphere :inline :offset-assert 368)
|
||||
((fact-defaults fact-info-enemy-defaults :offset-assert 4)
|
||||
(use-die-falling symbol :offset-assert 8)
|
||||
(use-victory symbol :offset-assert 12)
|
||||
(use-jump-blocked symbol :offset-assert 16)
|
||||
(debug-draw-neck symbol :offset-assert 20)
|
||||
(jump-debug-draw symbol :offset-assert 24)
|
||||
(move-to-ground symbol :offset-assert 28)
|
||||
(hover-if-no-ground symbol :offset-assert 32)
|
||||
(idle-anim-script (pointer idle-control-frame) :offset-assert 36)
|
||||
(idle-anim int32 :offset-assert 40)
|
||||
(notice-anim int32 :offset-assert 44)
|
||||
(hostile-anim int32 :offset-assert 48)
|
||||
(hit-anim int32 :offset-assert 52)
|
||||
(knocked-anim int32 :offset-assert 56)
|
||||
(knocked-land-anim int32 :offset-assert 60)
|
||||
(die-anim int32 :offset-assert 64)
|
||||
(die-falling-anim int32 :offset-assert 68)
|
||||
(victory-anim int32 :offset-assert 72)
|
||||
(jump-wind-up-anim int32 :offset-assert 76)
|
||||
(jump-in-air-anim int32 :offset-assert 80)
|
||||
(jump-land-anim int32 :offset-assert 84)
|
||||
(neck-joint int32 :offset-assert 88)
|
||||
(look-at-joint int32 :offset-assert 92)
|
||||
(bullseye-joint int32 :offset-assert 96)
|
||||
(sound-hit sound-name :offset-assert 112)
|
||||
(sound-die sound-name :offset-assert 128)
|
||||
(notice-distance meters :offset-assert 144)
|
||||
(notice-distance-delta meters :offset-assert 148)
|
||||
(proximity-notice-distance meters :offset-assert 152)
|
||||
(default-hit-points int32 :offset-assert 156)
|
||||
(gnd-collide-with collide-spec :offset-assert 160)
|
||||
(overlaps-others-collide-with-filter collide-spec :offset-assert 164)
|
||||
(penetrate-flinch uint64 :offset-assert 168)
|
||||
(penetrate-knocked uint64 :offset-assert 176)
|
||||
(movement-gravity meters :offset-assert 184)
|
||||
(friction float :offset-assert 188)
|
||||
(slip-factor float :offset-assert 192)
|
||||
(attack-shove-back meters :offset-assert 196)
|
||||
(attack-shove-up meters :offset-assert 200)
|
||||
(attack-mode symbol :offset-assert 204)
|
||||
(attack-damage int32 :offset-assert 208)
|
||||
(recover-gnd-collide-with collide-spec :offset-assert 212)
|
||||
(jump-height-min meters :offset-assert 216)
|
||||
(jump-height-factor float :offset-assert 220)
|
||||
(knocked-seek-ry-clamp float :offset-assert 224)
|
||||
(knocked-soft-vxz-lo float :offset-assert 228)
|
||||
(knocked-soft-vxz-hi float :offset-assert 232)
|
||||
(knocked-soft-vy-lo float :offset-assert 236)
|
||||
(knocked-soft-vy-hi float :offset-assert 240)
|
||||
(knocked-medium-vxz-lo float :offset-assert 244)
|
||||
(knocked-medium-vxz-hi float :offset-assert 248)
|
||||
(knocked-medium-vy-lo float :offset-assert 252)
|
||||
(knocked-medium-vy-hi float :offset-assert 256)
|
||||
(knocked-hard-vxz-lo float :offset-assert 260)
|
||||
(knocked-hard-vxz-hi float :offset-assert 264)
|
||||
(knocked-hard-vy-lo float :offset-assert 268)
|
||||
(knocked-hard-vy-hi float :offset-assert 272)
|
||||
(knocked-huge-vxz-lo float :offset-assert 276)
|
||||
(knocked-huge-vxz-hi float :offset-assert 280)
|
||||
(knocked-huge-vy-lo float :offset-assert 284)
|
||||
(knocked-huge-vy-hi float :offset-assert 288)
|
||||
(knocked-yellow-vxz-lo float :offset-assert 292)
|
||||
(knocked-yellow-vxz-hi float :offset-assert 296)
|
||||
(knocked-yellow-vy-lo float :offset-assert 300)
|
||||
(knocked-yellow-vy-hi float :offset-assert 304)
|
||||
(knocked-red-vxz-lo float :offset-assert 308)
|
||||
(knocked-red-vxz-hi float :offset-assert 312)
|
||||
(knocked-red-vy-lo float :offset-assert 316)
|
||||
(knocked-red-vy-hi float :offset-assert 320)
|
||||
(knocked-blue-vxz-lo float :offset-assert 324)
|
||||
(knocked-blue-vxz-hi float :offset-assert 328)
|
||||
(knocked-blue-vy-lo float :offset-assert 332)
|
||||
(knocked-blue-vy-hi float :offset-assert 336)
|
||||
(shadow-size meters :offset-assert 340)
|
||||
(shadow-max-y meters :offset-assert 344)
|
||||
(shadow-min-y meters :offset-assert 348)
|
||||
(shadow-locus-dist meters :offset-assert 352)
|
||||
(gem-joint int32 :offset-assert 356)
|
||||
(gem-seg uint32 :offset-assert 360)
|
||||
(gem-no-seg uint32 :offset-assert 364)
|
||||
(gem-offset sphere :inline :offset-assert 368)
|
||||
)
|
||||
:method-count-assert 10
|
||||
:size-assert #x180
|
||||
|
||||
@@ -490,33 +490,36 @@
|
||||
(s4-1
|
||||
(vector<-cspace! (new 'stack-no-clear 'vector) (-> self node-list data (-> self draw shadow-joint-index)))
|
||||
)
|
||||
(f30-0 1638400.0)
|
||||
(s3-0 (new 'stack-no-clear 'collide-query))
|
||||
(f28-0 122880.0)
|
||||
)
|
||||
1638400.0
|
||||
(let ((s3-0 (new 'stack-no-clear 'collide-query))
|
||||
(f28-0 122880.0)
|
||||
)
|
||||
(set! (-> s3-0 start-pos quad) (-> s4-1 quad))
|
||||
(vector-normalize-copy! (-> s3-0 move-dist) s5-2 f28-0)
|
||||
(let ((v1-64 s3-0))
|
||||
(set! (-> v1-64 radius) 1638.4)
|
||||
(set! (-> v1-64 collide-with) (collide-spec obstacle hit-by-others-list))
|
||||
(set! (-> v1-64 ignore-process0) self)
|
||||
(set! (-> v1-64 ignore-process1) #f)
|
||||
(set! (-> v1-64 ignore-pat) (new 'static 'pat-surface :noentity #x1 :nojak #x1 :probe #x1 :noendlessfall #x1))
|
||||
(set! (-> v1-64 action-mask) (collide-action solid))
|
||||
)
|
||||
(let* ((f0-13 (fill-and-probe-using-line-sphere *collide-cache* s3-0))
|
||||
(f28-1 (if (< 0.0 f0-13)
|
||||
(* f0-13 f28-0)
|
||||
122880.0
|
||||
)
|
||||
)
|
||||
(s2-0 (method-of-object (-> self draw shadow-ctrl) shadow-control-method-14))
|
||||
)
|
||||
(- f28-1 (command-get-float (-> event param 0) 0.0))
|
||||
(+ f28-1 (command-get-float (-> event param 1) 0.0))
|
||||
(the-as object (s2-0))
|
||||
)
|
||||
(set! (-> s3-0 start-pos quad) (-> s4-1 quad))
|
||||
(vector-normalize-copy! (-> s3-0 move-dist) s5-2 f28-0)
|
||||
(let ((v1-64 s3-0))
|
||||
(set! (-> v1-64 radius) 1638.4)
|
||||
(set! (-> v1-64 collide-with) (collide-spec obstacle hit-by-others-list))
|
||||
(set! (-> v1-64 ignore-process0) self)
|
||||
(set! (-> v1-64 ignore-process1) #f)
|
||||
(set! (-> v1-64 ignore-pat) (new 'static 'pat-surface :noentity #x1 :nojak #x1 :probe #x1 :noendlessfall #x1))
|
||||
(set! (-> v1-64 action-mask) (collide-action solid))
|
||||
)
|
||||
(let* ((f0-13 (fill-and-probe-using-line-sphere *collide-cache* s3-0))
|
||||
(f28-1 (if (< 0.0 f0-13)
|
||||
(* f0-13 f28-0)
|
||||
122880.0
|
||||
)
|
||||
)
|
||||
)
|
||||
(the-as object (shadow-control-method-14
|
||||
(-> self draw shadow-ctrl)
|
||||
s4-1
|
||||
s5-2
|
||||
f30-0
|
||||
(- f28-1 (command-get-float (-> event param 0) 0.0))
|
||||
(+ f28-1 (command-get-float (-> event param 1) 0.0))
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
@@ -20,23 +20,23 @@
|
||||
|
||||
|
||||
(deftype idle-control (structure)
|
||||
((anim (pointer uint32) :offset-assert 0)
|
||||
(current (pointer uint32) :offset-assert 4)
|
||||
(counter int32 :offset-assert 8)
|
||||
(target int32 :offset-assert 12)
|
||||
((anim (pointer idle-control-frame) :offset-assert 0)
|
||||
(current (pointer idle-control-frame) :offset-assert 4)
|
||||
(counter int32 :offset-assert 8)
|
||||
(target int32 :offset-assert 12)
|
||||
)
|
||||
:method-count-assert 11
|
||||
:size-assert #x10
|
||||
:flag-assert #xb00000010
|
||||
(:methods
|
||||
(idle-control-method-9 (_type_ (pointer uint32)) none 9)
|
||||
(idle-control-method-9 (_type_ (pointer idle-control-frame)) none 9)
|
||||
(idle-control-method-10 (_type_ process-drawable) none :behavior process-drawable 10)
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
;; WARN: Return type mismatch idle-control vs none.
|
||||
(defmethod idle-control-method-9 idle-control ((obj idle-control) (arg0 (pointer uint32)))
|
||||
(defmethod idle-control-method-9 idle-control ((obj idle-control) (arg0 (pointer idle-control-frame)))
|
||||
(set! (-> obj anim) arg0)
|
||||
(set! (-> obj current) arg0)
|
||||
(set! (-> obj counter) 0)
|
||||
@@ -47,81 +47,79 @@
|
||||
;; TODO - method manually patched (maybe incorrectly) around `self` changing
|
||||
;; WARN: Function (method 10 idle-control) has a return type of none, but the expression builder found a return statement.
|
||||
(defmethod idle-control-method-10 idle-control ((obj idle-control) (arg0 process-drawable))
|
||||
(with-pp arg0
|
||||
(local-vars (a1-1 int))
|
||||
(when (nonzero? (-> obj anim))
|
||||
(let ((s5-0 self))
|
||||
(loop
|
||||
(let* ((s4-0 (-> obj current 0))
|
||||
(v1-4 (shr (shl s4-0 56) 56))
|
||||
)
|
||||
(cond
|
||||
((= v1-4 1)
|
||||
(if (< (shr (shl s4-0 48) 56) 0)
|
||||
(return #f)
|
||||
)
|
||||
(when (zero? (-> obj target))
|
||||
(let ((t9-0 rand-vu-int-range)
|
||||
(a0-3 (sar (shl s4-0 40) 56))
|
||||
)
|
||||
(shift-arith-right-32 a1-1 s4-0 24)
|
||||
(set! (-> obj target) (t9-0 (the-as int a0-3) a1-1))
|
||||
)
|
||||
(ja :group! (-> (the-as process-drawable arg0) draw art-group data (shr (shl s4-0 48) 56)) :num! min)
|
||||
(return #f)
|
||||
)
|
||||
(ja :group! (-> (the-as process-drawable arg0) draw art-group data (shr (shl s4-0 48) 56))
|
||||
:num! (seek!
|
||||
(the float
|
||||
(+ (-> (the-as art-joint-anim (-> (the-as process-drawable arg0) draw art-group data (shr (shl s4-0 48) 56)))
|
||||
frames
|
||||
num-frames
|
||||
)
|
||||
-1
|
||||
)
|
||||
)
|
||||
(local-vars (a1-1 int))
|
||||
(when (nonzero? (-> obj anim))
|
||||
(let ((s5-0 self))
|
||||
(loop
|
||||
(let* ((s4-0 (-> obj current 0))
|
||||
(v1-4 (-> s4-0 command))
|
||||
)
|
||||
(cond
|
||||
((= v1-4 1)
|
||||
(if (< (-> s4-0 anim) 0)
|
||||
(return #f)
|
||||
)
|
||||
(when (zero? (-> obj target))
|
||||
(let ((t9-0 rand-vu-int-range)
|
||||
(a0-3 (-> s4-0 param0))
|
||||
)
|
||||
(shift-arith-right-32 a1-1 s4-0 24)
|
||||
(set! (-> obj target) (t9-0 (the-as int a0-3) a1-1))
|
||||
)
|
||||
(ja :group! (-> (the-as process-drawable self) draw art-group data (-> s4-0 anim)) :num! min)
|
||||
(return #f)
|
||||
)
|
||||
(ja :group! (-> (the-as process-drawable self) draw art-group data (-> s4-0 anim))
|
||||
:num! (seek!
|
||||
(the float
|
||||
(+ (-> (the-as art-joint-anim (-> (the-as process-drawable self) draw art-group data (-> s4-0 anim)))
|
||||
frames
|
||||
num-frames
|
||||
)
|
||||
-1
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(cond
|
||||
((ja-done? 0)
|
||||
(+! (-> obj counter) 1)
|
||||
(cond
|
||||
((>= (-> obj counter) (-> obj target))
|
||||
(set! (-> obj current) (&-> (-> obj current) 1))
|
||||
(set! (-> obj counter) 0)
|
||||
(set! (-> obj target) 0)
|
||||
0
|
||||
)
|
||||
(else
|
||||
(ja :num-func num-func-identity :frame-num 0.0)
|
||||
(return #f)
|
||||
)
|
||||
)
|
||||
(cond
|
||||
((ja-done? 0)
|
||||
(+! (-> obj counter) 1)
|
||||
(cond
|
||||
((>= (-> obj counter) (-> obj target))
|
||||
(set! (-> obj current) (&-> (-> obj current) 1))
|
||||
(set! (-> obj counter) 0)
|
||||
(set! (-> obj target) 0)
|
||||
0
|
||||
)
|
||||
(else
|
||||
(ja :num-func num-func-identity :frame-num 0.0)
|
||||
(return #f)
|
||||
)
|
||||
)
|
||||
)
|
||||
(else
|
||||
(return #f)
|
||||
)
|
||||
)
|
||||
)
|
||||
((= v1-4 2)
|
||||
(ja-channel-push! 1 (the-as time-frame (sar (shl s4-0 40) 56)))
|
||||
(set! (-> obj current) (&-> (-> obj current) 1))
|
||||
(set! (-> obj counter) 0)
|
||||
(set! (-> obj target) 0)
|
||||
0
|
||||
)
|
||||
((zero? v1-4)
|
||||
(set! (-> obj current) (-> obj anim))
|
||||
(set! (-> obj counter) 0)
|
||||
(set! (-> obj target) 0)
|
||||
0
|
||||
)
|
||||
)
|
||||
(else
|
||||
(return #f)
|
||||
)
|
||||
)
|
||||
)
|
||||
((= v1-4 2)
|
||||
(ja-channel-push! 1 (the-as time-frame (-> s4-0 param0)))
|
||||
(set! (-> obj current) (&-> (-> obj current) 1))
|
||||
(set! (-> obj counter) 0)
|
||||
(set! (-> obj target) 0)
|
||||
0
|
||||
)
|
||||
((zero? v1-4)
|
||||
(set! (-> obj current) (-> obj anim))
|
||||
(set! (-> obj counter) 0)
|
||||
(set! (-> obj target) 0)
|
||||
0
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
0
|
||||
(none)
|
||||
)
|
||||
0
|
||||
(none)
|
||||
)
|
||||
|
||||
@@ -22,17 +22,17 @@
|
||||
;; DECOMP BEGINS
|
||||
|
||||
(deftype shadow-settings (structure)
|
||||
((flags shadow-flags :offset 12) ;; shadow-flags
|
||||
(center vector :inline :offset 0 :score -1)
|
||||
(shadow-dir vector :inline :offset-assert 16)
|
||||
(dist-to-locus float :offset 28)
|
||||
(bot-plane plane :inline :offset-assert 32)
|
||||
(top-plane plane :inline :offset-assert 48)
|
||||
(fade-dist float :offset-assert 64)
|
||||
(fade-start float :offset-assert 68)
|
||||
(dummy-2 int32 :offset-assert 72)
|
||||
(shadow-type int32 :offset-assert 76)
|
||||
(flag-vector vector :inline :offset 64) ;; added
|
||||
((flags shadow-flags :offset 12)
|
||||
(center vector :inline :offset 0)
|
||||
(shadow-dir vector :inline :offset-assert 16)
|
||||
(dist-to-locus float :offset 28)
|
||||
(bot-plane plane :inline :offset-assert 32)
|
||||
(top-plane plane :inline :offset-assert 48)
|
||||
(fade-dist float :offset-assert 64)
|
||||
(fade-start float :offset-assert 68)
|
||||
(dummy-2 int32 :offset-assert 72)
|
||||
(shadow-type int32 :offset-assert 76)
|
||||
(flag-vector vector :inline :offset 64)
|
||||
)
|
||||
:method-count-assert 9
|
||||
:size-assert #x50
|
||||
@@ -53,7 +53,7 @@
|
||||
(set-top-plane-offset (shadow-control float) int 11)
|
||||
(set-bottom-plane-offset (shadow-control float) int 12)
|
||||
(shadow-control-method-13 (_type_ vector float float float) none 13)
|
||||
(shadow-control-method-14 () none 14)
|
||||
(shadow-control-method-14 (_type_ vector vector float float float) none 14)
|
||||
)
|
||||
)
|
||||
|
||||
@@ -152,17 +152,6 @@
|
||||
:flag-assert #x900000002
|
||||
)
|
||||
|
||||
; (deftype shadow-edge (structure)
|
||||
; ((ind-0 uint8 :offset-assert 0)
|
||||
; (ind-1 uint8 :offset-assert 1)
|
||||
; (tri-0 uint8 :offset-assert 2)
|
||||
; (tri-1 uint8 :offset-assert 3)
|
||||
; )
|
||||
; :method-count-assert 9
|
||||
; :size-assert #x4
|
||||
; :flag-assert #x900000004
|
||||
; )
|
||||
|
||||
(deftype shadow-tri (structure)
|
||||
((ind-0 uint8 :offset-assert 0)
|
||||
(ind-1 uint8 :offset-assert 1)
|
||||
|
||||
@@ -5,6 +5,8 @@
|
||||
;; name in dgo: shadow-cpu
|
||||
;; dgos: ENGINE, GAME
|
||||
|
||||
;; temp
|
||||
|
||||
(defmethod shadow-control-method-13 shadow-control ((obj shadow-control) (arg0 vector) (arg1 float) (arg2 float) (arg3 float))
|
||||
(with-pp
|
||||
(let ((s4-0 (new 'stack-no-clear 'collide-query)))
|
||||
@@ -47,5 +49,29 @@
|
||||
)
|
||||
)
|
||||
|
||||
(defmethod shadow-control-method-14 shadow-control ((obj shadow-control) (arg0 vector) (arg1 vector) (arg2 float) (arg3 float) (arg4 float))
|
||||
(let ((gp-0 (-> obj settings)))
|
||||
(let ((s4-0 (-> gp-0 shadow-dir)))
|
||||
(vector-normalize-copy! s4-0 arg1 1.0)
|
||||
(set! (-> gp-0 shadow-dir w) (- arg2))
|
||||
(when *shadow-debug*
|
||||
(add-debug-x #t (bucket-id debug-no-zbuf1) arg0 *color-red*)
|
||||
(add-debug-vector #t (bucket-id debug-no-zbuf1) arg0 s4-0 (meters 3) *color-red*)
|
||||
)
|
||||
(let ((s1-2 (vector+float*! (new 'stack-no-clear 'vector) arg0 s4-0 arg3))
|
||||
(s5-2 (vector+float*! (new 'stack-no-clear 'vector) arg0 s4-0 arg4))
|
||||
)
|
||||
(vector-negate! (-> gp-0 top-plane) s4-0)
|
||||
(vector-negate! (-> gp-0 bot-plane) s4-0)
|
||||
(set! (-> gp-0 top-plane w) (- (vector-dot s1-2 (the-as vector (-> gp-0 top-plane)))))
|
||||
(set! (-> gp-0 bot-plane w) (- (vector-dot s5-2 (the-as vector (-> gp-0 bot-plane)))))
|
||||
)
|
||||
)
|
||||
(logior! (-> gp-0 flags) (shadow-flags shdf02 shdf03 shdf04 shdf07))
|
||||
)
|
||||
0
|
||||
(none)
|
||||
)
|
||||
|
||||
;; DECOMP BEGINS
|
||||
|
||||
|
||||
@@ -8,17 +8,17 @@
|
||||
;; DECOMP BEGINS
|
||||
|
||||
(deftype sprite-glow-data (structure)
|
||||
((position vector :inline :offset-assert 0)
|
||||
(size-x float :offset 12)
|
||||
(size-probe float :offset-assert 16)
|
||||
(z-offset float :offset-assert 20)
|
||||
(rot-angle float :offset-assert 24)
|
||||
(size-y float :offset-assert 28)
|
||||
(color rgbaf :inline :offset-assert 32)
|
||||
(fade-a float :offset-assert 48)
|
||||
(fade-b float :offset-assert 52)
|
||||
(tex-id uint32 :offset-assert 56)
|
||||
(dummy uint32 :offset-assert 60)
|
||||
((position vector :inline :offset-assert 0)
|
||||
(size-x float :offset 12)
|
||||
(size-probe float :offset-assert 16)
|
||||
(z-offset float :offset-assert 20)
|
||||
(rot-angle float :offset-assert 24)
|
||||
(size-y float :offset-assert 28)
|
||||
(color rgbaf :inline :offset-assert 32)
|
||||
(fade-a float :offset-assert 48)
|
||||
(fade-b float :offset-assert 52)
|
||||
(tex-id texture-id :offset-assert 56)
|
||||
(dummy uint32 :offset-assert 60)
|
||||
)
|
||||
:method-count-assert 10
|
||||
:size-assert #x40
|
||||
@@ -28,6 +28,7 @@
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
(defmethod set-trans sprite-glow-data ((obj sprite-glow-data) (arg0 vector))
|
||||
(let ((f0-0 (-> obj position w)))
|
||||
(set! (-> obj position quad) (-> arg0 quad))
|
||||
@@ -38,15 +39,15 @@
|
||||
)
|
||||
|
||||
(deftype simple-sprite-system (structure)
|
||||
((count int16 :offset-assert 0)
|
||||
(max-count int16 :offset-assert 2)
|
||||
(data uint32 :offset-assert 4)
|
||||
((count int16 :offset-assert 0)
|
||||
(max-count int16 :offset-assert 2)
|
||||
(data sprite-glow-data :offset-assert 4)
|
||||
)
|
||||
:method-count-assert 12
|
||||
:size-assert #x8
|
||||
:flag-assert #xc00000008
|
||||
(:methods
|
||||
(add! () none 9)
|
||||
(add! (_type_ dma-buffer) none 9)
|
||||
(simple-sprite-system-method-10 (_type_ dma-buffer) none 10)
|
||||
(clear! (_type_) none 11)
|
||||
)
|
||||
|
||||
@@ -7,3 +7,877 @@
|
||||
|
||||
;; DECOMP BEGINS
|
||||
|
||||
(deftype grunt-mech-hold (structure)
|
||||
((reserve-mask uint8 :offset-assert 0)
|
||||
(lower-hold int8 :offset-assert 1)
|
||||
(grunt-handle handle :offset-assert 8)
|
||||
(timeout uint64 :offset-assert 16)
|
||||
(local-pos vector :inline :offset-assert 32)
|
||||
(local-rot vector :inline :offset-assert 48)
|
||||
(local-mat matrix :inline :offset-assert 64)
|
||||
(world-mat matrix :inline :offset-assert 128)
|
||||
)
|
||||
:method-count-assert 9
|
||||
:size-assert #xc0
|
||||
:flag-assert #x9000000c0
|
||||
)
|
||||
|
||||
|
||||
(deftype grunt-mech-info (basic)
|
||||
((reserved-mask uint8 :offset-assert 4)
|
||||
(last-update-time time-frame :offset-assert 8)
|
||||
(holds grunt-mech-hold 6 :inline :offset-assert 16)
|
||||
)
|
||||
:method-count-assert 11
|
||||
:size-assert #x490
|
||||
:flag-assert #xb00000490
|
||||
(:methods
|
||||
(grunt-mech-info-method-9 (_type_ int process symbol) symbol 9)
|
||||
(grunt-mech-info-method-10 (_type_) none 10)
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
(define *grunt-mech-info*
|
||||
(new 'static 'grunt-mech-info :holds (new 'static 'inline-array grunt-mech-hold 6
|
||||
(new 'static 'grunt-mech-hold
|
||||
:reserve-mask #x11
|
||||
:lower-hold 4
|
||||
:local-pos (new 'static 'vector :x 163.84 :y 4874.24 :z 3522.56 :w 1.0)
|
||||
:local-rot (new 'static 'vector :y 32768.0 :w 1.0)
|
||||
)
|
||||
(new 'static 'grunt-mech-hold
|
||||
:reserve-mask #x22
|
||||
:lower-hold 5
|
||||
:local-pos (new 'static 'vector :x 958.464 :y 4874.24 :z -2678.784 :w 1.0)
|
||||
:local-rot (new 'static 'vector :w 1.0)
|
||||
)
|
||||
(new 'static 'grunt-mech-hold
|
||||
:reserve-mask #x4
|
||||
:lower-hold -1
|
||||
:local-pos (new 'static 'vector :x 3223.552 :y 4874.24 :z 217.088 :w 1.0)
|
||||
:local-rot (new 'static 'vector :y 49152.0 :w 1.0)
|
||||
)
|
||||
(new 'static 'grunt-mech-hold
|
||||
:reserve-mask #x8
|
||||
:lower-hold -1
|
||||
:local-pos (new 'static 'vector :x -3170.304 :y 4874.24 :z 520.192 :w 1.0)
|
||||
:local-rot (new 'static 'vector :y 16384.0 :w 1.0)
|
||||
)
|
||||
(new 'static 'grunt-mech-hold
|
||||
:reserve-mask #x11
|
||||
:lower-hold -1
|
||||
:local-pos (new 'static 'vector :x 516.096 :y 1929.216 :z 2449.408 :w 1.0)
|
||||
:local-rot (new 'static 'vector :x -9975.308 :y 34955.266 :z -205.34613 :w 1.0)
|
||||
)
|
||||
(new 'static 'grunt-mech-hold
|
||||
:reserve-mask #x22
|
||||
:lower-hold -1
|
||||
:local-pos (new 'static 'vector :x 413.696 :y 1929.216 :z -1785.856 :w 1.0)
|
||||
:local-rot (new 'static 'vector :x -10709.129 :y 1107.0122 :z 54.795376 :w 1.0)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
(let ((gp-0 *grunt-mech-info*))
|
||||
(set! (-> gp-0 last-update-time) 0)
|
||||
(set! (-> gp-0 reserved-mask) (the-as uint 0))
|
||||
(countdown (s5-0 6)
|
||||
(let ((s4-0 (-> gp-0 holds s5-0)))
|
||||
(set! (-> s4-0 grunt-handle) (the-as handle #f))
|
||||
(set! (-> s4-0 timeout) (the-as uint 0))
|
||||
(matrix-rotate-xyz! (-> s4-0 local-mat) (-> s4-0 local-rot))
|
||||
(set! (-> s4-0 local-mat trans quad) (-> s4-0 local-pos quad))
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
(defmethod grunt-mech-info-method-10 grunt-mech-info ((obj grunt-mech-info))
|
||||
(with-pp
|
||||
(let ((s5-0 (-> pp clock frame-counter)))
|
||||
(when (!= (-> obj last-update-time) s5-0)
|
||||
(when (< s5-0 (-> obj last-update-time))
|
||||
(countdown (v1-4 6)
|
||||
(let ((a0-4 (-> obj holds v1-4)))
|
||||
(set! (-> a0-4 grunt-handle) (the-as handle #f))
|
||||
(set! (-> a0-4 timeout) (the-as uint 0))
|
||||
)
|
||||
0
|
||||
)
|
||||
(set! (-> obj reserved-mask) (the-as uint 0))
|
||||
0
|
||||
)
|
||||
(set! (-> obj last-update-time) s5-0)
|
||||
(let ((v1-8 *target*))
|
||||
(cond
|
||||
((and v1-8 (logtest? (focus-status mech) (-> v1-8 focus-status)))
|
||||
(let ((s4-0 (-> v1-8 manipy 0 node-list data 3)))
|
||||
(dotimes (s3-0 6)
|
||||
(let ((s2-0 (-> obj holds s3-0)))
|
||||
(matrix*! (-> s2-0 world-mat) (-> s2-0 local-mat) (-> s4-0 bone transform))
|
||||
(vector-float*! (-> s2-0 world-mat trans) (-> s2-0 world-mat trans) (/ 1.0 (-> s2-0 world-mat trans w)))
|
||||
(when (and (!= (-> s2-0 grunt-handle) #f) (>= s5-0 (the-as time-frame (-> s2-0 timeout))))
|
||||
(set! (-> s2-0 grunt-handle) (the-as handle #f))
|
||||
(logclear! (-> obj reserved-mask) (-> s2-0 reserve-mask))
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(else
|
||||
(countdown (v1-25 6)
|
||||
(let ((a0-16 (-> obj holds v1-25)))
|
||||
(set! (-> a0-16 grunt-handle) (the-as handle #f))
|
||||
(set! (-> a0-16 timeout) (the-as uint 0))
|
||||
)
|
||||
0
|
||||
)
|
||||
(set! (-> obj reserved-mask) (the-as uint 0))
|
||||
0
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
)
|
||||
|
||||
(defmethod grunt-mech-info-method-9 grunt-mech-info ((obj grunt-mech-info) (arg0 int) (arg1 process) (arg2 symbol))
|
||||
(with-pp
|
||||
(grunt-mech-info-method-10 obj)
|
||||
(let ((v1-2 *target*))
|
||||
(when (and v1-2
|
||||
(logtest? (focus-status mech) (-> v1-2 focus-status))
|
||||
(zero? (logand (-> v1-2 focus-status) (focus-status dead ignore)))
|
||||
)
|
||||
(let ((v1-8 (-> obj holds arg0)))
|
||||
(when (and (!= (-> v1-8 grunt-handle) #f) (= (handle->process (-> v1-8 grunt-handle)) arg1))
|
||||
(set! (-> v1-8 timeout) (the-as uint (+ (-> pp clock frame-counter) (seconds 0.5))))
|
||||
(return #t)
|
||||
)
|
||||
(when (not (logtest? (-> obj reserved-mask) (-> v1-8 reserve-mask)))
|
||||
(when (not arg2)
|
||||
(logior! (-> obj reserved-mask) (-> v1-8 reserve-mask))
|
||||
(set! (-> v1-8 grunt-handle) (process->handle arg1))
|
||||
(set! (-> v1-8 timeout) (the-as uint (+ (-> pp clock frame-counter) (seconds 0.5))))
|
||||
)
|
||||
#t
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
(deftype grunt-mech (grunt)
|
||||
((hold-id int8 :offset-assert 692)
|
||||
(dismount-dest vector :inline :offset-assert 704)
|
||||
)
|
||||
:heap-base #x250
|
||||
:method-count-assert 196
|
||||
:size-assert #x2d0
|
||||
:flag-assert #xc4025002d0
|
||||
(:methods
|
||||
(mech-lunge () _type_ :state 186)
|
||||
(mech-hold () _type_ :state 187)
|
||||
(mech-dismount () _type_ :state 188)
|
||||
(mech-post-circling () _type_ :state 189)
|
||||
(mech-pre-circling () _type_ :state 190)
|
||||
(grunt-mech-method-191 (_type_) none 191)
|
||||
(grunt-mech-method-192 (_type_) symbol 192)
|
||||
(grunt-mech-method-193 (_type_) int 193)
|
||||
(grunt-mech-method-194 (_type_) none 194)
|
||||
(grunt-mech-method-195 (_type_ vector vector vector) symbol 195)
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
(defmethod enemy-method-55 grunt-mech ((obj grunt-mech))
|
||||
((method-of-type grunt enemy-method-55) obj)
|
||||
0
|
||||
(none)
|
||||
)
|
||||
|
||||
;; ERROR: Unsupported inline assembly instruction kind - [mula.s f0, f3]
|
||||
;; ERROR: Unsupported inline assembly instruction kind - [madda.s f1, f4]
|
||||
;; ERROR: Unsupported inline assembly instruction kind - [madd.s f0, f2, f5]
|
||||
(defmethod grunt-mech-method-193 grunt-mech ((obj grunt-mech))
|
||||
(local-vars (f0-3 float) (sv-592 vector))
|
||||
(let ((s4-0 *grunt-mech-info*))
|
||||
(grunt-mech-info-method-10 s4-0)
|
||||
(let ((gp-0 -1))
|
||||
(let ((f30-0 0.0)
|
||||
(s3-0 (-> obj root-override2 trans))
|
||||
)
|
||||
(countdown (s2-0 4)
|
||||
(let ((s1-0 (-> s4-0 holds s2-0)))
|
||||
(when (grunt-mech-info-method-9 s4-0 s2-0 obj #t)
|
||||
(let ((s0-0 (new 'stack-no-clear 'vector)))
|
||||
(set! sv-592 (new 'stack-no-clear 'vector))
|
||||
(set! (-> s0-0 quad) (-> s1-0 world-mat vector 2 quad))
|
||||
(set! (-> s0-0 y) 0.0)
|
||||
(vector-normalize! s0-0 1.0)
|
||||
(vector-! sv-592 (-> s1-0 world-mat trans) (-> obj root-override2 trans))
|
||||
(set! (-> sv-592 y) 0.0)
|
||||
(vector-normalize! sv-592 1.0)
|
||||
(let ((f0-2 (-> sv-592 x))
|
||||
(f1-0 (-> sv-592 y))
|
||||
(f2-0 (-> sv-592 z))
|
||||
(f3-0 (-> s0-0 x))
|
||||
(f4-0 (-> s0-0 y))
|
||||
(f5-0 (-> s0-0 z))
|
||||
)
|
||||
;; (.mula.s f0-2 f3-0)
|
||||
;; (.madda.s f1-0 f4-0)
|
||||
;; (.madd.s f0-3 f2-0 f5-0)
|
||||
)
|
||||
)
|
||||
(when (>= f0-3 0.0)
|
||||
(let ((f0-5 (vector-vector-distance-squared (-> s1-0 world-mat trans) s3-0)))
|
||||
(when (or (= gp-0 -1) (< f0-5 f30-0))
|
||||
(set! f30-0 f0-5)
|
||||
(set! gp-0 s2-0)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(when (!= gp-0 -1)
|
||||
(let ((s3-1 (-> s4-0 holds gp-0 lower-hold)))
|
||||
(when (!= s3-1 -1)
|
||||
(if (and (or (zero? (get-rand-int obj 2))
|
||||
(>= 14336.0 (vector-vector-xz-distance-squared (-> obj root-override2 trans) (target-pos 0)))
|
||||
)
|
||||
(grunt-mech-info-method-9 s4-0 s3-1 obj #t)
|
||||
)
|
||||
(set! gp-0 s3-1)
|
||||
)
|
||||
)
|
||||
)
|
||||
(let ((a1-9 (new 'stack-no-clear 'collide-query)))
|
||||
(set! (-> a1-9 start-pos quad) (-> obj root-override2 trans quad))
|
||||
(set! (-> a1-9 start-pos y) (+ 6144.0 (-> a1-9 start-pos y)))
|
||||
(vector-!
|
||||
(-> a1-9 move-dist)
|
||||
(the-as vector (+ (the-as uint (-> s4-0 holds 0 world-mat trans)) (* 192 gp-0)))
|
||||
(-> a1-9 start-pos)
|
||||
)
|
||||
(let ((v1-41 a1-9))
|
||||
(set! (-> v1-41 radius) 2048.0)
|
||||
(set! (-> v1-41 collide-with) (collide-spec backgnd obstacle hit-by-others-list pusher))
|
||||
(set! (-> v1-41 ignore-process0) obj)
|
||||
(set! (-> v1-41 ignore-process1) #f)
|
||||
(set! (-> v1-41 ignore-pat) (new 'static 'pat-surface :noentity #x1 :nojak #x1 :probe #x1 :noendlessfall #x1))
|
||||
(set! (-> v1-41 action-mask) (collide-action solid))
|
||||
)
|
||||
(if (>= (fill-and-probe-using-line-sphere *collide-cache* a1-9) 0.0)
|
||||
(set! gp-0 -1)
|
||||
)
|
||||
)
|
||||
)
|
||||
gp-0
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
(defmethod grunt-method-184 grunt-mech ((obj grunt-mech) (arg0 float))
|
||||
(local-vars (v1-5 float))
|
||||
(rlet ((acc :class vf)
|
||||
(vf0 :class vf)
|
||||
(vf1 :class vf)
|
||||
(vf2 :class vf)
|
||||
)
|
||||
(init-vf0-vector)
|
||||
(let ((gp-0 (enemy-method-107 obj)))
|
||||
(when gp-0
|
||||
(cond
|
||||
((logtest? (focus-status mech) (-> gp-0 focus-status))
|
||||
(let ((v1-4 (get-trans gp-0 0))
|
||||
(a1-2 (new 'stack-no-clear 'vector))
|
||||
)
|
||||
(vector-! a1-2 v1-4 (-> obj root-override2 trans))
|
||||
(.lvf vf1 (&-> a1-2 quad))
|
||||
)
|
||||
(.add.w.vf vf2 vf0 vf0 :mask #b1)
|
||||
(.mul.vf vf1 vf1 vf1)
|
||||
(.mul.x.vf acc vf2 vf1 :mask #b1)
|
||||
(.add.mul.y.vf acc vf2 vf1 acc :mask #b1)
|
||||
(.add.mul.z.vf vf1 vf2 vf1 acc :mask #b1)
|
||||
(.mov v1-5 vf1)
|
||||
(let ((f0-0 v1-5)
|
||||
(f1-0 28672.0)
|
||||
)
|
||||
(when (>= (* f1-0 f1-0) f0-0)
|
||||
(let ((a1-3 (grunt-mech-method-193 obj)))
|
||||
(cond
|
||||
((= a1-3 -1)
|
||||
(go (method-of-object obj mech-pre-circling))
|
||||
)
|
||||
(else
|
||||
(set! (-> obj hold-id) a1-3)
|
||||
(grunt-mech-info-method-9 *grunt-mech-info* a1-3 obj #f)
|
||||
(go (method-of-object obj mech-lunge))
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
gp-0
|
||||
)
|
||||
(else
|
||||
((method-of-type grunt grunt-method-184) obj arg0)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
(defstate mech-lunge (grunt-mech)
|
||||
:virtual #t
|
||||
:event (the-as (function process int symbol event-message-block object :behavior grunt-mech) enemy-event-handler)
|
||||
:enter (behavior ()
|
||||
(set! (-> self enemy-flags) (logior (enemy-flag actor-pause-backup) (-> self enemy-flags)))
|
||||
(let ((v1-2 self))
|
||||
(set! (-> v1-2 enemy-flags) (the-as enemy-flag (logclear (-> v1-2 enemy-flags) (enemy-flag enemy-flag37))))
|
||||
)
|
||||
0
|
||||
(let ((v1-4 self))
|
||||
(set! (-> v1-4 enemy-flags) (the-as enemy-flag (logclear (-> v1-4 enemy-flags) (enemy-flag enemy-flag36))))
|
||||
(set! (-> v1-4 nav callback-info) *nav-enemy-null-callback-info*)
|
||||
)
|
||||
0
|
||||
(nav-enemy-method-167 self)
|
||||
(set! (-> self dismount-dest quad) (-> self root-override2 trans quad))
|
||||
(logclear! (-> self root-override2 nav-flags) (nav-flags has-root-sphere))
|
||||
(none)
|
||||
)
|
||||
:exit (behavior ()
|
||||
(logclear! (-> self enemy-flags) (enemy-flag actor-pause-backup))
|
||||
(logior! (-> self root-override2 nav-flags) (nav-flags has-root-sphere))
|
||||
(none)
|
||||
)
|
||||
:trans (behavior ()
|
||||
(grunt-mech-info-method-9 *grunt-mech-info* (-> self hold-id) self #f)
|
||||
(none)
|
||||
)
|
||||
:code (behavior ()
|
||||
(ja-channel-push! 1 (seconds 0.07))
|
||||
(let ((gp-0 (new 'stack-no-clear 'matrix)))
|
||||
(quaternion-copy! (the-as quaternion (-> gp-0 vector)) (-> self root-override2 quat))
|
||||
(set! (-> gp-0 vector 1 quad) (-> self root-override2 trans quad))
|
||||
(ja-no-eval :group! (-> self draw art-group data 48)
|
||||
:num! (seek!
|
||||
(the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 48)) frames num-frames) -1))
|
||||
0.769
|
||||
)
|
||||
:frame-num 0.0
|
||||
)
|
||||
(until (ja-done? 0)
|
||||
(let ((s5-0 *grunt-mech-info*))
|
||||
(grunt-mech-info-method-10 s5-0)
|
||||
(let ((s5-1 (-> s5-0 holds (-> self hold-id))))
|
||||
(matrix->quaternion (the-as quaternion (-> gp-0 vector 2)) (-> s5-1 world-mat))
|
||||
(let ((f30-0 (lerp-scale 0.0 1.0 (ja-aframe-num 0) 0.0 6.0)))
|
||||
(quaternion-slerp!
|
||||
(-> self root-override2 quat)
|
||||
(the-as quaternion (-> gp-0 vector))
|
||||
(the-as quaternion (-> gp-0 vector 2))
|
||||
f30-0
|
||||
)
|
||||
(vector-lerp! (-> self root-override2 trans) (-> gp-0 vector 1) (-> s5-1 world-mat trans) f30-0)
|
||||
)
|
||||
)
|
||||
)
|
||||
(suspend)
|
||||
(ja :num! (seek! max 0.769))
|
||||
)
|
||||
)
|
||||
(go-virtual mech-hold)
|
||||
(none)
|
||||
)
|
||||
:post (the-as (function none :behavior grunt-mech) nav-enemy-simple-post)
|
||||
)
|
||||
|
||||
(defbehavior grunt-mech-hold-post grunt-mech ()
|
||||
(let ((gp-0 *grunt-mech-info*))
|
||||
(grunt-mech-info-method-10 gp-0)
|
||||
(let ((v1-5 (-> gp-0 holds (-> self hold-id)))
|
||||
(a0-2 (-> self root-override2))
|
||||
)
|
||||
(set! (-> a0-2 trans quad) (-> v1-5 world-mat trans quad))
|
||||
(matrix->quaternion (-> a0-2 quat) (-> v1-5 world-mat))
|
||||
)
|
||||
)
|
||||
(nav-enemy-simple-post)
|
||||
(none)
|
||||
)
|
||||
|
||||
(defmethod grunt-mech-method-195 grunt-mech ((obj grunt-mech) (arg0 vector) (arg1 vector) (arg2 vector))
|
||||
(local-vars (v1-13 float))
|
||||
(rlet ((acc :class vf)
|
||||
(vf0 :class vf)
|
||||
(vf1 :class vf)
|
||||
(vf2 :class vf)
|
||||
)
|
||||
(init-vf0-vector)
|
||||
(let ((s5-0 (new 'stack-no-clear 'nav-avoid-spheres-params)))
|
||||
(vector-! (-> s5-0 current-pos) (-> obj root-override2 trans) (-> obj nav state mesh bounds))
|
||||
(vector-normalize-copy! (-> s5-0 travel) arg0 (the-as float arg1))
|
||||
(set! (-> s5-0 pref-dir quad) (-> s5-0 travel quad))
|
||||
(avoid-spheres-1! (-> obj nav) s5-0)
|
||||
(when (>= (fabs (vector-dot (the-as vector (-> s5-0 out-travel)) arg2)) 0.0)
|
||||
(let ((t0-0 (new 'stack-no-clear 'clamp-travel-vector-to-mesh-return-info)))
|
||||
(clamp-vector-to-mesh-no-gaps
|
||||
(-> obj nav)
|
||||
(-> obj root-override2 trans)
|
||||
(-> obj nav state current-poly)
|
||||
(the-as vector (-> s5-0 out-travel))
|
||||
t0-0
|
||||
)
|
||||
)
|
||||
(.lvf vf1 (&-> (-> s5-0 out-travel) 0 quad))
|
||||
(.add.w.vf vf2 vf0 vf0 :mask #b1)
|
||||
(.mul.vf vf1 vf1 vf1)
|
||||
(.mul.x.vf acc vf2 vf1 :mask #b1)
|
||||
(.add.mul.y.vf acc vf2 vf1 acc :mask #b1)
|
||||
(.add.mul.z.vf vf1 vf2 vf1 acc :mask #b1)
|
||||
(.mov v1-13 vf1)
|
||||
(let ((f0-3 v1-13)
|
||||
(f1-1 14336.0)
|
||||
)
|
||||
(when (>= f0-3 (* f1-1 f1-1))
|
||||
(let ((a1-3 (new 'stack-no-clear 'vector)))
|
||||
(set! (-> a1-3 quad) (-> s5-0 out-travel 0 quad))
|
||||
(set! (-> a1-3 w) (-> obj nav-radius-backup))
|
||||
(when (not (add-root-sphere-to-hash! (-> obj nav) a1-3 #x80068))
|
||||
(let ((s4-1 (new 'stack-no-clear 'vector)))
|
||||
(vector+! s4-1 (-> obj root-override2 trans) (the-as vector (-> s5-0 out-travel)))
|
||||
(let ((s5-1 (new 'stack-no-clear 'collide-query)))
|
||||
(when (enemy-method-126 obj s5-1 s4-1 (the-as collide-spec (-> obj gnd-collide)) 4096.0 122880.0 1024.0)
|
||||
(set! (-> s4-1 y) (-> s5-1 best-other-tri intersect y))
|
||||
(set! (-> obj dismount-dest quad) (-> s4-1 quad))
|
||||
#t
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
(defmethod grunt-mech-method-192 grunt-mech ((obj grunt-mech))
|
||||
(do-navigation-to-destination (-> obj nav state) (-> obj root-override2 trans))
|
||||
(let ((a1-1 *target*))
|
||||
(if (or (not a1-1) (zero? (logand (focus-status mech) (-> a1-1 focus-status))))
|
||||
(return #t)
|
||||
)
|
||||
)
|
||||
(when (logtest? (-> obj nav state flags) (nav-state-flag in-mesh))
|
||||
(let ((s5-0 *grunt-mech-info*))
|
||||
(grunt-mech-info-method-10 s5-0)
|
||||
(let* ((v1-15 (-> obj nav))
|
||||
(a0-7 (-> v1-15 state mesh sphere-hash sphere-array))
|
||||
(a1-3 (-> v1-15 sphere-id-array))
|
||||
(a2-1 (-> v1-15 state mesh bounds))
|
||||
(a3-0 (-> v1-15 root-nav-sphere))
|
||||
(t0-0 (-> v1-15 sphere-count))
|
||||
)
|
||||
(dotimes (t1-0 t0-0)
|
||||
(let ((t3-0 (-> a0-7 (-> a1-3 t1-0)))
|
||||
(t2-4 (-> v1-15 sphere-array t1-0))
|
||||
)
|
||||
(vector-! (the-as vector t2-4) (the-as vector t3-0) a2-1)
|
||||
(set! (-> t2-4 r) (+ (-> t3-0 r) (-> a3-0 w)))
|
||||
)
|
||||
)
|
||||
)
|
||||
0
|
||||
(let ((v1-22 (-> s5-0 holds (-> obj hold-id)))
|
||||
(s5-1 (new 'stack-no-clear 'vector))
|
||||
)
|
||||
(vector-negate! s5-1 (-> v1-22 world-mat vector 2))
|
||||
(set! (-> s5-1 y) 0.0)
|
||||
(vector-normalize! s5-1 1.0)
|
||||
(countdown (s4-0 3)
|
||||
(let ((s3-0 (new 'stack-no-clear 'vector)))
|
||||
(vector-rotate-around-y! s3-0 s5-1 (get-rand-float-range obj -10922.667 10922.667))
|
||||
(when (grunt-mech-method-195 obj s3-0 (the-as vector (get-rand-float-range obj 16384.0 24576.0)) s5-1)
|
||||
#t
|
||||
(goto cfg-16)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(label cfg-16)
|
||||
(let ((a0-15 (-> obj root-override2 trans)))
|
||||
(if (or (>= 0.0 (- (-> a0-15 y) (-> obj dismount-dest y)))
|
||||
(let ((f0-4 40960.0))
|
||||
(< (* f0-4 f0-4) (vector-vector-xz-distance-squared a0-15 (-> obj dismount-dest)))
|
||||
)
|
||||
)
|
||||
(return #t)
|
||||
)
|
||||
)
|
||||
#f
|
||||
)
|
||||
|
||||
;; WARN: Return type mismatch object vs none.
|
||||
(defmethod grunt-mech-method-194 grunt-mech ((obj grunt-mech))
|
||||
(with-pp
|
||||
(let ((a1-0 (new 'stack-no-clear 'event-message-block)))
|
||||
(set! (-> a1-0 from) (process->ppointer pp))
|
||||
(set! (-> a1-0 num-params) 2)
|
||||
(set! (-> a1-0 message) 'attack)
|
||||
(set! (-> a1-0 param 0) (the-as uint #f))
|
||||
(let ((v1-3 (new 'static 'attack-info :mask (attack-info-mask mode id))))
|
||||
(let* ((a0-2 *game-info*)
|
||||
(a2-1 (+ (-> a0-2 attack-id) 1))
|
||||
)
|
||||
(set! (-> a0-2 attack-id) a2-1)
|
||||
(set! (-> v1-3 id) a2-1)
|
||||
)
|
||||
(set! (-> v1-3 mode) 'grunt)
|
||||
(set! (-> a1-0 param 1) (the-as uint v1-3))
|
||||
)
|
||||
(send-event-function *target* a1-0)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
)
|
||||
|
||||
;; WARN: Return type mismatch object vs none.
|
||||
(defmethod grunt-mech-method-191 grunt-mech ((obj grunt-mech))
|
||||
(with-pp
|
||||
(if (>= (-> pp clock frame-counter) (the-as time-frame (-> obj state-timeout)))
|
||||
(go (method-of-object obj mech-dismount))
|
||||
)
|
||||
(none)
|
||||
)
|
||||
)
|
||||
|
||||
(defstate mech-hold (grunt-mech)
|
||||
:virtual #t
|
||||
:event (the-as (function process int symbol event-message-block object :behavior grunt-mech) enemy-event-handler)
|
||||
:enter (behavior ()
|
||||
(set! (-> self state-time) (-> self clock frame-counter))
|
||||
(set! (-> self enemy-flags) (logior (enemy-flag actor-pause-backup) (-> self enemy-flags)))
|
||||
(set! (-> self root-override2 root-prim prim-core collide-as) (collide-spec))
|
||||
(enemy-method-110 self)
|
||||
(set! (-> self state-timeout)
|
||||
(the-as uint (+ (-> self clock frame-counter) (get-rand-int-range self 450 900)))
|
||||
)
|
||||
(logclear! (-> self root-override2 nav-flags) (nav-flags has-root-sphere))
|
||||
(none)
|
||||
)
|
||||
:exit (behavior ()
|
||||
(logclear! (-> self enemy-flags) (enemy-flag actor-pause-backup))
|
||||
(let ((v1-3 (-> self root-override2 root-prim)))
|
||||
(set! (-> v1-3 prim-core collide-as) (-> self root-override2 backup-collide-as))
|
||||
(set! (-> v1-3 prim-core collide-with) (-> self root-override2 backup-collide-with))
|
||||
)
|
||||
(logior! (-> self root-override2 nav-flags) (nav-flags has-root-sphere))
|
||||
(none)
|
||||
)
|
||||
:trans (behavior ()
|
||||
(if (or (not (grunt-mech-info-method-9 *grunt-mech-info* (-> self hold-id) self #f)) (grunt-mech-method-192 self))
|
||||
(go-virtual mech-dismount)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
:code (behavior ()
|
||||
(ja-no-eval :group! (-> self draw art-group data 49)
|
||||
:num! (seek! (the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 49)) frames num-frames) -1)))
|
||||
:frame-num 0.0
|
||||
)
|
||||
(until (ja-done? 0)
|
||||
(suspend)
|
||||
(ja :num! (seek!))
|
||||
)
|
||||
(grunt-mech-method-191 self)
|
||||
(let ((gp-0 0))
|
||||
0
|
||||
(until #f
|
||||
(set! gp-0 (enemy-method-120 self 3 (ash 1 gp-0)))
|
||||
(let ((v1-30 gp-0))
|
||||
(cond
|
||||
((zero? v1-30)
|
||||
(ja-channel-push! 1 (seconds 0.13))
|
||||
(countdown (s5-0 (get-rand-int-range self 1 2))
|
||||
(let ((s4-0 #t))
|
||||
(ja-no-eval :group! (-> self draw art-group data 51) :num! (seek! (ja-aframe 17.0 0) 0.222) :frame-num 0.0)
|
||||
(until (ja-done? 0)
|
||||
(suspend)
|
||||
(ja :num! (seek! (ja-aframe 17.0 0) 0.222))
|
||||
)
|
||||
(ja-no-eval :group! (-> self draw art-group data 51)
|
||||
:num! (seek! (ja-aframe 20.0 0))
|
||||
:frame-num (ja-aframe 17.0 0)
|
||||
)
|
||||
(until (ja-done? 0)
|
||||
(when (and s4-0 (>= (ja-aframe-num 0) 18.5))
|
||||
(grunt-mech-method-194 self)
|
||||
(set! s4-0 #f)
|
||||
)
|
||||
(suspend)
|
||||
(ja :num! (seek! (ja-aframe 20.0 0)))
|
||||
)
|
||||
)
|
||||
(grunt-mech-method-191 self)
|
||||
)
|
||||
)
|
||||
((= v1-30 1)
|
||||
(ja-channel-push! 1 (seconds 0.13))
|
||||
(countdown (s5-1 (get-rand-int-range self 1 3))
|
||||
(let ((s4-1 #t))
|
||||
(ja-no-eval :group! (-> self draw art-group data 52) :num! (seek! (ja-aframe 24.0 0) 0.568) :frame-num 0.0)
|
||||
(until (ja-done? 0)
|
||||
(suspend)
|
||||
(ja :num! (seek! (ja-aframe 24.0 0) 0.568))
|
||||
)
|
||||
(ja-no-eval :group! (-> self draw art-group data 52)
|
||||
:num! (seek! (ja-aframe 28.0 0) 2.0)
|
||||
:frame-num (ja-aframe 24.0 0)
|
||||
)
|
||||
(until (ja-done? 0)
|
||||
(when (and s4-1 (>= (ja-aframe-num 0) 27.0))
|
||||
(grunt-mech-method-194 self)
|
||||
(set! s4-1 #f)
|
||||
)
|
||||
(suspend)
|
||||
(ja :num! (seek! (ja-aframe 28.0 0) 2.0))
|
||||
)
|
||||
)
|
||||
(grunt-mech-method-191 self)
|
||||
)
|
||||
)
|
||||
(else
|
||||
(ja-channel-push! 1 (seconds 0.13))
|
||||
(countdown (s5-2 (get-rand-int-range self 1 3))
|
||||
(let ((s4-2 #t))
|
||||
(ja-no-eval :group! (-> self draw art-group data 53) :num! (seek! (ja-aframe 30.0 0) 0.111) :frame-num 0.0)
|
||||
(until (ja-done? 0)
|
||||
(suspend)
|
||||
(ja :num! (seek! (ja-aframe 30.0 0) 0.111))
|
||||
)
|
||||
(ja-no-eval :group! (-> self draw art-group data 53)
|
||||
:num! (seek! (ja-aframe 32.0 0) 0.5)
|
||||
:frame-num (ja-aframe 30.0 0)
|
||||
)
|
||||
(until (ja-done? 0)
|
||||
(when (and s4-2 (>= (ja-aframe-num 0) 31.0))
|
||||
(grunt-mech-method-194 self)
|
||||
(set! s4-2 #f)
|
||||
)
|
||||
(suspend)
|
||||
(ja :num! (seek! (ja-aframe 32.0 0) 0.5))
|
||||
)
|
||||
)
|
||||
(grunt-mech-method-191 self)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(when (= (get-rand-int self 4) 3)
|
||||
(ja-channel-push! 1 (seconds 0.13))
|
||||
(ja-no-eval :group! (-> self draw art-group data 50)
|
||||
:num! (seek!
|
||||
(the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 50)) frames num-frames) -1))
|
||||
0.090909
|
||||
)
|
||||
:frame-num 0.0
|
||||
)
|
||||
(until (ja-done? 0)
|
||||
(suspend)
|
||||
(ja :num! (seek! max 0.090909))
|
||||
)
|
||||
(grunt-mech-method-191 self)
|
||||
)
|
||||
)
|
||||
)
|
||||
#f
|
||||
(none)
|
||||
)
|
||||
:post grunt-mech-hold-post
|
||||
)
|
||||
|
||||
(defstate mech-dismount (grunt-mech)
|
||||
:virtual #t
|
||||
:event (the-as (function process int symbol event-message-block object :behavior grunt-mech) enemy-event-handler)
|
||||
:enter (behavior ()
|
||||
(set! (-> self state-time) (-> self clock frame-counter))
|
||||
(set! (-> self root-override2 root-prim prim-core collide-as) (collide-spec))
|
||||
(let* ((v1-4 (-> self nav))
|
||||
(a1-0 (-> self dismount-dest))
|
||||
(f0-0 (-> v1-4 extra-nav-sphere w))
|
||||
)
|
||||
(set! (-> v1-4 extra-nav-sphere quad) (-> a1-0 quad))
|
||||
(set! (-> v1-4 extra-nav-sphere w) f0-0)
|
||||
)
|
||||
0
|
||||
(let ((v1-7 (-> self nav)))
|
||||
(set! (-> v1-7 extra-nav-sphere w) (-> self nav-radius-backup))
|
||||
)
|
||||
0
|
||||
(let ((v1-9 (-> self nav)))
|
||||
(logior! (-> v1-9 shape nav-flags) (nav-flags has-extra-sphere))
|
||||
)
|
||||
0
|
||||
(logclear! (-> self root-override2 nav-flags) (nav-flags has-root-sphere))
|
||||
(none)
|
||||
)
|
||||
:exit (behavior ()
|
||||
(let ((v1-1 (-> self root-override2 root-prim)))
|
||||
(set! (-> v1-1 prim-core collide-as) (-> self root-override2 backup-collide-as))
|
||||
(set! (-> v1-1 prim-core collide-with) (-> self root-override2 backup-collide-with))
|
||||
)
|
||||
(let ((v1-2 (-> self nav)))
|
||||
(logclear! (-> v1-2 shape nav-flags) (nav-flags has-extra-sphere))
|
||||
)
|
||||
0
|
||||
(logior! (-> self root-override2 nav-flags) (nav-flags has-root-sphere))
|
||||
(none)
|
||||
)
|
||||
:code (behavior ()
|
||||
(ja-channel-push! 1 (seconds 0.07))
|
||||
(let ((gp-0 (new 'stack-no-clear 'matrix)))
|
||||
(vector-! (-> gp-0 vector 1) (-> self root-override2 trans) (-> self dismount-dest))
|
||||
(set! (-> gp-0 vector 1 y) 0.0)
|
||||
(vector-normalize! (-> gp-0 vector 1) 1.0)
|
||||
(quaternion-look-at! (the-as quaternion (-> gp-0 vector 2)) (-> gp-0 vector 1) *up-vector*)
|
||||
(quaternion-copy! (the-as quaternion (-> gp-0 vector)) (-> self root-override2 quat))
|
||||
(set! (-> gp-0 vector 1 quad) (-> self root-override2 trans quad))
|
||||
(ja-no-eval :group! (-> self draw art-group data 54)
|
||||
:num! (seek! (the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 54)) frames num-frames) -1)))
|
||||
:frame-num 0.0
|
||||
)
|
||||
(until (ja-done? 0)
|
||||
(let ((f30-0 (lerp-scale 0.0 1.0 (ja-aframe-num 0) 33.0 41.0)))
|
||||
(quaternion-slerp!
|
||||
(-> self root-override2 quat)
|
||||
(the-as quaternion (-> gp-0 vector))
|
||||
(the-as quaternion (-> gp-0 vector 2))
|
||||
f30-0
|
||||
)
|
||||
(vector-lerp! (-> self root-override2 trans) (-> gp-0 vector 1) (-> self dismount-dest) f30-0)
|
||||
)
|
||||
(suspend)
|
||||
(ja :num! (seek!))
|
||||
)
|
||||
)
|
||||
(let ((v1-32 (-> self root-override2 root-prim)))
|
||||
(set! (-> v1-32 prim-core collide-as) (-> self root-override2 backup-collide-as))
|
||||
(set! (-> v1-32 prim-core collide-with) (-> self root-override2 backup-collide-with))
|
||||
)
|
||||
(let ((v1-33 (-> self nav)))
|
||||
(logclear! (-> v1-33 shape nav-flags) (nav-flags has-extra-sphere))
|
||||
)
|
||||
0
|
||||
(let ((v1-37 (-> self nav state)))
|
||||
(set! (-> v1-37 current-poly) (the-as nav-poly #f))
|
||||
)
|
||||
0
|
||||
(logclear! (-> self nav state flags) (nav-state-flag at-target))
|
||||
(ja-no-eval :group! (-> self draw art-group data 55)
|
||||
:num! (seek! (the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 55)) frames num-frames) -1)))
|
||||
:frame-num 0.0
|
||||
)
|
||||
(until (ja-done? 0)
|
||||
(suspend)
|
||||
(ja :num! (seek!))
|
||||
)
|
||||
(ja-channel-push! 1 (seconds 0.13))
|
||||
(go-virtual mech-post-circling)
|
||||
(none)
|
||||
)
|
||||
:post (the-as (function none :behavior grunt-mech) nav-enemy-simple-post)
|
||||
)
|
||||
|
||||
(defstate mech-post-circling (grunt-mech)
|
||||
:virtual #t
|
||||
:event (the-as (function process int symbol event-message-block object :behavior grunt-mech) enemy-event-handler)
|
||||
:enter (behavior ()
|
||||
((-> (method-of-type grunt circling) enter))
|
||||
(set! (-> self state-timeout)
|
||||
(the-as uint (+ (-> self clock frame-counter) (get-rand-int-range self 750 1200)))
|
||||
)
|
||||
(none)
|
||||
)
|
||||
:trans (behavior ()
|
||||
(let ((a0-1 (handle->process (-> self focus handle))))
|
||||
(if a0-1
|
||||
(set! (-> self focus-pos quad) (-> (get-trans (the-as process-focusable a0-1) 0) quad))
|
||||
)
|
||||
)
|
||||
(let ((gp-1 (-> self focus aware)))
|
||||
(if (or (!= gp-1 3) (not (enemy-method-107 self)))
|
||||
(set! (-> self starting-time) (the-as uint (-> self clock frame-counter)))
|
||||
)
|
||||
(when (>= (- (-> self clock frame-counter) (-> self state-time)) (the-as time-frame (-> self reaction-time)))
|
||||
(when (>= 1 (the-as int gp-1))
|
||||
(nav-enemy-method-161 self)
|
||||
(if (-> self enemy-info-override use-stop-chase)
|
||||
(go-virtual stop-chase)
|
||||
(go-virtual active)
|
||||
)
|
||||
)
|
||||
(when (= gp-1 (enemy-aware enemy-aware-3))
|
||||
(let ((v1-33 (enemy-method-107 self)))
|
||||
(when v1-33
|
||||
(cond
|
||||
((logtest? (focus-status mech) (-> v1-33 focus-status))
|
||||
(when (>= (-> self clock frame-counter) (the-as time-frame (-> self state-timeout)))
|
||||
(nav-enemy-method-161 self)
|
||||
(go-hostile self)
|
||||
)
|
||||
)
|
||||
(else
|
||||
(when (>= (- (-> self clock frame-counter) (the-as int (-> self starting-time)))
|
||||
(the-as time-frame (-> self reaction-time))
|
||||
)
|
||||
(nav-enemy-method-161 self)
|
||||
(go-hostile self)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(if (= gp-1 (enemy-aware enemy-aware-2))
|
||||
(go-stare self)
|
||||
)
|
||||
(if (or (nav-enemy-method-163 self) (logtest? (enemy-flag enemy-flag41) (-> self enemy-flags)))
|
||||
(go-stare2 self)
|
||||
)
|
||||
)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
:code (-> (method-of-type grunt circling) code)
|
||||
:post (-> (method-of-type grunt circling) post)
|
||||
)
|
||||
|
||||
(defstate mech-pre-circling (grunt-mech)
|
||||
:virtual #t
|
||||
:event (the-as (function process int symbol event-message-block object :behavior grunt-mech) enemy-event-handler)
|
||||
:enter (behavior ()
|
||||
((-> (method-of-type grunt-mech mech-post-circling) enter))
|
||||
(set! (-> self state-timeout)
|
||||
(the-as uint (+ (-> self clock frame-counter) (get-rand-int-range self 900 1800)))
|
||||
)
|
||||
(none)
|
||||
)
|
||||
:trans (-> (method-of-type grunt-mech mech-post-circling) trans)
|
||||
:code (-> (method-of-type grunt-mech mech-post-circling) code)
|
||||
:post (-> (method-of-type grunt-mech mech-post-circling) post)
|
||||
)
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
(declare-type gun-info basic)
|
||||
(declare-type darkjak-info basic)
|
||||
(declare-type mech-info basic)
|
||||
(declare-type indax-info basic)
|
||||
(declare-type sparticle-launcher basic)
|
||||
|
||||
;; NOTE - for level-info, defined in `logic-target`
|
||||
@@ -197,7 +198,7 @@
|
||||
(leg-ik joint-mod-ik 2 :offset-assert 256)
|
||||
(foot joint-mod 2 :offset-assert 264)
|
||||
(mech-ik joint-mod-ik 2 :offset-assert 272)
|
||||
(init-time time-frame :offset 272)
|
||||
(init-time time-frame :offset 272)
|
||||
(teleport-time time-frame :offset-assert 280)
|
||||
(state-hook-time time-frame :offset-assert 288)
|
||||
(state-hook (function none :behavior target) :offset-assert 296)
|
||||
@@ -245,7 +246,7 @@
|
||||
(mech mech-info :offset-assert 2216)
|
||||
(turret basic :offset-assert 2220)
|
||||
(darkjak darkjak-info :offset-assert 2224)
|
||||
(indax basic :offset-assert 2228)
|
||||
(indax indax-info :offset-assert 2228)
|
||||
)
|
||||
:heap-base #x840
|
||||
:method-count-assert 29
|
||||
|
||||
+19
-17
@@ -3861,6 +3861,8 @@
|
||||
"ruins-vis"
|
||||
)
|
||||
|
||||
(copy-strs "RUB1" "RUBW1" "RUBW2" "RUBW3" "RUBW4" "RUBW5" "RUBW6" "RUDPA1" "RUPC1" "RUPC2")
|
||||
|
||||
;; ;;;;;;;;;;;;;;;;;;;;;
|
||||
;; ;; SAG
|
||||
;; ;;;;;;;;;;;;;;;;;;;;;
|
||||
@@ -4388,26 +4390,26 @@
|
||||
;; ;; TOE
|
||||
;; ;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
;; (cgo "TOE.DGO" "toe.gd")
|
||||
(cgo "TOE.DGO" "toe.gd")
|
||||
|
||||
;; (goal-src-sequence
|
||||
;; ""
|
||||
;; :deps ("$OUT/obj/los-control.o")
|
||||
;; "levels/mars_tomb/left/chase/target-indax.gc"
|
||||
;; "levels/mars_tomb/left/chase/tomb-boulder.gc"
|
||||
;; )
|
||||
(goal-src-sequence
|
||||
""
|
||||
:deps ("$OUT/obj/los-control.o")
|
||||
"levels/mars_tomb/left/chase/target-indax.gc"
|
||||
"levels/mars_tomb/left/chase/tomb-boulder.gc"
|
||||
)
|
||||
|
||||
;; (copy-textures 2374 2375 2376)
|
||||
(copy-textures 2374 2375 2376)
|
||||
|
||||
;; (copy-gos
|
||||
;; "jak-indax+0-ag"
|
||||
;; "tomb-boulder-ag"
|
||||
;; "tomb-baby-spider-ag"
|
||||
;; "tomb-plat-pillar-ag"
|
||||
;; "spider-eyes-ag"
|
||||
;; "tomb-bounce-web-ag"
|
||||
;; "tombe-vis"
|
||||
;; )
|
||||
(copy-gos
|
||||
"jak-indax+0-ag"
|
||||
"tomb-boulder-ag"
|
||||
;; "tomb-baby-spider-ag"
|
||||
"tomb-plat-pillar-ag"
|
||||
"spider-eyes-ag"
|
||||
"tomb-bounce-web-ag"
|
||||
"tombe-vis"
|
||||
)
|
||||
|
||||
;; ;;;;;;;;;;;;;;;;;;;;;
|
||||
;; ;; TOMBEXT
|
||||
|
||||
@@ -194,7 +194,7 @@
|
||||
:color (new 'static 'rgbaf :x 255.0 :y 128.0 :w 16.0)
|
||||
:fade-a -0.0000122044
|
||||
:fade-b 8.997864
|
||||
:tex-id #xc0bb00
|
||||
:tex-id (new 'static 'texture-id :index #xbb :page #xc)
|
||||
)
|
||||
)
|
||||
|
||||
@@ -206,7 +206,7 @@
|
||||
:color (new 'static 'rgbaf :x 255.0 :y 64.0 :w 16.0)
|
||||
:fade-a -0.0000122044
|
||||
:fade-b 8.997864
|
||||
:tex-id #xc0bc00
|
||||
:tex-id (new 'static 'texture-id :index #xbc :page #xc)
|
||||
)
|
||||
)
|
||||
|
||||
@@ -217,7 +217,7 @@
|
||||
:color (new 'static 'rgbaf :x 255.0 :y 64.0 :w 16.0)
|
||||
:fade-a -0.0000122044
|
||||
:fade-b 8.997864
|
||||
:tex-id #xc0ca00
|
||||
:tex-id (new 'static 'texture-id :index #xca :page #xc)
|
||||
)
|
||||
)
|
||||
|
||||
@@ -269,11 +269,7 @@
|
||||
(set! (-> s3-1 1 normal w) f0-14)
|
||||
(set! (-> s3-1 1 normal x) (* 0.025 f0-14))
|
||||
)
|
||||
*simple-sprite-system*
|
||||
(let ((t9-4 (method-of-type simple-sprite-system add!)))
|
||||
(-> s3-1 1)
|
||||
(t9-4)
|
||||
)
|
||||
(add! *simple-sprite-system* (the-as dma-buffer (-> s3-1 1)))
|
||||
(forward-up->quaternion (the-as quaternion (-> s3-1 0)) arg1 (the-as vector (-> obj rbody state matrix)))
|
||||
(quaternion-rotate-local-x! (the-as quaternion (-> s3-1 0)) (the-as quaternion (-> s3-1 0)) 32768.0)
|
||||
(let ((v1-16 (-> s3-1 0 normal)))
|
||||
@@ -387,8 +383,7 @@
|
||||
(set! (-> s4-0 color x) 255.0)
|
||||
(set! (-> s4-0 color y) (rand-vu-float-range 192.0 255.0))
|
||||
(set! (-> s4-0 color w) (* f30-1 (rand-vu-float-range 16.0 18.0)))
|
||||
*simple-sprite-system*
|
||||
((method-of-type simple-sprite-system add!))
|
||||
(add! *simple-sprite-system* (the-as dma-buffer s4-0))
|
||||
(let ((f0-21 (-> obj camera-dist2))
|
||||
(f1-6 245760.0)
|
||||
)
|
||||
@@ -401,8 +396,7 @@
|
||||
(set! (-> s4-0 fade-b) 2.3332994)
|
||||
(set! (-> s4-0 color z) (rand-vu-float-range 128.0 160.0))
|
||||
(set! (-> s4-0 color w) (* f30-1 (rand-vu-float-range 32.0 36.0)))
|
||||
*simple-sprite-system*
|
||||
((method-of-type simple-sprite-system add!))
|
||||
(add! *simple-sprite-system* (the-as dma-buffer s4-0))
|
||||
)
|
||||
)
|
||||
)
|
||||
@@ -422,8 +416,7 @@
|
||||
(set! (-> s4-1 rot-angle) (* 182.04445 (rand-vu-float-range -4.0 4.0)))
|
||||
(set! (-> s4-1 color y) (* 64.0 (rand-vu)))
|
||||
(set! (-> s4-1 color w) (* f30-1 (rand-vu-float-range 16.0 21.0)))
|
||||
*simple-sprite-system*
|
||||
((method-of-type simple-sprite-system add!))
|
||||
(add! *simple-sprite-system* (the-as dma-buffer s4-1))
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
@@ -117,109 +117,115 @@
|
||||
)
|
||||
)
|
||||
|
||||
(define *amphibian-nav-enemy-info* (new 'static 'nav-enemy-info
|
||||
:use-die-falling #t
|
||||
:use-victory #f
|
||||
:use-jump-blocked #t
|
||||
:debug-draw-neck #f
|
||||
:jump-debug-draw #f
|
||||
:move-to-ground #t
|
||||
:hover-if-no-ground #f
|
||||
:idle-anim-script (new 'static 'array uint32 4 #x1010401 #x0 #x0 #x0)
|
||||
:idle-anim 4
|
||||
:notice-anim 28
|
||||
:hostile-anim 26
|
||||
:hit-anim 6
|
||||
:knocked-anim 6
|
||||
:knocked-land-anim 7
|
||||
:die-anim 12
|
||||
:die-falling-anim 21
|
||||
:victory-anim -1
|
||||
:jump-wind-up-anim 30
|
||||
:jump-in-air-anim 31
|
||||
:jump-land-anim 32
|
||||
:neck-joint 11
|
||||
:look-at-joint 12
|
||||
:bullseye-joint 4
|
||||
:sound-hit (static-sound-name "amphibian-hit")
|
||||
:sound-die (static-sound-name "amphibian-die")
|
||||
:notice-distance (meters 40)
|
||||
:notice-distance-delta (meters 10)
|
||||
:proximity-notice-distance (meters 20)
|
||||
:default-hit-points 4
|
||||
:gnd-collide-with (collide-spec backgnd)
|
||||
:overlaps-others-collide-with-filter (collide-spec jak bot player-list)
|
||||
:penetrate-knocked #x11fffdffa
|
||||
:movement-gravity (meters -100)
|
||||
:friction 0.8
|
||||
:attack-shove-back (meters 3.5)
|
||||
:attack-shove-up (meters 2)
|
||||
:attack-mode 'generic
|
||||
:attack-damage 1
|
||||
:recover-gnd-collide-with (collide-spec backgnd crate obstacle hit-by-others-list pusher)
|
||||
:jump-height-min (meters 3)
|
||||
:jump-height-factor 0.5
|
||||
:knocked-seek-ry-clamp 6371.5557
|
||||
:knocked-soft-vxz-lo 106496.0
|
||||
:knocked-soft-vxz-hi 94208.0
|
||||
:knocked-soft-vy-lo 122880.0
|
||||
:knocked-soft-vy-hi 139264.0
|
||||
:knocked-medium-vxz-lo 106496.0
|
||||
:knocked-medium-vxz-hi 94208.0
|
||||
:knocked-medium-vy-lo 122880.0
|
||||
:knocked-medium-vy-hi 139264.0
|
||||
:knocked-hard-vxz-lo 78643.2
|
||||
:knocked-hard-vxz-hi 117964.8
|
||||
:knocked-hard-vy-lo 183500.8
|
||||
:knocked-hard-vy-hi 209715.2
|
||||
:knocked-huge-vxz-lo 164659.2
|
||||
:knocked-huge-vxz-hi 249036.8
|
||||
:knocked-huge-vy-lo 183500.8
|
||||
:knocked-huge-vy-hi 217907.2
|
||||
:knocked-yellow-vxz-lo 40960.0
|
||||
:knocked-yellow-vxz-hi 49152.0
|
||||
:knocked-yellow-vy-lo 57344.0
|
||||
:knocked-yellow-vy-hi 81920.0
|
||||
:knocked-red-vxz-lo 24576.0
|
||||
:knocked-red-vxz-hi 196608.0
|
||||
:knocked-red-vy-lo 94208.0
|
||||
:knocked-red-vy-hi 151552.0
|
||||
:knocked-blue-vxz-lo 40960.0
|
||||
:knocked-blue-vxz-hi 49152.0
|
||||
:knocked-blue-vy-lo 24576.0
|
||||
:knocked-blue-vy-hi 81920.0
|
||||
:shadow-size (meters 1)
|
||||
:shadow-max-y (meters 1)
|
||||
:shadow-min-y (meters -1)
|
||||
:shadow-locus-dist (meters 150)
|
||||
:gem-joint -1
|
||||
:gem-offset (new 'static 'sphere :r 163840.0)
|
||||
:callback-info #f
|
||||
:use-momentum #t
|
||||
:use-frustration #t
|
||||
:use-stop-chase #t
|
||||
:use-circling #t
|
||||
:use-pacing #t
|
||||
:walk-anim 16
|
||||
:turn-anim -1
|
||||
:run-anim 26
|
||||
:taunt-anim -1
|
||||
:run-travel-speed (meters 6)
|
||||
:run-acceleration (meters 8)
|
||||
:run-turning-acceleration (meters 10)
|
||||
:walk-travel-speed (meters 3)
|
||||
:walk-acceleration (meters 4)
|
||||
:walk-turning-acceleration (meters 3)
|
||||
:maximum-rotation-rate (degrees 180.0)
|
||||
:notice-nav-radius (meters 2)
|
||||
:frustration-distance (meters 8)
|
||||
:frustration-time (seconds 4)
|
||||
:blocked-time (seconds 0.3)
|
||||
:circle-dist-lo 20480.0
|
||||
:circle-dist-hi 61440.0
|
||||
:nav-mesh #f
|
||||
)
|
||||
)
|
||||
(define *amphibian-nav-enemy-info*
|
||||
(new 'static 'nav-enemy-info
|
||||
:use-die-falling #t
|
||||
:use-victory #f
|
||||
:use-jump-blocked #t
|
||||
:debug-draw-neck #f
|
||||
:jump-debug-draw #f
|
||||
:move-to-ground #t
|
||||
:hover-if-no-ground #f
|
||||
:idle-anim-script (new 'static 'array idle-control-frame 4
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x4 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
)
|
||||
:idle-anim 4
|
||||
:notice-anim 28
|
||||
:hostile-anim 26
|
||||
:hit-anim 6
|
||||
:knocked-anim 6
|
||||
:knocked-land-anim 7
|
||||
:die-anim 12
|
||||
:die-falling-anim 21
|
||||
:victory-anim -1
|
||||
:jump-wind-up-anim 30
|
||||
:jump-in-air-anim 31
|
||||
:jump-land-anim 32
|
||||
:neck-joint 11
|
||||
:look-at-joint 12
|
||||
:bullseye-joint 4
|
||||
:sound-hit (static-sound-name "amphibian-hit")
|
||||
:sound-die (static-sound-name "amphibian-die")
|
||||
:notice-distance (meters 40)
|
||||
:notice-distance-delta (meters 10)
|
||||
:proximity-notice-distance (meters 20)
|
||||
:default-hit-points 4
|
||||
:gnd-collide-with (collide-spec backgnd)
|
||||
:overlaps-others-collide-with-filter (collide-spec jak bot player-list)
|
||||
:penetrate-knocked #x11fffdffa
|
||||
:movement-gravity (meters -100)
|
||||
:friction 0.8
|
||||
:attack-shove-back (meters 3.5)
|
||||
:attack-shove-up (meters 2)
|
||||
:attack-mode 'generic
|
||||
:attack-damage 1
|
||||
:recover-gnd-collide-with (collide-spec backgnd crate obstacle hit-by-others-list pusher)
|
||||
:jump-height-min (meters 3)
|
||||
:jump-height-factor 0.5
|
||||
:knocked-seek-ry-clamp 6371.5557
|
||||
:knocked-soft-vxz-lo 106496.0
|
||||
:knocked-soft-vxz-hi 94208.0
|
||||
:knocked-soft-vy-lo 122880.0
|
||||
:knocked-soft-vy-hi 139264.0
|
||||
:knocked-medium-vxz-lo 106496.0
|
||||
:knocked-medium-vxz-hi 94208.0
|
||||
:knocked-medium-vy-lo 122880.0
|
||||
:knocked-medium-vy-hi 139264.0
|
||||
:knocked-hard-vxz-lo 78643.2
|
||||
:knocked-hard-vxz-hi 117964.8
|
||||
:knocked-hard-vy-lo 183500.8
|
||||
:knocked-hard-vy-hi 209715.2
|
||||
:knocked-huge-vxz-lo 164659.2
|
||||
:knocked-huge-vxz-hi 249036.8
|
||||
:knocked-huge-vy-lo 183500.8
|
||||
:knocked-huge-vy-hi 217907.2
|
||||
:knocked-yellow-vxz-lo 40960.0
|
||||
:knocked-yellow-vxz-hi 49152.0
|
||||
:knocked-yellow-vy-lo 57344.0
|
||||
:knocked-yellow-vy-hi 81920.0
|
||||
:knocked-red-vxz-lo 24576.0
|
||||
:knocked-red-vxz-hi 196608.0
|
||||
:knocked-red-vy-lo 94208.0
|
||||
:knocked-red-vy-hi 151552.0
|
||||
:knocked-blue-vxz-lo 40960.0
|
||||
:knocked-blue-vxz-hi 49152.0
|
||||
:knocked-blue-vy-lo 24576.0
|
||||
:knocked-blue-vy-hi 81920.0
|
||||
:shadow-size (meters 1)
|
||||
:shadow-max-y (meters 1)
|
||||
:shadow-min-y (meters -1)
|
||||
:shadow-locus-dist (meters 150)
|
||||
:gem-joint -1
|
||||
:gem-offset (new 'static 'sphere :r 163840.0)
|
||||
:callback-info #f
|
||||
:use-momentum #t
|
||||
:use-frustration #t
|
||||
:use-stop-chase #t
|
||||
:use-circling #t
|
||||
:use-pacing #t
|
||||
:walk-anim 16
|
||||
:turn-anim -1
|
||||
:run-anim 26
|
||||
:taunt-anim -1
|
||||
:run-travel-speed (meters 6)
|
||||
:run-acceleration (meters 8)
|
||||
:run-turning-acceleration (meters 10)
|
||||
:walk-travel-speed (meters 3)
|
||||
:walk-acceleration (meters 4)
|
||||
:walk-turning-acceleration (meters 3)
|
||||
:maximum-rotation-rate (degrees 180.0)
|
||||
:notice-nav-radius (meters 2)
|
||||
:frustration-distance (meters 8)
|
||||
:frustration-time (seconds 4)
|
||||
:blocked-time (seconds 0.3)
|
||||
:circle-dist-lo 20480.0
|
||||
:circle-dist-hi 61440.0
|
||||
:nav-mesh #f
|
||||
)
|
||||
)
|
||||
|
||||
(set! (-> *amphibian-nav-enemy-info* fact-defaults) *fact-info-enemy-defaults*)
|
||||
|
||||
|
||||
@@ -35,7 +35,12 @@
|
||||
:jump-debug-draw #f
|
||||
:move-to-ground #t
|
||||
:hover-if-no-ground #f
|
||||
:idle-anim-script (new 'static 'array uint32 4 #x1e0002 #x64640401 #x0 #x0)
|
||||
:idle-anim-script (new 'static 'array idle-control-frame 4
|
||||
(new 'static 'idle-control-frame :command #x2 :param0 #x1e)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x4 :param0 #x64 :param1 #x64)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
)
|
||||
:idle-anim 4
|
||||
:notice-anim 5
|
||||
:hostile-anim 8
|
||||
|
||||
@@ -69,109 +69,115 @@
|
||||
)
|
||||
)
|
||||
|
||||
(define *fodder-nav-enemy-info* (new 'static 'nav-enemy-info
|
||||
:use-die-falling #t
|
||||
:use-victory #f
|
||||
:use-jump-blocked #t
|
||||
:debug-draw-neck #f
|
||||
:jump-debug-draw #f
|
||||
:move-to-ground #t
|
||||
:hover-if-no-ground #f
|
||||
:idle-anim-script (new 'static 'array uint32 4 #x1010401 #x0 #x0 #x0)
|
||||
:idle-anim 6
|
||||
:notice-anim 13
|
||||
:hostile-anim 7
|
||||
:hit-anim 13
|
||||
:knocked-anim 16
|
||||
:knocked-land-anim 17
|
||||
:die-anim 14
|
||||
:die-falling-anim 21
|
||||
:victory-anim 6
|
||||
:jump-wind-up-anim 7
|
||||
:jump-in-air-anim 7
|
||||
:jump-land-anim 7
|
||||
:neck-joint 5
|
||||
:look-at-joint 5
|
||||
:bullseye-joint 4
|
||||
:sound-hit (static-sound-name "fodder-hit")
|
||||
:sound-die (static-sound-name "fodder-die")
|
||||
:notice-distance (meters 40)
|
||||
:notice-distance-delta (meters 10)
|
||||
:proximity-notice-distance (meters 40)
|
||||
:default-hit-points 1
|
||||
:gnd-collide-with (collide-spec backgnd)
|
||||
:overlaps-others-collide-with-filter (collide-spec jak bot player-list)
|
||||
:penetrate-knocked #x11fffdffa
|
||||
:movement-gravity (meters -100)
|
||||
:friction 0.8
|
||||
:attack-shove-back (meters 3)
|
||||
:attack-shove-up (meters 2)
|
||||
:attack-mode 'generic
|
||||
:attack-damage 1
|
||||
:recover-gnd-collide-with (collide-spec backgnd crate obstacle hit-by-others-list pusher)
|
||||
:jump-height-min (meters 3)
|
||||
:jump-height-factor 0.5
|
||||
:knocked-seek-ry-clamp 4551.1113
|
||||
:knocked-soft-vxz-lo 72089.6
|
||||
:knocked-soft-vxz-hi 108134.4
|
||||
:knocked-soft-vy-lo 81920.0
|
||||
:knocked-soft-vy-hi 122880.0
|
||||
:knocked-medium-vxz-lo 147456.0
|
||||
:knocked-medium-vxz-hi 196608.0
|
||||
:knocked-medium-vy-lo 135168.0
|
||||
:knocked-medium-vy-hi 151552.0
|
||||
:knocked-hard-vxz-lo 78643.2
|
||||
:knocked-hard-vxz-hi 117964.8
|
||||
:knocked-hard-vy-lo 183500.8
|
||||
:knocked-hard-vy-hi 209715.2
|
||||
:knocked-huge-vxz-lo 164659.2
|
||||
:knocked-huge-vxz-hi 249036.8
|
||||
:knocked-huge-vy-lo 183500.8
|
||||
:knocked-huge-vy-hi 217907.2
|
||||
:knocked-yellow-vxz-lo 40960.0
|
||||
:knocked-yellow-vxz-hi 49152.0
|
||||
:knocked-yellow-vy-lo 57344.0
|
||||
:knocked-yellow-vy-hi 81920.0
|
||||
:knocked-red-vxz-lo 24576.0
|
||||
:knocked-red-vxz-hi 196608.0
|
||||
:knocked-red-vy-lo 94208.0
|
||||
:knocked-red-vy-hi 151552.0
|
||||
:knocked-blue-vxz-lo 40960.0
|
||||
:knocked-blue-vxz-hi 49152.0
|
||||
:knocked-blue-vy-lo 24576.0
|
||||
:knocked-blue-vy-hi 81920.0
|
||||
:shadow-size (meters 2)
|
||||
:shadow-max-y (meters 1)
|
||||
:shadow-min-y (meters -1)
|
||||
:shadow-locus-dist (meters 150)
|
||||
:gem-joint -1
|
||||
:gem-offset (new 'static 'sphere :r 163840.0)
|
||||
:callback-info #f
|
||||
:use-momentum #f
|
||||
:use-frustration #t
|
||||
:use-stop-chase #f
|
||||
:use-circling #t
|
||||
:use-pacing #t
|
||||
:walk-anim 12
|
||||
:turn-anim 7
|
||||
:run-anim 7
|
||||
:taunt-anim -1
|
||||
:run-travel-speed (meters 7.5)
|
||||
:run-acceleration (meters 1)
|
||||
:run-turning-acceleration (meters 100)
|
||||
:walk-travel-speed (meters 4)
|
||||
:walk-acceleration (meters 1)
|
||||
:walk-turning-acceleration (meters 3)
|
||||
:maximum-rotation-rate (degrees 360.0)
|
||||
:notice-nav-radius (meters 1.5)
|
||||
:frustration-distance (meters 8)
|
||||
:frustration-time (seconds 4)
|
||||
:blocked-time (seconds 0.3)
|
||||
:circle-dist-lo 20480.0
|
||||
:circle-dist-hi 61440.0
|
||||
:nav-mesh #f
|
||||
)
|
||||
)
|
||||
(define *fodder-nav-enemy-info*
|
||||
(new 'static 'nav-enemy-info
|
||||
:use-die-falling #t
|
||||
:use-victory #f
|
||||
:use-jump-blocked #t
|
||||
:debug-draw-neck #f
|
||||
:jump-debug-draw #f
|
||||
:move-to-ground #t
|
||||
:hover-if-no-ground #f
|
||||
:idle-anim-script (new 'static 'array idle-control-frame 4
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x4 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
)
|
||||
:idle-anim 6
|
||||
:notice-anim 13
|
||||
:hostile-anim 7
|
||||
:hit-anim 13
|
||||
:knocked-anim 16
|
||||
:knocked-land-anim 17
|
||||
:die-anim 14
|
||||
:die-falling-anim 21
|
||||
:victory-anim 6
|
||||
:jump-wind-up-anim 7
|
||||
:jump-in-air-anim 7
|
||||
:jump-land-anim 7
|
||||
:neck-joint 5
|
||||
:look-at-joint 5
|
||||
:bullseye-joint 4
|
||||
:sound-hit (static-sound-name "fodder-hit")
|
||||
:sound-die (static-sound-name "fodder-die")
|
||||
:notice-distance (meters 40)
|
||||
:notice-distance-delta (meters 10)
|
||||
:proximity-notice-distance (meters 40)
|
||||
:default-hit-points 1
|
||||
:gnd-collide-with (collide-spec backgnd)
|
||||
:overlaps-others-collide-with-filter (collide-spec jak bot player-list)
|
||||
:penetrate-knocked #x11fffdffa
|
||||
:movement-gravity (meters -100)
|
||||
:friction 0.8
|
||||
:attack-shove-back (meters 3)
|
||||
:attack-shove-up (meters 2)
|
||||
:attack-mode 'generic
|
||||
:attack-damage 1
|
||||
:recover-gnd-collide-with (collide-spec backgnd crate obstacle hit-by-others-list pusher)
|
||||
:jump-height-min (meters 3)
|
||||
:jump-height-factor 0.5
|
||||
:knocked-seek-ry-clamp 4551.1113
|
||||
:knocked-soft-vxz-lo 72089.6
|
||||
:knocked-soft-vxz-hi 108134.4
|
||||
:knocked-soft-vy-lo 81920.0
|
||||
:knocked-soft-vy-hi 122880.0
|
||||
:knocked-medium-vxz-lo 147456.0
|
||||
:knocked-medium-vxz-hi 196608.0
|
||||
:knocked-medium-vy-lo 135168.0
|
||||
:knocked-medium-vy-hi 151552.0
|
||||
:knocked-hard-vxz-lo 78643.2
|
||||
:knocked-hard-vxz-hi 117964.8
|
||||
:knocked-hard-vy-lo 183500.8
|
||||
:knocked-hard-vy-hi 209715.2
|
||||
:knocked-huge-vxz-lo 164659.2
|
||||
:knocked-huge-vxz-hi 249036.8
|
||||
:knocked-huge-vy-lo 183500.8
|
||||
:knocked-huge-vy-hi 217907.2
|
||||
:knocked-yellow-vxz-lo 40960.0
|
||||
:knocked-yellow-vxz-hi 49152.0
|
||||
:knocked-yellow-vy-lo 57344.0
|
||||
:knocked-yellow-vy-hi 81920.0
|
||||
:knocked-red-vxz-lo 24576.0
|
||||
:knocked-red-vxz-hi 196608.0
|
||||
:knocked-red-vy-lo 94208.0
|
||||
:knocked-red-vy-hi 151552.0
|
||||
:knocked-blue-vxz-lo 40960.0
|
||||
:knocked-blue-vxz-hi 49152.0
|
||||
:knocked-blue-vy-lo 24576.0
|
||||
:knocked-blue-vy-hi 81920.0
|
||||
:shadow-size (meters 2)
|
||||
:shadow-max-y (meters 1)
|
||||
:shadow-min-y (meters -1)
|
||||
:shadow-locus-dist (meters 150)
|
||||
:gem-joint -1
|
||||
:gem-offset (new 'static 'sphere :r 163840.0)
|
||||
:callback-info #f
|
||||
:use-momentum #f
|
||||
:use-frustration #t
|
||||
:use-stop-chase #f
|
||||
:use-circling #t
|
||||
:use-pacing #t
|
||||
:walk-anim 12
|
||||
:turn-anim 7
|
||||
:run-anim 7
|
||||
:taunt-anim -1
|
||||
:run-travel-speed (meters 7.5)
|
||||
:run-acceleration (meters 1)
|
||||
:run-turning-acceleration (meters 100)
|
||||
:walk-travel-speed (meters 4)
|
||||
:walk-acceleration (meters 1)
|
||||
:walk-turning-acceleration (meters 3)
|
||||
:maximum-rotation-rate (degrees 360.0)
|
||||
:notice-nav-radius (meters 1.5)
|
||||
:frustration-distance (meters 8)
|
||||
:frustration-time (seconds 4)
|
||||
:blocked-time (seconds 0.3)
|
||||
:circle-dist-lo 20480.0
|
||||
:circle-dist-hi 61440.0
|
||||
:nav-mesh #f
|
||||
)
|
||||
)
|
||||
|
||||
(set! (-> *fodder-nav-enemy-info* fact-defaults) *fact-info-enemy-defaults*)
|
||||
|
||||
|
||||
@@ -79,109 +79,115 @@
|
||||
)
|
||||
)
|
||||
|
||||
(define *crimson-guard-level-info* (new 'static 'nav-enemy-info
|
||||
:use-die-falling #t
|
||||
:use-victory #f
|
||||
:use-jump-blocked #f
|
||||
:debug-draw-neck #f
|
||||
:jump-debug-draw #f
|
||||
:move-to-ground #t
|
||||
:hover-if-no-ground #f
|
||||
:idle-anim-script (new 'static 'array uint32 4 #x1010401 #x0 #x0 #x0)
|
||||
:idle-anim 4
|
||||
:notice-anim 7
|
||||
:hostile-anim 6
|
||||
:hit-anim 4
|
||||
:knocked-anim 8
|
||||
:knocked-land-anim 9
|
||||
:die-anim 17
|
||||
:die-falling-anim 39
|
||||
:victory-anim 4
|
||||
:jump-wind-up-anim 5
|
||||
:jump-in-air-anim 5
|
||||
:jump-land-anim 5
|
||||
:neck-joint 6
|
||||
:look-at-joint 6
|
||||
:bullseye-joint 5
|
||||
:sound-hit (static-sound-name "guard-hit")
|
||||
:sound-die (static-sound-name "guard-die")
|
||||
:notice-distance (meters 150)
|
||||
:notice-distance-delta (meters 40)
|
||||
:proximity-notice-distance (meters 4)
|
||||
: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
|
||||
:movement-gravity (meters -100)
|
||||
:friction 0.5
|
||||
:attack-shove-back (meters 3)
|
||||
:attack-shove-up (meters 2)
|
||||
:attack-mode 'generic
|
||||
:attack-damage 2
|
||||
:recover-gnd-collide-with (collide-spec backgnd crate obstacle hit-by-others-list pusher)
|
||||
:jump-height-min (meters 3)
|
||||
:jump-height-factor 0.5
|
||||
:knocked-seek-ry-clamp 6371.5557
|
||||
:knocked-soft-vxz-lo 32768.0
|
||||
:knocked-soft-vxz-hi 53248.0
|
||||
:knocked-soft-vy-lo 61440.0
|
||||
:knocked-soft-vy-hi 61440.0
|
||||
:knocked-medium-vxz-lo 147456.0
|
||||
:knocked-medium-vxz-hi 196608.0
|
||||
:knocked-medium-vy-lo 135168.0
|
||||
:knocked-medium-vy-hi 151552.0
|
||||
:knocked-hard-vxz-lo 40960.0
|
||||
:knocked-hard-vxz-hi 61440.0
|
||||
:knocked-hard-vy-lo 98304.0
|
||||
:knocked-hard-vy-hi 106496.0
|
||||
:knocked-huge-vxz-lo 164659.2
|
||||
:knocked-huge-vxz-hi 249036.8
|
||||
:knocked-huge-vy-lo 183500.8
|
||||
:knocked-huge-vy-hi 217907.2
|
||||
:knocked-yellow-vxz-lo 32768.0
|
||||
:knocked-yellow-vxz-hi 49152.0
|
||||
:knocked-yellow-vy-lo 32768.0
|
||||
:knocked-yellow-vy-hi 49152.0
|
||||
:knocked-red-vxz-lo 65536.0
|
||||
:knocked-red-vxz-hi 81920.0
|
||||
:knocked-red-vy-lo 61440.0
|
||||
:knocked-red-vy-hi 61440.0
|
||||
:knocked-blue-vxz-lo 32768.0
|
||||
:knocked-blue-vxz-hi 65536.0
|
||||
:knocked-blue-vy-lo 16384.0
|
||||
:knocked-blue-vy-hi 32768.0
|
||||
:shadow-size (meters 2)
|
||||
:shadow-max-y (meters 1)
|
||||
:shadow-min-y (meters -1)
|
||||
:shadow-locus-dist (meters 150)
|
||||
:gem-joint -1
|
||||
:gem-offset (new 'static 'sphere :r 163840.0)
|
||||
:callback-info #f
|
||||
:use-momentum #f
|
||||
:use-frustration #t
|
||||
:use-stop-chase #f
|
||||
:use-circling #f
|
||||
:use-pacing #f
|
||||
:walk-anim 5
|
||||
:turn-anim 5
|
||||
:run-anim 6
|
||||
:taunt-anim -1
|
||||
:run-travel-speed (meters 12)
|
||||
:run-acceleration (meters 2)
|
||||
:run-turning-acceleration (meters 50)
|
||||
:walk-travel-speed (meters 3)
|
||||
:walk-acceleration (meters 1)
|
||||
:walk-turning-acceleration (meters 8)
|
||||
:maximum-rotation-rate (degrees 720.0)
|
||||
:notice-nav-radius (meters 5)
|
||||
:frustration-distance (meters 8)
|
||||
:frustration-time (seconds 2)
|
||||
:blocked-time (seconds 0.3)
|
||||
:circle-dist-lo 20480.0
|
||||
:circle-dist-hi 61440.0
|
||||
:nav-mesh #f
|
||||
)
|
||||
)
|
||||
(define *crimson-guard-level-info*
|
||||
(new 'static 'nav-enemy-info
|
||||
:use-die-falling #t
|
||||
:use-victory #f
|
||||
:use-jump-blocked #f
|
||||
:debug-draw-neck #f
|
||||
:jump-debug-draw #f
|
||||
:move-to-ground #t
|
||||
:hover-if-no-ground #f
|
||||
:idle-anim-script (new 'static 'array idle-control-frame 4
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x4 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
)
|
||||
:idle-anim 4
|
||||
:notice-anim 7
|
||||
:hostile-anim 6
|
||||
:hit-anim 4
|
||||
:knocked-anim 8
|
||||
:knocked-land-anim 9
|
||||
:die-anim 17
|
||||
:die-falling-anim 39
|
||||
:victory-anim 4
|
||||
:jump-wind-up-anim 5
|
||||
:jump-in-air-anim 5
|
||||
:jump-land-anim 5
|
||||
:neck-joint 6
|
||||
:look-at-joint 6
|
||||
:bullseye-joint 5
|
||||
:sound-hit (static-sound-name "guard-hit")
|
||||
:sound-die (static-sound-name "guard-die")
|
||||
:notice-distance (meters 150)
|
||||
:notice-distance-delta (meters 40)
|
||||
:proximity-notice-distance (meters 4)
|
||||
: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
|
||||
:movement-gravity (meters -100)
|
||||
:friction 0.5
|
||||
:attack-shove-back (meters 3)
|
||||
:attack-shove-up (meters 2)
|
||||
:attack-mode 'generic
|
||||
:attack-damage 2
|
||||
:recover-gnd-collide-with (collide-spec backgnd crate obstacle hit-by-others-list pusher)
|
||||
:jump-height-min (meters 3)
|
||||
:jump-height-factor 0.5
|
||||
:knocked-seek-ry-clamp 6371.5557
|
||||
:knocked-soft-vxz-lo 32768.0
|
||||
:knocked-soft-vxz-hi 53248.0
|
||||
:knocked-soft-vy-lo 61440.0
|
||||
:knocked-soft-vy-hi 61440.0
|
||||
:knocked-medium-vxz-lo 147456.0
|
||||
:knocked-medium-vxz-hi 196608.0
|
||||
:knocked-medium-vy-lo 135168.0
|
||||
:knocked-medium-vy-hi 151552.0
|
||||
:knocked-hard-vxz-lo 40960.0
|
||||
:knocked-hard-vxz-hi 61440.0
|
||||
:knocked-hard-vy-lo 98304.0
|
||||
:knocked-hard-vy-hi 106496.0
|
||||
:knocked-huge-vxz-lo 164659.2
|
||||
:knocked-huge-vxz-hi 249036.8
|
||||
:knocked-huge-vy-lo 183500.8
|
||||
:knocked-huge-vy-hi 217907.2
|
||||
:knocked-yellow-vxz-lo 32768.0
|
||||
:knocked-yellow-vxz-hi 49152.0
|
||||
:knocked-yellow-vy-lo 32768.0
|
||||
:knocked-yellow-vy-hi 49152.0
|
||||
:knocked-red-vxz-lo 65536.0
|
||||
:knocked-red-vxz-hi 81920.0
|
||||
:knocked-red-vy-lo 61440.0
|
||||
:knocked-red-vy-hi 61440.0
|
||||
:knocked-blue-vxz-lo 32768.0
|
||||
:knocked-blue-vxz-hi 65536.0
|
||||
:knocked-blue-vy-lo 16384.0
|
||||
:knocked-blue-vy-hi 32768.0
|
||||
:shadow-size (meters 2)
|
||||
:shadow-max-y (meters 1)
|
||||
:shadow-min-y (meters -1)
|
||||
:shadow-locus-dist (meters 150)
|
||||
:gem-joint -1
|
||||
:gem-offset (new 'static 'sphere :r 163840.0)
|
||||
:callback-info #f
|
||||
:use-momentum #f
|
||||
:use-frustration #t
|
||||
:use-stop-chase #f
|
||||
:use-circling #f
|
||||
:use-pacing #f
|
||||
:walk-anim 5
|
||||
:turn-anim 5
|
||||
:run-anim 6
|
||||
:taunt-anim -1
|
||||
:run-travel-speed (meters 12)
|
||||
:run-acceleration (meters 2)
|
||||
:run-turning-acceleration (meters 50)
|
||||
:walk-travel-speed (meters 3)
|
||||
:walk-acceleration (meters 1)
|
||||
:walk-turning-acceleration (meters 8)
|
||||
:maximum-rotation-rate (degrees 720.0)
|
||||
:notice-nav-radius (meters 5)
|
||||
:frustration-distance (meters 8)
|
||||
:frustration-time (seconds 2)
|
||||
:blocked-time (seconds 0.3)
|
||||
:circle-dist-lo 20480.0
|
||||
:circle-dist-hi 61440.0
|
||||
:nav-mesh #f
|
||||
)
|
||||
)
|
||||
|
||||
(set! (-> *crimson-guard-level-info* fact-defaults) *crimson-guard-fact*)
|
||||
|
||||
@@ -194,7 +200,12 @@
|
||||
:jump-debug-draw #f
|
||||
:move-to-ground #t
|
||||
:hover-if-no-ground #f
|
||||
:idle-anim-script (new 'static 'array uint32 4 #x1010401 #x0 #x0 #x0)
|
||||
:idle-anim-script (new 'static 'array idle-control-frame 4
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x4 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
)
|
||||
:idle-anim 4
|
||||
:notice-anim 7
|
||||
:hostile-anim 6
|
||||
@@ -301,7 +312,12 @@
|
||||
:jump-debug-draw #f
|
||||
:move-to-ground #t
|
||||
:hover-if-no-ground #f
|
||||
:idle-anim-script (new 'static 'array uint32 4 #x1010401 #x0 #x0 #x0)
|
||||
:idle-anim-script (new 'static 'array idle-control-frame 4
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x4 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
)
|
||||
:idle-anim 4
|
||||
:notice-anim 7
|
||||
:hostile-anim 6
|
||||
@@ -408,7 +424,12 @@
|
||||
:jump-debug-draw #f
|
||||
:move-to-ground #t
|
||||
:hover-if-no-ground #f
|
||||
:idle-anim-script (new 'static 'array uint32 4 #x1010401 #x0 #x0 #x0)
|
||||
:idle-anim-script (new 'static 'array idle-control-frame 4
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x4 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
)
|
||||
:idle-anim 4
|
||||
:notice-anim 7
|
||||
:hostile-anim 6
|
||||
@@ -515,7 +536,12 @@
|
||||
:jump-debug-draw #f
|
||||
:move-to-ground #t
|
||||
:hover-if-no-ground #f
|
||||
:idle-anim-script (new 'static 'array uint32 4 #x1010401 #x0 #x0 #x0)
|
||||
:idle-anim-script (new 'static 'array idle-control-frame 4
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x4 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
)
|
||||
:idle-anim 4
|
||||
:notice-anim 7
|
||||
:hostile-anim 6
|
||||
|
||||
@@ -169,7 +169,16 @@
|
||||
:jump-debug-draw #f
|
||||
:move-to-ground #t
|
||||
:hover-if-no-ground #f
|
||||
:idle-anim-script (new 'static 'array uint32 8 #x5010401 #x1010501 #x5010401 #x1010601 #x0 #x0 #x0 #x0)
|
||||
:idle-anim-script (new 'static 'array idle-control-frame 8
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x4 :param0 #x1 :param1 #x5)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x5 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x4 :param0 #x1 :param1 #x5)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x6 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
)
|
||||
:idle-anim 4
|
||||
:notice-anim 7
|
||||
:hostile-anim 4
|
||||
|
||||
@@ -239,111 +239,117 @@
|
||||
)
|
||||
)
|
||||
|
||||
(define *centurion-nav-enemy-info* (new 'static 'nav-enemy-info
|
||||
:use-die-falling #t
|
||||
:use-victory #f
|
||||
:use-jump-blocked #f
|
||||
:debug-draw-neck #f
|
||||
:jump-debug-draw #f
|
||||
:move-to-ground #t
|
||||
:hover-if-no-ground #f
|
||||
:idle-anim-script (new 'static 'array uint32 4 #x1010601 #x0 #x0 #x0)
|
||||
:idle-anim 6
|
||||
:notice-anim 8
|
||||
:hostile-anim 13
|
||||
:hit-anim 16
|
||||
:knocked-anim 21
|
||||
:knocked-land-anim 22
|
||||
:die-anim 34
|
||||
:die-falling-anim 23
|
||||
:victory-anim 4
|
||||
:jump-wind-up-anim -1
|
||||
:jump-in-air-anim -1
|
||||
:jump-land-anim -1
|
||||
:neck-joint 8
|
||||
:look-at-joint 8
|
||||
:bullseye-joint 5
|
||||
:sound-hit (static-sound-name "centurion-hit")
|
||||
:sound-die (static-sound-name "centurion-die")
|
||||
:notice-distance (meters 100)
|
||||
:notice-distance-delta (meters 10)
|
||||
:proximity-notice-distance (meters 100)
|
||||
:default-hit-points 3
|
||||
:gnd-collide-with (collide-spec backgnd)
|
||||
:overlaps-others-collide-with-filter (collide-spec jak bot player-list)
|
||||
:penetrate-knocked #xffffffffffffffff
|
||||
:movement-gravity (meters -100)
|
||||
:friction 0.1
|
||||
:attack-shove-back (meters 3)
|
||||
:attack-shove-up (meters 2)
|
||||
:attack-mode 'generic
|
||||
:attack-damage 2
|
||||
:recover-gnd-collide-with (collide-spec backgnd crate obstacle hit-by-others-list pusher)
|
||||
:jump-height-min (meters 3)
|
||||
:jump-height-factor 0.5
|
||||
:knocked-seek-ry-clamp 6371.5557
|
||||
:knocked-soft-vxz-lo 32768.0
|
||||
:knocked-soft-vxz-hi 65536.0
|
||||
:knocked-soft-vy-lo 32768.0
|
||||
:knocked-soft-vy-hi 49152.0
|
||||
:knocked-medium-vxz-lo 147456.0
|
||||
:knocked-medium-vxz-hi 196608.0
|
||||
:knocked-medium-vy-lo 135168.0
|
||||
:knocked-medium-vy-hi 151552.0
|
||||
:knocked-hard-vxz-lo 78643.2
|
||||
:knocked-hard-vxz-hi 117964.8
|
||||
:knocked-hard-vy-lo 183500.8
|
||||
:knocked-hard-vy-hi 209715.2
|
||||
:knocked-huge-vxz-lo 164659.2
|
||||
:knocked-huge-vxz-hi 249036.8
|
||||
:knocked-huge-vy-lo 183500.8
|
||||
:knocked-huge-vy-hi 217907.2
|
||||
:knocked-yellow-vxz-lo 16384.0
|
||||
:knocked-yellow-vxz-hi 32768.0
|
||||
:knocked-yellow-vy-lo 57344.0
|
||||
:knocked-yellow-vy-hi 81920.0
|
||||
:knocked-red-vxz-lo 24576.0
|
||||
:knocked-red-vxz-hi 196608.0
|
||||
:knocked-red-vy-lo 94208.0
|
||||
:knocked-red-vy-hi 151552.0
|
||||
:knocked-blue-vxz-lo 40960.0
|
||||
:knocked-blue-vxz-hi 49152.0
|
||||
:knocked-blue-vy-lo 20480.0
|
||||
:knocked-blue-vy-hi 40960.0
|
||||
:shadow-size (meters 1)
|
||||
:shadow-max-y (meters 1)
|
||||
:shadow-min-y (meters -1)
|
||||
:shadow-locus-dist (meters 150)
|
||||
:gem-joint 8
|
||||
:gem-seg #x2
|
||||
:gem-no-seg #x4
|
||||
:gem-offset (new 'static 'sphere :y 1843.2 :z 1146.88 :r 163840.0)
|
||||
:callback-info #f
|
||||
:use-momentum #f
|
||||
:use-frustration #t
|
||||
:use-stop-chase #f
|
||||
:use-circling #f
|
||||
:use-pacing #f
|
||||
:walk-anim 9
|
||||
:turn-anim -1
|
||||
:run-anim -1
|
||||
:taunt-anim -1
|
||||
:run-travel-speed (meters 6)
|
||||
:run-acceleration (meters 1)
|
||||
:run-turning-acceleration (meters 2)
|
||||
:walk-travel-speed (meters 1.8)
|
||||
:walk-acceleration (meters 1)
|
||||
:walk-turning-acceleration (meters 16)
|
||||
:maximum-rotation-rate (degrees 720.0)
|
||||
:notice-nav-radius (meters 100)
|
||||
:frustration-distance (meters 8)
|
||||
:frustration-time (seconds 4)
|
||||
:blocked-time (seconds 0.3)
|
||||
:circle-dist-lo 20480.0
|
||||
:circle-dist-hi 61440.0
|
||||
:nav-mesh #f
|
||||
)
|
||||
)
|
||||
(define *centurion-nav-enemy-info*
|
||||
(new 'static 'nav-enemy-info
|
||||
:use-die-falling #t
|
||||
:use-victory #f
|
||||
:use-jump-blocked #f
|
||||
:debug-draw-neck #f
|
||||
:jump-debug-draw #f
|
||||
:move-to-ground #t
|
||||
:hover-if-no-ground #f
|
||||
:idle-anim-script (new 'static 'array idle-control-frame 4
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x6 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
)
|
||||
:idle-anim 6
|
||||
:notice-anim 8
|
||||
:hostile-anim 13
|
||||
:hit-anim 16
|
||||
:knocked-anim 21
|
||||
:knocked-land-anim 22
|
||||
:die-anim 34
|
||||
:die-falling-anim 23
|
||||
:victory-anim 4
|
||||
:jump-wind-up-anim -1
|
||||
:jump-in-air-anim -1
|
||||
:jump-land-anim -1
|
||||
:neck-joint 8
|
||||
:look-at-joint 8
|
||||
:bullseye-joint 5
|
||||
:sound-hit (static-sound-name "centurion-hit")
|
||||
:sound-die (static-sound-name "centurion-die")
|
||||
:notice-distance (meters 100)
|
||||
:notice-distance-delta (meters 10)
|
||||
:proximity-notice-distance (meters 100)
|
||||
:default-hit-points 3
|
||||
:gnd-collide-with (collide-spec backgnd)
|
||||
:overlaps-others-collide-with-filter (collide-spec jak bot player-list)
|
||||
:penetrate-knocked #xffffffffffffffff
|
||||
:movement-gravity (meters -100)
|
||||
:friction 0.1
|
||||
:attack-shove-back (meters 3)
|
||||
:attack-shove-up (meters 2)
|
||||
:attack-mode 'generic
|
||||
:attack-damage 2
|
||||
:recover-gnd-collide-with (collide-spec backgnd crate obstacle hit-by-others-list pusher)
|
||||
:jump-height-min (meters 3)
|
||||
:jump-height-factor 0.5
|
||||
:knocked-seek-ry-clamp 6371.5557
|
||||
:knocked-soft-vxz-lo 32768.0
|
||||
:knocked-soft-vxz-hi 65536.0
|
||||
:knocked-soft-vy-lo 32768.0
|
||||
:knocked-soft-vy-hi 49152.0
|
||||
:knocked-medium-vxz-lo 147456.0
|
||||
:knocked-medium-vxz-hi 196608.0
|
||||
:knocked-medium-vy-lo 135168.0
|
||||
:knocked-medium-vy-hi 151552.0
|
||||
:knocked-hard-vxz-lo 78643.2
|
||||
:knocked-hard-vxz-hi 117964.8
|
||||
:knocked-hard-vy-lo 183500.8
|
||||
:knocked-hard-vy-hi 209715.2
|
||||
:knocked-huge-vxz-lo 164659.2
|
||||
:knocked-huge-vxz-hi 249036.8
|
||||
:knocked-huge-vy-lo 183500.8
|
||||
:knocked-huge-vy-hi 217907.2
|
||||
:knocked-yellow-vxz-lo 16384.0
|
||||
:knocked-yellow-vxz-hi 32768.0
|
||||
:knocked-yellow-vy-lo 57344.0
|
||||
:knocked-yellow-vy-hi 81920.0
|
||||
:knocked-red-vxz-lo 24576.0
|
||||
:knocked-red-vxz-hi 196608.0
|
||||
:knocked-red-vy-lo 94208.0
|
||||
:knocked-red-vy-hi 151552.0
|
||||
:knocked-blue-vxz-lo 40960.0
|
||||
:knocked-blue-vxz-hi 49152.0
|
||||
:knocked-blue-vy-lo 20480.0
|
||||
:knocked-blue-vy-hi 40960.0
|
||||
:shadow-size (meters 1)
|
||||
:shadow-max-y (meters 1)
|
||||
:shadow-min-y (meters -1)
|
||||
:shadow-locus-dist (meters 150)
|
||||
:gem-joint 8
|
||||
:gem-seg #x2
|
||||
:gem-no-seg #x4
|
||||
:gem-offset (new 'static 'sphere :y 1843.2 :z 1146.88 :r 163840.0)
|
||||
:callback-info #f
|
||||
:use-momentum #f
|
||||
:use-frustration #t
|
||||
:use-stop-chase #f
|
||||
:use-circling #f
|
||||
:use-pacing #f
|
||||
:walk-anim 9
|
||||
:turn-anim -1
|
||||
:run-anim -1
|
||||
:taunt-anim -1
|
||||
:run-travel-speed (meters 6)
|
||||
:run-acceleration (meters 1)
|
||||
:run-turning-acceleration (meters 2)
|
||||
:walk-travel-speed (meters 1.8)
|
||||
:walk-acceleration (meters 1)
|
||||
:walk-turning-acceleration (meters 16)
|
||||
:maximum-rotation-rate (degrees 720.0)
|
||||
:notice-nav-radius (meters 100)
|
||||
:frustration-distance (meters 8)
|
||||
:frustration-time (seconds 4)
|
||||
:blocked-time (seconds 0.3)
|
||||
:circle-dist-lo 20480.0
|
||||
:circle-dist-hi 61440.0
|
||||
:nav-mesh #f
|
||||
)
|
||||
)
|
||||
|
||||
(set! (-> *centurion-nav-enemy-info* fact-defaults) *fact-info-enemy-defaults*)
|
||||
|
||||
|
||||
@@ -76,109 +76,115 @@
|
||||
)
|
||||
)
|
||||
|
||||
(define *metalmonk-nav-enemy-info* (new 'static 'nav-enemy-info
|
||||
:use-die-falling #t
|
||||
:use-victory #t
|
||||
:use-jump-blocked #t
|
||||
:debug-draw-neck #f
|
||||
:jump-debug-draw #f
|
||||
:move-to-ground #t
|
||||
:hover-if-no-ground #f
|
||||
:idle-anim-script (new 'static 'array uint32 4 #x1010501 #x0 #x0 #x0)
|
||||
:idle-anim 5
|
||||
:notice-anim 10
|
||||
:hostile-anim 12
|
||||
:hit-anim -1
|
||||
:knocked-anim 16
|
||||
:knocked-land-anim 17
|
||||
:die-anim 32
|
||||
:die-falling-anim 33
|
||||
:victory-anim 22
|
||||
:jump-wind-up-anim 12
|
||||
:jump-in-air-anim 12
|
||||
:jump-land-anim 12
|
||||
:neck-joint 7
|
||||
:look-at-joint 7
|
||||
:bullseye-joint 4
|
||||
:sound-hit (static-sound-name "metalmonk-hit")
|
||||
:sound-die (static-sound-name "metalmonk-die")
|
||||
:notice-distance (meters 40)
|
||||
:notice-distance-delta (meters 10)
|
||||
:proximity-notice-distance (meters 40)
|
||||
:default-hit-points 4
|
||||
:gnd-collide-with (collide-spec backgnd)
|
||||
:overlaps-others-collide-with-filter (collide-spec jak bot player-list)
|
||||
:penetrate-knocked #xffffffffffffffff
|
||||
:movement-gravity (meters -100)
|
||||
:friction 0.8
|
||||
:attack-shove-back (meters 3)
|
||||
:attack-shove-up (meters 2)
|
||||
:attack-mode 'generic
|
||||
:attack-damage 2
|
||||
:recover-gnd-collide-with (collide-spec backgnd crate obstacle hit-by-others-list pusher)
|
||||
:jump-height-min (meters 3)
|
||||
:jump-height-factor 0.5
|
||||
:knocked-seek-ry-clamp 6371.5557
|
||||
:knocked-soft-vxz-lo 72089.6
|
||||
:knocked-soft-vxz-hi 108134.4
|
||||
:knocked-soft-vy-lo 81920.0
|
||||
:knocked-soft-vy-hi 122880.0
|
||||
:knocked-medium-vxz-lo 147456.0
|
||||
:knocked-medium-vxz-hi 196608.0
|
||||
:knocked-medium-vy-lo 135168.0
|
||||
:knocked-medium-vy-hi 151552.0
|
||||
:knocked-hard-vxz-lo 78643.2
|
||||
:knocked-hard-vxz-hi 117964.8
|
||||
:knocked-hard-vy-lo 183500.8
|
||||
:knocked-hard-vy-hi 209715.2
|
||||
:knocked-huge-vxz-lo 164659.2
|
||||
:knocked-huge-vxz-hi 249036.8
|
||||
:knocked-huge-vy-lo 183500.8
|
||||
:knocked-huge-vy-hi 217907.2
|
||||
:knocked-yellow-vxz-lo 40960.0
|
||||
:knocked-yellow-vxz-hi 49152.0
|
||||
:knocked-yellow-vy-lo 57344.0
|
||||
:knocked-yellow-vy-hi 81920.0
|
||||
:knocked-red-vxz-lo 24576.0
|
||||
:knocked-red-vxz-hi 196608.0
|
||||
:knocked-red-vy-lo 94208.0
|
||||
:knocked-red-vy-hi 151552.0
|
||||
:knocked-blue-vxz-lo 40960.0
|
||||
:knocked-blue-vxz-hi 49152.0
|
||||
:knocked-blue-vy-lo 24576.0
|
||||
:knocked-blue-vy-hi 81920.0
|
||||
:shadow-size (meters 2)
|
||||
:shadow-max-y (meters 1)
|
||||
:shadow-min-y (meters -1)
|
||||
:shadow-locus-dist (meters 150)
|
||||
:gem-joint 7
|
||||
:gem-offset (new 'static 'sphere :r 163840.0)
|
||||
:callback-info #f
|
||||
:use-momentum #t
|
||||
:use-frustration #t
|
||||
:use-stop-chase #f
|
||||
:use-circling #t
|
||||
:use-pacing #t
|
||||
:walk-anim 8
|
||||
:turn-anim -1
|
||||
:run-anim 12
|
||||
:taunt-anim 22
|
||||
:run-travel-speed (meters 7)
|
||||
:run-acceleration (meters 7)
|
||||
:run-turning-acceleration (meters 20)
|
||||
:walk-travel-speed (meters 2)
|
||||
:walk-acceleration (meters 3)
|
||||
:walk-turning-acceleration (meters 3)
|
||||
:maximum-rotation-rate (degrees 360.0)
|
||||
:notice-nav-radius (meters 1)
|
||||
:frustration-distance (meters 8)
|
||||
:frustration-time (seconds 4)
|
||||
:blocked-time (seconds 0.3)
|
||||
:circle-dist-lo 20480.0
|
||||
:circle-dist-hi 61440.0
|
||||
:nav-mesh #f
|
||||
)
|
||||
)
|
||||
(define *metalmonk-nav-enemy-info*
|
||||
(new 'static 'nav-enemy-info
|
||||
:use-die-falling #t
|
||||
:use-victory #t
|
||||
:use-jump-blocked #t
|
||||
:debug-draw-neck #f
|
||||
:jump-debug-draw #f
|
||||
:move-to-ground #t
|
||||
:hover-if-no-ground #f
|
||||
:idle-anim-script (new 'static 'array idle-control-frame 4
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x5 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
)
|
||||
:idle-anim 5
|
||||
:notice-anim 10
|
||||
:hostile-anim 12
|
||||
:hit-anim -1
|
||||
:knocked-anim 16
|
||||
:knocked-land-anim 17
|
||||
:die-anim 32
|
||||
:die-falling-anim 33
|
||||
:victory-anim 22
|
||||
:jump-wind-up-anim 12
|
||||
:jump-in-air-anim 12
|
||||
:jump-land-anim 12
|
||||
:neck-joint 7
|
||||
:look-at-joint 7
|
||||
:bullseye-joint 4
|
||||
:sound-hit (static-sound-name "metalmonk-hit")
|
||||
:sound-die (static-sound-name "metalmonk-die")
|
||||
:notice-distance (meters 40)
|
||||
:notice-distance-delta (meters 10)
|
||||
:proximity-notice-distance (meters 40)
|
||||
:default-hit-points 4
|
||||
:gnd-collide-with (collide-spec backgnd)
|
||||
:overlaps-others-collide-with-filter (collide-spec jak bot player-list)
|
||||
:penetrate-knocked #xffffffffffffffff
|
||||
:movement-gravity (meters -100)
|
||||
:friction 0.8
|
||||
:attack-shove-back (meters 3)
|
||||
:attack-shove-up (meters 2)
|
||||
:attack-mode 'generic
|
||||
:attack-damage 2
|
||||
:recover-gnd-collide-with (collide-spec backgnd crate obstacle hit-by-others-list pusher)
|
||||
:jump-height-min (meters 3)
|
||||
:jump-height-factor 0.5
|
||||
:knocked-seek-ry-clamp 6371.5557
|
||||
:knocked-soft-vxz-lo 72089.6
|
||||
:knocked-soft-vxz-hi 108134.4
|
||||
:knocked-soft-vy-lo 81920.0
|
||||
:knocked-soft-vy-hi 122880.0
|
||||
:knocked-medium-vxz-lo 147456.0
|
||||
:knocked-medium-vxz-hi 196608.0
|
||||
:knocked-medium-vy-lo 135168.0
|
||||
:knocked-medium-vy-hi 151552.0
|
||||
:knocked-hard-vxz-lo 78643.2
|
||||
:knocked-hard-vxz-hi 117964.8
|
||||
:knocked-hard-vy-lo 183500.8
|
||||
:knocked-hard-vy-hi 209715.2
|
||||
:knocked-huge-vxz-lo 164659.2
|
||||
:knocked-huge-vxz-hi 249036.8
|
||||
:knocked-huge-vy-lo 183500.8
|
||||
:knocked-huge-vy-hi 217907.2
|
||||
:knocked-yellow-vxz-lo 40960.0
|
||||
:knocked-yellow-vxz-hi 49152.0
|
||||
:knocked-yellow-vy-lo 57344.0
|
||||
:knocked-yellow-vy-hi 81920.0
|
||||
:knocked-red-vxz-lo 24576.0
|
||||
:knocked-red-vxz-hi 196608.0
|
||||
:knocked-red-vy-lo 94208.0
|
||||
:knocked-red-vy-hi 151552.0
|
||||
:knocked-blue-vxz-lo 40960.0
|
||||
:knocked-blue-vxz-hi 49152.0
|
||||
:knocked-blue-vy-lo 24576.0
|
||||
:knocked-blue-vy-hi 81920.0
|
||||
:shadow-size (meters 2)
|
||||
:shadow-max-y (meters 1)
|
||||
:shadow-min-y (meters -1)
|
||||
:shadow-locus-dist (meters 150)
|
||||
:gem-joint 7
|
||||
:gem-offset (new 'static 'sphere :r 163840.0)
|
||||
:callback-info #f
|
||||
:use-momentum #t
|
||||
:use-frustration #t
|
||||
:use-stop-chase #f
|
||||
:use-circling #t
|
||||
:use-pacing #t
|
||||
:walk-anim 8
|
||||
:turn-anim -1
|
||||
:run-anim 12
|
||||
:taunt-anim 22
|
||||
:run-travel-speed (meters 7)
|
||||
:run-acceleration (meters 7)
|
||||
:run-turning-acceleration (meters 20)
|
||||
:walk-travel-speed (meters 2)
|
||||
:walk-acceleration (meters 3)
|
||||
:walk-turning-acceleration (meters 3)
|
||||
:maximum-rotation-rate (degrees 360.0)
|
||||
:notice-nav-radius (meters 1)
|
||||
:frustration-distance (meters 8)
|
||||
:frustration-time (seconds 4)
|
||||
:blocked-time (seconds 0.3)
|
||||
:circle-dist-lo 20480.0
|
||||
:circle-dist-hi 61440.0
|
||||
:nav-mesh #f
|
||||
)
|
||||
)
|
||||
|
||||
(set! (-> *metalmonk-nav-enemy-info* fact-defaults) *fact-info-enemy-defaults*)
|
||||
|
||||
|
||||
@@ -85,132 +85,133 @@
|
||||
)
|
||||
|
||||
|
||||
(define *grenadier-nav-enemy-info* (new 'static 'nav-enemy-info
|
||||
:use-die-falling #t
|
||||
:use-victory #t
|
||||
:use-jump-blocked #t
|
||||
:debug-draw-neck #f
|
||||
:jump-debug-draw #f
|
||||
:move-to-ground #t
|
||||
:hover-if-no-ground #f
|
||||
:idle-anim-script (new 'static 'array uint32 20
|
||||
#x270002
|
||||
#x6040501
|
||||
#x270002
|
||||
#x1010701
|
||||
#x1010601
|
||||
#x270002
|
||||
#x6040501
|
||||
#x1010801
|
||||
#x1010701
|
||||
#x1010601
|
||||
#x270002
|
||||
#x8040501
|
||||
#x270002
|
||||
#x1010801
|
||||
#x270002
|
||||
#x1010601
|
||||
#x0
|
||||
#x0
|
||||
#x0
|
||||
#x0
|
||||
)
|
||||
:idle-anim 5
|
||||
:notice-anim 11
|
||||
:hostile-anim 13
|
||||
:hit-anim 23
|
||||
:knocked-anim 31
|
||||
:knocked-land-anim 32
|
||||
:die-anim 33
|
||||
:die-falling-anim 34
|
||||
:victory-anim 22
|
||||
:jump-wind-up-anim -1
|
||||
:jump-in-air-anim -1
|
||||
:jump-land-anim -1
|
||||
:neck-joint 24
|
||||
:look-at-joint 24
|
||||
:bullseye-joint 18
|
||||
:sound-hit (static-sound-name "grenadier-hit")
|
||||
:sound-die (static-sound-name "grenadier-die")
|
||||
:notice-distance (meters 50)
|
||||
:notice-distance-delta (meters 10)
|
||||
:proximity-notice-distance (meters 12.5)
|
||||
:default-hit-points 14
|
||||
:gnd-collide-with (collide-spec backgnd)
|
||||
:overlaps-others-collide-with-filter (collide-spec jak bot player-list)
|
||||
:penetrate-knocked #xffffffffffffffff
|
||||
:movement-gravity (meters -100)
|
||||
:friction 0.8
|
||||
:attack-shove-back (meters 3)
|
||||
:attack-shove-up (meters 2)
|
||||
:attack-mode 'generic
|
||||
:attack-damage 2
|
||||
:recover-gnd-collide-with (collide-spec backgnd crate obstacle hit-by-others-list pusher)
|
||||
:jump-height-min (meters 3)
|
||||
:jump-height-factor 0.5
|
||||
:knocked-seek-ry-clamp 0.18204445
|
||||
:knocked-soft-vxz-lo 72089.6
|
||||
:knocked-soft-vxz-hi 108134.4
|
||||
:knocked-soft-vy-lo 81920.0
|
||||
:knocked-soft-vy-hi 122880.0
|
||||
:knocked-medium-vxz-lo 147456.0
|
||||
:knocked-medium-vxz-hi 196608.0
|
||||
:knocked-medium-vy-lo 135168.0
|
||||
:knocked-medium-vy-hi 151552.0
|
||||
:knocked-hard-vxz-lo 78643.2
|
||||
:knocked-hard-vxz-hi 117964.8
|
||||
:knocked-hard-vy-lo 183500.8
|
||||
:knocked-hard-vy-hi 209715.2
|
||||
:knocked-huge-vxz-lo 164659.2
|
||||
:knocked-huge-vxz-hi 249036.8
|
||||
:knocked-huge-vy-lo 183500.8
|
||||
:knocked-huge-vy-hi 217907.2
|
||||
:knocked-yellow-vxz-lo 40960.0
|
||||
:knocked-yellow-vxz-hi 49152.0
|
||||
:knocked-yellow-vy-lo 57344.0
|
||||
:knocked-yellow-vy-hi 81920.0
|
||||
:knocked-red-vxz-lo 24576.0
|
||||
:knocked-red-vxz-hi 196608.0
|
||||
:knocked-red-vy-lo 94208.0
|
||||
:knocked-red-vy-hi 151552.0
|
||||
:knocked-blue-vxz-lo 40960.0
|
||||
:knocked-blue-vxz-hi 49152.0
|
||||
:knocked-blue-vy-lo 24576.0
|
||||
:knocked-blue-vy-hi 81920.0
|
||||
:shadow-size (meters 2)
|
||||
:shadow-max-y (meters 1)
|
||||
:shadow-min-y (meters -1)
|
||||
:shadow-locus-dist (meters 150)
|
||||
:gem-joint 24
|
||||
:gem-seg #x2
|
||||
:gem-no-seg #x4
|
||||
:gem-offset (new 'static 'sphere :y 1802.24 :z 286.72 :r 163840.0)
|
||||
:callback-info #f
|
||||
:use-momentum #f
|
||||
:use-frustration #t
|
||||
:use-stop-chase #f
|
||||
:use-circling #f
|
||||
:use-pacing #f
|
||||
:walk-anim 9
|
||||
:turn-anim -1
|
||||
:run-anim 13
|
||||
:taunt-anim -1
|
||||
:run-travel-speed (meters 12)
|
||||
:run-acceleration (meters 1)
|
||||
:run-turning-acceleration (meters 50)
|
||||
:walk-travel-speed (meters 2)
|
||||
:walk-acceleration (meters 1)
|
||||
:walk-turning-acceleration (meters 3)
|
||||
:maximum-rotation-rate (degrees 360.0)
|
||||
:notice-nav-radius (meters 50)
|
||||
:frustration-distance (meters 8)
|
||||
:frustration-time (seconds 4)
|
||||
:blocked-time (seconds 0.3)
|
||||
:circle-dist-lo 20480.0
|
||||
:circle-dist-hi 61440.0
|
||||
:nav-mesh #f
|
||||
)
|
||||
)
|
||||
(define *grenadier-nav-enemy-info*
|
||||
(new 'static 'nav-enemy-info
|
||||
:use-die-falling #t
|
||||
:use-victory #t
|
||||
:use-jump-blocked #t
|
||||
:debug-draw-neck #f
|
||||
:jump-debug-draw #f
|
||||
:move-to-ground #t
|
||||
:hover-if-no-ground #f
|
||||
:idle-anim-script (new 'static 'array idle-control-frame 20
|
||||
(new 'static 'idle-control-frame :command #x2 :param0 #x27)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x5 :param0 #x4 :param1 #x6)
|
||||
(new 'static 'idle-control-frame :command #x2 :param0 #x27)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x7 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x6 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command #x2 :param0 #x27)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x5 :param0 #x4 :param1 #x6)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x8 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x7 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x6 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command #x2 :param0 #x27)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x5 :param0 #x4 :param1 #x8)
|
||||
(new 'static 'idle-control-frame :command #x2 :param0 #x27)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x8 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command #x2 :param0 #x27)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x6 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
)
|
||||
:idle-anim 5
|
||||
:notice-anim 11
|
||||
:hostile-anim 13
|
||||
:hit-anim 23
|
||||
:knocked-anim 31
|
||||
:knocked-land-anim 32
|
||||
:die-anim 33
|
||||
:die-falling-anim 34
|
||||
:victory-anim 22
|
||||
:jump-wind-up-anim -1
|
||||
:jump-in-air-anim -1
|
||||
:jump-land-anim -1
|
||||
:neck-joint 24
|
||||
:look-at-joint 24
|
||||
:bullseye-joint 18
|
||||
:sound-hit (static-sound-name "grenadier-hit")
|
||||
:sound-die (static-sound-name "grenadier-die")
|
||||
:notice-distance (meters 50)
|
||||
:notice-distance-delta (meters 10)
|
||||
:proximity-notice-distance (meters 12.5)
|
||||
:default-hit-points 14
|
||||
:gnd-collide-with (collide-spec backgnd)
|
||||
:overlaps-others-collide-with-filter (collide-spec jak bot player-list)
|
||||
:penetrate-knocked #xffffffffffffffff
|
||||
:movement-gravity (meters -100)
|
||||
:friction 0.8
|
||||
:attack-shove-back (meters 3)
|
||||
:attack-shove-up (meters 2)
|
||||
:attack-mode 'generic
|
||||
:attack-damage 2
|
||||
:recover-gnd-collide-with (collide-spec backgnd crate obstacle hit-by-others-list pusher)
|
||||
:jump-height-min (meters 3)
|
||||
:jump-height-factor 0.5
|
||||
:knocked-seek-ry-clamp 0.18204445
|
||||
:knocked-soft-vxz-lo 72089.6
|
||||
:knocked-soft-vxz-hi 108134.4
|
||||
:knocked-soft-vy-lo 81920.0
|
||||
:knocked-soft-vy-hi 122880.0
|
||||
:knocked-medium-vxz-lo 147456.0
|
||||
:knocked-medium-vxz-hi 196608.0
|
||||
:knocked-medium-vy-lo 135168.0
|
||||
:knocked-medium-vy-hi 151552.0
|
||||
:knocked-hard-vxz-lo 78643.2
|
||||
:knocked-hard-vxz-hi 117964.8
|
||||
:knocked-hard-vy-lo 183500.8
|
||||
:knocked-hard-vy-hi 209715.2
|
||||
:knocked-huge-vxz-lo 164659.2
|
||||
:knocked-huge-vxz-hi 249036.8
|
||||
:knocked-huge-vy-lo 183500.8
|
||||
:knocked-huge-vy-hi 217907.2
|
||||
:knocked-yellow-vxz-lo 40960.0
|
||||
:knocked-yellow-vxz-hi 49152.0
|
||||
:knocked-yellow-vy-lo 57344.0
|
||||
:knocked-yellow-vy-hi 81920.0
|
||||
:knocked-red-vxz-lo 24576.0
|
||||
:knocked-red-vxz-hi 196608.0
|
||||
:knocked-red-vy-lo 94208.0
|
||||
:knocked-red-vy-hi 151552.0
|
||||
:knocked-blue-vxz-lo 40960.0
|
||||
:knocked-blue-vxz-hi 49152.0
|
||||
:knocked-blue-vy-lo 24576.0
|
||||
:knocked-blue-vy-hi 81920.0
|
||||
:shadow-size (meters 2)
|
||||
:shadow-max-y (meters 1)
|
||||
:shadow-min-y (meters -1)
|
||||
:shadow-locus-dist (meters 150)
|
||||
:gem-joint 24
|
||||
:gem-seg #x2
|
||||
:gem-no-seg #x4
|
||||
:gem-offset (new 'static 'sphere :y 1802.24 :z 286.72 :r 163840.0)
|
||||
:callback-info #f
|
||||
:use-momentum #f
|
||||
:use-frustration #t
|
||||
:use-stop-chase #f
|
||||
:use-circling #f
|
||||
:use-pacing #f
|
||||
:walk-anim 9
|
||||
:turn-anim -1
|
||||
:run-anim 13
|
||||
:taunt-anim -1
|
||||
:run-travel-speed (meters 12)
|
||||
:run-acceleration (meters 1)
|
||||
:run-turning-acceleration (meters 50)
|
||||
:walk-travel-speed (meters 2)
|
||||
:walk-acceleration (meters 1)
|
||||
:walk-turning-acceleration (meters 3)
|
||||
:maximum-rotation-rate (degrees 360.0)
|
||||
:notice-nav-radius (meters 50)
|
||||
:frustration-distance (meters 8)
|
||||
:frustration-time (seconds 4)
|
||||
:blocked-time (seconds 0.3)
|
||||
:circle-dist-lo 20480.0
|
||||
:circle-dist-hi 61440.0
|
||||
:nav-mesh #f
|
||||
)
|
||||
)
|
||||
|
||||
(set! (-> *grenadier-nav-enemy-info* fact-defaults) *fact-info-enemy-defaults*)
|
||||
|
||||
|
||||
@@ -472,79 +472,85 @@
|
||||
)
|
||||
|
||||
|
||||
(define *sew-gunturret-enemy-info* (new 'static 'enemy-info
|
||||
:use-die-falling #f
|
||||
:use-victory #f
|
||||
:use-jump-blocked #f
|
||||
:debug-draw-neck #f
|
||||
:jump-debug-draw #f
|
||||
:move-to-ground #f
|
||||
:hover-if-no-ground #f
|
||||
:idle-anim-script (new 'static 'array uint32 4 #x1010201 #x0 #x0 #x0)
|
||||
:idle-anim 2
|
||||
:notice-anim 2
|
||||
:hostile-anim 2
|
||||
:hit-anim 2
|
||||
:knocked-anim -1
|
||||
:knocked-land-anim -1
|
||||
:die-anim 2
|
||||
:die-falling-anim -1
|
||||
:victory-anim -1
|
||||
:jump-wind-up-anim -1
|
||||
:jump-in-air-anim -1
|
||||
:jump-land-anim -1
|
||||
:neck-joint -1
|
||||
:notice-distance (meters 150)
|
||||
:notice-distance-delta (meters 10)
|
||||
:proximity-notice-distance (meters 150)
|
||||
:default-hit-points 1
|
||||
:gnd-collide-with (collide-spec backgnd)
|
||||
:overlaps-others-collide-with-filter (collide-spec jak bot player-list)
|
||||
:movement-gravity (meters -100)
|
||||
:friction 0.8
|
||||
:attack-shove-back (meters 3)
|
||||
:attack-shove-up (meters 2)
|
||||
:attack-mode 'generic
|
||||
:attack-damage 2
|
||||
:jump-height-min (meters 3)
|
||||
:jump-height-factor 0.5
|
||||
:knocked-seek-ry-clamp 2730.6667
|
||||
:knocked-soft-vxz-lo 72089.6
|
||||
:knocked-soft-vxz-hi 108134.4
|
||||
:knocked-soft-vy-lo 81920.0
|
||||
:knocked-soft-vy-hi 122880.0
|
||||
:knocked-medium-vxz-lo 147456.0
|
||||
:knocked-medium-vxz-hi 196608.0
|
||||
:knocked-medium-vy-lo 135168.0
|
||||
:knocked-medium-vy-hi 151552.0
|
||||
:knocked-hard-vxz-lo 78643.2
|
||||
:knocked-hard-vxz-hi 117964.8
|
||||
:knocked-hard-vy-lo 183500.8
|
||||
:knocked-hard-vy-hi 209715.2
|
||||
:knocked-huge-vxz-lo 164659.2
|
||||
:knocked-huge-vxz-hi 249036.8
|
||||
:knocked-huge-vy-lo 183500.8
|
||||
:knocked-huge-vy-hi 217907.2
|
||||
:knocked-yellow-vxz-lo 40960.0
|
||||
:knocked-yellow-vxz-hi 49152.0
|
||||
:knocked-yellow-vy-lo 57344.0
|
||||
:knocked-yellow-vy-hi 81920.0
|
||||
:knocked-red-vxz-lo 24576.0
|
||||
:knocked-red-vxz-hi 196608.0
|
||||
:knocked-red-vy-lo 94208.0
|
||||
:knocked-red-vy-hi 151552.0
|
||||
:knocked-blue-vxz-lo 40960.0
|
||||
:knocked-blue-vxz-hi 49152.0
|
||||
:knocked-blue-vy-lo 24576.0
|
||||
:knocked-blue-vy-hi 81920.0
|
||||
:shadow-size (meters 1)
|
||||
:shadow-max-y (meters 1)
|
||||
:shadow-min-y (meters -1)
|
||||
:shadow-locus-dist (meters 150)
|
||||
:gem-joint -1
|
||||
:gem-offset (new 'static 'sphere :r 163840.0)
|
||||
)
|
||||
)
|
||||
(define *sew-gunturret-enemy-info*
|
||||
(new 'static 'enemy-info
|
||||
:use-die-falling #f
|
||||
:use-victory #f
|
||||
:use-jump-blocked #f
|
||||
:debug-draw-neck #f
|
||||
:jump-debug-draw #f
|
||||
:move-to-ground #f
|
||||
:hover-if-no-ground #f
|
||||
:idle-anim-script (new 'static 'array idle-control-frame 4
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x2 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
)
|
||||
:idle-anim 2
|
||||
:notice-anim 2
|
||||
:hostile-anim 2
|
||||
:hit-anim 2
|
||||
:knocked-anim -1
|
||||
:knocked-land-anim -1
|
||||
:die-anim 2
|
||||
:die-falling-anim -1
|
||||
:victory-anim -1
|
||||
:jump-wind-up-anim -1
|
||||
:jump-in-air-anim -1
|
||||
:jump-land-anim -1
|
||||
:neck-joint -1
|
||||
:notice-distance (meters 150)
|
||||
:notice-distance-delta (meters 10)
|
||||
:proximity-notice-distance (meters 150)
|
||||
:default-hit-points 1
|
||||
:gnd-collide-with (collide-spec backgnd)
|
||||
:overlaps-others-collide-with-filter (collide-spec jak bot player-list)
|
||||
:movement-gravity (meters -100)
|
||||
:friction 0.8
|
||||
:attack-shove-back (meters 3)
|
||||
:attack-shove-up (meters 2)
|
||||
:attack-mode 'generic
|
||||
:attack-damage 2
|
||||
:jump-height-min (meters 3)
|
||||
:jump-height-factor 0.5
|
||||
:knocked-seek-ry-clamp 2730.6667
|
||||
:knocked-soft-vxz-lo 72089.6
|
||||
:knocked-soft-vxz-hi 108134.4
|
||||
:knocked-soft-vy-lo 81920.0
|
||||
:knocked-soft-vy-hi 122880.0
|
||||
:knocked-medium-vxz-lo 147456.0
|
||||
:knocked-medium-vxz-hi 196608.0
|
||||
:knocked-medium-vy-lo 135168.0
|
||||
:knocked-medium-vy-hi 151552.0
|
||||
:knocked-hard-vxz-lo 78643.2
|
||||
:knocked-hard-vxz-hi 117964.8
|
||||
:knocked-hard-vy-lo 183500.8
|
||||
:knocked-hard-vy-hi 209715.2
|
||||
:knocked-huge-vxz-lo 164659.2
|
||||
:knocked-huge-vxz-hi 249036.8
|
||||
:knocked-huge-vy-lo 183500.8
|
||||
:knocked-huge-vy-hi 217907.2
|
||||
:knocked-yellow-vxz-lo 40960.0
|
||||
:knocked-yellow-vxz-hi 49152.0
|
||||
:knocked-yellow-vy-lo 57344.0
|
||||
:knocked-yellow-vy-hi 81920.0
|
||||
:knocked-red-vxz-lo 24576.0
|
||||
:knocked-red-vxz-hi 196608.0
|
||||
:knocked-red-vy-lo 94208.0
|
||||
:knocked-red-vy-hi 151552.0
|
||||
:knocked-blue-vxz-lo 40960.0
|
||||
:knocked-blue-vxz-hi 49152.0
|
||||
:knocked-blue-vy-lo 24576.0
|
||||
:knocked-blue-vy-hi 81920.0
|
||||
:shadow-size (meters 1)
|
||||
:shadow-max-y (meters 1)
|
||||
:shadow-min-y (meters -1)
|
||||
:shadow-locus-dist (meters 150)
|
||||
:gem-joint -1
|
||||
:gem-offset (new 'static 'sphere :r 163840.0)
|
||||
)
|
||||
)
|
||||
|
||||
(set! (-> *sew-gunturret-enemy-info* fact-defaults) *fact-info-enemy-defaults*)
|
||||
|
||||
@@ -566,12 +572,12 @@
|
||||
)
|
||||
(let ((s3-0 (new 'stack-no-clear 'vector)))
|
||||
(vector-! s4-0 (-> obj aim-pos) (-> obj root-override2 trans))
|
||||
(vector-flatten! s4-0 s4-0 (the-as vector (&-> obj stack 496)))
|
||||
(vector-flatten! s4-0 s4-0 (-> obj init-mat vector 1))
|
||||
(vector-normalize! s4-0 1.0)
|
||||
(set! (-> obj desired-twist) (asin (vector-dot (the-as vector (-> obj init-mat)) s4-0)))
|
||||
(set! (-> obj desired-twist) (fmin 5461.3335 (fmax -5461.3335 (-> obj desired-twist))))
|
||||
(cond
|
||||
((< 0.0 (vector-dot (the-as vector (&-> obj stack 512)) s4-0))
|
||||
((< 0.0 (vector-dot (-> obj init-mat vector 2) s4-0))
|
||||
)
|
||||
((< (-> obj desired-twist) 0.0)
|
||||
(set! (-> obj desired-twist) -5461.3335)
|
||||
@@ -625,10 +631,7 @@
|
||||
(let* ((s4-0 (vector<-cspace! (new 'stack-no-clear 'vector) (-> obj node-list data (-> obj params gun-joint))))
|
||||
(s5-3 (vector-! (new 'stack-no-clear 'vector) (-> obj aim-pos) s4-0))
|
||||
)
|
||||
(when (< (vector-dot
|
||||
(vector-normalize-copy! (new 'stack-no-clear 'vector) s5-3 1.0)
|
||||
(the-as vector (&-> obj stack 512))
|
||||
)
|
||||
(when (< (vector-dot (vector-normalize-copy! (new 'stack-no-clear 'vector) s5-3 1.0) (-> obj init-mat vector 2))
|
||||
(cos 364.0889)
|
||||
)
|
||||
(let ((a1-5 (new 'stack-no-clear 'collide-query)))
|
||||
@@ -656,7 +659,7 @@
|
||||
)
|
||||
|
||||
(defmethod sew-gunturret-method-139 sew-gunturret ((obj sew-gunturret))
|
||||
(vector+float*! (-> obj aim-pos) (-> obj root-override2 trans) (the-as vector (&-> obj stack 512)) 163840.0)
|
||||
(vector+float*! (-> obj aim-pos) (-> obj root-override2 trans) (-> obj init-mat vector 2) 163840.0)
|
||||
0
|
||||
(none)
|
||||
)
|
||||
@@ -975,7 +978,7 @@
|
||||
(else
|
||||
(let ((f0-2 (vector-dot
|
||||
(vector-! (new 'stack-no-clear 'vector) (get-trans arg0 3) (-> obj root-override2 trans))
|
||||
(the-as vector (&-> obj stack 512))
|
||||
(-> obj init-mat vector 2)
|
||||
)
|
||||
)
|
||||
)
|
||||
@@ -1092,79 +1095,85 @@
|
||||
:bounds (static-spherem 0 0 0 15)
|
||||
)
|
||||
|
||||
(define *pal-gun-turret-enemy-info* (new 'static 'enemy-info
|
||||
:use-die-falling #f
|
||||
:use-victory #f
|
||||
:use-jump-blocked #f
|
||||
:debug-draw-neck #f
|
||||
:jump-debug-draw #f
|
||||
:move-to-ground #f
|
||||
:hover-if-no-ground #f
|
||||
:idle-anim-script (new 'static 'array uint32 4 #x2020201 #x0 #x0 #x0)
|
||||
:idle-anim 2
|
||||
:notice-anim 2
|
||||
:hostile-anim 2
|
||||
:hit-anim 2
|
||||
:knocked-anim -1
|
||||
:knocked-land-anim -1
|
||||
:die-anim 2
|
||||
:die-falling-anim -1
|
||||
:victory-anim -1
|
||||
:jump-wind-up-anim -1
|
||||
:jump-in-air-anim -1
|
||||
:jump-land-anim -1
|
||||
:neck-joint -1
|
||||
:notice-distance (meters 150)
|
||||
:notice-distance-delta (meters 10)
|
||||
:proximity-notice-distance (meters 150)
|
||||
:default-hit-points 1
|
||||
:gnd-collide-with (collide-spec backgnd)
|
||||
:overlaps-others-collide-with-filter (collide-spec jak bot player-list)
|
||||
:movement-gravity (meters -100)
|
||||
:friction 0.8
|
||||
:attack-shove-back (meters 3)
|
||||
:attack-shove-up (meters 2)
|
||||
:attack-mode 'generic
|
||||
:attack-damage 2
|
||||
:jump-height-min (meters 3)
|
||||
:jump-height-factor 0.5
|
||||
:knocked-seek-ry-clamp 2730.6667
|
||||
:knocked-soft-vxz-lo 72089.6
|
||||
:knocked-soft-vxz-hi 108134.4
|
||||
:knocked-soft-vy-lo 81920.0
|
||||
:knocked-soft-vy-hi 122880.0
|
||||
:knocked-medium-vxz-lo 147456.0
|
||||
:knocked-medium-vxz-hi 196608.0
|
||||
:knocked-medium-vy-lo 135168.0
|
||||
:knocked-medium-vy-hi 151552.0
|
||||
:knocked-hard-vxz-lo 78643.2
|
||||
:knocked-hard-vxz-hi 117964.8
|
||||
:knocked-hard-vy-lo 183500.8
|
||||
:knocked-hard-vy-hi 209715.2
|
||||
:knocked-huge-vxz-lo 164659.2
|
||||
:knocked-huge-vxz-hi 249036.8
|
||||
:knocked-huge-vy-lo 183500.8
|
||||
:knocked-huge-vy-hi 217907.2
|
||||
:knocked-yellow-vxz-lo 40960.0
|
||||
:knocked-yellow-vxz-hi 49152.0
|
||||
:knocked-yellow-vy-lo 57344.0
|
||||
:knocked-yellow-vy-hi 81920.0
|
||||
:knocked-red-vxz-lo 24576.0
|
||||
:knocked-red-vxz-hi 196608.0
|
||||
:knocked-red-vy-lo 94208.0
|
||||
:knocked-red-vy-hi 151552.0
|
||||
:knocked-blue-vxz-lo 40960.0
|
||||
:knocked-blue-vxz-hi 49152.0
|
||||
:knocked-blue-vy-lo 24576.0
|
||||
:knocked-blue-vy-hi 81920.0
|
||||
:shadow-size (meters 1)
|
||||
:shadow-max-y (meters 1)
|
||||
:shadow-min-y (meters -1)
|
||||
:shadow-locus-dist (meters 150)
|
||||
:gem-joint -1
|
||||
:gem-offset (new 'static 'sphere :r 163840.0)
|
||||
)
|
||||
)
|
||||
(define *pal-gun-turret-enemy-info*
|
||||
(new 'static 'enemy-info
|
||||
:use-die-falling #f
|
||||
:use-victory #f
|
||||
:use-jump-blocked #f
|
||||
:debug-draw-neck #f
|
||||
:jump-debug-draw #f
|
||||
:move-to-ground #f
|
||||
:hover-if-no-ground #f
|
||||
:idle-anim-script (new 'static 'array idle-control-frame 4
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x2 :param0 #x2 :param1 #x2)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
)
|
||||
:idle-anim 2
|
||||
:notice-anim 2
|
||||
:hostile-anim 2
|
||||
:hit-anim 2
|
||||
:knocked-anim -1
|
||||
:knocked-land-anim -1
|
||||
:die-anim 2
|
||||
:die-falling-anim -1
|
||||
:victory-anim -1
|
||||
:jump-wind-up-anim -1
|
||||
:jump-in-air-anim -1
|
||||
:jump-land-anim -1
|
||||
:neck-joint -1
|
||||
:notice-distance (meters 150)
|
||||
:notice-distance-delta (meters 10)
|
||||
:proximity-notice-distance (meters 150)
|
||||
:default-hit-points 1
|
||||
:gnd-collide-with (collide-spec backgnd)
|
||||
:overlaps-others-collide-with-filter (collide-spec jak bot player-list)
|
||||
:movement-gravity (meters -100)
|
||||
:friction 0.8
|
||||
:attack-shove-back (meters 3)
|
||||
:attack-shove-up (meters 2)
|
||||
:attack-mode 'generic
|
||||
:attack-damage 2
|
||||
:jump-height-min (meters 3)
|
||||
:jump-height-factor 0.5
|
||||
:knocked-seek-ry-clamp 2730.6667
|
||||
:knocked-soft-vxz-lo 72089.6
|
||||
:knocked-soft-vxz-hi 108134.4
|
||||
:knocked-soft-vy-lo 81920.0
|
||||
:knocked-soft-vy-hi 122880.0
|
||||
:knocked-medium-vxz-lo 147456.0
|
||||
:knocked-medium-vxz-hi 196608.0
|
||||
:knocked-medium-vy-lo 135168.0
|
||||
:knocked-medium-vy-hi 151552.0
|
||||
:knocked-hard-vxz-lo 78643.2
|
||||
:knocked-hard-vxz-hi 117964.8
|
||||
:knocked-hard-vy-lo 183500.8
|
||||
:knocked-hard-vy-hi 209715.2
|
||||
:knocked-huge-vxz-lo 164659.2
|
||||
:knocked-huge-vxz-hi 249036.8
|
||||
:knocked-huge-vy-lo 183500.8
|
||||
:knocked-huge-vy-hi 217907.2
|
||||
:knocked-yellow-vxz-lo 40960.0
|
||||
:knocked-yellow-vxz-hi 49152.0
|
||||
:knocked-yellow-vy-lo 57344.0
|
||||
:knocked-yellow-vy-hi 81920.0
|
||||
:knocked-red-vxz-lo 24576.0
|
||||
:knocked-red-vxz-hi 196608.0
|
||||
:knocked-red-vy-lo 94208.0
|
||||
:knocked-red-vy-hi 151552.0
|
||||
:knocked-blue-vxz-lo 40960.0
|
||||
:knocked-blue-vxz-hi 49152.0
|
||||
:knocked-blue-vy-lo 24576.0
|
||||
:knocked-blue-vy-hi 81920.0
|
||||
:shadow-size (meters 1)
|
||||
:shadow-max-y (meters 1)
|
||||
:shadow-min-y (meters -1)
|
||||
:shadow-locus-dist (meters 150)
|
||||
:gem-joint -1
|
||||
:gem-offset (new 'static 'sphere :r 163840.0)
|
||||
)
|
||||
)
|
||||
|
||||
(set! (-> *pal-gun-turret-enemy-info* fact-defaults) *fact-info-enemy-defaults*)
|
||||
|
||||
|
||||
@@ -406,128 +406,129 @@
|
||||
:origin-joint-index 3
|
||||
)
|
||||
|
||||
(define *flitter-nav-enemy-info* (new 'static 'nav-enemy-info
|
||||
:use-die-falling #t
|
||||
:use-victory #f
|
||||
:use-jump-blocked #f
|
||||
:debug-draw-neck #f
|
||||
:jump-debug-draw #f
|
||||
:move-to-ground #t
|
||||
:hover-if-no-ground #f
|
||||
:idle-anim-script (new 'static 'array uint32 16
|
||||
#x1e0002
|
||||
#x6030501
|
||||
#x1e0002
|
||||
#x1010601
|
||||
#x1e0f0701
|
||||
#x1e0002
|
||||
#x4020501
|
||||
#x1e0002
|
||||
#x1010801
|
||||
#x140a0901
|
||||
#x1e0002
|
||||
#x2010501
|
||||
#x1e0002
|
||||
#x1010801
|
||||
#x1e0f0901
|
||||
#x0
|
||||
)
|
||||
:idle-anim 5
|
||||
:notice-anim 12
|
||||
:hostile-anim 14
|
||||
:hit-anim 5
|
||||
:knocked-anim 20
|
||||
:knocked-land-anim 21
|
||||
:die-anim 19
|
||||
:die-falling-anim 18
|
||||
:victory-anim 5
|
||||
:jump-wind-up-anim 5
|
||||
:jump-in-air-anim 5
|
||||
:jump-land-anim 5
|
||||
:neck-joint -1
|
||||
:look-at-joint 28
|
||||
:bullseye-joint 3
|
||||
:sound-hit (static-sound-name "flitter-hit")
|
||||
:sound-die (static-sound-name "flitter-die")
|
||||
:notice-distance (meters 40)
|
||||
:notice-distance-delta (meters 10)
|
||||
:proximity-notice-distance (meters 20)
|
||||
:default-hit-points 1
|
||||
:gnd-collide-with (collide-spec backgnd)
|
||||
:overlaps-others-collide-with-filter (collide-spec jak bot player-list)
|
||||
:penetrate-knocked #x11fffdffa
|
||||
:movement-gravity (meters -100)
|
||||
:friction 0.8
|
||||
:attack-shove-back (meters 6)
|
||||
:attack-shove-up (meters 3)
|
||||
:attack-mode 'generic
|
||||
:attack-damage 1
|
||||
:recover-gnd-collide-with (collide-spec backgnd crate obstacle hit-by-others-list pusher)
|
||||
:jump-height-min (meters 3)
|
||||
:jump-height-factor 0.5
|
||||
:knocked-seek-ry-clamp 2730.6667
|
||||
:knocked-soft-vxz-lo 72089.6
|
||||
:knocked-soft-vxz-hi 108134.4
|
||||
:knocked-soft-vy-lo 81920.0
|
||||
:knocked-soft-vy-hi 122880.0
|
||||
:knocked-medium-vxz-lo 147456.0
|
||||
:knocked-medium-vxz-hi 196608.0
|
||||
:knocked-medium-vy-lo 135168.0
|
||||
:knocked-medium-vy-hi 151552.0
|
||||
:knocked-hard-vxz-lo 78643.2
|
||||
:knocked-hard-vxz-hi 117964.8
|
||||
:knocked-hard-vy-lo 183500.8
|
||||
:knocked-hard-vy-hi 275251.2
|
||||
:knocked-huge-vxz-lo 164659.2
|
||||
:knocked-huge-vxz-hi 249036.8
|
||||
:knocked-huge-vy-lo 183500.8
|
||||
:knocked-huge-vy-hi 217907.2
|
||||
:knocked-yellow-vxz-lo 40960.0
|
||||
:knocked-yellow-vxz-hi 49152.0
|
||||
:knocked-yellow-vy-lo 57344.0
|
||||
:knocked-yellow-vy-hi 81920.0
|
||||
:knocked-red-vxz-lo 24576.0
|
||||
:knocked-red-vxz-hi 196608.0
|
||||
:knocked-red-vy-lo 94208.0
|
||||
:knocked-red-vy-hi 151552.0
|
||||
:knocked-blue-vxz-lo 40960.0
|
||||
:knocked-blue-vxz-hi 49152.0
|
||||
:knocked-blue-vy-lo 24576.0
|
||||
:knocked-blue-vy-hi 81920.0
|
||||
:shadow-size (meters 2)
|
||||
:shadow-max-y (meters 1)
|
||||
:shadow-min-y (meters -1)
|
||||
:shadow-locus-dist (meters 150)
|
||||
:gem-joint 28
|
||||
:gem-seg #x2
|
||||
:gem-no-seg #x4
|
||||
:gem-offset (new 'static 'sphere :y 696.32 :z 1843.2 :r 163840.0)
|
||||
:callback-info #f
|
||||
:use-momentum #f
|
||||
:use-frustration #t
|
||||
:use-stop-chase #f
|
||||
:use-circling #t
|
||||
:use-pacing #t
|
||||
:walk-anim 13
|
||||
:turn-anim 15
|
||||
:run-anim 14
|
||||
:taunt-anim -1
|
||||
:run-travel-speed (meters 12)
|
||||
:run-acceleration (meters 8)
|
||||
:run-turning-acceleration (meters 120)
|
||||
:walk-travel-speed (meters 4)
|
||||
:walk-acceleration (meters 1)
|
||||
:walk-turning-acceleration (meters 5)
|
||||
:maximum-rotation-rate (degrees 720.0)
|
||||
:notice-nav-radius (meters 5)
|
||||
:frustration-distance (meters 12)
|
||||
:frustration-time (seconds 4)
|
||||
:blocked-time (seconds 0.3)
|
||||
:circle-dist-lo 20480.0
|
||||
:circle-dist-hi 61440.0
|
||||
:nav-mesh #f
|
||||
)
|
||||
)
|
||||
(define *flitter-nav-enemy-info*
|
||||
(new 'static 'nav-enemy-info
|
||||
:use-die-falling #t
|
||||
:use-victory #f
|
||||
:use-jump-blocked #f
|
||||
:debug-draw-neck #f
|
||||
:jump-debug-draw #f
|
||||
:move-to-ground #t
|
||||
:hover-if-no-ground #f
|
||||
:idle-anim-script (new 'static 'array idle-control-frame 16
|
||||
(new 'static 'idle-control-frame :command #x2 :param0 #x1e)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x5 :param0 #x3 :param1 #x6)
|
||||
(new 'static 'idle-control-frame :command #x2 :param0 #x1e)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x6 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x7 :param0 #xf :param1 #x1e)
|
||||
(new 'static 'idle-control-frame :command #x2 :param0 #x1e)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x5 :param0 #x2 :param1 #x4)
|
||||
(new 'static 'idle-control-frame :command #x2 :param0 #x1e)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x8 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x9 :param0 #xa :param1 #x14)
|
||||
(new 'static 'idle-control-frame :command #x2 :param0 #x1e)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x5 :param0 #x1 :param1 #x2)
|
||||
(new 'static 'idle-control-frame :command #x2 :param0 #x1e)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x8 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x9 :param0 #xf :param1 #x1e)
|
||||
(new 'static 'idle-control-frame)
|
||||
)
|
||||
:idle-anim 5
|
||||
:notice-anim 12
|
||||
:hostile-anim 14
|
||||
:hit-anim 5
|
||||
:knocked-anim 20
|
||||
:knocked-land-anim 21
|
||||
:die-anim 19
|
||||
:die-falling-anim 18
|
||||
:victory-anim 5
|
||||
:jump-wind-up-anim 5
|
||||
:jump-in-air-anim 5
|
||||
:jump-land-anim 5
|
||||
:neck-joint -1
|
||||
:look-at-joint 28
|
||||
:bullseye-joint 3
|
||||
:sound-hit (static-sound-name "flitter-hit")
|
||||
:sound-die (static-sound-name "flitter-die")
|
||||
:notice-distance (meters 40)
|
||||
:notice-distance-delta (meters 10)
|
||||
:proximity-notice-distance (meters 20)
|
||||
:default-hit-points 1
|
||||
:gnd-collide-with (collide-spec backgnd)
|
||||
:overlaps-others-collide-with-filter (collide-spec jak bot player-list)
|
||||
:penetrate-knocked #x11fffdffa
|
||||
:movement-gravity (meters -100)
|
||||
:friction 0.8
|
||||
:attack-shove-back (meters 6)
|
||||
:attack-shove-up (meters 3)
|
||||
:attack-mode 'generic
|
||||
:attack-damage 1
|
||||
:recover-gnd-collide-with (collide-spec backgnd crate obstacle hit-by-others-list pusher)
|
||||
:jump-height-min (meters 3)
|
||||
:jump-height-factor 0.5
|
||||
:knocked-seek-ry-clamp 2730.6667
|
||||
:knocked-soft-vxz-lo 72089.6
|
||||
:knocked-soft-vxz-hi 108134.4
|
||||
:knocked-soft-vy-lo 81920.0
|
||||
:knocked-soft-vy-hi 122880.0
|
||||
:knocked-medium-vxz-lo 147456.0
|
||||
:knocked-medium-vxz-hi 196608.0
|
||||
:knocked-medium-vy-lo 135168.0
|
||||
:knocked-medium-vy-hi 151552.0
|
||||
:knocked-hard-vxz-lo 78643.2
|
||||
:knocked-hard-vxz-hi 117964.8
|
||||
:knocked-hard-vy-lo 183500.8
|
||||
:knocked-hard-vy-hi 275251.2
|
||||
:knocked-huge-vxz-lo 164659.2
|
||||
:knocked-huge-vxz-hi 249036.8
|
||||
:knocked-huge-vy-lo 183500.8
|
||||
:knocked-huge-vy-hi 217907.2
|
||||
:knocked-yellow-vxz-lo 40960.0
|
||||
:knocked-yellow-vxz-hi 49152.0
|
||||
:knocked-yellow-vy-lo 57344.0
|
||||
:knocked-yellow-vy-hi 81920.0
|
||||
:knocked-red-vxz-lo 24576.0
|
||||
:knocked-red-vxz-hi 196608.0
|
||||
:knocked-red-vy-lo 94208.0
|
||||
:knocked-red-vy-hi 151552.0
|
||||
:knocked-blue-vxz-lo 40960.0
|
||||
:knocked-blue-vxz-hi 49152.0
|
||||
:knocked-blue-vy-lo 24576.0
|
||||
:knocked-blue-vy-hi 81920.0
|
||||
:shadow-size (meters 2)
|
||||
:shadow-max-y (meters 1)
|
||||
:shadow-min-y (meters -1)
|
||||
:shadow-locus-dist (meters 150)
|
||||
:gem-joint 28
|
||||
:gem-seg #x2
|
||||
:gem-no-seg #x4
|
||||
:gem-offset (new 'static 'sphere :y 696.32 :z 1843.2 :r 163840.0)
|
||||
:callback-info #f
|
||||
:use-momentum #f
|
||||
:use-frustration #t
|
||||
:use-stop-chase #f
|
||||
:use-circling #t
|
||||
:use-pacing #t
|
||||
:walk-anim 13
|
||||
:turn-anim 15
|
||||
:run-anim 14
|
||||
:taunt-anim -1
|
||||
:run-travel-speed (meters 12)
|
||||
:run-acceleration (meters 8)
|
||||
:run-turning-acceleration (meters 120)
|
||||
:walk-travel-speed (meters 4)
|
||||
:walk-acceleration (meters 1)
|
||||
:walk-turning-acceleration (meters 5)
|
||||
:maximum-rotation-rate (degrees 720.0)
|
||||
:notice-nav-radius (meters 5)
|
||||
:frustration-distance (meters 12)
|
||||
:frustration-time (seconds 4)
|
||||
:blocked-time (seconds 0.3)
|
||||
:circle-dist-lo 20480.0
|
||||
:circle-dist-hi 61440.0
|
||||
:nav-mesh #f
|
||||
)
|
||||
)
|
||||
|
||||
(set! (-> *flitter-nav-enemy-info* fact-defaults) *fact-info-enemy-defaults*)
|
||||
|
||||
|
||||
@@ -126,148 +126,149 @@
|
||||
)
|
||||
)
|
||||
|
||||
(define *grunt-nav-enemy-info* (new 'static 'nav-enemy-info
|
||||
:use-die-falling #t
|
||||
:use-victory #f
|
||||
:use-jump-blocked #t
|
||||
:debug-draw-neck #f
|
||||
:jump-debug-draw #f
|
||||
:move-to-ground #t
|
||||
:hover-if-no-ground #f
|
||||
:idle-anim-script (new 'static 'array uint32 36
|
||||
#x1e0002
|
||||
#x3010501
|
||||
#x1e0002
|
||||
#x1010601
|
||||
#x691e0701
|
||||
#x3c0002
|
||||
#x3010501
|
||||
#x1e0002
|
||||
#x1010601
|
||||
#x691e0701
|
||||
#x1e0002
|
||||
#x1010801
|
||||
#x691e0901
|
||||
#x1010a01
|
||||
#x1e0002
|
||||
#x3010501
|
||||
#x1e0002
|
||||
#x1010801
|
||||
#x691e0901
|
||||
#x1010a01
|
||||
#x1e0002
|
||||
#x3010501
|
||||
#x1e0002
|
||||
#x1010601
|
||||
#x691e0701
|
||||
#x1e0002
|
||||
#x1010801
|
||||
#x691e0901
|
||||
#x1010a01
|
||||
#x1e0002
|
||||
#x3010501
|
||||
#x1e0002
|
||||
#x1011e01
|
||||
#x3c0002
|
||||
#x1010501
|
||||
#x0
|
||||
)
|
||||
:idle-anim 5
|
||||
:notice-anim 13
|
||||
:hostile-anim -1
|
||||
:hit-anim 34
|
||||
:knocked-anim -1
|
||||
:knocked-land-anim -1
|
||||
:die-anim 19
|
||||
:die-falling-anim 32
|
||||
:victory-anim -1
|
||||
:jump-wind-up-anim 45
|
||||
:jump-in-air-anim 46
|
||||
:jump-land-anim 47
|
||||
:neck-joint 5
|
||||
:look-at-joint 6
|
||||
:bullseye-joint 18
|
||||
:sound-hit (static-sound-name "grunt-hit")
|
||||
:sound-die (static-sound-name "grunt-die")
|
||||
:notice-distance (meters 40)
|
||||
:notice-distance-delta (meters 10)
|
||||
:proximity-notice-distance (meters 20)
|
||||
:default-hit-points 5
|
||||
:gnd-collide-with (collide-spec backgnd)
|
||||
:overlaps-others-collide-with-filter (collide-spec jak bot player-list)
|
||||
:penetrate-knocked #xffffffffffffffff
|
||||
:movement-gravity (meters -100)
|
||||
:friction 0.8
|
||||
:attack-shove-back (meters 5)
|
||||
:attack-shove-up (meters 3)
|
||||
:attack-mode 'generic
|
||||
:attack-damage 2
|
||||
:recover-gnd-collide-with (collide-spec backgnd crate obstacle hit-by-others-list pusher)
|
||||
:jump-height-min (meters 3)
|
||||
:jump-height-factor 0.5
|
||||
:knocked-seek-ry-clamp 6371.5557
|
||||
:knocked-soft-vxz-lo 72089.6
|
||||
:knocked-soft-vxz-hi 108134.4
|
||||
:knocked-soft-vy-lo 81920.0
|
||||
:knocked-soft-vy-hi 122880.0
|
||||
:knocked-medium-vxz-lo 147456.0
|
||||
:knocked-medium-vxz-hi 196608.0
|
||||
:knocked-medium-vy-lo 135168.0
|
||||
:knocked-medium-vy-hi 151552.0
|
||||
:knocked-hard-vxz-lo 78643.2
|
||||
:knocked-hard-vxz-hi 117964.8
|
||||
:knocked-hard-vy-lo 183500.8
|
||||
:knocked-hard-vy-hi 209715.2
|
||||
:knocked-huge-vxz-lo 164659.2
|
||||
:knocked-huge-vxz-hi 249036.8
|
||||
:knocked-huge-vy-lo 183500.8
|
||||
:knocked-huge-vy-hi 217907.2
|
||||
:knocked-yellow-vxz-lo 40960.0
|
||||
:knocked-yellow-vxz-hi 49152.0
|
||||
:knocked-yellow-vy-lo 57344.0
|
||||
:knocked-yellow-vy-hi 81920.0
|
||||
:knocked-red-vxz-lo 24576.0
|
||||
:knocked-red-vxz-hi 196608.0
|
||||
:knocked-red-vy-lo 94208.0
|
||||
:knocked-red-vy-hi 151552.0
|
||||
:knocked-blue-vxz-lo 40960.0
|
||||
:knocked-blue-vxz-hi 49152.0
|
||||
:knocked-blue-vy-lo 24576.0
|
||||
:knocked-blue-vy-hi 81920.0
|
||||
:shadow-size (meters 2)
|
||||
:shadow-max-y (meters 1)
|
||||
:shadow-min-y (meters -1)
|
||||
:shadow-locus-dist (meters 150)
|
||||
:gem-joint 6
|
||||
:gem-seg #x2
|
||||
:gem-no-seg #x4
|
||||
:gem-offset (new 'static 'sphere :y 614.4 :z -3276.8 :r 327680.0)
|
||||
:callback-info #f
|
||||
:use-momentum #t
|
||||
:use-frustration #t
|
||||
:use-stop-chase #t
|
||||
:use-circling #t
|
||||
:use-pacing #t
|
||||
:walk-anim 11
|
||||
:turn-anim -1
|
||||
:run-anim 14
|
||||
:taunt-anim 20
|
||||
:run-travel-speed (meters 7)
|
||||
:run-acceleration (meters 6)
|
||||
:run-turning-acceleration (meters 50)
|
||||
:walk-travel-speed (meters 4)
|
||||
:walk-acceleration (meters 6)
|
||||
:walk-turning-acceleration (meters 3)
|
||||
:maximum-rotation-rate (degrees 360.0)
|
||||
:notice-nav-radius (meters 2)
|
||||
:frustration-distance (meters 8)
|
||||
:frustration-time (seconds 4)
|
||||
:blocked-time (seconds 0.3)
|
||||
:circle-dist-lo 20480.0
|
||||
:circle-dist-hi 61440.0
|
||||
:nav-mesh #f
|
||||
)
|
||||
)
|
||||
(define *grunt-nav-enemy-info*
|
||||
(new 'static 'nav-enemy-info
|
||||
:use-die-falling #t
|
||||
:use-victory #f
|
||||
:use-jump-blocked #t
|
||||
:debug-draw-neck #f
|
||||
:jump-debug-draw #f
|
||||
:move-to-ground #t
|
||||
:hover-if-no-ground #f
|
||||
:idle-anim-script (new 'static 'array idle-control-frame 36
|
||||
(new 'static 'idle-control-frame :command #x2 :param0 #x1e)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x5 :param0 #x1 :param1 #x3)
|
||||
(new 'static 'idle-control-frame :command #x2 :param0 #x1e)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x6 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x7 :param0 #x1e :param1 #x69)
|
||||
(new 'static 'idle-control-frame :command #x2 :param0 #x3c)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x5 :param0 #x1 :param1 #x3)
|
||||
(new 'static 'idle-control-frame :command #x2 :param0 #x1e)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x6 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x7 :param0 #x1e :param1 #x69)
|
||||
(new 'static 'idle-control-frame :command #x2 :param0 #x1e)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x8 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x9 :param0 #x1e :param1 #x69)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #xa :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command #x2 :param0 #x1e)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x5 :param0 #x1 :param1 #x3)
|
||||
(new 'static 'idle-control-frame :command #x2 :param0 #x1e)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x8 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x9 :param0 #x1e :param1 #x69)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #xa :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command #x2 :param0 #x1e)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x5 :param0 #x1 :param1 #x3)
|
||||
(new 'static 'idle-control-frame :command #x2 :param0 #x1e)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x6 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x7 :param0 #x1e :param1 #x69)
|
||||
(new 'static 'idle-control-frame :command #x2 :param0 #x1e)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x8 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x9 :param0 #x1e :param1 #x69)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #xa :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command #x2 :param0 #x1e)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x5 :param0 #x1 :param1 #x3)
|
||||
(new 'static 'idle-control-frame :command #x2 :param0 #x1e)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x1e :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command #x2 :param0 #x3c)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x5 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame)
|
||||
)
|
||||
:idle-anim 5
|
||||
:notice-anim 13
|
||||
:hostile-anim -1
|
||||
:hit-anim 34
|
||||
:knocked-anim -1
|
||||
:knocked-land-anim -1
|
||||
:die-anim 19
|
||||
:die-falling-anim 32
|
||||
:victory-anim -1
|
||||
:jump-wind-up-anim 45
|
||||
:jump-in-air-anim 46
|
||||
:jump-land-anim 47
|
||||
:neck-joint 5
|
||||
:look-at-joint 6
|
||||
:bullseye-joint 18
|
||||
:sound-hit (static-sound-name "grunt-hit")
|
||||
:sound-die (static-sound-name "grunt-die")
|
||||
:notice-distance (meters 40)
|
||||
:notice-distance-delta (meters 10)
|
||||
:proximity-notice-distance (meters 20)
|
||||
:default-hit-points 5
|
||||
:gnd-collide-with (collide-spec backgnd)
|
||||
:overlaps-others-collide-with-filter (collide-spec jak bot player-list)
|
||||
:penetrate-knocked #xffffffffffffffff
|
||||
:movement-gravity (meters -100)
|
||||
:friction 0.8
|
||||
:attack-shove-back (meters 5)
|
||||
:attack-shove-up (meters 3)
|
||||
:attack-mode 'generic
|
||||
:attack-damage 2
|
||||
:recover-gnd-collide-with (collide-spec backgnd crate obstacle hit-by-others-list pusher)
|
||||
:jump-height-min (meters 3)
|
||||
:jump-height-factor 0.5
|
||||
:knocked-seek-ry-clamp 6371.5557
|
||||
:knocked-soft-vxz-lo 72089.6
|
||||
:knocked-soft-vxz-hi 108134.4
|
||||
:knocked-soft-vy-lo 81920.0
|
||||
:knocked-soft-vy-hi 122880.0
|
||||
:knocked-medium-vxz-lo 147456.0
|
||||
:knocked-medium-vxz-hi 196608.0
|
||||
:knocked-medium-vy-lo 135168.0
|
||||
:knocked-medium-vy-hi 151552.0
|
||||
:knocked-hard-vxz-lo 78643.2
|
||||
:knocked-hard-vxz-hi 117964.8
|
||||
:knocked-hard-vy-lo 183500.8
|
||||
:knocked-hard-vy-hi 209715.2
|
||||
:knocked-huge-vxz-lo 164659.2
|
||||
:knocked-huge-vxz-hi 249036.8
|
||||
:knocked-huge-vy-lo 183500.8
|
||||
:knocked-huge-vy-hi 217907.2
|
||||
:knocked-yellow-vxz-lo 40960.0
|
||||
:knocked-yellow-vxz-hi 49152.0
|
||||
:knocked-yellow-vy-lo 57344.0
|
||||
:knocked-yellow-vy-hi 81920.0
|
||||
:knocked-red-vxz-lo 24576.0
|
||||
:knocked-red-vxz-hi 196608.0
|
||||
:knocked-red-vy-lo 94208.0
|
||||
:knocked-red-vy-hi 151552.0
|
||||
:knocked-blue-vxz-lo 40960.0
|
||||
:knocked-blue-vxz-hi 49152.0
|
||||
:knocked-blue-vy-lo 24576.0
|
||||
:knocked-blue-vy-hi 81920.0
|
||||
:shadow-size (meters 2)
|
||||
:shadow-max-y (meters 1)
|
||||
:shadow-min-y (meters -1)
|
||||
:shadow-locus-dist (meters 150)
|
||||
:gem-joint 6
|
||||
:gem-seg #x2
|
||||
:gem-no-seg #x4
|
||||
:gem-offset (new 'static 'sphere :y 614.4 :z -3276.8 :r 327680.0)
|
||||
:callback-info #f
|
||||
:use-momentum #t
|
||||
:use-frustration #t
|
||||
:use-stop-chase #t
|
||||
:use-circling #t
|
||||
:use-pacing #t
|
||||
:walk-anim 11
|
||||
:turn-anim -1
|
||||
:run-anim 14
|
||||
:taunt-anim 20
|
||||
:run-travel-speed (meters 7)
|
||||
:run-acceleration (meters 6)
|
||||
:run-turning-acceleration (meters 50)
|
||||
:walk-travel-speed (meters 4)
|
||||
:walk-acceleration (meters 6)
|
||||
:walk-turning-acceleration (meters 3)
|
||||
:maximum-rotation-rate (degrees 360.0)
|
||||
:notice-nav-radius (meters 2)
|
||||
:frustration-distance (meters 8)
|
||||
:frustration-time (seconds 4)
|
||||
:blocked-time (seconds 0.3)
|
||||
:circle-dist-lo 20480.0
|
||||
:circle-dist-hi 61440.0
|
||||
:nav-mesh #f
|
||||
)
|
||||
)
|
||||
|
||||
(set! (-> *grunt-nav-enemy-info* fact-defaults) *fact-info-enemy-defaults*)
|
||||
|
||||
|
||||
@@ -168,108 +168,114 @@
|
||||
(new 'static 'ginsu-global-info :blue-hit-anim (new 'static 'array int32 3 5 5 5))
|
||||
)
|
||||
|
||||
(define *ginsu-nav-enemy-info* (new 'static 'nav-enemy-info
|
||||
:use-die-falling #t
|
||||
:use-victory #f
|
||||
:use-jump-blocked #t
|
||||
:debug-draw-neck #f
|
||||
:jump-debug-draw #f
|
||||
:move-to-ground #t
|
||||
:hover-if-no-ground #f
|
||||
:idle-anim-script (new 'static 'array uint32 4 #x1010501 #x0 #x0 #x0)
|
||||
:idle-anim 5
|
||||
:notice-anim 10
|
||||
:hostile-anim 5
|
||||
:hit-anim 5
|
||||
:knocked-anim 11
|
||||
:knocked-land-anim 12
|
||||
:die-anim 11
|
||||
:die-falling-anim 5
|
||||
:victory-anim 5
|
||||
:jump-wind-up-anim 5
|
||||
:jump-in-air-anim 5
|
||||
:jump-land-anim 5
|
||||
:neck-joint 7
|
||||
:look-at-joint 7
|
||||
:bullseye-joint 4
|
||||
:sound-die (static-sound-name "ginsu-die")
|
||||
:notice-distance (meters 40)
|
||||
:notice-distance-delta (meters 10)
|
||||
:proximity-notice-distance (meters 40)
|
||||
:default-hit-points 1
|
||||
:gnd-collide-with (collide-spec backgnd)
|
||||
:overlaps-others-collide-with-filter (collide-spec jak bot enemy hit-by-others-list player-list)
|
||||
:penetrate-knocked #x11fffdffa
|
||||
:movement-gravity (meters -100)
|
||||
:friction 0.8
|
||||
:attack-shove-back (meters 3)
|
||||
:attack-shove-up (meters 2)
|
||||
:attack-mode 'generic
|
||||
:attack-damage 2
|
||||
:recover-gnd-collide-with (collide-spec backgnd crate obstacle hit-by-others-list pusher)
|
||||
:jump-height-min (meters 3)
|
||||
:jump-height-factor 0.5
|
||||
:knocked-seek-ry-clamp 4551.1113
|
||||
:knocked-soft-vxz-lo 72089.6
|
||||
:knocked-soft-vxz-hi 108134.4
|
||||
:knocked-soft-vy-lo 81920.0
|
||||
:knocked-soft-vy-hi 122880.0
|
||||
:knocked-medium-vxz-lo 147456.0
|
||||
:knocked-medium-vxz-hi 196608.0
|
||||
:knocked-medium-vy-lo 135168.0
|
||||
:knocked-medium-vy-hi 151552.0
|
||||
:knocked-hard-vxz-lo 78643.2
|
||||
:knocked-hard-vxz-hi 117964.8
|
||||
:knocked-hard-vy-lo 183500.8
|
||||
:knocked-hard-vy-hi 209715.2
|
||||
:knocked-huge-vxz-lo 164659.2
|
||||
:knocked-huge-vxz-hi 249036.8
|
||||
:knocked-huge-vy-lo 183500.8
|
||||
:knocked-huge-vy-hi 217907.2
|
||||
:knocked-yellow-vxz-lo 40960.0
|
||||
:knocked-yellow-vxz-hi 49152.0
|
||||
:knocked-yellow-vy-lo 57344.0
|
||||
:knocked-yellow-vy-hi 81920.0
|
||||
:knocked-red-vxz-lo 24576.0
|
||||
:knocked-red-vxz-hi 196608.0
|
||||
:knocked-red-vy-lo 94208.0
|
||||
:knocked-red-vy-hi 151552.0
|
||||
:knocked-blue-vxz-lo 40960.0
|
||||
:knocked-blue-vxz-hi 49152.0
|
||||
:knocked-blue-vy-lo 24576.0
|
||||
:knocked-blue-vy-hi 81920.0
|
||||
:shadow-size (meters 2)
|
||||
:shadow-max-y (meters 1)
|
||||
:shadow-min-y (meters -1)
|
||||
:shadow-locus-dist (meters 150)
|
||||
:gem-joint 7
|
||||
:gem-offset (new 'static 'sphere :r 163840.0)
|
||||
:callback-info #f
|
||||
:use-momentum #f
|
||||
:use-frustration #t
|
||||
:use-stop-chase #f
|
||||
:use-circling #t
|
||||
:use-pacing #t
|
||||
:walk-anim 5
|
||||
:turn-anim 5
|
||||
:run-anim 5
|
||||
:taunt-anim -1
|
||||
:run-travel-speed (meters 16)
|
||||
:run-acceleration (meters 1)
|
||||
:run-turning-acceleration (meters 100)
|
||||
:walk-travel-speed (meters 16)
|
||||
:walk-acceleration (meters 1)
|
||||
:walk-turning-acceleration (meters 3)
|
||||
:maximum-rotation-rate (degrees 360.0)
|
||||
:notice-nav-radius (meters 1.5)
|
||||
:frustration-distance (meters 8)
|
||||
:frustration-time (seconds 4)
|
||||
:blocked-time (seconds 0.3)
|
||||
:circle-dist-lo 20480.0
|
||||
:circle-dist-hi 61440.0
|
||||
:nav-mesh #f
|
||||
)
|
||||
)
|
||||
(define *ginsu-nav-enemy-info*
|
||||
(new 'static 'nav-enemy-info
|
||||
:use-die-falling #t
|
||||
:use-victory #f
|
||||
:use-jump-blocked #t
|
||||
:debug-draw-neck #f
|
||||
:jump-debug-draw #f
|
||||
:move-to-ground #t
|
||||
:hover-if-no-ground #f
|
||||
:idle-anim-script (new 'static 'array idle-control-frame 4
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x5 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
)
|
||||
:idle-anim 5
|
||||
:notice-anim 10
|
||||
:hostile-anim 5
|
||||
:hit-anim 5
|
||||
:knocked-anim 11
|
||||
:knocked-land-anim 12
|
||||
:die-anim 11
|
||||
:die-falling-anim 5
|
||||
:victory-anim 5
|
||||
:jump-wind-up-anim 5
|
||||
:jump-in-air-anim 5
|
||||
:jump-land-anim 5
|
||||
:neck-joint 7
|
||||
:look-at-joint 7
|
||||
:bullseye-joint 4
|
||||
:sound-die (static-sound-name "ginsu-die")
|
||||
:notice-distance (meters 40)
|
||||
:notice-distance-delta (meters 10)
|
||||
:proximity-notice-distance (meters 40)
|
||||
:default-hit-points 1
|
||||
:gnd-collide-with (collide-spec backgnd)
|
||||
:overlaps-others-collide-with-filter (collide-spec jak bot enemy hit-by-others-list player-list)
|
||||
:penetrate-knocked #x11fffdffa
|
||||
:movement-gravity (meters -100)
|
||||
:friction 0.8
|
||||
:attack-shove-back (meters 3)
|
||||
:attack-shove-up (meters 2)
|
||||
:attack-mode 'generic
|
||||
:attack-damage 2
|
||||
:recover-gnd-collide-with (collide-spec backgnd crate obstacle hit-by-others-list pusher)
|
||||
:jump-height-min (meters 3)
|
||||
:jump-height-factor 0.5
|
||||
:knocked-seek-ry-clamp 4551.1113
|
||||
:knocked-soft-vxz-lo 72089.6
|
||||
:knocked-soft-vxz-hi 108134.4
|
||||
:knocked-soft-vy-lo 81920.0
|
||||
:knocked-soft-vy-hi 122880.0
|
||||
:knocked-medium-vxz-lo 147456.0
|
||||
:knocked-medium-vxz-hi 196608.0
|
||||
:knocked-medium-vy-lo 135168.0
|
||||
:knocked-medium-vy-hi 151552.0
|
||||
:knocked-hard-vxz-lo 78643.2
|
||||
:knocked-hard-vxz-hi 117964.8
|
||||
:knocked-hard-vy-lo 183500.8
|
||||
:knocked-hard-vy-hi 209715.2
|
||||
:knocked-huge-vxz-lo 164659.2
|
||||
:knocked-huge-vxz-hi 249036.8
|
||||
:knocked-huge-vy-lo 183500.8
|
||||
:knocked-huge-vy-hi 217907.2
|
||||
:knocked-yellow-vxz-lo 40960.0
|
||||
:knocked-yellow-vxz-hi 49152.0
|
||||
:knocked-yellow-vy-lo 57344.0
|
||||
:knocked-yellow-vy-hi 81920.0
|
||||
:knocked-red-vxz-lo 24576.0
|
||||
:knocked-red-vxz-hi 196608.0
|
||||
:knocked-red-vy-lo 94208.0
|
||||
:knocked-red-vy-hi 151552.0
|
||||
:knocked-blue-vxz-lo 40960.0
|
||||
:knocked-blue-vxz-hi 49152.0
|
||||
:knocked-blue-vy-lo 24576.0
|
||||
:knocked-blue-vy-hi 81920.0
|
||||
:shadow-size (meters 2)
|
||||
:shadow-max-y (meters 1)
|
||||
:shadow-min-y (meters -1)
|
||||
:shadow-locus-dist (meters 150)
|
||||
:gem-joint 7
|
||||
:gem-offset (new 'static 'sphere :r 163840.0)
|
||||
:callback-info #f
|
||||
:use-momentum #f
|
||||
:use-frustration #t
|
||||
:use-stop-chase #f
|
||||
:use-circling #t
|
||||
:use-pacing #t
|
||||
:walk-anim 5
|
||||
:turn-anim 5
|
||||
:run-anim 5
|
||||
:taunt-anim -1
|
||||
:run-travel-speed (meters 16)
|
||||
:run-acceleration (meters 1)
|
||||
:run-turning-acceleration (meters 100)
|
||||
:walk-travel-speed (meters 16)
|
||||
:walk-acceleration (meters 1)
|
||||
:walk-turning-acceleration (meters 3)
|
||||
:maximum-rotation-rate (degrees 360.0)
|
||||
:notice-nav-radius (meters 1.5)
|
||||
:frustration-distance (meters 8)
|
||||
:frustration-time (seconds 4)
|
||||
:blocked-time (seconds 0.3)
|
||||
:circle-dist-lo 20480.0
|
||||
:circle-dist-hi 61440.0
|
||||
:nav-mesh #f
|
||||
)
|
||||
)
|
||||
|
||||
(set! (-> *ginsu-nav-enemy-info* fact-defaults) *fact-info-enemy-defaults*)
|
||||
|
||||
|
||||
@@ -59,88 +59,94 @@
|
||||
)
|
||||
|
||||
|
||||
(defskelgroup skel-pegasus pegasus 0 5
|
||||
((1 (meters 20)) (2 (meters 40)) (3 (meters 999999)))
|
||||
(defskelgroup skel-pegasus pegasus pegasus-lod0-jg pegasus-idle-ja
|
||||
((pegasus-lod0-mg (meters 20)) (pegasus-lod1-mg (meters 40)) (pegasus-lod2-mg (meters 999999)))
|
||||
:bounds (static-spherem 0 0 0 4)
|
||||
:shadow 4
|
||||
:shadow pegasus-shadow-mg
|
||||
)
|
||||
|
||||
(define *pegasus-enemy-info* (new 'static 'enemy-info
|
||||
:use-die-falling #f
|
||||
:use-victory #f
|
||||
:use-jump-blocked #f
|
||||
:debug-draw-neck #f
|
||||
:jump-debug-draw #f
|
||||
:move-to-ground #f
|
||||
:hover-if-no-ground #f
|
||||
:idle-anim-script (new 'static 'array uint32 4 #x1010501 #x0 #x0 #x0)
|
||||
:idle-anim 5
|
||||
:notice-anim 6
|
||||
:hostile-anim 8
|
||||
:hit-anim 5
|
||||
:knocked-anim -1
|
||||
:knocked-land-anim -1
|
||||
:die-anim 15
|
||||
:die-falling-anim -1
|
||||
:victory-anim -1
|
||||
:jump-wind-up-anim -1
|
||||
:jump-in-air-anim -1
|
||||
:jump-land-anim -1
|
||||
:neck-joint -1
|
||||
:sound-die (static-sound-name "pegasus-die")
|
||||
:notice-distance (meters 45)
|
||||
:notice-distance-delta (meters 30)
|
||||
:proximity-notice-distance (meters 55)
|
||||
:default-hit-points 6
|
||||
:gnd-collide-with (collide-spec backgnd)
|
||||
:overlaps-others-collide-with-filter (collide-spec jak bot player-list)
|
||||
:movement-gravity (meters -100)
|
||||
:friction 0.8
|
||||
:attack-shove-back (meters 3)
|
||||
:attack-shove-up (meters 2)
|
||||
:attack-mode 'generic
|
||||
:attack-damage 2
|
||||
:jump-height-min (meters 3)
|
||||
:jump-height-factor 0.5
|
||||
:knocked-seek-ry-clamp 2730.6667
|
||||
:knocked-soft-vxz-lo 72089.6
|
||||
:knocked-soft-vxz-hi 108134.4
|
||||
:knocked-soft-vy-lo 81920.0
|
||||
:knocked-soft-vy-hi 122880.0
|
||||
:knocked-medium-vxz-lo 147456.0
|
||||
:knocked-medium-vxz-hi 196608.0
|
||||
:knocked-medium-vy-lo 135168.0
|
||||
:knocked-medium-vy-hi 151552.0
|
||||
:knocked-hard-vxz-lo 78643.2
|
||||
:knocked-hard-vxz-hi 117964.8
|
||||
:knocked-hard-vy-lo 183500.8
|
||||
:knocked-hard-vy-hi 209715.2
|
||||
:knocked-huge-vxz-lo 164659.2
|
||||
:knocked-huge-vxz-hi 249036.8
|
||||
:knocked-huge-vy-lo 183500.8
|
||||
:knocked-huge-vy-hi 217907.2
|
||||
:knocked-yellow-vxz-lo 40960.0
|
||||
:knocked-yellow-vxz-hi 49152.0
|
||||
:knocked-yellow-vy-lo 57344.0
|
||||
:knocked-yellow-vy-hi 81920.0
|
||||
:knocked-red-vxz-lo 24576.0
|
||||
:knocked-red-vxz-hi 196608.0
|
||||
:knocked-red-vy-lo 94208.0
|
||||
:knocked-red-vy-hi 151552.0
|
||||
:knocked-blue-vxz-lo 40960.0
|
||||
:knocked-blue-vxz-hi 49152.0
|
||||
:knocked-blue-vy-lo 24576.0
|
||||
:knocked-blue-vy-hi 81920.0
|
||||
:shadow-size (meters 1)
|
||||
:shadow-max-y (meters 1)
|
||||
:shadow-min-y (meters -1)
|
||||
:shadow-locus-dist (meters 150)
|
||||
:gem-joint 9
|
||||
:gem-seg #x2
|
||||
:gem-no-seg #x4
|
||||
:gem-offset (new 'static 'sphere :y 942.08 :z 40.96 :r 163840.0)
|
||||
)
|
||||
)
|
||||
(define *pegasus-enemy-info*
|
||||
(new 'static 'enemy-info
|
||||
:use-die-falling #f
|
||||
:use-victory #f
|
||||
:use-jump-blocked #f
|
||||
:debug-draw-neck #f
|
||||
:jump-debug-draw #f
|
||||
:move-to-ground #f
|
||||
:hover-if-no-ground #f
|
||||
:idle-anim-script (new 'static 'array idle-control-frame 4
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x5 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
)
|
||||
:idle-anim 5
|
||||
:notice-anim 6
|
||||
:hostile-anim 8
|
||||
:hit-anim 5
|
||||
:knocked-anim -1
|
||||
:knocked-land-anim -1
|
||||
:die-anim 15
|
||||
:die-falling-anim -1
|
||||
:victory-anim -1
|
||||
:jump-wind-up-anim -1
|
||||
:jump-in-air-anim -1
|
||||
:jump-land-anim -1
|
||||
:neck-joint -1
|
||||
:sound-die (static-sound-name "pegasus-die")
|
||||
:notice-distance (meters 45)
|
||||
:notice-distance-delta (meters 30)
|
||||
:proximity-notice-distance (meters 55)
|
||||
:default-hit-points 6
|
||||
:gnd-collide-with (collide-spec backgnd)
|
||||
:overlaps-others-collide-with-filter (collide-spec jak bot player-list)
|
||||
:movement-gravity (meters -100)
|
||||
:friction 0.8
|
||||
:attack-shove-back (meters 3)
|
||||
:attack-shove-up (meters 2)
|
||||
:attack-mode 'generic
|
||||
:attack-damage 2
|
||||
:jump-height-min (meters 3)
|
||||
:jump-height-factor 0.5
|
||||
:knocked-seek-ry-clamp 2730.6667
|
||||
:knocked-soft-vxz-lo 72089.6
|
||||
:knocked-soft-vxz-hi 108134.4
|
||||
:knocked-soft-vy-lo 81920.0
|
||||
:knocked-soft-vy-hi 122880.0
|
||||
:knocked-medium-vxz-lo 147456.0
|
||||
:knocked-medium-vxz-hi 196608.0
|
||||
:knocked-medium-vy-lo 135168.0
|
||||
:knocked-medium-vy-hi 151552.0
|
||||
:knocked-hard-vxz-lo 78643.2
|
||||
:knocked-hard-vxz-hi 117964.8
|
||||
:knocked-hard-vy-lo 183500.8
|
||||
:knocked-hard-vy-hi 209715.2
|
||||
:knocked-huge-vxz-lo 164659.2
|
||||
:knocked-huge-vxz-hi 249036.8
|
||||
:knocked-huge-vy-lo 183500.8
|
||||
:knocked-huge-vy-hi 217907.2
|
||||
:knocked-yellow-vxz-lo 40960.0
|
||||
:knocked-yellow-vxz-hi 49152.0
|
||||
:knocked-yellow-vy-lo 57344.0
|
||||
:knocked-yellow-vy-hi 81920.0
|
||||
:knocked-red-vxz-lo 24576.0
|
||||
:knocked-red-vxz-hi 196608.0
|
||||
:knocked-red-vy-lo 94208.0
|
||||
:knocked-red-vy-hi 151552.0
|
||||
:knocked-blue-vxz-lo 40960.0
|
||||
:knocked-blue-vxz-hi 49152.0
|
||||
:knocked-blue-vy-lo 24576.0
|
||||
:knocked-blue-vy-hi 81920.0
|
||||
:shadow-size (meters 1)
|
||||
:shadow-max-y (meters 1)
|
||||
:shadow-min-y (meters -1)
|
||||
:shadow-locus-dist (meters 150)
|
||||
:gem-joint 9
|
||||
:gem-seg #x2
|
||||
:gem-no-seg #x4
|
||||
:gem-offset (new 'static 'sphere :y 942.08 :z 40.96 :r 163840.0)
|
||||
)
|
||||
)
|
||||
|
||||
(set! (-> *pegasus-enemy-info* fact-defaults) *fact-info-enemy-defaults*)
|
||||
|
||||
@@ -592,7 +598,7 @@
|
||||
)
|
||||
(let ((v1-22 (ja-group)))
|
||||
(cond
|
||||
((and v1-22 (= v1-22 (-> self draw art-group data 13)))
|
||||
((and v1-22 (= v1-22 pegasus-flip-around-a-ja))
|
||||
(if (< 1.0 (fabs (-> self speed)))
|
||||
(set! (-> self speed) (* 0.92 (-> self speed)))
|
||||
)
|
||||
@@ -600,7 +606,7 @@
|
||||
(else
|
||||
(let ((v1-31 (ja-group)))
|
||||
(cond
|
||||
((and v1-31 (= v1-31 (-> self draw art-group data 14)))
|
||||
((and v1-31 (= v1-31 pegasus-flip-around-b-ja))
|
||||
(if (< (-> self speed) 0.0)
|
||||
(seek! (-> self speed) (- f0-6) 13.653334)
|
||||
(seek! (-> self speed) f0-6 13.653334)
|
||||
@@ -699,14 +705,14 @@
|
||||
(-> self speed)
|
||||
(ja-channel-push! 1 (seconds 0.1))
|
||||
(let ((a0-7 (-> self skel root-channel 0)))
|
||||
(set! (-> a0-7 frame-group) (the-as art-joint-anim (-> self draw art-group data 20)))
|
||||
(set! (-> a0-7 frame-group) (the-as art-joint-anim pegasus-board-attack-pegasus-ja))
|
||||
(set! (-> a0-7 param 0)
|
||||
(the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 20)) frames num-frames) -1))
|
||||
(the float (+ (-> (the-as art-joint-anim pegasus-board-attack-pegasus-ja) frames num-frames) -1))
|
||||
)
|
||||
(set! (-> a0-7 param 1) 1.5)
|
||||
(set! (-> a0-7 frame-num) 0.0)
|
||||
(let ((t9-3 joint-control-channel-group!)
|
||||
(a1-3 (-> self draw art-group data 20))
|
||||
(a1-3 pegasus-board-attack-pegasus-ja)
|
||||
(a2-2 (the-as object num-func-seek!))
|
||||
)
|
||||
(t9-3
|
||||
@@ -788,9 +794,9 @@
|
||||
)
|
||||
:code (behavior ()
|
||||
(let ((v1-2 (ja-group)))
|
||||
(when (not (and v1-2 (= v1-2 (-> self draw art-group data 8))))
|
||||
(when (not (and v1-2 (= v1-2 pegasus-fly-ja)))
|
||||
(ja-channel-push! 1 (seconds 0.2))
|
||||
(ja :group! (-> self draw art-group data 8))
|
||||
(ja :group! pegasus-fly-ja)
|
||||
)
|
||||
)
|
||||
(until #f
|
||||
@@ -883,15 +889,15 @@
|
||||
)
|
||||
(let ((a0-13 (ja-group)))
|
||||
(when (not (and a0-13 (begin
|
||||
(set! a2-3 (= a0-13 (-> self draw art-group data 10)))
|
||||
(set! a2-3 (= a0-13 pegasus-fly-glide-ja))
|
||||
(or (the-as symbol a2-3)
|
||||
(begin (set! a2-3 (= a0-13 (-> self draw art-group data 9))) (the-as symbol a2-3))
|
||||
(begin (set! a2-3 (= a0-13 (-> self draw art-group data 8))) (the-as symbol a2-3))
|
||||
(begin (set! a2-3 (= a0-13 (-> self draw art-group data 13))) (the-as symbol a2-3))
|
||||
(begin (set! a2-3 (= a0-13 (-> self draw art-group data 14))) (the-as symbol a2-3))
|
||||
(begin (set! a2-3 (= a0-13 (-> self draw art-group data 16))) (the-as symbol a2-3))
|
||||
(begin (set! a2-3 (= a0-13 (-> self draw art-group data 17))) (the-as symbol a2-3))
|
||||
(= a0-13 (-> self draw art-group data 18))
|
||||
(begin (set! a2-3 (= a0-13 pegasus-fly-doublespeed-ja)) (the-as symbol a2-3))
|
||||
(begin (set! a2-3 (= a0-13 pegasus-fly-ja)) (the-as symbol a2-3))
|
||||
(begin (set! a2-3 (= a0-13 pegasus-flip-around-a-ja)) (the-as symbol a2-3))
|
||||
(begin (set! a2-3 (= a0-13 pegasus-flip-around-b-ja)) (the-as symbol a2-3))
|
||||
(begin (set! a2-3 (= a0-13 pegasus-fly-to-run-ja)) (the-as symbol a2-3))
|
||||
(begin (set! a2-3 (= a0-13 pegasus-run-ja)) (the-as symbol a2-3))
|
||||
(= a0-13 pegasus-run-to-fly-ja)
|
||||
)
|
||||
)
|
||||
)
|
||||
@@ -903,15 +909,15 @@
|
||||
(cond
|
||||
((and s4-0 (let ((a0-21 (ja-group)))
|
||||
(not (and a0-21 (begin
|
||||
(set! a2-3 (= a0-21 (-> self draw art-group data 13)))
|
||||
(or (the-as symbol a2-3) (= a0-21 (-> self draw art-group data 14)))
|
||||
(set! a2-3 (= a0-21 pegasus-flip-around-a-ja))
|
||||
(or (the-as symbol a2-3) (= a0-21 pegasus-flip-around-b-ja))
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(ja-channel-push! 1 (seconds 0.125))
|
||||
(ja :group! (-> self draw art-group data 13))
|
||||
(ja :group! pegasus-flip-around-a-ja)
|
||||
(ja :num-func num-func-identity :frame-num 0.0)
|
||||
)
|
||||
((and (not v1-34) (not (ja-done? 0)))
|
||||
@@ -919,14 +925,14 @@
|
||||
(else
|
||||
(let ((v1-46 (ja-group)))
|
||||
(cond
|
||||
((and v1-46 (= v1-46 (-> self draw art-group data 16)))
|
||||
(ja :group! (-> self draw art-group data 17))
|
||||
((and v1-46 (= v1-46 pegasus-fly-to-run-ja))
|
||||
(ja :group! pegasus-run-ja)
|
||||
(ja :num-func num-func-identity :frame-num 0.0)
|
||||
)
|
||||
((let ((v1-58 (ja-group)))
|
||||
(and v1-58 (= v1-58 (-> self draw art-group data 13)))
|
||||
(and v1-58 (= v1-58 pegasus-flip-around-a-ja))
|
||||
)
|
||||
(ja :group! (-> self draw art-group data 14) :num! min)
|
||||
(ja :group! pegasus-flip-around-b-ja :num! min)
|
||||
(set! (-> self speed) (- (-> self speed)))
|
||||
(let ((s5-3 (new 'stack-no-clear 'vector))
|
||||
(s4-1 (new 'stack-no-clear 'matrix))
|
||||
@@ -941,16 +947,16 @@
|
||||
(vector-matrix*! (-> self facing) (-> self facing) (the-as matrix a2-3))
|
||||
)
|
||||
((let ((v1-72 (ja-group)))
|
||||
(and v1-72 (= v1-72 (-> self draw art-group data 17)))
|
||||
(and v1-72 (= v1-72 pegasus-run-ja))
|
||||
)
|
||||
(if (or (not (-> self can-run)) (< (the-as time-frame (-> self ambient-expire)) (-> self clock frame-counter)))
|
||||
(ja :group! (-> self draw art-group data 18))
|
||||
(ja :group! pegasus-run-to-fly-ja)
|
||||
)
|
||||
(ja :num-func num-func-identity :frame-num 0.0)
|
||||
)
|
||||
((and gp-0 (-> self on-ground))
|
||||
(ja-channel-push! 1 (seconds 0.125))
|
||||
(ja :group! (-> self draw art-group data 16))
|
||||
(ja :group! pegasus-fly-to-run-ja)
|
||||
(ja :num-func num-func-identity :frame-num 0.0)
|
||||
(let* ((s5-4 (-> self clock frame-counter))
|
||||
(f30-1 300.0)
|
||||
@@ -979,27 +985,27 @@
|
||||
(and (< 0.0 (-> self speed)) (< (-> self tangent y) -0.125))
|
||||
)
|
||||
(let ((v1-121 (ja-group)))
|
||||
(when (not (and v1-121 (= v1-121 (-> self draw art-group data 10))))
|
||||
(when (not (and v1-121 (= v1-121 pegasus-fly-glide-ja)))
|
||||
(ja-channel-push! 1 (the-as time-frame s5-1))
|
||||
(ja :group! (-> self draw art-group data 10))
|
||||
(ja :group! pegasus-fly-glide-ja)
|
||||
)
|
||||
)
|
||||
(ja :num-func num-func-identity :frame-num 0.0)
|
||||
)
|
||||
((< 1.25 f30-0)
|
||||
(let ((v1-135 (ja-group)))
|
||||
(when (not (and v1-135 (= v1-135 (-> self draw art-group data 9))))
|
||||
(when (not (and v1-135 (= v1-135 pegasus-fly-doublespeed-ja)))
|
||||
(ja-channel-push! 1 (the-as time-frame s5-1))
|
||||
(ja :group! (-> self draw art-group data 9))
|
||||
(ja :group! pegasus-fly-doublespeed-ja)
|
||||
)
|
||||
)
|
||||
(ja :num-func num-func-identity :frame-num 0.0)
|
||||
)
|
||||
(else
|
||||
(let ((v1-148 (ja-group)))
|
||||
(when (not (and v1-148 (= v1-148 (-> self draw art-group data 8))))
|
||||
(when (not (and v1-148 (= v1-148 pegasus-fly-ja)))
|
||||
(ja-channel-push! 1 (the-as time-frame s5-1))
|
||||
(ja :group! (-> self draw art-group data 8))
|
||||
(ja :group! pegasus-fly-ja)
|
||||
)
|
||||
)
|
||||
(ja :num-func num-func-identity :frame-num 0.0)
|
||||
@@ -1014,13 +1020,12 @@
|
||||
0.0
|
||||
(the-as
|
||||
symbol
|
||||
(or gp-0 (let ((v1-161 (ja-group)))
|
||||
(and v1-161 (begin
|
||||
(set! a2-3 (= v1-161 (-> self draw art-group data 16)))
|
||||
(or (the-as symbol a2-3) (= v1-161 (-> self draw art-group data 17)))
|
||||
)
|
||||
)
|
||||
(or gp-0
|
||||
(let ((v1-161 (ja-group)))
|
||||
(and v1-161
|
||||
(begin (set! a2-3 (= v1-161 pegasus-fly-to-run-ja)) (or (the-as symbol a2-3) (= v1-161 pegasus-run-ja)))
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(the-as symbol a2-3)
|
||||
@@ -1157,10 +1162,10 @@
|
||||
:code (behavior ()
|
||||
(set! (-> self allow-idle) #f)
|
||||
(let ((v1-2 (ja-group)))
|
||||
(when (not (and v1-2 (= v1-2 (-> self draw art-group data 5))))
|
||||
(when (not (and v1-2 (= v1-2 pegasus-idle-ja)))
|
||||
(ja-channel-push! 1 (seconds 0.1))
|
||||
(ja-no-eval :group! (-> self draw art-group data 19)
|
||||
:num! (seek! (the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 19)) frames num-frames) -1)))
|
||||
(ja-no-eval :group! pegasus-fly-to-idle-ja
|
||||
:num! (seek! (the float (+ (-> (the-as art-joint-anim pegasus-fly-to-idle-ja) frames num-frames) -1)))
|
||||
:frame-num 0.0
|
||||
)
|
||||
(until (ja-done? 0)
|
||||
@@ -1233,11 +1238,8 @@
|
||||
(suspend)
|
||||
(ja :num! (seek! max f30-0))
|
||||
)
|
||||
(ja-no-eval :group! (-> self draw art-group data 7)
|
||||
:num! (seek!
|
||||
(the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 7)) frames num-frames) -1))
|
||||
f30-0
|
||||
)
|
||||
(ja-no-eval :group! pegasus-idle-takeoff-in-air-ja
|
||||
:num! (seek! (the float (+ (-> (the-as art-joint-anim pegasus-idle-takeoff-in-air-ja) frames num-frames) -1)) f30-0)
|
||||
:frame-num 0.0
|
||||
)
|
||||
(until (ja-done? 0)
|
||||
|
||||
@@ -231,109 +231,115 @@
|
||||
)
|
||||
|
||||
|
||||
(define *predator-nav-enemy-info* (new 'static 'nav-enemy-info
|
||||
:use-die-falling #f
|
||||
:use-victory #f
|
||||
:use-jump-blocked #f
|
||||
:debug-draw-neck #f
|
||||
:jump-debug-draw #f
|
||||
:move-to-ground #t
|
||||
:hover-if-no-ground #f
|
||||
:idle-anim-script (new 'static 'array uint32 4 #x1010501 #x0 #x0 #x0)
|
||||
:idle-anim 5
|
||||
:notice-anim 5
|
||||
:hostile-anim 7
|
||||
:hit-anim 5
|
||||
:knocked-anim 12
|
||||
:knocked-land-anim 13
|
||||
:die-anim 11
|
||||
:die-falling-anim 11
|
||||
:victory-anim 5
|
||||
:jump-wind-up-anim -1
|
||||
:jump-in-air-anim -1
|
||||
:jump-land-anim -1
|
||||
:neck-joint 7
|
||||
:look-at-joint 8
|
||||
:bullseye-joint 6
|
||||
:sound-hit (static-sound-name "predator-hit")
|
||||
:sound-die (static-sound-name "predator-die")
|
||||
:notice-distance (meters 150)
|
||||
:notice-distance-delta (meters 150)
|
||||
:proximity-notice-distance (meters 4)
|
||||
:default-hit-points 5
|
||||
:gnd-collide-with (collide-spec backgnd)
|
||||
:overlaps-others-collide-with-filter (collide-spec jak bot player-list)
|
||||
:penetrate-knocked #xffffffffffffffff
|
||||
:movement-gravity (meters -100)
|
||||
:friction 0.8
|
||||
:attack-shove-back (meters 3)
|
||||
:attack-shove-up (meters 2)
|
||||
:attack-mode 'generic
|
||||
:attack-damage 2
|
||||
:recover-gnd-collide-with (collide-spec backgnd crate obstacle hit-by-others-list pusher)
|
||||
:jump-height-min (meters 3)
|
||||
:jump-height-factor 0.5
|
||||
:knocked-seek-ry-clamp 2730.6667
|
||||
:knocked-soft-vxz-lo 81920.0
|
||||
:knocked-soft-vxz-hi 81920.0
|
||||
:knocked-soft-vy-lo 69632.0
|
||||
:knocked-soft-vy-hi 69632.0
|
||||
:knocked-medium-vxz-lo 81920.0
|
||||
:knocked-medium-vxz-hi 81920.0
|
||||
:knocked-medium-vy-lo 69632.0
|
||||
:knocked-medium-vy-hi 69632.0
|
||||
:knocked-hard-vxz-lo 81920.0
|
||||
:knocked-hard-vxz-hi 81920.0
|
||||
:knocked-hard-vy-lo 69632.0
|
||||
:knocked-hard-vy-hi 69632.0
|
||||
:knocked-huge-vxz-lo 164659.2
|
||||
:knocked-huge-vxz-hi 249036.8
|
||||
:knocked-huge-vy-lo 183500.8
|
||||
:knocked-huge-vy-hi 217907.2
|
||||
:knocked-yellow-vxz-lo 40960.0
|
||||
:knocked-yellow-vxz-hi 53248.0
|
||||
:knocked-yellow-vy-lo 40960.0
|
||||
:knocked-yellow-vy-hi 53248.0
|
||||
:knocked-red-vxz-lo 102400.0
|
||||
:knocked-red-vxz-hi 102400.0
|
||||
:knocked-red-vy-lo 81920.0
|
||||
:knocked-red-vy-hi 81920.0
|
||||
:knocked-blue-vxz-lo 32768.0
|
||||
:knocked-blue-vxz-hi 65536.0
|
||||
:knocked-blue-vy-lo 32768.0
|
||||
:knocked-blue-vy-hi 49152.0
|
||||
:shadow-size (meters 1)
|
||||
:shadow-max-y (meters 1)
|
||||
:shadow-min-y (meters -1)
|
||||
:shadow-locus-dist (meters 150)
|
||||
:gem-joint 6
|
||||
:gem-offset (new 'static 'sphere :y -2252.8 :z -2170.88 :r 163840.0)
|
||||
:callback-info #f
|
||||
:use-momentum #t
|
||||
:use-frustration #t
|
||||
:use-stop-chase #f
|
||||
:use-circling #f
|
||||
:use-pacing #f
|
||||
:walk-anim 6
|
||||
:turn-anim -1
|
||||
:run-anim 7
|
||||
:taunt-anim -1
|
||||
:run-travel-speed (meters 8)
|
||||
:run-acceleration (meters 6)
|
||||
:run-turning-acceleration (meters 30)
|
||||
:walk-travel-speed (meters 4)
|
||||
:walk-acceleration (meters 3)
|
||||
:walk-turning-acceleration (meters 8)
|
||||
:maximum-rotation-rate (degrees 720.0)
|
||||
:notice-nav-radius (meters 40)
|
||||
:frustration-distance (meters 8)
|
||||
:frustration-time (seconds 4)
|
||||
:blocked-time (seconds 0.3)
|
||||
:circle-dist-lo 20480.0
|
||||
:circle-dist-hi 61440.0
|
||||
:nav-mesh #f
|
||||
)
|
||||
)
|
||||
(define *predator-nav-enemy-info*
|
||||
(new 'static 'nav-enemy-info
|
||||
:use-die-falling #f
|
||||
:use-victory #f
|
||||
:use-jump-blocked #f
|
||||
:debug-draw-neck #f
|
||||
:jump-debug-draw #f
|
||||
:move-to-ground #t
|
||||
:hover-if-no-ground #f
|
||||
:idle-anim-script (new 'static 'array idle-control-frame 4
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x5 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
)
|
||||
:idle-anim 5
|
||||
:notice-anim 5
|
||||
:hostile-anim 7
|
||||
:hit-anim 5
|
||||
:knocked-anim 12
|
||||
:knocked-land-anim 13
|
||||
:die-anim 11
|
||||
:die-falling-anim 11
|
||||
:victory-anim 5
|
||||
:jump-wind-up-anim -1
|
||||
:jump-in-air-anim -1
|
||||
:jump-land-anim -1
|
||||
:neck-joint 7
|
||||
:look-at-joint 8
|
||||
:bullseye-joint 6
|
||||
:sound-hit (static-sound-name "predator-hit")
|
||||
:sound-die (static-sound-name "predator-die")
|
||||
:notice-distance (meters 150)
|
||||
:notice-distance-delta (meters 150)
|
||||
:proximity-notice-distance (meters 4)
|
||||
:default-hit-points 5
|
||||
:gnd-collide-with (collide-spec backgnd)
|
||||
:overlaps-others-collide-with-filter (collide-spec jak bot player-list)
|
||||
:penetrate-knocked #xffffffffffffffff
|
||||
:movement-gravity (meters -100)
|
||||
:friction 0.8
|
||||
:attack-shove-back (meters 3)
|
||||
:attack-shove-up (meters 2)
|
||||
:attack-mode 'generic
|
||||
:attack-damage 2
|
||||
:recover-gnd-collide-with (collide-spec backgnd crate obstacle hit-by-others-list pusher)
|
||||
:jump-height-min (meters 3)
|
||||
:jump-height-factor 0.5
|
||||
:knocked-seek-ry-clamp 2730.6667
|
||||
:knocked-soft-vxz-lo 81920.0
|
||||
:knocked-soft-vxz-hi 81920.0
|
||||
:knocked-soft-vy-lo 69632.0
|
||||
:knocked-soft-vy-hi 69632.0
|
||||
:knocked-medium-vxz-lo 81920.0
|
||||
:knocked-medium-vxz-hi 81920.0
|
||||
:knocked-medium-vy-lo 69632.0
|
||||
:knocked-medium-vy-hi 69632.0
|
||||
:knocked-hard-vxz-lo 81920.0
|
||||
:knocked-hard-vxz-hi 81920.0
|
||||
:knocked-hard-vy-lo 69632.0
|
||||
:knocked-hard-vy-hi 69632.0
|
||||
:knocked-huge-vxz-lo 164659.2
|
||||
:knocked-huge-vxz-hi 249036.8
|
||||
:knocked-huge-vy-lo 183500.8
|
||||
:knocked-huge-vy-hi 217907.2
|
||||
:knocked-yellow-vxz-lo 40960.0
|
||||
:knocked-yellow-vxz-hi 53248.0
|
||||
:knocked-yellow-vy-lo 40960.0
|
||||
:knocked-yellow-vy-hi 53248.0
|
||||
:knocked-red-vxz-lo 102400.0
|
||||
:knocked-red-vxz-hi 102400.0
|
||||
:knocked-red-vy-lo 81920.0
|
||||
:knocked-red-vy-hi 81920.0
|
||||
:knocked-blue-vxz-lo 32768.0
|
||||
:knocked-blue-vxz-hi 65536.0
|
||||
:knocked-blue-vy-lo 32768.0
|
||||
:knocked-blue-vy-hi 49152.0
|
||||
:shadow-size (meters 1)
|
||||
:shadow-max-y (meters 1)
|
||||
:shadow-min-y (meters -1)
|
||||
:shadow-locus-dist (meters 150)
|
||||
:gem-joint 6
|
||||
:gem-offset (new 'static 'sphere :y -2252.8 :z -2170.88 :r 163840.0)
|
||||
:callback-info #f
|
||||
:use-momentum #t
|
||||
:use-frustration #t
|
||||
:use-stop-chase #f
|
||||
:use-circling #f
|
||||
:use-pacing #f
|
||||
:walk-anim 6
|
||||
:turn-anim -1
|
||||
:run-anim 7
|
||||
:taunt-anim -1
|
||||
:run-travel-speed (meters 8)
|
||||
:run-acceleration (meters 6)
|
||||
:run-turning-acceleration (meters 30)
|
||||
:walk-travel-speed (meters 4)
|
||||
:walk-acceleration (meters 3)
|
||||
:walk-turning-acceleration (meters 8)
|
||||
:maximum-rotation-rate (degrees 720.0)
|
||||
:notice-nav-radius (meters 40)
|
||||
:frustration-distance (meters 8)
|
||||
:frustration-time (seconds 4)
|
||||
:blocked-time (seconds 0.3)
|
||||
:circle-dist-lo 20480.0
|
||||
:circle-dist-hi 61440.0
|
||||
:nav-mesh #f
|
||||
)
|
||||
)
|
||||
|
||||
(set! (-> *predator-nav-enemy-info* fact-defaults) *fact-info-enemy-defaults*)
|
||||
|
||||
|
||||
@@ -462,79 +462,85 @@
|
||||
#f
|
||||
)
|
||||
|
||||
(define *fort-turret-enemy-info* (new 'static 'enemy-info
|
||||
:use-die-falling #f
|
||||
:use-victory #f
|
||||
:use-jump-blocked #f
|
||||
:debug-draw-neck #f
|
||||
:jump-debug-draw #f
|
||||
:move-to-ground #f
|
||||
:hover-if-no-ground #f
|
||||
:idle-anim-script (new 'static 'array uint32 4 #x1010401 #x0 #x0 #x0)
|
||||
:idle-anim 4
|
||||
:notice-anim 4
|
||||
:hostile-anim 4
|
||||
:hit-anim 4
|
||||
:knocked-anim -1
|
||||
:knocked-land-anim -1
|
||||
:die-anim 4
|
||||
:die-falling-anim -1
|
||||
:victory-anim -1
|
||||
:jump-wind-up-anim -1
|
||||
:jump-in-air-anim -1
|
||||
:jump-land-anim -1
|
||||
:neck-joint -1
|
||||
:notice-distance (meters 150)
|
||||
:notice-distance-delta (meters 10)
|
||||
:proximity-notice-distance (meters 150)
|
||||
:default-hit-points 1
|
||||
:gnd-collide-with (collide-spec backgnd)
|
||||
:overlaps-others-collide-with-filter (collide-spec jak bot player-list)
|
||||
:movement-gravity (meters -100)
|
||||
:friction 0.8
|
||||
:attack-shove-back (meters 3)
|
||||
:attack-shove-up (meters 2)
|
||||
:attack-mode 'generic
|
||||
:attack-damage 2
|
||||
:jump-height-min (meters 3)
|
||||
:jump-height-factor 0.5
|
||||
:knocked-seek-ry-clamp 2730.6667
|
||||
:knocked-soft-vxz-lo 72089.6
|
||||
:knocked-soft-vxz-hi 108134.4
|
||||
:knocked-soft-vy-lo 81920.0
|
||||
:knocked-soft-vy-hi 122880.0
|
||||
:knocked-medium-vxz-lo 147456.0
|
||||
:knocked-medium-vxz-hi 196608.0
|
||||
:knocked-medium-vy-lo 135168.0
|
||||
:knocked-medium-vy-hi 151552.0
|
||||
:knocked-hard-vxz-lo 78643.2
|
||||
:knocked-hard-vxz-hi 117964.8
|
||||
:knocked-hard-vy-lo 183500.8
|
||||
:knocked-hard-vy-hi 209715.2
|
||||
:knocked-huge-vxz-lo 164659.2
|
||||
:knocked-huge-vxz-hi 249036.8
|
||||
:knocked-huge-vy-lo 183500.8
|
||||
:knocked-huge-vy-hi 217907.2
|
||||
:knocked-yellow-vxz-lo 40960.0
|
||||
:knocked-yellow-vxz-hi 49152.0
|
||||
:knocked-yellow-vy-lo 57344.0
|
||||
:knocked-yellow-vy-hi 81920.0
|
||||
:knocked-red-vxz-lo 24576.0
|
||||
:knocked-red-vxz-hi 196608.0
|
||||
:knocked-red-vy-lo 94208.0
|
||||
:knocked-red-vy-hi 151552.0
|
||||
:knocked-blue-vxz-lo 40960.0
|
||||
:knocked-blue-vxz-hi 49152.0
|
||||
:knocked-blue-vy-lo 24576.0
|
||||
:knocked-blue-vy-hi 81920.0
|
||||
:shadow-size (meters 1)
|
||||
:shadow-max-y (meters 1)
|
||||
:shadow-min-y (meters -1)
|
||||
:shadow-locus-dist (meters 150)
|
||||
:gem-joint -1
|
||||
:gem-offset (new 'static 'sphere :r 163840.0)
|
||||
)
|
||||
)
|
||||
(define *fort-turret-enemy-info*
|
||||
(new 'static 'enemy-info
|
||||
:use-die-falling #f
|
||||
:use-victory #f
|
||||
:use-jump-blocked #f
|
||||
:debug-draw-neck #f
|
||||
:jump-debug-draw #f
|
||||
:move-to-ground #f
|
||||
:hover-if-no-ground #f
|
||||
:idle-anim-script (new 'static 'array idle-control-frame 4
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x4 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
)
|
||||
:idle-anim 4
|
||||
:notice-anim 4
|
||||
:hostile-anim 4
|
||||
:hit-anim 4
|
||||
:knocked-anim -1
|
||||
:knocked-land-anim -1
|
||||
:die-anim 4
|
||||
:die-falling-anim -1
|
||||
:victory-anim -1
|
||||
:jump-wind-up-anim -1
|
||||
:jump-in-air-anim -1
|
||||
:jump-land-anim -1
|
||||
:neck-joint -1
|
||||
:notice-distance (meters 150)
|
||||
:notice-distance-delta (meters 10)
|
||||
:proximity-notice-distance (meters 150)
|
||||
:default-hit-points 1
|
||||
:gnd-collide-with (collide-spec backgnd)
|
||||
:overlaps-others-collide-with-filter (collide-spec jak bot player-list)
|
||||
:movement-gravity (meters -100)
|
||||
:friction 0.8
|
||||
:attack-shove-back (meters 3)
|
||||
:attack-shove-up (meters 2)
|
||||
:attack-mode 'generic
|
||||
:attack-damage 2
|
||||
:jump-height-min (meters 3)
|
||||
:jump-height-factor 0.5
|
||||
:knocked-seek-ry-clamp 2730.6667
|
||||
:knocked-soft-vxz-lo 72089.6
|
||||
:knocked-soft-vxz-hi 108134.4
|
||||
:knocked-soft-vy-lo 81920.0
|
||||
:knocked-soft-vy-hi 122880.0
|
||||
:knocked-medium-vxz-lo 147456.0
|
||||
:knocked-medium-vxz-hi 196608.0
|
||||
:knocked-medium-vy-lo 135168.0
|
||||
:knocked-medium-vy-hi 151552.0
|
||||
:knocked-hard-vxz-lo 78643.2
|
||||
:knocked-hard-vxz-hi 117964.8
|
||||
:knocked-hard-vy-lo 183500.8
|
||||
:knocked-hard-vy-hi 209715.2
|
||||
:knocked-huge-vxz-lo 164659.2
|
||||
:knocked-huge-vxz-hi 249036.8
|
||||
:knocked-huge-vy-lo 183500.8
|
||||
:knocked-huge-vy-hi 217907.2
|
||||
:knocked-yellow-vxz-lo 40960.0
|
||||
:knocked-yellow-vxz-hi 49152.0
|
||||
:knocked-yellow-vy-lo 57344.0
|
||||
:knocked-yellow-vy-hi 81920.0
|
||||
:knocked-red-vxz-lo 24576.0
|
||||
:knocked-red-vxz-hi 196608.0
|
||||
:knocked-red-vy-lo 94208.0
|
||||
:knocked-red-vy-hi 151552.0
|
||||
:knocked-blue-vxz-lo 40960.0
|
||||
:knocked-blue-vxz-hi 49152.0
|
||||
:knocked-blue-vy-lo 24576.0
|
||||
:knocked-blue-vy-hi 81920.0
|
||||
:shadow-size (meters 1)
|
||||
:shadow-max-y (meters 1)
|
||||
:shadow-min-y (meters -1)
|
||||
:shadow-locus-dist (meters 150)
|
||||
:gem-joint -1
|
||||
:gem-offset (new 'static 'sphere :r 163840.0)
|
||||
)
|
||||
)
|
||||
|
||||
(set! (-> *fort-turret-enemy-info* fact-defaults) *fact-info-enemy-defaults*)
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -37,7 +37,16 @@
|
||||
:jump-debug-draw #f
|
||||
:move-to-ground #t
|
||||
:hover-if-no-ground #f
|
||||
:idle-anim-script (new 'static 'array uint32 8 #x1e0002 #x3020401 #x1e0002 #x2010501 #x0 #x0 #x0 #x0)
|
||||
:idle-anim-script (new 'static 'array idle-control-frame 8
|
||||
(new 'static 'idle-control-frame :command #x2 :param0 #x1e)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x4 :param0 #x2 :param1 #x3)
|
||||
(new 'static 'idle-control-frame :command #x2 :param0 #x1e)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x5 :param0 #x1 :param1 #x2)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
)
|
||||
:idle-anim 4
|
||||
:notice-anim 8
|
||||
:hostile-anim 18
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -7,3 +7,632 @@
|
||||
|
||||
;; DECOMP BEGINS
|
||||
|
||||
(defskelgroup skel-ruins-breakable-wall-1 ruins-breakable-wall 0 4
|
||||
((2 (meters 20)) (3 (meters 40)) (1 (meters 999999)))
|
||||
:bounds (static-spherem 0.3 5 0 8.8)
|
||||
)
|
||||
|
||||
(defskelgroup skel-ruins-breakable-wall-2 ruins-breakable-wall 9 13
|
||||
((11 (meters 20)) (12 (meters 40)) (10 (meters 999999)))
|
||||
:bounds (static-spherem 0.3 5 0 8.8)
|
||||
)
|
||||
|
||||
(defskelgroup skel-ruins-breakable-wall-3 ruins-breakable-wall 18 22
|
||||
((20 (meters 20)) (21 (meters 40)) (19 (meters 999999)))
|
||||
:bounds (static-spherem 0.3 5 0 8.8)
|
||||
)
|
||||
|
||||
(defskelgroup skel-ruins-breakable-wall-4 ruins-breakable-wall 27 29
|
||||
((28 (meters 20)) (28 (meters 40)) (28 (meters 999999)))
|
||||
:bounds (static-spherem 0 6 0 10)
|
||||
)
|
||||
|
||||
(defskelgroup skel-ruins-breakable-wall-5 ruins-breakable-wall 32 34
|
||||
((33 (meters 20)) (33 (meters 40)) (33 (meters 999999)))
|
||||
:bounds (static-spherem 0 5 0 9.5)
|
||||
)
|
||||
|
||||
(defskelgroup skel-ruins-breakable-wall-6 ruins-breakable-wall 37 39
|
||||
((38 (meters 20)) (38 (meters 40)) (38 (meters 999999)))
|
||||
:bounds (static-spherem 0 6 0 9.5)
|
||||
)
|
||||
|
||||
(deftype rbw-side (basic)
|
||||
((break-anim string :offset-assert 4)
|
||||
(end-anim string :offset-assert 8)
|
||||
(break-prim-mask uint8 :offset-assert 12)
|
||||
(break-root-prim-joint int16 :offset-assert 14)
|
||||
(break-bounds-joint int16 :offset-assert 16)
|
||||
(break-root-prim-sphere sphere :inline :offset-assert 32)
|
||||
(break-bounds-sphere sphere :inline :offset-assert 48)
|
||||
)
|
||||
:method-count-assert 9
|
||||
:size-assert #x40
|
||||
:flag-assert #x900000040
|
||||
)
|
||||
|
||||
|
||||
(deftype rbw-info (basic)
|
||||
((skel-group string :offset-assert 4)
|
||||
(anim spool-anim :offset-assert 8)
|
||||
(sides (array rbw-side) :offset-assert 12)
|
||||
)
|
||||
:method-count-assert 9
|
||||
:size-assert #x10
|
||||
:flag-assert #x900000010
|
||||
)
|
||||
|
||||
|
||||
(define *rbw-infos*
|
||||
(new 'static 'boxed-array :type rbw-info
|
||||
(new 'static 'rbw-info
|
||||
:skel-group "ruins-breakable-wall-1"
|
||||
:anim (new 'static 'spool-anim :name "ruins-breakable-wall-1" :anim-name "1-break-front" :parts 2 :command-list '())
|
||||
:sides (new 'static 'boxed-array :type rbw-side
|
||||
(new 'static 'rbw-side
|
||||
:break-anim "ruins-breakable-wall-1-break-front"
|
||||
:end-anim "ruins-breakable-wall-1-end-front"
|
||||
:break-prim-mask #xa
|
||||
:break-root-prim-joint -1
|
||||
:break-bounds-joint -1
|
||||
:break-root-prim-sphere (new 'static 'sphere :y -17612.8 :z 49152.0 :r 106496.0)
|
||||
:break-bounds-sphere (new 'static 'sphere :x 53248.0 :y -65536.0 :z 126976.0 :r 241664.0)
|
||||
)
|
||||
(new 'static 'rbw-side
|
||||
:break-anim "ruins-breakable-wall-1-break-rear"
|
||||
:end-anim "ruins-breakable-wall-1-end-rear"
|
||||
:break-prim-mask #x6
|
||||
:break-root-prim-joint -1
|
||||
:break-bounds-joint -1
|
||||
:break-root-prim-sphere (new 'static 'sphere :x 16384.0 :y -17612.8 :z -40960.0 :r 90112.0)
|
||||
:break-bounds-sphere (new 'static 'sphere :x -24576.0 :y -16384.0 :z -98304.0 :r 163840.0)
|
||||
)
|
||||
)
|
||||
)
|
||||
(new 'static 'rbw-info
|
||||
:skel-group "ruins-breakable-wall-2"
|
||||
:anim (new 'static 'spool-anim :name "ruins-breakable-wall-2" :anim-name "2-break-front" :parts 2 :command-list '())
|
||||
:sides (new 'static 'boxed-array :type rbw-side
|
||||
(new 'static 'rbw-side
|
||||
:break-anim "ruins-breakable-wall-2-break-front"
|
||||
:end-anim "ruins-breakable-wall-2-end-front"
|
||||
:break-prim-mask #x2
|
||||
:break-root-prim-joint 3
|
||||
:break-bounds-joint -1
|
||||
:break-root-prim-sphere (new 'static 'sphere :x -18432.0 :r 40960.0)
|
||||
:break-bounds-sphere (new 'static 'sphere :z 36864.0 :r 98304.0)
|
||||
)
|
||||
(new 'static 'rbw-side
|
||||
:break-anim "ruins-breakable-wall-2-break-rear"
|
||||
:end-anim "ruins-breakable-wall-2-end-rear"
|
||||
:break-prim-mask #x6
|
||||
:break-root-prim-joint 3
|
||||
:break-bounds-joint 3
|
||||
:break-root-prim-sphere (new 'static 'sphere :x -40960.0 :z -73728.0 :r 122880.0)
|
||||
:break-bounds-sphere (new 'static 'sphere :x -40960.0 :y -16384.0 :z -61440.0 :r 114688.0)
|
||||
)
|
||||
)
|
||||
)
|
||||
(new 'static 'rbw-info
|
||||
:skel-group "ruins-breakable-wall-3"
|
||||
:anim (new 'static 'spool-anim :name "ruins-breakable-wall-3" :anim-name "3-break-front" :parts 2 :command-list '())
|
||||
:sides (new 'static 'boxed-array :type rbw-side
|
||||
(new 'static 'rbw-side
|
||||
:break-anim "ruins-breakable-wall-3-break-front"
|
||||
:end-anim "ruins-breakable-wall-3-end-front"
|
||||
:break-prim-mask #x2
|
||||
:break-root-prim-joint -1
|
||||
:break-bounds-joint -1
|
||||
:break-root-prim-sphere (new 'static 'sphere :r 36864.0)
|
||||
:break-bounds-sphere (new 'static 'sphere :z 32768.0 :r 110592.0)
|
||||
)
|
||||
(new 'static 'rbw-side
|
||||
:break-anim "ruins-breakable-wall-3-break-rear"
|
||||
:end-anim "ruins-breakable-wall-3-end-rear"
|
||||
:break-prim-mask #x6
|
||||
:break-root-prim-joint -1
|
||||
:break-bounds-joint -1
|
||||
:break-root-prim-sphere (new 'static 'sphere :x 16384.0 :y -18432.0 :z -65536.0 :r 126976.0)
|
||||
:break-bounds-sphere (new 'static 'sphere :y -34816.0 :z -122880.0 :r 184320.0)
|
||||
)
|
||||
)
|
||||
)
|
||||
(new 'static 'rbw-info
|
||||
:skel-group "ruins-breakable-wall-4"
|
||||
:anim (new 'static 'spool-anim :name "ruins-breakable-wall-4" :anim-name "4-break-front" :parts 2 :command-list '())
|
||||
:sides (new 'static 'boxed-array :type rbw-side
|
||||
(new 'static 'rbw-side
|
||||
:break-anim "ruins-breakable-wall-4-break-front"
|
||||
:end-anim "ruins-breakable-wall-4-end-front"
|
||||
:break-prim-mask #x2
|
||||
:break-root-prim-joint 74
|
||||
:break-bounds-joint -1
|
||||
:break-root-prim-sphere (new 'static 'sphere :r 40960.0)
|
||||
:break-bounds-sphere (new 'static 'sphere :x 20480.0 :z -61440.0 :r 102400.0)
|
||||
)
|
||||
)
|
||||
)
|
||||
(new 'static 'rbw-info
|
||||
:skel-group "ruins-breakable-wall-5"
|
||||
:anim (new 'static 'spool-anim :name "ruins-breakable-wall-5" :anim-name "5-break-front" :parts 2 :command-list '())
|
||||
:sides (new 'static 'boxed-array :type rbw-side
|
||||
(new 'static 'rbw-side
|
||||
:break-anim "ruins-breakable-wall-5-break-front"
|
||||
:end-anim "ruins-breakable-wall-5-end-front"
|
||||
:break-prim-mask #x6
|
||||
:break-root-prim-joint -1
|
||||
:break-bounds-joint -1
|
||||
:break-root-prim-sphere (new 'static 'sphere :z -73728.0 :r 126976.0)
|
||||
:break-bounds-sphere (new 'static 'sphere :x -10240.0 :z -73728.0 :r 126976.0)
|
||||
)
|
||||
)
|
||||
)
|
||||
(new 'static 'rbw-info
|
||||
:skel-group "ruins-breakable-wall-6"
|
||||
:anim (new 'static 'spool-anim :name "ruins-breakable-wall-6" :anim-name "6-break-front" :parts 3 :command-list '())
|
||||
:sides (new 'static 'boxed-array :type rbw-side (new 'static 'rbw-side
|
||||
:break-anim "ruins-breakable-wall-6-break-front"
|
||||
:end-anim "ruins-breakable-wall-6-end-front"
|
||||
:break-prim-mask #x2
|
||||
:break-root-prim-joint -1
|
||||
:break-bounds-joint -1
|
||||
:break-root-prim-sphere (new 'static 'sphere :r 40960.0)
|
||||
:break-bounds-sphere (new 'static 'sphere :x -32768.0 :z -81920.0 :r 180224.0)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
(deftype ruins-breakable-wall (process-focusable)
|
||||
((info rbw-info :offset-assert 204)
|
||||
(side rbw-side :offset-assert 208)
|
||||
(nav-mesh nav-mesh :offset-assert 212)
|
||||
)
|
||||
:heap-base #x60
|
||||
:method-count-assert 31
|
||||
:size-assert #xd8
|
||||
:flag-assert #x1f006000d8
|
||||
(:methods
|
||||
(unbroken () _type_ :state 27)
|
||||
(hit () _type_ :state 28)
|
||||
(broken () _type_ :state 29)
|
||||
(ruins-breakable-wall-method-30 (_type_ symbol) none 30)
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
;; WARN: Return type mismatch float vs none.
|
||||
(defmethod ruins-breakable-wall-method-30 ruins-breakable-wall ((obj ruins-breakable-wall) (arg0 symbol))
|
||||
(case arg0
|
||||
(('hit)
|
||||
(-> obj draw bounds w)
|
||||
(set! (-> obj draw lod-set max-lod) 2)
|
||||
(set! (-> obj draw force-lod) 2)
|
||||
(set! (-> obj draw bounds w) 573440.0)
|
||||
)
|
||||
(('broken)
|
||||
(-> obj draw bounds w)
|
||||
(set! (-> obj draw lod-set max-lod) 2)
|
||||
(set! (-> obj draw force-lod) 2)
|
||||
(set! (-> obj draw bounds quad) (-> obj side break-bounds-sphere quad))
|
||||
(let ((v1-12 (-> obj side break-bounds-joint)))
|
||||
(if (>= v1-12 0)
|
||||
(set! (-> obj draw origin-joint-index) (the-as uint v1-12))
|
||||
)
|
||||
)
|
||||
(let ((v1-14 (-> obj root-override root-prim))
|
||||
(a1-15 (-> obj side break-prim-mask))
|
||||
)
|
||||
(set! (-> v1-14 local-sphere quad) (-> obj side break-root-prim-sphere quad))
|
||||
(let ((a0-2 (-> obj side break-root-prim-joint)))
|
||||
(if (>= a0-2 0)
|
||||
(set! (-> v1-14 transform-index) a0-2)
|
||||
)
|
||||
)
|
||||
(dotimes (a0-3 (the-as int (-> v1-14 specific 0)))
|
||||
(let ((a2-4 (-> (the-as collide-shape-prim-group v1-14) child a0-3)))
|
||||
(cond
|
||||
((logtest? a1-15 1)
|
||||
(set! (-> a2-4 prim-core collide-as) (collide-spec obstacle))
|
||||
)
|
||||
(else
|
||||
(set! (-> a2-4 prim-core collide-as) (collide-spec))
|
||||
0
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! a1-15 (shr a1-15 1))
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
|
||||
(defstate unbroken (ruins-breakable-wall)
|
||||
:virtual #t
|
||||
:event (behavior ((proc process) (arg1 int) (event-type symbol) (event event-message-block))
|
||||
(case event-type
|
||||
(('attack)
|
||||
(when (task-node-closed? (game-task-node ruins-mech-introduction))
|
||||
(let ((s4-0 (the-as object (-> event param 1))))
|
||||
(case (-> (the-as attack-info s4-0) mode)
|
||||
(('mech-punch 'crush)
|
||||
(let ((s3-0
|
||||
(the-as object (mem-copy! (the-as pointer (new 'stack-no-clear 'attack-info)) (the-as pointer s4-0) 160))
|
||||
)
|
||||
)
|
||||
((method-of-type attack-info compute-intersect-info)
|
||||
(the-as attack-info s3-0)
|
||||
(the-as uint s4-0)
|
||||
self
|
||||
(if (type? proc process-drawable)
|
||||
proc
|
||||
)
|
||||
(the-as touching-shapes-entry (-> event param 0))
|
||||
)
|
||||
(if (logtest? (-> (the-as attack-info s3-0) mask) (attack-info-mask intersection))
|
||||
(go-virtual hit)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(('combo)
|
||||
#t
|
||||
)
|
||||
)
|
||||
)
|
||||
:enter (behavior ()
|
||||
(let ((gp-0 (matrix<-transformq! (new 'stack-no-clear 'matrix) (the-as transformq (-> self root-override trans)))))
|
||||
(mech-target-spawn
|
||||
(vector-matrix*! (new 'stack-no-clear 'vector) (new 'static 'vector :y 20480.0 :z 4096.0 :w 1.0) gp-0)
|
||||
(the-as target self)
|
||||
(-> self root-override quat)
|
||||
(-> self entity)
|
||||
)
|
||||
(mech-target-spawn
|
||||
(vector-matrix*! (new 'stack-no-clear 'vector) (new 'static 'vector :y 20480.0 :z -4096.0 :w 1.0) gp-0)
|
||||
(the-as target self)
|
||||
(-> self root-override quat)
|
||||
(-> self entity)
|
||||
)
|
||||
)
|
||||
(set! (-> self nav-mesh) (nav-mesh-from-res-tag (-> self entity) 'nav-mesh-actor 0))
|
||||
(if (and (-> self nav-mesh) (not (nav-mesh-connect-from-ent self)))
|
||||
(set! (-> self nav-mesh) #f)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
:exit (behavior ()
|
||||
(while (-> self child)
|
||||
(deactivate (-> self child 0))
|
||||
)
|
||||
(none)
|
||||
)
|
||||
:code (behavior ()
|
||||
(if (task-node-closed? (game-task-node ruins-mech-introduction))
|
||||
(add-process *gui-control* self (gui-channel art-load) (gui-action queue) (-> self info anim name) -99.0 0)
|
||||
)
|
||||
(until #f
|
||||
(transform-post)
|
||||
(logior! (-> self mask) (process-mask sleep))
|
||||
(suspend)
|
||||
)
|
||||
#f
|
||||
(none)
|
||||
)
|
||||
)
|
||||
|
||||
(defstate hit (ruins-breakable-wall)
|
||||
:virtual #t
|
||||
:enter (behavior ()
|
||||
(let ((v1-1 (-> self root-override root-prim)))
|
||||
(set! (-> v1-1 prim-core collide-as) (collide-spec))
|
||||
(set! (-> v1-1 prim-core collide-with) (collide-spec))
|
||||
)
|
||||
0
|
||||
(if (-> self nav-mesh)
|
||||
(logclear! (-> self root-override nav-flags) (nav-flags has-root-sphere))
|
||||
)
|
||||
(let ((s4-0 (new 'stack-no-clear 'vector))
|
||||
(s5-0 (new 'stack-no-clear 'vector))
|
||||
)
|
||||
(vector-z-quaternion! s4-0 (-> self root-override quat))
|
||||
(set! (-> s4-0 y) 0.0)
|
||||
(vector-! s5-0 (target-pos 0) (-> self root-override trans))
|
||||
(set! (-> s5-0 y) 0.0)
|
||||
(let ((gp-2 0))
|
||||
(when (>= (vector-dot s4-0 s5-0) 0.0)
|
||||
(if (>= (-> self info sides length) 2)
|
||||
(set! gp-2 1)
|
||||
)
|
||||
)
|
||||
(set! (-> self side) (-> self info sides gp-2))
|
||||
(process-entity-status! self (entity-perm-status subtask-complete) #t)
|
||||
(let ((v1-21 (-> self entity extra perm)))
|
||||
(logior! (-> v1-21 status) (entity-perm-status bit-5))
|
||||
(set! (-> v1-21 user-int8 0) (+ gp-2 1))
|
||||
)
|
||||
)
|
||||
)
|
||||
(ruins-breakable-wall-method-30 self 'hit)
|
||||
(none)
|
||||
)
|
||||
:exit (behavior ()
|
||||
(let ((v1-1 (-> self root-override root-prim)))
|
||||
(set! (-> v1-1 prim-core collide-as) (-> self root-override backup-collide-as))
|
||||
(set! (-> v1-1 prim-core collide-with) (-> self root-override backup-collide-with))
|
||||
)
|
||||
(none)
|
||||
)
|
||||
:code (behavior ()
|
||||
(let ((a2-1 (get-art-by-name (-> self draw art-group) (-> self side end-anim) art-joint-anim)))
|
||||
(set! (-> self info anim anim-name) (-> self side break-anim))
|
||||
(ja-play-spooled-anim
|
||||
(-> self info anim)
|
||||
(ja-group)
|
||||
a2-1
|
||||
(the-as (function process-drawable symbol) false-func)
|
||||
)
|
||||
)
|
||||
(go-virtual broken)
|
||||
(none)
|
||||
)
|
||||
:post (the-as (function none :behavior ruins-breakable-wall) ja-post)
|
||||
)
|
||||
|
||||
(defstate broken (ruins-breakable-wall)
|
||||
:virtual #t
|
||||
:code (behavior ()
|
||||
(ruins-breakable-wall-method-30 self 'broken)
|
||||
(let ((gp-0 (get-art-by-name (-> self draw art-group) (-> self side end-anim) art-joint-anim)))
|
||||
(ja-channel-set! 1)
|
||||
(set! (-> self skel root-channel 0 frame-group) gp-0)
|
||||
)
|
||||
(logior! (-> self skel status) (joint-control-status sync-math))
|
||||
(transform-post)
|
||||
(logclear! (-> self skel status) (joint-control-status sync-math))
|
||||
(suspend)
|
||||
(transform-post)
|
||||
(sleep-code)
|
||||
(none)
|
||||
)
|
||||
)
|
||||
|
||||
;; WARN: Return type mismatch object vs none.
|
||||
(defmethod init-from-entity! ruins-breakable-wall ((obj ruins-breakable-wall) (arg0 entity-actor))
|
||||
(stack-size-set! (-> obj main-thread) 512)
|
||||
(set! (-> obj mask) (logior (process-mask collectable) (-> obj mask)))
|
||||
(set! (-> obj side) #f)
|
||||
(set! (-> obj nav-mesh) #f)
|
||||
(let ((v1-5 (res-lump-value (-> obj entity) 'extra-id uint128 :time -1000000000.0)))
|
||||
(set! (-> obj info) (-> *rbw-infos* v1-5))
|
||||
(cond
|
||||
((zero? v1-5)
|
||||
(let ((s4-0 (new 'process 'collide-shape obj (collide-list-enum usually-hit-by-player))))
|
||||
(set! (-> s4-0 penetrated-by) (penetrate))
|
||||
(let ((s3-0 (new 'process 'collide-shape-prim-group s4-0 (the-as uint 4) 0)))
|
||||
(set! (-> s4-0 total-prims) (the-as uint 5))
|
||||
(set! (-> s3-0 prim-core collide-as) (collide-spec obstacle))
|
||||
(set! (-> s3-0 prim-core action) (collide-action solid))
|
||||
(set! (-> s3-0 transform-index) 3)
|
||||
(set-vector! (-> s3-0 local-sphere) 0.0 0.0 0.0 36864.0)
|
||||
(set! (-> s4-0 root-prim) s3-0)
|
||||
)
|
||||
(let ((v1-14 (new 'process 'collide-shape-prim-mesh s4-0 (the-as uint 0) (the-as uint -1))))
|
||||
(set! (-> v1-14 prim-core collide-as) (collide-spec obstacle))
|
||||
(set! (-> v1-14 prim-core action) (collide-action solid))
|
||||
(set! (-> v1-14 transform-index) 3)
|
||||
(set-vector! (-> v1-14 local-sphere) 0.0 0.0 0.0 36864.0)
|
||||
)
|
||||
(let ((v1-16 (new 'process 'collide-shape-prim-mesh s4-0 (the-as uint 1) (the-as uint 0))))
|
||||
(set! (-> v1-16 prim-core action) (collide-action solid))
|
||||
(set! (-> v1-16 transform-index) 3)
|
||||
(set-vector! (-> v1-16 local-sphere) 0.0 0.0 0.0 36864.0)
|
||||
)
|
||||
(let ((v1-18 (new 'process 'collide-shape-prim-mesh s4-0 (the-as uint 2) (the-as uint 0))))
|
||||
(set! (-> v1-18 prim-core action) (collide-action solid))
|
||||
(set! (-> v1-18 transform-index) 3)
|
||||
(set-vector! (-> v1-18 local-sphere) 21504.0 -24576.0 -49152.0 69632.0)
|
||||
)
|
||||
(let ((v1-20 (new 'process 'collide-shape-prim-mesh s4-0 (the-as uint 3) (the-as uint 0))))
|
||||
(set! (-> v1-20 prim-core action) (collide-action solid))
|
||||
(set! (-> v1-20 transform-index) 3)
|
||||
(set-vector! (-> v1-20 local-sphere) 0.0 -17612.8 65536.0 81920.0)
|
||||
)
|
||||
(set! (-> s4-0 nav-radius) 20480.0)
|
||||
(let ((v1-22 (-> s4-0 root-prim)))
|
||||
(set! (-> s4-0 backup-collide-as) (-> v1-22 prim-core collide-as))
|
||||
(set! (-> s4-0 backup-collide-with) (-> v1-22 prim-core collide-with))
|
||||
)
|
||||
(set! (-> obj root-override) s4-0)
|
||||
)
|
||||
)
|
||||
((= (the-as uint v1-5) 1)
|
||||
(let ((s4-1 (new 'process 'collide-shape obj (collide-list-enum usually-hit-by-player))))
|
||||
(set! (-> s4-1 penetrated-by) (penetrate))
|
||||
(let ((s3-1 (new 'process 'collide-shape-prim-group s4-1 (the-as uint 3) 0)))
|
||||
(set! (-> s4-1 total-prims) (the-as uint 4))
|
||||
(set! (-> s3-1 prim-core collide-as) (collide-spec obstacle))
|
||||
(set! (-> s3-1 prim-core action) (collide-action solid))
|
||||
(set! (-> s3-1 transform-index) 4)
|
||||
(set-vector! (-> s3-1 local-sphere) 0.0 0.0 0.0 36864.0)
|
||||
(set! (-> s4-1 root-prim) s3-1)
|
||||
)
|
||||
(let ((v1-32 (new 'process 'collide-shape-prim-mesh s4-1 (the-as uint 0) (the-as uint -1))))
|
||||
(set! (-> v1-32 prim-core collide-as) (collide-spec obstacle))
|
||||
(set! (-> v1-32 prim-core action) (collide-action solid))
|
||||
(set! (-> v1-32 transform-index) 4)
|
||||
(set-vector! (-> v1-32 local-sphere) 0.0 0.0 0.0 36864.0)
|
||||
)
|
||||
(let ((v1-34 (new 'process 'collide-shape-prim-mesh s4-1 (the-as uint 1) (the-as uint 0))))
|
||||
(set! (-> v1-34 prim-core action) (collide-action solid))
|
||||
(set! (-> v1-34 transform-index) 3)
|
||||
(set-vector! (-> v1-34 local-sphere) -18432.0 0.0 0.0 40960.0)
|
||||
)
|
||||
(let ((v1-36 (new 'process 'collide-shape-prim-mesh s4-1 (the-as uint 2) (the-as uint 0))))
|
||||
(set! (-> v1-36 prim-core action) (collide-action solid))
|
||||
(set! (-> v1-36 transform-index) 3)
|
||||
(set-vector! (-> v1-36 local-sphere) -40960.0 -20480.0 -98304.0 90112.0)
|
||||
)
|
||||
(set! (-> s4-1 nav-radius) 20480.0)
|
||||
(let ((v1-38 (-> s4-1 root-prim)))
|
||||
(set! (-> s4-1 backup-collide-as) (-> v1-38 prim-core collide-as))
|
||||
(set! (-> s4-1 backup-collide-with) (-> v1-38 prim-core collide-with))
|
||||
)
|
||||
(set! (-> obj root-override) s4-1)
|
||||
)
|
||||
)
|
||||
((= (the-as uint v1-5) 2)
|
||||
(let ((s4-2 (new 'process 'collide-shape obj (collide-list-enum usually-hit-by-player))))
|
||||
(set! (-> s4-2 penetrated-by) (penetrate))
|
||||
(let ((s3-2 (new 'process 'collide-shape-prim-group s4-2 (the-as uint 3) 0)))
|
||||
(set! (-> s4-2 total-prims) (the-as uint 4))
|
||||
(set! (-> s3-2 prim-core collide-as) (collide-spec obstacle))
|
||||
(set! (-> s3-2 prim-core action) (collide-action solid))
|
||||
(set! (-> s3-2 transform-index) 3)
|
||||
(set-vector! (-> s3-2 local-sphere) 0.0 0.0 0.0 36864.0)
|
||||
(set! (-> s4-2 root-prim) s3-2)
|
||||
)
|
||||
(let ((v1-48 (new 'process 'collide-shape-prim-mesh s4-2 (the-as uint 0) (the-as uint -1))))
|
||||
(set! (-> v1-48 prim-core collide-as) (collide-spec obstacle))
|
||||
(set! (-> v1-48 prim-core action) (collide-action solid))
|
||||
(set! (-> v1-48 transform-index) 3)
|
||||
(set-vector! (-> v1-48 local-sphere) 0.0 0.0 0.0 36864.0)
|
||||
)
|
||||
(let ((v1-50 (new 'process 'collide-shape-prim-mesh s4-2 (the-as uint 1) (the-as uint 0))))
|
||||
(set! (-> v1-50 prim-core action) (collide-action solid))
|
||||
(set! (-> v1-50 transform-index) 3)
|
||||
(set-vector! (-> v1-50 local-sphere) -12288.0 0.0 0.0 49152.0)
|
||||
)
|
||||
(let ((v1-52 (new 'process 'collide-shape-prim-mesh s4-2 (the-as uint 2) (the-as uint 0))))
|
||||
(set! (-> v1-52 prim-core action) (collide-action solid))
|
||||
(set! (-> v1-52 transform-index) 3)
|
||||
(set-vector! (-> v1-52 local-sphere) 45056.0 -14336.0 -114688.0 40960.0)
|
||||
)
|
||||
(set! (-> s4-2 nav-radius) 20480.0)
|
||||
(let ((v1-54 (-> s4-2 root-prim)))
|
||||
(set! (-> s4-2 backup-collide-as) (-> v1-54 prim-core collide-as))
|
||||
(set! (-> s4-2 backup-collide-with) (-> v1-54 prim-core collide-with))
|
||||
)
|
||||
(set! (-> obj root-override) s4-2)
|
||||
)
|
||||
)
|
||||
((= (the-as uint v1-5) 3)
|
||||
(let ((s4-3 (new 'process 'collide-shape obj (collide-list-enum usually-hit-by-player))))
|
||||
(set! (-> s4-3 penetrated-by) (penetrate))
|
||||
(let ((s3-3 (new 'process 'collide-shape-prim-group s4-3 (the-as uint 2) 0)))
|
||||
(set! (-> s4-3 total-prims) (the-as uint 3))
|
||||
(set! (-> s3-3 prim-core collide-as) (collide-spec obstacle))
|
||||
(set! (-> s3-3 prim-core action) (collide-action solid))
|
||||
(set! (-> s3-3 transform-index) 73)
|
||||
(set-vector! (-> s3-3 local-sphere) 0.0 -24576.0 0.0 45056.0)
|
||||
(set! (-> s4-3 root-prim) s3-3)
|
||||
)
|
||||
(let ((v1-64 (new 'process 'collide-shape-prim-mesh s4-3 (the-as uint 0) (the-as uint -1))))
|
||||
(set! (-> v1-64 prim-core collide-as) (collide-spec obstacle))
|
||||
(set! (-> v1-64 prim-core action) (collide-action solid))
|
||||
(set! (-> v1-64 transform-index) 73)
|
||||
(set-vector! (-> v1-64 local-sphere) 0.0 -24576.0 0.0 45056.0)
|
||||
)
|
||||
(let ((v1-66 (new 'process 'collide-shape-prim-mesh s4-3 (the-as uint 1) (the-as uint 0))))
|
||||
(set! (-> v1-66 prim-core action) (collide-action solid))
|
||||
(set! (-> v1-66 transform-index) 74)
|
||||
(set-vector! (-> v1-66 local-sphere) 0.0 0.0 0.0 40960.0)
|
||||
)
|
||||
(set! (-> s4-3 nav-radius) 20480.0)
|
||||
(let ((v1-68 (-> s4-3 root-prim)))
|
||||
(set! (-> s4-3 backup-collide-as) (-> v1-68 prim-core collide-as))
|
||||
(set! (-> s4-3 backup-collide-with) (-> v1-68 prim-core collide-with))
|
||||
)
|
||||
(set! (-> obj root-override) s4-3)
|
||||
)
|
||||
)
|
||||
((= (the-as uint v1-5) 4)
|
||||
(let ((s4-4 (new 'process 'collide-shape obj (collide-list-enum usually-hit-by-player))))
|
||||
(set! (-> s4-4 penetrated-by) (penetrate))
|
||||
(let ((s3-4 (new 'process 'collide-shape-prim-group s4-4 (the-as uint 3) 0)))
|
||||
(set! (-> s4-4 total-prims) (the-as uint 4))
|
||||
(set! (-> s3-4 prim-core collide-as) (collide-spec obstacle))
|
||||
(set! (-> s3-4 prim-core action) (collide-action solid))
|
||||
(set! (-> s3-4 transform-index) 78)
|
||||
(set-vector! (-> s3-4 local-sphere) 0.0 0.0 0.0 36864.0)
|
||||
(set! (-> s4-4 root-prim) s3-4)
|
||||
)
|
||||
(let ((v1-78 (new 'process 'collide-shape-prim-mesh s4-4 (the-as uint 0) (the-as uint -1))))
|
||||
(set! (-> v1-78 prim-core collide-as) (collide-spec obstacle))
|
||||
(set! (-> v1-78 prim-core action) (collide-action solid))
|
||||
(set! (-> v1-78 transform-index) 78)
|
||||
(set-vector! (-> v1-78 local-sphere) 0.0 0.0 0.0 36864.0)
|
||||
)
|
||||
(let ((v1-80 (new 'process 'collide-shape-prim-mesh s4-4 (the-as uint 1) (the-as uint 0))))
|
||||
(set! (-> v1-80 prim-core action) (collide-action solid))
|
||||
(set! (-> v1-80 transform-index) 78)
|
||||
(set-vector! (-> v1-80 local-sphere) 0.0 0.0 0.0 36864.0)
|
||||
)
|
||||
(let ((v1-82 (new 'process 'collide-shape-prim-mesh s4-4 (the-as uint 2) (the-as uint 0))))
|
||||
(set! (-> v1-82 prim-core action) (collide-action solid))
|
||||
(set! (-> v1-82 transform-index) 78)
|
||||
(set-vector! (-> v1-82 local-sphere) 12288.0 -24576.0 -122880.0 69632.0)
|
||||
)
|
||||
(set! (-> s4-4 nav-radius) 20480.0)
|
||||
(let ((v1-84 (-> s4-4 root-prim)))
|
||||
(set! (-> s4-4 backup-collide-as) (-> v1-84 prim-core collide-as))
|
||||
(set! (-> s4-4 backup-collide-with) (-> v1-84 prim-core collide-with))
|
||||
)
|
||||
(set! (-> obj root-override) s4-4)
|
||||
)
|
||||
)
|
||||
(else
|
||||
(let ((s4-5 (new 'process 'collide-shape obj (collide-list-enum usually-hit-by-player))))
|
||||
(set! (-> s4-5 penetrated-by) (penetrate))
|
||||
(let ((s3-5 (new 'process 'collide-shape-prim-group s4-5 (the-as uint 2) 0)))
|
||||
(set! (-> s4-5 total-prims) (the-as uint 3))
|
||||
(set! (-> s3-5 prim-core collide-as) (collide-spec obstacle))
|
||||
(set! (-> s3-5 prim-core action) (collide-action solid))
|
||||
(set! (-> s3-5 transform-index) 74)
|
||||
(set-vector! (-> s3-5 local-sphere) 0.0 0.0 0.0 40960.0)
|
||||
(set! (-> s4-5 root-prim) s3-5)
|
||||
)
|
||||
(let ((v1-94 (new 'process 'collide-shape-prim-mesh s4-5 (the-as uint 0) (the-as uint -1))))
|
||||
(set! (-> v1-94 prim-core collide-as) (collide-spec obstacle))
|
||||
(set! (-> v1-94 prim-core action) (collide-action solid))
|
||||
(set! (-> v1-94 transform-index) 74)
|
||||
(set-vector! (-> v1-94 local-sphere) 0.0 0.0 0.0 40960.0)
|
||||
)
|
||||
(let ((v1-96 (new 'process 'collide-shape-prim-mesh s4-5 (the-as uint 1) (the-as uint 0))))
|
||||
(set! (-> v1-96 prim-core action) (collide-action solid))
|
||||
(set! (-> v1-96 transform-index) 74)
|
||||
(set-vector! (-> v1-96 local-sphere) 0.0 0.0 0.0 40960.0)
|
||||
)
|
||||
(set! (-> s4-5 nav-radius) 20480.0)
|
||||
(let ((v1-98 (-> s4-5 root-prim)))
|
||||
(set! (-> s4-5 backup-collide-as) (-> v1-98 prim-core collide-as))
|
||||
(set! (-> s4-5 backup-collide-with) (-> v1-98 prim-core collide-with))
|
||||
)
|
||||
(set! (-> obj root-override) s4-5)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(process-drawable-from-entity! obj arg0)
|
||||
(initialize-skeleton-by-name obj (-> obj info skel-group))
|
||||
(case (-> obj entity extra perm user-uint8 0)
|
||||
((1)
|
||||
(set! (-> obj side) (-> obj info sides 0))
|
||||
(go (method-of-object obj broken))
|
||||
)
|
||||
((2)
|
||||
(set! (-> obj side) (-> obj info sides 1))
|
||||
(go (method-of-object obj broken))
|
||||
)
|
||||
(else
|
||||
(go (method-of-object obj unbroken))
|
||||
)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
|
||||
@@ -7,3 +7,592 @@
|
||||
|
||||
;; DECOMP BEGINS
|
||||
|
||||
(deftype mechblock (process-drawable)
|
||||
((root-override collide-shape-moving :offset 128)
|
||||
(origin vector :inline :offset-assert 208)
|
||||
(drop-point vector :inline :offset 256)
|
||||
(allow-drag? symbol :offset-assert 272)
|
||||
(reset-on-land? symbol :offset-assert 276)
|
||||
(hit-something? symbol :offset-assert 280)
|
||||
(attack-id uint32 :offset-assert 284)
|
||||
(next-entity entity :offset-assert 288)
|
||||
)
|
||||
:heap-base #xb0
|
||||
:method-count-assert 25
|
||||
:size-assert #x124
|
||||
:flag-assert #x1900b00124
|
||||
(:methods
|
||||
(idle () _type_ :state 20)
|
||||
(carry () _type_ :state 21)
|
||||
(drag () _type_ :state 22)
|
||||
(fall () _type_ :state 23)
|
||||
(wait () _type_ :state 24)
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
(defstate idle (mechblock)
|
||||
:virtual #t
|
||||
:event (behavior ((proc process) (arg1 int) (event-type symbol) (event event-message-block))
|
||||
(case event-type
|
||||
(('carry? 'carry-info)
|
||||
(-> self carry)
|
||||
)
|
||||
(('pickup)
|
||||
(cond
|
||||
((-> self allow-drag?)
|
||||
(carry!
|
||||
(the-as carry-info (-> event param 0))
|
||||
(-> self carry)
|
||||
(the-as vector (-> event param 1))
|
||||
(the-as vector (-> event param 2))
|
||||
)
|
||||
(go-virtual drag)
|
||||
)
|
||||
(else
|
||||
(drag! (the-as carry-info (-> event param 0)) (-> self carry))
|
||||
(go-virtual carry)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
:code (behavior ()
|
||||
(logior! (-> self mask) (process-mask actor-pause))
|
||||
(dotimes (gp-0 2)
|
||||
(transform-post)
|
||||
(carry-info-method-9 (-> self carry))
|
||||
(suspend)
|
||||
)
|
||||
(logior! (-> self mask) (process-mask sleep))
|
||||
(suspend)
|
||||
0
|
||||
(none)
|
||||
)
|
||||
)
|
||||
|
||||
(defstate wait (mechblock)
|
||||
:virtual #t
|
||||
:exit (behavior ()
|
||||
(logclear! (-> self draw status) (draw-control-status no-draw))
|
||||
(let ((v1-3 (-> self root-override root-prim)))
|
||||
(set! (-> v1-3 prim-core collide-as) (-> self root-override backup-collide-as))
|
||||
(set! (-> v1-3 prim-core collide-with) (-> self root-override backup-collide-with))
|
||||
)
|
||||
(none)
|
||||
)
|
||||
:trans (behavior ()
|
||||
(when (or (not *target*) (< 40960.0 (vector-vector-distance (-> self origin) (-> *target* control trans))))
|
||||
(move-to-point!
|
||||
(-> self root-override)
|
||||
(vector+! (new 'stack-no-clear 'vector) (-> self origin) (new 'static 'vector :y 81920.0 :w 1.0))
|
||||
)
|
||||
(quaternion-copy! (-> self root-override quat) (the-as quaternion (&-> self stack 96)))
|
||||
(set-vector! (-> self root-override transv) 0.0 -4096.0 0.0 1.0)
|
||||
(set! (-> self drop-point quad) (-> self origin quad))
|
||||
(go-virtual fall)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
:code (behavior ()
|
||||
(let ((v1-1 (-> self root-override root-prim)))
|
||||
(set! (-> v1-1 prim-core collide-as) (collide-spec))
|
||||
(set! (-> v1-1 prim-core collide-with) (collide-spec))
|
||||
)
|
||||
0
|
||||
(logior! (-> self draw status) (draw-control-status no-draw))
|
||||
(logior! (-> self mask) (process-mask sleep-code))
|
||||
(suspend)
|
||||
0
|
||||
(none)
|
||||
)
|
||||
)
|
||||
|
||||
(defstate carry (mechblock)
|
||||
:virtual #t
|
||||
:event (behavior ((proc process) (arg1 int) (event-type symbol) (event event-message-block))
|
||||
(case event-type
|
||||
(('carry? 'carry-info)
|
||||
(-> self carry)
|
||||
)
|
||||
(('drop)
|
||||
(set! (-> self root-override transv quad) (-> (the-as vector (-> event param 1)) quad))
|
||||
(set! (-> self drop-point quad) (-> self root-override trans quad))
|
||||
(go-virtual fall)
|
||||
)
|
||||
)
|
||||
)
|
||||
:code (the-as (function none :behavior mechblock) sleep-code)
|
||||
:post (behavior ()
|
||||
(ja-post)
|
||||
(carry-info-method-9 (-> self carry))
|
||||
(carry-info-method-13 (-> self carry))
|
||||
(update-transforms (-> self root-override))
|
||||
(none)
|
||||
)
|
||||
)
|
||||
|
||||
(defstate drag (mechblock)
|
||||
:virtual #t
|
||||
:event (behavior ((proc process) (arg1 int) (event-type symbol) (event event-message-block))
|
||||
(local-vars (at-0 int))
|
||||
(rlet ((vf0 :class vf)
|
||||
(vf1 :class vf)
|
||||
(vf2 :class vf)
|
||||
)
|
||||
(init-vf0-vector)
|
||||
(case event-type
|
||||
(('carry? 'carry-info)
|
||||
(-> self carry)
|
||||
)
|
||||
(('drop)
|
||||
(if (handle->process (-> self carry other))
|
||||
(drop! (the-as carry-info (send-event (handle->process (-> self carry other)) 'carry-info)) (-> self carry))
|
||||
)
|
||||
(set! (-> self root-override transv quad) (-> (the-as vector (-> event param 1)) quad))
|
||||
(set! (-> self drop-point quad) (-> self root-override trans quad))
|
||||
(go-virtual fall)
|
||||
)
|
||||
(('move)
|
||||
(let ((s4-0 (-> self root-override))
|
||||
(s5-0 (new 'stack-no-clear 'vector))
|
||||
)
|
||||
(set! (-> s5-0 quad) (-> s4-0 trans quad))
|
||||
(set! (-> s4-0 transv quad) (-> (the-as vector (-> event param 0)) quad))
|
||||
(let ((s2-0 (-> self nav))
|
||||
(s1-0 (-> s4-0 root-prim prim-core))
|
||||
(s3-0 (new 'stack-no-clear 'vector))
|
||||
)
|
||||
(.lvf vf1 (&-> (-> s4-0 transv) quad))
|
||||
(let ((f0-0 (-> self clock seconds-per-frame)))
|
||||
(.mov at-0 f0-0)
|
||||
)
|
||||
(.mov vf2 at-0)
|
||||
(.mov.vf vf1 vf0 :mask #b1000)
|
||||
(.mul.x.vf vf1 vf1 vf2 :mask #b111)
|
||||
(.svf (&-> s3-0 quad) vf1)
|
||||
(set! (-> s3-0 y) 0.0)
|
||||
(vector-float*! s3-0 s3-0 10.0)
|
||||
(when (nonzero? s2-0)
|
||||
(let ((v1-28 s2-0)
|
||||
(a0-26 s1-0)
|
||||
(a1-6 (new 'stack-no-clear 'nav-find-poly-parms))
|
||||
)
|
||||
(vector-! (-> a1-6 point) (the-as vector a0-26) (-> v1-28 state mesh bounds))
|
||||
(set! (-> a1-6 y-threshold) (-> v1-28 nearest-y-threshold))
|
||||
(set! (-> a1-6 ignore) (the-as uint 2))
|
||||
(let ((a2-4 (find-poly-containing-point-local (-> v1-28 state mesh) a1-6)))
|
||||
(cond
|
||||
(a2-4
|
||||
(clamp-vector-to-mesh-cross-gaps
|
||||
s2-0
|
||||
(the-as vector s1-0)
|
||||
a2-4
|
||||
s3-0
|
||||
204.8
|
||||
#f
|
||||
(the-as clamp-travel-vector-to-mesh-return-info #f)
|
||||
)
|
||||
)
|
||||
(else
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(vector-float*! (-> s4-0 transv) s3-0 (* 0.1 (-> self clock frames-per-second)))
|
||||
)
|
||||
(let ((v1-35 (-> s4-0 root-prim)))
|
||||
(set! (-> v1-35 prim-core collide-as) (-> s4-0 backup-collide-as))
|
||||
(set! (-> v1-35 prim-core collide-with) (-> s4-0 backup-collide-with))
|
||||
)
|
||||
(set! (-> s4-0 root-prim type) collide-shape-prim-sphere)
|
||||
(let ((a2-5 (new 'stack-no-clear 'collide-query)))
|
||||
(set! (-> a2-5 collide-with)
|
||||
(logclear (-> s4-0 root-prim prim-core collide-with) (collide-spec backgnd jak player-list tobot))
|
||||
)
|
||||
(set! (-> a2-5 ignore-process0) self)
|
||||
(set! (-> a2-5 ignore-process1) #f)
|
||||
(set! (-> a2-5 ignore-pat) (-> s4-0 pat-ignore-mask))
|
||||
(set! (-> a2-5 action-mask) (collide-action solid))
|
||||
(fill-cache-integrate-and-collide s4-0 (-> s4-0 transv) a2-5 (meters 0))
|
||||
)
|
||||
(when (nonzero? (-> self nav))
|
||||
(let ((v1-44 (-> self nav))
|
||||
(a0-41 (-> self root-override root-prim prim-core))
|
||||
(a1-9 (new 'stack-no-clear 'nav-find-poly-parms))
|
||||
)
|
||||
(vector-! (-> a1-9 point) (the-as vector a0-41) (-> v1-44 state mesh bounds))
|
||||
(set! (-> a1-9 y-threshold) (-> v1-44 nearest-y-threshold))
|
||||
(set! (-> a1-9 ignore) (the-as uint 2))
|
||||
(let ((v1-46 (find-poly-containing-point-local (-> v1-44 state mesh) a1-9)))
|
||||
(when v1-46
|
||||
(when (< (-> self root-override trans y) (-> v1-46 vertex0 y))
|
||||
(let* ((a0-47 (-> self root-override))
|
||||
(t9-7 (method-of-object a0-47 move-by-vector!))
|
||||
(a1-11 (new 'stack-no-clear 'vector))
|
||||
)
|
||||
(set! (-> a1-11 x) 0.0)
|
||||
(set! (-> a1-11 y) (- (-> v1-46 vertex0 y) (-> self root-override trans y)))
|
||||
(set! (-> a1-11 z) 0.0)
|
||||
(set! (-> a1-11 w) 1.0)
|
||||
(t9-7 a0-47 a1-11)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! (-> s4-0 root-prim type) collide-shape-prim-mesh)
|
||||
(let ((v1-50 (-> s4-0 root-prim)))
|
||||
(set! (-> v1-50 prim-core collide-as) (collide-spec))
|
||||
(set! (-> v1-50 prim-core collide-with) (collide-spec))
|
||||
)
|
||||
0
|
||||
(vector-! (the-as vector (-> event param 1)) (-> s4-0 trans) s5-0)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
:code (the-as (function none :behavior mechblock) sleep-code)
|
||||
:post (behavior ()
|
||||
(ja-post)
|
||||
(carry-info-method-9 (-> self carry))
|
||||
(translate! (-> self carry))
|
||||
(update-transforms (-> self root-override))
|
||||
(none)
|
||||
)
|
||||
)
|
||||
|
||||
(defstate fall (mechblock)
|
||||
:virtual #t
|
||||
:event (behavior ((proc process) (arg1 int) (event-type symbol) (event event-message-block))
|
||||
(the-as
|
||||
object
|
||||
(case event-type
|
||||
(('carry-info)
|
||||
(-> self carry)
|
||||
)
|
||||
(('carry? 'pickup)
|
||||
(the-as basic #f)
|
||||
)
|
||||
(('touched)
|
||||
(when (and (!= (-> proc type) target) (let ((a1-2 (new 'stack-no-clear 'event-message-block)))
|
||||
(set! (-> a1-2 from) (process->ppointer self))
|
||||
(set! (-> a1-2 num-params) 2)
|
||||
(set! (-> a1-2 message) 'attack)
|
||||
(set! (-> a1-2 param 0) (-> event param 0))
|
||||
(let ((v1-7 (new 'static 'attack-info :mask (attack-info-mask mode id))))
|
||||
(set! (-> v1-7 id) (-> self attack-id))
|
||||
(set! (-> v1-7 mode) 'crush)
|
||||
(set! (-> a1-2 param 1) (the-as uint v1-7))
|
||||
)
|
||||
(send-event-function proc a1-2)
|
||||
)
|
||||
)
|
||||
(sound-play "block-hit")
|
||||
(let ((v0-0 (the-as basic (-> proc entity))))
|
||||
(set! (-> self hit-something?) (the-as symbol v0-0))
|
||||
v0-0
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
:enter (behavior ()
|
||||
(logclear! (-> self mask) (process-mask actor-pause))
|
||||
(set! (-> self state-time) (-> self clock frame-counter))
|
||||
(if (handle->process (-> self carry other))
|
||||
(drop-impl!
|
||||
(the-as carry-info (send-event (handle->process (-> self carry other)) 'carry-info))
|
||||
(-> self carry)
|
||||
)
|
||||
)
|
||||
(set! (-> self root-override status) (collide-status))
|
||||
(set! (-> self root-override root-prim local-sphere w) (-> self carry carry-radius))
|
||||
(none)
|
||||
)
|
||||
:trans (behavior ()
|
||||
(when (or (and (logtest? (-> self root-override status) (collide-status on-surface))
|
||||
(< 0.8 (-> self root-override surface-angle))
|
||||
)
|
||||
(>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 5))
|
||||
)
|
||||
(vector-reset! (-> self root-override transv))
|
||||
(set! (-> self root-override root-prim local-sphere w) (-> self carry backup-radius))
|
||||
(cond
|
||||
((and (-> self reset-on-land?)
|
||||
(and (or (< 12288.0 (vector-vector-distance (-> self drop-point) (-> self root-override trans)))
|
||||
(>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 5))
|
||||
)
|
||||
(and (-> self next-entity)
|
||||
(zero? (logand (-> self next-entity extra perm status) (entity-perm-status subtask-complete)))
|
||||
)
|
||||
)
|
||||
)
|
||||
(sound-play "block-break")
|
||||
(let ((gp-1 (get-process *default-dead-pool* part-tracker #x4000)))
|
||||
(when gp-1
|
||||
(let ((t9-4 (method-of-type part-tracker activate)))
|
||||
(t9-4 (the-as part-tracker gp-1) self (symbol->string (-> part-tracker symbol)) (the-as pointer #x70004000))
|
||||
)
|
||||
(let ((t9-5 run-function-in-process)
|
||||
(a0-11 gp-1)
|
||||
(a1-4 part-tracker-init)
|
||||
(a2-5 (-> *part-group-id-table* 124))
|
||||
(a3-2 0)
|
||||
(t0-1 #f)
|
||||
(t1-1 #f)
|
||||
(t2-1 #f)
|
||||
(t3-0 *launch-matrix*)
|
||||
)
|
||||
(set! (-> t3-0 trans quad) (-> self root-override trans quad))
|
||||
((the-as (function object object object object object object object object none) t9-5)
|
||||
a0-11
|
||||
a1-4
|
||||
a2-5
|
||||
a3-2
|
||||
t0-1
|
||||
t1-1
|
||||
t2-1
|
||||
t3-0
|
||||
)
|
||||
)
|
||||
(-> gp-1 ppointer)
|
||||
)
|
||||
)
|
||||
(go-virtual wait)
|
||||
)
|
||||
((or (< 12288.0 (vector-vector-distance (-> self drop-point) (-> self root-override trans)))
|
||||
(>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 5))
|
||||
)
|
||||
(sound-play "block-break")
|
||||
(let ((gp-3 (get-process *default-dead-pool* part-tracker #x4000)))
|
||||
(when gp-3
|
||||
(let ((t9-11 (method-of-type part-tracker activate)))
|
||||
(t9-11 (the-as part-tracker gp-3) self (symbol->string (-> part-tracker symbol)) (the-as pointer #x70004000))
|
||||
)
|
||||
(let ((t9-12 run-function-in-process)
|
||||
(a0-18 gp-3)
|
||||
(a1-9 part-tracker-init)
|
||||
(a2-11 (-> *part-group-id-table* 124))
|
||||
(a3-5 0)
|
||||
(t0-3 #f)
|
||||
(t1-3 #f)
|
||||
(t2-3 #f)
|
||||
(t3-1 *launch-matrix*)
|
||||
)
|
||||
(set! (-> t3-1 trans quad) (-> self root-override trans quad))
|
||||
((the-as (function object object object object object object object object none) t9-12)
|
||||
a0-18
|
||||
a1-9
|
||||
a2-11
|
||||
a3-5
|
||||
t0-3
|
||||
t1-3
|
||||
t2-3
|
||||
t3-1
|
||||
)
|
||||
)
|
||||
(-> gp-3 ppointer)
|
||||
)
|
||||
)
|
||||
(go-virtual wait)
|
||||
)
|
||||
(else
|
||||
(go-virtual idle)
|
||||
)
|
||||
)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
:code (the-as (function none :behavior mechblock) sleep-code)
|
||||
:post (behavior ()
|
||||
(vector-v++!
|
||||
(-> self root-override transv)
|
||||
(compute-acc-due-to-gravity (-> self root-override) (new-stack-vector0) 0.0)
|
||||
)
|
||||
(let ((v1-2 (new-stack-vector0))
|
||||
(f0-1 (vector-dot (-> self root-override dynam gravity-normal) (-> self root-override transv)))
|
||||
)
|
||||
0.0
|
||||
(vector-!
|
||||
v1-2
|
||||
(-> self root-override transv)
|
||||
(vector-float*! v1-2 (-> self root-override dynam gravity-normal) f0-1)
|
||||
)
|
||||
(let* ((f1-2 (vector-length v1-2))
|
||||
(f2-0 f1-2)
|
||||
)
|
||||
(if (< f0-1 (- (-> self root-override dynam gravity-max)))
|
||||
(set! f0-1 (- (-> self root-override dynam gravity-max)))
|
||||
)
|
||||
(vector+!
|
||||
(-> self root-override transv)
|
||||
(vector-float*! (-> self root-override transv) (-> self root-override dynam gravity-normal) f0-1)
|
||||
(vector-float*! v1-2 v1-2 (/ f1-2 f2-0))
|
||||
)
|
||||
)
|
||||
)
|
||||
(let ((a2-8 (new 'stack-no-clear 'collide-query))
|
||||
(gp-1 (-> self root-override))
|
||||
)
|
||||
(set! (-> gp-1 root-prim type) collide-shape-prim-sphere)
|
||||
(set! (-> a2-8 collide-with)
|
||||
(logclear (-> gp-1 root-prim prim-core collide-with) (collide-spec jak player-list tobot))
|
||||
)
|
||||
(set! (-> a2-8 ignore-process0) self)
|
||||
(set! (-> a2-8 ignore-process1) #f)
|
||||
(set! (-> a2-8 ignore-pat) (-> gp-1 pat-ignore-mask))
|
||||
(set! (-> a2-8 action-mask) (collide-action solid))
|
||||
(fill-cache-integrate-and-collide gp-1 (-> gp-1 transv) a2-8 (meters 0))
|
||||
(set! (-> gp-1 root-prim type) collide-shape-prim-mesh)
|
||||
)
|
||||
(transform-post)
|
||||
(carry-info-method-9 (-> self carry))
|
||||
(none)
|
||||
)
|
||||
)
|
||||
|
||||
(deftype throwblock (mechblock)
|
||||
()
|
||||
:heap-base #xb0
|
||||
:method-count-assert 25
|
||||
:size-assert #x124
|
||||
:flag-assert #x1900b00124
|
||||
)
|
||||
|
||||
|
||||
(defskelgroup skel-throwblock throwblock 0 2 ((1 (meters 999999))) :bounds (static-spherem 0 1.5 0 2.7))
|
||||
|
||||
;; WARN: Return type mismatch object vs none.
|
||||
(defmethod init-from-entity! throwblock ((obj throwblock) (arg0 entity-actor))
|
||||
(let ((s4-0 (new 'process 'collide-shape-moving obj (collide-list-enum usually-hit-by-player))))
|
||||
(set! (-> s4-0 dynam) (copy *standard-dynamics* 'process))
|
||||
(set! (-> s4-0 reaction) cshape-reaction-default)
|
||||
(set! (-> s4-0 no-reaction)
|
||||
(the-as (function collide-shape-moving collide-query vector vector object) nothing)
|
||||
)
|
||||
(set! (-> s4-0 penetrated-by) (penetrate))
|
||||
(let ((v1-6 (new 'process 'collide-shape-prim-mesh s4-0 (the-as uint 0) (the-as uint 0))))
|
||||
(set! (-> v1-6 prim-core collide-as) (collide-spec obstacle))
|
||||
(set! (-> v1-6 prim-core collide-with)
|
||||
(collide-spec backgnd jak crate obstacle hit-by-others-list player-list tobot)
|
||||
)
|
||||
(set! (-> v1-6 prim-core action) (collide-action solid))
|
||||
(set! (-> v1-6 transform-index) 3)
|
||||
(set-vector! (-> v1-6 local-sphere) 0.0 6144.0 0.0 11059.2)
|
||||
(set! (-> s4-0 total-prims) (the-as uint 1))
|
||||
(set! (-> s4-0 root-prim) v1-6)
|
||||
)
|
||||
(set! (-> s4-0 nav-radius) (* 0.75 (-> s4-0 root-prim local-sphere w)))
|
||||
(let ((v1-9 (-> s4-0 root-prim)))
|
||||
(set! (-> s4-0 backup-collide-as) (-> v1-9 prim-core collide-as))
|
||||
(set! (-> s4-0 backup-collide-with) (-> v1-9 prim-core collide-with))
|
||||
)
|
||||
(set! (-> s4-0 max-iteration-count) (the-as uint 4))
|
||||
(set! (-> s4-0 event-self) 'touched)
|
||||
(set! (-> obj root-override) s4-0)
|
||||
)
|
||||
(process-drawable-from-entity! obj arg0)
|
||||
(initialize-skeleton
|
||||
obj
|
||||
(the-as skeleton-group (art-group-get-by-name *level* "skel-throwblock" (the-as (pointer uint32) #f)))
|
||||
(the-as pair 0)
|
||||
)
|
||||
(mem-copy! (the-as pointer (-> obj origin)) (the-as pointer (-> obj root-override trans)) 48)
|
||||
(set! (-> obj allow-drag?) #f)
|
||||
(set! (-> obj reset-on-land?) #t)
|
||||
(let* ((v1-18 *game-info*)
|
||||
(a0-16 (+ (-> v1-18 attack-id) 1))
|
||||
)
|
||||
(set! (-> v1-18 attack-id) a0-16)
|
||||
(set! (-> obj attack-id) a0-16)
|
||||
)
|
||||
(set! (-> obj hit-something?) #f)
|
||||
(set! (-> obj next-entity) (entity-actor-lookup (-> obj entity) 'next-actor 0))
|
||||
(let ((v1-20 (new 'process 'carry-info obj 3 (new 'static 'vector :w 1.0) (new 'static 'vector :y 1.0 :w 1.0) 0.0))
|
||||
)
|
||||
(set! (-> v1-20 max-distance) 16384.0)
|
||||
(set! (-> v1-20 min-pull) 2048.0)
|
||||
(set! (-> v1-20 max-pull) 6963.2)
|
||||
(set! (-> v1-20 carry-radius) 6144.0)
|
||||
(set! (-> v1-20 mode) (carry-mode mech-carry))
|
||||
(set! (-> obj carry) v1-20)
|
||||
)
|
||||
(go (method-of-object obj idle))
|
||||
(none)
|
||||
)
|
||||
|
||||
(deftype pushblock (mechblock)
|
||||
()
|
||||
:heap-base #xb0
|
||||
:method-count-assert 25
|
||||
:size-assert #x124
|
||||
:flag-assert #x1900b00124
|
||||
)
|
||||
|
||||
|
||||
(defskelgroup skel-pushblock pushblock 0 3 ((1 (meters 999999))) :bounds (static-spherem 0 2 0 4))
|
||||
|
||||
;; WARN: Return type mismatch object vs none.
|
||||
(defmethod init-from-entity! pushblock ((obj pushblock) (arg0 entity-actor))
|
||||
(let ((s4-0 (new 'process 'collide-shape-moving obj (collide-list-enum usually-hit-by-player))))
|
||||
(set! (-> s4-0 dynam) (copy *standard-dynamics* 'process))
|
||||
(set! (-> s4-0 reaction) cshape-reaction-default)
|
||||
(set! (-> s4-0 no-reaction)
|
||||
(the-as (function collide-shape-moving collide-query vector vector object) nothing)
|
||||
)
|
||||
(set! (-> s4-0 penetrated-by) (penetrate))
|
||||
(let ((v1-6 (new 'process 'collide-shape-prim-mesh s4-0 (the-as uint 0) (the-as uint 0))))
|
||||
(set! (-> v1-6 prim-core collide-as) (collide-spec obstacle))
|
||||
(set! (-> v1-6 prim-core collide-with)
|
||||
(collide-spec backgnd jak crate obstacle hit-by-others-list player-list tobot)
|
||||
)
|
||||
(set! (-> v1-6 prim-core action) (collide-action solid))
|
||||
(set! (-> v1-6 transform-index) 0)
|
||||
(set-vector! (-> v1-6 local-sphere) 0.0 11264.0 0.0 22528.0)
|
||||
(set! (-> s4-0 total-prims) (the-as uint 1))
|
||||
(set! (-> s4-0 root-prim) v1-6)
|
||||
)
|
||||
(set! (-> s4-0 nav-radius) (* 0.75 (-> s4-0 root-prim local-sphere w)))
|
||||
(let ((v1-9 (-> s4-0 root-prim)))
|
||||
(set! (-> s4-0 backup-collide-as) (-> v1-9 prim-core collide-as))
|
||||
(set! (-> s4-0 backup-collide-with) (-> v1-9 prim-core collide-with))
|
||||
)
|
||||
(set! (-> s4-0 max-iteration-count) (the-as uint 4))
|
||||
(set! (-> obj root-override) s4-0)
|
||||
)
|
||||
(process-drawable-from-entity! obj arg0)
|
||||
(initialize-skeleton
|
||||
obj
|
||||
(the-as skeleton-group (art-group-get-by-name *level* "skel-pushblock" (the-as (pointer uint32) #f)))
|
||||
(the-as pair 0)
|
||||
)
|
||||
(mem-copy! (the-as pointer (-> obj origin)) (the-as pointer (-> obj root-override trans)) 48)
|
||||
(set! (-> obj reset-on-land?) #f)
|
||||
(set! (-> obj allow-drag?) #t)
|
||||
(let* ((v1-17 *game-info*)
|
||||
(a0-15 (+ (-> v1-17 attack-id) 1))
|
||||
)
|
||||
(set! (-> v1-17 attack-id) a0-15)
|
||||
(set! (-> obj attack-id) a0-15)
|
||||
)
|
||||
(set! (-> obj next-entity) #f)
|
||||
(get-nav-control obj (the-as nav-mesh #f))
|
||||
(let ((v1-19
|
||||
(new 'process 'carry-info obj 3 (new 'static 'vector :y 819.2 :w 1.0) (new 'static 'vector :y 1.0 :w 1.0) 0.0)
|
||||
)
|
||||
)
|
||||
(set! (-> v1-19 max-distance) 22528.0)
|
||||
(set! (-> v1-19 min-pull) 10240.0)
|
||||
(set! (-> v1-19 max-pull) 14336.0)
|
||||
(set! (-> v1-19 carry-radius) 11264.0)
|
||||
(set! (-> v1-19 mode) (carry-mode mech-drag))
|
||||
(set! (-> obj carry) v1-19)
|
||||
)
|
||||
(go (method-of-object obj idle))
|
||||
(none)
|
||||
)
|
||||
|
||||
@@ -7,3 +7,401 @@
|
||||
|
||||
;; DECOMP BEGINS
|
||||
|
||||
(deftype ruins-pillar-collapse (process-drawable)
|
||||
((root-override collide-shape-moving :offset 128)
|
||||
(player-attack-id int32 :offset-assert 200)
|
||||
(fall-anim-index int32 :offset-assert 204)
|
||||
(hit-points int8 :offset-assert 208)
|
||||
(mesh-trans uint8 3 :offset-assert 209)
|
||||
(mesh-joint joint 2 :offset-assert 212)
|
||||
(deadly? symbol :offset 216)
|
||||
(art-name string :offset 220)
|
||||
(anim spool-anim :offset 224)
|
||||
)
|
||||
:heap-base #x70
|
||||
:method-count-assert 24
|
||||
:size-assert #xe4
|
||||
:flag-assert #x18007000e4
|
||||
(:methods
|
||||
(idle () _type_ :state 20)
|
||||
(bump () _type_ :state 21)
|
||||
(hit () _type_ :state 22)
|
||||
(fall (symbol) _type_ :state 23)
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
(defskelgroup skel-ruins-pillar-collapse-1 ruins-pillar-collapse 0 2
|
||||
((1 (meters 999999)))
|
||||
:bounds (static-spherem 0 12 16 30)
|
||||
)
|
||||
|
||||
(defskelgroup skel-ruins-pillar-collapse-2 ruins-pillar-collapse 0 5
|
||||
((1 (meters 999999)))
|
||||
:bounds (static-spherem 0 12 0 17)
|
||||
)
|
||||
|
||||
(defskelgroup skel-ruins-pillar-collapse-3 ruins-pillar-collapse 0 8
|
||||
((1 (meters 999999)))
|
||||
:bounds (static-spherem 0 12 0 17)
|
||||
)
|
||||
|
||||
(defstate idle (ruins-pillar-collapse)
|
||||
:virtual #t
|
||||
:event (behavior ((proc process) (arg1 int) (event-type symbol) (event event-message-block))
|
||||
(case event-type
|
||||
(('attack)
|
||||
(when (task-node-closed? (game-task-node ruins-mech-introduction))
|
||||
(let* ((gp-1 (the-as attack-info (-> event param 1)))
|
||||
(s4-0 (-> gp-1 id))
|
||||
(s5-0 (vector-x-quaternion! (new-stack-vector0) (-> self root-override quat)))
|
||||
(a0-6 (vector-z-quaternion! (new-stack-vector0) (-> self root-override quat)))
|
||||
(v1-4
|
||||
(vector-! (new-stack-vector0) (-> (the-as process-drawable proc) root trans) (-> self root-override trans))
|
||||
)
|
||||
)
|
||||
0.0
|
||||
0.0
|
||||
(when (!= s4-0 (-> self player-attack-id))
|
||||
(set! (-> self player-attack-id) (the-as int s4-0))
|
||||
(let* ((f0-3 (vector-dot s5-0 v1-4))
|
||||
(f1-1 (vector-dot a0-6 v1-4))
|
||||
(a0-8 (-> gp-1 mode))
|
||||
(v1-6 (cond
|
||||
((= a0-8 'mech-punch)
|
||||
(and (< f1-1 0.0) (< (fabs (* 0.5 f0-3)) (fabs f1-1)))
|
||||
)
|
||||
((= a0-8 'crush)
|
||||
(< (sqrtf (+ (* (-> v1-4 x) (-> v1-4 x)) (* (-> v1-4 z) (-> v1-4 z)))) 40960.0)
|
||||
)
|
||||
((= a0-8 'debug)
|
||||
#t
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(cond
|
||||
(v1-6
|
||||
(go-virtual hit)
|
||||
)
|
||||
(else
|
||||
(go-virtual bump)
|
||||
#f
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(('look-at-point)
|
||||
(send-event (ppointer->process (-> self child)) 'look-at-point)
|
||||
)
|
||||
(('combo)
|
||||
#t
|
||||
)
|
||||
)
|
||||
)
|
||||
:enter (behavior ()
|
||||
(let ((s5-0 (matrix<-transformq! (new 'stack-no-clear 'matrix) (the-as transformq (-> self root-override trans)))))
|
||||
(if (string= (-> self name) "ruins-pillar-collapse-9")
|
||||
(mech-target-spawn
|
||||
(vector-matrix*! (new 'stack-no-clear 'vector) (new 'static 'vector :y 18432.0 :z 8192.0 :w 1.0) s5-0)
|
||||
(the-as target self)
|
||||
(-> self root-override quat)
|
||||
(-> self entity)
|
||||
)
|
||||
(mech-target-spawn
|
||||
(vector-matrix*! (new 'stack-no-clear 'vector) (new 'static 'vector :y 18432.0 :z -8192.0 :w 1.0) s5-0)
|
||||
(the-as target self)
|
||||
(-> self root-override quat)
|
||||
(-> self entity)
|
||||
)
|
||||
)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
:exit (behavior ()
|
||||
(while (-> self child)
|
||||
(deactivate (-> self child 0))
|
||||
)
|
||||
(none)
|
||||
)
|
||||
:code (behavior ()
|
||||
(if (task-node-closed? (game-task-node ruins-mech-introduction))
|
||||
(add-process *gui-control* self (gui-channel art-load) (gui-action queue) (-> self anim name) -99.0 0)
|
||||
)
|
||||
(ja :num-func num-func-identity :frame-num 0.0)
|
||||
(logior! (-> self mask) (process-mask sleep))
|
||||
(suspend)
|
||||
0
|
||||
(none)
|
||||
)
|
||||
:post (the-as (function none :behavior ruins-pillar-collapse) transform-post)
|
||||
)
|
||||
|
||||
(defstate bump (ruins-pillar-collapse)
|
||||
:virtual #t
|
||||
:event (-> (method-of-type ruins-pillar-collapse idle) event)
|
||||
:trans (the-as (function none :behavior ruins-pillar-collapse) rider-trans)
|
||||
:code (behavior ()
|
||||
(go-virtual idle)
|
||||
(none)
|
||||
)
|
||||
:post (the-as (function none :behavior ruins-pillar-collapse) rider-post)
|
||||
)
|
||||
|
||||
(defstate hit (ruins-pillar-collapse)
|
||||
:virtual #t
|
||||
:event (-> (method-of-type ruins-pillar-collapse idle) event)
|
||||
:trans (the-as (function none :behavior ruins-pillar-collapse) rider-trans)
|
||||
:code (behavior ()
|
||||
(+! (-> self hit-points) -1)
|
||||
(if (zero? (-> self hit-points))
|
||||
(go-virtual fall #f)
|
||||
)
|
||||
(go-virtual idle)
|
||||
(none)
|
||||
)
|
||||
:post (the-as (function none :behavior ruins-pillar-collapse) rider-post)
|
||||
)
|
||||
|
||||
(defstate fall (ruins-pillar-collapse)
|
||||
:virtual #t
|
||||
:event (behavior ((proc process) (arg1 int) (event-type symbol) (event event-message-block))
|
||||
(case event-type
|
||||
(('touch 'attack)
|
||||
(let* ((s5-0 (-> event param 0))
|
||||
(s4-0 proc)
|
||||
(gp-0 (if (type? s4-0 process-focusable)
|
||||
s4-0
|
||||
)
|
||||
)
|
||||
(a1-4 (if s5-0
|
||||
((method-of-type touching-shapes-entry prims-touching?)
|
||||
(the-as touching-shapes-entry s5-0)
|
||||
(-> self root-override)
|
||||
(the-as uint 2)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(when (and gp-0 a1-4)
|
||||
(let ((s4-1 (get-intersect-point
|
||||
(new 'stack-no-clear 'vector)
|
||||
a1-4
|
||||
(-> self root-override)
|
||||
(the-as touching-shapes-entry s5-0)
|
||||
)
|
||||
)
|
||||
)
|
||||
(when (and (< (-> (get-trans (the-as process-focusable gp-0) 3) y) (-> s4-1 y))
|
||||
(< 40960.0 (vector-vector-distance s4-1 (-> self root-override trans)))
|
||||
)
|
||||
(let ((a1-8 (new 'stack-no-clear 'event-message-block)))
|
||||
(set! (-> a1-8 from) (process->ppointer self))
|
||||
(set! (-> a1-8 num-params) 2)
|
||||
(set! (-> a1-8 message) 'attack)
|
||||
(set! (-> a1-8 param 0) s5-0)
|
||||
(let ((v1-13 (new 'static 'attack-info :mask (attack-info-mask mode id))))
|
||||
(let* ((a0-7 *game-info*)
|
||||
(a2-5 (+ (-> a0-7 attack-id) 1))
|
||||
)
|
||||
(set! (-> a0-7 attack-id) a2-5)
|
||||
(set! (-> v1-13 id) a2-5)
|
||||
)
|
||||
(set! (-> v1-13 mode) 'crush)
|
||||
(set! (-> a1-8 param 1) (the-as uint v1-13))
|
||||
)
|
||||
(send-event-function gp-0 a1-8)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
:trans (the-as (function none :behavior ruins-pillar-collapse) rider-trans)
|
||||
:code (behavior ((arg0 symbol))
|
||||
(set! (-> self draw bounds z) 61440.0)
|
||||
(set! (-> self draw bounds w) 217088.0)
|
||||
(set! (-> self root-override root-prim local-sphere w) 217088.0)
|
||||
(set! (-> (the-as collide-shape-prim-group (-> self root-override root-prim)) child 0 prim-core collide-with)
|
||||
(collide-spec)
|
||||
)
|
||||
(set! (-> (the-as collide-shape-prim-group (-> self root-override root-prim)) child 0 prim-core collide-as)
|
||||
(collide-spec)
|
||||
)
|
||||
(process-entity-status! self (entity-perm-status subtask-complete) #t)
|
||||
(let* ((s5-0 (-> self draw art-group))
|
||||
(s4-0 (method-of-object s5-0 get-art-by-name-method))
|
||||
)
|
||||
(format (clear *temp-string*) "~S-end" (-> self art-name))
|
||||
(let ((s5-1 (s4-0 s5-0 *temp-string* art-joint-anim)))
|
||||
(when (not arg0)
|
||||
(talker-spawn-func (-> *talker-speech* 456) *entity-pool* (target-pos 0) (the-as region #f))
|
||||
(ja-play-spooled-anim (-> self anim) (ja-group) (the-as art-joint-anim s5-1) (the-as (function process-drawable symbol) false-func))
|
||||
)
|
||||
(set! (-> self event-hook) #f)
|
||||
(ja-channel-set! 1)
|
||||
(set! (-> self skel root-channel 0 frame-group) (the-as art-joint-anim s5-1))
|
||||
)
|
||||
)
|
||||
(suspend)
|
||||
(logior! (-> self mask) (process-mask sleep))
|
||||
(suspend)
|
||||
0
|
||||
(none)
|
||||
)
|
||||
:post (the-as (function none :behavior ruins-pillar-collapse) rider-post)
|
||||
)
|
||||
|
||||
;; WARN: Return type mismatch object vs none.
|
||||
(defmethod init-from-entity! ruins-pillar-collapse ((obj ruins-pillar-collapse) (arg0 entity-actor))
|
||||
(local-vars (sv-16 collide-shape-prim-mesh) (sv-32 symbol) (sv-48 type) (sv-64 collide-shape-moving))
|
||||
(stack-size-set! (-> obj main-thread) 512)
|
||||
(set! (-> obj mask) (logior (process-mask collectable) (-> obj mask)))
|
||||
(dotimes (v1-3 3)
|
||||
(set! (-> obj mesh-trans v1-3) (the-as uint v1-3))
|
||||
)
|
||||
(let ((s4-0 (new 'process 'collide-shape-moving obj (collide-list-enum usually-hit-by-player))))
|
||||
(set! (-> s4-0 dynam) (copy *standard-dynamics* 'process))
|
||||
(set! (-> s4-0 reaction) cshape-reaction-default)
|
||||
(set! (-> s4-0 no-reaction)
|
||||
(the-as (function collide-shape-moving collide-query vector vector object) nothing)
|
||||
)
|
||||
(set! (-> s4-0 penetrated-by) (penetrate))
|
||||
(let ((s3-0 (new 'process 'collide-shape-prim-group s4-0 (the-as uint 33) 0)))
|
||||
(set! (-> s4-0 total-prims) (the-as uint 34))
|
||||
(set! (-> s3-0 prim-core collide-as) (collide-spec obstacle))
|
||||
(set! (-> s3-0 prim-core action) (collide-action solid rideable))
|
||||
(set! (-> s3-0 transform-index) 0)
|
||||
(set-vector! (-> s3-0 local-sphere) 0.0 49152.0 0.0 69632.0)
|
||||
(set! (-> s4-0 root-prim) s3-0)
|
||||
(let* ((s2-0 (the-as object '((5 22 61440)
|
||||
(3 21 18432)
|
||||
(4 22 61440)
|
||||
(6 46 8192)
|
||||
(7 47 6144)
|
||||
(8 48 6963)
|
||||
(9 49 6963)
|
||||
(10 53 6963)
|
||||
(11 54 6144)
|
||||
(12 61 8192)
|
||||
(13 62 10240)
|
||||
(14 63 6963)
|
||||
(15 64 6963)
|
||||
(17 66 9011)
|
||||
(18 67 16384)
|
||||
(19 68 8192)
|
||||
(20 69 6144)
|
||||
(21 70 6553)
|
||||
(22 71 9420)
|
||||
(23 72 5734)
|
||||
(24 73 7782)
|
||||
(25 74 5734)
|
||||
(26 75 8192)
|
||||
(27 76 5734)
|
||||
(28 77 5734)
|
||||
(29 78 10240)
|
||||
(30 79 6144)
|
||||
(31 80 6144)
|
||||
(32 81 6144)
|
||||
(33 82 6963)
|
||||
(34 83 9830)
|
||||
(35 84 8192)
|
||||
(16 65 8192)
|
||||
)
|
||||
)
|
||||
)
|
||||
(s1-0 (-> (the-as pair s2-0) car))
|
||||
)
|
||||
(while (not (null? s2-0))
|
||||
(let ((s0-0 (method-of-type collide-shape-prim-mesh new)))
|
||||
(set! sv-32 'process)
|
||||
(set! sv-48 collide-shape-prim-mesh)
|
||||
(set! sv-64 s4-0)
|
||||
(let ((a3-2 (command-get-int (-> (the-as pair s1-0) car) 0))
|
||||
(t0-1 0)
|
||||
)
|
||||
(set! sv-16 (s0-0 sv-32 sv-48 sv-64 (the-as uint a3-2) (the-as uint t0-1)))
|
||||
)
|
||||
)
|
||||
(let ((s0-1 sv-16))
|
||||
(set! (-> s0-1 prim-core collide-as) (-> s3-0 prim-core collide-as))
|
||||
(set! (-> s0-1 prim-core collide-with) (-> s3-0 prim-core collide-with))
|
||||
(set! (-> s0-1 prim-core action) (-> s3-0 prim-core action))
|
||||
(set! (-> s0-1 transform-index) (command-get-int (-> (the-as pair (-> (the-as pair s1-0) cdr)) car) 0))
|
||||
)
|
||||
(set-vector!
|
||||
(-> sv-16 local-sphere)
|
||||
0.0
|
||||
0.0
|
||||
0.0
|
||||
(command-get-float (-> (the-as pair (-> (the-as pair (-> (the-as pair s1-0) cdr)) cdr)) car) 0.0)
|
||||
)
|
||||
(set! s2-0 (-> (the-as pair s2-0) cdr))
|
||||
(set! s1-0 (-> (the-as pair s2-0) car))
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! (-> s4-0 nav-radius) (* 0.75 (-> s4-0 root-prim local-sphere w)))
|
||||
(let ((v1-30 (-> s4-0 root-prim)))
|
||||
(set! (-> s4-0 backup-collide-as) (-> v1-30 prim-core collide-as))
|
||||
(set! (-> s4-0 backup-collide-with) (-> v1-30 prim-core collide-with))
|
||||
)
|
||||
(set! (-> obj root-override) s4-0)
|
||||
)
|
||||
(process-drawable-from-entity! obj arg0)
|
||||
(set! (-> obj mesh-trans 0) (the-as uint 1))
|
||||
(set! (-> obj mesh-trans 1) (the-as uint 2))
|
||||
(set! (-> obj mesh-trans 2) (the-as uint 0))
|
||||
(let ((s5-1 (res-lump-struct (-> obj entity) 'art-name structure)))
|
||||
(set! (-> obj art-name) (the-as string s5-1))
|
||||
(cond
|
||||
((string= (the-as string s5-1) "ruins-pillar-collapse-1")
|
||||
(let ((v1-38 (-> obj root-override root-prim local-sphere)))
|
||||
(set! (-> v1-38 y) 49152.0)
|
||||
(set! (-> v1-38 z) 65536.0)
|
||||
(set! (-> v1-38 w) 122880.0)
|
||||
)
|
||||
(set! (-> obj anim) (new 'static 'spool-anim
|
||||
:name "ruins-pillar-collapse-1"
|
||||
:anim-name "1-break-center"
|
||||
:parts 2
|
||||
:command-list '()
|
||||
)
|
||||
)
|
||||
)
|
||||
((string= (the-as string s5-1) "ruins-pillar-collapse-2")
|
||||
(set! (-> obj anim) (new 'static 'spool-anim
|
||||
:name "ruins-pillar-collapse-2"
|
||||
:anim-name "2-break-center"
|
||||
:parts 2
|
||||
:command-list '()
|
||||
)
|
||||
)
|
||||
(set-yaw-angle-clear-roll-pitch! (-> obj root-override) (+ 32768.0 (y-angle (-> obj root-override))))
|
||||
)
|
||||
((string= (the-as string s5-1) "ruins-pillar-collapse-3")
|
||||
(set! (-> obj anim) (new 'static 'spool-anim
|
||||
:name "ruins-pillar-collapse-3"
|
||||
:anim-name "3-break-center"
|
||||
:parts 2
|
||||
:command-list '()
|
||||
)
|
||||
)
|
||||
(set-yaw-angle-clear-roll-pitch! (-> obj root-override) (+ 32768.0 (y-angle (-> obj root-override))))
|
||||
)
|
||||
)
|
||||
(initialize-skeleton-by-name obj (the-as string s5-1))
|
||||
)
|
||||
(set! (-> obj hit-points) 1)
|
||||
(set! (-> obj deadly?) #f)
|
||||
(if (and (-> obj entity) (logtest? (-> obj entity extra perm status) (entity-perm-status subtask-complete)))
|
||||
(go (method-of-object obj fall) #t)
|
||||
(go (method-of-object obj idle))
|
||||
)
|
||||
(none)
|
||||
)
|
||||
|
||||
@@ -46,10 +46,10 @@
|
||||
)
|
||||
|
||||
|
||||
(defskelgroup skel-rapid-gunner rapid-gunner 0 5
|
||||
((1 (meters 20)) (2 (meters 40)) (3 (meters 999999)))
|
||||
(defskelgroup skel-rapid-gunner rapid-gunner rapid-gunner-lod0-jg rapid-gunner-idle-ja
|
||||
((rapid-gunner-lod0-mg (meters 20)) (rapid-gunner-lod1-mg (meters 40)) (rapid-gunner-lod2-mg (meters 999999)))
|
||||
:bounds (static-spherem 0 1.5 0 7)
|
||||
:shadow 4
|
||||
:shadow rapid-gunner-shadow-mg
|
||||
)
|
||||
|
||||
(define *rapid-gunner-nav-enemy-info*
|
||||
@@ -61,7 +61,12 @@
|
||||
:jump-debug-draw #f
|
||||
:move-to-ground #t
|
||||
:hover-if-no-ground #f
|
||||
:idle-anim-script (new 'static 'array uint32 4 #x1010501 #x0 #x0 #x0)
|
||||
:idle-anim-script (new 'static 'array idle-control-frame 4
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x5 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
)
|
||||
:idle-anim 5
|
||||
:notice-anim 6
|
||||
:hostile-anim -1
|
||||
@@ -724,7 +729,7 @@
|
||||
)
|
||||
0
|
||||
(ja-channel-push! 1 (seconds 0.2))
|
||||
(ja :group! (-> self draw art-group data 17))
|
||||
(ja :group! rapid-gunner-shoot-track-ja)
|
||||
(ja :num-func num-func-identity :frame-num 0.0)
|
||||
(until (enemy-method-96 self 910.2222 #t)
|
||||
(ja-blend-eval)
|
||||
@@ -737,7 +742,7 @@
|
||||
0
|
||||
)
|
||||
(let ((v1-23 (ja-group)))
|
||||
(if (not (and v1-23 (or (= v1-23 (-> self draw art-group data 14)) (= v1-23 (-> self draw art-group data 15)))))
|
||||
(if (not (and v1-23 (or (= v1-23 rapid-gunner-shoot-ja) (= v1-23 rapid-gunner-shoot1-ja))))
|
||||
(ja-channel-push! 1 (seconds 0.2))
|
||||
)
|
||||
)
|
||||
@@ -884,8 +889,8 @@
|
||||
)
|
||||
0
|
||||
(ja-channel-push! 2 (seconds 0.1))
|
||||
(ja-no-eval :group! (-> self draw art-group data 5)
|
||||
:num! (seek! (the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 5)) frames num-frames) -1)))
|
||||
(ja-no-eval :group! rapid-gunner-idle-ja
|
||||
:num! (seek! (the float (+ (-> (the-as art-joint-anim rapid-gunner-idle-ja) frames num-frames) -1)))
|
||||
:frame-num 0.0
|
||||
)
|
||||
(let ((a0-17 (-> self skel root-channel 1)))
|
||||
@@ -893,13 +898,13 @@
|
||||
(set! (-> a0-17 frame-interp 1) f0-7)
|
||||
(set! (-> a0-17 frame-interp 0) f0-7)
|
||||
)
|
||||
(set! (-> a0-17 frame-group) (the-as art-joint-anim (-> self draw art-group data 5)))
|
||||
(set! (-> a0-17 frame-group) (the-as art-joint-anim rapid-gunner-idle-ja))
|
||||
(set! (-> a0-17 param 0)
|
||||
(the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 5)) frames num-frames) -1))
|
||||
(the float (+ (-> (the-as art-joint-anim rapid-gunner-idle-ja) frames num-frames) -1))
|
||||
)
|
||||
(set! (-> a0-17 param 1) 1.0)
|
||||
(set! (-> a0-17 frame-num) 0.0)
|
||||
(joint-control-channel-group! a0-17 (the-as art-joint-anim (-> self draw art-group data 5)) num-func-seek!)
|
||||
(joint-control-channel-group! a0-17 (the-as art-joint-anim rapid-gunner-idle-ja) num-func-seek!)
|
||||
)
|
||||
(until (ja-done? 0)
|
||||
(let ((s5-1 (vector-inv-orient-by-quat! (new 'stack-no-clear 'vector) gp-0 (-> self root-override2 quat))))
|
||||
@@ -972,8 +977,8 @@
|
||||
:code (behavior ()
|
||||
(ja-channel-push! 1 (seconds 0.2))
|
||||
(until #f
|
||||
(ja-no-eval :group! (-> self draw art-group data 7)
|
||||
:num! (seek! (the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 7)) frames num-frames) -1)))
|
||||
(ja-no-eval :group! rapid-gunner-turn-ja
|
||||
:num! (seek! (the float (+ (-> (the-as art-joint-anim rapid-gunner-turn-ja) frames num-frames) -1)))
|
||||
:frame-num 0.0
|
||||
)
|
||||
(until (ja-done? 0)
|
||||
@@ -1023,8 +1028,8 @@
|
||||
:code (behavior ()
|
||||
(ja-channel-push! 1 (seconds 0.2))
|
||||
(until #f
|
||||
(ja-no-eval :group! (-> self draw art-group data 12)
|
||||
:num! (seek! (the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 12)) frames num-frames) -1)))
|
||||
(ja-no-eval :group! rapid-gunner-aim-ja
|
||||
:num! (seek! (the float (+ (-> (the-as art-joint-anim rapid-gunner-aim-ja) frames num-frames) -1)))
|
||||
:frame-num 0.0
|
||||
)
|
||||
(until (ja-done? 0)
|
||||
@@ -1061,8 +1066,8 @@
|
||||
)
|
||||
:code (behavior ()
|
||||
(ja-channel-push! 1 (seconds 0.2))
|
||||
(ja-no-eval :group! (-> self draw art-group data 19)
|
||||
:num! (seek! (the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 19)) frames num-frames) -1)) 0.5)
|
||||
(ja-no-eval :group! rapid-gunner-reload-ja
|
||||
:num! (seek! (the float (+ (-> (the-as art-joint-anim rapid-gunner-reload-ja) frames num-frames) -1)) 0.5)
|
||||
:frame-num 0.0
|
||||
)
|
||||
(until (ja-done? 0)
|
||||
@@ -1158,7 +1163,7 @@
|
||||
)
|
||||
0
|
||||
(ja-channel-push! 1 (seconds 0.2))
|
||||
(ja :group! (-> self draw art-group data 17))
|
||||
(ja :group! rapid-gunner-shoot-track-ja)
|
||||
(ja :num-func num-func-identity :frame-num 0.0)
|
||||
(until (enemy-method-96 self 910.2222 #t)
|
||||
(ja-blend-eval)
|
||||
@@ -1171,9 +1176,9 @@
|
||||
0
|
||||
)
|
||||
(let ((v1-23 (ja-group)))
|
||||
(when (not (and v1-23 (= v1-23 (-> self draw art-group data 12))))
|
||||
(when (not (and v1-23 (= v1-23 rapid-gunner-aim-ja)))
|
||||
(let ((v1-29 (ja-group)))
|
||||
(if (and v1-29 (= v1-29 (-> self draw art-group data 17)))
|
||||
(if (and v1-29 (= v1-29 rapid-gunner-shoot-track-ja))
|
||||
(ja-channel-push! 1 (seconds 0.067))
|
||||
(ja-channel-push! 1 (seconds 0.2))
|
||||
)
|
||||
@@ -1182,11 +1187,8 @@
|
||||
)
|
||||
(let ((f30-0 (get-rand-float-range self 0.9 1.1)))
|
||||
(until #f
|
||||
(ja-no-eval :group! (-> self draw art-group data 12)
|
||||
:num! (seek!
|
||||
(the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 12)) frames num-frames) -1))
|
||||
f30-0
|
||||
)
|
||||
(ja-no-eval :group! rapid-gunner-aim-ja
|
||||
:num! (seek! (the float (+ (-> (the-as art-joint-anim rapid-gunner-aim-ja) frames num-frames) -1)) f30-0)
|
||||
:frame-num 0.0
|
||||
)
|
||||
(until (ja-done? 0)
|
||||
@@ -1246,8 +1248,8 @@
|
||||
)
|
||||
:code (behavior ()
|
||||
(ja-channel-push! 1 (seconds 0.135))
|
||||
(ja-no-eval :group! (-> self draw art-group data 18)
|
||||
:num! (seek! (the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 18)) frames num-frames) -1)))
|
||||
(ja-no-eval :group! rapid-gunner-spin-attack-ja
|
||||
:num! (seek! (the float (+ (-> (the-as art-joint-anim rapid-gunner-spin-attack-ja) frames num-frames) -1)))
|
||||
:frame-num 0.0
|
||||
)
|
||||
(until (ja-done? 0)
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
+108
-102
@@ -32,108 +32,114 @@
|
||||
)
|
||||
|
||||
|
||||
(define *gator-nav-enemy-info* (new 'static 'nav-enemy-info
|
||||
:use-die-falling #t
|
||||
:use-victory #f
|
||||
:use-jump-blocked #f
|
||||
:debug-draw-neck #f
|
||||
:jump-debug-draw #f
|
||||
:move-to-ground #f
|
||||
:hover-if-no-ground #f
|
||||
:idle-anim-script (new 'static 'array uint32 4 #x1e0002 #x64640d01 #x0 #x0)
|
||||
:idle-anim 13
|
||||
:notice-anim 13
|
||||
:hostile-anim 14
|
||||
:hit-anim 6
|
||||
:knocked-anim 6
|
||||
:knocked-land-anim 7
|
||||
:die-anim 12
|
||||
:die-falling-anim 21
|
||||
:victory-anim -1
|
||||
:jump-wind-up-anim 13
|
||||
:jump-in-air-anim 13
|
||||
:jump-land-anim 13
|
||||
:neck-joint -1
|
||||
:look-at-joint 12
|
||||
:bullseye-joint 4
|
||||
:sound-hit (static-sound-name "gator-hit")
|
||||
:sound-die (static-sound-name "gator-die")
|
||||
:notice-distance (meters 80)
|
||||
:notice-distance-delta (meters 10)
|
||||
:proximity-notice-distance (meters 40)
|
||||
:default-hit-points 1
|
||||
:gnd-collide-with (collide-spec backgnd)
|
||||
:overlaps-others-collide-with-filter (collide-spec jak bot player-list)
|
||||
:movement-gravity (meters -100)
|
||||
:friction 0.8
|
||||
:attack-shove-back (meters 3.5)
|
||||
:attack-shove-up (meters 2)
|
||||
:attack-mode 'generic
|
||||
:attack-damage 2
|
||||
:recover-gnd-collide-with (collide-spec backgnd crate obstacle hit-by-others-list pusher)
|
||||
:jump-height-min (meters 3)
|
||||
:jump-height-factor 0.5
|
||||
:knocked-seek-ry-clamp 6371.5557
|
||||
:knocked-soft-vxz-lo 72089.6
|
||||
:knocked-soft-vxz-hi 108134.4
|
||||
:knocked-soft-vy-lo 81920.0
|
||||
:knocked-soft-vy-hi 122880.0
|
||||
:knocked-medium-vxz-lo 147456.0
|
||||
:knocked-medium-vxz-hi 196608.0
|
||||
:knocked-medium-vy-lo 135168.0
|
||||
:knocked-medium-vy-hi 151552.0
|
||||
:knocked-hard-vxz-lo 78643.2
|
||||
:knocked-hard-vxz-hi 117964.8
|
||||
:knocked-hard-vy-lo 183500.8
|
||||
:knocked-hard-vy-hi 209715.2
|
||||
:knocked-huge-vxz-lo 164659.2
|
||||
:knocked-huge-vxz-hi 249036.8
|
||||
:knocked-huge-vy-lo 183500.8
|
||||
:knocked-huge-vy-hi 217907.2
|
||||
:knocked-yellow-vxz-lo 40960.0
|
||||
:knocked-yellow-vxz-hi 49152.0
|
||||
:knocked-yellow-vy-lo 57344.0
|
||||
:knocked-yellow-vy-hi 81920.0
|
||||
:knocked-red-vxz-lo 24576.0
|
||||
:knocked-red-vxz-hi 196608.0
|
||||
:knocked-red-vy-lo 94208.0
|
||||
:knocked-red-vy-hi 151552.0
|
||||
:knocked-blue-vxz-lo 40960.0
|
||||
:knocked-blue-vxz-hi 49152.0
|
||||
:knocked-blue-vy-lo 24576.0
|
||||
:knocked-blue-vy-hi 81920.0
|
||||
:shadow-size (meters 1)
|
||||
:shadow-max-y (meters 1)
|
||||
:shadow-min-y (meters -1)
|
||||
:shadow-locus-dist (meters 150)
|
||||
:gem-joint -1
|
||||
:gem-offset (new 'static 'sphere :r 163840.0)
|
||||
:callback-info #f
|
||||
:use-momentum #f
|
||||
:use-frustration #t
|
||||
:use-stop-chase #f
|
||||
:use-circling #t
|
||||
:use-pacing #t
|
||||
:walk-anim 13
|
||||
:turn-anim -1
|
||||
:run-anim 14
|
||||
:taunt-anim -1
|
||||
:run-travel-speed (meters 16)
|
||||
:run-acceleration (meters 8)
|
||||
:run-turning-acceleration (meters 40)
|
||||
:walk-travel-speed (meters 4)
|
||||
:walk-acceleration (meters 8)
|
||||
:walk-turning-acceleration (meters 10)
|
||||
:maximum-rotation-rate (degrees 200.00002)
|
||||
:notice-nav-radius (meters 2)
|
||||
:frustration-distance (meters 8)
|
||||
:frustration-time (seconds 4)
|
||||
:blocked-time (seconds 0.3)
|
||||
:circle-dist-lo 20480.0
|
||||
:circle-dist-hi 61440.0
|
||||
:nav-mesh #f
|
||||
)
|
||||
)
|
||||
(define *gator-nav-enemy-info*
|
||||
(new 'static 'nav-enemy-info
|
||||
:use-die-falling #t
|
||||
:use-victory #f
|
||||
:use-jump-blocked #f
|
||||
:debug-draw-neck #f
|
||||
:jump-debug-draw #f
|
||||
:move-to-ground #f
|
||||
:hover-if-no-ground #f
|
||||
:idle-anim-script (new 'static 'array idle-control-frame 4
|
||||
(new 'static 'idle-control-frame :command #x2 :param0 #x1e)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #xd :param0 #x64 :param1 #x64)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
)
|
||||
:idle-anim 13
|
||||
:notice-anim 13
|
||||
:hostile-anim 14
|
||||
:hit-anim 6
|
||||
:knocked-anim 6
|
||||
:knocked-land-anim 7
|
||||
:die-anim 12
|
||||
:die-falling-anim 21
|
||||
:victory-anim -1
|
||||
:jump-wind-up-anim 13
|
||||
:jump-in-air-anim 13
|
||||
:jump-land-anim 13
|
||||
:neck-joint -1
|
||||
:look-at-joint 12
|
||||
:bullseye-joint 4
|
||||
:sound-hit (static-sound-name "gator-hit")
|
||||
:sound-die (static-sound-name "gator-die")
|
||||
:notice-distance (meters 80)
|
||||
:notice-distance-delta (meters 10)
|
||||
:proximity-notice-distance (meters 40)
|
||||
:default-hit-points 1
|
||||
:gnd-collide-with (collide-spec backgnd)
|
||||
:overlaps-others-collide-with-filter (collide-spec jak bot player-list)
|
||||
:movement-gravity (meters -100)
|
||||
:friction 0.8
|
||||
:attack-shove-back (meters 3.5)
|
||||
:attack-shove-up (meters 2)
|
||||
:attack-mode 'generic
|
||||
:attack-damage 2
|
||||
:recover-gnd-collide-with (collide-spec backgnd crate obstacle hit-by-others-list pusher)
|
||||
:jump-height-min (meters 3)
|
||||
:jump-height-factor 0.5
|
||||
:knocked-seek-ry-clamp 6371.5557
|
||||
:knocked-soft-vxz-lo 72089.6
|
||||
:knocked-soft-vxz-hi 108134.4
|
||||
:knocked-soft-vy-lo 81920.0
|
||||
:knocked-soft-vy-hi 122880.0
|
||||
:knocked-medium-vxz-lo 147456.0
|
||||
:knocked-medium-vxz-hi 196608.0
|
||||
:knocked-medium-vy-lo 135168.0
|
||||
:knocked-medium-vy-hi 151552.0
|
||||
:knocked-hard-vxz-lo 78643.2
|
||||
:knocked-hard-vxz-hi 117964.8
|
||||
:knocked-hard-vy-lo 183500.8
|
||||
:knocked-hard-vy-hi 209715.2
|
||||
:knocked-huge-vxz-lo 164659.2
|
||||
:knocked-huge-vxz-hi 249036.8
|
||||
:knocked-huge-vy-lo 183500.8
|
||||
:knocked-huge-vy-hi 217907.2
|
||||
:knocked-yellow-vxz-lo 40960.0
|
||||
:knocked-yellow-vxz-hi 49152.0
|
||||
:knocked-yellow-vy-lo 57344.0
|
||||
:knocked-yellow-vy-hi 81920.0
|
||||
:knocked-red-vxz-lo 24576.0
|
||||
:knocked-red-vxz-hi 196608.0
|
||||
:knocked-red-vy-lo 94208.0
|
||||
:knocked-red-vy-hi 151552.0
|
||||
:knocked-blue-vxz-lo 40960.0
|
||||
:knocked-blue-vxz-hi 49152.0
|
||||
:knocked-blue-vy-lo 24576.0
|
||||
:knocked-blue-vy-hi 81920.0
|
||||
:shadow-size (meters 1)
|
||||
:shadow-max-y (meters 1)
|
||||
:shadow-min-y (meters -1)
|
||||
:shadow-locus-dist (meters 150)
|
||||
:gem-joint -1
|
||||
:gem-offset (new 'static 'sphere :r 163840.0)
|
||||
:callback-info #f
|
||||
:use-momentum #f
|
||||
:use-frustration #t
|
||||
:use-stop-chase #f
|
||||
:use-circling #t
|
||||
:use-pacing #t
|
||||
:walk-anim 13
|
||||
:turn-anim -1
|
||||
:run-anim 14
|
||||
:taunt-anim -1
|
||||
:run-travel-speed (meters 16)
|
||||
:run-acceleration (meters 8)
|
||||
:run-turning-acceleration (meters 40)
|
||||
:walk-travel-speed (meters 4)
|
||||
:walk-acceleration (meters 8)
|
||||
:walk-turning-acceleration (meters 10)
|
||||
:maximum-rotation-rate (degrees 200.00002)
|
||||
:notice-nav-radius (meters 2)
|
||||
:frustration-distance (meters 8)
|
||||
:frustration-time (seconds 4)
|
||||
:blocked-time (seconds 0.3)
|
||||
:circle-dist-lo 20480.0
|
||||
:circle-dist-hi 61440.0
|
||||
:nav-mesh #f
|
||||
)
|
||||
)
|
||||
|
||||
(set! (-> *gator-nav-enemy-info* fact-defaults) *fact-info-enemy-defaults*)
|
||||
|
||||
|
||||
@@ -1401,7 +1401,12 @@
|
||||
:jump-debug-draw #f
|
||||
:move-to-ground #t
|
||||
:hover-if-no-ground #f
|
||||
:idle-anim-script (new 'static 'array uint32 4 #x1e0002 #x3010501 #x0 #x0)
|
||||
:idle-anim-script (new 'static 'array idle-control-frame 4
|
||||
(new 'static 'idle-control-frame :command #x2 :param0 #x1e)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x5 :param0 #x1 :param1 #x3)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
)
|
||||
:idle-anim 5
|
||||
:notice-anim 13
|
||||
:hostile-anim -1
|
||||
|
||||
@@ -724,7 +724,7 @@
|
||||
)
|
||||
(let ((a1-8 (grunt-egg-method-23 obj)))
|
||||
(if a1-8
|
||||
(idle-control-method-9 (-> obj idle-anim-player) (the-as (pointer uint32) a1-8))
|
||||
(idle-control-method-9 (-> obj idle-anim-player) (the-as (pointer idle-control-frame) a1-8))
|
||||
)
|
||||
)
|
||||
(if (>= (res-lump-value arg0 'extra-id int :default (the-as uint128 -1) :time -1000000000.0) 0)
|
||||
|
||||
@@ -151,7 +151,16 @@
|
||||
:jump-debug-draw #f
|
||||
:move-to-ground #t
|
||||
:hover-if-no-ground #f
|
||||
:idle-anim-script (new 'static 'array uint32 8 #x1e0002 #x4010301 #x1e0002 #x4010401 #x0 #x0 #x0 #x0)
|
||||
:idle-anim-script (new 'static 'array idle-control-frame 8
|
||||
(new 'static 'idle-control-frame :command #x2 :param0 #x1e)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x3 :param0 #x1 :param1 #x4)
|
||||
(new 'static 'idle-control-frame :command #x2 :param0 #x1e)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x4 :param0 #x1 :param1 #x4)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
)
|
||||
:idle-anim 3
|
||||
:notice-anim 7
|
||||
:hostile-anim 10
|
||||
|
||||
+81
-81
@@ -32,87 +32,87 @@
|
||||
|
||||
;; definition of type enemy-info
|
||||
(deftype enemy-info (basic)
|
||||
((fact-defaults fact-info-enemy-defaults :offset-assert 4)
|
||||
(use-die-falling symbol :offset-assert 8)
|
||||
(use-victory symbol :offset-assert 12)
|
||||
(use-jump-blocked symbol :offset-assert 16)
|
||||
(debug-draw-neck symbol :offset-assert 20)
|
||||
(jump-debug-draw symbol :offset-assert 24)
|
||||
(move-to-ground symbol :offset-assert 28)
|
||||
(hover-if-no-ground symbol :offset-assert 32)
|
||||
(idle-anim-script (pointer uint32) :offset-assert 36)
|
||||
(idle-anim int32 :offset-assert 40)
|
||||
(notice-anim int32 :offset-assert 44)
|
||||
(hostile-anim int32 :offset-assert 48)
|
||||
(hit-anim int32 :offset-assert 52)
|
||||
(knocked-anim int32 :offset-assert 56)
|
||||
(knocked-land-anim int32 :offset-assert 60)
|
||||
(die-anim int32 :offset-assert 64)
|
||||
(die-falling-anim int32 :offset-assert 68)
|
||||
(victory-anim int32 :offset-assert 72)
|
||||
(jump-wind-up-anim int32 :offset-assert 76)
|
||||
(jump-in-air-anim int32 :offset-assert 80)
|
||||
(jump-land-anim int32 :offset-assert 84)
|
||||
(neck-joint int32 :offset-assert 88)
|
||||
(look-at-joint int32 :offset-assert 92)
|
||||
(bullseye-joint int32 :offset-assert 96)
|
||||
(sound-hit sound-name :offset-assert 112)
|
||||
(sound-die sound-name :offset-assert 128)
|
||||
(notice-distance meters :offset-assert 144)
|
||||
(notice-distance-delta meters :offset-assert 148)
|
||||
(proximity-notice-distance meters :offset-assert 152)
|
||||
(default-hit-points int32 :offset-assert 156)
|
||||
(gnd-collide-with collide-spec :offset-assert 160)
|
||||
(overlaps-others-collide-with-filter collide-spec :offset-assert 164)
|
||||
(penetrate-flinch uint64 :offset-assert 168)
|
||||
(penetrate-knocked uint64 :offset-assert 176)
|
||||
(movement-gravity meters :offset-assert 184)
|
||||
(friction float :offset-assert 188)
|
||||
(slip-factor float :offset-assert 192)
|
||||
(attack-shove-back meters :offset-assert 196)
|
||||
(attack-shove-up meters :offset-assert 200)
|
||||
(attack-mode symbol :offset-assert 204)
|
||||
(attack-damage int32 :offset-assert 208)
|
||||
(recover-gnd-collide-with collide-spec :offset-assert 212)
|
||||
(jump-height-min meters :offset-assert 216)
|
||||
(jump-height-factor float :offset-assert 220)
|
||||
(knocked-seek-ry-clamp float :offset-assert 224)
|
||||
(knocked-soft-vxz-lo float :offset-assert 228)
|
||||
(knocked-soft-vxz-hi float :offset-assert 232)
|
||||
(knocked-soft-vy-lo float :offset-assert 236)
|
||||
(knocked-soft-vy-hi float :offset-assert 240)
|
||||
(knocked-medium-vxz-lo float :offset-assert 244)
|
||||
(knocked-medium-vxz-hi float :offset-assert 248)
|
||||
(knocked-medium-vy-lo float :offset-assert 252)
|
||||
(knocked-medium-vy-hi float :offset-assert 256)
|
||||
(knocked-hard-vxz-lo float :offset-assert 260)
|
||||
(knocked-hard-vxz-hi float :offset-assert 264)
|
||||
(knocked-hard-vy-lo float :offset-assert 268)
|
||||
(knocked-hard-vy-hi float :offset-assert 272)
|
||||
(knocked-huge-vxz-lo float :offset-assert 276)
|
||||
(knocked-huge-vxz-hi float :offset-assert 280)
|
||||
(knocked-huge-vy-lo float :offset-assert 284)
|
||||
(knocked-huge-vy-hi float :offset-assert 288)
|
||||
(knocked-yellow-vxz-lo float :offset-assert 292)
|
||||
(knocked-yellow-vxz-hi float :offset-assert 296)
|
||||
(knocked-yellow-vy-lo float :offset-assert 300)
|
||||
(knocked-yellow-vy-hi float :offset-assert 304)
|
||||
(knocked-red-vxz-lo float :offset-assert 308)
|
||||
(knocked-red-vxz-hi float :offset-assert 312)
|
||||
(knocked-red-vy-lo float :offset-assert 316)
|
||||
(knocked-red-vy-hi float :offset-assert 320)
|
||||
(knocked-blue-vxz-lo float :offset-assert 324)
|
||||
(knocked-blue-vxz-hi float :offset-assert 328)
|
||||
(knocked-blue-vy-lo float :offset-assert 332)
|
||||
(knocked-blue-vy-hi float :offset-assert 336)
|
||||
(shadow-size meters :offset-assert 340)
|
||||
(shadow-max-y meters :offset-assert 344)
|
||||
(shadow-min-y meters :offset-assert 348)
|
||||
(shadow-locus-dist meters :offset-assert 352)
|
||||
(gem-joint int32 :offset-assert 356)
|
||||
(gem-seg uint32 :offset-assert 360)
|
||||
(gem-no-seg uint32 :offset-assert 364)
|
||||
(gem-offset sphere :inline :offset-assert 368)
|
||||
((fact-defaults fact-info-enemy-defaults :offset-assert 4)
|
||||
(use-die-falling symbol :offset-assert 8)
|
||||
(use-victory symbol :offset-assert 12)
|
||||
(use-jump-blocked symbol :offset-assert 16)
|
||||
(debug-draw-neck symbol :offset-assert 20)
|
||||
(jump-debug-draw symbol :offset-assert 24)
|
||||
(move-to-ground symbol :offset-assert 28)
|
||||
(hover-if-no-ground symbol :offset-assert 32)
|
||||
(idle-anim-script (pointer idle-control-frame) :offset-assert 36)
|
||||
(idle-anim int32 :offset-assert 40)
|
||||
(notice-anim int32 :offset-assert 44)
|
||||
(hostile-anim int32 :offset-assert 48)
|
||||
(hit-anim int32 :offset-assert 52)
|
||||
(knocked-anim int32 :offset-assert 56)
|
||||
(knocked-land-anim int32 :offset-assert 60)
|
||||
(die-anim int32 :offset-assert 64)
|
||||
(die-falling-anim int32 :offset-assert 68)
|
||||
(victory-anim int32 :offset-assert 72)
|
||||
(jump-wind-up-anim int32 :offset-assert 76)
|
||||
(jump-in-air-anim int32 :offset-assert 80)
|
||||
(jump-land-anim int32 :offset-assert 84)
|
||||
(neck-joint int32 :offset-assert 88)
|
||||
(look-at-joint int32 :offset-assert 92)
|
||||
(bullseye-joint int32 :offset-assert 96)
|
||||
(sound-hit sound-name :offset-assert 112)
|
||||
(sound-die sound-name :offset-assert 128)
|
||||
(notice-distance meters :offset-assert 144)
|
||||
(notice-distance-delta meters :offset-assert 148)
|
||||
(proximity-notice-distance meters :offset-assert 152)
|
||||
(default-hit-points int32 :offset-assert 156)
|
||||
(gnd-collide-with collide-spec :offset-assert 160)
|
||||
(overlaps-others-collide-with-filter collide-spec :offset-assert 164)
|
||||
(penetrate-flinch uint64 :offset-assert 168)
|
||||
(penetrate-knocked uint64 :offset-assert 176)
|
||||
(movement-gravity meters :offset-assert 184)
|
||||
(friction float :offset-assert 188)
|
||||
(slip-factor float :offset-assert 192)
|
||||
(attack-shove-back meters :offset-assert 196)
|
||||
(attack-shove-up meters :offset-assert 200)
|
||||
(attack-mode symbol :offset-assert 204)
|
||||
(attack-damage int32 :offset-assert 208)
|
||||
(recover-gnd-collide-with collide-spec :offset-assert 212)
|
||||
(jump-height-min meters :offset-assert 216)
|
||||
(jump-height-factor float :offset-assert 220)
|
||||
(knocked-seek-ry-clamp float :offset-assert 224)
|
||||
(knocked-soft-vxz-lo float :offset-assert 228)
|
||||
(knocked-soft-vxz-hi float :offset-assert 232)
|
||||
(knocked-soft-vy-lo float :offset-assert 236)
|
||||
(knocked-soft-vy-hi float :offset-assert 240)
|
||||
(knocked-medium-vxz-lo float :offset-assert 244)
|
||||
(knocked-medium-vxz-hi float :offset-assert 248)
|
||||
(knocked-medium-vy-lo float :offset-assert 252)
|
||||
(knocked-medium-vy-hi float :offset-assert 256)
|
||||
(knocked-hard-vxz-lo float :offset-assert 260)
|
||||
(knocked-hard-vxz-hi float :offset-assert 264)
|
||||
(knocked-hard-vy-lo float :offset-assert 268)
|
||||
(knocked-hard-vy-hi float :offset-assert 272)
|
||||
(knocked-huge-vxz-lo float :offset-assert 276)
|
||||
(knocked-huge-vxz-hi float :offset-assert 280)
|
||||
(knocked-huge-vy-lo float :offset-assert 284)
|
||||
(knocked-huge-vy-hi float :offset-assert 288)
|
||||
(knocked-yellow-vxz-lo float :offset-assert 292)
|
||||
(knocked-yellow-vxz-hi float :offset-assert 296)
|
||||
(knocked-yellow-vy-lo float :offset-assert 300)
|
||||
(knocked-yellow-vy-hi float :offset-assert 304)
|
||||
(knocked-red-vxz-lo float :offset-assert 308)
|
||||
(knocked-red-vxz-hi float :offset-assert 312)
|
||||
(knocked-red-vy-lo float :offset-assert 316)
|
||||
(knocked-red-vy-hi float :offset-assert 320)
|
||||
(knocked-blue-vxz-lo float :offset-assert 324)
|
||||
(knocked-blue-vxz-hi float :offset-assert 328)
|
||||
(knocked-blue-vy-lo float :offset-assert 332)
|
||||
(knocked-blue-vy-hi float :offset-assert 336)
|
||||
(shadow-size meters :offset-assert 340)
|
||||
(shadow-max-y meters :offset-assert 344)
|
||||
(shadow-min-y meters :offset-assert 348)
|
||||
(shadow-locus-dist meters :offset-assert 352)
|
||||
(gem-joint int32 :offset-assert 356)
|
||||
(gem-seg uint32 :offset-assert 360)
|
||||
(gem-no-seg uint32 :offset-assert 364)
|
||||
(gem-offset sphere :inline :offset-assert 368)
|
||||
)
|
||||
:method-count-assert 10
|
||||
:size-assert #x180
|
||||
|
||||
+29
-26
@@ -773,33 +773,36 @@
|
||||
(s4-1
|
||||
(vector<-cspace! (new 'stack-no-clear 'vector) (-> self node-list data (-> self draw shadow-joint-index)))
|
||||
)
|
||||
(f30-0 1638400.0)
|
||||
(s3-0 (new 'stack-no-clear 'collide-query))
|
||||
(f28-0 122880.0)
|
||||
)
|
||||
1638400.0
|
||||
(let ((s3-0 (new 'stack-no-clear 'collide-query))
|
||||
(f28-0 122880.0)
|
||||
)
|
||||
(set! (-> s3-0 start-pos quad) (-> s4-1 quad))
|
||||
(vector-normalize-copy! (-> s3-0 move-dist) s5-2 f28-0)
|
||||
(let ((v1-64 s3-0))
|
||||
(set! (-> v1-64 radius) 1638.4)
|
||||
(set! (-> v1-64 collide-with) (collide-spec obstacle hit-by-others-list))
|
||||
(set! (-> v1-64 ignore-process0) self)
|
||||
(set! (-> v1-64 ignore-process1) #f)
|
||||
(set! (-> v1-64 ignore-pat) (new 'static 'pat-surface :noentity #x1 :nojak #x1 :probe #x1 :noendlessfall #x1))
|
||||
(set! (-> v1-64 action-mask) (collide-action solid))
|
||||
)
|
||||
(let* ((f0-13 (fill-and-probe-using-line-sphere *collide-cache* s3-0))
|
||||
(f28-1 (if (< 0.0 f0-13)
|
||||
(* f0-13 f28-0)
|
||||
122880.0
|
||||
)
|
||||
)
|
||||
(s2-0 (method-of-object (-> self draw shadow-ctrl) shadow-control-method-14))
|
||||
)
|
||||
(- f28-1 (command-get-float (-> event param 0) 0.0))
|
||||
(+ f28-1 (command-get-float (-> event param 1) 0.0))
|
||||
(the-as object (s2-0))
|
||||
)
|
||||
(set! (-> s3-0 start-pos quad) (-> s4-1 quad))
|
||||
(vector-normalize-copy! (-> s3-0 move-dist) s5-2 f28-0)
|
||||
(let ((v1-64 s3-0))
|
||||
(set! (-> v1-64 radius) 1638.4)
|
||||
(set! (-> v1-64 collide-with) (collide-spec obstacle hit-by-others-list))
|
||||
(set! (-> v1-64 ignore-process0) self)
|
||||
(set! (-> v1-64 ignore-process1) #f)
|
||||
(set! (-> v1-64 ignore-pat) (new 'static 'pat-surface :noentity #x1 :nojak #x1 :probe #x1 :noendlessfall #x1))
|
||||
(set! (-> v1-64 action-mask) (collide-action solid))
|
||||
)
|
||||
(let* ((f0-13 (fill-and-probe-using-line-sphere *collide-cache* s3-0))
|
||||
(f28-1 (if (< 0.0 f0-13)
|
||||
(* f0-13 f28-0)
|
||||
122880.0
|
||||
)
|
||||
)
|
||||
)
|
||||
(the-as object (shadow-control-method-14
|
||||
(-> self draw shadow-ctrl)
|
||||
s4-1
|
||||
s5-2
|
||||
f30-0
|
||||
(- f28-1 (command-get-float (-> event param 0) 0.0))
|
||||
(+ f28-1 (command-get-float (-> event param 1) 0.0))
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
+13
-13
@@ -58,16 +58,16 @@
|
||||
|
||||
;; definition of type idle-control
|
||||
(deftype idle-control (structure)
|
||||
((anim (pointer uint32) :offset-assert 0)
|
||||
(current (pointer uint32) :offset-assert 4)
|
||||
(counter int32 :offset-assert 8)
|
||||
(target int32 :offset-assert 12)
|
||||
((anim (pointer idle-control-frame) :offset-assert 0)
|
||||
(current (pointer idle-control-frame) :offset-assert 4)
|
||||
(counter int32 :offset-assert 8)
|
||||
(target int32 :offset-assert 12)
|
||||
)
|
||||
:method-count-assert 11
|
||||
:size-assert #x10
|
||||
:flag-assert #xb00000010
|
||||
(:methods
|
||||
(idle-control-method-9 (_type_ (pointer uint32)) none 9)
|
||||
(idle-control-method-9 (_type_ (pointer idle-control-frame)) none 9)
|
||||
(idle-control-method-10 (_type_ process-drawable) none :behavior process-drawable 10)
|
||||
)
|
||||
)
|
||||
@@ -89,7 +89,7 @@
|
||||
|
||||
;; definition for method 9 of type idle-control
|
||||
;; WARN: Return type mismatch idle-control vs none.
|
||||
(defmethod idle-control-method-9 idle-control ((obj idle-control) (arg0 (pointer uint32)))
|
||||
(defmethod idle-control-method-9 idle-control ((obj idle-control) (arg0 (pointer idle-control-frame)))
|
||||
(set! (-> obj anim) arg0)
|
||||
(set! (-> obj current) arg0)
|
||||
(set! (-> obj counter) 0)
|
||||
@@ -107,27 +107,27 @@
|
||||
(set! self arg0)
|
||||
(loop
|
||||
(let* ((s4-0 (-> obj current 0))
|
||||
(v1-4 (shr (shl s4-0 56) 56))
|
||||
(v1-4 (-> s4-0 command))
|
||||
)
|
||||
(cond
|
||||
((= v1-4 1)
|
||||
(if (< (shr (shl s4-0 48) 56) 0)
|
||||
(if (< (-> s4-0 anim) 0)
|
||||
(return #f)
|
||||
)
|
||||
(when (zero? (-> obj target))
|
||||
(let ((t9-0 rand-vu-int-range)
|
||||
(a0-3 (sar (shl s4-0 40) 56))
|
||||
(a0-3 (-> s4-0 param0))
|
||||
)
|
||||
(shift-arith-right-32 a1-1 s4-0 24)
|
||||
(set! (-> obj target) (t9-0 (the-as int a0-3) a1-1))
|
||||
)
|
||||
(ja :group! (-> (the-as process-drawable self) draw art-group data (shr (shl s4-0 48) 56)) :num! min)
|
||||
(ja :group! (-> (the-as process-drawable self) draw art-group data (-> s4-0 anim)) :num! min)
|
||||
(return #f)
|
||||
)
|
||||
(ja :group! (-> (the-as process-drawable self) draw art-group data (shr (shl s4-0 48) 56))
|
||||
(ja :group! (-> (the-as process-drawable self) draw art-group data (-> s4-0 anim))
|
||||
:num! (seek!
|
||||
(the float
|
||||
(+ (-> (the-as art-joint-anim (-> (the-as process-drawable self) draw art-group data (shr (shl s4-0 48) 56)))
|
||||
(+ (-> (the-as art-joint-anim (-> (the-as process-drawable self) draw art-group data (-> s4-0 anim)))
|
||||
frames
|
||||
num-frames
|
||||
)
|
||||
@@ -158,7 +158,7 @@
|
||||
)
|
||||
)
|
||||
((= v1-4 2)
|
||||
(ja-channel-push! 1 (the-as time-frame (sar (shl s4-0 40) 56)))
|
||||
(ja-channel-push! 1 (the-as time-frame (-> s4-0 param0)))
|
||||
(set! (-> obj current) (&-> (-> obj current) 1))
|
||||
(set! (-> obj counter) 0)
|
||||
(set! (-> obj target) 0)
|
||||
|
||||
+15
-15
@@ -3,17 +3,17 @@
|
||||
|
||||
;; definition of type sprite-glow-data
|
||||
(deftype sprite-glow-data (structure)
|
||||
((position vector :inline :offset-assert 0)
|
||||
(size-x float :offset 12)
|
||||
(size-probe float :offset-assert 16)
|
||||
(z-offset float :offset-assert 20)
|
||||
(rot-angle float :offset-assert 24)
|
||||
(size-y float :offset-assert 28)
|
||||
(color rgbaf :inline :offset-assert 32)
|
||||
(fade-a float :offset-assert 48)
|
||||
(fade-b float :offset-assert 52)
|
||||
(tex-id uint32 :offset-assert 56)
|
||||
(dummy uint32 :offset-assert 60)
|
||||
((position vector :inline :offset-assert 0)
|
||||
(size-x float :offset 12)
|
||||
(size-probe float :offset-assert 16)
|
||||
(z-offset float :offset-assert 20)
|
||||
(rot-angle float :offset-assert 24)
|
||||
(size-y float :offset-assert 28)
|
||||
(color rgbaf :inline :offset-assert 32)
|
||||
(fade-a float :offset-assert 48)
|
||||
(fade-b float :offset-assert 52)
|
||||
(tex-id texture-id :offset-assert 56)
|
||||
(dummy uint32 :offset-assert 60)
|
||||
)
|
||||
:method-count-assert 10
|
||||
:size-assert #x40
|
||||
@@ -59,15 +59,15 @@
|
||||
|
||||
;; definition of type simple-sprite-system
|
||||
(deftype simple-sprite-system (structure)
|
||||
((count int16 :offset-assert 0)
|
||||
(max-count int16 :offset-assert 2)
|
||||
(data uint32 :offset-assert 4)
|
||||
((count int16 :offset-assert 0)
|
||||
(max-count int16 :offset-assert 2)
|
||||
(data sprite-glow-data :offset-assert 4)
|
||||
)
|
||||
:method-count-assert 12
|
||||
:size-assert #x8
|
||||
:flag-assert #xc00000008
|
||||
(:methods
|
||||
(add! () none 9)
|
||||
(add! (_type_ dma-buffer) none 9)
|
||||
(simple-sprite-system-method-10 (_type_ dma-buffer) none 10)
|
||||
(clear! (_type_) none 11)
|
||||
)
|
||||
|
||||
+951
@@ -0,0 +1,951 @@
|
||||
;;-*-Lisp-*-
|
||||
(in-package goal)
|
||||
|
||||
;; definition of type grunt-mech-hold
|
||||
(deftype grunt-mech-hold (structure)
|
||||
((reserve-mask uint8 :offset-assert 0)
|
||||
(lower-hold int8 :offset-assert 1)
|
||||
(grunt-handle handle :offset-assert 8)
|
||||
(timeout uint64 :offset-assert 16)
|
||||
(local-pos vector :inline :offset-assert 32)
|
||||
(local-rot vector :inline :offset-assert 48)
|
||||
(local-mat matrix :inline :offset-assert 64)
|
||||
(world-mat matrix :inline :offset-assert 128)
|
||||
)
|
||||
:method-count-assert 9
|
||||
:size-assert #xc0
|
||||
:flag-assert #x9000000c0
|
||||
)
|
||||
|
||||
;; definition for method 3 of type grunt-mech-hold
|
||||
(defmethod inspect grunt-mech-hold ((obj grunt-mech-hold))
|
||||
(when (not obj)
|
||||
(set! obj obj)
|
||||
(goto cfg-4)
|
||||
)
|
||||
(format #t "[~8x] ~A~%" obj 'grunt-mech-hold)
|
||||
(format #t "~1Treserve-mask: ~D~%" (-> obj reserve-mask))
|
||||
(format #t "~1Tlower-hold: ~D~%" (-> obj lower-hold))
|
||||
(format #t "~1Tgrunt-handle: ~D~%" (-> obj grunt-handle))
|
||||
(format #t "~1Ttimeout: ~D~%" (-> obj timeout))
|
||||
(format #t "~1Tlocal-pos: #<vector @ #x~X>~%" (-> obj local-pos))
|
||||
(format #t "~1Tlocal-rot: #<vector @ #x~X>~%" (-> obj local-rot))
|
||||
(format #t "~1Tlocal-mat: #<matrix @ #x~X>~%" (-> obj local-mat))
|
||||
(format #t "~1Tworld-mat: #<matrix @ #x~X>~%" (-> obj world-mat))
|
||||
(label cfg-4)
|
||||
obj
|
||||
)
|
||||
|
||||
;; definition of type grunt-mech-info
|
||||
(deftype grunt-mech-info (basic)
|
||||
((reserved-mask uint8 :offset-assert 4)
|
||||
(last-update-time time-frame :offset-assert 8)
|
||||
(holds grunt-mech-hold 6 :inline :offset-assert 16)
|
||||
)
|
||||
:method-count-assert 11
|
||||
:size-assert #x490
|
||||
:flag-assert #xb00000490
|
||||
(:methods
|
||||
(grunt-mech-info-method-9 (_type_ int process symbol) symbol 9)
|
||||
(grunt-mech-info-method-10 (_type_) none 10)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for method 3 of type grunt-mech-info
|
||||
(defmethod inspect grunt-mech-info ((obj grunt-mech-info))
|
||||
(when (not obj)
|
||||
(set! obj obj)
|
||||
(goto cfg-4)
|
||||
)
|
||||
(format #t "[~8x] ~A~%" obj (-> obj type))
|
||||
(format #t "~1Treserved-mask: ~D~%" (-> obj reserved-mask))
|
||||
(format #t "~1Tlast-update-time: ~D~%" (-> obj last-update-time))
|
||||
(format #t "~1Tholds[6] @ #x~X~%" (-> obj holds))
|
||||
(label cfg-4)
|
||||
obj
|
||||
)
|
||||
|
||||
;; definition for symbol *grunt-mech-info*, type grunt-mech-info
|
||||
(define *grunt-mech-info*
|
||||
(new 'static 'grunt-mech-info :holds (new 'static 'inline-array grunt-mech-hold 6
|
||||
(new 'static 'grunt-mech-hold
|
||||
:reserve-mask #x11
|
||||
:lower-hold 4
|
||||
:local-pos (new 'static 'vector :x 163.84 :y 4874.24 :z 3522.56 :w 1.0)
|
||||
:local-rot (new 'static 'vector :y 32768.0 :w 1.0)
|
||||
)
|
||||
(new 'static 'grunt-mech-hold
|
||||
:reserve-mask #x22
|
||||
:lower-hold 5
|
||||
:local-pos (new 'static 'vector :x 958.464 :y 4874.24 :z -2678.784 :w 1.0)
|
||||
:local-rot (new 'static 'vector :w 1.0)
|
||||
)
|
||||
(new 'static 'grunt-mech-hold
|
||||
:reserve-mask #x4
|
||||
:lower-hold -1
|
||||
:local-pos (new 'static 'vector :x 3223.552 :y 4874.24 :z 217.088 :w 1.0)
|
||||
:local-rot (new 'static 'vector :y 49152.0 :w 1.0)
|
||||
)
|
||||
(new 'static 'grunt-mech-hold
|
||||
:reserve-mask #x8
|
||||
:lower-hold -1
|
||||
:local-pos (new 'static 'vector :x -3170.304 :y 4874.24 :z 520.192 :w 1.0)
|
||||
:local-rot (new 'static 'vector :y 16384.0 :w 1.0)
|
||||
)
|
||||
(new 'static 'grunt-mech-hold
|
||||
:reserve-mask #x11
|
||||
:lower-hold -1
|
||||
:local-pos (new 'static 'vector :x 516.096 :y 1929.216 :z 2449.408 :w 1.0)
|
||||
:local-rot (new 'static 'vector :x -9975.308 :y 34955.266 :z -205.34613 :w 1.0)
|
||||
)
|
||||
(new 'static 'grunt-mech-hold
|
||||
:reserve-mask #x22
|
||||
:lower-hold -1
|
||||
:local-pos (new 'static 'vector :x 413.696 :y 1929.216 :z -1785.856 :w 1.0)
|
||||
:local-rot (new 'static 'vector :x -10709.129 :y 1107.0122 :z 54.795376 :w 1.0)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(let ((gp-0 *grunt-mech-info*))
|
||||
(set! (-> gp-0 last-update-time) 0)
|
||||
(set! (-> gp-0 reserved-mask) (the-as uint 0))
|
||||
(countdown (s5-0 6)
|
||||
(let ((s4-0 (-> gp-0 holds s5-0)))
|
||||
(set! (-> s4-0 grunt-handle) (the-as handle #f))
|
||||
(set! (-> s4-0 timeout) (the-as uint 0))
|
||||
(matrix-rotate-xyz! (-> s4-0 local-mat) (-> s4-0 local-rot))
|
||||
(set! (-> s4-0 local-mat trans quad) (-> s4-0 local-pos quad))
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for method 10 of type grunt-mech-info
|
||||
;; WARN: Return type mismatch int vs none.
|
||||
(defmethod grunt-mech-info-method-10 grunt-mech-info ((obj grunt-mech-info))
|
||||
(with-pp
|
||||
(let ((s5-0 (-> pp clock frame-counter)))
|
||||
(when (!= (-> obj last-update-time) s5-0)
|
||||
(when (< s5-0 (-> obj last-update-time))
|
||||
(countdown (v1-4 6)
|
||||
(let ((a0-4 (-> obj holds v1-4)))
|
||||
(set! (-> a0-4 grunt-handle) (the-as handle #f))
|
||||
(set! (-> a0-4 timeout) (the-as uint 0))
|
||||
)
|
||||
0
|
||||
)
|
||||
(set! (-> obj reserved-mask) (the-as uint 0))
|
||||
0
|
||||
)
|
||||
(set! (-> obj last-update-time) s5-0)
|
||||
(let ((v1-8 *target*))
|
||||
(cond
|
||||
((and v1-8 (logtest? (focus-status mech) (-> v1-8 focus-status)))
|
||||
(let ((s4-0 (-> v1-8 manipy 0 node-list data 3)))
|
||||
(dotimes (s3-0 6)
|
||||
(let ((s2-0 (-> obj holds s3-0)))
|
||||
(matrix*! (-> s2-0 world-mat) (-> s2-0 local-mat) (-> s4-0 bone transform))
|
||||
(vector-float*! (-> s2-0 world-mat trans) (-> s2-0 world-mat trans) (/ 1.0 (-> s2-0 world-mat trans w)))
|
||||
(when (and (!= (-> s2-0 grunt-handle) #f) (>= s5-0 (the-as time-frame (-> s2-0 timeout))))
|
||||
(set! (-> s2-0 grunt-handle) (the-as handle #f))
|
||||
(logclear! (-> obj reserved-mask) (-> s2-0 reserve-mask))
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(else
|
||||
(countdown (v1-25 6)
|
||||
(let ((a0-16 (-> obj holds v1-25)))
|
||||
(set! (-> a0-16 grunt-handle) (the-as handle #f))
|
||||
(set! (-> a0-16 timeout) (the-as uint 0))
|
||||
)
|
||||
0
|
||||
)
|
||||
(set! (-> obj reserved-mask) (the-as uint 0))
|
||||
0
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for method 9 of type grunt-mech-info
|
||||
(defmethod grunt-mech-info-method-9 grunt-mech-info ((obj grunt-mech-info) (arg0 int) (arg1 process) (arg2 symbol))
|
||||
(with-pp
|
||||
(grunt-mech-info-method-10 obj)
|
||||
(let ((v1-2 *target*))
|
||||
(when (and v1-2
|
||||
(logtest? (focus-status mech) (-> v1-2 focus-status))
|
||||
(zero? (logand (-> v1-2 focus-status) (focus-status dead ignore)))
|
||||
)
|
||||
(let ((v1-8 (-> obj holds arg0)))
|
||||
(when (and (!= (-> v1-8 grunt-handle) #f) (= (handle->process (-> v1-8 grunt-handle)) arg1))
|
||||
(set! (-> v1-8 timeout) (the-as uint (+ (-> pp clock frame-counter) (seconds 0.5))))
|
||||
(return #t)
|
||||
)
|
||||
(when (not (logtest? (-> obj reserved-mask) (-> v1-8 reserve-mask)))
|
||||
(when (not arg2)
|
||||
(logior! (-> obj reserved-mask) (-> v1-8 reserve-mask))
|
||||
(set! (-> v1-8 grunt-handle) (process->handle arg1))
|
||||
(set! (-> v1-8 timeout) (the-as uint (+ (-> pp clock frame-counter) (seconds 0.5))))
|
||||
)
|
||||
#t
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition of type grunt-mech
|
||||
(deftype grunt-mech (grunt)
|
||||
((hold-id int8 :offset-assert 692)
|
||||
(dismount-dest vector :inline :offset-assert 704)
|
||||
)
|
||||
:heap-base #x250
|
||||
:method-count-assert 196
|
||||
:size-assert #x2d0
|
||||
:flag-assert #xc4025002d0
|
||||
(:methods
|
||||
(mech-lunge () _type_ :state 186)
|
||||
(mech-hold () _type_ :state 187)
|
||||
(mech-dismount () _type_ :state 188)
|
||||
(mech-post-circling () _type_ :state 189)
|
||||
(mech-pre-circling () _type_ :state 190)
|
||||
(grunt-mech-method-191 (_type_) none 191)
|
||||
(grunt-mech-method-192 (_type_) symbol 192)
|
||||
(grunt-mech-method-193 (_type_) int 193)
|
||||
(grunt-mech-method-194 (_type_) none 194)
|
||||
(grunt-mech-method-195 (_type_ vector vector vector) symbol 195)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for method 3 of type grunt-mech
|
||||
(defmethod inspect grunt-mech ((obj grunt-mech))
|
||||
(when (not obj)
|
||||
(set! obj obj)
|
||||
(goto cfg-4)
|
||||
)
|
||||
(let ((t9-0 (method-of-type grunt inspect)))
|
||||
(t9-0 obj)
|
||||
)
|
||||
(format #t "~2Thold-id: ~D~%" (-> obj hold-id))
|
||||
(format #t "~2Tdismount-dest: #<vector @ #x~X>~%" (-> obj dismount-dest))
|
||||
(label cfg-4)
|
||||
obj
|
||||
)
|
||||
|
||||
;; definition for method 55 of type grunt-mech
|
||||
;; WARN: Return type mismatch int vs none.
|
||||
(defmethod enemy-method-55 grunt-mech ((obj grunt-mech))
|
||||
((method-of-type grunt enemy-method-55) obj)
|
||||
0
|
||||
(none)
|
||||
)
|
||||
|
||||
;; definition for method 193 of type grunt-mech
|
||||
;; INFO: Used lq/sq
|
||||
;; ERROR: Unsupported inline assembly instruction kind - [mula.s f0, f3]
|
||||
;; ERROR: Unsupported inline assembly instruction kind - [madda.s f1, f4]
|
||||
;; ERROR: Unsupported inline assembly instruction kind - [madd.s f0, f2, f5]
|
||||
(defmethod grunt-mech-method-193 grunt-mech ((obj grunt-mech))
|
||||
(local-vars (f0-3 float) (sv-592 vector))
|
||||
(let ((s4-0 *grunt-mech-info*))
|
||||
(grunt-mech-info-method-10 s4-0)
|
||||
(let ((gp-0 -1))
|
||||
(let ((f30-0 0.0)
|
||||
(s3-0 (-> obj root-override2 trans))
|
||||
)
|
||||
(countdown (s2-0 4)
|
||||
(let ((s1-0 (-> s4-0 holds s2-0)))
|
||||
(when (grunt-mech-info-method-9 s4-0 s2-0 obj #t)
|
||||
(let ((s0-0 (new 'stack-no-clear 'vector)))
|
||||
(set! sv-592 (new 'stack-no-clear 'vector))
|
||||
(set! (-> s0-0 quad) (-> s1-0 world-mat vector 2 quad))
|
||||
(set! (-> s0-0 y) 0.0)
|
||||
(vector-normalize! s0-0 1.0)
|
||||
(vector-! sv-592 (-> s1-0 world-mat trans) (-> obj root-override2 trans))
|
||||
(set! (-> sv-592 y) 0.0)
|
||||
(vector-normalize! sv-592 1.0)
|
||||
(let ((f0-2 (-> sv-592 x))
|
||||
(f1-0 (-> sv-592 y))
|
||||
(f2-0 (-> sv-592 z))
|
||||
(f3-0 (-> s0-0 x))
|
||||
(f4-0 (-> s0-0 y))
|
||||
(f5-0 (-> s0-0 z))
|
||||
)
|
||||
(.mula.s f0-2 f3-0)
|
||||
(.madda.s f1-0 f4-0)
|
||||
(.madd.s f0-3 f2-0 f5-0)
|
||||
)
|
||||
)
|
||||
(when (>= f0-3 0.0)
|
||||
(let ((f0-5 (vector-vector-distance-squared (-> s1-0 world-mat trans) s3-0)))
|
||||
(when (or (= gp-0 -1) (< f0-5 f30-0))
|
||||
(set! f30-0 f0-5)
|
||||
(set! gp-0 s2-0)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(when (!= gp-0 -1)
|
||||
(let ((s3-1 (-> s4-0 holds gp-0 lower-hold)))
|
||||
(when (!= s3-1 -1)
|
||||
(if (and (or (zero? (get-rand-int obj 2))
|
||||
(>= 14336.0 (vector-vector-xz-distance-squared (-> obj root-override2 trans) (target-pos 0)))
|
||||
)
|
||||
(grunt-mech-info-method-9 s4-0 s3-1 obj #t)
|
||||
)
|
||||
(set! gp-0 s3-1)
|
||||
)
|
||||
)
|
||||
)
|
||||
(let ((a1-9 (new 'stack-no-clear 'collide-query)))
|
||||
(set! (-> a1-9 start-pos quad) (-> obj root-override2 trans quad))
|
||||
(set! (-> a1-9 start-pos y) (+ 6144.0 (-> a1-9 start-pos y)))
|
||||
(vector-!
|
||||
(-> a1-9 move-dist)
|
||||
(the-as vector (+ (the-as uint (-> s4-0 holds 0 world-mat trans)) (* 192 gp-0)))
|
||||
(-> a1-9 start-pos)
|
||||
)
|
||||
(let ((v1-41 a1-9))
|
||||
(set! (-> v1-41 radius) 2048.0)
|
||||
(set! (-> v1-41 collide-with) (collide-spec backgnd obstacle hit-by-others-list pusher))
|
||||
(set! (-> v1-41 ignore-process0) obj)
|
||||
(set! (-> v1-41 ignore-process1) #f)
|
||||
(set! (-> v1-41 ignore-pat) (new 'static 'pat-surface :noentity #x1 :nojak #x1 :probe #x1 :noendlessfall #x1))
|
||||
(set! (-> v1-41 action-mask) (collide-action solid))
|
||||
)
|
||||
(if (>= (fill-and-probe-using-line-sphere *collide-cache* a1-9) 0.0)
|
||||
(set! gp-0 -1)
|
||||
)
|
||||
)
|
||||
)
|
||||
gp-0
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for method 184 of type grunt-mech
|
||||
(defmethod grunt-method-184 grunt-mech ((obj grunt-mech) (arg0 float))
|
||||
(local-vars (v1-5 float))
|
||||
(rlet ((acc :class vf)
|
||||
(vf0 :class vf)
|
||||
(vf1 :class vf)
|
||||
(vf2 :class vf)
|
||||
)
|
||||
(init-vf0-vector)
|
||||
(let ((gp-0 (enemy-method-107 obj)))
|
||||
(when gp-0
|
||||
(cond
|
||||
((logtest? (focus-status mech) (-> gp-0 focus-status))
|
||||
(let ((v1-4 (get-trans gp-0 0))
|
||||
(a1-2 (new 'stack-no-clear 'vector))
|
||||
)
|
||||
(vector-! a1-2 v1-4 (-> obj root-override2 trans))
|
||||
(.lvf vf1 (&-> a1-2 quad))
|
||||
)
|
||||
(.add.w.vf vf2 vf0 vf0 :mask #b1)
|
||||
(.mul.vf vf1 vf1 vf1)
|
||||
(.mul.x.vf acc vf2 vf1 :mask #b1)
|
||||
(.add.mul.y.vf acc vf2 vf1 acc :mask #b1)
|
||||
(.add.mul.z.vf vf1 vf2 vf1 acc :mask #b1)
|
||||
(.mov v1-5 vf1)
|
||||
(let ((f0-0 v1-5)
|
||||
(f1-0 28672.0)
|
||||
)
|
||||
(when (>= (* f1-0 f1-0) f0-0)
|
||||
(let ((a1-3 (grunt-mech-method-193 obj)))
|
||||
(cond
|
||||
((= a1-3 -1)
|
||||
(go (method-of-object obj mech-pre-circling))
|
||||
)
|
||||
(else
|
||||
(set! (-> obj hold-id) a1-3)
|
||||
(grunt-mech-info-method-9 *grunt-mech-info* a1-3 obj #f)
|
||||
(go (method-of-object obj mech-lunge))
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
gp-0
|
||||
)
|
||||
(else
|
||||
((method-of-type grunt grunt-method-184) obj arg0)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defstate mech-lunge (grunt-mech)
|
||||
:virtual #t
|
||||
:event (the-as (function process int symbol event-message-block object :behavior grunt-mech) enemy-event-handler)
|
||||
:enter (behavior ()
|
||||
(set! (-> self enemy-flags) (logior (enemy-flag actor-pause-backup) (-> self enemy-flags)))
|
||||
(let ((v1-2 self))
|
||||
(set! (-> v1-2 enemy-flags) (the-as enemy-flag (logclear (-> v1-2 enemy-flags) (enemy-flag enemy-flag37))))
|
||||
)
|
||||
0
|
||||
(let ((v1-4 self))
|
||||
(set! (-> v1-4 enemy-flags) (the-as enemy-flag (logclear (-> v1-4 enemy-flags) (enemy-flag enemy-flag36))))
|
||||
(set! (-> v1-4 nav callback-info) *nav-enemy-null-callback-info*)
|
||||
)
|
||||
0
|
||||
(nav-enemy-method-167 self)
|
||||
(set! (-> self dismount-dest quad) (-> self root-override2 trans quad))
|
||||
(logclear! (-> self root-override2 nav-flags) (nav-flags has-root-sphere))
|
||||
(none)
|
||||
)
|
||||
:exit (behavior ()
|
||||
(logclear! (-> self enemy-flags) (enemy-flag actor-pause-backup))
|
||||
(logior! (-> self root-override2 nav-flags) (nav-flags has-root-sphere))
|
||||
(none)
|
||||
)
|
||||
:trans (behavior ()
|
||||
(grunt-mech-info-method-9 *grunt-mech-info* (-> self hold-id) self #f)
|
||||
(none)
|
||||
)
|
||||
:code (behavior ()
|
||||
(ja-channel-push! 1 (seconds 0.07))
|
||||
(let ((gp-0 (new 'stack-no-clear 'matrix)))
|
||||
(quaternion-copy! (the-as quaternion (-> gp-0 vector)) (-> self root-override2 quat))
|
||||
(set! (-> gp-0 vector 1 quad) (-> self root-override2 trans quad))
|
||||
(ja-no-eval :group! (-> self draw art-group data 48)
|
||||
:num! (seek!
|
||||
(the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 48)) frames num-frames) -1))
|
||||
0.769
|
||||
)
|
||||
:frame-num 0.0
|
||||
)
|
||||
(until (ja-done? 0)
|
||||
(let ((s5-0 *grunt-mech-info*))
|
||||
(grunt-mech-info-method-10 s5-0)
|
||||
(let ((s5-1 (-> s5-0 holds (-> self hold-id))))
|
||||
(matrix->quaternion (the-as quaternion (-> gp-0 vector 2)) (-> s5-1 world-mat))
|
||||
(let ((f30-0 (lerp-scale 0.0 1.0 (ja-aframe-num 0) 0.0 6.0)))
|
||||
(quaternion-slerp!
|
||||
(-> self root-override2 quat)
|
||||
(the-as quaternion (-> gp-0 vector))
|
||||
(the-as quaternion (-> gp-0 vector 2))
|
||||
f30-0
|
||||
)
|
||||
(vector-lerp! (-> self root-override2 trans) (-> gp-0 vector 1) (-> s5-1 world-mat trans) f30-0)
|
||||
)
|
||||
)
|
||||
)
|
||||
(suspend)
|
||||
(ja :num! (seek! max 0.769))
|
||||
)
|
||||
)
|
||||
(go-virtual mech-hold)
|
||||
(none)
|
||||
)
|
||||
:post (the-as (function none :behavior grunt-mech) nav-enemy-simple-post)
|
||||
)
|
||||
|
||||
;; definition for function grunt-mech-hold-post
|
||||
;; INFO: Used lq/sq
|
||||
(defbehavior grunt-mech-hold-post grunt-mech ()
|
||||
(let ((gp-0 *grunt-mech-info*))
|
||||
(grunt-mech-info-method-10 gp-0)
|
||||
(let ((v1-5 (-> gp-0 holds (-> self hold-id)))
|
||||
(a0-2 (-> self root-override2))
|
||||
)
|
||||
(set! (-> a0-2 trans quad) (-> v1-5 world-mat trans quad))
|
||||
(matrix->quaternion (-> a0-2 quat) (-> v1-5 world-mat))
|
||||
)
|
||||
)
|
||||
(nav-enemy-simple-post)
|
||||
(none)
|
||||
)
|
||||
|
||||
;; definition for method 195 of type grunt-mech
|
||||
;; INFO: Used lq/sq
|
||||
(defmethod grunt-mech-method-195 grunt-mech ((obj grunt-mech) (arg0 vector) (arg1 vector) (arg2 vector))
|
||||
(local-vars (v1-13 float))
|
||||
(rlet ((acc :class vf)
|
||||
(vf0 :class vf)
|
||||
(vf1 :class vf)
|
||||
(vf2 :class vf)
|
||||
)
|
||||
(init-vf0-vector)
|
||||
(let ((s5-0 (new 'stack-no-clear 'nav-avoid-spheres-params)))
|
||||
(vector-! (-> s5-0 current-pos) (-> obj root-override2 trans) (-> obj nav state mesh bounds))
|
||||
(vector-normalize-copy! (-> s5-0 travel) arg0 (the-as float arg1))
|
||||
(set! (-> s5-0 pref-dir quad) (-> s5-0 travel quad))
|
||||
(avoid-spheres-1! (-> obj nav) s5-0)
|
||||
(when (>= (fabs (vector-dot (the-as vector (-> s5-0 out-travel)) arg2)) 0.0)
|
||||
(let ((t0-0 (new 'stack-no-clear 'clamp-travel-vector-to-mesh-return-info)))
|
||||
(clamp-vector-to-mesh-no-gaps
|
||||
(-> obj nav)
|
||||
(-> obj root-override2 trans)
|
||||
(-> obj nav state current-poly)
|
||||
(the-as vector (-> s5-0 out-travel))
|
||||
t0-0
|
||||
)
|
||||
)
|
||||
(.lvf vf1 (&-> (-> s5-0 out-travel) 0 quad))
|
||||
(.add.w.vf vf2 vf0 vf0 :mask #b1)
|
||||
(.mul.vf vf1 vf1 vf1)
|
||||
(.mul.x.vf acc vf2 vf1 :mask #b1)
|
||||
(.add.mul.y.vf acc vf2 vf1 acc :mask #b1)
|
||||
(.add.mul.z.vf vf1 vf2 vf1 acc :mask #b1)
|
||||
(.mov v1-13 vf1)
|
||||
(let ((f0-3 v1-13)
|
||||
(f1-1 14336.0)
|
||||
)
|
||||
(when (>= f0-3 (* f1-1 f1-1))
|
||||
(let ((a1-3 (new 'stack-no-clear 'vector)))
|
||||
(set! (-> a1-3 quad) (-> s5-0 out-travel 0 quad))
|
||||
(set! (-> a1-3 w) (-> obj nav-radius-backup))
|
||||
(when (not (add-root-sphere-to-hash! (-> obj nav) a1-3 #x80068))
|
||||
(let ((s4-1 (new 'stack-no-clear 'vector)))
|
||||
(vector+! s4-1 (-> obj root-override2 trans) (the-as vector (-> s5-0 out-travel)))
|
||||
(let ((s5-1 (new 'stack-no-clear 'collide-query)))
|
||||
(when (enemy-method-126 obj s5-1 s4-1 (the-as collide-spec (-> obj gnd-collide)) 4096.0 122880.0 1024.0)
|
||||
(set! (-> s4-1 y) (-> s5-1 best-other-tri intersect y))
|
||||
(set! (-> obj dismount-dest quad) (-> s4-1 quad))
|
||||
#t
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for method 192 of type grunt-mech
|
||||
(defmethod grunt-mech-method-192 grunt-mech ((obj grunt-mech))
|
||||
(do-navigation-to-destination (-> obj nav state) (-> obj root-override2 trans))
|
||||
(let ((a1-1 *target*))
|
||||
(if (or (not a1-1) (zero? (logand (focus-status mech) (-> a1-1 focus-status))))
|
||||
(return #t)
|
||||
)
|
||||
)
|
||||
(when (logtest? (-> obj nav state flags) (nav-state-flag in-mesh))
|
||||
(let ((s5-0 *grunt-mech-info*))
|
||||
(grunt-mech-info-method-10 s5-0)
|
||||
(let* ((v1-15 (-> obj nav))
|
||||
(a0-7 (-> v1-15 state mesh sphere-hash sphere-array))
|
||||
(a1-3 (-> v1-15 sphere-id-array))
|
||||
(a2-1 (-> v1-15 state mesh bounds))
|
||||
(a3-0 (-> v1-15 root-nav-sphere))
|
||||
(t0-0 (-> v1-15 sphere-count))
|
||||
)
|
||||
(dotimes (t1-0 t0-0)
|
||||
(let ((t3-0 (-> a0-7 (-> a1-3 t1-0)))
|
||||
(t2-4 (-> v1-15 sphere-array t1-0))
|
||||
)
|
||||
(vector-! (the-as vector t2-4) (the-as vector t3-0) a2-1)
|
||||
(set! (-> t2-4 r) (+ (-> t3-0 r) (-> a3-0 w)))
|
||||
)
|
||||
)
|
||||
)
|
||||
0
|
||||
(let ((v1-22 (-> s5-0 holds (-> obj hold-id)))
|
||||
(s5-1 (new 'stack-no-clear 'vector))
|
||||
)
|
||||
(vector-negate! s5-1 (-> v1-22 world-mat vector 2))
|
||||
(set! (-> s5-1 y) 0.0)
|
||||
(vector-normalize! s5-1 1.0)
|
||||
(countdown (s4-0 3)
|
||||
(let ((s3-0 (new 'stack-no-clear 'vector)))
|
||||
(vector-rotate-around-y! s3-0 s5-1 (get-rand-float-range obj -10922.667 10922.667))
|
||||
(when (grunt-mech-method-195 obj s3-0 (the-as vector (get-rand-float-range obj 16384.0 24576.0)) s5-1)
|
||||
#t
|
||||
(goto cfg-16)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(label cfg-16)
|
||||
(let ((a0-15 (-> obj root-override2 trans)))
|
||||
(if (or (>= 0.0 (- (-> a0-15 y) (-> obj dismount-dest y)))
|
||||
(let ((f0-4 40960.0))
|
||||
(< (* f0-4 f0-4) (vector-vector-xz-distance-squared a0-15 (-> obj dismount-dest)))
|
||||
)
|
||||
)
|
||||
(return #t)
|
||||
)
|
||||
)
|
||||
#f
|
||||
)
|
||||
|
||||
;; definition for method 194 of type grunt-mech
|
||||
;; WARN: Return type mismatch object vs none.
|
||||
(defmethod grunt-mech-method-194 grunt-mech ((obj grunt-mech))
|
||||
(with-pp
|
||||
(let ((a1-0 (new 'stack-no-clear 'event-message-block)))
|
||||
(set! (-> a1-0 from) (process->ppointer pp))
|
||||
(set! (-> a1-0 num-params) 2)
|
||||
(set! (-> a1-0 message) 'attack)
|
||||
(set! (-> a1-0 param 0) (the-as uint #f))
|
||||
(let ((v1-3 (new 'static 'attack-info :mask (attack-info-mask mode id))))
|
||||
(let* ((a0-2 *game-info*)
|
||||
(a2-1 (+ (-> a0-2 attack-id) 1))
|
||||
)
|
||||
(set! (-> a0-2 attack-id) a2-1)
|
||||
(set! (-> v1-3 id) a2-1)
|
||||
)
|
||||
(set! (-> v1-3 mode) 'grunt)
|
||||
(set! (-> a1-0 param 1) (the-as uint v1-3))
|
||||
)
|
||||
(send-event-function *target* a1-0)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for method 191 of type grunt-mech
|
||||
;; WARN: Return type mismatch object vs none.
|
||||
(defmethod grunt-mech-method-191 grunt-mech ((obj grunt-mech))
|
||||
(with-pp
|
||||
(if (>= (-> pp clock frame-counter) (the-as time-frame (-> obj state-timeout)))
|
||||
(go (method-of-object obj mech-dismount))
|
||||
)
|
||||
(none)
|
||||
)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defstate mech-hold (grunt-mech)
|
||||
:virtual #t
|
||||
:event (the-as (function process int symbol event-message-block object :behavior grunt-mech) enemy-event-handler)
|
||||
:enter (behavior ()
|
||||
(set! (-> self state-time) (-> self clock frame-counter))
|
||||
(set! (-> self enemy-flags) (logior (enemy-flag actor-pause-backup) (-> self enemy-flags)))
|
||||
(set! (-> self root-override2 root-prim prim-core collide-as) (collide-spec))
|
||||
(enemy-method-110 self)
|
||||
(set! (-> self state-timeout)
|
||||
(the-as uint (+ (-> self clock frame-counter) (get-rand-int-range self 450 900)))
|
||||
)
|
||||
(logclear! (-> self root-override2 nav-flags) (nav-flags has-root-sphere))
|
||||
(none)
|
||||
)
|
||||
:exit (behavior ()
|
||||
(logclear! (-> self enemy-flags) (enemy-flag actor-pause-backup))
|
||||
(let ((v1-3 (-> self root-override2 root-prim)))
|
||||
(set! (-> v1-3 prim-core collide-as) (-> self root-override2 backup-collide-as))
|
||||
(set! (-> v1-3 prim-core collide-with) (-> self root-override2 backup-collide-with))
|
||||
)
|
||||
(logior! (-> self root-override2 nav-flags) (nav-flags has-root-sphere))
|
||||
(none)
|
||||
)
|
||||
:trans (behavior ()
|
||||
(if (or (not (grunt-mech-info-method-9 *grunt-mech-info* (-> self hold-id) self #f)) (grunt-mech-method-192 self))
|
||||
(go-virtual mech-dismount)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
:code (behavior ()
|
||||
(ja-no-eval :group! (-> self draw art-group data 49)
|
||||
:num! (seek! (the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 49)) frames num-frames) -1)))
|
||||
:frame-num 0.0
|
||||
)
|
||||
(until (ja-done? 0)
|
||||
(suspend)
|
||||
(ja :num! (seek!))
|
||||
)
|
||||
(grunt-mech-method-191 self)
|
||||
(let ((gp-0 0))
|
||||
0
|
||||
(until #f
|
||||
(set! gp-0 (enemy-method-120 self 3 (ash 1 gp-0)))
|
||||
(let ((v1-30 gp-0))
|
||||
(cond
|
||||
((zero? v1-30)
|
||||
(ja-channel-push! 1 (seconds 0.13))
|
||||
(countdown (s5-0 (get-rand-int-range self 1 2))
|
||||
(let ((s4-0 #t))
|
||||
(ja-no-eval :group! (-> self draw art-group data 51) :num! (seek! (ja-aframe 17.0 0) 0.222) :frame-num 0.0)
|
||||
(until (ja-done? 0)
|
||||
(suspend)
|
||||
(ja :num! (seek! (ja-aframe 17.0 0) 0.222))
|
||||
)
|
||||
(ja-no-eval :group! (-> self draw art-group data 51)
|
||||
:num! (seek! (ja-aframe 20.0 0))
|
||||
:frame-num (ja-aframe 17.0 0)
|
||||
)
|
||||
(until (ja-done? 0)
|
||||
(when (and s4-0 (>= (ja-aframe-num 0) 18.5))
|
||||
(grunt-mech-method-194 self)
|
||||
(set! s4-0 #f)
|
||||
)
|
||||
(suspend)
|
||||
(ja :num! (seek! (ja-aframe 20.0 0)))
|
||||
)
|
||||
)
|
||||
(grunt-mech-method-191 self)
|
||||
)
|
||||
)
|
||||
((= v1-30 1)
|
||||
(ja-channel-push! 1 (seconds 0.13))
|
||||
(countdown (s5-1 (get-rand-int-range self 1 3))
|
||||
(let ((s4-1 #t))
|
||||
(ja-no-eval :group! (-> self draw art-group data 52) :num! (seek! (ja-aframe 24.0 0) 0.568) :frame-num 0.0)
|
||||
(until (ja-done? 0)
|
||||
(suspend)
|
||||
(ja :num! (seek! (ja-aframe 24.0 0) 0.568))
|
||||
)
|
||||
(ja-no-eval :group! (-> self draw art-group data 52)
|
||||
:num! (seek! (ja-aframe 28.0 0) 2.0)
|
||||
:frame-num (ja-aframe 24.0 0)
|
||||
)
|
||||
(until (ja-done? 0)
|
||||
(when (and s4-1 (>= (ja-aframe-num 0) 27.0))
|
||||
(grunt-mech-method-194 self)
|
||||
(set! s4-1 #f)
|
||||
)
|
||||
(suspend)
|
||||
(ja :num! (seek! (ja-aframe 28.0 0) 2.0))
|
||||
)
|
||||
)
|
||||
(grunt-mech-method-191 self)
|
||||
)
|
||||
)
|
||||
(else
|
||||
(ja-channel-push! 1 (seconds 0.13))
|
||||
(countdown (s5-2 (get-rand-int-range self 1 3))
|
||||
(let ((s4-2 #t))
|
||||
(ja-no-eval :group! (-> self draw art-group data 53) :num! (seek! (ja-aframe 30.0 0) 0.111) :frame-num 0.0)
|
||||
(until (ja-done? 0)
|
||||
(suspend)
|
||||
(ja :num! (seek! (ja-aframe 30.0 0) 0.111))
|
||||
)
|
||||
(ja-no-eval :group! (-> self draw art-group data 53)
|
||||
:num! (seek! (ja-aframe 32.0 0) 0.5)
|
||||
:frame-num (ja-aframe 30.0 0)
|
||||
)
|
||||
(until (ja-done? 0)
|
||||
(when (and s4-2 (>= (ja-aframe-num 0) 31.0))
|
||||
(grunt-mech-method-194 self)
|
||||
(set! s4-2 #f)
|
||||
)
|
||||
(suspend)
|
||||
(ja :num! (seek! (ja-aframe 32.0 0) 0.5))
|
||||
)
|
||||
)
|
||||
(grunt-mech-method-191 self)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(when (= (get-rand-int self 4) 3)
|
||||
(ja-channel-push! 1 (seconds 0.13))
|
||||
(ja-no-eval :group! (-> self draw art-group data 50)
|
||||
:num! (seek!
|
||||
(the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 50)) frames num-frames) -1))
|
||||
0.090909
|
||||
)
|
||||
:frame-num 0.0
|
||||
)
|
||||
(until (ja-done? 0)
|
||||
(suspend)
|
||||
(ja :num! (seek! max 0.090909))
|
||||
)
|
||||
(grunt-mech-method-191 self)
|
||||
)
|
||||
)
|
||||
)
|
||||
#f
|
||||
(none)
|
||||
)
|
||||
:post grunt-mech-hold-post
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defstate mech-dismount (grunt-mech)
|
||||
:virtual #t
|
||||
:event (the-as (function process int symbol event-message-block object :behavior grunt-mech) enemy-event-handler)
|
||||
:enter (behavior ()
|
||||
(set! (-> self state-time) (-> self clock frame-counter))
|
||||
(set! (-> self root-override2 root-prim prim-core collide-as) (collide-spec))
|
||||
(let* ((v1-4 (-> self nav))
|
||||
(a1-0 (-> self dismount-dest))
|
||||
(f0-0 (-> v1-4 extra-nav-sphere w))
|
||||
)
|
||||
(set! (-> v1-4 extra-nav-sphere quad) (-> a1-0 quad))
|
||||
(set! (-> v1-4 extra-nav-sphere w) f0-0)
|
||||
)
|
||||
0
|
||||
(let ((v1-7 (-> self nav)))
|
||||
(set! (-> v1-7 extra-nav-sphere w) (-> self nav-radius-backup))
|
||||
)
|
||||
0
|
||||
(let ((v1-9 (-> self nav)))
|
||||
(logior! (-> v1-9 shape nav-flags) (nav-flags has-extra-sphere))
|
||||
)
|
||||
0
|
||||
(logclear! (-> self root-override2 nav-flags) (nav-flags has-root-sphere))
|
||||
(none)
|
||||
)
|
||||
:exit (behavior ()
|
||||
(let ((v1-1 (-> self root-override2 root-prim)))
|
||||
(set! (-> v1-1 prim-core collide-as) (-> self root-override2 backup-collide-as))
|
||||
(set! (-> v1-1 prim-core collide-with) (-> self root-override2 backup-collide-with))
|
||||
)
|
||||
(let ((v1-2 (-> self nav)))
|
||||
(logclear! (-> v1-2 shape nav-flags) (nav-flags has-extra-sphere))
|
||||
)
|
||||
0
|
||||
(logior! (-> self root-override2 nav-flags) (nav-flags has-root-sphere))
|
||||
(none)
|
||||
)
|
||||
:code (behavior ()
|
||||
(ja-channel-push! 1 (seconds 0.07))
|
||||
(let ((gp-0 (new 'stack-no-clear 'matrix)))
|
||||
(vector-! (-> gp-0 vector 1) (-> self root-override2 trans) (-> self dismount-dest))
|
||||
(set! (-> gp-0 vector 1 y) 0.0)
|
||||
(vector-normalize! (-> gp-0 vector 1) 1.0)
|
||||
(quaternion-look-at! (the-as quaternion (-> gp-0 vector 2)) (-> gp-0 vector 1) *up-vector*)
|
||||
(quaternion-copy! (the-as quaternion (-> gp-0 vector)) (-> self root-override2 quat))
|
||||
(set! (-> gp-0 vector 1 quad) (-> self root-override2 trans quad))
|
||||
(ja-no-eval :group! (-> self draw art-group data 54)
|
||||
:num! (seek! (the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 54)) frames num-frames) -1)))
|
||||
:frame-num 0.0
|
||||
)
|
||||
(until (ja-done? 0)
|
||||
(let ((f30-0 (lerp-scale 0.0 1.0 (ja-aframe-num 0) 33.0 41.0)))
|
||||
(quaternion-slerp!
|
||||
(-> self root-override2 quat)
|
||||
(the-as quaternion (-> gp-0 vector))
|
||||
(the-as quaternion (-> gp-0 vector 2))
|
||||
f30-0
|
||||
)
|
||||
(vector-lerp! (-> self root-override2 trans) (-> gp-0 vector 1) (-> self dismount-dest) f30-0)
|
||||
)
|
||||
(suspend)
|
||||
(ja :num! (seek!))
|
||||
)
|
||||
)
|
||||
(let ((v1-32 (-> self root-override2 root-prim)))
|
||||
(set! (-> v1-32 prim-core collide-as) (-> self root-override2 backup-collide-as))
|
||||
(set! (-> v1-32 prim-core collide-with) (-> self root-override2 backup-collide-with))
|
||||
)
|
||||
(let ((v1-33 (-> self nav)))
|
||||
(logclear! (-> v1-33 shape nav-flags) (nav-flags has-extra-sphere))
|
||||
)
|
||||
0
|
||||
(let ((v1-37 (-> self nav state)))
|
||||
(set! (-> v1-37 current-poly) (the-as nav-poly #f))
|
||||
)
|
||||
0
|
||||
(logclear! (-> self nav state flags) (nav-state-flag at-target))
|
||||
(ja-no-eval :group! (-> self draw art-group data 55)
|
||||
:num! (seek! (the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 55)) frames num-frames) -1)))
|
||||
:frame-num 0.0
|
||||
)
|
||||
(until (ja-done? 0)
|
||||
(suspend)
|
||||
(ja :num! (seek!))
|
||||
)
|
||||
(ja-channel-push! 1 (seconds 0.13))
|
||||
(go-virtual mech-post-circling)
|
||||
(none)
|
||||
)
|
||||
:post (the-as (function none :behavior grunt-mech) nav-enemy-simple-post)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defstate mech-post-circling (grunt-mech)
|
||||
:virtual #t
|
||||
:event (the-as (function process int symbol event-message-block object :behavior grunt-mech) enemy-event-handler)
|
||||
:enter (behavior ()
|
||||
((-> (method-of-type grunt circling) enter))
|
||||
(set! (-> self state-timeout)
|
||||
(the-as uint (+ (-> self clock frame-counter) (get-rand-int-range self 750 1200)))
|
||||
)
|
||||
(none)
|
||||
)
|
||||
:trans (behavior ()
|
||||
(let ((a0-1 (handle->process (-> self focus handle))))
|
||||
(if a0-1
|
||||
(set! (-> self focus-pos quad) (-> (get-trans (the-as process-focusable a0-1) 0) quad))
|
||||
)
|
||||
)
|
||||
(let ((gp-1 (-> self focus aware)))
|
||||
(if (or (!= gp-1 3) (not (enemy-method-107 self)))
|
||||
(set! (-> self starting-time) (the-as uint (-> self clock frame-counter)))
|
||||
)
|
||||
(when (>= (- (-> self clock frame-counter) (-> self state-time)) (the-as time-frame (-> self reaction-time)))
|
||||
(when (>= 1 (the-as int gp-1))
|
||||
(nav-enemy-method-161 self)
|
||||
(if (-> self enemy-info-override use-stop-chase)
|
||||
(go-virtual stop-chase)
|
||||
(go-virtual active)
|
||||
)
|
||||
)
|
||||
(when (= gp-1 (enemy-aware enemy-aware-3))
|
||||
(let ((v1-33 (enemy-method-107 self)))
|
||||
(when v1-33
|
||||
(cond
|
||||
((logtest? (focus-status mech) (-> v1-33 focus-status))
|
||||
(when (>= (-> self clock frame-counter) (the-as time-frame (-> self state-timeout)))
|
||||
(nav-enemy-method-161 self)
|
||||
(go-hostile self)
|
||||
)
|
||||
)
|
||||
(else
|
||||
(when (>= (- (-> self clock frame-counter) (the-as int (-> self starting-time)))
|
||||
(the-as time-frame (-> self reaction-time))
|
||||
)
|
||||
(nav-enemy-method-161 self)
|
||||
(go-hostile self)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(if (= gp-1 (enemy-aware enemy-aware-2))
|
||||
(go-stare self)
|
||||
)
|
||||
(if (or (nav-enemy-method-163 self) (logtest? (enemy-flag enemy-flag41) (-> self enemy-flags)))
|
||||
(go-stare2 self)
|
||||
)
|
||||
)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
:code (-> (method-of-type grunt circling) code)
|
||||
:post (-> (method-of-type grunt circling) post)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defstate mech-pre-circling (grunt-mech)
|
||||
:virtual #t
|
||||
:event (the-as (function process int symbol event-message-block object :behavior grunt-mech) enemy-event-handler)
|
||||
:enter (behavior ()
|
||||
((-> (method-of-type grunt-mech mech-post-circling) enter))
|
||||
(set! (-> self state-timeout)
|
||||
(the-as uint (+ (-> self clock frame-counter) (get-rand-int-range self 900 1800)))
|
||||
)
|
||||
(none)
|
||||
)
|
||||
:trans (-> (method-of-type grunt-mech mech-post-circling) trans)
|
||||
:code (-> (method-of-type grunt-mech mech-post-circling) code)
|
||||
:post (-> (method-of-type grunt-mech mech-post-circling) post)
|
||||
)
|
||||
|
||||
|
||||
|
||||
|
||||
+7
-18
@@ -193,7 +193,7 @@
|
||||
:color (new 'static 'rgbaf :x 255.0 :y 128.0 :w 16.0)
|
||||
:fade-a -0.0000122044
|
||||
:fade-b 8.997864
|
||||
:tex-id #xc0bb00
|
||||
:tex-id (new 'static 'texture-id :index #xbb :page #xc)
|
||||
)
|
||||
)
|
||||
|
||||
@@ -206,7 +206,7 @@
|
||||
:color (new 'static 'rgbaf :x 255.0 :y 64.0 :w 16.0)
|
||||
:fade-a -0.0000122044
|
||||
:fade-b 8.997864
|
||||
:tex-id #xc0bc00
|
||||
:tex-id (new 'static 'texture-id :index #xbc :page #xc)
|
||||
)
|
||||
)
|
||||
|
||||
@@ -218,7 +218,7 @@
|
||||
:color (new 'static 'rgbaf :x 255.0 :y 64.0 :w 16.0)
|
||||
:fade-a -0.0000122044
|
||||
:fade-b 8.997864
|
||||
:tex-id #xc0ca00
|
||||
:tex-id (new 'static 'texture-id :index #xca :page #xc)
|
||||
)
|
||||
)
|
||||
|
||||
@@ -273,11 +273,7 @@
|
||||
(set! (-> s3-1 1 normal w) f0-14)
|
||||
(set! (-> s3-1 1 normal x) (* 0.025 f0-14))
|
||||
)
|
||||
*simple-sprite-system*
|
||||
(let ((t9-4 (method-of-type simple-sprite-system add!)))
|
||||
(-> s3-1 1)
|
||||
(t9-4)
|
||||
)
|
||||
(add! *simple-sprite-system* (the-as dma-buffer (-> s3-1 1)))
|
||||
(forward-up->quaternion (the-as quaternion (-> s3-1 0)) arg1 (the-as vector (-> obj rbody state matrix)))
|
||||
(quaternion-rotate-local-x! (the-as quaternion (-> s3-1 0)) (the-as quaternion (-> s3-1 0)) 32768.0)
|
||||
(let ((v1-16 (-> s3-1 0 normal)))
|
||||
@@ -394,8 +390,7 @@
|
||||
(set! (-> s4-0 color x) 255.0)
|
||||
(set! (-> s4-0 color y) (rand-vu-float-range 192.0 255.0))
|
||||
(set! (-> s4-0 color w) (* f30-1 (rand-vu-float-range 16.0 18.0)))
|
||||
*simple-sprite-system*
|
||||
((method-of-type simple-sprite-system add!))
|
||||
(add! *simple-sprite-system* (the-as dma-buffer s4-0))
|
||||
(let ((f0-21 (-> obj camera-dist2))
|
||||
(f1-6 245760.0)
|
||||
)
|
||||
@@ -408,8 +403,7 @@
|
||||
(set! (-> s4-0 fade-b) 2.3332994)
|
||||
(set! (-> s4-0 color z) (rand-vu-float-range 128.0 160.0))
|
||||
(set! (-> s4-0 color w) (* f30-1 (rand-vu-float-range 32.0 36.0)))
|
||||
*simple-sprite-system*
|
||||
((method-of-type simple-sprite-system add!))
|
||||
(add! *simple-sprite-system* (the-as dma-buffer s4-0))
|
||||
)
|
||||
)
|
||||
)
|
||||
@@ -429,8 +423,7 @@
|
||||
(set! (-> s4-1 rot-angle) (* 182.04445 (rand-vu-float-range -4.0 4.0)))
|
||||
(set! (-> s4-1 color y) (* 64.0 (rand-vu)))
|
||||
(set! (-> s4-1 color w) (* f30-1 (rand-vu-float-range 16.0 21.0)))
|
||||
*simple-sprite-system*
|
||||
((method-of-type simple-sprite-system add!))
|
||||
(add! *simple-sprite-system* (the-as dma-buffer s4-1))
|
||||
)
|
||||
)
|
||||
)
|
||||
@@ -602,7 +595,3 @@
|
||||
(none)
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
+109
-103
@@ -206,109 +206,115 @@
|
||||
)
|
||||
|
||||
;; definition for symbol *amphibian-nav-enemy-info*, type nav-enemy-info
|
||||
(define *amphibian-nav-enemy-info* (new 'static 'nav-enemy-info
|
||||
:use-die-falling #t
|
||||
:use-victory #f
|
||||
:use-jump-blocked #t
|
||||
:debug-draw-neck #f
|
||||
:jump-debug-draw #f
|
||||
:move-to-ground #t
|
||||
:hover-if-no-ground #f
|
||||
:idle-anim-script (new 'static 'array uint32 4 #x1010401 #x0 #x0 #x0)
|
||||
:idle-anim 4
|
||||
:notice-anim 28
|
||||
:hostile-anim 26
|
||||
:hit-anim 6
|
||||
:knocked-anim 6
|
||||
:knocked-land-anim 7
|
||||
:die-anim 12
|
||||
:die-falling-anim 21
|
||||
:victory-anim -1
|
||||
:jump-wind-up-anim 30
|
||||
:jump-in-air-anim 31
|
||||
:jump-land-anim 32
|
||||
:neck-joint 11
|
||||
:look-at-joint 12
|
||||
:bullseye-joint 4
|
||||
:sound-hit (static-sound-name "amphibian-hit")
|
||||
:sound-die (static-sound-name "amphibian-die")
|
||||
:notice-distance (meters 40)
|
||||
:notice-distance-delta (meters 10)
|
||||
:proximity-notice-distance (meters 20)
|
||||
:default-hit-points 4
|
||||
:gnd-collide-with (collide-spec backgnd)
|
||||
:overlaps-others-collide-with-filter (collide-spec jak bot player-list)
|
||||
:penetrate-knocked #x11fffdffa
|
||||
:movement-gravity (meters -100)
|
||||
:friction 0.8
|
||||
:attack-shove-back (meters 3.5)
|
||||
:attack-shove-up (meters 2)
|
||||
:attack-mode 'generic
|
||||
:attack-damage 1
|
||||
:recover-gnd-collide-with (collide-spec backgnd crate obstacle hit-by-others-list pusher)
|
||||
:jump-height-min (meters 3)
|
||||
:jump-height-factor 0.5
|
||||
:knocked-seek-ry-clamp 6371.5557
|
||||
:knocked-soft-vxz-lo 106496.0
|
||||
:knocked-soft-vxz-hi 94208.0
|
||||
:knocked-soft-vy-lo 122880.0
|
||||
:knocked-soft-vy-hi 139264.0
|
||||
:knocked-medium-vxz-lo 106496.0
|
||||
:knocked-medium-vxz-hi 94208.0
|
||||
:knocked-medium-vy-lo 122880.0
|
||||
:knocked-medium-vy-hi 139264.0
|
||||
:knocked-hard-vxz-lo 78643.2
|
||||
:knocked-hard-vxz-hi 117964.8
|
||||
:knocked-hard-vy-lo 183500.8
|
||||
:knocked-hard-vy-hi 209715.2
|
||||
:knocked-huge-vxz-lo 164659.2
|
||||
:knocked-huge-vxz-hi 249036.8
|
||||
:knocked-huge-vy-lo 183500.8
|
||||
:knocked-huge-vy-hi 217907.2
|
||||
:knocked-yellow-vxz-lo 40960.0
|
||||
:knocked-yellow-vxz-hi 49152.0
|
||||
:knocked-yellow-vy-lo 57344.0
|
||||
:knocked-yellow-vy-hi 81920.0
|
||||
:knocked-red-vxz-lo 24576.0
|
||||
:knocked-red-vxz-hi 196608.0
|
||||
:knocked-red-vy-lo 94208.0
|
||||
:knocked-red-vy-hi 151552.0
|
||||
:knocked-blue-vxz-lo 40960.0
|
||||
:knocked-blue-vxz-hi 49152.0
|
||||
:knocked-blue-vy-lo 24576.0
|
||||
:knocked-blue-vy-hi 81920.0
|
||||
:shadow-size (meters 1)
|
||||
:shadow-max-y (meters 1)
|
||||
:shadow-min-y (meters -1)
|
||||
:shadow-locus-dist (meters 150)
|
||||
:gem-joint -1
|
||||
:gem-offset (new 'static 'sphere :r 163840.0)
|
||||
:callback-info #f
|
||||
:use-momentum #t
|
||||
:use-frustration #t
|
||||
:use-stop-chase #t
|
||||
:use-circling #t
|
||||
:use-pacing #t
|
||||
:walk-anim 16
|
||||
:turn-anim -1
|
||||
:run-anim 26
|
||||
:taunt-anim -1
|
||||
:run-travel-speed (meters 6)
|
||||
:run-acceleration (meters 8)
|
||||
:run-turning-acceleration (meters 10)
|
||||
:walk-travel-speed (meters 3)
|
||||
:walk-acceleration (meters 4)
|
||||
:walk-turning-acceleration (meters 3)
|
||||
:maximum-rotation-rate (degrees 180.0)
|
||||
:notice-nav-radius (meters 2)
|
||||
:frustration-distance (meters 8)
|
||||
:frustration-time (seconds 4)
|
||||
:blocked-time (seconds 0.3)
|
||||
:circle-dist-lo 20480.0
|
||||
:circle-dist-hi 61440.0
|
||||
:nav-mesh #f
|
||||
)
|
||||
)
|
||||
(define *amphibian-nav-enemy-info*
|
||||
(new 'static 'nav-enemy-info
|
||||
:use-die-falling #t
|
||||
:use-victory #f
|
||||
:use-jump-blocked #t
|
||||
:debug-draw-neck #f
|
||||
:jump-debug-draw #f
|
||||
:move-to-ground #t
|
||||
:hover-if-no-ground #f
|
||||
:idle-anim-script (new 'static 'array idle-control-frame 4
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x4 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
)
|
||||
:idle-anim 4
|
||||
:notice-anim 28
|
||||
:hostile-anim 26
|
||||
:hit-anim 6
|
||||
:knocked-anim 6
|
||||
:knocked-land-anim 7
|
||||
:die-anim 12
|
||||
:die-falling-anim 21
|
||||
:victory-anim -1
|
||||
:jump-wind-up-anim 30
|
||||
:jump-in-air-anim 31
|
||||
:jump-land-anim 32
|
||||
:neck-joint 11
|
||||
:look-at-joint 12
|
||||
:bullseye-joint 4
|
||||
:sound-hit (static-sound-name "amphibian-hit")
|
||||
:sound-die (static-sound-name "amphibian-die")
|
||||
:notice-distance (meters 40)
|
||||
:notice-distance-delta (meters 10)
|
||||
:proximity-notice-distance (meters 20)
|
||||
:default-hit-points 4
|
||||
:gnd-collide-with (collide-spec backgnd)
|
||||
:overlaps-others-collide-with-filter (collide-spec jak bot player-list)
|
||||
:penetrate-knocked #x11fffdffa
|
||||
:movement-gravity (meters -100)
|
||||
:friction 0.8
|
||||
:attack-shove-back (meters 3.5)
|
||||
:attack-shove-up (meters 2)
|
||||
:attack-mode 'generic
|
||||
:attack-damage 1
|
||||
:recover-gnd-collide-with (collide-spec backgnd crate obstacle hit-by-others-list pusher)
|
||||
:jump-height-min (meters 3)
|
||||
:jump-height-factor 0.5
|
||||
:knocked-seek-ry-clamp 6371.5557
|
||||
:knocked-soft-vxz-lo 106496.0
|
||||
:knocked-soft-vxz-hi 94208.0
|
||||
:knocked-soft-vy-lo 122880.0
|
||||
:knocked-soft-vy-hi 139264.0
|
||||
:knocked-medium-vxz-lo 106496.0
|
||||
:knocked-medium-vxz-hi 94208.0
|
||||
:knocked-medium-vy-lo 122880.0
|
||||
:knocked-medium-vy-hi 139264.0
|
||||
:knocked-hard-vxz-lo 78643.2
|
||||
:knocked-hard-vxz-hi 117964.8
|
||||
:knocked-hard-vy-lo 183500.8
|
||||
:knocked-hard-vy-hi 209715.2
|
||||
:knocked-huge-vxz-lo 164659.2
|
||||
:knocked-huge-vxz-hi 249036.8
|
||||
:knocked-huge-vy-lo 183500.8
|
||||
:knocked-huge-vy-hi 217907.2
|
||||
:knocked-yellow-vxz-lo 40960.0
|
||||
:knocked-yellow-vxz-hi 49152.0
|
||||
:knocked-yellow-vy-lo 57344.0
|
||||
:knocked-yellow-vy-hi 81920.0
|
||||
:knocked-red-vxz-lo 24576.0
|
||||
:knocked-red-vxz-hi 196608.0
|
||||
:knocked-red-vy-lo 94208.0
|
||||
:knocked-red-vy-hi 151552.0
|
||||
:knocked-blue-vxz-lo 40960.0
|
||||
:knocked-blue-vxz-hi 49152.0
|
||||
:knocked-blue-vy-lo 24576.0
|
||||
:knocked-blue-vy-hi 81920.0
|
||||
:shadow-size (meters 1)
|
||||
:shadow-max-y (meters 1)
|
||||
:shadow-min-y (meters -1)
|
||||
:shadow-locus-dist (meters 150)
|
||||
:gem-joint -1
|
||||
:gem-offset (new 'static 'sphere :r 163840.0)
|
||||
:callback-info #f
|
||||
:use-momentum #t
|
||||
:use-frustration #t
|
||||
:use-stop-chase #t
|
||||
:use-circling #t
|
||||
:use-pacing #t
|
||||
:walk-anim 16
|
||||
:turn-anim -1
|
||||
:run-anim 26
|
||||
:taunt-anim -1
|
||||
:run-travel-speed (meters 6)
|
||||
:run-acceleration (meters 8)
|
||||
:run-turning-acceleration (meters 10)
|
||||
:walk-travel-speed (meters 3)
|
||||
:walk-acceleration (meters 4)
|
||||
:walk-turning-acceleration (meters 3)
|
||||
:maximum-rotation-rate (degrees 180.0)
|
||||
:notice-nav-radius (meters 2)
|
||||
:frustration-distance (meters 8)
|
||||
:frustration-time (seconds 4)
|
||||
:blocked-time (seconds 0.3)
|
||||
:circle-dist-lo 20480.0
|
||||
:circle-dist-hi 61440.0
|
||||
:nav-mesh #f
|
||||
)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(set! (-> *amphibian-nav-enemy-info* fact-defaults) *fact-info-enemy-defaults*)
|
||||
|
||||
Generated
Vendored
+6
-1
@@ -44,7 +44,12 @@
|
||||
:jump-debug-draw #f
|
||||
:move-to-ground #t
|
||||
:hover-if-no-ground #f
|
||||
:idle-anim-script (new 'static 'array uint32 4 #x1e0002 #x64640401 #x0 #x0)
|
||||
:idle-anim-script (new 'static 'array idle-control-frame 4
|
||||
(new 'static 'idle-control-frame :command #x2 :param0 #x1e)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x4 :param0 #x64 :param1 #x64)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
)
|
||||
:idle-anim 4
|
||||
:notice-anim 5
|
||||
:hostile-anim 8
|
||||
|
||||
+109
-103
@@ -114,109 +114,115 @@
|
||||
)
|
||||
|
||||
;; definition for symbol *fodder-nav-enemy-info*, type nav-enemy-info
|
||||
(define *fodder-nav-enemy-info* (new 'static 'nav-enemy-info
|
||||
:use-die-falling #t
|
||||
:use-victory #f
|
||||
:use-jump-blocked #t
|
||||
:debug-draw-neck #f
|
||||
:jump-debug-draw #f
|
||||
:move-to-ground #t
|
||||
:hover-if-no-ground #f
|
||||
:idle-anim-script (new 'static 'array uint32 4 #x1010401 #x0 #x0 #x0)
|
||||
:idle-anim 6
|
||||
:notice-anim 13
|
||||
:hostile-anim 7
|
||||
:hit-anim 13
|
||||
:knocked-anim 16
|
||||
:knocked-land-anim 17
|
||||
:die-anim 14
|
||||
:die-falling-anim 21
|
||||
:victory-anim 6
|
||||
:jump-wind-up-anim 7
|
||||
:jump-in-air-anim 7
|
||||
:jump-land-anim 7
|
||||
:neck-joint 5
|
||||
:look-at-joint 5
|
||||
:bullseye-joint 4
|
||||
:sound-hit (static-sound-name "fodder-hit")
|
||||
:sound-die (static-sound-name "fodder-die")
|
||||
:notice-distance (meters 40)
|
||||
:notice-distance-delta (meters 10)
|
||||
:proximity-notice-distance (meters 40)
|
||||
:default-hit-points 1
|
||||
:gnd-collide-with (collide-spec backgnd)
|
||||
:overlaps-others-collide-with-filter (collide-spec jak bot player-list)
|
||||
:penetrate-knocked #x11fffdffa
|
||||
:movement-gravity (meters -100)
|
||||
:friction 0.8
|
||||
:attack-shove-back (meters 3)
|
||||
:attack-shove-up (meters 2)
|
||||
:attack-mode 'generic
|
||||
:attack-damage 1
|
||||
:recover-gnd-collide-with (collide-spec backgnd crate obstacle hit-by-others-list pusher)
|
||||
:jump-height-min (meters 3)
|
||||
:jump-height-factor 0.5
|
||||
:knocked-seek-ry-clamp 4551.1113
|
||||
:knocked-soft-vxz-lo 72089.6
|
||||
:knocked-soft-vxz-hi 108134.4
|
||||
:knocked-soft-vy-lo 81920.0
|
||||
:knocked-soft-vy-hi 122880.0
|
||||
:knocked-medium-vxz-lo 147456.0
|
||||
:knocked-medium-vxz-hi 196608.0
|
||||
:knocked-medium-vy-lo 135168.0
|
||||
:knocked-medium-vy-hi 151552.0
|
||||
:knocked-hard-vxz-lo 78643.2
|
||||
:knocked-hard-vxz-hi 117964.8
|
||||
:knocked-hard-vy-lo 183500.8
|
||||
:knocked-hard-vy-hi 209715.2
|
||||
:knocked-huge-vxz-lo 164659.2
|
||||
:knocked-huge-vxz-hi 249036.8
|
||||
:knocked-huge-vy-lo 183500.8
|
||||
:knocked-huge-vy-hi 217907.2
|
||||
:knocked-yellow-vxz-lo 40960.0
|
||||
:knocked-yellow-vxz-hi 49152.0
|
||||
:knocked-yellow-vy-lo 57344.0
|
||||
:knocked-yellow-vy-hi 81920.0
|
||||
:knocked-red-vxz-lo 24576.0
|
||||
:knocked-red-vxz-hi 196608.0
|
||||
:knocked-red-vy-lo 94208.0
|
||||
:knocked-red-vy-hi 151552.0
|
||||
:knocked-blue-vxz-lo 40960.0
|
||||
:knocked-blue-vxz-hi 49152.0
|
||||
:knocked-blue-vy-lo 24576.0
|
||||
:knocked-blue-vy-hi 81920.0
|
||||
:shadow-size (meters 2)
|
||||
:shadow-max-y (meters 1)
|
||||
:shadow-min-y (meters -1)
|
||||
:shadow-locus-dist (meters 150)
|
||||
:gem-joint -1
|
||||
:gem-offset (new 'static 'sphere :r 163840.0)
|
||||
:callback-info #f
|
||||
:use-momentum #f
|
||||
:use-frustration #t
|
||||
:use-stop-chase #f
|
||||
:use-circling #t
|
||||
:use-pacing #t
|
||||
:walk-anim 12
|
||||
:turn-anim 7
|
||||
:run-anim 7
|
||||
:taunt-anim -1
|
||||
:run-travel-speed (meters 7.5)
|
||||
:run-acceleration (meters 1)
|
||||
:run-turning-acceleration (meters 100)
|
||||
:walk-travel-speed (meters 4)
|
||||
:walk-acceleration (meters 1)
|
||||
:walk-turning-acceleration (meters 3)
|
||||
:maximum-rotation-rate (degrees 360.0)
|
||||
:notice-nav-radius (meters 1.5)
|
||||
:frustration-distance (meters 8)
|
||||
:frustration-time (seconds 4)
|
||||
:blocked-time (seconds 0.3)
|
||||
:circle-dist-lo 20480.0
|
||||
:circle-dist-hi 61440.0
|
||||
:nav-mesh #f
|
||||
)
|
||||
)
|
||||
(define *fodder-nav-enemy-info*
|
||||
(new 'static 'nav-enemy-info
|
||||
:use-die-falling #t
|
||||
:use-victory #f
|
||||
:use-jump-blocked #t
|
||||
:debug-draw-neck #f
|
||||
:jump-debug-draw #f
|
||||
:move-to-ground #t
|
||||
:hover-if-no-ground #f
|
||||
:idle-anim-script (new 'static 'array idle-control-frame 4
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x4 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
)
|
||||
:idle-anim 6
|
||||
:notice-anim 13
|
||||
:hostile-anim 7
|
||||
:hit-anim 13
|
||||
:knocked-anim 16
|
||||
:knocked-land-anim 17
|
||||
:die-anim 14
|
||||
:die-falling-anim 21
|
||||
:victory-anim 6
|
||||
:jump-wind-up-anim 7
|
||||
:jump-in-air-anim 7
|
||||
:jump-land-anim 7
|
||||
:neck-joint 5
|
||||
:look-at-joint 5
|
||||
:bullseye-joint 4
|
||||
:sound-hit (static-sound-name "fodder-hit")
|
||||
:sound-die (static-sound-name "fodder-die")
|
||||
:notice-distance (meters 40)
|
||||
:notice-distance-delta (meters 10)
|
||||
:proximity-notice-distance (meters 40)
|
||||
:default-hit-points 1
|
||||
:gnd-collide-with (collide-spec backgnd)
|
||||
:overlaps-others-collide-with-filter (collide-spec jak bot player-list)
|
||||
:penetrate-knocked #x11fffdffa
|
||||
:movement-gravity (meters -100)
|
||||
:friction 0.8
|
||||
:attack-shove-back (meters 3)
|
||||
:attack-shove-up (meters 2)
|
||||
:attack-mode 'generic
|
||||
:attack-damage 1
|
||||
:recover-gnd-collide-with (collide-spec backgnd crate obstacle hit-by-others-list pusher)
|
||||
:jump-height-min (meters 3)
|
||||
:jump-height-factor 0.5
|
||||
:knocked-seek-ry-clamp 4551.1113
|
||||
:knocked-soft-vxz-lo 72089.6
|
||||
:knocked-soft-vxz-hi 108134.4
|
||||
:knocked-soft-vy-lo 81920.0
|
||||
:knocked-soft-vy-hi 122880.0
|
||||
:knocked-medium-vxz-lo 147456.0
|
||||
:knocked-medium-vxz-hi 196608.0
|
||||
:knocked-medium-vy-lo 135168.0
|
||||
:knocked-medium-vy-hi 151552.0
|
||||
:knocked-hard-vxz-lo 78643.2
|
||||
:knocked-hard-vxz-hi 117964.8
|
||||
:knocked-hard-vy-lo 183500.8
|
||||
:knocked-hard-vy-hi 209715.2
|
||||
:knocked-huge-vxz-lo 164659.2
|
||||
:knocked-huge-vxz-hi 249036.8
|
||||
:knocked-huge-vy-lo 183500.8
|
||||
:knocked-huge-vy-hi 217907.2
|
||||
:knocked-yellow-vxz-lo 40960.0
|
||||
:knocked-yellow-vxz-hi 49152.0
|
||||
:knocked-yellow-vy-lo 57344.0
|
||||
:knocked-yellow-vy-hi 81920.0
|
||||
:knocked-red-vxz-lo 24576.0
|
||||
:knocked-red-vxz-hi 196608.0
|
||||
:knocked-red-vy-lo 94208.0
|
||||
:knocked-red-vy-hi 151552.0
|
||||
:knocked-blue-vxz-lo 40960.0
|
||||
:knocked-blue-vxz-hi 49152.0
|
||||
:knocked-blue-vy-lo 24576.0
|
||||
:knocked-blue-vy-hi 81920.0
|
||||
:shadow-size (meters 2)
|
||||
:shadow-max-y (meters 1)
|
||||
:shadow-min-y (meters -1)
|
||||
:shadow-locus-dist (meters 150)
|
||||
:gem-joint -1
|
||||
:gem-offset (new 'static 'sphere :r 163840.0)
|
||||
:callback-info #f
|
||||
:use-momentum #f
|
||||
:use-frustration #t
|
||||
:use-stop-chase #f
|
||||
:use-circling #t
|
||||
:use-pacing #t
|
||||
:walk-anim 12
|
||||
:turn-anim 7
|
||||
:run-anim 7
|
||||
:taunt-anim -1
|
||||
:run-travel-speed (meters 7.5)
|
||||
:run-acceleration (meters 1)
|
||||
:run-turning-acceleration (meters 100)
|
||||
:walk-travel-speed (meters 4)
|
||||
:walk-acceleration (meters 1)
|
||||
:walk-turning-acceleration (meters 3)
|
||||
:maximum-rotation-rate (degrees 360.0)
|
||||
:notice-nav-radius (meters 1.5)
|
||||
:frustration-distance (meters 8)
|
||||
:frustration-time (seconds 4)
|
||||
:blocked-time (seconds 0.3)
|
||||
:circle-dist-lo 20480.0
|
||||
:circle-dist-hi 61440.0
|
||||
:nav-mesh #f
|
||||
)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(set! (-> *fodder-nav-enemy-info* fact-defaults) *fact-info-enemy-defaults*)
|
||||
|
||||
Generated
Vendored
+133
-107
@@ -127,109 +127,115 @@
|
||||
)
|
||||
|
||||
;; definition for symbol *crimson-guard-level-info*, type nav-enemy-info
|
||||
(define *crimson-guard-level-info* (new 'static 'nav-enemy-info
|
||||
:use-die-falling #t
|
||||
:use-victory #f
|
||||
:use-jump-blocked #f
|
||||
:debug-draw-neck #f
|
||||
:jump-debug-draw #f
|
||||
:move-to-ground #t
|
||||
:hover-if-no-ground #f
|
||||
:idle-anim-script (new 'static 'array uint32 4 #x1010401 #x0 #x0 #x0)
|
||||
:idle-anim 4
|
||||
:notice-anim 7
|
||||
:hostile-anim 6
|
||||
:hit-anim 4
|
||||
:knocked-anim 8
|
||||
:knocked-land-anim 9
|
||||
:die-anim 17
|
||||
:die-falling-anim 39
|
||||
:victory-anim 4
|
||||
:jump-wind-up-anim 5
|
||||
:jump-in-air-anim 5
|
||||
:jump-land-anim 5
|
||||
:neck-joint 6
|
||||
:look-at-joint 6
|
||||
:bullseye-joint 5
|
||||
:sound-hit (static-sound-name "guard-hit")
|
||||
:sound-die (static-sound-name "guard-die")
|
||||
:notice-distance (meters 150)
|
||||
:notice-distance-delta (meters 40)
|
||||
:proximity-notice-distance (meters 4)
|
||||
: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
|
||||
:movement-gravity (meters -100)
|
||||
:friction 0.5
|
||||
:attack-shove-back (meters 3)
|
||||
:attack-shove-up (meters 2)
|
||||
:attack-mode 'generic
|
||||
:attack-damage 2
|
||||
:recover-gnd-collide-with (collide-spec backgnd crate obstacle hit-by-others-list pusher)
|
||||
:jump-height-min (meters 3)
|
||||
:jump-height-factor 0.5
|
||||
:knocked-seek-ry-clamp 6371.5557
|
||||
:knocked-soft-vxz-lo 32768.0
|
||||
:knocked-soft-vxz-hi 53248.0
|
||||
:knocked-soft-vy-lo 61440.0
|
||||
:knocked-soft-vy-hi 61440.0
|
||||
:knocked-medium-vxz-lo 147456.0
|
||||
:knocked-medium-vxz-hi 196608.0
|
||||
:knocked-medium-vy-lo 135168.0
|
||||
:knocked-medium-vy-hi 151552.0
|
||||
:knocked-hard-vxz-lo 40960.0
|
||||
:knocked-hard-vxz-hi 61440.0
|
||||
:knocked-hard-vy-lo 98304.0
|
||||
:knocked-hard-vy-hi 106496.0
|
||||
:knocked-huge-vxz-lo 164659.2
|
||||
:knocked-huge-vxz-hi 249036.8
|
||||
:knocked-huge-vy-lo 183500.8
|
||||
:knocked-huge-vy-hi 217907.2
|
||||
:knocked-yellow-vxz-lo 32768.0
|
||||
:knocked-yellow-vxz-hi 49152.0
|
||||
:knocked-yellow-vy-lo 32768.0
|
||||
:knocked-yellow-vy-hi 49152.0
|
||||
:knocked-red-vxz-lo 65536.0
|
||||
:knocked-red-vxz-hi 81920.0
|
||||
:knocked-red-vy-lo 61440.0
|
||||
:knocked-red-vy-hi 61440.0
|
||||
:knocked-blue-vxz-lo 32768.0
|
||||
:knocked-blue-vxz-hi 65536.0
|
||||
:knocked-blue-vy-lo 16384.0
|
||||
:knocked-blue-vy-hi 32768.0
|
||||
:shadow-size (meters 2)
|
||||
:shadow-max-y (meters 1)
|
||||
:shadow-min-y (meters -1)
|
||||
:shadow-locus-dist (meters 150)
|
||||
:gem-joint -1
|
||||
:gem-offset (new 'static 'sphere :r 163840.0)
|
||||
:callback-info #f
|
||||
:use-momentum #f
|
||||
:use-frustration #t
|
||||
:use-stop-chase #f
|
||||
:use-circling #f
|
||||
:use-pacing #f
|
||||
:walk-anim 5
|
||||
:turn-anim 5
|
||||
:run-anim 6
|
||||
:taunt-anim -1
|
||||
:run-travel-speed (meters 12)
|
||||
:run-acceleration (meters 2)
|
||||
:run-turning-acceleration (meters 50)
|
||||
:walk-travel-speed (meters 3)
|
||||
:walk-acceleration (meters 1)
|
||||
:walk-turning-acceleration (meters 8)
|
||||
:maximum-rotation-rate (degrees 720.0)
|
||||
:notice-nav-radius (meters 5)
|
||||
:frustration-distance (meters 8)
|
||||
:frustration-time (seconds 2)
|
||||
:blocked-time (seconds 0.3)
|
||||
:circle-dist-lo 20480.0
|
||||
:circle-dist-hi 61440.0
|
||||
:nav-mesh #f
|
||||
)
|
||||
)
|
||||
(define *crimson-guard-level-info*
|
||||
(new 'static 'nav-enemy-info
|
||||
:use-die-falling #t
|
||||
:use-victory #f
|
||||
:use-jump-blocked #f
|
||||
:debug-draw-neck #f
|
||||
:jump-debug-draw #f
|
||||
:move-to-ground #t
|
||||
:hover-if-no-ground #f
|
||||
:idle-anim-script (new 'static 'array idle-control-frame 4
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x4 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
)
|
||||
:idle-anim 4
|
||||
:notice-anim 7
|
||||
:hostile-anim 6
|
||||
:hit-anim 4
|
||||
:knocked-anim 8
|
||||
:knocked-land-anim 9
|
||||
:die-anim 17
|
||||
:die-falling-anim 39
|
||||
:victory-anim 4
|
||||
:jump-wind-up-anim 5
|
||||
:jump-in-air-anim 5
|
||||
:jump-land-anim 5
|
||||
:neck-joint 6
|
||||
:look-at-joint 6
|
||||
:bullseye-joint 5
|
||||
:sound-hit (static-sound-name "guard-hit")
|
||||
:sound-die (static-sound-name "guard-die")
|
||||
:notice-distance (meters 150)
|
||||
:notice-distance-delta (meters 40)
|
||||
:proximity-notice-distance (meters 4)
|
||||
: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
|
||||
:movement-gravity (meters -100)
|
||||
:friction 0.5
|
||||
:attack-shove-back (meters 3)
|
||||
:attack-shove-up (meters 2)
|
||||
:attack-mode 'generic
|
||||
:attack-damage 2
|
||||
:recover-gnd-collide-with (collide-spec backgnd crate obstacle hit-by-others-list pusher)
|
||||
:jump-height-min (meters 3)
|
||||
:jump-height-factor 0.5
|
||||
:knocked-seek-ry-clamp 6371.5557
|
||||
:knocked-soft-vxz-lo 32768.0
|
||||
:knocked-soft-vxz-hi 53248.0
|
||||
:knocked-soft-vy-lo 61440.0
|
||||
:knocked-soft-vy-hi 61440.0
|
||||
:knocked-medium-vxz-lo 147456.0
|
||||
:knocked-medium-vxz-hi 196608.0
|
||||
:knocked-medium-vy-lo 135168.0
|
||||
:knocked-medium-vy-hi 151552.0
|
||||
:knocked-hard-vxz-lo 40960.0
|
||||
:knocked-hard-vxz-hi 61440.0
|
||||
:knocked-hard-vy-lo 98304.0
|
||||
:knocked-hard-vy-hi 106496.0
|
||||
:knocked-huge-vxz-lo 164659.2
|
||||
:knocked-huge-vxz-hi 249036.8
|
||||
:knocked-huge-vy-lo 183500.8
|
||||
:knocked-huge-vy-hi 217907.2
|
||||
:knocked-yellow-vxz-lo 32768.0
|
||||
:knocked-yellow-vxz-hi 49152.0
|
||||
:knocked-yellow-vy-lo 32768.0
|
||||
:knocked-yellow-vy-hi 49152.0
|
||||
:knocked-red-vxz-lo 65536.0
|
||||
:knocked-red-vxz-hi 81920.0
|
||||
:knocked-red-vy-lo 61440.0
|
||||
:knocked-red-vy-hi 61440.0
|
||||
:knocked-blue-vxz-lo 32768.0
|
||||
:knocked-blue-vxz-hi 65536.0
|
||||
:knocked-blue-vy-lo 16384.0
|
||||
:knocked-blue-vy-hi 32768.0
|
||||
:shadow-size (meters 2)
|
||||
:shadow-max-y (meters 1)
|
||||
:shadow-min-y (meters -1)
|
||||
:shadow-locus-dist (meters 150)
|
||||
:gem-joint -1
|
||||
:gem-offset (new 'static 'sphere :r 163840.0)
|
||||
:callback-info #f
|
||||
:use-momentum #f
|
||||
:use-frustration #t
|
||||
:use-stop-chase #f
|
||||
:use-circling #f
|
||||
:use-pacing #f
|
||||
:walk-anim 5
|
||||
:turn-anim 5
|
||||
:run-anim 6
|
||||
:taunt-anim -1
|
||||
:run-travel-speed (meters 12)
|
||||
:run-acceleration (meters 2)
|
||||
:run-turning-acceleration (meters 50)
|
||||
:walk-travel-speed (meters 3)
|
||||
:walk-acceleration (meters 1)
|
||||
:walk-turning-acceleration (meters 8)
|
||||
:maximum-rotation-rate (degrees 720.0)
|
||||
:notice-nav-radius (meters 5)
|
||||
:frustration-distance (meters 8)
|
||||
:frustration-time (seconds 2)
|
||||
:blocked-time (seconds 0.3)
|
||||
:circle-dist-lo 20480.0
|
||||
:circle-dist-hi 61440.0
|
||||
:nav-mesh #f
|
||||
)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(set! (-> *crimson-guard-level-info* fact-defaults) *crimson-guard-fact*)
|
||||
@@ -244,7 +250,12 @@
|
||||
:jump-debug-draw #f
|
||||
:move-to-ground #t
|
||||
:hover-if-no-ground #f
|
||||
:idle-anim-script (new 'static 'array uint32 4 #x1010401 #x0 #x0 #x0)
|
||||
:idle-anim-script (new 'static 'array idle-control-frame 4
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x4 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
)
|
||||
:idle-anim 4
|
||||
:notice-anim 7
|
||||
:hostile-anim 6
|
||||
@@ -353,7 +364,12 @@
|
||||
:jump-debug-draw #f
|
||||
:move-to-ground #t
|
||||
:hover-if-no-ground #f
|
||||
:idle-anim-script (new 'static 'array uint32 4 #x1010401 #x0 #x0 #x0)
|
||||
:idle-anim-script (new 'static 'array idle-control-frame 4
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x4 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
)
|
||||
:idle-anim 4
|
||||
:notice-anim 7
|
||||
:hostile-anim 6
|
||||
@@ -462,7 +478,12 @@
|
||||
:jump-debug-draw #f
|
||||
:move-to-ground #t
|
||||
:hover-if-no-ground #f
|
||||
:idle-anim-script (new 'static 'array uint32 4 #x1010401 #x0 #x0 #x0)
|
||||
:idle-anim-script (new 'static 'array idle-control-frame 4
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x4 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
)
|
||||
:idle-anim 4
|
||||
:notice-anim 7
|
||||
:hostile-anim 6
|
||||
@@ -571,7 +592,12 @@
|
||||
:jump-debug-draw #f
|
||||
:move-to-ground #t
|
||||
:hover-if-no-ground #f
|
||||
:idle-anim-script (new 'static 'array uint32 4 #x1010401 #x0 #x0 #x0)
|
||||
:idle-anim-script (new 'static 'array idle-control-frame 4
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x4 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
)
|
||||
:idle-anim 4
|
||||
:notice-anim 7
|
||||
:hostile-anim 6
|
||||
|
||||
+10
-1
@@ -228,7 +228,16 @@
|
||||
:jump-debug-draw #f
|
||||
:move-to-ground #t
|
||||
:hover-if-no-ground #f
|
||||
:idle-anim-script (new 'static 'array uint32 8 #x5010401 #x1010501 #x5010401 #x1010601 #x0 #x0 #x0 #x0)
|
||||
:idle-anim-script (new 'static 'array idle-control-frame 8
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x4 :param0 #x1 :param1 #x5)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x5 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x4 :param0 #x1 :param1 #x5)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x6 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
)
|
||||
:idle-anim 4
|
||||
:notice-anim 7
|
||||
:hostile-anim 4
|
||||
|
||||
Generated
Vendored
+111
-105
@@ -321,111 +321,117 @@
|
||||
)
|
||||
|
||||
;; definition for symbol *centurion-nav-enemy-info*, type nav-enemy-info
|
||||
(define *centurion-nav-enemy-info* (new 'static 'nav-enemy-info
|
||||
:use-die-falling #t
|
||||
:use-victory #f
|
||||
:use-jump-blocked #f
|
||||
:debug-draw-neck #f
|
||||
:jump-debug-draw #f
|
||||
:move-to-ground #t
|
||||
:hover-if-no-ground #f
|
||||
:idle-anim-script (new 'static 'array uint32 4 #x1010601 #x0 #x0 #x0)
|
||||
:idle-anim 6
|
||||
:notice-anim 8
|
||||
:hostile-anim 13
|
||||
:hit-anim 16
|
||||
:knocked-anim 21
|
||||
:knocked-land-anim 22
|
||||
:die-anim 34
|
||||
:die-falling-anim 23
|
||||
:victory-anim 4
|
||||
:jump-wind-up-anim -1
|
||||
:jump-in-air-anim -1
|
||||
:jump-land-anim -1
|
||||
:neck-joint 8
|
||||
:look-at-joint 8
|
||||
:bullseye-joint 5
|
||||
:sound-hit (static-sound-name "centurion-hit")
|
||||
:sound-die (static-sound-name "centurion-die")
|
||||
:notice-distance (meters 100)
|
||||
:notice-distance-delta (meters 10)
|
||||
:proximity-notice-distance (meters 100)
|
||||
:default-hit-points 3
|
||||
:gnd-collide-with (collide-spec backgnd)
|
||||
:overlaps-others-collide-with-filter (collide-spec jak bot player-list)
|
||||
:penetrate-knocked #xffffffffffffffff
|
||||
:movement-gravity (meters -100)
|
||||
:friction 0.1
|
||||
:attack-shove-back (meters 3)
|
||||
:attack-shove-up (meters 2)
|
||||
:attack-mode 'generic
|
||||
:attack-damage 2
|
||||
:recover-gnd-collide-with (collide-spec backgnd crate obstacle hit-by-others-list pusher)
|
||||
:jump-height-min (meters 3)
|
||||
:jump-height-factor 0.5
|
||||
:knocked-seek-ry-clamp 6371.5557
|
||||
:knocked-soft-vxz-lo 32768.0
|
||||
:knocked-soft-vxz-hi 65536.0
|
||||
:knocked-soft-vy-lo 32768.0
|
||||
:knocked-soft-vy-hi 49152.0
|
||||
:knocked-medium-vxz-lo 147456.0
|
||||
:knocked-medium-vxz-hi 196608.0
|
||||
:knocked-medium-vy-lo 135168.0
|
||||
:knocked-medium-vy-hi 151552.0
|
||||
:knocked-hard-vxz-lo 78643.2
|
||||
:knocked-hard-vxz-hi 117964.8
|
||||
:knocked-hard-vy-lo 183500.8
|
||||
:knocked-hard-vy-hi 209715.2
|
||||
:knocked-huge-vxz-lo 164659.2
|
||||
:knocked-huge-vxz-hi 249036.8
|
||||
:knocked-huge-vy-lo 183500.8
|
||||
:knocked-huge-vy-hi 217907.2
|
||||
:knocked-yellow-vxz-lo 16384.0
|
||||
:knocked-yellow-vxz-hi 32768.0
|
||||
:knocked-yellow-vy-lo 57344.0
|
||||
:knocked-yellow-vy-hi 81920.0
|
||||
:knocked-red-vxz-lo 24576.0
|
||||
:knocked-red-vxz-hi 196608.0
|
||||
:knocked-red-vy-lo 94208.0
|
||||
:knocked-red-vy-hi 151552.0
|
||||
:knocked-blue-vxz-lo 40960.0
|
||||
:knocked-blue-vxz-hi 49152.0
|
||||
:knocked-blue-vy-lo 20480.0
|
||||
:knocked-blue-vy-hi 40960.0
|
||||
:shadow-size (meters 1)
|
||||
:shadow-max-y (meters 1)
|
||||
:shadow-min-y (meters -1)
|
||||
:shadow-locus-dist (meters 150)
|
||||
:gem-joint 8
|
||||
:gem-seg #x2
|
||||
:gem-no-seg #x4
|
||||
:gem-offset (new 'static 'sphere :y 1843.2 :z 1146.88 :r 163840.0)
|
||||
:callback-info #f
|
||||
:use-momentum #f
|
||||
:use-frustration #t
|
||||
:use-stop-chase #f
|
||||
:use-circling #f
|
||||
:use-pacing #f
|
||||
:walk-anim 9
|
||||
:turn-anim -1
|
||||
:run-anim -1
|
||||
:taunt-anim -1
|
||||
:run-travel-speed (meters 6)
|
||||
:run-acceleration (meters 1)
|
||||
:run-turning-acceleration (meters 2)
|
||||
:walk-travel-speed (meters 1.8)
|
||||
:walk-acceleration (meters 1)
|
||||
:walk-turning-acceleration (meters 16)
|
||||
:maximum-rotation-rate (degrees 720.0)
|
||||
:notice-nav-radius (meters 100)
|
||||
:frustration-distance (meters 8)
|
||||
:frustration-time (seconds 4)
|
||||
:blocked-time (seconds 0.3)
|
||||
:circle-dist-lo 20480.0
|
||||
:circle-dist-hi 61440.0
|
||||
:nav-mesh #f
|
||||
)
|
||||
)
|
||||
(define *centurion-nav-enemy-info*
|
||||
(new 'static 'nav-enemy-info
|
||||
:use-die-falling #t
|
||||
:use-victory #f
|
||||
:use-jump-blocked #f
|
||||
:debug-draw-neck #f
|
||||
:jump-debug-draw #f
|
||||
:move-to-ground #t
|
||||
:hover-if-no-ground #f
|
||||
:idle-anim-script (new 'static 'array idle-control-frame 4
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x6 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
)
|
||||
:idle-anim 6
|
||||
:notice-anim 8
|
||||
:hostile-anim 13
|
||||
:hit-anim 16
|
||||
:knocked-anim 21
|
||||
:knocked-land-anim 22
|
||||
:die-anim 34
|
||||
:die-falling-anim 23
|
||||
:victory-anim 4
|
||||
:jump-wind-up-anim -1
|
||||
:jump-in-air-anim -1
|
||||
:jump-land-anim -1
|
||||
:neck-joint 8
|
||||
:look-at-joint 8
|
||||
:bullseye-joint 5
|
||||
:sound-hit (static-sound-name "centurion-hit")
|
||||
:sound-die (static-sound-name "centurion-die")
|
||||
:notice-distance (meters 100)
|
||||
:notice-distance-delta (meters 10)
|
||||
:proximity-notice-distance (meters 100)
|
||||
:default-hit-points 3
|
||||
:gnd-collide-with (collide-spec backgnd)
|
||||
:overlaps-others-collide-with-filter (collide-spec jak bot player-list)
|
||||
:penetrate-knocked #xffffffffffffffff
|
||||
:movement-gravity (meters -100)
|
||||
:friction 0.1
|
||||
:attack-shove-back (meters 3)
|
||||
:attack-shove-up (meters 2)
|
||||
:attack-mode 'generic
|
||||
:attack-damage 2
|
||||
:recover-gnd-collide-with (collide-spec backgnd crate obstacle hit-by-others-list pusher)
|
||||
:jump-height-min (meters 3)
|
||||
:jump-height-factor 0.5
|
||||
:knocked-seek-ry-clamp 6371.5557
|
||||
:knocked-soft-vxz-lo 32768.0
|
||||
:knocked-soft-vxz-hi 65536.0
|
||||
:knocked-soft-vy-lo 32768.0
|
||||
:knocked-soft-vy-hi 49152.0
|
||||
:knocked-medium-vxz-lo 147456.0
|
||||
:knocked-medium-vxz-hi 196608.0
|
||||
:knocked-medium-vy-lo 135168.0
|
||||
:knocked-medium-vy-hi 151552.0
|
||||
:knocked-hard-vxz-lo 78643.2
|
||||
:knocked-hard-vxz-hi 117964.8
|
||||
:knocked-hard-vy-lo 183500.8
|
||||
:knocked-hard-vy-hi 209715.2
|
||||
:knocked-huge-vxz-lo 164659.2
|
||||
:knocked-huge-vxz-hi 249036.8
|
||||
:knocked-huge-vy-lo 183500.8
|
||||
:knocked-huge-vy-hi 217907.2
|
||||
:knocked-yellow-vxz-lo 16384.0
|
||||
:knocked-yellow-vxz-hi 32768.0
|
||||
:knocked-yellow-vy-lo 57344.0
|
||||
:knocked-yellow-vy-hi 81920.0
|
||||
:knocked-red-vxz-lo 24576.0
|
||||
:knocked-red-vxz-hi 196608.0
|
||||
:knocked-red-vy-lo 94208.0
|
||||
:knocked-red-vy-hi 151552.0
|
||||
:knocked-blue-vxz-lo 40960.0
|
||||
:knocked-blue-vxz-hi 49152.0
|
||||
:knocked-blue-vy-lo 20480.0
|
||||
:knocked-blue-vy-hi 40960.0
|
||||
:shadow-size (meters 1)
|
||||
:shadow-max-y (meters 1)
|
||||
:shadow-min-y (meters -1)
|
||||
:shadow-locus-dist (meters 150)
|
||||
:gem-joint 8
|
||||
:gem-seg #x2
|
||||
:gem-no-seg #x4
|
||||
:gem-offset (new 'static 'sphere :y 1843.2 :z 1146.88 :r 163840.0)
|
||||
:callback-info #f
|
||||
:use-momentum #f
|
||||
:use-frustration #t
|
||||
:use-stop-chase #f
|
||||
:use-circling #f
|
||||
:use-pacing #f
|
||||
:walk-anim 9
|
||||
:turn-anim -1
|
||||
:run-anim -1
|
||||
:taunt-anim -1
|
||||
:run-travel-speed (meters 6)
|
||||
:run-acceleration (meters 1)
|
||||
:run-turning-acceleration (meters 2)
|
||||
:walk-travel-speed (meters 1.8)
|
||||
:walk-acceleration (meters 1)
|
||||
:walk-turning-acceleration (meters 16)
|
||||
:maximum-rotation-rate (degrees 720.0)
|
||||
:notice-nav-radius (meters 100)
|
||||
:frustration-distance (meters 8)
|
||||
:frustration-time (seconds 4)
|
||||
:blocked-time (seconds 0.3)
|
||||
:circle-dist-lo 20480.0
|
||||
:circle-dist-hi 61440.0
|
||||
:nav-mesh #f
|
||||
)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(set! (-> *centurion-nav-enemy-info* fact-defaults) *fact-info-enemy-defaults*)
|
||||
|
||||
Generated
Vendored
+109
-103
@@ -125,109 +125,115 @@
|
||||
)
|
||||
|
||||
;; definition for symbol *metalmonk-nav-enemy-info*, type nav-enemy-info
|
||||
(define *metalmonk-nav-enemy-info* (new 'static 'nav-enemy-info
|
||||
:use-die-falling #t
|
||||
:use-victory #t
|
||||
:use-jump-blocked #t
|
||||
:debug-draw-neck #f
|
||||
:jump-debug-draw #f
|
||||
:move-to-ground #t
|
||||
:hover-if-no-ground #f
|
||||
:idle-anim-script (new 'static 'array uint32 4 #x1010501 #x0 #x0 #x0)
|
||||
:idle-anim 5
|
||||
:notice-anim 10
|
||||
:hostile-anim 12
|
||||
:hit-anim -1
|
||||
:knocked-anim 16
|
||||
:knocked-land-anim 17
|
||||
:die-anim 32
|
||||
:die-falling-anim 33
|
||||
:victory-anim 22
|
||||
:jump-wind-up-anim 12
|
||||
:jump-in-air-anim 12
|
||||
:jump-land-anim 12
|
||||
:neck-joint 7
|
||||
:look-at-joint 7
|
||||
:bullseye-joint 4
|
||||
:sound-hit (static-sound-name "metalmonk-hit")
|
||||
:sound-die (static-sound-name "metalmonk-die")
|
||||
:notice-distance (meters 40)
|
||||
:notice-distance-delta (meters 10)
|
||||
:proximity-notice-distance (meters 40)
|
||||
:default-hit-points 4
|
||||
:gnd-collide-with (collide-spec backgnd)
|
||||
:overlaps-others-collide-with-filter (collide-spec jak bot player-list)
|
||||
:penetrate-knocked #xffffffffffffffff
|
||||
:movement-gravity (meters -100)
|
||||
:friction 0.8
|
||||
:attack-shove-back (meters 3)
|
||||
:attack-shove-up (meters 2)
|
||||
:attack-mode 'generic
|
||||
:attack-damage 2
|
||||
:recover-gnd-collide-with (collide-spec backgnd crate obstacle hit-by-others-list pusher)
|
||||
:jump-height-min (meters 3)
|
||||
:jump-height-factor 0.5
|
||||
:knocked-seek-ry-clamp 6371.5557
|
||||
:knocked-soft-vxz-lo 72089.6
|
||||
:knocked-soft-vxz-hi 108134.4
|
||||
:knocked-soft-vy-lo 81920.0
|
||||
:knocked-soft-vy-hi 122880.0
|
||||
:knocked-medium-vxz-lo 147456.0
|
||||
:knocked-medium-vxz-hi 196608.0
|
||||
:knocked-medium-vy-lo 135168.0
|
||||
:knocked-medium-vy-hi 151552.0
|
||||
:knocked-hard-vxz-lo 78643.2
|
||||
:knocked-hard-vxz-hi 117964.8
|
||||
:knocked-hard-vy-lo 183500.8
|
||||
:knocked-hard-vy-hi 209715.2
|
||||
:knocked-huge-vxz-lo 164659.2
|
||||
:knocked-huge-vxz-hi 249036.8
|
||||
:knocked-huge-vy-lo 183500.8
|
||||
:knocked-huge-vy-hi 217907.2
|
||||
:knocked-yellow-vxz-lo 40960.0
|
||||
:knocked-yellow-vxz-hi 49152.0
|
||||
:knocked-yellow-vy-lo 57344.0
|
||||
:knocked-yellow-vy-hi 81920.0
|
||||
:knocked-red-vxz-lo 24576.0
|
||||
:knocked-red-vxz-hi 196608.0
|
||||
:knocked-red-vy-lo 94208.0
|
||||
:knocked-red-vy-hi 151552.0
|
||||
:knocked-blue-vxz-lo 40960.0
|
||||
:knocked-blue-vxz-hi 49152.0
|
||||
:knocked-blue-vy-lo 24576.0
|
||||
:knocked-blue-vy-hi 81920.0
|
||||
:shadow-size (meters 2)
|
||||
:shadow-max-y (meters 1)
|
||||
:shadow-min-y (meters -1)
|
||||
:shadow-locus-dist (meters 150)
|
||||
:gem-joint 7
|
||||
:gem-offset (new 'static 'sphere :r 163840.0)
|
||||
:callback-info #f
|
||||
:use-momentum #t
|
||||
:use-frustration #t
|
||||
:use-stop-chase #f
|
||||
:use-circling #t
|
||||
:use-pacing #t
|
||||
:walk-anim 8
|
||||
:turn-anim -1
|
||||
:run-anim 12
|
||||
:taunt-anim 22
|
||||
:run-travel-speed (meters 7)
|
||||
:run-acceleration (meters 7)
|
||||
:run-turning-acceleration (meters 20)
|
||||
:walk-travel-speed (meters 2)
|
||||
:walk-acceleration (meters 3)
|
||||
:walk-turning-acceleration (meters 3)
|
||||
:maximum-rotation-rate (degrees 360.0)
|
||||
:notice-nav-radius (meters 1)
|
||||
:frustration-distance (meters 8)
|
||||
:frustration-time (seconds 4)
|
||||
:blocked-time (seconds 0.3)
|
||||
:circle-dist-lo 20480.0
|
||||
:circle-dist-hi 61440.0
|
||||
:nav-mesh #f
|
||||
)
|
||||
)
|
||||
(define *metalmonk-nav-enemy-info*
|
||||
(new 'static 'nav-enemy-info
|
||||
:use-die-falling #t
|
||||
:use-victory #t
|
||||
:use-jump-blocked #t
|
||||
:debug-draw-neck #f
|
||||
:jump-debug-draw #f
|
||||
:move-to-ground #t
|
||||
:hover-if-no-ground #f
|
||||
:idle-anim-script (new 'static 'array idle-control-frame 4
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x5 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
)
|
||||
:idle-anim 5
|
||||
:notice-anim 10
|
||||
:hostile-anim 12
|
||||
:hit-anim -1
|
||||
:knocked-anim 16
|
||||
:knocked-land-anim 17
|
||||
:die-anim 32
|
||||
:die-falling-anim 33
|
||||
:victory-anim 22
|
||||
:jump-wind-up-anim 12
|
||||
:jump-in-air-anim 12
|
||||
:jump-land-anim 12
|
||||
:neck-joint 7
|
||||
:look-at-joint 7
|
||||
:bullseye-joint 4
|
||||
:sound-hit (static-sound-name "metalmonk-hit")
|
||||
:sound-die (static-sound-name "metalmonk-die")
|
||||
:notice-distance (meters 40)
|
||||
:notice-distance-delta (meters 10)
|
||||
:proximity-notice-distance (meters 40)
|
||||
:default-hit-points 4
|
||||
:gnd-collide-with (collide-spec backgnd)
|
||||
:overlaps-others-collide-with-filter (collide-spec jak bot player-list)
|
||||
:penetrate-knocked #xffffffffffffffff
|
||||
:movement-gravity (meters -100)
|
||||
:friction 0.8
|
||||
:attack-shove-back (meters 3)
|
||||
:attack-shove-up (meters 2)
|
||||
:attack-mode 'generic
|
||||
:attack-damage 2
|
||||
:recover-gnd-collide-with (collide-spec backgnd crate obstacle hit-by-others-list pusher)
|
||||
:jump-height-min (meters 3)
|
||||
:jump-height-factor 0.5
|
||||
:knocked-seek-ry-clamp 6371.5557
|
||||
:knocked-soft-vxz-lo 72089.6
|
||||
:knocked-soft-vxz-hi 108134.4
|
||||
:knocked-soft-vy-lo 81920.0
|
||||
:knocked-soft-vy-hi 122880.0
|
||||
:knocked-medium-vxz-lo 147456.0
|
||||
:knocked-medium-vxz-hi 196608.0
|
||||
:knocked-medium-vy-lo 135168.0
|
||||
:knocked-medium-vy-hi 151552.0
|
||||
:knocked-hard-vxz-lo 78643.2
|
||||
:knocked-hard-vxz-hi 117964.8
|
||||
:knocked-hard-vy-lo 183500.8
|
||||
:knocked-hard-vy-hi 209715.2
|
||||
:knocked-huge-vxz-lo 164659.2
|
||||
:knocked-huge-vxz-hi 249036.8
|
||||
:knocked-huge-vy-lo 183500.8
|
||||
:knocked-huge-vy-hi 217907.2
|
||||
:knocked-yellow-vxz-lo 40960.0
|
||||
:knocked-yellow-vxz-hi 49152.0
|
||||
:knocked-yellow-vy-lo 57344.0
|
||||
:knocked-yellow-vy-hi 81920.0
|
||||
:knocked-red-vxz-lo 24576.0
|
||||
:knocked-red-vxz-hi 196608.0
|
||||
:knocked-red-vy-lo 94208.0
|
||||
:knocked-red-vy-hi 151552.0
|
||||
:knocked-blue-vxz-lo 40960.0
|
||||
:knocked-blue-vxz-hi 49152.0
|
||||
:knocked-blue-vy-lo 24576.0
|
||||
:knocked-blue-vy-hi 81920.0
|
||||
:shadow-size (meters 2)
|
||||
:shadow-max-y (meters 1)
|
||||
:shadow-min-y (meters -1)
|
||||
:shadow-locus-dist (meters 150)
|
||||
:gem-joint 7
|
||||
:gem-offset (new 'static 'sphere :r 163840.0)
|
||||
:callback-info #f
|
||||
:use-momentum #t
|
||||
:use-frustration #t
|
||||
:use-stop-chase #f
|
||||
:use-circling #t
|
||||
:use-pacing #t
|
||||
:walk-anim 8
|
||||
:turn-anim -1
|
||||
:run-anim 12
|
||||
:taunt-anim 22
|
||||
:run-travel-speed (meters 7)
|
||||
:run-acceleration (meters 7)
|
||||
:run-turning-acceleration (meters 20)
|
||||
:walk-travel-speed (meters 2)
|
||||
:walk-acceleration (meters 3)
|
||||
:walk-turning-acceleration (meters 3)
|
||||
:maximum-rotation-rate (degrees 360.0)
|
||||
:notice-nav-radius (meters 1)
|
||||
:frustration-distance (meters 8)
|
||||
:frustration-time (seconds 4)
|
||||
:blocked-time (seconds 0.3)
|
||||
:circle-dist-lo 20480.0
|
||||
:circle-dist-hi 61440.0
|
||||
:nav-mesh #f
|
||||
)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(set! (-> *metalmonk-nav-enemy-info* fact-defaults) *fact-info-enemy-defaults*)
|
||||
|
||||
Generated
Vendored
+127
-126
@@ -120,132 +120,133 @@
|
||||
)
|
||||
|
||||
;; definition for symbol *grenadier-nav-enemy-info*, type nav-enemy-info
|
||||
(define *grenadier-nav-enemy-info* (new 'static 'nav-enemy-info
|
||||
:use-die-falling #t
|
||||
:use-victory #t
|
||||
:use-jump-blocked #t
|
||||
:debug-draw-neck #f
|
||||
:jump-debug-draw #f
|
||||
:move-to-ground #t
|
||||
:hover-if-no-ground #f
|
||||
:idle-anim-script (new 'static 'array uint32 20
|
||||
#x270002
|
||||
#x6040501
|
||||
#x270002
|
||||
#x1010701
|
||||
#x1010601
|
||||
#x270002
|
||||
#x6040501
|
||||
#x1010801
|
||||
#x1010701
|
||||
#x1010601
|
||||
#x270002
|
||||
#x8040501
|
||||
#x270002
|
||||
#x1010801
|
||||
#x270002
|
||||
#x1010601
|
||||
#x0
|
||||
#x0
|
||||
#x0
|
||||
#x0
|
||||
)
|
||||
:idle-anim 5
|
||||
:notice-anim 11
|
||||
:hostile-anim 13
|
||||
:hit-anim 23
|
||||
:knocked-anim 31
|
||||
:knocked-land-anim 32
|
||||
:die-anim 33
|
||||
:die-falling-anim 34
|
||||
:victory-anim 22
|
||||
:jump-wind-up-anim -1
|
||||
:jump-in-air-anim -1
|
||||
:jump-land-anim -1
|
||||
:neck-joint 24
|
||||
:look-at-joint 24
|
||||
:bullseye-joint 18
|
||||
:sound-hit (static-sound-name "grenadier-hit")
|
||||
:sound-die (static-sound-name "grenadier-die")
|
||||
:notice-distance (meters 50)
|
||||
:notice-distance-delta (meters 10)
|
||||
:proximity-notice-distance (meters 12.5)
|
||||
:default-hit-points 14
|
||||
:gnd-collide-with (collide-spec backgnd)
|
||||
:overlaps-others-collide-with-filter (collide-spec jak bot player-list)
|
||||
:penetrate-knocked #xffffffffffffffff
|
||||
:movement-gravity (meters -100)
|
||||
:friction 0.8
|
||||
:attack-shove-back (meters 3)
|
||||
:attack-shove-up (meters 2)
|
||||
:attack-mode 'generic
|
||||
:attack-damage 2
|
||||
:recover-gnd-collide-with (collide-spec backgnd crate obstacle hit-by-others-list pusher)
|
||||
:jump-height-min (meters 3)
|
||||
:jump-height-factor 0.5
|
||||
:knocked-seek-ry-clamp 0.18204445
|
||||
:knocked-soft-vxz-lo 72089.6
|
||||
:knocked-soft-vxz-hi 108134.4
|
||||
:knocked-soft-vy-lo 81920.0
|
||||
:knocked-soft-vy-hi 122880.0
|
||||
:knocked-medium-vxz-lo 147456.0
|
||||
:knocked-medium-vxz-hi 196608.0
|
||||
:knocked-medium-vy-lo 135168.0
|
||||
:knocked-medium-vy-hi 151552.0
|
||||
:knocked-hard-vxz-lo 78643.2
|
||||
:knocked-hard-vxz-hi 117964.8
|
||||
:knocked-hard-vy-lo 183500.8
|
||||
:knocked-hard-vy-hi 209715.2
|
||||
:knocked-huge-vxz-lo 164659.2
|
||||
:knocked-huge-vxz-hi 249036.8
|
||||
:knocked-huge-vy-lo 183500.8
|
||||
:knocked-huge-vy-hi 217907.2
|
||||
:knocked-yellow-vxz-lo 40960.0
|
||||
:knocked-yellow-vxz-hi 49152.0
|
||||
:knocked-yellow-vy-lo 57344.0
|
||||
:knocked-yellow-vy-hi 81920.0
|
||||
:knocked-red-vxz-lo 24576.0
|
||||
:knocked-red-vxz-hi 196608.0
|
||||
:knocked-red-vy-lo 94208.0
|
||||
:knocked-red-vy-hi 151552.0
|
||||
:knocked-blue-vxz-lo 40960.0
|
||||
:knocked-blue-vxz-hi 49152.0
|
||||
:knocked-blue-vy-lo 24576.0
|
||||
:knocked-blue-vy-hi 81920.0
|
||||
:shadow-size (meters 2)
|
||||
:shadow-max-y (meters 1)
|
||||
:shadow-min-y (meters -1)
|
||||
:shadow-locus-dist (meters 150)
|
||||
:gem-joint 24
|
||||
:gem-seg #x2
|
||||
:gem-no-seg #x4
|
||||
:gem-offset (new 'static 'sphere :y 1802.24 :z 286.72 :r 163840.0)
|
||||
:callback-info #f
|
||||
:use-momentum #f
|
||||
:use-frustration #t
|
||||
:use-stop-chase #f
|
||||
:use-circling #f
|
||||
:use-pacing #f
|
||||
:walk-anim 9
|
||||
:turn-anim -1
|
||||
:run-anim 13
|
||||
:taunt-anim -1
|
||||
:run-travel-speed (meters 12)
|
||||
:run-acceleration (meters 1)
|
||||
:run-turning-acceleration (meters 50)
|
||||
:walk-travel-speed (meters 2)
|
||||
:walk-acceleration (meters 1)
|
||||
:walk-turning-acceleration (meters 3)
|
||||
:maximum-rotation-rate (degrees 360.0)
|
||||
:notice-nav-radius (meters 50)
|
||||
:frustration-distance (meters 8)
|
||||
:frustration-time (seconds 4)
|
||||
:blocked-time (seconds 0.3)
|
||||
:circle-dist-lo 20480.0
|
||||
:circle-dist-hi 61440.0
|
||||
:nav-mesh #f
|
||||
)
|
||||
)
|
||||
(define *grenadier-nav-enemy-info*
|
||||
(new 'static 'nav-enemy-info
|
||||
:use-die-falling #t
|
||||
:use-victory #t
|
||||
:use-jump-blocked #t
|
||||
:debug-draw-neck #f
|
||||
:jump-debug-draw #f
|
||||
:move-to-ground #t
|
||||
:hover-if-no-ground #f
|
||||
:idle-anim-script (new 'static 'array idle-control-frame 20
|
||||
(new 'static 'idle-control-frame :command #x2 :param0 #x27)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x5 :param0 #x4 :param1 #x6)
|
||||
(new 'static 'idle-control-frame :command #x2 :param0 #x27)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x7 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x6 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command #x2 :param0 #x27)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x5 :param0 #x4 :param1 #x6)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x8 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x7 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x6 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command #x2 :param0 #x27)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x5 :param0 #x4 :param1 #x8)
|
||||
(new 'static 'idle-control-frame :command #x2 :param0 #x27)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x8 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command #x2 :param0 #x27)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x6 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
)
|
||||
:idle-anim 5
|
||||
:notice-anim 11
|
||||
:hostile-anim 13
|
||||
:hit-anim 23
|
||||
:knocked-anim 31
|
||||
:knocked-land-anim 32
|
||||
:die-anim 33
|
||||
:die-falling-anim 34
|
||||
:victory-anim 22
|
||||
:jump-wind-up-anim -1
|
||||
:jump-in-air-anim -1
|
||||
:jump-land-anim -1
|
||||
:neck-joint 24
|
||||
:look-at-joint 24
|
||||
:bullseye-joint 18
|
||||
:sound-hit (static-sound-name "grenadier-hit")
|
||||
:sound-die (static-sound-name "grenadier-die")
|
||||
:notice-distance (meters 50)
|
||||
:notice-distance-delta (meters 10)
|
||||
:proximity-notice-distance (meters 12.5)
|
||||
:default-hit-points 14
|
||||
:gnd-collide-with (collide-spec backgnd)
|
||||
:overlaps-others-collide-with-filter (collide-spec jak bot player-list)
|
||||
:penetrate-knocked #xffffffffffffffff
|
||||
:movement-gravity (meters -100)
|
||||
:friction 0.8
|
||||
:attack-shove-back (meters 3)
|
||||
:attack-shove-up (meters 2)
|
||||
:attack-mode 'generic
|
||||
:attack-damage 2
|
||||
:recover-gnd-collide-with (collide-spec backgnd crate obstacle hit-by-others-list pusher)
|
||||
:jump-height-min (meters 3)
|
||||
:jump-height-factor 0.5
|
||||
:knocked-seek-ry-clamp 0.18204445
|
||||
:knocked-soft-vxz-lo 72089.6
|
||||
:knocked-soft-vxz-hi 108134.4
|
||||
:knocked-soft-vy-lo 81920.0
|
||||
:knocked-soft-vy-hi 122880.0
|
||||
:knocked-medium-vxz-lo 147456.0
|
||||
:knocked-medium-vxz-hi 196608.0
|
||||
:knocked-medium-vy-lo 135168.0
|
||||
:knocked-medium-vy-hi 151552.0
|
||||
:knocked-hard-vxz-lo 78643.2
|
||||
:knocked-hard-vxz-hi 117964.8
|
||||
:knocked-hard-vy-lo 183500.8
|
||||
:knocked-hard-vy-hi 209715.2
|
||||
:knocked-huge-vxz-lo 164659.2
|
||||
:knocked-huge-vxz-hi 249036.8
|
||||
:knocked-huge-vy-lo 183500.8
|
||||
:knocked-huge-vy-hi 217907.2
|
||||
:knocked-yellow-vxz-lo 40960.0
|
||||
:knocked-yellow-vxz-hi 49152.0
|
||||
:knocked-yellow-vy-lo 57344.0
|
||||
:knocked-yellow-vy-hi 81920.0
|
||||
:knocked-red-vxz-lo 24576.0
|
||||
:knocked-red-vxz-hi 196608.0
|
||||
:knocked-red-vy-lo 94208.0
|
||||
:knocked-red-vy-hi 151552.0
|
||||
:knocked-blue-vxz-lo 40960.0
|
||||
:knocked-blue-vxz-hi 49152.0
|
||||
:knocked-blue-vy-lo 24576.0
|
||||
:knocked-blue-vy-hi 81920.0
|
||||
:shadow-size (meters 2)
|
||||
:shadow-max-y (meters 1)
|
||||
:shadow-min-y (meters -1)
|
||||
:shadow-locus-dist (meters 150)
|
||||
:gem-joint 24
|
||||
:gem-seg #x2
|
||||
:gem-no-seg #x4
|
||||
:gem-offset (new 'static 'sphere :y 1802.24 :z 286.72 :r 163840.0)
|
||||
:callback-info #f
|
||||
:use-momentum #f
|
||||
:use-frustration #t
|
||||
:use-stop-chase #f
|
||||
:use-circling #f
|
||||
:use-pacing #f
|
||||
:walk-anim 9
|
||||
:turn-anim -1
|
||||
:run-anim 13
|
||||
:taunt-anim -1
|
||||
:run-travel-speed (meters 12)
|
||||
:run-acceleration (meters 1)
|
||||
:run-turning-acceleration (meters 50)
|
||||
:walk-travel-speed (meters 2)
|
||||
:walk-acceleration (meters 1)
|
||||
:walk-turning-acceleration (meters 3)
|
||||
:maximum-rotation-rate (degrees 360.0)
|
||||
:notice-nav-radius (meters 50)
|
||||
:frustration-distance (meters 8)
|
||||
:frustration-time (seconds 4)
|
||||
:blocked-time (seconds 0.3)
|
||||
:circle-dist-lo 20480.0
|
||||
:circle-dist-hi 61440.0
|
||||
:nav-mesh #f
|
||||
)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(set! (-> *grenadier-nav-enemy-info* fact-defaults) *fact-info-enemy-defaults*)
|
||||
|
||||
+158
-146
@@ -544,79 +544,85 @@
|
||||
)
|
||||
|
||||
;; definition for symbol *sew-gunturret-enemy-info*, type enemy-info
|
||||
(define *sew-gunturret-enemy-info* (new 'static 'enemy-info
|
||||
:use-die-falling #f
|
||||
:use-victory #f
|
||||
:use-jump-blocked #f
|
||||
:debug-draw-neck #f
|
||||
:jump-debug-draw #f
|
||||
:move-to-ground #f
|
||||
:hover-if-no-ground #f
|
||||
:idle-anim-script (new 'static 'array uint32 4 #x1010201 #x0 #x0 #x0)
|
||||
:idle-anim 2
|
||||
:notice-anim 2
|
||||
:hostile-anim 2
|
||||
:hit-anim 2
|
||||
:knocked-anim -1
|
||||
:knocked-land-anim -1
|
||||
:die-anim 2
|
||||
:die-falling-anim -1
|
||||
:victory-anim -1
|
||||
:jump-wind-up-anim -1
|
||||
:jump-in-air-anim -1
|
||||
:jump-land-anim -1
|
||||
:neck-joint -1
|
||||
:notice-distance (meters 150)
|
||||
:notice-distance-delta (meters 10)
|
||||
:proximity-notice-distance (meters 150)
|
||||
:default-hit-points 1
|
||||
:gnd-collide-with (collide-spec backgnd)
|
||||
:overlaps-others-collide-with-filter (collide-spec jak bot player-list)
|
||||
:movement-gravity (meters -100)
|
||||
:friction 0.8
|
||||
:attack-shove-back (meters 3)
|
||||
:attack-shove-up (meters 2)
|
||||
:attack-mode 'generic
|
||||
:attack-damage 2
|
||||
:jump-height-min (meters 3)
|
||||
:jump-height-factor 0.5
|
||||
:knocked-seek-ry-clamp 2730.6667
|
||||
:knocked-soft-vxz-lo 72089.6
|
||||
:knocked-soft-vxz-hi 108134.4
|
||||
:knocked-soft-vy-lo 81920.0
|
||||
:knocked-soft-vy-hi 122880.0
|
||||
:knocked-medium-vxz-lo 147456.0
|
||||
:knocked-medium-vxz-hi 196608.0
|
||||
:knocked-medium-vy-lo 135168.0
|
||||
:knocked-medium-vy-hi 151552.0
|
||||
:knocked-hard-vxz-lo 78643.2
|
||||
:knocked-hard-vxz-hi 117964.8
|
||||
:knocked-hard-vy-lo 183500.8
|
||||
:knocked-hard-vy-hi 209715.2
|
||||
:knocked-huge-vxz-lo 164659.2
|
||||
:knocked-huge-vxz-hi 249036.8
|
||||
:knocked-huge-vy-lo 183500.8
|
||||
:knocked-huge-vy-hi 217907.2
|
||||
:knocked-yellow-vxz-lo 40960.0
|
||||
:knocked-yellow-vxz-hi 49152.0
|
||||
:knocked-yellow-vy-lo 57344.0
|
||||
:knocked-yellow-vy-hi 81920.0
|
||||
:knocked-red-vxz-lo 24576.0
|
||||
:knocked-red-vxz-hi 196608.0
|
||||
:knocked-red-vy-lo 94208.0
|
||||
:knocked-red-vy-hi 151552.0
|
||||
:knocked-blue-vxz-lo 40960.0
|
||||
:knocked-blue-vxz-hi 49152.0
|
||||
:knocked-blue-vy-lo 24576.0
|
||||
:knocked-blue-vy-hi 81920.0
|
||||
:shadow-size (meters 1)
|
||||
:shadow-max-y (meters 1)
|
||||
:shadow-min-y (meters -1)
|
||||
:shadow-locus-dist (meters 150)
|
||||
:gem-joint -1
|
||||
:gem-offset (new 'static 'sphere :r 163840.0)
|
||||
)
|
||||
)
|
||||
(define *sew-gunturret-enemy-info*
|
||||
(new 'static 'enemy-info
|
||||
:use-die-falling #f
|
||||
:use-victory #f
|
||||
:use-jump-blocked #f
|
||||
:debug-draw-neck #f
|
||||
:jump-debug-draw #f
|
||||
:move-to-ground #f
|
||||
:hover-if-no-ground #f
|
||||
:idle-anim-script (new 'static 'array idle-control-frame 4
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x2 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
)
|
||||
:idle-anim 2
|
||||
:notice-anim 2
|
||||
:hostile-anim 2
|
||||
:hit-anim 2
|
||||
:knocked-anim -1
|
||||
:knocked-land-anim -1
|
||||
:die-anim 2
|
||||
:die-falling-anim -1
|
||||
:victory-anim -1
|
||||
:jump-wind-up-anim -1
|
||||
:jump-in-air-anim -1
|
||||
:jump-land-anim -1
|
||||
:neck-joint -1
|
||||
:notice-distance (meters 150)
|
||||
:notice-distance-delta (meters 10)
|
||||
:proximity-notice-distance (meters 150)
|
||||
:default-hit-points 1
|
||||
:gnd-collide-with (collide-spec backgnd)
|
||||
:overlaps-others-collide-with-filter (collide-spec jak bot player-list)
|
||||
:movement-gravity (meters -100)
|
||||
:friction 0.8
|
||||
:attack-shove-back (meters 3)
|
||||
:attack-shove-up (meters 2)
|
||||
:attack-mode 'generic
|
||||
:attack-damage 2
|
||||
:jump-height-min (meters 3)
|
||||
:jump-height-factor 0.5
|
||||
:knocked-seek-ry-clamp 2730.6667
|
||||
:knocked-soft-vxz-lo 72089.6
|
||||
:knocked-soft-vxz-hi 108134.4
|
||||
:knocked-soft-vy-lo 81920.0
|
||||
:knocked-soft-vy-hi 122880.0
|
||||
:knocked-medium-vxz-lo 147456.0
|
||||
:knocked-medium-vxz-hi 196608.0
|
||||
:knocked-medium-vy-lo 135168.0
|
||||
:knocked-medium-vy-hi 151552.0
|
||||
:knocked-hard-vxz-lo 78643.2
|
||||
:knocked-hard-vxz-hi 117964.8
|
||||
:knocked-hard-vy-lo 183500.8
|
||||
:knocked-hard-vy-hi 209715.2
|
||||
:knocked-huge-vxz-lo 164659.2
|
||||
:knocked-huge-vxz-hi 249036.8
|
||||
:knocked-huge-vy-lo 183500.8
|
||||
:knocked-huge-vy-hi 217907.2
|
||||
:knocked-yellow-vxz-lo 40960.0
|
||||
:knocked-yellow-vxz-hi 49152.0
|
||||
:knocked-yellow-vy-lo 57344.0
|
||||
:knocked-yellow-vy-hi 81920.0
|
||||
:knocked-red-vxz-lo 24576.0
|
||||
:knocked-red-vxz-hi 196608.0
|
||||
:knocked-red-vy-lo 94208.0
|
||||
:knocked-red-vy-hi 151552.0
|
||||
:knocked-blue-vxz-lo 40960.0
|
||||
:knocked-blue-vxz-hi 49152.0
|
||||
:knocked-blue-vy-lo 24576.0
|
||||
:knocked-blue-vy-hi 81920.0
|
||||
:shadow-size (meters 1)
|
||||
:shadow-max-y (meters 1)
|
||||
:shadow-min-y (meters -1)
|
||||
:shadow-locus-dist (meters 150)
|
||||
:gem-joint -1
|
||||
:gem-offset (new 'static 'sphere :r 163840.0)
|
||||
)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(set! (-> *sew-gunturret-enemy-info* fact-defaults) *fact-info-enemy-defaults*)
|
||||
@@ -1193,79 +1199,85 @@
|
||||
)
|
||||
|
||||
;; definition for symbol *pal-gun-turret-enemy-info*, type enemy-info
|
||||
(define *pal-gun-turret-enemy-info* (new 'static 'enemy-info
|
||||
:use-die-falling #f
|
||||
:use-victory #f
|
||||
:use-jump-blocked #f
|
||||
:debug-draw-neck #f
|
||||
:jump-debug-draw #f
|
||||
:move-to-ground #f
|
||||
:hover-if-no-ground #f
|
||||
:idle-anim-script (new 'static 'array uint32 4 #x2020201 #x0 #x0 #x0)
|
||||
:idle-anim 2
|
||||
:notice-anim 2
|
||||
:hostile-anim 2
|
||||
:hit-anim 2
|
||||
:knocked-anim -1
|
||||
:knocked-land-anim -1
|
||||
:die-anim 2
|
||||
:die-falling-anim -1
|
||||
:victory-anim -1
|
||||
:jump-wind-up-anim -1
|
||||
:jump-in-air-anim -1
|
||||
:jump-land-anim -1
|
||||
:neck-joint -1
|
||||
:notice-distance (meters 150)
|
||||
:notice-distance-delta (meters 10)
|
||||
:proximity-notice-distance (meters 150)
|
||||
:default-hit-points 1
|
||||
:gnd-collide-with (collide-spec backgnd)
|
||||
:overlaps-others-collide-with-filter (collide-spec jak bot player-list)
|
||||
:movement-gravity (meters -100)
|
||||
:friction 0.8
|
||||
:attack-shove-back (meters 3)
|
||||
:attack-shove-up (meters 2)
|
||||
:attack-mode 'generic
|
||||
:attack-damage 2
|
||||
:jump-height-min (meters 3)
|
||||
:jump-height-factor 0.5
|
||||
:knocked-seek-ry-clamp 2730.6667
|
||||
:knocked-soft-vxz-lo 72089.6
|
||||
:knocked-soft-vxz-hi 108134.4
|
||||
:knocked-soft-vy-lo 81920.0
|
||||
:knocked-soft-vy-hi 122880.0
|
||||
:knocked-medium-vxz-lo 147456.0
|
||||
:knocked-medium-vxz-hi 196608.0
|
||||
:knocked-medium-vy-lo 135168.0
|
||||
:knocked-medium-vy-hi 151552.0
|
||||
:knocked-hard-vxz-lo 78643.2
|
||||
:knocked-hard-vxz-hi 117964.8
|
||||
:knocked-hard-vy-lo 183500.8
|
||||
:knocked-hard-vy-hi 209715.2
|
||||
:knocked-huge-vxz-lo 164659.2
|
||||
:knocked-huge-vxz-hi 249036.8
|
||||
:knocked-huge-vy-lo 183500.8
|
||||
:knocked-huge-vy-hi 217907.2
|
||||
:knocked-yellow-vxz-lo 40960.0
|
||||
:knocked-yellow-vxz-hi 49152.0
|
||||
:knocked-yellow-vy-lo 57344.0
|
||||
:knocked-yellow-vy-hi 81920.0
|
||||
:knocked-red-vxz-lo 24576.0
|
||||
:knocked-red-vxz-hi 196608.0
|
||||
:knocked-red-vy-lo 94208.0
|
||||
:knocked-red-vy-hi 151552.0
|
||||
:knocked-blue-vxz-lo 40960.0
|
||||
:knocked-blue-vxz-hi 49152.0
|
||||
:knocked-blue-vy-lo 24576.0
|
||||
:knocked-blue-vy-hi 81920.0
|
||||
:shadow-size (meters 1)
|
||||
:shadow-max-y (meters 1)
|
||||
:shadow-min-y (meters -1)
|
||||
:shadow-locus-dist (meters 150)
|
||||
:gem-joint -1
|
||||
:gem-offset (new 'static 'sphere :r 163840.0)
|
||||
)
|
||||
)
|
||||
(define *pal-gun-turret-enemy-info*
|
||||
(new 'static 'enemy-info
|
||||
:use-die-falling #f
|
||||
:use-victory #f
|
||||
:use-jump-blocked #f
|
||||
:debug-draw-neck #f
|
||||
:jump-debug-draw #f
|
||||
:move-to-ground #f
|
||||
:hover-if-no-ground #f
|
||||
:idle-anim-script (new 'static 'array idle-control-frame 4
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x2 :param0 #x2 :param1 #x2)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
)
|
||||
:idle-anim 2
|
||||
:notice-anim 2
|
||||
:hostile-anim 2
|
||||
:hit-anim 2
|
||||
:knocked-anim -1
|
||||
:knocked-land-anim -1
|
||||
:die-anim 2
|
||||
:die-falling-anim -1
|
||||
:victory-anim -1
|
||||
:jump-wind-up-anim -1
|
||||
:jump-in-air-anim -1
|
||||
:jump-land-anim -1
|
||||
:neck-joint -1
|
||||
:notice-distance (meters 150)
|
||||
:notice-distance-delta (meters 10)
|
||||
:proximity-notice-distance (meters 150)
|
||||
:default-hit-points 1
|
||||
:gnd-collide-with (collide-spec backgnd)
|
||||
:overlaps-others-collide-with-filter (collide-spec jak bot player-list)
|
||||
:movement-gravity (meters -100)
|
||||
:friction 0.8
|
||||
:attack-shove-back (meters 3)
|
||||
:attack-shove-up (meters 2)
|
||||
:attack-mode 'generic
|
||||
:attack-damage 2
|
||||
:jump-height-min (meters 3)
|
||||
:jump-height-factor 0.5
|
||||
:knocked-seek-ry-clamp 2730.6667
|
||||
:knocked-soft-vxz-lo 72089.6
|
||||
:knocked-soft-vxz-hi 108134.4
|
||||
:knocked-soft-vy-lo 81920.0
|
||||
:knocked-soft-vy-hi 122880.0
|
||||
:knocked-medium-vxz-lo 147456.0
|
||||
:knocked-medium-vxz-hi 196608.0
|
||||
:knocked-medium-vy-lo 135168.0
|
||||
:knocked-medium-vy-hi 151552.0
|
||||
:knocked-hard-vxz-lo 78643.2
|
||||
:knocked-hard-vxz-hi 117964.8
|
||||
:knocked-hard-vy-lo 183500.8
|
||||
:knocked-hard-vy-hi 209715.2
|
||||
:knocked-huge-vxz-lo 164659.2
|
||||
:knocked-huge-vxz-hi 249036.8
|
||||
:knocked-huge-vy-lo 183500.8
|
||||
:knocked-huge-vy-hi 217907.2
|
||||
:knocked-yellow-vxz-lo 40960.0
|
||||
:knocked-yellow-vxz-hi 49152.0
|
||||
:knocked-yellow-vy-lo 57344.0
|
||||
:knocked-yellow-vy-hi 81920.0
|
||||
:knocked-red-vxz-lo 24576.0
|
||||
:knocked-red-vxz-hi 196608.0
|
||||
:knocked-red-vy-lo 94208.0
|
||||
:knocked-red-vy-hi 151552.0
|
||||
:knocked-blue-vxz-lo 40960.0
|
||||
:knocked-blue-vxz-hi 49152.0
|
||||
:knocked-blue-vy-lo 24576.0
|
||||
:knocked-blue-vy-hi 81920.0
|
||||
:shadow-size (meters 1)
|
||||
:shadow-max-y (meters 1)
|
||||
:shadow-min-y (meters -1)
|
||||
:shadow-locus-dist (meters 150)
|
||||
:gem-joint -1
|
||||
:gem-offset (new 'static 'sphere :r 163840.0)
|
||||
)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(set! (-> *pal-gun-turret-enemy-info* fact-defaults) *fact-info-enemy-defaults*)
|
||||
|
||||
+123
-122
@@ -440,128 +440,129 @@
|
||||
)
|
||||
|
||||
;; definition for symbol *flitter-nav-enemy-info*, type nav-enemy-info
|
||||
(define *flitter-nav-enemy-info* (new 'static 'nav-enemy-info
|
||||
:use-die-falling #t
|
||||
:use-victory #f
|
||||
:use-jump-blocked #f
|
||||
:debug-draw-neck #f
|
||||
:jump-debug-draw #f
|
||||
:move-to-ground #t
|
||||
:hover-if-no-ground #f
|
||||
:idle-anim-script (new 'static 'array uint32 16
|
||||
#x1e0002
|
||||
#x6030501
|
||||
#x1e0002
|
||||
#x1010601
|
||||
#x1e0f0701
|
||||
#x1e0002
|
||||
#x4020501
|
||||
#x1e0002
|
||||
#x1010801
|
||||
#x140a0901
|
||||
#x1e0002
|
||||
#x2010501
|
||||
#x1e0002
|
||||
#x1010801
|
||||
#x1e0f0901
|
||||
#x0
|
||||
)
|
||||
:idle-anim 5
|
||||
:notice-anim 12
|
||||
:hostile-anim 14
|
||||
:hit-anim 5
|
||||
:knocked-anim 20
|
||||
:knocked-land-anim 21
|
||||
:die-anim 19
|
||||
:die-falling-anim 18
|
||||
:victory-anim 5
|
||||
:jump-wind-up-anim 5
|
||||
:jump-in-air-anim 5
|
||||
:jump-land-anim 5
|
||||
:neck-joint -1
|
||||
:look-at-joint 28
|
||||
:bullseye-joint 3
|
||||
:sound-hit (static-sound-name "flitter-hit")
|
||||
:sound-die (static-sound-name "flitter-die")
|
||||
:notice-distance (meters 40)
|
||||
:notice-distance-delta (meters 10)
|
||||
:proximity-notice-distance (meters 20)
|
||||
:default-hit-points 1
|
||||
:gnd-collide-with (collide-spec backgnd)
|
||||
:overlaps-others-collide-with-filter (collide-spec jak bot player-list)
|
||||
:penetrate-knocked #x11fffdffa
|
||||
:movement-gravity (meters -100)
|
||||
:friction 0.8
|
||||
:attack-shove-back (meters 6)
|
||||
:attack-shove-up (meters 3)
|
||||
:attack-mode 'generic
|
||||
:attack-damage 1
|
||||
:recover-gnd-collide-with (collide-spec backgnd crate obstacle hit-by-others-list pusher)
|
||||
:jump-height-min (meters 3)
|
||||
:jump-height-factor 0.5
|
||||
:knocked-seek-ry-clamp 2730.6667
|
||||
:knocked-soft-vxz-lo 72089.6
|
||||
:knocked-soft-vxz-hi 108134.4
|
||||
:knocked-soft-vy-lo 81920.0
|
||||
:knocked-soft-vy-hi 122880.0
|
||||
:knocked-medium-vxz-lo 147456.0
|
||||
:knocked-medium-vxz-hi 196608.0
|
||||
:knocked-medium-vy-lo 135168.0
|
||||
:knocked-medium-vy-hi 151552.0
|
||||
:knocked-hard-vxz-lo 78643.2
|
||||
:knocked-hard-vxz-hi 117964.8
|
||||
:knocked-hard-vy-lo 183500.8
|
||||
:knocked-hard-vy-hi 275251.2
|
||||
:knocked-huge-vxz-lo 164659.2
|
||||
:knocked-huge-vxz-hi 249036.8
|
||||
:knocked-huge-vy-lo 183500.8
|
||||
:knocked-huge-vy-hi 217907.2
|
||||
:knocked-yellow-vxz-lo 40960.0
|
||||
:knocked-yellow-vxz-hi 49152.0
|
||||
:knocked-yellow-vy-lo 57344.0
|
||||
:knocked-yellow-vy-hi 81920.0
|
||||
:knocked-red-vxz-lo 24576.0
|
||||
:knocked-red-vxz-hi 196608.0
|
||||
:knocked-red-vy-lo 94208.0
|
||||
:knocked-red-vy-hi 151552.0
|
||||
:knocked-blue-vxz-lo 40960.0
|
||||
:knocked-blue-vxz-hi 49152.0
|
||||
:knocked-blue-vy-lo 24576.0
|
||||
:knocked-blue-vy-hi 81920.0
|
||||
:shadow-size (meters 2)
|
||||
:shadow-max-y (meters 1)
|
||||
:shadow-min-y (meters -1)
|
||||
:shadow-locus-dist (meters 150)
|
||||
:gem-joint 28
|
||||
:gem-seg #x2
|
||||
:gem-no-seg #x4
|
||||
:gem-offset (new 'static 'sphere :y 696.32 :z 1843.2 :r 163840.0)
|
||||
:callback-info #f
|
||||
:use-momentum #f
|
||||
:use-frustration #t
|
||||
:use-stop-chase #f
|
||||
:use-circling #t
|
||||
:use-pacing #t
|
||||
:walk-anim 13
|
||||
:turn-anim 15
|
||||
:run-anim 14
|
||||
:taunt-anim -1
|
||||
:run-travel-speed (meters 12)
|
||||
:run-acceleration (meters 8)
|
||||
:run-turning-acceleration (meters 120)
|
||||
:walk-travel-speed (meters 4)
|
||||
:walk-acceleration (meters 1)
|
||||
:walk-turning-acceleration (meters 5)
|
||||
:maximum-rotation-rate (degrees 720.0)
|
||||
:notice-nav-radius (meters 5)
|
||||
:frustration-distance (meters 12)
|
||||
:frustration-time (seconds 4)
|
||||
:blocked-time (seconds 0.3)
|
||||
:circle-dist-lo 20480.0
|
||||
:circle-dist-hi 61440.0
|
||||
:nav-mesh #f
|
||||
)
|
||||
)
|
||||
(define *flitter-nav-enemy-info*
|
||||
(new 'static 'nav-enemy-info
|
||||
:use-die-falling #t
|
||||
:use-victory #f
|
||||
:use-jump-blocked #f
|
||||
:debug-draw-neck #f
|
||||
:jump-debug-draw #f
|
||||
:move-to-ground #t
|
||||
:hover-if-no-ground #f
|
||||
:idle-anim-script (new 'static 'array idle-control-frame 16
|
||||
(new 'static 'idle-control-frame :command #x2 :param0 #x1e)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x5 :param0 #x3 :param1 #x6)
|
||||
(new 'static 'idle-control-frame :command #x2 :param0 #x1e)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x6 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x7 :param0 #xf :param1 #x1e)
|
||||
(new 'static 'idle-control-frame :command #x2 :param0 #x1e)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x5 :param0 #x2 :param1 #x4)
|
||||
(new 'static 'idle-control-frame :command #x2 :param0 #x1e)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x8 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x9 :param0 #xa :param1 #x14)
|
||||
(new 'static 'idle-control-frame :command #x2 :param0 #x1e)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x5 :param0 #x1 :param1 #x2)
|
||||
(new 'static 'idle-control-frame :command #x2 :param0 #x1e)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x8 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x9 :param0 #xf :param1 #x1e)
|
||||
(new 'static 'idle-control-frame)
|
||||
)
|
||||
:idle-anim 5
|
||||
:notice-anim 12
|
||||
:hostile-anim 14
|
||||
:hit-anim 5
|
||||
:knocked-anim 20
|
||||
:knocked-land-anim 21
|
||||
:die-anim 19
|
||||
:die-falling-anim 18
|
||||
:victory-anim 5
|
||||
:jump-wind-up-anim 5
|
||||
:jump-in-air-anim 5
|
||||
:jump-land-anim 5
|
||||
:neck-joint -1
|
||||
:look-at-joint 28
|
||||
:bullseye-joint 3
|
||||
:sound-hit (static-sound-name "flitter-hit")
|
||||
:sound-die (static-sound-name "flitter-die")
|
||||
:notice-distance (meters 40)
|
||||
:notice-distance-delta (meters 10)
|
||||
:proximity-notice-distance (meters 20)
|
||||
:default-hit-points 1
|
||||
:gnd-collide-with (collide-spec backgnd)
|
||||
:overlaps-others-collide-with-filter (collide-spec jak bot player-list)
|
||||
:penetrate-knocked #x11fffdffa
|
||||
:movement-gravity (meters -100)
|
||||
:friction 0.8
|
||||
:attack-shove-back (meters 6)
|
||||
:attack-shove-up (meters 3)
|
||||
:attack-mode 'generic
|
||||
:attack-damage 1
|
||||
:recover-gnd-collide-with (collide-spec backgnd crate obstacle hit-by-others-list pusher)
|
||||
:jump-height-min (meters 3)
|
||||
:jump-height-factor 0.5
|
||||
:knocked-seek-ry-clamp 2730.6667
|
||||
:knocked-soft-vxz-lo 72089.6
|
||||
:knocked-soft-vxz-hi 108134.4
|
||||
:knocked-soft-vy-lo 81920.0
|
||||
:knocked-soft-vy-hi 122880.0
|
||||
:knocked-medium-vxz-lo 147456.0
|
||||
:knocked-medium-vxz-hi 196608.0
|
||||
:knocked-medium-vy-lo 135168.0
|
||||
:knocked-medium-vy-hi 151552.0
|
||||
:knocked-hard-vxz-lo 78643.2
|
||||
:knocked-hard-vxz-hi 117964.8
|
||||
:knocked-hard-vy-lo 183500.8
|
||||
:knocked-hard-vy-hi 275251.2
|
||||
:knocked-huge-vxz-lo 164659.2
|
||||
:knocked-huge-vxz-hi 249036.8
|
||||
:knocked-huge-vy-lo 183500.8
|
||||
:knocked-huge-vy-hi 217907.2
|
||||
:knocked-yellow-vxz-lo 40960.0
|
||||
:knocked-yellow-vxz-hi 49152.0
|
||||
:knocked-yellow-vy-lo 57344.0
|
||||
:knocked-yellow-vy-hi 81920.0
|
||||
:knocked-red-vxz-lo 24576.0
|
||||
:knocked-red-vxz-hi 196608.0
|
||||
:knocked-red-vy-lo 94208.0
|
||||
:knocked-red-vy-hi 151552.0
|
||||
:knocked-blue-vxz-lo 40960.0
|
||||
:knocked-blue-vxz-hi 49152.0
|
||||
:knocked-blue-vy-lo 24576.0
|
||||
:knocked-blue-vy-hi 81920.0
|
||||
:shadow-size (meters 2)
|
||||
:shadow-max-y (meters 1)
|
||||
:shadow-min-y (meters -1)
|
||||
:shadow-locus-dist (meters 150)
|
||||
:gem-joint 28
|
||||
:gem-seg #x2
|
||||
:gem-no-seg #x4
|
||||
:gem-offset (new 'static 'sphere :y 696.32 :z 1843.2 :r 163840.0)
|
||||
:callback-info #f
|
||||
:use-momentum #f
|
||||
:use-frustration #t
|
||||
:use-stop-chase #f
|
||||
:use-circling #t
|
||||
:use-pacing #t
|
||||
:walk-anim 13
|
||||
:turn-anim 15
|
||||
:run-anim 14
|
||||
:taunt-anim -1
|
||||
:run-travel-speed (meters 12)
|
||||
:run-acceleration (meters 8)
|
||||
:run-turning-acceleration (meters 120)
|
||||
:walk-travel-speed (meters 4)
|
||||
:walk-acceleration (meters 1)
|
||||
:walk-turning-acceleration (meters 5)
|
||||
:maximum-rotation-rate (degrees 720.0)
|
||||
:notice-nav-radius (meters 5)
|
||||
:frustration-distance (meters 12)
|
||||
:frustration-time (seconds 4)
|
||||
:blocked-time (seconds 0.3)
|
||||
:circle-dist-lo 20480.0
|
||||
:circle-dist-hi 61440.0
|
||||
:nav-mesh #f
|
||||
)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(set! (-> *flitter-nav-enemy-info* fact-defaults) *fact-info-enemy-defaults*)
|
||||
|
||||
+143
-142
@@ -187,148 +187,149 @@
|
||||
)
|
||||
|
||||
;; definition for symbol *grunt-nav-enemy-info*, type nav-enemy-info
|
||||
(define *grunt-nav-enemy-info* (new 'static 'nav-enemy-info
|
||||
:use-die-falling #t
|
||||
:use-victory #f
|
||||
:use-jump-blocked #t
|
||||
:debug-draw-neck #f
|
||||
:jump-debug-draw #f
|
||||
:move-to-ground #t
|
||||
:hover-if-no-ground #f
|
||||
:idle-anim-script (new 'static 'array uint32 36
|
||||
#x1e0002
|
||||
#x3010501
|
||||
#x1e0002
|
||||
#x1010601
|
||||
#x691e0701
|
||||
#x3c0002
|
||||
#x3010501
|
||||
#x1e0002
|
||||
#x1010601
|
||||
#x691e0701
|
||||
#x1e0002
|
||||
#x1010801
|
||||
#x691e0901
|
||||
#x1010a01
|
||||
#x1e0002
|
||||
#x3010501
|
||||
#x1e0002
|
||||
#x1010801
|
||||
#x691e0901
|
||||
#x1010a01
|
||||
#x1e0002
|
||||
#x3010501
|
||||
#x1e0002
|
||||
#x1010601
|
||||
#x691e0701
|
||||
#x1e0002
|
||||
#x1010801
|
||||
#x691e0901
|
||||
#x1010a01
|
||||
#x1e0002
|
||||
#x3010501
|
||||
#x1e0002
|
||||
#x1011e01
|
||||
#x3c0002
|
||||
#x1010501
|
||||
#x0
|
||||
)
|
||||
:idle-anim 5
|
||||
:notice-anim 13
|
||||
:hostile-anim -1
|
||||
:hit-anim 34
|
||||
:knocked-anim -1
|
||||
:knocked-land-anim -1
|
||||
:die-anim 19
|
||||
:die-falling-anim 32
|
||||
:victory-anim -1
|
||||
:jump-wind-up-anim 45
|
||||
:jump-in-air-anim 46
|
||||
:jump-land-anim 47
|
||||
:neck-joint 5
|
||||
:look-at-joint 6
|
||||
:bullseye-joint 18
|
||||
:sound-hit (static-sound-name "grunt-hit")
|
||||
:sound-die (static-sound-name "grunt-die")
|
||||
:notice-distance (meters 40)
|
||||
:notice-distance-delta (meters 10)
|
||||
:proximity-notice-distance (meters 20)
|
||||
:default-hit-points 5
|
||||
:gnd-collide-with (collide-spec backgnd)
|
||||
:overlaps-others-collide-with-filter (collide-spec jak bot player-list)
|
||||
:penetrate-knocked #xffffffffffffffff
|
||||
:movement-gravity (meters -100)
|
||||
:friction 0.8
|
||||
:attack-shove-back (meters 5)
|
||||
:attack-shove-up (meters 3)
|
||||
:attack-mode 'generic
|
||||
:attack-damage 2
|
||||
:recover-gnd-collide-with (collide-spec backgnd crate obstacle hit-by-others-list pusher)
|
||||
:jump-height-min (meters 3)
|
||||
:jump-height-factor 0.5
|
||||
:knocked-seek-ry-clamp 6371.5557
|
||||
:knocked-soft-vxz-lo 72089.6
|
||||
:knocked-soft-vxz-hi 108134.4
|
||||
:knocked-soft-vy-lo 81920.0
|
||||
:knocked-soft-vy-hi 122880.0
|
||||
:knocked-medium-vxz-lo 147456.0
|
||||
:knocked-medium-vxz-hi 196608.0
|
||||
:knocked-medium-vy-lo 135168.0
|
||||
:knocked-medium-vy-hi 151552.0
|
||||
:knocked-hard-vxz-lo 78643.2
|
||||
:knocked-hard-vxz-hi 117964.8
|
||||
:knocked-hard-vy-lo 183500.8
|
||||
:knocked-hard-vy-hi 209715.2
|
||||
:knocked-huge-vxz-lo 164659.2
|
||||
:knocked-huge-vxz-hi 249036.8
|
||||
:knocked-huge-vy-lo 183500.8
|
||||
:knocked-huge-vy-hi 217907.2
|
||||
:knocked-yellow-vxz-lo 40960.0
|
||||
:knocked-yellow-vxz-hi 49152.0
|
||||
:knocked-yellow-vy-lo 57344.0
|
||||
:knocked-yellow-vy-hi 81920.0
|
||||
:knocked-red-vxz-lo 24576.0
|
||||
:knocked-red-vxz-hi 196608.0
|
||||
:knocked-red-vy-lo 94208.0
|
||||
:knocked-red-vy-hi 151552.0
|
||||
:knocked-blue-vxz-lo 40960.0
|
||||
:knocked-blue-vxz-hi 49152.0
|
||||
:knocked-blue-vy-lo 24576.0
|
||||
:knocked-blue-vy-hi 81920.0
|
||||
:shadow-size (meters 2)
|
||||
:shadow-max-y (meters 1)
|
||||
:shadow-min-y (meters -1)
|
||||
:shadow-locus-dist (meters 150)
|
||||
:gem-joint 6
|
||||
:gem-seg #x2
|
||||
:gem-no-seg #x4
|
||||
:gem-offset (new 'static 'sphere :y 614.4 :z -3276.8 :r 327680.0)
|
||||
:callback-info #f
|
||||
:use-momentum #t
|
||||
:use-frustration #t
|
||||
:use-stop-chase #t
|
||||
:use-circling #t
|
||||
:use-pacing #t
|
||||
:walk-anim 11
|
||||
:turn-anim -1
|
||||
:run-anim 14
|
||||
:taunt-anim 20
|
||||
:run-travel-speed (meters 7)
|
||||
:run-acceleration (meters 6)
|
||||
:run-turning-acceleration (meters 50)
|
||||
:walk-travel-speed (meters 4)
|
||||
:walk-acceleration (meters 6)
|
||||
:walk-turning-acceleration (meters 3)
|
||||
:maximum-rotation-rate (degrees 360.0)
|
||||
:notice-nav-radius (meters 2)
|
||||
:frustration-distance (meters 8)
|
||||
:frustration-time (seconds 4)
|
||||
:blocked-time (seconds 0.3)
|
||||
:circle-dist-lo 20480.0
|
||||
:circle-dist-hi 61440.0
|
||||
:nav-mesh #f
|
||||
)
|
||||
)
|
||||
(define *grunt-nav-enemy-info*
|
||||
(new 'static 'nav-enemy-info
|
||||
:use-die-falling #t
|
||||
:use-victory #f
|
||||
:use-jump-blocked #t
|
||||
:debug-draw-neck #f
|
||||
:jump-debug-draw #f
|
||||
:move-to-ground #t
|
||||
:hover-if-no-ground #f
|
||||
:idle-anim-script (new 'static 'array idle-control-frame 36
|
||||
(new 'static 'idle-control-frame :command #x2 :param0 #x1e)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x5 :param0 #x1 :param1 #x3)
|
||||
(new 'static 'idle-control-frame :command #x2 :param0 #x1e)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x6 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x7 :param0 #x1e :param1 #x69)
|
||||
(new 'static 'idle-control-frame :command #x2 :param0 #x3c)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x5 :param0 #x1 :param1 #x3)
|
||||
(new 'static 'idle-control-frame :command #x2 :param0 #x1e)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x6 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x7 :param0 #x1e :param1 #x69)
|
||||
(new 'static 'idle-control-frame :command #x2 :param0 #x1e)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x8 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x9 :param0 #x1e :param1 #x69)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #xa :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command #x2 :param0 #x1e)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x5 :param0 #x1 :param1 #x3)
|
||||
(new 'static 'idle-control-frame :command #x2 :param0 #x1e)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x8 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x9 :param0 #x1e :param1 #x69)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #xa :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command #x2 :param0 #x1e)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x5 :param0 #x1 :param1 #x3)
|
||||
(new 'static 'idle-control-frame :command #x2 :param0 #x1e)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x6 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x7 :param0 #x1e :param1 #x69)
|
||||
(new 'static 'idle-control-frame :command #x2 :param0 #x1e)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x8 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x9 :param0 #x1e :param1 #x69)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #xa :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command #x2 :param0 #x1e)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x5 :param0 #x1 :param1 #x3)
|
||||
(new 'static 'idle-control-frame :command #x2 :param0 #x1e)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x1e :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame :command #x2 :param0 #x3c)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x5 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame)
|
||||
)
|
||||
:idle-anim 5
|
||||
:notice-anim 13
|
||||
:hostile-anim -1
|
||||
:hit-anim 34
|
||||
:knocked-anim -1
|
||||
:knocked-land-anim -1
|
||||
:die-anim 19
|
||||
:die-falling-anim 32
|
||||
:victory-anim -1
|
||||
:jump-wind-up-anim 45
|
||||
:jump-in-air-anim 46
|
||||
:jump-land-anim 47
|
||||
:neck-joint 5
|
||||
:look-at-joint 6
|
||||
:bullseye-joint 18
|
||||
:sound-hit (static-sound-name "grunt-hit")
|
||||
:sound-die (static-sound-name "grunt-die")
|
||||
:notice-distance (meters 40)
|
||||
:notice-distance-delta (meters 10)
|
||||
:proximity-notice-distance (meters 20)
|
||||
:default-hit-points 5
|
||||
:gnd-collide-with (collide-spec backgnd)
|
||||
:overlaps-others-collide-with-filter (collide-spec jak bot player-list)
|
||||
:penetrate-knocked #xffffffffffffffff
|
||||
:movement-gravity (meters -100)
|
||||
:friction 0.8
|
||||
:attack-shove-back (meters 5)
|
||||
:attack-shove-up (meters 3)
|
||||
:attack-mode 'generic
|
||||
:attack-damage 2
|
||||
:recover-gnd-collide-with (collide-spec backgnd crate obstacle hit-by-others-list pusher)
|
||||
:jump-height-min (meters 3)
|
||||
:jump-height-factor 0.5
|
||||
:knocked-seek-ry-clamp 6371.5557
|
||||
:knocked-soft-vxz-lo 72089.6
|
||||
:knocked-soft-vxz-hi 108134.4
|
||||
:knocked-soft-vy-lo 81920.0
|
||||
:knocked-soft-vy-hi 122880.0
|
||||
:knocked-medium-vxz-lo 147456.0
|
||||
:knocked-medium-vxz-hi 196608.0
|
||||
:knocked-medium-vy-lo 135168.0
|
||||
:knocked-medium-vy-hi 151552.0
|
||||
:knocked-hard-vxz-lo 78643.2
|
||||
:knocked-hard-vxz-hi 117964.8
|
||||
:knocked-hard-vy-lo 183500.8
|
||||
:knocked-hard-vy-hi 209715.2
|
||||
:knocked-huge-vxz-lo 164659.2
|
||||
:knocked-huge-vxz-hi 249036.8
|
||||
:knocked-huge-vy-lo 183500.8
|
||||
:knocked-huge-vy-hi 217907.2
|
||||
:knocked-yellow-vxz-lo 40960.0
|
||||
:knocked-yellow-vxz-hi 49152.0
|
||||
:knocked-yellow-vy-lo 57344.0
|
||||
:knocked-yellow-vy-hi 81920.0
|
||||
:knocked-red-vxz-lo 24576.0
|
||||
:knocked-red-vxz-hi 196608.0
|
||||
:knocked-red-vy-lo 94208.0
|
||||
:knocked-red-vy-hi 151552.0
|
||||
:knocked-blue-vxz-lo 40960.0
|
||||
:knocked-blue-vxz-hi 49152.0
|
||||
:knocked-blue-vy-lo 24576.0
|
||||
:knocked-blue-vy-hi 81920.0
|
||||
:shadow-size (meters 2)
|
||||
:shadow-max-y (meters 1)
|
||||
:shadow-min-y (meters -1)
|
||||
:shadow-locus-dist (meters 150)
|
||||
:gem-joint 6
|
||||
:gem-seg #x2
|
||||
:gem-no-seg #x4
|
||||
:gem-offset (new 'static 'sphere :y 614.4 :z -3276.8 :r 327680.0)
|
||||
:callback-info #f
|
||||
:use-momentum #t
|
||||
:use-frustration #t
|
||||
:use-stop-chase #t
|
||||
:use-circling #t
|
||||
:use-pacing #t
|
||||
:walk-anim 11
|
||||
:turn-anim -1
|
||||
:run-anim 14
|
||||
:taunt-anim 20
|
||||
:run-travel-speed (meters 7)
|
||||
:run-acceleration (meters 6)
|
||||
:run-turning-acceleration (meters 50)
|
||||
:walk-travel-speed (meters 4)
|
||||
:walk-acceleration (meters 6)
|
||||
:walk-turning-acceleration (meters 3)
|
||||
:maximum-rotation-rate (degrees 360.0)
|
||||
:notice-nav-radius (meters 2)
|
||||
:frustration-distance (meters 8)
|
||||
:frustration-time (seconds 4)
|
||||
:blocked-time (seconds 0.3)
|
||||
:circle-dist-lo 20480.0
|
||||
:circle-dist-hi 61440.0
|
||||
:nav-mesh #f
|
||||
)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(set! (-> *grunt-nav-enemy-info* fact-defaults) *fact-info-enemy-defaults*)
|
||||
|
||||
+108
-102
@@ -223,108 +223,114 @@
|
||||
)
|
||||
|
||||
;; definition for symbol *ginsu-nav-enemy-info*, type nav-enemy-info
|
||||
(define *ginsu-nav-enemy-info* (new 'static 'nav-enemy-info
|
||||
:use-die-falling #t
|
||||
:use-victory #f
|
||||
:use-jump-blocked #t
|
||||
:debug-draw-neck #f
|
||||
:jump-debug-draw #f
|
||||
:move-to-ground #t
|
||||
:hover-if-no-ground #f
|
||||
:idle-anim-script (new 'static 'array uint32 4 #x1010501 #x0 #x0 #x0)
|
||||
:idle-anim 5
|
||||
:notice-anim 10
|
||||
:hostile-anim 5
|
||||
:hit-anim 5
|
||||
:knocked-anim 11
|
||||
:knocked-land-anim 12
|
||||
:die-anim 11
|
||||
:die-falling-anim 5
|
||||
:victory-anim 5
|
||||
:jump-wind-up-anim 5
|
||||
:jump-in-air-anim 5
|
||||
:jump-land-anim 5
|
||||
:neck-joint 7
|
||||
:look-at-joint 7
|
||||
:bullseye-joint 4
|
||||
:sound-die (static-sound-name "ginsu-die")
|
||||
:notice-distance (meters 40)
|
||||
:notice-distance-delta (meters 10)
|
||||
:proximity-notice-distance (meters 40)
|
||||
:default-hit-points 1
|
||||
:gnd-collide-with (collide-spec backgnd)
|
||||
:overlaps-others-collide-with-filter (collide-spec jak bot enemy hit-by-others-list player-list)
|
||||
:penetrate-knocked #x11fffdffa
|
||||
:movement-gravity (meters -100)
|
||||
:friction 0.8
|
||||
:attack-shove-back (meters 3)
|
||||
:attack-shove-up (meters 2)
|
||||
:attack-mode 'generic
|
||||
:attack-damage 2
|
||||
:recover-gnd-collide-with (collide-spec backgnd crate obstacle hit-by-others-list pusher)
|
||||
:jump-height-min (meters 3)
|
||||
:jump-height-factor 0.5
|
||||
:knocked-seek-ry-clamp 4551.1113
|
||||
:knocked-soft-vxz-lo 72089.6
|
||||
:knocked-soft-vxz-hi 108134.4
|
||||
:knocked-soft-vy-lo 81920.0
|
||||
:knocked-soft-vy-hi 122880.0
|
||||
:knocked-medium-vxz-lo 147456.0
|
||||
:knocked-medium-vxz-hi 196608.0
|
||||
:knocked-medium-vy-lo 135168.0
|
||||
:knocked-medium-vy-hi 151552.0
|
||||
:knocked-hard-vxz-lo 78643.2
|
||||
:knocked-hard-vxz-hi 117964.8
|
||||
:knocked-hard-vy-lo 183500.8
|
||||
:knocked-hard-vy-hi 209715.2
|
||||
:knocked-huge-vxz-lo 164659.2
|
||||
:knocked-huge-vxz-hi 249036.8
|
||||
:knocked-huge-vy-lo 183500.8
|
||||
:knocked-huge-vy-hi 217907.2
|
||||
:knocked-yellow-vxz-lo 40960.0
|
||||
:knocked-yellow-vxz-hi 49152.0
|
||||
:knocked-yellow-vy-lo 57344.0
|
||||
:knocked-yellow-vy-hi 81920.0
|
||||
:knocked-red-vxz-lo 24576.0
|
||||
:knocked-red-vxz-hi 196608.0
|
||||
:knocked-red-vy-lo 94208.0
|
||||
:knocked-red-vy-hi 151552.0
|
||||
:knocked-blue-vxz-lo 40960.0
|
||||
:knocked-blue-vxz-hi 49152.0
|
||||
:knocked-blue-vy-lo 24576.0
|
||||
:knocked-blue-vy-hi 81920.0
|
||||
:shadow-size (meters 2)
|
||||
:shadow-max-y (meters 1)
|
||||
:shadow-min-y (meters -1)
|
||||
:shadow-locus-dist (meters 150)
|
||||
:gem-joint 7
|
||||
:gem-offset (new 'static 'sphere :r 163840.0)
|
||||
:callback-info #f
|
||||
:use-momentum #f
|
||||
:use-frustration #t
|
||||
:use-stop-chase #f
|
||||
:use-circling #t
|
||||
:use-pacing #t
|
||||
:walk-anim 5
|
||||
:turn-anim 5
|
||||
:run-anim 5
|
||||
:taunt-anim -1
|
||||
:run-travel-speed (meters 16)
|
||||
:run-acceleration (meters 1)
|
||||
:run-turning-acceleration (meters 100)
|
||||
:walk-travel-speed (meters 16)
|
||||
:walk-acceleration (meters 1)
|
||||
:walk-turning-acceleration (meters 3)
|
||||
:maximum-rotation-rate (degrees 360.0)
|
||||
:notice-nav-radius (meters 1.5)
|
||||
:frustration-distance (meters 8)
|
||||
:frustration-time (seconds 4)
|
||||
:blocked-time (seconds 0.3)
|
||||
:circle-dist-lo 20480.0
|
||||
:circle-dist-hi 61440.0
|
||||
:nav-mesh #f
|
||||
)
|
||||
)
|
||||
(define *ginsu-nav-enemy-info*
|
||||
(new 'static 'nav-enemy-info
|
||||
:use-die-falling #t
|
||||
:use-victory #f
|
||||
:use-jump-blocked #t
|
||||
:debug-draw-neck #f
|
||||
:jump-debug-draw #f
|
||||
:move-to-ground #t
|
||||
:hover-if-no-ground #f
|
||||
:idle-anim-script (new 'static 'array idle-control-frame 4
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x5 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
)
|
||||
:idle-anim 5
|
||||
:notice-anim 10
|
||||
:hostile-anim 5
|
||||
:hit-anim 5
|
||||
:knocked-anim 11
|
||||
:knocked-land-anim 12
|
||||
:die-anim 11
|
||||
:die-falling-anim 5
|
||||
:victory-anim 5
|
||||
:jump-wind-up-anim 5
|
||||
:jump-in-air-anim 5
|
||||
:jump-land-anim 5
|
||||
:neck-joint 7
|
||||
:look-at-joint 7
|
||||
:bullseye-joint 4
|
||||
:sound-die (static-sound-name "ginsu-die")
|
||||
:notice-distance (meters 40)
|
||||
:notice-distance-delta (meters 10)
|
||||
:proximity-notice-distance (meters 40)
|
||||
:default-hit-points 1
|
||||
:gnd-collide-with (collide-spec backgnd)
|
||||
:overlaps-others-collide-with-filter (collide-spec jak bot enemy hit-by-others-list player-list)
|
||||
:penetrate-knocked #x11fffdffa
|
||||
:movement-gravity (meters -100)
|
||||
:friction 0.8
|
||||
:attack-shove-back (meters 3)
|
||||
:attack-shove-up (meters 2)
|
||||
:attack-mode 'generic
|
||||
:attack-damage 2
|
||||
:recover-gnd-collide-with (collide-spec backgnd crate obstacle hit-by-others-list pusher)
|
||||
:jump-height-min (meters 3)
|
||||
:jump-height-factor 0.5
|
||||
:knocked-seek-ry-clamp 4551.1113
|
||||
:knocked-soft-vxz-lo 72089.6
|
||||
:knocked-soft-vxz-hi 108134.4
|
||||
:knocked-soft-vy-lo 81920.0
|
||||
:knocked-soft-vy-hi 122880.0
|
||||
:knocked-medium-vxz-lo 147456.0
|
||||
:knocked-medium-vxz-hi 196608.0
|
||||
:knocked-medium-vy-lo 135168.0
|
||||
:knocked-medium-vy-hi 151552.0
|
||||
:knocked-hard-vxz-lo 78643.2
|
||||
:knocked-hard-vxz-hi 117964.8
|
||||
:knocked-hard-vy-lo 183500.8
|
||||
:knocked-hard-vy-hi 209715.2
|
||||
:knocked-huge-vxz-lo 164659.2
|
||||
:knocked-huge-vxz-hi 249036.8
|
||||
:knocked-huge-vy-lo 183500.8
|
||||
:knocked-huge-vy-hi 217907.2
|
||||
:knocked-yellow-vxz-lo 40960.0
|
||||
:knocked-yellow-vxz-hi 49152.0
|
||||
:knocked-yellow-vy-lo 57344.0
|
||||
:knocked-yellow-vy-hi 81920.0
|
||||
:knocked-red-vxz-lo 24576.0
|
||||
:knocked-red-vxz-hi 196608.0
|
||||
:knocked-red-vy-lo 94208.0
|
||||
:knocked-red-vy-hi 151552.0
|
||||
:knocked-blue-vxz-lo 40960.0
|
||||
:knocked-blue-vxz-hi 49152.0
|
||||
:knocked-blue-vy-lo 24576.0
|
||||
:knocked-blue-vy-hi 81920.0
|
||||
:shadow-size (meters 2)
|
||||
:shadow-max-y (meters 1)
|
||||
:shadow-min-y (meters -1)
|
||||
:shadow-locus-dist (meters 150)
|
||||
:gem-joint 7
|
||||
:gem-offset (new 'static 'sphere :r 163840.0)
|
||||
:callback-info #f
|
||||
:use-momentum #f
|
||||
:use-frustration #t
|
||||
:use-stop-chase #f
|
||||
:use-circling #t
|
||||
:use-pacing #t
|
||||
:walk-anim 5
|
||||
:turn-anim 5
|
||||
:run-anim 5
|
||||
:taunt-anim -1
|
||||
:run-travel-speed (meters 16)
|
||||
:run-acceleration (meters 1)
|
||||
:run-turning-acceleration (meters 100)
|
||||
:walk-travel-speed (meters 16)
|
||||
:walk-acceleration (meters 1)
|
||||
:walk-turning-acceleration (meters 3)
|
||||
:maximum-rotation-rate (degrees 360.0)
|
||||
:notice-nav-radius (meters 1.5)
|
||||
:frustration-distance (meters 8)
|
||||
:frustration-time (seconds 4)
|
||||
:blocked-time (seconds 0.3)
|
||||
:circle-dist-lo 20480.0
|
||||
:circle-dist-hi 61440.0
|
||||
:nav-mesh #f
|
||||
)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(set! (-> *ginsu-nav-enemy-info* fact-defaults) *fact-info-enemy-defaults*)
|
||||
|
||||
+82
-76
@@ -112,82 +112,88 @@
|
||||
)
|
||||
|
||||
;; definition for symbol *pegasus-enemy-info*, type enemy-info
|
||||
(define *pegasus-enemy-info* (new 'static 'enemy-info
|
||||
:use-die-falling #f
|
||||
:use-victory #f
|
||||
:use-jump-blocked #f
|
||||
:debug-draw-neck #f
|
||||
:jump-debug-draw #f
|
||||
:move-to-ground #f
|
||||
:hover-if-no-ground #f
|
||||
:idle-anim-script (new 'static 'array uint32 4 #x1010501 #x0 #x0 #x0)
|
||||
:idle-anim 5
|
||||
:notice-anim 6
|
||||
:hostile-anim 8
|
||||
:hit-anim 5
|
||||
:knocked-anim -1
|
||||
:knocked-land-anim -1
|
||||
:die-anim 15
|
||||
:die-falling-anim -1
|
||||
:victory-anim -1
|
||||
:jump-wind-up-anim -1
|
||||
:jump-in-air-anim -1
|
||||
:jump-land-anim -1
|
||||
:neck-joint -1
|
||||
:sound-die (static-sound-name "pegasus-die")
|
||||
:notice-distance (meters 45)
|
||||
:notice-distance-delta (meters 30)
|
||||
:proximity-notice-distance (meters 55)
|
||||
:default-hit-points 6
|
||||
:gnd-collide-with (collide-spec backgnd)
|
||||
:overlaps-others-collide-with-filter (collide-spec jak bot player-list)
|
||||
:movement-gravity (meters -100)
|
||||
:friction 0.8
|
||||
:attack-shove-back (meters 3)
|
||||
:attack-shove-up (meters 2)
|
||||
:attack-mode 'generic
|
||||
:attack-damage 2
|
||||
:jump-height-min (meters 3)
|
||||
:jump-height-factor 0.5
|
||||
:knocked-seek-ry-clamp 2730.6667
|
||||
:knocked-soft-vxz-lo 72089.6
|
||||
:knocked-soft-vxz-hi 108134.4
|
||||
:knocked-soft-vy-lo 81920.0
|
||||
:knocked-soft-vy-hi 122880.0
|
||||
:knocked-medium-vxz-lo 147456.0
|
||||
:knocked-medium-vxz-hi 196608.0
|
||||
:knocked-medium-vy-lo 135168.0
|
||||
:knocked-medium-vy-hi 151552.0
|
||||
:knocked-hard-vxz-lo 78643.2
|
||||
:knocked-hard-vxz-hi 117964.8
|
||||
:knocked-hard-vy-lo 183500.8
|
||||
:knocked-hard-vy-hi 209715.2
|
||||
:knocked-huge-vxz-lo 164659.2
|
||||
:knocked-huge-vxz-hi 249036.8
|
||||
:knocked-huge-vy-lo 183500.8
|
||||
:knocked-huge-vy-hi 217907.2
|
||||
:knocked-yellow-vxz-lo 40960.0
|
||||
:knocked-yellow-vxz-hi 49152.0
|
||||
:knocked-yellow-vy-lo 57344.0
|
||||
:knocked-yellow-vy-hi 81920.0
|
||||
:knocked-red-vxz-lo 24576.0
|
||||
:knocked-red-vxz-hi 196608.0
|
||||
:knocked-red-vy-lo 94208.0
|
||||
:knocked-red-vy-hi 151552.0
|
||||
:knocked-blue-vxz-lo 40960.0
|
||||
:knocked-blue-vxz-hi 49152.0
|
||||
:knocked-blue-vy-lo 24576.0
|
||||
:knocked-blue-vy-hi 81920.0
|
||||
:shadow-size (meters 1)
|
||||
:shadow-max-y (meters 1)
|
||||
:shadow-min-y (meters -1)
|
||||
:shadow-locus-dist (meters 150)
|
||||
:gem-joint 9
|
||||
:gem-seg #x2
|
||||
:gem-no-seg #x4
|
||||
:gem-offset (new 'static 'sphere :y 942.08 :z 40.96 :r 163840.0)
|
||||
)
|
||||
)
|
||||
(define *pegasus-enemy-info*
|
||||
(new 'static 'enemy-info
|
||||
:use-die-falling #f
|
||||
:use-victory #f
|
||||
:use-jump-blocked #f
|
||||
:debug-draw-neck #f
|
||||
:jump-debug-draw #f
|
||||
:move-to-ground #f
|
||||
:hover-if-no-ground #f
|
||||
:idle-anim-script (new 'static 'array idle-control-frame 4
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x5 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
)
|
||||
:idle-anim 5
|
||||
:notice-anim 6
|
||||
:hostile-anim 8
|
||||
:hit-anim 5
|
||||
:knocked-anim -1
|
||||
:knocked-land-anim -1
|
||||
:die-anim 15
|
||||
:die-falling-anim -1
|
||||
:victory-anim -1
|
||||
:jump-wind-up-anim -1
|
||||
:jump-in-air-anim -1
|
||||
:jump-land-anim -1
|
||||
:neck-joint -1
|
||||
:sound-die (static-sound-name "pegasus-die")
|
||||
:notice-distance (meters 45)
|
||||
:notice-distance-delta (meters 30)
|
||||
:proximity-notice-distance (meters 55)
|
||||
:default-hit-points 6
|
||||
:gnd-collide-with (collide-spec backgnd)
|
||||
:overlaps-others-collide-with-filter (collide-spec jak bot player-list)
|
||||
:movement-gravity (meters -100)
|
||||
:friction 0.8
|
||||
:attack-shove-back (meters 3)
|
||||
:attack-shove-up (meters 2)
|
||||
:attack-mode 'generic
|
||||
:attack-damage 2
|
||||
:jump-height-min (meters 3)
|
||||
:jump-height-factor 0.5
|
||||
:knocked-seek-ry-clamp 2730.6667
|
||||
:knocked-soft-vxz-lo 72089.6
|
||||
:knocked-soft-vxz-hi 108134.4
|
||||
:knocked-soft-vy-lo 81920.0
|
||||
:knocked-soft-vy-hi 122880.0
|
||||
:knocked-medium-vxz-lo 147456.0
|
||||
:knocked-medium-vxz-hi 196608.0
|
||||
:knocked-medium-vy-lo 135168.0
|
||||
:knocked-medium-vy-hi 151552.0
|
||||
:knocked-hard-vxz-lo 78643.2
|
||||
:knocked-hard-vxz-hi 117964.8
|
||||
:knocked-hard-vy-lo 183500.8
|
||||
:knocked-hard-vy-hi 209715.2
|
||||
:knocked-huge-vxz-lo 164659.2
|
||||
:knocked-huge-vxz-hi 249036.8
|
||||
:knocked-huge-vy-lo 183500.8
|
||||
:knocked-huge-vy-hi 217907.2
|
||||
:knocked-yellow-vxz-lo 40960.0
|
||||
:knocked-yellow-vxz-hi 49152.0
|
||||
:knocked-yellow-vy-lo 57344.0
|
||||
:knocked-yellow-vy-hi 81920.0
|
||||
:knocked-red-vxz-lo 24576.0
|
||||
:knocked-red-vxz-hi 196608.0
|
||||
:knocked-red-vy-lo 94208.0
|
||||
:knocked-red-vy-hi 151552.0
|
||||
:knocked-blue-vxz-lo 40960.0
|
||||
:knocked-blue-vxz-hi 49152.0
|
||||
:knocked-blue-vy-lo 24576.0
|
||||
:knocked-blue-vy-hi 81920.0
|
||||
:shadow-size (meters 1)
|
||||
:shadow-max-y (meters 1)
|
||||
:shadow-min-y (meters -1)
|
||||
:shadow-locus-dist (meters 150)
|
||||
:gem-joint 9
|
||||
:gem-seg #x2
|
||||
:gem-no-seg #x4
|
||||
:gem-offset (new 'static 'sphere :y 942.08 :z 40.96 :r 163840.0)
|
||||
)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(set! (-> *pegasus-enemy-info* fact-defaults) *fact-info-enemy-defaults*)
|
||||
|
||||
+109
-103
@@ -285,109 +285,115 @@
|
||||
)
|
||||
|
||||
;; definition for symbol *predator-nav-enemy-info*, type nav-enemy-info
|
||||
(define *predator-nav-enemy-info* (new 'static 'nav-enemy-info
|
||||
:use-die-falling #f
|
||||
:use-victory #f
|
||||
:use-jump-blocked #f
|
||||
:debug-draw-neck #f
|
||||
:jump-debug-draw #f
|
||||
:move-to-ground #t
|
||||
:hover-if-no-ground #f
|
||||
:idle-anim-script (new 'static 'array uint32 4 #x1010501 #x0 #x0 #x0)
|
||||
:idle-anim 5
|
||||
:notice-anim 5
|
||||
:hostile-anim 7
|
||||
:hit-anim 5
|
||||
:knocked-anim 12
|
||||
:knocked-land-anim 13
|
||||
:die-anim 11
|
||||
:die-falling-anim 11
|
||||
:victory-anim 5
|
||||
:jump-wind-up-anim -1
|
||||
:jump-in-air-anim -1
|
||||
:jump-land-anim -1
|
||||
:neck-joint 7
|
||||
:look-at-joint 8
|
||||
:bullseye-joint 6
|
||||
:sound-hit (static-sound-name "predator-hit")
|
||||
:sound-die (static-sound-name "predator-die")
|
||||
:notice-distance (meters 150)
|
||||
:notice-distance-delta (meters 150)
|
||||
:proximity-notice-distance (meters 4)
|
||||
:default-hit-points 5
|
||||
:gnd-collide-with (collide-spec backgnd)
|
||||
:overlaps-others-collide-with-filter (collide-spec jak bot player-list)
|
||||
:penetrate-knocked #xffffffffffffffff
|
||||
:movement-gravity (meters -100)
|
||||
:friction 0.8
|
||||
:attack-shove-back (meters 3)
|
||||
:attack-shove-up (meters 2)
|
||||
:attack-mode 'generic
|
||||
:attack-damage 2
|
||||
:recover-gnd-collide-with (collide-spec backgnd crate obstacle hit-by-others-list pusher)
|
||||
:jump-height-min (meters 3)
|
||||
:jump-height-factor 0.5
|
||||
:knocked-seek-ry-clamp 2730.6667
|
||||
:knocked-soft-vxz-lo 81920.0
|
||||
:knocked-soft-vxz-hi 81920.0
|
||||
:knocked-soft-vy-lo 69632.0
|
||||
:knocked-soft-vy-hi 69632.0
|
||||
:knocked-medium-vxz-lo 81920.0
|
||||
:knocked-medium-vxz-hi 81920.0
|
||||
:knocked-medium-vy-lo 69632.0
|
||||
:knocked-medium-vy-hi 69632.0
|
||||
:knocked-hard-vxz-lo 81920.0
|
||||
:knocked-hard-vxz-hi 81920.0
|
||||
:knocked-hard-vy-lo 69632.0
|
||||
:knocked-hard-vy-hi 69632.0
|
||||
:knocked-huge-vxz-lo 164659.2
|
||||
:knocked-huge-vxz-hi 249036.8
|
||||
:knocked-huge-vy-lo 183500.8
|
||||
:knocked-huge-vy-hi 217907.2
|
||||
:knocked-yellow-vxz-lo 40960.0
|
||||
:knocked-yellow-vxz-hi 53248.0
|
||||
:knocked-yellow-vy-lo 40960.0
|
||||
:knocked-yellow-vy-hi 53248.0
|
||||
:knocked-red-vxz-lo 102400.0
|
||||
:knocked-red-vxz-hi 102400.0
|
||||
:knocked-red-vy-lo 81920.0
|
||||
:knocked-red-vy-hi 81920.0
|
||||
:knocked-blue-vxz-lo 32768.0
|
||||
:knocked-blue-vxz-hi 65536.0
|
||||
:knocked-blue-vy-lo 32768.0
|
||||
:knocked-blue-vy-hi 49152.0
|
||||
:shadow-size (meters 1)
|
||||
:shadow-max-y (meters 1)
|
||||
:shadow-min-y (meters -1)
|
||||
:shadow-locus-dist (meters 150)
|
||||
:gem-joint 6
|
||||
:gem-offset (new 'static 'sphere :y -2252.8 :z -2170.88 :r 163840.0)
|
||||
:callback-info #f
|
||||
:use-momentum #t
|
||||
:use-frustration #t
|
||||
:use-stop-chase #f
|
||||
:use-circling #f
|
||||
:use-pacing #f
|
||||
:walk-anim 6
|
||||
:turn-anim -1
|
||||
:run-anim 7
|
||||
:taunt-anim -1
|
||||
:run-travel-speed (meters 8)
|
||||
:run-acceleration (meters 6)
|
||||
:run-turning-acceleration (meters 30)
|
||||
:walk-travel-speed (meters 4)
|
||||
:walk-acceleration (meters 3)
|
||||
:walk-turning-acceleration (meters 8)
|
||||
:maximum-rotation-rate (degrees 720.0)
|
||||
:notice-nav-radius (meters 40)
|
||||
:frustration-distance (meters 8)
|
||||
:frustration-time (seconds 4)
|
||||
:blocked-time (seconds 0.3)
|
||||
:circle-dist-lo 20480.0
|
||||
:circle-dist-hi 61440.0
|
||||
:nav-mesh #f
|
||||
)
|
||||
)
|
||||
(define *predator-nav-enemy-info*
|
||||
(new 'static 'nav-enemy-info
|
||||
:use-die-falling #f
|
||||
:use-victory #f
|
||||
:use-jump-blocked #f
|
||||
:debug-draw-neck #f
|
||||
:jump-debug-draw #f
|
||||
:move-to-ground #t
|
||||
:hover-if-no-ground #f
|
||||
:idle-anim-script (new 'static 'array idle-control-frame 4
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x5 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
)
|
||||
:idle-anim 5
|
||||
:notice-anim 5
|
||||
:hostile-anim 7
|
||||
:hit-anim 5
|
||||
:knocked-anim 12
|
||||
:knocked-land-anim 13
|
||||
:die-anim 11
|
||||
:die-falling-anim 11
|
||||
:victory-anim 5
|
||||
:jump-wind-up-anim -1
|
||||
:jump-in-air-anim -1
|
||||
:jump-land-anim -1
|
||||
:neck-joint 7
|
||||
:look-at-joint 8
|
||||
:bullseye-joint 6
|
||||
:sound-hit (static-sound-name "predator-hit")
|
||||
:sound-die (static-sound-name "predator-die")
|
||||
:notice-distance (meters 150)
|
||||
:notice-distance-delta (meters 150)
|
||||
:proximity-notice-distance (meters 4)
|
||||
:default-hit-points 5
|
||||
:gnd-collide-with (collide-spec backgnd)
|
||||
:overlaps-others-collide-with-filter (collide-spec jak bot player-list)
|
||||
:penetrate-knocked #xffffffffffffffff
|
||||
:movement-gravity (meters -100)
|
||||
:friction 0.8
|
||||
:attack-shove-back (meters 3)
|
||||
:attack-shove-up (meters 2)
|
||||
:attack-mode 'generic
|
||||
:attack-damage 2
|
||||
:recover-gnd-collide-with (collide-spec backgnd crate obstacle hit-by-others-list pusher)
|
||||
:jump-height-min (meters 3)
|
||||
:jump-height-factor 0.5
|
||||
:knocked-seek-ry-clamp 2730.6667
|
||||
:knocked-soft-vxz-lo 81920.0
|
||||
:knocked-soft-vxz-hi 81920.0
|
||||
:knocked-soft-vy-lo 69632.0
|
||||
:knocked-soft-vy-hi 69632.0
|
||||
:knocked-medium-vxz-lo 81920.0
|
||||
:knocked-medium-vxz-hi 81920.0
|
||||
:knocked-medium-vy-lo 69632.0
|
||||
:knocked-medium-vy-hi 69632.0
|
||||
:knocked-hard-vxz-lo 81920.0
|
||||
:knocked-hard-vxz-hi 81920.0
|
||||
:knocked-hard-vy-lo 69632.0
|
||||
:knocked-hard-vy-hi 69632.0
|
||||
:knocked-huge-vxz-lo 164659.2
|
||||
:knocked-huge-vxz-hi 249036.8
|
||||
:knocked-huge-vy-lo 183500.8
|
||||
:knocked-huge-vy-hi 217907.2
|
||||
:knocked-yellow-vxz-lo 40960.0
|
||||
:knocked-yellow-vxz-hi 53248.0
|
||||
:knocked-yellow-vy-lo 40960.0
|
||||
:knocked-yellow-vy-hi 53248.0
|
||||
:knocked-red-vxz-lo 102400.0
|
||||
:knocked-red-vxz-hi 102400.0
|
||||
:knocked-red-vy-lo 81920.0
|
||||
:knocked-red-vy-hi 81920.0
|
||||
:knocked-blue-vxz-lo 32768.0
|
||||
:knocked-blue-vxz-hi 65536.0
|
||||
:knocked-blue-vy-lo 32768.0
|
||||
:knocked-blue-vy-hi 49152.0
|
||||
:shadow-size (meters 1)
|
||||
:shadow-max-y (meters 1)
|
||||
:shadow-min-y (meters -1)
|
||||
:shadow-locus-dist (meters 150)
|
||||
:gem-joint 6
|
||||
:gem-offset (new 'static 'sphere :y -2252.8 :z -2170.88 :r 163840.0)
|
||||
:callback-info #f
|
||||
:use-momentum #t
|
||||
:use-frustration #t
|
||||
:use-stop-chase #f
|
||||
:use-circling #f
|
||||
:use-pacing #f
|
||||
:walk-anim 6
|
||||
:turn-anim -1
|
||||
:run-anim 7
|
||||
:taunt-anim -1
|
||||
:run-travel-speed (meters 8)
|
||||
:run-acceleration (meters 6)
|
||||
:run-turning-acceleration (meters 30)
|
||||
:walk-travel-speed (meters 4)
|
||||
:walk-acceleration (meters 3)
|
||||
:walk-turning-acceleration (meters 8)
|
||||
:maximum-rotation-rate (degrees 720.0)
|
||||
:notice-nav-radius (meters 40)
|
||||
:frustration-distance (meters 8)
|
||||
:frustration-time (seconds 4)
|
||||
:blocked-time (seconds 0.3)
|
||||
:circle-dist-lo 20480.0
|
||||
:circle-dist-hi 61440.0
|
||||
:nav-mesh #f
|
||||
)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(set! (-> *predator-nav-enemy-info* fact-defaults) *fact-info-enemy-defaults*)
|
||||
|
||||
+79
-73
@@ -511,79 +511,85 @@
|
||||
)
|
||||
|
||||
;; definition for symbol *fort-turret-enemy-info*, type enemy-info
|
||||
(define *fort-turret-enemy-info* (new 'static 'enemy-info
|
||||
:use-die-falling #f
|
||||
:use-victory #f
|
||||
:use-jump-blocked #f
|
||||
:debug-draw-neck #f
|
||||
:jump-debug-draw #f
|
||||
:move-to-ground #f
|
||||
:hover-if-no-ground #f
|
||||
:idle-anim-script (new 'static 'array uint32 4 #x1010401 #x0 #x0 #x0)
|
||||
:idle-anim 4
|
||||
:notice-anim 4
|
||||
:hostile-anim 4
|
||||
:hit-anim 4
|
||||
:knocked-anim -1
|
||||
:knocked-land-anim -1
|
||||
:die-anim 4
|
||||
:die-falling-anim -1
|
||||
:victory-anim -1
|
||||
:jump-wind-up-anim -1
|
||||
:jump-in-air-anim -1
|
||||
:jump-land-anim -1
|
||||
:neck-joint -1
|
||||
:notice-distance (meters 150)
|
||||
:notice-distance-delta (meters 10)
|
||||
:proximity-notice-distance (meters 150)
|
||||
:default-hit-points 1
|
||||
:gnd-collide-with (collide-spec backgnd)
|
||||
:overlaps-others-collide-with-filter (collide-spec jak bot player-list)
|
||||
:movement-gravity (meters -100)
|
||||
:friction 0.8
|
||||
:attack-shove-back (meters 3)
|
||||
:attack-shove-up (meters 2)
|
||||
:attack-mode 'generic
|
||||
:attack-damage 2
|
||||
:jump-height-min (meters 3)
|
||||
:jump-height-factor 0.5
|
||||
:knocked-seek-ry-clamp 2730.6667
|
||||
:knocked-soft-vxz-lo 72089.6
|
||||
:knocked-soft-vxz-hi 108134.4
|
||||
:knocked-soft-vy-lo 81920.0
|
||||
:knocked-soft-vy-hi 122880.0
|
||||
:knocked-medium-vxz-lo 147456.0
|
||||
:knocked-medium-vxz-hi 196608.0
|
||||
:knocked-medium-vy-lo 135168.0
|
||||
:knocked-medium-vy-hi 151552.0
|
||||
:knocked-hard-vxz-lo 78643.2
|
||||
:knocked-hard-vxz-hi 117964.8
|
||||
:knocked-hard-vy-lo 183500.8
|
||||
:knocked-hard-vy-hi 209715.2
|
||||
:knocked-huge-vxz-lo 164659.2
|
||||
:knocked-huge-vxz-hi 249036.8
|
||||
:knocked-huge-vy-lo 183500.8
|
||||
:knocked-huge-vy-hi 217907.2
|
||||
:knocked-yellow-vxz-lo 40960.0
|
||||
:knocked-yellow-vxz-hi 49152.0
|
||||
:knocked-yellow-vy-lo 57344.0
|
||||
:knocked-yellow-vy-hi 81920.0
|
||||
:knocked-red-vxz-lo 24576.0
|
||||
:knocked-red-vxz-hi 196608.0
|
||||
:knocked-red-vy-lo 94208.0
|
||||
:knocked-red-vy-hi 151552.0
|
||||
:knocked-blue-vxz-lo 40960.0
|
||||
:knocked-blue-vxz-hi 49152.0
|
||||
:knocked-blue-vy-lo 24576.0
|
||||
:knocked-blue-vy-hi 81920.0
|
||||
:shadow-size (meters 1)
|
||||
:shadow-max-y (meters 1)
|
||||
:shadow-min-y (meters -1)
|
||||
:shadow-locus-dist (meters 150)
|
||||
:gem-joint -1
|
||||
:gem-offset (new 'static 'sphere :r 163840.0)
|
||||
)
|
||||
)
|
||||
(define *fort-turret-enemy-info*
|
||||
(new 'static 'enemy-info
|
||||
:use-die-falling #f
|
||||
:use-victory #f
|
||||
:use-jump-blocked #f
|
||||
:debug-draw-neck #f
|
||||
:jump-debug-draw #f
|
||||
:move-to-ground #f
|
||||
:hover-if-no-ground #f
|
||||
:idle-anim-script (new 'static 'array idle-control-frame 4
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x4 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
)
|
||||
:idle-anim 4
|
||||
:notice-anim 4
|
||||
:hostile-anim 4
|
||||
:hit-anim 4
|
||||
:knocked-anim -1
|
||||
:knocked-land-anim -1
|
||||
:die-anim 4
|
||||
:die-falling-anim -1
|
||||
:victory-anim -1
|
||||
:jump-wind-up-anim -1
|
||||
:jump-in-air-anim -1
|
||||
:jump-land-anim -1
|
||||
:neck-joint -1
|
||||
:notice-distance (meters 150)
|
||||
:notice-distance-delta (meters 10)
|
||||
:proximity-notice-distance (meters 150)
|
||||
:default-hit-points 1
|
||||
:gnd-collide-with (collide-spec backgnd)
|
||||
:overlaps-others-collide-with-filter (collide-spec jak bot player-list)
|
||||
:movement-gravity (meters -100)
|
||||
:friction 0.8
|
||||
:attack-shove-back (meters 3)
|
||||
:attack-shove-up (meters 2)
|
||||
:attack-mode 'generic
|
||||
:attack-damage 2
|
||||
:jump-height-min (meters 3)
|
||||
:jump-height-factor 0.5
|
||||
:knocked-seek-ry-clamp 2730.6667
|
||||
:knocked-soft-vxz-lo 72089.6
|
||||
:knocked-soft-vxz-hi 108134.4
|
||||
:knocked-soft-vy-lo 81920.0
|
||||
:knocked-soft-vy-hi 122880.0
|
||||
:knocked-medium-vxz-lo 147456.0
|
||||
:knocked-medium-vxz-hi 196608.0
|
||||
:knocked-medium-vy-lo 135168.0
|
||||
:knocked-medium-vy-hi 151552.0
|
||||
:knocked-hard-vxz-lo 78643.2
|
||||
:knocked-hard-vxz-hi 117964.8
|
||||
:knocked-hard-vy-lo 183500.8
|
||||
:knocked-hard-vy-hi 209715.2
|
||||
:knocked-huge-vxz-lo 164659.2
|
||||
:knocked-huge-vxz-hi 249036.8
|
||||
:knocked-huge-vy-lo 183500.8
|
||||
:knocked-huge-vy-hi 217907.2
|
||||
:knocked-yellow-vxz-lo 40960.0
|
||||
:knocked-yellow-vxz-hi 49152.0
|
||||
:knocked-yellow-vy-lo 57344.0
|
||||
:knocked-yellow-vy-hi 81920.0
|
||||
:knocked-red-vxz-lo 24576.0
|
||||
:knocked-red-vxz-hi 196608.0
|
||||
:knocked-red-vy-lo 94208.0
|
||||
:knocked-red-vy-hi 151552.0
|
||||
:knocked-blue-vxz-lo 40960.0
|
||||
:knocked-blue-vxz-hi 49152.0
|
||||
:knocked-blue-vy-lo 24576.0
|
||||
:knocked-blue-vy-hi 81920.0
|
||||
:shadow-size (meters 1)
|
||||
:shadow-max-y (meters 1)
|
||||
:shadow-min-y (meters -1)
|
||||
:shadow-locus-dist (meters 150)
|
||||
:gem-joint -1
|
||||
:gem-offset (new 'static 'sphere :r 163840.0)
|
||||
)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(set! (-> *fort-turret-enemy-info* fact-defaults) *fact-info-enemy-defaults*)
|
||||
|
||||
+1583
File diff suppressed because it is too large
Load Diff
+10
-1
@@ -46,7 +46,16 @@
|
||||
:jump-debug-draw #f
|
||||
:move-to-ground #t
|
||||
:hover-if-no-ground #f
|
||||
:idle-anim-script (new 'static 'array uint32 8 #x1e0002 #x3020401 #x1e0002 #x2010501 #x0 #x0 #x0 #x0)
|
||||
:idle-anim-script (new 'static 'array idle-control-frame 8
|
||||
(new 'static 'idle-control-frame :command #x2 :param0 #x1e)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x4 :param0 #x2 :param1 #x3)
|
||||
(new 'static 'idle-control-frame :command #x2 :param0 #x1e)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x5 :param0 #x1 :param1 #x2)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
)
|
||||
:idle-anim 4
|
||||
:notice-anim 8
|
||||
:hostile-anim 18
|
||||
|
||||
+2226
File diff suppressed because it is too large
Load Diff
+3054
File diff suppressed because it is too large
Load Diff
+715
@@ -0,0 +1,715 @@
|
||||
;;-*-Lisp-*-
|
||||
(in-package goal)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defskelgroup skel-ruins-breakable-wall-1 ruins-breakable-wall ruins-breakable-wall-1-lod0-jg ruins-breakable-wall-1-idle-ja
|
||||
((ruins-breakable-wall-1-lod1-mg (meters 20))
|
||||
(ruins-breakable-wall-1-lod2-mg (meters 40))
|
||||
(ruins-breakable-wall-1-lod0-mg (meters 999999))
|
||||
)
|
||||
:bounds (static-spherem 0.3 5 0 8.8)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defskelgroup skel-ruins-breakable-wall-2 ruins-breakable-wall ruins-breakable-wall-2-lod0-jg ruins-breakable-wall-2-idle-ja
|
||||
((ruins-breakable-wall-2-lod1-mg (meters 20))
|
||||
(ruins-breakable-wall-2-lod2-mg (meters 40))
|
||||
(ruins-breakable-wall-2-lod0-mg (meters 999999))
|
||||
)
|
||||
:bounds (static-spherem 0.3 5 0 8.8)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defskelgroup skel-ruins-breakable-wall-3 ruins-breakable-wall ruins-breakable-wall-3-lod0-jg ruins-breakable-wall-3-idle-ja
|
||||
((ruins-breakable-wall-3-lod1-mg (meters 20))
|
||||
(ruins-breakable-wall-3-lod2-mg (meters 40))
|
||||
(ruins-breakable-wall-3-lod0-mg (meters 999999))
|
||||
)
|
||||
:bounds (static-spherem 0.3 5 0 8.8)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defskelgroup skel-ruins-breakable-wall-4 ruins-breakable-wall ruins-breakable-wall-4-lod0-jg ruins-breakable-wall-4-idle-ja
|
||||
((ruins-breakable-wall-4-lod0-mg (meters 20))
|
||||
(ruins-breakable-wall-4-lod0-mg (meters 40))
|
||||
(ruins-breakable-wall-4-lod0-mg (meters 999999))
|
||||
)
|
||||
:bounds (static-spherem 0 6 0 10)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defskelgroup skel-ruins-breakable-wall-5 ruins-breakable-wall ruins-breakable-wall-5-lod0-jg ruins-breakable-wall-5-idle-ja
|
||||
((ruins-breakable-wall-5-lod0-mg (meters 20))
|
||||
(ruins-breakable-wall-5-lod0-mg (meters 40))
|
||||
(ruins-breakable-wall-5-lod0-mg (meters 999999))
|
||||
)
|
||||
:bounds (static-spherem 0 5 0 9.5)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defskelgroup skel-ruins-breakable-wall-6 ruins-breakable-wall ruins-breakable-wall-6-lod0-jg ruins-breakable-wall-6-idle-ja
|
||||
((ruins-breakable-wall-6-lod0-mg (meters 20))
|
||||
(ruins-breakable-wall-6-lod0-mg (meters 40))
|
||||
(ruins-breakable-wall-6-lod0-mg (meters 999999))
|
||||
)
|
||||
:bounds (static-spherem 0 6 0 9.5)
|
||||
)
|
||||
|
||||
;; definition of type rbw-side
|
||||
(deftype rbw-side (basic)
|
||||
((break-anim string :offset-assert 4)
|
||||
(end-anim string :offset-assert 8)
|
||||
(break-prim-mask uint8 :offset-assert 12)
|
||||
(break-root-prim-joint int16 :offset-assert 14)
|
||||
(break-bounds-joint int16 :offset-assert 16)
|
||||
(break-root-prim-sphere sphere :inline :offset-assert 32)
|
||||
(break-bounds-sphere sphere :inline :offset-assert 48)
|
||||
)
|
||||
:method-count-assert 9
|
||||
:size-assert #x40
|
||||
:flag-assert #x900000040
|
||||
)
|
||||
|
||||
;; definition for method 3 of type rbw-side
|
||||
(defmethod inspect rbw-side ((obj rbw-side))
|
||||
(when (not obj)
|
||||
(set! obj obj)
|
||||
(goto cfg-4)
|
||||
)
|
||||
(format #t "[~8x] ~A~%" obj (-> obj type))
|
||||
(format #t "~1Tbreak-anim: ~A~%" (-> obj break-anim))
|
||||
(format #t "~1Tend-anim: ~A~%" (-> obj end-anim))
|
||||
(format #t "~1Tbreak-prim-mask: ~D~%" (-> obj break-prim-mask))
|
||||
(format #t "~1Tbreak-root-prim-joint: ~D~%" (-> obj break-root-prim-joint))
|
||||
(format #t "~1Tbreak-bounds-joint: ~D~%" (-> obj break-bounds-joint))
|
||||
(format #t "~1Tbreak-root-prim-sphere: #<sphere @ #x~X>~%" (-> obj break-root-prim-sphere))
|
||||
(format #t "~1Tbreak-bounds-sphere: #<sphere @ #x~X>~%" (-> obj break-bounds-sphere))
|
||||
(label cfg-4)
|
||||
obj
|
||||
)
|
||||
|
||||
;; definition of type rbw-info
|
||||
(deftype rbw-info (basic)
|
||||
((skel-group string :offset-assert 4)
|
||||
(anim spool-anim :offset-assert 8)
|
||||
(sides (array rbw-side) :offset-assert 12)
|
||||
)
|
||||
:method-count-assert 9
|
||||
:size-assert #x10
|
||||
:flag-assert #x900000010
|
||||
)
|
||||
|
||||
;; definition for method 3 of type rbw-info
|
||||
(defmethod inspect rbw-info ((obj rbw-info))
|
||||
(when (not obj)
|
||||
(set! obj obj)
|
||||
(goto cfg-4)
|
||||
)
|
||||
(format #t "[~8x] ~A~%" obj (-> obj type))
|
||||
(format #t "~1Tskel-group: ~A~%" (-> obj skel-group))
|
||||
(format #t "~1Tanim: ~A~%" (-> obj anim))
|
||||
(format #t "~1Tsides: ~A~%" (-> obj sides))
|
||||
(label cfg-4)
|
||||
obj
|
||||
)
|
||||
|
||||
;; definition for symbol *rbw-infos*, type (array rbw-info)
|
||||
(define *rbw-infos*
|
||||
(new 'static 'boxed-array :type rbw-info
|
||||
(new 'static 'rbw-info
|
||||
:skel-group "ruins-breakable-wall-1"
|
||||
:anim (new 'static 'spool-anim :name "ruins-breakable-wall-1" :anim-name "1-break-front" :parts 2 :command-list '())
|
||||
:sides (new 'static 'boxed-array :type rbw-side
|
||||
(new 'static 'rbw-side
|
||||
:break-anim "ruins-breakable-wall-1-break-front"
|
||||
:end-anim "ruins-breakable-wall-1-end-front"
|
||||
:break-prim-mask #xa
|
||||
:break-root-prim-joint -1
|
||||
:break-bounds-joint -1
|
||||
:break-root-prim-sphere (new 'static 'sphere :y -17612.8 :z 49152.0 :r 106496.0)
|
||||
:break-bounds-sphere (new 'static 'sphere :x 53248.0 :y -65536.0 :z 126976.0 :r 241664.0)
|
||||
)
|
||||
(new 'static 'rbw-side
|
||||
:break-anim "ruins-breakable-wall-1-break-rear"
|
||||
:end-anim "ruins-breakable-wall-1-end-rear"
|
||||
:break-prim-mask #x6
|
||||
:break-root-prim-joint -1
|
||||
:break-bounds-joint -1
|
||||
:break-root-prim-sphere (new 'static 'sphere :x 16384.0 :y -17612.8 :z -40960.0 :r 90112.0)
|
||||
:break-bounds-sphere (new 'static 'sphere :x -24576.0 :y -16384.0 :z -98304.0 :r 163840.0)
|
||||
)
|
||||
)
|
||||
)
|
||||
(new 'static 'rbw-info
|
||||
:skel-group "ruins-breakable-wall-2"
|
||||
:anim (new 'static 'spool-anim :name "ruins-breakable-wall-2" :anim-name "2-break-front" :parts 2 :command-list '())
|
||||
:sides (new 'static 'boxed-array :type rbw-side
|
||||
(new 'static 'rbw-side
|
||||
:break-anim "ruins-breakable-wall-2-break-front"
|
||||
:end-anim "ruins-breakable-wall-2-end-front"
|
||||
:break-prim-mask #x2
|
||||
:break-root-prim-joint 3
|
||||
:break-bounds-joint -1
|
||||
:break-root-prim-sphere (new 'static 'sphere :x -18432.0 :r 40960.0)
|
||||
:break-bounds-sphere (new 'static 'sphere :z 36864.0 :r 98304.0)
|
||||
)
|
||||
(new 'static 'rbw-side
|
||||
:break-anim "ruins-breakable-wall-2-break-rear"
|
||||
:end-anim "ruins-breakable-wall-2-end-rear"
|
||||
:break-prim-mask #x6
|
||||
:break-root-prim-joint 3
|
||||
:break-bounds-joint 3
|
||||
:break-root-prim-sphere (new 'static 'sphere :x -40960.0 :z -73728.0 :r 122880.0)
|
||||
:break-bounds-sphere (new 'static 'sphere :x -40960.0 :y -16384.0 :z -61440.0 :r 114688.0)
|
||||
)
|
||||
)
|
||||
)
|
||||
(new 'static 'rbw-info
|
||||
:skel-group "ruins-breakable-wall-3"
|
||||
:anim (new 'static 'spool-anim :name "ruins-breakable-wall-3" :anim-name "3-break-front" :parts 2 :command-list '())
|
||||
:sides (new 'static 'boxed-array :type rbw-side
|
||||
(new 'static 'rbw-side
|
||||
:break-anim "ruins-breakable-wall-3-break-front"
|
||||
:end-anim "ruins-breakable-wall-3-end-front"
|
||||
:break-prim-mask #x2
|
||||
:break-root-prim-joint -1
|
||||
:break-bounds-joint -1
|
||||
:break-root-prim-sphere (new 'static 'sphere :r 36864.0)
|
||||
:break-bounds-sphere (new 'static 'sphere :z 32768.0 :r 110592.0)
|
||||
)
|
||||
(new 'static 'rbw-side
|
||||
:break-anim "ruins-breakable-wall-3-break-rear"
|
||||
:end-anim "ruins-breakable-wall-3-end-rear"
|
||||
:break-prim-mask #x6
|
||||
:break-root-prim-joint -1
|
||||
:break-bounds-joint -1
|
||||
:break-root-prim-sphere (new 'static 'sphere :x 16384.0 :y -18432.0 :z -65536.0 :r 126976.0)
|
||||
:break-bounds-sphere (new 'static 'sphere :y -34816.0 :z -122880.0 :r 184320.0)
|
||||
)
|
||||
)
|
||||
)
|
||||
(new 'static 'rbw-info
|
||||
:skel-group "ruins-breakable-wall-4"
|
||||
:anim (new 'static 'spool-anim :name "ruins-breakable-wall-4" :anim-name "4-break-front" :parts 2 :command-list '())
|
||||
:sides (new 'static 'boxed-array :type rbw-side
|
||||
(new 'static 'rbw-side
|
||||
:break-anim "ruins-breakable-wall-4-break-front"
|
||||
:end-anim "ruins-breakable-wall-4-end-front"
|
||||
:break-prim-mask #x2
|
||||
:break-root-prim-joint 74
|
||||
:break-bounds-joint -1
|
||||
:break-root-prim-sphere (new 'static 'sphere :r 40960.0)
|
||||
:break-bounds-sphere (new 'static 'sphere :x 20480.0 :z -61440.0 :r 102400.0)
|
||||
)
|
||||
)
|
||||
)
|
||||
(new 'static 'rbw-info
|
||||
:skel-group "ruins-breakable-wall-5"
|
||||
:anim (new 'static 'spool-anim :name "ruins-breakable-wall-5" :anim-name "5-break-front" :parts 2 :command-list '())
|
||||
:sides (new 'static 'boxed-array :type rbw-side
|
||||
(new 'static 'rbw-side
|
||||
:break-anim "ruins-breakable-wall-5-break-front"
|
||||
:end-anim "ruins-breakable-wall-5-end-front"
|
||||
:break-prim-mask #x6
|
||||
:break-root-prim-joint -1
|
||||
:break-bounds-joint -1
|
||||
:break-root-prim-sphere (new 'static 'sphere :z -73728.0 :r 126976.0)
|
||||
:break-bounds-sphere (new 'static 'sphere :x -10240.0 :z -73728.0 :r 126976.0)
|
||||
)
|
||||
)
|
||||
)
|
||||
(new 'static 'rbw-info
|
||||
:skel-group "ruins-breakable-wall-6"
|
||||
:anim (new 'static 'spool-anim :name "ruins-breakable-wall-6" :anim-name "6-break-front" :parts 3 :command-list '())
|
||||
:sides (new 'static 'boxed-array :type rbw-side (new 'static 'rbw-side
|
||||
:break-anim "ruins-breakable-wall-6-break-front"
|
||||
:end-anim "ruins-breakable-wall-6-end-front"
|
||||
:break-prim-mask #x2
|
||||
:break-root-prim-joint -1
|
||||
:break-bounds-joint -1
|
||||
:break-root-prim-sphere (new 'static 'sphere :r 40960.0)
|
||||
:break-bounds-sphere (new 'static 'sphere :x -32768.0 :z -81920.0 :r 180224.0)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition of type ruins-breakable-wall
|
||||
(deftype ruins-breakable-wall (process-focusable)
|
||||
((info rbw-info :offset-assert 204)
|
||||
(side rbw-side :offset-assert 208)
|
||||
(nav-mesh nav-mesh :offset-assert 212)
|
||||
)
|
||||
:heap-base #x60
|
||||
:method-count-assert 31
|
||||
:size-assert #xd8
|
||||
:flag-assert #x1f006000d8
|
||||
(:methods
|
||||
(unbroken () _type_ :state 27)
|
||||
(hit () _type_ :state 28)
|
||||
(broken () _type_ :state 29)
|
||||
(ruins-breakable-wall-method-30 (_type_ symbol) none 30)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for method 3 of type ruins-breakable-wall
|
||||
(defmethod inspect ruins-breakable-wall ((obj ruins-breakable-wall))
|
||||
(when (not obj)
|
||||
(set! obj obj)
|
||||
(goto cfg-4)
|
||||
)
|
||||
(let ((t9-0 (method-of-type process-focusable inspect)))
|
||||
(t9-0 obj)
|
||||
)
|
||||
(format #t "~2Tinfo: ~A~%" (-> obj info))
|
||||
(format #t "~2Tside: ~A~%" (-> obj side))
|
||||
(format #t "~2Tnav-mesh: ~A~%" (-> obj nav-mesh))
|
||||
(label cfg-4)
|
||||
obj
|
||||
)
|
||||
|
||||
;; definition for method 30 of type ruins-breakable-wall
|
||||
;; INFO: Used lq/sq
|
||||
;; WARN: Return type mismatch float vs none.
|
||||
(defmethod ruins-breakable-wall-method-30 ruins-breakable-wall ((obj ruins-breakable-wall) (arg0 symbol))
|
||||
(case arg0
|
||||
(('hit)
|
||||
(-> obj draw bounds w)
|
||||
(set! (-> obj draw lod-set max-lod) 2)
|
||||
(set! (-> obj draw force-lod) 2)
|
||||
(set! (-> obj draw bounds w) 573440.0)
|
||||
)
|
||||
(('broken)
|
||||
(-> obj draw bounds w)
|
||||
(set! (-> obj draw lod-set max-lod) 2)
|
||||
(set! (-> obj draw force-lod) 2)
|
||||
(set! (-> obj draw bounds quad) (-> obj side break-bounds-sphere quad))
|
||||
(let ((v1-12 (-> obj side break-bounds-joint)))
|
||||
(if (>= v1-12 0)
|
||||
(set! (-> obj draw origin-joint-index) (the-as uint v1-12))
|
||||
)
|
||||
)
|
||||
(let ((v1-14 (-> obj root-override root-prim))
|
||||
(a1-15 (-> obj side break-prim-mask))
|
||||
)
|
||||
(set! (-> v1-14 local-sphere quad) (-> obj side break-root-prim-sphere quad))
|
||||
(let ((a0-2 (-> obj side break-root-prim-joint)))
|
||||
(if (>= a0-2 0)
|
||||
(set! (-> v1-14 transform-index) a0-2)
|
||||
)
|
||||
)
|
||||
(dotimes (a0-3 (the-as int (-> v1-14 specific 0)))
|
||||
(let ((a2-4 (-> (the-as collide-shape-prim-group v1-14) child a0-3)))
|
||||
(cond
|
||||
((logtest? a1-15 1)
|
||||
(set! (-> a2-4 prim-core collide-as) (collide-spec obstacle))
|
||||
)
|
||||
(else
|
||||
(set! (-> a2-4 prim-core collide-as) (collide-spec))
|
||||
0
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! a1-15 (shr a1-15 1))
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defstate unbroken (ruins-breakable-wall)
|
||||
:virtual #t
|
||||
:event (behavior ((proc process) (arg1 int) (event-type symbol) (event event-message-block))
|
||||
(case event-type
|
||||
(('attack)
|
||||
(when (task-node-closed? (game-task-node ruins-mech-introduction))
|
||||
(let ((s4-0 (the-as object (-> event param 1))))
|
||||
(case (-> (the-as attack-info s4-0) mode)
|
||||
(('mech-punch 'crush)
|
||||
(let ((s3-0
|
||||
(the-as object (mem-copy! (the-as pointer (new 'stack-no-clear 'attack-info)) (the-as pointer s4-0) 160))
|
||||
)
|
||||
)
|
||||
((method-of-type attack-info compute-intersect-info)
|
||||
(the-as attack-info s3-0)
|
||||
(the-as uint s4-0)
|
||||
self
|
||||
(if (type? proc process-drawable)
|
||||
proc
|
||||
)
|
||||
(the-as touching-shapes-entry (-> event param 0))
|
||||
)
|
||||
(if (logtest? (-> (the-as attack-info s3-0) mask) (attack-info-mask intersection))
|
||||
(go-virtual hit)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(('combo)
|
||||
#t
|
||||
)
|
||||
)
|
||||
)
|
||||
:enter (behavior ()
|
||||
(let ((gp-0 (matrix<-transformq! (new 'stack-no-clear 'matrix) (the-as transformq (-> self root-override trans)))))
|
||||
(mech-target-spawn
|
||||
(vector-matrix*! (new 'stack-no-clear 'vector) (new 'static 'vector :y 20480.0 :z 4096.0 :w 1.0) gp-0)
|
||||
(the-as target self)
|
||||
(-> self root-override quat)
|
||||
(-> self entity)
|
||||
)
|
||||
(mech-target-spawn
|
||||
(vector-matrix*! (new 'stack-no-clear 'vector) (new 'static 'vector :y 20480.0 :z -4096.0 :w 1.0) gp-0)
|
||||
(the-as target self)
|
||||
(-> self root-override quat)
|
||||
(-> self entity)
|
||||
)
|
||||
)
|
||||
(set! (-> self nav-mesh) (nav-mesh-from-res-tag (-> self entity) 'nav-mesh-actor 0))
|
||||
(if (and (-> self nav-mesh) (not (nav-mesh-connect-from-ent self)))
|
||||
(set! (-> self nav-mesh) #f)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
:exit (behavior ()
|
||||
(while (-> self child)
|
||||
(deactivate (-> self child 0))
|
||||
)
|
||||
(none)
|
||||
)
|
||||
:code (behavior ()
|
||||
(if (task-node-closed? (game-task-node ruins-mech-introduction))
|
||||
(add-process *gui-control* self (gui-channel art-load) (gui-action queue) (-> self info anim name) -99.0 0)
|
||||
)
|
||||
(until #f
|
||||
(transform-post)
|
||||
(logior! (-> self mask) (process-mask sleep))
|
||||
(suspend)
|
||||
)
|
||||
#f
|
||||
(none)
|
||||
)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defstate hit (ruins-breakable-wall)
|
||||
:virtual #t
|
||||
:enter (behavior ()
|
||||
(let ((v1-1 (-> self root-override root-prim)))
|
||||
(set! (-> v1-1 prim-core collide-as) (collide-spec))
|
||||
(set! (-> v1-1 prim-core collide-with) (collide-spec))
|
||||
)
|
||||
0
|
||||
(if (-> self nav-mesh)
|
||||
(logclear! (-> self root-override nav-flags) (nav-flags has-root-sphere))
|
||||
)
|
||||
(let ((s4-0 (new 'stack-no-clear 'vector))
|
||||
(s5-0 (new 'stack-no-clear 'vector))
|
||||
)
|
||||
(vector-z-quaternion! s4-0 (-> self root-override quat))
|
||||
(set! (-> s4-0 y) 0.0)
|
||||
(vector-! s5-0 (target-pos 0) (-> self root-override trans))
|
||||
(set! (-> s5-0 y) 0.0)
|
||||
(let ((gp-2 0))
|
||||
(when (>= (vector-dot s4-0 s5-0) 0.0)
|
||||
(if (>= (-> self info sides length) 2)
|
||||
(set! gp-2 1)
|
||||
)
|
||||
)
|
||||
(set! (-> self side) (-> self info sides gp-2))
|
||||
(process-entity-status! self (entity-perm-status subtask-complete) #t)
|
||||
(let ((v1-21 (-> self entity extra perm)))
|
||||
(logior! (-> v1-21 status) (entity-perm-status bit-5))
|
||||
(set! (-> v1-21 user-int8 0) (+ gp-2 1))
|
||||
)
|
||||
)
|
||||
)
|
||||
(ruins-breakable-wall-method-30 self 'hit)
|
||||
(none)
|
||||
)
|
||||
:exit (behavior ()
|
||||
(let ((v1-1 (-> self root-override root-prim)))
|
||||
(set! (-> v1-1 prim-core collide-as) (-> self root-override backup-collide-as))
|
||||
(set! (-> v1-1 prim-core collide-with) (-> self root-override backup-collide-with))
|
||||
)
|
||||
(none)
|
||||
)
|
||||
:code (behavior ()
|
||||
(let ((a2-1 (get-art-by-name (-> self draw art-group) (-> self side end-anim) art-joint-anim)))
|
||||
(set! (-> self info anim anim-name) (-> self side break-anim))
|
||||
(ja-play-spooled-anim
|
||||
(-> self info anim)
|
||||
(ja-group)
|
||||
a2-1
|
||||
(the-as (function process-drawable symbol) false-func)
|
||||
)
|
||||
)
|
||||
(go-virtual broken)
|
||||
(none)
|
||||
)
|
||||
:post (the-as (function none :behavior ruins-breakable-wall) ja-post)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defstate broken (ruins-breakable-wall)
|
||||
:virtual #t
|
||||
:code (behavior ()
|
||||
(ruins-breakable-wall-method-30 self 'broken)
|
||||
(let ((gp-0 (get-art-by-name (-> self draw art-group) (-> self side end-anim) art-joint-anim)))
|
||||
(ja-channel-set! 1)
|
||||
(set! (-> self skel root-channel 0 frame-group) gp-0)
|
||||
)
|
||||
(logior! (-> self skel status) (joint-control-status sync-math))
|
||||
(transform-post)
|
||||
(logclear! (-> self skel status) (joint-control-status sync-math))
|
||||
(suspend)
|
||||
(transform-post)
|
||||
(sleep-code)
|
||||
(none)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for method 11 of type ruins-breakable-wall
|
||||
;; WARN: Return type mismatch object vs none.
|
||||
(defmethod init-from-entity! ruins-breakable-wall ((obj ruins-breakable-wall) (arg0 entity-actor))
|
||||
(stack-size-set! (-> obj main-thread) 512)
|
||||
(set! (-> obj mask) (logior (process-mask collectable) (-> obj mask)))
|
||||
(set! (-> obj side) #f)
|
||||
(set! (-> obj nav-mesh) #f)
|
||||
(let ((v1-5 (res-lump-value (-> obj entity) 'extra-id uint128 :time -1000000000.0)))
|
||||
(set! (-> obj info) (-> *rbw-infos* v1-5))
|
||||
(cond
|
||||
((zero? v1-5)
|
||||
(let ((s4-0 (new 'process 'collide-shape obj (collide-list-enum usually-hit-by-player))))
|
||||
(set! (-> s4-0 penetrated-by) (penetrate))
|
||||
(let ((s3-0 (new 'process 'collide-shape-prim-group s4-0 (the-as uint 4) 0)))
|
||||
(set! (-> s4-0 total-prims) (the-as uint 5))
|
||||
(set! (-> s3-0 prim-core collide-as) (collide-spec obstacle))
|
||||
(set! (-> s3-0 prim-core action) (collide-action solid))
|
||||
(set! (-> s3-0 transform-index) 3)
|
||||
(set-vector! (-> s3-0 local-sphere) 0.0 0.0 0.0 36864.0)
|
||||
(set! (-> s4-0 root-prim) s3-0)
|
||||
)
|
||||
(let ((v1-14 (new 'process 'collide-shape-prim-mesh s4-0 (the-as uint 0) (the-as uint -1))))
|
||||
(set! (-> v1-14 prim-core collide-as) (collide-spec obstacle))
|
||||
(set! (-> v1-14 prim-core action) (collide-action solid))
|
||||
(set! (-> v1-14 transform-index) 3)
|
||||
(set-vector! (-> v1-14 local-sphere) 0.0 0.0 0.0 36864.0)
|
||||
)
|
||||
(let ((v1-16 (new 'process 'collide-shape-prim-mesh s4-0 (the-as uint 1) (the-as uint 0))))
|
||||
(set! (-> v1-16 prim-core action) (collide-action solid))
|
||||
(set! (-> v1-16 transform-index) 3)
|
||||
(set-vector! (-> v1-16 local-sphere) 0.0 0.0 0.0 36864.0)
|
||||
)
|
||||
(let ((v1-18 (new 'process 'collide-shape-prim-mesh s4-0 (the-as uint 2) (the-as uint 0))))
|
||||
(set! (-> v1-18 prim-core action) (collide-action solid))
|
||||
(set! (-> v1-18 transform-index) 3)
|
||||
(set-vector! (-> v1-18 local-sphere) 21504.0 -24576.0 -49152.0 69632.0)
|
||||
)
|
||||
(let ((v1-20 (new 'process 'collide-shape-prim-mesh s4-0 (the-as uint 3) (the-as uint 0))))
|
||||
(set! (-> v1-20 prim-core action) (collide-action solid))
|
||||
(set! (-> v1-20 transform-index) 3)
|
||||
(set-vector! (-> v1-20 local-sphere) 0.0 -17612.8 65536.0 81920.0)
|
||||
)
|
||||
(set! (-> s4-0 nav-radius) 20480.0)
|
||||
(let ((v1-22 (-> s4-0 root-prim)))
|
||||
(set! (-> s4-0 backup-collide-as) (-> v1-22 prim-core collide-as))
|
||||
(set! (-> s4-0 backup-collide-with) (-> v1-22 prim-core collide-with))
|
||||
)
|
||||
(set! (-> obj root-override) s4-0)
|
||||
)
|
||||
)
|
||||
((= (the-as uint v1-5) 1)
|
||||
(let ((s4-1 (new 'process 'collide-shape obj (collide-list-enum usually-hit-by-player))))
|
||||
(set! (-> s4-1 penetrated-by) (penetrate))
|
||||
(let ((s3-1 (new 'process 'collide-shape-prim-group s4-1 (the-as uint 3) 0)))
|
||||
(set! (-> s4-1 total-prims) (the-as uint 4))
|
||||
(set! (-> s3-1 prim-core collide-as) (collide-spec obstacle))
|
||||
(set! (-> s3-1 prim-core action) (collide-action solid))
|
||||
(set! (-> s3-1 transform-index) 4)
|
||||
(set-vector! (-> s3-1 local-sphere) 0.0 0.0 0.0 36864.0)
|
||||
(set! (-> s4-1 root-prim) s3-1)
|
||||
)
|
||||
(let ((v1-32 (new 'process 'collide-shape-prim-mesh s4-1 (the-as uint 0) (the-as uint -1))))
|
||||
(set! (-> v1-32 prim-core collide-as) (collide-spec obstacle))
|
||||
(set! (-> v1-32 prim-core action) (collide-action solid))
|
||||
(set! (-> v1-32 transform-index) 4)
|
||||
(set-vector! (-> v1-32 local-sphere) 0.0 0.0 0.0 36864.0)
|
||||
)
|
||||
(let ((v1-34 (new 'process 'collide-shape-prim-mesh s4-1 (the-as uint 1) (the-as uint 0))))
|
||||
(set! (-> v1-34 prim-core action) (collide-action solid))
|
||||
(set! (-> v1-34 transform-index) 3)
|
||||
(set-vector! (-> v1-34 local-sphere) -18432.0 0.0 0.0 40960.0)
|
||||
)
|
||||
(let ((v1-36 (new 'process 'collide-shape-prim-mesh s4-1 (the-as uint 2) (the-as uint 0))))
|
||||
(set! (-> v1-36 prim-core action) (collide-action solid))
|
||||
(set! (-> v1-36 transform-index) 3)
|
||||
(set-vector! (-> v1-36 local-sphere) -40960.0 -20480.0 -98304.0 90112.0)
|
||||
)
|
||||
(set! (-> s4-1 nav-radius) 20480.0)
|
||||
(let ((v1-38 (-> s4-1 root-prim)))
|
||||
(set! (-> s4-1 backup-collide-as) (-> v1-38 prim-core collide-as))
|
||||
(set! (-> s4-1 backup-collide-with) (-> v1-38 prim-core collide-with))
|
||||
)
|
||||
(set! (-> obj root-override) s4-1)
|
||||
)
|
||||
)
|
||||
((= (the-as uint v1-5) 2)
|
||||
(let ((s4-2 (new 'process 'collide-shape obj (collide-list-enum usually-hit-by-player))))
|
||||
(set! (-> s4-2 penetrated-by) (penetrate))
|
||||
(let ((s3-2 (new 'process 'collide-shape-prim-group s4-2 (the-as uint 3) 0)))
|
||||
(set! (-> s4-2 total-prims) (the-as uint 4))
|
||||
(set! (-> s3-2 prim-core collide-as) (collide-spec obstacle))
|
||||
(set! (-> s3-2 prim-core action) (collide-action solid))
|
||||
(set! (-> s3-2 transform-index) 3)
|
||||
(set-vector! (-> s3-2 local-sphere) 0.0 0.0 0.0 36864.0)
|
||||
(set! (-> s4-2 root-prim) s3-2)
|
||||
)
|
||||
(let ((v1-48 (new 'process 'collide-shape-prim-mesh s4-2 (the-as uint 0) (the-as uint -1))))
|
||||
(set! (-> v1-48 prim-core collide-as) (collide-spec obstacle))
|
||||
(set! (-> v1-48 prim-core action) (collide-action solid))
|
||||
(set! (-> v1-48 transform-index) 3)
|
||||
(set-vector! (-> v1-48 local-sphere) 0.0 0.0 0.0 36864.0)
|
||||
)
|
||||
(let ((v1-50 (new 'process 'collide-shape-prim-mesh s4-2 (the-as uint 1) (the-as uint 0))))
|
||||
(set! (-> v1-50 prim-core action) (collide-action solid))
|
||||
(set! (-> v1-50 transform-index) 3)
|
||||
(set-vector! (-> v1-50 local-sphere) -12288.0 0.0 0.0 49152.0)
|
||||
)
|
||||
(let ((v1-52 (new 'process 'collide-shape-prim-mesh s4-2 (the-as uint 2) (the-as uint 0))))
|
||||
(set! (-> v1-52 prim-core action) (collide-action solid))
|
||||
(set! (-> v1-52 transform-index) 3)
|
||||
(set-vector! (-> v1-52 local-sphere) 45056.0 -14336.0 -114688.0 40960.0)
|
||||
)
|
||||
(set! (-> s4-2 nav-radius) 20480.0)
|
||||
(let ((v1-54 (-> s4-2 root-prim)))
|
||||
(set! (-> s4-2 backup-collide-as) (-> v1-54 prim-core collide-as))
|
||||
(set! (-> s4-2 backup-collide-with) (-> v1-54 prim-core collide-with))
|
||||
)
|
||||
(set! (-> obj root-override) s4-2)
|
||||
)
|
||||
)
|
||||
((= (the-as uint v1-5) 3)
|
||||
(let ((s4-3 (new 'process 'collide-shape obj (collide-list-enum usually-hit-by-player))))
|
||||
(set! (-> s4-3 penetrated-by) (penetrate))
|
||||
(let ((s3-3 (new 'process 'collide-shape-prim-group s4-3 (the-as uint 2) 0)))
|
||||
(set! (-> s4-3 total-prims) (the-as uint 3))
|
||||
(set! (-> s3-3 prim-core collide-as) (collide-spec obstacle))
|
||||
(set! (-> s3-3 prim-core action) (collide-action solid))
|
||||
(set! (-> s3-3 transform-index) 73)
|
||||
(set-vector! (-> s3-3 local-sphere) 0.0 -24576.0 0.0 45056.0)
|
||||
(set! (-> s4-3 root-prim) s3-3)
|
||||
)
|
||||
(let ((v1-64 (new 'process 'collide-shape-prim-mesh s4-3 (the-as uint 0) (the-as uint -1))))
|
||||
(set! (-> v1-64 prim-core collide-as) (collide-spec obstacle))
|
||||
(set! (-> v1-64 prim-core action) (collide-action solid))
|
||||
(set! (-> v1-64 transform-index) 73)
|
||||
(set-vector! (-> v1-64 local-sphere) 0.0 -24576.0 0.0 45056.0)
|
||||
)
|
||||
(let ((v1-66 (new 'process 'collide-shape-prim-mesh s4-3 (the-as uint 1) (the-as uint 0))))
|
||||
(set! (-> v1-66 prim-core action) (collide-action solid))
|
||||
(set! (-> v1-66 transform-index) 74)
|
||||
(set-vector! (-> v1-66 local-sphere) 0.0 0.0 0.0 40960.0)
|
||||
)
|
||||
(set! (-> s4-3 nav-radius) 20480.0)
|
||||
(let ((v1-68 (-> s4-3 root-prim)))
|
||||
(set! (-> s4-3 backup-collide-as) (-> v1-68 prim-core collide-as))
|
||||
(set! (-> s4-3 backup-collide-with) (-> v1-68 prim-core collide-with))
|
||||
)
|
||||
(set! (-> obj root-override) s4-3)
|
||||
)
|
||||
)
|
||||
((= (the-as uint v1-5) 4)
|
||||
(let ((s4-4 (new 'process 'collide-shape obj (collide-list-enum usually-hit-by-player))))
|
||||
(set! (-> s4-4 penetrated-by) (penetrate))
|
||||
(let ((s3-4 (new 'process 'collide-shape-prim-group s4-4 (the-as uint 3) 0)))
|
||||
(set! (-> s4-4 total-prims) (the-as uint 4))
|
||||
(set! (-> s3-4 prim-core collide-as) (collide-spec obstacle))
|
||||
(set! (-> s3-4 prim-core action) (collide-action solid))
|
||||
(set! (-> s3-4 transform-index) 78)
|
||||
(set-vector! (-> s3-4 local-sphere) 0.0 0.0 0.0 36864.0)
|
||||
(set! (-> s4-4 root-prim) s3-4)
|
||||
)
|
||||
(let ((v1-78 (new 'process 'collide-shape-prim-mesh s4-4 (the-as uint 0) (the-as uint -1))))
|
||||
(set! (-> v1-78 prim-core collide-as) (collide-spec obstacle))
|
||||
(set! (-> v1-78 prim-core action) (collide-action solid))
|
||||
(set! (-> v1-78 transform-index) 78)
|
||||
(set-vector! (-> v1-78 local-sphere) 0.0 0.0 0.0 36864.0)
|
||||
)
|
||||
(let ((v1-80 (new 'process 'collide-shape-prim-mesh s4-4 (the-as uint 1) (the-as uint 0))))
|
||||
(set! (-> v1-80 prim-core action) (collide-action solid))
|
||||
(set! (-> v1-80 transform-index) 78)
|
||||
(set-vector! (-> v1-80 local-sphere) 0.0 0.0 0.0 36864.0)
|
||||
)
|
||||
(let ((v1-82 (new 'process 'collide-shape-prim-mesh s4-4 (the-as uint 2) (the-as uint 0))))
|
||||
(set! (-> v1-82 prim-core action) (collide-action solid))
|
||||
(set! (-> v1-82 transform-index) 78)
|
||||
(set-vector! (-> v1-82 local-sphere) 12288.0 -24576.0 -122880.0 69632.0)
|
||||
)
|
||||
(set! (-> s4-4 nav-radius) 20480.0)
|
||||
(let ((v1-84 (-> s4-4 root-prim)))
|
||||
(set! (-> s4-4 backup-collide-as) (-> v1-84 prim-core collide-as))
|
||||
(set! (-> s4-4 backup-collide-with) (-> v1-84 prim-core collide-with))
|
||||
)
|
||||
(set! (-> obj root-override) s4-4)
|
||||
)
|
||||
)
|
||||
(else
|
||||
(let ((s4-5 (new 'process 'collide-shape obj (collide-list-enum usually-hit-by-player))))
|
||||
(set! (-> s4-5 penetrated-by) (penetrate))
|
||||
(let ((s3-5 (new 'process 'collide-shape-prim-group s4-5 (the-as uint 2) 0)))
|
||||
(set! (-> s4-5 total-prims) (the-as uint 3))
|
||||
(set! (-> s3-5 prim-core collide-as) (collide-spec obstacle))
|
||||
(set! (-> s3-5 prim-core action) (collide-action solid))
|
||||
(set! (-> s3-5 transform-index) 74)
|
||||
(set-vector! (-> s3-5 local-sphere) 0.0 0.0 0.0 40960.0)
|
||||
(set! (-> s4-5 root-prim) s3-5)
|
||||
)
|
||||
(let ((v1-94 (new 'process 'collide-shape-prim-mesh s4-5 (the-as uint 0) (the-as uint -1))))
|
||||
(set! (-> v1-94 prim-core collide-as) (collide-spec obstacle))
|
||||
(set! (-> v1-94 prim-core action) (collide-action solid))
|
||||
(set! (-> v1-94 transform-index) 74)
|
||||
(set-vector! (-> v1-94 local-sphere) 0.0 0.0 0.0 40960.0)
|
||||
)
|
||||
(let ((v1-96 (new 'process 'collide-shape-prim-mesh s4-5 (the-as uint 1) (the-as uint 0))))
|
||||
(set! (-> v1-96 prim-core action) (collide-action solid))
|
||||
(set! (-> v1-96 transform-index) 74)
|
||||
(set-vector! (-> v1-96 local-sphere) 0.0 0.0 0.0 40960.0)
|
||||
)
|
||||
(set! (-> s4-5 nav-radius) 20480.0)
|
||||
(let ((v1-98 (-> s4-5 root-prim)))
|
||||
(set! (-> s4-5 backup-collide-as) (-> v1-98 prim-core collide-as))
|
||||
(set! (-> s4-5 backup-collide-with) (-> v1-98 prim-core collide-with))
|
||||
)
|
||||
(set! (-> obj root-override) s4-5)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(process-drawable-from-entity! obj arg0)
|
||||
(initialize-skeleton-by-name obj (-> obj info skel-group))
|
||||
(case (-> obj entity extra perm user-uint8 0)
|
||||
((1)
|
||||
(set! (-> obj side) (-> obj info sides 0))
|
||||
(go (method-of-object obj broken))
|
||||
)
|
||||
((2)
|
||||
(set! (-> obj side) (-> obj info sides 1))
|
||||
(go (method-of-object obj broken))
|
||||
)
|
||||
(else
|
||||
(go (method-of-object obj unbroken))
|
||||
)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
|
||||
|
||||
|
||||
|
||||
+657
@@ -0,0 +1,657 @@
|
||||
;;-*-Lisp-*-
|
||||
(in-package goal)
|
||||
|
||||
;; definition of type mechblock
|
||||
(deftype mechblock (process-drawable)
|
||||
((root-override collide-shape-moving :offset 128)
|
||||
(origin vector :inline :offset-assert 208)
|
||||
(drop-point vector :inline :offset 256)
|
||||
(allow-drag? symbol :offset-assert 272)
|
||||
(reset-on-land? symbol :offset-assert 276)
|
||||
(hit-something? symbol :offset-assert 280)
|
||||
(attack-id uint32 :offset-assert 284)
|
||||
(next-entity entity :offset-assert 288)
|
||||
)
|
||||
:heap-base #xb0
|
||||
:method-count-assert 25
|
||||
:size-assert #x124
|
||||
:flag-assert #x1900b00124
|
||||
(:methods
|
||||
(idle () _type_ :state 20)
|
||||
(carry () _type_ :state 21)
|
||||
(drag () _type_ :state 22)
|
||||
(fall () _type_ :state 23)
|
||||
(wait () _type_ :state 24)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for method 3 of type mechblock
|
||||
(defmethod inspect mechblock ((obj mechblock))
|
||||
(when (not obj)
|
||||
(set! obj obj)
|
||||
(goto cfg-4)
|
||||
)
|
||||
(let ((t9-0 (method-of-type process-drawable inspect)))
|
||||
(t9-0 obj)
|
||||
)
|
||||
(format #t "~2Torigin: ~`vector`P~%" (-> obj origin))
|
||||
(format #t "~2Tdrop-point: ~`vector`P~%" (-> obj drop-point))
|
||||
(format #t "~2Tallow-drag?: ~A~%" (-> obj allow-drag?))
|
||||
(format #t "~2Treset-on-land?: ~A~%" (-> obj reset-on-land?))
|
||||
(format #t "~2Thit-something?: ~A~%" (-> obj hit-something?))
|
||||
(format #t "~2Tattack-id: ~D~%" (-> obj attack-id))
|
||||
(format #t "~2Tnext-entity: ~A~%" (-> obj next-entity))
|
||||
(label cfg-4)
|
||||
obj
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defstate idle (mechblock)
|
||||
:virtual #t
|
||||
:event (behavior ((proc process) (arg1 int) (event-type symbol) (event event-message-block))
|
||||
(case event-type
|
||||
(('carry? 'carry-info)
|
||||
(-> self carry)
|
||||
)
|
||||
(('pickup)
|
||||
(cond
|
||||
((-> self allow-drag?)
|
||||
(carry!
|
||||
(the-as carry-info (-> event param 0))
|
||||
(-> self carry)
|
||||
(the-as vector (-> event param 1))
|
||||
(the-as vector (-> event param 2))
|
||||
)
|
||||
(go-virtual drag)
|
||||
)
|
||||
(else
|
||||
(drag! (the-as carry-info (-> event param 0)) (-> self carry))
|
||||
(go-virtual carry)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
:code (behavior ()
|
||||
(logior! (-> self mask) (process-mask actor-pause))
|
||||
(dotimes (gp-0 2)
|
||||
(transform-post)
|
||||
(carry-info-method-9 (-> self carry))
|
||||
(suspend)
|
||||
)
|
||||
(logior! (-> self mask) (process-mask sleep))
|
||||
(suspend)
|
||||
0
|
||||
(none)
|
||||
)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defstate wait (mechblock)
|
||||
:virtual #t
|
||||
:exit (behavior ()
|
||||
(logclear! (-> self draw status) (draw-control-status no-draw))
|
||||
(let ((v1-3 (-> self root-override root-prim)))
|
||||
(set! (-> v1-3 prim-core collide-as) (-> self root-override backup-collide-as))
|
||||
(set! (-> v1-3 prim-core collide-with) (-> self root-override backup-collide-with))
|
||||
)
|
||||
(none)
|
||||
)
|
||||
:trans (behavior ()
|
||||
(when (or (not *target*) (< 40960.0 (vector-vector-distance (-> self origin) (-> *target* control trans))))
|
||||
(move-to-point!
|
||||
(-> self root-override)
|
||||
(vector+! (new 'stack-no-clear 'vector) (-> self origin) (new 'static 'vector :y 81920.0 :w 1.0))
|
||||
)
|
||||
(quaternion-copy! (-> self root-override quat) (the-as quaternion (&-> self stack 96)))
|
||||
(set-vector! (-> self root-override transv) 0.0 -4096.0 0.0 1.0)
|
||||
(set! (-> self drop-point quad) (-> self origin quad))
|
||||
(go-virtual fall)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
:code (behavior ()
|
||||
(let ((v1-1 (-> self root-override root-prim)))
|
||||
(set! (-> v1-1 prim-core collide-as) (collide-spec))
|
||||
(set! (-> v1-1 prim-core collide-with) (collide-spec))
|
||||
)
|
||||
0
|
||||
(logior! (-> self draw status) (draw-control-status no-draw))
|
||||
(logior! (-> self mask) (process-mask sleep-code))
|
||||
(suspend)
|
||||
0
|
||||
(none)
|
||||
)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defstate carry (mechblock)
|
||||
:virtual #t
|
||||
:event (behavior ((proc process) (arg1 int) (event-type symbol) (event event-message-block))
|
||||
(case event-type
|
||||
(('carry? 'carry-info)
|
||||
(-> self carry)
|
||||
)
|
||||
(('drop)
|
||||
(set! (-> self root-override transv quad) (-> (the-as vector (-> event param 1)) quad))
|
||||
(set! (-> self drop-point quad) (-> self root-override trans quad))
|
||||
(go-virtual fall)
|
||||
)
|
||||
)
|
||||
)
|
||||
:code (the-as (function none :behavior mechblock) sleep-code)
|
||||
:post (behavior ()
|
||||
(ja-post)
|
||||
(carry-info-method-9 (-> self carry))
|
||||
(carry-info-method-13 (-> self carry))
|
||||
(update-transforms (-> self root-override))
|
||||
(none)
|
||||
)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defstate drag (mechblock)
|
||||
:virtual #t
|
||||
:event (behavior ((proc process) (arg1 int) (event-type symbol) (event event-message-block))
|
||||
(local-vars (at-0 int))
|
||||
(rlet ((vf0 :class vf)
|
||||
(vf1 :class vf)
|
||||
(vf2 :class vf)
|
||||
)
|
||||
(init-vf0-vector)
|
||||
(case event-type
|
||||
(('carry? 'carry-info)
|
||||
(-> self carry)
|
||||
)
|
||||
(('drop)
|
||||
(if (handle->process (-> self carry other))
|
||||
(drop! (the-as carry-info (send-event (handle->process (-> self carry other)) 'carry-info)) (-> self carry))
|
||||
)
|
||||
(set! (-> self root-override transv quad) (-> (the-as vector (-> event param 1)) quad))
|
||||
(set! (-> self drop-point quad) (-> self root-override trans quad))
|
||||
(go-virtual fall)
|
||||
)
|
||||
(('move)
|
||||
(let ((s4-0 (-> self root-override))
|
||||
(s5-0 (new 'stack-no-clear 'vector))
|
||||
)
|
||||
(set! (-> s5-0 quad) (-> s4-0 trans quad))
|
||||
(set! (-> s4-0 transv quad) (-> (the-as vector (-> event param 0)) quad))
|
||||
(let ((s2-0 (-> self nav))
|
||||
(s1-0 (-> s4-0 root-prim prim-core))
|
||||
(s3-0 (new 'stack-no-clear 'vector))
|
||||
)
|
||||
(.lvf vf1 (&-> (-> s4-0 transv) quad))
|
||||
(let ((f0-0 (-> self clock seconds-per-frame)))
|
||||
(.mov at-0 f0-0)
|
||||
)
|
||||
(.mov vf2 at-0)
|
||||
(.mov.vf vf1 vf0 :mask #b1000)
|
||||
(.mul.x.vf vf1 vf1 vf2 :mask #b111)
|
||||
(.svf (&-> s3-0 quad) vf1)
|
||||
(set! (-> s3-0 y) 0.0)
|
||||
(vector-float*! s3-0 s3-0 10.0)
|
||||
(when (nonzero? s2-0)
|
||||
(let ((v1-28 s2-0)
|
||||
(a0-26 s1-0)
|
||||
(a1-6 (new 'stack-no-clear 'nav-find-poly-parms))
|
||||
)
|
||||
(vector-! (-> a1-6 point) (the-as vector a0-26) (-> v1-28 state mesh bounds))
|
||||
(set! (-> a1-6 y-threshold) (-> v1-28 nearest-y-threshold))
|
||||
(set! (-> a1-6 ignore) (the-as uint 2))
|
||||
(let ((a2-4 (find-poly-containing-point-local (-> v1-28 state mesh) a1-6)))
|
||||
(cond
|
||||
(a2-4
|
||||
(clamp-vector-to-mesh-cross-gaps
|
||||
s2-0
|
||||
(the-as vector s1-0)
|
||||
a2-4
|
||||
s3-0
|
||||
204.8
|
||||
#f
|
||||
(the-as clamp-travel-vector-to-mesh-return-info #f)
|
||||
)
|
||||
)
|
||||
(else
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(vector-float*! (-> s4-0 transv) s3-0 (* 0.1 (-> self clock frames-per-second)))
|
||||
)
|
||||
(let ((v1-35 (-> s4-0 root-prim)))
|
||||
(set! (-> v1-35 prim-core collide-as) (-> s4-0 backup-collide-as))
|
||||
(set! (-> v1-35 prim-core collide-with) (-> s4-0 backup-collide-with))
|
||||
)
|
||||
(set! (-> s4-0 root-prim type) collide-shape-prim-sphere)
|
||||
(let ((a2-5 (new 'stack-no-clear 'collide-query)))
|
||||
(set! (-> a2-5 collide-with)
|
||||
(logclear (-> s4-0 root-prim prim-core collide-with) (collide-spec backgnd jak player-list tobot))
|
||||
)
|
||||
(set! (-> a2-5 ignore-process0) self)
|
||||
(set! (-> a2-5 ignore-process1) #f)
|
||||
(set! (-> a2-5 ignore-pat) (-> s4-0 pat-ignore-mask))
|
||||
(set! (-> a2-5 action-mask) (collide-action solid))
|
||||
(fill-cache-integrate-and-collide s4-0 (-> s4-0 transv) a2-5 (meters 0))
|
||||
)
|
||||
(when (nonzero? (-> self nav))
|
||||
(let ((v1-44 (-> self nav))
|
||||
(a0-41 (-> self root-override root-prim prim-core))
|
||||
(a1-9 (new 'stack-no-clear 'nav-find-poly-parms))
|
||||
)
|
||||
(vector-! (-> a1-9 point) (the-as vector a0-41) (-> v1-44 state mesh bounds))
|
||||
(set! (-> a1-9 y-threshold) (-> v1-44 nearest-y-threshold))
|
||||
(set! (-> a1-9 ignore) (the-as uint 2))
|
||||
(let ((v1-46 (find-poly-containing-point-local (-> v1-44 state mesh) a1-9)))
|
||||
(when v1-46
|
||||
(when (< (-> self root-override trans y) (-> v1-46 vertex0 y))
|
||||
(let* ((a0-47 (-> self root-override))
|
||||
(t9-7 (method-of-object a0-47 move-by-vector!))
|
||||
(a1-11 (new 'stack-no-clear 'vector))
|
||||
)
|
||||
(set! (-> a1-11 x) 0.0)
|
||||
(set! (-> a1-11 y) (- (-> v1-46 vertex0 y) (-> self root-override trans y)))
|
||||
(set! (-> a1-11 z) 0.0)
|
||||
(set! (-> a1-11 w) 1.0)
|
||||
(t9-7 a0-47 a1-11)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! (-> s4-0 root-prim type) collide-shape-prim-mesh)
|
||||
(let ((v1-50 (-> s4-0 root-prim)))
|
||||
(set! (-> v1-50 prim-core collide-as) (collide-spec))
|
||||
(set! (-> v1-50 prim-core collide-with) (collide-spec))
|
||||
)
|
||||
0
|
||||
(vector-! (the-as vector (-> event param 1)) (-> s4-0 trans) s5-0)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
:code (the-as (function none :behavior mechblock) sleep-code)
|
||||
:post (behavior ()
|
||||
(ja-post)
|
||||
(carry-info-method-9 (-> self carry))
|
||||
(translate! (-> self carry))
|
||||
(update-transforms (-> self root-override))
|
||||
(none)
|
||||
)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defstate fall (mechblock)
|
||||
:virtual #t
|
||||
:event (behavior ((proc process) (arg1 int) (event-type symbol) (event event-message-block))
|
||||
(the-as
|
||||
object
|
||||
(case event-type
|
||||
(('carry-info)
|
||||
(-> self carry)
|
||||
)
|
||||
(('carry? 'pickup)
|
||||
(the-as basic #f)
|
||||
)
|
||||
(('touched)
|
||||
(when (and (!= (-> proc type) target) (let ((a1-2 (new 'stack-no-clear 'event-message-block)))
|
||||
(set! (-> a1-2 from) (process->ppointer self))
|
||||
(set! (-> a1-2 num-params) 2)
|
||||
(set! (-> a1-2 message) 'attack)
|
||||
(set! (-> a1-2 param 0) (-> event param 0))
|
||||
(let ((v1-7 (new 'static 'attack-info :mask (attack-info-mask mode id))))
|
||||
(set! (-> v1-7 id) (-> self attack-id))
|
||||
(set! (-> v1-7 mode) 'crush)
|
||||
(set! (-> a1-2 param 1) (the-as uint v1-7))
|
||||
)
|
||||
(send-event-function proc a1-2)
|
||||
)
|
||||
)
|
||||
(sound-play "block-hit")
|
||||
(let ((v0-0 (the-as basic (-> proc entity))))
|
||||
(set! (-> self hit-something?) (the-as symbol v0-0))
|
||||
v0-0
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
:enter (behavior ()
|
||||
(logclear! (-> self mask) (process-mask actor-pause))
|
||||
(set! (-> self state-time) (-> self clock frame-counter))
|
||||
(if (handle->process (-> self carry other))
|
||||
(drop-impl!
|
||||
(the-as carry-info (send-event (handle->process (-> self carry other)) 'carry-info))
|
||||
(-> self carry)
|
||||
)
|
||||
)
|
||||
(set! (-> self root-override status) (collide-status))
|
||||
(set! (-> self root-override root-prim local-sphere w) (-> self carry carry-radius))
|
||||
(none)
|
||||
)
|
||||
:trans (behavior ()
|
||||
(when (or (and (logtest? (-> self root-override status) (collide-status on-surface))
|
||||
(< 0.8 (-> self root-override surface-angle))
|
||||
)
|
||||
(>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 5))
|
||||
)
|
||||
(vector-reset! (-> self root-override transv))
|
||||
(set! (-> self root-override root-prim local-sphere w) (-> self carry backup-radius))
|
||||
(cond
|
||||
((and (-> self reset-on-land?)
|
||||
(and (or (< 12288.0 (vector-vector-distance (-> self drop-point) (-> self root-override trans)))
|
||||
(>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 5))
|
||||
)
|
||||
(and (-> self next-entity)
|
||||
(zero? (logand (-> self next-entity extra perm status) (entity-perm-status subtask-complete)))
|
||||
)
|
||||
)
|
||||
)
|
||||
(sound-play "block-break")
|
||||
(let ((gp-1 (get-process *default-dead-pool* part-tracker #x4000)))
|
||||
(when gp-1
|
||||
(let ((t9-4 (method-of-type part-tracker activate)))
|
||||
(t9-4 (the-as part-tracker gp-1) self (symbol->string (-> part-tracker symbol)) (the-as pointer #x70004000))
|
||||
)
|
||||
(let ((t9-5 run-function-in-process)
|
||||
(a0-11 gp-1)
|
||||
(a1-4 part-tracker-init)
|
||||
(a2-5 (-> *part-group-id-table* 124))
|
||||
(a3-2 0)
|
||||
(t0-1 #f)
|
||||
(t1-1 #f)
|
||||
(t2-1 #f)
|
||||
(t3-0 *launch-matrix*)
|
||||
)
|
||||
(set! (-> t3-0 trans quad) (-> self root-override trans quad))
|
||||
((the-as (function object object object object object object object object none) t9-5)
|
||||
a0-11
|
||||
a1-4
|
||||
a2-5
|
||||
a3-2
|
||||
t0-1
|
||||
t1-1
|
||||
t2-1
|
||||
t3-0
|
||||
)
|
||||
)
|
||||
(-> gp-1 ppointer)
|
||||
)
|
||||
)
|
||||
(go-virtual wait)
|
||||
)
|
||||
((or (< 12288.0 (vector-vector-distance (-> self drop-point) (-> self root-override trans)))
|
||||
(>= (- (-> self clock frame-counter) (-> self state-time)) (seconds 5))
|
||||
)
|
||||
(sound-play "block-break")
|
||||
(let ((gp-3 (get-process *default-dead-pool* part-tracker #x4000)))
|
||||
(when gp-3
|
||||
(let ((t9-11 (method-of-type part-tracker activate)))
|
||||
(t9-11 (the-as part-tracker gp-3) self (symbol->string (-> part-tracker symbol)) (the-as pointer #x70004000))
|
||||
)
|
||||
(let ((t9-12 run-function-in-process)
|
||||
(a0-18 gp-3)
|
||||
(a1-9 part-tracker-init)
|
||||
(a2-11 (-> *part-group-id-table* 124))
|
||||
(a3-5 0)
|
||||
(t0-3 #f)
|
||||
(t1-3 #f)
|
||||
(t2-3 #f)
|
||||
(t3-1 *launch-matrix*)
|
||||
)
|
||||
(set! (-> t3-1 trans quad) (-> self root-override trans quad))
|
||||
((the-as (function object object object object object object object object none) t9-12)
|
||||
a0-18
|
||||
a1-9
|
||||
a2-11
|
||||
a3-5
|
||||
t0-3
|
||||
t1-3
|
||||
t2-3
|
||||
t3-1
|
||||
)
|
||||
)
|
||||
(-> gp-3 ppointer)
|
||||
)
|
||||
)
|
||||
(go-virtual wait)
|
||||
)
|
||||
(else
|
||||
(go-virtual idle)
|
||||
)
|
||||
)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
:code (the-as (function none :behavior mechblock) sleep-code)
|
||||
:post (behavior ()
|
||||
(vector-v++!
|
||||
(-> self root-override transv)
|
||||
(compute-acc-due-to-gravity (-> self root-override) (new-stack-vector0) 0.0)
|
||||
)
|
||||
(let ((v1-2 (new-stack-vector0))
|
||||
(f0-1 (vector-dot (-> self root-override dynam gravity-normal) (-> self root-override transv)))
|
||||
)
|
||||
0.0
|
||||
(vector-!
|
||||
v1-2
|
||||
(-> self root-override transv)
|
||||
(vector-float*! v1-2 (-> self root-override dynam gravity-normal) f0-1)
|
||||
)
|
||||
(let* ((f1-2 (vector-length v1-2))
|
||||
(f2-0 f1-2)
|
||||
)
|
||||
(if (< f0-1 (- (-> self root-override dynam gravity-max)))
|
||||
(set! f0-1 (- (-> self root-override dynam gravity-max)))
|
||||
)
|
||||
(vector+!
|
||||
(-> self root-override transv)
|
||||
(vector-float*! (-> self root-override transv) (-> self root-override dynam gravity-normal) f0-1)
|
||||
(vector-float*! v1-2 v1-2 (/ f1-2 f2-0))
|
||||
)
|
||||
)
|
||||
)
|
||||
(let ((a2-8 (new 'stack-no-clear 'collide-query))
|
||||
(gp-1 (-> self root-override))
|
||||
)
|
||||
(set! (-> gp-1 root-prim type) collide-shape-prim-sphere)
|
||||
(set! (-> a2-8 collide-with)
|
||||
(logclear (-> gp-1 root-prim prim-core collide-with) (collide-spec jak player-list tobot))
|
||||
)
|
||||
(set! (-> a2-8 ignore-process0) self)
|
||||
(set! (-> a2-8 ignore-process1) #f)
|
||||
(set! (-> a2-8 ignore-pat) (-> gp-1 pat-ignore-mask))
|
||||
(set! (-> a2-8 action-mask) (collide-action solid))
|
||||
(fill-cache-integrate-and-collide gp-1 (-> gp-1 transv) a2-8 (meters 0))
|
||||
(set! (-> gp-1 root-prim type) collide-shape-prim-mesh)
|
||||
)
|
||||
(transform-post)
|
||||
(carry-info-method-9 (-> self carry))
|
||||
(none)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition of type throwblock
|
||||
(deftype throwblock (mechblock)
|
||||
()
|
||||
:heap-base #xb0
|
||||
:method-count-assert 25
|
||||
:size-assert #x124
|
||||
:flag-assert #x1900b00124
|
||||
)
|
||||
|
||||
;; definition for method 3 of type throwblock
|
||||
(defmethod inspect throwblock ((obj throwblock))
|
||||
(when (not obj)
|
||||
(set! obj obj)
|
||||
(goto cfg-4)
|
||||
)
|
||||
(let ((t9-0 (method-of-type mechblock inspect)))
|
||||
(t9-0 obj)
|
||||
)
|
||||
(label cfg-4)
|
||||
obj
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defskelgroup skel-throwblock throwblock throwblock-lod0-jg throwblock-idle-ja
|
||||
((throwblock-lod0-mg (meters 999999)))
|
||||
:bounds (static-spherem 0 1.5 0 2.7)
|
||||
)
|
||||
|
||||
;; definition for method 11 of type throwblock
|
||||
;; WARN: Return type mismatch object vs none.
|
||||
(defmethod init-from-entity! throwblock ((obj throwblock) (arg0 entity-actor))
|
||||
(let ((s4-0 (new 'process 'collide-shape-moving obj (collide-list-enum usually-hit-by-player))))
|
||||
(set! (-> s4-0 dynam) (copy *standard-dynamics* 'process))
|
||||
(set! (-> s4-0 reaction) cshape-reaction-default)
|
||||
(set! (-> s4-0 no-reaction)
|
||||
(the-as (function collide-shape-moving collide-query vector vector object) nothing)
|
||||
)
|
||||
(set! (-> s4-0 penetrated-by) (penetrate))
|
||||
(let ((v1-6 (new 'process 'collide-shape-prim-mesh s4-0 (the-as uint 0) (the-as uint 0))))
|
||||
(set! (-> v1-6 prim-core collide-as) (collide-spec obstacle))
|
||||
(set! (-> v1-6 prim-core collide-with)
|
||||
(collide-spec backgnd jak crate obstacle hit-by-others-list player-list tobot)
|
||||
)
|
||||
(set! (-> v1-6 prim-core action) (collide-action solid))
|
||||
(set! (-> v1-6 transform-index) 3)
|
||||
(set-vector! (-> v1-6 local-sphere) 0.0 6144.0 0.0 11059.2)
|
||||
(set! (-> s4-0 total-prims) (the-as uint 1))
|
||||
(set! (-> s4-0 root-prim) v1-6)
|
||||
)
|
||||
(set! (-> s4-0 nav-radius) (* 0.75 (-> s4-0 root-prim local-sphere w)))
|
||||
(let ((v1-9 (-> s4-0 root-prim)))
|
||||
(set! (-> s4-0 backup-collide-as) (-> v1-9 prim-core collide-as))
|
||||
(set! (-> s4-0 backup-collide-with) (-> v1-9 prim-core collide-with))
|
||||
)
|
||||
(set! (-> s4-0 max-iteration-count) (the-as uint 4))
|
||||
(set! (-> s4-0 event-self) 'touched)
|
||||
(set! (-> obj root-override) s4-0)
|
||||
)
|
||||
(process-drawable-from-entity! obj arg0)
|
||||
(initialize-skeleton
|
||||
obj
|
||||
(the-as skeleton-group (art-group-get-by-name *level* "skel-throwblock" (the-as (pointer uint32) #f)))
|
||||
(the-as pair 0)
|
||||
)
|
||||
(mem-copy! (the-as pointer (-> obj origin)) (the-as pointer (-> obj root-override trans)) 48)
|
||||
(set! (-> obj allow-drag?) #f)
|
||||
(set! (-> obj reset-on-land?) #t)
|
||||
(let* ((v1-18 *game-info*)
|
||||
(a0-16 (+ (-> v1-18 attack-id) 1))
|
||||
)
|
||||
(set! (-> v1-18 attack-id) a0-16)
|
||||
(set! (-> obj attack-id) a0-16)
|
||||
)
|
||||
(set! (-> obj hit-something?) #f)
|
||||
(set! (-> obj next-entity) (entity-actor-lookup (-> obj entity) 'next-actor 0))
|
||||
(let ((v1-20 (new 'process 'carry-info obj 3 (new 'static 'vector :w 1.0) (new 'static 'vector :y 1.0 :w 1.0) 0.0))
|
||||
)
|
||||
(set! (-> v1-20 max-distance) 16384.0)
|
||||
(set! (-> v1-20 min-pull) 2048.0)
|
||||
(set! (-> v1-20 max-pull) 6963.2)
|
||||
(set! (-> v1-20 carry-radius) 6144.0)
|
||||
(set! (-> v1-20 mode) (carry-mode mech-carry))
|
||||
(set! (-> obj carry) v1-20)
|
||||
)
|
||||
(go (method-of-object obj idle))
|
||||
(none)
|
||||
)
|
||||
|
||||
;; definition of type pushblock
|
||||
(deftype pushblock (mechblock)
|
||||
()
|
||||
:heap-base #xb0
|
||||
:method-count-assert 25
|
||||
:size-assert #x124
|
||||
:flag-assert #x1900b00124
|
||||
)
|
||||
|
||||
;; definition for method 3 of type pushblock
|
||||
(defmethod inspect pushblock ((obj pushblock))
|
||||
(when (not obj)
|
||||
(set! obj obj)
|
||||
(goto cfg-4)
|
||||
)
|
||||
(let ((t9-0 (method-of-type mechblock inspect)))
|
||||
(t9-0 obj)
|
||||
)
|
||||
(label cfg-4)
|
||||
obj
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defskelgroup skel-pushblock pushblock pushblock-lod0-jg pushblock-idle-ja
|
||||
((pushblock-lod0-mg (meters 999999)))
|
||||
:bounds (static-spherem 0 2 0 4)
|
||||
)
|
||||
|
||||
;; definition for method 11 of type pushblock
|
||||
;; WARN: Return type mismatch object vs none.
|
||||
(defmethod init-from-entity! pushblock ((obj pushblock) (arg0 entity-actor))
|
||||
(let ((s4-0 (new 'process 'collide-shape-moving obj (collide-list-enum usually-hit-by-player))))
|
||||
(set! (-> s4-0 dynam) (copy *standard-dynamics* 'process))
|
||||
(set! (-> s4-0 reaction) cshape-reaction-default)
|
||||
(set! (-> s4-0 no-reaction)
|
||||
(the-as (function collide-shape-moving collide-query vector vector object) nothing)
|
||||
)
|
||||
(set! (-> s4-0 penetrated-by) (penetrate))
|
||||
(let ((v1-6 (new 'process 'collide-shape-prim-mesh s4-0 (the-as uint 0) (the-as uint 0))))
|
||||
(set! (-> v1-6 prim-core collide-as) (collide-spec obstacle))
|
||||
(set! (-> v1-6 prim-core collide-with)
|
||||
(collide-spec backgnd jak crate obstacle hit-by-others-list player-list tobot)
|
||||
)
|
||||
(set! (-> v1-6 prim-core action) (collide-action solid))
|
||||
(set! (-> v1-6 transform-index) 0)
|
||||
(set-vector! (-> v1-6 local-sphere) 0.0 11264.0 0.0 22528.0)
|
||||
(set! (-> s4-0 total-prims) (the-as uint 1))
|
||||
(set! (-> s4-0 root-prim) v1-6)
|
||||
)
|
||||
(set! (-> s4-0 nav-radius) (* 0.75 (-> s4-0 root-prim local-sphere w)))
|
||||
(let ((v1-9 (-> s4-0 root-prim)))
|
||||
(set! (-> s4-0 backup-collide-as) (-> v1-9 prim-core collide-as))
|
||||
(set! (-> s4-0 backup-collide-with) (-> v1-9 prim-core collide-with))
|
||||
)
|
||||
(set! (-> s4-0 max-iteration-count) (the-as uint 4))
|
||||
(set! (-> obj root-override) s4-0)
|
||||
)
|
||||
(process-drawable-from-entity! obj arg0)
|
||||
(initialize-skeleton
|
||||
obj
|
||||
(the-as skeleton-group (art-group-get-by-name *level* "skel-pushblock" (the-as (pointer uint32) #f)))
|
||||
(the-as pair 0)
|
||||
)
|
||||
(mem-copy! (the-as pointer (-> obj origin)) (the-as pointer (-> obj root-override trans)) 48)
|
||||
(set! (-> obj reset-on-land?) #f)
|
||||
(set! (-> obj allow-drag?) #t)
|
||||
(let* ((v1-17 *game-info*)
|
||||
(a0-15 (+ (-> v1-17 attack-id) 1))
|
||||
)
|
||||
(set! (-> v1-17 attack-id) a0-15)
|
||||
(set! (-> obj attack-id) a0-15)
|
||||
)
|
||||
(set! (-> obj next-entity) #f)
|
||||
(get-nav-control obj (the-as nav-mesh #f))
|
||||
(let ((v1-19
|
||||
(new 'process 'carry-info obj 3 (new 'static 'vector :y 819.2 :w 1.0) (new 'static 'vector :y 1.0 :w 1.0) 0.0)
|
||||
)
|
||||
)
|
||||
(set! (-> v1-19 max-distance) 22528.0)
|
||||
(set! (-> v1-19 min-pull) 10240.0)
|
||||
(set! (-> v1-19 max-pull) 14336.0)
|
||||
(set! (-> v1-19 carry-radius) 11264.0)
|
||||
(set! (-> v1-19 mode) (carry-mode mech-drag))
|
||||
(set! (-> obj carry) v1-19)
|
||||
)
|
||||
(go (method-of-object obj idle))
|
||||
(none)
|
||||
)
|
||||
|
||||
|
||||
|
||||
|
||||
+400
@@ -0,0 +1,400 @@
|
||||
;;-*-Lisp-*-
|
||||
(in-package goal)
|
||||
|
||||
;; definition of type ruins-pillar-collapse
|
||||
(deftype ruins-pillar-collapse (process-drawable)
|
||||
((root-override collide-shape-moving :offset 128)
|
||||
(player-attack-id int32 :offset-assert 200)
|
||||
(fall-anim-index int32 :offset-assert 204)
|
||||
(hit-points int8 :offset-assert 208)
|
||||
(mesh-trans uint8 3 :offset-assert 209)
|
||||
(mesh-joint joint 2 :offset-assert 212)
|
||||
(deadly? symbol :offset 216)
|
||||
(art-name string :offset 220)
|
||||
(anim spool-anim :offset 224)
|
||||
)
|
||||
:heap-base #x70
|
||||
:method-count-assert 24
|
||||
:size-assert #xe4
|
||||
:flag-assert #x18007000e4
|
||||
(:methods
|
||||
(idle () _type_ :state 20)
|
||||
(bump () _type_ :state 21)
|
||||
(hit () _type_ :state 22)
|
||||
(fall (symbol) _type_ :state 23)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for method 3 of type ruins-pillar-collapse
|
||||
(defmethod inspect ruins-pillar-collapse ((obj ruins-pillar-collapse))
|
||||
(when (not obj)
|
||||
(set! obj obj)
|
||||
(goto cfg-4)
|
||||
)
|
||||
(let ((t9-0 (method-of-type process-drawable inspect)))
|
||||
(t9-0 obj)
|
||||
)
|
||||
(format #t "~2Tplayer-attack-id: ~D~%" (-> obj player-attack-id))
|
||||
(format #t "~2Tfall-anim-index: ~D~%" (-> obj fall-anim-index))
|
||||
(format #t "~2Thit-points: ~D~%" (-> obj hit-points))
|
||||
(format #t "~2Tmesh-trans[3] @ #x~X~%" (-> obj mesh-trans))
|
||||
(format #t "~2Tmesh-joint[2] @ #x~X~%" (-> obj mesh-joint))
|
||||
(format #t "~2Tdeadly?: ~A~%" (-> obj deadly?))
|
||||
(format #t "~2Tart-name: ~A~%" (-> obj art-name))
|
||||
(format #t "~2Tanim: ~A~%" (-> obj anim))
|
||||
(label cfg-4)
|
||||
obj
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defskelgroup skel-ruins-pillar-collapse-1 ruins-pillar-collapse ruins-pillar-collapse-lod0-jg ruins-pillar-collapse-1-idle-ja
|
||||
((ruins-pillar-collapse-lod0-mg (meters 999999)))
|
||||
:bounds (static-spherem 0 12 16 30)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defskelgroup skel-ruins-pillar-collapse-2 ruins-pillar-collapse ruins-pillar-collapse-lod0-jg ruins-pillar-collapse-2-idle-ja
|
||||
((ruins-pillar-collapse-lod0-mg (meters 999999)))
|
||||
:bounds (static-spherem 0 12 0 17)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defskelgroup skel-ruins-pillar-collapse-3 ruins-pillar-collapse ruins-pillar-collapse-lod0-jg ruins-pillar-collapse-3-idle-ja
|
||||
((ruins-pillar-collapse-lod0-mg (meters 999999)))
|
||||
:bounds (static-spherem 0 12 0 17)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defstate idle (ruins-pillar-collapse)
|
||||
:virtual #t
|
||||
:event (behavior ((proc process) (arg1 int) (event-type symbol) (event event-message-block))
|
||||
(case event-type
|
||||
(('attack)
|
||||
(when (task-node-closed? (game-task-node ruins-mech-introduction))
|
||||
(let* ((gp-1 (the-as attack-info (-> event param 1)))
|
||||
(s4-0 (-> gp-1 id))
|
||||
(s5-0 (vector-x-quaternion! (new-stack-vector0) (-> self root-override quat)))
|
||||
(a0-6 (vector-z-quaternion! (new-stack-vector0) (-> self root-override quat)))
|
||||
(v1-4
|
||||
(vector-! (new-stack-vector0) (-> (the-as process-drawable proc) root trans) (-> self root-override trans))
|
||||
)
|
||||
)
|
||||
0.0
|
||||
0.0
|
||||
(when (!= s4-0 (-> self player-attack-id))
|
||||
(set! (-> self player-attack-id) (the-as int s4-0))
|
||||
(let* ((f0-3 (vector-dot s5-0 v1-4))
|
||||
(f1-1 (vector-dot a0-6 v1-4))
|
||||
(a0-8 (-> gp-1 mode))
|
||||
(v1-6 (cond
|
||||
((= a0-8 'mech-punch)
|
||||
(and (< f1-1 0.0) (< (fabs (* 0.5 f0-3)) (fabs f1-1)))
|
||||
)
|
||||
((= a0-8 'crush)
|
||||
(< (sqrtf (+ (* (-> v1-4 x) (-> v1-4 x)) (* (-> v1-4 z) (-> v1-4 z)))) 40960.0)
|
||||
)
|
||||
((= a0-8 'debug)
|
||||
#t
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(cond
|
||||
(v1-6
|
||||
(go-virtual hit)
|
||||
)
|
||||
(else
|
||||
(go-virtual bump)
|
||||
#f
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(('look-at-point)
|
||||
(send-event (ppointer->process (-> self child)) 'look-at-point)
|
||||
)
|
||||
(('combo)
|
||||
#t
|
||||
)
|
||||
)
|
||||
)
|
||||
:enter (behavior ()
|
||||
(let ((s5-0 (matrix<-transformq! (new 'stack-no-clear 'matrix) (the-as transformq (-> self root-override trans)))))
|
||||
(if (string= (-> self name) "ruins-pillar-collapse-9")
|
||||
(mech-target-spawn
|
||||
(vector-matrix*! (new 'stack-no-clear 'vector) (new 'static 'vector :y 18432.0 :z 8192.0 :w 1.0) s5-0)
|
||||
(the-as target self)
|
||||
(-> self root-override quat)
|
||||
(-> self entity)
|
||||
)
|
||||
(mech-target-spawn
|
||||
(vector-matrix*! (new 'stack-no-clear 'vector) (new 'static 'vector :y 18432.0 :z -8192.0 :w 1.0) s5-0)
|
||||
(the-as target self)
|
||||
(-> self root-override quat)
|
||||
(-> self entity)
|
||||
)
|
||||
)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
:exit (behavior ()
|
||||
(while (-> self child)
|
||||
(deactivate (-> self child 0))
|
||||
)
|
||||
(none)
|
||||
)
|
||||
:code (behavior ()
|
||||
(if (task-node-closed? (game-task-node ruins-mech-introduction))
|
||||
(add-process *gui-control* self (gui-channel art-load) (gui-action queue) (-> self anim name) -99.0 0)
|
||||
)
|
||||
(ja :num-func num-func-identity :frame-num 0.0)
|
||||
(logior! (-> self mask) (process-mask sleep))
|
||||
(suspend)
|
||||
0
|
||||
(none)
|
||||
)
|
||||
:post (the-as (function none :behavior ruins-pillar-collapse) transform-post)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defstate bump (ruins-pillar-collapse)
|
||||
:virtual #t
|
||||
:event (-> (method-of-type ruins-pillar-collapse idle) event)
|
||||
:trans (the-as (function none :behavior ruins-pillar-collapse) rider-trans)
|
||||
:code (behavior ()
|
||||
(go-virtual idle)
|
||||
(none)
|
||||
)
|
||||
:post (the-as (function none :behavior ruins-pillar-collapse) rider-post)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defstate hit (ruins-pillar-collapse)
|
||||
:virtual #t
|
||||
:event (-> (method-of-type ruins-pillar-collapse idle) event)
|
||||
:trans (the-as (function none :behavior ruins-pillar-collapse) rider-trans)
|
||||
:code (behavior ()
|
||||
(+! (-> self hit-points) -1)
|
||||
(if (zero? (-> self hit-points))
|
||||
(go-virtual fall #f)
|
||||
)
|
||||
(go-virtual idle)
|
||||
(none)
|
||||
)
|
||||
:post (the-as (function none :behavior ruins-pillar-collapse) rider-post)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defstate fall (ruins-pillar-collapse)
|
||||
:virtual #t
|
||||
:event (behavior ((proc process) (arg1 int) (event-type symbol) (event event-message-block))
|
||||
(case event-type
|
||||
(('touch 'attack)
|
||||
(let* ((s5-0 (-> event param 0))
|
||||
(s4-0 proc)
|
||||
(gp-0 (if (type? s4-0 process-focusable)
|
||||
s4-0
|
||||
)
|
||||
)
|
||||
(a1-4 (if s5-0
|
||||
((method-of-type touching-shapes-entry prims-touching?)
|
||||
(the-as touching-shapes-entry s5-0)
|
||||
(-> self root-override)
|
||||
(the-as uint 2)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(when (and gp-0 a1-4)
|
||||
(let ((s4-1 (get-intersect-point
|
||||
(new 'stack-no-clear 'vector)
|
||||
a1-4
|
||||
(-> self root-override)
|
||||
(the-as touching-shapes-entry s5-0)
|
||||
)
|
||||
)
|
||||
)
|
||||
(when (and (< (-> (get-trans (the-as process-focusable gp-0) 3) y) (-> s4-1 y))
|
||||
(< 40960.0 (vector-vector-distance s4-1 (-> self root-override trans)))
|
||||
)
|
||||
(let ((a1-8 (new 'stack-no-clear 'event-message-block)))
|
||||
(set! (-> a1-8 from) (process->ppointer self))
|
||||
(set! (-> a1-8 num-params) 2)
|
||||
(set! (-> a1-8 message) 'attack)
|
||||
(set! (-> a1-8 param 0) s5-0)
|
||||
(let ((v1-13 (new 'static 'attack-info :mask (attack-info-mask mode id))))
|
||||
(let* ((a0-7 *game-info*)
|
||||
(a2-5 (+ (-> a0-7 attack-id) 1))
|
||||
)
|
||||
(set! (-> a0-7 attack-id) a2-5)
|
||||
(set! (-> v1-13 id) a2-5)
|
||||
)
|
||||
(set! (-> v1-13 mode) 'crush)
|
||||
(set! (-> a1-8 param 1) (the-as uint v1-13))
|
||||
)
|
||||
(send-event-function gp-0 a1-8)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
:trans (the-as (function none :behavior ruins-pillar-collapse) rider-trans)
|
||||
:post (the-as (function none :behavior ruins-pillar-collapse) rider-post)
|
||||
)
|
||||
|
||||
;; definition for method 11 of type ruins-pillar-collapse
|
||||
;; INFO: Used lq/sq
|
||||
;; WARN: Return type mismatch object vs none.
|
||||
(defmethod init-from-entity! ruins-pillar-collapse ((obj ruins-pillar-collapse) (arg0 entity-actor))
|
||||
(local-vars (sv-16 collide-shape-prim-mesh) (sv-32 symbol) (sv-48 type) (sv-64 collide-shape-moving))
|
||||
(stack-size-set! (-> obj main-thread) 512)
|
||||
(set! (-> obj mask) (logior (process-mask collectable) (-> obj mask)))
|
||||
(dotimes (v1-3 3)
|
||||
(set! (-> obj mesh-trans v1-3) (the-as uint v1-3))
|
||||
)
|
||||
(let ((s4-0 (new 'process 'collide-shape-moving obj (collide-list-enum usually-hit-by-player))))
|
||||
(set! (-> s4-0 dynam) (copy *standard-dynamics* 'process))
|
||||
(set! (-> s4-0 reaction) cshape-reaction-default)
|
||||
(set! (-> s4-0 no-reaction)
|
||||
(the-as (function collide-shape-moving collide-query vector vector object) nothing)
|
||||
)
|
||||
(set! (-> s4-0 penetrated-by) (penetrate))
|
||||
(let ((s3-0 (new 'process 'collide-shape-prim-group s4-0 (the-as uint 33) 0)))
|
||||
(set! (-> s4-0 total-prims) (the-as uint 34))
|
||||
(set! (-> s3-0 prim-core collide-as) (collide-spec obstacle))
|
||||
(set! (-> s3-0 prim-core action) (collide-action solid rideable))
|
||||
(set! (-> s3-0 transform-index) 0)
|
||||
(set-vector! (-> s3-0 local-sphere) 0.0 49152.0 0.0 69632.0)
|
||||
(set! (-> s4-0 root-prim) s3-0)
|
||||
(let* ((s2-0 (the-as object '((5 22 61440)
|
||||
(3 21 18432)
|
||||
(4 22 61440)
|
||||
(6 46 8192)
|
||||
(7 47 6144)
|
||||
(8 48 6963)
|
||||
(9 49 6963)
|
||||
(10 53 6963)
|
||||
(11 54 6144)
|
||||
(12 61 8192)
|
||||
(13 62 10240)
|
||||
(14 63 6963)
|
||||
(15 64 6963)
|
||||
(17 66 9011)
|
||||
(18 67 16384)
|
||||
(19 68 8192)
|
||||
(20 69 6144)
|
||||
(21 70 6553)
|
||||
(22 71 9420)
|
||||
(23 72 5734)
|
||||
(24 73 7782)
|
||||
(25 74 5734)
|
||||
(26 75 8192)
|
||||
(27 76 5734)
|
||||
(28 77 5734)
|
||||
(29 78 10240)
|
||||
(30 79 6144)
|
||||
(31 80 6144)
|
||||
(32 81 6144)
|
||||
(33 82 6963)
|
||||
(34 83 9830)
|
||||
(35 84 8192)
|
||||
(16 65 8192)
|
||||
)
|
||||
)
|
||||
)
|
||||
(s1-0 (-> (the-as pair s2-0) car))
|
||||
)
|
||||
(while (not (null? s2-0))
|
||||
(let ((s0-0 (method-of-type collide-shape-prim-mesh new)))
|
||||
(set! sv-32 'process)
|
||||
(set! sv-48 collide-shape-prim-mesh)
|
||||
(set! sv-64 s4-0)
|
||||
(let ((a3-2 (command-get-int (-> (the-as pair s1-0) car) 0))
|
||||
(t0-1 0)
|
||||
)
|
||||
(set! sv-16 (s0-0 sv-32 sv-48 sv-64 (the-as uint a3-2) (the-as uint t0-1)))
|
||||
)
|
||||
)
|
||||
(let ((s0-1 sv-16))
|
||||
(set! (-> s0-1 prim-core collide-as) (-> s3-0 prim-core collide-as))
|
||||
(set! (-> s0-1 prim-core collide-with) (-> s3-0 prim-core collide-with))
|
||||
(set! (-> s0-1 prim-core action) (-> s3-0 prim-core action))
|
||||
(set! (-> s0-1 transform-index) (command-get-int (-> (the-as pair (-> (the-as pair s1-0) cdr)) car) 0))
|
||||
)
|
||||
(set-vector!
|
||||
(-> sv-16 local-sphere)
|
||||
0.0
|
||||
0.0
|
||||
0.0
|
||||
(command-get-float (-> (the-as pair (-> (the-as pair (-> (the-as pair s1-0) cdr)) cdr)) car) 0.0)
|
||||
)
|
||||
(set! s2-0 (-> (the-as pair s2-0) cdr))
|
||||
(set! s1-0 (-> (the-as pair s2-0) car))
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! (-> s4-0 nav-radius) (* 0.75 (-> s4-0 root-prim local-sphere w)))
|
||||
(let ((v1-30 (-> s4-0 root-prim)))
|
||||
(set! (-> s4-0 backup-collide-as) (-> v1-30 prim-core collide-as))
|
||||
(set! (-> s4-0 backup-collide-with) (-> v1-30 prim-core collide-with))
|
||||
)
|
||||
(set! (-> obj root-override) s4-0)
|
||||
)
|
||||
(process-drawable-from-entity! obj arg0)
|
||||
(set! (-> obj mesh-trans 0) (the-as uint 1))
|
||||
(set! (-> obj mesh-trans 1) (the-as uint 2))
|
||||
(set! (-> obj mesh-trans 2) (the-as uint 0))
|
||||
(let ((s5-1 (res-lump-struct (-> obj entity) 'art-name structure)))
|
||||
(set! (-> obj art-name) (the-as string s5-1))
|
||||
(cond
|
||||
((string= (the-as string s5-1) "ruins-pillar-collapse-1")
|
||||
(let ((v1-38 (-> obj root-override root-prim local-sphere)))
|
||||
(set! (-> v1-38 y) 49152.0)
|
||||
(set! (-> v1-38 z) 65536.0)
|
||||
(set! (-> v1-38 w) 122880.0)
|
||||
)
|
||||
(set! (-> obj anim) (new 'static 'spool-anim
|
||||
:name "ruins-pillar-collapse-1"
|
||||
:anim-name "1-break-center"
|
||||
:parts 2
|
||||
:command-list '()
|
||||
)
|
||||
)
|
||||
)
|
||||
((string= (the-as string s5-1) "ruins-pillar-collapse-2")
|
||||
(set! (-> obj anim) (new 'static 'spool-anim
|
||||
:name "ruins-pillar-collapse-2"
|
||||
:anim-name "2-break-center"
|
||||
:parts 2
|
||||
:command-list '()
|
||||
)
|
||||
)
|
||||
(set-yaw-angle-clear-roll-pitch! (-> obj root-override) (+ 32768.0 (y-angle (-> obj root-override))))
|
||||
)
|
||||
((string= (the-as string s5-1) "ruins-pillar-collapse-3")
|
||||
(set! (-> obj anim) (new 'static 'spool-anim
|
||||
:name "ruins-pillar-collapse-3"
|
||||
:anim-name "3-break-center"
|
||||
:parts 2
|
||||
:command-list '()
|
||||
)
|
||||
)
|
||||
(set-yaw-angle-clear-roll-pitch! (-> obj root-override) (+ 32768.0 (y-angle (-> obj root-override))))
|
||||
)
|
||||
)
|
||||
(initialize-skeleton-by-name obj (the-as string s5-1))
|
||||
)
|
||||
(set! (-> obj hit-points) 1)
|
||||
(set! (-> obj deadly?) #f)
|
||||
(if (and (-> obj entity) (logtest? (-> obj entity extra perm status) (entity-perm-status subtask-complete)))
|
||||
(go (method-of-object obj fall) #t)
|
||||
(go (method-of-object obj idle))
|
||||
)
|
||||
(none)
|
||||
)
|
||||
+6
-1
@@ -89,7 +89,12 @@
|
||||
:jump-debug-draw #f
|
||||
:move-to-ground #t
|
||||
:hover-if-no-ground #f
|
||||
:idle-anim-script (new 'static 'array uint32 4 #x1010501 #x0 #x0 #x0)
|
||||
:idle-anim-script (new 'static 'array idle-control-frame 4
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x5 :param0 #x1 :param1 #x1)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
)
|
||||
:idle-anim 5
|
||||
:notice-anim 6
|
||||
:hostile-anim -1
|
||||
|
||||
+1046
File diff suppressed because it is too large
Load Diff
+108
-102
@@ -46,108 +46,114 @@
|
||||
)
|
||||
|
||||
;; definition for symbol *gator-nav-enemy-info*, type nav-enemy-info
|
||||
(define *gator-nav-enemy-info* (new 'static 'nav-enemy-info
|
||||
:use-die-falling #t
|
||||
:use-victory #f
|
||||
:use-jump-blocked #f
|
||||
:debug-draw-neck #f
|
||||
:jump-debug-draw #f
|
||||
:move-to-ground #f
|
||||
:hover-if-no-ground #f
|
||||
:idle-anim-script (new 'static 'array uint32 4 #x1e0002 #x64640d01 #x0 #x0)
|
||||
:idle-anim 13
|
||||
:notice-anim 13
|
||||
:hostile-anim 14
|
||||
:hit-anim 6
|
||||
:knocked-anim 6
|
||||
:knocked-land-anim 7
|
||||
:die-anim 12
|
||||
:die-falling-anim 21
|
||||
:victory-anim -1
|
||||
:jump-wind-up-anim 13
|
||||
:jump-in-air-anim 13
|
||||
:jump-land-anim 13
|
||||
:neck-joint -1
|
||||
:look-at-joint 12
|
||||
:bullseye-joint 4
|
||||
:sound-hit (static-sound-name "gator-hit")
|
||||
:sound-die (static-sound-name "gator-die")
|
||||
:notice-distance (meters 80)
|
||||
:notice-distance-delta (meters 10)
|
||||
:proximity-notice-distance (meters 40)
|
||||
:default-hit-points 1
|
||||
:gnd-collide-with (collide-spec backgnd)
|
||||
:overlaps-others-collide-with-filter (collide-spec jak bot player-list)
|
||||
:movement-gravity (meters -100)
|
||||
:friction 0.8
|
||||
:attack-shove-back (meters 3.5)
|
||||
:attack-shove-up (meters 2)
|
||||
:attack-mode 'generic
|
||||
:attack-damage 2
|
||||
:recover-gnd-collide-with (collide-spec backgnd crate obstacle hit-by-others-list pusher)
|
||||
:jump-height-min (meters 3)
|
||||
:jump-height-factor 0.5
|
||||
:knocked-seek-ry-clamp 6371.5557
|
||||
:knocked-soft-vxz-lo 72089.6
|
||||
:knocked-soft-vxz-hi 108134.4
|
||||
:knocked-soft-vy-lo 81920.0
|
||||
:knocked-soft-vy-hi 122880.0
|
||||
:knocked-medium-vxz-lo 147456.0
|
||||
:knocked-medium-vxz-hi 196608.0
|
||||
:knocked-medium-vy-lo 135168.0
|
||||
:knocked-medium-vy-hi 151552.0
|
||||
:knocked-hard-vxz-lo 78643.2
|
||||
:knocked-hard-vxz-hi 117964.8
|
||||
:knocked-hard-vy-lo 183500.8
|
||||
:knocked-hard-vy-hi 209715.2
|
||||
:knocked-huge-vxz-lo 164659.2
|
||||
:knocked-huge-vxz-hi 249036.8
|
||||
:knocked-huge-vy-lo 183500.8
|
||||
:knocked-huge-vy-hi 217907.2
|
||||
:knocked-yellow-vxz-lo 40960.0
|
||||
:knocked-yellow-vxz-hi 49152.0
|
||||
:knocked-yellow-vy-lo 57344.0
|
||||
:knocked-yellow-vy-hi 81920.0
|
||||
:knocked-red-vxz-lo 24576.0
|
||||
:knocked-red-vxz-hi 196608.0
|
||||
:knocked-red-vy-lo 94208.0
|
||||
:knocked-red-vy-hi 151552.0
|
||||
:knocked-blue-vxz-lo 40960.0
|
||||
:knocked-blue-vxz-hi 49152.0
|
||||
:knocked-blue-vy-lo 24576.0
|
||||
:knocked-blue-vy-hi 81920.0
|
||||
:shadow-size (meters 1)
|
||||
:shadow-max-y (meters 1)
|
||||
:shadow-min-y (meters -1)
|
||||
:shadow-locus-dist (meters 150)
|
||||
:gem-joint -1
|
||||
:gem-offset (new 'static 'sphere :r 163840.0)
|
||||
:callback-info #f
|
||||
:use-momentum #f
|
||||
:use-frustration #t
|
||||
:use-stop-chase #f
|
||||
:use-circling #t
|
||||
:use-pacing #t
|
||||
:walk-anim 13
|
||||
:turn-anim -1
|
||||
:run-anim 14
|
||||
:taunt-anim -1
|
||||
:run-travel-speed (meters 16)
|
||||
:run-acceleration (meters 8)
|
||||
:run-turning-acceleration (meters 40)
|
||||
:walk-travel-speed (meters 4)
|
||||
:walk-acceleration (meters 8)
|
||||
:walk-turning-acceleration (meters 10)
|
||||
:maximum-rotation-rate (degrees 200.00002)
|
||||
:notice-nav-radius (meters 2)
|
||||
:frustration-distance (meters 8)
|
||||
:frustration-time (seconds 4)
|
||||
:blocked-time (seconds 0.3)
|
||||
:circle-dist-lo 20480.0
|
||||
:circle-dist-hi 61440.0
|
||||
:nav-mesh #f
|
||||
)
|
||||
)
|
||||
(define *gator-nav-enemy-info*
|
||||
(new 'static 'nav-enemy-info
|
||||
:use-die-falling #t
|
||||
:use-victory #f
|
||||
:use-jump-blocked #f
|
||||
:debug-draw-neck #f
|
||||
:jump-debug-draw #f
|
||||
:move-to-ground #f
|
||||
:hover-if-no-ground #f
|
||||
:idle-anim-script (new 'static 'array idle-control-frame 4
|
||||
(new 'static 'idle-control-frame :command #x2 :param0 #x1e)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #xd :param0 #x64 :param1 #x64)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
)
|
||||
:idle-anim 13
|
||||
:notice-anim 13
|
||||
:hostile-anim 14
|
||||
:hit-anim 6
|
||||
:knocked-anim 6
|
||||
:knocked-land-anim 7
|
||||
:die-anim 12
|
||||
:die-falling-anim 21
|
||||
:victory-anim -1
|
||||
:jump-wind-up-anim 13
|
||||
:jump-in-air-anim 13
|
||||
:jump-land-anim 13
|
||||
:neck-joint -1
|
||||
:look-at-joint 12
|
||||
:bullseye-joint 4
|
||||
:sound-hit (static-sound-name "gator-hit")
|
||||
:sound-die (static-sound-name "gator-die")
|
||||
:notice-distance (meters 80)
|
||||
:notice-distance-delta (meters 10)
|
||||
:proximity-notice-distance (meters 40)
|
||||
:default-hit-points 1
|
||||
:gnd-collide-with (collide-spec backgnd)
|
||||
:overlaps-others-collide-with-filter (collide-spec jak bot player-list)
|
||||
:movement-gravity (meters -100)
|
||||
:friction 0.8
|
||||
:attack-shove-back (meters 3.5)
|
||||
:attack-shove-up (meters 2)
|
||||
:attack-mode 'generic
|
||||
:attack-damage 2
|
||||
:recover-gnd-collide-with (collide-spec backgnd crate obstacle hit-by-others-list pusher)
|
||||
:jump-height-min (meters 3)
|
||||
:jump-height-factor 0.5
|
||||
:knocked-seek-ry-clamp 6371.5557
|
||||
:knocked-soft-vxz-lo 72089.6
|
||||
:knocked-soft-vxz-hi 108134.4
|
||||
:knocked-soft-vy-lo 81920.0
|
||||
:knocked-soft-vy-hi 122880.0
|
||||
:knocked-medium-vxz-lo 147456.0
|
||||
:knocked-medium-vxz-hi 196608.0
|
||||
:knocked-medium-vy-lo 135168.0
|
||||
:knocked-medium-vy-hi 151552.0
|
||||
:knocked-hard-vxz-lo 78643.2
|
||||
:knocked-hard-vxz-hi 117964.8
|
||||
:knocked-hard-vy-lo 183500.8
|
||||
:knocked-hard-vy-hi 209715.2
|
||||
:knocked-huge-vxz-lo 164659.2
|
||||
:knocked-huge-vxz-hi 249036.8
|
||||
:knocked-huge-vy-lo 183500.8
|
||||
:knocked-huge-vy-hi 217907.2
|
||||
:knocked-yellow-vxz-lo 40960.0
|
||||
:knocked-yellow-vxz-hi 49152.0
|
||||
:knocked-yellow-vy-lo 57344.0
|
||||
:knocked-yellow-vy-hi 81920.0
|
||||
:knocked-red-vxz-lo 24576.0
|
||||
:knocked-red-vxz-hi 196608.0
|
||||
:knocked-red-vy-lo 94208.0
|
||||
:knocked-red-vy-hi 151552.0
|
||||
:knocked-blue-vxz-lo 40960.0
|
||||
:knocked-blue-vxz-hi 49152.0
|
||||
:knocked-blue-vy-lo 24576.0
|
||||
:knocked-blue-vy-hi 81920.0
|
||||
:shadow-size (meters 1)
|
||||
:shadow-max-y (meters 1)
|
||||
:shadow-min-y (meters -1)
|
||||
:shadow-locus-dist (meters 150)
|
||||
:gem-joint -1
|
||||
:gem-offset (new 'static 'sphere :r 163840.0)
|
||||
:callback-info #f
|
||||
:use-momentum #f
|
||||
:use-frustration #t
|
||||
:use-stop-chase #f
|
||||
:use-circling #t
|
||||
:use-pacing #t
|
||||
:walk-anim 13
|
||||
:turn-anim -1
|
||||
:run-anim 14
|
||||
:taunt-anim -1
|
||||
:run-travel-speed (meters 16)
|
||||
:run-acceleration (meters 8)
|
||||
:run-turning-acceleration (meters 40)
|
||||
:walk-travel-speed (meters 4)
|
||||
:walk-acceleration (meters 8)
|
||||
:walk-turning-acceleration (meters 10)
|
||||
:maximum-rotation-rate (degrees 200.00002)
|
||||
:notice-nav-radius (meters 2)
|
||||
:frustration-distance (meters 8)
|
||||
:frustration-time (seconds 4)
|
||||
:blocked-time (seconds 0.3)
|
||||
:circle-dist-lo 20480.0
|
||||
:circle-dist-hi 61440.0
|
||||
:nav-mesh #f
|
||||
)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(set! (-> *gator-nav-enemy-info* fact-defaults) *fact-info-enemy-defaults*)
|
||||
|
||||
+6
-1
@@ -1644,7 +1644,12 @@
|
||||
:jump-debug-draw #f
|
||||
:move-to-ground #t
|
||||
:hover-if-no-ground #f
|
||||
:idle-anim-script (new 'static 'array uint32 4 #x1e0002 #x3010501 #x0 #x0)
|
||||
:idle-anim-script (new 'static 'array idle-control-frame 4
|
||||
(new 'static 'idle-control-frame :command #x2 :param0 #x1e)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x5 :param0 #x1 :param1 #x3)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
)
|
||||
:idle-anim 5
|
||||
:notice-anim 13
|
||||
:hostile-anim -1
|
||||
|
||||
+1
-1
@@ -825,7 +825,7 @@
|
||||
)
|
||||
(let ((a1-8 (grunt-egg-method-23 obj)))
|
||||
(if a1-8
|
||||
(idle-control-method-9 (-> obj idle-anim-player) (the-as (pointer uint32) a1-8))
|
||||
(idle-control-method-9 (-> obj idle-anim-player) (the-as (pointer idle-control-frame) a1-8))
|
||||
)
|
||||
)
|
||||
(if (>= (res-lump-value arg0 'extra-id int :default (the-as uint128 -1) :time -1000000000.0) 0)
|
||||
|
||||
+10
-1
@@ -407,7 +407,16 @@
|
||||
:jump-debug-draw #f
|
||||
:move-to-ground #t
|
||||
:hover-if-no-ground #f
|
||||
:idle-anim-script (new 'static 'array uint32 8 #x1e0002 #x4010301 #x1e0002 #x4010401 #x0 #x0 #x0 #x0)
|
||||
:idle-anim-script (new 'static 'array idle-control-frame 8
|
||||
(new 'static 'idle-control-frame :command #x2 :param0 #x1e)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x3 :param0 #x1 :param1 #x4)
|
||||
(new 'static 'idle-control-frame :command #x2 :param0 #x1e)
|
||||
(new 'static 'idle-control-frame :command #x1 :anim #x4 :param0 #x1 :param1 #x4)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
(new 'static 'idle-control-frame)
|
||||
)
|
||||
:idle-anim 3
|
||||
:notice-anim 7
|
||||
:hostile-anim 10
|
||||
|
||||
@@ -62,6 +62,10 @@
|
||||
"DGO/STR.DGO",
|
||||
"DGO/THR.DGO",
|
||||
"DGO/TOA.DGO",
|
||||
"DGO/TOB.DGO",
|
||||
"DGO/TOC.DGO",
|
||||
"DGO/TOD.DGO",
|
||||
"DGO/TOE.DGO",
|
||||
"DGO/UNB.DGO",
|
||||
"DGO/VIN.DGO"
|
||||
],
|
||||
@@ -274,7 +278,8 @@
|
||||
"(method 60 fort-turret)", // they defined the same method twice in the same file, identical impl, just returns #f
|
||||
"(method 23 dig-tether)", // working around annoying decomp array output
|
||||
"(method 16 sew-light-control)", // skipped for now, looking for a caller
|
||||
"(method 3 rhino)"
|
||||
"(method 3 rhino)",
|
||||
"(method 193 grunt-mech)" // .mula.s
|
||||
],
|
||||
|
||||
"skip_compile_states": {
|
||||
@@ -283,6 +288,9 @@
|
||||
"(target-gun-stance target)": ["code"],
|
||||
"(hostile hopper)": ["trans"], // adds b! but the corresponding label is missing
|
||||
"(broken rhino-wall)": ["code"], // missing cast to art-joint-anim
|
||||
"(hit rhino-wall)": ["code"] // missing cast to art-joint-anim
|
||||
"(hit rhino-wall)": ["code"], // missing cast to art-joint-anim
|
||||
"(fall ruins-bridge)": ["code"], // missing cast to art-joint-anim
|
||||
"(fall ruins-drop-plat)": ["code"], // missing cast to art-joint-anim
|
||||
"(fall ruins-pillar-collapse)": ["code"] // missing cast to art-joint-anim
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user