mirror of
https://github.com/open-goal/jak-project
synced 2026-08-19 14:03:38 -04:00
d/jak2: cleaning up the remainder of unblocked / unclaimed files (#2171)
Co-authored-by: water <awaterford111445@gmail.com>
This commit is contained in:
@@ -541,8 +541,8 @@ void Env::add_stack_structure_hint(const StackStructureHint& hint) {
|
||||
if (!type_info->is_reference()) {
|
||||
throw std::runtime_error(
|
||||
fmt::format("Stack variable type {} is not a reference and cannot be stored directly "
|
||||
"on the stack. Use an array instead.",
|
||||
base_typespec.print()));
|
||||
"on the stack at offset {}. Use an array instead.",
|
||||
base_typespec.print(), hint.stack_offset));
|
||||
}
|
||||
entry.ref_type = base_typespec;
|
||||
entry.size = type_info->get_size_in_memory();
|
||||
|
||||
+676
-668
File diff suppressed because it is too large
Load Diff
@@ -1095,5 +1095,74 @@
|
||||
[4, "(function none :behavior task-manager)"],
|
||||
[5, "(function none :behavior task-manager)"],
|
||||
[6, "(function none :behavior task-manager)"]
|
||||
],
|
||||
"oracle-training": [
|
||||
[0, "(function none :behavior task-manager)"],
|
||||
[
|
||||
1,
|
||||
"(function process int symbol event-message-block object :behavior task-manager)"
|
||||
],
|
||||
[2, "(function none :behavior task-manager)"],
|
||||
[3, "(function none :behavior task-manager)"],
|
||||
[4, "(function none :behavior task-manager)"],
|
||||
[5, "(function none :behavior task-manager)"],
|
||||
[6, "(function none :behavior task-manager)"],
|
||||
[7, "(function none :behavior task-manager)"],
|
||||
[
|
||||
8,
|
||||
"(function process int symbol event-message-block object :behavior task-manager)"
|
||||
],
|
||||
[9, "(function none :behavior task-manager)"],
|
||||
[10, "(function none :behavior task-manager)"],
|
||||
[11, "(function none :behavior task-manager)"],
|
||||
[
|
||||
12,
|
||||
"(function process int symbol event-message-block object :behavior task-manager)"
|
||||
],
|
||||
[13, "(function none :behavior task-manager)"],
|
||||
[14, "(function none :behavior task-manager)"]
|
||||
],
|
||||
"demo-obs": [
|
||||
[3, "(function external-art-buffer none)"],
|
||||
[10, "(function process-drawable vector cspace object)"],
|
||||
[11, "(function process-drawable none)"],
|
||||
[12, "(function none)"]
|
||||
],
|
||||
"delivery-task": [
|
||||
[0, "(function none :behavior task-manager)"],
|
||||
[1, "(function none :behavior task-manager)"],
|
||||
[2, "(function none :behavior task-manager)"],
|
||||
[5, "(function none :behavior task-manager)"],
|
||||
[6, "(function none :behavior task-manager)"]
|
||||
],
|
||||
"stadium-obs": [
|
||||
[3, "(function none :behavior task-manager)"],
|
||||
[4, "(function none :behavior task-manager)"],
|
||||
[5, "(function none :behavior task-manager)"],
|
||||
[6, "(function none :behavior task-manager)"],
|
||||
[7, "(function none :behavior task-manager)"],
|
||||
[24, "(function none)"],
|
||||
[61, "(function object nav-control none)"],
|
||||
[62, "(function object nav-control none)"],
|
||||
[63, "(function object nav-control none)"],
|
||||
[64, "(function object nav-control none)"],
|
||||
[65, "(function object nav-control none)"]
|
||||
],
|
||||
"forrescb-obs": [
|
||||
[0, "(function none :behavior task-manager)"],
|
||||
[1, "(function none :behavior task-manager)"]
|
||||
],
|
||||
"bombbot": [
|
||||
[0, "(function none :behavior task-manager)"],
|
||||
[1, "(function none :behavior task-manager)"],
|
||||
[2, "(function none :behavior task-manager)"],
|
||||
[3, "(function none :behavior task-manager)"],
|
||||
[4, "(function none :behavior task-manager)"],
|
||||
[5, "(function none :behavior task-manager)"],
|
||||
[6, "(function none :behavior task-manager)"],
|
||||
[7, "(function none :behavior task-manager)"],
|
||||
[8, "(function none :behavior task-manager)"],
|
||||
[9, "(function none :behavior task-manager)"],
|
||||
[10, "(function none :behavior task-manager)"]
|
||||
]
|
||||
}
|
||||
|
||||
@@ -210,7 +210,8 @@
|
||||
"(method 22 fort-floor-spike-b)",
|
||||
"(method 22 fort-floor-spike-c)",
|
||||
"(method 11 sew-catwalk)",
|
||||
"(method 11 mtn-aval-rocks)"
|
||||
"(method 11 mtn-aval-rocks)",
|
||||
"(method 11 gar-curtain)"
|
||||
],
|
||||
|
||||
// If format is used with the wrong number of arguments,
|
||||
@@ -328,7 +329,10 @@
|
||||
45 // goto 6
|
||||
],
|
||||
"(method 27 conveyor)": [5, 14, 22],
|
||||
"(method 44 nav-graph)": [1, 3, 6, 13, 17],
|
||||
"(method 44 nav-graph)": [
|
||||
0, 1, 2, 3, 4, 5, 6, 7, 8, 14, 15, 16, 17, 18, 22, 24, 25, 26, 27, 30, 31,
|
||||
32, 33, 34, 35, 36
|
||||
],
|
||||
"(method 11 sparticle-launch-control)": [
|
||||
18, 24, 25, 28, 29, 32, 33, 34, 36, 41, 55, 58, 93, 95
|
||||
],
|
||||
@@ -517,7 +521,13 @@
|
||||
"(anon-function 16 kid-states)": [4, 5],
|
||||
"(anon-function 23 kid-states)": [4, 5],
|
||||
"(anon-function 16 kor-states)": [4, 5],
|
||||
"(anon-function 23 kor-states)": [4, 5]
|
||||
"(anon-function 23 kor-states)": [4, 5],
|
||||
"(method 18 mysql-nav-graph)": [0, 1, 2, 3, 4, 7, 8, 9, 14, 16],
|
||||
"(anon-function 2 rigid-body-queue)": [0, 1, 2, 3],
|
||||
"(method 15 rigid-body-queue)": [5, 6, 7, 8, 9, 10, 11],
|
||||
"(method 13 rigid-body-queue)": [5, 6, 7, 8, 9, 10, 11],
|
||||
"(method 11 rigid-body-queue)": [0, 5, 6, 7, 8, 9, 10, 11, 17, 18, 25],
|
||||
"(method 10 rigid-body-queue)": [0, 9, 10, 16, 24, 25, 26, 35, 36, 48]
|
||||
},
|
||||
|
||||
// Sometimes the game might use format strings that are fetched dynamically,
|
||||
@@ -593,7 +603,12 @@
|
||||
[518, 0],
|
||||
[350, 0]
|
||||
],
|
||||
"(trans idle burning-bush)": [[171, 0]]
|
||||
"(trans idle burning-bush)": [[171, 0]],
|
||||
"(anon-function 11 oracle-training)": [[79, 0]],
|
||||
"(anon-function 4 oracle-training)": [[79, 0]],
|
||||
"(anon-function 0 oracle-training)": [[79, 0]],
|
||||
"(anon-function 7 oracle-training)": [[79, 0]],
|
||||
"(method 27 sig-recorder)": [[93, 0]]
|
||||
},
|
||||
|
||||
"mips2c_functions_by_name": [
|
||||
|
||||
@@ -187,7 +187,9 @@
|
||||
"levels_to_extract": [
|
||||
"ATE.DGO",
|
||||
"ATO.DGO",
|
||||
"CAB.DGO",
|
||||
"CAP.DGO",
|
||||
"CAS.DGO",
|
||||
"CFA.DGO",
|
||||
"CFB.DGO",
|
||||
"CGA.DGO",
|
||||
@@ -208,6 +210,7 @@
|
||||
"CWI.DGO",
|
||||
"D3A.DGO",
|
||||
"D3B.DGO",
|
||||
"DEMO.DGO",
|
||||
"DG1.DGO",
|
||||
"DMI.DGO",
|
||||
"DRB.DGO",
|
||||
@@ -223,6 +226,7 @@
|
||||
"FORDUMPD.DGO",
|
||||
"FRA.DGO",
|
||||
"FRB.DGO",
|
||||
"LBOMBBOT.DGO",
|
||||
"GGA.DGO",
|
||||
"HIDEOUT.DGO",
|
||||
"HIPHOG.DGO",
|
||||
@@ -237,6 +241,7 @@
|
||||
"LHIPOUT.DGO",
|
||||
"LINTCSTB.DGO",
|
||||
"LOUTCSTB.DGO",
|
||||
"LPACKAGE.DGO",
|
||||
"LPORTRUN.DGO",
|
||||
"LPOWER.DGO",
|
||||
"LPROTECT.DGO",
|
||||
@@ -249,6 +254,7 @@
|
||||
"LWIDEC.DGO",
|
||||
"MTN.DGO",
|
||||
"MTX.DGO",
|
||||
"LYSAMSAM.DGO",
|
||||
"NEB.DGO",
|
||||
"NES.DGO",
|
||||
"ONINTENT.DGO",
|
||||
|
||||
@@ -1297,5 +1297,88 @@
|
||||
["L274", "attack-info"],
|
||||
["L220", "vector"]
|
||||
],
|
||||
"ctypower": [["L71", "vector"]]
|
||||
"ctypower": [["L71", "vector"]],
|
||||
"delivery-task": [
|
||||
["L141", "vector"],
|
||||
["L140", "vector"]
|
||||
],
|
||||
"stadium-obs": [
|
||||
["L683", "uint64", true],
|
||||
["L677", "uint64", true],
|
||||
["L678", "uint64", true],
|
||||
["L681", "uint64", true],
|
||||
["L682", "uint64", true],
|
||||
["L684", "uint64", true],
|
||||
["L679", "uint64", true],
|
||||
["L680", "uint64", true],
|
||||
["L575", "uint64", true],
|
||||
["L574", "uint64", true],
|
||||
["L573", "uint64", true],
|
||||
["L572", "uint64", true],
|
||||
["L576", "uint64", true],
|
||||
["L571", "uint64", true],
|
||||
["L459", "attack-info"],
|
||||
["L457", "attack-info"]
|
||||
],
|
||||
"forrescb-obs": [["L146", "attack-info"]],
|
||||
"castle-obs": [
|
||||
["L589", "uint64", true],
|
||||
["L582", "uint64", true],
|
||||
["L587", "uint64", true],
|
||||
["L588", "uint64", true],
|
||||
["L586", "uint64", true],
|
||||
["L590", "uint64", true],
|
||||
["L592", "uint64", true],
|
||||
["L593", "uint64", true],
|
||||
["L591", "uint64", true],
|
||||
["L584", "uint64", true],
|
||||
["L581", "uint64", true],
|
||||
["L585", "uint64", true],
|
||||
["L583", "uint64", true],
|
||||
["L478", "uint64", true],
|
||||
["L476", "uint64", true],
|
||||
["L481", "uint64", true],
|
||||
["L466", "uint64", true],
|
||||
["L430", "attack-info"],
|
||||
["L487", "uint64", true],
|
||||
["L477", "uint64", true],
|
||||
["L483", "uint64", true],
|
||||
["L470", "uint64", true],
|
||||
["L475", "uint64", true],
|
||||
["L479", "uint64", true],
|
||||
["L473", "uint64", true],
|
||||
["L485", "uint64", true],
|
||||
["L469", "uint64", true],
|
||||
["L472", "uint64", true],
|
||||
["L467", "uint64", true],
|
||||
["L484", "uint64", true],
|
||||
["L474", "uint64", true],
|
||||
["L366", "attack-info"],
|
||||
["L488", "uint64", true],
|
||||
["L486", "uint64", true],
|
||||
["L489", "uint64", true],
|
||||
["L468", "uint64", true],
|
||||
["L480", "uint64", true],
|
||||
["L482", "uint64", true],
|
||||
["L471", "uint64", true]
|
||||
],
|
||||
"roboguard-level": [
|
||||
["L196", "uint64", true],
|
||||
["L177", "uint64", true],
|
||||
["L179", "uint64", true],
|
||||
["L176", "uint64", true],
|
||||
["L175", "uint64", true],
|
||||
["L178", "uint64", true],
|
||||
["L180", "uint64", true],
|
||||
["L181", "uint64", true]
|
||||
],
|
||||
"bombbot": [
|
||||
["L289", "attack-info"],
|
||||
["L266", "quaternion"],
|
||||
["L260", "quaternion"]
|
||||
],
|
||||
"vortex-data": [
|
||||
["L25", "(inline-array vortex-vertex)", 1216],
|
||||
["L24", "(pointer float)", 20]
|
||||
]
|
||||
}
|
||||
|
||||
@@ -1766,7 +1766,6 @@
|
||||
"(trans drill-laser-idle drill-laser)": [[16, "vector"]],
|
||||
"(code die drill-metalhead-eggs)": [[16, "vector"]],
|
||||
"drill-falling-door-handler": [[16, "attack-info"]],
|
||||
"(method 12 city-level-info)": [[16, ["inline-array", "vector", 7]]],
|
||||
"(method 25 under-shoot-block)": [[16, "matrix"]],
|
||||
"(code victory under-block)": [[16, "matrix"]],
|
||||
"(code sink-partially under-block)": [[16, "matrix"]],
|
||||
@@ -1817,7 +1816,6 @@
|
||||
[560, "bounding-box"]
|
||||
],
|
||||
"squid-grenade-move": [[48, "matrix"]],
|
||||
"(method 12 city-level-info)": [[16, ["inline-array", "vector", 7]]],
|
||||
"(method 24 security-wall)": [[16, ["inline-array", "vector", 1]]],
|
||||
"(method 35 cty-guard-turret)": [
|
||||
[144, "vector"],
|
||||
@@ -1841,5 +1839,79 @@
|
||||
"(method 23 ctyport-mine)": [
|
||||
[32, "vector"],
|
||||
[48, "vector"]
|
||||
]
|
||||
],
|
||||
"(post idle intro-flamer)": [
|
||||
[160, "vector"],
|
||||
[176, "vector"]
|
||||
],
|
||||
"demo-plug-lightning": [[16, "vector"]],
|
||||
"(code idle demo-control)": [
|
||||
[16, ["array", "symbol", 6]],
|
||||
[48, ["array", "symbol", 6]]
|
||||
],
|
||||
"(anon-function 2 delivery-task)": [[96, ["inline-array", "vector", 1]]],
|
||||
"(post move-rift-rider stad-samos)": [
|
||||
[96, "vector"],
|
||||
[128, "vector"]
|
||||
],
|
||||
"(trans idle palent-turret)": [[32, "vector"]],
|
||||
"(post idle fort-elec-belt-inst)": [[96, "event-message-block"]],
|
||||
"(post running fort-elec-belt-inst)": [
|
||||
[1120, "collide-query"],
|
||||
[144, "vector"],
|
||||
[1680, "vector"],
|
||||
[96, "event-message-block"],
|
||||
[816, "bounding-box"],
|
||||
[848, ["inline-array", "sphere", 17]]
|
||||
],
|
||||
"(post idle cas-conveyor-switch)": [[592, "vector"]],
|
||||
"(post idle cas-electric-fence)": [[688, "vector"]],
|
||||
"(method 11 cas-switch)": [[32, "vector"]],
|
||||
"(trans roll-hostile roboguard-level)": [[80, "vector"]],
|
||||
"(code roll-hostile roboguard-level)": [[16, "vector"]],
|
||||
"(method 74 roboguard-level)": [
|
||||
[16, "vector"],
|
||||
[32, "vector"]
|
||||
],
|
||||
"(method 76 roboguard-level)": [[32, "vector"]],
|
||||
"(code spawning cas-robot-door)": [[16, "enemy-init-by-other-params"]],
|
||||
"(method 179 bombbot)": [
|
||||
[592, "vector"],
|
||||
[624, "vector"],
|
||||
[672, "vector"],
|
||||
[720, "vector"]
|
||||
],
|
||||
"(method 182 bombbot)": [
|
||||
[144, "collide-query"],
|
||||
[16, "matrix"],
|
||||
[80, "matrix"],
|
||||
[752, "quaternion"]
|
||||
],
|
||||
"(trans hostile bombbot)": [[48, "vector"]],
|
||||
"(enter explode bombbot)": [
|
||||
[112, "vector"],
|
||||
[128, "vector"],
|
||||
[144, "vector"],
|
||||
[224, "vector"],
|
||||
[240, "vector"]
|
||||
],
|
||||
"(method 183 bombbot)": [
|
||||
[48, "vector"],
|
||||
[64, "vector"],
|
||||
[144, "vector"]
|
||||
],
|
||||
"bombbot-spread-lightning-lazer": [
|
||||
[96, "vector"],
|
||||
[64, "vector"]
|
||||
],
|
||||
"bombbot-callback": [[64, "vector"]],
|
||||
"bombbot-gun-swivel-callback": [
|
||||
[16, "vector"],
|
||||
[80, "vector"]
|
||||
],
|
||||
"bombbot-gun-callback": [
|
||||
[32, "vector"],
|
||||
[80, "vector"]
|
||||
],
|
||||
"(method 181 bombbot)": [[16, ["array", "collide-shape", 64]]]
|
||||
}
|
||||
|
||||
@@ -8690,5 +8690,271 @@
|
||||
"(anon-function 0 ctypower)": [
|
||||
[19, "a0", "vector"],
|
||||
[81, "v1", "basebutton"]
|
||||
]
|
||||
],
|
||||
"(anon-function 3 oracle-training)": [[15, "v1", "float"]],
|
||||
"(anon-function 6 oracle-training)": [[15, "v1", "float"]],
|
||||
"(anon-function 10 oracle-training)": [[15, "v1", "float"]],
|
||||
"(anon-function 14 oracle-training)": [[15, "v1", "float"]],
|
||||
"(method 33 fort-elec-button)": [[31, "v1", "art-joint-anim"]],
|
||||
"(enter shutdown elec-lock-gate)": [
|
||||
[4, "v0", "state"],
|
||||
[6, "t9", "(function none)"]
|
||||
],
|
||||
"(code idle intro-flamer)": [[18, "v1", "art-joint-anim"]],
|
||||
"(method 7 metalhead-spawner)": [
|
||||
[26, "t9", "(function process int process)"]
|
||||
],
|
||||
"(event idle farm-marrow)": [[[8, 11], "a1", "attack-info"]],
|
||||
"(event idle farm-beetree)": [[[8, 11], "a1", "attack-info"]],
|
||||
"(event idle farm-cabbage)": [[[8, 11], "a1", "attack-info"]],
|
||||
"(event idle farm-small-cabbage)": [[[8, 11], "a1", "attack-info"]],
|
||||
"(event idle farm-chilirots)": [[[8, 11], "a1", "attack-info"]],
|
||||
"(code idle farm-sprinkler-barrels)": [[10, "v1", "art-joint-anim"]],
|
||||
"farm-chilirots-callback": [
|
||||
[[2, 39], "s4", "farm-chilirots"],
|
||||
[[3, 38], "s3", "int"]
|
||||
],
|
||||
"farm-small-cabbage-callback": [
|
||||
[[2, 39], "s4", "farm-small-cabbage"],
|
||||
[[3, 38], "s3", "int"]
|
||||
],
|
||||
"farm-cabbage-callback": [
|
||||
[[2, 39], "s4", "farm-cabbage"],
|
||||
[[3, 38], "s3", "int"]
|
||||
],
|
||||
"farm-beetree-callback": [
|
||||
[[2, 39], "s4", "farm-beetree"],
|
||||
[[3, 38], "s3", "int"]
|
||||
],
|
||||
"farm-marrow-callback": [
|
||||
[[2, 39], "s4", "farm-marrow"],
|
||||
[[3, 38], "s3", "int"]
|
||||
],
|
||||
"demo-plug-lightning": [[95, "v1", "demo-control"]],
|
||||
"(code idle demo-control)": [
|
||||
[[119, 123], "v1", "handle"],
|
||||
[115, "gp", "handle"],
|
||||
[[739, 743], "v1", "handle"],
|
||||
[735, "gp", "handle"],
|
||||
[[861, 865], "v1", "handle"],
|
||||
[857, "gp", "handle"]
|
||||
],
|
||||
"(post idle demo-control)": [
|
||||
[4, "v0", "process-drawable"],
|
||||
[206, "v1", "external-art-buffer"],
|
||||
[210, "v1", "external-art-buffer"],
|
||||
[[307, 310], "v1", "dma-packet"]
|
||||
],
|
||||
"pal-prong-small-collision": [[2, "v1", "collide-shape-prim-group"]],
|
||||
"(post idle krew-package)": [[[12, 53], "gp", "process-focusable"]],
|
||||
"(anon-function 6 delivery-task)": [[88, "v1", "vehicle"]],
|
||||
"(method 25 elec-lock-gate)": [["_stack_", 16, "res-tag"]],
|
||||
"birth-func-race-poster": [[27, "s4", "(array int32)"]],
|
||||
"(anon-function 1 delivery-task)": [
|
||||
[178, "v1", "process-drawable"],
|
||||
[16, "v1", "process-drawable"]
|
||||
],
|
||||
"(anon-function 2 delivery-task)": [
|
||||
[14, "gp", "process-focusable"],
|
||||
[71, "gp", "process-drawable"],
|
||||
[292, "gp", "process-drawable"],
|
||||
[187, "gp", "process-drawable"],
|
||||
[199, "gp", "process-drawable"]
|
||||
],
|
||||
"(code idle gar-curtain)": [[10, "v1", "art-joint-anim"]],
|
||||
"(method 11 gar-curtain)": [
|
||||
[112, "v1", "collide-shape-prim-group"],
|
||||
[118, "v1", "collide-shape-prim-group"]
|
||||
],
|
||||
"(event defend-stadium-land rift-rider)": [
|
||||
[8, "v1", "vector"],
|
||||
[20, "v1", "vector"]
|
||||
],
|
||||
"(post defend-stadium-land rift-rider)": [[107, "v1", "process-drawable"]],
|
||||
"(code idle stad-samos)": [[66, "v1", "art-joint-anim"]],
|
||||
"(code raise-rift-rider stad-samos)": [[42, "v1", "art-joint-anim"]],
|
||||
"(post move-rift-rider stad-samos)": [[43, "v0", "vector"]],
|
||||
"spawn-energy": [[77, "gp", "process-drawable"]],
|
||||
"stad-samos-handler": [
|
||||
[[38, 80], "s5", "attack-info"],
|
||||
[52, "a0", "process-drawable"]
|
||||
],
|
||||
"(code hit stad-samos)": [
|
||||
[20, "v1", "art-joint-anim"],
|
||||
[92, "v1", "art-joint-anim"]
|
||||
],
|
||||
"(code die stad-samos)": [
|
||||
[63, "v1", "art-joint-anim"],
|
||||
[134, "v1", "art-joint-anim"]
|
||||
],
|
||||
"(method 10 stad-samos)": [[42, "t9", "(function process-focusable none)"]],
|
||||
"(method 29 stad-force-field)": [
|
||||
[155, "v1", "process-drawable"],
|
||||
[418, "v1", "process-drawable"],
|
||||
[423, "v1", "process-drawable"],
|
||||
[190, "v1", "process-drawable"],
|
||||
[272, "v1", "process-drawable"],
|
||||
[291, "v1", "process-drawable"],
|
||||
[310, "v1", "process-drawable"],
|
||||
[328, "v1", "process-drawable"],
|
||||
[349, "v1", "process-drawable"],
|
||||
[356, "v1", "process-drawable"],
|
||||
[365, "v1", "process-drawable"],
|
||||
[385, "v1", "process-drawable"],
|
||||
[388, "v1", "process-drawable"]
|
||||
],
|
||||
"(event idle stad-force-field)": [[[9, 12], "v1", "attack-info"]],
|
||||
"(post idle stad-keira)": [[14, "v0", "vector"]],
|
||||
"(post idle stad-brutter)": [[14, "v0", "vector"]],
|
||||
"(method 10 rift-rider)": [[10, "t9", "(function rigid-body-object none)"]],
|
||||
"(method 45 rift-rider)": [
|
||||
[30, "t9", "(function rigid-body-object rigid-body-impact none)"]
|
||||
],
|
||||
"(code fall pal-falling-plat)": [
|
||||
[10, "v1", "art-joint-anim"],
|
||||
[70, "v1", "art-joint-anim"]
|
||||
],
|
||||
"(post idle fort-elec-belt-inst)": [[20, "v0", "vector"]],
|
||||
"(post running fort-elec-belt-inst)": [
|
||||
[20, "v0", "vector"],
|
||||
[263, "s2", "collide-shape-prim-sphere"]
|
||||
],
|
||||
"(method 10 fort-elec-belt-inst)": [
|
||||
[10, "t9", "(function process-drawable none)"]
|
||||
],
|
||||
"(method 11 fort-elec-belt)": [[20, "v0", "(pointer float)"]],
|
||||
"(method 10 rigid-body-queue)": [
|
||||
[[124, 134], "a0", "rigid-body-object"],
|
||||
[[49, 65], "s4", "rigid-body-object"],
|
||||
[20, "a0", "rigid-body-object"]
|
||||
],
|
||||
"(method 15 hud)": [[[125, 128], "v1", "dma-packet"]],
|
||||
"(method 10 cas-conveyor)": [[10, "t9", "(function conveyor none)"]],
|
||||
"(post idle cas-conveyor)": [
|
||||
[58, "t9", "(function none)"],
|
||||
[45, "v1", "float"]
|
||||
],
|
||||
"(event idle cas-conveyor-switch)": [[[5, 8], "v1", "attack-info"]],
|
||||
"(event up-idle cas-button)": [[[4, 13], "v1", "attack-info"]],
|
||||
"(method 33 cas-button)": [[35, "v1", "art-joint-anim"]],
|
||||
"(post waiting cas-elevator)": [[11, "t9", "(function none)"]],
|
||||
"(post running cas-elevator)": [
|
||||
[9, "t9", "(function none)"],
|
||||
[15, "v0", "sound-rpc-set-param"]
|
||||
],
|
||||
"(post arrived cas-elevator)": [[11, "t9", "(function none)"]],
|
||||
"(method 10 cas-elevator)": [[10, "t9", "(function elevator none)"]],
|
||||
"(code idle cas-rot-bridge)": [
|
||||
[40, "v1", "art-joint-anim"],
|
||||
[98, "v1", "art-joint-anim"],
|
||||
[178, "v1", "art-joint-anim"],
|
||||
[236, "v1", "art-joint-anim"],
|
||||
[310, "v1", "art-joint-anim"],
|
||||
[368, "v1", "art-joint-anim"],
|
||||
[417, "v1", "art-joint-anim"],
|
||||
[475, "v1", "art-joint-anim"]
|
||||
],
|
||||
"(event idle cas-switch)": [
|
||||
[[4, 32], "gp", "attack-info"],
|
||||
[15, "s5", "touching-shapes-entry"]
|
||||
],
|
||||
"(code idle cas-switch)": [[21, "v1", "float"]],
|
||||
"(event idle cas-trapdoor)": [[10, "gp", "attack-info"]],
|
||||
"(code drop cas-chain-plat)": [[10, "v1", "art-joint-anim"]],
|
||||
"(event idle cas-rot-blade)": [[7, "s4", "touching-shapes-entry"]],
|
||||
"(method 10 cas-rot-blade)": [[10, "t9", "(function process-drawable none)"]],
|
||||
"(code spawning cas-robot-door)": [
|
||||
[27, "v1", "art-joint-anim"],
|
||||
[417, "v1", "art-joint-anim"]
|
||||
],
|
||||
"(enter ambush roboguard-level)": [
|
||||
[4, "v0", "state"],
|
||||
[6, "t9", "(function none)"],
|
||||
[[72, 76], "a0", "process-focusable"]
|
||||
],
|
||||
"(enter idle roboguard-level)": [
|
||||
[4, "v0", "state"],
|
||||
[6, "t9", "(function none)"]
|
||||
],
|
||||
"(enter stare roboguard-level)": [
|
||||
[4, "v0", "state"],
|
||||
[6, "t9", "(function none)"]
|
||||
],
|
||||
"(code roll-enter roboguard-level)": [[10, "v1", "art-joint-anim"]],
|
||||
"(trans roll-hostile roboguard-level)": [
|
||||
[120, "gp", "process-focusable"],
|
||||
[130, "gp", "process-focusable"],
|
||||
[[157, 161], "gp", "process-focusable"]
|
||||
],
|
||||
"(code roll-to-walk roboguard-level)": [[10, "v1", "art-joint-anim"]],
|
||||
"(code idle-dizzy roboguard-level)": [[14, "v1", "art-joint-anim"]],
|
||||
"(enter die roboguard-level)": [
|
||||
[4, "v0", "state"],
|
||||
[6, "t9", "(function none)"]
|
||||
],
|
||||
"(method 185 roboguard-level)": [
|
||||
[[5, 28], "v1", "collide-shape-prim-group"],
|
||||
[[42, 65], "v1", "collide-shape-prim-group"],
|
||||
[[81, 108], "v1", "collide-shape-prim-group"]
|
||||
],
|
||||
"(method 77 roboguard-level)": [
|
||||
[30, "v1", "art-joint-anim"],
|
||||
[58, "v1", "art-joint-anim"]
|
||||
],
|
||||
"(method 78 roboguard-level)": [
|
||||
[24, "a2", "art-joint-anim"],
|
||||
[53, "a2", "art-joint-anim"]
|
||||
],
|
||||
"(method 74 roboguard-level)": [[[10, 13], "v1", "attack-info"]],
|
||||
"(method 76 roboguard-level)": [
|
||||
[42, "s1", "process-drawable"],
|
||||
[58, "s1", "process-drawable"]
|
||||
],
|
||||
"(method 10 roboguard-level)": [[10, "t9", "(function nav-enemy none)"]],
|
||||
"(method 7 roboguard-level)": [
|
||||
[9, "t9", "(function nav-enemy int nav-enemy)"]
|
||||
],
|
||||
"(code castle-wait-end cas-robot-door)": [[32, "v1", "art-joint-anim"]],
|
||||
"(method 11 cas-robot-door)": [
|
||||
["_stack_", 16, "res-tag"],
|
||||
["_stack_", 32, "res-tag"],
|
||||
[105, "v0", "(pointer int32)"]
|
||||
],
|
||||
"(method 181 bombbot)": [
|
||||
[26, "a0", "collide-shape"],
|
||||
[68, "s1", "process-focusable"],
|
||||
[110, "gp", "process-focusable"]
|
||||
],
|
||||
"(method 182 bombbot)": [
|
||||
[137, "v1", "collide-shape-prim"],
|
||||
[177, "v1", "lightning-tracker"],
|
||||
[192, "a0", "lightning-tracker"],
|
||||
[197, "v1", "lightning-tracker"],
|
||||
[204, "v1", "lightning-tracker"],
|
||||
[209, "a0", "lightning-tracker"],
|
||||
[216, "a0", "lightning-tracker"],
|
||||
[223, "a1", "lightning-tracker"],
|
||||
[263, "s2", "process-focusable"],
|
||||
[229, "v1", "collide-shape-prim"],
|
||||
[233, "v1", "collide-shape-prim"],
|
||||
[252, "v1", "collide-shape-prim"],
|
||||
[185, "v1", "lightning-tracker"],
|
||||
[213, "v1", "lightning-tracker"]
|
||||
],
|
||||
"(code hostile bombbot)": [[11, "v1", "art-joint-anim"]],
|
||||
"(code die bombbot)": [[11, "v1", "art-joint-anim"]],
|
||||
"(method 7 bombbot)": [[31, "t9", "(function nav-enemy int nav-enemy)"]],
|
||||
"(anon-function 8 bombbot)": [[17, "s2", "bombbot"]],
|
||||
"(anon-function 1 bombbot)": [[15, "s4", "bombbot"]],
|
||||
"bombbot-callback": [[[2, 190], "s4", "bombbot"]],
|
||||
"bombbot-head-callback": [[[2, 49], "s4", "bombbot"]],
|
||||
"bombbot-gun-swivel-callback": [[[4, 87], "s3", "bombbot"]],
|
||||
"bombbot-gun-callback": [[[6, 76], "s4", "bombbot"]],
|
||||
"(method 179 bombbot)": [
|
||||
["_stack_", 896, "float"],
|
||||
["_stack_", 912, "float"]
|
||||
],
|
||||
"(method 11 cas-switch)": [["_stack_", 16, "res-tag"]],
|
||||
"(method 11 cas-conveyor)": [["_stack_", 16, "res-tag"]],
|
||||
"(method 11 cas-conveyor-switch)": [["_stack_", 16, "res-tag"]]
|
||||
}
|
||||
|
||||
@@ -383,7 +383,18 @@ goos::Object decomp_ref_to_integer_array_guess_size(
|
||||
// the input is the location of the data field.
|
||||
// we expect that to be a label:
|
||||
ASSERT((field_location % 4) == 0);
|
||||
auto pointer_to_data = words.at(field_location / 4);
|
||||
auto& pointer_to_data = words.at(field_location / 4);
|
||||
|
||||
// pointer-arrays can also be initialized as #f
|
||||
if (pointer_to_data.kind() == LinkedWord::SYM_PTR) {
|
||||
ASSERT_MSG(
|
||||
pointer_to_data.symbol_name() == "#f",
|
||||
fmt::format(
|
||||
"attempted to decompile a pointer array of '{}', but encounted a non `#f` symbol",
|
||||
array_elt_type.base_type()));
|
||||
return pretty_print::to_symbol("#f");
|
||||
}
|
||||
|
||||
ASSERT(pointer_to_data.kind() == LinkedWord::PTR);
|
||||
|
||||
// the data shouldn't have any labels in the middle of it, so we can find the end of the array
|
||||
@@ -467,7 +478,7 @@ goos::Object decomp_ref_to_inline_array_guess_size(
|
||||
// the input is the location of the data field.
|
||||
// we expect that to be a label:
|
||||
ASSERT((field_location % 4) == 0);
|
||||
auto pointer_to_data = words.at(field_location / 4);
|
||||
auto& pointer_to_data = words.at(field_location / 4);
|
||||
|
||||
// inline-arrays can also be initialized as #f
|
||||
if (pointer_to_data.kind() == LinkedWord::SYM_PTR) {
|
||||
@@ -740,6 +751,7 @@ const std::unordered_map<
|
||||
{{"color-option-array", ArrayFieldDecompMeta(TypeSpec("vector"), 16)},
|
||||
{"grab-rail-array", ArrayFieldDecompMeta(TypeSpec("vehicle-grab-rail-info"), 48)}}},
|
||||
{"city-ambush-info", {{"array", ArrayFieldDecompMeta(TypeSpec("city-ambush-spot"), 32)}}},
|
||||
{"bombbot-path", {{"node", ArrayFieldDecompMeta(TypeSpec("bombbot-node"), 32)}}},
|
||||
{"fort-robotank-segment",
|
||||
{{"event-tbl", ArrayFieldDecompMeta(TypeSpec("fort-robotank-segment-event"), 32)}}},
|
||||
{"race-info",
|
||||
|
||||
@@ -247,6 +247,9 @@ void OpenGLRenderer::init_bucket_renderers_jak2() {
|
||||
init_bucket_renderer<TextureUploadHandler>("tex-l4-pris2", BucketCategory::TEX,
|
||||
BucketId::TEX_L4_PRIS2);
|
||||
init_bucket_renderer<Merc2>("merc-l4-pris2", BucketCategory::MERC, BucketId::MERC_L4_PRIS2);
|
||||
init_bucket_renderer<TextureUploadHandler>("tex-l5-pris2", BucketCategory::TEX,
|
||||
BucketId::TEX_L5_PRIS2);
|
||||
init_bucket_renderer<Merc2>("merc-l5-pris2", BucketCategory::MERC, BucketId::MERC_L5_PRIS2);
|
||||
// 250
|
||||
init_bucket_renderer<TextureUploadHandler>("tex-l0-water", BucketCategory::TEX,
|
||||
BucketId::TEX_L0_WATER);
|
||||
|
||||
@@ -164,6 +164,8 @@ enum class BucketId {
|
||||
MERC_L3_PRIS2 = 237,
|
||||
TEX_L4_PRIS2 = 240,
|
||||
MERC_L4_PRIS2 = 241,
|
||||
TEX_L5_PRIS2 = 244,
|
||||
MERC_L5_PRIS2 = 245,
|
||||
TEX_L0_WATER = 252,
|
||||
MERC_L0_WATER = 253,
|
||||
TFRAG_W_L0_WATER = 255,
|
||||
|
||||
@@ -353,7 +353,7 @@
|
||||
(go-hostile (_type_) none 70)
|
||||
(go-flee (_type_) none 71)
|
||||
(react-to-focus (_type_) none 72)
|
||||
(kill-prefer-falling (_type_) none 73)
|
||||
(kill-prefer-falling (_type_) object 73)
|
||||
(general-event-handler (_type_ process int symbol event-message-block) object 74)
|
||||
(enemy-method-75 (_type_ process touching-shapes-entry) none 75)
|
||||
(enemy-method-76 (_type_ process event-message-block) symbol 76)
|
||||
|
||||
@@ -567,14 +567,12 @@
|
||||
(none)
|
||||
)
|
||||
|
||||
;; WARN: Return type mismatch object vs none.
|
||||
(defmethod kill-prefer-falling enemy ((obj enemy))
|
||||
"If available in `enemy-info`, [[go]] to the [[die-falling]] state, if not, [[die]]"
|
||||
(if (-> obj enemy-info use-die-falling)
|
||||
(go (method-of-object obj die-falling))
|
||||
(go (method-of-object obj die))
|
||||
)
|
||||
(none)
|
||||
)
|
||||
|
||||
(defmethod enemy-method-135 enemy ((obj enemy) (arg0 int))
|
||||
@@ -1145,7 +1143,7 @@
|
||||
)
|
||||
(set! (-> obj penetrated-flinch) (-> arg0 penetrate-flinch))
|
||||
(set! (-> obj penetrated-knocked) (-> arg0 penetrate-knocked))
|
||||
(set! (-> obj reaction-time) (get-rand-int-range obj 30 180))
|
||||
(set! (-> obj reaction-time) (the-as time-frame (get-rand-int-range obj 30 180)))
|
||||
(let* ((v1-79 (-> obj enemy-flags))
|
||||
(a0-28 (-> obj fact-info-override enemy-options))
|
||||
(v1-80 (logior (enemy-flag
|
||||
@@ -1624,9 +1622,11 @@ This commonly includes things such as:
|
||||
;; WARN: rewrite_to_get_var got a none typed variable. Is there unreachable code? [OP: 17]
|
||||
;; WARN: rewrite_to_get_var got a none typed variable. Is there unreachable code? [OP: 28]
|
||||
;; WARN: rewrite_to_get_var got a none typed variable. Is there unreachable code? [OP: 89]
|
||||
;; WARN: rewrite_to_get_var got a none typed variable. Is there unreachable code? [OP: 105]
|
||||
;; WARN: rewrite_to_get_var got a none typed variable. Is there unreachable code? [OP: 202]
|
||||
;; WARN: rewrite_to_get_var got a none typed variable. Is there unreachable code? [OP: 274]
|
||||
;; WARN: rewrite_to_get_var got a none typed variable. Is there unreachable code? [OP: 346]
|
||||
;; WARN: rewrite_to_get_var got a none typed variable. Is there unreachable code? [OP: 407]
|
||||
;; WARN: rewrite_to_get_var got a none typed variable. Is there unreachable code? [OP: 413]
|
||||
;; WARN: rewrite_to_get_var got a none typed variable. Is there unreachable code? [OP: 490]
|
||||
;; WARN: rewrite_to_get_var got a none typed variable. Is there unreachable code? [OP: 493]
|
||||
@@ -1634,6 +1634,7 @@ This commonly includes things such as:
|
||||
;; WARN: rewrite_to_get_var got a none typed variable. Is there unreachable code? [OP: 560]
|
||||
;; WARN: rewrite_to_get_var got a none typed variable. Is there unreachable code? [OP: 610]
|
||||
;; WARN: rewrite_to_get_var got a none typed variable. Is there unreachable code? [OP: 641]
|
||||
;; WARN: rewrite_to_get_var got a none typed variable. Is there unreachable code? [OP: 720]
|
||||
;; WARN: rewrite_to_get_var got a none typed variable. Is there unreachable code? [OP: 774]
|
||||
;; WARN: rewrite_to_get_var got a none typed variable. Is there unreachable code? [OP: 807]
|
||||
;; WARN: rewrite_to_get_var got a none typed variable. Is there unreachable code? [OP: 814]
|
||||
|
||||
@@ -60,14 +60,14 @@
|
||||
(set! (-> skeleton heap-base) (the-as uint 80))
|
||||
|
||||
(deftype cspace (structure)
|
||||
((parent cspace :offset-assert 0)
|
||||
(joint joint :offset-assert 4)
|
||||
(joint-num int16 :offset-assert 8)
|
||||
(geo drawable :offset-assert 12)
|
||||
(bone bone :offset-assert 16)
|
||||
((parent cspace :offset-assert 0)
|
||||
(joint joint :offset-assert 4)
|
||||
(joint-num int16 :offset-assert 8)
|
||||
(geo drawable :offset-assert 12)
|
||||
(bone bone :offset-assert 16)
|
||||
(param0 (function cspace transformq none) :offset-assert 20)
|
||||
(param1 basic :offset-assert 24)
|
||||
(param2 basic :offset-assert 28)
|
||||
(param1 basic :offset-assert 24)
|
||||
(param2 basic :offset-assert 28)
|
||||
)
|
||||
:method-count-assert 10
|
||||
:size-assert #x20
|
||||
|
||||
@@ -191,7 +191,7 @@
|
||||
(set! (-> mysql-nav-visnode-array heap-base) (the-as uint 32))
|
||||
|
||||
(deftype mysql-nav-graph-level-info (structure)
|
||||
((level basic :offset-assert 0)
|
||||
((level string :offset-assert 0)
|
||||
(level-id uint32 :offset-assert 4)
|
||||
(node-count int32 :offset-assert 8)
|
||||
(branch-count int32 :offset-assert 12)
|
||||
@@ -1129,7 +1129,72 @@ returns `-1` if none is found"
|
||||
(none)
|
||||
)
|
||||
|
||||
;; ERROR: function was not converted to expressions. Cannot decompile.
|
||||
(defmethod lookup-level-info2 mysql-nav-graph ((obj mysql-nav-graph) (arg0 mysql-nav-node) (arg1 symbol))
|
||||
"TODO - this was originally called `lookup-level-info` but it clashes with the function defined in `level`"
|
||||
(let ((s5-0 (the-as mysql-nav-graph-level-info #f)))
|
||||
(b! (>= (-> obj level-info-last-lookup) (-> obj level-info-array-length)) cfg-3 :delay #f)
|
||||
(let ((v1-5 (-> obj level-info-array (-> obj level-info-last-lookup))))
|
||||
(let ((a0-2 (-> v1-5 level)))
|
||||
(b! (!= (-> arg0 level_name) a0-2) cfg-3 :delay (empty-form))
|
||||
)
|
||||
(set! s5-0 v1-5)
|
||||
)
|
||||
(b! #t cfg-18 :delay (nop!))
|
||||
(label cfg-3)
|
||||
(let ((v1-6 0))
|
||||
(b! #t cfg-9 :delay (nop!))
|
||||
(label cfg-4)
|
||||
(let ((a0-6 (-> obj level-info-array v1-6)))
|
||||
(let ((a3-1 (-> a0-6 level)))
|
||||
(b! (!= (-> arg0 level_name) a3-1) cfg-8 :delay (empty-form))
|
||||
)
|
||||
(if arg1
|
||||
(set! (-> obj level-info-last-lookup) v1-6)
|
||||
)
|
||||
(set! s5-0 a0-6)
|
||||
)
|
||||
(b! #t cfg-18 :delay (nop!))
|
||||
(label cfg-8)
|
||||
(+! v1-6 1)
|
||||
(label cfg-9)
|
||||
(b! (< v1-6 (-> obj level-info-array-length)) cfg-4)
|
||||
)
|
||||
(let ((v1-9 (-> obj level-info-array-length)))
|
||||
(cond
|
||||
((< v1-9 32)
|
||||
(if arg1
|
||||
(set! (-> obj level-info-last-lookup) v1-9)
|
||||
)
|
||||
(set! s5-0 (-> obj level-info-array v1-9))
|
||||
(set! (-> s5-0 level) (the-as string (-> arg0 level_name)))
|
||||
(set! (-> s5-0 node-count) 0)
|
||||
(+! (-> obj level-info-array-length) 1)
|
||||
)
|
||||
(else
|
||||
(format
|
||||
0
|
||||
"mysql-nav-graph::lookup-level-info: Error, too many unique level names in nav-graph. May need to increase the max (currently ~d)~%"
|
||||
32
|
||||
)
|
||||
(let ((s4-0 0))
|
||||
(b! #t cfg-16 :delay (nop!))
|
||||
(label cfg-15)
|
||||
(let ((v1-17 (-> obj level-info-array s4-0)))
|
||||
(format 0 "~d ~s~%" s4-0 (-> v1-17 level))
|
||||
)
|
||||
(+! s4-0 1)
|
||||
(label cfg-16)
|
||||
(b! (< s4-0 (-> obj level-info-array-length)) cfg-15)
|
||||
)
|
||||
(break!)
|
||||
0
|
||||
)
|
||||
)
|
||||
)
|
||||
(label cfg-18)
|
||||
s5-0
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
(defmethod mysql-nav-graph-method-20 mysql-nav-graph ((obj mysql-nav-graph))
|
||||
|
||||
@@ -56,7 +56,7 @@
|
||||
((num-layers uint32 :offset-assert 0)
|
||||
(func symbol :offset-assert 4)
|
||||
(func-id basic :offset 4)
|
||||
(init-func basic :offset-assert 8)
|
||||
(init-func symbol :offset-assert 8)
|
||||
(init-func-id basic :offset 8)
|
||||
(tex texture :offset-assert 12)
|
||||
(tex-name string :offset-assert 16)
|
||||
|
||||
@@ -158,7 +158,7 @@
|
||||
(info rigid-body-info :offset-assert 4)
|
||||
(flags rigid-body-flag :offset-assert 8)
|
||||
(force-callback (function object float none) :offset-assert 12)
|
||||
(blocked-by basic :offset-assert 16)
|
||||
(blocked-by rigid-body-object :offset-assert 16)
|
||||
(time-remaining float :offset-assert 20)
|
||||
(step-count int16 :offset-assert 24)
|
||||
(position vector :inline :offset-assert 32)
|
||||
@@ -205,26 +205,8 @@
|
||||
|
||||
|
||||
(deftype rigid-body-control (basic)
|
||||
((process process :offset-assert 4)
|
||||
(state rigid-body :inline :offset-assert 16)
|
||||
(work basic :offset 16)
|
||||
(info rigid-body-info :offset 20)
|
||||
(flags rigid-body-flag :offset 24)
|
||||
(force-callback basic :offset 28)
|
||||
(blocked-by basic :offset 32)
|
||||
(time-remaining float :offset 36)
|
||||
(step-count int16 :offset 40)
|
||||
(position vector :inline :offset 48)
|
||||
(rot vector :inline :offset 64)
|
||||
(rotation quaternion :inline :offset 64)
|
||||
(lin-momentum vector :inline :offset 80)
|
||||
(ang-momentum vector :inline :offset 96)
|
||||
(force vector :inline :offset 112)
|
||||
(torque vector :inline :offset 128)
|
||||
(lin-velocity vector :inline :offset 144)
|
||||
(ang-velocity vector :inline :offset 160)
|
||||
(matrix matrix :inline :offset 176)
|
||||
(inv-i-world matrix :inline :offset 240)
|
||||
((process process :offset-assert 4)
|
||||
(state rigid-body :inline :offset-assert 16)
|
||||
)
|
||||
:method-count-assert 26
|
||||
:size-assert #x130
|
||||
@@ -383,7 +365,7 @@
|
||||
|
||||
(deftype rigid-body-queue (structure)
|
||||
((count int8 :offset-assert 0)
|
||||
(array uint64 128 :offset 8)
|
||||
(array handle 128 :offset 8)
|
||||
)
|
||||
:method-count-assert 17
|
||||
:size-assert #x408
|
||||
@@ -391,11 +373,11 @@
|
||||
(:methods
|
||||
(rigid-body-queue-method-9 (_type_) none 9)
|
||||
(rigid-body-queue-method-10 (_type_) none 10)
|
||||
(rigid-body-queue-method-11 (_type_) none 11)
|
||||
(rigid-body-queue-method-11 (_type_ rigid-body-object) none 11)
|
||||
(rigid-body-queue-method-12 (_type_ int int) none 12)
|
||||
(rigid-body-queue-method-13 (_type_) none 13)
|
||||
(rigid-body-queue-method-13 (_type_ int rigid-body-object) none 13)
|
||||
(rigid-body-queue-method-14 (_type_ int) none 14)
|
||||
(rigid-body-queue-method-15 (_type_) none 15)
|
||||
(rigid-body-queue-method-15 (_type_ rigid-body-object) none 15)
|
||||
(validate (_type_) symbol 16)
|
||||
)
|
||||
)
|
||||
|
||||
@@ -7,3 +7,288 @@
|
||||
|
||||
;; DECOMP BEGINS
|
||||
|
||||
(defmethod rigid-body-queue-method-9 rigid-body-queue ((obj rigid-body-queue))
|
||||
(set! (-> obj count) 0)
|
||||
(dotimes (v1-0 128)
|
||||
(set! (-> obj array v1-0) (the-as handle #f))
|
||||
)
|
||||
0
|
||||
(none)
|
||||
)
|
||||
|
||||
(defmethod validate rigid-body-queue ((obj rigid-body-queue))
|
||||
(let ((gp-0 0))
|
||||
(dotimes (v1-0 (-> obj count))
|
||||
(let ((a1-2 (-> obj array v1-0))
|
||||
(a2-0 (+ v1-0 1))
|
||||
)
|
||||
(while (< a2-0 (-> obj count))
|
||||
(if (= a1-2 (-> obj array a2-0))
|
||||
(+! gp-0 1)
|
||||
)
|
||||
(+! a2-0 1)
|
||||
)
|
||||
)
|
||||
)
|
||||
(if (> gp-0 0)
|
||||
(format 0 "rigid-body-queue::validate: duplicate count ~d~%" gp-0)
|
||||
)
|
||||
(zero? gp-0)
|
||||
)
|
||||
)
|
||||
|
||||
(defmethod rigid-body-queue-method-10 rigid-body-queue ((obj rigid-body-queue))
|
||||
(local-vars (s4-0 process))
|
||||
(with-pp
|
||||
(let ((f0-0 (-> pp clock seconds-per-frame))
|
||||
(v1-1 (-> obj count))
|
||||
)
|
||||
(b! #t cfg-9 :delay (nop!))
|
||||
(label cfg-1)
|
||||
(+! v1-1 -1)
|
||||
(let ((a0-4 (handle->process (-> obj array v1-1))))
|
||||
(cond
|
||||
(a0-4
|
||||
(let ((a0-6 (-> (the-as rigid-body-object a0-4) rbody)))
|
||||
(set! (-> a0-6 state time-remaining) f0-0)
|
||||
(set! (-> a0-6 state blocked-by) #f)
|
||||
(set! (-> a0-6 state step-count) 0)
|
||||
(logclear! (-> a0-6 state flags) (rigid-body-flag blocker))
|
||||
)
|
||||
)
|
||||
(else
|
||||
)
|
||||
)
|
||||
)
|
||||
(label cfg-9)
|
||||
(b! (nonzero? v1-1) cfg-1 :delay (nop!))
|
||||
)
|
||||
(let ((s5-0 0))
|
||||
(b! #t cfg-35 :delay (nop!))
|
||||
(until (= (-> obj array s5-0) (process->handle s4-0))
|
||||
(label cfg-11)
|
||||
(set! s4-0 (handle->process (-> obj array s5-0)))
|
||||
(b! (not s4-0) cfg-34 :delay (empty-form))
|
||||
(let ((s3-0 (-> (the-as rigid-body-object s4-0) rbody)))
|
||||
(b!
|
||||
(not (and (logtest? (-> s3-0 state flags) (rigid-body-flag enable-physics))
|
||||
(and (< 0.001 (-> s3-0 state time-remaining)) (< (-> s3-0 state step-count) 4))
|
||||
)
|
||||
)
|
||||
cfg-34
|
||||
:delay (empty-form)
|
||||
)
|
||||
(rigid-body-object-method-51 (the-as rigid-body-object s4-0))
|
||||
(+! (-> s3-0 state step-count) 1)
|
||||
(let ((a2-2 (-> s3-0 state blocked-by)))
|
||||
(b! (not a2-2) cfg-34 :delay (empty-form))
|
||||
(b! (not #t) cfg-34 :delay (empty-form))
|
||||
(logior! (-> a2-2 rbody state flags) (rigid-body-flag blocker))
|
||||
(rigid-body-queue-method-13 obj s5-0 a2-2)
|
||||
)
|
||||
)
|
||||
)
|
||||
(label cfg-34)
|
||||
(+! s5-0 1)
|
||||
(label cfg-35)
|
||||
(b! (< s5-0 (-> obj count)) cfg-11)
|
||||
)
|
||||
(let ((s5-1 0))
|
||||
(b! #t cfg-48 :delay (nop!))
|
||||
(label cfg-37)
|
||||
(let ((a0-20 (handle->process (-> obj array s5-1))))
|
||||
(when (and a0-20
|
||||
(logtest? (-> (the-as rigid-body-object a0-20) rbody state flags) (rigid-body-flag enable-physics))
|
||||
)
|
||||
(let ((s4-1 pp))
|
||||
(set! pp (the-as rigid-body-object a0-20))
|
||||
(rigid-body-object-method-52 (the-as rigid-body-object a0-20))
|
||||
(set! pp s4-1)
|
||||
)
|
||||
)
|
||||
)
|
||||
(+! s5-1 1)
|
||||
(label cfg-48)
|
||||
(b! (< s5-1 (-> obj count)) cfg-37)
|
||||
)
|
||||
0
|
||||
(none)
|
||||
)
|
||||
)
|
||||
|
||||
(defmethod rigid-body-queue-method-11 rigid-body-queue ((obj rigid-body-queue) (arg0 rigid-body-object))
|
||||
(let ((v1-0 -1))
|
||||
(let ((a2-0 0))
|
||||
(b! #t cfg-9 :delay (nop!))
|
||||
(label cfg-1)
|
||||
(b! (handle->process (-> obj array a2-0)) cfg-8 :delay (empty-form))
|
||||
(set! v1-0 a2-0)
|
||||
(b! #t cfg-11 :delay (nop!))
|
||||
(label cfg-8)
|
||||
(+! a2-0 1)
|
||||
(label cfg-9)
|
||||
(b! (< a2-0 (-> obj count)) cfg-1)
|
||||
)
|
||||
(label cfg-11)
|
||||
(b! (= v1-0 -1) cfg-18 :delay (nop!))
|
||||
(set! (-> obj array v1-0) (process->handle arg0))
|
||||
)
|
||||
(b! #t cfg-25 :delay (nop!))
|
||||
(label cfg-18)
|
||||
(b! (>= (-> obj count) 128) cfg-25 :delay #f)
|
||||
(set! (-> obj array (-> obj count)) (process->handle arg0))
|
||||
(+! (-> obj count) 1)
|
||||
(label cfg-25)
|
||||
0
|
||||
0
|
||||
(none)
|
||||
)
|
||||
|
||||
(defmethod rigid-body-queue-method-12 rigid-body-queue ((obj rigid-body-queue) (arg0 int) (arg1 int))
|
||||
(when (< arg0 arg1)
|
||||
(let ((v1-1 arg1)
|
||||
(a3-0 (+ arg1 -1))
|
||||
(a2-3 (-> obj array arg1))
|
||||
)
|
||||
(while (>= a3-0 arg0)
|
||||
(set! (-> obj array v1-1) (-> obj array a3-0))
|
||||
(+! a3-0 -1)
|
||||
(+! v1-1 -1)
|
||||
)
|
||||
(set! (-> obj array arg0) a2-3)
|
||||
)
|
||||
)
|
||||
0
|
||||
(none)
|
||||
)
|
||||
|
||||
(defmethod rigid-body-queue-method-13 rigid-body-queue ((obj rigid-body-queue) (arg0 int) (arg1 rigid-body-object))
|
||||
(let ((v1-2 (process->handle arg1))
|
||||
(a2-4 (+ arg0 1))
|
||||
)
|
||||
(b! #t cfg-9 :delay (nop!))
|
||||
(label cfg-6)
|
||||
(b! (!= (-> obj array a2-4) v1-2) cfg-8 :delay (empty-form))
|
||||
(rigid-body-queue-method-12 obj arg0 a2-4)
|
||||
(b! #t cfg-11 :delay (nop!))
|
||||
(label cfg-8)
|
||||
(+! a2-4 1)
|
||||
(label cfg-9)
|
||||
(b! (< a2-4 (-> obj count)) cfg-6)
|
||||
)
|
||||
(label cfg-11)
|
||||
0
|
||||
0
|
||||
(none)
|
||||
)
|
||||
|
||||
(defmethod rigid-body-queue-method-14 rigid-body-queue ((obj rigid-body-queue) (arg0 int))
|
||||
(let ((v1-0 arg0)
|
||||
(a1-1 (+ arg0 1))
|
||||
)
|
||||
(while (< a1-1 (-> obj count))
|
||||
(set! (-> obj array v1-0) (-> obj array a1-1))
|
||||
(+! a1-1 1)
|
||||
(+! v1-0 1)
|
||||
)
|
||||
)
|
||||
(+! (-> obj count) -1)
|
||||
0
|
||||
(none)
|
||||
)
|
||||
|
||||
(defmethod rigid-body-queue-method-15 rigid-body-queue ((obj rigid-body-queue) (arg0 rigid-body-object))
|
||||
(let ((v1-2 (process->handle arg0))
|
||||
(a1-4 0)
|
||||
)
|
||||
(b! #t cfg-9 :delay (nop!))
|
||||
(label cfg-6)
|
||||
(b! (!= (-> obj array a1-4) v1-2) cfg-8 :delay (empty-form))
|
||||
(rigid-body-queue-method-14 obj a1-4)
|
||||
(b! #t cfg-11 :delay (nop!))
|
||||
(label cfg-8)
|
||||
(+! a1-4 1)
|
||||
(label cfg-9)
|
||||
(b! (< a1-4 (-> obj count)) cfg-6)
|
||||
)
|
||||
(label cfg-11)
|
||||
0
|
||||
0
|
||||
(none)
|
||||
)
|
||||
|
||||
(deftype rigid-body-queue-manager (process)
|
||||
((queue rigid-body-queue :offset-assert 128)
|
||||
)
|
||||
:heap-base #x10
|
||||
:method-count-assert 15
|
||||
:size-assert #x84
|
||||
:flag-assert #xf00100084
|
||||
(:methods
|
||||
(idle () _type_ :state 14)
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
(defstate idle (rigid-body-queue-manager)
|
||||
:virtual #t
|
||||
:exit (behavior ()
|
||||
(set! (-> self queue count) 0)
|
||||
0
|
||||
(none)
|
||||
)
|
||||
:code (the-as (function none :behavior rigid-body-queue-manager) sleep-code)
|
||||
:post (behavior ()
|
||||
(local-vars (a0-3 int) (a0-5 int))
|
||||
(let* ((v1-1 (-> *perf-stats* data 17))
|
||||
(a0-0 (-> v1-1 ctrl))
|
||||
)
|
||||
(+! (-> v1-1 count) 1)
|
||||
(b! (zero? a0-0) cfg-2 :delay (nop!))
|
||||
(.mtc0 Perf 0)
|
||||
(.sync.l)
|
||||
(.sync.p)
|
||||
(.mtpc pcr0 0)
|
||||
(.mtpc pcr1 0)
|
||||
(.sync.l)
|
||||
(.sync.p)
|
||||
(.mtc0 Perf a0-0)
|
||||
)
|
||||
(.sync.l)
|
||||
(.sync.p)
|
||||
(label cfg-2)
|
||||
0
|
||||
(rigid-body-queue-method-10 (-> self queue))
|
||||
(let ((v1-6 (-> *perf-stats* data 17)))
|
||||
(b! (zero? (-> v1-6 ctrl)) cfg-4 :delay (nop!))
|
||||
(.mtc0 Perf 0)
|
||||
(.sync.l)
|
||||
(.sync.p)
|
||||
(.mfpc a0-3 pcr0)
|
||||
(+! (-> v1-6 accum0) a0-3)
|
||||
(.mfpc a0-5 pcr1)
|
||||
(+! (-> v1-6 accum1) a0-5)
|
||||
)
|
||||
(label cfg-4)
|
||||
0
|
||||
(none)
|
||||
)
|
||||
)
|
||||
|
||||
(defbehavior rigid-body-queue-manager-init-by-other rigid-body-queue-manager ((arg0 rigid-body-queue))
|
||||
(stack-size-set! (-> self main-thread) 128)
|
||||
(set! (-> self queue) arg0)
|
||||
(rigid-body-queue-method-9 (-> self queue))
|
||||
(go-virtual idle)
|
||||
)
|
||||
|
||||
(defun rigid-body-queue-manager-spawn ((arg0 rigid-body-queue) (arg1 process-tree))
|
||||
(let ((gp-0 (the-as process #f)))
|
||||
(let ((v1-1 (process-spawn rigid-body-queue-manager arg0 :to arg1)))
|
||||
(if v1-1
|
||||
(set! gp-0 (-> v1-1 0))
|
||||
)
|
||||
)
|
||||
gp-0
|
||||
)
|
||||
)
|
||||
|
||||
@@ -539,10 +539,11 @@
|
||||
(vector-rotate*! (-> s5-0 vec-7) (-> s5-0 vec-7) (-> s3-0 inv-i-world))
|
||||
(vector-cross! (-> s5-0 vec-7) (-> s5-0 vec-7) (-> s5-0 vec-6))
|
||||
(+! (-> s5-0 float-3) (+ (-> s3-0 info inv-mass) (vector-dot (-> s5-0 vec-5) (-> s5-0 vec-7))))
|
||||
(set! f30-1 (fmax
|
||||
(fmax f30-1 (-> s3-0 info bounce-factor))
|
||||
(* (-> arg0 info bounce-mult-factor) (-> s3-0 info bounce-mult-factor))
|
||||
)
|
||||
(set! f30-1
|
||||
(fmax
|
||||
(fmax f30-1 (-> s3-0 info bounce-factor))
|
||||
(* (-> arg0 info bounce-mult-factor) (-> s3-0 info bounce-mult-factor))
|
||||
)
|
||||
)
|
||||
)
|
||||
(else
|
||||
@@ -557,12 +558,14 @@
|
||||
)
|
||||
(vector+float*! (-> s5-0 vec-9) (-> s5-0 vec-3) (-> s5-0 vec-5) (- (-> s5-0 float-2)))
|
||||
(vector-normalize! (-> s5-0 vec-9) 1.0)
|
||||
(let ((f0-31 (* -1.0 (fmin
|
||||
(* (vector-dot (-> s5-0 vec-9) (-> s5-0 vec-3)) f30-2)
|
||||
(* (-> arg0 info friction-factor) (-> s5-0 float-4))
|
||||
)
|
||||
)
|
||||
(let ((f0-31
|
||||
(* -1.0
|
||||
(fmin
|
||||
(* (vector-dot (-> s5-0 vec-9) (-> s5-0 vec-3)) f30-2)
|
||||
(* (-> arg0 info friction-factor) (-> s5-0 float-4))
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(vector+float*! (-> s5-0 vec-8) (-> s5-0 vec-8) (-> s5-0 vec-9) f0-31)
|
||||
)
|
||||
@@ -607,7 +610,9 @@
|
||||
(b! #t cfg-42 :delay (nop!))
|
||||
(label cfg-39)
|
||||
(b! (not s3-0) cfg-41 :delay (empty-form))
|
||||
(set! (-> arg0 blocked-by) (-> (the-as collide-shape-prim-mesh (-> s5-0 cquery num-spheres)) cshape process))
|
||||
(set! (-> arg0 blocked-by)
|
||||
(the-as rigid-body-object (-> (the-as collide-shape-prim-mesh (-> s5-0 cquery num-spheres)) cshape process))
|
||||
)
|
||||
0
|
||||
(label cfg-41)
|
||||
(vector+float*! (-> arg0 position) (-> arg0 position) (-> s5-0 vec-5) 40.96)
|
||||
|
||||
@@ -372,6 +372,10 @@
|
||||
(text-x24d #x024d)
|
||||
(text-x24e #x024e)
|
||||
(text-x24f #x024f)
|
||||
(oracle-tutorial-dark-bomb #x0273)
|
||||
(oracle-tutorial-dark-blast #x0274)
|
||||
(oracle-tutorial-dark-invincible #x0275)
|
||||
(oracle-tutorial-dark-giant #x0276)
|
||||
(text-x277 #x0277)
|
||||
(text-x278 #x0278)
|
||||
(text-x27a #x027a)
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -222,7 +222,7 @@
|
||||
(node-at-idx (_type_ int) nav-node 41)
|
||||
(nav-graph-method-42 (_type_) none 42)
|
||||
(nav-graph-method-43 (_type_ nav-graph-link string) none 43)
|
||||
(from-editor () none 44)
|
||||
(from-editor (_type_ nav-node symbol) none 44)
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
@@ -1482,11 +1482,13 @@
|
||||
(if (zero? (-> obj draw light-index))
|
||||
(set! (-> obj draw light-index) (the-as uint 10))
|
||||
)
|
||||
(rigid-body-queue-method-11 (if (logtest? (-> obj info-override flags) 1024)
|
||||
*race-rigid-body-queue*
|
||||
*traffic-rigid-body-queue*
|
||||
)
|
||||
)
|
||||
(rigid-body-queue-method-11
|
||||
(if (logtest? (-> obj info-override flags) 1024)
|
||||
*race-rigid-body-queue*
|
||||
*traffic-rigid-body-queue*
|
||||
)
|
||||
obj
|
||||
)
|
||||
0
|
||||
(none)
|
||||
)
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -7,3 +7,536 @@
|
||||
|
||||
;; DECOMP BEGINS
|
||||
|
||||
(defskelgroup skel-krew-package krew-package krew-package-lod0-jg krew-package-idle-ja
|
||||
((krew-package-lod0-mg (meters 20)) (krew-package-lod1-mg (meters 40)) (krew-package-lod2-mg (meters 999999)))
|
||||
:bounds (static-spherem 0 0 0 3.6)
|
||||
)
|
||||
|
||||
(deftype krew-package (process-drawable)
|
||||
((attach-object handle :offset-assert 200)
|
||||
(scale float :offset-assert 208)
|
||||
)
|
||||
:heap-base #x60
|
||||
:method-count-assert 24
|
||||
:size-assert #xd4
|
||||
:flag-assert #x18006000d4
|
||||
(:methods
|
||||
(idle () _type_ :state 20)
|
||||
(die () _type_ :state 21)
|
||||
(krew-package-method-22 (_type_) none 22)
|
||||
(krew-package-method-23 (_type_) none 23)
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
(defmethod krew-package-method-22 krew-package ((obj krew-package))
|
||||
(set! (-> obj root) (new 'process 'trsqv))
|
||||
0
|
||||
(none)
|
||||
)
|
||||
|
||||
(defmethod krew-package-method-23 krew-package ((obj krew-package))
|
||||
(with-pp
|
||||
(set! (-> pp level) (level-get *level* 'lpackage))
|
||||
(initialize-skeleton
|
||||
obj
|
||||
(the-as skeleton-group (art-group-get-by-name *level* "skel-krew-package" (the-as (pointer uint32) #f)))
|
||||
(the-as pair 0)
|
||||
)
|
||||
(set! (-> obj scale) 1.0)
|
||||
(set! (-> obj draw lod-set lod 0 dist) 81920.0)
|
||||
(set! (-> obj draw lod-set lod 1 dist) 204800.0)
|
||||
(set! (-> obj draw lod-set lod 1 dist) 327680.0)
|
||||
(logior! (-> obj skel status) (joint-control-status sync-math))
|
||||
0
|
||||
(none)
|
||||
)
|
||||
)
|
||||
|
||||
(defstate idle (krew-package)
|
||||
:virtual #t
|
||||
:code (the-as (function none :behavior krew-package) sleep-code)
|
||||
:post (behavior ()
|
||||
(let ((gp-0 (handle->process (-> self attach-object))))
|
||||
(cond
|
||||
(gp-0
|
||||
(when (logtest? (-> (the-as process-focusable gp-0) focus-status) (focus-status dead))
|
||||
(seek! (-> self scale) 0.0 (* 0.5 (-> self clock seconds-per-frame)))
|
||||
(if (= (-> self scale) 0.0)
|
||||
(go-virtual die)
|
||||
)
|
||||
)
|
||||
(set! (-> self draw color-mult quad) (-> (the-as process-focusable gp-0) draw color-mult quad))
|
||||
(set! (-> self root trans quad) (-> (the-as process-focusable gp-0) root-override trans quad))
|
||||
(quaternion-copy! (-> self root quat) (-> (the-as process-focusable gp-0) root-override quat))
|
||||
)
|
||||
(else
|
||||
)
|
||||
)
|
||||
)
|
||||
(let ((f0-5 (-> self scale)))
|
||||
(set-vector! (-> self root scale) f0-5 f0-5 f0-5 1.0)
|
||||
)
|
||||
(ja-post)
|
||||
(none)
|
||||
)
|
||||
)
|
||||
|
||||
(defstate die (krew-package)
|
||||
:virtual #t
|
||||
:code (behavior ()
|
||||
(cleanup-for-death self)
|
||||
(none)
|
||||
)
|
||||
)
|
||||
|
||||
;; WARN: Return type mismatch entity-perm-status vs none.
|
||||
(defmethod init-from-entity! krew-package ((obj krew-package) (arg0 entity-actor))
|
||||
"Typically the method that does the initial setup on the process, potentially using the [[entity-actor]] provided as part of that.
|
||||
This commonly includes things such as:
|
||||
- stack size
|
||||
- collision information
|
||||
- loading the skeleton group / bones
|
||||
- sounds"
|
||||
(process-entity-status! obj (entity-perm-status dead) #t)
|
||||
(none)
|
||||
)
|
||||
|
||||
;; WARN: Return type mismatch object vs none.
|
||||
(defbehavior krew-package-init-by-other krew-package ((arg0 process-drawable))
|
||||
(stack-size-set! (-> self main-thread) 16)
|
||||
(set! (-> self mask) (logior (process-mask platform) (-> self mask)))
|
||||
(logclear! (-> self mask) (process-mask actor-pause movie))
|
||||
(krew-package-method-22 self)
|
||||
(set! (-> self attach-object) (process->handle arg0))
|
||||
(set! (-> self root trans quad) (-> arg0 root trans quad))
|
||||
(quaternion-copy! (-> self root quat) (-> arg0 root quat))
|
||||
(krew-package-method-23 self)
|
||||
(go-virtual idle)
|
||||
(none)
|
||||
)
|
||||
|
||||
(defun krew-package-spawn ((arg0 process) (arg1 process))
|
||||
(process-spawn krew-package arg1 :to arg0)
|
||||
)
|
||||
|
||||
(set-subtask-hook!
|
||||
*game-info*
|
||||
24
|
||||
0
|
||||
(the-as
|
||||
(function object)
|
||||
(lambda :behavior task-manager
|
||||
()
|
||||
(while (!= (level-status *level* 'ctysluma) 'active)
|
||||
(suspend)
|
||||
)
|
||||
(let ((v1-3 (entity-by-name "parking-spot-8")))
|
||||
(if v1-3
|
||||
(logior! (-> v1-3 extra perm status) (entity-perm-status bit-9))
|
||||
)
|
||||
)
|
||||
(set! (-> self end-pos quad) (-> (new 'static 'vector :x -282624.0 :y 45056.0 :z 5464064.0 :w 1.0) quad))
|
||||
(set-setting! 'minimap 'clear 0 32)
|
||||
(let ((gp-1 *traffic-manager*))
|
||||
(let ((s5-0 (new 'stack 'traffic-object-spawn-params)))
|
||||
(set! (-> s5-0 position quad) (-> (new 'static 'vector :x 4698112.0 :y 45875.2 :z 81920.0 :w 1.0) quad))
|
||||
(quaternion-axis-angle! (-> s5-0 rotation) 0.0 1.0 0.0 32768.0)
|
||||
(set! (-> s5-0 object-type) (the-as uint 11))
|
||||
(set! (-> s5-0 behavior) (the-as uint 0))
|
||||
(set! (-> s5-0 id) (the-as uint 0))
|
||||
(set! (-> s5-0 proc) #f)
|
||||
(send-event gp-1 'spawn-object s5-0)
|
||||
(when (-> s5-0 proc)
|
||||
(set! (-> self slave 0) (process->handle (-> s5-0 proc)))
|
||||
(let ((v1-20 (-> s5-0 proc)))
|
||||
(set! (-> (the-as vehicle v1-20) damage-factor) 2.0)
|
||||
)
|
||||
(let ((v1-22 (krew-package-spawn (-> s5-0 proc) (-> s5-0 proc))))
|
||||
(if v1-22
|
||||
(set! (-> self slave 1) (process->handle (-> v1-22 0)))
|
||||
)
|
||||
)
|
||||
)
|
||||
(let ((s4-0 (new 'stack-no-clear 'task-arrow-params)))
|
||||
(set! (-> s4-0 pos quad) (-> s5-0 position quad))
|
||||
(quaternion-identity! (-> s4-0 quat))
|
||||
(set! (-> s4-0 flags) (task-arrow-flags task-arrow-flag-03))
|
||||
(set! (-> s4-0 map-icon) (the-as uint 15))
|
||||
(label cfg-21)
|
||||
(let ((a0-30 (task-arrow-spawn s4-0 (the-as task-arrow self))))
|
||||
(when (not a0-30)
|
||||
(format #t "waiting for task-arrow~%")
|
||||
(suspend)
|
||||
(goto cfg-21)
|
||||
)
|
||||
(set! (-> self arrow) (process->handle a0-30))
|
||||
)
|
||||
)
|
||||
)
|
||||
(send-event gp-1 'set-target-level #x3f800000)
|
||||
(send-event gp-1 'set-guard-target-count-range 4 0 1)
|
||||
(send-event gp-1 'set-guard-target-count-range 5 0 0)
|
||||
)
|
||||
(set! (-> self sub-state) (the-as uint -1))
|
||||
(set! (-> self data-int8 0) 0)
|
||||
(set! (-> self data-int8 1) 0)
|
||||
0
|
||||
(none)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
(set-subtask-hook!
|
||||
*game-info*
|
||||
24
|
||||
1
|
||||
(the-as
|
||||
(function object)
|
||||
(lambda :behavior task-manager () (send-event *traffic-manager* 'restore-default-settings) (none))
|
||||
)
|
||||
)
|
||||
|
||||
(defun delivery-task-setup-ambush-1 ()
|
||||
(format #t "delivery-task-setup-ambush-1~%")
|
||||
(let ((gp-0
|
||||
(new 'static 'city-ambush-info
|
||||
:count 10
|
||||
:array (new 'static 'inline-array city-ambush-spot 10
|
||||
(new 'static 'city-ambush-spot
|
||||
:pos (new 'static 'vector :x 4501504.0 :y 32768.0 :z 2297856.0 :w 1.0)
|
||||
:obj-type #x6
|
||||
)
|
||||
(new 'static 'city-ambush-spot
|
||||
:pos (new 'static 'vector :x 4501504.0 :y 32768.0 :z 2322432.0 :w 1.0)
|
||||
:obj-type #x6
|
||||
)
|
||||
(new 'static 'city-ambush-spot
|
||||
:pos (new 'static 'vector :x 4501504.0 :y 32768.0 :z 2347008.0 :w 1.0)
|
||||
:obj-type #x6
|
||||
)
|
||||
(new 'static 'city-ambush-spot
|
||||
:pos (new 'static 'vector :x 4501504.0 :y 32768.0 :z 2371584.0 :w 1.0)
|
||||
:obj-type #x6
|
||||
)
|
||||
(new 'static 'city-ambush-spot
|
||||
:pos (new 'static 'vector :x 4501504.0 :y 32768.0 :z 2396160.0 :w 1.0)
|
||||
:obj-type #x6
|
||||
)
|
||||
(new 'static 'city-ambush-spot
|
||||
:pos (new 'static 'vector :x 4513792.0 :y 69632.0 :z 2306048.0 :w 1.0)
|
||||
:obj-type #x13
|
||||
)
|
||||
(new 'static 'city-ambush-spot
|
||||
:pos (new 'static 'vector :x 4513792.0 :y 69632.0 :z 2387968.0 :w 1.0)
|
||||
:obj-type #x13
|
||||
)
|
||||
(new 'static 'city-ambush-spot
|
||||
:pos (new 'static 'vector :x 4464640.0 :y 69632.0 :z 2285568.0 :w 1.0)
|
||||
:obj-type #x12
|
||||
)
|
||||
(new 'static 'city-ambush-spot
|
||||
:pos (new 'static 'vector :x 4464640.0 :y 69632.0 :z 2347008.0 :w 1.0)
|
||||
:obj-type #x12
|
||||
)
|
||||
(new 'static 'city-ambush-spot
|
||||
:pos (new 'static 'vector :x 4464640.0 :y 69632.0 :z 2408448.0 :w 1.0)
|
||||
:obj-type #x12
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(s5-0 (new 'stack-no-clear 'traffic-object-spawn-params))
|
||||
)
|
||||
(set! (-> s5-0 object-type) (the-as uint 6))
|
||||
(set! (-> s5-0 behavior) (the-as uint 9))
|
||||
(set! (-> s5-0 id) (the-as uint 0))
|
||||
(set! (-> s5-0 nav-mesh) #f)
|
||||
(set! (-> s5-0 nav-branch) #f)
|
||||
(set! (-> s5-0 proc) #f)
|
||||
(set! (-> s5-0 handle) (the-as uint (process->handle *target*)))
|
||||
(set! (-> s5-0 user-data) (the-as uint 0))
|
||||
(set! (-> s5-0 flags) (the-as uint 2))
|
||||
(set! (-> s5-0 guard-type) (the-as uint 1))
|
||||
(vector-reset! (-> s5-0 velocity))
|
||||
(forward-up-nopitch->quaternion
|
||||
(-> s5-0 rotation)
|
||||
(new 'static 'vector :x -1.0 :w 1.0)
|
||||
(new 'static 'vector :y 1.0 :w 1.0)
|
||||
)
|
||||
(city-ambush-info-method-9 gp-0 s5-0)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
|
||||
(defun delivery-task-setup-ambush-2 ()
|
||||
(format #t "delivery-task-setup-ambush-2~%")
|
||||
(let ((gp-0
|
||||
(new 'static 'city-ambush-info
|
||||
:count 10
|
||||
:array (new 'static 'inline-array city-ambush-spot 10
|
||||
(new 'static 'city-ambush-spot
|
||||
:pos (new 'static 'vector :x 3325952.0 :y 32768.0 :z 4689920.0 :w 1.0)
|
||||
:obj-type #x6
|
||||
)
|
||||
(new 'static 'city-ambush-spot
|
||||
:pos (new 'static 'vector :x 3342336.0 :y 32768.0 :z 4689920.0 :w 1.0)
|
||||
:obj-type #x6
|
||||
)
|
||||
(new 'static 'city-ambush-spot
|
||||
:pos (new 'static 'vector :x 3358720.0 :y 32768.0 :z 4689920.0 :w 1.0)
|
||||
:obj-type #x6
|
||||
)
|
||||
(new 'static 'city-ambush-spot
|
||||
:pos (new 'static 'vector :x 3375104.0 :y 32768.0 :z 4689920.0 :w 1.0)
|
||||
:obj-type #x6
|
||||
)
|
||||
(new 'static 'city-ambush-spot
|
||||
:pos (new 'static 'vector :x 3391488.0 :y 32768.0 :z 4689920.0 :w 1.0)
|
||||
:obj-type #x6
|
||||
)
|
||||
(new 'static 'city-ambush-spot
|
||||
:pos (new 'static 'vector :x 3338240.0 :y 69632.0 :z 4689920.0 :w 1.0)
|
||||
:obj-type #x13
|
||||
)
|
||||
(new 'static 'city-ambush-spot
|
||||
:pos (new 'static 'vector :x 3383296.0 :y 69632.0 :z 4689920.0 :w 1.0)
|
||||
:obj-type #x13
|
||||
)
|
||||
(new 'static 'city-ambush-spot
|
||||
:pos (new 'static 'vector :x 3338240.0 :y 45056.0 :z 4722688.0 :w 1.0)
|
||||
:obj-type #x12
|
||||
)
|
||||
(new 'static 'city-ambush-spot
|
||||
:pos (new 'static 'vector :x 3358720.0 :y 45056.0 :z 4722688.0 :w 1.0)
|
||||
:obj-type #x12
|
||||
)
|
||||
(new 'static 'city-ambush-spot
|
||||
:pos (new 'static 'vector :x 3379200.0 :y 45056.0 :z 4722688.0 :w 1.0)
|
||||
:obj-type #x12
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(s5-0 (new 'stack-no-clear 'traffic-object-spawn-params))
|
||||
)
|
||||
(set! (-> s5-0 object-type) (the-as uint 6))
|
||||
(set! (-> s5-0 behavior) (the-as uint 9))
|
||||
(set! (-> s5-0 id) (the-as uint 0))
|
||||
(set! (-> s5-0 nav-mesh) #f)
|
||||
(set! (-> s5-0 nav-branch) #f)
|
||||
(set! (-> s5-0 proc) #f)
|
||||
(set! (-> s5-0 handle) (the-as uint (process->handle *target*)))
|
||||
(set! (-> s5-0 user-data) (the-as uint 0))
|
||||
(set! (-> s5-0 flags) (the-as uint 2))
|
||||
(set! (-> s5-0 guard-type) (the-as uint 1))
|
||||
(vector-reset! (-> s5-0 velocity))
|
||||
(forward-up-nopitch->quaternion
|
||||
(-> s5-0 rotation)
|
||||
(new 'static 'vector :x -1.0 :w 1.0)
|
||||
(new 'static 'vector :y 1.0 :w 1.0)
|
||||
)
|
||||
(city-ambush-info-method-9 gp-0 s5-0)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
|
||||
(set-subtask-hook!
|
||||
*game-info*
|
||||
24
|
||||
2
|
||||
(the-as
|
||||
(function object)
|
||||
(lambda :behavior task-manager
|
||||
()
|
||||
(local-vars (a0-32 float))
|
||||
(rlet ((acc :class vf)
|
||||
(vf0 :class vf)
|
||||
(vf1 :class vf)
|
||||
(vf2 :class vf)
|
||||
)
|
||||
(init-vf0-vector)
|
||||
(let ((gp-0 (handle->process (-> self slave 0))))
|
||||
(cond
|
||||
((and gp-0 (zero? (logand (-> (the-as process-focusable gp-0) focus-status) (focus-status dead))))
|
||||
(cond
|
||||
((zero? (-> self data-int8 0))
|
||||
(when (= (level-status *level* 'ctyindb) 'active)
|
||||
(set! (-> self data-int8 0) 1)
|
||||
(delivery-task-setup-ambush-1)
|
||||
)
|
||||
)
|
||||
(else
|
||||
(when (!= (level-status *level* 'ctyindb) 'active)
|
||||
(set! (-> self data-int8 0) 0)
|
||||
0
|
||||
)
|
||||
)
|
||||
)
|
||||
(cond
|
||||
((zero? (-> self data-int8 1))
|
||||
(when (= (level-status *level* 'ctyinda) 'active)
|
||||
(set! (-> self data-int8 1) 1)
|
||||
(delivery-task-setup-ambush-2)
|
||||
)
|
||||
)
|
||||
(else
|
||||
(when (!= (level-status *level* 'ctyinda) 'active)
|
||||
(set! (-> self data-int8 1) 0)
|
||||
0
|
||||
)
|
||||
)
|
||||
)
|
||||
(let ((f0-0 (vector-vector-distance-squared (-> (the-as process-drawable gp-0) root trans) (target-pos 0)))
|
||||
(f1-0 12288.0)
|
||||
)
|
||||
(cond
|
||||
((and (< f0-0 (* f1-0 f1-0)) *target* (logtest? (focus-status pilot) (-> *target* focus-status)))
|
||||
(when (nonzero? (-> self sub-state))
|
||||
(send-event (handle->process (-> self arrow)) 'set-position (-> self end-pos))
|
||||
(send-event (handle->process (-> self arrow)) 'modify-flags 1 0)
|
||||
(send-event (handle->process (-> self arrow)) 'map-icon 8)
|
||||
(set! (-> self sub-state) (the-as uint 0))
|
||||
0
|
||||
)
|
||||
)
|
||||
(else
|
||||
(let* ((v1-59 (new 'stack-no-clear 'inline-array 'vector 1))
|
||||
(f0-1 409.6)
|
||||
(f0-3 (* f0-1 f0-1))
|
||||
)
|
||||
(.lvf vf1 (&-> (-> (the-as process-drawable gp-0) root transv) 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 a0-32 vf1)
|
||||
(when (>= f0-3 a0-32)
|
||||
(set! (-> v1-59 0 quad) (-> (the-as process-drawable gp-0) root trans quad))
|
||||
(set! (-> v1-59 0 y) (+ -14336.0 (-> v1-59 0 y)))
|
||||
(send-event (handle->process (-> self arrow)) 'set-position (-> v1-59 0))
|
||||
)
|
||||
)
|
||||
(when (!= (-> self sub-state) 1)
|
||||
(send-event (handle->process (-> self arrow)) 'modify-flags 0 1)
|
||||
(send-event (handle->process (-> self arrow)) 'map-icon 15)
|
||||
(set! (-> self sub-state) (the-as uint 1))
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(let ((f30-0 49152.0)
|
||||
(f0-6 (vector-vector-distance-squared (-> (the-as process-drawable gp-0) root trans) (-> self end-pos)))
|
||||
)
|
||||
(if (>= (* f30-0 f30-0) f0-6)
|
||||
(go-virtual complete)
|
||||
)
|
||||
)
|
||||
)
|
||||
(else
|
||||
(go-virtual fail)
|
||||
)
|
||||
)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
(set-subtask-hook!
|
||||
*game-info*
|
||||
24
|
||||
3
|
||||
(the-as
|
||||
(function object)
|
||||
(lambda :behavior task-manager
|
||||
()
|
||||
(let ((gp-0 (new 'static 'vector :x 4501504.0 :y 73728.0 :z 2338816.0 :w 204800.0))
|
||||
(s5-0 #f)
|
||||
)
|
||||
(while (not s5-0)
|
||||
(let ((v1-1 (handle->process (-> self slave 0))))
|
||||
(when v1-1
|
||||
(let ((f0-0 (vector-vector-distance-squared (-> (the-as process-drawable v1-1) root trans) gp-0))
|
||||
(f1-0 (-> gp-0 w))
|
||||
)
|
||||
(set! s5-0 (< f0-0 (* f1-0 f1-0)))
|
||||
)
|
||||
)
|
||||
)
|
||||
(suspend)
|
||||
)
|
||||
)
|
||||
(send-event *traffic-manager* 'set-guard-target-count-range 0 0 0)
|
||||
(send-event *traffic-manager* 'set-guard-target-count-range 1 4 4)
|
||||
(send-event *traffic-manager* 'set-guard-target-count-range 2 0 0)
|
||||
(send-event *traffic-manager* 'set-guard-target-count-range 4 0 10)
|
||||
(send-event *traffic-manager* 'set-guard-target-count-range 5 0 10)
|
||||
(send-event *traffic-manager* 'set-alert-level 3)
|
||||
(send-event *traffic-manager* 'set-alert-duration #xa4cb80)
|
||||
(speech-control-method-10 *speech-control* 7 (new 'static 'speech-type-info
|
||||
:channel #x1
|
||||
:priority -2
|
||||
:min-delay #x258
|
||||
:max-delay #x4b0
|
||||
:list (new 'static 'boxed-array :type string
|
||||
"kg243a"
|
||||
"kg241a"
|
||||
"kg242a"
|
||||
"kg244a"
|
||||
"kg245a"
|
||||
"kg246a"
|
||||
"kg247a"
|
||||
"kg248a"
|
||||
"kg249a"
|
||||
"kg250a"
|
||||
"kg251a"
|
||||
"kg252a"
|
||||
)
|
||||
)
|
||||
)
|
||||
(talker-spawn-func (-> *talker-speech* 49) *entity-pool* (target-pos 0) (the-as region #f))
|
||||
(let ((gp-2 (new 'static 'vector :x 3358720.0 :y 32768.0 :z 4689920.0 :w 204800.0))
|
||||
(s5-2 #f)
|
||||
)
|
||||
(while (not s5-2)
|
||||
(let ((v1-48 (handle->process (-> self slave 0))))
|
||||
(when v1-48
|
||||
(let ((f0-1 (vector-vector-distance-squared (-> (the-as process-drawable v1-48) root trans) gp-2))
|
||||
(f1-3 (-> gp-2 w))
|
||||
)
|
||||
(set! s5-2 (< f0-1 (* f1-3 f1-3)))
|
||||
)
|
||||
)
|
||||
)
|
||||
(suspend)
|
||||
)
|
||||
)
|
||||
(talker-spawn-func (-> *talker-speech* 50) *entity-pool* (target-pos 0) (the-as region #f))
|
||||
(none)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
(set-subtask-hook!
|
||||
*game-info*
|
||||
24
|
||||
4
|
||||
(the-as (function object) (lambda :behavior task-manager
|
||||
()
|
||||
(send-event *traffic-manager* 'decrease-alert-level 0)
|
||||
(send-event *traffic-manager* 'set-alert-duration 9000)
|
||||
(if (and *target* (logtest? (focus-status pilot) (-> *target* focus-status)))
|
||||
(send-event *target* 'change-mode 'normal)
|
||||
)
|
||||
(set-setting! 'pilot #f 0 0)
|
||||
(set! (-> self state-time) (-> self clock frame-counter))
|
||||
(while (< (- (-> self clock frame-counter) (-> self state-time)) (seconds 2))
|
||||
(suspend)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
@@ -7,3 +7,423 @@
|
||||
|
||||
;; DECOMP BEGINS
|
||||
|
||||
(set-subtask-hook!
|
||||
*game-info*
|
||||
251
|
||||
0
|
||||
(the-as
|
||||
(function object)
|
||||
(lambda :behavior task-manager
|
||||
()
|
||||
(set! (-> self data-float 0) (the-as float (send-event *target* 'test-pickup 7)))
|
||||
(send-event *target* 'change-mode 'darkjak #f 65)
|
||||
(set! (-> self sound-id 0)
|
||||
(add-process *gui-control* self (gui-channel message) (gui-action play) (-> self name) 81920.0 0)
|
||||
)
|
||||
(send-event *target* 'get-notify self)
|
||||
(none)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
(set-subtask-hook!
|
||||
*game-info*
|
||||
251
|
||||
1
|
||||
(the-as (function object) (lambda :behavior task-manager
|
||||
()
|
||||
(send-event *target* 'get-pickup 7 (-> self data-float 0))
|
||||
(send-event *target* 'change-mode 'darkjak #f 128)
|
||||
(send-event *target* 'get-notify #f)
|
||||
(set-action!
|
||||
*gui-control*
|
||||
(gui-action stop)
|
||||
(-> self sound-id 0)
|
||||
(gui-channel none)
|
||||
(gui-action none)
|
||||
(the-as string #f)
|
||||
(the-as (function gui-connection symbol) #f)
|
||||
(the-as process #f)
|
||||
)
|
||||
(close! (-> self node-info) 'event)
|
||||
(none)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
(set-subtask-hook!
|
||||
*game-info*
|
||||
251
|
||||
6
|
||||
(the-as (function object) (lambda :behavior task-manager
|
||||
((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
|
||||
(case arg2
|
||||
(('notify)
|
||||
(case (-> arg3 param 0)
|
||||
(('attack)
|
||||
(if (= (-> arg3 param 1) 16)
|
||||
(go-virtual complete)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
(set-subtask-hook!
|
||||
*game-info*
|
||||
251
|
||||
2
|
||||
(the-as
|
||||
(function object)
|
||||
(lambda :behavior task-manager
|
||||
()
|
||||
(if (and *target* (zero? (logand (focus-status dark) (-> *target* focus-status))))
|
||||
(send-event *target* 'change-mode 'darkjak #f 65)
|
||||
)
|
||||
(when (= (get-status *gui-control* (-> self sound-id 0)) (gui-status active))
|
||||
(let ((gp-1 (new
|
||||
'stack
|
||||
'font-context
|
||||
*font-default-matrix*
|
||||
32
|
||||
280
|
||||
0.0
|
||||
(font-color default-#cddbcd)
|
||||
(font-flags shadow kerning)
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! (-> gp-1 flags) (font-flags shadow kerning large))
|
||||
(let ((v1-14 gp-1))
|
||||
(set! (-> v1-14 width) (the float 440))
|
||||
)
|
||||
(let ((v1-15 gp-1))
|
||||
(set! (-> v1-15 height) (the float 80))
|
||||
)
|
||||
(let ((v1-16 gp-1))
|
||||
(set! (-> v1-16 scale) 0.7)
|
||||
)
|
||||
(let ((s5-0 print-game-text))
|
||||
(format (clear *temp-string*) (lookup-text! *common-text* (game-text-id oracle-tutorial-dark-bomb) #f))
|
||||
(s5-0 *temp-string* gp-1 #f 44 (bucket-id progress))
|
||||
)
|
||||
)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
(set-subtask-hook!
|
||||
*game-info*
|
||||
253
|
||||
0
|
||||
(the-as
|
||||
(function object)
|
||||
(lambda :behavior task-manager
|
||||
()
|
||||
(set! (-> self data-float 0) (the-as float (send-event *target* 'test-pickup 7)))
|
||||
(send-event *target* 'change-mode 'darkjak #f 65)
|
||||
(set! (-> self sound-id 0)
|
||||
(add-process *gui-control* self (gui-channel message) (gui-action play) (-> self name) 81920.0 0)
|
||||
)
|
||||
(send-event *target* 'get-notify self)
|
||||
(none)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
(set-subtask-hook!
|
||||
*game-info*
|
||||
253
|
||||
1
|
||||
(the-as (function object) (lambda :behavior task-manager
|
||||
()
|
||||
(send-event *target* 'get-pickup 7 (-> self data-float 0))
|
||||
(send-event *target* 'change-mode 'darkjak #f 128)
|
||||
(send-event *target* 'get-notify #f)
|
||||
(set-action!
|
||||
*gui-control*
|
||||
(gui-action stop)
|
||||
(-> self sound-id 0)
|
||||
(gui-channel none)
|
||||
(gui-action none)
|
||||
(the-as string #f)
|
||||
(the-as (function gui-connection symbol) #f)
|
||||
(the-as process #f)
|
||||
)
|
||||
(close! (-> self node-info) 'event)
|
||||
(none)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
(set-subtask-hook!
|
||||
*game-info*
|
||||
253
|
||||
6
|
||||
(the-as (function object) (lambda :behavior task-manager
|
||||
((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
|
||||
(case arg2
|
||||
(('notify)
|
||||
(case (-> arg3 param 0)
|
||||
(('attack)
|
||||
(if (= (-> arg3 param 1) 17)
|
||||
(go-virtual complete)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
(set-subtask-hook!
|
||||
*game-info*
|
||||
253
|
||||
2
|
||||
(the-as
|
||||
(function object)
|
||||
(lambda :behavior task-manager
|
||||
()
|
||||
(if (and *target* (zero? (logand (focus-status dark) (-> *target* focus-status))))
|
||||
(send-event *target* 'change-mode 'darkjak #f 65)
|
||||
)
|
||||
(when (= (get-status *gui-control* (-> self sound-id 0)) (gui-status active))
|
||||
(let ((gp-1 (new
|
||||
'stack
|
||||
'font-context
|
||||
*font-default-matrix*
|
||||
32
|
||||
280
|
||||
0.0
|
||||
(font-color default-#cddbcd)
|
||||
(font-flags shadow kerning)
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! (-> gp-1 flags) (font-flags shadow kerning large))
|
||||
(let ((v1-14 gp-1))
|
||||
(set! (-> v1-14 width) (the float 440))
|
||||
)
|
||||
(let ((v1-15 gp-1))
|
||||
(set! (-> v1-15 height) (the float 80))
|
||||
)
|
||||
(let ((v1-16 gp-1))
|
||||
(set! (-> v1-16 scale) 0.7)
|
||||
)
|
||||
(let ((s5-0 print-game-text))
|
||||
(format (clear *temp-string*) (lookup-text! *common-text* (game-text-id oracle-tutorial-dark-blast) #f))
|
||||
(s5-0 *temp-string* gp-1 #f 44 (bucket-id progress))
|
||||
)
|
||||
)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
(set-subtask-hook!
|
||||
*game-info*
|
||||
255
|
||||
0
|
||||
(the-as
|
||||
(function object)
|
||||
(lambda :behavior task-manager
|
||||
()
|
||||
(set! (-> self data-float 0) (the-as float (send-event *target* 'test-pickup 7)))
|
||||
(send-event *target* 'change-mode 'darkjak #f 65)
|
||||
(set! (-> self sound-id 0)
|
||||
(add-process *gui-control* self (gui-channel message) (gui-action play) (-> self name) 81920.0 0)
|
||||
)
|
||||
(send-event *target* 'get-notify self)
|
||||
(set! (-> self start-time) (-> self clock frame-counter))
|
||||
(none)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
(set-subtask-hook!
|
||||
*game-info*
|
||||
255
|
||||
1
|
||||
(the-as (function object) (lambda :behavior task-manager
|
||||
()
|
||||
(send-event *target* 'get-pickup 7 (-> self data-float 0))
|
||||
(send-event *target* 'change-mode 'darkjak #f 128)
|
||||
(send-event *target* 'get-notify #f)
|
||||
(set-action!
|
||||
*gui-control*
|
||||
(gui-action stop)
|
||||
(-> self sound-id 0)
|
||||
(gui-channel none)
|
||||
(gui-action none)
|
||||
(the-as string #f)
|
||||
(the-as (function gui-connection symbol) #f)
|
||||
(the-as process #f)
|
||||
)
|
||||
(close! (-> self node-info) 'event)
|
||||
(none)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
(set-subtask-hook!
|
||||
*game-info*
|
||||
255
|
||||
2
|
||||
(the-as
|
||||
(function object)
|
||||
(lambda :behavior task-manager
|
||||
()
|
||||
(if (and *target* (zero? (logand (focus-status dark) (-> *target* focus-status))))
|
||||
(send-event *target* 'change-mode 'darkjak #f 65)
|
||||
)
|
||||
(when (= (get-status *gui-control* (-> self sound-id 0)) (gui-status active))
|
||||
(let ((gp-1 (new
|
||||
'stack
|
||||
'font-context
|
||||
*font-default-matrix*
|
||||
32
|
||||
280
|
||||
0.0
|
||||
(font-color default-#cddbcd)
|
||||
(font-flags shadow kerning)
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! (-> gp-1 flags) (font-flags shadow kerning large))
|
||||
(let ((v1-14 gp-1))
|
||||
(set! (-> v1-14 width) (the float 440))
|
||||
)
|
||||
(let ((v1-15 gp-1))
|
||||
(set! (-> v1-15 height) (the float 80))
|
||||
)
|
||||
(let ((v1-16 gp-1))
|
||||
(set! (-> v1-16 scale) 0.7)
|
||||
)
|
||||
(let ((s5-0 print-game-text))
|
||||
(format (clear *temp-string*) (lookup-text! *common-text* (game-text-id oracle-tutorial-dark-invincible) #f))
|
||||
(s5-0 *temp-string* gp-1 #f 44 (bucket-id progress))
|
||||
)
|
||||
)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
(set-subtask-hook!
|
||||
*game-info*
|
||||
257
|
||||
0
|
||||
(the-as
|
||||
(function object)
|
||||
(lambda :behavior task-manager
|
||||
()
|
||||
(set! (-> self data-float 0) (the-as float (send-event *target* 'test-pickup 7)))
|
||||
(send-event *target* 'change-mode 'darkjak #f 65)
|
||||
(set! (-> self sound-id 0)
|
||||
(add-process *gui-control* self (gui-channel message) (gui-action play) (-> self name) 81920.0 0)
|
||||
)
|
||||
(send-event *target* 'get-notify self)
|
||||
(none)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
(set-subtask-hook!
|
||||
*game-info*
|
||||
257
|
||||
1
|
||||
(the-as (function object) (lambda :behavior task-manager
|
||||
()
|
||||
(send-event *target* 'get-pickup 7 (-> self data-float 0))
|
||||
(send-event *target* 'change-mode 'darkjak #f 128)
|
||||
(send-event *target* 'get-notify #f)
|
||||
(set-action!
|
||||
*gui-control*
|
||||
(gui-action stop)
|
||||
(-> self sound-id 0)
|
||||
(gui-channel none)
|
||||
(gui-action none)
|
||||
(the-as string #f)
|
||||
(the-as (function gui-connection symbol) #f)
|
||||
(the-as process #f)
|
||||
)
|
||||
(close! (-> self node-info) 'event)
|
||||
(none)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
(set-subtask-hook!
|
||||
*game-info*
|
||||
257
|
||||
6
|
||||
(the-as (function object) (lambda :behavior task-manager
|
||||
((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
|
||||
(the-as object (case arg2
|
||||
(('notify)
|
||||
(case (-> arg3 param 0)
|
||||
(('attack)
|
||||
(if (= (-> arg3 param 1) 18)
|
||||
#f
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
(set-subtask-hook!
|
||||
*game-info*
|
||||
257
|
||||
2
|
||||
(the-as
|
||||
(function object)
|
||||
(lambda :behavior task-manager
|
||||
()
|
||||
(if (and *target* (zero? (logand (focus-status dark) (-> *target* focus-status))))
|
||||
(send-event *target* 'change-mode 'darkjak #f 65)
|
||||
)
|
||||
(when (= (get-status *gui-control* (-> self sound-id 0)) (gui-status active))
|
||||
(let ((gp-1 (new
|
||||
'stack
|
||||
'font-context
|
||||
*font-default-matrix*
|
||||
32
|
||||
280
|
||||
0.0
|
||||
(font-color default-#cddbcd)
|
||||
(font-flags shadow kerning)
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! (-> gp-1 flags) (font-flags shadow kerning large))
|
||||
(let ((v1-14 gp-1))
|
||||
(set! (-> v1-14 width) (the float 440))
|
||||
)
|
||||
(let ((v1-15 gp-1))
|
||||
(set! (-> v1-15 height) (the float 80))
|
||||
)
|
||||
(let ((v1-16 gp-1))
|
||||
(set! (-> v1-16 scale) 0.7)
|
||||
)
|
||||
(let ((s5-0 print-game-text))
|
||||
(format (clear *temp-string*) (lookup-text! *common-text* (game-text-id oracle-tutorial-dark-giant) #f))
|
||||
(s5-0 *temp-string* gp-1 #f 44 (bucket-id progress))
|
||||
)
|
||||
)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
@@ -21,8 +21,8 @@
|
||||
|
||||
|
||||
(deftype bombbot-path (structure)
|
||||
((node-count uint16 :offset-assert 0)
|
||||
(node uint32 :offset-assert 4)
|
||||
((node-count uint16 :offset-assert 0)
|
||||
(node (inline-array bombbot-node) :offset-assert 4)
|
||||
)
|
||||
:method-count-assert 9
|
||||
:size-assert #x8
|
||||
|
||||
@@ -7,3 +7,812 @@
|
||||
|
||||
;; DECOMP BEGINS
|
||||
|
||||
(define *bombbot-path-1* (new 'static 'bombbot-path
|
||||
:node-count #x1c
|
||||
:node (new 'static 'inline-array bombbot-node 28
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 3258277.5 :y 36837.375 :z 2919952.0)
|
||||
:nav-mesh-id #x429e
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 3527335.0 :y 36837.375 :z 2643463.2)
|
||||
:nav-mesh-id #x429e
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 3614297.8 :y 36837.375 :z 2580864.5)
|
||||
:nav-mesh-id #x429e
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 4291214.0 :y 38298.008 :z 2591629.0)
|
||||
:nav-mesh-id #x429e
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 4390092.0 :y 36837.375 :z 2643881.2)
|
||||
:nav-mesh-id #x429e
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 4455013.0 :y 36837.375 :z 2753605.2)
|
||||
:nav-mesh-id #x429e
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 4538736.0 :y 36837.375 :z 2739244.8)
|
||||
:nav-mesh-id #x429e
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 4589772.0 :y 36837.375 :z 2653011.2)
|
||||
:nav-mesh-id #x429e
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 4602265.0 :y 38390.58 :z 2465177.2)
|
||||
:nav-mesh-id #x429e
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 4529397.0 :y 36837.375 :z 2365566.2)
|
||||
:nav-mesh-id #x429e
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 4405943.0 :y 36837.375 :z 2328894.8)
|
||||
:nav-mesh-id #x429e
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 4000464.5 :y 36837.375 :z 2104958.2)
|
||||
:nav-mesh-id #x429e
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 4013141.5 :y 36837.375 :z 1832038.0)
|
||||
:nav-mesh-id #x429e
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 4521655.0 :y 36837.375 :z 1745903.2)
|
||||
:nav-mesh-id #x429e
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 4506131.5 :y 33105.92 :z 1321582.1)
|
||||
:nav-mesh-id #x2578
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 4644699.5 :y 37455.055 :z 1207492.2)
|
||||
:nav-mesh-id #x2578
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 4667923.5 :y 37455.055 :z 1168281.2)
|
||||
:nav-mesh-id #x2578
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 4659813.0 :y 41026.766 :z 977706.6)
|
||||
:nav-mesh-id #x2578
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 4733418.5 :y 37455.055 :z 871554.7)
|
||||
:nav-mesh-id #x2578
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 4753079.0 :y 37459.56 :z 775511.6)
|
||||
:nav-mesh-id #x2578
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 4692417.5 :y 37457.51 :z 759676.5)
|
||||
:nav-mesh-id #x2578
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 4495687.0 :y 37457.51 :z 765365.9)
|
||||
:nav-mesh-id #x2578
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 4472339.5 :y 37457.51 :z 496651.88)
|
||||
:nav-mesh-id #x2578
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 4383906.5 :y 37457.51 :z 276074.1)
|
||||
:nav-mesh-id #x2578
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 4582235.5 :y 37446.043 :z 83403.57)
|
||||
:nav-mesh-id #x2578
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 4677671.5 :y 37446.043 :z 70415.56)
|
||||
:nav-mesh-id #x2578
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 4685986.5 :y 37446.043 :z 217373.9)
|
||||
:nav-mesh-id #x2578
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 4718386.5 :y 37446.043 :z 233280.72)
|
||||
:nav-mesh-id #x2578
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
(define *bombbot-path-2* (new 'static 'bombbot-path
|
||||
:node-count #x21
|
||||
:node (new 'static 'inline-array bombbot-node 33
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 1677880.9 :y 32856.473 :z -190588.11)
|
||||
:nav-mesh-id #x2644
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 1826967.1 :y 36825.906 :z -179154.53)
|
||||
:nav-mesh-id #x2644
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 1879178.9 :y 36858.266 :z -70936.164)
|
||||
:nav-mesh-id #x2644
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 2041179.8 :y 36852.12 :z -62959.617)
|
||||
:nav-mesh-id #x2644
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 2200935.8 :y 37035.62 :z -327732.44)
|
||||
:nav-mesh-id #x2644
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 2238988.0 :y 36855.81 :z -502779.5)
|
||||
:nav-mesh-id #x2644
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 2280828.0 :y 36862.363 :z -594517.6)
|
||||
:nav-mesh-id #x2644
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 2382253.8 :y 36858.266 :z -654388.8)
|
||||
:nav-mesh-id #x2644
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 2463849.8 :y 36852.53 :z -811904.6)
|
||||
:nav-mesh-id #x2644
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 2693455.5 :y 32287.129 :z -782532.2)
|
||||
:nav-mesh-id #x2644
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 2787884.8 :y 36854.168 :z -1143430.8)
|
||||
:nav-mesh-id #x2644
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 2870263.5 :y 36964.76 :z -1137082.0)
|
||||
:nav-mesh-id #x2644
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 3010809.5 :y 35717.53 :z -1025650.25)
|
||||
:nav-mesh-id #x2644
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 3058421.2 :y 36852.53 :z -689659.5)
|
||||
:nav-mesh-id #x2644
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 3038600.5 :y 37395.66 :z -597171.8)
|
||||
:nav-mesh-id #x2644
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 2939293.0 :y 45748.223 :z -549240.44)
|
||||
:nav-mesh-id #x2644
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 2885557.8 :y 43587.586 :z -452988.53)
|
||||
:nav-mesh-id #x2644
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 3289734.2 :y 37456.28 :z -52194.508)
|
||||
:nav-mesh-id #x2578
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 3266022.5 :y 37448.09 :z 309003.88)
|
||||
:nav-mesh-id #x2578
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 3520949.8 :y 38775.6 :z 423140.97)
|
||||
:nav-mesh-id #x2578
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 3753070.2 :y 37448.09 :z 611843.7)
|
||||
:nav-mesh-id #x2578
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 3987242.5 :y 37458.74 :z 642600.56)
|
||||
:nav-mesh-id #x2578
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 4035505.2 :y 37454.234 :z 575893.1)
|
||||
:nav-mesh-id #x2578
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 4232519.0 :y 37457.51 :z 589045.4)
|
||||
:nav-mesh-id #x2578
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 4315381.0 :y 37457.51 :z 524410.5)
|
||||
:nav-mesh-id #x2578
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 4324351.0 :y 37457.51 :z 385351.7)
|
||||
:nav-mesh-id #x2578
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 4224859.5 :y 37457.51 :z 381204.47)
|
||||
:nav-mesh-id #x2578
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 4227849.5 :y 37457.51 :z 289628.56)
|
||||
:nav-mesh-id #x2578
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 4357856.5 :y 37457.51 :z 260807.06)
|
||||
:nav-mesh-id #x2578
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 4588256.5 :y 37446.043 :z 68193.89)
|
||||
:nav-mesh-id #x2578
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 4668702.0 :y 37446.043 :z 85842.74)
|
||||
:nav-mesh-id #x2578
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 4679515.5 :y 37446.043 :z 238454.38)
|
||||
:nav-mesh-id #x2578
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 4716789.0 :y 37446.043 :z 252433.2)
|
||||
:nav-mesh-id #x2578
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
(define *bombbot-path-3* (new 'static 'bombbot-path
|
||||
:node-count #x1b
|
||||
:node (new 'static 'inline-array bombbot-node 27
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 3349143.2 :y 36837.375 :z 1716903.5)
|
||||
:nav-mesh-id #x429e
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 3350859.2 :y 36837.375 :z 2284261.0)
|
||||
:nav-mesh-id #x429e
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 3585396.0 :y 38390.58 :z 2270354.8)
|
||||
:nav-mesh-id #x429e
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 3678752.2 :y 36837.375 :z 2124566.0)
|
||||
:nav-mesh-id #x429e
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 3780005.5 :y 37188.402 :z 1886043.8)
|
||||
:nav-mesh-id #x429e
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 3988593.8 :y 38456.523 :z 1788928.0)
|
||||
:nav-mesh-id #x429e
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 4476435.5 :y 36837.375 :z 1664429.6)
|
||||
:nav-mesh-id #x429e
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 4459273.5 :y 30950.605 :z 1375608.4)
|
||||
:nav-mesh-id #x2578
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 4297235.5 :y 37457.92 :z 1336405.6)
|
||||
:nav-mesh-id #x2578
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 4267007.0 :y 37444.402 :z 1361804.9)
|
||||
:nav-mesh-id #x2578
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 4239564.0 :y 37457.92 :z 1410236.0)
|
||||
:nav-mesh-id #x2578
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 4136713.5 :y 42312.09 :z 1466470.0)
|
||||
:nav-mesh-id #x2578
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 3730288.2 :y 37457.92 :z 1464053.4)
|
||||
:nav-mesh-id #x2578
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 3679088.2 :y 37457.51 :z 1307471.5)
|
||||
:nav-mesh-id #x2578
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 3718180.5 :y 37457.51 :z 1220591.2)
|
||||
:nav-mesh-id #x2578
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 3999309.5 :y 40812.543 :z 1229811.2)
|
||||
:nav-mesh-id #x2578
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 4089249.5 :y 37457.51 :z 1150664.2)
|
||||
:nav-mesh-id #x2578
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 4044267.0 :y 37457.51 :z 856497.75)
|
||||
:nav-mesh-id #x2578
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 4036837.0 :y 37457.51 :z 757390.94)
|
||||
:nav-mesh-id #x2578
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 4235918.0 :y 37457.51 :z 741895.8)
|
||||
:nav-mesh-id #x2578
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 4270160.5 :y 37457.51 :z 614477.44)
|
||||
:nav-mesh-id #x2578
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 4392795.5 :y 37457.51 :z 371413.8)
|
||||
:nav-mesh-id #x2578
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 4414668.0 :y 41926.246 :z 210297.23)
|
||||
:nav-mesh-id #x2578
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 4583751.0 :y 37446.043 :z 98254.85)
|
||||
:nav-mesh-id #x2578
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 4685045.0 :y 37446.043 :z 85629.336)
|
||||
:nav-mesh-id #x2578
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 4691557.0 :y 37446.043 :z 193381.17)
|
||||
:nav-mesh-id #x2578
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 4719328.5 :y 37446.043 :z 209884.78)
|
||||
:nav-mesh-id #x2578
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
(define *bombbot-path-4* (new 'static 'bombbot-path
|
||||
:node-count #x1b
|
||||
:node (new 'static 'inline-array bombbot-node 27
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 882802.25 :y 36859.902 :z 3621834.2)
|
||||
:nav-mesh-id #x5881
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 872205.94 :y 36854.168 :z 3192081.5)
|
||||
:nav-mesh-id #x5881
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 1050914.4 :y 69632.0 :z 3175034.5)
|
||||
:nav-mesh-id #x5881
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 1498271.4 :y 69626.266 :z 3185827.5)
|
||||
:nav-mesh-id #x5881
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 1481735.8 :y 69642.24 :z 2830061.2)
|
||||
:nav-mesh-id #x5881
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 1456881.2 :y 69642.24 :z 2057588.4)
|
||||
:nav-mesh-id #x5881
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 1502514.8 :y 69642.24 :z 1884434.0)
|
||||
:nav-mesh-id #x5881
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 1484082.8 :y 69632.0 :z 1743306.4)
|
||||
:nav-mesh-id #x5881
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 1115516.5 :y 69642.24 :z 1752252.0)
|
||||
:nav-mesh-id #x5881
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 639340.1 :y 69639.78 :z 1770094.1)
|
||||
:nav-mesh-id #x5881
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 128253.54 :y 69642.24 :z 1734078.0)
|
||||
:nav-mesh-id #x5881
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 73947.95 :y 69642.24 :z 1844170.4)
|
||||
:nav-mesh-id #x5881
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 109042.07 :y 69642.24 :z 2066944.0)
|
||||
:nav-mesh-id #x5881
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 122852.555 :y 69642.24 :z 2758323.5)
|
||||
:nav-mesh-id #x5881
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 79918.28 :y 69626.266 :z 3150474.8)
|
||||
:nav-mesh-id #x5881
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 517484.12 :y 69632.0 :z 3181182.2)
|
||||
:nav-mesh-id #x5881
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 602791.5 :y 36854.168 :z 3181075.8)
|
||||
:nav-mesh-id #x5881
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 699465.3 :y 36854.168 :z 3194715.2)
|
||||
:nav-mesh-id #x5881
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 674786.94 :y 36864.0 :z 3605937.2)
|
||||
:nav-mesh-id #x5881
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 421895.78 :y 36864.0 :z 3631988.0)
|
||||
:nav-mesh-id #x5881
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 369729.12 :y 36859.902 :z 3813134.0)
|
||||
:nav-mesh-id #x5881
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 397331.66 :y 36861.953 :z 4427570.5)
|
||||
:nav-mesh-id #x5881
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 731725.44 :y 36864.0 :z 4451286.0)
|
||||
:nav-mesh-id #x5881
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 1126035.0 :y 36864.0 :z 4429454.0)
|
||||
:nav-mesh-id #x5881
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 1190809.2 :y 36859.902 :z 4295065.0)
|
||||
:nav-mesh-id #x5881
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 1190031.0 :y 36861.953 :z 3726978.8)
|
||||
:nav-mesh-id #x5881
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 1073888.9 :y 36859.902 :z 3629100.8)
|
||||
:nav-mesh-id #x5881
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
(define *bombbot-path-5* (new 'static 'bombbot-path
|
||||
:node-count #x33
|
||||
:node (new 'static 'inline-array bombbot-node 51
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 388330.7 :y 35735.55 :z 5592473.0)
|
||||
:nav-mesh-id #x48cc
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 235137.44 :y 35738.418 :z 5335571.5)
|
||||
:nav-mesh-id #x48cc
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 74786.0 :y 35725.312 :z 5357485.5)
|
||||
:nav-mesh-id #x48cc
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x -245602.72 :y 35892.43 :z 5523168.5)
|
||||
:nav-mesh-id #x48cc
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x -478199.4 :y 35809.28 :z 5729811.5)
|
||||
:nav-mesh-id #x48cc
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x -633699.94 :y 39457.586 :z 5876857.5)
|
||||
:nav-mesh-id #x48cc
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x -667004.5 :y 59325.234 :z 5924289.5)
|
||||
:nav-mesh-id #x48cc
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x -696929.9 :y 58614.58 :z 5964103.0)
|
||||
:nav-mesh-id #x48cc
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x -732503.6 :y 22183.527 :z 6010224.0)
|
||||
:nav-mesh-id #x48cc
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x -856731.25 :y 21815.297 :z 6198476.0)
|
||||
:nav-mesh-id #x48cc
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x -870399.56 :y 35786.344 :z 6224935.5)
|
||||
:nav-mesh-id #x48cc
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x -976211.56 :y 35637.656 :z 6564699.5)
|
||||
:nav-mesh-id #x48cc
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x -719711.9 :y 38689.176 :z 6634986.5)
|
||||
:nav-mesh-id #x48cc
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x -531132.0 :y 38689.176 :z 6696467.5)
|
||||
:nav-mesh-id #x48db
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x -354006.62 :y 38696.14 :z 6784162.5)
|
||||
:nav-mesh-id #x48db
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x -180439.86 :y 38695.32 :z 6879559.0)
|
||||
:nav-mesh-id #x48db
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 20982.58 :y 35575.81 :z 7042620.0)
|
||||
:nav-mesh-id #x48db
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 195429.98 :y 35792.895 :z 6968032.5)
|
||||
:nav-mesh-id #x48db
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 312721.8 :y 35971.89 :z 6998506.5)
|
||||
:nav-mesh-id #x48db
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 453852.78 :y 37415.73 :z 7159356.0)
|
||||
:nav-mesh-id #x48db
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 678702.7 :y 75903.38 :z 7154687.0)
|
||||
:nav-mesh-id #x48db
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 891694.7 :y 75898.06 :z 7155056.0)
|
||||
:nav-mesh-id #x48db
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 1123581.5 :y 37389.105 :z 7159807.0)
|
||||
:nav-mesh-id #x48db
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 1262735.0 :y 36363.06 :z 7003381.0)
|
||||
:nav-mesh-id #x48db
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 1435963.0 :y 35584.82 :z 6967623.0)
|
||||
:nav-mesh-id #x48db
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 1585966.8 :y 37874.895 :z 7002643.5)
|
||||
:nav-mesh-id #x48db
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 1763491.4 :y 38840.32 :z 6884228.5)
|
||||
:nav-mesh-id #x48db
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 1928056.4 :y 38840.32 :z 6786702.0)
|
||||
:nav-mesh-id #x48db
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 2107686.0 :y 38849.332 :z 6696098.5)
|
||||
:nav-mesh-id #x48db
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 2293435.5 :y 38841.547 :z 6626262.0)
|
||||
:nav-mesh-id #x48db
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 2510294.8 :y 35697.46 :z 6572563.5)
|
||||
:nav-mesh-id #x48e9
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 2539388.0 :y 36340.53 :z 6489415.0)
|
||||
:nav-mesh-id #x48e9
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 2446294.8 :y 35794.535 :z 6219815.5)
|
||||
:nav-mesh-id #x48e9
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 2430483.8 :y 23202.611 :z 6190160.5)
|
||||
:nav-mesh-id #x48e9
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 2307473.0 :y 22759.834 :z 5994905.0)
|
||||
:nav-mesh-id #x48e9
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 2275430.0 :y 56630.066 :z 5951815.0)
|
||||
:nav-mesh-id #x48e9
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 2247085.8 :y 59249.05 :z 5913271.0)
|
||||
:nav-mesh-id #x48e9
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 2208775.2 :y 40428.34 :z 5866126.0)
|
||||
:nav-mesh-id #x48e9
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 2049703.5 :y 35709.746 :z 5719040.0)
|
||||
:nav-mesh-id #x48e9
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 1805794.9 :y 35787.98 :z 5533326.0)
|
||||
:nav-mesh-id #x48e9
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 1550716.5 :y 35767.91 :z 5390949.0)
|
||||
:nav-mesh-id #x48e9
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 1386327.6 :y 35697.05 :z 5346631.0)
|
||||
:nav-mesh-id #x48e9
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 1270820.5 :y 35735.14 :z 5479013.0)
|
||||
:nav-mesh-id #x48e9
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 1179094.6 :y 35735.55 :z 5589237.0)
|
||||
:nav-mesh-id #x48e9
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 1153597.0 :y 23880.09 :z 5588172.0)
|
||||
:nav-mesh-id #x48e9
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 1028533.9 :y 21655.96 :z 5589810.5)
|
||||
:nav-mesh-id #x48e9
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 1001635.44 :y 37785.19 :z 5586247.0)
|
||||
:nav-mesh-id #x48e9
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 782425.7 :y 35723.67 :z 5569207.0)
|
||||
:nav-mesh-id #x48cc
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 574987.9 :y 35949.363 :z 5584567.0)
|
||||
:nav-mesh-id #x48cc
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 546176.6 :y 21655.553 :z 5588704.5)
|
||||
:nav-mesh-id #x48cc
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 417185.38 :y 24605.082 :z 5599353.5)
|
||||
:nav-mesh-id #x48cc
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
(define *bombbot-path-6* (new 'static 'bombbot-path
|
||||
:node-count #x1a
|
||||
:node (new 'static 'inline-array bombbot-node 26
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 4673330.5 :y 103528.04 :z 4155801.2)
|
||||
:nav-mesh-id #x34ad
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 4680252.0 :y 103531.31 :z 3704430.2)
|
||||
:nav-mesh-id #x34ad
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 4259757.5 :y 103531.31 :z 3700010.5)
|
||||
:nav-mesh-id #x34ad
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 3996306.8 :y 103531.31 :z 3698474.5)
|
||||
:nav-mesh-id #x34ad
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 3866263.2 :y 103531.31 :z 3698322.8)
|
||||
:nav-mesh-id #x34ad
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 3350626.0 :y 103528.04 :z 3702615.8)
|
||||
:nav-mesh-id #x34ad
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 3346918.5 :y 103528.04 :z 4084702.5)
|
||||
:nav-mesh-id #x34ad
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 3694755.5 :y 103528.04 :z 4096572.5)
|
||||
:nav-mesh-id #x34ad
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 3703221.8 :y 103528.04 :z 4352286.0)
|
||||
:nav-mesh-id #x34ad
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 3958894.2 :y 103528.04 :z 4364409.5)
|
||||
:nav-mesh-id #x34ad
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 3958861.5 :y 103528.04 :z 4683570.5)
|
||||
:nav-mesh-id #x34ad
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 3573743.2 :y 103528.04 :z 4682791.5)
|
||||
:nav-mesh-id #x34ad
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 3563831.0 :y 103528.04 :z 4222893.5)
|
||||
:nav-mesh-id #x34ad
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 3185090.2 :y 103528.04 :z 4217609.5)
|
||||
:nav-mesh-id #x34ad
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 3184090.8 :y 103443.25 :z 3811204.8)
|
||||
:nav-mesh-id #x34ad
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 3179494.5 :y 36837.375 :z 3575176.5)
|
||||
:nav-mesh-id #x34ad
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 3264048.8 :y 36837.375 :z 3525590.8)
|
||||
:nav-mesh-id #x34ad
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 3247177.0 :y 36837.375 :z 4148510.0)
|
||||
:nav-mesh-id #x34ad
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 3650235.5 :y 36837.375 :z 4178902.8)
|
||||
:nav-mesh-id #x34ad
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 3655273.8 :y 36837.375 :z 4465417.5)
|
||||
:nav-mesh-id #x34ad
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 3942530.8 :y 36837.375 :z 4631551.0)
|
||||
:nav-mesh-id #x34ad
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 4158422.8 :y 36837.375 :z 4682956.0)
|
||||
:nav-mesh-id #x34ad
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 4413520.5 :y 103528.04 :z 4686642.5)
|
||||
:nav-mesh-id #x34ad
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 4432117.0 :y 103528.04 :z 4430192.0)
|
||||
:nav-mesh-id #x34ad
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 4616723.5 :y 103528.04 :z 4419378.5)
|
||||
:nav-mesh-id #x34ad
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 4627783.0 :y 103531.31 :z 4174642.5)
|
||||
:nav-mesh-id #x34ad
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -202,7 +202,72 @@
|
||||
:default-hit-points 1
|
||||
:gnd-collide-with (collide-spec backgnd)
|
||||
:overlaps-others-collide-with-filter (collide-spec jak bot player-list)
|
||||
:penetrate-knocked #xffffffffffffffff
|
||||
:penetrate-knocked (penetrate
|
||||
touch
|
||||
generic-attack
|
||||
lunge
|
||||
flop
|
||||
punch
|
||||
spin
|
||||
roll
|
||||
uppercut
|
||||
bonk
|
||||
tube
|
||||
vehicle
|
||||
flut-attack
|
||||
board
|
||||
mech
|
||||
mech-punch
|
||||
mech-bonk
|
||||
dark-skin
|
||||
dark-punch
|
||||
dark-bomb
|
||||
dark-giant
|
||||
shield
|
||||
explode
|
||||
jak-yellow-shot
|
||||
jak-red-shot
|
||||
jak-blue-shot
|
||||
jak-dark-shot
|
||||
enemy-yellow-shot
|
||||
enemy-dark-shot
|
||||
eco-yellow
|
||||
eco-red
|
||||
eco-blue
|
||||
eco-green
|
||||
knocked
|
||||
penetrate-33
|
||||
penetrate-34
|
||||
penetrate-35
|
||||
penetrate-36
|
||||
penetrate-37
|
||||
penetrate-38
|
||||
penetrate-39
|
||||
penetrate-40
|
||||
penetrate-41
|
||||
penetrate-42
|
||||
penetrate-43
|
||||
penetrate-44
|
||||
penetrate-45
|
||||
penetrate-46
|
||||
penetrate-47
|
||||
penetrate-48
|
||||
penetrate-49
|
||||
penetrate-50
|
||||
penetrate-51
|
||||
penetrate-52
|
||||
penetrate-53
|
||||
penetrate-54
|
||||
penetrate-55
|
||||
penetrate-56
|
||||
penetrate-57
|
||||
penetrate-58
|
||||
penetrate-59
|
||||
penetrate-60
|
||||
penetrate-61
|
||||
penetrate-62
|
||||
penetrate-63
|
||||
)
|
||||
:movement-gravity (meters -100)
|
||||
:friction 0.8
|
||||
:attack-shove-back (meters 3)
|
||||
@@ -289,7 +354,6 @@
|
||||
((method-of-type nav-enemy kill-prefer-falling) obj)
|
||||
)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
|
||||
(defmethod enemy-method-90 hopper ((obj hopper) (arg0 int) (arg1 enemy-jump-info))
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -7,3 +7,412 @@
|
||||
|
||||
;; DECOMP BEGINS
|
||||
|
||||
(defun fortress-login ()
|
||||
(set! *nav-network* (new 'loading-level 'nav-network))
|
||||
(nav-network-method-9 *nav-network*)
|
||||
0
|
||||
(none)
|
||||
)
|
||||
|
||||
(defun fortress-deactivate ()
|
||||
(set! *nav-network* (the-as nav-network 0))
|
||||
0
|
||||
(none)
|
||||
)
|
||||
|
||||
(defun fortress-activate ((arg0 level))
|
||||
(nav-network-method-10 *nav-network* arg0 *fortress-adjacency*)
|
||||
(none)
|
||||
)
|
||||
|
||||
(deftype fort-elec-button (cty-guard-turret-button)
|
||||
((start-up? symbol :offset-assert 288)
|
||||
)
|
||||
:heap-base #xb0
|
||||
:method-count-assert 41
|
||||
:size-assert #x124
|
||||
:flag-assert #x2900b00124
|
||||
(:methods
|
||||
(waiting () _type_ :state 40)
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
(defskelgroup skel-fort-elec-button cty-guard-turret-button cty-guard-turret-button-lod0-jg cty-guard-turret-button-idle-ja
|
||||
((cty-guard-turret-button-lod0-mg (meters 999999)))
|
||||
:bounds (static-spherem 0 0 0 3)
|
||||
)
|
||||
|
||||
(defstate waiting (fort-elec-button)
|
||||
:virtual #t
|
||||
:event (behavior ((proc process) (arg1 int) (event-type symbol) (event event-message-block))
|
||||
(case event-type
|
||||
(('trigger)
|
||||
(go-virtual pop-up)
|
||||
)
|
||||
)
|
||||
)
|
||||
:code (the-as (function none :behavior fort-elec-button) sleep-code)
|
||||
)
|
||||
|
||||
(defmethod basebutton-method-33 fort-elec-button ((obj fort-elec-button))
|
||||
"TODO - joint stuff"
|
||||
(initialize-skeleton
|
||||
obj
|
||||
(the-as skeleton-group (art-group-get-by-name *level* "skel-fort-elec-button" (the-as (pointer uint32) #f)))
|
||||
(the-as pair 0)
|
||||
)
|
||||
(ja-channel-set! 1)
|
||||
(cond
|
||||
((-> obj start-up?)
|
||||
(let ((a0-4 (-> obj skel root-channel 0)))
|
||||
(set! (-> a0-4 frame-group) (the-as art-joint-anim (-> obj draw art-group data 3)))
|
||||
(set! (-> a0-4 frame-num)
|
||||
(the float (+ (-> (the-as art-joint-anim (-> obj draw art-group data 3)) frames num-frames) -1))
|
||||
)
|
||||
(joint-control-channel-group! a0-4 (the-as art-joint-anim (-> obj draw art-group data 3)) num-func-identity)
|
||||
)
|
||||
)
|
||||
(else
|
||||
(let ((a0-5 (-> obj skel root-channel 0)))
|
||||
(set! (-> a0-5 frame-group) (the-as art-joint-anim (-> obj draw art-group data 3)))
|
||||
(set! (-> a0-5 frame-num) 0.0)
|
||||
(joint-control-channel-group! a0-5 (the-as art-joint-anim (-> obj draw art-group data 3)) num-func-identity)
|
||||
)
|
||||
)
|
||||
)
|
||||
(transform-post)
|
||||
(none)
|
||||
)
|
||||
|
||||
;; WARN: Return type mismatch process-mask vs none.
|
||||
(defmethod prepare-trigger-event! fort-elec-button ((obj fort-elec-button))
|
||||
"Sets `event-going-down` to `'trigger`"
|
||||
(set! (-> obj start-up?) (= 1 (res-lump-value (-> obj entity) 'extra-id uint :time -1000000000.0)))
|
||||
(set! (-> obj event-going-down) 'trigger)
|
||||
(process-entity-status! obj (entity-perm-status no-kill) #t)
|
||||
(logclear! (-> obj mask) (process-mask actor-pause))
|
||||
(none)
|
||||
)
|
||||
|
||||
(defmethod idle-state-transition fort-elec-button ((obj fort-elec-button))
|
||||
"If `button-status` has [[button-status:0]] set, transition to [[basebutton::27]] otherwise, [[basebutton::30]]"
|
||||
(cond
|
||||
((-> obj start-up?)
|
||||
(let ((s5-0 (-> obj skel root-channel 0)))
|
||||
(joint-control-channel-group-eval!
|
||||
s5-0
|
||||
(the-as art-joint-anim (-> obj draw art-group data 2))
|
||||
num-func-identity
|
||||
)
|
||||
(set! (-> s5-0 frame-num) 0.0)
|
||||
)
|
||||
(go (method-of-object obj up-idle))
|
||||
)
|
||||
(else
|
||||
(go (method-of-object obj waiting))
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
(deftype fort-led (process-drawable)
|
||||
((button-actor entity-actor :offset-assert 200)
|
||||
)
|
||||
:heap-base #x50
|
||||
:method-count-assert 22
|
||||
:size-assert #xcc
|
||||
:flag-assert #x16005000cc
|
||||
(:methods
|
||||
(red () _type_ :state 20)
|
||||
(green () _type_ :state 21)
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
(defskelgroup skel-fort-led fort-led fort-led-lod0-jg fort-led-idle-ja
|
||||
((fort-led-lod0-mg (meters 999999)))
|
||||
:bounds (static-spherem 0 0 0 4)
|
||||
)
|
||||
|
||||
(defstate red (fort-led)
|
||||
:virtual #t
|
||||
:event (behavior ((proc process) (arg1 int) (event-type symbol) (event event-message-block))
|
||||
(case event-type
|
||||
(('trigger)
|
||||
(go-virtual green)
|
||||
)
|
||||
)
|
||||
)
|
||||
:code (behavior ()
|
||||
(setup-masks (-> self draw) 4 2)
|
||||
(ja-post)
|
||||
(sleep-code)
|
||||
(none)
|
||||
)
|
||||
)
|
||||
|
||||
(defstate green (fort-led)
|
||||
:virtual #t
|
||||
:event (behavior ((proc process) (arg1 int) (event-type symbol) (event event-message-block))
|
||||
(case event-type
|
||||
(('untrigger)
|
||||
(go-virtual red)
|
||||
)
|
||||
)
|
||||
)
|
||||
:code (behavior ()
|
||||
(setup-masks (-> self draw) 2 4)
|
||||
(ja-post)
|
||||
(sleep-code)
|
||||
(none)
|
||||
)
|
||||
)
|
||||
|
||||
;; WARN: Return type mismatch object vs none.
|
||||
(defmethod init-from-entity! fort-led ((obj fort-led) (arg0 entity-actor))
|
||||
"Typically the method that does the initial setup on the process, potentially using the [[entity-actor]] provided as part of that.
|
||||
This commonly includes things such as:
|
||||
- stack size
|
||||
- collision information
|
||||
- loading the skeleton group / bones
|
||||
- sounds"
|
||||
(set! (-> obj root) (new 'process 'trsqv))
|
||||
(process-drawable-from-entity! obj arg0)
|
||||
(initialize-skeleton
|
||||
obj
|
||||
(the-as skeleton-group (art-group-get-by-name *level* "skel-fort-led" (the-as (pointer uint32) #f)))
|
||||
(the-as pair 0)
|
||||
)
|
||||
(set! (-> obj button-actor) (entity-actor-lookup arg0 'alt-actor 0))
|
||||
(if (and (-> obj button-actor)
|
||||
(logtest? (-> obj button-actor extra perm status) (entity-perm-status subtask-complete))
|
||||
)
|
||||
(go (method-of-object obj green))
|
||||
(go (method-of-object obj red))
|
||||
)
|
||||
(none)
|
||||
)
|
||||
|
||||
(deftype elec-lock-gate (fort-elec-gate)
|
||||
((actor-group (pointer actor-group) :offset-assert 516)
|
||||
(actor-group-count int32 :offset-assert 520)
|
||||
(all-gone? symbol :offset-assert 524)
|
||||
)
|
||||
:heap-base #x190
|
||||
:method-count-assert 32
|
||||
:size-assert #x210
|
||||
:flag-assert #x2001900210
|
||||
(:methods
|
||||
(pre-shutdown () _type_ :state 30)
|
||||
(elec-lock-gate-method-31 (_type_ symbol) symbol 31)
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
(defstate active (elec-lock-gate)
|
||||
:virtual #t
|
||||
:event (behavior ((proc process) (arg1 int) (event-type symbol) (event event-message-block))
|
||||
(case event-type
|
||||
(('trigger)
|
||||
(if (elec-lock-gate-method-31 self (the-as symbol proc))
|
||||
(go-virtual pre-shutdown)
|
||||
)
|
||||
)
|
||||
(else
|
||||
((-> (method-of-type elec-gate active) event) proc arg1 event-type event)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
(defstate pre-shutdown (elec-lock-gate)
|
||||
:virtual #t
|
||||
:trans (-> (method-of-type elec-lock-gate active) trans)
|
||||
:code (behavior ()
|
||||
(let ((a0-0 *target*))
|
||||
(when (and a0-0 (< 81920.0 (vector-vector-distance (get-trans a0-0 0) (-> self root trans))))
|
||||
(set! (-> self quality-enabled?) #f)
|
||||
(let ((gp-1 (-> self clock frame-counter)))
|
||||
(until (>= (- (-> self clock frame-counter) gp-1) (seconds 0.5))
|
||||
(suspend)
|
||||
)
|
||||
)
|
||||
(hide-hud-quick #f)
|
||||
(set-setting! 'entity-name "camera-243" 0 0)
|
||||
(set-setting! 'process-mask 'set 0 (process-mask movie enemy))
|
||||
(process-grab? *target* #f)
|
||||
(let ((gp-2 (-> self clock frame-counter)))
|
||||
(until (>= (- (-> self clock frame-counter) gp-2) (seconds 2))
|
||||
(suspend)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(go-virtual shutdown)
|
||||
(none)
|
||||
)
|
||||
:post (-> (method-of-type elec-lock-gate active) post)
|
||||
)
|
||||
|
||||
(defstate shutdown (elec-lock-gate)
|
||||
:virtual #t
|
||||
:enter (behavior ()
|
||||
(let ((t9-1 (-> (the-as state (find-parent-method elec-lock-gate 22)) enter)))
|
||||
(if t9-1
|
||||
((the-as (function none) t9-1))
|
||||
)
|
||||
)
|
||||
(set! (-> self all-gone?) #f)
|
||||
(none)
|
||||
)
|
||||
:trans (behavior ()
|
||||
(let ((gp-0 #t))
|
||||
(dotimes (s5-0 5)
|
||||
(let ((s4-0 (-> self l-bolt s5-0)))
|
||||
(seek! (-> s4-0 pos) 0.0 (* (- 1.14 (-> s4-0 pos)) (-> self clock seconds-per-frame)))
|
||||
(set! gp-0 (cond
|
||||
((or (< 1.0 (-> s4-0 pos)) (>= 0.0 (-> s4-0 pos)))
|
||||
(let ((v1-9 (-> self l-bolt s5-0 bolt))
|
||||
(a0-1 3)
|
||||
)
|
||||
(let ((a1-2 (!= a0-1 (-> v1-9 state mode))))
|
||||
(case a0-1
|
||||
((3)
|
||||
(if a1-2
|
||||
(set! (-> v1-9 state counter) 0.0)
|
||||
)
|
||||
)
|
||||
((1)
|
||||
(set! (-> v1-9 state start-color) (-> v1-9 spec start-color))
|
||||
(set! (-> v1-9 state end-color) (-> v1-9 spec end-color))
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! (-> v1-9 state mode) (the-as lightning-mode a0-1))
|
||||
)
|
||||
(let ((v1-12 (-> self l-bolt s5-0 ring 0))
|
||||
(a0-2 3)
|
||||
)
|
||||
(let ((a1-12 (!= a0-2 (-> v1-12 state mode))))
|
||||
(case a0-2
|
||||
((3)
|
||||
(if a1-12
|
||||
(set! (-> v1-12 state counter) 0.0)
|
||||
)
|
||||
)
|
||||
((1)
|
||||
(set! (-> v1-12 state start-color) (-> v1-12 spec start-color))
|
||||
(set! (-> v1-12 state end-color) (-> v1-12 spec end-color))
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! (-> v1-12 state mode) (the-as lightning-mode a0-2))
|
||||
)
|
||||
(let ((v1-15 (-> self l-bolt s5-0 ring 1))
|
||||
(a0-3 3)
|
||||
)
|
||||
(let ((a1-22 (!= a0-3 (-> v1-15 state mode))))
|
||||
(case a0-3
|
||||
((3)
|
||||
(if a1-22
|
||||
(set! (-> v1-15 state counter) 0.0)
|
||||
)
|
||||
)
|
||||
((1)
|
||||
(set! (-> v1-15 state start-color) (-> v1-15 spec start-color))
|
||||
(set! (-> v1-15 state end-color) (-> v1-15 spec end-color))
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! (-> v1-15 state mode) (the-as lightning-mode a0-3))
|
||||
)
|
||||
gp-0
|
||||
)
|
||||
(else
|
||||
#f
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! (-> self all-gone?) gp-0)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
:code (behavior ()
|
||||
(until (-> self all-gone?)
|
||||
(let ((gp-0 (-> self clock frame-counter)))
|
||||
(until (>= (- (-> self clock frame-counter) gp-0) (seconds 0.5))
|
||||
(suspend)
|
||||
)
|
||||
)
|
||||
)
|
||||
(set-setting! 'interp-time 'abs 0 0)
|
||||
(remove-setting! 'entity-name)
|
||||
(remove-setting! 'process-mask)
|
||||
(dotimes (gp-1 2)
|
||||
(suspend)
|
||||
)
|
||||
(remove-setting! 'interp-time)
|
||||
(process-release? *target*)
|
||||
(go-virtual idle)
|
||||
(none)
|
||||
)
|
||||
)
|
||||
|
||||
(defmethod elec-lock-gate-method-31 elec-lock-gate ((obj elec-lock-gate) (arg0 symbol))
|
||||
(dotimes (v1-0 (-> obj actor-group-count))
|
||||
(dotimes (a2-0 (-> obj actor-group v1-0 length))
|
||||
(when (or (not arg0) (let ((a3-5 (-> obj actor-group v1-0 data a2-0 actor)))
|
||||
(!= (if a3-5
|
||||
(-> a3-5 extra process)
|
||||
)
|
||||
arg0
|
||||
)
|
||||
)
|
||||
)
|
||||
(if (not (logtest? (-> obj actor-group v1-0 data a2-0 actor extra perm status) (entity-perm-status subtask-complete))
|
||||
)
|
||||
(return #f)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
#t
|
||||
)
|
||||
|
||||
(defmethod set-state! elec-lock-gate ((obj elec-lock-gate))
|
||||
"If either [[actor-option::17]] is set on the [[elec-gate]] or the related subtask is completed
|
||||
make the gate `idle`.
|
||||
|
||||
Otherwise, the gate will be `active`."
|
||||
(if (elec-lock-gate-method-31 obj #f)
|
||||
(go (method-of-object obj shutdown))
|
||||
((method-of-type fort-elec-gate set-state!) obj)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
|
||||
(defmethod set-palette! elec-lock-gate ((obj elec-lock-gate))
|
||||
"Sets the [[elec-gate]]'s `palette-id` appropriately"
|
||||
(local-vars (sv-16 res-tag))
|
||||
(let ((t9-0 (method-of-type fort-elec-gate set-palette!)))
|
||||
(t9-0 obj)
|
||||
)
|
||||
(logclear! (-> obj mask) (process-mask actor-pause))
|
||||
(set! sv-16 (new 'static 'res-tag))
|
||||
(let ((v1-4 (res-lump-data (-> obj entity) 'actor-groups pointer :tag-ptr (& sv-16))))
|
||||
(cond
|
||||
((and v1-4 (nonzero? (-> sv-16 elt-count)))
|
||||
(set! (-> obj actor-group) (the-as (pointer actor-group) v1-4))
|
||||
(set! (-> obj actor-group-count) (the-as int (-> sv-16 elt-count)))
|
||||
)
|
||||
(else
|
||||
(set! (-> obj actor-group) (the-as (pointer actor-group) #f))
|
||||
(set! (-> obj actor-group-count) 0)
|
||||
0
|
||||
)
|
||||
)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
|
||||
@@ -7,3 +7,808 @@
|
||||
|
||||
;; DECOMP BEGINS
|
||||
|
||||
(deftype fort-twist-rail (process-drawable)
|
||||
((sync sync-eased :inline :offset-assert 200)
|
||||
(init-quat quaternion :inline :offset-assert 256)
|
||||
)
|
||||
:heap-base #x90
|
||||
:method-count-assert 21
|
||||
:size-assert #x110
|
||||
:flag-assert #x1500900110
|
||||
(:methods
|
||||
(idle () _type_ :state 20)
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
(defskelgroup skel-fort-twist-rail fort-twist-rail 0 3
|
||||
((1 (meters 999999)))
|
||||
:bounds (static-spherem 0 0 10 14)
|
||||
)
|
||||
|
||||
(defstate idle (fort-twist-rail)
|
||||
:virtual #t
|
||||
:trans (the-as (function none :behavior fort-twist-rail) rider-trans)
|
||||
:code (the-as (function none :behavior fort-twist-rail) sleep-code)
|
||||
:post (behavior ()
|
||||
(let ((f0-0 (get-norm! (-> self sync) 0)))
|
||||
(quaternion-rotate-y! (-> self root quat) (-> self init-quat) (+ -2730.6667 (* 5461.3335 f0-0)))
|
||||
)
|
||||
(rider-post)
|
||||
(none)
|
||||
)
|
||||
)
|
||||
|
||||
;; WARN: Return type mismatch object vs none.
|
||||
(defmethod init-from-entity! fort-twist-rail ((obj fort-twist-rail) (arg0 entity-actor))
|
||||
"Typically the method that does the initial setup on the process, potentially using the [[entity-actor]] provided as part of that.
|
||||
This commonly includes things such as:
|
||||
- stack size
|
||||
- collision information
|
||||
- loading the skeleton group / bones
|
||||
- sounds"
|
||||
(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)
|
||||
)
|
||||
(let ((s3-0 (new 'process 'collide-shape-prim-group s4-0 (the-as uint 2) 0)))
|
||||
(set! (-> s4-0 total-prims) (the-as uint 3))
|
||||
(set! (-> s3-0 prim-core collide-as) (collide-spec obstacle pusher))
|
||||
(set! (-> s3-0 prim-core collide-with) (collide-spec jak bot player-list))
|
||||
(set! (-> s3-0 prim-core action) (collide-action solid rideable))
|
||||
(set! (-> s3-0 transform-index) 3)
|
||||
(set-vector! (-> s3-0 local-sphere) 0.0 0.0 40960.0 57344.0)
|
||||
(set! (-> s4-0 root-prim) s3-0)
|
||||
)
|
||||
(pusher-init s4-0)
|
||||
(let ((v1-15 (new 'process 'collide-shape-prim-mesh s4-0 (the-as uint 1) (the-as uint 0))))
|
||||
(set! (-> v1-15 prim-core collide-as) (collide-spec pusher))
|
||||
(set! (-> v1-15 prim-core collide-with) (collide-spec jak bot player-list))
|
||||
(set! (-> v1-15 prim-core action) (collide-action solid rideable))
|
||||
(set! (-> v1-15 transform-index) 3)
|
||||
(set-vector! (-> v1-15 local-sphere) 0.0 -19660.8 0.0 24576.0)
|
||||
)
|
||||
(let ((v1-17 (new 'process 'collide-shape-prim-mesh s4-0 (the-as uint 0) (the-as uint 0))))
|
||||
(set! (-> v1-17 prim-core collide-as) (collide-spec pusher))
|
||||
(set! (-> v1-17 prim-core collide-with) (collide-spec jak bot player-list))
|
||||
(set! (-> v1-17 prim-core action) (collide-action solid rideable))
|
||||
(set! (-> v1-17 transform-index) 3)
|
||||
(set-vector! (-> v1-17 local-sphere) 0.0 0.0 45056.0 45056.0)
|
||||
)
|
||||
(set! (-> s4-0 nav-radius) (* 0.75 (-> s4-0 root-prim local-sphere w)))
|
||||
(let ((v1-20 (-> s4-0 root-prim)))
|
||||
(set! (-> s4-0 backup-collide-as) (-> v1-20 prim-core collide-as))
|
||||
(set! (-> s4-0 backup-collide-with) (-> v1-20 prim-core collide-with))
|
||||
)
|
||||
(set! (-> obj root) s4-0)
|
||||
)
|
||||
(process-drawable-from-entity! obj arg0)
|
||||
(initialize-skeleton
|
||||
obj
|
||||
(the-as skeleton-group (art-group-get-by-name *level* "skel-fort-twist-rail" (the-as (pointer uint32) #f)))
|
||||
(the-as pair 0)
|
||||
)
|
||||
(quaternion-copy! (-> obj init-quat) (-> obj root quat))
|
||||
(let ((a1-14 (new 'stack-no-clear 'sync-info-params)))
|
||||
(let ((v1-26 0))
|
||||
(if #t
|
||||
(set! v1-26 (logior v1-26 1))
|
||||
)
|
||||
(set! (-> a1-14 sync-type) 'sync-eased)
|
||||
(set! (-> a1-14 sync-flags) (the-as sync-flags v1-26))
|
||||
)
|
||||
(set! (-> a1-14 period) (the-as uint 900))
|
||||
(set! (-> a1-14 entity) (-> obj entity))
|
||||
(set! (-> a1-14 percent) 0.0)
|
||||
(set! (-> a1-14 ease-in) 0.15)
|
||||
(set! (-> a1-14 ease-out) 0.15)
|
||||
(set! (-> a1-14 pause-in) 0.0)
|
||||
(set! (-> a1-14 pause-out) 0.0)
|
||||
(initialize! (-> obj sync) a1-14)
|
||||
)
|
||||
(let ((a0-29 (-> obj skel root-channel 0)))
|
||||
(set! (-> a0-29 frame-group) (the-as art-joint-anim (-> obj draw art-group data 3)))
|
||||
(set! (-> a0-29 frame-num) 0.0)
|
||||
(joint-control-channel-group! a0-29 (the-as art-joint-anim (-> obj draw art-group data 3)) num-func-identity)
|
||||
)
|
||||
(transform-post)
|
||||
(go (method-of-object obj idle))
|
||||
(none)
|
||||
)
|
||||
|
||||
(deftype fort-elec-belt-inst (process-drawable)
|
||||
((l-spec lightning-spec :offset-assert 200)
|
||||
(l-bolt lightning-control :offset-assert 204)
|
||||
(points vector 17 :inline :offset-assert 208)
|
||||
(path-u float :offset-assert 480)
|
||||
(path-du float :offset-assert 484)
|
||||
(attack-id uint32 :offset-assert 488)
|
||||
(sound-id uint32 :offset-assert 492)
|
||||
)
|
||||
:heap-base #x170
|
||||
:method-count-assert 23
|
||||
:size-assert #x1f0
|
||||
:flag-assert #x17017001f0
|
||||
(:methods
|
||||
(idle () _type_ :state 20)
|
||||
(running () _type_ :state 21)
|
||||
(die () _type_ :state 22)
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
(defskelgroup skel-fort-elec-belt-inst fort-elec-belt fort-elec-belt-lod0-jg fort-elec-belt-idle-ja
|
||||
((fort-elec-belt-lod0-mg (meters 999999)))
|
||||
:bounds (static-spherem 0 0 -19 20)
|
||||
)
|
||||
|
||||
(defstate idle (fort-elec-belt-inst)
|
||||
:virtual #t
|
||||
:code (behavior ()
|
||||
(suspend)
|
||||
(let ((v1-0 (-> self l-bolt))
|
||||
(a0-0 1)
|
||||
)
|
||||
(let ((a1-1 (!= a0-0 (-> v1-0 state mode))))
|
||||
(case a0-0
|
||||
((3)
|
||||
(if a1-1
|
||||
(set! (-> v1-0 state counter) 0.0)
|
||||
)
|
||||
)
|
||||
((1)
|
||||
(set! (-> v1-0 state start-color) (-> v1-0 spec start-color))
|
||||
(set! (-> v1-0 state end-color) (-> v1-0 spec end-color))
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! (-> v1-0 state mode) (the-as lightning-mode a0-0))
|
||||
)
|
||||
(go-virtual running)
|
||||
(none)
|
||||
)
|
||||
:post (behavior ()
|
||||
(let ((a1-0 (new 'stack-no-clear 'event-message-block)))
|
||||
(set! (-> a1-0 from) (process->ppointer self))
|
||||
(set! (-> a1-0 num-params) 2)
|
||||
(set! (-> a1-0 message) 'get-point-norm)
|
||||
(set! (-> a1-0 param 0) (the-as uint (new 'stack-no-clear 'event-message-block)))
|
||||
(set! (-> a1-0 param 1) (the-as uint (-> self path-u)))
|
||||
(let ((v1-7 (the-as vector (send-event-function (ppointer->process (-> self parent)) a1-0))))
|
||||
(set! (-> self root trans quad) (-> v1-7 quad))
|
||||
)
|
||||
)
|
||||
(+! (-> self path-u) (* (-> self path-du) (-> self clock seconds-per-frame)))
|
||||
(ja-post)
|
||||
(none)
|
||||
)
|
||||
)
|
||||
|
||||
(defstate running (fort-elec-belt-inst)
|
||||
:virtual #t
|
||||
:exit (behavior ()
|
||||
(sound-stop (the-as sound-id (-> self sound-id)))
|
||||
(none)
|
||||
)
|
||||
:trans (behavior ()
|
||||
(if (>= (-> self path-u) 1.0)
|
||||
(go-virtual die)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
:code (the-as (function none :behavior fort-elec-belt-inst) sleep-code)
|
||||
:post (behavior ()
|
||||
(local-vars
|
||||
(sv-1696
|
||||
(function lightning-spec time-frame symbol process-drawable vector vector none :behavior lightning-tracker)
|
||||
)
|
||||
(sv-1712 lightning-spec)
|
||||
)
|
||||
(let ((a1-0 (new 'stack-no-clear 'event-message-block)))
|
||||
(set! (-> a1-0 from) (process->ppointer self))
|
||||
(set! (-> a1-0 num-params) 2)
|
||||
(set! (-> a1-0 message) 'get-point-norm)
|
||||
(set! (-> a1-0 param 0) (the-as uint (new 'stack-no-clear 'event-message-block)))
|
||||
(set! (-> a1-0 param 1) (the-as uint (-> self path-u)))
|
||||
(let ((v1-7 (the-as vector (send-event-function (ppointer->process (-> self parent)) a1-0))))
|
||||
(set! (-> self root trans quad) (-> v1-7 quad))
|
||||
)
|
||||
)
|
||||
(+! (-> self path-u) (* (-> self path-du) (-> self clock seconds-per-frame)))
|
||||
(let ((s3-0 (vector<-cspace! (new 'stack-no-clear 'vector) (-> self node-list data 4)))
|
||||
(s2-0 (vector<-cspace! (new 'stack-no-clear 'vector) (-> self node-list data 5)))
|
||||
)
|
||||
(let ((t2-0 (new 'stack-no-clear 'vector)))
|
||||
(vector+! t2-0 s3-0 s2-0)
|
||||
(vector-float*! t2-0 t2-0 0.5)
|
||||
(set! (-> t2-0 y) (+ -20480.0 (-> t2-0 y)))
|
||||
(sound-play "sliding-laser" :id (the-as sound-id (-> self sound-id)) :position t2-0)
|
||||
)
|
||||
(let* ((v0-4 (vector-normalize! (vector-! (new 'stack-no-clear 'vector) s2-0 s3-0) 1.0))
|
||||
(gp-1 (vector-cross! (new 'stack-no-clear 'vector) v0-4 *up-vector*))
|
||||
(s5-0 (-> self l-bolt))
|
||||
(f30-0 90112.0)
|
||||
(f0-6 (* f30-0 f30-0))
|
||||
(s4-1 (vector-! (new 'stack-no-clear 'vector) s2-0 s3-0))
|
||||
(f1-4 (* 0.5 (vector-length s4-1)))
|
||||
)
|
||||
(let ((f2-2 (* f1-4 f1-4)))
|
||||
(vector-float*! s4-1 s4-1 0.5)
|
||||
(vector+! s4-1 s3-0 s4-1)
|
||||
(+! (-> s4-1 y) (sqrtf (- f0-6 f2-2)))
|
||||
)
|
||||
(let* ((f0-12 (* 2.0 (asin (/ f1-4 f30-0))))
|
||||
(f28-1 (* 0.0625 f0-12))
|
||||
(s3-1 (new 'stack-no-clear 'vector))
|
||||
)
|
||||
(set! (-> s3-1 x) 0.0)
|
||||
(set! (-> s3-1 y) (- f30-0))
|
||||
(set! (-> s3-1 z) 0.0)
|
||||
(set! (-> s3-1 w) 0.0)
|
||||
(let ((a2-2 (quaternion-vector-angle! (new 'stack-no-clear 'quaternion) gp-1 (* -0.5 f0-12))))
|
||||
(vector-orient-by-quat! s3-1 s3-1 a2-2)
|
||||
)
|
||||
(dotimes (s2-1 17)
|
||||
(let ((s1-1 (vector+! (new 'stack-no-clear 'vector) s4-1 s3-1)))
|
||||
(set-point! s5-0 s2-1 s1-1)
|
||||
(set! (-> self points s2-1 quad) (-> s1-1 quad))
|
||||
)
|
||||
(let ((a2-5 (quaternion-vector-angle! (new 'stack-no-clear 'quaternion) gp-1 f28-1)))
|
||||
(vector-orient-by-quat! s3-1 s3-1 a2-5)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(let ((gp-2 (new 'stack-no-clear 'collide-query)))
|
||||
(let ((s5-1 (new 'stack-no-clear 'bounding-box)))
|
||||
(let ((a1-15 (new 'stack-no-clear 'inline-array 'sphere 17)))
|
||||
(dotimes (v1-37 17)
|
||||
(set! (-> a1-15 v1-37 quad) (-> self points v1-37 quad))
|
||||
(set! (-> a1-15 v1-37 r) 4096.0)
|
||||
)
|
||||
(set-from-spheres! s5-1 a1-15 17)
|
||||
)
|
||||
(set! (-> gp-2 collide-with) (collide-spec jak bot player-list))
|
||||
(set! (-> gp-2 ignore-process0) self)
|
||||
(set! (-> gp-2 ignore-process1) #f)
|
||||
(set! (-> gp-2 ignore-pat) (new 'static 'pat-surface :noentity #x1 :nojak #x1 :probe #x1 :noendlessfall #x1))
|
||||
(set! (-> gp-2 action-mask) (collide-action solid))
|
||||
(mem-copy! (the-as pointer (-> gp-2 bbox)) (the-as pointer s5-1) 32)
|
||||
)
|
||||
(fill-using-bounding-box *collide-cache* gp-2)
|
||||
)
|
||||
(let ((gp-3 1))
|
||||
(while (< gp-3 17)
|
||||
(let ((s3-2 (new 'stack-no-clear 'collide-query))
|
||||
(s5-2 (-> self points (+ gp-3 -1)))
|
||||
(s4-2 (-> self points gp-3))
|
||||
)
|
||||
(let ((v1-52 (vector-! (new 'stack-no-clear 'vector) s4-2 s5-2)))
|
||||
(set! (-> s3-2 start-pos quad) (-> s5-2 quad))
|
||||
(set! (-> s3-2 move-dist quad) (-> v1-52 quad))
|
||||
)
|
||||
(let ((v1-54 s3-2))
|
||||
(set! (-> v1-54 radius) 4096.0)
|
||||
(set! (-> v1-54 collide-with) (collide-spec jak bot player-list))
|
||||
(set! (-> v1-54 ignore-process0) self)
|
||||
(set! (-> v1-54 ignore-process1) #f)
|
||||
(set! (-> v1-54 ignore-pat) (new 'static 'pat-surface :noentity #x1 :nojak #x1 :probe #x1 :noendlessfall #x1))
|
||||
(set! (-> v1-54 action-mask) (collide-action solid semi-solid))
|
||||
)
|
||||
(when (>= (probe-using-line-sphere *collide-cache* s3-2) 0.0)
|
||||
(let* ((s2-2 (-> s3-2 best-other-tri collide-ptr))
|
||||
(s3-3 (if (type? s2-2 collide-shape-prim-sphere)
|
||||
(the-as collide-shape-prim-sphere s2-2)
|
||||
)
|
||||
)
|
||||
)
|
||||
(when s3-3
|
||||
(sound-play "laser-hit")
|
||||
(let ((s2-4 (get-process *default-dead-pool* lightning-tracker #x4000)))
|
||||
(when s2-4
|
||||
(let ((t9-19 (method-of-type lightning-tracker activate)))
|
||||
(t9-19
|
||||
(the-as lightning-tracker s2-4)
|
||||
*entity-pool*
|
||||
(symbol->string (-> lightning-tracker symbol))
|
||||
(the-as pointer #x70004000)
|
||||
)
|
||||
)
|
||||
(let ((s1-3 run-function-in-process)
|
||||
(s0-0 s2-4)
|
||||
)
|
||||
(set! sv-1696 lightning-tracker-init)
|
||||
(set! sv-1712 (-> self l-spec))
|
||||
(let ((a3-3 (the int (* 3.0 (rand-vu-float-range 5.0 11.0))))
|
||||
(t0-2 #f)
|
||||
(t1-2 #f)
|
||||
)
|
||||
((the-as (function object object object object object object object object none) s1-3)
|
||||
s0-0
|
||||
sv-1696
|
||||
sv-1712
|
||||
a3-3
|
||||
t0-2
|
||||
t1-2
|
||||
s5-2
|
||||
s4-2
|
||||
)
|
||||
)
|
||||
)
|
||||
(-> s2-4 ppointer)
|
||||
)
|
||||
)
|
||||
(let ((v1-68 (vector-reset! (new 'stack-no-clear 'vector)))
|
||||
(a1-28 (new 'stack-no-clear 'event-message-block))
|
||||
)
|
||||
(set! (-> a1-28 from) (process->ppointer self))
|
||||
(set! (-> a1-28 num-params) 2)
|
||||
(set! (-> a1-28 message) 'attack)
|
||||
(set! (-> a1-28 param 0) (the-as uint #f))
|
||||
(let ((a0-50 (new 'static 'attack-info :mask (attack-info-mask vector invinc-time shove-up id))))
|
||||
(set! (-> a0-50 id) (-> self attack-id))
|
||||
(set! (-> a0-50 invinc-time) (seconds 3))
|
||||
(set! (-> a0-50 vector quad) (-> v1-68 quad))
|
||||
(set! (-> a0-50 shove-up) 12288.0)
|
||||
(set! (-> a1-28 param 1) (the-as uint a0-50))
|
||||
)
|
||||
(send-event-function (-> s3-3 cshape process) a1-28)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(+! gp-3 1)
|
||||
)
|
||||
)
|
||||
(ja-post)
|
||||
(none)
|
||||
)
|
||||
)
|
||||
|
||||
(defstate die (fort-elec-belt-inst)
|
||||
:virtual #t
|
||||
:code (behavior ()
|
||||
(let ((v1-0 (-> self l-bolt))
|
||||
(a0-0 3)
|
||||
)
|
||||
(let ((a1-1 (!= a0-0 (-> v1-0 state mode))))
|
||||
(case a0-0
|
||||
((3)
|
||||
(if a1-1
|
||||
(set! (-> v1-0 state counter) 0.0)
|
||||
)
|
||||
)
|
||||
((1)
|
||||
(set! (-> v1-0 state start-color) (-> v1-0 spec start-color))
|
||||
(set! (-> v1-0 state end-color) (-> v1-0 spec end-color))
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! (-> v1-0 state mode) (the-as lightning-mode a0-0))
|
||||
)
|
||||
(suspend)
|
||||
(cleanup-for-death self)
|
||||
(none)
|
||||
)
|
||||
)
|
||||
|
||||
;; WARN: Return type mismatch process-drawable vs fort-elec-belt-inst.
|
||||
(defmethod relocate fort-elec-belt-inst ((obj fort-elec-belt-inst) (arg0 int))
|
||||
(if (nonzero? (-> obj l-bolt))
|
||||
(&+! (-> obj l-bolt) arg0)
|
||||
)
|
||||
(the-as fort-elec-belt-inst ((method-of-type process-drawable relocate) obj arg0))
|
||||
)
|
||||
|
||||
(defmethod deactivate fort-elec-belt-inst ((obj fort-elec-belt-inst))
|
||||
(sound-stop (the-as sound-id (-> obj sound-id)))
|
||||
((the-as (function process-drawable none) (find-parent-method fort-elec-belt-inst 10)) obj)
|
||||
(none)
|
||||
)
|
||||
|
||||
;; WARN: Return type mismatch object vs none.
|
||||
(defbehavior fort-elec-belt-inst-init-by-other fort-elec-belt-inst ((arg0 quaternion) (arg1 float) (arg2 float) (arg3 lightning-spec) (arg4 uint))
|
||||
(set! (-> self root) (new 'process 'trsqv))
|
||||
(initialize-skeleton
|
||||
self
|
||||
(the-as
|
||||
skeleton-group
|
||||
(art-group-get-by-name *level* "skel-fort-elec-belt-inst" (the-as (pointer uint32) #f))
|
||||
)
|
||||
(the-as pair 0)
|
||||
)
|
||||
(quaternion-copy! (-> self root quat) arg0)
|
||||
(set! (-> self path-u) arg1)
|
||||
(set! (-> self path-du) arg2)
|
||||
(logclear! (-> self mask) (process-mask actor-pause))
|
||||
(set! (-> self l-bolt) (new 'process 'lightning-control arg3 self 0.0))
|
||||
(let ((v1-8 (-> self l-bolt))
|
||||
(a0-7 0)
|
||||
)
|
||||
(let ((a1-7 (!= a0-7 (-> v1-8 state mode))))
|
||||
(case a0-7
|
||||
((3)
|
||||
(if a1-7
|
||||
(set! (-> v1-8 state counter) 0.0)
|
||||
)
|
||||
)
|
||||
((1)
|
||||
(set! (-> v1-8 state start-color) (-> v1-8 spec start-color))
|
||||
(set! (-> v1-8 state end-color) (-> v1-8 spec end-color))
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! (-> v1-8 state mode) (the-as lightning-mode a0-7))
|
||||
)
|
||||
(set! (-> self l-spec) arg3)
|
||||
(set! (-> self attack-id) arg4)
|
||||
(set! (-> self sound-id) (the-as uint (new-sound-id)))
|
||||
(ja-no-eval :group! (-> self draw art-group data 2) :num! zero)
|
||||
(ja-post)
|
||||
(go-virtual idle)
|
||||
(none)
|
||||
)
|
||||
|
||||
(deftype fort-elec-belt (process)
|
||||
((l-spec lightning-spec :offset-assert 128)
|
||||
(next-spawn-time time-frame :offset-assert 136)
|
||||
(path path-control :offset-assert 144)
|
||||
(init-quat quaternion :inline :offset-assert 160)
|
||||
(sync sync-linear :inline :offset-assert 176)
|
||||
(attack-id uint32 :offset-assert 192)
|
||||
(path-du float :offset-assert 196)
|
||||
)
|
||||
:heap-base #x50
|
||||
:method-count-assert 16
|
||||
:size-assert #xc8
|
||||
:flag-assert #x10005000c8
|
||||
(:methods
|
||||
(idle () _type_ :state 14)
|
||||
(fort-elec-belt-method-15 (_type_) none 15)
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
(defstate idle (fort-elec-belt)
|
||||
:virtual #t
|
||||
:event (behavior ((proc process) (arg1 int) (event-type symbol) (event event-message-block))
|
||||
(the-as object (case event-type
|
||||
(('get-point-norm)
|
||||
(get-point-at-percent-along-path!
|
||||
(-> self path)
|
||||
(the-as vector (-> event param 0))
|
||||
(the-as float (-> event param 1))
|
||||
'interp
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
:trans (behavior ()
|
||||
(set-forrescb-electricity-scale! 1.0 0)
|
||||
(when (>= (-> self clock frame-counter) (-> self next-spawn-time))
|
||||
(process-spawn
|
||||
fort-elec-belt-inst
|
||||
(-> self init-quat)
|
||||
0
|
||||
(-> self path-du)
|
||||
(-> self l-spec)
|
||||
(-> self attack-id)
|
||||
:to self
|
||||
)
|
||||
(set! (-> self next-spawn-time) (get-timeframe-offset! (-> self sync) 0))
|
||||
)
|
||||
(none)
|
||||
)
|
||||
:code (the-as (function none :behavior fort-elec-belt) sleep-code)
|
||||
)
|
||||
|
||||
;; WARN: Return type mismatch symbol vs none.
|
||||
(defmethod fort-elec-belt-method-15 fort-elec-belt ((obj fort-elec-belt))
|
||||
(with-pp
|
||||
(let* ((f28-0 (total-distance (-> obj path)))
|
||||
(s5-0 (-> obj sync))
|
||||
(f26-0 81.92)
|
||||
(a0-3 (- (-> pp clock frame-counter) (get-timeframe-offset! s5-0 0)))
|
||||
(v1-6 (-> s5-0 period))
|
||||
(f30-0 (/ (* f26-0 (the float a0-3)) f28-0))
|
||||
(f28-1 (/ (* f26-0 (the float v1-6)) f28-0))
|
||||
)
|
||||
(while (>= 1.0 f30-0)
|
||||
(if (>= f30-0 0.0)
|
||||
(process-spawn
|
||||
fort-elec-belt-inst
|
||||
(-> obj init-quat)
|
||||
f30-0
|
||||
(-> obj path-du)
|
||||
(-> obj l-spec)
|
||||
(-> obj attack-id)
|
||||
:to obj
|
||||
)
|
||||
)
|
||||
(+! f30-0 f28-1)
|
||||
)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
)
|
||||
|
||||
;; WARN: Return type mismatch process vs fort-elec-belt.
|
||||
(defmethod relocate fort-elec-belt ((obj fort-elec-belt) (arg0 int))
|
||||
(if (nonzero? (-> obj path))
|
||||
(&+! (-> obj path) arg0)
|
||||
)
|
||||
(the-as fort-elec-belt ((method-of-type process relocate) obj arg0))
|
||||
)
|
||||
|
||||
;; WARN: Return type mismatch object vs none.
|
||||
(defmethod init-from-entity! fort-elec-belt ((obj fort-elec-belt) (arg0 entity-actor))
|
||||
"Typically the method that does the initial setup on the process, potentially using the [[entity-actor]] provided as part of that.
|
||||
This commonly includes things such as:
|
||||
- stack size
|
||||
- collision information
|
||||
- loading the skeleton group / bones
|
||||
- sounds"
|
||||
(local-vars (sv-64 int))
|
||||
(quaternion-copy! (-> obj init-quat) (-> arg0 quat))
|
||||
(let ((s5-0 (new 'stack-no-clear 'sync-info-params)))
|
||||
(let ((s3-0 1200))
|
||||
0.0
|
||||
(set! sv-64 0)
|
||||
(let ((v1-1 (res-lump-data arg0 'sync (pointer float) :tag-ptr (the-as (pointer res-tag) (& sv-64)))))
|
||||
(when v1-1
|
||||
(set! s3-0 (the int (* 300.0 (-> v1-1 0))))
|
||||
(-> v1-1 1)
|
||||
)
|
||||
)
|
||||
(let ((v1-2 0))
|
||||
(if #t
|
||||
(set! v1-2 (logior v1-2 1))
|
||||
)
|
||||
(set! (-> s5-0 sync-type) 'sync-linear)
|
||||
(set! (-> s5-0 sync-flags) (the-as sync-flags v1-2))
|
||||
)
|
||||
(set! (-> s5-0 entity) arg0)
|
||||
(set! (-> s5-0 period) (the-as uint s3-0))
|
||||
)
|
||||
(set! (-> s5-0 percent) 0.0)
|
||||
(initialize! (-> obj sync) s5-0)
|
||||
)
|
||||
(set! (-> obj l-spec) (new 'static 'lightning-spec
|
||||
:name #f
|
||||
:flags (lightning-spec-flags lsf2)
|
||||
:rand-func #x2
|
||||
:start-color (new 'static 'rgba :r #xff :g #xff :b #xff :a #x80)
|
||||
:end-color (new 'static 'rgba :a #x80)
|
||||
:fade-to-color (new 'static 'rgba :r #xbf :b #x8f :a #x5)
|
||||
:fade-start-factor 0.2
|
||||
:fade-time 120.0
|
||||
:texture (new 'static 'texture-id :index #x83 :page #xc)
|
||||
:reduction 0.72
|
||||
:num-points 17
|
||||
:box-size 4997.12
|
||||
:merge-factor 0.32
|
||||
:merge-count 2
|
||||
:radius 7372.8
|
||||
:duration -1.0
|
||||
:sound #f
|
||||
)
|
||||
)
|
||||
(set! (-> obj path) (new 'process 'path-control obj 'path 0.0 (the-as entity #f) #f))
|
||||
(logior! (-> obj path flags) (path-control-flag display draw-line draw-point draw-text))
|
||||
(set! (-> obj path-du) (/ 24576.0 (total-distance (-> obj path))))
|
||||
(let* ((v1-14 *game-info*)
|
||||
(a0-15 (+ (-> v1-14 attack-id) 1))
|
||||
)
|
||||
(set! (-> v1-14 attack-id) a0-15)
|
||||
(set! (-> obj attack-id) a0-15)
|
||||
)
|
||||
(fort-elec-belt-method-15 obj)
|
||||
(set! (-> obj next-spawn-time) (get-timeframe-offset! (-> obj sync) 0))
|
||||
(logclear! (-> obj mask) (process-mask actor-pause))
|
||||
(go (method-of-object obj idle))
|
||||
(none)
|
||||
)
|
||||
|
||||
(deftype fort-conveyor (conveyor)
|
||||
()
|
||||
:heap-base #x80
|
||||
:method-count-assert 28
|
||||
:size-assert #x100
|
||||
:flag-assert #x1c00800100
|
||||
)
|
||||
|
||||
|
||||
(defskelgroup skel-fort-conveyor fort-conveyor fort-conveyor-lod0-jg fort-conveyor-idle-ja
|
||||
((fort-conveyor-lod0-mg (meters 999999)))
|
||||
:bounds (static-spherem 0 0 16 16.5)
|
||||
)
|
||||
|
||||
(defmethod get-art-group fort-conveyor ((obj fort-conveyor))
|
||||
"@returns The respective [[art-group]] for the [[conveyor]]"
|
||||
(art-group-get-by-name *level* "skel-fort-conveyor" (the-as (pointer uint32) #f))
|
||||
)
|
||||
|
||||
;; WARN: Return type mismatch collide-shape-moving vs none.
|
||||
(defmethod reset-root! fort-conveyor ((obj fort-conveyor))
|
||||
"Re-initializes the `root` [[trsqv]]"
|
||||
(let ((s5-0 (new 'process 'collide-shape-moving obj (collide-list-enum hit-by-player))))
|
||||
(set! (-> s5-0 dynam) (copy *standard-dynamics* 'process))
|
||||
(set! (-> s5-0 reaction) cshape-reaction-default)
|
||||
(set! (-> s5-0 no-reaction)
|
||||
(the-as (function collide-shape-moving collide-query vector vector object) nothing)
|
||||
)
|
||||
(let ((s4-0 (new 'process 'collide-shape-prim-mesh s5-0 (the-as uint 0) (the-as uint 0))))
|
||||
(set! (-> s4-0 prim-core collide-as) (collide-spec pusher))
|
||||
(set! (-> s4-0 prim-core collide-with) (collide-spec jak player-list))
|
||||
(set! (-> s4-0 prim-core action) (collide-action solid rideable))
|
||||
(set! (-> s4-0 transform-index) 0)
|
||||
(set-vector! (-> s4-0 local-sphere) 0.0 0.0 65536.0 67584.0)
|
||||
(set! (-> s5-0 total-prims) (the-as uint 1))
|
||||
(set! (-> s5-0 root-prim) s4-0)
|
||||
)
|
||||
(pusher-init s5-0)
|
||||
(set! (-> s5-0 nav-radius) (* 0.75 (-> s5-0 root-prim local-sphere w)))
|
||||
(let ((v1-15 (-> s5-0 root-prim)))
|
||||
(set! (-> s5-0 backup-collide-as) (-> v1-15 prim-core collide-as))
|
||||
(set! (-> s5-0 backup-collide-with) (-> v1-15 prim-core collide-with))
|
||||
)
|
||||
(set! (-> obj root) s5-0)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
|
||||
;; WARN: Return type mismatch vector vs none.
|
||||
(defmethod init! fort-conveyor ((obj fort-conveyor))
|
||||
"Initializes defaults for things like the `speed` and `belt-radius`"
|
||||
(set! (-> obj speed) -47104.0)
|
||||
(set! (-> obj belt-radius) 24576.0)
|
||||
(set! (-> obj pull-y-threshold) 4096.0)
|
||||
(if (name= (-> obj name) "fort-conveyor-4")
|
||||
(set-vector! (-> obj root scale) 0.8 0.0 0.657 1.0)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
|
||||
(defmethod set-and-get-ambient-sound! fort-conveyor ((obj fort-conveyor))
|
||||
"So long as [[actor-option::16]] is not set, fetch the [[ambient-sound]] for the [[conveyor]]
|
||||
and return it as well. Otherwise, set it to `0`"
|
||||
(let* ((s5-0 (get-point-in-path! (-> obj path) (new 'stack-no-clear 'vector) 0.0 'interp))
|
||||
(v1-2 (get-point-in-path! (-> obj path) (new 'stack-no-clear 'vector) 1.0 'interp))
|
||||
(a3-3 (vector+! (new 'stack-no-clear 'vector) s5-0 v1-2))
|
||||
)
|
||||
(vector-float*! a3-3 a3-3 0.5)
|
||||
(let ((v0-2 (new 'process 'ambient-sound (static-sound-spec "fort-conveyor" :fo-max 50) a3-3)))
|
||||
(set! (-> obj sound) v0-2)
|
||||
v0-2
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
(set-subtask-hook!
|
||||
*game-info*
|
||||
172
|
||||
0
|
||||
(the-as
|
||||
(function object)
|
||||
(lambda :behavior task-manager
|
||||
()
|
||||
(set-setting! 'sound-mode #f 0 1)
|
||||
(set-setting! 'sound-excitement 'abs #x3f4ccccd 0)
|
||||
(speech-control-method-10
|
||||
*speech-control*
|
||||
6
|
||||
(new 'static 'speech-type-info
|
||||
:min-delay #x4b0
|
||||
:max-delay #x960
|
||||
:list (new 'static 'boxed-array :type string
|
||||
"kg001"
|
||||
"kg002"
|
||||
"kg004"
|
||||
"kg006"
|
||||
"kg001a"
|
||||
"kg013"
|
||||
"kg016"
|
||||
"kg018"
|
||||
"kg019"
|
||||
"kg023"
|
||||
"kg024"
|
||||
"kg002a"
|
||||
"kg004a"
|
||||
"kg078a"
|
||||
"kg079a"
|
||||
"kg080a"
|
||||
"kg081a"
|
||||
"kg004a"
|
||||
"kg082a"
|
||||
"kg083a"
|
||||
"kg084a"
|
||||
"kg085a"
|
||||
"kg086a"
|
||||
"kg087a"
|
||||
"kg088a"
|
||||
"kg091a"
|
||||
"kg023a"
|
||||
"kg006a"
|
||||
"kg092a"
|
||||
"kg020a"
|
||||
"kg093a"
|
||||
"kg094a"
|
||||
"kg095a"
|
||||
"kg103a"
|
||||
"kg104a"
|
||||
"kg112a"
|
||||
"kg024a"
|
||||
"kg134"
|
||||
"kg136"
|
||||
"kg137"
|
||||
"kg138"
|
||||
"kg139"
|
||||
"kg140"
|
||||
"kg141"
|
||||
)
|
||||
)
|
||||
)
|
||||
(speech-control-method-10
|
||||
*speech-control*
|
||||
9
|
||||
(new 'static 'speech-type-info
|
||||
:priority 1
|
||||
:min-delay #x12c
|
||||
:max-delay #x258
|
||||
:list (new 'static 'boxed-array :type string
|
||||
"kg133"
|
||||
"kg142"
|
||||
"kg144"
|
||||
"kg145"
|
||||
"kg146"
|
||||
"kg147"
|
||||
"kg148"
|
||||
"kg149"
|
||||
"kg150"
|
||||
"kg138"
|
||||
"kg151"
|
||||
"kg152"
|
||||
"kg153"
|
||||
"kg154"
|
||||
"kg155"
|
||||
"kg159"
|
||||
"kg163"
|
||||
"kg164"
|
||||
)
|
||||
)
|
||||
)
|
||||
(speech-control-method-10
|
||||
*speech-control*
|
||||
10
|
||||
(new 'static 'speech-type-info :priority #xa :max-delay #x12c :list (new 'static 'boxed-array :type string
|
||||
"kg166"
|
||||
"kg167"
|
||||
"kg168"
|
||||
"kg169"
|
||||
"kg171"
|
||||
"kg172"
|
||||
"kg173"
|
||||
"kg174"
|
||||
"kg175"
|
||||
)
|
||||
)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
(set-subtask-hook!
|
||||
*game-info*
|
||||
172
|
||||
1
|
||||
(the-as
|
||||
(function object)
|
||||
(lambda :behavior task-manager () (speech-control-method-9 *speech-control*) (none))
|
||||
)
|
||||
)
|
||||
|
||||
@@ -7,3 +7,378 @@
|
||||
|
||||
;; DECOMP BEGINS
|
||||
|
||||
(deftype hip-trophy-a (process-drawable)
|
||||
()
|
||||
:heap-base #x50
|
||||
:method-count-assert 21
|
||||
:size-assert #xc8
|
||||
:flag-assert #x15005000c8
|
||||
(:methods
|
||||
(idle () _type_ :state 20)
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
(defskelgroup skel-hip-trophy-a hip-trophy-a hip-trophy-a-lod0-jg hip-trophy-a-idle-ja
|
||||
((hip-trophy-a-lod0-mg (meters 999999)))
|
||||
:bounds (static-spherem 1 -1 0 1.6)
|
||||
)
|
||||
|
||||
(defstate idle (hip-trophy-a)
|
||||
:virtual #t
|
||||
:code (the-as (function none :behavior hip-trophy-a) sleep-code)
|
||||
:post (the-as (function none :behavior hip-trophy-a) ja-post)
|
||||
)
|
||||
|
||||
;; WARN: Return type mismatch object vs none.
|
||||
(defmethod init-from-entity! hip-trophy-a ((obj hip-trophy-a) (arg0 entity-actor))
|
||||
"Typically the method that does the initial setup on the process, potentially using the [[entity-actor]] provided as part of that.
|
||||
This commonly includes things such as:
|
||||
- stack size
|
||||
- collision information
|
||||
- loading the skeleton group / bones
|
||||
- sounds"
|
||||
(set! (-> obj root) (new 'process 'trsqv))
|
||||
(process-drawable-from-entity! obj arg0)
|
||||
(initialize-skeleton
|
||||
obj
|
||||
(the-as skeleton-group (art-group-get-by-name *level* "skel-hip-trophy-a" (the-as (pointer uint32) #f)))
|
||||
(the-as pair 0)
|
||||
)
|
||||
(let ((v1-5 (res-lump-value (-> obj entity) 'index uint128 :time -1000000000.0)))
|
||||
(if (= (the-as uint v1-5) 1)
|
||||
(logior! (-> obj draw global-effect) (draw-control-global-effect disable-envmap))
|
||||
)
|
||||
)
|
||||
(go (method-of-object obj idle))
|
||||
(none)
|
||||
)
|
||||
|
||||
(deftype hip-trophy-d (process-drawable)
|
||||
()
|
||||
:heap-base #x50
|
||||
:method-count-assert 21
|
||||
:size-assert #xc8
|
||||
:flag-assert #x15005000c8
|
||||
(:methods
|
||||
(idle () _type_ :state 20)
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
(defskelgroup skel-hip-trophy-d hip-trophy-d hip-trophy-d-lod0-jg hip-trophy-d-idle-ja
|
||||
((hip-trophy-d-lod0-mg (meters 999999)))
|
||||
:bounds (static-spherem -0.2 -0.5 0 2)
|
||||
)
|
||||
|
||||
(defstate idle (hip-trophy-d)
|
||||
:virtual #t
|
||||
:code (the-as (function none :behavior hip-trophy-d) sleep-code)
|
||||
:post (the-as (function none :behavior hip-trophy-d) ja-post)
|
||||
)
|
||||
|
||||
;; WARN: Return type mismatch object vs none.
|
||||
(defmethod init-from-entity! hip-trophy-d ((obj hip-trophy-d) (arg0 entity-actor))
|
||||
"Typically the method that does the initial setup on the process, potentially using the [[entity-actor]] provided as part of that.
|
||||
This commonly includes things such as:
|
||||
- stack size
|
||||
- collision information
|
||||
- loading the skeleton group / bones
|
||||
- sounds"
|
||||
(set! (-> obj root) (new 'process 'trsqv))
|
||||
(process-drawable-from-entity! obj arg0)
|
||||
(initialize-skeleton
|
||||
obj
|
||||
(the-as skeleton-group (art-group-get-by-name *level* "skel-hip-trophy-d" (the-as (pointer uint32) #f)))
|
||||
(the-as pair 0)
|
||||
)
|
||||
(let ((v1-5 (res-lump-value (-> obj entity) 'index uint128 :time -1000000000.0)))
|
||||
(if (= (the-as uint v1-5) 1)
|
||||
(logior! (-> obj draw global-effect) (draw-control-global-effect disable-envmap))
|
||||
)
|
||||
)
|
||||
(go (method-of-object obj idle))
|
||||
(none)
|
||||
)
|
||||
|
||||
(deftype hip-trophy-f (process-drawable)
|
||||
()
|
||||
:heap-base #x50
|
||||
:method-count-assert 21
|
||||
:size-assert #xc8
|
||||
:flag-assert #x15005000c8
|
||||
(:methods
|
||||
(idle () _type_ :state 20)
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
(defskelgroup skel-hip-trophy-f hip-trophy-f hip-trophy-f-lod0-jg hip-trophy-f-idle-ja
|
||||
((hip-trophy-f-lod0-mg (meters 999999)))
|
||||
:bounds (static-spherem 0 0 0 2)
|
||||
)
|
||||
|
||||
(defstate idle (hip-trophy-f)
|
||||
:virtual #t
|
||||
:code (the-as (function none :behavior hip-trophy-f) sleep-code)
|
||||
:post (the-as (function none :behavior hip-trophy-f) ja-post)
|
||||
)
|
||||
|
||||
;; WARN: Return type mismatch object vs none.
|
||||
(defmethod init-from-entity! hip-trophy-f ((obj hip-trophy-f) (arg0 entity-actor))
|
||||
"Typically the method that does the initial setup on the process, potentially using the [[entity-actor]] provided as part of that.
|
||||
This commonly includes things such as:
|
||||
- stack size
|
||||
- collision information
|
||||
- loading the skeleton group / bones
|
||||
- sounds"
|
||||
(set! (-> obj root) (new 'process 'trsqv))
|
||||
(process-drawable-from-entity! obj arg0)
|
||||
(initialize-skeleton
|
||||
obj
|
||||
(the-as skeleton-group (art-group-get-by-name *level* "skel-hip-trophy-f" (the-as (pointer uint32) #f)))
|
||||
(the-as pair 0)
|
||||
)
|
||||
(let ((v1-5 (res-lump-value (-> obj entity) 'index uint128 :time -1000000000.0)))
|
||||
(if (= (the-as uint v1-5) 1)
|
||||
(logior! (-> obj draw global-effect) (draw-control-global-effect disable-envmap))
|
||||
)
|
||||
)
|
||||
(go (method-of-object obj idle))
|
||||
(none)
|
||||
)
|
||||
|
||||
(deftype hip-trophy-g (process-drawable)
|
||||
()
|
||||
:heap-base #x50
|
||||
:method-count-assert 21
|
||||
:size-assert #xc8
|
||||
:flag-assert #x15005000c8
|
||||
(:methods
|
||||
(idle () _type_ :state 20)
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
(defskelgroup skel-hip-trophy-g hip-trophy-g hip-trophy-g-lod0-jg hip-trophy-g-idle-ja
|
||||
((hip-trophy-g-lod0-mg (meters 999999)))
|
||||
:bounds (static-spherem 0 0 0 4)
|
||||
)
|
||||
|
||||
(defstate idle (hip-trophy-g)
|
||||
:virtual #t
|
||||
:code (the-as (function none :behavior hip-trophy-g) sleep-code)
|
||||
:post (the-as (function none :behavior hip-trophy-g) ja-post)
|
||||
)
|
||||
|
||||
;; WARN: Return type mismatch object vs none.
|
||||
(defmethod init-from-entity! hip-trophy-g ((obj hip-trophy-g) (arg0 entity-actor))
|
||||
"Typically the method that does the initial setup on the process, potentially using the [[entity-actor]] provided as part of that.
|
||||
This commonly includes things such as:
|
||||
- stack size
|
||||
- collision information
|
||||
- loading the skeleton group / bones
|
||||
- sounds"
|
||||
(set! (-> obj root) (new 'process 'trsqv))
|
||||
(process-drawable-from-entity! obj arg0)
|
||||
(initialize-skeleton
|
||||
obj
|
||||
(the-as skeleton-group (art-group-get-by-name *level* "skel-hip-trophy-g" (the-as (pointer uint32) #f)))
|
||||
(the-as pair 0)
|
||||
)
|
||||
(let ((v1-5 (res-lump-value (-> obj entity) 'index uint128 :time -1000000000.0)))
|
||||
(if (= (the-as uint v1-5) 1)
|
||||
(logior! (-> obj draw global-effect) (draw-control-global-effect disable-envmap))
|
||||
)
|
||||
)
|
||||
(go (method-of-object obj idle))
|
||||
(none)
|
||||
)
|
||||
|
||||
(deftype hip-trophy-i (process-drawable)
|
||||
()
|
||||
:heap-base #x50
|
||||
:method-count-assert 21
|
||||
:size-assert #xc8
|
||||
:flag-assert #x15005000c8
|
||||
(:methods
|
||||
(idle () _type_ :state 20)
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
(defskelgroup skel-hip-trophy-i hip-trophy-i hip-trophy-i-lod0-jg hip-trophy-i-idle-ja
|
||||
((hip-trophy-i-lod0-mg (meters 999999)))
|
||||
:bounds (static-spherem 0 0 0 4)
|
||||
)
|
||||
|
||||
(defstate idle (hip-trophy-i)
|
||||
:virtual #t
|
||||
:code (the-as (function none :behavior hip-trophy-i) sleep-code)
|
||||
:post (the-as (function none :behavior hip-trophy-i) ja-post)
|
||||
)
|
||||
|
||||
;; WARN: Return type mismatch object vs none.
|
||||
(defmethod init-from-entity! hip-trophy-i ((obj hip-trophy-i) (arg0 entity-actor))
|
||||
"Typically the method that does the initial setup on the process, potentially using the [[entity-actor]] provided as part of that.
|
||||
This commonly includes things such as:
|
||||
- stack size
|
||||
- collision information
|
||||
- loading the skeleton group / bones
|
||||
- sounds"
|
||||
(set! (-> obj root) (new 'process 'trsqv))
|
||||
(process-drawable-from-entity! obj arg0)
|
||||
(initialize-skeleton
|
||||
obj
|
||||
(the-as skeleton-group (art-group-get-by-name *level* "skel-hip-trophy-i" (the-as (pointer uint32) #f)))
|
||||
(the-as pair 0)
|
||||
)
|
||||
(let ((v1-5 (res-lump-value (-> obj entity) 'index uint128 :time -1000000000.0)))
|
||||
(if (= (the-as uint v1-5) 1)
|
||||
(logior! (-> obj draw global-effect) (draw-control-global-effect disable-envmap))
|
||||
)
|
||||
)
|
||||
(go (method-of-object obj idle))
|
||||
(none)
|
||||
)
|
||||
|
||||
(deftype hip-trophy-j (process-drawable)
|
||||
()
|
||||
:heap-base #x50
|
||||
:method-count-assert 21
|
||||
:size-assert #xc8
|
||||
:flag-assert #x15005000c8
|
||||
(:methods
|
||||
(idle () _type_ :state 20)
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
(defskelgroup skel-hip-trophy-j hip-trophy-j hip-trophy-j-lod0-jg hip-trophy-j-idle-ja
|
||||
((hip-trophy-j-lod0-mg (meters 999999)))
|
||||
:bounds (static-spherem 0 0 0 4)
|
||||
)
|
||||
|
||||
(defstate idle (hip-trophy-j)
|
||||
:virtual #t
|
||||
:code (the-as (function none :behavior hip-trophy-j) sleep-code)
|
||||
:post (the-as (function none :behavior hip-trophy-j) ja-post)
|
||||
)
|
||||
|
||||
;; WARN: Return type mismatch object vs none.
|
||||
(defmethod init-from-entity! hip-trophy-j ((obj hip-trophy-j) (arg0 entity-actor))
|
||||
"Typically the method that does the initial setup on the process, potentially using the [[entity-actor]] provided as part of that.
|
||||
This commonly includes things such as:
|
||||
- stack size
|
||||
- collision information
|
||||
- loading the skeleton group / bones
|
||||
- sounds"
|
||||
(set! (-> obj root) (new 'process 'trsqv))
|
||||
(process-drawable-from-entity! obj arg0)
|
||||
(initialize-skeleton
|
||||
obj
|
||||
(the-as skeleton-group (art-group-get-by-name *level* "skel-hip-trophy-j" (the-as (pointer uint32) #f)))
|
||||
(the-as pair 0)
|
||||
)
|
||||
(let ((v1-5 (res-lump-value (-> obj entity) 'index uint128 :time -1000000000.0)))
|
||||
(if (= (the-as uint v1-5) 1)
|
||||
(logior! (-> obj draw global-effect) (draw-control-global-effect disable-envmap))
|
||||
)
|
||||
)
|
||||
(go (method-of-object obj idle))
|
||||
(none)
|
||||
)
|
||||
|
||||
(deftype hip-trophy-n (process-drawable)
|
||||
()
|
||||
:heap-base #x50
|
||||
:method-count-assert 21
|
||||
:size-assert #xc8
|
||||
:flag-assert #x15005000c8
|
||||
(:methods
|
||||
(idle () _type_ :state 20)
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
(defskelgroup skel-hip-trophy-n hip-trophy-n hip-trophy-n-lod0-jg hip-trophy-n-idle-ja
|
||||
((hip-trophy-n-lod0-mg (meters 999999)))
|
||||
:bounds (static-spherem 0 0 0 4)
|
||||
)
|
||||
|
||||
(defstate idle (hip-trophy-n)
|
||||
:virtual #t
|
||||
:code (the-as (function none :behavior hip-trophy-n) sleep-code)
|
||||
:post (the-as (function none :behavior hip-trophy-n) ja-post)
|
||||
)
|
||||
|
||||
;; WARN: Return type mismatch object vs none.
|
||||
(defmethod init-from-entity! hip-trophy-n ((obj hip-trophy-n) (arg0 entity-actor))
|
||||
"Typically the method that does the initial setup on the process, potentially using the [[entity-actor]] provided as part of that.
|
||||
This commonly includes things such as:
|
||||
- stack size
|
||||
- collision information
|
||||
- loading the skeleton group / bones
|
||||
- sounds"
|
||||
(set! (-> obj root) (new 'process 'trsqv))
|
||||
(process-drawable-from-entity! obj arg0)
|
||||
(initialize-skeleton
|
||||
obj
|
||||
(the-as skeleton-group (art-group-get-by-name *level* "skel-hip-trophy-n" (the-as (pointer uint32) #f)))
|
||||
(the-as pair 0)
|
||||
)
|
||||
(let ((v1-5 (res-lump-value (-> obj entity) 'index uint128 :time -1000000000.0)))
|
||||
(if (= (the-as uint v1-5) 1)
|
||||
(logior! (-> obj draw global-effect) (draw-control-global-effect disable-envmap))
|
||||
)
|
||||
)
|
||||
(go (method-of-object obj idle))
|
||||
(none)
|
||||
)
|
||||
|
||||
(deftype hip-trophy-m (process-drawable)
|
||||
()
|
||||
:heap-base #x50
|
||||
:method-count-assert 21
|
||||
:size-assert #xc8
|
||||
:flag-assert #x15005000c8
|
||||
(:methods
|
||||
(idle () _type_ :state 20)
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
(defskelgroup skel-hip-trophy-m hip-trophy-m hip-trophy-m-lod0-jg hip-trophy-m-idle-ja
|
||||
((hip-trophy-m-lod0-mg (meters 999999)))
|
||||
:bounds (static-spherem 0 0 0 4)
|
||||
)
|
||||
|
||||
(defstate idle (hip-trophy-m)
|
||||
:virtual #t
|
||||
:code (the-as (function none :behavior hip-trophy-m) sleep-code)
|
||||
:post (the-as (function none :behavior hip-trophy-m) ja-post)
|
||||
)
|
||||
|
||||
;; WARN: Return type mismatch object vs none.
|
||||
(defmethod init-from-entity! hip-trophy-m ((obj hip-trophy-m) (arg0 entity-actor))
|
||||
"Typically the method that does the initial setup on the process, potentially using the [[entity-actor]] provided as part of that.
|
||||
This commonly includes things such as:
|
||||
- stack size
|
||||
- collision information
|
||||
- loading the skeleton group / bones
|
||||
- sounds"
|
||||
(set! (-> obj root) (new 'process 'trsqv))
|
||||
(process-drawable-from-entity! obj arg0)
|
||||
(initialize-skeleton
|
||||
obj
|
||||
(the-as skeleton-group (art-group-get-by-name *level* "skel-hip-trophy-m" (the-as (pointer uint32) #f)))
|
||||
(the-as pair 0)
|
||||
)
|
||||
(let ((v1-5 (res-lump-value (-> obj entity) 'index uint128 :time -1000000000.0)))
|
||||
(if (= (the-as uint v1-5) 1)
|
||||
(logior! (-> obj draw global-effect) (draw-control-global-effect disable-envmap))
|
||||
)
|
||||
)
|
||||
(go (method-of-object obj idle))
|
||||
(none)
|
||||
)
|
||||
|
||||
@@ -7,3 +7,454 @@
|
||||
|
||||
;; DECOMP BEGINS
|
||||
|
||||
(deftype intro-flamer (process-drawable)
|
||||
((up-dir vector :inline :offset-assert 208)
|
||||
(average-dir vector :inline :offset-assert 224)
|
||||
(id int32 :offset-assert 240)
|
||||
(path-u float :offset-assert 244)
|
||||
(path-du float :offset-assert 248)
|
||||
(z-rot float :offset-assert 252)
|
||||
(flit-prev-offset vector :inline :offset-assert 256)
|
||||
(flit-next-offset vector :inline :offset-assert 272)
|
||||
(flit-factor float :offset-assert 288)
|
||||
(flit-timer uint64 :offset-assert 296)
|
||||
(flit-interval uint64 :offset-assert 304)
|
||||
)
|
||||
:heap-base #xc0
|
||||
:method-count-assert 23
|
||||
:size-assert #x138
|
||||
:flag-assert #x1700c00138
|
||||
(:methods
|
||||
(idle () _type_ :state 20)
|
||||
(die () _type_ :state 21)
|
||||
(intro-flamer-method-22 (_type_) path-control 22)
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
(defskelgroup skel-intro-flamer intro-flamer intro-flamer-lod0-jg intro-flamer-fly-straight-ja
|
||||
((intro-flamer-lod0-mg (meters 20)) (intro-flamer-lod1-mg (meters 40)) (intro-flamer-lod2-mg (meters 999999)))
|
||||
:bounds (static-spherem 0 0 0 7.5)
|
||||
:shadow intro-flamer-shadow-mg
|
||||
:origin-joint-index 3
|
||||
)
|
||||
|
||||
(defstate idle (intro-flamer)
|
||||
:virtual #t
|
||||
:event (behavior ((proc process) (arg1 int) (event-type symbol) (event event-message-block))
|
||||
(case event-type
|
||||
(('die)
|
||||
(go-virtual die)
|
||||
)
|
||||
)
|
||||
)
|
||||
:trans (behavior ()
|
||||
(if (= (-> self path-u) 1.0)
|
||||
(go-virtual die)
|
||||
)
|
||||
(when (>= (- (-> self clock frame-counter) (the-as int (-> self flit-timer)))
|
||||
(the-as time-frame (-> self flit-interval))
|
||||
)
|
||||
(let ((f28-0 (rand-vu-float-range -1.0 1.0))
|
||||
(f30-0 (rand-vu-float-range -1.0 1.0))
|
||||
(f0-1 (rand-vu-float-range 0.2 0.6))
|
||||
)
|
||||
(set! (-> self flit-prev-offset quad) (-> self flit-next-offset quad))
|
||||
(set-vector! (-> self flit-next-offset) (* 4096.0 f28-0) (* 4096.0 f30-0) 0.0 0.0)
|
||||
(set! (-> self flit-factor) 0.0)
|
||||
(set! (-> self flit-interval) (the-as uint (the int (* 300.0 f0-1))))
|
||||
)
|
||||
(set! (-> self flit-timer) (the-as uint (-> self clock frame-counter)))
|
||||
)
|
||||
(none)
|
||||
)
|
||||
:code (behavior ()
|
||||
(ja-channel-set! 1)
|
||||
(let ((f30-0 (rand-vu-float-range 0.8 1.2)))
|
||||
(until #f
|
||||
(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))
|
||||
f30-0
|
||||
)
|
||||
:frame-num 0.0
|
||||
)
|
||||
(until (ja-done? 0)
|
||||
(suspend)
|
||||
(ja :num! (seek! max f30-0))
|
||||
)
|
||||
)
|
||||
)
|
||||
#f
|
||||
(none)
|
||||
)
|
||||
:post (behavior ()
|
||||
(seek! (-> self path-u) 1.0 (* (-> self path-du) (-> self clock seconds-per-frame)))
|
||||
(let ((s3-0 (intro-flamer-method-22 self))
|
||||
(s4-0 (new 'stack-no-clear 'vector))
|
||||
(s5-0 (new 'stack-no-clear 'quaternion))
|
||||
(f30-0 (-> self path-u))
|
||||
(gp-0 (new 'stack-no-clear 'vector))
|
||||
)
|
||||
(get-point-at-percent-along-path! s3-0 gp-0 f30-0 'interp)
|
||||
(displacement-between-points-at-percent-normalized! s3-0 s4-0 (fmin 1.0 (+ 0.05 f30-0)))
|
||||
(let ((t9-4 vector-normalize!)
|
||||
(a0-4 (new 'stack-no-clear 'vector))
|
||||
)
|
||||
(set! (-> a0-4 x) (-> s4-0 x))
|
||||
(set! (-> a0-4 y) 0.0)
|
||||
(set! (-> a0-4 z) (-> s4-0 z))
|
||||
(set! (-> a0-4 w) 1.0)
|
||||
(let ((s3-1 (t9-4 a0-4 1.0))
|
||||
(t9-5 vector-normalize!)
|
||||
(a0-5 (new 'stack-no-clear 'vector))
|
||||
)
|
||||
(set! (-> a0-5 x) (-> self average-dir x))
|
||||
(set! (-> a0-5 y) 0.0)
|
||||
(set! (-> a0-5 z) (-> self average-dir z))
|
||||
(set! (-> a0-5 w) 1.0)
|
||||
(let* ((v1-10 (t9-5 a0-5 1.0))
|
||||
(f0-15 (vector-dot (vector-cross! (new 'stack-no-clear 'vector) s3-1 v1-10) *up-vector*))
|
||||
(f0-16 (* 49152.0 f0-15))
|
||||
)
|
||||
(set! (-> self z-rot) (deg-seek
|
||||
(-> self z-rot)
|
||||
(fmax -15473.777 (fmin 15473.777 f0-16))
|
||||
(* 21845.334 (-> self clock seconds-per-frame))
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(let ((a2-5 (vector-rotate-z! (new 'stack-no-clear 'vector) *up-vector* (-> self z-rot))))
|
||||
(forward-up->quaternion s5-0 s4-0 a2-5)
|
||||
)
|
||||
(quaternion-slerp! (-> self root quat) (-> self root quat) s5-0 (* 8.0 (-> self clock seconds-per-frame)))
|
||||
(seek! (-> self flit-factor) 1.0 (* 8.0 (-> self clock seconds-per-frame)))
|
||||
(let* ((v1-25 (-> self flit-prev-offset))
|
||||
(a1-10 (-> self flit-next-offset))
|
||||
(a0-14 (vector-! (new 'stack-no-clear 'vector) a1-10 v1-25))
|
||||
(s5-1 (new 'stack-no-clear 'vector))
|
||||
)
|
||||
(vector+float*! s5-1 v1-25 a0-14 (-> self flit-factor))
|
||||
(vector-orient-by-quat! s5-1 s5-1 (-> self root quat))
|
||||
(vector+! (-> self root trans) gp-0 s5-1)
|
||||
)
|
||||
)
|
||||
(cond
|
||||
((logtest? (-> self draw status) (draw-control-status on-screen))
|
||||
(new 'stack-no-clear 'vector)
|
||||
(new 'stack-no-clear 'vector)
|
||||
(let ((gp-1 (new 'stack-no-clear 'collide-query)))
|
||||
(set! (-> gp-1 start-pos quad) (-> self root trans quad))
|
||||
(set-vector! (-> gp-1 move-dist) 0.0 -81920.0 0.0 1.0)
|
||||
(let ((v1-37 gp-1))
|
||||
(set! (-> v1-37 radius) 2048.0)
|
||||
(set! (-> v1-37 collide-with) (collide-spec backgnd))
|
||||
(set! (-> v1-37 ignore-process0) self)
|
||||
(set! (-> v1-37 ignore-process1) #f)
|
||||
(set! (-> v1-37 ignore-pat) (new 'static 'pat-surface :noentity #x1 :nojak #x1 :probe #x1 :noendlessfall #x1))
|
||||
(set! (-> v1-37 action-mask) (collide-action solid))
|
||||
)
|
||||
(cond
|
||||
((>= (fill-and-probe-using-line-sphere *collide-cache* gp-1) 0.0)
|
||||
(let ((v1-41 (-> self draw shadow-ctrl)))
|
||||
(logclear! (-> v1-41 settings flags) (shadow-flags disable-draw))
|
||||
)
|
||||
0
|
||||
(let ((a0-28 (-> gp-1 best-other-tri intersect)))
|
||||
(let ((f0-36 (-> self root trans y)))
|
||||
(let ((v1-45 (-> self draw shadow-ctrl)))
|
||||
(set! (-> v1-45 settings bot-plane w) (- (+ (- -12288.0 f0-36) (-> a0-28 y))))
|
||||
)
|
||||
0
|
||||
(let ((v1-48 (-> self draw shadow-ctrl)))
|
||||
(set! (-> v1-48 settings top-plane w) (- (+ (- 12288.0 f0-36) (-> a0-28 y))))
|
||||
)
|
||||
)
|
||||
0
|
||||
(let* ((f2-2 (vector-vector-distance a0-28 (-> self root trans)))
|
||||
(f0-41 (* 0.000030517578 (fmax 0.0 (fmin 32768.0 (+ -57344.0 f2-2)))))
|
||||
)
|
||||
(set! (-> self draw shadow-ctrl settings shadow-dir w) (lerp 409600.0 40960.0 f0-41))
|
||||
)
|
||||
)
|
||||
)
|
||||
(else
|
||||
(let ((v1-58 (-> self draw shadow-ctrl)))
|
||||
(logior! (-> v1-58 settings flags) (shadow-flags disable-draw))
|
||||
)
|
||||
0
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(else
|
||||
(let ((v1-61 (-> self draw shadow-ctrl)))
|
||||
(logior! (-> v1-61 settings flags) (shadow-flags disable-draw))
|
||||
)
|
||||
0
|
||||
)
|
||||
)
|
||||
(ja-post)
|
||||
(none)
|
||||
)
|
||||
)
|
||||
|
||||
(defstate die (intro-flamer)
|
||||
:virtual #t
|
||||
:code (behavior ()
|
||||
(suspend)
|
||||
(cleanup-for-death self)
|
||||
(none)
|
||||
)
|
||||
)
|
||||
|
||||
;; WARN: Return type mismatch object vs path-control.
|
||||
(defmethod intro-flamer-method-22 intro-flamer ((obj intro-flamer))
|
||||
(the-as path-control (send-event (ppointer->process (-> obj parent)) 'path (-> obj id)))
|
||||
)
|
||||
|
||||
;; WARN: Return type mismatch object vs none.
|
||||
(defmethod init-from-entity! intro-flamer ((obj intro-flamer) (arg0 entity-actor))
|
||||
"Typically the method that does the initial setup on the process, potentially using the [[entity-actor]] provided as part of that.
|
||||
This commonly includes things such as:
|
||||
- stack size
|
||||
- collision information
|
||||
- loading the skeleton group / bones
|
||||
- sounds"
|
||||
(set! (-> obj root) (new 'process 'trsqv))
|
||||
(process-drawable-from-entity! obj arg0)
|
||||
(initialize-skeleton
|
||||
obj
|
||||
(the-as skeleton-group (art-group-get-by-name *level* "skel-intro-flamer" (the-as (pointer uint32) #f)))
|
||||
(the-as pair 0)
|
||||
)
|
||||
(go (method-of-object obj idle))
|
||||
(none)
|
||||
)
|
||||
|
||||
;; WARN: Return type mismatch object vs none.
|
||||
(defbehavior intro-flamer-init-by-other intro-flamer ((arg0 int) (arg1 path-control) (arg2 vector))
|
||||
(set! (-> self root) (new 'process 'trsqv))
|
||||
(initialize-skeleton
|
||||
self
|
||||
(the-as skeleton-group (art-group-get-by-name *level* "skel-intro-flamer" (the-as (pointer uint32) #f)))
|
||||
(the-as pair 0)
|
||||
)
|
||||
(set! (-> self draw force-lod) 2)
|
||||
(set! (-> self id) arg0)
|
||||
(set! (-> self path-u) 0.0)
|
||||
(set! (-> self path-du) (rand-vu-float-range 0.15 0.32))
|
||||
(set! (-> self z-rot) 0.0)
|
||||
(set! (-> self flit-timer) (the-as uint (-> self clock frame-counter)))
|
||||
(set! (-> self flit-interval) (the-as uint 0))
|
||||
(vector-reset! (-> self flit-prev-offset))
|
||||
(vector-reset! (-> self flit-next-offset))
|
||||
(set! (-> self flit-factor) 0.0)
|
||||
(get-point-in-path! arg1 (-> self root trans) 0.0 'interp)
|
||||
(let ((s4-1 (new 'stack-no-clear 'vector)))
|
||||
(displacement-between-points-at-percent-normalized! arg1 s4-1 0.0)
|
||||
(forward-up-nopitch->quaternion (-> self root quat) s4-1 *up-vector*)
|
||||
)
|
||||
(set! (-> self draw shadow-ctrl)
|
||||
(new 'process 'shadow-control 0.0 0.0 614400.0 (shadow-flags shdf03) 491520.0)
|
||||
)
|
||||
(set! (-> self draw light-index) (the-as uint 30))
|
||||
(set! (-> self average-dir quad) (-> arg2 quad))
|
||||
(go-virtual idle)
|
||||
(none)
|
||||
)
|
||||
|
||||
(deftype metalhead-spawner (process)
|
||||
((path-tbl path-control 19 :offset-assert 128)
|
||||
(init-pos vector :inline :offset-assert 208)
|
||||
(average-dir vector :inline :offset-assert 224)
|
||||
)
|
||||
:heap-base #x70
|
||||
:method-count-assert 17
|
||||
:size-assert #xf0
|
||||
:flag-assert #x11007000f0
|
||||
(:methods
|
||||
(idle () _type_ :state 14)
|
||||
(active () _type_ :state 15)
|
||||
(die () _type_ :state 16)
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
(defstate idle (metalhead-spawner)
|
||||
:virtual #t
|
||||
:event (behavior ((proc process) (arg1 int) (event-type symbol) (event event-message-block))
|
||||
(case event-type
|
||||
(('trigger)
|
||||
(go-virtual active)
|
||||
)
|
||||
(('path)
|
||||
(-> self path-tbl (-> event param 0))
|
||||
)
|
||||
)
|
||||
)
|
||||
:code (the-as (function none :behavior metalhead-spawner) sleep-code)
|
||||
)
|
||||
|
||||
(defstate active (metalhead-spawner)
|
||||
:virtual #t
|
||||
:event (behavior ((proc process) (arg1 int) (event-type symbol) (event event-message-block))
|
||||
(case event-type
|
||||
(('untrigger)
|
||||
(go-virtual idle)
|
||||
)
|
||||
(('die)
|
||||
(go-virtual die)
|
||||
)
|
||||
(('path)
|
||||
(-> self path-tbl (-> event param 0))
|
||||
)
|
||||
)
|
||||
)
|
||||
:code (behavior ()
|
||||
(let ((gp-0 0))
|
||||
(until #f
|
||||
(set! gp-0 (mod (+ gp-0 (rand-vu-int-range 1 6)) 19))
|
||||
(let ((s5-0 (get-process *default-dead-pool* intro-flamer #x4000)))
|
||||
(when s5-0
|
||||
(let ((t9-2 (method-of-type process activate)))
|
||||
(t9-2 s5-0 self (symbol->string (-> intro-flamer symbol)) (the-as pointer #x70004000))
|
||||
)
|
||||
(run-now-in-process s5-0 intro-flamer-init-by-other gp-0 (-> self path-tbl gp-0) (-> self average-dir))
|
||||
(-> s5-0 ppointer)
|
||||
)
|
||||
)
|
||||
(let ((s5-1 (the int (* 300.0 (rand-vu-float-range 0.03 0.08))))
|
||||
(s4-0 (-> self clock frame-counter))
|
||||
)
|
||||
(until (>= (- (-> self clock frame-counter) s4-0) s5-1)
|
||||
(suspend)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
#f
|
||||
(none)
|
||||
)
|
||||
:post (behavior ()
|
||||
(dotimes (gp-0 19)
|
||||
(debug-draw (-> self path-tbl gp-0))
|
||||
)
|
||||
(none)
|
||||
)
|
||||
)
|
||||
|
||||
(defstate die (metalhead-spawner)
|
||||
:virtual #t
|
||||
:code (behavior ()
|
||||
(let ((gp-0 (-> self child)))
|
||||
(while gp-0
|
||||
(send-event (ppointer->process gp-0) 'die)
|
||||
(set! gp-0 (-> gp-0 0 brother))
|
||||
)
|
||||
)
|
||||
(while (-> self child)
|
||||
(suspend)
|
||||
)
|
||||
(process-entity-status! self (entity-perm-status dead) #t)
|
||||
(none)
|
||||
)
|
||||
)
|
||||
|
||||
;; WARN: Return type mismatch process vs metalhead-spawner.
|
||||
(defmethod relocate metalhead-spawner ((obj metalhead-spawner) (arg0 int))
|
||||
(dotimes (v1-0 19)
|
||||
(if (nonzero? (-> obj path-tbl v1-0))
|
||||
(&+! (-> obj path-tbl v1-0) arg0)
|
||||
)
|
||||
)
|
||||
(the-as
|
||||
metalhead-spawner
|
||||
((the-as (function process int process) (find-parent-method metalhead-spawner 7)) obj arg0)
|
||||
)
|
||||
)
|
||||
|
||||
;; WARN: Return type mismatch object vs none.
|
||||
(defmethod init-from-entity! metalhead-spawner ((obj metalhead-spawner) (arg0 entity-actor))
|
||||
"Typically the method that does the initial setup on the process, potentially using the [[entity-actor]] provided as part of that.
|
||||
This commonly includes things such as:
|
||||
- stack size
|
||||
- collision information
|
||||
- loading the skeleton group / bones
|
||||
- sounds"
|
||||
(set! (-> obj init-pos quad) (-> arg0 extra trans quad))
|
||||
(vector-reset! (-> obj average-dir))
|
||||
(dotimes (s5-0 19)
|
||||
(let ((s4-0 (new 'process 'curve-control obj 'path (the float (+ s5-0 1)))))
|
||||
(set! (-> obj path-tbl s5-0) s4-0)
|
||||
(logior! (-> s4-0 flags) (path-control-flag display draw-line draw-point draw-text))
|
||||
(let* ((s3-0 (get-point-at-percent-along-path! s4-0 (new 'stack-no-clear 'vector) 0.0 'interp))
|
||||
(v1-10 (get-point-at-percent-along-path! s4-0 (new 'stack-no-clear 'vector) 1.0 'interp))
|
||||
(s4-2 (vector-! (new 'stack-no-clear 'vector) v1-10 s3-0))
|
||||
)
|
||||
(vector-normalize! s4-2 1.0)
|
||||
(vector+! (-> obj average-dir) (-> obj average-dir) s4-2)
|
||||
)
|
||||
)
|
||||
)
|
||||
(vector-normalize! (-> obj average-dir) 1.0)
|
||||
(go (method-of-object obj idle))
|
||||
(none)
|
||||
)
|
||||
|
||||
(deftype vil-windmill-sail (process-drawable)
|
||||
()
|
||||
:heap-base #x50
|
||||
:method-count-assert 21
|
||||
:size-assert #xc8
|
||||
:flag-assert #x15005000c8
|
||||
(:methods
|
||||
(idle () _type_ :state 20)
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
(defskelgroup skel-vil-windmill-sail vil-windmill-sail vil-windmill-sail-lod0-jg vil-windmill-sail-idle-ja
|
||||
((vil-windmill-sail-lod0-mg (meters 999999)))
|
||||
:bounds (static-spherem 0 0 0 25)
|
||||
)
|
||||
|
||||
(defstate idle (vil-windmill-sail)
|
||||
:virtual #t
|
||||
:code (behavior ()
|
||||
(until #f
|
||||
(ja-no-eval :group! (ja-group)
|
||||
:num! (seek! (the float (+ (-> (ja-group) frames num-frames) -1)))
|
||||
:frame-num 0.0
|
||||
)
|
||||
(until (ja-done? 0)
|
||||
(suspend)
|
||||
(ja :num! (seek!))
|
||||
)
|
||||
)
|
||||
#f
|
||||
(none)
|
||||
)
|
||||
:post (the-as (function none :behavior vil-windmill-sail) ja-post)
|
||||
)
|
||||
|
||||
;; WARN: Return type mismatch object vs none.
|
||||
(defmethod init-from-entity! vil-windmill-sail ((obj vil-windmill-sail) (arg0 entity-actor))
|
||||
"Typically the method that does the initial setup on the process, potentially using the [[entity-actor]] provided as part of that.
|
||||
This commonly includes things such as:
|
||||
- stack size
|
||||
- collision information
|
||||
- loading the skeleton group / bones
|
||||
- sounds"
|
||||
(set! (-> obj root) (new 'process 'trsqv))
|
||||
(process-drawable-from-entity! obj arg0)
|
||||
(initialize-skeleton
|
||||
obj
|
||||
(the-as skeleton-group (art-group-get-by-name *level* "skel-vil-windmill-sail" (the-as (pointer uint32) #f)))
|
||||
(the-as pair 0)
|
||||
)
|
||||
(go (method-of-object obj idle))
|
||||
(none)
|
||||
)
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -7,3 +7,484 @@
|
||||
|
||||
;; DECOMP BEGINS
|
||||
|
||||
(define *slime-clut* (new 'static 'clut16x16 :clut (new 'static 'array rgba 256
|
||||
(new 'static 'rgba :r #x52 :g #x52 :b #x13 :a #x80)
|
||||
(new 'static 'rgba :r #x52 :g #x52 :b #x13 :a #x80)
|
||||
(new 'static 'rgba :r #x52 :g #x52 :b #x13 :a #x80)
|
||||
(new 'static 'rgba :r #x52 :g #x52 :b #x13 :a #x80)
|
||||
(new 'static 'rgba :r #x52 :g #x52 :b #x13 :a #x80)
|
||||
(new 'static 'rgba :r #x52 :g #x52 :b #x13 :a #x80)
|
||||
(new 'static 'rgba :r #x52 :g #x52 :b #x13 :a #x80)
|
||||
(new 'static 'rgba :r #x52 :g #x52 :b #x13 :a #x80)
|
||||
(new 'static 'rgba :r #x52 :g #x52 :b #x13 :a #x80)
|
||||
(new 'static 'rgba :r #x52 :g #x52 :b #x13 :a #x80)
|
||||
(new 'static 'rgba :r #x52 :g #x52 :b #x13 :a #x80)
|
||||
(new 'static 'rgba :r #x52 :g #x52 :b #x13 :a #x80)
|
||||
(new 'static 'rgba :r #x52 :g #x52 :b #x13 :a #x80)
|
||||
(new 'static 'rgba :r #x52 :g #x52 :b #x13 :a #x80)
|
||||
(new 'static 'rgba :r #x52 :g #x52 :b #x13 :a #x80)
|
||||
(new 'static 'rgba :r #x52 :g #x52 :b #x13 :a #x80)
|
||||
(new 'static 'rgba :r #x52 :g #x52 :b #x13 :a #x80)
|
||||
(new 'static 'rgba :r #x52 :g #x52 :b #x13 :a #x80)
|
||||
(new 'static 'rgba :r #x52 :g #x52 :b #x13 :a #x80)
|
||||
(new 'static 'rgba :r #x52 :g #x52 :b #x13 :a #x80)
|
||||
(new 'static 'rgba :r #x52 :g #x52 :b #x13 :a #x80)
|
||||
(new 'static 'rgba :r #x52 :g #x52 :b #x13 :a #x80)
|
||||
(new 'static 'rgba :r #x52 :g #x52 :b #x13 :a #x80)
|
||||
(new 'static 'rgba :r #x52 :g #x52 :b #x13 :a #x80)
|
||||
(new 'static 'rgba :r #x52 :g #x52 :b #x13 :a #x80)
|
||||
(new 'static 'rgba :r #x52 :g #x52 :b #x13 :a #x80)
|
||||
(new 'static 'rgba :r #x52 :g #x52 :b #x13 :a #x80)
|
||||
(new 'static 'rgba :r #x52 :g #x52 :b #x13 :a #x80)
|
||||
(new 'static 'rgba :r #x52 :g #x52 :b #x13 :a #x80)
|
||||
(new 'static 'rgba :r #x52 :g #x52 :b #x13 :a #x80)
|
||||
(new 'static 'rgba :r #x52 :g #x52 :b #x13 :a #x80)
|
||||
(new 'static 'rgba :r #x52 :g #x52 :b #x13 :a #x80)
|
||||
(new 'static 'rgba :r #x53 :g #x55 :b #x13 :a #x80)
|
||||
(new 'static 'rgba :r #x55 :g #x58 :b #x13 :a #x80)
|
||||
(new 'static 'rgba :r #x57 :g #x5c :b #x13 :a #x80)
|
||||
(new 'static 'rgba :r #x59 :g #x5f :b #x13 :a #x80)
|
||||
(new 'static 'rgba :r #x5b :g #x63 :b #x13 :a #x80)
|
||||
(new 'static 'rgba :r #x5c :g #x66 :b #x13 :a #x80)
|
||||
(new 'static 'rgba :r #x5e :g #x69 :b #x13 :a #x80)
|
||||
(new 'static 'rgba :r #x60 :g #x6d :b #x13 :a #x80)
|
||||
(new 'static 'rgba :r #x60 :g #x6d :b #x14 :a #x80)
|
||||
(new 'static 'rgba :r #x5e :g #x69 :b #x13 :a #x80)
|
||||
(new 'static 'rgba :r #x5c :g #x66 :b #x13 :a #x80)
|
||||
(new 'static 'rgba :r #x5a :g #x62 :b #x13 :a #x80)
|
||||
(new 'static 'rgba :r #x59 :g #x5f :b #x13 :a #x80)
|
||||
(new 'static 'rgba :r #x57 :g #x5c :b #x13 :a #x80)
|
||||
(new 'static 'rgba :r #x55 :g #x58 :b #x13 :a #x80)
|
||||
(new 'static 'rgba :r #x52 :g #x52 :b #x13 :a #x80)
|
||||
(new 'static 'rgba :r #x52 :g #x52 :b #x13 :a #x80)
|
||||
(new 'static 'rgba :r #x52 :g #x53 :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x53 :g #x54 :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x54 :g #x55 :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x55 :g #x56 :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x55 :g #x58 :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x56 :g #x59 :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x57 :g #x5a :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x58 :g #x5b :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x58 :g #x5c :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x59 :g #x5e :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x5a :g #x5f :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x5b :g #x60 :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x5c :g #x61 :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x5c :g #x62 :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x5d :g #x64 :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x5e :g #x65 :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x5f :g #x66 :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x5f :g #x67 :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x60 :g #x68 :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x61 :g #x6a :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x62 :g #x6b :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x63 :g #x6c :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x63 :g #x6d :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x64 :g #x6e :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x65 :g #x70 :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x66 :g #x71 :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x66 :g #x72 :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x67 :g #x73 :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x68 :g #x74 :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x69 :g #x76 :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x69 :g #x77 :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x6c :g #x7c :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x73 :g #x86 :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x7a :g #x91 :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x81 :g #x9c :b #x11 :a #x80)
|
||||
(new 'static 'rgba :r #x88 :g #xa6 :b #x11 :a #x80)
|
||||
(new 'static 'rgba :r #x8f :g #xb1 :b #x11 :a #x80)
|
||||
(new 'static 'rgba :r #x96 :g #xbc :b #x11 :a #x80)
|
||||
(new 'static 'rgba :r #x9e :g #xc7 :b #x11 :a #x80)
|
||||
(new 'static 'rgba :r #x9e :g #xc7 :b #x11 :a #x80)
|
||||
(new 'static 'rgba :r #x99 :g #xc0 :b #x11 :a #x80)
|
||||
(new 'static 'rgba :r #x94 :g #xb9 :b #x11 :a #x80)
|
||||
(new 'static 'rgba :r #x90 :g #xb2 :b #x11 :a #x80)
|
||||
(new 'static 'rgba :r #x8b :g #xab :b #x11 :a #x80)
|
||||
(new 'static 'rgba :r #x87 :g #xa4 :b #x11 :a #x80)
|
||||
(new 'static 'rgba :r #x82 :g #x9d :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x79 :g #x8f :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x77 :g #x8b :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x77 :g #x8d :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x78 :g #x8e :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x79 :g #x8f :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x7a :g #x90 :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x7a :g #x91 :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x7b :g #x93 :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x7c :g #x94 :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x7d :g #x95 :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x7e :g #x96 :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x7e :g #x97 :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x7f :g #x99 :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x80 :g #x9a :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x81 :g #x9b :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x81 :g #x9c :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x82 :g #x9d :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x83 :g #x9f :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x84 :g #xa0 :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x85 :g #xa1 :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x85 :g #xa2 :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x86 :g #xa3 :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x87 :g #xa5 :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x88 :g #xa6 :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x88 :g #xa7 :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x89 :g #xa8 :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x8a :g #xa9 :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x8b :g #xab :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x8b :g #xac :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x8c :g #xad :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x8d :g #xae :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x8e :g #xaf :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x8f :g #xb1 :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x8f :g #xb2 :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x92 :g #xb5 :b #x11 :a #x80)
|
||||
(new 'static 'rgba :r #x94 :g #xb9 :b #x11 :a #x80)
|
||||
(new 'static 'rgba :r #x96 :g #xbc :b #x11 :a #x80)
|
||||
(new 'static 'rgba :r #x99 :g #xbf :b #x11 :a #x80)
|
||||
(new 'static 'rgba :r #x9b :g #xc3 :b #x11 :a #x80)
|
||||
(new 'static 'rgba :r #x9d :g #xc6 :b #x11 :a #x80)
|
||||
(new 'static 'rgba :r #xa0 :g #xca :b #x11 :a #x80)
|
||||
(new 'static 'rgba :r #xa0 :g #xca :b #x11 :a #x80)
|
||||
(new 'static 'rgba :r #x9e :g #xc7 :b #x11 :a #x80)
|
||||
(new 'static 'rgba :r #x9c :g #xc4 :b #x11 :a #x80)
|
||||
(new 'static 'rgba :r #x9a :g #xc2 :b #x11 :a #x80)
|
||||
(new 'static 'rgba :r #x98 :g #xbf :b #x11 :a #x80)
|
||||
(new 'static 'rgba :r #x96 :g #xbd :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x94 :g #xba :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x90 :g #xb5 :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x90 :g #xb5 :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x8f :g #xb4 :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x8e :g #xb3 :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x8d :g #xb2 :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x8d :g #xb1 :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x8c :g #xb0 :b #x13 :a #x80)
|
||||
(new 'static 'rgba :r #x8b :g #xaf :b #x13 :a #x80)
|
||||
(new 'static 'rgba :r #x8a :g #xae :b #x13 :a #x80)
|
||||
(new 'static 'rgba :r #x8a :g #xae :b #x13 :a #x80)
|
||||
(new 'static 'rgba :r #x89 :g #xad :b #x13 :a #x80)
|
||||
(new 'static 'rgba :r #x88 :g #xac :b #x13 :a #x80)
|
||||
(new 'static 'rgba :r #x87 :g #xab :b #x13 :a #x80)
|
||||
(new 'static 'rgba :r #x87 :g #xaa :b #x13 :a #x80)
|
||||
(new 'static 'rgba :r #x86 :g #xa9 :b #x13 :a #x80)
|
||||
(new 'static 'rgba :r #x85 :g #xa8 :b #x13 :a #x80)
|
||||
(new 'static 'rgba :r #x84 :g #xa7 :b #x13 :a #x80)
|
||||
(new 'static 'rgba :r #x84 :g #xa7 :b #x13 :a #x80)
|
||||
(new 'static 'rgba :r #x83 :g #xa6 :b #x13 :a #x80)
|
||||
(new 'static 'rgba :r #x82 :g #xa5 :b #x14 :a #x80)
|
||||
(new 'static 'rgba :r #x81 :g #xa4 :b #x14 :a #x80)
|
||||
(new 'static 'rgba :r #x81 :g #xa3 :b #x14 :a #x80)
|
||||
(new 'static 'rgba :r #x80 :g #xa2 :b #x14 :a #x80)
|
||||
(new 'static 'rgba :r #x7f :g #xa1 :b #x14 :a #x80)
|
||||
(new 'static 'rgba :r #x7e :g #xa0 :b #x14 :a #x80)
|
||||
(new 'static 'rgba :r #x7e :g #xa0 :b #x14 :a #x80)
|
||||
(new 'static 'rgba :r #x7d :g #x9f :b #x14 :a #x80)
|
||||
(new 'static 'rgba :r #x7c :g #x9e :b #x14 :a #x80)
|
||||
(new 'static 'rgba :r #x7b :g #x9d :b #x14 :a #x80)
|
||||
(new 'static 'rgba :r #x7b :g #x9c :b #x14 :a #x80)
|
||||
(new 'static 'rgba :r #x7a :g #x9b :b #x14 :a #x80)
|
||||
(new 'static 'rgba :r #x79 :g #x9a :b #x14 :a #x80)
|
||||
(new 'static 'rgba :r #x79 :g #x9a :b #x15 :a #x80)
|
||||
(new 'static 'rgba :r #x79 :g #x9a :b #x15 :a #x80)
|
||||
(new 'static 'rgba :r #x7c :g #x9d :b #x14 :a #x80)
|
||||
(new 'static 'rgba :r #x7f :g #xa1 :b #x14 :a #x80)
|
||||
(new 'static 'rgba :r #x82 :g #xa5 :b #x14 :a #x80)
|
||||
(new 'static 'rgba :r #x85 :g #xa8 :b #x13 :a #x80)
|
||||
(new 'static 'rgba :r #x88 :g #xac :b #x13 :a #x80)
|
||||
(new 'static 'rgba :r #x8b :g #xb0 :b #x13 :a #x80)
|
||||
(new 'static 'rgba :r #x8e :g #xb3 :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x91 :g #xb7 :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x94 :g #xbb :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x97 :g #xbf :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x9a :g #xc2 :b #x11 :a #x80)
|
||||
(new 'static 'rgba :r #x9d :g #xc6 :b #x11 :a #x80)
|
||||
(new 'static 'rgba :r #xa0 :g #xca :b #x11 :a #x80)
|
||||
(new 'static 'rgba :r #xa3 :g #xcd :b #x10 :a #x80)
|
||||
(new 'static 'rgba :r #xa6 :g #xd1 :b #x10 :a #x80)
|
||||
(new 'static 'rgba :r #xac :g #xd9 :b #x10 :a #x80)
|
||||
(new 'static 'rgba :r #xab :g #xd8 :b #x10 :a #x80)
|
||||
(new 'static 'rgba :r #xaa :g #xd7 :b #x10 :a #x80)
|
||||
(new 'static 'rgba :r #xa9 :g #xd6 :b #x10 :a #x80)
|
||||
(new 'static 'rgba :r #xa8 :g #xd5 :b #x10 :a #x80)
|
||||
(new 'static 'rgba :r #xa8 :g #xd4 :b #x10 :a #x80)
|
||||
(new 'static 'rgba :r #xa7 :g #xd3 :b #x10 :a #x80)
|
||||
(new 'static 'rgba :r #xa6 :g #xd2 :b #x10 :a #x80)
|
||||
(new 'static 'rgba :r #xa5 :g #xd1 :b #x10 :a #x80)
|
||||
(new 'static 'rgba :r #xa4 :g #xd0 :b #x10 :a #x80)
|
||||
(new 'static 'rgba :r #xa4 :g #xcf :b #x10 :a #x80)
|
||||
(new 'static 'rgba :r #xa3 :g #xce :b #x10 :a #x80)
|
||||
(new 'static 'rgba :r #xa2 :g #xcd :b #x11 :a #x80)
|
||||
(new 'static 'rgba :r #xa1 :g #xcc :b #x11 :a #x80)
|
||||
(new 'static 'rgba :r #xa0 :g #xcb :b #x11 :a #x80)
|
||||
(new 'static 'rgba :r #xa0 :g #xca :b #x11 :a #x80)
|
||||
(new 'static 'rgba :r #x9f :g #xc9 :b #x11 :a #x80)
|
||||
(new 'static 'rgba :r #x9e :g #xc8 :b #x11 :a #x80)
|
||||
(new 'static 'rgba :r #x9d :g #xc7 :b #x11 :a #x80)
|
||||
(new 'static 'rgba :r #x9d :g #xc6 :b #x11 :a #x80)
|
||||
(new 'static 'rgba :r #x9c :g #xc5 :b #x11 :a #x80)
|
||||
(new 'static 'rgba :r #x9b :g #xc4 :b #x11 :a #x80)
|
||||
(new 'static 'rgba :r #x9a :g #xc3 :b #x11 :a #x80)
|
||||
(new 'static 'rgba :r #x99 :g #xc2 :b #x11 :a #x80)
|
||||
(new 'static 'rgba :r #x99 :g #xc1 :b #x11 :a #x80)
|
||||
(new 'static 'rgba :r #x98 :g #xc0 :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x97 :g #xbf :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x96 :g #xbe :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x95 :g #xbd :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x95 :g #xbc :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x94 :g #xbb :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x93 :g #xba :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x92 :g #xb9 :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x91 :g #xb8 :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x91 :g #xb7 :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x90 :g #xb6 :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x8f :g #xb5 :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x8e :g #xb4 :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x8e :g #xb3 :b #x13 :a #x80)
|
||||
(new 'static 'rgba :r #x8c :g #xb1 :b #x13 :a #x80)
|
||||
(new 'static 'rgba :r #x8c :g #xb1 :b #x13 :a #x80)
|
||||
(new 'static 'rgba :r #x90 :g #xb6 :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x94 :g #xba :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x97 :g #xbf :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x9b :g #xc3 :b #x11 :a #x80)
|
||||
(new 'static 'rgba :r #x9e :g #xc8 :b #x11 :a #x80)
|
||||
(new 'static 'rgba :r #xa2 :g #xcc :b #x11 :a #x80)
|
||||
(new 'static 'rgba :r #xa6 :g #xd1 :b #x11 :a #x80)
|
||||
(new 'static 'rgba :r #xa6 :g #xd1 :b #x11 :a #x80)
|
||||
(new 'static 'rgba :r #xa3 :g #xcd :b #x11 :a #x80)
|
||||
(new 'static 'rgba :r #xa0 :g #xca :b #x11 :a #x80)
|
||||
(new 'static 'rgba :r #x9d :g #xc6 :b #x11 :a #x80)
|
||||
(new 'static 'rgba :r #x9b :g #xc3 :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x98 :g #xbf :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x95 :g #xbc :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x90 :g #xb5 :b #x13 :a #x80)
|
||||
(new 'static 'rgba :r #x90 :g #xb5 :b #x13 :a #x80)
|
||||
(new 'static 'rgba :r #x90 :g #xb5 :b #x13 :a #x80)
|
||||
(new 'static 'rgba :r #x90 :g #xb5 :b #x13 :a #x80)
|
||||
(new 'static 'rgba :r #x90 :g #xb5 :b #x13 :a #x80)
|
||||
(new 'static 'rgba :r #x90 :g #xb5 :b #x13 :a #x80)
|
||||
(new 'static 'rgba :r #x90 :g #xb5 :b #x13 :a #x80)
|
||||
(new 'static 'rgba :r #x90 :g #xb5 :b #x13 :a #x80)
|
||||
(new 'static 'rgba :r #x90 :g #xb5 :b #x13 :a #x80)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
(define *toxic-slime-texture-anim-array*
|
||||
(the-as (texture-anim-array texture-anim)
|
||||
(new 'static 'texture-anim-array :type texture-anim
|
||||
(new 'static 'texture-anim
|
||||
:func 'texture-anim-alpha-ramp-clut-upload
|
||||
:init-func 'texture-anim-alpha-ramp-clut-init
|
||||
:tex #f
|
||||
:tex-name #f
|
||||
:extra (new 'static 'vector :x 28.0)
|
||||
:color (new 'static 'rgba :a #x80)
|
||||
:test (new 'static 'gs-test :ate #x1 :afail #x1 :zte #x1 :ztst (gs-ztest always))
|
||||
:alpha (new 'static 'gs-alpha :b #x1 :d #x1)
|
||||
)
|
||||
(new 'static 'texture-anim
|
||||
:num-layers #x2
|
||||
:func 'cloud-texture-anim-func
|
||||
:init-func 'dest-texture-init
|
||||
:tex #f
|
||||
:tex-name #f
|
||||
:extra (new 'static 'vector :x 16.0 :y 8.0)
|
||||
:color (new 'static 'rgba :a #x80)
|
||||
:frame-delta 300.0
|
||||
:frame-mod 600.0
|
||||
:test (new 'static 'gs-test :ate #x1 :afail #x1 :zte #x1 :ztst (gs-ztest always))
|
||||
:alpha (new 'static 'gs-alpha :b #x1 :d #x1)
|
||||
)
|
||||
(new 'static 'texture-anim
|
||||
:num-layers #x2
|
||||
:func 'cloud-texture-anim-func
|
||||
:init-func 'dest-texture-init
|
||||
:tex #f
|
||||
:tex-name #f
|
||||
:extra (new 'static 'vector :x 32.0 :y 9.0)
|
||||
:color (new 'static 'rgba :a #x80)
|
||||
:frame-delta 300.0
|
||||
:frame-mod 300.0
|
||||
:test (new 'static 'gs-test :ate #x1 :afail #x1 :zte #x1 :ztst (gs-ztest always))
|
||||
:alpha (new 'static 'gs-alpha :b #x1 :d #x1)
|
||||
)
|
||||
(new 'static 'texture-anim
|
||||
:num-layers #x2
|
||||
:func 'cloud-texture-anim-func
|
||||
:init-func 'dest-texture-init
|
||||
:tex #f
|
||||
:tex-name #f
|
||||
:extra (new 'static 'vector :x 64.0 :y 10.0)
|
||||
:color (new 'static 'rgba :a #x80)
|
||||
:frame-time 99.0
|
||||
:frame-delta 300.0
|
||||
:frame-mod 150.0
|
||||
:test (new 'static 'gs-test :ate #x1 :afail #x1 :zte #x1 :ztst (gs-ztest always))
|
||||
:alpha (new 'static 'gs-alpha :b #x1 :d #x1)
|
||||
)
|
||||
(new 'static 'texture-anim
|
||||
:num-layers #x2
|
||||
:func 'cloud-texture-anim-func
|
||||
:init-func 'dest-texture-init
|
||||
:tex #f
|
||||
:tex-name #f
|
||||
:extra (new 'static 'vector :x 128.0 :y 12.0)
|
||||
:color (new 'static 'rgba :a #x80)
|
||||
:frame-time 199.0
|
||||
:frame-delta 300.0
|
||||
:frame-mod 75.0
|
||||
:test (new 'static 'gs-test :ate #x1 :afail #x1 :zte #x1 :ztst (gs-ztest always))
|
||||
:alpha (new 'static 'gs-alpha :b #x1 :d #x1)
|
||||
)
|
||||
(new 'static 'texture-anim
|
||||
:num-layers #x4
|
||||
:func #f
|
||||
:init-func 'dest-texture-init
|
||||
:tex #f
|
||||
:tex-name #f
|
||||
:extra (new 'static 'vector :x 128.0 :y 20.0)
|
||||
:color (new 'static 'rgba :a #x80)
|
||||
:test (new 'static 'gs-test :ate #x1 :afail #x1 :zte #x1 :ztst (gs-ztest always))
|
||||
:alpha (new 'static 'gs-alpha :b #x1 :d #x1)
|
||||
)
|
||||
(new 'static 'texture-anim
|
||||
:num-layers #x1
|
||||
:func #f
|
||||
:init-func 'texture-anim-change-mt8h-init
|
||||
:tex #f
|
||||
:tex-name "cas-toxic-slime-dest"
|
||||
:extra (new 'static 'vector :x 28.0 :y 12.0 :z 128.0 :w 128.0)
|
||||
:color (new 'static 'rgba :a #x80)
|
||||
:test (new 'static 'gs-test :ate #x1 :afail #x1 :zte #x1 :ztst (gs-ztest always))
|
||||
:alpha (new 'static 'gs-alpha :b #x1 :d #x1)
|
||||
)
|
||||
(new 'static 'texture-anim
|
||||
:func 'texture-anim-slime-clut-upload
|
||||
:init-func 'texture-anim-slime-clut-init
|
||||
:tex #f
|
||||
:tex-name #f
|
||||
:extra (new 'static 'vector :x 28.0)
|
||||
:color (new 'static 'rgba :a #x80)
|
||||
:test (new 'static 'gs-test :ate #x1 :afail #x1 :zte #x1 :ztst (gs-ztest always))
|
||||
:alpha (new 'static 'gs-alpha :b #x1 :d #x1)
|
||||
)
|
||||
(new 'static 'texture-anim
|
||||
:num-layers #x1
|
||||
:func #f
|
||||
:init-func 'texture-anim-overide-size-init
|
||||
:tex #f
|
||||
:tex-name "cas-toxic-slime-scroll-dest"
|
||||
:extra (new 'static 'vector :x 64.0 :y 64.0)
|
||||
:color (new 'static 'rgba :a #x80)
|
||||
:frame-delta 300.0
|
||||
:frame-mod 1200.0
|
||||
:test (new 'static 'gs-test :ate #x1 :afail #x1 :zte #x1 :ztst (gs-ztest always))
|
||||
:alpha (new 'static 'gs-alpha :b #x1 :d #x1)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
(defun set-slime-alphas ((arg0 float) (arg1 float) (arg2 float) (arg3 float))
|
||||
(set! (-> *toxic-slime-texture-anim-array* array-data 5 data 0 start-color w) arg0)
|
||||
(set! (-> *toxic-slime-texture-anim-array* array-data 5 data 1 start-color w) arg1)
|
||||
(set! (-> *toxic-slime-texture-anim-array* array-data 5 data 2 start-color w) arg2)
|
||||
(set! (-> *toxic-slime-texture-anim-array* array-data 5 data 3 start-color w) arg3)
|
||||
)
|
||||
|
||||
;; WARN: Return type mismatch object vs none.
|
||||
(defun get-slime-alphas ()
|
||||
(format
|
||||
0
|
||||
"~f ~f ~f ~f~%"
|
||||
(-> *toxic-slime-texture-anim-array* array-data 5 data 0 start-color w)
|
||||
(-> *toxic-slime-texture-anim-array* array-data 5 data 1 start-color w)
|
||||
(-> *toxic-slime-texture-anim-array* array-data 5 data 2 start-color w)
|
||||
(-> *toxic-slime-texture-anim-array* array-data 5 data 3 start-color w)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
|
||||
(defun set-slime-speed ((arg0 float))
|
||||
(let ((v1-0 *toxic-slime-texture-anim-array*)
|
||||
(f0-3 (the float (the int (* 300.0 arg0))))
|
||||
)
|
||||
(dotimes (a0-1 4)
|
||||
(let ((a1-4 (-> v1-0 array-data (+ a0-1 1))))
|
||||
(set! (-> a1-4 frame-mod) f0-3)
|
||||
(set! (-> a1-4 data 0 end-time) f0-3)
|
||||
(set! (-> a1-4 data 1 end-time) f0-3)
|
||||
)
|
||||
(set! f0-3 (* 0.5 f0-3))
|
||||
)
|
||||
)
|
||||
#f
|
||||
)
|
||||
|
||||
(define *cas-conveyor-texture-anim-array*
|
||||
(the-as (texture-anim-array texture-anim)
|
||||
(new 'static 'texture-anim-array :type texture-anim
|
||||
(new 'static 'texture-anim
|
||||
:num-layers #x1
|
||||
:func #f
|
||||
:init-func 'texture-anim-overide-size-init
|
||||
:tex #f
|
||||
:tex-name "cas-conveyor-dest"
|
||||
:extra (new 'static 'vector :x 64.0 :y 32.0)
|
||||
:color (new 'static 'rgba :a #x80)
|
||||
:frame-delta 555.0
|
||||
:frame-mod 300.0
|
||||
:test (new 'static 'gs-test :ate #x1 :afail #x1 :zte #x1 :ztst (gs-ztest always))
|
||||
:alpha (new 'static 'gs-alpha :b #x1 :d #x1)
|
||||
:clamp (new 'static 'gs-clamp :wms (gs-tex-wrap-mode clamp) :wmt (gs-tex-wrap-mode clamp))
|
||||
)
|
||||
(new 'static 'texture-anim
|
||||
:num-layers #x1
|
||||
:func #f
|
||||
:init-func 'texture-anim-overide-size-init
|
||||
:tex #f
|
||||
:tex-name "cas-conveyor-dest-01"
|
||||
:extra (new 'static 'vector :x 64.0 :y 32.0)
|
||||
:color (new 'static 'rgba :a #x80)
|
||||
:frame-delta 555.0
|
||||
:frame-mod 300.0
|
||||
:test (new 'static 'gs-test :ate #x1 :afail #x1 :zte #x1 :ztst (gs-ztest always))
|
||||
:alpha (new 'static 'gs-alpha :b #x1 :d #x1)
|
||||
:clamp (new 'static 'gs-clamp :wms (gs-tex-wrap-mode clamp) :wmt (gs-tex-wrap-mode clamp))
|
||||
)
|
||||
(new 'static 'texture-anim
|
||||
:num-layers #x1
|
||||
:func #f
|
||||
:init-func 'texture-anim-overide-size-init
|
||||
:tex #f
|
||||
:tex-name "cas-conveyor-dest-02"
|
||||
:extra (new 'static 'vector :x 64.0 :y 32.0)
|
||||
:color (new 'static 'rgba :a #x80)
|
||||
:frame-delta 555.0
|
||||
:frame-mod 300.0
|
||||
:test (new 'static 'gs-test :ate #x1 :afail #x1 :zte #x1 :ztst (gs-ztest always))
|
||||
:alpha (new 'static 'gs-alpha :b #x1 :d #x1)
|
||||
:clamp (new 'static 'gs-clamp :wms (gs-tex-wrap-mode clamp) :wmt (gs-tex-wrap-mode clamp))
|
||||
)
|
||||
(new 'static 'texture-anim
|
||||
:num-layers #x1
|
||||
:func #f
|
||||
:init-func 'texture-anim-overide-size-init
|
||||
:tex #f
|
||||
:tex-name "cas-conveyor-dest-03"
|
||||
:extra (new 'static 'vector :x 64.0 :y 32.0)
|
||||
:color (new 'static 'rgba :a #x80)
|
||||
:frame-delta 555.0
|
||||
:frame-mod 300.0
|
||||
:test (new 'static 'gs-test :ate #x1 :afail #x1 :zte #x1 :ztst (gs-ztest always))
|
||||
:alpha (new 'static 'gs-alpha :b #x1 :d #x1)
|
||||
:clamp (new 'static 'gs-clamp :wms (gs-tex-wrap-mode clamp) :wmt (gs-tex-wrap-mode clamp))
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
(defun set-conveyor-speed! ((arg0 int) (arg1 float))
|
||||
(set! (-> *cas-conveyor-texture-anim-array* array-data arg0 frame-delta) (* 0.018066408 arg1))
|
||||
0
|
||||
(none)
|
||||
)
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -7,3 +7,235 @@
|
||||
|
||||
;; DECOMP BEGINS
|
||||
|
||||
(deftype pal-lowrez-throne (med-res-level)
|
||||
()
|
||||
:heap-base #x60
|
||||
:method-count-assert 21
|
||||
:size-assert #xd4
|
||||
:flag-assert #x15006000d4
|
||||
)
|
||||
|
||||
|
||||
(defskelgroup skel-pal-lowrez-throne pal-lowrez-throne pal-lowrez-throne-lod0-jg pal-lowrez-throne-idle-ja
|
||||
((pal-lowrez-throne-lod0-mg (meters 999999)))
|
||||
:bounds (static-spherem -5 40 -10 75)
|
||||
)
|
||||
|
||||
(defpartgroup group-pal-prong-energy
|
||||
:id 1111
|
||||
:bounds (static-bspherem 0 0 0 160)
|
||||
:parts ((sp-item 4762 :fade-after (meters 80) :falloff-to (meters 80))
|
||||
(sp-item 4763 :fade-after (meters 220) :flags (bit6))
|
||||
)
|
||||
)
|
||||
|
||||
(defpart 4762
|
||||
:init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #xc9 :page #xc))
|
||||
(sp-flt spt-num 2.0)
|
||||
(sp-flt spt-scale-x (meters 0))
|
||||
(sp-flt spt-rot-z (degrees 90.0))
|
||||
(sp-copy-from-other spt-scale-y -4)
|
||||
(sp-flt spt-r 255.0)
|
||||
(sp-flt spt-g 255.0)
|
||||
(sp-flt spt-b 255.0)
|
||||
(sp-flt spt-a 32.0)
|
||||
(sp-flt spt-vel-y (meters -0.03))
|
||||
(sp-rnd-flt spt-scalevel-x (meters 0.005) (meters 0.005) 1.0)
|
||||
(sp-rnd-flt spt-rotvel-z (degrees -1.2) (degrees 2.4) 1.0)
|
||||
(sp-copy-from-other spt-scalevel-y -4)
|
||||
(sp-flt spt-fade-r -0.98)
|
||||
(sp-flt spt-fade-g -0.98)
|
||||
(sp-flt spt-fade-a 0.19393939)
|
||||
(sp-int spt-timer 250)
|
||||
(sp-cpuinfo-flags sp-cpuinfo-flag-2 sp-cpuinfo-flag-3)
|
||||
(sp-int spt-next-time 165)
|
||||
(sp-launcher-by-id spt-next-launcher 4764)
|
||||
(sp-rnd-flt spt-conerot-x (degrees 0.0) (degrees 3600.0) 1.0)
|
||||
(sp-rnd-flt spt-conerot-y (degrees 0.0) (degrees 3600.0) 1.0)
|
||||
(sp-flt spt-conerot-radius (meters 6))
|
||||
)
|
||||
)
|
||||
|
||||
(defpart 4764
|
||||
:init-specs ((sp-flt spt-fade-a -0.7529412) (sp-flt spt-friction 0.1))
|
||||
)
|
||||
|
||||
(defpart 4763
|
||||
:init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #xca :page #xc))
|
||||
(sp-flt spt-num 1.0)
|
||||
(sp-flt spt-scale-x (meters 8))
|
||||
(sp-flt spt-rot-x 1228.8)
|
||||
(sp-copy-from-other spt-scale-y -4)
|
||||
(sp-rnd-flt spt-r 0.0 64.0 1.0)
|
||||
(sp-flt spt-g 128.0)
|
||||
(sp-flt spt-b 255.0)
|
||||
(sp-flt spt-a 64.0)
|
||||
(sp-flt spt-omega 822476.8)
|
||||
(sp-int spt-timer 5)
|
||||
(sp-cpuinfo-flags sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow)
|
||||
(sp-flt spt-userdata 8192.0)
|
||||
)
|
||||
)
|
||||
|
||||
(deftype pal-prong (process-drawable)
|
||||
((root-override collide-shape :offset 128)
|
||||
)
|
||||
:heap-base #x50
|
||||
:method-count-assert 23
|
||||
:size-assert #xc8
|
||||
:flag-assert #x17005000c8
|
||||
(:methods
|
||||
(idle () _type_ :state 20)
|
||||
(break-it () _type_ :state 21)
|
||||
(broken () _type_ :state 22)
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
(defskelgroup skel-pal-prong pal-prong pal-prong-lod0-jg pal-prong-idle-ja
|
||||
((pal-prong-lod0-mg (meters 999999)))
|
||||
:bounds (static-spherem 0 5 0 5.5)
|
||||
:origin-joint-index 3
|
||||
)
|
||||
|
||||
(defskelgroup skel-pal-prong-explode pal-prong pal-prong-explode-lod0-jg pal-prong-explode-idle-ja
|
||||
((pal-prong-explode-lod0-mg (meters 999999)))
|
||||
:bounds (static-spherem 0 0 0 15)
|
||||
)
|
||||
|
||||
(define *pal-prong-exploder-params*
|
||||
(new 'static 'joint-exploder-static-params
|
||||
:joints (new 'static 'boxed-array :type joint-exploder-static-joint-params
|
||||
(new 'static 'joint-exploder-static-joint-params :joint-index 3 :parent-joint-index -1)
|
||||
(new 'static 'joint-exploder-static-joint-params :joint-index 4 :parent-joint-index -1)
|
||||
(new 'static 'joint-exploder-static-joint-params :joint-index 5 :parent-joint-index -1)
|
||||
(new 'static 'joint-exploder-static-joint-params :joint-index 6 :parent-joint-index -1)
|
||||
(new 'static 'joint-exploder-static-joint-params :joint-index 7 :parent-joint-index -1)
|
||||
(new 'static 'joint-exploder-static-joint-params :joint-index 8 :parent-joint-index -1)
|
||||
(new 'static 'joint-exploder-static-joint-params :joint-index 9 :parent-joint-index -1)
|
||||
(new 'static 'joint-exploder-static-joint-params :joint-index 10 :parent-joint-index -1)
|
||||
(new 'static 'joint-exploder-static-joint-params :joint-index 11 :parent-joint-index -1)
|
||||
(new 'static 'joint-exploder-static-joint-params :joint-index 12 :parent-joint-index -1)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
;; WARN: Return type mismatch object vs none.
|
||||
(defmethod init-from-entity! pal-prong ((obj pal-prong) (arg0 entity-actor))
|
||||
"Typically the method that does the initial setup on the process, potentially using the [[entity-actor]] provided as part of that.
|
||||
This commonly includes things such as:
|
||||
- stack size
|
||||
- collision information
|
||||
- loading the skeleton group / bones
|
||||
- sounds"
|
||||
(let ((s4-0 (new 'process 'collide-shape obj (collide-list-enum usually-hit-by-player))))
|
||||
(let ((s3-0 (new 'process 'collide-shape-prim-group s4-0 (the-as uint 2) 0)))
|
||||
(set! (-> s4-0 total-prims) (the-as uint 3))
|
||||
(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 20480.0 0.0 22528.0)
|
||||
(set! (-> s4-0 root-prim) s3-0)
|
||||
)
|
||||
(let ((v1-8 (new 'process 'collide-shape-prim-mesh s4-0 (the-as uint 0) (the-as uint 0))))
|
||||
(set! (-> v1-8 prim-core collide-as) (collide-spec obstacle))
|
||||
(set! (-> v1-8 prim-core action) (collide-action solid))
|
||||
(set! (-> v1-8 transform-index) 3)
|
||||
(set-vector! (-> v1-8 local-sphere) 0.0 20480.0 0.0 22528.0)
|
||||
)
|
||||
(let ((v1-10 (new 'process 'collide-shape-prim-mesh s4-0 (the-as uint 1) (the-as uint 0))))
|
||||
(set! (-> v1-10 prim-core collide-as) (collide-spec obstacle))
|
||||
(set! (-> v1-10 prim-core action) (collide-action solid))
|
||||
(set! (-> v1-10 transform-index) 3)
|
||||
(set-vector! (-> v1-10 local-sphere) 0.0 0.0 0.0 8192.0)
|
||||
)
|
||||
(set! (-> s4-0 nav-radius) (* 0.75 (-> s4-0 root-prim local-sphere w)))
|
||||
(let ((v1-13 (-> s4-0 root-prim)))
|
||||
(set! (-> s4-0 backup-collide-as) (-> v1-13 prim-core collide-as))
|
||||
(set! (-> s4-0 backup-collide-with) (-> v1-13 prim-core collide-with))
|
||||
)
|
||||
(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-pal-prong" (the-as (pointer uint32) #f)))
|
||||
(the-as pair 0)
|
||||
)
|
||||
(set! (-> obj part) (create-launch-control (-> *part-group-id-table* 1111) obj))
|
||||
(if (task-node-closed? (game-task-node palace-boss-resolution))
|
||||
(go (method-of-object obj broken))
|
||||
(go (method-of-object obj idle))
|
||||
)
|
||||
(none)
|
||||
)
|
||||
|
||||
(defbehavior pal-prong-small-collision pal-prong ()
|
||||
(let ((v1-3 (-> (the-as collide-shape-prim-group (-> self root-override root-prim)) child 0)))
|
||||
(set! (-> v1-3 prim-core collide-as) (collide-spec))
|
||||
(set! (-> v1-3 prim-core collide-with) (collide-spec))
|
||||
)
|
||||
0
|
||||
(none)
|
||||
)
|
||||
|
||||
(defstate broken (pal-prong)
|
||||
:virtual #t
|
||||
:enter (behavior ()
|
||||
(setup-masks (-> self draw) 0 1)
|
||||
(pal-prong-small-collision)
|
||||
(transform-post)
|
||||
(none)
|
||||
)
|
||||
:code (the-as (function none :behavior pal-prong) sleep-code)
|
||||
)
|
||||
|
||||
(defstate break-it (pal-prong)
|
||||
:virtual #t
|
||||
:enter (behavior ()
|
||||
(setup-masks (-> self draw) 0 1)
|
||||
(pal-prong-small-collision)
|
||||
(transform-post)
|
||||
(sound-play "sqd-post-break")
|
||||
(let ((gp-1 (new 'stack 'joint-exploder-tuning (the-as uint 0))))
|
||||
(process-spawn
|
||||
joint-exploder
|
||||
(art-group-get-by-name *level* "skel-pal-prong-explode" (the-as (pointer uint32) #f))
|
||||
5
|
||||
gp-1
|
||||
*pal-prong-exploder-params*
|
||||
:to self
|
||||
)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
:trans (behavior ()
|
||||
(go-virtual broken)
|
||||
(none)
|
||||
)
|
||||
:code (the-as (function none :behavior pal-prong) sleep-code)
|
||||
)
|
||||
|
||||
(defstate idle (pal-prong)
|
||||
:virtual #t
|
||||
:event (behavior ((proc process) (arg1 int) (event-type symbol) (event event-message-block))
|
||||
(case event-type
|
||||
(('trigger)
|
||||
(go-virtual break-it)
|
||||
)
|
||||
)
|
||||
)
|
||||
:enter (behavior ()
|
||||
(transform-post)
|
||||
(none)
|
||||
)
|
||||
:trans (behavior ()
|
||||
(let ((a1-0 (new 'stack-no-clear 'vector)))
|
||||
(set! (-> a1-0 quad) (-> self root-override trans quad))
|
||||
(set! (-> a1-0 y) (+ 36864.0 (-> a1-0 y)))
|
||||
(spawn (-> self part) a1-0)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
:code (the-as (function none :behavior pal-prong) sleep-code)
|
||||
)
|
||||
|
||||
+1
-1
@@ -453,7 +453,7 @@
|
||||
(go-hostile (_type_) none 70)
|
||||
(go-flee (_type_) none 71)
|
||||
(react-to-focus (_type_) none 72)
|
||||
(kill-prefer-falling (_type_) none 73)
|
||||
(kill-prefer-falling (_type_) object 73)
|
||||
(general-event-handler (_type_ process int symbol event-message-block) object 74)
|
||||
(enemy-method-75 (_type_ process touching-shapes-entry) none 75)
|
||||
(enemy-method-76 (_type_ process event-message-block) symbol 76)
|
||||
|
||||
+3
-2
@@ -601,14 +601,12 @@
|
||||
)
|
||||
|
||||
;; definition for method 73 of type enemy
|
||||
;; WARN: Return type mismatch object vs none.
|
||||
(defmethod kill-prefer-falling enemy ((obj enemy))
|
||||
"If available in `enemy-info`, [[go]] to the [[die-falling]] state, if not, [[die]]"
|
||||
(if (-> obj enemy-info use-die-falling)
|
||||
(go (method-of-object obj die-falling))
|
||||
(go (method-of-object obj die))
|
||||
)
|
||||
(none)
|
||||
)
|
||||
|
||||
;; definition for method 135 of type enemy
|
||||
@@ -1710,9 +1708,11 @@ This commonly includes things such as:
|
||||
;; WARN: rewrite_to_get_var got a none typed variable. Is there unreachable code? [OP: 17]
|
||||
;; WARN: rewrite_to_get_var got a none typed variable. Is there unreachable code? [OP: 28]
|
||||
;; WARN: rewrite_to_get_var got a none typed variable. Is there unreachable code? [OP: 89]
|
||||
;; WARN: rewrite_to_get_var got a none typed variable. Is there unreachable code? [OP: 105]
|
||||
;; WARN: rewrite_to_get_var got a none typed variable. Is there unreachable code? [OP: 202]
|
||||
;; WARN: rewrite_to_get_var got a none typed variable. Is there unreachable code? [OP: 274]
|
||||
;; WARN: rewrite_to_get_var got a none typed variable. Is there unreachable code? [OP: 346]
|
||||
;; WARN: rewrite_to_get_var got a none typed variable. Is there unreachable code? [OP: 407]
|
||||
;; WARN: rewrite_to_get_var got a none typed variable. Is there unreachable code? [OP: 413]
|
||||
;; WARN: rewrite_to_get_var got a none typed variable. Is there unreachable code? [OP: 490]
|
||||
;; WARN: rewrite_to_get_var got a none typed variable. Is there unreachable code? [OP: 493]
|
||||
@@ -1720,6 +1720,7 @@ This commonly includes things such as:
|
||||
;; WARN: rewrite_to_get_var got a none typed variable. Is there unreachable code? [OP: 560]
|
||||
;; WARN: rewrite_to_get_var got a none typed variable. Is there unreachable code? [OP: 610]
|
||||
;; WARN: rewrite_to_get_var got a none typed variable. Is there unreachable code? [OP: 641]
|
||||
;; WARN: rewrite_to_get_var got a none typed variable. Is there unreachable code? [OP: 720]
|
||||
;; WARN: rewrite_to_get_var got a none typed variable. Is there unreachable code? [OP: 774]
|
||||
;; WARN: rewrite_to_get_var got a none typed variable. Is there unreachable code? [OP: 807]
|
||||
;; WARN: rewrite_to_get_var got a none typed variable. Is there unreachable code? [OP: 814]
|
||||
|
||||
+70
-2
@@ -229,7 +229,7 @@
|
||||
|
||||
;; definition of type mysql-nav-graph-level-info
|
||||
(deftype mysql-nav-graph-level-info (structure)
|
||||
((level basic :offset-assert 0)
|
||||
((level string :offset-assert 0)
|
||||
(level-id uint32 :offset-assert 4)
|
||||
(node-count int32 :offset-assert 8)
|
||||
(branch-count int32 :offset-assert 12)
|
||||
@@ -1216,7 +1216,72 @@ returns `-1` if none is found"
|
||||
)
|
||||
|
||||
;; definition for method 18 of type mysql-nav-graph
|
||||
;; ERROR: function was not converted to expressions. Cannot decompile.
|
||||
(defmethod lookup-level-info2 mysql-nav-graph ((obj mysql-nav-graph) (arg0 mysql-nav-node) (arg1 symbol))
|
||||
"TODO - this was originally called `lookup-level-info` but it clashes with the function defined in `level`"
|
||||
(let ((s5-0 (the-as mysql-nav-graph-level-info #f)))
|
||||
(b! (>= (-> obj level-info-last-lookup) (-> obj level-info-array-length)) cfg-3 :delay #f)
|
||||
(let ((v1-5 (-> obj level-info-array (-> obj level-info-last-lookup))))
|
||||
(let ((a0-2 (-> v1-5 level)))
|
||||
(b! (!= (-> arg0 level_name) a0-2) cfg-3 :delay (empty-form))
|
||||
)
|
||||
(set! s5-0 v1-5)
|
||||
)
|
||||
(b! #t cfg-18 :delay (nop!))
|
||||
(label cfg-3)
|
||||
(let ((v1-6 0))
|
||||
(b! #t cfg-9 :delay (nop!))
|
||||
(label cfg-4)
|
||||
(let ((a0-6 (-> obj level-info-array v1-6)))
|
||||
(let ((a3-1 (-> a0-6 level)))
|
||||
(b! (!= (-> arg0 level_name) a3-1) cfg-8 :delay (empty-form))
|
||||
)
|
||||
(if arg1
|
||||
(set! (-> obj level-info-last-lookup) v1-6)
|
||||
)
|
||||
(set! s5-0 a0-6)
|
||||
)
|
||||
(b! #t cfg-18 :delay (nop!))
|
||||
(label cfg-8)
|
||||
(+! v1-6 1)
|
||||
(label cfg-9)
|
||||
(b! (< v1-6 (-> obj level-info-array-length)) cfg-4)
|
||||
)
|
||||
(let ((v1-9 (-> obj level-info-array-length)))
|
||||
(cond
|
||||
((< v1-9 32)
|
||||
(if arg1
|
||||
(set! (-> obj level-info-last-lookup) v1-9)
|
||||
)
|
||||
(set! s5-0 (-> obj level-info-array v1-9))
|
||||
(set! (-> s5-0 level) (the-as string (-> arg0 level_name)))
|
||||
(set! (-> s5-0 node-count) 0)
|
||||
(+! (-> obj level-info-array-length) 1)
|
||||
)
|
||||
(else
|
||||
(format
|
||||
0
|
||||
"mysql-nav-graph::lookup-level-info: Error, too many unique level names in nav-graph. May need to increase the max (currently ~d)~%"
|
||||
32
|
||||
)
|
||||
(let ((s4-0 0))
|
||||
(b! #t cfg-16 :delay (nop!))
|
||||
(label cfg-15)
|
||||
(let ((v1-17 (-> obj level-info-array s4-0)))
|
||||
(format 0 "~d ~s~%" s4-0 (-> v1-17 level))
|
||||
)
|
||||
(+! s4-0 1)
|
||||
(label cfg-16)
|
||||
(b! (< s4-0 (-> obj level-info-array-length)) cfg-15)
|
||||
)
|
||||
(break!)
|
||||
0
|
||||
)
|
||||
)
|
||||
)
|
||||
(label cfg-18)
|
||||
s5-0
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for method 19 of type mysql-nav-graph
|
||||
;; WARN: Return type mismatch int vs none.
|
||||
@@ -1309,3 +1374,6 @@ returns `-1` if none is found"
|
||||
)
|
||||
|
||||
)
|
||||
|
||||
|
||||
|
||||
|
||||
+1
-1
@@ -85,7 +85,7 @@
|
||||
((num-layers uint32 :offset-assert 0)
|
||||
(func symbol :offset-assert 4)
|
||||
(func-id basic :offset 4)
|
||||
(init-func basic :offset-assert 8)
|
||||
(init-func symbol :offset-assert 8)
|
||||
(init-func-id basic :offset 8)
|
||||
(tex texture :offset-assert 12)
|
||||
(tex-name string :offset-assert 16)
|
||||
|
||||
+7
-25
@@ -171,7 +171,7 @@
|
||||
(info rigid-body-info :offset-assert 4)
|
||||
(flags rigid-body-flag :offset-assert 8)
|
||||
(force-callback (function object float none) :offset-assert 12)
|
||||
(blocked-by basic :offset-assert 16)
|
||||
(blocked-by rigid-body-object :offset-assert 16)
|
||||
(time-remaining float :offset-assert 20)
|
||||
(step-count int16 :offset-assert 24)
|
||||
(position vector :inline :offset-assert 32)
|
||||
@@ -268,26 +268,8 @@
|
||||
|
||||
;; definition of type rigid-body-control
|
||||
(deftype rigid-body-control (basic)
|
||||
((process process :offset-assert 4)
|
||||
(state rigid-body :inline :offset-assert 16)
|
||||
(work basic :offset 16)
|
||||
(info rigid-body-info :offset 20)
|
||||
(flags rigid-body-flag :offset 24)
|
||||
(force-callback basic :offset 28)
|
||||
(blocked-by basic :offset 32)
|
||||
(time-remaining float :offset 36)
|
||||
(step-count int16 :offset 40)
|
||||
(position vector :inline :offset 48)
|
||||
(rot vector :inline :offset 64)
|
||||
(rotation quaternion :inline :offset 64)
|
||||
(lin-momentum vector :inline :offset 80)
|
||||
(ang-momentum vector :inline :offset 96)
|
||||
(force vector :inline :offset 112)
|
||||
(torque vector :inline :offset 128)
|
||||
(lin-velocity vector :inline :offset 144)
|
||||
(ang-velocity vector :inline :offset 160)
|
||||
(matrix matrix :inline :offset 176)
|
||||
(inv-i-world matrix :inline :offset 240)
|
||||
((process process :offset-assert 4)
|
||||
(state rigid-body :inline :offset-assert 16)
|
||||
)
|
||||
:method-count-assert 26
|
||||
:size-assert #x130
|
||||
@@ -566,7 +548,7 @@
|
||||
;; definition of type rigid-body-queue
|
||||
(deftype rigid-body-queue (structure)
|
||||
((count int8 :offset-assert 0)
|
||||
(array uint64 128 :offset 8)
|
||||
(array handle 128 :offset 8)
|
||||
)
|
||||
:method-count-assert 17
|
||||
:size-assert #x408
|
||||
@@ -574,11 +556,11 @@
|
||||
(:methods
|
||||
(rigid-body-queue-method-9 (_type_) none 9)
|
||||
(rigid-body-queue-method-10 (_type_) none 10)
|
||||
(rigid-body-queue-method-11 (_type_) none 11)
|
||||
(rigid-body-queue-method-11 (_type_ rigid-body-object) none 11)
|
||||
(rigid-body-queue-method-12 (_type_ int int) none 12)
|
||||
(rigid-body-queue-method-13 (_type_) none 13)
|
||||
(rigid-body-queue-method-13 (_type_ int rigid-body-object) none 13)
|
||||
(rigid-body-queue-method-14 (_type_ int) none 14)
|
||||
(rigid-body-queue-method-15 (_type_) none 15)
|
||||
(rigid-body-queue-method-15 (_type_ rigid-body-object) none 15)
|
||||
(validate (_type_) symbol 16)
|
||||
)
|
||||
)
|
||||
|
||||
+320
@@ -0,0 +1,320 @@
|
||||
;;-*-Lisp-*-
|
||||
(in-package goal)
|
||||
|
||||
;; definition for method 9 of type rigid-body-queue
|
||||
;; WARN: Return type mismatch int vs none.
|
||||
(defmethod rigid-body-queue-method-9 rigid-body-queue ((obj rigid-body-queue))
|
||||
(set! (-> obj count) 0)
|
||||
(dotimes (v1-0 128)
|
||||
(set! (-> obj array v1-0) (the-as handle #f))
|
||||
)
|
||||
0
|
||||
(none)
|
||||
)
|
||||
|
||||
;; definition for method 16 of type rigid-body-queue
|
||||
(defmethod validate rigid-body-queue ((obj rigid-body-queue))
|
||||
(let ((gp-0 0))
|
||||
(dotimes (v1-0 (-> obj count))
|
||||
(let ((a1-2 (-> obj array v1-0))
|
||||
(a2-0 (+ v1-0 1))
|
||||
)
|
||||
(while (< a2-0 (-> obj count))
|
||||
(if (= a1-2 (-> obj array a2-0))
|
||||
(+! gp-0 1)
|
||||
)
|
||||
(+! a2-0 1)
|
||||
)
|
||||
)
|
||||
)
|
||||
(if (> gp-0 0)
|
||||
(format 0 "rigid-body-queue::validate: duplicate count ~d~%" gp-0)
|
||||
)
|
||||
(zero? gp-0)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for method 10 of type rigid-body-queue
|
||||
;; WARN: Return type mismatch int vs none.
|
||||
(defmethod rigid-body-queue-method-10 rigid-body-queue ((obj rigid-body-queue))
|
||||
(local-vars (s4-0 process))
|
||||
(with-pp
|
||||
(let ((f0-0 (-> pp clock seconds-per-frame))
|
||||
(v1-1 (-> obj count))
|
||||
)
|
||||
(b! #t cfg-9 :delay (nop!))
|
||||
(label cfg-1)
|
||||
(+! v1-1 -1)
|
||||
(let ((a0-4 (handle->process (-> obj array v1-1))))
|
||||
(cond
|
||||
(a0-4
|
||||
(let ((a0-6 (-> (the-as rigid-body-object a0-4) rbody)))
|
||||
(set! (-> a0-6 state time-remaining) f0-0)
|
||||
(set! (-> a0-6 state blocked-by) #f)
|
||||
(set! (-> a0-6 state step-count) 0)
|
||||
(logclear! (-> a0-6 state flags) (rigid-body-flag blocker))
|
||||
)
|
||||
)
|
||||
(else
|
||||
)
|
||||
)
|
||||
)
|
||||
(label cfg-9)
|
||||
(b! (nonzero? v1-1) cfg-1 :delay (nop!))
|
||||
)
|
||||
(let ((s5-0 0))
|
||||
(b! #t cfg-35 :delay (nop!))
|
||||
(until (= (-> obj array s5-0) (process->handle s4-0))
|
||||
(label cfg-11)
|
||||
(set! s4-0 (handle->process (-> obj array s5-0)))
|
||||
(b! (not s4-0) cfg-34 :delay (empty-form))
|
||||
(let ((s3-0 (-> (the-as rigid-body-object s4-0) rbody)))
|
||||
(b!
|
||||
(not (and (logtest? (-> s3-0 state flags) (rigid-body-flag enable-physics))
|
||||
(and (< 0.001 (-> s3-0 state time-remaining)) (< (-> s3-0 state step-count) 4))
|
||||
)
|
||||
)
|
||||
cfg-34
|
||||
:delay (empty-form)
|
||||
)
|
||||
(rigid-body-object-method-51 (the-as rigid-body-object s4-0))
|
||||
(+! (-> s3-0 state step-count) 1)
|
||||
(let ((a2-2 (-> s3-0 state blocked-by)))
|
||||
(b! (not a2-2) cfg-34 :delay (empty-form))
|
||||
(b! (not #t) cfg-34 :delay (empty-form))
|
||||
(logior! (-> a2-2 rbody state flags) (rigid-body-flag blocker))
|
||||
(rigid-body-queue-method-13 obj s5-0 a2-2)
|
||||
)
|
||||
)
|
||||
)
|
||||
(label cfg-34)
|
||||
(+! s5-0 1)
|
||||
(label cfg-35)
|
||||
(b! (< s5-0 (-> obj count)) cfg-11)
|
||||
)
|
||||
(let ((s5-1 0))
|
||||
(b! #t cfg-48 :delay (nop!))
|
||||
(label cfg-37)
|
||||
(let ((a0-20 (handle->process (-> obj array s5-1))))
|
||||
(when (and a0-20
|
||||
(logtest? (-> (the-as rigid-body-object a0-20) rbody state flags) (rigid-body-flag enable-physics))
|
||||
)
|
||||
(let ((s4-1 pp))
|
||||
(set! pp (the-as rigid-body-object a0-20))
|
||||
(rigid-body-object-method-52 (the-as rigid-body-object a0-20))
|
||||
(set! pp s4-1)
|
||||
)
|
||||
)
|
||||
)
|
||||
(+! s5-1 1)
|
||||
(label cfg-48)
|
||||
(b! (< s5-1 (-> obj count)) cfg-37)
|
||||
)
|
||||
0
|
||||
(none)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for method 11 of type rigid-body-queue
|
||||
;; WARN: Return type mismatch int vs none.
|
||||
(defmethod rigid-body-queue-method-11 rigid-body-queue ((obj rigid-body-queue) (arg0 rigid-body-object))
|
||||
(let ((v1-0 -1))
|
||||
(let ((a2-0 0))
|
||||
(b! #t cfg-9 :delay (nop!))
|
||||
(label cfg-1)
|
||||
(b! (handle->process (-> obj array a2-0)) cfg-8 :delay (empty-form))
|
||||
(set! v1-0 a2-0)
|
||||
(b! #t cfg-11 :delay (nop!))
|
||||
(label cfg-8)
|
||||
(+! a2-0 1)
|
||||
(label cfg-9)
|
||||
(b! (< a2-0 (-> obj count)) cfg-1)
|
||||
)
|
||||
(label cfg-11)
|
||||
(b! (= v1-0 -1) cfg-18 :delay (nop!))
|
||||
(set! (-> obj array v1-0) (process->handle arg0))
|
||||
)
|
||||
(b! #t cfg-25 :delay (nop!))
|
||||
(label cfg-18)
|
||||
(b! (>= (-> obj count) 128) cfg-25 :delay #f)
|
||||
(set! (-> obj array (-> obj count)) (process->handle arg0))
|
||||
(+! (-> obj count) 1)
|
||||
(label cfg-25)
|
||||
0
|
||||
0
|
||||
(none)
|
||||
)
|
||||
|
||||
;; definition for method 12 of type rigid-body-queue
|
||||
;; WARN: Return type mismatch int vs none.
|
||||
(defmethod rigid-body-queue-method-12 rigid-body-queue ((obj rigid-body-queue) (arg0 int) (arg1 int))
|
||||
(when (< arg0 arg1)
|
||||
(let ((v1-1 arg1)
|
||||
(a3-0 (+ arg1 -1))
|
||||
(a2-3 (-> obj array arg1))
|
||||
)
|
||||
(while (>= a3-0 arg0)
|
||||
(set! (-> obj array v1-1) (-> obj array a3-0))
|
||||
(+! a3-0 -1)
|
||||
(+! v1-1 -1)
|
||||
)
|
||||
(set! (-> obj array arg0) a2-3)
|
||||
)
|
||||
)
|
||||
0
|
||||
(none)
|
||||
)
|
||||
|
||||
;; definition for method 13 of type rigid-body-queue
|
||||
;; WARN: Return type mismatch int vs none.
|
||||
(defmethod rigid-body-queue-method-13 rigid-body-queue ((obj rigid-body-queue) (arg0 int) (arg1 rigid-body-object))
|
||||
(let ((v1-2 (process->handle arg1))
|
||||
(a2-4 (+ arg0 1))
|
||||
)
|
||||
(b! #t cfg-9 :delay (nop!))
|
||||
(label cfg-6)
|
||||
(b! (!= (-> obj array a2-4) v1-2) cfg-8 :delay (empty-form))
|
||||
(rigid-body-queue-method-12 obj arg0 a2-4)
|
||||
(b! #t cfg-11 :delay (nop!))
|
||||
(label cfg-8)
|
||||
(+! a2-4 1)
|
||||
(label cfg-9)
|
||||
(b! (< a2-4 (-> obj count)) cfg-6)
|
||||
)
|
||||
(label cfg-11)
|
||||
0
|
||||
0
|
||||
(none)
|
||||
)
|
||||
|
||||
;; definition for method 14 of type rigid-body-queue
|
||||
;; WARN: Return type mismatch int vs none.
|
||||
(defmethod rigid-body-queue-method-14 rigid-body-queue ((obj rigid-body-queue) (arg0 int))
|
||||
(let ((v1-0 arg0)
|
||||
(a1-1 (+ arg0 1))
|
||||
)
|
||||
(while (< a1-1 (-> obj count))
|
||||
(set! (-> obj array v1-0) (-> obj array a1-1))
|
||||
(+! a1-1 1)
|
||||
(+! v1-0 1)
|
||||
)
|
||||
)
|
||||
(+! (-> obj count) -1)
|
||||
0
|
||||
(none)
|
||||
)
|
||||
|
||||
;; definition for method 15 of type rigid-body-queue
|
||||
;; WARN: Return type mismatch int vs none.
|
||||
(defmethod rigid-body-queue-method-15 rigid-body-queue ((obj rigid-body-queue) (arg0 rigid-body-object))
|
||||
(let ((v1-2 (process->handle arg0))
|
||||
(a1-4 0)
|
||||
)
|
||||
(b! #t cfg-9 :delay (nop!))
|
||||
(label cfg-6)
|
||||
(b! (!= (-> obj array a1-4) v1-2) cfg-8 :delay (empty-form))
|
||||
(rigid-body-queue-method-14 obj a1-4)
|
||||
(b! #t cfg-11 :delay (nop!))
|
||||
(label cfg-8)
|
||||
(+! a1-4 1)
|
||||
(label cfg-9)
|
||||
(b! (< a1-4 (-> obj count)) cfg-6)
|
||||
)
|
||||
(label cfg-11)
|
||||
0
|
||||
0
|
||||
(none)
|
||||
)
|
||||
|
||||
;; definition of type rigid-body-queue-manager
|
||||
(deftype rigid-body-queue-manager (process)
|
||||
((queue rigid-body-queue :offset-assert 128)
|
||||
)
|
||||
:heap-base #x10
|
||||
:method-count-assert 15
|
||||
:size-assert #x84
|
||||
:flag-assert #xf00100084
|
||||
(:methods
|
||||
(idle () _type_ :state 14)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for method 3 of type rigid-body-queue-manager
|
||||
(defmethod inspect rigid-body-queue-manager ((obj rigid-body-queue-manager))
|
||||
(when (not obj)
|
||||
(set! obj obj)
|
||||
(goto cfg-4)
|
||||
)
|
||||
(let ((t9-0 (method-of-type process inspect)))
|
||||
(t9-0 obj)
|
||||
)
|
||||
(format #t "~2Tqueue: #<rigid-body-queue @ #x~X>~%" (-> obj queue))
|
||||
(label cfg-4)
|
||||
obj
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defstate idle (rigid-body-queue-manager)
|
||||
:virtual #t
|
||||
:exit (behavior ()
|
||||
(set! (-> self queue count) 0)
|
||||
0
|
||||
(none)
|
||||
)
|
||||
:code (the-as (function none :behavior rigid-body-queue-manager) sleep-code)
|
||||
:post (behavior ()
|
||||
(local-vars (a0-3 int) (a0-5 int))
|
||||
(let* ((v1-1 (-> *perf-stats* data 17))
|
||||
(a0-0 (-> v1-1 ctrl))
|
||||
)
|
||||
(+! (-> v1-1 count) 1)
|
||||
(b! (zero? a0-0) cfg-2 :delay (nop!))
|
||||
(.mtc0 Perf 0)
|
||||
(.sync.l)
|
||||
(.sync.p)
|
||||
(.mtpc pcr0 0)
|
||||
(.mtpc pcr1 0)
|
||||
(.sync.l)
|
||||
(.sync.p)
|
||||
(.mtc0 Perf a0-0)
|
||||
)
|
||||
(.sync.l)
|
||||
(.sync.p)
|
||||
(label cfg-2)
|
||||
0
|
||||
(rigid-body-queue-method-10 (-> self queue))
|
||||
(let ((v1-6 (-> *perf-stats* data 17)))
|
||||
(b! (zero? (-> v1-6 ctrl)) cfg-4 :delay (nop!))
|
||||
(.mtc0 Perf 0)
|
||||
(.sync.l)
|
||||
(.sync.p)
|
||||
(.mfpc a0-3 pcr0)
|
||||
(+! (-> v1-6 accum0) a0-3)
|
||||
(.mfpc a0-5 pcr1)
|
||||
(+! (-> v1-6 accum1) a0-5)
|
||||
)
|
||||
(label cfg-4)
|
||||
0
|
||||
(none)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for function rigid-body-queue-manager-init-by-other
|
||||
(defbehavior rigid-body-queue-manager-init-by-other rigid-body-queue-manager ((arg0 rigid-body-queue))
|
||||
(stack-size-set! (-> self main-thread) 128)
|
||||
(set! (-> self queue) arg0)
|
||||
(rigid-body-queue-method-9 (-> self queue))
|
||||
(go-virtual idle)
|
||||
)
|
||||
|
||||
;; definition for function rigid-body-queue-manager-spawn
|
||||
(defun rigid-body-queue-manager-spawn ((arg0 rigid-body-queue) (arg1 process-tree))
|
||||
(let ((gp-0 (the-as process #f)))
|
||||
(let ((v1-1 (process-spawn rigid-body-queue-manager arg0 :to arg1)))
|
||||
(if v1-1
|
||||
(set! gp-0 (-> v1-1 0))
|
||||
)
|
||||
)
|
||||
gp-0
|
||||
)
|
||||
)
|
||||
+15
-10
@@ -559,10 +559,11 @@
|
||||
(vector-rotate*! (-> s5-0 vec-7) (-> s5-0 vec-7) (-> s3-0 inv-i-world))
|
||||
(vector-cross! (-> s5-0 vec-7) (-> s5-0 vec-7) (-> s5-0 vec-6))
|
||||
(+! (-> s5-0 float-3) (+ (-> s3-0 info inv-mass) (vector-dot (-> s5-0 vec-5) (-> s5-0 vec-7))))
|
||||
(set! f30-1 (fmax
|
||||
(fmax f30-1 (-> s3-0 info bounce-factor))
|
||||
(* (-> arg0 info bounce-mult-factor) (-> s3-0 info bounce-mult-factor))
|
||||
)
|
||||
(set! f30-1
|
||||
(fmax
|
||||
(fmax f30-1 (-> s3-0 info bounce-factor))
|
||||
(* (-> arg0 info bounce-mult-factor) (-> s3-0 info bounce-mult-factor))
|
||||
)
|
||||
)
|
||||
)
|
||||
(else
|
||||
@@ -577,12 +578,14 @@
|
||||
)
|
||||
(vector+float*! (-> s5-0 vec-9) (-> s5-0 vec-3) (-> s5-0 vec-5) (- (-> s5-0 float-2)))
|
||||
(vector-normalize! (-> s5-0 vec-9) 1.0)
|
||||
(let ((f0-31 (* -1.0 (fmin
|
||||
(* (vector-dot (-> s5-0 vec-9) (-> s5-0 vec-3)) f30-2)
|
||||
(* (-> arg0 info friction-factor) (-> s5-0 float-4))
|
||||
)
|
||||
)
|
||||
(let ((f0-31
|
||||
(* -1.0
|
||||
(fmin
|
||||
(* (vector-dot (-> s5-0 vec-9) (-> s5-0 vec-3)) f30-2)
|
||||
(* (-> arg0 info friction-factor) (-> s5-0 float-4))
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(vector+float*! (-> s5-0 vec-8) (-> s5-0 vec-8) (-> s5-0 vec-9) f0-31)
|
||||
)
|
||||
@@ -627,7 +630,9 @@
|
||||
(b! #t cfg-42 :delay (nop!))
|
||||
(label cfg-39)
|
||||
(b! (not s3-0) cfg-41 :delay (empty-form))
|
||||
(set! (-> arg0 blocked-by) (-> (the-as collide-shape-prim-mesh (-> s5-0 cquery num-spheres)) cshape process))
|
||||
(set! (-> arg0 blocked-by)
|
||||
(the-as rigid-body-object (-> (the-as collide-shape-prim-mesh (-> s5-0 cquery num-spheres)) cshape process))
|
||||
)
|
||||
0
|
||||
(label cfg-41)
|
||||
(vector+float*! (-> arg0 position) (-> arg0 position) (-> s5-0 vec-5) 40.96)
|
||||
|
||||
+1294
File diff suppressed because it is too large
Load Diff
+1
-1
@@ -296,7 +296,7 @@
|
||||
(node-at-idx (_type_ int) nav-node 41)
|
||||
(nav-graph-method-42 (_type_) none 42)
|
||||
(nav-graph-method-43 (_type_ nav-graph-link string) none 43)
|
||||
(from-editor () none 44)
|
||||
(from-editor (_type_ nav-node symbol) none 44)
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
+7
-5
@@ -1532,11 +1532,13 @@
|
||||
(if (zero? (-> obj draw light-index))
|
||||
(set! (-> obj draw light-index) (the-as uint 10))
|
||||
)
|
||||
(rigid-body-queue-method-11 (if (logtest? (-> obj info-override flags) 1024)
|
||||
*race-rigid-body-queue*
|
||||
*traffic-rigid-body-queue*
|
||||
)
|
||||
)
|
||||
(rigid-body-queue-method-11
|
||||
(if (logtest? (-> obj info-override flags) 1024)
|
||||
*race-rigid-body-queue*
|
||||
*traffic-rigid-body-queue*
|
||||
)
|
||||
obj
|
||||
)
|
||||
0
|
||||
(none)
|
||||
)
|
||||
|
||||
+2694
File diff suppressed because it is too large
Load Diff
+573
@@ -0,0 +1,573 @@
|
||||
;;-*-Lisp-*-
|
||||
(in-package goal)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defskelgroup skel-krew-package krew-package krew-package-lod0-jg krew-package-idle-ja
|
||||
((krew-package-lod0-mg (meters 20)) (krew-package-lod1-mg (meters 40)) (krew-package-lod2-mg (meters 999999)))
|
||||
:bounds (static-spherem 0 0 0 3.6)
|
||||
)
|
||||
|
||||
;; definition of type krew-package
|
||||
(deftype krew-package (process-drawable)
|
||||
((attach-object handle :offset-assert 200)
|
||||
(scale float :offset-assert 208)
|
||||
)
|
||||
:heap-base #x60
|
||||
:method-count-assert 24
|
||||
:size-assert #xd4
|
||||
:flag-assert #x18006000d4
|
||||
(:methods
|
||||
(idle () _type_ :state 20)
|
||||
(die () _type_ :state 21)
|
||||
(krew-package-method-22 (_type_) none 22)
|
||||
(krew-package-method-23 (_type_) none 23)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for method 3 of type krew-package
|
||||
(defmethod inspect krew-package ((obj krew-package))
|
||||
(when (not obj)
|
||||
(set! obj obj)
|
||||
(goto cfg-4)
|
||||
)
|
||||
(let ((t9-0 (method-of-type process-drawable inspect)))
|
||||
(t9-0 obj)
|
||||
)
|
||||
(format #t "~2Tattach-object: ~D~%" (-> obj attach-object))
|
||||
(format #t "~2Tscale: ~f~%" (-> obj scale))
|
||||
(label cfg-4)
|
||||
obj
|
||||
)
|
||||
|
||||
;; definition for method 22 of type krew-package
|
||||
;; WARN: Return type mismatch int vs none.
|
||||
(defmethod krew-package-method-22 krew-package ((obj krew-package))
|
||||
(set! (-> obj root) (new 'process 'trsqv))
|
||||
0
|
||||
(none)
|
||||
)
|
||||
|
||||
;; definition for method 23 of type krew-package
|
||||
;; WARN: Return type mismatch int vs none.
|
||||
(defmethod krew-package-method-23 krew-package ((obj krew-package))
|
||||
(with-pp
|
||||
(set! (-> pp level) (level-get *level* 'lpackage))
|
||||
(initialize-skeleton
|
||||
obj
|
||||
(the-as skeleton-group (art-group-get-by-name *level* "skel-krew-package" (the-as (pointer uint32) #f)))
|
||||
(the-as pair 0)
|
||||
)
|
||||
(set! (-> obj scale) 1.0)
|
||||
(set! (-> obj draw lod-set lod 0 dist) 81920.0)
|
||||
(set! (-> obj draw lod-set lod 1 dist) 204800.0)
|
||||
(set! (-> obj draw lod-set lod 1 dist) 327680.0)
|
||||
(logior! (-> obj skel status) (joint-control-status sync-math))
|
||||
0
|
||||
(none)
|
||||
)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defstate idle (krew-package)
|
||||
:virtual #t
|
||||
:code (the-as (function none :behavior krew-package) sleep-code)
|
||||
:post (behavior ()
|
||||
(let ((gp-0 (handle->process (-> self attach-object))))
|
||||
(cond
|
||||
(gp-0
|
||||
(when (logtest? (-> (the-as process-focusable gp-0) focus-status) (focus-status dead))
|
||||
(seek! (-> self scale) 0.0 (* 0.5 (-> self clock seconds-per-frame)))
|
||||
(if (= (-> self scale) 0.0)
|
||||
(go-virtual die)
|
||||
)
|
||||
)
|
||||
(set! (-> self draw color-mult quad) (-> (the-as process-focusable gp-0) draw color-mult quad))
|
||||
(set! (-> self root trans quad) (-> (the-as process-focusable gp-0) root-override trans quad))
|
||||
(quaternion-copy! (-> self root quat) (-> (the-as process-focusable gp-0) root-override quat))
|
||||
)
|
||||
(else
|
||||
)
|
||||
)
|
||||
)
|
||||
(let ((f0-5 (-> self scale)))
|
||||
(set-vector! (-> self root scale) f0-5 f0-5 f0-5 1.0)
|
||||
)
|
||||
(ja-post)
|
||||
(none)
|
||||
)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defstate die (krew-package)
|
||||
:virtual #t
|
||||
:code (behavior ()
|
||||
(cleanup-for-death self)
|
||||
(none)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for method 11 of type krew-package
|
||||
;; WARN: Return type mismatch entity-perm-status vs none.
|
||||
(defmethod init-from-entity! krew-package ((obj krew-package) (arg0 entity-actor))
|
||||
"Typically the method that does the initial setup on the process, potentially using the [[entity-actor]] provided as part of that.
|
||||
This commonly includes things such as:
|
||||
- stack size
|
||||
- collision information
|
||||
- loading the skeleton group / bones
|
||||
- sounds"
|
||||
(process-entity-status! obj (entity-perm-status dead) #t)
|
||||
(none)
|
||||
)
|
||||
|
||||
;; definition for function krew-package-init-by-other
|
||||
;; INFO: Used lq/sq
|
||||
;; WARN: Return type mismatch object vs none.
|
||||
(defbehavior krew-package-init-by-other krew-package ((arg0 process-drawable))
|
||||
(stack-size-set! (-> self main-thread) 16)
|
||||
(set! (-> self mask) (logior (process-mask platform) (-> self mask)))
|
||||
(logclear! (-> self mask) (process-mask actor-pause movie))
|
||||
(krew-package-method-22 self)
|
||||
(set! (-> self attach-object) (process->handle arg0))
|
||||
(set! (-> self root trans quad) (-> arg0 root trans quad))
|
||||
(quaternion-copy! (-> self root quat) (-> arg0 root quat))
|
||||
(krew-package-method-23 self)
|
||||
(go-virtual idle)
|
||||
(none)
|
||||
)
|
||||
|
||||
;; definition for function krew-package-spawn
|
||||
(defun krew-package-spawn ((arg0 process) (arg1 process))
|
||||
(process-spawn krew-package arg1 :to arg0)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(set-subtask-hook!
|
||||
*game-info*
|
||||
24
|
||||
0
|
||||
(the-as
|
||||
(function object)
|
||||
(lambda :behavior task-manager
|
||||
()
|
||||
(while (!= (level-status *level* 'ctysluma) 'active)
|
||||
(suspend)
|
||||
)
|
||||
(let ((v1-3 (entity-by-name "parking-spot-8")))
|
||||
(if v1-3
|
||||
(logior! (-> v1-3 extra perm status) (entity-perm-status bit-9))
|
||||
)
|
||||
)
|
||||
(set! (-> self end-pos quad) (-> (new 'static 'vector :x -282624.0 :y 45056.0 :z 5464064.0 :w 1.0) quad))
|
||||
(set-setting! 'minimap 'clear 0 32)
|
||||
(let ((gp-1 *traffic-manager*))
|
||||
(let ((s5-0 (new 'stack 'traffic-object-spawn-params)))
|
||||
(set! (-> s5-0 position quad) (-> (new 'static 'vector :x 4698112.0 :y 45875.2 :z 81920.0 :w 1.0) quad))
|
||||
(quaternion-axis-angle! (-> s5-0 rotation) 0.0 1.0 0.0 32768.0)
|
||||
(set! (-> s5-0 object-type) (the-as uint 11))
|
||||
(set! (-> s5-0 behavior) (the-as uint 0))
|
||||
(set! (-> s5-0 id) (the-as uint 0))
|
||||
(set! (-> s5-0 proc) #f)
|
||||
(send-event gp-1 'spawn-object s5-0)
|
||||
(when (-> s5-0 proc)
|
||||
(set! (-> self slave 0) (process->handle (-> s5-0 proc)))
|
||||
(let ((v1-20 (-> s5-0 proc)))
|
||||
(set! (-> (the-as vehicle v1-20) damage-factor) 2.0)
|
||||
)
|
||||
(let ((v1-22 (krew-package-spawn (-> s5-0 proc) (-> s5-0 proc))))
|
||||
(if v1-22
|
||||
(set! (-> self slave 1) (process->handle (-> v1-22 0)))
|
||||
)
|
||||
)
|
||||
)
|
||||
(let ((s4-0 (new 'stack-no-clear 'task-arrow-params)))
|
||||
(set! (-> s4-0 pos quad) (-> s5-0 position quad))
|
||||
(quaternion-identity! (-> s4-0 quat))
|
||||
(set! (-> s4-0 flags) (task-arrow-flags task-arrow-flag-03))
|
||||
(set! (-> s4-0 map-icon) (the-as uint 15))
|
||||
(label cfg-21)
|
||||
(let ((a0-30 (task-arrow-spawn s4-0 (the-as task-arrow self))))
|
||||
(when (not a0-30)
|
||||
(format #t "waiting for task-arrow~%")
|
||||
(suspend)
|
||||
(goto cfg-21)
|
||||
)
|
||||
(set! (-> self arrow) (process->handle a0-30))
|
||||
)
|
||||
)
|
||||
)
|
||||
(send-event gp-1 'set-target-level #x3f800000)
|
||||
(send-event gp-1 'set-guard-target-count-range 4 0 1)
|
||||
(send-event gp-1 'set-guard-target-count-range 5 0 0)
|
||||
)
|
||||
(set! (-> self sub-state) (the-as uint -1))
|
||||
(set! (-> self data-int8 0) 0)
|
||||
(set! (-> self data-int8 1) 0)
|
||||
0
|
||||
(none)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(set-subtask-hook!
|
||||
*game-info*
|
||||
24
|
||||
1
|
||||
(the-as
|
||||
(function object)
|
||||
(lambda :behavior task-manager () (send-event *traffic-manager* 'restore-default-settings) (none))
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for function delivery-task-setup-ambush-1
|
||||
(defun delivery-task-setup-ambush-1 ()
|
||||
(format #t "delivery-task-setup-ambush-1~%")
|
||||
(let ((gp-0
|
||||
(new 'static 'city-ambush-info
|
||||
:count 10
|
||||
:array (new 'static 'inline-array city-ambush-spot 10
|
||||
(new 'static 'city-ambush-spot
|
||||
:pos (new 'static 'vector :x 4501504.0 :y 32768.0 :z 2297856.0 :w 1.0)
|
||||
:obj-type #x6
|
||||
)
|
||||
(new 'static 'city-ambush-spot
|
||||
:pos (new 'static 'vector :x 4501504.0 :y 32768.0 :z 2322432.0 :w 1.0)
|
||||
:obj-type #x6
|
||||
)
|
||||
(new 'static 'city-ambush-spot
|
||||
:pos (new 'static 'vector :x 4501504.0 :y 32768.0 :z 2347008.0 :w 1.0)
|
||||
:obj-type #x6
|
||||
)
|
||||
(new 'static 'city-ambush-spot
|
||||
:pos (new 'static 'vector :x 4501504.0 :y 32768.0 :z 2371584.0 :w 1.0)
|
||||
:obj-type #x6
|
||||
)
|
||||
(new 'static 'city-ambush-spot
|
||||
:pos (new 'static 'vector :x 4501504.0 :y 32768.0 :z 2396160.0 :w 1.0)
|
||||
:obj-type #x6
|
||||
)
|
||||
(new 'static 'city-ambush-spot
|
||||
:pos (new 'static 'vector :x 4513792.0 :y 69632.0 :z 2306048.0 :w 1.0)
|
||||
:obj-type #x13
|
||||
)
|
||||
(new 'static 'city-ambush-spot
|
||||
:pos (new 'static 'vector :x 4513792.0 :y 69632.0 :z 2387968.0 :w 1.0)
|
||||
:obj-type #x13
|
||||
)
|
||||
(new 'static 'city-ambush-spot
|
||||
:pos (new 'static 'vector :x 4464640.0 :y 69632.0 :z 2285568.0 :w 1.0)
|
||||
:obj-type #x12
|
||||
)
|
||||
(new 'static 'city-ambush-spot
|
||||
:pos (new 'static 'vector :x 4464640.0 :y 69632.0 :z 2347008.0 :w 1.0)
|
||||
:obj-type #x12
|
||||
)
|
||||
(new 'static 'city-ambush-spot
|
||||
:pos (new 'static 'vector :x 4464640.0 :y 69632.0 :z 2408448.0 :w 1.0)
|
||||
:obj-type #x12
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(s5-0 (new 'stack-no-clear 'traffic-object-spawn-params))
|
||||
)
|
||||
(set! (-> s5-0 object-type) (the-as uint 6))
|
||||
(set! (-> s5-0 behavior) (the-as uint 9))
|
||||
(set! (-> s5-0 id) (the-as uint 0))
|
||||
(set! (-> s5-0 nav-mesh) #f)
|
||||
(set! (-> s5-0 nav-branch) #f)
|
||||
(set! (-> s5-0 proc) #f)
|
||||
(set! (-> s5-0 handle) (the-as uint (process->handle *target*)))
|
||||
(set! (-> s5-0 user-data) (the-as uint 0))
|
||||
(set! (-> s5-0 flags) (the-as uint 2))
|
||||
(set! (-> s5-0 guard-type) (the-as uint 1))
|
||||
(vector-reset! (-> s5-0 velocity))
|
||||
(forward-up-nopitch->quaternion
|
||||
(-> s5-0 rotation)
|
||||
(new 'static 'vector :x -1.0 :w 1.0)
|
||||
(new 'static 'vector :y 1.0 :w 1.0)
|
||||
)
|
||||
(city-ambush-info-method-9 gp-0 s5-0)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
|
||||
;; definition for function delivery-task-setup-ambush-2
|
||||
(defun delivery-task-setup-ambush-2 ()
|
||||
(format #t "delivery-task-setup-ambush-2~%")
|
||||
(let ((gp-0
|
||||
(new 'static 'city-ambush-info
|
||||
:count 10
|
||||
:array (new 'static 'inline-array city-ambush-spot 10
|
||||
(new 'static 'city-ambush-spot
|
||||
:pos (new 'static 'vector :x 3325952.0 :y 32768.0 :z 4689920.0 :w 1.0)
|
||||
:obj-type #x6
|
||||
)
|
||||
(new 'static 'city-ambush-spot
|
||||
:pos (new 'static 'vector :x 3342336.0 :y 32768.0 :z 4689920.0 :w 1.0)
|
||||
:obj-type #x6
|
||||
)
|
||||
(new 'static 'city-ambush-spot
|
||||
:pos (new 'static 'vector :x 3358720.0 :y 32768.0 :z 4689920.0 :w 1.0)
|
||||
:obj-type #x6
|
||||
)
|
||||
(new 'static 'city-ambush-spot
|
||||
:pos (new 'static 'vector :x 3375104.0 :y 32768.0 :z 4689920.0 :w 1.0)
|
||||
:obj-type #x6
|
||||
)
|
||||
(new 'static 'city-ambush-spot
|
||||
:pos (new 'static 'vector :x 3391488.0 :y 32768.0 :z 4689920.0 :w 1.0)
|
||||
:obj-type #x6
|
||||
)
|
||||
(new 'static 'city-ambush-spot
|
||||
:pos (new 'static 'vector :x 3338240.0 :y 69632.0 :z 4689920.0 :w 1.0)
|
||||
:obj-type #x13
|
||||
)
|
||||
(new 'static 'city-ambush-spot
|
||||
:pos (new 'static 'vector :x 3383296.0 :y 69632.0 :z 4689920.0 :w 1.0)
|
||||
:obj-type #x13
|
||||
)
|
||||
(new 'static 'city-ambush-spot
|
||||
:pos (new 'static 'vector :x 3338240.0 :y 45056.0 :z 4722688.0 :w 1.0)
|
||||
:obj-type #x12
|
||||
)
|
||||
(new 'static 'city-ambush-spot
|
||||
:pos (new 'static 'vector :x 3358720.0 :y 45056.0 :z 4722688.0 :w 1.0)
|
||||
:obj-type #x12
|
||||
)
|
||||
(new 'static 'city-ambush-spot
|
||||
:pos (new 'static 'vector :x 3379200.0 :y 45056.0 :z 4722688.0 :w 1.0)
|
||||
:obj-type #x12
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(s5-0 (new 'stack-no-clear 'traffic-object-spawn-params))
|
||||
)
|
||||
(set! (-> s5-0 object-type) (the-as uint 6))
|
||||
(set! (-> s5-0 behavior) (the-as uint 9))
|
||||
(set! (-> s5-0 id) (the-as uint 0))
|
||||
(set! (-> s5-0 nav-mesh) #f)
|
||||
(set! (-> s5-0 nav-branch) #f)
|
||||
(set! (-> s5-0 proc) #f)
|
||||
(set! (-> s5-0 handle) (the-as uint (process->handle *target*)))
|
||||
(set! (-> s5-0 user-data) (the-as uint 0))
|
||||
(set! (-> s5-0 flags) (the-as uint 2))
|
||||
(set! (-> s5-0 guard-type) (the-as uint 1))
|
||||
(vector-reset! (-> s5-0 velocity))
|
||||
(forward-up-nopitch->quaternion
|
||||
(-> s5-0 rotation)
|
||||
(new 'static 'vector :x -1.0 :w 1.0)
|
||||
(new 'static 'vector :y 1.0 :w 1.0)
|
||||
)
|
||||
(city-ambush-info-method-9 gp-0 s5-0)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(set-subtask-hook!
|
||||
*game-info*
|
||||
24
|
||||
2
|
||||
(the-as
|
||||
(function object)
|
||||
(lambda :behavior task-manager
|
||||
()
|
||||
(local-vars (a0-32 float))
|
||||
(rlet ((acc :class vf)
|
||||
(vf0 :class vf)
|
||||
(vf1 :class vf)
|
||||
(vf2 :class vf)
|
||||
)
|
||||
(init-vf0-vector)
|
||||
(let ((gp-0 (handle->process (-> self slave 0))))
|
||||
(cond
|
||||
((and gp-0 (zero? (logand (-> (the-as process-focusable gp-0) focus-status) (focus-status dead))))
|
||||
(cond
|
||||
((zero? (-> self data-int8 0))
|
||||
(when (= (level-status *level* 'ctyindb) 'active)
|
||||
(set! (-> self data-int8 0) 1)
|
||||
(delivery-task-setup-ambush-1)
|
||||
)
|
||||
)
|
||||
(else
|
||||
(when (!= (level-status *level* 'ctyindb) 'active)
|
||||
(set! (-> self data-int8 0) 0)
|
||||
0
|
||||
)
|
||||
)
|
||||
)
|
||||
(cond
|
||||
((zero? (-> self data-int8 1))
|
||||
(when (= (level-status *level* 'ctyinda) 'active)
|
||||
(set! (-> self data-int8 1) 1)
|
||||
(delivery-task-setup-ambush-2)
|
||||
)
|
||||
)
|
||||
(else
|
||||
(when (!= (level-status *level* 'ctyinda) 'active)
|
||||
(set! (-> self data-int8 1) 0)
|
||||
0
|
||||
)
|
||||
)
|
||||
)
|
||||
(let ((f0-0 (vector-vector-distance-squared (-> (the-as process-drawable gp-0) root trans) (target-pos 0)))
|
||||
(f1-0 12288.0)
|
||||
)
|
||||
(cond
|
||||
((and (< f0-0 (* f1-0 f1-0)) *target* (logtest? (focus-status pilot) (-> *target* focus-status)))
|
||||
(when (nonzero? (-> self sub-state))
|
||||
(send-event (handle->process (-> self arrow)) 'set-position (-> self end-pos))
|
||||
(send-event (handle->process (-> self arrow)) 'modify-flags 1 0)
|
||||
(send-event (handle->process (-> self arrow)) 'map-icon 8)
|
||||
(set! (-> self sub-state) (the-as uint 0))
|
||||
0
|
||||
)
|
||||
)
|
||||
(else
|
||||
(let* ((v1-59 (new 'stack-no-clear 'inline-array 'vector 1))
|
||||
(f0-1 409.6)
|
||||
(f0-3 (* f0-1 f0-1))
|
||||
)
|
||||
(.lvf vf1 (&-> (-> (the-as process-drawable gp-0) root transv) 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 a0-32 vf1)
|
||||
(when (>= f0-3 a0-32)
|
||||
(set! (-> v1-59 0 quad) (-> (the-as process-drawable gp-0) root trans quad))
|
||||
(set! (-> v1-59 0 y) (+ -14336.0 (-> v1-59 0 y)))
|
||||
(send-event (handle->process (-> self arrow)) 'set-position (-> v1-59 0))
|
||||
)
|
||||
)
|
||||
(when (!= (-> self sub-state) 1)
|
||||
(send-event (handle->process (-> self arrow)) 'modify-flags 0 1)
|
||||
(send-event (handle->process (-> self arrow)) 'map-icon 15)
|
||||
(set! (-> self sub-state) (the-as uint 1))
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(let ((f30-0 49152.0)
|
||||
(f0-6 (vector-vector-distance-squared (-> (the-as process-drawable gp-0) root trans) (-> self end-pos)))
|
||||
)
|
||||
(if (>= (* f30-0 f30-0) f0-6)
|
||||
(go-virtual complete)
|
||||
)
|
||||
)
|
||||
)
|
||||
(else
|
||||
(go-virtual fail)
|
||||
)
|
||||
)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(set-subtask-hook!
|
||||
*game-info*
|
||||
24
|
||||
3
|
||||
(the-as
|
||||
(function object)
|
||||
(lambda :behavior task-manager
|
||||
()
|
||||
(let ((gp-0 (new 'static 'vector :x 4501504.0 :y 73728.0 :z 2338816.0 :w 204800.0))
|
||||
(s5-0 #f)
|
||||
)
|
||||
(while (not s5-0)
|
||||
(let ((v1-1 (handle->process (-> self slave 0))))
|
||||
(when v1-1
|
||||
(let ((f0-0 (vector-vector-distance-squared (-> (the-as process-drawable v1-1) root trans) gp-0))
|
||||
(f1-0 (-> gp-0 w))
|
||||
)
|
||||
(set! s5-0 (< f0-0 (* f1-0 f1-0)))
|
||||
)
|
||||
)
|
||||
)
|
||||
(suspend)
|
||||
)
|
||||
)
|
||||
(send-event *traffic-manager* 'set-guard-target-count-range 0 0 0)
|
||||
(send-event *traffic-manager* 'set-guard-target-count-range 1 4 4)
|
||||
(send-event *traffic-manager* 'set-guard-target-count-range 2 0 0)
|
||||
(send-event *traffic-manager* 'set-guard-target-count-range 4 0 10)
|
||||
(send-event *traffic-manager* 'set-guard-target-count-range 5 0 10)
|
||||
(send-event *traffic-manager* 'set-alert-level 3)
|
||||
(send-event *traffic-manager* 'set-alert-duration #xa4cb80)
|
||||
(speech-control-method-10 *speech-control* 7 (new 'static 'speech-type-info
|
||||
:channel #x1
|
||||
:priority -2
|
||||
:min-delay #x258
|
||||
:max-delay #x4b0
|
||||
:list (new 'static 'boxed-array :type string
|
||||
"kg243a"
|
||||
"kg241a"
|
||||
"kg242a"
|
||||
"kg244a"
|
||||
"kg245a"
|
||||
"kg246a"
|
||||
"kg247a"
|
||||
"kg248a"
|
||||
"kg249a"
|
||||
"kg250a"
|
||||
"kg251a"
|
||||
"kg252a"
|
||||
)
|
||||
)
|
||||
)
|
||||
(talker-spawn-func (-> *talker-speech* 49) *entity-pool* (target-pos 0) (the-as region #f))
|
||||
(let ((gp-2 (new 'static 'vector :x 3358720.0 :y 32768.0 :z 4689920.0 :w 204800.0))
|
||||
(s5-2 #f)
|
||||
)
|
||||
(while (not s5-2)
|
||||
(let ((v1-48 (handle->process (-> self slave 0))))
|
||||
(when v1-48
|
||||
(let ((f0-1 (vector-vector-distance-squared (-> (the-as process-drawable v1-48) root trans) gp-2))
|
||||
(f1-3 (-> gp-2 w))
|
||||
)
|
||||
(set! s5-2 (< f0-1 (* f1-3 f1-3)))
|
||||
)
|
||||
)
|
||||
)
|
||||
(suspend)
|
||||
)
|
||||
)
|
||||
(talker-spawn-func (-> *talker-speech* 50) *entity-pool* (target-pos 0) (the-as region #f))
|
||||
(none)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(set-subtask-hook!
|
||||
*game-info*
|
||||
24
|
||||
4
|
||||
(the-as (function object) (lambda :behavior task-manager
|
||||
()
|
||||
(send-event *traffic-manager* 'decrease-alert-level 0)
|
||||
(send-event *traffic-manager* 'set-alert-duration 9000)
|
||||
(if (and *target* (logtest? (focus-status pilot) (-> *target* focus-status)))
|
||||
(send-event *target* 'change-mode 'normal)
|
||||
)
|
||||
(set-setting! 'pilot #f 0 0)
|
||||
(set! (-> self state-time) (-> self clock frame-counter))
|
||||
(while (< (- (-> self clock frame-counter) (-> self state-time)) (seconds 2))
|
||||
(suspend)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
|
||||
|
||||
+438
@@ -0,0 +1,438 @@
|
||||
;;-*-Lisp-*-
|
||||
(in-package goal)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(set-subtask-hook!
|
||||
*game-info*
|
||||
251
|
||||
0
|
||||
(the-as
|
||||
(function object)
|
||||
(lambda :behavior task-manager
|
||||
()
|
||||
(set! (-> self data-float 0) (the-as float (send-event *target* 'test-pickup 7)))
|
||||
(send-event *target* 'change-mode 'darkjak #f 65)
|
||||
(set! (-> self sound-id 0)
|
||||
(add-process *gui-control* self (gui-channel message) (gui-action play) (-> self name) 81920.0 0)
|
||||
)
|
||||
(send-event *target* 'get-notify self)
|
||||
(none)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(set-subtask-hook!
|
||||
*game-info*
|
||||
251
|
||||
1
|
||||
(the-as (function object) (lambda :behavior task-manager
|
||||
()
|
||||
(send-event *target* 'get-pickup 7 (-> self data-float 0))
|
||||
(send-event *target* 'change-mode 'darkjak #f 128)
|
||||
(send-event *target* 'get-notify #f)
|
||||
(set-action!
|
||||
*gui-control*
|
||||
(gui-action stop)
|
||||
(-> self sound-id 0)
|
||||
(gui-channel none)
|
||||
(gui-action none)
|
||||
(the-as string #f)
|
||||
(the-as (function gui-connection symbol) #f)
|
||||
(the-as process #f)
|
||||
)
|
||||
(close! (-> self node-info) 'event)
|
||||
(none)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(set-subtask-hook!
|
||||
*game-info*
|
||||
251
|
||||
6
|
||||
(the-as (function object) (lambda :behavior task-manager
|
||||
((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
|
||||
(case arg2
|
||||
(('notify)
|
||||
(case (-> arg3 param 0)
|
||||
(('attack)
|
||||
(if (= (-> arg3 param 1) 16)
|
||||
(go-virtual complete)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(set-subtask-hook!
|
||||
*game-info*
|
||||
251
|
||||
2
|
||||
(the-as
|
||||
(function object)
|
||||
(lambda :behavior task-manager
|
||||
()
|
||||
(if (and *target* (zero? (logand (focus-status dark) (-> *target* focus-status))))
|
||||
(send-event *target* 'change-mode 'darkjak #f 65)
|
||||
)
|
||||
(when (= (get-status *gui-control* (-> self sound-id 0)) (gui-status active))
|
||||
(let ((gp-1 (new
|
||||
'stack
|
||||
'font-context
|
||||
*font-default-matrix*
|
||||
32
|
||||
280
|
||||
0.0
|
||||
(font-color default-#cddbcd)
|
||||
(font-flags shadow kerning)
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! (-> gp-1 flags) (font-flags shadow kerning large))
|
||||
(let ((v1-14 gp-1))
|
||||
(set! (-> v1-14 width) (the float 440))
|
||||
)
|
||||
(let ((v1-15 gp-1))
|
||||
(set! (-> v1-15 height) (the float 80))
|
||||
)
|
||||
(let ((v1-16 gp-1))
|
||||
(set! (-> v1-16 scale) 0.7)
|
||||
)
|
||||
(let ((s5-0 print-game-text))
|
||||
(format (clear *temp-string*) (lookup-text! *common-text* (game-text-id oracle-tutorial-dark-bomb) #f))
|
||||
(s5-0 *temp-string* gp-1 #f 44 (bucket-id progress))
|
||||
)
|
||||
)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(set-subtask-hook!
|
||||
*game-info*
|
||||
253
|
||||
0
|
||||
(the-as
|
||||
(function object)
|
||||
(lambda :behavior task-manager
|
||||
()
|
||||
(set! (-> self data-float 0) (the-as float (send-event *target* 'test-pickup 7)))
|
||||
(send-event *target* 'change-mode 'darkjak #f 65)
|
||||
(set! (-> self sound-id 0)
|
||||
(add-process *gui-control* self (gui-channel message) (gui-action play) (-> self name) 81920.0 0)
|
||||
)
|
||||
(send-event *target* 'get-notify self)
|
||||
(none)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(set-subtask-hook!
|
||||
*game-info*
|
||||
253
|
||||
1
|
||||
(the-as (function object) (lambda :behavior task-manager
|
||||
()
|
||||
(send-event *target* 'get-pickup 7 (-> self data-float 0))
|
||||
(send-event *target* 'change-mode 'darkjak #f 128)
|
||||
(send-event *target* 'get-notify #f)
|
||||
(set-action!
|
||||
*gui-control*
|
||||
(gui-action stop)
|
||||
(-> self sound-id 0)
|
||||
(gui-channel none)
|
||||
(gui-action none)
|
||||
(the-as string #f)
|
||||
(the-as (function gui-connection symbol) #f)
|
||||
(the-as process #f)
|
||||
)
|
||||
(close! (-> self node-info) 'event)
|
||||
(none)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(set-subtask-hook!
|
||||
*game-info*
|
||||
253
|
||||
6
|
||||
(the-as (function object) (lambda :behavior task-manager
|
||||
((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
|
||||
(case arg2
|
||||
(('notify)
|
||||
(case (-> arg3 param 0)
|
||||
(('attack)
|
||||
(if (= (-> arg3 param 1) 17)
|
||||
(go-virtual complete)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(set-subtask-hook!
|
||||
*game-info*
|
||||
253
|
||||
2
|
||||
(the-as
|
||||
(function object)
|
||||
(lambda :behavior task-manager
|
||||
()
|
||||
(if (and *target* (zero? (logand (focus-status dark) (-> *target* focus-status))))
|
||||
(send-event *target* 'change-mode 'darkjak #f 65)
|
||||
)
|
||||
(when (= (get-status *gui-control* (-> self sound-id 0)) (gui-status active))
|
||||
(let ((gp-1 (new
|
||||
'stack
|
||||
'font-context
|
||||
*font-default-matrix*
|
||||
32
|
||||
280
|
||||
0.0
|
||||
(font-color default-#cddbcd)
|
||||
(font-flags shadow kerning)
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! (-> gp-1 flags) (font-flags shadow kerning large))
|
||||
(let ((v1-14 gp-1))
|
||||
(set! (-> v1-14 width) (the float 440))
|
||||
)
|
||||
(let ((v1-15 gp-1))
|
||||
(set! (-> v1-15 height) (the float 80))
|
||||
)
|
||||
(let ((v1-16 gp-1))
|
||||
(set! (-> v1-16 scale) 0.7)
|
||||
)
|
||||
(let ((s5-0 print-game-text))
|
||||
(format (clear *temp-string*) (lookup-text! *common-text* (game-text-id oracle-tutorial-dark-blast) #f))
|
||||
(s5-0 *temp-string* gp-1 #f 44 (bucket-id progress))
|
||||
)
|
||||
)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(set-subtask-hook!
|
||||
*game-info*
|
||||
255
|
||||
0
|
||||
(the-as
|
||||
(function object)
|
||||
(lambda :behavior task-manager
|
||||
()
|
||||
(set! (-> self data-float 0) (the-as float (send-event *target* 'test-pickup 7)))
|
||||
(send-event *target* 'change-mode 'darkjak #f 65)
|
||||
(set! (-> self sound-id 0)
|
||||
(add-process *gui-control* self (gui-channel message) (gui-action play) (-> self name) 81920.0 0)
|
||||
)
|
||||
(send-event *target* 'get-notify self)
|
||||
(set! (-> self start-time) (-> self clock frame-counter))
|
||||
(none)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(set-subtask-hook!
|
||||
*game-info*
|
||||
255
|
||||
1
|
||||
(the-as (function object) (lambda :behavior task-manager
|
||||
()
|
||||
(send-event *target* 'get-pickup 7 (-> self data-float 0))
|
||||
(send-event *target* 'change-mode 'darkjak #f 128)
|
||||
(send-event *target* 'get-notify #f)
|
||||
(set-action!
|
||||
*gui-control*
|
||||
(gui-action stop)
|
||||
(-> self sound-id 0)
|
||||
(gui-channel none)
|
||||
(gui-action none)
|
||||
(the-as string #f)
|
||||
(the-as (function gui-connection symbol) #f)
|
||||
(the-as process #f)
|
||||
)
|
||||
(close! (-> self node-info) 'event)
|
||||
(none)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(set-subtask-hook!
|
||||
*game-info*
|
||||
255
|
||||
2
|
||||
(the-as
|
||||
(function object)
|
||||
(lambda :behavior task-manager
|
||||
()
|
||||
(if (and *target* (zero? (logand (focus-status dark) (-> *target* focus-status))))
|
||||
(send-event *target* 'change-mode 'darkjak #f 65)
|
||||
)
|
||||
(when (= (get-status *gui-control* (-> self sound-id 0)) (gui-status active))
|
||||
(let ((gp-1 (new
|
||||
'stack
|
||||
'font-context
|
||||
*font-default-matrix*
|
||||
32
|
||||
280
|
||||
0.0
|
||||
(font-color default-#cddbcd)
|
||||
(font-flags shadow kerning)
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! (-> gp-1 flags) (font-flags shadow kerning large))
|
||||
(let ((v1-14 gp-1))
|
||||
(set! (-> v1-14 width) (the float 440))
|
||||
)
|
||||
(let ((v1-15 gp-1))
|
||||
(set! (-> v1-15 height) (the float 80))
|
||||
)
|
||||
(let ((v1-16 gp-1))
|
||||
(set! (-> v1-16 scale) 0.7)
|
||||
)
|
||||
(let ((s5-0 print-game-text))
|
||||
(format (clear *temp-string*) (lookup-text! *common-text* (game-text-id oracle-tutorial-dark-invincible) #f))
|
||||
(s5-0 *temp-string* gp-1 #f 44 (bucket-id progress))
|
||||
)
|
||||
)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(set-subtask-hook!
|
||||
*game-info*
|
||||
257
|
||||
0
|
||||
(the-as
|
||||
(function object)
|
||||
(lambda :behavior task-manager
|
||||
()
|
||||
(set! (-> self data-float 0) (the-as float (send-event *target* 'test-pickup 7)))
|
||||
(send-event *target* 'change-mode 'darkjak #f 65)
|
||||
(set! (-> self sound-id 0)
|
||||
(add-process *gui-control* self (gui-channel message) (gui-action play) (-> self name) 81920.0 0)
|
||||
)
|
||||
(send-event *target* 'get-notify self)
|
||||
(none)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(set-subtask-hook!
|
||||
*game-info*
|
||||
257
|
||||
1
|
||||
(the-as (function object) (lambda :behavior task-manager
|
||||
()
|
||||
(send-event *target* 'get-pickup 7 (-> self data-float 0))
|
||||
(send-event *target* 'change-mode 'darkjak #f 128)
|
||||
(send-event *target* 'get-notify #f)
|
||||
(set-action!
|
||||
*gui-control*
|
||||
(gui-action stop)
|
||||
(-> self sound-id 0)
|
||||
(gui-channel none)
|
||||
(gui-action none)
|
||||
(the-as string #f)
|
||||
(the-as (function gui-connection symbol) #f)
|
||||
(the-as process #f)
|
||||
)
|
||||
(close! (-> self node-info) 'event)
|
||||
(none)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(set-subtask-hook!
|
||||
*game-info*
|
||||
257
|
||||
6
|
||||
(the-as (function object) (lambda :behavior task-manager
|
||||
((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
|
||||
(the-as object (case arg2
|
||||
(('notify)
|
||||
(case (-> arg3 param 0)
|
||||
(('attack)
|
||||
(if (= (-> arg3 param 1) 18)
|
||||
#f
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(set-subtask-hook!
|
||||
*game-info*
|
||||
257
|
||||
2
|
||||
(the-as
|
||||
(function object)
|
||||
(lambda :behavior task-manager
|
||||
()
|
||||
(if (and *target* (zero? (logand (focus-status dark) (-> *target* focus-status))))
|
||||
(send-event *target* 'change-mode 'darkjak #f 65)
|
||||
)
|
||||
(when (= (get-status *gui-control* (-> self sound-id 0)) (gui-status active))
|
||||
(let ((gp-1 (new
|
||||
'stack
|
||||
'font-context
|
||||
*font-default-matrix*
|
||||
32
|
||||
280
|
||||
0.0
|
||||
(font-color default-#cddbcd)
|
||||
(font-flags shadow kerning)
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! (-> gp-1 flags) (font-flags shadow kerning large))
|
||||
(let ((v1-14 gp-1))
|
||||
(set! (-> v1-14 width) (the float 440))
|
||||
)
|
||||
(let ((v1-15 gp-1))
|
||||
(set! (-> v1-15 height) (the float 80))
|
||||
)
|
||||
(let ((v1-16 gp-1))
|
||||
(set! (-> v1-16 scale) 0.7)
|
||||
)
|
||||
(let ((s5-0 print-game-text))
|
||||
(format (clear *temp-string*) (lookup-text! *common-text* (game-text-id oracle-tutorial-dark-giant) #f))
|
||||
(s5-0 *temp-string* gp-1 #f 44 (bucket-id progress))
|
||||
)
|
||||
)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
)
|
||||
)
|
||||
+2
-6
@@ -32,8 +32,8 @@
|
||||
|
||||
;; definition of type bombbot-path
|
||||
(deftype bombbot-path (structure)
|
||||
((node-count uint16 :offset-assert 0)
|
||||
(node uint32 :offset-assert 4)
|
||||
((node-count uint16 :offset-assert 0)
|
||||
(node (inline-array bombbot-node) :offset-assert 4)
|
||||
)
|
||||
:method-count-assert 9
|
||||
:size-assert #x8
|
||||
@@ -55,7 +55,3 @@
|
||||
|
||||
;; failed to figure out what this is:
|
||||
0
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
+822
@@ -0,0 +1,822 @@
|
||||
;;-*-Lisp-*-
|
||||
(in-package goal)
|
||||
|
||||
;; definition for symbol *bombbot-path-1*, type bombbot-path
|
||||
(define *bombbot-path-1* (new 'static 'bombbot-path
|
||||
:node-count #x1c
|
||||
:node (new 'static 'inline-array bombbot-node 28
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 3258277.5 :y 36837.375 :z 2919952.0)
|
||||
:nav-mesh-id #x429e
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 3527335.0 :y 36837.375 :z 2643463.2)
|
||||
:nav-mesh-id #x429e
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 3614297.8 :y 36837.375 :z 2580864.5)
|
||||
:nav-mesh-id #x429e
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 4291214.0 :y 38298.008 :z 2591629.0)
|
||||
:nav-mesh-id #x429e
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 4390092.0 :y 36837.375 :z 2643881.2)
|
||||
:nav-mesh-id #x429e
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 4455013.0 :y 36837.375 :z 2753605.2)
|
||||
:nav-mesh-id #x429e
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 4538736.0 :y 36837.375 :z 2739244.8)
|
||||
:nav-mesh-id #x429e
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 4589772.0 :y 36837.375 :z 2653011.2)
|
||||
:nav-mesh-id #x429e
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 4602265.0 :y 38390.58 :z 2465177.2)
|
||||
:nav-mesh-id #x429e
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 4529397.0 :y 36837.375 :z 2365566.2)
|
||||
:nav-mesh-id #x429e
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 4405943.0 :y 36837.375 :z 2328894.8)
|
||||
:nav-mesh-id #x429e
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 4000464.5 :y 36837.375 :z 2104958.2)
|
||||
:nav-mesh-id #x429e
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 4013141.5 :y 36837.375 :z 1832038.0)
|
||||
:nav-mesh-id #x429e
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 4521655.0 :y 36837.375 :z 1745903.2)
|
||||
:nav-mesh-id #x429e
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 4506131.5 :y 33105.92 :z 1321582.1)
|
||||
:nav-mesh-id #x2578
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 4644699.5 :y 37455.055 :z 1207492.2)
|
||||
:nav-mesh-id #x2578
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 4667923.5 :y 37455.055 :z 1168281.2)
|
||||
:nav-mesh-id #x2578
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 4659813.0 :y 41026.766 :z 977706.6)
|
||||
:nav-mesh-id #x2578
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 4733418.5 :y 37455.055 :z 871554.7)
|
||||
:nav-mesh-id #x2578
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 4753079.0 :y 37459.56 :z 775511.6)
|
||||
:nav-mesh-id #x2578
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 4692417.5 :y 37457.51 :z 759676.5)
|
||||
:nav-mesh-id #x2578
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 4495687.0 :y 37457.51 :z 765365.9)
|
||||
:nav-mesh-id #x2578
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 4472339.5 :y 37457.51 :z 496651.88)
|
||||
:nav-mesh-id #x2578
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 4383906.5 :y 37457.51 :z 276074.1)
|
||||
:nav-mesh-id #x2578
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 4582235.5 :y 37446.043 :z 83403.57)
|
||||
:nav-mesh-id #x2578
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 4677671.5 :y 37446.043 :z 70415.56)
|
||||
:nav-mesh-id #x2578
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 4685986.5 :y 37446.043 :z 217373.9)
|
||||
:nav-mesh-id #x2578
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 4718386.5 :y 37446.043 :z 233280.72)
|
||||
:nav-mesh-id #x2578
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for symbol *bombbot-path-2*, type bombbot-path
|
||||
(define *bombbot-path-2* (new 'static 'bombbot-path
|
||||
:node-count #x21
|
||||
:node (new 'static 'inline-array bombbot-node 33
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 1677880.9 :y 32856.473 :z -190588.11)
|
||||
:nav-mesh-id #x2644
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 1826967.1 :y 36825.906 :z -179154.53)
|
||||
:nav-mesh-id #x2644
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 1879178.9 :y 36858.266 :z -70936.164)
|
||||
:nav-mesh-id #x2644
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 2041179.8 :y 36852.12 :z -62959.617)
|
||||
:nav-mesh-id #x2644
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 2200935.8 :y 37035.62 :z -327732.44)
|
||||
:nav-mesh-id #x2644
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 2238988.0 :y 36855.81 :z -502779.5)
|
||||
:nav-mesh-id #x2644
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 2280828.0 :y 36862.363 :z -594517.6)
|
||||
:nav-mesh-id #x2644
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 2382253.8 :y 36858.266 :z -654388.8)
|
||||
:nav-mesh-id #x2644
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 2463849.8 :y 36852.53 :z -811904.6)
|
||||
:nav-mesh-id #x2644
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 2693455.5 :y 32287.129 :z -782532.2)
|
||||
:nav-mesh-id #x2644
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 2787884.8 :y 36854.168 :z -1143430.8)
|
||||
:nav-mesh-id #x2644
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 2870263.5 :y 36964.76 :z -1137082.0)
|
||||
:nav-mesh-id #x2644
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 3010809.5 :y 35717.53 :z -1025650.25)
|
||||
:nav-mesh-id #x2644
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 3058421.2 :y 36852.53 :z -689659.5)
|
||||
:nav-mesh-id #x2644
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 3038600.5 :y 37395.66 :z -597171.8)
|
||||
:nav-mesh-id #x2644
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 2939293.0 :y 45748.223 :z -549240.44)
|
||||
:nav-mesh-id #x2644
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 2885557.8 :y 43587.586 :z -452988.53)
|
||||
:nav-mesh-id #x2644
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 3289734.2 :y 37456.28 :z -52194.508)
|
||||
:nav-mesh-id #x2578
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 3266022.5 :y 37448.09 :z 309003.88)
|
||||
:nav-mesh-id #x2578
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 3520949.8 :y 38775.6 :z 423140.97)
|
||||
:nav-mesh-id #x2578
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 3753070.2 :y 37448.09 :z 611843.7)
|
||||
:nav-mesh-id #x2578
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 3987242.5 :y 37458.74 :z 642600.56)
|
||||
:nav-mesh-id #x2578
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 4035505.2 :y 37454.234 :z 575893.1)
|
||||
:nav-mesh-id #x2578
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 4232519.0 :y 37457.51 :z 589045.4)
|
||||
:nav-mesh-id #x2578
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 4315381.0 :y 37457.51 :z 524410.5)
|
||||
:nav-mesh-id #x2578
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 4324351.0 :y 37457.51 :z 385351.7)
|
||||
:nav-mesh-id #x2578
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 4224859.5 :y 37457.51 :z 381204.47)
|
||||
:nav-mesh-id #x2578
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 4227849.5 :y 37457.51 :z 289628.56)
|
||||
:nav-mesh-id #x2578
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 4357856.5 :y 37457.51 :z 260807.06)
|
||||
:nav-mesh-id #x2578
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 4588256.5 :y 37446.043 :z 68193.89)
|
||||
:nav-mesh-id #x2578
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 4668702.0 :y 37446.043 :z 85842.74)
|
||||
:nav-mesh-id #x2578
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 4679515.5 :y 37446.043 :z 238454.38)
|
||||
:nav-mesh-id #x2578
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 4716789.0 :y 37446.043 :z 252433.2)
|
||||
:nav-mesh-id #x2578
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for symbol *bombbot-path-3*, type bombbot-path
|
||||
(define *bombbot-path-3* (new 'static 'bombbot-path
|
||||
:node-count #x1b
|
||||
:node (new 'static 'inline-array bombbot-node 27
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 3349143.2 :y 36837.375 :z 1716903.5)
|
||||
:nav-mesh-id #x429e
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 3350859.2 :y 36837.375 :z 2284261.0)
|
||||
:nav-mesh-id #x429e
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 3585396.0 :y 38390.58 :z 2270354.8)
|
||||
:nav-mesh-id #x429e
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 3678752.2 :y 36837.375 :z 2124566.0)
|
||||
:nav-mesh-id #x429e
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 3780005.5 :y 37188.402 :z 1886043.8)
|
||||
:nav-mesh-id #x429e
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 3988593.8 :y 38456.523 :z 1788928.0)
|
||||
:nav-mesh-id #x429e
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 4476435.5 :y 36837.375 :z 1664429.6)
|
||||
:nav-mesh-id #x429e
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 4459273.5 :y 30950.605 :z 1375608.4)
|
||||
:nav-mesh-id #x2578
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 4297235.5 :y 37457.92 :z 1336405.6)
|
||||
:nav-mesh-id #x2578
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 4267007.0 :y 37444.402 :z 1361804.9)
|
||||
:nav-mesh-id #x2578
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 4239564.0 :y 37457.92 :z 1410236.0)
|
||||
:nav-mesh-id #x2578
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 4136713.5 :y 42312.09 :z 1466470.0)
|
||||
:nav-mesh-id #x2578
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 3730288.2 :y 37457.92 :z 1464053.4)
|
||||
:nav-mesh-id #x2578
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 3679088.2 :y 37457.51 :z 1307471.5)
|
||||
:nav-mesh-id #x2578
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 3718180.5 :y 37457.51 :z 1220591.2)
|
||||
:nav-mesh-id #x2578
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 3999309.5 :y 40812.543 :z 1229811.2)
|
||||
:nav-mesh-id #x2578
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 4089249.5 :y 37457.51 :z 1150664.2)
|
||||
:nav-mesh-id #x2578
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 4044267.0 :y 37457.51 :z 856497.75)
|
||||
:nav-mesh-id #x2578
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 4036837.0 :y 37457.51 :z 757390.94)
|
||||
:nav-mesh-id #x2578
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 4235918.0 :y 37457.51 :z 741895.8)
|
||||
:nav-mesh-id #x2578
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 4270160.5 :y 37457.51 :z 614477.44)
|
||||
:nav-mesh-id #x2578
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 4392795.5 :y 37457.51 :z 371413.8)
|
||||
:nav-mesh-id #x2578
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 4414668.0 :y 41926.246 :z 210297.23)
|
||||
:nav-mesh-id #x2578
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 4583751.0 :y 37446.043 :z 98254.85)
|
||||
:nav-mesh-id #x2578
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 4685045.0 :y 37446.043 :z 85629.336)
|
||||
:nav-mesh-id #x2578
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 4691557.0 :y 37446.043 :z 193381.17)
|
||||
:nav-mesh-id #x2578
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 4719328.5 :y 37446.043 :z 209884.78)
|
||||
:nav-mesh-id #x2578
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for symbol *bombbot-path-4*, type bombbot-path
|
||||
(define *bombbot-path-4* (new 'static 'bombbot-path
|
||||
:node-count #x1b
|
||||
:node (new 'static 'inline-array bombbot-node 27
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 882802.25 :y 36859.902 :z 3621834.2)
|
||||
:nav-mesh-id #x5881
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 872205.94 :y 36854.168 :z 3192081.5)
|
||||
:nav-mesh-id #x5881
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 1050914.4 :y 69632.0 :z 3175034.5)
|
||||
:nav-mesh-id #x5881
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 1498271.4 :y 69626.266 :z 3185827.5)
|
||||
:nav-mesh-id #x5881
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 1481735.8 :y 69642.24 :z 2830061.2)
|
||||
:nav-mesh-id #x5881
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 1456881.2 :y 69642.24 :z 2057588.4)
|
||||
:nav-mesh-id #x5881
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 1502514.8 :y 69642.24 :z 1884434.0)
|
||||
:nav-mesh-id #x5881
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 1484082.8 :y 69632.0 :z 1743306.4)
|
||||
:nav-mesh-id #x5881
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 1115516.5 :y 69642.24 :z 1752252.0)
|
||||
:nav-mesh-id #x5881
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 639340.1 :y 69639.78 :z 1770094.1)
|
||||
:nav-mesh-id #x5881
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 128253.54 :y 69642.24 :z 1734078.0)
|
||||
:nav-mesh-id #x5881
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 73947.95 :y 69642.24 :z 1844170.4)
|
||||
:nav-mesh-id #x5881
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 109042.07 :y 69642.24 :z 2066944.0)
|
||||
:nav-mesh-id #x5881
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 122852.555 :y 69642.24 :z 2758323.5)
|
||||
:nav-mesh-id #x5881
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 79918.28 :y 69626.266 :z 3150474.8)
|
||||
:nav-mesh-id #x5881
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 517484.12 :y 69632.0 :z 3181182.2)
|
||||
:nav-mesh-id #x5881
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 602791.5 :y 36854.168 :z 3181075.8)
|
||||
:nav-mesh-id #x5881
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 699465.3 :y 36854.168 :z 3194715.2)
|
||||
:nav-mesh-id #x5881
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 674786.94 :y 36864.0 :z 3605937.2)
|
||||
:nav-mesh-id #x5881
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 421895.78 :y 36864.0 :z 3631988.0)
|
||||
:nav-mesh-id #x5881
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 369729.12 :y 36859.902 :z 3813134.0)
|
||||
:nav-mesh-id #x5881
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 397331.66 :y 36861.953 :z 4427570.5)
|
||||
:nav-mesh-id #x5881
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 731725.44 :y 36864.0 :z 4451286.0)
|
||||
:nav-mesh-id #x5881
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 1126035.0 :y 36864.0 :z 4429454.0)
|
||||
:nav-mesh-id #x5881
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 1190809.2 :y 36859.902 :z 4295065.0)
|
||||
:nav-mesh-id #x5881
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 1190031.0 :y 36861.953 :z 3726978.8)
|
||||
:nav-mesh-id #x5881
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 1073888.9 :y 36859.902 :z 3629100.8)
|
||||
:nav-mesh-id #x5881
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for symbol *bombbot-path-5*, type bombbot-path
|
||||
(define *bombbot-path-5* (new 'static 'bombbot-path
|
||||
:node-count #x33
|
||||
:node (new 'static 'inline-array bombbot-node 51
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 388330.7 :y 35735.55 :z 5592473.0)
|
||||
:nav-mesh-id #x48cc
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 235137.44 :y 35738.418 :z 5335571.5)
|
||||
:nav-mesh-id #x48cc
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 74786.0 :y 35725.312 :z 5357485.5)
|
||||
:nav-mesh-id #x48cc
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x -245602.72 :y 35892.43 :z 5523168.5)
|
||||
:nav-mesh-id #x48cc
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x -478199.4 :y 35809.28 :z 5729811.5)
|
||||
:nav-mesh-id #x48cc
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x -633699.94 :y 39457.586 :z 5876857.5)
|
||||
:nav-mesh-id #x48cc
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x -667004.5 :y 59325.234 :z 5924289.5)
|
||||
:nav-mesh-id #x48cc
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x -696929.9 :y 58614.58 :z 5964103.0)
|
||||
:nav-mesh-id #x48cc
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x -732503.6 :y 22183.527 :z 6010224.0)
|
||||
:nav-mesh-id #x48cc
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x -856731.25 :y 21815.297 :z 6198476.0)
|
||||
:nav-mesh-id #x48cc
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x -870399.56 :y 35786.344 :z 6224935.5)
|
||||
:nav-mesh-id #x48cc
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x -976211.56 :y 35637.656 :z 6564699.5)
|
||||
:nav-mesh-id #x48cc
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x -719711.9 :y 38689.176 :z 6634986.5)
|
||||
:nav-mesh-id #x48cc
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x -531132.0 :y 38689.176 :z 6696467.5)
|
||||
:nav-mesh-id #x48db
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x -354006.62 :y 38696.14 :z 6784162.5)
|
||||
:nav-mesh-id #x48db
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x -180439.86 :y 38695.32 :z 6879559.0)
|
||||
:nav-mesh-id #x48db
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 20982.58 :y 35575.81 :z 7042620.0)
|
||||
:nav-mesh-id #x48db
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 195429.98 :y 35792.895 :z 6968032.5)
|
||||
:nav-mesh-id #x48db
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 312721.8 :y 35971.89 :z 6998506.5)
|
||||
:nav-mesh-id #x48db
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 453852.78 :y 37415.73 :z 7159356.0)
|
||||
:nav-mesh-id #x48db
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 678702.7 :y 75903.38 :z 7154687.0)
|
||||
:nav-mesh-id #x48db
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 891694.7 :y 75898.06 :z 7155056.0)
|
||||
:nav-mesh-id #x48db
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 1123581.5 :y 37389.105 :z 7159807.0)
|
||||
:nav-mesh-id #x48db
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 1262735.0 :y 36363.06 :z 7003381.0)
|
||||
:nav-mesh-id #x48db
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 1435963.0 :y 35584.82 :z 6967623.0)
|
||||
:nav-mesh-id #x48db
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 1585966.8 :y 37874.895 :z 7002643.5)
|
||||
:nav-mesh-id #x48db
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 1763491.4 :y 38840.32 :z 6884228.5)
|
||||
:nav-mesh-id #x48db
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 1928056.4 :y 38840.32 :z 6786702.0)
|
||||
:nav-mesh-id #x48db
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 2107686.0 :y 38849.332 :z 6696098.5)
|
||||
:nav-mesh-id #x48db
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 2293435.5 :y 38841.547 :z 6626262.0)
|
||||
:nav-mesh-id #x48db
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 2510294.8 :y 35697.46 :z 6572563.5)
|
||||
:nav-mesh-id #x48e9
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 2539388.0 :y 36340.53 :z 6489415.0)
|
||||
:nav-mesh-id #x48e9
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 2446294.8 :y 35794.535 :z 6219815.5)
|
||||
:nav-mesh-id #x48e9
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 2430483.8 :y 23202.611 :z 6190160.5)
|
||||
:nav-mesh-id #x48e9
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 2307473.0 :y 22759.834 :z 5994905.0)
|
||||
:nav-mesh-id #x48e9
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 2275430.0 :y 56630.066 :z 5951815.0)
|
||||
:nav-mesh-id #x48e9
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 2247085.8 :y 59249.05 :z 5913271.0)
|
||||
:nav-mesh-id #x48e9
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 2208775.2 :y 40428.34 :z 5866126.0)
|
||||
:nav-mesh-id #x48e9
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 2049703.5 :y 35709.746 :z 5719040.0)
|
||||
:nav-mesh-id #x48e9
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 1805794.9 :y 35787.98 :z 5533326.0)
|
||||
:nav-mesh-id #x48e9
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 1550716.5 :y 35767.91 :z 5390949.0)
|
||||
:nav-mesh-id #x48e9
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 1386327.6 :y 35697.05 :z 5346631.0)
|
||||
:nav-mesh-id #x48e9
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 1270820.5 :y 35735.14 :z 5479013.0)
|
||||
:nav-mesh-id #x48e9
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 1179094.6 :y 35735.55 :z 5589237.0)
|
||||
:nav-mesh-id #x48e9
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 1153597.0 :y 23880.09 :z 5588172.0)
|
||||
:nav-mesh-id #x48e9
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 1028533.9 :y 21655.96 :z 5589810.5)
|
||||
:nav-mesh-id #x48e9
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 1001635.44 :y 37785.19 :z 5586247.0)
|
||||
:nav-mesh-id #x48e9
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 782425.7 :y 35723.67 :z 5569207.0)
|
||||
:nav-mesh-id #x48cc
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 574987.9 :y 35949.363 :z 5584567.0)
|
||||
:nav-mesh-id #x48cc
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 546176.6 :y 21655.553 :z 5588704.5)
|
||||
:nav-mesh-id #x48cc
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 417185.38 :y 24605.082 :z 5599353.5)
|
||||
:nav-mesh-id #x48cc
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for symbol *bombbot-path-6*, type bombbot-path
|
||||
(define *bombbot-path-6* (new 'static 'bombbot-path
|
||||
:node-count #x1a
|
||||
:node (new 'static 'inline-array bombbot-node 26
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 4673330.5 :y 103528.04 :z 4155801.2)
|
||||
:nav-mesh-id #x34ad
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 4680252.0 :y 103531.31 :z 3704430.2)
|
||||
:nav-mesh-id #x34ad
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 4259757.5 :y 103531.31 :z 3700010.5)
|
||||
:nav-mesh-id #x34ad
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 3996306.8 :y 103531.31 :z 3698474.5)
|
||||
:nav-mesh-id #x34ad
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 3866263.2 :y 103531.31 :z 3698322.8)
|
||||
:nav-mesh-id #x34ad
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 3350626.0 :y 103528.04 :z 3702615.8)
|
||||
:nav-mesh-id #x34ad
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 3346918.5 :y 103528.04 :z 4084702.5)
|
||||
:nav-mesh-id #x34ad
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 3694755.5 :y 103528.04 :z 4096572.5)
|
||||
:nav-mesh-id #x34ad
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 3703221.8 :y 103528.04 :z 4352286.0)
|
||||
:nav-mesh-id #x34ad
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 3958894.2 :y 103528.04 :z 4364409.5)
|
||||
:nav-mesh-id #x34ad
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 3958861.5 :y 103528.04 :z 4683570.5)
|
||||
:nav-mesh-id #x34ad
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 3573743.2 :y 103528.04 :z 4682791.5)
|
||||
:nav-mesh-id #x34ad
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 3563831.0 :y 103528.04 :z 4222893.5)
|
||||
:nav-mesh-id #x34ad
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 3185090.2 :y 103528.04 :z 4217609.5)
|
||||
:nav-mesh-id #x34ad
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 3184090.8 :y 103443.25 :z 3811204.8)
|
||||
:nav-mesh-id #x34ad
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 3179494.5 :y 36837.375 :z 3575176.5)
|
||||
:nav-mesh-id #x34ad
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 3264048.8 :y 36837.375 :z 3525590.8)
|
||||
:nav-mesh-id #x34ad
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 3247177.0 :y 36837.375 :z 4148510.0)
|
||||
:nav-mesh-id #x34ad
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 3650235.5 :y 36837.375 :z 4178902.8)
|
||||
:nav-mesh-id #x34ad
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 3655273.8 :y 36837.375 :z 4465417.5)
|
||||
:nav-mesh-id #x34ad
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 3942530.8 :y 36837.375 :z 4631551.0)
|
||||
:nav-mesh-id #x34ad
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 4158422.8 :y 36837.375 :z 4682956.0)
|
||||
:nav-mesh-id #x34ad
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 4413520.5 :y 103528.04 :z 4686642.5)
|
||||
:nav-mesh-id #x34ad
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 4432117.0 :y 103528.04 :z 4430192.0)
|
||||
:nav-mesh-id #x34ad
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 4616723.5 :y 103528.04 :z 4419378.5)
|
||||
:nav-mesh-id #x34ad
|
||||
)
|
||||
(new 'static 'bombbot-node
|
||||
:position (new 'static 'vector :x 4627783.0 :y 103531.31 :z 4174642.5)
|
||||
:nav-mesh-id #x34ad
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
|
||||
|
||||
+3559
File diff suppressed because it is too large
Load Diff
-1
@@ -415,7 +415,6 @@
|
||||
((method-of-type nav-enemy kill-prefer-falling) obj)
|
||||
)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
|
||||
;; definition for method 90 of type hopper
|
||||
|
||||
+1643
File diff suppressed because it is too large
Load Diff
+29
-35
@@ -260,48 +260,42 @@ For pegasus, it will call [[enemy::57]] only if the [[pegasus]] has been targett
|
||||
)
|
||||
|
||||
;; definition for method 74 of type pegasus
|
||||
;; WARN: Return type mismatch none vs object.
|
||||
(defmethod general-event-handler pegasus ((obj pegasus) (proc process) (arg2 int) (event-type symbol) (event event-message-block))
|
||||
"Handles various events for the enemy
|
||||
@TODO - unsure if there is a pattern for the events and this should have a more specific name"
|
||||
(with-pp
|
||||
(let ((v1-0 event-type))
|
||||
(the-as
|
||||
object
|
||||
(cond
|
||||
((= v1-0 'track)
|
||||
#f
|
||||
)
|
||||
((or (= v1-0 'hit) (= v1-0 'hit-knocked))
|
||||
(cond
|
||||
((zero? (-> obj hit-points))
|
||||
(logclear! (-> obj mask) (process-mask actor-pause))
|
||||
(logclear! (-> obj focus-status) (focus-status dangerous))
|
||||
(logclear! (-> obj enemy-flags) (enemy-flag enable-on-notice))
|
||||
(logior! (-> obj enemy-flags) (enemy-flag chase-startup))
|
||||
(logior! (-> obj focus-status) (focus-status hit))
|
||||
(if (zero? (-> obj hit-points))
|
||||
(logior! (-> obj focus-status) (focus-status dead))
|
||||
)
|
||||
(logclear! (-> obj enemy-flags) (enemy-flag actor-pause-backup))
|
||||
(enemy-method-62 obj)
|
||||
(set! (-> obj enemy-flags) (logior (enemy-flag actor-pause-backup) (-> obj enemy-flags)))
|
||||
(process-contact-action proc)
|
||||
(send-event proc 'get-attack-count 1)
|
||||
(the-as object (kill-prefer-falling obj))
|
||||
(case event-type
|
||||
(('track)
|
||||
#f
|
||||
)
|
||||
(('hit 'hit-knocked)
|
||||
(cond
|
||||
((zero? (-> obj hit-points))
|
||||
(logclear! (-> obj mask) (process-mask actor-pause))
|
||||
(logclear! (-> obj focus-status) (focus-status dangerous))
|
||||
(logclear! (-> obj enemy-flags) (enemy-flag enable-on-notice))
|
||||
(logior! (-> obj enemy-flags) (enemy-flag chase-startup))
|
||||
(logior! (-> obj focus-status) (focus-status hit))
|
||||
(if (zero? (-> obj hit-points))
|
||||
(logior! (-> obj focus-status) (focus-status dead))
|
||||
)
|
||||
(else
|
||||
(let ((v0-0 (the-as object (-> pp clock frame-counter))))
|
||||
(set! (-> obj targetted-timer) (the-as time-frame v0-0))
|
||||
v0-0
|
||||
)
|
||||
)
|
||||
(logclear! (-> obj enemy-flags) (enemy-flag actor-pause-backup))
|
||||
(enemy-method-62 obj)
|
||||
(set! (-> obj enemy-flags) (logior (enemy-flag actor-pause-backup) (-> obj enemy-flags)))
|
||||
(process-contact-action proc)
|
||||
(send-event proc 'get-attack-count 1)
|
||||
(kill-prefer-falling obj)
|
||||
)
|
||||
(else
|
||||
(let ((v0-0 (the-as object (-> pp clock frame-counter))))
|
||||
(set! (-> obj targetted-timer) (the-as time-frame v0-0))
|
||||
v0-0
|
||||
)
|
||||
)
|
||||
(else
|
||||
((method-of-type enemy general-event-handler) obj proc arg2 event-type event)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(else
|
||||
((method-of-type enemy general-event-handler) obj proc arg2 event-type event)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
+482
@@ -0,0 +1,482 @@
|
||||
;;-*-Lisp-*-
|
||||
(in-package goal)
|
||||
|
||||
;; definition for function fortress-login
|
||||
;; WARN: Return type mismatch int vs none.
|
||||
(defun fortress-login ()
|
||||
(set! *nav-network* (new 'loading-level 'nav-network))
|
||||
(nav-network-method-9 *nav-network*)
|
||||
0
|
||||
(none)
|
||||
)
|
||||
|
||||
;; definition for function fortress-deactivate
|
||||
;; WARN: Return type mismatch int vs none.
|
||||
(defun fortress-deactivate ()
|
||||
(set! *nav-network* (the-as nav-network 0))
|
||||
0
|
||||
(none)
|
||||
)
|
||||
|
||||
;; definition for function fortress-activate
|
||||
(defun fortress-activate ((arg0 level))
|
||||
(nav-network-method-10 *nav-network* arg0 *fortress-adjacency*)
|
||||
(none)
|
||||
)
|
||||
|
||||
;; definition of type fort-elec-button
|
||||
(deftype fort-elec-button (cty-guard-turret-button)
|
||||
((start-up? symbol :offset-assert 288)
|
||||
)
|
||||
:heap-base #xb0
|
||||
:method-count-assert 41
|
||||
:size-assert #x124
|
||||
:flag-assert #x2900b00124
|
||||
(:methods
|
||||
(waiting () _type_ :state 40)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for method 3 of type fort-elec-button
|
||||
(defmethod inspect fort-elec-button ((obj fort-elec-button))
|
||||
(when (not obj)
|
||||
(set! obj obj)
|
||||
(goto cfg-4)
|
||||
)
|
||||
(let ((t9-0 (method-of-type cty-guard-turret-button inspect)))
|
||||
(t9-0 obj)
|
||||
)
|
||||
(format #t "~2Tstart-up?: ~A~%" (-> obj start-up?))
|
||||
(label cfg-4)
|
||||
obj
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defskelgroup skel-fort-elec-button cty-guard-turret-button cty-guard-turret-button-lod0-jg cty-guard-turret-button-idle-ja
|
||||
((cty-guard-turret-button-lod0-mg (meters 999999)))
|
||||
:bounds (static-spherem 0 0 0 3)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defstate waiting (fort-elec-button)
|
||||
:virtual #t
|
||||
:event (behavior ((proc process) (arg1 int) (event-type symbol) (event event-message-block))
|
||||
(case event-type
|
||||
(('trigger)
|
||||
(go-virtual pop-up)
|
||||
)
|
||||
)
|
||||
)
|
||||
:code (the-as (function none :behavior fort-elec-button) sleep-code)
|
||||
)
|
||||
|
||||
;; definition for method 33 of type fort-elec-button
|
||||
;; WARN: Return type mismatch int vs none.
|
||||
(defmethod basebutton-method-33 fort-elec-button ((obj fort-elec-button))
|
||||
"TODO - joint stuff"
|
||||
(initialize-skeleton
|
||||
obj
|
||||
(the-as skeleton-group (art-group-get-by-name *level* "skel-fort-elec-button" (the-as (pointer uint32) #f)))
|
||||
(the-as pair 0)
|
||||
)
|
||||
(ja-channel-set! 1)
|
||||
(cond
|
||||
((-> obj start-up?)
|
||||
(let ((a0-4 (-> obj skel root-channel 0)))
|
||||
(set! (-> a0-4 frame-group) (the-as art-joint-anim (-> obj draw art-group data 3)))
|
||||
(set! (-> a0-4 frame-num)
|
||||
(the float (+ (-> (the-as art-joint-anim (-> obj draw art-group data 3)) frames num-frames) -1))
|
||||
)
|
||||
(joint-control-channel-group! a0-4 (the-as art-joint-anim (-> obj draw art-group data 3)) num-func-identity)
|
||||
)
|
||||
)
|
||||
(else
|
||||
(let ((a0-5 (-> obj skel root-channel 0)))
|
||||
(set! (-> a0-5 frame-group) (the-as art-joint-anim (-> obj draw art-group data 3)))
|
||||
(set! (-> a0-5 frame-num) 0.0)
|
||||
(joint-control-channel-group! a0-5 (the-as art-joint-anim (-> obj draw art-group data 3)) num-func-identity)
|
||||
)
|
||||
)
|
||||
)
|
||||
(transform-post)
|
||||
(none)
|
||||
)
|
||||
|
||||
;; definition for method 35 of type fort-elec-button
|
||||
;; WARN: Return type mismatch process-mask vs none.
|
||||
(defmethod prepare-trigger-event! fort-elec-button ((obj fort-elec-button))
|
||||
"Sets `event-going-down` to `'trigger`"
|
||||
(set! (-> obj start-up?) (= 1 (res-lump-value (-> obj entity) 'extra-id uint :time -1000000000.0)))
|
||||
(set! (-> obj event-going-down) 'trigger)
|
||||
(process-entity-status! obj (entity-perm-status no-kill) #t)
|
||||
(logclear! (-> obj mask) (process-mask actor-pause))
|
||||
(none)
|
||||
)
|
||||
|
||||
;; definition for method 32 of type fort-elec-button
|
||||
(defmethod idle-state-transition fort-elec-button ((obj fort-elec-button))
|
||||
"If `button-status` has [[button-status:0]] set, transition to [[basebutton::27]] otherwise, [[basebutton::30]]"
|
||||
(cond
|
||||
((-> obj start-up?)
|
||||
(let ((s5-0 (-> obj skel root-channel 0)))
|
||||
(joint-control-channel-group-eval!
|
||||
s5-0
|
||||
(the-as art-joint-anim (-> obj draw art-group data 2))
|
||||
num-func-identity
|
||||
)
|
||||
(set! (-> s5-0 frame-num) 0.0)
|
||||
)
|
||||
(go (method-of-object obj up-idle))
|
||||
)
|
||||
(else
|
||||
(go (method-of-object obj waiting))
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition of type fort-led
|
||||
(deftype fort-led (process-drawable)
|
||||
((button-actor entity-actor :offset-assert 200)
|
||||
)
|
||||
:heap-base #x50
|
||||
:method-count-assert 22
|
||||
:size-assert #xcc
|
||||
:flag-assert #x16005000cc
|
||||
(:methods
|
||||
(red () _type_ :state 20)
|
||||
(green () _type_ :state 21)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for method 3 of type fort-led
|
||||
(defmethod inspect fort-led ((obj fort-led))
|
||||
(when (not obj)
|
||||
(set! obj obj)
|
||||
(goto cfg-4)
|
||||
)
|
||||
(let ((t9-0 (method-of-type process-drawable inspect)))
|
||||
(t9-0 obj)
|
||||
)
|
||||
(format #t "~2Tbutton-actor: ~A~%" (-> obj button-actor))
|
||||
(label cfg-4)
|
||||
obj
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defskelgroup skel-fort-led fort-led fort-led-lod0-jg fort-led-idle-ja
|
||||
((fort-led-lod0-mg (meters 999999)))
|
||||
:bounds (static-spherem 0 0 0 4)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defstate red (fort-led)
|
||||
:virtual #t
|
||||
:event (behavior ((proc process) (arg1 int) (event-type symbol) (event event-message-block))
|
||||
(case event-type
|
||||
(('trigger)
|
||||
(go-virtual green)
|
||||
)
|
||||
)
|
||||
)
|
||||
:code (behavior ()
|
||||
(setup-masks (-> self draw) 4 2)
|
||||
(ja-post)
|
||||
(sleep-code)
|
||||
(none)
|
||||
)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defstate green (fort-led)
|
||||
:virtual #t
|
||||
:event (behavior ((proc process) (arg1 int) (event-type symbol) (event event-message-block))
|
||||
(case event-type
|
||||
(('untrigger)
|
||||
(go-virtual red)
|
||||
)
|
||||
)
|
||||
)
|
||||
:code (behavior ()
|
||||
(setup-masks (-> self draw) 2 4)
|
||||
(ja-post)
|
||||
(sleep-code)
|
||||
(none)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for method 11 of type fort-led
|
||||
;; WARN: Return type mismatch object vs none.
|
||||
(defmethod init-from-entity! fort-led ((obj fort-led) (arg0 entity-actor))
|
||||
"Typically the method that does the initial setup on the process, potentially using the [[entity-actor]] provided as part of that.
|
||||
This commonly includes things such as:
|
||||
- stack size
|
||||
- collision information
|
||||
- loading the skeleton group / bones
|
||||
- sounds"
|
||||
(set! (-> obj root) (new 'process 'trsqv))
|
||||
(process-drawable-from-entity! obj arg0)
|
||||
(initialize-skeleton
|
||||
obj
|
||||
(the-as skeleton-group (art-group-get-by-name *level* "skel-fort-led" (the-as (pointer uint32) #f)))
|
||||
(the-as pair 0)
|
||||
)
|
||||
(set! (-> obj button-actor) (entity-actor-lookup arg0 'alt-actor 0))
|
||||
(if (and (-> obj button-actor)
|
||||
(logtest? (-> obj button-actor extra perm status) (entity-perm-status subtask-complete))
|
||||
)
|
||||
(go (method-of-object obj green))
|
||||
(go (method-of-object obj red))
|
||||
)
|
||||
(none)
|
||||
)
|
||||
|
||||
;; definition of type elec-lock-gate
|
||||
(deftype elec-lock-gate (fort-elec-gate)
|
||||
((actor-group (pointer actor-group) :offset-assert 516)
|
||||
(actor-group-count int32 :offset-assert 520)
|
||||
(all-gone? symbol :offset-assert 524)
|
||||
)
|
||||
:heap-base #x190
|
||||
:method-count-assert 32
|
||||
:size-assert #x210
|
||||
:flag-assert #x2001900210
|
||||
(:methods
|
||||
(pre-shutdown () _type_ :state 30)
|
||||
(elec-lock-gate-method-31 (_type_ symbol) symbol 31)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for method 3 of type elec-lock-gate
|
||||
(defmethod inspect elec-lock-gate ((obj elec-lock-gate))
|
||||
(when (not obj)
|
||||
(set! obj obj)
|
||||
(goto cfg-7)
|
||||
)
|
||||
(let ((t9-0 (method-of-type fort-elec-gate inspect)))
|
||||
(t9-0 obj)
|
||||
)
|
||||
(format #t "~2Tactor-group: #x~X~%" (-> obj actor-group))
|
||||
(dotimes (s5-0 (-> obj actor-group-count))
|
||||
(format #t "~T [~D]~2Tactor-group: ~`actor-group`P~%" s5-0 (-> obj actor-group s5-0))
|
||||
)
|
||||
(format #t "~2Tactor-group-count: ~D~%" (-> obj actor-group-count))
|
||||
(format #t "~2Tall-gone?: ~A~%" (-> obj all-gone?))
|
||||
(label cfg-7)
|
||||
obj
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defstate active (elec-lock-gate)
|
||||
:virtual #t
|
||||
:event (behavior ((proc process) (arg1 int) (event-type symbol) (event event-message-block))
|
||||
(case event-type
|
||||
(('trigger)
|
||||
(if (elec-lock-gate-method-31 self (the-as symbol proc))
|
||||
(go-virtual pre-shutdown)
|
||||
)
|
||||
)
|
||||
(else
|
||||
((-> (method-of-type elec-gate active) event) proc arg1 event-type event)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defstate pre-shutdown (elec-lock-gate)
|
||||
:virtual #t
|
||||
:trans (-> (method-of-type elec-lock-gate active) trans)
|
||||
:code (behavior ()
|
||||
(let ((a0-0 *target*))
|
||||
(when (and a0-0 (< 81920.0 (vector-vector-distance (get-trans a0-0 0) (-> self root trans))))
|
||||
(set! (-> self quality-enabled?) #f)
|
||||
(let ((gp-1 (-> self clock frame-counter)))
|
||||
(until (>= (- (-> self clock frame-counter) gp-1) (seconds 0.5))
|
||||
(suspend)
|
||||
)
|
||||
)
|
||||
(hide-hud-quick #f)
|
||||
(set-setting! 'entity-name "camera-243" 0 0)
|
||||
(set-setting! 'process-mask 'set 0 (process-mask movie enemy))
|
||||
(process-grab? *target* #f)
|
||||
(let ((gp-2 (-> self clock frame-counter)))
|
||||
(until (>= (- (-> self clock frame-counter) gp-2) (seconds 2))
|
||||
(suspend)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(go-virtual shutdown)
|
||||
(none)
|
||||
)
|
||||
:post (-> (method-of-type elec-lock-gate active) post)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defstate shutdown (elec-lock-gate)
|
||||
:virtual #t
|
||||
:enter (behavior ()
|
||||
(let ((t9-1 (-> (the-as state (find-parent-method elec-lock-gate 22)) enter)))
|
||||
(if t9-1
|
||||
((the-as (function none) t9-1))
|
||||
)
|
||||
)
|
||||
(set! (-> self all-gone?) #f)
|
||||
(none)
|
||||
)
|
||||
:trans (behavior ()
|
||||
(let ((gp-0 #t))
|
||||
(dotimes (s5-0 5)
|
||||
(let ((s4-0 (-> self l-bolt s5-0)))
|
||||
(seek! (-> s4-0 pos) 0.0 (* (- 1.14 (-> s4-0 pos)) (-> self clock seconds-per-frame)))
|
||||
(set! gp-0 (cond
|
||||
((or (< 1.0 (-> s4-0 pos)) (>= 0.0 (-> s4-0 pos)))
|
||||
(let ((v1-9 (-> self l-bolt s5-0 bolt))
|
||||
(a0-1 3)
|
||||
)
|
||||
(let ((a1-2 (!= a0-1 (-> v1-9 state mode))))
|
||||
(case a0-1
|
||||
((3)
|
||||
(if a1-2
|
||||
(set! (-> v1-9 state counter) 0.0)
|
||||
)
|
||||
)
|
||||
((1)
|
||||
(set! (-> v1-9 state start-color) (-> v1-9 spec start-color))
|
||||
(set! (-> v1-9 state end-color) (-> v1-9 spec end-color))
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! (-> v1-9 state mode) (the-as lightning-mode a0-1))
|
||||
)
|
||||
(let ((v1-12 (-> self l-bolt s5-0 ring 0))
|
||||
(a0-2 3)
|
||||
)
|
||||
(let ((a1-12 (!= a0-2 (-> v1-12 state mode))))
|
||||
(case a0-2
|
||||
((3)
|
||||
(if a1-12
|
||||
(set! (-> v1-12 state counter) 0.0)
|
||||
)
|
||||
)
|
||||
((1)
|
||||
(set! (-> v1-12 state start-color) (-> v1-12 spec start-color))
|
||||
(set! (-> v1-12 state end-color) (-> v1-12 spec end-color))
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! (-> v1-12 state mode) (the-as lightning-mode a0-2))
|
||||
)
|
||||
(let ((v1-15 (-> self l-bolt s5-0 ring 1))
|
||||
(a0-3 3)
|
||||
)
|
||||
(let ((a1-22 (!= a0-3 (-> v1-15 state mode))))
|
||||
(case a0-3
|
||||
((3)
|
||||
(if a1-22
|
||||
(set! (-> v1-15 state counter) 0.0)
|
||||
)
|
||||
)
|
||||
((1)
|
||||
(set! (-> v1-15 state start-color) (-> v1-15 spec start-color))
|
||||
(set! (-> v1-15 state end-color) (-> v1-15 spec end-color))
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! (-> v1-15 state mode) (the-as lightning-mode a0-3))
|
||||
)
|
||||
gp-0
|
||||
)
|
||||
(else
|
||||
#f
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! (-> self all-gone?) gp-0)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
:code (behavior ()
|
||||
(until (-> self all-gone?)
|
||||
(let ((gp-0 (-> self clock frame-counter)))
|
||||
(until (>= (- (-> self clock frame-counter) gp-0) (seconds 0.5))
|
||||
(suspend)
|
||||
)
|
||||
)
|
||||
)
|
||||
(set-setting! 'interp-time 'abs 0 0)
|
||||
(remove-setting! 'entity-name)
|
||||
(remove-setting! 'process-mask)
|
||||
(dotimes (gp-1 2)
|
||||
(suspend)
|
||||
)
|
||||
(remove-setting! 'interp-time)
|
||||
(process-release? *target*)
|
||||
(go-virtual idle)
|
||||
(none)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for method 31 of type elec-lock-gate
|
||||
(defmethod elec-lock-gate-method-31 elec-lock-gate ((obj elec-lock-gate) (arg0 symbol))
|
||||
(dotimes (v1-0 (-> obj actor-group-count))
|
||||
(dotimes (a2-0 (-> obj actor-group v1-0 length))
|
||||
(when (or (not arg0) (let ((a3-5 (-> obj actor-group v1-0 data a2-0 actor)))
|
||||
(!= (if a3-5
|
||||
(-> a3-5 extra process)
|
||||
)
|
||||
arg0
|
||||
)
|
||||
)
|
||||
)
|
||||
(if (not (logtest? (-> obj actor-group v1-0 data a2-0 actor extra perm status) (entity-perm-status subtask-complete))
|
||||
)
|
||||
(return #f)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
#t
|
||||
)
|
||||
|
||||
;; definition for method 26 of type elec-lock-gate
|
||||
(defmethod set-state! elec-lock-gate ((obj elec-lock-gate))
|
||||
"If either [[actor-option::17]] is set on the [[elec-gate]] or the related subtask is completed
|
||||
make the gate `idle`.
|
||||
|
||||
Otherwise, the gate will be `active`."
|
||||
(if (elec-lock-gate-method-31 obj #f)
|
||||
(go (method-of-object obj shutdown))
|
||||
((method-of-type fort-elec-gate set-state!) obj)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
|
||||
;; definition for method 25 of type elec-lock-gate
|
||||
;; INFO: Used lq/sq
|
||||
;; WARN: Return type mismatch int vs none.
|
||||
(defmethod set-palette! elec-lock-gate ((obj elec-lock-gate))
|
||||
"Sets the [[elec-gate]]'s `palette-id` appropriately"
|
||||
(local-vars (sv-16 res-tag))
|
||||
(let ((t9-0 (method-of-type fort-elec-gate set-palette!)))
|
||||
(t9-0 obj)
|
||||
)
|
||||
(logclear! (-> obj mask) (process-mask actor-pause))
|
||||
(set! sv-16 (new 'static 'res-tag))
|
||||
(let ((v1-4 (res-lump-data (-> obj entity) 'actor-groups pointer :tag-ptr (& sv-16))))
|
||||
(cond
|
||||
((and v1-4 (nonzero? (-> sv-16 elt-count)))
|
||||
(set! (-> obj actor-group) (the-as (pointer actor-group) v1-4))
|
||||
(set! (-> obj actor-group-count) (the-as int (-> sv-16 elt-count)))
|
||||
)
|
||||
(else
|
||||
(set! (-> obj actor-group) (the-as (pointer actor-group) #f))
|
||||
(set! (-> obj actor-group-count) 0)
|
||||
0
|
||||
)
|
||||
)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
+898
@@ -0,0 +1,898 @@
|
||||
;;-*-Lisp-*-
|
||||
(in-package goal)
|
||||
|
||||
;; definition of type fort-twist-rail
|
||||
(deftype fort-twist-rail (process-drawable)
|
||||
((sync sync-eased :inline :offset-assert 200)
|
||||
(init-quat quaternion :inline :offset-assert 256)
|
||||
)
|
||||
:heap-base #x90
|
||||
:method-count-assert 21
|
||||
:size-assert #x110
|
||||
:flag-assert #x1500900110
|
||||
(:methods
|
||||
(idle () _type_ :state 20)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for method 3 of type fort-twist-rail
|
||||
(defmethod inspect fort-twist-rail ((obj fort-twist-rail))
|
||||
(when (not obj)
|
||||
(set! obj obj)
|
||||
(goto cfg-4)
|
||||
)
|
||||
(let ((t9-0 (method-of-type process-drawable inspect)))
|
||||
(t9-0 obj)
|
||||
)
|
||||
(format #t "~2Tsync: #<sync-eased @ #x~X>~%" (-> obj sync))
|
||||
(format #t "~2Tinit-quat: #<quaternion @ #x~X>~%" (-> obj init-quat))
|
||||
(label cfg-4)
|
||||
obj
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defskelgroup skel-fort-twist-rail fort-twist-rail 0 3
|
||||
((1 (meters 999999)))
|
||||
:bounds (static-spherem 0 0 10 14)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defstate idle (fort-twist-rail)
|
||||
:virtual #t
|
||||
:trans (the-as (function none :behavior fort-twist-rail) rider-trans)
|
||||
:code (the-as (function none :behavior fort-twist-rail) sleep-code)
|
||||
:post (behavior ()
|
||||
(let ((f0-0 (get-norm! (-> self sync) 0)))
|
||||
(quaternion-rotate-y! (-> self root quat) (-> self init-quat) (+ -2730.6667 (* 5461.3335 f0-0)))
|
||||
)
|
||||
(rider-post)
|
||||
(none)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for method 11 of type fort-twist-rail
|
||||
;; WARN: Return type mismatch object vs none.
|
||||
(defmethod init-from-entity! fort-twist-rail ((obj fort-twist-rail) (arg0 entity-actor))
|
||||
"Typically the method that does the initial setup on the process, potentially using the [[entity-actor]] provided as part of that.
|
||||
This commonly includes things such as:
|
||||
- stack size
|
||||
- collision information
|
||||
- loading the skeleton group / bones
|
||||
- sounds"
|
||||
(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)
|
||||
)
|
||||
(let ((s3-0 (new 'process 'collide-shape-prim-group s4-0 (the-as uint 2) 0)))
|
||||
(set! (-> s4-0 total-prims) (the-as uint 3))
|
||||
(set! (-> s3-0 prim-core collide-as) (collide-spec obstacle pusher))
|
||||
(set! (-> s3-0 prim-core collide-with) (collide-spec jak bot player-list))
|
||||
(set! (-> s3-0 prim-core action) (collide-action solid rideable))
|
||||
(set! (-> s3-0 transform-index) 3)
|
||||
(set-vector! (-> s3-0 local-sphere) 0.0 0.0 40960.0 57344.0)
|
||||
(set! (-> s4-0 root-prim) s3-0)
|
||||
)
|
||||
(pusher-init s4-0)
|
||||
(let ((v1-15 (new 'process 'collide-shape-prim-mesh s4-0 (the-as uint 1) (the-as uint 0))))
|
||||
(set! (-> v1-15 prim-core collide-as) (collide-spec pusher))
|
||||
(set! (-> v1-15 prim-core collide-with) (collide-spec jak bot player-list))
|
||||
(set! (-> v1-15 prim-core action) (collide-action solid rideable))
|
||||
(set! (-> v1-15 transform-index) 3)
|
||||
(set-vector! (-> v1-15 local-sphere) 0.0 -19660.8 0.0 24576.0)
|
||||
)
|
||||
(let ((v1-17 (new 'process 'collide-shape-prim-mesh s4-0 (the-as uint 0) (the-as uint 0))))
|
||||
(set! (-> v1-17 prim-core collide-as) (collide-spec pusher))
|
||||
(set! (-> v1-17 prim-core collide-with) (collide-spec jak bot player-list))
|
||||
(set! (-> v1-17 prim-core action) (collide-action solid rideable))
|
||||
(set! (-> v1-17 transform-index) 3)
|
||||
(set-vector! (-> v1-17 local-sphere) 0.0 0.0 45056.0 45056.0)
|
||||
)
|
||||
(set! (-> s4-0 nav-radius) (* 0.75 (-> s4-0 root-prim local-sphere w)))
|
||||
(let ((v1-20 (-> s4-0 root-prim)))
|
||||
(set! (-> s4-0 backup-collide-as) (-> v1-20 prim-core collide-as))
|
||||
(set! (-> s4-0 backup-collide-with) (-> v1-20 prim-core collide-with))
|
||||
)
|
||||
(set! (-> obj root) s4-0)
|
||||
)
|
||||
(process-drawable-from-entity! obj arg0)
|
||||
(initialize-skeleton
|
||||
obj
|
||||
(the-as skeleton-group (art-group-get-by-name *level* "skel-fort-twist-rail" (the-as (pointer uint32) #f)))
|
||||
(the-as pair 0)
|
||||
)
|
||||
(quaternion-copy! (-> obj init-quat) (-> obj root quat))
|
||||
(let ((a1-14 (new 'stack-no-clear 'sync-info-params)))
|
||||
(let ((v1-26 0))
|
||||
(if #t
|
||||
(set! v1-26 (logior v1-26 1))
|
||||
)
|
||||
(set! (-> a1-14 sync-type) 'sync-eased)
|
||||
(set! (-> a1-14 sync-flags) (the-as sync-flags v1-26))
|
||||
)
|
||||
(set! (-> a1-14 period) (the-as uint 900))
|
||||
(set! (-> a1-14 entity) (-> obj entity))
|
||||
(set! (-> a1-14 percent) 0.0)
|
||||
(set! (-> a1-14 ease-in) 0.15)
|
||||
(set! (-> a1-14 ease-out) 0.15)
|
||||
(set! (-> a1-14 pause-in) 0.0)
|
||||
(set! (-> a1-14 pause-out) 0.0)
|
||||
(initialize! (-> obj sync) a1-14)
|
||||
)
|
||||
(let ((a0-29 (-> obj skel root-channel 0)))
|
||||
(set! (-> a0-29 frame-group) (the-as art-joint-anim (-> obj draw art-group data 3)))
|
||||
(set! (-> a0-29 frame-num) 0.0)
|
||||
(joint-control-channel-group! a0-29 (the-as art-joint-anim (-> obj draw art-group data 3)) num-func-identity)
|
||||
)
|
||||
(transform-post)
|
||||
(go (method-of-object obj idle))
|
||||
(none)
|
||||
)
|
||||
|
||||
;; definition of type fort-elec-belt-inst
|
||||
(deftype fort-elec-belt-inst (process-drawable)
|
||||
((l-spec lightning-spec :offset-assert 200)
|
||||
(l-bolt lightning-control :offset-assert 204)
|
||||
(points vector 17 :inline :offset-assert 208)
|
||||
(path-u float :offset-assert 480)
|
||||
(path-du float :offset-assert 484)
|
||||
(attack-id uint32 :offset-assert 488)
|
||||
(sound-id uint32 :offset-assert 492)
|
||||
)
|
||||
:heap-base #x170
|
||||
:method-count-assert 23
|
||||
:size-assert #x1f0
|
||||
:flag-assert #x17017001f0
|
||||
(:methods
|
||||
(idle () _type_ :state 20)
|
||||
(running () _type_ :state 21)
|
||||
(die () _type_ :state 22)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for method 3 of type fort-elec-belt-inst
|
||||
(defmethod inspect fort-elec-belt-inst ((obj fort-elec-belt-inst))
|
||||
(when (not obj)
|
||||
(set! obj obj)
|
||||
(goto cfg-4)
|
||||
)
|
||||
(let ((t9-0 (method-of-type process-drawable inspect)))
|
||||
(t9-0 obj)
|
||||
)
|
||||
(format #t "~2Tl-spec: ~A~%" (-> obj l-spec))
|
||||
(format #t "~2Tl-bolt: ~A~%" (-> obj l-bolt))
|
||||
(format #t "~2Tpoints[17] @ #x~X~%" (-> obj points))
|
||||
(format #t "~2Tpath-u: ~f~%" (-> obj path-u))
|
||||
(format #t "~2Tpath-du: ~f~%" (-> obj path-du))
|
||||
(format #t "~2Tattack-id: ~D~%" (-> obj attack-id))
|
||||
(format #t "~2Tsound-id: ~D~%" (-> obj sound-id))
|
||||
(label cfg-4)
|
||||
obj
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defskelgroup skel-fort-elec-belt-inst fort-elec-belt fort-elec-belt-lod0-jg fort-elec-belt-idle-ja
|
||||
((fort-elec-belt-lod0-mg (meters 999999)))
|
||||
:bounds (static-spherem 0 0 -19 20)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defstate idle (fort-elec-belt-inst)
|
||||
:virtual #t
|
||||
:code (behavior ()
|
||||
(suspend)
|
||||
(let ((v1-0 (-> self l-bolt))
|
||||
(a0-0 1)
|
||||
)
|
||||
(let ((a1-1 (!= a0-0 (-> v1-0 state mode))))
|
||||
(case a0-0
|
||||
((3)
|
||||
(if a1-1
|
||||
(set! (-> v1-0 state counter) 0.0)
|
||||
)
|
||||
)
|
||||
((1)
|
||||
(set! (-> v1-0 state start-color) (-> v1-0 spec start-color))
|
||||
(set! (-> v1-0 state end-color) (-> v1-0 spec end-color))
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! (-> v1-0 state mode) (the-as lightning-mode a0-0))
|
||||
)
|
||||
(go-virtual running)
|
||||
(none)
|
||||
)
|
||||
:post (behavior ()
|
||||
(let ((a1-0 (new 'stack-no-clear 'event-message-block)))
|
||||
(set! (-> a1-0 from) (process->ppointer self))
|
||||
(set! (-> a1-0 num-params) 2)
|
||||
(set! (-> a1-0 message) 'get-point-norm)
|
||||
(set! (-> a1-0 param 0) (the-as uint (new 'stack-no-clear 'event-message-block)))
|
||||
(set! (-> a1-0 param 1) (the-as uint (-> self path-u)))
|
||||
(let ((v1-7 (the-as vector (send-event-function (ppointer->process (-> self parent)) a1-0))))
|
||||
(set! (-> self root trans quad) (-> v1-7 quad))
|
||||
)
|
||||
)
|
||||
(+! (-> self path-u) (* (-> self path-du) (-> self clock seconds-per-frame)))
|
||||
(ja-post)
|
||||
(none)
|
||||
)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defstate running (fort-elec-belt-inst)
|
||||
:virtual #t
|
||||
:exit (behavior ()
|
||||
(sound-stop (the-as sound-id (-> self sound-id)))
|
||||
(none)
|
||||
)
|
||||
:trans (behavior ()
|
||||
(if (>= (-> self path-u) 1.0)
|
||||
(go-virtual die)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
:code (the-as (function none :behavior fort-elec-belt-inst) sleep-code)
|
||||
:post (behavior ()
|
||||
(local-vars
|
||||
(sv-1696
|
||||
(function lightning-spec time-frame symbol process-drawable vector vector none :behavior lightning-tracker)
|
||||
)
|
||||
(sv-1712 lightning-spec)
|
||||
)
|
||||
(let ((a1-0 (new 'stack-no-clear 'event-message-block)))
|
||||
(set! (-> a1-0 from) (process->ppointer self))
|
||||
(set! (-> a1-0 num-params) 2)
|
||||
(set! (-> a1-0 message) 'get-point-norm)
|
||||
(set! (-> a1-0 param 0) (the-as uint (new 'stack-no-clear 'event-message-block)))
|
||||
(set! (-> a1-0 param 1) (the-as uint (-> self path-u)))
|
||||
(let ((v1-7 (the-as vector (send-event-function (ppointer->process (-> self parent)) a1-0))))
|
||||
(set! (-> self root trans quad) (-> v1-7 quad))
|
||||
)
|
||||
)
|
||||
(+! (-> self path-u) (* (-> self path-du) (-> self clock seconds-per-frame)))
|
||||
(let ((s3-0 (vector<-cspace! (new 'stack-no-clear 'vector) (-> self node-list data 4)))
|
||||
(s2-0 (vector<-cspace! (new 'stack-no-clear 'vector) (-> self node-list data 5)))
|
||||
)
|
||||
(let ((t2-0 (new 'stack-no-clear 'vector)))
|
||||
(vector+! t2-0 s3-0 s2-0)
|
||||
(vector-float*! t2-0 t2-0 0.5)
|
||||
(set! (-> t2-0 y) (+ -20480.0 (-> t2-0 y)))
|
||||
(sound-play "sliding-laser" :id (the-as sound-id (-> self sound-id)) :position t2-0)
|
||||
)
|
||||
(let* ((v0-4 (vector-normalize! (vector-! (new 'stack-no-clear 'vector) s2-0 s3-0) 1.0))
|
||||
(gp-1 (vector-cross! (new 'stack-no-clear 'vector) v0-4 *up-vector*))
|
||||
(s5-0 (-> self l-bolt))
|
||||
(f30-0 90112.0)
|
||||
(f0-6 (* f30-0 f30-0))
|
||||
(s4-1 (vector-! (new 'stack-no-clear 'vector) s2-0 s3-0))
|
||||
(f1-4 (* 0.5 (vector-length s4-1)))
|
||||
)
|
||||
(let ((f2-2 (* f1-4 f1-4)))
|
||||
(vector-float*! s4-1 s4-1 0.5)
|
||||
(vector+! s4-1 s3-0 s4-1)
|
||||
(+! (-> s4-1 y) (sqrtf (- f0-6 f2-2)))
|
||||
)
|
||||
(let* ((f0-12 (* 2.0 (asin (/ f1-4 f30-0))))
|
||||
(f28-1 (* 0.0625 f0-12))
|
||||
(s3-1 (new 'stack-no-clear 'vector))
|
||||
)
|
||||
(set! (-> s3-1 x) 0.0)
|
||||
(set! (-> s3-1 y) (- f30-0))
|
||||
(set! (-> s3-1 z) 0.0)
|
||||
(set! (-> s3-1 w) 0.0)
|
||||
(let ((a2-2 (quaternion-vector-angle! (new 'stack-no-clear 'quaternion) gp-1 (* -0.5 f0-12))))
|
||||
(vector-orient-by-quat! s3-1 s3-1 a2-2)
|
||||
)
|
||||
(dotimes (s2-1 17)
|
||||
(let ((s1-1 (vector+! (new 'stack-no-clear 'vector) s4-1 s3-1)))
|
||||
(set-point! s5-0 s2-1 s1-1)
|
||||
(set! (-> self points s2-1 quad) (-> s1-1 quad))
|
||||
)
|
||||
(let ((a2-5 (quaternion-vector-angle! (new 'stack-no-clear 'quaternion) gp-1 f28-1)))
|
||||
(vector-orient-by-quat! s3-1 s3-1 a2-5)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(let ((gp-2 (new 'stack-no-clear 'collide-query)))
|
||||
(let ((s5-1 (new 'stack-no-clear 'bounding-box)))
|
||||
(let ((a1-15 (new 'stack-no-clear 'inline-array 'sphere 17)))
|
||||
(dotimes (v1-37 17)
|
||||
(set! (-> a1-15 v1-37 quad) (-> self points v1-37 quad))
|
||||
(set! (-> a1-15 v1-37 r) 4096.0)
|
||||
)
|
||||
(set-from-spheres! s5-1 a1-15 17)
|
||||
)
|
||||
(set! (-> gp-2 collide-with) (collide-spec jak bot player-list))
|
||||
(set! (-> gp-2 ignore-process0) self)
|
||||
(set! (-> gp-2 ignore-process1) #f)
|
||||
(set! (-> gp-2 ignore-pat) (new 'static 'pat-surface :noentity #x1 :nojak #x1 :probe #x1 :noendlessfall #x1))
|
||||
(set! (-> gp-2 action-mask) (collide-action solid))
|
||||
(mem-copy! (the-as pointer (-> gp-2 bbox)) (the-as pointer s5-1) 32)
|
||||
)
|
||||
(fill-using-bounding-box *collide-cache* gp-2)
|
||||
)
|
||||
(let ((gp-3 1))
|
||||
(while (< gp-3 17)
|
||||
(let ((s3-2 (new 'stack-no-clear 'collide-query))
|
||||
(s5-2 (-> self points (+ gp-3 -1)))
|
||||
(s4-2 (-> self points gp-3))
|
||||
)
|
||||
(let ((v1-52 (vector-! (new 'stack-no-clear 'vector) s4-2 s5-2)))
|
||||
(set! (-> s3-2 start-pos quad) (-> s5-2 quad))
|
||||
(set! (-> s3-2 move-dist quad) (-> v1-52 quad))
|
||||
)
|
||||
(let ((v1-54 s3-2))
|
||||
(set! (-> v1-54 radius) 4096.0)
|
||||
(set! (-> v1-54 collide-with) (collide-spec jak bot player-list))
|
||||
(set! (-> v1-54 ignore-process0) self)
|
||||
(set! (-> v1-54 ignore-process1) #f)
|
||||
(set! (-> v1-54 ignore-pat) (new 'static 'pat-surface :noentity #x1 :nojak #x1 :probe #x1 :noendlessfall #x1))
|
||||
(set! (-> v1-54 action-mask) (collide-action solid semi-solid))
|
||||
)
|
||||
(when (>= (probe-using-line-sphere *collide-cache* s3-2) 0.0)
|
||||
(let* ((s2-2 (-> s3-2 best-other-tri collide-ptr))
|
||||
(s3-3 (if (type? s2-2 collide-shape-prim-sphere)
|
||||
(the-as collide-shape-prim-sphere s2-2)
|
||||
)
|
||||
)
|
||||
)
|
||||
(when s3-3
|
||||
(sound-play "laser-hit")
|
||||
(let ((s2-4 (get-process *default-dead-pool* lightning-tracker #x4000)))
|
||||
(when s2-4
|
||||
(let ((t9-19 (method-of-type lightning-tracker activate)))
|
||||
(t9-19
|
||||
(the-as lightning-tracker s2-4)
|
||||
*entity-pool*
|
||||
(symbol->string (-> lightning-tracker symbol))
|
||||
(the-as pointer #x70004000)
|
||||
)
|
||||
)
|
||||
(let ((s1-3 run-function-in-process)
|
||||
(s0-0 s2-4)
|
||||
)
|
||||
(set! sv-1696 lightning-tracker-init)
|
||||
(set! sv-1712 (-> self l-spec))
|
||||
(let ((a3-3 (the int (* 3.0 (rand-vu-float-range 5.0 11.0))))
|
||||
(t0-2 #f)
|
||||
(t1-2 #f)
|
||||
)
|
||||
((the-as (function object object object object object object object object none) s1-3)
|
||||
s0-0
|
||||
sv-1696
|
||||
sv-1712
|
||||
a3-3
|
||||
t0-2
|
||||
t1-2
|
||||
s5-2
|
||||
s4-2
|
||||
)
|
||||
)
|
||||
)
|
||||
(-> s2-4 ppointer)
|
||||
)
|
||||
)
|
||||
(let ((v1-68 (vector-reset! (new 'stack-no-clear 'vector)))
|
||||
(a1-28 (new 'stack-no-clear 'event-message-block))
|
||||
)
|
||||
(set! (-> a1-28 from) (process->ppointer self))
|
||||
(set! (-> a1-28 num-params) 2)
|
||||
(set! (-> a1-28 message) 'attack)
|
||||
(set! (-> a1-28 param 0) (the-as uint #f))
|
||||
(let ((a0-50 (new 'static 'attack-info :mask (attack-info-mask vector invinc-time shove-up id))))
|
||||
(set! (-> a0-50 id) (-> self attack-id))
|
||||
(set! (-> a0-50 invinc-time) (seconds 3))
|
||||
(set! (-> a0-50 vector quad) (-> v1-68 quad))
|
||||
(set! (-> a0-50 shove-up) 12288.0)
|
||||
(set! (-> a1-28 param 1) (the-as uint a0-50))
|
||||
)
|
||||
(send-event-function (-> s3-3 cshape process) a1-28)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(+! gp-3 1)
|
||||
)
|
||||
)
|
||||
(ja-post)
|
||||
(none)
|
||||
)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defstate die (fort-elec-belt-inst)
|
||||
:virtual #t
|
||||
:code (behavior ()
|
||||
(let ((v1-0 (-> self l-bolt))
|
||||
(a0-0 3)
|
||||
)
|
||||
(let ((a1-1 (!= a0-0 (-> v1-0 state mode))))
|
||||
(case a0-0
|
||||
((3)
|
||||
(if a1-1
|
||||
(set! (-> v1-0 state counter) 0.0)
|
||||
)
|
||||
)
|
||||
((1)
|
||||
(set! (-> v1-0 state start-color) (-> v1-0 spec start-color))
|
||||
(set! (-> v1-0 state end-color) (-> v1-0 spec end-color))
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! (-> v1-0 state mode) (the-as lightning-mode a0-0))
|
||||
)
|
||||
(suspend)
|
||||
(cleanup-for-death self)
|
||||
(none)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for method 7 of type fort-elec-belt-inst
|
||||
;; WARN: Return type mismatch process-drawable vs fort-elec-belt-inst.
|
||||
(defmethod relocate fort-elec-belt-inst ((obj fort-elec-belt-inst) (arg0 int))
|
||||
(if (nonzero? (-> obj l-bolt))
|
||||
(&+! (-> obj l-bolt) arg0)
|
||||
)
|
||||
(the-as fort-elec-belt-inst ((method-of-type process-drawable relocate) obj arg0))
|
||||
)
|
||||
|
||||
;; definition for method 10 of type fort-elec-belt-inst
|
||||
(defmethod deactivate fort-elec-belt-inst ((obj fort-elec-belt-inst))
|
||||
(sound-stop (the-as sound-id (-> obj sound-id)))
|
||||
((the-as (function process-drawable none) (find-parent-method fort-elec-belt-inst 10)) obj)
|
||||
(none)
|
||||
)
|
||||
|
||||
;; definition for function fort-elec-belt-inst-init-by-other
|
||||
;; WARN: Return type mismatch object vs none.
|
||||
(defbehavior fort-elec-belt-inst-init-by-other fort-elec-belt-inst ((arg0 quaternion) (arg1 float) (arg2 float) (arg3 lightning-spec) (arg4 uint))
|
||||
(set! (-> self root) (new 'process 'trsqv))
|
||||
(initialize-skeleton
|
||||
self
|
||||
(the-as
|
||||
skeleton-group
|
||||
(art-group-get-by-name *level* "skel-fort-elec-belt-inst" (the-as (pointer uint32) #f))
|
||||
)
|
||||
(the-as pair 0)
|
||||
)
|
||||
(quaternion-copy! (-> self root quat) arg0)
|
||||
(set! (-> self path-u) arg1)
|
||||
(set! (-> self path-du) arg2)
|
||||
(logclear! (-> self mask) (process-mask actor-pause))
|
||||
(set! (-> self l-bolt) (new 'process 'lightning-control arg3 self 0.0))
|
||||
(let ((v1-8 (-> self l-bolt))
|
||||
(a0-7 0)
|
||||
)
|
||||
(let ((a1-7 (!= a0-7 (-> v1-8 state mode))))
|
||||
(case a0-7
|
||||
((3)
|
||||
(if a1-7
|
||||
(set! (-> v1-8 state counter) 0.0)
|
||||
)
|
||||
)
|
||||
((1)
|
||||
(set! (-> v1-8 state start-color) (-> v1-8 spec start-color))
|
||||
(set! (-> v1-8 state end-color) (-> v1-8 spec end-color))
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! (-> v1-8 state mode) (the-as lightning-mode a0-7))
|
||||
)
|
||||
(set! (-> self l-spec) arg3)
|
||||
(set! (-> self attack-id) arg4)
|
||||
(set! (-> self sound-id) (the-as uint (new-sound-id)))
|
||||
(ja-no-eval :group! (-> self draw art-group data 2) :num! zero)
|
||||
(ja-post)
|
||||
(go-virtual idle)
|
||||
(none)
|
||||
)
|
||||
|
||||
;; definition of type fort-elec-belt
|
||||
(deftype fort-elec-belt (process)
|
||||
((l-spec lightning-spec :offset-assert 128)
|
||||
(next-spawn-time time-frame :offset-assert 136)
|
||||
(path path-control :offset-assert 144)
|
||||
(init-quat quaternion :inline :offset-assert 160)
|
||||
(sync sync-linear :inline :offset-assert 176)
|
||||
(attack-id uint32 :offset-assert 192)
|
||||
(path-du float :offset-assert 196)
|
||||
)
|
||||
:heap-base #x50
|
||||
:method-count-assert 16
|
||||
:size-assert #xc8
|
||||
:flag-assert #x10005000c8
|
||||
(:methods
|
||||
(idle () _type_ :state 14)
|
||||
(fort-elec-belt-method-15 (_type_) none 15)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for method 3 of type fort-elec-belt
|
||||
(defmethod inspect fort-elec-belt ((obj fort-elec-belt))
|
||||
(when (not obj)
|
||||
(set! obj obj)
|
||||
(goto cfg-4)
|
||||
)
|
||||
(let ((t9-0 (method-of-type process inspect)))
|
||||
(t9-0 obj)
|
||||
)
|
||||
(format #t "~2Tl-spec: ~A~%" (-> obj l-spec))
|
||||
(format #t "~2Tnext-spawn-time: ~D~%" (-> obj next-spawn-time))
|
||||
(format #t "~2Tpath: ~A~%" (-> obj path))
|
||||
(format #t "~2Tinit-quat: #<quaternion @ #x~X>~%" (-> obj init-quat))
|
||||
(format #t "~2Tsync: #<sync-linear @ #x~X>~%" (-> obj sync))
|
||||
(format #t "~2Tattack-id: ~D~%" (-> obj attack-id))
|
||||
(format #t "~2Tpath-du: ~f~%" (-> obj path-du))
|
||||
(label cfg-4)
|
||||
obj
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defstate idle (fort-elec-belt)
|
||||
:virtual #t
|
||||
:event (behavior ((proc process) (arg1 int) (event-type symbol) (event event-message-block))
|
||||
(the-as object (case event-type
|
||||
(('get-point-norm)
|
||||
(get-point-at-percent-along-path!
|
||||
(-> self path)
|
||||
(the-as vector (-> event param 0))
|
||||
(the-as float (-> event param 1))
|
||||
'interp
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
:trans (behavior ()
|
||||
(set-forrescb-electricity-scale! 1.0 0)
|
||||
(when (>= (-> self clock frame-counter) (-> self next-spawn-time))
|
||||
(process-spawn
|
||||
fort-elec-belt-inst
|
||||
(-> self init-quat)
|
||||
0
|
||||
(-> self path-du)
|
||||
(-> self l-spec)
|
||||
(-> self attack-id)
|
||||
:to self
|
||||
)
|
||||
(set! (-> self next-spawn-time) (get-timeframe-offset! (-> self sync) 0))
|
||||
)
|
||||
(none)
|
||||
)
|
||||
:code (the-as (function none :behavior fort-elec-belt) sleep-code)
|
||||
)
|
||||
|
||||
;; definition for method 15 of type fort-elec-belt
|
||||
;; WARN: Return type mismatch symbol vs none.
|
||||
(defmethod fort-elec-belt-method-15 fort-elec-belt ((obj fort-elec-belt))
|
||||
(with-pp
|
||||
(let* ((f28-0 (total-distance (-> obj path)))
|
||||
(s5-0 (-> obj sync))
|
||||
(f26-0 81.92)
|
||||
(a0-3 (- (-> pp clock frame-counter) (get-timeframe-offset! s5-0 0)))
|
||||
(v1-6 (-> s5-0 period))
|
||||
(f30-0 (/ (* f26-0 (the float a0-3)) f28-0))
|
||||
(f28-1 (/ (* f26-0 (the float v1-6)) f28-0))
|
||||
)
|
||||
(while (>= 1.0 f30-0)
|
||||
(if (>= f30-0 0.0)
|
||||
(process-spawn
|
||||
fort-elec-belt-inst
|
||||
(-> obj init-quat)
|
||||
f30-0
|
||||
(-> obj path-du)
|
||||
(-> obj l-spec)
|
||||
(-> obj attack-id)
|
||||
:to obj
|
||||
)
|
||||
)
|
||||
(+! f30-0 f28-1)
|
||||
)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for method 7 of type fort-elec-belt
|
||||
;; WARN: Return type mismatch process vs fort-elec-belt.
|
||||
(defmethod relocate fort-elec-belt ((obj fort-elec-belt) (arg0 int))
|
||||
(if (nonzero? (-> obj path))
|
||||
(&+! (-> obj path) arg0)
|
||||
)
|
||||
(the-as fort-elec-belt ((method-of-type process relocate) obj arg0))
|
||||
)
|
||||
|
||||
;; definition for method 11 of type fort-elec-belt
|
||||
;; INFO: Used lq/sq
|
||||
;; WARN: Return type mismatch object vs none.
|
||||
(defmethod init-from-entity! fort-elec-belt ((obj fort-elec-belt) (arg0 entity-actor))
|
||||
"Typically the method that does the initial setup on the process, potentially using the [[entity-actor]] provided as part of that.
|
||||
This commonly includes things such as:
|
||||
- stack size
|
||||
- collision information
|
||||
- loading the skeleton group / bones
|
||||
- sounds"
|
||||
(local-vars (sv-64 int))
|
||||
(quaternion-copy! (-> obj init-quat) (-> arg0 quat))
|
||||
(let ((s5-0 (new 'stack-no-clear 'sync-info-params)))
|
||||
(let ((s3-0 1200))
|
||||
0.0
|
||||
(set! sv-64 0)
|
||||
(let ((v1-1 (res-lump-data arg0 'sync (pointer float) :tag-ptr (the-as (pointer res-tag) (& sv-64)))))
|
||||
(when v1-1
|
||||
(set! s3-0 (the int (* 300.0 (-> v1-1 0))))
|
||||
(-> v1-1 1)
|
||||
)
|
||||
)
|
||||
(let ((v1-2 0))
|
||||
(if #t
|
||||
(set! v1-2 (logior v1-2 1))
|
||||
)
|
||||
(set! (-> s5-0 sync-type) 'sync-linear)
|
||||
(set! (-> s5-0 sync-flags) (the-as sync-flags v1-2))
|
||||
)
|
||||
(set! (-> s5-0 entity) arg0)
|
||||
(set! (-> s5-0 period) (the-as uint s3-0))
|
||||
)
|
||||
(set! (-> s5-0 percent) 0.0)
|
||||
(initialize! (-> obj sync) s5-0)
|
||||
)
|
||||
(set! (-> obj l-spec) (new 'static 'lightning-spec
|
||||
:name #f
|
||||
:flags (lightning-spec-flags lsf2)
|
||||
:rand-func #x2
|
||||
:start-color (new 'static 'rgba :r #xff :g #xff :b #xff :a #x80)
|
||||
:end-color (new 'static 'rgba :a #x80)
|
||||
:fade-to-color (new 'static 'rgba :r #xbf :b #x8f :a #x5)
|
||||
:fade-start-factor 0.2
|
||||
:fade-time 120.0
|
||||
:texture (new 'static 'texture-id :index #x83 :page #xc)
|
||||
:reduction 0.72
|
||||
:num-points 17
|
||||
:box-size 4997.12
|
||||
:merge-factor 0.32
|
||||
:merge-count 2
|
||||
:radius 7372.8
|
||||
:duration -1.0
|
||||
:sound #f
|
||||
)
|
||||
)
|
||||
(set! (-> obj path) (new 'process 'path-control obj 'path 0.0 (the-as entity #f) #f))
|
||||
(logior! (-> obj path flags) (path-control-flag display draw-line draw-point draw-text))
|
||||
(set! (-> obj path-du) (/ 24576.0 (total-distance (-> obj path))))
|
||||
(let* ((v1-14 *game-info*)
|
||||
(a0-15 (+ (-> v1-14 attack-id) 1))
|
||||
)
|
||||
(set! (-> v1-14 attack-id) a0-15)
|
||||
(set! (-> obj attack-id) a0-15)
|
||||
)
|
||||
(fort-elec-belt-method-15 obj)
|
||||
(set! (-> obj next-spawn-time) (get-timeframe-offset! (-> obj sync) 0))
|
||||
(logclear! (-> obj mask) (process-mask actor-pause))
|
||||
(go (method-of-object obj idle))
|
||||
(none)
|
||||
)
|
||||
|
||||
;; definition of type fort-conveyor
|
||||
(deftype fort-conveyor (conveyor)
|
||||
()
|
||||
:heap-base #x80
|
||||
:method-count-assert 28
|
||||
:size-assert #x100
|
||||
:flag-assert #x1c00800100
|
||||
)
|
||||
|
||||
;; definition for method 3 of type fort-conveyor
|
||||
(defmethod inspect fort-conveyor ((obj fort-conveyor))
|
||||
(when (not obj)
|
||||
(set! obj obj)
|
||||
(goto cfg-4)
|
||||
)
|
||||
(let ((t9-0 (method-of-type conveyor inspect)))
|
||||
(t9-0 obj)
|
||||
)
|
||||
(label cfg-4)
|
||||
obj
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defskelgroup skel-fort-conveyor fort-conveyor fort-conveyor-lod0-jg fort-conveyor-idle-ja
|
||||
((fort-conveyor-lod0-mg (meters 999999)))
|
||||
:bounds (static-spherem 0 0 16 16.5)
|
||||
)
|
||||
|
||||
;; definition for method 22 of type fort-conveyor
|
||||
(defmethod get-art-group fort-conveyor ((obj fort-conveyor))
|
||||
"@returns The respective [[art-group]] for the [[conveyor]]"
|
||||
(art-group-get-by-name *level* "skel-fort-conveyor" (the-as (pointer uint32) #f))
|
||||
)
|
||||
|
||||
;; definition for method 23 of type fort-conveyor
|
||||
;; WARN: Return type mismatch collide-shape-moving vs none.
|
||||
(defmethod reset-root! fort-conveyor ((obj fort-conveyor))
|
||||
"Re-initializes the `root` [[trsqv]]"
|
||||
(let ((s5-0 (new 'process 'collide-shape-moving obj (collide-list-enum hit-by-player))))
|
||||
(set! (-> s5-0 dynam) (copy *standard-dynamics* 'process))
|
||||
(set! (-> s5-0 reaction) cshape-reaction-default)
|
||||
(set! (-> s5-0 no-reaction)
|
||||
(the-as (function collide-shape-moving collide-query vector vector object) nothing)
|
||||
)
|
||||
(let ((s4-0 (new 'process 'collide-shape-prim-mesh s5-0 (the-as uint 0) (the-as uint 0))))
|
||||
(set! (-> s4-0 prim-core collide-as) (collide-spec pusher))
|
||||
(set! (-> s4-0 prim-core collide-with) (collide-spec jak player-list))
|
||||
(set! (-> s4-0 prim-core action) (collide-action solid rideable))
|
||||
(set! (-> s4-0 transform-index) 0)
|
||||
(set-vector! (-> s4-0 local-sphere) 0.0 0.0 65536.0 67584.0)
|
||||
(set! (-> s5-0 total-prims) (the-as uint 1))
|
||||
(set! (-> s5-0 root-prim) s4-0)
|
||||
)
|
||||
(pusher-init s5-0)
|
||||
(set! (-> s5-0 nav-radius) (* 0.75 (-> s5-0 root-prim local-sphere w)))
|
||||
(let ((v1-15 (-> s5-0 root-prim)))
|
||||
(set! (-> s5-0 backup-collide-as) (-> v1-15 prim-core collide-as))
|
||||
(set! (-> s5-0 backup-collide-with) (-> v1-15 prim-core collide-with))
|
||||
)
|
||||
(set! (-> obj root) s5-0)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
|
||||
;; definition for method 24 of type fort-conveyor
|
||||
;; WARN: Return type mismatch vector vs none.
|
||||
(defmethod init! fort-conveyor ((obj fort-conveyor))
|
||||
"Initializes defaults for things like the `speed` and `belt-radius`"
|
||||
(set! (-> obj speed) -47104.0)
|
||||
(set! (-> obj belt-radius) 24576.0)
|
||||
(set! (-> obj pull-y-threshold) 4096.0)
|
||||
(if (name= (-> obj name) "fort-conveyor-4")
|
||||
(set-vector! (-> obj root scale) 0.8 0.0 0.657 1.0)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
|
||||
;; definition for method 25 of type fort-conveyor
|
||||
(defmethod set-and-get-ambient-sound! fort-conveyor ((obj fort-conveyor))
|
||||
"So long as [[actor-option::16]] is not set, fetch the [[ambient-sound]] for the [[conveyor]]
|
||||
and return it as well. Otherwise, set it to `0`"
|
||||
(let* ((s5-0 (get-point-in-path! (-> obj path) (new 'stack-no-clear 'vector) 0.0 'interp))
|
||||
(v1-2 (get-point-in-path! (-> obj path) (new 'stack-no-clear 'vector) 1.0 'interp))
|
||||
(a3-3 (vector+! (new 'stack-no-clear 'vector) s5-0 v1-2))
|
||||
)
|
||||
(vector-float*! a3-3 a3-3 0.5)
|
||||
(let ((v0-2 (new 'process 'ambient-sound (static-sound-spec "fort-conveyor" :fo-max 50) a3-3)))
|
||||
(set! (-> obj sound) v0-2)
|
||||
v0-2
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(set-subtask-hook!
|
||||
*game-info*
|
||||
172
|
||||
0
|
||||
(the-as
|
||||
(function object)
|
||||
(lambda :behavior task-manager
|
||||
()
|
||||
(set-setting! 'sound-mode #f 0 1)
|
||||
(set-setting! 'sound-excitement 'abs #x3f4ccccd 0)
|
||||
(speech-control-method-10
|
||||
*speech-control*
|
||||
6
|
||||
(new 'static 'speech-type-info
|
||||
:min-delay #x4b0
|
||||
:max-delay #x960
|
||||
:list (new 'static 'boxed-array :type string
|
||||
"kg001"
|
||||
"kg002"
|
||||
"kg004"
|
||||
"kg006"
|
||||
"kg001a"
|
||||
"kg013"
|
||||
"kg016"
|
||||
"kg018"
|
||||
"kg019"
|
||||
"kg023"
|
||||
"kg024"
|
||||
"kg002a"
|
||||
"kg004a"
|
||||
"kg078a"
|
||||
"kg079a"
|
||||
"kg080a"
|
||||
"kg081a"
|
||||
"kg004a"
|
||||
"kg082a"
|
||||
"kg083a"
|
||||
"kg084a"
|
||||
"kg085a"
|
||||
"kg086a"
|
||||
"kg087a"
|
||||
"kg088a"
|
||||
"kg091a"
|
||||
"kg023a"
|
||||
"kg006a"
|
||||
"kg092a"
|
||||
"kg020a"
|
||||
"kg093a"
|
||||
"kg094a"
|
||||
"kg095a"
|
||||
"kg103a"
|
||||
"kg104a"
|
||||
"kg112a"
|
||||
"kg024a"
|
||||
"kg134"
|
||||
"kg136"
|
||||
"kg137"
|
||||
"kg138"
|
||||
"kg139"
|
||||
"kg140"
|
||||
"kg141"
|
||||
)
|
||||
)
|
||||
)
|
||||
(speech-control-method-10
|
||||
*speech-control*
|
||||
9
|
||||
(new 'static 'speech-type-info
|
||||
:priority 1
|
||||
:min-delay #x12c
|
||||
:max-delay #x258
|
||||
:list (new 'static 'boxed-array :type string
|
||||
"kg133"
|
||||
"kg142"
|
||||
"kg144"
|
||||
"kg145"
|
||||
"kg146"
|
||||
"kg147"
|
||||
"kg148"
|
||||
"kg149"
|
||||
"kg150"
|
||||
"kg138"
|
||||
"kg151"
|
||||
"kg152"
|
||||
"kg153"
|
||||
"kg154"
|
||||
"kg155"
|
||||
"kg159"
|
||||
"kg163"
|
||||
"kg164"
|
||||
)
|
||||
)
|
||||
)
|
||||
(speech-control-method-10
|
||||
*speech-control*
|
||||
10
|
||||
(new 'static 'speech-type-info :priority #xa :max-delay #x12c :list (new 'static 'boxed-array :type string
|
||||
"kg166"
|
||||
"kg167"
|
||||
"kg168"
|
||||
"kg169"
|
||||
"kg171"
|
||||
"kg172"
|
||||
"kg173"
|
||||
"kg174"
|
||||
"kg175"
|
||||
)
|
||||
)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(set-subtask-hook!
|
||||
*game-info*
|
||||
172
|
||||
1
|
||||
(the-as
|
||||
(function object)
|
||||
(lambda :behavior task-manager () (speech-control-method-9 *speech-control*) (none))
|
||||
)
|
||||
)
|
||||
+510
@@ -0,0 +1,510 @@
|
||||
;;-*-Lisp-*-
|
||||
(in-package goal)
|
||||
|
||||
;; definition of type hip-trophy-a
|
||||
(deftype hip-trophy-a (process-drawable)
|
||||
()
|
||||
:heap-base #x50
|
||||
:method-count-assert 21
|
||||
:size-assert #xc8
|
||||
:flag-assert #x15005000c8
|
||||
(:methods
|
||||
(idle () _type_ :state 20)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for method 3 of type hip-trophy-a
|
||||
(defmethod inspect hip-trophy-a ((obj hip-trophy-a))
|
||||
(when (not obj)
|
||||
(set! obj obj)
|
||||
(goto cfg-4)
|
||||
)
|
||||
(let ((t9-0 (method-of-type process-drawable inspect)))
|
||||
(t9-0 obj)
|
||||
)
|
||||
(label cfg-4)
|
||||
obj
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defskelgroup skel-hip-trophy-a hip-trophy-a hip-trophy-a-lod0-jg hip-trophy-a-idle-ja
|
||||
((hip-trophy-a-lod0-mg (meters 999999)))
|
||||
:bounds (static-spherem 1 -1 0 1.6)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defstate idle (hip-trophy-a)
|
||||
:virtual #t
|
||||
:code (the-as (function none :behavior hip-trophy-a) sleep-code)
|
||||
:post (the-as (function none :behavior hip-trophy-a) ja-post)
|
||||
)
|
||||
|
||||
;; definition for method 11 of type hip-trophy-a
|
||||
;; WARN: Return type mismatch object vs none.
|
||||
(defmethod init-from-entity! hip-trophy-a ((obj hip-trophy-a) (arg0 entity-actor))
|
||||
"Typically the method that does the initial setup on the process, potentially using the [[entity-actor]] provided as part of that.
|
||||
This commonly includes things such as:
|
||||
- stack size
|
||||
- collision information
|
||||
- loading the skeleton group / bones
|
||||
- sounds"
|
||||
(set! (-> obj root) (new 'process 'trsqv))
|
||||
(process-drawable-from-entity! obj arg0)
|
||||
(initialize-skeleton
|
||||
obj
|
||||
(the-as skeleton-group (art-group-get-by-name *level* "skel-hip-trophy-a" (the-as (pointer uint32) #f)))
|
||||
(the-as pair 0)
|
||||
)
|
||||
(let ((v1-5 (res-lump-value (-> obj entity) 'index uint128 :time -1000000000.0)))
|
||||
(if (= (the-as uint v1-5) 1)
|
||||
(logior! (-> obj draw global-effect) (draw-control-global-effect disable-envmap))
|
||||
)
|
||||
)
|
||||
(go (method-of-object obj idle))
|
||||
(none)
|
||||
)
|
||||
|
||||
;; definition of type hip-trophy-d
|
||||
(deftype hip-trophy-d (process-drawable)
|
||||
()
|
||||
:heap-base #x50
|
||||
:method-count-assert 21
|
||||
:size-assert #xc8
|
||||
:flag-assert #x15005000c8
|
||||
(:methods
|
||||
(idle () _type_ :state 20)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for method 3 of type hip-trophy-d
|
||||
(defmethod inspect hip-trophy-d ((obj hip-trophy-d))
|
||||
(when (not obj)
|
||||
(set! obj obj)
|
||||
(goto cfg-4)
|
||||
)
|
||||
(let ((t9-0 (method-of-type process-drawable inspect)))
|
||||
(t9-0 obj)
|
||||
)
|
||||
(label cfg-4)
|
||||
obj
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defskelgroup skel-hip-trophy-d hip-trophy-d hip-trophy-d-lod0-jg hip-trophy-d-idle-ja
|
||||
((hip-trophy-d-lod0-mg (meters 999999)))
|
||||
:bounds (static-spherem -0.2 -0.5 0 2)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defstate idle (hip-trophy-d)
|
||||
:virtual #t
|
||||
:code (the-as (function none :behavior hip-trophy-d) sleep-code)
|
||||
:post (the-as (function none :behavior hip-trophy-d) ja-post)
|
||||
)
|
||||
|
||||
;; definition for method 11 of type hip-trophy-d
|
||||
;; WARN: Return type mismatch object vs none.
|
||||
(defmethod init-from-entity! hip-trophy-d ((obj hip-trophy-d) (arg0 entity-actor))
|
||||
"Typically the method that does the initial setup on the process, potentially using the [[entity-actor]] provided as part of that.
|
||||
This commonly includes things such as:
|
||||
- stack size
|
||||
- collision information
|
||||
- loading the skeleton group / bones
|
||||
- sounds"
|
||||
(set! (-> obj root) (new 'process 'trsqv))
|
||||
(process-drawable-from-entity! obj arg0)
|
||||
(initialize-skeleton
|
||||
obj
|
||||
(the-as skeleton-group (art-group-get-by-name *level* "skel-hip-trophy-d" (the-as (pointer uint32) #f)))
|
||||
(the-as pair 0)
|
||||
)
|
||||
(let ((v1-5 (res-lump-value (-> obj entity) 'index uint128 :time -1000000000.0)))
|
||||
(if (= (the-as uint v1-5) 1)
|
||||
(logior! (-> obj draw global-effect) (draw-control-global-effect disable-envmap))
|
||||
)
|
||||
)
|
||||
(go (method-of-object obj idle))
|
||||
(none)
|
||||
)
|
||||
|
||||
;; definition of type hip-trophy-f
|
||||
(deftype hip-trophy-f (process-drawable)
|
||||
()
|
||||
:heap-base #x50
|
||||
:method-count-assert 21
|
||||
:size-assert #xc8
|
||||
:flag-assert #x15005000c8
|
||||
(:methods
|
||||
(idle () _type_ :state 20)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for method 3 of type hip-trophy-f
|
||||
(defmethod inspect hip-trophy-f ((obj hip-trophy-f))
|
||||
(when (not obj)
|
||||
(set! obj obj)
|
||||
(goto cfg-4)
|
||||
)
|
||||
(let ((t9-0 (method-of-type process-drawable inspect)))
|
||||
(t9-0 obj)
|
||||
)
|
||||
(label cfg-4)
|
||||
obj
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defskelgroup skel-hip-trophy-f hip-trophy-f hip-trophy-f-lod0-jg hip-trophy-f-idle-ja
|
||||
((hip-trophy-f-lod0-mg (meters 999999)))
|
||||
:bounds (static-spherem 0 0 0 2)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defstate idle (hip-trophy-f)
|
||||
:virtual #t
|
||||
:code (the-as (function none :behavior hip-trophy-f) sleep-code)
|
||||
:post (the-as (function none :behavior hip-trophy-f) ja-post)
|
||||
)
|
||||
|
||||
;; definition for method 11 of type hip-trophy-f
|
||||
;; WARN: Return type mismatch object vs none.
|
||||
(defmethod init-from-entity! hip-trophy-f ((obj hip-trophy-f) (arg0 entity-actor))
|
||||
"Typically the method that does the initial setup on the process, potentially using the [[entity-actor]] provided as part of that.
|
||||
This commonly includes things such as:
|
||||
- stack size
|
||||
- collision information
|
||||
- loading the skeleton group / bones
|
||||
- sounds"
|
||||
(set! (-> obj root) (new 'process 'trsqv))
|
||||
(process-drawable-from-entity! obj arg0)
|
||||
(initialize-skeleton
|
||||
obj
|
||||
(the-as skeleton-group (art-group-get-by-name *level* "skel-hip-trophy-f" (the-as (pointer uint32) #f)))
|
||||
(the-as pair 0)
|
||||
)
|
||||
(let ((v1-5 (res-lump-value (-> obj entity) 'index uint128 :time -1000000000.0)))
|
||||
(if (= (the-as uint v1-5) 1)
|
||||
(logior! (-> obj draw global-effect) (draw-control-global-effect disable-envmap))
|
||||
)
|
||||
)
|
||||
(go (method-of-object obj idle))
|
||||
(none)
|
||||
)
|
||||
|
||||
;; definition of type hip-trophy-g
|
||||
(deftype hip-trophy-g (process-drawable)
|
||||
()
|
||||
:heap-base #x50
|
||||
:method-count-assert 21
|
||||
:size-assert #xc8
|
||||
:flag-assert #x15005000c8
|
||||
(:methods
|
||||
(idle () _type_ :state 20)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for method 3 of type hip-trophy-g
|
||||
(defmethod inspect hip-trophy-g ((obj hip-trophy-g))
|
||||
(when (not obj)
|
||||
(set! obj obj)
|
||||
(goto cfg-4)
|
||||
)
|
||||
(let ((t9-0 (method-of-type process-drawable inspect)))
|
||||
(t9-0 obj)
|
||||
)
|
||||
(label cfg-4)
|
||||
obj
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defskelgroup skel-hip-trophy-g hip-trophy-g hip-trophy-g-lod0-jg hip-trophy-g-idle-ja
|
||||
((hip-trophy-g-lod0-mg (meters 999999)))
|
||||
:bounds (static-spherem 0 0 0 4)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defstate idle (hip-trophy-g)
|
||||
:virtual #t
|
||||
:code (the-as (function none :behavior hip-trophy-g) sleep-code)
|
||||
:post (the-as (function none :behavior hip-trophy-g) ja-post)
|
||||
)
|
||||
|
||||
;; definition for method 11 of type hip-trophy-g
|
||||
;; WARN: Return type mismatch object vs none.
|
||||
(defmethod init-from-entity! hip-trophy-g ((obj hip-trophy-g) (arg0 entity-actor))
|
||||
"Typically the method that does the initial setup on the process, potentially using the [[entity-actor]] provided as part of that.
|
||||
This commonly includes things such as:
|
||||
- stack size
|
||||
- collision information
|
||||
- loading the skeleton group / bones
|
||||
- sounds"
|
||||
(set! (-> obj root) (new 'process 'trsqv))
|
||||
(process-drawable-from-entity! obj arg0)
|
||||
(initialize-skeleton
|
||||
obj
|
||||
(the-as skeleton-group (art-group-get-by-name *level* "skel-hip-trophy-g" (the-as (pointer uint32) #f)))
|
||||
(the-as pair 0)
|
||||
)
|
||||
(let ((v1-5 (res-lump-value (-> obj entity) 'index uint128 :time -1000000000.0)))
|
||||
(if (= (the-as uint v1-5) 1)
|
||||
(logior! (-> obj draw global-effect) (draw-control-global-effect disable-envmap))
|
||||
)
|
||||
)
|
||||
(go (method-of-object obj idle))
|
||||
(none)
|
||||
)
|
||||
|
||||
;; definition of type hip-trophy-i
|
||||
(deftype hip-trophy-i (process-drawable)
|
||||
()
|
||||
:heap-base #x50
|
||||
:method-count-assert 21
|
||||
:size-assert #xc8
|
||||
:flag-assert #x15005000c8
|
||||
(:methods
|
||||
(idle () _type_ :state 20)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for method 3 of type hip-trophy-i
|
||||
(defmethod inspect hip-trophy-i ((obj hip-trophy-i))
|
||||
(when (not obj)
|
||||
(set! obj obj)
|
||||
(goto cfg-4)
|
||||
)
|
||||
(let ((t9-0 (method-of-type process-drawable inspect)))
|
||||
(t9-0 obj)
|
||||
)
|
||||
(label cfg-4)
|
||||
obj
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defskelgroup skel-hip-trophy-i hip-trophy-i hip-trophy-i-lod0-jg hip-trophy-i-idle-ja
|
||||
((hip-trophy-i-lod0-mg (meters 999999)))
|
||||
:bounds (static-spherem 0 0 0 4)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defstate idle (hip-trophy-i)
|
||||
:virtual #t
|
||||
:code (the-as (function none :behavior hip-trophy-i) sleep-code)
|
||||
:post (the-as (function none :behavior hip-trophy-i) ja-post)
|
||||
)
|
||||
|
||||
;; definition for method 11 of type hip-trophy-i
|
||||
;; WARN: Return type mismatch object vs none.
|
||||
(defmethod init-from-entity! hip-trophy-i ((obj hip-trophy-i) (arg0 entity-actor))
|
||||
"Typically the method that does the initial setup on the process, potentially using the [[entity-actor]] provided as part of that.
|
||||
This commonly includes things such as:
|
||||
- stack size
|
||||
- collision information
|
||||
- loading the skeleton group / bones
|
||||
- sounds"
|
||||
(set! (-> obj root) (new 'process 'trsqv))
|
||||
(process-drawable-from-entity! obj arg0)
|
||||
(initialize-skeleton
|
||||
obj
|
||||
(the-as skeleton-group (art-group-get-by-name *level* "skel-hip-trophy-i" (the-as (pointer uint32) #f)))
|
||||
(the-as pair 0)
|
||||
)
|
||||
(let ((v1-5 (res-lump-value (-> obj entity) 'index uint128 :time -1000000000.0)))
|
||||
(if (= (the-as uint v1-5) 1)
|
||||
(logior! (-> obj draw global-effect) (draw-control-global-effect disable-envmap))
|
||||
)
|
||||
)
|
||||
(go (method-of-object obj idle))
|
||||
(none)
|
||||
)
|
||||
|
||||
;; definition of type hip-trophy-j
|
||||
(deftype hip-trophy-j (process-drawable)
|
||||
()
|
||||
:heap-base #x50
|
||||
:method-count-assert 21
|
||||
:size-assert #xc8
|
||||
:flag-assert #x15005000c8
|
||||
(:methods
|
||||
(idle () _type_ :state 20)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for method 3 of type hip-trophy-j
|
||||
(defmethod inspect hip-trophy-j ((obj hip-trophy-j))
|
||||
(when (not obj)
|
||||
(set! obj obj)
|
||||
(goto cfg-4)
|
||||
)
|
||||
(let ((t9-0 (method-of-type process-drawable inspect)))
|
||||
(t9-0 obj)
|
||||
)
|
||||
(label cfg-4)
|
||||
obj
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defskelgroup skel-hip-trophy-j hip-trophy-j hip-trophy-j-lod0-jg hip-trophy-j-idle-ja
|
||||
((hip-trophy-j-lod0-mg (meters 999999)))
|
||||
:bounds (static-spherem 0 0 0 4)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defstate idle (hip-trophy-j)
|
||||
:virtual #t
|
||||
:code (the-as (function none :behavior hip-trophy-j) sleep-code)
|
||||
:post (the-as (function none :behavior hip-trophy-j) ja-post)
|
||||
)
|
||||
|
||||
;; definition for method 11 of type hip-trophy-j
|
||||
;; WARN: Return type mismatch object vs none.
|
||||
(defmethod init-from-entity! hip-trophy-j ((obj hip-trophy-j) (arg0 entity-actor))
|
||||
"Typically the method that does the initial setup on the process, potentially using the [[entity-actor]] provided as part of that.
|
||||
This commonly includes things such as:
|
||||
- stack size
|
||||
- collision information
|
||||
- loading the skeleton group / bones
|
||||
- sounds"
|
||||
(set! (-> obj root) (new 'process 'trsqv))
|
||||
(process-drawable-from-entity! obj arg0)
|
||||
(initialize-skeleton
|
||||
obj
|
||||
(the-as skeleton-group (art-group-get-by-name *level* "skel-hip-trophy-j" (the-as (pointer uint32) #f)))
|
||||
(the-as pair 0)
|
||||
)
|
||||
(let ((v1-5 (res-lump-value (-> obj entity) 'index uint128 :time -1000000000.0)))
|
||||
(if (= (the-as uint v1-5) 1)
|
||||
(logior! (-> obj draw global-effect) (draw-control-global-effect disable-envmap))
|
||||
)
|
||||
)
|
||||
(go (method-of-object obj idle))
|
||||
(none)
|
||||
)
|
||||
|
||||
;; definition of type hip-trophy-n
|
||||
(deftype hip-trophy-n (process-drawable)
|
||||
()
|
||||
:heap-base #x50
|
||||
:method-count-assert 21
|
||||
:size-assert #xc8
|
||||
:flag-assert #x15005000c8
|
||||
(:methods
|
||||
(idle () _type_ :state 20)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for method 3 of type hip-trophy-n
|
||||
(defmethod inspect hip-trophy-n ((obj hip-trophy-n))
|
||||
(when (not obj)
|
||||
(set! obj obj)
|
||||
(goto cfg-4)
|
||||
)
|
||||
(let ((t9-0 (method-of-type process-drawable inspect)))
|
||||
(t9-0 obj)
|
||||
)
|
||||
(label cfg-4)
|
||||
obj
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defskelgroup skel-hip-trophy-n hip-trophy-n hip-trophy-n-lod0-jg hip-trophy-n-idle-ja
|
||||
((hip-trophy-n-lod0-mg (meters 999999)))
|
||||
:bounds (static-spherem 0 0 0 4)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defstate idle (hip-trophy-n)
|
||||
:virtual #t
|
||||
:code (the-as (function none :behavior hip-trophy-n) sleep-code)
|
||||
:post (the-as (function none :behavior hip-trophy-n) ja-post)
|
||||
)
|
||||
|
||||
;; definition for method 11 of type hip-trophy-n
|
||||
;; WARN: Return type mismatch object vs none.
|
||||
(defmethod init-from-entity! hip-trophy-n ((obj hip-trophy-n) (arg0 entity-actor))
|
||||
"Typically the method that does the initial setup on the process, potentially using the [[entity-actor]] provided as part of that.
|
||||
This commonly includes things such as:
|
||||
- stack size
|
||||
- collision information
|
||||
- loading the skeleton group / bones
|
||||
- sounds"
|
||||
(set! (-> obj root) (new 'process 'trsqv))
|
||||
(process-drawable-from-entity! obj arg0)
|
||||
(initialize-skeleton
|
||||
obj
|
||||
(the-as skeleton-group (art-group-get-by-name *level* "skel-hip-trophy-n" (the-as (pointer uint32) #f)))
|
||||
(the-as pair 0)
|
||||
)
|
||||
(let ((v1-5 (res-lump-value (-> obj entity) 'index uint128 :time -1000000000.0)))
|
||||
(if (= (the-as uint v1-5) 1)
|
||||
(logior! (-> obj draw global-effect) (draw-control-global-effect disable-envmap))
|
||||
)
|
||||
)
|
||||
(go (method-of-object obj idle))
|
||||
(none)
|
||||
)
|
||||
|
||||
;; definition of type hip-trophy-m
|
||||
(deftype hip-trophy-m (process-drawable)
|
||||
()
|
||||
:heap-base #x50
|
||||
:method-count-assert 21
|
||||
:size-assert #xc8
|
||||
:flag-assert #x15005000c8
|
||||
(:methods
|
||||
(idle () _type_ :state 20)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for method 3 of type hip-trophy-m
|
||||
(defmethod inspect hip-trophy-m ((obj hip-trophy-m))
|
||||
(when (not obj)
|
||||
(set! obj obj)
|
||||
(goto cfg-4)
|
||||
)
|
||||
(let ((t9-0 (method-of-type process-drawable inspect)))
|
||||
(t9-0 obj)
|
||||
)
|
||||
(label cfg-4)
|
||||
obj
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defskelgroup skel-hip-trophy-m hip-trophy-m hip-trophy-m-lod0-jg hip-trophy-m-idle-ja
|
||||
((hip-trophy-m-lod0-mg (meters 999999)))
|
||||
:bounds (static-spherem 0 0 0 4)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defstate idle (hip-trophy-m)
|
||||
:virtual #t
|
||||
:code (the-as (function none :behavior hip-trophy-m) sleep-code)
|
||||
:post (the-as (function none :behavior hip-trophy-m) ja-post)
|
||||
)
|
||||
|
||||
;; definition for method 11 of type hip-trophy-m
|
||||
;; WARN: Return type mismatch object vs none.
|
||||
(defmethod init-from-entity! hip-trophy-m ((obj hip-trophy-m) (arg0 entity-actor))
|
||||
"Typically the method that does the initial setup on the process, potentially using the [[entity-actor]] provided as part of that.
|
||||
This commonly includes things such as:
|
||||
- stack size
|
||||
- collision information
|
||||
- loading the skeleton group / bones
|
||||
- sounds"
|
||||
(set! (-> obj root) (new 'process 'trsqv))
|
||||
(process-drawable-from-entity! obj arg0)
|
||||
(initialize-skeleton
|
||||
obj
|
||||
(the-as skeleton-group (art-group-get-by-name *level* "skel-hip-trophy-m" (the-as (pointer uint32) #f)))
|
||||
(the-as pair 0)
|
||||
)
|
||||
(let ((v1-5 (res-lump-value (-> obj entity) 'index uint128 :time -1000000000.0)))
|
||||
(if (= (the-as uint v1-5) 1)
|
||||
(logior! (-> obj draw global-effect) (draw-control-global-effect disable-envmap))
|
||||
)
|
||||
)
|
||||
(go (method-of-object obj idle))
|
||||
(none)
|
||||
)
|
||||
|
||||
|
||||
|
||||
|
||||
+527
@@ -0,0 +1,527 @@
|
||||
;;-*-Lisp-*-
|
||||
(in-package goal)
|
||||
|
||||
;; definition of type intro-flamer
|
||||
(deftype intro-flamer (process-drawable)
|
||||
((up-dir vector :inline :offset-assert 208)
|
||||
(average-dir vector :inline :offset-assert 224)
|
||||
(id int32 :offset-assert 240)
|
||||
(path-u float :offset-assert 244)
|
||||
(path-du float :offset-assert 248)
|
||||
(z-rot float :offset-assert 252)
|
||||
(flit-prev-offset vector :inline :offset-assert 256)
|
||||
(flit-next-offset vector :inline :offset-assert 272)
|
||||
(flit-factor float :offset-assert 288)
|
||||
(flit-timer uint64 :offset-assert 296)
|
||||
(flit-interval uint64 :offset-assert 304)
|
||||
)
|
||||
:heap-base #xc0
|
||||
:method-count-assert 23
|
||||
:size-assert #x138
|
||||
:flag-assert #x1700c00138
|
||||
(:methods
|
||||
(idle () _type_ :state 20)
|
||||
(die () _type_ :state 21)
|
||||
(intro-flamer-method-22 (_type_) path-control 22)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for method 3 of type intro-flamer
|
||||
(defmethod inspect intro-flamer ((obj intro-flamer))
|
||||
(when (not obj)
|
||||
(set! obj obj)
|
||||
(goto cfg-4)
|
||||
)
|
||||
(let ((t9-0 (method-of-type process-drawable inspect)))
|
||||
(t9-0 obj)
|
||||
)
|
||||
(format #t "~2Tup-dir: #<vector @ #x~X>~%" (-> obj up-dir))
|
||||
(format #t "~2Taverage-dir: #<vector @ #x~X>~%" (-> obj average-dir))
|
||||
(format #t "~2Tid: ~D~%" (-> obj id))
|
||||
(format #t "~2Tpath-u: ~f~%" (-> obj path-u))
|
||||
(format #t "~2Tpath-du: ~f~%" (-> obj path-du))
|
||||
(format #t "~2Tz-rot: ~f~%" (-> obj z-rot))
|
||||
(format #t "~2Tflit-prev-offset: #<vector @ #x~X>~%" (-> obj flit-prev-offset))
|
||||
(format #t "~2Tflit-next-offset: #<vector @ #x~X>~%" (-> obj flit-next-offset))
|
||||
(format #t "~2Tflit-factor: ~f~%" (-> obj flit-factor))
|
||||
(format #t "~2Tflit-timer: ~D~%" (-> obj flit-timer))
|
||||
(format #t "~2Tflit-interval: ~D~%" (-> obj flit-interval))
|
||||
(label cfg-4)
|
||||
obj
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defskelgroup skel-intro-flamer intro-flamer intro-flamer-lod0-jg intro-flamer-fly-straight-ja
|
||||
((intro-flamer-lod0-mg (meters 20)) (intro-flamer-lod1-mg (meters 40)) (intro-flamer-lod2-mg (meters 999999)))
|
||||
:bounds (static-spherem 0 0 0 7.5)
|
||||
:shadow intro-flamer-shadow-mg
|
||||
:origin-joint-index 3
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defstate idle (intro-flamer)
|
||||
:virtual #t
|
||||
:event (behavior ((proc process) (arg1 int) (event-type symbol) (event event-message-block))
|
||||
(case event-type
|
||||
(('die)
|
||||
(go-virtual die)
|
||||
)
|
||||
)
|
||||
)
|
||||
:trans (behavior ()
|
||||
(if (= (-> self path-u) 1.0)
|
||||
(go-virtual die)
|
||||
)
|
||||
(when (>= (- (-> self clock frame-counter) (the-as int (-> self flit-timer)))
|
||||
(the-as time-frame (-> self flit-interval))
|
||||
)
|
||||
(let ((f28-0 (rand-vu-float-range -1.0 1.0))
|
||||
(f30-0 (rand-vu-float-range -1.0 1.0))
|
||||
(f0-1 (rand-vu-float-range 0.2 0.6))
|
||||
)
|
||||
(set! (-> self flit-prev-offset quad) (-> self flit-next-offset quad))
|
||||
(set-vector! (-> self flit-next-offset) (* 4096.0 f28-0) (* 4096.0 f30-0) 0.0 0.0)
|
||||
(set! (-> self flit-factor) 0.0)
|
||||
(set! (-> self flit-interval) (the-as uint (the int (* 300.0 f0-1))))
|
||||
)
|
||||
(set! (-> self flit-timer) (the-as uint (-> self clock frame-counter)))
|
||||
)
|
||||
(none)
|
||||
)
|
||||
:code (behavior ()
|
||||
(ja-channel-set! 1)
|
||||
(let ((f30-0 (rand-vu-float-range 0.8 1.2)))
|
||||
(until #f
|
||||
(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))
|
||||
f30-0
|
||||
)
|
||||
:frame-num 0.0
|
||||
)
|
||||
(until (ja-done? 0)
|
||||
(suspend)
|
||||
(ja :num! (seek! max f30-0))
|
||||
)
|
||||
)
|
||||
)
|
||||
#f
|
||||
(none)
|
||||
)
|
||||
:post (behavior ()
|
||||
(seek! (-> self path-u) 1.0 (* (-> self path-du) (-> self clock seconds-per-frame)))
|
||||
(let ((s3-0 (intro-flamer-method-22 self))
|
||||
(s4-0 (new 'stack-no-clear 'vector))
|
||||
(s5-0 (new 'stack-no-clear 'quaternion))
|
||||
(f30-0 (-> self path-u))
|
||||
(gp-0 (new 'stack-no-clear 'vector))
|
||||
)
|
||||
(get-point-at-percent-along-path! s3-0 gp-0 f30-0 'interp)
|
||||
(displacement-between-points-at-percent-normalized! s3-0 s4-0 (fmin 1.0 (+ 0.05 f30-0)))
|
||||
(let ((t9-4 vector-normalize!)
|
||||
(a0-4 (new 'stack-no-clear 'vector))
|
||||
)
|
||||
(set! (-> a0-4 x) (-> s4-0 x))
|
||||
(set! (-> a0-4 y) 0.0)
|
||||
(set! (-> a0-4 z) (-> s4-0 z))
|
||||
(set! (-> a0-4 w) 1.0)
|
||||
(let ((s3-1 (t9-4 a0-4 1.0))
|
||||
(t9-5 vector-normalize!)
|
||||
(a0-5 (new 'stack-no-clear 'vector))
|
||||
)
|
||||
(set! (-> a0-5 x) (-> self average-dir x))
|
||||
(set! (-> a0-5 y) 0.0)
|
||||
(set! (-> a0-5 z) (-> self average-dir z))
|
||||
(set! (-> a0-5 w) 1.0)
|
||||
(let* ((v1-10 (t9-5 a0-5 1.0))
|
||||
(f0-15 (vector-dot (vector-cross! (new 'stack-no-clear 'vector) s3-1 v1-10) *up-vector*))
|
||||
(f0-16 (* 49152.0 f0-15))
|
||||
)
|
||||
(set! (-> self z-rot) (deg-seek
|
||||
(-> self z-rot)
|
||||
(fmax -15473.777 (fmin 15473.777 f0-16))
|
||||
(* 21845.334 (-> self clock seconds-per-frame))
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(let ((a2-5 (vector-rotate-z! (new 'stack-no-clear 'vector) *up-vector* (-> self z-rot))))
|
||||
(forward-up->quaternion s5-0 s4-0 a2-5)
|
||||
)
|
||||
(quaternion-slerp! (-> self root quat) (-> self root quat) s5-0 (* 8.0 (-> self clock seconds-per-frame)))
|
||||
(seek! (-> self flit-factor) 1.0 (* 8.0 (-> self clock seconds-per-frame)))
|
||||
(let* ((v1-25 (-> self flit-prev-offset))
|
||||
(a1-10 (-> self flit-next-offset))
|
||||
(a0-14 (vector-! (new 'stack-no-clear 'vector) a1-10 v1-25))
|
||||
(s5-1 (new 'stack-no-clear 'vector))
|
||||
)
|
||||
(vector+float*! s5-1 v1-25 a0-14 (-> self flit-factor))
|
||||
(vector-orient-by-quat! s5-1 s5-1 (-> self root quat))
|
||||
(vector+! (-> self root trans) gp-0 s5-1)
|
||||
)
|
||||
)
|
||||
(cond
|
||||
((logtest? (-> self draw status) (draw-control-status on-screen))
|
||||
(new 'stack-no-clear 'vector)
|
||||
(new 'stack-no-clear 'vector)
|
||||
(let ((gp-1 (new 'stack-no-clear 'collide-query)))
|
||||
(set! (-> gp-1 start-pos quad) (-> self root trans quad))
|
||||
(set-vector! (-> gp-1 move-dist) 0.0 -81920.0 0.0 1.0)
|
||||
(let ((v1-37 gp-1))
|
||||
(set! (-> v1-37 radius) 2048.0)
|
||||
(set! (-> v1-37 collide-with) (collide-spec backgnd))
|
||||
(set! (-> v1-37 ignore-process0) self)
|
||||
(set! (-> v1-37 ignore-process1) #f)
|
||||
(set! (-> v1-37 ignore-pat) (new 'static 'pat-surface :noentity #x1 :nojak #x1 :probe #x1 :noendlessfall #x1))
|
||||
(set! (-> v1-37 action-mask) (collide-action solid))
|
||||
)
|
||||
(cond
|
||||
((>= (fill-and-probe-using-line-sphere *collide-cache* gp-1) 0.0)
|
||||
(let ((v1-41 (-> self draw shadow-ctrl)))
|
||||
(logclear! (-> v1-41 settings flags) (shadow-flags disable-draw))
|
||||
)
|
||||
0
|
||||
(let ((a0-28 (-> gp-1 best-other-tri intersect)))
|
||||
(let ((f0-36 (-> self root trans y)))
|
||||
(let ((v1-45 (-> self draw shadow-ctrl)))
|
||||
(set! (-> v1-45 settings bot-plane w) (- (+ (- -12288.0 f0-36) (-> a0-28 y))))
|
||||
)
|
||||
0
|
||||
(let ((v1-48 (-> self draw shadow-ctrl)))
|
||||
(set! (-> v1-48 settings top-plane w) (- (+ (- 12288.0 f0-36) (-> a0-28 y))))
|
||||
)
|
||||
)
|
||||
0
|
||||
(let* ((f2-2 (vector-vector-distance a0-28 (-> self root trans)))
|
||||
(f0-41 (* 0.000030517578 (fmax 0.0 (fmin 32768.0 (+ -57344.0 f2-2)))))
|
||||
)
|
||||
(set! (-> self draw shadow-ctrl settings shadow-dir w) (lerp 409600.0 40960.0 f0-41))
|
||||
)
|
||||
)
|
||||
)
|
||||
(else
|
||||
(let ((v1-58 (-> self draw shadow-ctrl)))
|
||||
(logior! (-> v1-58 settings flags) (shadow-flags disable-draw))
|
||||
)
|
||||
0
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(else
|
||||
(let ((v1-61 (-> self draw shadow-ctrl)))
|
||||
(logior! (-> v1-61 settings flags) (shadow-flags disable-draw))
|
||||
)
|
||||
0
|
||||
)
|
||||
)
|
||||
(ja-post)
|
||||
(none)
|
||||
)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defstate die (intro-flamer)
|
||||
:virtual #t
|
||||
:code (behavior ()
|
||||
(suspend)
|
||||
(cleanup-for-death self)
|
||||
(none)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for method 22 of type intro-flamer
|
||||
;; WARN: Return type mismatch object vs path-control.
|
||||
(defmethod intro-flamer-method-22 intro-flamer ((obj intro-flamer))
|
||||
(the-as path-control (send-event (ppointer->process (-> obj parent)) 'path (-> obj id)))
|
||||
)
|
||||
|
||||
;; definition for method 11 of type intro-flamer
|
||||
;; WARN: Return type mismatch object vs none.
|
||||
(defmethod init-from-entity! intro-flamer ((obj intro-flamer) (arg0 entity-actor))
|
||||
"Typically the method that does the initial setup on the process, potentially using the [[entity-actor]] provided as part of that.
|
||||
This commonly includes things such as:
|
||||
- stack size
|
||||
- collision information
|
||||
- loading the skeleton group / bones
|
||||
- sounds"
|
||||
(set! (-> obj root) (new 'process 'trsqv))
|
||||
(process-drawable-from-entity! obj arg0)
|
||||
(initialize-skeleton
|
||||
obj
|
||||
(the-as skeleton-group (art-group-get-by-name *level* "skel-intro-flamer" (the-as (pointer uint32) #f)))
|
||||
(the-as pair 0)
|
||||
)
|
||||
(go (method-of-object obj idle))
|
||||
(none)
|
||||
)
|
||||
|
||||
;; definition for function intro-flamer-init-by-other
|
||||
;; INFO: Used lq/sq
|
||||
;; WARN: Return type mismatch object vs none.
|
||||
(defbehavior intro-flamer-init-by-other intro-flamer ((arg0 int) (arg1 path-control) (arg2 vector))
|
||||
(set! (-> self root) (new 'process 'trsqv))
|
||||
(initialize-skeleton
|
||||
self
|
||||
(the-as skeleton-group (art-group-get-by-name *level* "skel-intro-flamer" (the-as (pointer uint32) #f)))
|
||||
(the-as pair 0)
|
||||
)
|
||||
(set! (-> self draw force-lod) 2)
|
||||
(set! (-> self id) arg0)
|
||||
(set! (-> self path-u) 0.0)
|
||||
(set! (-> self path-du) (rand-vu-float-range 0.15 0.32))
|
||||
(set! (-> self z-rot) 0.0)
|
||||
(set! (-> self flit-timer) (the-as uint (-> self clock frame-counter)))
|
||||
(set! (-> self flit-interval) (the-as uint 0))
|
||||
(vector-reset! (-> self flit-prev-offset))
|
||||
(vector-reset! (-> self flit-next-offset))
|
||||
(set! (-> self flit-factor) 0.0)
|
||||
(get-point-in-path! arg1 (-> self root trans) 0.0 'interp)
|
||||
(let ((s4-1 (new 'stack-no-clear 'vector)))
|
||||
(displacement-between-points-at-percent-normalized! arg1 s4-1 0.0)
|
||||
(forward-up-nopitch->quaternion (-> self root quat) s4-1 *up-vector*)
|
||||
)
|
||||
(set! (-> self draw shadow-ctrl)
|
||||
(new 'process 'shadow-control 0.0 0.0 614400.0 (shadow-flags shdf03) 491520.0)
|
||||
)
|
||||
(set! (-> self draw light-index) (the-as uint 30))
|
||||
(set! (-> self average-dir quad) (-> arg2 quad))
|
||||
(go-virtual idle)
|
||||
(none)
|
||||
)
|
||||
|
||||
;; definition of type metalhead-spawner
|
||||
(deftype metalhead-spawner (process)
|
||||
((path-tbl path-control 19 :offset-assert 128)
|
||||
(init-pos vector :inline :offset-assert 208)
|
||||
(average-dir vector :inline :offset-assert 224)
|
||||
)
|
||||
:heap-base #x70
|
||||
:method-count-assert 17
|
||||
:size-assert #xf0
|
||||
:flag-assert #x11007000f0
|
||||
(:methods
|
||||
(idle () _type_ :state 14)
|
||||
(active () _type_ :state 15)
|
||||
(die () _type_ :state 16)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for method 3 of type metalhead-spawner
|
||||
(defmethod inspect metalhead-spawner ((obj metalhead-spawner))
|
||||
(when (not obj)
|
||||
(set! obj obj)
|
||||
(goto cfg-4)
|
||||
)
|
||||
(let ((t9-0 (method-of-type process inspect)))
|
||||
(t9-0 obj)
|
||||
)
|
||||
(format #t "~2Tpath-tbl[19] @ #x~X~%" (-> obj path-tbl))
|
||||
(format #t "~2Tinit-pos: #<vector @ #x~X>~%" (-> obj init-pos))
|
||||
(format #t "~2Taverage-dir: #<vector @ #x~X>~%" (-> obj average-dir))
|
||||
(label cfg-4)
|
||||
obj
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defstate idle (metalhead-spawner)
|
||||
:virtual #t
|
||||
:event (behavior ((proc process) (arg1 int) (event-type symbol) (event event-message-block))
|
||||
(case event-type
|
||||
(('trigger)
|
||||
(go-virtual active)
|
||||
)
|
||||
(('path)
|
||||
(-> self path-tbl (-> event param 0))
|
||||
)
|
||||
)
|
||||
)
|
||||
:code (the-as (function none :behavior metalhead-spawner) sleep-code)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defstate active (metalhead-spawner)
|
||||
:virtual #t
|
||||
:event (behavior ((proc process) (arg1 int) (event-type symbol) (event event-message-block))
|
||||
(case event-type
|
||||
(('untrigger)
|
||||
(go-virtual idle)
|
||||
)
|
||||
(('die)
|
||||
(go-virtual die)
|
||||
)
|
||||
(('path)
|
||||
(-> self path-tbl (-> event param 0))
|
||||
)
|
||||
)
|
||||
)
|
||||
:code (behavior ()
|
||||
(let ((gp-0 0))
|
||||
(until #f
|
||||
(set! gp-0 (mod (+ gp-0 (rand-vu-int-range 1 6)) 19))
|
||||
(let ((s5-0 (get-process *default-dead-pool* intro-flamer #x4000)))
|
||||
(when s5-0
|
||||
(let ((t9-2 (method-of-type process activate)))
|
||||
(t9-2 s5-0 self (symbol->string (-> intro-flamer symbol)) (the-as pointer #x70004000))
|
||||
)
|
||||
(run-now-in-process s5-0 intro-flamer-init-by-other gp-0 (-> self path-tbl gp-0) (-> self average-dir))
|
||||
(-> s5-0 ppointer)
|
||||
)
|
||||
)
|
||||
(let ((s5-1 (the int (* 300.0 (rand-vu-float-range 0.03 0.08))))
|
||||
(s4-0 (-> self clock frame-counter))
|
||||
)
|
||||
(until (>= (- (-> self clock frame-counter) s4-0) s5-1)
|
||||
(suspend)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
#f
|
||||
(none)
|
||||
)
|
||||
:post (behavior ()
|
||||
(dotimes (gp-0 19)
|
||||
(debug-draw (-> self path-tbl gp-0))
|
||||
)
|
||||
(none)
|
||||
)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defstate die (metalhead-spawner)
|
||||
:virtual #t
|
||||
:code (behavior ()
|
||||
(let ((gp-0 (-> self child)))
|
||||
(while gp-0
|
||||
(send-event (ppointer->process gp-0) 'die)
|
||||
(set! gp-0 (-> gp-0 0 brother))
|
||||
)
|
||||
)
|
||||
(while (-> self child)
|
||||
(suspend)
|
||||
)
|
||||
(process-entity-status! self (entity-perm-status dead) #t)
|
||||
(none)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for method 7 of type metalhead-spawner
|
||||
;; WARN: Return type mismatch process vs metalhead-spawner.
|
||||
(defmethod relocate metalhead-spawner ((obj metalhead-spawner) (arg0 int))
|
||||
(dotimes (v1-0 19)
|
||||
(if (nonzero? (-> obj path-tbl v1-0))
|
||||
(&+! (-> obj path-tbl v1-0) arg0)
|
||||
)
|
||||
)
|
||||
(the-as
|
||||
metalhead-spawner
|
||||
((the-as (function process int process) (find-parent-method metalhead-spawner 7)) obj arg0)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for method 11 of type metalhead-spawner
|
||||
;; INFO: Used lq/sq
|
||||
;; WARN: Return type mismatch object vs none.
|
||||
(defmethod init-from-entity! metalhead-spawner ((obj metalhead-spawner) (arg0 entity-actor))
|
||||
"Typically the method that does the initial setup on the process, potentially using the [[entity-actor]] provided as part of that.
|
||||
This commonly includes things such as:
|
||||
- stack size
|
||||
- collision information
|
||||
- loading the skeleton group / bones
|
||||
- sounds"
|
||||
(set! (-> obj init-pos quad) (-> arg0 extra trans quad))
|
||||
(vector-reset! (-> obj average-dir))
|
||||
(dotimes (s5-0 19)
|
||||
(let ((s4-0 (new 'process 'curve-control obj 'path (the float (+ s5-0 1)))))
|
||||
(set! (-> obj path-tbl s5-0) s4-0)
|
||||
(logior! (-> s4-0 flags) (path-control-flag display draw-line draw-point draw-text))
|
||||
(let* ((s3-0 (get-point-at-percent-along-path! s4-0 (new 'stack-no-clear 'vector) 0.0 'interp))
|
||||
(v1-10 (get-point-at-percent-along-path! s4-0 (new 'stack-no-clear 'vector) 1.0 'interp))
|
||||
(s4-2 (vector-! (new 'stack-no-clear 'vector) v1-10 s3-0))
|
||||
)
|
||||
(vector-normalize! s4-2 1.0)
|
||||
(vector+! (-> obj average-dir) (-> obj average-dir) s4-2)
|
||||
)
|
||||
)
|
||||
)
|
||||
(vector-normalize! (-> obj average-dir) 1.0)
|
||||
(go (method-of-object obj idle))
|
||||
(none)
|
||||
)
|
||||
|
||||
;; definition of type vil-windmill-sail
|
||||
(deftype vil-windmill-sail (process-drawable)
|
||||
()
|
||||
:heap-base #x50
|
||||
:method-count-assert 21
|
||||
:size-assert #xc8
|
||||
:flag-assert #x15005000c8
|
||||
(:methods
|
||||
(idle () _type_ :state 20)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for method 3 of type vil-windmill-sail
|
||||
(defmethod inspect vil-windmill-sail ((obj vil-windmill-sail))
|
||||
(when (not obj)
|
||||
(set! obj obj)
|
||||
(goto cfg-4)
|
||||
)
|
||||
(let ((t9-0 (method-of-type process-drawable inspect)))
|
||||
(t9-0 obj)
|
||||
)
|
||||
(label cfg-4)
|
||||
obj
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defskelgroup skel-vil-windmill-sail vil-windmill-sail vil-windmill-sail-lod0-jg vil-windmill-sail-idle-ja
|
||||
((vil-windmill-sail-lod0-mg (meters 999999)))
|
||||
:bounds (static-spherem 0 0 0 25)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defstate idle (vil-windmill-sail)
|
||||
:virtual #t
|
||||
:code (behavior ()
|
||||
(until #f
|
||||
(ja-no-eval :group! (ja-group)
|
||||
:num! (seek! (the float (+ (-> (ja-group) frames num-frames) -1)))
|
||||
:frame-num 0.0
|
||||
)
|
||||
(until (ja-done? 0)
|
||||
(suspend)
|
||||
(ja :num! (seek!))
|
||||
)
|
||||
)
|
||||
#f
|
||||
(none)
|
||||
)
|
||||
:post (the-as (function none :behavior vil-windmill-sail) ja-post)
|
||||
)
|
||||
|
||||
;; definition for method 11 of type vil-windmill-sail
|
||||
;; WARN: Return type mismatch object vs none.
|
||||
(defmethod init-from-entity! vil-windmill-sail ((obj vil-windmill-sail) (arg0 entity-actor))
|
||||
"Typically the method that does the initial setup on the process, potentially using the [[entity-actor]] provided as part of that.
|
||||
This commonly includes things such as:
|
||||
- stack size
|
||||
- collision information
|
||||
- loading the skeleton group / bones
|
||||
- sounds"
|
||||
(set! (-> obj root) (new 'process 'trsqv))
|
||||
(process-drawable-from-entity! obj arg0)
|
||||
(initialize-skeleton
|
||||
obj
|
||||
(the-as skeleton-group (art-group-get-by-name *level* "skel-vil-windmill-sail" (the-as (pointer uint32) #f)))
|
||||
(the-as pair 0)
|
||||
)
|
||||
(go (method-of-object obj idle))
|
||||
(none)
|
||||
)
|
||||
|
||||
|
||||
|
||||
|
||||
+3079
File diff suppressed because it is too large
Load Diff
+496
@@ -0,0 +1,496 @@
|
||||
;;-*-Lisp-*-
|
||||
(in-package goal)
|
||||
|
||||
;; definition for symbol *slime-clut*, type clut16x16
|
||||
(define *slime-clut* (new 'static 'clut16x16 :clut (new 'static 'array rgba 256
|
||||
(new 'static 'rgba :r #x52 :g #x52 :b #x13 :a #x80)
|
||||
(new 'static 'rgba :r #x52 :g #x52 :b #x13 :a #x80)
|
||||
(new 'static 'rgba :r #x52 :g #x52 :b #x13 :a #x80)
|
||||
(new 'static 'rgba :r #x52 :g #x52 :b #x13 :a #x80)
|
||||
(new 'static 'rgba :r #x52 :g #x52 :b #x13 :a #x80)
|
||||
(new 'static 'rgba :r #x52 :g #x52 :b #x13 :a #x80)
|
||||
(new 'static 'rgba :r #x52 :g #x52 :b #x13 :a #x80)
|
||||
(new 'static 'rgba :r #x52 :g #x52 :b #x13 :a #x80)
|
||||
(new 'static 'rgba :r #x52 :g #x52 :b #x13 :a #x80)
|
||||
(new 'static 'rgba :r #x52 :g #x52 :b #x13 :a #x80)
|
||||
(new 'static 'rgba :r #x52 :g #x52 :b #x13 :a #x80)
|
||||
(new 'static 'rgba :r #x52 :g #x52 :b #x13 :a #x80)
|
||||
(new 'static 'rgba :r #x52 :g #x52 :b #x13 :a #x80)
|
||||
(new 'static 'rgba :r #x52 :g #x52 :b #x13 :a #x80)
|
||||
(new 'static 'rgba :r #x52 :g #x52 :b #x13 :a #x80)
|
||||
(new 'static 'rgba :r #x52 :g #x52 :b #x13 :a #x80)
|
||||
(new 'static 'rgba :r #x52 :g #x52 :b #x13 :a #x80)
|
||||
(new 'static 'rgba :r #x52 :g #x52 :b #x13 :a #x80)
|
||||
(new 'static 'rgba :r #x52 :g #x52 :b #x13 :a #x80)
|
||||
(new 'static 'rgba :r #x52 :g #x52 :b #x13 :a #x80)
|
||||
(new 'static 'rgba :r #x52 :g #x52 :b #x13 :a #x80)
|
||||
(new 'static 'rgba :r #x52 :g #x52 :b #x13 :a #x80)
|
||||
(new 'static 'rgba :r #x52 :g #x52 :b #x13 :a #x80)
|
||||
(new 'static 'rgba :r #x52 :g #x52 :b #x13 :a #x80)
|
||||
(new 'static 'rgba :r #x52 :g #x52 :b #x13 :a #x80)
|
||||
(new 'static 'rgba :r #x52 :g #x52 :b #x13 :a #x80)
|
||||
(new 'static 'rgba :r #x52 :g #x52 :b #x13 :a #x80)
|
||||
(new 'static 'rgba :r #x52 :g #x52 :b #x13 :a #x80)
|
||||
(new 'static 'rgba :r #x52 :g #x52 :b #x13 :a #x80)
|
||||
(new 'static 'rgba :r #x52 :g #x52 :b #x13 :a #x80)
|
||||
(new 'static 'rgba :r #x52 :g #x52 :b #x13 :a #x80)
|
||||
(new 'static 'rgba :r #x52 :g #x52 :b #x13 :a #x80)
|
||||
(new 'static 'rgba :r #x53 :g #x55 :b #x13 :a #x80)
|
||||
(new 'static 'rgba :r #x55 :g #x58 :b #x13 :a #x80)
|
||||
(new 'static 'rgba :r #x57 :g #x5c :b #x13 :a #x80)
|
||||
(new 'static 'rgba :r #x59 :g #x5f :b #x13 :a #x80)
|
||||
(new 'static 'rgba :r #x5b :g #x63 :b #x13 :a #x80)
|
||||
(new 'static 'rgba :r #x5c :g #x66 :b #x13 :a #x80)
|
||||
(new 'static 'rgba :r #x5e :g #x69 :b #x13 :a #x80)
|
||||
(new 'static 'rgba :r #x60 :g #x6d :b #x13 :a #x80)
|
||||
(new 'static 'rgba :r #x60 :g #x6d :b #x14 :a #x80)
|
||||
(new 'static 'rgba :r #x5e :g #x69 :b #x13 :a #x80)
|
||||
(new 'static 'rgba :r #x5c :g #x66 :b #x13 :a #x80)
|
||||
(new 'static 'rgba :r #x5a :g #x62 :b #x13 :a #x80)
|
||||
(new 'static 'rgba :r #x59 :g #x5f :b #x13 :a #x80)
|
||||
(new 'static 'rgba :r #x57 :g #x5c :b #x13 :a #x80)
|
||||
(new 'static 'rgba :r #x55 :g #x58 :b #x13 :a #x80)
|
||||
(new 'static 'rgba :r #x52 :g #x52 :b #x13 :a #x80)
|
||||
(new 'static 'rgba :r #x52 :g #x52 :b #x13 :a #x80)
|
||||
(new 'static 'rgba :r #x52 :g #x53 :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x53 :g #x54 :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x54 :g #x55 :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x55 :g #x56 :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x55 :g #x58 :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x56 :g #x59 :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x57 :g #x5a :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x58 :g #x5b :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x58 :g #x5c :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x59 :g #x5e :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x5a :g #x5f :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x5b :g #x60 :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x5c :g #x61 :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x5c :g #x62 :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x5d :g #x64 :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x5e :g #x65 :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x5f :g #x66 :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x5f :g #x67 :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x60 :g #x68 :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x61 :g #x6a :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x62 :g #x6b :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x63 :g #x6c :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x63 :g #x6d :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x64 :g #x6e :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x65 :g #x70 :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x66 :g #x71 :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x66 :g #x72 :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x67 :g #x73 :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x68 :g #x74 :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x69 :g #x76 :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x69 :g #x77 :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x6c :g #x7c :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x73 :g #x86 :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x7a :g #x91 :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x81 :g #x9c :b #x11 :a #x80)
|
||||
(new 'static 'rgba :r #x88 :g #xa6 :b #x11 :a #x80)
|
||||
(new 'static 'rgba :r #x8f :g #xb1 :b #x11 :a #x80)
|
||||
(new 'static 'rgba :r #x96 :g #xbc :b #x11 :a #x80)
|
||||
(new 'static 'rgba :r #x9e :g #xc7 :b #x11 :a #x80)
|
||||
(new 'static 'rgba :r #x9e :g #xc7 :b #x11 :a #x80)
|
||||
(new 'static 'rgba :r #x99 :g #xc0 :b #x11 :a #x80)
|
||||
(new 'static 'rgba :r #x94 :g #xb9 :b #x11 :a #x80)
|
||||
(new 'static 'rgba :r #x90 :g #xb2 :b #x11 :a #x80)
|
||||
(new 'static 'rgba :r #x8b :g #xab :b #x11 :a #x80)
|
||||
(new 'static 'rgba :r #x87 :g #xa4 :b #x11 :a #x80)
|
||||
(new 'static 'rgba :r #x82 :g #x9d :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x79 :g #x8f :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x77 :g #x8b :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x77 :g #x8d :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x78 :g #x8e :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x79 :g #x8f :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x7a :g #x90 :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x7a :g #x91 :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x7b :g #x93 :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x7c :g #x94 :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x7d :g #x95 :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x7e :g #x96 :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x7e :g #x97 :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x7f :g #x99 :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x80 :g #x9a :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x81 :g #x9b :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x81 :g #x9c :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x82 :g #x9d :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x83 :g #x9f :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x84 :g #xa0 :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x85 :g #xa1 :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x85 :g #xa2 :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x86 :g #xa3 :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x87 :g #xa5 :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x88 :g #xa6 :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x88 :g #xa7 :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x89 :g #xa8 :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x8a :g #xa9 :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x8b :g #xab :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x8b :g #xac :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x8c :g #xad :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x8d :g #xae :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x8e :g #xaf :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x8f :g #xb1 :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x8f :g #xb2 :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x92 :g #xb5 :b #x11 :a #x80)
|
||||
(new 'static 'rgba :r #x94 :g #xb9 :b #x11 :a #x80)
|
||||
(new 'static 'rgba :r #x96 :g #xbc :b #x11 :a #x80)
|
||||
(new 'static 'rgba :r #x99 :g #xbf :b #x11 :a #x80)
|
||||
(new 'static 'rgba :r #x9b :g #xc3 :b #x11 :a #x80)
|
||||
(new 'static 'rgba :r #x9d :g #xc6 :b #x11 :a #x80)
|
||||
(new 'static 'rgba :r #xa0 :g #xca :b #x11 :a #x80)
|
||||
(new 'static 'rgba :r #xa0 :g #xca :b #x11 :a #x80)
|
||||
(new 'static 'rgba :r #x9e :g #xc7 :b #x11 :a #x80)
|
||||
(new 'static 'rgba :r #x9c :g #xc4 :b #x11 :a #x80)
|
||||
(new 'static 'rgba :r #x9a :g #xc2 :b #x11 :a #x80)
|
||||
(new 'static 'rgba :r #x98 :g #xbf :b #x11 :a #x80)
|
||||
(new 'static 'rgba :r #x96 :g #xbd :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x94 :g #xba :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x90 :g #xb5 :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x90 :g #xb5 :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x8f :g #xb4 :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x8e :g #xb3 :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x8d :g #xb2 :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x8d :g #xb1 :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x8c :g #xb0 :b #x13 :a #x80)
|
||||
(new 'static 'rgba :r #x8b :g #xaf :b #x13 :a #x80)
|
||||
(new 'static 'rgba :r #x8a :g #xae :b #x13 :a #x80)
|
||||
(new 'static 'rgba :r #x8a :g #xae :b #x13 :a #x80)
|
||||
(new 'static 'rgba :r #x89 :g #xad :b #x13 :a #x80)
|
||||
(new 'static 'rgba :r #x88 :g #xac :b #x13 :a #x80)
|
||||
(new 'static 'rgba :r #x87 :g #xab :b #x13 :a #x80)
|
||||
(new 'static 'rgba :r #x87 :g #xaa :b #x13 :a #x80)
|
||||
(new 'static 'rgba :r #x86 :g #xa9 :b #x13 :a #x80)
|
||||
(new 'static 'rgba :r #x85 :g #xa8 :b #x13 :a #x80)
|
||||
(new 'static 'rgba :r #x84 :g #xa7 :b #x13 :a #x80)
|
||||
(new 'static 'rgba :r #x84 :g #xa7 :b #x13 :a #x80)
|
||||
(new 'static 'rgba :r #x83 :g #xa6 :b #x13 :a #x80)
|
||||
(new 'static 'rgba :r #x82 :g #xa5 :b #x14 :a #x80)
|
||||
(new 'static 'rgba :r #x81 :g #xa4 :b #x14 :a #x80)
|
||||
(new 'static 'rgba :r #x81 :g #xa3 :b #x14 :a #x80)
|
||||
(new 'static 'rgba :r #x80 :g #xa2 :b #x14 :a #x80)
|
||||
(new 'static 'rgba :r #x7f :g #xa1 :b #x14 :a #x80)
|
||||
(new 'static 'rgba :r #x7e :g #xa0 :b #x14 :a #x80)
|
||||
(new 'static 'rgba :r #x7e :g #xa0 :b #x14 :a #x80)
|
||||
(new 'static 'rgba :r #x7d :g #x9f :b #x14 :a #x80)
|
||||
(new 'static 'rgba :r #x7c :g #x9e :b #x14 :a #x80)
|
||||
(new 'static 'rgba :r #x7b :g #x9d :b #x14 :a #x80)
|
||||
(new 'static 'rgba :r #x7b :g #x9c :b #x14 :a #x80)
|
||||
(new 'static 'rgba :r #x7a :g #x9b :b #x14 :a #x80)
|
||||
(new 'static 'rgba :r #x79 :g #x9a :b #x14 :a #x80)
|
||||
(new 'static 'rgba :r #x79 :g #x9a :b #x15 :a #x80)
|
||||
(new 'static 'rgba :r #x79 :g #x9a :b #x15 :a #x80)
|
||||
(new 'static 'rgba :r #x7c :g #x9d :b #x14 :a #x80)
|
||||
(new 'static 'rgba :r #x7f :g #xa1 :b #x14 :a #x80)
|
||||
(new 'static 'rgba :r #x82 :g #xa5 :b #x14 :a #x80)
|
||||
(new 'static 'rgba :r #x85 :g #xa8 :b #x13 :a #x80)
|
||||
(new 'static 'rgba :r #x88 :g #xac :b #x13 :a #x80)
|
||||
(new 'static 'rgba :r #x8b :g #xb0 :b #x13 :a #x80)
|
||||
(new 'static 'rgba :r #x8e :g #xb3 :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x91 :g #xb7 :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x94 :g #xbb :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x97 :g #xbf :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x9a :g #xc2 :b #x11 :a #x80)
|
||||
(new 'static 'rgba :r #x9d :g #xc6 :b #x11 :a #x80)
|
||||
(new 'static 'rgba :r #xa0 :g #xca :b #x11 :a #x80)
|
||||
(new 'static 'rgba :r #xa3 :g #xcd :b #x10 :a #x80)
|
||||
(new 'static 'rgba :r #xa6 :g #xd1 :b #x10 :a #x80)
|
||||
(new 'static 'rgba :r #xac :g #xd9 :b #x10 :a #x80)
|
||||
(new 'static 'rgba :r #xab :g #xd8 :b #x10 :a #x80)
|
||||
(new 'static 'rgba :r #xaa :g #xd7 :b #x10 :a #x80)
|
||||
(new 'static 'rgba :r #xa9 :g #xd6 :b #x10 :a #x80)
|
||||
(new 'static 'rgba :r #xa8 :g #xd5 :b #x10 :a #x80)
|
||||
(new 'static 'rgba :r #xa8 :g #xd4 :b #x10 :a #x80)
|
||||
(new 'static 'rgba :r #xa7 :g #xd3 :b #x10 :a #x80)
|
||||
(new 'static 'rgba :r #xa6 :g #xd2 :b #x10 :a #x80)
|
||||
(new 'static 'rgba :r #xa5 :g #xd1 :b #x10 :a #x80)
|
||||
(new 'static 'rgba :r #xa4 :g #xd0 :b #x10 :a #x80)
|
||||
(new 'static 'rgba :r #xa4 :g #xcf :b #x10 :a #x80)
|
||||
(new 'static 'rgba :r #xa3 :g #xce :b #x10 :a #x80)
|
||||
(new 'static 'rgba :r #xa2 :g #xcd :b #x11 :a #x80)
|
||||
(new 'static 'rgba :r #xa1 :g #xcc :b #x11 :a #x80)
|
||||
(new 'static 'rgba :r #xa0 :g #xcb :b #x11 :a #x80)
|
||||
(new 'static 'rgba :r #xa0 :g #xca :b #x11 :a #x80)
|
||||
(new 'static 'rgba :r #x9f :g #xc9 :b #x11 :a #x80)
|
||||
(new 'static 'rgba :r #x9e :g #xc8 :b #x11 :a #x80)
|
||||
(new 'static 'rgba :r #x9d :g #xc7 :b #x11 :a #x80)
|
||||
(new 'static 'rgba :r #x9d :g #xc6 :b #x11 :a #x80)
|
||||
(new 'static 'rgba :r #x9c :g #xc5 :b #x11 :a #x80)
|
||||
(new 'static 'rgba :r #x9b :g #xc4 :b #x11 :a #x80)
|
||||
(new 'static 'rgba :r #x9a :g #xc3 :b #x11 :a #x80)
|
||||
(new 'static 'rgba :r #x99 :g #xc2 :b #x11 :a #x80)
|
||||
(new 'static 'rgba :r #x99 :g #xc1 :b #x11 :a #x80)
|
||||
(new 'static 'rgba :r #x98 :g #xc0 :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x97 :g #xbf :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x96 :g #xbe :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x95 :g #xbd :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x95 :g #xbc :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x94 :g #xbb :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x93 :g #xba :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x92 :g #xb9 :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x91 :g #xb8 :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x91 :g #xb7 :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x90 :g #xb6 :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x8f :g #xb5 :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x8e :g #xb4 :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x8e :g #xb3 :b #x13 :a #x80)
|
||||
(new 'static 'rgba :r #x8c :g #xb1 :b #x13 :a #x80)
|
||||
(new 'static 'rgba :r #x8c :g #xb1 :b #x13 :a #x80)
|
||||
(new 'static 'rgba :r #x90 :g #xb6 :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x94 :g #xba :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x97 :g #xbf :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x9b :g #xc3 :b #x11 :a #x80)
|
||||
(new 'static 'rgba :r #x9e :g #xc8 :b #x11 :a #x80)
|
||||
(new 'static 'rgba :r #xa2 :g #xcc :b #x11 :a #x80)
|
||||
(new 'static 'rgba :r #xa6 :g #xd1 :b #x11 :a #x80)
|
||||
(new 'static 'rgba :r #xa6 :g #xd1 :b #x11 :a #x80)
|
||||
(new 'static 'rgba :r #xa3 :g #xcd :b #x11 :a #x80)
|
||||
(new 'static 'rgba :r #xa0 :g #xca :b #x11 :a #x80)
|
||||
(new 'static 'rgba :r #x9d :g #xc6 :b #x11 :a #x80)
|
||||
(new 'static 'rgba :r #x9b :g #xc3 :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x98 :g #xbf :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x95 :g #xbc :b #x12 :a #x80)
|
||||
(new 'static 'rgba :r #x90 :g #xb5 :b #x13 :a #x80)
|
||||
(new 'static 'rgba :r #x90 :g #xb5 :b #x13 :a #x80)
|
||||
(new 'static 'rgba :r #x90 :g #xb5 :b #x13 :a #x80)
|
||||
(new 'static 'rgba :r #x90 :g #xb5 :b #x13 :a #x80)
|
||||
(new 'static 'rgba :r #x90 :g #xb5 :b #x13 :a #x80)
|
||||
(new 'static 'rgba :r #x90 :g #xb5 :b #x13 :a #x80)
|
||||
(new 'static 'rgba :r #x90 :g #xb5 :b #x13 :a #x80)
|
||||
(new 'static 'rgba :r #x90 :g #xb5 :b #x13 :a #x80)
|
||||
(new 'static 'rgba :r #x90 :g #xb5 :b #x13 :a #x80)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for symbol *toxic-slime-texture-anim-array*, type (texture-anim-array texture-anim)
|
||||
(define *toxic-slime-texture-anim-array*
|
||||
(the-as (texture-anim-array texture-anim)
|
||||
(new 'static 'texture-anim-array :type texture-anim
|
||||
(new 'static 'texture-anim
|
||||
:func 'texture-anim-alpha-ramp-clut-upload
|
||||
:init-func 'texture-anim-alpha-ramp-clut-init
|
||||
:tex #f
|
||||
:tex-name #f
|
||||
:extra (new 'static 'vector :x 28.0)
|
||||
:color (new 'static 'rgba :a #x80)
|
||||
:test (new 'static 'gs-test :ate #x1 :afail #x1 :zte #x1 :ztst (gs-ztest always))
|
||||
:alpha (new 'static 'gs-alpha :b #x1 :d #x1)
|
||||
)
|
||||
(new 'static 'texture-anim
|
||||
:num-layers #x2
|
||||
:func 'cloud-texture-anim-func
|
||||
:init-func 'dest-texture-init
|
||||
:tex #f
|
||||
:tex-name #f
|
||||
:extra (new 'static 'vector :x 16.0 :y 8.0)
|
||||
:color (new 'static 'rgba :a #x80)
|
||||
:frame-delta 300.0
|
||||
:frame-mod 600.0
|
||||
:test (new 'static 'gs-test :ate #x1 :afail #x1 :zte #x1 :ztst (gs-ztest always))
|
||||
:alpha (new 'static 'gs-alpha :b #x1 :d #x1)
|
||||
)
|
||||
(new 'static 'texture-anim
|
||||
:num-layers #x2
|
||||
:func 'cloud-texture-anim-func
|
||||
:init-func 'dest-texture-init
|
||||
:tex #f
|
||||
:tex-name #f
|
||||
:extra (new 'static 'vector :x 32.0 :y 9.0)
|
||||
:color (new 'static 'rgba :a #x80)
|
||||
:frame-delta 300.0
|
||||
:frame-mod 300.0
|
||||
:test (new 'static 'gs-test :ate #x1 :afail #x1 :zte #x1 :ztst (gs-ztest always))
|
||||
:alpha (new 'static 'gs-alpha :b #x1 :d #x1)
|
||||
)
|
||||
(new 'static 'texture-anim
|
||||
:num-layers #x2
|
||||
:func 'cloud-texture-anim-func
|
||||
:init-func 'dest-texture-init
|
||||
:tex #f
|
||||
:tex-name #f
|
||||
:extra (new 'static 'vector :x 64.0 :y 10.0)
|
||||
:color (new 'static 'rgba :a #x80)
|
||||
:frame-time 99.0
|
||||
:frame-delta 300.0
|
||||
:frame-mod 150.0
|
||||
:test (new 'static 'gs-test :ate #x1 :afail #x1 :zte #x1 :ztst (gs-ztest always))
|
||||
:alpha (new 'static 'gs-alpha :b #x1 :d #x1)
|
||||
)
|
||||
(new 'static 'texture-anim
|
||||
:num-layers #x2
|
||||
:func 'cloud-texture-anim-func
|
||||
:init-func 'dest-texture-init
|
||||
:tex #f
|
||||
:tex-name #f
|
||||
:extra (new 'static 'vector :x 128.0 :y 12.0)
|
||||
:color (new 'static 'rgba :a #x80)
|
||||
:frame-time 199.0
|
||||
:frame-delta 300.0
|
||||
:frame-mod 75.0
|
||||
:test (new 'static 'gs-test :ate #x1 :afail #x1 :zte #x1 :ztst (gs-ztest always))
|
||||
:alpha (new 'static 'gs-alpha :b #x1 :d #x1)
|
||||
)
|
||||
(new 'static 'texture-anim
|
||||
:num-layers #x4
|
||||
:func #f
|
||||
:init-func 'dest-texture-init
|
||||
:tex #f
|
||||
:tex-name #f
|
||||
:extra (new 'static 'vector :x 128.0 :y 20.0)
|
||||
:color (new 'static 'rgba :a #x80)
|
||||
:test (new 'static 'gs-test :ate #x1 :afail #x1 :zte #x1 :ztst (gs-ztest always))
|
||||
:alpha (new 'static 'gs-alpha :b #x1 :d #x1)
|
||||
)
|
||||
(new 'static 'texture-anim
|
||||
:num-layers #x1
|
||||
:func #f
|
||||
:init-func 'texture-anim-change-mt8h-init
|
||||
:tex #f
|
||||
:tex-name "cas-toxic-slime-dest"
|
||||
:extra (new 'static 'vector :x 28.0 :y 12.0 :z 128.0 :w 128.0)
|
||||
:color (new 'static 'rgba :a #x80)
|
||||
:test (new 'static 'gs-test :ate #x1 :afail #x1 :zte #x1 :ztst (gs-ztest always))
|
||||
:alpha (new 'static 'gs-alpha :b #x1 :d #x1)
|
||||
)
|
||||
(new 'static 'texture-anim
|
||||
:func 'texture-anim-slime-clut-upload
|
||||
:init-func 'texture-anim-slime-clut-init
|
||||
:tex #f
|
||||
:tex-name #f
|
||||
:extra (new 'static 'vector :x 28.0)
|
||||
:color (new 'static 'rgba :a #x80)
|
||||
:test (new 'static 'gs-test :ate #x1 :afail #x1 :zte #x1 :ztst (gs-ztest always))
|
||||
:alpha (new 'static 'gs-alpha :b #x1 :d #x1)
|
||||
)
|
||||
(new 'static 'texture-anim
|
||||
:num-layers #x1
|
||||
:func #f
|
||||
:init-func 'texture-anim-overide-size-init
|
||||
:tex #f
|
||||
:tex-name "cas-toxic-slime-scroll-dest"
|
||||
:extra (new 'static 'vector :x 64.0 :y 64.0)
|
||||
:color (new 'static 'rgba :a #x80)
|
||||
:frame-delta 300.0
|
||||
:frame-mod 1200.0
|
||||
:test (new 'static 'gs-test :ate #x1 :afail #x1 :zte #x1 :ztst (gs-ztest always))
|
||||
:alpha (new 'static 'gs-alpha :b #x1 :d #x1)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for function set-slime-alphas
|
||||
(defun set-slime-alphas ((arg0 float) (arg1 float) (arg2 float) (arg3 float))
|
||||
(set! (-> *toxic-slime-texture-anim-array* array-data 5 data 0 start-color w) arg0)
|
||||
(set! (-> *toxic-slime-texture-anim-array* array-data 5 data 1 start-color w) arg1)
|
||||
(set! (-> *toxic-slime-texture-anim-array* array-data 5 data 2 start-color w) arg2)
|
||||
(set! (-> *toxic-slime-texture-anim-array* array-data 5 data 3 start-color w) arg3)
|
||||
)
|
||||
|
||||
;; definition for function get-slime-alphas
|
||||
;; WARN: Return type mismatch object vs none.
|
||||
(defun get-slime-alphas ()
|
||||
(format
|
||||
0
|
||||
"~f ~f ~f ~f~%"
|
||||
(-> *toxic-slime-texture-anim-array* array-data 5 data 0 start-color w)
|
||||
(-> *toxic-slime-texture-anim-array* array-data 5 data 1 start-color w)
|
||||
(-> *toxic-slime-texture-anim-array* array-data 5 data 2 start-color w)
|
||||
(-> *toxic-slime-texture-anim-array* array-data 5 data 3 start-color w)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
|
||||
;; definition for function set-slime-speed
|
||||
(defun set-slime-speed ((arg0 float))
|
||||
(let ((v1-0 *toxic-slime-texture-anim-array*)
|
||||
(f0-3 (the float (the int (* 300.0 arg0))))
|
||||
)
|
||||
(dotimes (a0-1 4)
|
||||
(let ((a1-4 (-> v1-0 array-data (+ a0-1 1))))
|
||||
(set! (-> a1-4 frame-mod) f0-3)
|
||||
(set! (-> a1-4 data 0 end-time) f0-3)
|
||||
(set! (-> a1-4 data 1 end-time) f0-3)
|
||||
)
|
||||
(set! f0-3 (* 0.5 f0-3))
|
||||
)
|
||||
)
|
||||
#f
|
||||
)
|
||||
|
||||
;; definition for symbol *cas-conveyor-texture-anim-array*, type (texture-anim-array texture-anim)
|
||||
(define *cas-conveyor-texture-anim-array*
|
||||
(the-as (texture-anim-array texture-anim)
|
||||
(new 'static 'texture-anim-array :type texture-anim
|
||||
(new 'static 'texture-anim
|
||||
:num-layers #x1
|
||||
:func #f
|
||||
:init-func 'texture-anim-overide-size-init
|
||||
:tex #f
|
||||
:tex-name "cas-conveyor-dest"
|
||||
:extra (new 'static 'vector :x 64.0 :y 32.0)
|
||||
:color (new 'static 'rgba :a #x80)
|
||||
:frame-delta 555.0
|
||||
:frame-mod 300.0
|
||||
:test (new 'static 'gs-test :ate #x1 :afail #x1 :zte #x1 :ztst (gs-ztest always))
|
||||
:alpha (new 'static 'gs-alpha :b #x1 :d #x1)
|
||||
:clamp (new 'static 'gs-clamp :wms (gs-tex-wrap-mode clamp) :wmt (gs-tex-wrap-mode clamp))
|
||||
)
|
||||
(new 'static 'texture-anim
|
||||
:num-layers #x1
|
||||
:func #f
|
||||
:init-func 'texture-anim-overide-size-init
|
||||
:tex #f
|
||||
:tex-name "cas-conveyor-dest-01"
|
||||
:extra (new 'static 'vector :x 64.0 :y 32.0)
|
||||
:color (new 'static 'rgba :a #x80)
|
||||
:frame-delta 555.0
|
||||
:frame-mod 300.0
|
||||
:test (new 'static 'gs-test :ate #x1 :afail #x1 :zte #x1 :ztst (gs-ztest always))
|
||||
:alpha (new 'static 'gs-alpha :b #x1 :d #x1)
|
||||
:clamp (new 'static 'gs-clamp :wms (gs-tex-wrap-mode clamp) :wmt (gs-tex-wrap-mode clamp))
|
||||
)
|
||||
(new 'static 'texture-anim
|
||||
:num-layers #x1
|
||||
:func #f
|
||||
:init-func 'texture-anim-overide-size-init
|
||||
:tex #f
|
||||
:tex-name "cas-conveyor-dest-02"
|
||||
:extra (new 'static 'vector :x 64.0 :y 32.0)
|
||||
:color (new 'static 'rgba :a #x80)
|
||||
:frame-delta 555.0
|
||||
:frame-mod 300.0
|
||||
:test (new 'static 'gs-test :ate #x1 :afail #x1 :zte #x1 :ztst (gs-ztest always))
|
||||
:alpha (new 'static 'gs-alpha :b #x1 :d #x1)
|
||||
:clamp (new 'static 'gs-clamp :wms (gs-tex-wrap-mode clamp) :wmt (gs-tex-wrap-mode clamp))
|
||||
)
|
||||
(new 'static 'texture-anim
|
||||
:num-layers #x1
|
||||
:func #f
|
||||
:init-func 'texture-anim-overide-size-init
|
||||
:tex #f
|
||||
:tex-name "cas-conveyor-dest-03"
|
||||
:extra (new 'static 'vector :x 64.0 :y 32.0)
|
||||
:color (new 'static 'rgba :a #x80)
|
||||
:frame-delta 555.0
|
||||
:frame-mod 300.0
|
||||
:test (new 'static 'gs-test :ate #x1 :afail #x1 :zte #x1 :ztst (gs-ztest always))
|
||||
:alpha (new 'static 'gs-alpha :b #x1 :d #x1)
|
||||
:clamp (new 'static 'gs-clamp :wms (gs-tex-wrap-mode clamp) :wmt (gs-tex-wrap-mode clamp))
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for function set-conveyor-speed!
|
||||
;; WARN: Return type mismatch int vs none.
|
||||
(defun set-conveyor-speed! ((arg0 int) (arg1 float))
|
||||
(set! (-> *cas-conveyor-texture-anim-array* array-data arg0 frame-delta) (* 0.018066408 arg1))
|
||||
0
|
||||
(none)
|
||||
)
|
||||
|
||||
|
||||
|
||||
|
||||
+1424
File diff suppressed because it is too large
Load Diff
+1287
File diff suppressed because it is too large
Load Diff
+279
@@ -0,0 +1,279 @@
|
||||
;;-*-Lisp-*-
|
||||
(in-package goal)
|
||||
|
||||
;; definition of type pal-lowrez-throne
|
||||
(deftype pal-lowrez-throne (med-res-level)
|
||||
()
|
||||
:heap-base #x60
|
||||
:method-count-assert 21
|
||||
:size-assert #xd4
|
||||
:flag-assert #x15006000d4
|
||||
)
|
||||
|
||||
;; definition for method 3 of type pal-lowrez-throne
|
||||
(defmethod inspect pal-lowrez-throne ((obj pal-lowrez-throne))
|
||||
(when (not obj)
|
||||
(set! obj obj)
|
||||
(goto cfg-4)
|
||||
)
|
||||
(let ((t9-0 (method-of-type med-res-level inspect)))
|
||||
(t9-0 obj)
|
||||
)
|
||||
(label cfg-4)
|
||||
obj
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defskelgroup skel-pal-lowrez-throne pal-lowrez-throne pal-lowrez-throne-lod0-jg pal-lowrez-throne-idle-ja
|
||||
((pal-lowrez-throne-lod0-mg (meters 999999)))
|
||||
:bounds (static-spherem -5 40 -10 75)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defpartgroup group-pal-prong-energy
|
||||
:id 1111
|
||||
:bounds (static-bspherem 0 0 0 160)
|
||||
:parts ((sp-item 4762 :fade-after (meters 80) :falloff-to (meters 80))
|
||||
(sp-item 4763 :fade-after (meters 220) :flags (bit6))
|
||||
)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defpart 4762
|
||||
:init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #xc9 :page #xc))
|
||||
(sp-flt spt-num 2.0)
|
||||
(sp-flt spt-scale-x (meters 0))
|
||||
(sp-flt spt-rot-z (degrees 90.0))
|
||||
(sp-copy-from-other spt-scale-y -4)
|
||||
(sp-flt spt-r 255.0)
|
||||
(sp-flt spt-g 255.0)
|
||||
(sp-flt spt-b 255.0)
|
||||
(sp-flt spt-a 32.0)
|
||||
(sp-flt spt-vel-y (meters -0.03))
|
||||
(sp-rnd-flt spt-scalevel-x (meters 0.005) (meters 0.005) 1.0)
|
||||
(sp-rnd-flt spt-rotvel-z (degrees -1.2) (degrees 2.4) 1.0)
|
||||
(sp-copy-from-other spt-scalevel-y -4)
|
||||
(sp-flt spt-fade-r -0.98)
|
||||
(sp-flt spt-fade-g -0.98)
|
||||
(sp-flt spt-fade-a 0.19393939)
|
||||
(sp-int spt-timer 250)
|
||||
(sp-cpuinfo-flags sp-cpuinfo-flag-2 sp-cpuinfo-flag-3)
|
||||
(sp-int spt-next-time 165)
|
||||
(sp-launcher-by-id spt-next-launcher 4764)
|
||||
(sp-rnd-flt spt-conerot-x (degrees 0.0) (degrees 3600.0) 1.0)
|
||||
(sp-rnd-flt spt-conerot-y (degrees 0.0) (degrees 3600.0) 1.0)
|
||||
(sp-flt spt-conerot-radius (meters 6))
|
||||
)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defpart 4764
|
||||
:init-specs ((sp-flt spt-fade-a -0.7529412) (sp-flt spt-friction 0.1))
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defpart 4763
|
||||
:init-specs ((sp-tex spt-texture (new 'static 'texture-id :index #xca :page #xc))
|
||||
(sp-flt spt-num 1.0)
|
||||
(sp-flt spt-scale-x (meters 8))
|
||||
(sp-flt spt-rot-x 1228.8)
|
||||
(sp-copy-from-other spt-scale-y -4)
|
||||
(sp-rnd-flt spt-r 0.0 64.0 1.0)
|
||||
(sp-flt spt-g 128.0)
|
||||
(sp-flt spt-b 255.0)
|
||||
(sp-flt spt-a 64.0)
|
||||
(sp-flt spt-omega 822476.8)
|
||||
(sp-int spt-timer 5)
|
||||
(sp-cpuinfo-flags sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow)
|
||||
(sp-flt spt-userdata 8192.0)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition of type pal-prong
|
||||
(deftype pal-prong (process-drawable)
|
||||
((root-override collide-shape :offset 128)
|
||||
)
|
||||
:heap-base #x50
|
||||
:method-count-assert 23
|
||||
:size-assert #xc8
|
||||
:flag-assert #x17005000c8
|
||||
(:methods
|
||||
(idle () _type_ :state 20)
|
||||
(break-it () _type_ :state 21)
|
||||
(broken () _type_ :state 22)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for method 3 of type pal-prong
|
||||
(defmethod inspect pal-prong ((obj pal-prong))
|
||||
(when (not obj)
|
||||
(set! obj obj)
|
||||
(goto cfg-4)
|
||||
)
|
||||
(let ((t9-0 (method-of-type process-drawable inspect)))
|
||||
(t9-0 obj)
|
||||
)
|
||||
(label cfg-4)
|
||||
obj
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defskelgroup skel-pal-prong pal-prong pal-prong-lod0-jg pal-prong-idle-ja
|
||||
((pal-prong-lod0-mg (meters 999999)))
|
||||
:bounds (static-spherem 0 5 0 5.5)
|
||||
:origin-joint-index 3
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defskelgroup skel-pal-prong-explode pal-prong pal-prong-explode-lod0-jg pal-prong-explode-idle-ja
|
||||
((pal-prong-explode-lod0-mg (meters 999999)))
|
||||
:bounds (static-spherem 0 0 0 15)
|
||||
)
|
||||
|
||||
;; definition for symbol *pal-prong-exploder-params*, type joint-exploder-static-params
|
||||
(define *pal-prong-exploder-params*
|
||||
(new 'static 'joint-exploder-static-params
|
||||
:joints (new 'static 'boxed-array :type joint-exploder-static-joint-params
|
||||
(new 'static 'joint-exploder-static-joint-params :joint-index 3 :parent-joint-index -1)
|
||||
(new 'static 'joint-exploder-static-joint-params :joint-index 4 :parent-joint-index -1)
|
||||
(new 'static 'joint-exploder-static-joint-params :joint-index 5 :parent-joint-index -1)
|
||||
(new 'static 'joint-exploder-static-joint-params :joint-index 6 :parent-joint-index -1)
|
||||
(new 'static 'joint-exploder-static-joint-params :joint-index 7 :parent-joint-index -1)
|
||||
(new 'static 'joint-exploder-static-joint-params :joint-index 8 :parent-joint-index -1)
|
||||
(new 'static 'joint-exploder-static-joint-params :joint-index 9 :parent-joint-index -1)
|
||||
(new 'static 'joint-exploder-static-joint-params :joint-index 10 :parent-joint-index -1)
|
||||
(new 'static 'joint-exploder-static-joint-params :joint-index 11 :parent-joint-index -1)
|
||||
(new 'static 'joint-exploder-static-joint-params :joint-index 12 :parent-joint-index -1)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for method 11 of type pal-prong
|
||||
;; WARN: Return type mismatch object vs none.
|
||||
(defmethod init-from-entity! pal-prong ((obj pal-prong) (arg0 entity-actor))
|
||||
"Typically the method that does the initial setup on the process, potentially using the [[entity-actor]] provided as part of that.
|
||||
This commonly includes things such as:
|
||||
- stack size
|
||||
- collision information
|
||||
- loading the skeleton group / bones
|
||||
- sounds"
|
||||
(let ((s4-0 (new 'process 'collide-shape obj (collide-list-enum usually-hit-by-player))))
|
||||
(let ((s3-0 (new 'process 'collide-shape-prim-group s4-0 (the-as uint 2) 0)))
|
||||
(set! (-> s4-0 total-prims) (the-as uint 3))
|
||||
(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 20480.0 0.0 22528.0)
|
||||
(set! (-> s4-0 root-prim) s3-0)
|
||||
)
|
||||
(let ((v1-8 (new 'process 'collide-shape-prim-mesh s4-0 (the-as uint 0) (the-as uint 0))))
|
||||
(set! (-> v1-8 prim-core collide-as) (collide-spec obstacle))
|
||||
(set! (-> v1-8 prim-core action) (collide-action solid))
|
||||
(set! (-> v1-8 transform-index) 3)
|
||||
(set-vector! (-> v1-8 local-sphere) 0.0 20480.0 0.0 22528.0)
|
||||
)
|
||||
(let ((v1-10 (new 'process 'collide-shape-prim-mesh s4-0 (the-as uint 1) (the-as uint 0))))
|
||||
(set! (-> v1-10 prim-core collide-as) (collide-spec obstacle))
|
||||
(set! (-> v1-10 prim-core action) (collide-action solid))
|
||||
(set! (-> v1-10 transform-index) 3)
|
||||
(set-vector! (-> v1-10 local-sphere) 0.0 0.0 0.0 8192.0)
|
||||
)
|
||||
(set! (-> s4-0 nav-radius) (* 0.75 (-> s4-0 root-prim local-sphere w)))
|
||||
(let ((v1-13 (-> s4-0 root-prim)))
|
||||
(set! (-> s4-0 backup-collide-as) (-> v1-13 prim-core collide-as))
|
||||
(set! (-> s4-0 backup-collide-with) (-> v1-13 prim-core collide-with))
|
||||
)
|
||||
(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-pal-prong" (the-as (pointer uint32) #f)))
|
||||
(the-as pair 0)
|
||||
)
|
||||
(set! (-> obj part) (create-launch-control (-> *part-group-id-table* 1111) obj))
|
||||
(if (task-node-closed? (game-task-node palace-boss-resolution))
|
||||
(go (method-of-object obj broken))
|
||||
(go (method-of-object obj idle))
|
||||
)
|
||||
(none)
|
||||
)
|
||||
|
||||
;; definition for function pal-prong-small-collision
|
||||
;; WARN: Return type mismatch int vs none.
|
||||
(defbehavior pal-prong-small-collision pal-prong ()
|
||||
(let ((v1-3 (-> (the-as collide-shape-prim-group (-> self root-override root-prim)) child 0)))
|
||||
(set! (-> v1-3 prim-core collide-as) (collide-spec))
|
||||
(set! (-> v1-3 prim-core collide-with) (collide-spec))
|
||||
)
|
||||
0
|
||||
(none)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defstate broken (pal-prong)
|
||||
:virtual #t
|
||||
:enter (behavior ()
|
||||
(setup-masks (-> self draw) 0 1)
|
||||
(pal-prong-small-collision)
|
||||
(transform-post)
|
||||
(none)
|
||||
)
|
||||
:code (the-as (function none :behavior pal-prong) sleep-code)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defstate break-it (pal-prong)
|
||||
:virtual #t
|
||||
:enter (behavior ()
|
||||
(setup-masks (-> self draw) 0 1)
|
||||
(pal-prong-small-collision)
|
||||
(transform-post)
|
||||
(sound-play "sqd-post-break")
|
||||
(let ((gp-1 (new 'stack 'joint-exploder-tuning (the-as uint 0))))
|
||||
(process-spawn
|
||||
joint-exploder
|
||||
(art-group-get-by-name *level* "skel-pal-prong-explode" (the-as (pointer uint32) #f))
|
||||
5
|
||||
gp-1
|
||||
*pal-prong-exploder-params*
|
||||
:to self
|
||||
)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
:trans (behavior ()
|
||||
(go-virtual broken)
|
||||
(none)
|
||||
)
|
||||
:code (the-as (function none :behavior pal-prong) sleep-code)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defstate idle (pal-prong)
|
||||
:virtual #t
|
||||
:event (behavior ((proc process) (arg1 int) (event-type symbol) (event event-message-block))
|
||||
(case event-type
|
||||
(('trigger)
|
||||
(go-virtual break-it)
|
||||
)
|
||||
)
|
||||
)
|
||||
:enter (behavior ()
|
||||
(transform-post)
|
||||
(none)
|
||||
)
|
||||
:trans (behavior ()
|
||||
(let ((a1-0 (new 'stack-no-clear 'vector)))
|
||||
(set! (-> a1-0 quad) (-> self root-override trans quad))
|
||||
(set! (-> a1-0 y) (+ 36864.0 (-> a1-0 y)))
|
||||
(spawn (-> self part) a1-0)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
:code (the-as (function none :behavior pal-prong) sleep-code)
|
||||
)
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -54,12 +54,15 @@
|
||||
"DGO/ONINTENT.DGO",
|
||||
"DGO/ORACLE.DGO",
|
||||
"DGO/OUTROCST.DGO",
|
||||
"DGO/CAS.DGO",
|
||||
"DGO/LPACKAGE.DGO",
|
||||
"DGO/LPOWER.DGO",
|
||||
"DGO/PAC.DGO",
|
||||
"DGO/PAE.DGO",
|
||||
"DGO/PALOUT.DGO",
|
||||
"DGO/PALBOSS.DGO",
|
||||
"DGO/PAR.DGO",
|
||||
"DGO/DEMO.DGO",
|
||||
"DGO/PAS.DGO",
|
||||
"DGO/PRI.DGO",
|
||||
"DGO/RUI.DGO",
|
||||
@@ -291,7 +294,8 @@
|
||||
"(method 3 rhino)",
|
||||
"(method 193 grunt-mech)", // .mula.s
|
||||
"(method 3 sig-path-sample)",
|
||||
"debug-eyes" // unused debug function
|
||||
"debug-eyes", // unused debug function
|
||||
"(method 11 pal-grind-ring-center)" // same thing defined twice
|
||||
],
|
||||
|
||||
"skip_compile_states": {
|
||||
|
||||
Reference in New Issue
Block a user