mirror of
https://github.com/open-goal/jak-project.git
synced 2024-10-06 19:03:24 +00:00
decomp3: decompile remaining mission code (#3515)
This should make all missions playable with the exception of the end of `precursor-destroy-ship` because `precurd` asserts on level extraction. - `trail` - `trail-graph` - `wastrail-graph` - `cty-protect` - `protect-gunship` - `protect-path` - `protect-script` - `assault-cams` - `assault-enemies` - `assault-path` - `assault-script` - `assault-shared` - `assault-task` - `hover-nav-precura` - `precura-mood` - `precura-obs` - `precura-obs2` - `precura-part` - `precurc-mood` - `precurc-obs` - `precurc-part` - `precurd-obs` - `precurd-part` - `precurd-scenes`
This commit is contained in:
parent
456d1ba536
commit
c12a5d777c
File diff suppressed because it is too large
Load Diff
@ -978,5 +978,27 @@
|
||||
[27, "(function process symbol)"],
|
||||
[46, "(function collide-shape-prim none)"],
|
||||
[69, "(function process object)"]
|
||||
],
|
||||
"assault-enemies": [
|
||||
[36, "(function assault-crimson-guard city-attacker-info int)"]
|
||||
],
|
||||
"assault-task": [[11, "(function symbol :behavior process)"]],
|
||||
"precura-obs": [[98, "(function symbol :behavior process)"]],
|
||||
"precurd-scenes": [
|
||||
[0, "(function none :behavior scene-player)"],
|
||||
[1, "(function none :behavior scene-player)"],
|
||||
[2, "(function none :behavior scene-player)"],
|
||||
[3, "(function none :behavior scene-player)"],
|
||||
[4, "(function none :behavior scene-player)"],
|
||||
[5, "(function none :behavior scene-player)"],
|
||||
[6, "(function none :behavior scene-player)"],
|
||||
[7, "(function none :behavior scene-player)"],
|
||||
[8, "(function none :behavior scene-player)"],
|
||||
[9, "(function none :behavior scene-player)"],
|
||||
[10, "(function none :behavior scene-player)"],
|
||||
[11, "(function none :behavior scene-player)"],
|
||||
[12, "(function none :behavior scene-player)"],
|
||||
[13, "(function none :behavior scene-player)"],
|
||||
[14, "(function none :behavior scene-player)"]
|
||||
]
|
||||
}
|
||||
|
@ -35,7 +35,11 @@
|
||||
"power-game-chaser": "flitter-ag",
|
||||
"power-game-zapper": "grunt-head-ag",
|
||||
"gungame-door": "fort-entry-gate-ag",
|
||||
"bt-mh-flyer": "bt-wasp-ag"
|
||||
"bt-mh-flyer": "bt-wasp-ag",
|
||||
"gunship-exploder": "kg-robot-transport-break",
|
||||
"gunship-engine": "kg-robot-transport-bomb",
|
||||
"protect-gunship": "kg-robot-transport",
|
||||
"gunship-missile": "cty-homing-missile"
|
||||
},
|
||||
|
||||
// remap names for types in an entire file (higher priority)
|
||||
|
@ -581,7 +581,8 @@
|
||||
[346, 0],
|
||||
[378, 0],
|
||||
[413, 0]
|
||||
]
|
||||
],
|
||||
"(trans carry precur-bomb)": [[60, 0]]
|
||||
},
|
||||
|
||||
"mips2c_functions_by_name": [
|
||||
@ -711,7 +712,6 @@
|
||||
"(method 21 cloth-system)",
|
||||
"debug-line-clip?",
|
||||
"(method 9 font-work)",
|
||||
"(method 9 prim-strip)",
|
||||
"live-func-curve",
|
||||
"birth-func-curve",
|
||||
"sparticle-motion-blur-dirt",
|
||||
|
@ -182,7 +182,7 @@
|
||||
"DGO/RAILE.DGO",
|
||||
"DGO/RAILF.DGO",
|
||||
"DGO/RAILX.DGO",
|
||||
// // precursor
|
||||
// precursor
|
||||
"DGO/PRECA.DGO",
|
||||
"DGO/PRECB.DGO",
|
||||
"DGO/PRECC.DGO",
|
||||
|
@ -2132,5 +2132,333 @@
|
||||
["L1047", "uint64", true],
|
||||
["L1056", "uint64", true],
|
||||
["L1044", "uint64", true]
|
||||
],
|
||||
"protect-gunship": [
|
||||
["L786", "uint64", true],
|
||||
["L783", "uint64", true],
|
||||
["L780", "uint64", true],
|
||||
["L784", "uint64", true],
|
||||
["L779", "uint64", true],
|
||||
["L778", "uint64", true],
|
||||
["L785", "uint64", true],
|
||||
["L782", "uint64", true],
|
||||
["L776", "uint64", true],
|
||||
["L781", "uint64", true],
|
||||
["L777", "uint64", true],
|
||||
["L604", "uint64", true],
|
||||
["L599", "uint64", true],
|
||||
["L510", "(inline-array gunship-info)", 2],
|
||||
["L608", "uint64", true],
|
||||
["L603", "uint64", true],
|
||||
["L614", "uint64", true],
|
||||
["L464", "attack-info"],
|
||||
["L463", "attack-info"],
|
||||
["L612", "uint64", true],
|
||||
["L615", "uint64", true],
|
||||
["L601", "uint64", true],
|
||||
["L598", "uint64", true],
|
||||
["L602", "uint64", true],
|
||||
["L610", "uint64", true],
|
||||
["L606", "uint64", true],
|
||||
["L611", "uint64", true],
|
||||
["L600", "uint64", true],
|
||||
["L609", "uint64", true],
|
||||
["L607", "uint64", true],
|
||||
["L613", "uint64", true],
|
||||
["L605", "uint64", true],
|
||||
["L456", "attack-info"]
|
||||
],
|
||||
"cty-protect": [["L142", "attack-info"]],
|
||||
"assault-shared": [["L1", "(inline-array talker-speech-class)", 22]],
|
||||
"assault-path": [
|
||||
["L34", "assault-room"],
|
||||
["L33", "assault-room-collision"],
|
||||
["L29", "assault-room"],
|
||||
["L28", "assault-room-collision"],
|
||||
["L23", "assault-room"],
|
||||
["L22", "assault-room-collision"],
|
||||
["L17", "assault-room"],
|
||||
["L16", "assault-room-collision"],
|
||||
["L11", "assault-room"],
|
||||
["L10", "assault-room-collision"]
|
||||
],
|
||||
"assault-enemies": [
|
||||
["L333", "attack-info"],
|
||||
["L332", "attack-info"]
|
||||
],
|
||||
"precurd-obs": [
|
||||
["L610", "uint64", true],
|
||||
["L612", "uint64", true],
|
||||
["L613", "uint64", true],
|
||||
["L611", "uint64", true],
|
||||
["L544", "uint64", true],
|
||||
["L543", "uint64", true],
|
||||
["L547", "uint64", true],
|
||||
["L542", "uint64", true],
|
||||
["L541", "uint64", true],
|
||||
["L548", "uint64", true],
|
||||
["L356", "attack-info"],
|
||||
["L549", "uint64", true],
|
||||
["L550", "uint64", true],
|
||||
["L545", "uint64", true],
|
||||
["L546", "uint64", true]
|
||||
],
|
||||
"precura-obs": [
|
||||
["L734", "uint64", true],
|
||||
["L728", "uint64", true],
|
||||
["L729", "uint64", true],
|
||||
["L732", "uint64", true],
|
||||
["L731", "uint64", true],
|
||||
["L730", "uint64", true],
|
||||
["L725", "uint64", true],
|
||||
["L735", "uint64", true],
|
||||
["L726", "uint64", true],
|
||||
["L727", "uint64", true],
|
||||
["L733", "uint64", true],
|
||||
["L608", "uint64", true],
|
||||
["L620", "uint64", true],
|
||||
["L618", "uint64", true],
|
||||
["L617", "uint64", true],
|
||||
["L623", "uint64", true],
|
||||
["L610", "uint64", true],
|
||||
["L605", "uint64", true],
|
||||
["L611", "uint64", true],
|
||||
["L621", "uint64", true],
|
||||
["L614", "uint64", true],
|
||||
["L613", "uint64", true],
|
||||
["L606", "uint64", true],
|
||||
["L619", "uint64", true],
|
||||
["L607", "uint64", true],
|
||||
["L577", "attack-info"],
|
||||
["L576", "attack-info"],
|
||||
["L622", "uint64", true],
|
||||
["L432", "vector"],
|
||||
["L431", "vector"],
|
||||
["L430", "vector"],
|
||||
["L609", "uint64", true],
|
||||
["L612", "uint64", true],
|
||||
["L615", "uint64", true],
|
||||
["L616", "uint64", true]
|
||||
],
|
||||
"precura-obs2": [
|
||||
["L499", "uint64", true],
|
||||
["L489", "uint64", true],
|
||||
["L603", "uint64", true],
|
||||
["L602", "uint64", true],
|
||||
["L597", "uint64", true],
|
||||
["L596", "uint64", true],
|
||||
["L598", "uint64", true],
|
||||
["L601", "uint64", true],
|
||||
["L595", "uint64", true],
|
||||
["L600", "uint64", true],
|
||||
["L599", "uint64", true],
|
||||
["L484", "uint64", true],
|
||||
["L488", "uint64", true],
|
||||
["L491", "uint64", true],
|
||||
["L496", "uint64", true],
|
||||
["L494", "uint64", true],
|
||||
["L498", "uint64", true],
|
||||
["L394", "attack-info"],
|
||||
["L495", "uint64", true],
|
||||
["L493", "uint64", true],
|
||||
["L492", "uint64", true],
|
||||
["L486", "uint64", true],
|
||||
["L497", "uint64", true],
|
||||
["L487", "uint64", true],
|
||||
["L485", "uint64", true],
|
||||
["L490", "uint64", true],
|
||||
["L446", "vector"],
|
||||
["L416", "attack-info"],
|
||||
["L415", "attack-info"]
|
||||
],
|
||||
"neon-baron-part": [
|
||||
["L592", "uint64", true],
|
||||
["L579", "(pointer uint64)", 1],
|
||||
["L83", "(pointer uint32)", 40],
|
||||
["L384", "vector4w"],
|
||||
["L385", "vector4w"],
|
||||
["L386", "vector4w"],
|
||||
["L387", "vector4w"],
|
||||
["L388", "vector4w"],
|
||||
["L389", "vector4w"],
|
||||
["L390", "vector4w"],
|
||||
["L391", "vector4w"],
|
||||
["L392", "vector4w"],
|
||||
["L393", "vector4w"],
|
||||
["L394", "vector4w"],
|
||||
["L395", "vector4w"],
|
||||
["L396", "vector4w"],
|
||||
["L397", "vector4w"],
|
||||
["L398", "vector4w"],
|
||||
["L399", "vector4w"],
|
||||
["L400", "vector4w"],
|
||||
["L401", "vector4w"],
|
||||
["L402", "vector4w"],
|
||||
["L403", "vector4w"],
|
||||
["L404", "vector4w"],
|
||||
["L405", "vector4w"],
|
||||
["L406", "vector4w"],
|
||||
["L407", "vector4w"],
|
||||
["L408", "vector4w"],
|
||||
["L409", "vector4w"],
|
||||
["L410", "vector4w"],
|
||||
["L411", "vector4w"],
|
||||
["L412", "vector4w"],
|
||||
["L413", "vector4w"],
|
||||
["L414", "vector4w"],
|
||||
["L415", "vector4w"],
|
||||
["L416", "vector4w"],
|
||||
["L417", "vector4w"],
|
||||
["L418", "vector4w"],
|
||||
["L419", "vector4w"],
|
||||
["L420", "vector4w"],
|
||||
["L421", "vector4w"],
|
||||
["L422", "vector4w"],
|
||||
["L423", "vector4w"],
|
||||
["L424", "vector4w"],
|
||||
["L425", "vector4w"],
|
||||
["L426", "vector4w"],
|
||||
["L427", "vector4w"],
|
||||
["L428", "vector4w"],
|
||||
["L429", "vector4w"],
|
||||
["L430", "vector4w"],
|
||||
["L431", "vector4w"],
|
||||
["L432", "vector4w"],
|
||||
["L433", "vector4w"],
|
||||
["L434", "vector4w"],
|
||||
["L435", "vector4w"],
|
||||
["L436", "vector4w"],
|
||||
["L437", "vector4w"],
|
||||
["L438", "vector4w"],
|
||||
["L439", "vector4w"],
|
||||
["L440", "vector4w"],
|
||||
["L441", "vector4w"],
|
||||
["L442", "vector4w"],
|
||||
["L443", "vector4w"],
|
||||
["L444", "vector4w"],
|
||||
["L445", "vector4w"],
|
||||
["L446", "vector4w"],
|
||||
["L447", "vector4w"],
|
||||
["L448", "vector4w"],
|
||||
["L449", "vector4w"],
|
||||
["L450", "vector4w"],
|
||||
["L451", "vector4w"],
|
||||
["L452", "vector4w"],
|
||||
["L453", "vector4w"],
|
||||
["L454", "vector4w"],
|
||||
["L455", "vector4w"],
|
||||
["L456", "vector4w"],
|
||||
["L457", "vector4w"],
|
||||
["L458", "vector4w"],
|
||||
["L459", "vector4w"],
|
||||
["L460", "vector4w"],
|
||||
["L461", "vector4w"],
|
||||
["L462", "vector4w"],
|
||||
["L463", "vector4w"],
|
||||
["L464", "vector4w"],
|
||||
["L465", "vector4w"],
|
||||
["L466", "vector4w"],
|
||||
["L467", "vector4w"],
|
||||
["L468", "vector4w"],
|
||||
["L469", "vector4w"],
|
||||
["L470", "vector4w"],
|
||||
["L471", "vector4w"],
|
||||
["L472", "vector4w"],
|
||||
["L473", "vector4w"],
|
||||
["L474", "vector4w"],
|
||||
["L475", "vector4w"],
|
||||
["L476", "vector4w"],
|
||||
["L477", "vector4w"],
|
||||
["L478", "vector4w"],
|
||||
["L479", "vector4w"],
|
||||
["L480", "vector4w"],
|
||||
["L481", "vector4w"],
|
||||
["L482", "vector4w"],
|
||||
["L483", "vector4w"],
|
||||
["L484", "vector4w"],
|
||||
["L485", "vector4w"],
|
||||
["L486", "vector4w"],
|
||||
["L487", "vector4w"],
|
||||
["L488", "vector4w"],
|
||||
["L489", "vector4w"],
|
||||
["L490", "vector4w"],
|
||||
["L491", "vector4w"],
|
||||
["L492", "vector4w"],
|
||||
["L493", "vector4w"],
|
||||
["L494", "vector4w"],
|
||||
["L495", "vector4w"],
|
||||
["L496", "vector4w"],
|
||||
["L497", "vector4w"],
|
||||
["L498", "vector4w"],
|
||||
["L499", "vector4w"],
|
||||
["L500", "vector4w"],
|
||||
["L501", "vector4w"],
|
||||
["L502", "vector4w"],
|
||||
["L503", "vector4w"],
|
||||
["L505", "vector4w"],
|
||||
["L507", "vector4w"],
|
||||
["L509", "vector4w"],
|
||||
["L511", "vector4w"],
|
||||
["L513", "vector4w"],
|
||||
["L514", "vector4w"],
|
||||
["L515", "vector4w"],
|
||||
["L516", "vector4w"],
|
||||
["L517", "vector4w"],
|
||||
["L518", "vector4w"],
|
||||
["L519", "vector4w"],
|
||||
["L520", "vector4w"],
|
||||
["L521", "vector4w"],
|
||||
["L522", "vector4w"],
|
||||
["L523", "vector4w"],
|
||||
["L524", "vector4w"],
|
||||
["L526", "vector4w"],
|
||||
["L527", "vector4w"],
|
||||
["L528", "vector4w"],
|
||||
["L529", "vector4w"],
|
||||
["L530", "vector4w"],
|
||||
["L531", "vector4w"],
|
||||
["L532", "vector4w"],
|
||||
["L533", "vector4w"],
|
||||
["L534", "vector4w"],
|
||||
["L535", "vector4w"],
|
||||
["L536", "vector4w"],
|
||||
["L537", "vector4w"],
|
||||
["L538", "vector4w"],
|
||||
["L539", "vector4w"],
|
||||
["L540", "vector4w"],
|
||||
["L541", "vector4w"],
|
||||
["L542", "vector4w"],
|
||||
["L543", "vector4w"],
|
||||
["L544", "vector4w"],
|
||||
["L545", "vector4w"],
|
||||
["L546", "vector4w"],
|
||||
["L547", "vector4w"],
|
||||
["L548", "vector4w"],
|
||||
["L549", "vector4w"],
|
||||
["L550", "vector4w"],
|
||||
["L551", "vector4w"],
|
||||
["L552", "vector4w"],
|
||||
["L554", "vector4w"],
|
||||
["L556", "vector4w"],
|
||||
["L558", "vector4w"],
|
||||
["L559", "vector4w"],
|
||||
["L560", "vector4w"],
|
||||
["L561", "vector4w"],
|
||||
["L562", "vector4w"],
|
||||
["L563", "vector4w"],
|
||||
["L564", "vector4w"],
|
||||
["L565", "vector4w"],
|
||||
["L566", "vector4w"],
|
||||
["L567", "vector4w"],
|
||||
["L568", "vector4w"],
|
||||
["L569", "vector4w"],
|
||||
["L570", "vector4w"],
|
||||
["L571", "vector4w"],
|
||||
["L572", "vector4w"],
|
||||
["L573", "vector4w"],
|
||||
["L574", "vector4w"],
|
||||
["L575", "vector4w"],
|
||||
["L576", "vector4w"],
|
||||
["L577", "vector4w"]
|
||||
]
|
||||
}
|
||||
|
@ -2438,5 +2438,74 @@
|
||||
[320, "collide-query"],
|
||||
[160, "vector"]
|
||||
],
|
||||
"draw-path-blow-curve": [[16, "matrix"]]
|
||||
"draw-path-blow-curve": [[16, "matrix"]],
|
||||
"(method 22 trail-graph)": [[16, "trail-vis-work"]],
|
||||
"(method 13 trail-graph)": [[16, ["inline-array", "vector", 3]]],
|
||||
"(method 16 trail-graph)": [[16, ["inline-array", "vector", 2]]],
|
||||
"(method 17 trail-graph)": [[16, "trail-conn-search"]],
|
||||
"(trans explode gunship-missile)": [[32, ["array", "collide-shape", 384]]],
|
||||
"(trans spinning-laser protect-gunship)": [
|
||||
[32, "vector"],
|
||||
[64, "vector"]
|
||||
],
|
||||
"find-reposition-pt": [
|
||||
[16, "vector"],
|
||||
[96, "vector"],
|
||||
[112, "vector"]
|
||||
],
|
||||
"(method 50 protect-gunship)": [[16, "vector"]],
|
||||
"find-nearest-nav-mesh-protect": [[16, "nav-poly"]],
|
||||
"(method 37 protect-gunship)": [[752, "vector"]],
|
||||
"(method 36 protect-gunship)": [[16, "gunship-missile-init-params"]],
|
||||
"(method 39 protect-gunship)": [[16, "protect-gunship-enemy-spawn-params"]],
|
||||
"(method 55 protect-gunship)": [[16, "collide-query"]],
|
||||
"(method 21 prot-crate)": [[16, "vector"]],
|
||||
"(method 36 task-manager-protect-hq)": [[16, "protect-gunship-init-params"]],
|
||||
"spawn-protect-enemy": [[16, "traffic-object-spawn-params"]],
|
||||
"(method 35 task-manager-protect-hq)": [[16, "traffic-object-spawn-params"]],
|
||||
"(trans hostile assault-bombbot)": [[32, "vector"]],
|
||||
"(enter explode assault-bombbot)": [[112, ["array", "collide-shape", 384]]],
|
||||
"(code roll-initial assault-roboguard)": [[16, "vector"]],
|
||||
"(method 31 assault-bombbot-shot)": [
|
||||
[16, "light-trail-tracker-spawn-params"]
|
||||
],
|
||||
"(code active task-manager-city-port-assault)": [
|
||||
[16, "player-controller-init-params"]
|
||||
],
|
||||
"(method 40 task-manager-city-port-assault)": [[16, ["array", "symbol", 10]]],
|
||||
"(enter combat task-manager-city-port-assault)": [
|
||||
[16, "player-controller-init-params"]
|
||||
],
|
||||
"(code player-entrance task-manager-city-port-assault)": [
|
||||
[16, "player-controller-init-params"]
|
||||
],
|
||||
"(enter transition task-manager-city-port-assault)": [
|
||||
[16, "player-controller-init-params"]
|
||||
],
|
||||
"(method 47 task-manager-city-port-assault)": [[64, "vector"]],
|
||||
"(method 48 task-manager-city-port-assault)": [[64, "vector"]],
|
||||
"(method 41 task-manager-city-port-assault)": [[48, "vector"]],
|
||||
"(trans idle precur-generator)": [[112, "vector"]],
|
||||
"(method 23 precur-generator-d)": [[16, "vector"]],
|
||||
"(event idle precur-door-d)": [[16, "attack-info"]],
|
||||
"(method 23 precur-door-c)": [[112, "vector"]],
|
||||
"(method 11 precur-path)": [[16, "vector"]],
|
||||
"precur-bomb-handler": [[16, "attack-info"]],
|
||||
"(event idle precur-bomb-spawner)": [[16, "attack-info"]],
|
||||
"(method 21 precur-bomb-spawner)": [[16, "vector"]],
|
||||
"precur-bomb-init-by-other": [[16, "vector"]],
|
||||
"(method 25 precur-laser-beam)": [[16, "collide-query"]],
|
||||
"(method 24 precur-laser-beam)": [[16, "collide-query"]],
|
||||
"process-drawable-shock-wave-effect": [
|
||||
[16, "matrix"],
|
||||
[80, "collide-query"]
|
||||
],
|
||||
"(method 22 precur-path)": [[16, "collide-query"]],
|
||||
"precur-bridge-path-2nd-trigger": [[16, "vector"]],
|
||||
"precur-bridge-blocks-trigger": [[16, "vector"]],
|
||||
"precur-bridge-path-trigger": [[16, "vector"]],
|
||||
"(post idle precur-bridge-blocks-break)": [
|
||||
[16, "vector"],
|
||||
[32, "vector"]
|
||||
]
|
||||
}
|
||||
|
@ -2671,7 +2671,12 @@
|
||||
[224, "t0", "int"],
|
||||
[226, "t1", "int"],
|
||||
[226, "a3", "int"],
|
||||
[[190, 231], "a1", "(inline-array prim-vertex)"]
|
||||
[[190, 231], "a1", "(inline-array prim-vertex)"],
|
||||
[[148, 164], "a1", "(inline-array prim-vertex)"],
|
||||
[[192, 230], "a2", "(inline-array prim-vertex)"],
|
||||
[147, "a1", "(pointer uint128)"],
|
||||
[[278, 281], "v1", "dma-packet"],
|
||||
[230, "a2", "(pointer uint128)"]
|
||||
],
|
||||
"prim-engine-execute": [
|
||||
[[15, 21], "v1", "connection"],
|
||||
@ -10846,7 +10851,6 @@
|
||||
["_stack_", 76, "float"],
|
||||
["_stack_", 100, "float"]
|
||||
],
|
||||
"real-wang-texture-anim-func": [[[3, 31], "v1", "mood-context"]],
|
||||
"(method 24 sky-work)": [
|
||||
[256, "s4", "(pointer int32)"],
|
||||
[261, "s4", "(pointer int32)"]
|
||||
@ -10869,5 +10873,234 @@
|
||||
[65, "v1", "(pointer uint128)"],
|
||||
[[70, 77], "a0", "vector4w"],
|
||||
[[78, 84], "v1", "vector4w"]
|
||||
]
|
||||
],
|
||||
"(method 10 trail-graph)": [[16, "v1", "trail-conn-hash-cell"]],
|
||||
"(method 24 trail-graph)": [[19, "a1", "trail-conn-hash-cell"]],
|
||||
"(method 28 trail-graph)": [[36, "a1", "int"]],
|
||||
"(method 30 trail-graph)": [[67, "a2", "int"]],
|
||||
"(event idle gunship-engine)": [[[4, 19], "v1", "attack-info"]],
|
||||
"(post hover protect-gunship)": [[5, "t9", "(function none)"]],
|
||||
"(enter landed protect-gunship)": [[10, "t9", "(function none)"]],
|
||||
"(enter raising protect-gunship)": [[29, "t9", "(function none)"]],
|
||||
"(enter lowering protect-gunship)": [[23, "t9", "(function none)"]],
|
||||
"(post lowering protect-gunship)": [[10, "t9", "(function none)"]],
|
||||
"(enter enemy-spawning protect-gunship)": [[5, "t9", "(function none)"]],
|
||||
"(code explode gunship-exploder)": [[10, "v1", "art-joint-anim"]],
|
||||
"(post enemy-spawning protect-gunship)": [[5, "t9", "(function none)"]],
|
||||
"(event launch gunship-missile)": [[5, "a0", "vector"]],
|
||||
"(trans explode gunship-missile)": [
|
||||
[75, "s3", "process-focusable"],
|
||||
[79, "s3", "process-focusable"],
|
||||
[85, "s3", "process-focusable"]
|
||||
],
|
||||
"(method 44 protect-gunship)": [
|
||||
[[228, 239], "s3", "particle-local-space-info"]
|
||||
],
|
||||
"(enter hover protect-gunship)": [[6, "t9", "(function none)"]],
|
||||
"(post spinning-laser protect-gunship)": [[5, "t9", "(function none)"]],
|
||||
"(trans spinning-laser protect-gunship)": [[113, "v1", "float"]],
|
||||
"(enter spinning-laser protect-gunship)": [[8, "t9", "(function none)"]],
|
||||
"find-reposition-pt": [
|
||||
[[35, 40], "v1", "protect-gunship"],
|
||||
[[113, 119], "v1", "protect-gunship"],
|
||||
["_stack_", 44, "float"],
|
||||
["_stack_", 56, "float"],
|
||||
["_stack_", 76, "float"],
|
||||
["_stack_", 80, "float"]
|
||||
],
|
||||
"(method 53 protect-gunship)": [
|
||||
[52, "v1", "float"],
|
||||
[67, "v1", "float"],
|
||||
[83, "v1", "float"],
|
||||
[34, "v0", "int"]
|
||||
],
|
||||
"(method 50 protect-gunship)": [[126, "v1", "float"]],
|
||||
"(method 49 protect-gunship)": [[19, "v1", "float"]],
|
||||
"(method 52 protect-gunship)": [[[104, 111], "a0", "protect-gunship"]],
|
||||
"(method 41 protect-gunship)": [
|
||||
[[395, 398], "v1", "gunship-engine"],
|
||||
[467, "v1", "float"]
|
||||
],
|
||||
"(method 37 protect-gunship)": [
|
||||
[358, "v1", "float"],
|
||||
[378, "v1", "float"]
|
||||
],
|
||||
"(method 38 protect-gunship)": [[20, "v1", "float"]],
|
||||
"gunship-missile-init-by-other": [[136, "v1", "float"]],
|
||||
"(method 55 protect-gunship)": [[127, "v1", "collide-shape-prim-sphere"]],
|
||||
"(method 21 prot-crate)": [
|
||||
[72, "v1", "float"],
|
||||
[97, "v1", "float"]
|
||||
],
|
||||
"(method 45 protect-gunship)": [[7, "a1", "int"]],
|
||||
"(enter fail task-manager-protect-hq)": [
|
||||
[26, "v0", "(state resetter-params task-manager-protect-hq)"]
|
||||
],
|
||||
"(trans hostile assault-bombbot)": [[[76, 125], "v1", "process-focusable"]],
|
||||
"(method 209 assault-bombbot)": [[48, "v1", "process-focusable"]],
|
||||
"(code wait-for-enemies assault-crimson-guard)": [
|
||||
[22, "v1", "art-joint-anim"]
|
||||
],
|
||||
"(trans wait-for-enemies assault-crimson-guard)": [
|
||||
[[15, 23], "a0", "process-focusable"]
|
||||
],
|
||||
"(trans active assault-crimson-guard)": [
|
||||
[[27, 35], "a0", "process-focusable"]
|
||||
],
|
||||
"(anon-function 36 assault-enemies)": [[[17, 26], "s4", "process-focusable"]],
|
||||
"(method 212 assault-crimson-guard)": [[4, "a0", "vector"]],
|
||||
"(code tracking assault-cleanup)": [[[28, 43], "v1", "process-focusable"]],
|
||||
"(code cower-ground assault-citizen-norm)": [
|
||||
[22, "v1", "art-joint-anim"],
|
||||
[161, "v1", "art-joint-anim"],
|
||||
[180, "v1", "float"],
|
||||
[225, "v1", "float"]
|
||||
],
|
||||
"(trans flee-madly assault-citizen-norm)": [
|
||||
[41, "v1", "float"],
|
||||
[68, "v1", "float"]
|
||||
],
|
||||
"(code exit-transport assault-metalhead-flitter)": [
|
||||
[14, "v1", "art-joint-anim"]
|
||||
],
|
||||
"(code exit-transport assault-metalhead-grunt)": [
|
||||
[14, "v1", "art-joint-anim"]
|
||||
],
|
||||
"(method 212 assault-citizen-norm)": [[28, "a0", "vector"]],
|
||||
"(method 212 assault-roboguard)": [[16, "a1", "vector"]],
|
||||
"(method 46 task-manager-city-port-assault)": [[17, "v1", "float"]],
|
||||
"(method 45 task-manager-city-port-assault)": [[15, "v1", "float"]],
|
||||
"(enter combat task-manager-city-port-assault)": [
|
||||
[[33, 39], "a0", "assault-player-controller"]
|
||||
],
|
||||
"(method 47 task-manager-city-port-assault)": [[31, "v1", "float"]],
|
||||
"(method 48 task-manager-city-port-assault)": [
|
||||
[32, "v1", "float"],
|
||||
[191, "v1", "float"]
|
||||
],
|
||||
"(method 40 task-manager-city-port-assault)": [
|
||||
[[168, 174], "v1", "assault-player-controller"]
|
||||
],
|
||||
"(method 42 task-manager-city-port-assault)": [
|
||||
[33, "v1", "float"],
|
||||
[83, "v1", "float"]
|
||||
],
|
||||
"(method 43 task-manager-city-port-assault)": [
|
||||
[[17, 69], "s4", "assault-spawn-cmd"]
|
||||
],
|
||||
"(method 24 prim-beam-tracker)": [
|
||||
[[10, 19], "v1", "process-drawable"],
|
||||
[[31, 40], "v1", "process-drawable"]
|
||||
],
|
||||
"(method 24 prim-beam)": [
|
||||
[100, "v1", "prim-vertex"],
|
||||
[[112, 114], "v1", "prim-vertex"],
|
||||
[99, "v1", "prim-vertex"]
|
||||
],
|
||||
"(code going-down precur-switch)": [[10, "v1", "art-joint-anim"]],
|
||||
"(event idle precur-generator-d-gem)": [
|
||||
[6, "a0", "vector"],
|
||||
[10, "v1", "vector"]
|
||||
],
|
||||
"(code idle precur-generator-d)": [[10, "v1", "art-joint-anim"]],
|
||||
"(trans idle precur-generator)": [[181, "v1", "float"]],
|
||||
"(method 23 precur-generator-d)": [
|
||||
[61, "a3", "float"],
|
||||
[28, "a3", "float"],
|
||||
[94, "a3", "float"]
|
||||
],
|
||||
"(method 11 precur-platform-round)": [
|
||||
[[169, 180], "s3", "particle-local-space-info"]
|
||||
],
|
||||
"(event idle precur-door-d)": [
|
||||
[[5, 34], "s4", "attack-info"],
|
||||
[[19, 38], "s3", "attack-info"]
|
||||
],
|
||||
"precur-door-c-handler": [[[3, 5], "v1", "attack-info"]],
|
||||
"set-precura-generator-light!": [[10, "v1", "precura-states"]],
|
||||
"update-mood-precura": [[[74, 113], "gp", "precura-states"]],
|
||||
"set-precura-laser-light!": [
|
||||
[[13, 17], "v1", "precura-states"],
|
||||
[23, "v1", "precura-states"],
|
||||
[22, "v1", "precura-states"]
|
||||
],
|
||||
"set-precura-bomb-light!": [[[11, 14], "v1", "precura-states"]],
|
||||
"(post carry precur-bomb)": [[4, "t9", "(function none)"]],
|
||||
"(post fall precur-bomb)": [[4, "t9", "(function none)"]],
|
||||
"(enter explode precur-bomb)": [[51, "a0", "process"]],
|
||||
"(code idle precur-bomb-spawner)": [
|
||||
[53, "v1", "art-joint-anim"],
|
||||
[111, "v1", "art-joint-anim"]
|
||||
],
|
||||
"(method 11 precur-path)": [
|
||||
[[141, 145], "a0", "precur-spot-shadow-effect"],
|
||||
[[130, 141], "v1", "(pointer precur-spot-shadow-effect)"]
|
||||
],
|
||||
"precur-bomb-handler": [
|
||||
[[5, 34], "s4", "attack-info"],
|
||||
[[19, 38], "s3", "attack-info"]
|
||||
],
|
||||
"(enter fall mechblock)": [
|
||||
[42, "v0", "carry-info"],
|
||||
[[43, 47], "a0", "carry-info"]
|
||||
],
|
||||
"(event drag-object mechblock)": [
|
||||
[48, "v0", "carry-info"],
|
||||
[[49, 53], "a0", "carry-info"],
|
||||
[57, "a0", "vector"],
|
||||
[79, "a0", "vector"]
|
||||
],
|
||||
"(event carry mechblock)": [[23, "a0", "vector"]],
|
||||
"(event idle mechblock)": [
|
||||
[[20, 27], "a0", "carry-info"],
|
||||
[[34, 39], "a0", "carry-info"]
|
||||
],
|
||||
"(event idle precur-bomb-spawner)": [
|
||||
[[10, 39], "s4", "attack-info"],
|
||||
[[24, 43], "s3", "attack-info"]
|
||||
],
|
||||
"(enter idle precur-bomb-spawner)": [[15, "v1", "art-joint-anim"]],
|
||||
"(method 25 precur-laser-beam)": [[5, "v1", "float"]],
|
||||
"(method 24 precur-laser-beam)": [[6, "v1", "float"]],
|
||||
"process-drawable-shock-wave-effect": [
|
||||
["_stack_", 624, "(pointer lightning-tracker)"]
|
||||
],
|
||||
"(method 23 precur-path)": [[[35, 58], "a0", "precur-spot-shadow-effect"]],
|
||||
"init-mood-precurc": [[[3, 10], "v1", "precurc-states"]],
|
||||
"(post idle precur-bridge-blocks-break)": [
|
||||
[53, "gp", "collide-shape-prim-group"],
|
||||
[61, "gp", "collide-shape-prim-group"]
|
||||
],
|
||||
"(code dormant precur-laser-beam)": [["_stack_", 16, "res-tag"]],
|
||||
"(method 11 precur-generator-c)": [["_stack_", 16, "res-tag"]],
|
||||
"(method 11 precur-generator-d)": [["_stack_", 16, "res-tag"]],
|
||||
"(method 11 precur-bridge-path-break)": [["_stack_", 16, "res-tag"]],
|
||||
"(method 11 precura-door-a)": [
|
||||
[141, "v0", "pair"],
|
||||
[129, "v0", "pair"]
|
||||
],
|
||||
"(trans idle precur-generator-d)": [
|
||||
[33, "v1", "object"],
|
||||
[[33, 66], "v1", "object"]
|
||||
],
|
||||
"(method 21 lfaccity-pparticle-mover)": [
|
||||
[[32, 39], "a1", "process-drawable"]
|
||||
],
|
||||
"update-mood-lfaccity": [[[32, 200], "gp", "lfaccity-states"]],
|
||||
"(method 11 lfaccity-pparticle-mover)": [["_stack_", 16, "res-tag"]],
|
||||
"(code idle neon-baron)": [
|
||||
[248, "a0", "(array object)"],
|
||||
[250, "a0", "(array object)"],
|
||||
[282, "a0", "(array object)"],
|
||||
[284, "a0", "(array object)"],
|
||||
[316, "a0", "(array object)"],
|
||||
[318, "a0", "(array object)"],
|
||||
[350, "a0", "(array object)"],
|
||||
[352, "a0", "(array object)"],
|
||||
[384, "a0", "(array object)"],
|
||||
[386, "a0", "(array object)"]
|
||||
],
|
||||
"(method 10 neon-baron)": [[11, "s5", "uint"]],
|
||||
"(method 15 neon-baron)": [[29, "s5", "int"]],
|
||||
"(method 16 neon-baron)": [[5, "a1", "int"]]
|
||||
}
|
||||
|
@ -2115,5 +2115,25 @@
|
||||
"f0-0": "total-time",
|
||||
"v1-0": "curr-frame"
|
||||
}
|
||||
},
|
||||
"symbol->gun-pickup-type": {
|
||||
"vars": {
|
||||
"v0-0": ["type", "pickup-type"]
|
||||
}
|
||||
},
|
||||
"symbol->faction-type": {
|
||||
"vars": {
|
||||
"v0-0": ["type", "assault-cmd-faction-type"]
|
||||
}
|
||||
},
|
||||
"symbol->speech-type": {
|
||||
"vars": {
|
||||
"v0-0": ["type", "assault-cmd-speech-type"]
|
||||
}
|
||||
},
|
||||
"symbol->assault-target-type": {
|
||||
"vars": {
|
||||
"v0-0": ["type", "assault-target-type"]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -201,7 +201,7 @@ level_tools::BspHeader extract_bsp_from_level(const ObjectFileDB& db,
|
||||
expected_missing_textures = it->second;
|
||||
}
|
||||
bool atest_disable_flag = false;
|
||||
if (db.version() == GameVersion::Jak2) {
|
||||
if (db.version() >= GameVersion::Jak2) {
|
||||
if (bsp_header.texture_flags[0] & 1) {
|
||||
atest_disable_flag = true;
|
||||
}
|
||||
|
@ -1044,9 +1044,29 @@ const std::unordered_map<
|
||||
{"anim2", ArrayFieldDecompMeta(TypeSpec("tpath-control-frame"), 16)},
|
||||
{"anim3", ArrayFieldDecompMeta(TypeSpec("tpath-control-frame"), 16)}}},
|
||||
{"blow-tower-path",
|
||||
// TODO - should be able to just decompile the `anims` field
|
||||
{{"pts", ArrayFieldDecompMeta(TypeSpec("vector"), 16)},
|
||||
{"node-info", ArrayFieldDecompMeta(TypeSpec("blow-tower-node-info"), 32)}}},
|
||||
{"trail-conn-hash",
|
||||
{{"cell", ArrayFieldDecompMeta(TypeSpec("trail-conn-hash-cell"), 6)},
|
||||
{"conn-ids", ArrayFieldDecompMeta(TypeSpec("uint16"),
|
||||
2,
|
||||
ArrayFieldDecompMeta::Kind::REF_TO_INTEGER_ARR)}}},
|
||||
{"trail-graph",
|
||||
{{"node", ArrayFieldDecompMeta(TypeSpec("trail-node"), 20)},
|
||||
{"conn", ArrayFieldDecompMeta(TypeSpec("trail-conn"), 8)},
|
||||
{"conn-ids", ArrayFieldDecompMeta(TypeSpec("uint16"),
|
||||
2,
|
||||
ArrayFieldDecompMeta::Kind::REF_TO_INTEGER_ARR)},
|
||||
{"visgroup", ArrayFieldDecompMeta(TypeSpec("trail-conn-hash-cell"), 6)},
|
||||
{"blocker", ArrayFieldDecompMeta(TypeSpec("trail-blocker"), 32)},
|
||||
{"visnode-ids",
|
||||
ArrayFieldDecompMeta(TypeSpec("uint16"),
|
||||
2,
|
||||
ArrayFieldDecompMeta::Kind::REF_TO_INTEGER_ARR)},
|
||||
{"cell-pov-bit-arrays",
|
||||
ArrayFieldDecompMeta(TypeSpec("uint64"),
|
||||
8,
|
||||
ArrayFieldDecompMeta::Kind::REF_TO_INTEGER_ARR)}}},
|
||||
}}};
|
||||
|
||||
goos::Object decompile_structure(const TypeSpec& type,
|
||||
|
@ -197,7 +197,6 @@ set(RUNTIME_SOURCE
|
||||
mips2c/jak3_functions/generic_effect.cpp
|
||||
mips2c/jak3_functions/joint.cpp
|
||||
mips2c/jak3_functions/lights.cpp
|
||||
mips2c/jak3_functions/prim.cpp
|
||||
mips2c/jak3_functions/sky.cpp
|
||||
mips2c/jak3_functions/texture.cpp
|
||||
mips2c/jak3_functions/particle_curves.cpp
|
||||
|
@ -83,6 +83,14 @@ const char* filename_jak2[12] = {
|
||||
"BASCUS-97265AYBABTU!/bank4.bin", "BASCUS-97265AYBABTU!/bank5.bin",
|
||||
"BASCUS-97265AYBABTU!/bank6.bin", "BASCUS-97265AYBABTU!/bank7.bin"};
|
||||
|
||||
const char* filename_jak3[12] = {
|
||||
"BASCUS-97330AYBABTU!", "BASCUS-97330AYBABTU!/icon.sys",
|
||||
"BASCUS-97330AYBABTU!/icon.ico", "BASCUS-97330AYBABTU!/BASCUS-97330AYBABTU!",
|
||||
"BASCUS-97330AYBABTU!/bank0.bin", "BASCUS-97330AYBABTU!/bank1.bin",
|
||||
"BASCUS-97330AYBABTU!/bank2.bin", "BASCUS-97330AYBABTU!/bank3.bin",
|
||||
"BASCUS-97330AYBABTU!/bank4.bin", "BASCUS-97330AYBABTU!/bank5.bin",
|
||||
"BASCUS-97330AYBABTU!/bank6.bin", "BASCUS-97330AYBABTU!/bank7.bin"};
|
||||
|
||||
const char* mc_get_filename_no_dir(GameVersion version, int ndx) {
|
||||
const char** filenames = nullptr;
|
||||
switch (version) {
|
||||
@ -92,6 +100,9 @@ const char* mc_get_filename_no_dir(GameVersion version, int ndx) {
|
||||
case GameVersion::Jak2:
|
||||
filenames = filename_jak2;
|
||||
break;
|
||||
case GameVersion::Jak3:
|
||||
filenames = filename_jak3;
|
||||
break;
|
||||
}
|
||||
return filenames[ndx];
|
||||
}
|
||||
@ -173,10 +184,6 @@ bool file_is_present(int id, int bank = 0) {
|
||||
*/
|
||||
void pc_update_card() {
|
||||
// int highest_save_count = 0;
|
||||
// TODO handle jak 3
|
||||
if (g_game_version == GameVersion::Jak3) {
|
||||
return;
|
||||
}
|
||||
mc_last_file = -1;
|
||||
for (s32 file = 0; file < 4; file++) {
|
||||
auto bankname = mc_get_filename(g_game_version, 4 + file * 2);
|
||||
|
@ -1,479 +0,0 @@
|
||||
//--------------------------MIPS2C---------------------
|
||||
// clang-format off
|
||||
#include "game/mips2c/mips2c_private.h"
|
||||
#include "game/kernel/jak3/kscheme.h"
|
||||
using ::jak3::intern_from_c;
|
||||
namespace Mips2C::jak3 {
|
||||
namespace method_9_prim_strip {
|
||||
struct Cache {
|
||||
void* display; // *display*
|
||||
void* prim_work; // *prim-work*
|
||||
void* stdcon; // *stdcon*
|
||||
void* adgif_shader_texture_simple; // adgif-shader<-texture-simple!
|
||||
void* dma_bucket_insert_tag; // dma-bucket-insert-tag
|
||||
void* format; // format
|
||||
void* lookup_texture_by_id; // lookup-texture-by-id
|
||||
void* paused; // paused?
|
||||
} cache;
|
||||
|
||||
u64 execute(void* ctxt) {
|
||||
auto* c = (ExecutionContext*)ctxt;
|
||||
bool bc = false;
|
||||
u32 call_addr = 0;
|
||||
c->daddiu(sp, sp, -112); // daddiu sp, sp, -112
|
||||
c->sd(ra, 0, sp); // sd ra, 0(sp)
|
||||
c->sd(fp, 8, sp); // sd fp, 8(sp)
|
||||
c->mov64(fp, t9); // or fp, t9, r0
|
||||
c->sq(s1, 16, sp); // sq s1, 16(sp)
|
||||
c->sq(s2, 32, sp); // sq s2, 32(sp)
|
||||
c->sq(s3, 48, sp); // sq s3, 48(sp)
|
||||
c->sq(s4, 64, sp); // sq s4, 64(sp)
|
||||
c->sq(s5, 80, sp); // sq s5, 80(sp)
|
||||
c->sq(gp, 96, sp); // sq gp, 96(sp)
|
||||
c->mov64(gp, a0); // or gp, a0, r0
|
||||
c->mov64(s1, a1); // or s1, a1, r0
|
||||
c->load_symbol2(v1, cache.display); // lw v1, *display*(s7)
|
||||
c->lw(v1, 0, v1); // lw v1, 0(v1)
|
||||
c->dsll(v1, v1, 2); // dsll v1, v1, 2
|
||||
c->load_symbol2(a0, cache.display); // lw a0, *display*(s7)
|
||||
c->daddu(v1, v1, a0); // daddu v1, v1, a0
|
||||
c->lwu(v1, 8, v1); // lwu v1, 8(v1)
|
||||
c->lwu(v1, 36, v1); // lwu v1, 36(v1)
|
||||
c->lhu(a0, 8, gp); // lhu a0, 8(gp)
|
||||
c->daddiu(a0, a0, 79); // daddiu a0, a0, 79
|
||||
c->addiu(a1, r0, 80); // addiu a1, r0, 80
|
||||
// Unknown instr: divu a0, a1
|
||||
// Unknown instr: mflo a0
|
||||
c->gprs[a0].du64[0] = c->gprs[a0].du32[0] / c->gprs[a1].du32[0];
|
||||
c->addiu(a1, r0, 144); // addiu a1, r0, 144
|
||||
c->lhu(a2, 8, gp); // lhu a2, 8(gp)
|
||||
c->multu3(a1, a1, a2); // multu3 a1, a1, a2
|
||||
c->dsll(a0, a0, 7); // dsll a0, a0, 7
|
||||
c->daddu(a0, a1, a0); // daddu a0, a1, a0
|
||||
c->lwu(a1, 8, v1); // lwu a1, 8(v1)
|
||||
c->lwu(v1, 4, v1); // lwu v1, 4(v1)
|
||||
c->dsubu(v1, a1, v1); // dsubu v1, a1, v1
|
||||
c->sltu(v1, a0, v1); // sltu v1, a0, v1
|
||||
bc = c->sgpr64(v1) == 0; // beq v1, r0, L23
|
||||
// nop // sll r0, r0, 0
|
||||
if (bc) {goto block_28;} // branch non-likely
|
||||
|
||||
c->load_symbol2(t9, cache.lookup_texture_by_id); // lw t9, lookup-texture-by-id(s7)
|
||||
c->lwu(a0, 12, gp); // lwu a0, 12(gp)
|
||||
call_addr = c->gprs[t9].du32[0]; // function call:
|
||||
c->sll(v0, ra, 0); // sll v0, ra, 0
|
||||
c->jalr(call_addr); // jalr ra, t9
|
||||
c->mov64(a1, v0); // or a1, v0, r0
|
||||
c->load_symbol2(s3, cache.prim_work); // lw s3, *prim-work*(s7)
|
||||
c->lwu(v1, 80, gp); // lwu v1, 80(gp)
|
||||
c->dsll(v1, v1, 4); // dsll v1, v1, 4
|
||||
c->daddiu(v1, v1, 236); // daddiu v1, v1, 236
|
||||
c->daddu(s2, v1, s3); // daddu s2, v1, s3
|
||||
c->load_symbol2(v1, cache.display); // lw v1, *display*(s7)
|
||||
c->lw(v1, 0, v1); // lw v1, 0(v1)
|
||||
c->dsll(v1, v1, 2); // dsll v1, v1, 2
|
||||
c->load_symbol2(a0, cache.display); // lw a0, *display*(s7)
|
||||
c->daddu(v1, v1, a0); // daddu v1, v1, a0
|
||||
c->lwu(v1, 8, v1); // lwu v1, 8(v1)
|
||||
c->lwu(s4, 36, v1); // lwu s4, 36(v1)
|
||||
c->lwu(s5, 4, s4); // lwu s5, 4(s4)
|
||||
c->lhu(v1, 8, gp); // lhu v1, 8(gp)
|
||||
c->sw(v1, 224, s3); // sw v1, 224(s3)
|
||||
c->daddiu(v1, gp, 92); // daddiu v1, gp, 92
|
||||
c->sw(v1, 232, s3); // sw v1, 232(s3)
|
||||
c->lwu(v1, 0, gp); // lwu v1, 0(gp)
|
||||
c->andi(v1, v1, 1); // andi v1, v1, 1
|
||||
bc = c->sgpr64(v1) == 0; // beq v1, r0, L8
|
||||
// nop // sll r0, r0, 0
|
||||
if (bc) {goto block_3;} // branch non-likely
|
||||
|
||||
c->addiu(v1, r0, 1); // addiu v1, r0, 1
|
||||
//beq r0, r0, L9 // beq r0, r0, L9
|
||||
// nop // sll r0, r0, 0
|
||||
goto block_4; // branch always
|
||||
|
||||
|
||||
block_3:
|
||||
c->addiu(v1, r0, 0); // addiu v1, r0, 0
|
||||
|
||||
block_4:
|
||||
c->lwu(a0, 0, gp); // lwu a0, 0(gp)
|
||||
c->andi(a0, a0, 2); // andi a0, a0, 2
|
||||
bc = c->sgpr64(a0) == 0; // beq a0, r0, L10
|
||||
// nop // sll r0, r0, 0
|
||||
if (bc) {goto block_6;} // branch non-likely
|
||||
|
||||
c->addiu(a0, r0, 1); // addiu a0, r0, 1
|
||||
//beq r0, r0, L11 // beq r0, r0, L11
|
||||
// nop // sll r0, r0, 0
|
||||
goto block_7; // branch always
|
||||
|
||||
|
||||
block_6:
|
||||
c->addiu(a0, r0, 0); // addiu a0, r0, 0
|
||||
|
||||
block_7:
|
||||
c->lwu(a2, 0, gp); // lwu a2, 0(gp)
|
||||
c->andi(a2, a2, 4); // andi a2, a2, 4
|
||||
bc = c->sgpr64(a2) == 0; // beq a2, r0, L12
|
||||
// nop // sll r0, r0, 0
|
||||
if (bc) {goto block_9;} // branch non-likely
|
||||
|
||||
c->addiu(a2, r0, 1); // addiu a2, r0, 1
|
||||
//beq r0, r0, L13 // beq r0, r0, L13
|
||||
// nop // sll r0, r0, 0
|
||||
goto block_10; // branch always
|
||||
|
||||
|
||||
block_9:
|
||||
c->addiu(a2, r0, 0); // addiu a2, r0, 0
|
||||
|
||||
block_10:
|
||||
c->lui(a3, 12288); // lui a3, 12288
|
||||
c->ori(a3, a3, 16384); // ori a3, a3, 16384
|
||||
c->dsll32(t0, a2, 31); // dsll32 t0, a2, 31
|
||||
c->dsrl32(t0, t0, 26); // dsrl32 t0, t0, 26
|
||||
c->ori(t0, t0, 13); // ori t0, t0, 13
|
||||
c->dsll32(t1, a0, 31); // dsll32 t1, a0, 31
|
||||
c->dsrl32(t1, t1, 27); // dsrl32 t1, t1, 27
|
||||
c->or_(t0, t0, t1); // or t0, t0, t1
|
||||
c->dsll32(t1, v1, 31); // dsll32 t1, v1, 31
|
||||
c->dsrl32(t1, t1, 25); // dsrl32 t1, t1, 25
|
||||
c->or_(t0, t0, t1); // or t0, t0, t1
|
||||
c->dsll32(t0, t0, 21); // dsll32 t0, t0, 21
|
||||
c->dsrl32(t0, t0, 6); // dsrl32 t0, t0, 6
|
||||
c->or_(a3, a3, t0); // or a3, a3, t0
|
||||
c->sw(a3, 80, s3); // sw a3, 80(s3)
|
||||
c->lui(a3, 12288); // lui a3, 12288
|
||||
c->ori(a3, a3, 16384); // ori a3, a3, 16384
|
||||
c->dsll32(a2, a2, 31); // dsll32 a2, a2, 31
|
||||
c->dsrl32(a2, a2, 26); // dsrl32 a2, a2, 26
|
||||
c->ori(a2, a2, 12); // ori a2, a2, 12
|
||||
c->dsll32(a0, a0, 31); // dsll32 a0, a0, 31
|
||||
c->dsrl32(a0, a0, 27); // dsrl32 a0, a0, 27
|
||||
c->or_(a0, a2, a0); // or a0, a2, a0
|
||||
c->dsll32(v1, v1, 31); // dsll32 v1, v1, 31
|
||||
c->dsrl32(v1, v1, 25); // dsrl32 v1, v1, 25
|
||||
c->or_(v1, a0, v1); // or v1, a0, v1
|
||||
c->dsll32(v1, v1, 21); // dsll32 v1, v1, 21
|
||||
c->dsrl32(v1, v1, 6); // dsrl32 v1, v1, 6
|
||||
c->or_(v1, a3, v1); // or v1, a3, v1
|
||||
c->sw(v1, 84, s3); // sw v1, 84(s3)
|
||||
bc = c->sgpr64(s7) == c->sgpr64(a1); // beq s7, a1, L19
|
||||
c->mov64(v1, s7); // or v1, s7, r0
|
||||
if (bc) {goto block_20;} // branch non-likely
|
||||
|
||||
c->lwu(v1, 84, gp); // lwu v1, 84(gp)
|
||||
c->lwu(a0, 88, gp); // lwu a0, 88(gp)
|
||||
c->lwu(a0, 88, gp); // lwu a0, 88(gp)
|
||||
c->daddiu(a0, a0, 12); // daddiu a0, a0, 12
|
||||
c->addiu(a2, r0, 0); // addiu a2, r0, 0
|
||||
//beq r0, r0, L15 // beq r0, r0, L15
|
||||
// nop // sll r0, r0, 0
|
||||
goto block_13; // branch always
|
||||
|
||||
|
||||
block_12:
|
||||
c->dsll(a3, a0, 4); // dsll a3, a0, 4
|
||||
c->daddu(a3, v1, a3); // daddu a3, v1, a3
|
||||
c->lq(a3, 4828, a3); // lq a3, 4828(a3)
|
||||
c->dsll(t0, a2, 4); // dsll t0, a2, 4
|
||||
c->daddu(t0, a1, t0); // daddu t0, a1, t0
|
||||
c->lq(t0, 60, t0); // lq t0, 60(t0)
|
||||
c->por(a3, a3, t0); // por a3, a3, t0
|
||||
c->dsll(t0, a0, 4); // dsll t0, a0, 4
|
||||
c->daddu(t0, v1, t0); // daddu t0, v1, t0
|
||||
c->sq(a3, 4828, t0); // sq a3, 4828(t0)
|
||||
c->daddiu(a2, a2, 1); // daddiu a2, a2, 1
|
||||
|
||||
block_13:
|
||||
c->slti(a3, a2, 3); // slti a3, a2, 3
|
||||
bc = c->sgpr64(a3) != 0; // bne a3, r0, L14
|
||||
// nop // sll r0, r0, 0
|
||||
if (bc) {goto block_12;} // branch non-likely
|
||||
|
||||
c->mov64(v1, s7); // or v1, s7, r0
|
||||
c->mov64(v1, s7); // or v1, s7, r0
|
||||
c->load_symbol2(t9, cache.adgif_shader_texture_simple);// lw t9, adgif-shader<-texture-simple!(s7)
|
||||
c->daddiu(a0, s3, 128); // daddiu a0, s3, 128
|
||||
call_addr = c->gprs[t9].du32[0]; // function call:
|
||||
c->sll(v0, ra, 0); // sll v0, ra, 0
|
||||
c->jalr(call_addr); // jalr ra, t9
|
||||
c->ld(v1, 60, gp); // ld v1, 60(gp)
|
||||
c->sd(v1, 176, s3); // sd v1, 176(s3)
|
||||
c->addiu(v1, r0, 8); // addiu v1, r0, 8
|
||||
c->sd(v1, 184, s3); // sd v1, 184(s3)
|
||||
c->ld(v1, 68, gp); // ld v1, 68(gp)
|
||||
c->sd(v1, 192, s3); // sd v1, 192(s3)
|
||||
c->addiu(v1, r0, 66); // addiu v1, r0, 66
|
||||
c->sb(v1, 200, s3); // sb v1, 200(s3)
|
||||
c->lqc2(vf1, 0, s1); // lqc2 vf1, 0(s1)
|
||||
c->lqc2(vf2, 16, s1); // lqc2 vf2, 16(s1)
|
||||
c->lqc2(vf3, 32, s1); // lqc2 vf3, 32(s1)
|
||||
c->lqc2(vf4, 48, s1); // lqc2 vf4, 48(s1)
|
||||
c->lqc2(vf5, 128, s3); // lqc2 vf5, 128(s3)
|
||||
c->lqc2(vf6, 144, s3); // lqc2 vf6, 144(s3)
|
||||
c->lqc2(vf7, 160, s3); // lqc2 vf7, 160(s3)
|
||||
c->lqc2(vf8, 176, s3); // lqc2 vf8, 176(s3)
|
||||
c->lqc2(vf9, 192, s3); // lqc2 vf9, 192(s3)
|
||||
c->lqc2(vf10, 80, s3); // lqc2 vf10, 80(s3)
|
||||
c->lqc2(vf11, 28, gp); // lqc2 vf11, 28(gp)
|
||||
c->lqc2(vf12, 44, gp); // lqc2 vf12, 44(gp)
|
||||
//beq r0, r0, L18 // beq r0, r0, L18
|
||||
// nop // sll r0, r0, 0
|
||||
goto block_18; // branch always
|
||||
|
||||
|
||||
block_15:
|
||||
c->addiu(v1, r0, 80); // addiu v1, r0, 80
|
||||
c->lw(a0, 224, s3); // lw a0, 224(s3)
|
||||
c->slt(a1, v1, a0); // slt a1, v1, a0
|
||||
c->movz(v1, a0, a1); // movz v1, a0, a1
|
||||
c->sw(v1, 228, s3); // sw v1, 228(s3)
|
||||
c->lbu(v1, 1, s2); // lbu v1, 1(s2)
|
||||
c->andi(v1, v1, 1); // andi v1, v1, 1
|
||||
c->dsll(v1, v1, 4); // dsll v1, v1, 4
|
||||
c->daddiu(v1, v1, 48); // daddiu v1, v1, 48
|
||||
c->daddu(a0, v1, s3); // daddu a0, v1, s3
|
||||
c->lw(v1, 4, s4); // lw v1, 4(s4)
|
||||
c->lq(a0, 0, a0); // lq a0, 0(a0)
|
||||
c->daddiu(a1, v1, 16); // daddiu a1, v1, 16
|
||||
c->lw(v1, 228, s3); // lw v1, 228(s3)
|
||||
c->sq(a0, -16, a1); // sq a0, -16(a1)
|
||||
c->sqc2(vf1, 0, a1); // sqc2 vf1, 0(a1)
|
||||
c->sqc2(vf2, 16, a1); // sqc2 vf2, 16(a1)
|
||||
c->sqc2(vf3, 32, a1); // sqc2 vf3, 32(a1)
|
||||
c->sqc2(vf4, 48, a1); // sqc2 vf4, 48(a1)
|
||||
c->sqc2(vf10, 64, a1); // sqc2 vf10, 64(a1)
|
||||
c->sqc2(vf11, 80, a1); // sqc2 vf11, 80(a1)
|
||||
c->sqc2(vf12, 96, a1); // sqc2 vf12, 96(a1)
|
||||
c->sw(v1, 92, a1); // sw v1, 92(a1)
|
||||
c->sqc2(vf5, 112, a1); // sqc2 vf5, 112(a1)
|
||||
c->sqc2(vf6, 128, a1); // sqc2 vf6, 128(a1)
|
||||
c->sqc2(vf7, 144, a1); // sqc2 vf7, 144(a1)
|
||||
c->sqc2(vf8, 160, a1); // sqc2 vf8, 160(a1)
|
||||
c->sqc2(vf9, 176, a1); // sqc2 vf9, 176(a1)
|
||||
c->ori(a0, v1, 32768); // ori a0, v1, 32768
|
||||
c->sw(a0, 140, a1); // sw a0, 140(a1)
|
||||
c->daddiu(a0, a1, 192); // daddiu a0, a1, 192
|
||||
c->sw(a0, 4, s4); // sw a0, 4(s4)
|
||||
c->lbu(a0, 0, s2); // lbu a0, 0(s2)
|
||||
c->addiu(a1, r0, 3); // addiu a1, r0, 3
|
||||
// Unknown instr: divu a0, a1
|
||||
// Unknown instr: mfhi a0
|
||||
c->gprs[a0].du64[0] = c->gprs[a0].du32[0] % c->gprs[a1].du32[0];
|
||||
c->dsll(a0, a0, 4); // dsll a0, a0, 4
|
||||
c->daddu(a0, r0, a0); // daddu a0, r0, a0
|
||||
c->daddu(a0, a0, s3); // daddu a0, a0, s3
|
||||
c->addiu(a1, r0, 3); // addiu a1, r0, 3
|
||||
c->mult3(a1, a1, v1); // mult3 a1, a1, v1
|
||||
c->ld(a2, 0, a0); // ld a2, 0(a0)
|
||||
c->lui(a3, -1); // lui a3, -1
|
||||
c->and_(a2, a2, a3); // and a2, a2, a3
|
||||
c->dsll32(a3, a1, 16); // dsll32 a3, a1, 16
|
||||
c->dsrl32(a3, a3, 16); // dsrl32 a3, a3, 16
|
||||
c->or_(a2, a2, a3); // or a2, a2, a3
|
||||
c->sd(a2, 0, a0); // sd a2, 0(a0)
|
||||
c->lwu(a2, 12, a0); // lwu a2, 12(a0)
|
||||
c->lui(a3, -256); // lui a3, -256
|
||||
c->ori(a3, a3, 65535); // ori a3, a3, 65535
|
||||
c->and_(a2, a2, a3); // and a2, a2, a3
|
||||
c->dsll32(a1, a1, 24); // dsll32 a1, a1, 24
|
||||
c->dsrl32(a1, a1, 8); // dsrl32 a1, a1, 8
|
||||
c->or_(a1, a2, a1); // or a1, a2, a1
|
||||
c->sw(a1, 12, a0); // sw a1, 12(a0)
|
||||
c->lw(a2, 4, s4); // lw a2, 4(s4)
|
||||
c->lq(a3, 0, a0); // lq a3, 0(a0)
|
||||
c->lq(a0, 208, s3); // lq a0, 208(s3)
|
||||
c->lw(a1, 232, s3); // lw a1, 232(s3)
|
||||
// nop // sll r0, r0, 0
|
||||
c->sq(a3, 0, a2); // sq a3, 0(a2)
|
||||
c->daddiu(a2, a2, 16); // daddiu a2, a2, 16
|
||||
c->sw(a2, 4, s4); // sw a2, 4(s4)
|
||||
// nop // sll r0, r0, 0
|
||||
|
||||
block_16:
|
||||
// nop // sll r0, r0, 0
|
||||
c->lw(t0, 12, a1); // lw t0, 12(a1)
|
||||
// nop // sll r0, r0, 0
|
||||
c->lw(a3, 44, a1); // lw a3, 44(a1)
|
||||
c->pextlb(t0, r0, t0); // pextlb t0, r0, t0
|
||||
c->lqc2(vf15, 0, a1); // lqc2 vf15, 0(a1)
|
||||
c->pextlh(t0, r0, t0); // pextlh t0, r0, t0
|
||||
c->lqc2(vf16, 32, a1); // lqc2 vf16, 32(a1)
|
||||
c->pextlb(a3, r0, a3); // pextlb a3, r0, a3
|
||||
c->lqc2(vf13, 16, a1); // lqc2 vf13, 16(a1)
|
||||
c->pextlh(a3, r0, a3); // pextlh a3, r0, a3
|
||||
c->lqc2(vf14, 48, a1); // lqc2 vf14, 48(a1)
|
||||
c->vftoi12(DEST::xyzw, vf15, vf15); // vftoi12.xyzw vf15, vf15
|
||||
c->sq(t0, 16, a2); // sq t0, 16(a2)
|
||||
c->vftoi12(DEST::xyzw, vf16, vf16); // vftoi12.xyzw vf16, vf16
|
||||
c->sq(a3, 64, a2); // sq a3, 64(a2)
|
||||
// nop // sll r0, r0, 0
|
||||
c->lw(t0, 8, a1); // lw t0, 8(a1)
|
||||
// nop // sll r0, r0, 0
|
||||
c->lw(a3, 40, a1); // lw a3, 40(a1)
|
||||
c->daddiu(a1, a1, 64); // daddiu a1, a1, 64
|
||||
c->mov128_gpr_vf(t2, vf15); // qmfc2.i t2, vf15
|
||||
c->daddiu(v1, v1, -2); // daddiu v1, v1, -2
|
||||
c->mov128_gpr_vf(t1, vf16); // qmfc2.i t1, vf16
|
||||
c->pand(t2, t2, a0); // pand t2, t2, a0
|
||||
c->sqc2(vf13, 32, a2); // sqc2 vf13, 32(a2)
|
||||
c->pand(t1, t1, a0); // pand t1, t1, a0
|
||||
c->sqc2(vf14, 80, a2); // sqc2 vf14, 80(a2)
|
||||
c->or_(t0, t2, t0); // or t0, t2, t0
|
||||
// nop // sll r0, r0, 0
|
||||
c->or_(a3, t1, a3); // or a3, t1, a3
|
||||
// nop // sll r0, r0, 0
|
||||
c->sq(t0, 0, a2); // sq t0, 0(a2)
|
||||
c->daddiu(a2, a2, 96); // daddiu a2, a2, 96
|
||||
bc = ((s64)c->sgpr64(v1)) > 0; // bgtz v1, L17
|
||||
c->sq(a3, -48, a2); // sq a3, -48(a2)
|
||||
if (bc) {goto block_16;} // branch non-likely
|
||||
|
||||
c->lwu(v1, 4, s4); // lwu v1, 4(s4)
|
||||
c->addiu(a0, r0, 48); // addiu a0, r0, 48
|
||||
c->lw(a1, 228, s3); // lw a1, 228(s3)
|
||||
c->mult3(a0, a0, a1); // mult3 a0, a0, a1
|
||||
c->daddu(v1, v1, a0); // daddu v1, v1, a0
|
||||
c->sw(v1, 4, s4); // sw v1, 4(s4)
|
||||
c->lwu(v1, 4, s4); // lwu v1, 4(s4)
|
||||
c->lq(a0, 96, s3); // lq a0, 96(s3)
|
||||
c->sq(a0, 0, v1); // sq a0, 0(v1)
|
||||
c->lwu(v1, 4, s4); // lwu v1, 4(s4)
|
||||
c->daddiu(v1, v1, 16); // daddiu v1, v1, 16
|
||||
c->sw(v1, 4, s4); // sw v1, 4(s4)
|
||||
c->lw(v1, 224, s3); // lw v1, 224(s3)
|
||||
c->daddiu(v1, v1, -78); // daddiu v1, v1, -78
|
||||
c->sw(v1, 224, s3); // sw v1, 224(s3)
|
||||
c->lwu(v1, 232, s3); // lwu v1, 232(s3)
|
||||
c->daddiu(v1, v1, 2496); // daddiu v1, v1, 2496
|
||||
c->sw(v1, 232, s3); // sw v1, 232(s3)
|
||||
c->lbu(v1, 0, s2); // lbu v1, 0(s2)
|
||||
c->daddiu(v1, v1, 1); // daddiu v1, v1, 1
|
||||
c->sb(v1, 0, s2); // sb v1, 0(s2)
|
||||
c->lbu(v1, 1, s2); // lbu v1, 1(s2)
|
||||
c->daddiu(v1, v1, 1); // daddiu v1, v1, 1
|
||||
c->sb(v1, 1, s2); // sb v1, 1(s2)
|
||||
|
||||
block_18:
|
||||
c->addiu(v1, r0, 2); // addiu v1, r0, 2
|
||||
c->lw(a0, 224, s3); // lw a0, 224(s3)
|
||||
c->slt(v1, v1, a0); // slt v1, v1, a0
|
||||
bc = c->sgpr64(v1) != 0; // bne v1, r0, L16
|
||||
// nop // sll r0, r0, 0
|
||||
if (bc) {goto block_15;} // branch non-likely
|
||||
|
||||
c->mov64(v1, s7); // or v1, s7, r0
|
||||
|
||||
block_20:
|
||||
c->load_symbol2(t9, cache.paused); // lw t9, paused?(s7)
|
||||
call_addr = c->gprs[t9].du32[0]; // function call:
|
||||
c->sll(v0, ra, 0); // sll v0, ra, 0
|
||||
c->jalr(call_addr); // jalr ra, t9
|
||||
bc = c->sgpr64(s7) != c->sgpr64(v0); // bne s7, v0, L21
|
||||
c->mov64(v1, s7); // or v1, s7, r0
|
||||
if (bc) {goto block_25;} // branch non-likely
|
||||
|
||||
c->lwu(v1, 0, gp); // lwu v1, 0(gp)
|
||||
c->andi(v1, v1, 8); // andi v1, v1, 8
|
||||
bc = c->sgpr64(v1) == 0; // beq v1, r0, L21
|
||||
c->mov64(v1, s7); // or v1, s7, r0
|
||||
if (bc) {goto block_25;} // branch non-likely
|
||||
|
||||
c->lwu(v1, 0, gp); // lwu v1, 0(gp)
|
||||
c->andi(v1, v1, 16); // andi v1, v1, 16
|
||||
bc = c->sgpr64(v1) != 0; // bne v1, r0, L20
|
||||
c->mov64(v1, s7); // or v1, s7, r0
|
||||
if (bc) {goto block_24;} // branch non-likely
|
||||
|
||||
c->sh(r0, 8, gp); // sh r0, 8(gp)
|
||||
c->gprs[v1].du64[0] = 0; // or v1, r0, r0
|
||||
|
||||
block_24:
|
||||
c->addiu(v1, r0, -17); // addiu v1, r0, -17
|
||||
c->lwu(a0, 0, gp); // lwu a0, 0(gp)
|
||||
c->and_(v1, v1, a0); // and v1, v1, a0
|
||||
c->sw(v1, 0, gp); // sw v1, 0(gp)
|
||||
|
||||
block_25:
|
||||
c->lwu(a3, 4, s4); // lwu a3, 4(s4)
|
||||
bc = c->sgpr64(s5) == c->sgpr64(a3); // beq s5, a3, L22
|
||||
c->mov64(v1, s7); // or v1, s7, r0
|
||||
if (bc) {goto block_27;} // branch non-likely
|
||||
|
||||
c->lwu(v1, 4, s4); // lwu v1, 4(s4)
|
||||
c->lui(a0, 8192); // lui a0, 8192
|
||||
c->sd(a0, 0, v1); // sd a0, 0(v1)
|
||||
c->sw(r0, 8, v1); // sw r0, 8(v1)
|
||||
c->sw(r0, 12, v1); // sw r0, 12(v1)
|
||||
c->daddiu(v1, v1, 16); // daddiu v1, v1, 16
|
||||
c->sw(v1, 4, s4); // sw v1, 4(s4)
|
||||
c->load_symbol2(t9, cache.dma_bucket_insert_tag); // lw t9, dma-bucket-insert-tag(s7)
|
||||
c->load_symbol2(v1, cache.display); // lw v1, *display*(s7)
|
||||
c->lw(v1, 0, v1); // lw v1, 0(v1)
|
||||
c->dsll(v1, v1, 2); // dsll v1, v1, 2
|
||||
c->load_symbol2(a0, cache.display); // lw a0, *display*(s7)
|
||||
c->daddu(v1, v1, a0); // daddu v1, v1, a0
|
||||
c->lwu(v1, 8, v1); // lwu v1, 8(v1)
|
||||
c->lwu(a0, 40, v1); // lwu a0, 40(v1)
|
||||
c->lw(a1, 76, gp); // lw a1, 76(gp)
|
||||
c->mov64(a2, s5); // or a2, s5, r0
|
||||
call_addr = c->gprs[t9].du32[0]; // function call:
|
||||
c->sll(v0, ra, 0); // sll v0, ra, 0
|
||||
c->jalr(call_addr); // jalr ra, t9
|
||||
c->mov64(v1, v0); // or v1, v0, r0
|
||||
|
||||
block_27:
|
||||
//beq r0, r0, L24 // beq r0, r0, L24
|
||||
// nop // sll r0, r0, 0
|
||||
goto block_29; // branch always
|
||||
|
||||
|
||||
block_28:
|
||||
c->load_symbol2(t9, cache.format); // lw t9, format(s7)
|
||||
c->load_symbol2(a0, cache.stdcon); // lw a0, *stdcon*(s7)
|
||||
// daddiu a1, fp, L29 // daddiu a1, fp, L29
|
||||
ASSERT_NOT_REACHED(); // ran out of memory error print.
|
||||
call_addr = c->gprs[t9].du32[0]; // function call:
|
||||
c->sll(v0, ra, 0); // sll v0, ra, 0
|
||||
c->jalr(call_addr); // jalr ra, t9
|
||||
c->mov64(v1, v0); // or v1, v0, r0
|
||||
|
||||
block_29:
|
||||
c->gprs[v0].du64[0] = 0; // or v0, r0, r0
|
||||
c->ld(ra, 0, sp); // ld ra, 0(sp)
|
||||
c->ld(fp, 8, sp); // ld fp, 8(sp)
|
||||
c->lq(gp, 96, sp); // lq gp, 96(sp)
|
||||
c->lq(s5, 80, sp); // lq s5, 80(sp)
|
||||
c->lq(s4, 64, sp); // lq s4, 64(sp)
|
||||
c->lq(s3, 48, sp); // lq s3, 48(sp)
|
||||
c->lq(s2, 32, sp); // lq s2, 32(sp)
|
||||
c->lq(s1, 16, sp); // lq s1, 16(sp)
|
||||
//jr ra // jr ra
|
||||
c->daddiu(sp, sp, 112); // daddiu sp, sp, 112
|
||||
goto end_of_function; // return
|
||||
|
||||
// nop // sll r0, r0, 0
|
||||
// nop // sll r0, r0, 0
|
||||
// nop // sll r0, r0, 0
|
||||
end_of_function:
|
||||
return c->gprs[v0].du64[0];
|
||||
}
|
||||
|
||||
void link() {
|
||||
cache.display = intern_from_c(-1, 0, "*display*").c();
|
||||
cache.prim_work = intern_from_c(-1, 0, "*prim-work*").c();
|
||||
cache.stdcon = intern_from_c(-1, 0, "*stdcon*").c();
|
||||
cache.adgif_shader_texture_simple = intern_from_c(-1, 0, "adgif-shader<-texture-simple!").c();
|
||||
cache.dma_bucket_insert_tag = intern_from_c(-1, 0, "dma-bucket-insert-tag").c();
|
||||
cache.format = intern_from_c(-1, 0, "format").c();
|
||||
cache.lookup_texture_by_id = intern_from_c(-1, 0, "lookup-texture-by-id").c();
|
||||
cache.paused = intern_from_c(-1, 0, "paused?").c();
|
||||
gLinkedFunctionTable.reg("(method 9 prim-strip)", execute, 256);
|
||||
}
|
||||
|
||||
} // namespace method_9_prim_strip
|
||||
} // namespace Mips2C
|
||||
// add method_9_prim_strip::link to the link callback table for the object file.
|
||||
// FWD DEC:
|
@ -281,7 +281,6 @@ namespace generic_no_light_proc { extern void link(); }
|
||||
namespace method_9_font_work { extern void link(); }
|
||||
namespace draw_string_asm { extern void link(); }
|
||||
namespace get_string_length { extern void link(); }
|
||||
namespace method_9_prim_strip { extern void link(); }
|
||||
namespace adgif_shader_texture_with_update { extern void link(); }
|
||||
namespace moving_sphere_triangle_intersect { extern void link(); }
|
||||
namespace collide_do_primitives { extern void link(); }
|
||||
@ -566,7 +565,6 @@ PerGameVersion<std::unordered_map<std::string, std::vector<void (*)()>>> gMips2C
|
||||
{"texture", {jak3::adgif_shader_texture_with_update::link}},
|
||||
{"collide-func",
|
||||
{jak3::moving_sphere_triangle_intersect::link, jak3::collide_do_primitives::link}},
|
||||
{"prim", {jak3::method_9_prim_strip::link}},
|
||||
{"joint", {jak3::cspace_parented_transformq_joint::link}},
|
||||
{"foreground",
|
||||
{jak3::foreground_check_longest_edge_asm::link, jak3::foreground_generic_merc::link,
|
||||
|
@ -1171,11 +1171,11 @@
|
||||
)
|
||||
(target-eco-process)
|
||||
(target-color-effect-process)
|
||||
(if (logtest? (-> self target-effect) 7)
|
||||
(if (logtest? (-> self target-effect) (target-effect te0 te1 te2))
|
||||
(logior! (-> self draw global-effect) (draw-control-global-effect no-textures))
|
||||
(logclear! (-> self draw global-effect) (draw-control-global-effect no-textures))
|
||||
)
|
||||
(if (logtest? (-> self target-effect) 56)
|
||||
(if (logtest? (-> self target-effect) (target-effect te3 te4 te5))
|
||||
(logior! (-> self draw global-effect) (draw-control-global-effect rim-lights))
|
||||
(logclear! (-> self draw global-effect) (draw-control-global-effect rim-lights))
|
||||
)
|
||||
|
@ -58,7 +58,7 @@ These are owned by the thing submitting to prim, not the prim renderer itself."
|
||||
(alpha gs-alpha)
|
||||
(bucket bucket-id)
|
||||
(sink uint32)
|
||||
(level basic)
|
||||
(level level)
|
||||
(texture-index uint32)
|
||||
(data prim-vertex :inline :dynamic)
|
||||
)
|
||||
|
@ -77,7 +77,243 @@
|
||||
(none)
|
||||
)
|
||||
|
||||
(defmethod-mips2c "(method 9 prim-strip)" 9 prim-strip)
|
||||
(defmethod generate-dma! ((this prim-strip) (arg0 matrix))
|
||||
"Generate DMA for prim rendering."
|
||||
(local-vars
|
||||
(a3-6 uint128)
|
||||
(a3-13 uint128)
|
||||
(a3-14 uint128)
|
||||
(t0-13 uint128)
|
||||
(t0-14 uint128)
|
||||
(t1-4 uint128)
|
||||
(t1-5 uint128)
|
||||
(t2-0 uint128)
|
||||
(t2-1 uint128)
|
||||
)
|
||||
(rlet ((vf1 :class vf)
|
||||
(vf10 :class vf)
|
||||
(vf11 :class vf)
|
||||
(vf12 :class vf)
|
||||
(vf13 :class vf)
|
||||
(vf14 :class vf)
|
||||
(vf15 :class vf)
|
||||
(vf16 :class vf)
|
||||
(vf2 :class vf)
|
||||
(vf3 :class vf)
|
||||
(vf4 :class vf)
|
||||
(vf5 :class vf)
|
||||
(vf6 :class vf)
|
||||
(vf7 :class vf)
|
||||
(vf8 :class vf)
|
||||
(vf9 :class vf)
|
||||
)
|
||||
(let ((v1-5 (-> *display* frames (-> *display* on-screen) global-buf))
|
||||
(a0-4 (/ (+ (-> this num-verts) 79) (the-as uint 80)))
|
||||
)
|
||||
(cond
|
||||
((< (the-as uint (+ (* (the-as uint 144) (-> this num-verts)) (* a0-4 128)))
|
||||
(the-as uint (&- (-> v1-5 end) (the-as uint (-> v1-5 base))))
|
||||
)
|
||||
(let* ((a1-5 (lookup-texture-by-id (-> this tex-id)))
|
||||
(s3-0 *prim-work*)
|
||||
(s2-0 (-> s3-0 sinks (-> this sink)))
|
||||
(s4-0 (-> *display* frames (-> *display* on-screen) global-buf))
|
||||
(s5-0 (-> s4-0 base))
|
||||
)
|
||||
(set! (-> s3-0 in-verts) (the-as int (-> this num-verts)))
|
||||
(set! (-> s3-0 vert-ptr) (-> this data))
|
||||
(let ((v1-20 (if (logtest? (-> this flags) (prim-flags alpha-blend-enable))
|
||||
1
|
||||
0
|
||||
)
|
||||
)
|
||||
(a0-11 (if (logtest? (-> this flags) (prim-flags texture-enable))
|
||||
1
|
||||
0
|
||||
)
|
||||
)
|
||||
(a2-3 (if (logtest? (-> this flags) (prim-flags fog-enable))
|
||||
1
|
||||
0
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! (-> s3-0 giftag fan-prim)
|
||||
(new 'static 'gif-tag-prim
|
||||
:pre #x1
|
||||
:nreg #x3
|
||||
:prim (new 'static 'gs-prim :prim (gs-prim-type tri-fan) :iip #x1 :abe v1-20 :tme a0-11 :fge a2-3)
|
||||
)
|
||||
)
|
||||
(set! (-> s3-0 giftag str-prim)
|
||||
(new 'static 'gif-tag-prim
|
||||
:pre #x1
|
||||
:nreg #x3
|
||||
:prim (new 'static 'gs-prim :prim (gs-prim-type tri-strip) :iip #x1 :abe v1-20 :tme a0-11 :fge a2-3)
|
||||
)
|
||||
)
|
||||
)
|
||||
(when a1-5
|
||||
(let ((v1-28 (-> this level)))
|
||||
(-> this texture-index)
|
||||
(let ((a0-17 (+ (-> this texture-index) 12)))
|
||||
(dotimes (a2-7 3)
|
||||
(let ((a3-5 (-> v1-28 texture-mask a0-17 mask quad))
|
||||
(t0-9 (-> a1-5 masks data a2-7 mask quad))
|
||||
)
|
||||
(.por a3-6 a3-5 t0-9)
|
||||
)
|
||||
(set! (-> v1-28 texture-mask a0-17 mask quad) a3-6)
|
||||
)
|
||||
)
|
||||
)
|
||||
(adgif-shader<-texture-simple! (-> s3-0 shader) a1-5)
|
||||
(set! (-> s3-0 shader clamp) (-> this clamp))
|
||||
(set! (-> s3-0 shader clamp-reg) (gs-reg64 clamp-1))
|
||||
(set! (-> s3-0 shader alpha) (the-as gs-miptbp (-> this alpha)))
|
||||
(set! (-> s3-0 shader reg-4) (gs-reg alpha-1))
|
||||
(.lvf vf1 (&-> arg0 rvec quad))
|
||||
(.lvf vf2 (&-> arg0 uvec quad))
|
||||
(.lvf vf3 (&-> arg0 fvec quad))
|
||||
(.lvf vf4 (&-> arg0 trans quad))
|
||||
(.lvf vf5 (&-> s3-0 shader quad 0 quad))
|
||||
(.lvf vf6 (&-> s3-0 shader quad 1 quad))
|
||||
(.lvf vf7 (&-> s3-0 shader quad 2 quad))
|
||||
(.lvf vf8 (&-> s3-0 shader quad 3 quad))
|
||||
(.lvf vf9 (&-> s3-0 shader quad 4 quad))
|
||||
(.lvf vf10 (&-> s3-0 giftag qword quad))
|
||||
(.lvf vf11 (&-> this adnops 0 quad))
|
||||
(.lvf vf12 (&-> this adnops 1 quad))
|
||||
(while (< 2 (-> s3-0 in-verts))
|
||||
(set! (-> s3-0 num-verts) (min 80 (-> s3-0 in-verts)))
|
||||
(let* ((a0-20 (-> s3-0 control-tmpl (logand (-> s2-0 control-count) 1)))
|
||||
(v1-41 (-> s4-0 base))
|
||||
(a0-21 (-> a0-20 quad))
|
||||
(a1-6 (the-as object (&+ v1-41 16)))
|
||||
(v1-42 (-> s3-0 num-verts))
|
||||
)
|
||||
(set! (-> (the-as (pointer uint128) a1-6) -1) a0-21)
|
||||
(.svf (&-> (the-as (inline-array prim-vertex) a1-6) 0 stq quad) vf1)
|
||||
(.svf (&-> (the-as (inline-array prim-vertex) a1-6) 0 pos quad) vf2)
|
||||
(.svf (&-> (the-as (inline-array prim-vertex) a1-6) 1 stq quad) vf3)
|
||||
(.svf (&-> (the-as (inline-array prim-vertex) a1-6) 1 pos quad) vf4)
|
||||
(.svf (&-> (the-as (inline-array prim-vertex) a1-6) 2 stq quad) vf10)
|
||||
(.svf (&-> (the-as (inline-array prim-vertex) a1-6) 2 pos quad) vf11)
|
||||
(.svf (&-> (the-as (inline-array prim-vertex) a1-6) 3 stq quad) vf12)
|
||||
(set! (-> (the-as (inline-array prim-vertex) a1-6) 2 pos w) (the-as float v1-42))
|
||||
(.svf (&-> (the-as (inline-array prim-vertex) a1-6) 3 pos quad) vf5)
|
||||
(.svf (&-> (the-as (inline-array prim-vertex) a1-6) 4 stq quad) vf6)
|
||||
(.svf (&-> (the-as (inline-array prim-vertex) a1-6) 4 pos quad) vf7)
|
||||
(.svf (&-> (the-as (inline-array prim-vertex) a1-6) 5 stq quad) vf8)
|
||||
(.svf (&-> (the-as (inline-array prim-vertex) a1-6) 5 pos quad) vf9)
|
||||
(set! (-> (the-as (inline-array prim-vertex) a1-6) 4 col) (the-as rgba (logior v1-42 #x8000)))
|
||||
(set! (-> s4-0 base) (the-as pointer (-> (the-as (inline-array prim-vertex) a1-6) 6)))
|
||||
(let ((a0-28 (-> s3-0 vertex-tmpl (mod (-> s2-0 vertex-count) (the-as uint 3)))))
|
||||
(let ((a1-9 (* 3 v1-42)))
|
||||
(set! (-> a0-28 dma qwc) a1-9)
|
||||
(set! (-> a0-28 vif1 num) a1-9)
|
||||
)
|
||||
(let ((a2-13 (the-as object (-> s4-0 base)))
|
||||
(a3-11 (-> a0-28 quad))
|
||||
(a0-29 (-> s3-0 mask quad))
|
||||
(a1-13 (-> s3-0 vert-ptr))
|
||||
)
|
||||
(nop!)
|
||||
(set! (-> (the-as (inline-array prim-vertex) a2-13) 0 stq quad) a3-11)
|
||||
(let ((a2-14 (the-as (object object) (-> (the-as (inline-array prim-vertex) a2-13) 0 pos))))
|
||||
(set! (-> s4-0 base) (the-as pointer a2-14))
|
||||
(nop!)
|
||||
(label cfg-16)
|
||||
(nop!)
|
||||
(let ((t0-12 (the-as uint128 (-> a1-13 0 stq w))))
|
||||
(nop!)
|
||||
(let ((a3-12 (the-as uint128 (-> a1-13 1 stq w))))
|
||||
(.pextlb t0-13 0 t0-12)
|
||||
(.lvf vf15 (&-> a1-13 0 stq quad))
|
||||
(.pextlh t0-14 0 t0-13)
|
||||
(.lvf vf16 (&-> a1-13 1 stq quad))
|
||||
(.pextlb a3-13 0 a3-12)
|
||||
)
|
||||
)
|
||||
(.lvf vf13 (&-> a1-13 0 pos quad))
|
||||
(.pextlh a3-14 0 a3-13)
|
||||
(.lvf vf14 (&-> a1-13 1 pos quad))
|
||||
(vftoi12.xyzw vf15 vf15)
|
||||
(set! (-> (the-as (inline-array prim-vertex) a2-14) 0 pos quad) t0-14)
|
||||
(vftoi12.xyzw vf16 vf16)
|
||||
(set! (-> (the-as (inline-array prim-vertex) a2-14) 2 stq quad) a3-14)
|
||||
(nop!)
|
||||
(let ((t0-15 (the-as number (-> a1-13 0 stq z))))
|
||||
(nop!)
|
||||
(let ((a3-15 (the-as number (-> a1-13 1 stq z))))
|
||||
(set! a1-13 (the-as (inline-array prim-vertex) (-> a1-13 2)))
|
||||
(.mov t2-0 vf15)
|
||||
(+! v1-42 -2)
|
||||
(.mov t1-4 vf16)
|
||||
(.pand t2-1 t2-0 a0-29)
|
||||
(.svf (&-> (the-as (inline-array prim-vertex) a2-14) 1 stq quad) vf13)
|
||||
(.pand t1-5 t1-4 a0-29)
|
||||
(.svf (&-> (the-as (inline-array prim-vertex) a2-14) 2 pos quad) vf14)
|
||||
(let ((t0-16 (logior (the-as int t2-1) (the-as int t0-15))))
|
||||
(nop!)
|
||||
(let ((a3-16 (logior (the-as int t1-5) (the-as int a3-15))))
|
||||
(nop!)
|
||||
(set! (-> (the-as (inline-array prim-vertex) a2-14) 0 stq quad) (the-as uint128 t0-16))
|
||||
(set! a2-14 (the-as (object object) (-> (the-as (inline-array prim-vertex) a2-14) 3)))
|
||||
(b! (> v1-42 0) cfg-16 :delay (set! (-> (the-as (pointer uint128) a2-14) -3) (the-as uint128 a3-16)))
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(&+! (-> s4-0 base) (* 48 (-> s3-0 num-verts)))
|
||||
(set! (-> (the-as (pointer uint128) (-> s4-0 base))) (-> s3-0 call-scissor quad))
|
||||
(&+! (-> s4-0 base) 16)
|
||||
(+! (-> s3-0 in-verts) -78)
|
||||
(set! (-> s3-0 vert-ptr) (the-as (inline-array prim-vertex) (-> s3-0 vert-ptr 78)))
|
||||
(+! (-> s2-0 vertex-count) 1)
|
||||
(+! (-> s2-0 control-count) 1)
|
||||
)
|
||||
)
|
||||
(when (not (paused?))
|
||||
(when (logtest? (-> this flags) (prim-flags pf3))
|
||||
(when (not (logtest? (-> this flags) (prim-flags pf4)))
|
||||
(set! (-> this num-verts) (the-as uint 0))
|
||||
0
|
||||
)
|
||||
(logclear! (-> this flags) (prim-flags pf4))
|
||||
)
|
||||
)
|
||||
(let ((a3-17 (-> s4-0 base)))
|
||||
(when (!= s5-0 a3-17)
|
||||
(let ((v1-69 (the-as object (-> s4-0 base))))
|
||||
(set! (-> (the-as dma-packet v1-69) dma) (new 'static 'dma-tag :id (dma-tag-id next)))
|
||||
(set! (-> (the-as dma-packet v1-69) vif0) (new 'static 'vif-tag))
|
||||
(set! (-> (the-as dma-packet v1-69) vif1) (new 'static 'vif-tag))
|
||||
(set! (-> s4-0 base) (&+ (the-as pointer v1-69) 16))
|
||||
)
|
||||
(dma-bucket-insert-tag
|
||||
(-> *display* frames (-> *display* on-screen) bucket-group)
|
||||
(-> this bucket)
|
||||
s5-0
|
||||
(the-as (pointer dma-tag) a3-17)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(else
|
||||
(format *stdcon* "Out of DMA buffer for prim rendering~%")
|
||||
)
|
||||
)
|
||||
)
|
||||
0
|
||||
(none)
|
||||
)
|
||||
)
|
||||
|
||||
(defmethod setup-dma-and-tex ((this prim-strip) (arg0 draw-control))
|
||||
"Set up the bucket, prim sink, and texture."
|
||||
|
@ -1593,13 +1593,14 @@
|
||||
(debug-draw-actors *level* *display-actor-marks*)
|
||||
(collide-shape-draw-debug-marks)
|
||||
)
|
||||
; (when *display-trail-graph*
|
||||
; (let ((a0-67 *trail-graph*))
|
||||
; (if a0-67
|
||||
; (debug-draw a0-67)
|
||||
; )
|
||||
; )
|
||||
; )
|
||||
|
||||
(when *display-trail-graph*
|
||||
(let ((a0-67 *trail-graph*))
|
||||
(if a0-67
|
||||
(debug-draw a0-67)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
;; dispatch collision events
|
||||
(send-events-for-touching-shapes *touching-list*)
|
||||
|
@ -270,7 +270,7 @@
|
||||
:heap-size #x4000
|
||||
)
|
||||
(new 'static 'entity-info
|
||||
:ptype (type-ref neon-baron :method-count 0)
|
||||
:ptype (type-ref neon-baron :method-count 17)
|
||||
:pool '*16k-dead-pool*
|
||||
:heap-size #x4000
|
||||
)
|
||||
|
@ -1436,16 +1436,16 @@
|
||||
)
|
||||
|
||||
; ;; modify vertices for merc face animation. I believe this is somewhat racing DMA of merc data to VU1.
|
||||
; (with-profiler 'merc *profile-merc-color*
|
||||
; (blerc-execute)
|
||||
; (blerc-init)
|
||||
; )
|
||||
(with-profiler 'merc *profile-merc-color*
|
||||
(blerc-execute)
|
||||
(blerc-init)
|
||||
)
|
||||
|
||||
; ;; modify merc vertices for texture scrolling effect. Again, racing DMA.
|
||||
; (texscroll-execute)
|
||||
(texscroll-execute)
|
||||
|
||||
; ;; modify merc vertices for water ripple effect. Again, racing DMA.
|
||||
; (ripple-execute)
|
||||
(ripple-execute)
|
||||
|
||||
; ;; detect player/camera entering/exiting regions, and run callbacks for those.
|
||||
(region-execute)
|
||||
@ -1542,6 +1542,9 @@
|
||||
)
|
||||
)
|
||||
|
||||
;; send alp to C++ for blackout
|
||||
(put-display-env (-> *display* pmode alp))
|
||||
|
||||
;; update blackout settings
|
||||
(when (-> *setting-control* user-current render)
|
||||
(if (< (-> *display* base-clock frame-counter) (-> *game-info* blackout-time))
|
||||
@ -1620,10 +1623,10 @@
|
||||
(level-update *level*)
|
||||
|
||||
;; update memory card
|
||||
; (mc-run)
|
||||
(mc-run)
|
||||
|
||||
;; check for memory card errors.
|
||||
; (auto-save-check)
|
||||
(auto-save-check)
|
||||
0
|
||||
(none)
|
||||
)
|
||||
|
@ -52,6 +52,15 @@
|
||||
(define-extern remap-all-particles (function none))
|
||||
(define-extern process-particles (function none))
|
||||
|
||||
;; +++sp-cpuinfo-flag-s32
|
||||
(defenum sp-cpuinfo-flag-s32
|
||||
:bitfield #t
|
||||
:type int32
|
||||
:copy-entries sp-cpuinfo-flag
|
||||
)
|
||||
;; ---sp-cpuinfo-flag-s32
|
||||
|
||||
|
||||
;; DECOMP BEGINS
|
||||
|
||||
(define *sp-60-hz* #t)
|
||||
@ -62,25 +71,25 @@
|
||||
(adgif adgif-shader)
|
||||
(radius float)
|
||||
(omega float)
|
||||
(vel-sxvel vector :inline)
|
||||
(rot-syvel vector :inline)
|
||||
(fade rgbaf :inline)
|
||||
(acc vector :inline)
|
||||
(rotvel3d quaternion :inline)
|
||||
(vel vector3s :inline :overlay-at (-> vel-sxvel data 0))
|
||||
(accel vector3s :inline :overlay-at (-> acc data 0))
|
||||
(scalevelx float :overlay-at (-> vel-sxvel data 3))
|
||||
(scalevely float :overlay-at (-> rot-syvel data 3))
|
||||
(vel-sxvel vector :inline)
|
||||
(rot-syvel vector :inline)
|
||||
(fade rgbaf :inline)
|
||||
(acc vector :inline)
|
||||
(rotvel3d quaternion :inline)
|
||||
(vel vector3s :inline :overlay-at (-> vel-sxvel data 0))
|
||||
(accel vector3s :inline :overlay-at (-> acc data 0))
|
||||
(scalevelx float :overlay-at (-> vel-sxvel data 3))
|
||||
(scalevely float :overlay-at (-> rot-syvel data 3))
|
||||
(friction float)
|
||||
(timer int32)
|
||||
(flags sp-cpuinfo-flag)
|
||||
(flags-s32 int32 :overlay-at flags)
|
||||
(flags-s32 sp-cpuinfo-flag-s32 :overlay-at flags)
|
||||
(user-int32 int32)
|
||||
(user-uint32 uint32 :overlay-at user-int32)
|
||||
(user-float float :overlay-at user-int32)
|
||||
(user-pntr uint32 :overlay-at user-int32)
|
||||
(user-object basic :overlay-at user-int32)
|
||||
(user-sprite sprite-vec-data-2d :overlay-at user-int32)
|
||||
(user-uint32 uint32 :overlay-at user-int32)
|
||||
(user-float float :overlay-at user-int32)
|
||||
(user-pntr uint32 :overlay-at user-int32)
|
||||
(user-object basic :overlay-at user-int32)
|
||||
(user-sprite sprite-vec-data-2d :overlay-at user-int32)
|
||||
(sp-func (function sparticle-system sparticle-cpuinfo sprite-vec-data-3d uint none))
|
||||
(next-time uint32)
|
||||
(next-launcher basic)
|
||||
@ -90,10 +99,10 @@
|
||||
(user1-int16 uint16)
|
||||
(key sparticle-launch-control)
|
||||
(binding sparticle-launch-state)
|
||||
(data uint32 1 :overlay-at omega)
|
||||
(datab int8 4 :overlay-at omega)
|
||||
(dataf float 1 :overlay-at omega)
|
||||
(datac uint8 1 :overlay-at omega)
|
||||
(data uint32 1 :overlay-at omega)
|
||||
(datab int8 4 :overlay-at omega)
|
||||
(dataf float 1 :overlay-at omega)
|
||||
(datac uint8 1 :overlay-at omega)
|
||||
)
|
||||
)
|
||||
|
||||
|
@ -697,9 +697,8 @@
|
||||
(sp-relaunch-setup-fields arg0 arg1 arg2 arg3)
|
||||
(let* ((a1-1 (-> arg2 flags-s32))
|
||||
(v1-1 -2)
|
||||
;; og:preserve-this
|
||||
(a0-1 (the-as uint (-> arg3 r-g-b-a x)))
|
||||
(a1-2 (logand a1-1 #x4000))
|
||||
(a1-2 (logand a1-1 (sp-cpuinfo-flag-s32 sp-cpuinfo-flag-14)))
|
||||
)
|
||||
1
|
||||
(let ((a1-3 (sar a1-2 14)))
|
||||
@ -1196,16 +1195,11 @@
|
||||
(let* ((f30-0 (vector-vector-distance arg0 (math-camera-pos)))
|
||||
(v1-38 1)
|
||||
(a0-12 *time-of-day*)
|
||||
;; og:preserve-this added check
|
||||
(s3-1 (if (nonzero? *time-of-day*)
|
||||
(ash v1-38
|
||||
(if a0-12
|
||||
(-> a0-12 0 hours)
|
||||
0
|
||||
(s3-1 (ash v1-38 (if a0-12
|
||||
(-> a0-12 0 hours)
|
||||
0
|
||||
)
|
||||
)
|
||||
)
|
||||
0
|
||||
)
|
||||
)
|
||||
)
|
||||
(if (nonzero? (-> this matrix))
|
||||
@ -1415,16 +1409,11 @@
|
||||
(let* ((s5-1 (camera-pos))
|
||||
(v1-12 1)
|
||||
(a0-14 *time-of-day*)
|
||||
;; og:preserve-this added check
|
||||
(s4-1 (if (nonzero? *time-of-day*)
|
||||
(ash v1-12
|
||||
(if a0-14
|
||||
(-> a0-14 0 hours)
|
||||
0
|
||||
)
|
||||
(s4-1 (ash v1-12 (if a0-14
|
||||
(-> a0-14 0 hours)
|
||||
0
|
||||
)
|
||||
)
|
||||
0
|
||||
)
|
||||
)
|
||||
)
|
||||
(dotimes (s3-1 (-> *level* length))
|
||||
@ -1892,124 +1881,87 @@
|
||||
;; ERROR: Bad vector register dependency: vf1
|
||||
;; ERROR: Bad vector register dependency: vf2
|
||||
(defun sparticle-texture-day-night ((arg0 sparticle-system) (arg1 sparticle-cpuinfo) (arg2 sprite-vec-data-2d))
|
||||
(local-vars
|
||||
(v1-9 uint128)
|
||||
(v1-10 uint128)
|
||||
(v1-13 uint128)
|
||||
(v1-14 uint128)
|
||||
(v1-23 uint128)
|
||||
(v1-24 uint128)
|
||||
(v1-27 uint128)
|
||||
(v1-28 uint128)
|
||||
(v1-33 float)
|
||||
(a0-5 float)
|
||||
(a0-11 float)
|
||||
(t7-0 int) ;; og:preserve-this float -> int
|
||||
(t7-3 int) ;; og:preserve-this float -> int
|
||||
(s3-0 float)
|
||||
(s4-0 float)
|
||||
)
|
||||
(rlet ((vf1 :class vf)
|
||||
(vf2 :class vf)
|
||||
)
|
||||
(let ((s2-0 (the-as (array int32) (-> arg1 user-float))))
|
||||
(when (nonzero? s2-0)
|
||||
(let* ((v1-1 *time-of-day*)
|
||||
(s1-0 (if v1-1
|
||||
(-> v1-1 0 hours)
|
||||
0
|
||||
)
|
||||
)
|
||||
(f0-0 (rand-vu))
|
||||
)
|
||||
(.mov s4-0 vf1)
|
||||
(.mov s3-0 vf2)
|
||||
(cond
|
||||
((or (< s1-0 6) (< 18 s1-0))
|
||||
(let ((a1-1 (-> s2-0 7)))
|
||||
(when (nonzero? a1-1)
|
||||
(let ((v1-6 f0-0))
|
||||
(.mov vf2 v1-6)
|
||||
)
|
||||
(let ((v1-8 (the-as uint128 (make-u128 0 (-> s2-0 9)))))
|
||||
(.pextlb v1-9 0 v1-8)
|
||||
)
|
||||
(.pextlb v1-10 0 v1-9)
|
||||
(.mov vf1 v1-10)
|
||||
(.itof.vf vf1 vf1)
|
||||
(.mul.x.vf vf1 vf1 vf2)
|
||||
(let ((v1-12 (the-as uint128 (make-u128 0 (-> s2-0 8)))))
|
||||
(.pextlb v1-13 0 v1-12)
|
||||
)
|
||||
(.pextlb v1-14 0 v1-13)
|
||||
(.mov vf2 v1-14)
|
||||
(.itof.vf vf2 vf2)
|
||||
(.add.vf vf1 vf1 vf2)
|
||||
(let ((v1-15 (-> arg1 flags-s32)))
|
||||
(when (nonzero? (-> s2-0 10))
|
||||
(.lvf vf2 (&-> *time-of-day-context* current-prt-color quad))
|
||||
(.mul.vf vf1 vf1 vf2)
|
||||
(.mov a0-5 vf1)
|
||||
)
|
||||
(let ((v1-16 (logand v1-15 #x4000)))
|
||||
(.mov t7-0 vf1)
|
||||
(let ((v1-17 (sar v1-16 14)))
|
||||
;; og:preserve-this
|
||||
(set! (-> arg2 r-g-b-a quad) (the-as uint128 (logior (logand (the-as uint t7-0) (the-as uint -2)) v1-17)))
|
||||
)
|
||||
)
|
||||
)
|
||||
(particle-adgif-callback (-> arg1 adgif) (the-as texture-id a1-1))
|
||||
)
|
||||
)
|
||||
)
|
||||
(else
|
||||
(let ((a1-2 (-> s2-0 3)))
|
||||
(when (nonzero? a1-2)
|
||||
(let ((v1-20 f0-0))
|
||||
(.mov vf2 v1-20)
|
||||
)
|
||||
(let ((v1-22 (the-as uint128 (make-u128 0 (-> s2-0 5)))))
|
||||
(.pextlb v1-23 0 v1-22)
|
||||
)
|
||||
(.pextlb v1-24 0 v1-23)
|
||||
(.mov vf1 v1-24)
|
||||
(.itof.vf vf1 vf1)
|
||||
(.mul.x.vf vf1 vf1 vf2)
|
||||
(let ((v1-26 (the-as uint128 (make-u128 0 (-> s2-0 4)))))
|
||||
(.pextlb v1-27 0 v1-26)
|
||||
)
|
||||
(.pextlb v1-28 0 v1-27)
|
||||
(.mov vf2 v1-28)
|
||||
(.itof.vf vf2 vf2)
|
||||
(.add.vf vf1 vf1 vf2)
|
||||
(let ((v1-29 (-> arg1 flags-s32)))
|
||||
(when (nonzero? (-> s2-0 6))
|
||||
(.lvf vf2 (&-> *time-of-day-context* current-prt-color quad))
|
||||
(.mul.vf vf1 vf1 vf2)
|
||||
(.mov a0-11 vf1)
|
||||
)
|
||||
(let ((v1-30 (logand v1-29 #x4000)))
|
||||
(.mov t7-3 vf1)
|
||||
(let ((v1-31 (sar v1-30 14)))
|
||||
;; og:preserve-this
|
||||
(set! (-> arg2 r-g-b-a quad) (the-as uint128 (logior (logand (the-as uint t7-3) (the-as uint -2)) v1-31)))
|
||||
;; og:preserve-this this was rewritten from assembly!
|
||||
(let ((s2-0 (the-as (array int32) (-> arg1 user-object))))
|
||||
(when (nonzero? s2-0)
|
||||
(let* ((v1-1 *time-of-day*)
|
||||
(s1-0 (if v1-1
|
||||
(-> v1-1 0 hours)
|
||||
0
|
||||
)
|
||||
)
|
||||
)
|
||||
(particle-adgif-callback (-> arg1 adgif) (the-as texture-id a1-2))
|
||||
(f0-0 (rand-vu))
|
||||
)
|
||||
(cond
|
||||
((or (< s1-0 6) (< 18 s1-0))
|
||||
(let ((night-tex (the texture-id (-> s2-0 7))))
|
||||
(when (nonzero? night-tex)
|
||||
;; they use two consecutive pextlb with zeros to expand each 8-bit value in the rgba
|
||||
;; to a 32-bit value with no sign extension (i believe) and then itof it. very fast!
|
||||
;; 8 -> 32 expand to vf1
|
||||
;; multiply by f0-0 (in vf2)
|
||||
;; 8 -> 32 expand to vf2
|
||||
;; to float
|
||||
;; vf1 += vf2
|
||||
(let ((rgba-rand (the rgba (-> s2-0 9)))
|
||||
(rgba-base (the rgba (-> s2-0 8))))
|
||||
(set-vector! (-> arg2 r-g-b-a)
|
||||
(* f0-0 (-> rgba-rand r))
|
||||
(* f0-0 (-> rgba-rand g))
|
||||
(* f0-0 (-> rgba-rand b))
|
||||
(* f0-0 (-> rgba-rand a)))
|
||||
(+! (-> arg2 r-g-b-a x) (-> rgba-base r))
|
||||
(+! (-> arg2 r-g-b-a y) (-> rgba-base g))
|
||||
(+! (-> arg2 r-g-b-a z) (-> rgba-base b))
|
||||
(+! (-> arg2 r-g-b-a w) (-> rgba-base a))
|
||||
)
|
||||
(when (nonzero? (-> s2-0 10))
|
||||
(*! (-> arg2 r-g-b-a x) (-> *time-of-day-context* current-prt-color x))
|
||||
(*! (-> arg2 r-g-b-a y) (-> *time-of-day-context* current-prt-color y))
|
||||
(*! (-> arg2 r-g-b-a z) (-> *time-of-day-context* current-prt-color z))
|
||||
(*! (-> arg2 r-g-b-a w) (-> *time-of-day-context* current-prt-color w))
|
||||
)
|
||||
;; sneak in a flag here for... some reason
|
||||
(if (logtest? (-> arg1 flags) (sp-cpuinfo-flag-s32 sp-cpuinfo-flag-14))
|
||||
(set! (-> arg2 r-g-b-a x) (the-as float (logior 1 (the-as int (-> arg2 r-g-b-a x)))))
|
||||
(set! (-> arg2 r-g-b-a x) (the-as float (logand (lognot 1) (the-as int (-> arg2 r-g-b-a x))))))
|
||||
(particle-adgif-callback (-> arg1 adgif) night-tex)
|
||||
)
|
||||
)
|
||||
)
|
||||
(else
|
||||
(let ((day-tex (the texture-id (-> s2-0 3))))
|
||||
(when (nonzero? day-tex)
|
||||
(let ((rgba-rand (the rgba (-> s2-0 5)))
|
||||
(rgba-base (the rgba (-> s2-0 4))))
|
||||
(set-vector! (-> arg2 r-g-b-a)
|
||||
(* f0-0 (-> rgba-rand r))
|
||||
(* f0-0 (-> rgba-rand g))
|
||||
(* f0-0 (-> rgba-rand b))
|
||||
(* f0-0 (-> rgba-rand a)))
|
||||
(+! (-> arg2 r-g-b-a x) (-> rgba-base r))
|
||||
(+! (-> arg2 r-g-b-a y) (-> rgba-base g))
|
||||
(+! (-> arg2 r-g-b-a z) (-> rgba-base b))
|
||||
(+! (-> arg2 r-g-b-a w) (-> rgba-base a))
|
||||
)
|
||||
(when (nonzero? (-> s2-0 6))
|
||||
(*! (-> arg2 r-g-b-a x) (-> *time-of-day-context* current-prt-color x))
|
||||
(*! (-> arg2 r-g-b-a y) (-> *time-of-day-context* current-prt-color y))
|
||||
(*! (-> arg2 r-g-b-a z) (-> *time-of-day-context* current-prt-color z))
|
||||
(*! (-> arg2 r-g-b-a w) (-> *time-of-day-context* current-prt-color w))
|
||||
)
|
||||
(if (logtest? (-> arg1 flags) (sp-cpuinfo-flag-s32 sp-cpuinfo-flag-14))
|
||||
(set! (-> arg2 r-g-b-a x) (the-as float (logior 1 (the-as int (-> arg2 r-g-b-a x)))))
|
||||
(set! (-> arg2 r-g-b-a x) (the-as float (logand (lognot 1) (the-as int (-> arg2 r-g-b-a x))))))
|
||||
(particle-adgif-callback (-> arg1 adgif) day-tex)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(.mov vf1 s4-0)
|
||||
(.mov vf2 s3-0)
|
||||
(.mov v1-33 vf2)
|
||||
)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
|
||||
(defun sparticle-mode-animate ((arg0 sparticle-system) (arg1 sparticle-cpuinfo) (arg2 sprite-vec-data-2d))
|
||||
|
@ -105,13 +105,14 @@
|
||||
)
|
||||
|
||||
(defun drawable-load ((arg0 drawable) (arg1 kheap))
|
||||
(local-vars (sp-0 pointer))
|
||||
;; og:preserve-this
|
||||
; (local-vars (sp-0 pointer))
|
||||
(cond
|
||||
((type? arg0 string)
|
||||
(the-as none sp-0)
|
||||
(if (< (the-as uint sp-0) (the-as uint *stack-top*))
|
||||
(set! sp-0 (&+ *kernel-sp* -1024))
|
||||
)
|
||||
; (the-as none sp-0)
|
||||
; (if (< (the-as uint sp-0) (the-as uint *stack-top*))
|
||||
; (set! sp-0 (&+ *kernel-sp* -1024))
|
||||
; )
|
||||
(let ((s5-1 (the-as drawable (loado (the-as string arg0) arg1))))
|
||||
(if (and s5-1 (type? s5-1 drawable))
|
||||
(login s5-1)
|
||||
@ -125,11 +126,12 @@
|
||||
)
|
||||
|
||||
(defun art-load ((arg0 string) (arg1 kheap))
|
||||
(local-vars (sp-0 pointer))
|
||||
(the-as none sp-0)
|
||||
(if (< (the-as uint sp-0) (the-as uint *stack-top*))
|
||||
(set! sp-0 (&+ *kernel-sp* -1024))
|
||||
)
|
||||
;; og:preserve-this
|
||||
; (local-vars (sp-0 pointer))
|
||||
; (the-as none sp-0)
|
||||
; (if (< (the-as uint sp-0) (the-as uint *stack-top*))
|
||||
; (set! sp-0 (&+ *kernel-sp* -1024))
|
||||
; )
|
||||
(let ((s5-0 (the-as art (loado arg0 arg1))))
|
||||
(if (type? s5-0 art)
|
||||
(login s5-0)
|
||||
@ -139,12 +141,13 @@
|
||||
)
|
||||
|
||||
(defun art-group-load-check ((arg0 string) (arg1 kheap) (arg2 int))
|
||||
(local-vars (sp-0 pointer))
|
||||
;; og:preserve-this
|
||||
; (local-vars (sp-0 pointer))
|
||||
(when *debug-segment*
|
||||
(the-as none sp-0)
|
||||
(if (< (the-as uint sp-0) (the-as uint *stack-top*))
|
||||
(set! sp-0 (&+ *kernel-sp* -1024))
|
||||
)
|
||||
; (the-as none sp-0)
|
||||
; (if (< (the-as uint sp-0) (the-as uint *stack-top*))
|
||||
; (set! sp-0 (&+ *kernel-sp* -1024))
|
||||
; )
|
||||
(let ((s3-1 (the-as art-group (loado (make-file-name (file-kind art-group) arg0 arg2 #f) arg1))))
|
||||
(cond
|
||||
((not s3-1)
|
||||
@ -1861,7 +1864,8 @@
|
||||
)
|
||||
(else
|
||||
(set! (-> (the-as gui-connection s1-0) action) sv-16)
|
||||
(if (and (= sv-16 'play)
|
||||
;; og:preserve-this fixed naughty dog bug here. was 'play instead of (gui-action play)
|
||||
(if (and (= sv-16 (gui-action play))
|
||||
(handle-command-list this (-> (the-as gui-connection s1-0) channel) (the-as gui-connection s1-0))
|
||||
)
|
||||
(channel-id-set! this (the-as gui-connection s1-0) (-> (the-as gui-connection s1-0) id))
|
||||
|
@ -38,6 +38,7 @@
|
||||
(momentum-ignore-heading 6) ;; 64
|
||||
(output-sphere-hash 7) ;; 128
|
||||
(kernel-run 8) ;; 256
|
||||
(ncf9 9)
|
||||
)
|
||||
|
||||
;; DECOMP BEGINS
|
||||
|
@ -54,7 +54,7 @@
|
||||
)
|
||||
)
|
||||
(if (or (logtest? (-> v1-0 draw status) (draw-control-status no-draw no-draw-temp no-draw-bounds no-draw-bounds2))
|
||||
(or (logtest? (-> v1-0 target-effect) 1) (zero? (-> v1-0 skel active-channels)))
|
||||
(or (logtest? (-> v1-0 target-effect) (target-effect te0)) (zero? (-> v1-0 skel active-channels)))
|
||||
)
|
||||
(logior! (-> self draw status) (draw-control-status no-draw))
|
||||
(logclear! (-> self draw status) (draw-control-status no-draw))
|
||||
@ -63,11 +63,11 @@
|
||||
(logior! (-> self draw status) (draw-control-status force-fade))
|
||||
(logclear! (-> self draw status) (draw-control-status force-fade))
|
||||
)
|
||||
(if (logtest? (-> v1-0 target-effect) 7)
|
||||
(if (logtest? (-> v1-0 target-effect) (target-effect te0 te1 te2))
|
||||
(logior! (-> self draw global-effect) (draw-control-global-effect no-textures))
|
||||
(logclear! (-> self draw global-effect) (draw-control-global-effect no-textures))
|
||||
)
|
||||
(if (logtest? (-> v1-0 target-effect) 56)
|
||||
(if (logtest? (-> v1-0 target-effect) (target-effect te3 te4 te5))
|
||||
(logior! (-> self draw global-effect) (draw-control-global-effect rim-lights))
|
||||
(logclear! (-> self draw global-effect) (draw-control-global-effect rim-lights))
|
||||
)
|
||||
|
@ -325,7 +325,7 @@
|
||||
(if (or (logtest? (-> (the-as target gp-0) draw status)
|
||||
(draw-control-status no-draw no-draw-temp no-draw-bounds no-draw-bounds2)
|
||||
)
|
||||
(or (logtest? (-> (the-as target gp-0) target-effect) 1)
|
||||
(or (logtest? (-> (the-as target gp-0) target-effect) (target-effect te0))
|
||||
(zero? (-> (the-as target gp-0) skel active-channels))
|
||||
)
|
||||
)
|
||||
@ -336,11 +336,11 @@
|
||||
(logior! (-> self draw status) (draw-control-status force-fade))
|
||||
(logclear! (-> self draw status) (draw-control-status force-fade))
|
||||
)
|
||||
(if (logtest? (-> (the-as target gp-0) target-effect) 7)
|
||||
(if (logtest? (-> (the-as target gp-0) target-effect) (target-effect te0 te1 te2))
|
||||
(logior! (-> self draw global-effect) (draw-control-global-effect no-textures))
|
||||
(logclear! (-> self draw global-effect) (draw-control-global-effect no-textures))
|
||||
)
|
||||
(if (logtest? (-> (the-as target gp-0) target-effect) 56)
|
||||
(if (logtest? (-> (the-as target gp-0) target-effect) (target-effect te3 te4 te5))
|
||||
(logior! (-> self draw global-effect) (draw-control-global-effect rim-lights))
|
||||
(logclear! (-> self draw global-effect) (draw-control-global-effect rim-lights))
|
||||
)
|
||||
|
@ -402,7 +402,7 @@
|
||||
(target-indax-reset)
|
||||
(cloth-post)
|
||||
(set! (-> self major-mode-exit-hook) target-indax-exit)
|
||||
(set! (-> self major-mode-event-hook) (the-as (function none :behavior target) target-indax-handler))
|
||||
(set! (-> self major-mode-event-hook) target-indax-handler)
|
||||
(set! (-> self major-mode-exit-hook) target-indax-reset)
|
||||
(set! (-> self indax pad) (add-setting! 'mode-sound-bank 'modeidax 0.0 0))
|
||||
(remove-exit)
|
||||
|
@ -1785,7 +1785,7 @@
|
||||
(logtest? (-> self control mod-surface flags) (surface-flag look-around))
|
||||
(not (focus-test? self edge-grab pole flut tube light board pilot dark))
|
||||
(-> *setting-control* user-current allow-look-around)
|
||||
(time-elapsed? (the-as int (-> self no-look-around-wait)) (seconds 0.05))
|
||||
(time-elapsed? (-> self no-look-around-wait) (seconds 0.05))
|
||||
(not (and (= (-> self control ground-pat material) (pat-material ice)) (< 4096.0 (-> self control ctrl-xz-vel)))
|
||||
)
|
||||
)
|
||||
|
@ -272,7 +272,7 @@
|
||||
(set! (-> self anim-seed) (-> self parent 0 anim-seed))
|
||||
(set! (-> self draw status) (-> self parent 0 draw status))
|
||||
(cond
|
||||
((logtest? (-> self parent 0 target-effect) 1)
|
||||
((logtest? (-> self parent 0 target-effect) (target-effect te0))
|
||||
(logior! (-> self draw status) (draw-control-status no-draw))
|
||||
(logior! (-> self draw global-effect) (draw-control-global-effect no-textures))
|
||||
)
|
||||
|
@ -900,7 +900,7 @@
|
||||
)
|
||||
)
|
||||
)
|
||||
(set-darkjak-texture-morph! (if (logtest? (-> self target-effect) 64)
|
||||
(set-darkjak-texture-morph! (if (logtest? (-> self target-effect) (target-effect te6))
|
||||
1.0
|
||||
f30-0
|
||||
)
|
||||
|
@ -188,7 +188,7 @@
|
||||
)
|
||||
)
|
||||
((and (logtest? (continue-flags race) (-> arg0 flags)) (!= (-> arg0 vehicle-type) 27))
|
||||
(set! (-> self mode-cache) (the-as basic 'pilot))
|
||||
(set! (-> self mode-cache) 'pilot)
|
||||
(set! (-> self mode-param1) (the-as handle #f))
|
||||
(set! (-> self mode-param2) (-> arg0 vehicle-type))
|
||||
(when (= (-> arg0 vehicle-type) 28)
|
||||
@ -483,7 +483,7 @@
|
||||
#f
|
||||
)
|
||||
(else
|
||||
(set! (-> self mode-cache) (the-as basic (-> block param 0)))
|
||||
(set! (-> self mode-cache) (the-as symbol (-> block param 0)))
|
||||
(set! (-> self mode-param1) (if (>= argc 2)
|
||||
(process->handle (the-as process (-> block param 1)))
|
||||
(the-as handle #f)
|
||||
|
@ -258,6 +258,21 @@
|
||||
;; ---target-anim
|
||||
|
||||
|
||||
;; +++target-effect
|
||||
(defenum target-effect
|
||||
:type uint64
|
||||
:bitfield #t
|
||||
(te0 0)
|
||||
(te1 1)
|
||||
(te2 2)
|
||||
(te3 3)
|
||||
(te4 4)
|
||||
(te5 5)
|
||||
(te6 6)
|
||||
)
|
||||
;; ---target-effect
|
||||
|
||||
|
||||
;; DECOMP BEGINS
|
||||
|
||||
(deftype target (process-focusable)
|
||||
@ -304,18 +319,18 @@
|
||||
(spool-anim spool-anim)
|
||||
(ambient-time time-frame)
|
||||
(fp-hud handle)
|
||||
(no-load-wait uint64)
|
||||
(no-look-around-wait uint64)
|
||||
(no-load-wait time-frame)
|
||||
(no-look-around-wait time-frame)
|
||||
(burn-proc handle)
|
||||
(pre-joint-hook (function none :behavior target))
|
||||
(notify handle)
|
||||
(death-resetter resetter-spec :inline)
|
||||
(mode-cache basic)
|
||||
(mode-cache symbol)
|
||||
(mode-param1 handle)
|
||||
(mode-param2 uint64)
|
||||
(mode-param3 uint64)
|
||||
(major-mode-exit-hook (function none :behavior target))
|
||||
(major-mode-event-hook (function none :behavior target))
|
||||
(major-mode-event-hook (function process int symbol event-message-block object :behavior target))
|
||||
(sub-mode-exit-hook (function none :behavior target))
|
||||
(ext-geo-control external-art-buffer)
|
||||
(pending-ext-geo target-geo)
|
||||
@ -326,8 +341,8 @@
|
||||
(tobot-state state)
|
||||
(tobot? symbol)
|
||||
(tobot-recorder basic)
|
||||
(target-effect uint64)
|
||||
(color-effect basic)
|
||||
(target-effect target-effect)
|
||||
(color-effect symbol)
|
||||
(color-effect-start-time time-frame)
|
||||
(color-effect-duration time-frame)
|
||||
(racer racer-info)
|
||||
|
@ -404,7 +404,7 @@
|
||||
;; og:preserve-this process cast
|
||||
(set! arg0 (the process (and (and (focus-test? self dark)
|
||||
(nonzero? (-> self darkjak))
|
||||
(logtest? (-> self darkjak stage) (darkjak-stage bomb0))
|
||||
(logtest? (-> self darkjak stage) (darkjak-stage active))
|
||||
)
|
||||
arg0
|
||||
)
|
||||
@ -879,7 +879,7 @@
|
||||
(target-powerup-effect (the-as symbol (-> arg3 param 0)))
|
||||
)
|
||||
(('color-effect)
|
||||
(set! (-> self color-effect) (the-as basic (-> arg3 param 0)))
|
||||
(set! (-> self color-effect) (the-as symbol (-> arg3 param 0)))
|
||||
(set-time! (-> self color-effect-start-time))
|
||||
(set! v0-0 (-> arg3 param 1))
|
||||
(set! (-> self color-effect-duration) (the-as time-frame v0-0))
|
||||
@ -1098,11 +1098,11 @@
|
||||
)
|
||||
(('no-load-wait)
|
||||
(set! v0-0 (+ (current-time) (the-as time-frame (-> arg3 param 0))))
|
||||
(set! (-> self no-load-wait) (the-as uint v0-0))
|
||||
(set! (-> self no-load-wait) (the-as time-frame v0-0))
|
||||
v0-0
|
||||
)
|
||||
(('no-look-around)
|
||||
(set! (-> self no-look-around-wait) (the-as uint (+ (current-time) (the-as time-frame (-> arg3 param 0)))))
|
||||
(set! (-> self no-look-around-wait) (+ (current-time) (the-as time-frame (-> arg3 param 0))))
|
||||
(if (and (-> self next-state) (= (-> self next-state name) 'target-look-around))
|
||||
(send-event self 'end-mode 'in-head)
|
||||
)
|
||||
@ -1250,7 +1250,7 @@
|
||||
)
|
||||
(or (logtest? (-> self target-flags) (target-flags tf1))
|
||||
(focus-test? self dead dangerous hit grabbed in-head edge-grab pole flut tube board pilot mech)
|
||||
(>= (the-as time-frame (-> self no-load-wait)) (current-time))
|
||||
(>= (-> self no-load-wait) (current-time))
|
||||
)
|
||||
)
|
||||
)
|
||||
|
@ -195,18 +195,18 @@
|
||||
(-> self invisible-interp)
|
||||
)
|
||||
(set! (-> self draw shadow-ctrl settings shadow-dir w) (-> self invisible-shadow-dir-backup w))
|
||||
(logand! (-> self target-effect) -2)
|
||||
(logclear! (-> self target-effect) (target-effect te0))
|
||||
(if (= (-> self invisible-interp) 1.0)
|
||||
(logior! (-> self target-effect) 1)
|
||||
(logior! (-> self target-effect) (target-effect te0))
|
||||
)
|
||||
(if (and (time-elapsed? (-> self invisible-start-time) (+ (-> self invisible-duration) (seconds -2)))
|
||||
(< (mod (- (current-time) (-> self invisible-start-time)) 60) 30)
|
||||
)
|
||||
(logand! (-> self target-effect) -2)
|
||||
(logclear! (-> self target-effect) (target-effect te0))
|
||||
)
|
||||
)
|
||||
((!= (-> self invisible-interp) 0.0)
|
||||
(logand! (-> self target-effect) -2)
|
||||
(logclear! (-> self target-effect) (target-effect te0))
|
||||
(seek! (-> self invisible-interp) 0.0 (* 0.5 (seconds-per-frame)))
|
||||
)
|
||||
)
|
||||
@ -523,9 +523,9 @@
|
||||
(the-as skeleton-group (art-group-get-by-name *level* "skel-dark-maker-idol" (the-as (pointer level) #f)))
|
||||
(the-as pair 0)
|
||||
)
|
||||
;; (if (task-node-closed? (game-task-node volcano-darkeco-resolution))
|
||||
;; (set! (-> this part) (create-launch-control (-> *part-group-id-table* 82) this))
|
||||
;; )
|
||||
(if (task-node-closed? (game-task-node volcano-darkeco-resolution))
|
||||
(set! (-> this part) (create-launch-control (-> *part-group-id-table* 82) this))
|
||||
)
|
||||
(set! (-> this humming-sound) (new 'process 'ambient-sound "dark-maker-amb" (-> this root trans) 0.0))
|
||||
(set-falloff-far! (-> this humming-sound) 122880.0)
|
||||
(update-vol! (-> this humming-sound) 0.8)
|
||||
|
@ -1123,8 +1123,8 @@
|
||||
(let ((f30-0 (-> self lightjak-interp)))
|
||||
(cond
|
||||
((< 0.0 f30-0)
|
||||
(logior! (-> self target-effect) 2)
|
||||
(logior! (-> self target-effect) 16)
|
||||
(logior! (-> self target-effect) (target-effect te1))
|
||||
(logior! (-> self target-effect) (target-effect te4))
|
||||
(sound-play-by-name
|
||||
(static-sound-name "ltjak-chill")
|
||||
(the-as sound-id (-> self lightjak tone))
|
||||
@ -1136,7 +1136,7 @@
|
||||
)
|
||||
)
|
||||
(else
|
||||
(when (logtest? (-> self target-effect) 2)
|
||||
(when (logtest? (-> self target-effect) (target-effect te1))
|
||||
(let ((v1-14 (get-status *gui-control* (the-as sound-id (-> self lightjak on-off)))))
|
||||
(cond
|
||||
((= v1-14 (gui-status ready))
|
||||
@ -1205,8 +1205,8 @@
|
||||
(part-tracker-spawn part-tracker :to self :group (-> *part-group-id-table* 176) :target self :mat-joint 6)
|
||||
)
|
||||
)
|
||||
(logand! (-> self target-effect) -3)
|
||||
(logand! (-> self target-effect) -17)
|
||||
(logclear! (-> self target-effect) (target-effect te1))
|
||||
(logclear! (-> self target-effect) (target-effect te4))
|
||||
)
|
||||
)
|
||||
(when (and (< 0.0 f30-0) (and (not (focus-test? self in-head))
|
||||
|
@ -461,7 +461,7 @@
|
||||
)
|
||||
)
|
||||
((-> self major-mode-event-hook)
|
||||
((-> self major-mode-event-hook))
|
||||
((-> self major-mode-event-hook) proc argc message block)
|
||||
)
|
||||
(else
|
||||
(target-generic-event-handler proc argc message block)
|
||||
|
@ -379,7 +379,6 @@
|
||||
(go target-demo)
|
||||
)
|
||||
(('title)
|
||||
enter-state
|
||||
(go target-title #f)
|
||||
)
|
||||
(('grab)
|
||||
@ -1219,7 +1218,7 @@
|
||||
(defstate target-eco-powerup (target)
|
||||
:event target-standard-event-handler
|
||||
:exit (behavior ()
|
||||
(logand! (-> self target-effect) -101)
|
||||
(logclear! (-> self target-effect) (target-effect te2 te5 te6))
|
||||
(target-exit)
|
||||
)
|
||||
:trans (behavior ()
|
||||
@ -1228,10 +1227,10 @@
|
||||
:code (behavior ((arg0 int) (arg1 float))
|
||||
(case arg0
|
||||
((8)
|
||||
(logior! (-> self target-effect) 36)
|
||||
(logior! (-> self target-effect) (target-effect te2 te5))
|
||||
)
|
||||
((7)
|
||||
(logior! (-> self target-effect) 64)
|
||||
(logior! (-> self target-effect) (target-effect te6))
|
||||
)
|
||||
)
|
||||
(set! (-> self neck flex-blend) 0.0)
|
||||
|
@ -1710,13 +1710,7 @@
|
||||
)
|
||||
)
|
||||
(when s3-0
|
||||
(let* ((s2-2 s5-0)
|
||||
(s1-0 (method-of-object s2-2 trail-graph-method-29))
|
||||
)
|
||||
(target-pos 0)
|
||||
(-> s4-0 cached-info)
|
||||
(s1-0 s2-2)
|
||||
)
|
||||
(trail-graph-method-29 s5-0 (target-pos 0) s3-0 (-> s4-0 cached-info))
|
||||
(set! (-> s4-0 search-id) (-> s5-0 search-id))
|
||||
)
|
||||
)
|
||||
@ -1726,15 +1720,9 @@
|
||||
(countdown (v1-33 6)
|
||||
(let ((s4-1 (-> this trail v1-33)))
|
||||
(when (and (= (-> s4-1 search-id) (-> s5-0 search-id)) (-> s4-1 used-by))
|
||||
(let* ((a0-29 s5-0)
|
||||
(t9-5 (method-of-object a0-29 trail-graph-method-21))
|
||||
)
|
||||
(-> s4-1 node-id)
|
||||
64
|
||||
(&-> s4-1 goal-node-id)
|
||||
(&-> s4-1 node-path-dist)
|
||||
(set! (-> s4-1 node-count) (the-as int (t9-5 a0-29)))
|
||||
)
|
||||
(set! (-> s4-1 node-count)
|
||||
(trail-graph-method-21 s5-0 (-> s4-1 node-id) 64 (&-> s4-1 goal-node-id) (&-> s4-1 node-path-dist))
|
||||
)
|
||||
(set! (-> s4-1 last-updated) (the-as uint (current-time)))
|
||||
(goto cfg-64)
|
||||
)
|
||||
@ -1745,6 +1733,8 @@
|
||||
)
|
||||
)
|
||||
)
|
||||
;; og:preserve-this added in PC port: they timed stuff, we just allow it to run a fixed number of iterations.
|
||||
(+! v1-1 100)
|
||||
(.mfc0 v1-1 Count)
|
||||
)
|
||||
)
|
||||
|
@ -268,10 +268,11 @@
|
||||
(cgo-file "railf.gd" common-dep)
|
||||
(cgo-file "railx.gd" common-dep)
|
||||
; ;; precursor
|
||||
(cgo-file "lmech.gd" common-dep)
|
||||
(cgo-file "preca.gd" common-dep)
|
||||
(cgo-file "precb.gd" common-dep)
|
||||
(cgo-file "precc.gd" common-dep)
|
||||
;; (cgo-file "precd.gd" common-dep)
|
||||
(cgo-file "precd.gd" common-dep)
|
||||
; ;; title/intro
|
||||
(cgo-file "win.gd" common-dep) ;; wasintro
|
||||
(cgo-file "title.gd" common-dep)
|
||||
@ -357,7 +358,6 @@
|
||||
(cgo-file "ljndklev.gd" common-dep)
|
||||
(cgo-file "lkeira.gd" common-dep)
|
||||
(cgo-file "lkleever.gd" common-dep)
|
||||
(cgo-file "lmech.gd" common-dep)
|
||||
(cgo-file "lmhca.gd" common-dep)
|
||||
(cgo-file "lmhcb.gd" common-dep)
|
||||
(cgo-file "lnstcst.gd" common-dep)
|
||||
|
@ -2245,6 +2245,8 @@
|
||||
(the (state process) (new 'static 'state
|
||||
:name 'dead-state
|
||||
:next #f
|
||||
;; og:preserve-this added parent
|
||||
:parent #f
|
||||
:exit #f
|
||||
:code #f
|
||||
:trans #f
|
||||
|
@ -3722,7 +3722,6 @@
|
||||
)
|
||||
|
||||
|
||||
;; WARN: Return type mismatch object vs none.
|
||||
(defbehavior bombbot-init-by-other bombbot ((arg0 bombbot-spawn-params))
|
||||
(stack-size-set! (-> self main-thread) 512)
|
||||
(set! (-> self city-path) (-> arg0 path))
|
||||
@ -3744,7 +3743,6 @@
|
||||
(set! (-> self shoot-duration) 1.0)
|
||||
(set! (-> self draw light-index) (the-as uint 10))
|
||||
(go-virtual hostile)
|
||||
(none)
|
||||
)
|
||||
|
||||
(defmethod send-attack-on-jump-or-knocked ((this bombbot) (arg0 process) (arg1 event-message-block))
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -5,6 +5,7 @@
|
||||
;; name in dgo: trail-h
|
||||
;; dgos: GAME
|
||||
|
||||
;; +++trail-node-flag
|
||||
(defenum trail-node-flag
|
||||
:type uint8
|
||||
:bitfield #t
|
||||
@ -12,7 +13,10 @@
|
||||
(tnf1 1)
|
||||
(tnf2 2)
|
||||
)
|
||||
;; ---trail-node-flag
|
||||
|
||||
|
||||
;; +++conn-flag
|
||||
(defenum conn-flag
|
||||
:type uint8
|
||||
:bitfield #t
|
||||
@ -20,7 +24,12 @@
|
||||
(cf1 1)
|
||||
(cf2 2)
|
||||
(cf3 3)
|
||||
(cf4 4)
|
||||
(cf5 5)
|
||||
(cf6 6)
|
||||
)
|
||||
;; ---conn-flag
|
||||
|
||||
|
||||
(declare-type trail-graph basic)
|
||||
|
||||
@ -42,7 +51,7 @@
|
||||
:pack-me
|
||||
(:methods
|
||||
(get-dist-score (_type_ vector) uint)
|
||||
(debug-draw (_type_ int) none)
|
||||
(debug-draw (_type_ int) symbol)
|
||||
(get-position (_type_ vector) vector)
|
||||
)
|
||||
)
|
||||
@ -122,7 +131,7 @@
|
||||
|
||||
|
||||
(deftype trail-cached-start-pov (structure)
|
||||
((last-updated uint64)
|
||||
((last-updated time-frame)
|
||||
(pov-can-see-start uint64)
|
||||
(next-node-id int32)
|
||||
(start-pos vector :inline)
|
||||
@ -146,12 +155,12 @@
|
||||
(conn-mask uint8)
|
||||
(node (inline-array trail-node))
|
||||
(conn (inline-array trail-conn))
|
||||
(blocker uint32)
|
||||
(blocker (inline-array trail-blocker))
|
||||
(conn-ids (pointer uint16))
|
||||
(visgroup (inline-array trail-conn-hash-cell))
|
||||
(visnode-ids (pointer uint16))
|
||||
(conn-hash trail-conn-hash)
|
||||
(cell-pov-bit-arrays uint32)
|
||||
(cell-pov-bit-arrays (pointer uint64))
|
||||
(pov-can-see-goal uint64)
|
||||
(cached-start-pov trail-cached-start-pov :inline)
|
||||
(orig-start-pos vector :inline)
|
||||
@ -164,31 +173,31 @@
|
||||
(closed-bits vector16ub 2 :inline :overlay-at closed-quads)
|
||||
)
|
||||
(:methods
|
||||
(trail-graph-method-9 (_type_ int) none)
|
||||
(trail-graph-method-10 (_type_ int) none)
|
||||
(trail-graph-method-9 (_type_ int) int)
|
||||
(trail-graph-method-10 (_type_ int) symbol)
|
||||
(trail-graph-method-11 (_type_ int int) trail-node)
|
||||
(trail-graph-method-12 (_type_) none)
|
||||
(trail-graph-method-13 (_type_ vector vector) none)
|
||||
(debug-draw (_type_) none)
|
||||
(trail-graph-method-15 (_type_ int) none)
|
||||
(trail-graph-method-16 (_type_ int (pointer uint16) vector vector rgba float) none)
|
||||
(trail-graph-method-17 (_type_) none)
|
||||
(trail-graph-method-12 (_type_ trail-node vector) symbol)
|
||||
(trail-graph-method-13 (_type_ vector vector) symbol)
|
||||
(debug-draw (_type_) symbol)
|
||||
(trail-graph-method-15 (_type_ int) symbol)
|
||||
(trail-graph-method-16 (_type_ int (pointer uint16) vector vector rgba float) symbol)
|
||||
(trail-graph-method-17 (_type_ vector vector) int)
|
||||
(trail-graph-method-18 (_type_ vector) int)
|
||||
(trail-graph-method-19 (_type_) none)
|
||||
(trail-graph-method-20 (_type_ uint vector) none)
|
||||
(trail-graph-method-21 (_type_) none)
|
||||
(trail-graph-method-22 (_type_) none)
|
||||
(trail-graph-method-23 (_type_) none)
|
||||
(trail-graph-method-24 (_type_) none)
|
||||
(trail-graph-method-25 (_type_ int) none)
|
||||
(trail-graph-method-26 (_type_) none)
|
||||
(trail-graph-method-27 (_type_) none)
|
||||
(trail-graph-method-28 (_type_) none)
|
||||
(trail-graph-method-29 (_type_) none)
|
||||
(trail-graph-method-30 (_type_) none)
|
||||
(trail-graph-method-20 (_type_ uint vector) vector)
|
||||
(trail-graph-method-21 (_type_ (pointer uint16) int (pointer int32) (pointer float)) int)
|
||||
(trail-graph-method-22 (_type_ int int) symbol)
|
||||
(trail-graph-method-23 (_type_) symbol)
|
||||
(trail-graph-method-24 (_type_ uint vector int int) symbol)
|
||||
(trail-graph-method-25 (_type_ int) int)
|
||||
(trail-graph-method-26 (_type_) int)
|
||||
(trail-graph-method-27 (_type_) int)
|
||||
(trail-graph-method-28 (_type_ trail-conn-search int int) symbol)
|
||||
(trail-graph-method-29 (_type_ vector vector trail-cached-search-info) int)
|
||||
(trail-graph-method-30 (_type_) int)
|
||||
(trail-graph-method-31 (_type_ int) none)
|
||||
(trail-graph-method-32 (_type_) none)
|
||||
(trail-graph-method-33 (_type_) none)
|
||||
(trail-graph-method-32 (_type_) uint)
|
||||
(trail-graph-method-33 (_type_ int) symbol)
|
||||
)
|
||||
)
|
||||
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -7,3 +7,51 @@
|
||||
|
||||
;; DECOMP BEGINS
|
||||
|
||||
(define *assault-cams* (new 'static 'boxed-array :type assault-cam-info
|
||||
(new 'static 'assault-cam-info
|
||||
:pos (new 'static 'vector :x -190874.02 :y 106024.96 :z 5588420.0 :w 1.0)
|
||||
:mat (new 'static 'matrix
|
||||
:rvec (new 'static 'vector :x -0.80696344 :z 0.5906011)
|
||||
:uvec (new 'static 'vector :x -0.36253208 :y 0.7894338 :z -0.49534297)
|
||||
:fvec (new 'static 'vector :x -0.46624056 :y -0.61383563 :z -0.63704425)
|
||||
:trans (new 'static 'vector :w 1.0)
|
||||
)
|
||||
)
|
||||
(new 'static 'assault-cam-info
|
||||
:pos (new 'static 'vector :x 423746.34 :y 149545.38 :z 7161433.5 :w 1.0)
|
||||
:mat (new 'static 'matrix
|
||||
:rvec (new 'static 'vector :x -0.0033539534 :z 0.9999943)
|
||||
:uvec (new 'static 'vector :x -0.8762458 :y 0.4818552 :z -0.0029389048)
|
||||
:fvec (new 'static 'vector :x -0.4818526 :y -0.87625074 :z -0.0016161203)
|
||||
:trans (new 'static 'vector :w 1.0)
|
||||
)
|
||||
)
|
||||
(new 'static 'assault-cam-info
|
||||
:pos (new 'static 'vector :x 754367.3 :y 136453.73 :z 5612391.0 :w 1.0)
|
||||
:mat (new 'static 'matrix
|
||||
:rvec (new 'static 'vector :x -0.91507846 :z -0.4032754)
|
||||
:uvec (new 'static 'vector :x 0.34681395 :y 0.51030624 :z -0.7869609)
|
||||
:fvec (new 'static 'vector :x 0.20579405 :y -0.8599926 :z -0.46697044)
|
||||
:trans (new 'static 'vector :w 1.0)
|
||||
)
|
||||
)
|
||||
(new 'static 'assault-cam-info
|
||||
:pos (new 'static 'vector :x 1701028.2 :y 180959.23 :z 5565024.5 :w 1.0)
|
||||
:mat (new 'static 'matrix
|
||||
:rvec (new 'static 'vector :x -0.80724764 :z -0.59021246)
|
||||
:uvec (new 'static 'vector :x 0.4939913 :y 0.54724586 :z -0.67564356)
|
||||
:fvec (new 'static 'vector :x 0.32299143 :y -0.8369716 :z -0.44176307)
|
||||
:trans (new 'static 'vector :w 1.0)
|
||||
)
|
||||
)
|
||||
(new 'static 'assault-cam-info
|
||||
:pos (new 'static 'vector :x -311586.8 :y 110921.73 :z 5417229.0 :w 1.0)
|
||||
:mat (new 'static 'matrix
|
||||
:rvec (new 'static 'vector :x -0.8088231 :z 0.58805186)
|
||||
:uvec (new 'static 'vector :x -0.42552334 :y 0.69020355 :z -0.5852767)
|
||||
:fvec (new 'static 'vector :x -0.4058755 :y -0.7236152 :z -0.5582527)
|
||||
:trans (new 'static 'vector :w 1.0)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -7,3 +7,145 @@
|
||||
|
||||
;; DECOMP BEGINS
|
||||
|
||||
(define *assault-rooms* (new 'static 'boxed-array :type assault-room :length 0 :allocated-length 5))
|
||||
|
||||
(set! (-> *assault-rooms* length) (-> *assault-rooms* allocated-length))
|
||||
|
||||
(set! (-> *assault-rooms* 0)
|
||||
(new 'static 'assault-room :center-pos (new 'static 'vector :x -240257.03 :y 36409.344 :z 5520792.5 :w 1.0))
|
||||
)
|
||||
|
||||
(set! (-> *assault-rooms* 0 cam-info) (-> *assault-cams* 0))
|
||||
|
||||
(set! (-> *assault-rooms* 0 collision) (new 'static 'assault-room-collision
|
||||
:cam-matrix (new 'static 'matrix
|
||||
:rvec (new 'static 'vector :x -0.80696344 :z 0.5906011)
|
||||
:uvec (new 'static 'vector :x -0.36253208 :y 0.7894338 :z -0.49534297)
|
||||
:fvec (new 'static 'vector :x -0.46624056 :y -0.61383563 :z -0.63704425)
|
||||
:trans (new 'static 'vector :w 1.0)
|
||||
)
|
||||
:cam-pos (new 'static 'vector :x -190874.02 :y 106024.96 :z 5588420.0 :w 1.0)
|
||||
:clip-dists (new 'static 'triangle-dists :dist0 30608.953 :dist1 40000.055)
|
||||
:hoz-clip-dist 75502.086
|
||||
)
|
||||
)
|
||||
|
||||
(set! (-> *assault-rooms* 0 node-positions)
|
||||
(new 'static 'boxed-array :type vector
|
||||
(new 'static 'vector :x -320432.12 :y 39460.863 :z 5583748.0 :w 1.0)
|
||||
(new 'static 'vector :x -157367.1 :y 35726.54 :z 5467749.0 :w 1.0)
|
||||
)
|
||||
)
|
||||
|
||||
(set! (-> *assault-rooms* 1)
|
||||
(new 'static 'assault-room :center-pos (new 'static 'vector :x 371519.1 :y 35597.105 :z 7164435.0 :w 1.0))
|
||||
)
|
||||
|
||||
(set! (-> *assault-rooms* 1 cam-info) (-> *assault-cams* 1))
|
||||
|
||||
(set! (-> *assault-rooms* 1 collision)
|
||||
(new 'static 'assault-room-collision
|
||||
:cam-matrix (new 'static 'matrix
|
||||
:rvec (new 'static 'vector :x -0.0033539534 :z 0.9999943)
|
||||
:uvec (new 'static 'vector :x -0.8762458 :y 0.4818552 :z -0.0029389048)
|
||||
:fvec (new 'static 'vector :x -0.4818526 :y -0.87625074 :z -0.0016161203)
|
||||
:trans (new 'static 'vector :w 1.0)
|
||||
)
|
||||
:cam-pos (new 'static 'vector :x 423746.75 :y 149545.38 :z 7161433.5 :w 1.0)
|
||||
:clip-dists (new 'static 'triangle-dists :dist0 38132.883 :dist1 60766.504)
|
||||
:hoz-clip-dist 84132.84
|
||||
)
|
||||
)
|
||||
|
||||
(set! (-> *assault-rooms* 1 node-positions)
|
||||
(new 'static 'boxed-array :type vector
|
||||
(new 'static 'vector :x 451624.56 :y 37709.004 :z 7164598.5 :w 1.0)
|
||||
(new 'static 'vector :x 314352.03 :y 35603.25 :z 7283629.0 :w 1.0)
|
||||
(new 'static 'vector :x 319363.06 :y 35609.395 :z 7031069.5 :w 1.0)
|
||||
)
|
||||
)
|
||||
|
||||
(set! (-> *assault-rooms* 2)
|
||||
(new 'static 'assault-room :center-pos (new 'static 'vector :x 785399.4 :y 35733.504 :z 5553110.0 :w 1.0))
|
||||
)
|
||||
|
||||
(set! (-> *assault-rooms* 2 cam-info) (-> *assault-cams* 2))
|
||||
|
||||
(set! (-> *assault-rooms* 2 collision) (new 'static 'assault-room-collision
|
||||
:cam-matrix (new 'static 'matrix
|
||||
:rvec (new 'static 'vector :x -0.91507846 :z -0.4032754)
|
||||
:uvec (new 'static 'vector :x 0.34681395 :y 0.51030624 :z -0.7869609)
|
||||
:fvec (new 'static 'vector :x 0.20579405 :y -0.8599926 :z -0.46697044)
|
||||
:trans (new 'static 'vector :w 1.0)
|
||||
)
|
||||
:cam-pos (new 'static 'vector :x 754367.3 :y 136454.14 :z 5612391.5 :w 1.0)
|
||||
:clip-dists (new 'static 'triangle-dists :dist0 34730.176 :dist1 57014.51)
|
||||
:hoz-clip-dist 76124.41
|
||||
)
|
||||
)
|
||||
|
||||
(set! (-> *assault-rooms* 2 node-positions)
|
||||
(new 'static 'boxed-array :type vector
|
||||
(new 'static 'vector :x 784477.8 :y 35810.508 :z 5431458.0 :w 1.0)
|
||||
(new 'static 'vector :x 684347.0 :y 35715.89 :z 5563923.0 :w 1.0)
|
||||
(new 'static 'vector :x 882867.8 :y 36161.125 :z 5581003.0 :w 1.0)
|
||||
)
|
||||
)
|
||||
|
||||
(set! (-> *assault-rooms* 3)
|
||||
(new 'static 'assault-room :center-pos (new 'static 'vector :x 1754726.0 :y 35726.95 :z 5489334.5 :w 1.0))
|
||||
)
|
||||
|
||||
(set! (-> *assault-rooms* 3 cam-info) (-> *assault-cams* 3))
|
||||
|
||||
(set! (-> *assault-rooms* 3 collision) (new 'static 'assault-room-collision
|
||||
:cam-matrix (new 'static 'matrix
|
||||
:rvec (new 'static 'vector :x -0.80724764 :z -0.59021246)
|
||||
:uvec (new 'static 'vector :x 0.4939913 :y 0.54724586 :z -0.67564356)
|
||||
:fvec (new 'static 'vector :x 0.32299143 :y -0.8369716 :z -0.44176307)
|
||||
:trans (new 'static 'vector :w 1.0)
|
||||
)
|
||||
:cam-pos (new 'static 'vector :x 1701028.2 :y 180959.23 :z 5565024.5 :w 1.0)
|
||||
:clip-dists (new 'static 'triangle-dists :dist0 51394.637 :dist1 87897.0)
|
||||
:hoz-clip-dist 111438.664
|
||||
)
|
||||
)
|
||||
|
||||
(set! (-> *assault-rooms* 3 node-positions)
|
||||
(new 'static 'boxed-array :type vector
|
||||
(new 'static 'vector :x 1655123.5 :y 35728.18 :z 5430803.0 :w 1.0)
|
||||
(new 'static 'vector :x 1852997.2 :y 35795.76 :z 5552741.0 :w 1.0)
|
||||
(new 'static 'vector :x 1711406.8 :y 42685.234 :z 5560278.0 :w 1.0)
|
||||
)
|
||||
)
|
||||
|
||||
(set! (-> *assault-rooms* 4)
|
||||
(new 'static 'assault-room :center-pos (new 'static 'vector :x -359565.3 :y 41573.17 :z 5346835.0 :w 1.0))
|
||||
)
|
||||
|
||||
(set! (-> *assault-rooms* 4 cam-info) (-> *assault-cams* 4))
|
||||
|
||||
(set! (-> *assault-rooms* 4 collision) (new 'static 'assault-room-collision
|
||||
:cam-matrix (new 'static 'matrix
|
||||
:rvec (new 'static 'vector :x -0.8088231 :z 0.58805186)
|
||||
:uvec (new 'static 'vector :x -0.42552334 :y 0.69020355 :z -0.5852767)
|
||||
:fvec (new 'static 'vector :x -0.4058755 :y -0.7236152 :z -0.5582527)
|
||||
:trans (new 'static 'vector :w 1.0)
|
||||
)
|
||||
:cam-pos (new 'static 'vector :x -311586.9 :y 110922.0 :z 5417229.5 :w 1.0)
|
||||
:clip-dists (new 'static 'triangle-dists :dist0 29167.535 :dist1 61501.04)
|
||||
:hoz-clip-dist 59058.156
|
||||
)
|
||||
)
|
||||
|
||||
(set! (-> *assault-rooms* 4 node-positions)
|
||||
(new 'static 'boxed-array :type vector
|
||||
(new 'static 'vector :x -318851.9 :y 40452.914 :z 5403400.5 :w 1.0)
|
||||
(new 'static 'vector :x -350418.94 :y 43542.938 :z 5425846.5 :w 1.0)
|
||||
(new 'static 'vector :x -292352.4 :y 42613.145 :z 5385706.5 :w 1.0)
|
||||
(new 'static 'vector :x -426024.56 :y 43729.305 :z 5323487.5 :w 1.0)
|
||||
(new 'static 'vector :x -350490.22 :y 43717.02 :z 5272411.0 :w 1.0)
|
||||
(new 'static 'vector :x -326335.7 :y 43717.02 :z 5312429.0 :w 1.0)
|
||||
(new 'static 'vector :x -406911.38 :y 43717.02 :z 5361293.5 :w 1.0)
|
||||
)
|
||||
)
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -7,3 +7,216 @@
|
||||
|
||||
;; DECOMP BEGINS
|
||||
|
||||
(deftype assault-cam-info (structure)
|
||||
((pos vector :inline)
|
||||
(mat matrix :inline)
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
(deftype triangle-dists (structure)
|
||||
((dist0 float)
|
||||
(dist1 float)
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
(deftype assault-room-collision (structure)
|
||||
((cam-matrix matrix :inline)
|
||||
(cam-pos vector :inline)
|
||||
(clip-dists triangle-dists :inline)
|
||||
(hoz-clip-dist float)
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
(deftype assault-room (structure)
|
||||
((center-pos vector :inline)
|
||||
(cam-info assault-cam-info)
|
||||
(collision assault-room-collision)
|
||||
(node-positions (array vector))
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
(define *assault-speech-list* (new 'static 'inline-array talker-speech-class 22
|
||||
(new 'static 'talker-speech-class :name "none")
|
||||
(new 'static 'talker-speech-class
|
||||
:name "torn102"
|
||||
:channel (gui-channel voicebox)
|
||||
:speech #x1
|
||||
:neg #x1
|
||||
:on-close #f
|
||||
:camera #f
|
||||
)
|
||||
(new 'static 'talker-speech-class
|
||||
:name "torn202"
|
||||
:channel (gui-channel voicebox)
|
||||
:speech #x2
|
||||
:neg #x1
|
||||
:on-close #f
|
||||
:camera #f
|
||||
)
|
||||
(new 'static 'talker-speech-class
|
||||
:name "torn122"
|
||||
:channel (gui-channel voicebox)
|
||||
:speech #x3
|
||||
:neg #x1
|
||||
:on-close #f
|
||||
:camera #f
|
||||
)
|
||||
(new 'static 'talker-speech-class
|
||||
:name "torn133"
|
||||
:channel (gui-channel voicebox)
|
||||
:speech #x4
|
||||
:neg #x1
|
||||
:on-close #f
|
||||
:camera #f
|
||||
)
|
||||
(new 'static 'talker-speech-class
|
||||
:name "torn203"
|
||||
:channel (gui-channel voicebox)
|
||||
:speech #x5
|
||||
:neg #x1
|
||||
:on-close #f
|
||||
:camera #f
|
||||
)
|
||||
(new 'static 'talker-speech-class
|
||||
:name "torn116"
|
||||
:channel (gui-channel voicebox)
|
||||
:speech #x6
|
||||
:neg #x1
|
||||
:on-close #f
|
||||
:camera #f
|
||||
)
|
||||
(new 'static 'talker-speech-class
|
||||
:name "torn192"
|
||||
:channel (gui-channel voicebox)
|
||||
:speech #x7
|
||||
:neg #x1
|
||||
:on-close #f
|
||||
:camera #f
|
||||
)
|
||||
(new 'static 'talker-speech-class
|
||||
:name "torn205"
|
||||
:channel (gui-channel voicebox)
|
||||
:speech #x8
|
||||
:neg #x1
|
||||
:on-close #f
|
||||
:camera #f
|
||||
)
|
||||
(new 'static 'talker-speech-class
|
||||
:name "torn198"
|
||||
:channel (gui-channel voicebox)
|
||||
:speech #x9
|
||||
:neg #x1
|
||||
:on-close #f
|
||||
:camera #f
|
||||
)
|
||||
(new 'static 'talker-speech-class
|
||||
:name "torn154"
|
||||
:channel (gui-channel voicebox)
|
||||
:speech #xa
|
||||
:neg #x1
|
||||
:on-close #f
|
||||
:camera #f
|
||||
)
|
||||
(new 'static 'talker-speech-class
|
||||
:name "torn194"
|
||||
:channel (gui-channel rider)
|
||||
:speech #xb
|
||||
:neg #x1
|
||||
:on-close #f
|
||||
:camera #f
|
||||
)
|
||||
(new 'static 'talker-speech-class
|
||||
:name "torn117"
|
||||
:channel (gui-channel rider)
|
||||
:speech #xc
|
||||
:neg #x1
|
||||
:on-close #f
|
||||
:camera #f
|
||||
)
|
||||
(new 'static 'talker-speech-class
|
||||
:name "assault-protect-civilians"
|
||||
:channel (gui-channel message)
|
||||
:speech #xd
|
||||
:text-duration (seconds 4)
|
||||
:neg #x1
|
||||
:text-message (text-id text-06de)
|
||||
:on-close #f
|
||||
:camera #f
|
||||
)
|
||||
(new 'static 'talker-speech-class
|
||||
:name "dax238"
|
||||
:channel (gui-channel daxter)
|
||||
:flags (talker-flags tf0)
|
||||
:speech #xe
|
||||
:neg #x1
|
||||
:on-close #f
|
||||
:camera #f
|
||||
)
|
||||
(new 'static 'talker-speech-class
|
||||
:name "dax353"
|
||||
:channel (gui-channel daxter)
|
||||
:speech #xf
|
||||
:neg #x1
|
||||
:on-close #f
|
||||
:camera #f
|
||||
)
|
||||
(new 'static 'talker-speech-class
|
||||
:name "dax330"
|
||||
:channel (gui-channel daxter)
|
||||
:speech #x10
|
||||
:neg #x1
|
||||
:on-close #f
|
||||
:camera #f
|
||||
)
|
||||
(new 'static 'talker-speech-class
|
||||
:name "dax577"
|
||||
:channel (gui-channel daxter)
|
||||
:speech #x11
|
||||
:neg #x1
|
||||
:on-close #f
|
||||
:camera #f
|
||||
)
|
||||
(new 'static 'talker-speech-class
|
||||
:name "tor001"
|
||||
:channel (gui-channel voicebox)
|
||||
:speech #x12
|
||||
:neg #x1
|
||||
:on-close #f
|
||||
:camera #f
|
||||
)
|
||||
(new 'static 'talker-speech-class
|
||||
:name "grds178a"
|
||||
:channel (gui-channel guard)
|
||||
:flags (talker-flags tf0)
|
||||
:speech #x13
|
||||
:neg #x1
|
||||
:on-close #f
|
||||
:camera #f
|
||||
)
|
||||
(new 'static 'talker-speech-class
|
||||
:name "grds178b"
|
||||
:channel (gui-channel guard)
|
||||
:flags (talker-flags tf0)
|
||||
:speech #x14
|
||||
:neg #x1
|
||||
:on-close #f
|
||||
:camera #f
|
||||
)
|
||||
(new 'static 'talker-speech-class
|
||||
:name "grds103a"
|
||||
:channel (gui-channel guard)
|
||||
:speech #x15
|
||||
:neg #x1
|
||||
:on-close #f
|
||||
:camera #f
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
(deftype assault-speech-instance (speech-instance)
|
||||
()
|
||||
)
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -7,3 +7,571 @@
|
||||
|
||||
;; DECOMP BEGINS
|
||||
|
||||
(deftype task-manager-protect-hq (task-manager)
|
||||
((gunships handle 2)
|
||||
(spawn-records (array proc-focusable-spawner))
|
||||
(spawn-index int8)
|
||||
(death-count int8)
|
||||
)
|
||||
(:state-methods
|
||||
fight-gunship
|
||||
fight-gunship-2
|
||||
wait-finish
|
||||
)
|
||||
(:methods
|
||||
(gunship-spawn (_type_ protect-gunship-enemy-spawn-params) object)
|
||||
(spawn-gunship (_type_ vector int float) handle)
|
||||
(get-spawn-pos-for-ship (_type_ vector vector symbol) vector)
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
(define *protect-object-count*
|
||||
(new 'static 'boxed-array :type int32 :length 13 :allocated-length 17 0 0 0 0 0 0 0 0 0 8 8 8 0)
|
||||
)
|
||||
|
||||
(defmethod init! ((this task-manager-protect-hq))
|
||||
(set-setting! 'music 'factoryb 0.0 0)
|
||||
(set-setting! 'gun-target-guards? #f 0.0 0)
|
||||
(set! (-> this spawn-records) (new 'process 'boxed-array proc-focusable-spawner 17))
|
||||
(set-setting! 'disable-parking-spots? #t 0.0 0)
|
||||
(dotimes (v1-7 2)
|
||||
(set! (-> this gunships v1-7) (the-as handle #f))
|
||||
(set! (-> *active-gunships* v1-7 proc) (the-as handle #f))
|
||||
)
|
||||
(dotimes (s5-0 17)
|
||||
(set! (-> this spawn-records s5-0) (new 'process 'proc-focusable-spawner))
|
||||
(alloc-records! (-> this spawn-records s5-0) (-> *protect-object-count* s5-0) 'process)
|
||||
)
|
||||
(set-setting! 'extra-bank '((cityhq3 citykg)) 0.0 0)
|
||||
(set! (-> this spawn-index) 0)
|
||||
(set-cloud-and-fog-interp! *mood-control* 1.0 1.0 50.0 50.0)
|
||||
(set-time-for-random-weather! *mood-control* 100000000.0 100000000.0)
|
||||
(send-event (ppointer->process *time-of-day*) 'change 'hour 16)
|
||||
(send-event (ppointer->process *time-of-day*) 'change 'ratio 2.0)
|
||||
(call-parent-method this)
|
||||
(none)
|
||||
)
|
||||
|
||||
(defmethod relocate ((this task-manager-protect-hq) (offset int))
|
||||
(dotimes (v1-0 17)
|
||||
(if (nonzero? (-> this spawn-records v1-0))
|
||||
(&+! (-> this spawn-records v1-0) offset)
|
||||
)
|
||||
)
|
||||
(if (nonzero? (-> this spawn-records))
|
||||
(&+! (-> this spawn-records) offset)
|
||||
)
|
||||
(call-parent-method this offset)
|
||||
)
|
||||
|
||||
(defun protect-type->type ((arg0 gunship-cmd-spawn-type))
|
||||
(case arg0
|
||||
(((gunship-cmd-spawn-type guard-tazer)
|
||||
(gunship-cmd-spawn-type guard-rifle)
|
||||
(gunship-cmd-spawn-type guard-grenade)
|
||||
)
|
||||
crimson-guard
|
||||
)
|
||||
(((gunship-cmd-spawn-type grunt))
|
||||
metalhead-grunt
|
||||
)
|
||||
(((gunship-cmd-spawn-type flitter))
|
||||
metalhead-flitter
|
||||
)
|
||||
(((gunship-cmd-spawn-type unknown))
|
||||
metalhead-predator
|
||||
)
|
||||
(((gunship-cmd-spawn-type roboguard))
|
||||
roboguard-city
|
||||
)
|
||||
(((gunship-cmd-spawn-type turret))
|
||||
flying-turret
|
||||
)
|
||||
(((gunship-cmd-spawn-type spydroid))
|
||||
spydroid
|
||||
)
|
||||
(else
|
||||
(the-as type #f)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
(define *protect-levels* (new 'static 'boxed-array :type symbol :length 12 :allocated-length 17
|
||||
'#f
|
||||
'ctypepa
|
||||
'ctypepa
|
||||
'ctypesa
|
||||
'ctypesa
|
||||
'ctypesa
|
||||
'ctypesb
|
||||
'ctypesb
|
||||
'ctypepb
|
||||
'ctypesc
|
||||
'ctypesc
|
||||
'ctypesc
|
||||
)
|
||||
)
|
||||
|
||||
;; WARN: Return type mismatch int vs handle.
|
||||
(defun spawn-protect-enemy ((arg0 int) (arg1 process))
|
||||
(if (logtest? (process-mask enemy guard) (-> *kernel-context* prevent-from-run))
|
||||
(return (the-as handle #f))
|
||||
)
|
||||
(let ((s4-0 (new 'stack-no-clear 'traffic-object-spawn-params)))
|
||||
(set! (-> s4-0 velocity quad) (the-as uint128 0))
|
||||
(set! (-> s4-0 behavior) (the-as uint 1))
|
||||
(set! (-> s4-0 object-type) (city-target-type->traffic-object-type (the-as city-target-type arg0)))
|
||||
(set! (-> s4-0 flags) (traffic-spawn-flags))
|
||||
(logior! (-> s4-0 flags) (traffic-spawn-flags tsf7))
|
||||
(set! (-> s4-0 nav-branch) #f)
|
||||
(set! (-> s4-0 guard-type) (the-as uint 0))
|
||||
(let ((s5-1 (get-process *default-dead-pool* (protect-type->type (the-as gunship-cmd-spawn-type arg0)) #x4000 1)))
|
||||
(the-as handle (ppointer->handle (when s5-1
|
||||
(let ((t9-3 (method-of-type process activate)))
|
||||
(t9-3 s5-1 arg1 "protect-enemy" (the-as pointer #x70004000))
|
||||
)
|
||||
(run-now-in-process s5-1 citizen-init-by-other s4-0)
|
||||
(-> s5-1 ppointer)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
(defstate wait (task-manager-protect-hq)
|
||||
:virtual #t
|
||||
:enter (behavior ()
|
||||
(set-blackout-frames (seconds 10))
|
||||
(let ((t9-2 (-> (find-parent-state) enter)))
|
||||
(if t9-2
|
||||
(t9-2)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
(defstate active (task-manager-protect-hq)
|
||||
:virtual #t
|
||||
:enter (behavior ()
|
||||
(set-setting! 'city-sound '(cityprot) 0.0 2)
|
||||
(set-setting! 'exclusive-task #f 0.0 (-> self node-info task))
|
||||
(set-setting! 'airlock #f 0.0 0)
|
||||
(let ((v1-8 (get-hatred-at-idx *cty-attack-controller* 9 0)))
|
||||
(set! (-> v1-8 hatred) 1.0)
|
||||
(set! (-> v1-8 hatred-dist) 245760.0)
|
||||
(set! (-> v1-8 dist-scale) 0.25)
|
||||
(set! (-> v1-8 attacker-scale) 0.0)
|
||||
(set! (-> v1-8 max-consider-dist) 12288000.0)
|
||||
)
|
||||
(set! (-> *cty-attack-controller* target-attacker max-num-attackers) (the-as uint 100))
|
||||
(let ((gp-0 (push-back-hatred *cty-attack-controller*)))
|
||||
(set! (-> gp-0 hatred) 0.3)
|
||||
(set! (-> gp-0 hatred-dist) 491520.0)
|
||||
(set! (-> gp-0 dist-scale) 0.25)
|
||||
(set! (-> gp-0 attacker-scale) 0.01)
|
||||
(set! (-> gp-0 max-consider-dist) 12288000.0)
|
||||
(set-hatred-indices *cty-attack-controller* gp-0 4 13)
|
||||
(set-hatred-indices *cty-attack-controller* gp-0 3 13)
|
||||
(set-hatred-indices *cty-attack-controller* gp-0 5 13)
|
||||
)
|
||||
)
|
||||
:trans (behavior ()
|
||||
((-> (method-of-type task-manager active) trans))
|
||||
)
|
||||
:code (behavior ()
|
||||
(while (< (-> self spawn-index) (-> self spawn-records length))
|
||||
(dotimes (gp-0 (-> self spawn-records (-> self spawn-index) records length))
|
||||
(set! (-> self spawn-records (-> self spawn-index) records data gp-0 proc)
|
||||
(spawn-protect-enemy (-> self spawn-index) self)
|
||||
)
|
||||
)
|
||||
(+! (-> self spawn-index) 1)
|
||||
(suspend)
|
||||
)
|
||||
(go-virtual fight-gunship)
|
||||
)
|
||||
)
|
||||
|
||||
(define *gunship-start-positions*
|
||||
(new 'static 'boxed-array :type vector (new 'static 'vector :x 2304696.2 :y 40345.6 :z -2179358.8 :w 1.0))
|
||||
)
|
||||
|
||||
(defstate fight-gunship (task-manager-protect-hq)
|
||||
:virtual #t
|
||||
:event (behavior ((proc process) (argc int) (message symbol) (block event-message-block))
|
||||
(case message
|
||||
(('gunship-destroyed)
|
||||
(go-virtual fight-gunship-2)
|
||||
)
|
||||
(else
|
||||
(task-manager-event-handler proc argc message block)
|
||||
)
|
||||
)
|
||||
)
|
||||
:enter (behavior ()
|
||||
(ff-squad-control-method-56 *ff-squad-control* 0 0 0)
|
||||
(ff-squad-control-method-56 *ff-squad-control* 1 4 4)
|
||||
(let ((a1-3 (get-spawn-pos-for-ship self (new 'stack-no-clear 'vector) *zero-vector* #t)))
|
||||
(set! (-> self gunships 0) (spawn-gunship self a1-3 0 0.0))
|
||||
)
|
||||
)
|
||||
:trans (behavior ()
|
||||
(if (< 1228800.0 (vector-vector-xz-distance (target-pos 0) (-> *gunship-start-positions* 0)))
|
||||
(send-event self 'fail)
|
||||
)
|
||||
((-> (method-of-type task-manager active) trans))
|
||||
(dotimes (gp-1 (-> self spawn-records length))
|
||||
(check-inactive (-> self spawn-records gp-1))
|
||||
)
|
||||
)
|
||||
:code (behavior ()
|
||||
(suspend)
|
||||
(set-blackout-frames 0)
|
||||
(sleep-code)
|
||||
)
|
||||
)
|
||||
|
||||
(define *fountain-center-pos* (new 'static 'vector :x 2298060.8 :y 31825.92 :z -2276925.5 :w 1.0))
|
||||
|
||||
(defmethod get-spawn-pos-for-ship ((this task-manager-protect-hq) (arg0 vector) (arg1 vector) (arg2 symbol))
|
||||
(let ((s5-0 0))
|
||||
(let ((f30-0 409600000.0))
|
||||
(dotimes (s2-0 (-> *protect-path* length))
|
||||
(let ((s1-0 (-> *protect-path* s2-0)))
|
||||
0.0
|
||||
(when (and (< 122880.0 (vector-vector-xz-distance (target-pos 0) s1-0))
|
||||
(or (< (vector-length arg1) 4096.0) (< 122880.0 (vector-vector-xz-distance arg1 s1-0)))
|
||||
)
|
||||
(let ((a0-6 (new 'stack 'sphere)))
|
||||
(set! (-> a0-6 quad) (-> s1-0 quad))
|
||||
(+! (-> a0-6 y) 36864.0)
|
||||
(set! (-> a0-6 r) 61440.0)
|
||||
(when (or arg2 (not (sphere-in-view-frustum? a0-6)))
|
||||
(let ((f0-7 (vector-vector-xz-distance s1-0 *fountain-center-pos*)))
|
||||
(when (and (< 81920.0 f0-7) (< f0-7 f30-0))
|
||||
(set! f30-0 f0-7)
|
||||
(set! s5-0 s2-0)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! (-> arg0 quad) (-> *protect-path* s5-0 quad))
|
||||
)
|
||||
arg0
|
||||
)
|
||||
|
||||
(defun get-protect-suck-t ()
|
||||
(lerp-scale-clamp
|
||||
0.0
|
||||
1.0
|
||||
(the float (-> *game-info* sub-task-list (game-task-node city-protect-hq-resolution) death-count))
|
||||
3.0
|
||||
10.0
|
||||
)
|
||||
)
|
||||
|
||||
;; WARN: Return type mismatch int vs handle.
|
||||
(defmethod spawn-gunship ((this task-manager-protect-hq) (arg0 vector) (arg1 int) (arg2 float))
|
||||
(let ((s5-0 (new 'stack-no-clear 'protect-gunship-init-params)))
|
||||
(set! (-> s5-0 task-man) (process->handle this))
|
||||
(set! (-> s5-0 script) *gunship-0-script*)
|
||||
(set! (-> s5-0 num-stages) 2)
|
||||
(set! (-> s5-0 self-index) arg1)
|
||||
(set! (-> s5-0 difficulty) arg2)
|
||||
(set! (-> s5-0 pos quad) (-> arg0 quad))
|
||||
(quaternion-identity! (-> s5-0 quat))
|
||||
(let ((f0-1 (get-protect-suck-t)))
|
||||
(set! (-> s5-0 difficulty-scalar) (lerp 0.29 1.0 (- 1.0 f0-1)))
|
||||
)
|
||||
(the-as handle (ppointer->handle (process-spawn protect-gunship s5-0 :name "protect-gunship" :to this)))
|
||||
)
|
||||
)
|
||||
|
||||
(defstate wait-finish (task-manager-protect-hq)
|
||||
:virtual #t
|
||||
:event task-manager-event-handler
|
||||
:enter (behavior ()
|
||||
(dotimes (gp-0 17)
|
||||
(dotimes (s5-0 (-> self spawn-records gp-0 records length))
|
||||
(send-event
|
||||
(handle->process (-> self spawn-records gp-0 records data s5-0 proc))
|
||||
'attack
|
||||
#f
|
||||
(static-attack-info
|
||||
:mask (vehicle-impulse-factor)
|
||||
((id (new-attack-id)) (damage 16.0) (vehicle-damage-factor 1.0) (vehicle-impulse-factor 1.0) (mode 'explode))
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
:trans (behavior ()
|
||||
((-> (method-of-type task-manager active) trans))
|
||||
)
|
||||
:code (behavior ()
|
||||
(let ((gp-0 (current-time)))
|
||||
(until (time-elapsed? gp-0 (seconds 1))
|
||||
(suspend)
|
||||
)
|
||||
)
|
||||
(talker-spawn-func (-> *talker-speech* 337) *entity-pool* (target-pos 0) (the-as region #f))
|
||||
(let ((gp-2 (current-time)))
|
||||
(until (time-elapsed? gp-2 (seconds 2.5))
|
||||
(suspend)
|
||||
)
|
||||
)
|
||||
(talker-spawn-func (-> *talker-speech* 336) *entity-pool* (target-pos 0) (the-as region #f))
|
||||
(send-event self 'complete)
|
||||
(sleep-code)
|
||||
)
|
||||
)
|
||||
|
||||
(defstate fight-gunship-2 (task-manager-protect-hq)
|
||||
:virtual #t
|
||||
:event (behavior ((proc process) (argc int) (message symbol) (block event-message-block))
|
||||
(case message
|
||||
(('gunship-destroyed)
|
||||
(+! (-> self death-count) 1)
|
||||
(if (= (-> self death-count) 2)
|
||||
(go-virtual wait-finish)
|
||||
)
|
||||
)
|
||||
(else
|
||||
(task-manager-event-handler proc argc message block)
|
||||
)
|
||||
)
|
||||
)
|
||||
:enter (behavior ()
|
||||
(ff-squad-control-method-56 *ff-squad-control* 0 0 0)
|
||||
(ff-squad-control-method-56 *ff-squad-control* 1 7 7)
|
||||
(let ((gp-0 (get-spawn-pos-for-ship self (new 'stack-no-clear 'vector) *zero-vector* #f)))
|
||||
(dotimes (s5-0 2)
|
||||
(set! (-> self gunships s5-0) (spawn-gunship self gp-0 s5-0 1.0))
|
||||
(set! (-> gp-0 quad) (-> (get-spawn-pos-for-ship self (new 'stack-no-clear 'vector) gp-0 #f) quad))
|
||||
)
|
||||
)
|
||||
)
|
||||
:trans (behavior ()
|
||||
(if (< 1228800.0 (vector-vector-xz-distance (target-pos 0) (-> *gunship-start-positions* 0)))
|
||||
(send-event self 'fail)
|
||||
)
|
||||
((-> (method-of-type task-manager active) trans))
|
||||
(dotimes (gp-1 (-> self spawn-records length))
|
||||
(check-inactive (-> self spawn-records gp-1))
|
||||
)
|
||||
)
|
||||
:code (behavior ()
|
||||
(let ((gp-0 (current-time)))
|
||||
(until (time-elapsed? gp-0 (seconds 1))
|
||||
(suspend)
|
||||
)
|
||||
)
|
||||
(talker-spawn-func (-> *talker-speech* 334) *entity-pool* (target-pos 0) (the-as region #f))
|
||||
(sleep-code)
|
||||
)
|
||||
)
|
||||
|
||||
(defmethod gunship-spawn ((this task-manager-protect-hq) (arg0 protect-gunship-enemy-spawn-params))
|
||||
(let ((gp-0 (new 'stack-no-clear 'traffic-object-spawn-params)))
|
||||
(set! (-> gp-0 velocity quad) (the-as uint128 0))
|
||||
(set! (-> gp-0 position quad) (-> arg0 pos quad))
|
||||
(quaternion-copy! (-> gp-0 rotation) (-> arg0 quat))
|
||||
(set! (-> gp-0 behavior) (the-as uint 6))
|
||||
(set! (-> gp-0 object-type)
|
||||
(city-target-type->traffic-object-type (the-as city-target-type (-> arg0 spawn-type)))
|
||||
)
|
||||
(set! (-> gp-0 flags) (traffic-spawn-flags))
|
||||
(set! (-> gp-0 handle) (-> arg0 parent))
|
||||
(set! (-> gp-0 user-data) (the-as uint 0))
|
||||
(set! (-> gp-0 proc) #f)
|
||||
(logior! (-> gp-0 flags) (traffic-spawn-flags tsf7))
|
||||
(set! (-> gp-0 nav-branch) #f)
|
||||
(let ((s3-0 (new 'stack-no-clear 'vector)))
|
||||
(let ((s2-0 (new 'stack-no-clear 'collide-query)))
|
||||
(set! (-> s3-0 quad) (-> arg0 pos quad))
|
||||
(vector+float*! (-> s2-0 start-pos) (-> arg0 pos) *up-vector* 24576.0)
|
||||
(set! (-> s2-0 move-dist quad) (the-as uint128 0))
|
||||
(set! (-> s2-0 move-dist y) -81920.0)
|
||||
(let ((v1-11 s2-0))
|
||||
(set! (-> v1-11 radius) 40.96)
|
||||
(set! (-> v1-11 collide-with) (collide-spec backgnd))
|
||||
(set! (-> v1-11 ignore-process0) #f)
|
||||
(set! (-> v1-11 ignore-process1) #f)
|
||||
(set! (-> v1-11 ignore-pat)
|
||||
(new 'static 'pat-surface :noentity #x1 :nojak #x1 :probe #x1 :noendlessfall #x1 :board #x1)
|
||||
)
|
||||
(set! (-> v1-11 action-mask) (collide-action solid))
|
||||
)
|
||||
(if (>= (fill-and-probe-using-line-sphere *collide-cache* s2-0) 0.0)
|
||||
(set! (-> s3-0 quad) (-> s2-0 best-other-tri intersect quad))
|
||||
)
|
||||
)
|
||||
(set! (-> gp-0 nav-mesh) (find-nearest-nav-mesh-protect s3-0 (the-as float #x7f800000)))
|
||||
)
|
||||
(let ((v1-21 (get-last-unused-handle! (-> this spawn-records (-> arg0 spawn-type)))))
|
||||
(send-event (handle->process v1-21) 'traffic-activate gp-0 *traffic-engine*)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
(defmethod taskman-event-handler ((this task-manager-protect-hq) (arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
|
||||
(local-vars (v0-1 object))
|
||||
(case arg2
|
||||
(('count-active)
|
||||
(let ((s5-1 0))
|
||||
(dotimes (s4-1 (-> this spawn-records length))
|
||||
(case (city-target-type->cty-faction (the-as city-target-type s4-1))
|
||||
(((cty-faction mh) (cty-faction kg))
|
||||
(+! s5-1
|
||||
(- (-> this spawn-records s4-1 unused-list allocated-length) (-> this spawn-records s4-1 unused-list length))
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(return s5-1)
|
||||
)
|
||||
v0-1
|
||||
)
|
||||
(('gunship-spawn)
|
||||
(let ((a1-3 (-> arg3 param 0)))
|
||||
(gunship-spawn this (the-as protect-gunship-enemy-spawn-params a1-3))
|
||||
)
|
||||
)
|
||||
(else
|
||||
(call-parent-method this arg0 arg1 arg2 arg3)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
(deftype prot-crate (process-drawable)
|
||||
((h-crate handle :offset 208)
|
||||
(dummy-ent entity-actor)
|
||||
)
|
||||
(:state-methods
|
||||
active
|
||||
)
|
||||
(:methods
|
||||
(spawn-crate (_type_) handle)
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
(defmethod init-from-entity! ((this prot-crate) (arg0 entity-actor))
|
||||
(set! (-> this root) (new 'process 'trsqv))
|
||||
(process-drawable-from-entity! this arg0)
|
||||
(set! (-> this entity) arg0)
|
||||
(set! (-> this h-crate) (the-as handle #f))
|
||||
(set! (-> this dummy-ent) (the-as entity-actor (entity-by-name "crate-1148")))
|
||||
(go (method-of-object this active))
|
||||
)
|
||||
|
||||
(defstate active (prot-crate)
|
||||
:virtual #t
|
||||
:trans (behavior ()
|
||||
(if (handle->process (-> self h-crate))
|
||||
(set-time! (-> self state-time))
|
||||
)
|
||||
(when (and (time-elapsed? (-> self state-time) (seconds 15)) (not (handle->process (-> self h-crate))))
|
||||
(let ((a0-11 (new 'stack 'sphere)))
|
||||
(set! (-> a0-11 quad) (-> self root trans quad))
|
||||
(set! (-> a0-11 r) 8192.0)
|
||||
(if (not (sphere-in-view-frustum? a0-11))
|
||||
(spawn-crate self)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
:code sleep-code
|
||||
)
|
||||
|
||||
;; WARN: Return type mismatch int vs handle.
|
||||
(defmethod spawn-crate ((this prot-crate))
|
||||
(let ((s5-0 (new 'stack-no-clear 'vector))
|
||||
(s4-0 (new 'static 'fact-info))
|
||||
)
|
||||
(set! (-> s5-0 quad) (-> this root trans quad))
|
||||
(set! (-> s5-0 w) 1.0)
|
||||
(set! (-> s4-0 pickup-type) (pickup-type ammo-random))
|
||||
(let ((f30-0 (get-protect-suck-t)))
|
||||
(set! (-> s4-0 pickup-spawn-amount) (the float (the int (lerp 1.0 3.0 f30-0))))
|
||||
(set! (-> s4-0 pickup-amount) 10.0)
|
||||
(format 0 "Suck t is ~f, pickup spawn ~f~%" f30-0 (-> s4-0 pickup-spawn-amount))
|
||||
(when *target*
|
||||
(let ((f28-0 (/ (-> *target* fact health) (-> *target* fact health-max))))
|
||||
0.0
|
||||
(let* ((f0-9 (lerp 0.3 0.5 f30-0))
|
||||
(f1-2 (- 1.0 f28-0))
|
||||
(f1-3 (* f1-2 f1-2))
|
||||
(f30-1 (lerp 0.0 f0-9 f1-3))
|
||||
(v1-13 (/ (the-as int (rand-uint31-gen *random-generator*)) 256))
|
||||
(v1-14 (the-as number (logior #x3f800000 v1-13)))
|
||||
)
|
||||
(when (< (+ -1.0 (the-as float v1-14)) f30-1)
|
||||
(set! (-> s4-0 pickup-type) (pickup-type health))
|
||||
(set! (-> s4-0 pickup-spawn-amount) (-> *FACT-bank* health-small-inc))
|
||||
(if (and (< 0.9 f30-1) (let* ((v1-23 (/ (the-as int (rand-uint31-gen *random-generator*)) 256))
|
||||
(v1-24 (the-as number (logior #x3f800000 v1-23)))
|
||||
)
|
||||
(< (+ -1.0 (the-as float v1-24)) 0.5)
|
||||
)
|
||||
)
|
||||
(set! (-> s4-0 pickup-spawn-amount) (-> *FACT-bank* health-default-inc))
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(let* ((s4-1
|
||||
(ppointer->process (process-spawn crate (-> this entity) s5-0 'blue s4-0 :name "crate" :to *entity-pool*))
|
||||
)
|
||||
(s5-1 (if (type? s4-1 process-focusable)
|
||||
s4-1
|
||||
)
|
||||
)
|
||||
)
|
||||
(let ((a0-18 s5-1))
|
||||
(if a0-18
|
||||
(process-entity-set! a0-18 (-> this dummy-ent))
|
||||
)
|
||||
)
|
||||
(let ((v0-12 (process->handle s5-1)))
|
||||
(set! (-> this h-crate) (the-as handle v0-12))
|
||||
(the-as handle v0-12)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
(defstate fail (task-manager-protect-hq)
|
||||
:virtual #t
|
||||
:enter (behavior ((arg0 resetter-params))
|
||||
(let ((v1-0 *game-info*))
|
||||
(set! (-> v1-0 gun-ammo 0) (fmax (-> v1-0 gun-ammo 0) (-> *FACT-bank* ammo-yellow-start)))
|
||||
(set! (-> v1-0 gun-ammo 1) (fmax (-> v1-0 gun-ammo 1) (-> *FACT-bank* ammo-red-start)))
|
||||
(set! (-> v1-0 gun-ammo 2) (fmax (-> v1-0 gun-ammo 2) (-> *FACT-bank* ammo-blue-start)))
|
||||
(set! (-> v1-0 gun-ammo 3) (fmax (-> v1-0 gun-ammo 3) (-> *FACT-bank* ammo-dark-start)))
|
||||
)
|
||||
(let* ((t9-0 find-parent-method)
|
||||
(a0-5 task-manager-protect-hq)
|
||||
(t9-1 (-> (the-as (state resetter-params task-manager-protect-hq) (t9-0 a0-5 18)) enter))
|
||||
)
|
||||
(if t9-1
|
||||
(t9-1 (the-as resetter-params a0-5))
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
;; WARN: Return type mismatch object vs none.
|
||||
(defmethod task-manager-method-25 ((this task-manager-protect-hq))
|
||||
(set-time-for-random-weather! *mood-control* 0.0 0.0)
|
||||
(send-event (ppointer->process *time-of-day*) 'change 'ratio 1.0)
|
||||
(none)
|
||||
)
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -7,3 +7,37 @@
|
||||
|
||||
;; DECOMP BEGINS
|
||||
|
||||
(define *protect-path* (new 'static 'boxed-array :type vector
|
||||
(new 'static 'vector :x 2211630.2 :y 22453.863 :z -2517228.8 :w 1.0)
|
||||
(new 'static 'vector :x 2295778.5 :y 22453.863 :z -2456190.2 :w 1.0)
|
||||
(new 'static 'vector :x 2446499.0 :y 22453.453 :z -2412481.8 :w 1.0)
|
||||
(new 'static 'vector :x 2310667.5 :y 21837.004 :z -2087288.4 :w 1.0)
|
||||
(new 'static 'vector :x 2148552.0 :y 22453.863 :z -2113359.0 :w 1.0)
|
||||
(new 'static 'vector :x 2152553.8 :y 22453.863 :z -2376441.0 :w 1.0)
|
||||
(new 'static 'vector :x 2515651.8 :y 21837.004 :z -2508594.5 :w 1.0)
|
||||
(new 'static 'vector :x 2602777.8 :y 22453.863 :z -2511727.8 :w 1.0)
|
||||
(new 'static 'vector :x 2831592.8 :y 21837.004 :z -1880559.2 :w 1.0)
|
||||
(new 'static 'vector :x 2487184.5 :y 21837.004 :z -1848802.9 :w 1.0)
|
||||
(new 'static 'vector :x 2380442.8 :y 21837.004 :z -1984007.8 :w 1.0)
|
||||
(new 'static 'vector :x 2432462.0 :y 21837.004 :z -1985765.0 :w 1.0)
|
||||
(new 'static 'vector :x 2299293.0 :y 21836.596 :z -2372226.2 :w 1.0)
|
||||
(new 'static 'vector :x 2080341.6 :y 22453.453 :z -2027671.1 :w 1.0)
|
||||
(new 'static 'vector :x 2017324.6 :y 22453.863 :z -2045197.9 :w 1.0)
|
||||
(new 'static 'vector :x 2351111.2 :y 22453.863 :z -2034216.5 :w 1.0)
|
||||
(new 'static 'vector :x 2449616.0 :y 22453.863 :z -2154450.0 :w 1.0)
|
||||
(new 'static 'vector :x 2448837.8 :y 22453.863 :z -2273426.8 :w 1.0)
|
||||
(new 'static 'vector :x 2518544.0 :y 22453.863 :z -2397093.0 :w 1.0)
|
||||
(new 'static 'vector :x 2314292.5 :y 22453.863 :z -2181963.0 :w 1.0)
|
||||
(new 'static 'vector :x 2300230.8 :y 22453.863 :z -2519006.5 :w 1.0)
|
||||
(new 'static 'vector :x 2557939.0 :y 22453.863 :z -1909649.0 :w 1.0)
|
||||
(new 'static 'vector :x 2473258.2 :y 22453.863 :z -1937055.4 :w 1.0)
|
||||
(new 'static 'vector :x 2541858.0 :y 22453.863 :z -1848254.0 :w 1.0)
|
||||
(new 'static 'vector :x 2211847.2 :y 22453.863 :z -2048368.2 :w 1.0)
|
||||
(new 'static 'vector :x 2186792.2 :y 21836.596 :z -2284154.0 :w 1.0)
|
||||
(new 'static 'vector :x 2247048.5 :y 21836.596 :z -2196921.5 :w 1.0)
|
||||
(new 'static 'vector :x 2281217.2 :y 21836.596 :z -2032336.5 :w 1.0)
|
||||
(new 'static 'vector :x 2398612.8 :y 21836.596 :z -2275601.5 :w 1.0)
|
||||
(new 'static 'vector :x 2336705.8 :y 21836.596 :z -2370383.0 :w 1.0)
|
||||
(new 'static 'vector :x 2144562.5 :y 22453.863 :z -2027876.0 :w 1.0)
|
||||
)
|
||||
)
|
||||
|
@ -5,5 +5,169 @@
|
||||
;; name in dgo: protect-script
|
||||
;; dgos: LCTYPROT
|
||||
|
||||
;; +++gunship-command
|
||||
(defenum gunship-command
|
||||
:type uint8
|
||||
(spawn)
|
||||
(wait)
|
||||
(missiles)
|
||||
(script-set-jump)
|
||||
(script-jump)
|
||||
(no-op)
|
||||
(other)
|
||||
)
|
||||
;; ---gunship-command
|
||||
|
||||
|
||||
;; +++gunship-cmd-spawn-type
|
||||
(defenum gunship-cmd-spawn-type
|
||||
:type uint16
|
||||
:copy-entries city-target-type
|
||||
)
|
||||
;; ---gunship-cmd-spawn-type
|
||||
|
||||
|
||||
;; +++gunship-cmd-wait-type
|
||||
(defenum gunship-cmd-wait-type
|
||||
:type uint8
|
||||
(time)
|
||||
(total)
|
||||
)
|
||||
;; ---gunship-cmd-wait-type
|
||||
|
||||
|
||||
;; DECOMP BEGINS
|
||||
|
||||
(deftype gunship-cmd (structure)
|
||||
((command gunship-command)
|
||||
(spawn-type gunship-cmd-spawn-type)
|
||||
(count int8)
|
||||
(wait-type gunship-cmd-wait-type :overlay-at spawn-type)
|
||||
(difficulty float)
|
||||
(wait-time time-frame)
|
||||
(timeout-period time-frame)
|
||||
)
|
||||
:pack-me
|
||||
)
|
||||
|
||||
|
||||
(deftype gunship-cmd-context (structure)
|
||||
((start-time time-frame)
|
||||
(current-command gunship-cmd :inline)
|
||||
(script pair)
|
||||
(script-jump-point basic)
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
;; WARN: Return type mismatch int vs object.
|
||||
(defun parse-protect-command ((arg0 gunship-cmd-context))
|
||||
(let ((s5-0 (-> arg0 script car))
|
||||
(gp-0 (-> arg0 current-command))
|
||||
)
|
||||
(case (ref s5-0 0)
|
||||
(('spawn)
|
||||
(set! (-> gp-0 command) (gunship-command spawn))
|
||||
0
|
||||
)
|
||||
(('wait)
|
||||
(set! (-> gp-0 command) (gunship-command wait))
|
||||
)
|
||||
(('missiles)
|
||||
(set! (-> gp-0 command) (gunship-command missiles))
|
||||
)
|
||||
(('script-set-jump)
|
||||
(set! (-> gp-0 command) (gunship-command script-set-jump))
|
||||
(return (the-as object 0))
|
||||
)
|
||||
(('no-op)
|
||||
(set! (-> gp-0 command) (gunship-command no-op))
|
||||
(return (the-as object 0))
|
||||
)
|
||||
(('script-jump)
|
||||
(set! (-> gp-0 command) (gunship-command script-jump))
|
||||
(set! (-> gp-0 count) (the-as int (/ (the-as int (ref s5-0 1)) 8)))
|
||||
(return (the-as object 0))
|
||||
)
|
||||
(else
|
||||
(set! (-> gp-0 command) (gunship-command other))
|
||||
(return (the-as object 0))
|
||||
)
|
||||
)
|
||||
(case (-> gp-0 command)
|
||||
(((gunship-command spawn))
|
||||
(let ((a0-11 (ref s5-0 1)))
|
||||
(set! (-> gp-0 spawn-type) (the-as gunship-cmd-spawn-type (symbol->city-target-type (the-as symbol a0-11))))
|
||||
)
|
||||
(let ((a0-12 s5-0))
|
||||
(if (>= ((method-of-type (rtype-of a0-12) length) a0-12) 3)
|
||||
(set! (-> gp-0 count) (the-as int (/ (the-as int (ref s5-0 2)) 8)))
|
||||
(set! (-> gp-0 count) 1)
|
||||
)
|
||||
)
|
||||
)
|
||||
(((gunship-command missiles))
|
||||
(set! (-> gp-0 count) (max 0 (min 16 (the-as int (/ (the-as int (ref s5-0 1)) 8)))))
|
||||
(set! (-> gp-0 difficulty) 1.0)
|
||||
(let ((a0-17 s5-0))
|
||||
(if (>= ((method-of-type (rtype-of a0-17) length) a0-17) 3)
|
||||
(set! (-> gp-0 difficulty) (command-get-float (ref s5-0 2) 0.0))
|
||||
)
|
||||
)
|
||||
)
|
||||
(((gunship-command wait))
|
||||
(case (ref s5-0 1)
|
||||
(('time)
|
||||
(set! (-> gp-0 wait-type) (gunship-cmd-wait-type time))
|
||||
(let ((f0-2 (command-get-float (ref s5-0 2) 0.0)))
|
||||
(set! (-> gp-0 wait-time) (the-as time-frame (the int (* 300.0 f0-2))))
|
||||
)
|
||||
)
|
||||
(('total)
|
||||
(set! (-> gp-0 wait-type) (gunship-cmd-wait-type total))
|
||||
(set! (-> gp-0 count) (the-as int (/ (the-as int (ref s5-0 2)) 8)))
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(let* ((a0-28 s5-0)
|
||||
(s3-2 ((method-of-type (rtype-of a0-28) length) a0-28))
|
||||
(s4-4 (ref s5-0 (+ s3-2 -2)))
|
||||
(a0-31 (ref s5-0 (+ s3-2 -1)))
|
||||
(v0-1 6000)
|
||||
)
|
||||
(if (= s4-4 'timeout)
|
||||
(set! v0-1 (the int (* 300.0 (command-get-float a0-31 0.0))))
|
||||
)
|
||||
(set! (-> gp-0 timeout-period) (the-as time-frame v0-1))
|
||||
v0-1
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
(define *gunship-0-script* '((no-op)
|
||||
(spawn roboguard 1)
|
||||
(missiles 16)
|
||||
(spawn turret 1)
|
||||
(wait total 0)
|
||||
(missiles 10 (new 'static 'bfloat :data 0.5))
|
||||
(spawn roboguard 1)
|
||||
(missiles 16)
|
||||
(wait time (new 'static 'bfloat :data 5.0))
|
||||
(script-set-jump)
|
||||
(spawn roboguard 2)
|
||||
(wait time (new 'static 'bfloat :data 5.0))
|
||||
(missiles 16)
|
||||
(spawn spydroid 5)
|
||||
(wait time (new 'static 'bfloat :data 2.0))
|
||||
(missiles 8)
|
||||
(wait time (new 'static 'bfloat :data 3.0))
|
||||
(spawn spydroid 2)
|
||||
(wait time (new 'static 'bfloat :data 5.0))
|
||||
(spawn roboguard 1)
|
||||
(missiles 16)
|
||||
(wait time (new 'static 'bfloat :data 10.0))
|
||||
(script-jump 1)
|
||||
(end)
|
||||
)
|
||||
)
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -7,3 +7,188 @@
|
||||
|
||||
;; DECOMP BEGINS
|
||||
|
||||
(deftype combx-elevator (process-drawable)
|
||||
((root collide-shape :override)
|
||||
)
|
||||
(:state-methods
|
||||
idle
|
||||
)
|
||||
(:methods
|
||||
(init-collision! (_type_) none)
|
||||
(setup-skel-and-draw-masks (_type_) none)
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
(defstate idle (combx-elevator)
|
||||
:virtual #t
|
||||
:code (behavior ()
|
||||
(until #f
|
||||
(ja-no-eval :group! (ja-group) :num! (seek!) :frame-num 0.0)
|
||||
(until (ja-done? 0)
|
||||
(suspend)
|
||||
(ja :num! (seek!))
|
||||
)
|
||||
)
|
||||
#f
|
||||
)
|
||||
:post ja-post
|
||||
)
|
||||
|
||||
(defskelgroup skel-combx-elevator tpl-elevator tpl-elevator-lod0-jg tpl-elevator-idle-ja
|
||||
((tpl-elevator-lod0-mg (meters 999999)))
|
||||
:bounds (static-spherem 0 0 0 11)
|
||||
)
|
||||
|
||||
;; WARN: Return type mismatch collide-shape-moving vs none.
|
||||
(defmethod init-collision! ((this combx-elevator))
|
||||
(let ((s5-0 (new 'process 'collide-shape-moving this (collide-list-enum usually-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-group s5-0 (the-as uint 2) 0)))
|
||||
(set! (-> s5-0 total-prims) (the-as uint 3))
|
||||
(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) 3)
|
||||
(set-vector! (-> s4-0 local-sphere) 0.0 0.0 0.0 45056.0)
|
||||
(set! (-> s5-0 root-prim) s4-0)
|
||||
)
|
||||
(pusher-init s5-0)
|
||||
(let ((v1-15 (new 'process 'collide-shape-prim-mesh s5-0 (the-as uint 0) (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 0.0 0.0 45056.0)
|
||||
)
|
||||
(let ((v1-18 (new 'process 'collide-shape-prim-mesh s5-0 (the-as uint 1) (the-as uint (shl #xfe00 16)))))
|
||||
(set! (-> v1-18 prim-core action) (collide-action solid))
|
||||
(set! (-> v1-18 transform-index) 3)
|
||||
(set-vector! (-> v1-18 local-sphere) 0.0 0.0 0.0 45056.0)
|
||||
)
|
||||
(set! (-> s5-0 nav-radius) (* 0.75 (-> s5-0 root-prim local-sphere w)))
|
||||
(let ((v1-21 (-> s5-0 root-prim)))
|
||||
(set! (-> s5-0 backup-collide-as) (-> v1-21 prim-core collide-as))
|
||||
(set! (-> s5-0 backup-collide-with) (-> v1-21 prim-core collide-with))
|
||||
)
|
||||
(set! (-> this root) s5-0)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
|
||||
(defmethod setup-skel-and-draw-masks ((this combx-elevator))
|
||||
(initialize-skeleton
|
||||
this
|
||||
(the-as skeleton-group (art-group-get-by-name *level* "skel-combx-elevator" (the-as (pointer level) #f)))
|
||||
(the-as pair 0)
|
||||
)
|
||||
(setup-masks (-> this draw) 1 2)
|
||||
(update-transforms (-> this root))
|
||||
0
|
||||
(none)
|
||||
)
|
||||
|
||||
(defmethod init-from-entity! ((this combx-elevator) (arg0 entity-actor))
|
||||
(init-collision! this)
|
||||
(process-drawable-from-entity! this arg0)
|
||||
(setup-skel-and-draw-masks this)
|
||||
(set! (-> this draw light-index) (the-as uint 1))
|
||||
(go (method-of-object this idle))
|
||||
)
|
||||
|
||||
(deftype combx-states (structure)
|
||||
()
|
||||
)
|
||||
|
||||
|
||||
(defun init-mood-combx ((arg0 mood-context))
|
||||
(let ((v1-0 (-> arg0 light-group 1)))
|
||||
(let ((a0-1 (-> v1-0 dir0)))
|
||||
(set! (-> a0-1 direction x) 0.0)
|
||||
(set! (-> a0-1 direction y) 1.0)
|
||||
(set! (-> a0-1 direction z) 0.0)
|
||||
(set! (-> a0-1 direction w) 0.0)
|
||||
)
|
||||
(set-vector! (-> v1-0 dir0 color) 0.667 0.667 0.667 1.0)
|
||||
(set-vector! (-> v1-0 ambi color) 0.333 0.333 0.333 1.0)
|
||||
(set! (-> v1-0 dir0 extra x) 0.75)
|
||||
(set! (-> v1-0 dir1 extra x) 0.0)
|
||||
(set! (-> v1-0 dir2 extra x) 0.0)
|
||||
(set! (-> v1-0 ambi extra x) 0.25)
|
||||
)
|
||||
)
|
||||
|
||||
(defbehavior update-mood-combx time-of-day-proc ((arg0 mood-context) (arg1 float) (arg2 int))
|
||||
(update-mood-interior arg0 #f)
|
||||
(let* ((s5-0 (camera-pos))
|
||||
(f0-1 (fmin
|
||||
(vector-vector-distance s5-0 (new 'static 'vector :x 368640.0 :z 40960.0 :w 1.0))
|
||||
(vector-vector-distance s5-0 (new 'static 'vector :x 14274560.0 :y -167936.0 :z 614400.0 :w 1.0))
|
||||
)
|
||||
)
|
||||
)
|
||||
(when (< f0-1 716800.0)
|
||||
(let ((f30-1 (fmax 0.0 (fmin 1.0 (* 0.000009765625 (- 819200.0 f0-1)))))
|
||||
(a1-4 (-> arg0 current-fog))
|
||||
(s5-1 (-> arg0 current-fog fog-dists))
|
||||
)
|
||||
(vector4-lerp!
|
||||
(the-as vector a1-4)
|
||||
(the-as vector a1-4)
|
||||
(new 'static 'vector :x 30.0 :y 80.0 :z 150.0 :w 128.0)
|
||||
f30-1
|
||||
)
|
||||
(vector4-lerp! s5-1 s5-1 (new 'static 'vector :x 262144.0 :y 937984.0 :z 255.0 :w 200.0) f30-1)
|
||||
)
|
||||
)
|
||||
)
|
||||
(cond
|
||||
((< (the-as uint 8) (the-as uint (-> *time-of-day-context* mode)))
|
||||
(palette-select-special arg0)
|
||||
)
|
||||
(else
|
||||
(-> arg0 state)
|
||||
(let* ((s5-2 (-> *display* part-clock frame-counter))
|
||||
(f0-6 (* 1310.72 (the float (mod s5-2 25))))
|
||||
(f30-2 (sin f0-6))
|
||||
(f0-8 (* 109.22667 (the float (mod s5-2 600))))
|
||||
(s5-3 (/ (mod s5-2 125) 25))
|
||||
)
|
||||
(set! (-> arg0 times 0 w) 1.0)
|
||||
(set! (-> arg0 times 1 w) f30-2)
|
||||
(set! (-> arg0 times 2 w) (+ 0.85 (* 0.15 (cos f0-8))))
|
||||
(set! (-> arg0 times 3 w) (if (zero? s5-3)
|
||||
f30-2
|
||||
0.0
|
||||
)
|
||||
)
|
||||
(set! (-> arg0 times 4 w) (if (= s5-3 1)
|
||||
f30-2
|
||||
0.0
|
||||
)
|
||||
)
|
||||
(set! (-> arg0 times 5 w) (if (= s5-3 2)
|
||||
f30-2
|
||||
0.0
|
||||
)
|
||||
)
|
||||
(set! (-> arg0 times 6 w) (if (= s5-3 3)
|
||||
f30-2
|
||||
0.0
|
||||
)
|
||||
)
|
||||
(set! (-> arg0 times 7 w) (if (= s5-3 4)
|
||||
f30-2
|
||||
0.0
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
0
|
||||
(none)
|
||||
)
|
||||
|
@ -5,5 +5,212 @@
|
||||
;; name in dgo: lfaccity-mood
|
||||
;; dgos: LFACB, LFACCITY
|
||||
|
||||
(declare-type lfaccity-pparticle-mover process-drawable)
|
||||
|
||||
;; DECOMP BEGINS
|
||||
|
||||
(define *faccity-part-updater* (the-as lfaccity-pparticle-mover #f))
|
||||
|
||||
(deftype lfaccity-states (structure)
|
||||
((light light-state :inline)
|
||||
(roty float)
|
||||
(rotz float)
|
||||
(rot-bob float)
|
||||
(wobble float)
|
||||
(bob float)
|
||||
(zero-test int32)
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
;; WARN: Return type mismatch object vs none.
|
||||
(defbehavior update-mood-lfaccity time-of-day-proc ((arg0 mood-context) (arg1 float) (arg2 int))
|
||||
(copy-mood-exterior arg0)
|
||||
(when (and (= (-> *level* level arg2 status) 'active)
|
||||
(< (the-as uint (-> *time-of-day-context* mode)) (the-as uint 9))
|
||||
)
|
||||
(let ((gp-1 (the-as object (-> arg0 state))))
|
||||
(cond
|
||||
((level-get *level* 'factoryb)
|
||||
(set-vector! (-> *math-camera* trans-other) 1228800.0 (-> (the-as lfaccity-states gp-1) bob) 1228800.0 1.0)
|
||||
(let ((s3-0 (new 'stack-no-clear 'vector)))
|
||||
(set-vector! s3-0 -409600.0 0.0 0.0 1.0)
|
||||
(vector-rotate-y! s3-0 s3-0 (-> (the-as lfaccity-states gp-1) roty))
|
||||
(vector+! (-> *math-camera* trans-other) (-> *math-camera* trans-other) s3-0)
|
||||
)
|
||||
)
|
||||
((or (level-get *level* 'factoryc) (level-get *level* 'factoryd))
|
||||
(set-vector!
|
||||
(-> *math-camera* trans-other)
|
||||
696320.0
|
||||
(+ -614400.0 (-> (the-as lfaccity-states gp-1) bob))
|
||||
-368640.0
|
||||
1.0
|
||||
)
|
||||
)
|
||||
)
|
||||
(update-mood-light arg0 5 0 1.0 0.0 arg1 0.0 2.0)
|
||||
(let ((s5-1 *math-camera*))
|
||||
(when (not (paused?))
|
||||
(let ((s3-1 (new 'stack-no-clear 'quaternion))
|
||||
(s4-1 (new 'stack-no-clear 'quaternion))
|
||||
)
|
||||
(quaternion-vector-angle! s3-1 *y-vector* (-> (the-as lfaccity-states gp-1) roty))
|
||||
(quaternion-vector-angle! s4-1 *z-vector* (-> (the-as lfaccity-states gp-1) wobble))
|
||||
(quaternion*! (-> s5-1 quat-other) s4-1 s3-1)
|
||||
)
|
||||
(let ((f0-17 (+ (-> (the-as lfaccity-states gp-1) roty) (* 910.2222 (seconds-per-frame)))))
|
||||
(set! (-> (the-as lfaccity-states gp-1) roty) (- f0-17 (* (the float (the int (/ f0-17 65536.0))) 65536.0)))
|
||||
)
|
||||
(let ((f0-20 (+ (-> (the-as lfaccity-states gp-1) rotz) (* 8192.0 (seconds-per-frame)))))
|
||||
(set! (-> (the-as lfaccity-states gp-1) rotz) (- f0-20 (* (the float (the int (/ f0-20 65536.0))) 65536.0)))
|
||||
)
|
||||
(set! (-> (the-as lfaccity-states gp-1) wobble) (* 910.2222 (sin (-> (the-as lfaccity-states gp-1) rotz))))
|
||||
(let ((f0-26 (+ (-> (the-as lfaccity-states gp-1) rot-bob) (* 16384.0 (seconds-per-frame)))))
|
||||
(set! (-> (the-as lfaccity-states gp-1) rot-bob)
|
||||
(- f0-26 (* (the float (the int (/ f0-26 65536.0))) 65536.0))
|
||||
)
|
||||
)
|
||||
(set! (-> (the-as lfaccity-states gp-1) bob)
|
||||
(+ -40960.0 (* 40960.0 (sin (-> (the-as lfaccity-states gp-1) rot-bob))))
|
||||
)
|
||||
(send-event *faccity-part-updater* 'mood-update)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
|
||||
(deftype faccity-pparticle-info (structure)
|
||||
((original-pos vector :inline)
|
||||
(inited? symbol)
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
(deftype faccity-pparticle-array (inline-array-class)
|
||||
((data faccity-pparticle-info :inline :dynamic)
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
(set! (-> faccity-pparticle-array heap-base) (the-as uint 32))
|
||||
|
||||
(deftype lfaccity-pparticle-mover (process-drawable)
|
||||
((actor-group (pointer actor-group))
|
||||
(actor-group-count int32)
|
||||
(particles faccity-pparticle-array)
|
||||
)
|
||||
(:state-methods
|
||||
active
|
||||
)
|
||||
(:methods
|
||||
(mood-update (_type_) symbol)
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
(defmethod init-from-entity! ((this lfaccity-pparticle-mover) (arg0 entity-actor))
|
||||
(local-vars (sv-16 res-tag))
|
||||
(set! sv-16 (new 'static 'res-tag))
|
||||
(let ((v1-1 (res-lump-data (-> this entity) 'actor-groups pointer :tag-ptr (& sv-16))))
|
||||
(cond
|
||||
((and v1-1 (nonzero? (-> sv-16 elt-count)))
|
||||
(set! (-> this actor-group) (the-as (pointer actor-group) v1-1))
|
||||
(set! (-> this actor-group-count) (the-as int (-> sv-16 elt-count)))
|
||||
)
|
||||
(else
|
||||
(set! (-> this actor-group) (the-as (pointer actor-group) #f))
|
||||
(set! (-> this actor-group-count) 0)
|
||||
0
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! (-> this root) (new 'process 'trsqv))
|
||||
(if (<= (-> this actor-group-count) 0)
|
||||
(go process-drawable-art-error "actor group")
|
||||
)
|
||||
(set! (-> this entity extra vis-dist) 40960000000000.0)
|
||||
(set! (-> this particles) (new 'process 'faccity-pparticle-array (-> this actor-group 0 length)))
|
||||
(dotimes (v1-18 (-> this particles length))
|
||||
(set! (-> this particles data v1-18 inited?) #f)
|
||||
)
|
||||
(set! *faccity-part-updater* this)
|
||||
(go (method-of-object this active))
|
||||
)
|
||||
|
||||
(defbehavior lfaccity-pparticle-mover-init-by-other lfaccity-pparticle-mover ((arg0 entity-actor))
|
||||
(init-from-entity! self arg0)
|
||||
)
|
||||
|
||||
(defstate active (lfaccity-pparticle-mover)
|
||||
:virtual #t
|
||||
:event (behavior ((proc process) (argc int) (message symbol) (block event-message-block))
|
||||
(case message
|
||||
(('mood-update)
|
||||
(mood-update self)
|
||||
)
|
||||
)
|
||||
)
|
||||
:code sleep-code
|
||||
)
|
||||
|
||||
(defmethod run-logic? ((this lfaccity-pparticle-mover))
|
||||
"Should this process be run? Checked by execute-process-tree."
|
||||
#t
|
||||
)
|
||||
|
||||
(defmethod deactivate ((this lfaccity-pparticle-mover))
|
||||
"Make a process dead, clean it up, remove it from the active pool, and return to dead pool."
|
||||
(set! *faccity-part-updater* #f)
|
||||
(call-parent-method this)
|
||||
(none)
|
||||
)
|
||||
|
||||
(defmethod mood-update ((this lfaccity-pparticle-mover))
|
||||
(let ((s5-0 (quaternion->matrix (new 'stack-no-clear 'matrix) (-> *math-camera* quat-other))))
|
||||
(dotimes (s4-0 (-> this particles length))
|
||||
(cond
|
||||
((-> this particles data s4-0 inited?)
|
||||
(let ((v1-6 (vector-matrix*! (new 'stack-no-clear 'vector) (the-as vector (-> this particles data s4-0)) s5-0))
|
||||
(a1-4 (-> this actor-group 0 data s4-0 actor))
|
||||
)
|
||||
(when a1-4
|
||||
(let ((a1-5 (-> a1-4 extra process)))
|
||||
(when a1-5
|
||||
(set! (-> (the-as process-drawable a1-5) root trans quad) (-> v1-6 quad))
|
||||
(vector+!
|
||||
(-> (the-as process-drawable a1-5) root trans)
|
||||
(-> (the-as process-drawable a1-5) root trans)
|
||||
(-> *math-camera* trans-other)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(else
|
||||
(let ((v1-14 (-> this actor-group 0 data s4-0 actor)))
|
||||
(when v1-14
|
||||
(set! (-> this particles data s4-0 original-pos quad) (-> v1-14 extra trans quad))
|
||||
(set! (-> this particles data s4-0 inited?) #t)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
#f
|
||||
)
|
||||
|
||||
(defmethod relocate ((this lfaccity-pparticle-mover) (offset int))
|
||||
(set! *faccity-part-updater* this)
|
||||
(if *faccity-part-updater*
|
||||
(set! *faccity-part-updater* (&+ *faccity-part-updater* offset))
|
||||
)
|
||||
(if (nonzero? (-> this particles))
|
||||
(&+! (-> this particles) offset)
|
||||
)
|
||||
(call-parent-method this offset)
|
||||
)
|
||||
|
@ -7,3 +7,637 @@
|
||||
|
||||
;; DECOMP BEGINS
|
||||
|
||||
(define *precura-adjacency*
|
||||
(new 'static 'nav-network-data
|
||||
:node-array (new 'static 'boxed-array :type nav-network-info
|
||||
(new 'static 'nav-network-info
|
||||
:path-node (new 'static 'nav-network-path-node :parent #f)
|
||||
:pos (new 'static 'vector :x 155320.31 :y 2275000.2 :z -253829.12 :w 1.0)
|
||||
:count 2
|
||||
:adjacency (new 'static 'inline-array nav-network-adjacency 2
|
||||
(new 'static 'nav-network-adjacency :index 3 :dist 97320.96)
|
||||
(new 'static 'nav-network-adjacency :index 23 :dist 81141.76)
|
||||
)
|
||||
)
|
||||
(new 'static 'nav-network-info
|
||||
:path-node (new 'static 'nav-network-path-node :row-index 1 :parent #f)
|
||||
:pos (new 'static 'vector :x 173219.84 :y 2275000.2 :z -149340.16 :w 1.0)
|
||||
:index 1
|
||||
:count 2
|
||||
:adjacency (new 'static 'inline-array nav-network-adjacency 2
|
||||
(new 'static 'nav-network-adjacency :index 2 :dist 103505.92)
|
||||
(new 'static 'nav-network-adjacency :index 24 :dist 83312.64)
|
||||
)
|
||||
)
|
||||
(new 'static 'nav-network-info
|
||||
:path-node (new 'static 'nav-network-path-node :row-index 2 :parent #f)
|
||||
:pos (new 'static 'vector :x 184770.56 :y 2180259.8 :z -189399.05 :w 1.0)
|
||||
:index 2
|
||||
:count 1
|
||||
:adjacency (new 'static 'inline-array nav-network-adjacency 1
|
||||
(new 'static 'nav-network-adjacency :index 1 :dist 103505.92)
|
||||
)
|
||||
)
|
||||
(new 'static 'nav-network-info
|
||||
:path-node (new 'static 'nav-network-path-node :row-index 3 :parent #f)
|
||||
:pos (new 'static 'vector :x 175063.05 :y 2180259.8 :z -263946.25 :w 1.0)
|
||||
:index 3
|
||||
:count 1
|
||||
:adjacency (new 'static 'inline-array nav-network-adjacency 1 (new 'static 'nav-network-adjacency :dist 97320.96))
|
||||
)
|
||||
(new 'static 'nav-network-info
|
||||
:path-node (new 'static 'nav-network-path-node :row-index 4 :parent #f)
|
||||
:pos (new 'static 'vector :x 153722.88 :y 2289991.8 :z 150568.95 :w 1.0)
|
||||
:index 4
|
||||
:count 2
|
||||
:adjacency (new 'static 'inline-array nav-network-adjacency 2
|
||||
(new 'static 'nav-network-adjacency :index 5 :dist 86548.48)
|
||||
(new 'static 'nav-network-adjacency :index 26 :dist 136929.28)
|
||||
)
|
||||
)
|
||||
(new 'static 'nav-network-info
|
||||
:path-node (new 'static 'nav-network-path-node :row-index 5 :parent #f)
|
||||
:pos (new 'static 'vector :x 152453.12 :y 2247188.5 :z 225812.48 :w 1.0)
|
||||
:index 5
|
||||
:count 2
|
||||
:adjacency (new 'static 'inline-array nav-network-adjacency 2
|
||||
(new 'static 'nav-network-adjacency :index 4 :dist 86548.48)
|
||||
(new 'static 'nav-network-adjacency :index 6 :dist 99409.92)
|
||||
)
|
||||
)
|
||||
(new 'static 'nav-network-info
|
||||
:path-node (new 'static 'nav-network-path-node :row-index 6 :parent #f)
|
||||
:pos (new 'static 'vector :x 232693.77 :y 2190991.2 :z 242606.08 :w 1.0)
|
||||
:index 6
|
||||
:count 1
|
||||
:adjacency (new 'static 'inline-array nav-network-adjacency 1
|
||||
(new 'static 'nav-network-adjacency :index 5 :dist 99409.92)
|
||||
)
|
||||
)
|
||||
(new 'static 'nav-network-info
|
||||
:path-node (new 'static 'nav-network-path-node :row-index 7 :parent #f)
|
||||
:pos (new 'static 'vector :x 632709.1 :y 2243788.8 :z -189972.48 :w 1.0)
|
||||
:index 7
|
||||
:sub-graph 1
|
||||
:count 2
|
||||
:adjacency (new 'static 'inline-array nav-network-adjacency 2
|
||||
(new 'static 'nav-network-adjacency :index 8 :dist 39198.72)
|
||||
(new 'static 'nav-network-adjacency :index 16 :dist 110510.08)
|
||||
)
|
||||
)
|
||||
(new 'static 'nav-network-info
|
||||
:path-node (new 'static 'nav-network-path-node :row-index 8 :parent #f)
|
||||
:pos (new 'static 'vector :x 593551.4 :y 2243788.8 :z -192307.2 :w 1.0)
|
||||
:index 8
|
||||
:sub-graph 1
|
||||
:count 3
|
||||
:adjacency (new 'static 'inline-array nav-network-adjacency 3
|
||||
(new 'static 'nav-network-adjacency :index 7 :dist 39198.72)
|
||||
(new 'static 'nav-network-adjacency :index 9 :dist 47308.8)
|
||||
(new 'static 'nav-network-adjacency :index 17 :dist 110387.2)
|
||||
)
|
||||
)
|
||||
(new 'static 'nav-network-info
|
||||
:path-node (new 'static 'nav-network-path-node :row-index 9 :parent #f)
|
||||
:pos (new 'static 'vector :x 546693.1 :y 2243788.8 :z -198656.0 :w 1.0)
|
||||
:index 9
|
||||
:sub-graph 1
|
||||
:count 3
|
||||
:adjacency (new 'static 'inline-array nav-network-adjacency 3
|
||||
(new 'static 'nav-network-adjacency :index 8 :dist 47308.8)
|
||||
(new 'static 'nav-network-adjacency :index 10 :dist 93020.16)
|
||||
(new 'static 'nav-network-adjacency :index 18 :dist 109363.2)
|
||||
)
|
||||
)
|
||||
(new 'static 'nav-network-info
|
||||
:path-node (new 'static 'nav-network-path-node :row-index 10 :parent #f)
|
||||
:pos (new 'static 'vector :x 483450.88 :y 2243788.8 :z -266895.38 :w 1.0)
|
||||
:index 10
|
||||
:sub-graph 1
|
||||
:count 2
|
||||
:adjacency (new 'static 'inline-array nav-network-adjacency 2
|
||||
(new 'static 'nav-network-adjacency :index 9 :dist 93020.16)
|
||||
(new 'static 'nav-network-adjacency :index 11 :dist 105594.88)
|
||||
)
|
||||
)
|
||||
(new 'static 'nav-network-info
|
||||
:path-node (new 'static 'nav-network-path-node :row-index 11 :parent #f)
|
||||
:pos (new 'static 'vector :x 484024.3 :y 2272174.0 :z -368599.03 :w 1.0)
|
||||
:index 11
|
||||
:sub-graph 1
|
||||
:count 4
|
||||
:adjacency (new 'static 'inline-array nav-network-adjacency 4
|
||||
(new 'static 'nav-network-adjacency :index 10 :dist 105594.88)
|
||||
(new 'static 'nav-network-adjacency :index 12 :dist 71106.56)
|
||||
(new 'static 'nav-network-adjacency :index 19 :dist 97812.48)
|
||||
(new 'static 'nav-network-adjacency :index 20 :dist 107069.44)
|
||||
)
|
||||
)
|
||||
(new 'static 'nav-network-info
|
||||
:path-node (new 'static 'nav-network-path-node :row-index 12 :parent #f)
|
||||
:pos (new 'static 'vector :x 555130.9 :y 2272174.0 :z -367861.75 :w 1.0)
|
||||
:index 12
|
||||
:sub-graph 1
|
||||
:count 4
|
||||
:adjacency (new 'static 'inline-array nav-network-adjacency 4
|
||||
(new 'static 'nav-network-adjacency :index 11 :dist 71106.56)
|
||||
(new 'static 'nav-network-adjacency :index 13 :dist 48906.24)
|
||||
(new 'static 'nav-network-adjacency :index 20 :dist 103464.96)
|
||||
(new 'static 'nav-network-adjacency :index 21 :dist 104120.32)
|
||||
)
|
||||
)
|
||||
(new 'static 'nav-network-info
|
||||
:path-node (new 'static 'nav-network-path-node :row-index 13 :parent #f)
|
||||
:pos (new 'static 'vector :x 570736.6 :y 2272174.0 :z -321495.03 :w 1.0)
|
||||
:index 13
|
||||
:sub-graph 1
|
||||
:count 2
|
||||
:adjacency (new 'static 'inline-array nav-network-adjacency 2
|
||||
(new 'static 'nav-network-adjacency :index 12 :dist 48906.24)
|
||||
(new 'static 'nav-network-adjacency :index 14 :dist 49233.92)
|
||||
)
|
||||
)
|
||||
(new 'static 'nav-network-info
|
||||
:path-node (new 'static 'nav-network-path-node :row-index 14 :parent #f)
|
||||
:pos (new 'static 'vector :x 568074.25 :y 2272174.0 :z -272343.03 :w 1.0)
|
||||
:index 14
|
||||
:sub-graph 1
|
||||
:count 2
|
||||
:adjacency (new 'static 'inline-array nav-network-adjacency 2
|
||||
(new 'static 'nav-network-adjacency :index 13 :dist 49233.92)
|
||||
(new 'static 'nav-network-adjacency :index 15 :dist 62709.76)
|
||||
)
|
||||
)
|
||||
(new 'static 'nav-network-info
|
||||
:path-node (new 'static 'nav-network-path-node :row-index 15 :parent #f)
|
||||
:pos (new 'static 'vector :x 607887.4 :y 2272174.0 :z -223846.4 :w 1.0)
|
||||
:index 15
|
||||
:sub-graph 1
|
||||
:count 2
|
||||
:adjacency (new 'static 'inline-array nav-network-adjacency 2
|
||||
(new 'static 'nav-network-adjacency :index 14 :dist 62709.76)
|
||||
(new 'static 'nav-network-adjacency :index 22 :dist 111329.28)
|
||||
)
|
||||
)
|
||||
(new 'static 'nav-network-info
|
||||
:path-node (new 'static 'nav-network-path-node :row-index 16 :parent #f)
|
||||
:pos (new 'static 'vector :x 611205.1 :y 2137948.2 :z -166584.31 :w 1.0)
|
||||
:index 16
|
||||
:sub-graph 1
|
||||
:count 1
|
||||
:adjacency (new 'static 'inline-array nav-network-adjacency 1
|
||||
(new 'static 'nav-network-adjacency :index 7 :dist 110510.08)
|
||||
)
|
||||
)
|
||||
(new 'static 'nav-network-info
|
||||
:path-node (new 'static 'nav-network-path-node :row-index 17 :parent #f)
|
||||
:pos (new 'static 'vector :x 577331.2 :y 2137948.2 :z -165478.4 :w 1.0)
|
||||
:index 17
|
||||
:sub-graph 1
|
||||
:count 1
|
||||
:adjacency (new 'static 'inline-array nav-network-adjacency 1
|
||||
(new 'static 'nav-network-adjacency :index 8 :dist 110387.2)
|
||||
)
|
||||
)
|
||||
(new 'static 'nav-network-info
|
||||
:path-node (new 'static 'nav-network-path-node :row-index 18 :parent #f)
|
||||
:pos (new 'static 'vector :x 542105.6 :y 2137948.2 :z -171540.48 :w 1.0)
|
||||
:index 18
|
||||
:sub-graph 1
|
||||
:count 1
|
||||
:adjacency (new 'static 'inline-array nav-network-adjacency 1
|
||||
(new 'static 'nav-network-adjacency :index 9 :dist 109363.2)
|
||||
)
|
||||
)
|
||||
(new 'static 'nav-network-info
|
||||
:path-node (new 'static 'nav-network-path-node :row-index 19 :parent #f)
|
||||
:pos (new 'static 'vector :x 480256.0 :y 2178048.0 :z -394936.3 :w 1.0)
|
||||
:index 19
|
||||
:sub-graph 1
|
||||
:count 1
|
||||
:adjacency (new 'static 'inline-array nav-network-adjacency 1
|
||||
(new 'static 'nav-network-adjacency :index 11 :dist 97812.48)
|
||||
)
|
||||
)
|
||||
(new 'static 'nav-network-info
|
||||
:path-node (new 'static 'nav-network-path-node :row-index 20 :parent #f)
|
||||
:pos (new 'static 'vector :x 525189.1 :y 2178048.0 :z -398704.62 :w 1.0)
|
||||
:index 20
|
||||
:sub-graph 1
|
||||
:count 2
|
||||
:adjacency (new 'static 'inline-array nav-network-adjacency 2
|
||||
(new 'static 'nav-network-adjacency :index 11 :dist 107069.44)
|
||||
(new 'static 'nav-network-adjacency :index 12 :dist 103464.96)
|
||||
)
|
||||
)
|
||||
(new 'static 'nav-network-info
|
||||
:path-node (new 'static 'nav-network-path-node :row-index 21 :parent #f)
|
||||
:pos (new 'static 'vector :x 591872.0 :y 2178048.0 :z -392847.38 :w 1.0)
|
||||
:index 21
|
||||
:sub-graph 1
|
||||
:count 1
|
||||
:adjacency (new 'static 'inline-array nav-network-adjacency 1
|
||||
(new 'static 'nav-network-adjacency :index 12 :dist 104120.32)
|
||||
)
|
||||
)
|
||||
(new 'static 'nav-network-info
|
||||
:path-node (new 'static 'nav-network-path-node :row-index 22 :parent #f)
|
||||
:pos (new 'static 'vector :x 631521.25 :y 2178048.0 :z -278446.1 :w 1.0)
|
||||
:index 22
|
||||
:sub-graph 1
|
||||
:count 1
|
||||
:adjacency (new 'static 'inline-array nav-network-adjacency 1
|
||||
(new 'static 'nav-network-adjacency :index 15 :dist 111329.28)
|
||||
)
|
||||
)
|
||||
(new 'static 'nav-network-info
|
||||
:path-node (new 'static 'nav-network-path-node :row-index 23 :parent #f)
|
||||
:pos (new 'static 'vector :x 236093.44 :y 2270126.0 :z -259768.31 :w 1.0)
|
||||
:index 23
|
||||
:count 2
|
||||
:adjacency (new 'static 'inline-array nav-network-adjacency 2
|
||||
(new 'static 'nav-network-adjacency :dist 81141.76)
|
||||
(new 'static 'nav-network-adjacency :index 24 :dist 63242.24)
|
||||
)
|
||||
)
|
||||
(new 'static 'nav-network-info
|
||||
:path-node (new 'static 'nav-network-path-node :row-index 24 :parent #f)
|
||||
:pos (new 'static 'vector :x 241541.12 :y 2270126.0 :z -196730.88 :w 1.0)
|
||||
:index 24
|
||||
:count 3
|
||||
:adjacency (new 'static 'inline-array nav-network-adjacency 3
|
||||
(new 'static 'nav-network-adjacency :index 1 :dist 83312.64)
|
||||
(new 'static 'nav-network-adjacency :index 23 :dist 63242.24)
|
||||
(new 'static 'nav-network-adjacency :index 25 :dist 73809.92)
|
||||
)
|
||||
)
|
||||
(new 'static 'nav-network-info
|
||||
:path-node (new 'static 'nav-network-path-node :row-index 25 :parent #f)
|
||||
:pos (new 'static 'vector :x 263168.0 :y 2270126.0 :z -126197.76 :w 1.0)
|
||||
:index 25
|
||||
:count 2
|
||||
:adjacency (new 'static 'inline-array nav-network-adjacency 2
|
||||
(new 'static 'nav-network-adjacency :index 24 :dist 73809.92)
|
||||
(new 'static 'nav-network-adjacency :index 26 :dist 193863.69)
|
||||
)
|
||||
)
|
||||
(new 'static 'nav-network-info
|
||||
:path-node (new 'static 'nav-network-path-node :row-index 26 :parent #f)
|
||||
:pos (new 'static 'vector :x 260874.23 :y 2270126.0 :z 67665.92 :w 1.0)
|
||||
:index 26
|
||||
:count 3
|
||||
:adjacency (new 'static 'inline-array nav-network-adjacency 3
|
||||
(new 'static 'nav-network-adjacency :index 4 :dist 136929.28)
|
||||
(new 'static 'nav-network-adjacency :index 25 :dist 193863.69)
|
||||
(new 'static 'nav-network-adjacency :index 27 :dist 129720.32)
|
||||
)
|
||||
)
|
||||
(new 'static 'nav-network-info
|
||||
:path-node (new 'static 'nav-network-path-node :row-index 27 :parent #f)
|
||||
:pos (new 'static 'vector :x 258252.8 :y 2323169.2 :z 185999.36 :w 1.0)
|
||||
:index 27
|
||||
:count 2
|
||||
:adjacency (new 'static 'inline-array nav-network-adjacency 2
|
||||
(new 'static 'nav-network-adjacency :index 26 :dist 129720.32)
|
||||
(new 'static 'nav-network-adjacency :index 28 :dist 40427.52)
|
||||
)
|
||||
)
|
||||
(new 'static 'nav-network-info
|
||||
:path-node (new 'static 'nav-network-path-node :row-index 28 :parent #f)
|
||||
:pos (new 'static 'vector :x 232939.52 :y 2323169.2 :z 217497.6 :w 1.0)
|
||||
:index 28
|
||||
:count 1
|
||||
:adjacency (new 'static 'inline-array nav-network-adjacency 1
|
||||
(new 'static 'nav-network-adjacency :index 27 :dist 40427.52)
|
||||
)
|
||||
)
|
||||
(new 'static 'nav-network-info
|
||||
:path-node (new 'static 'nav-network-path-node :row-index 29 :parent #f)
|
||||
:pos (new 'static 'vector :x 876871.7 :y 2194350.0 :z -19251.2 :w 1.0)
|
||||
:index 29
|
||||
:sub-graph 2
|
||||
:count 2
|
||||
:adjacency (new 'static 'inline-array nav-network-adjacency 2
|
||||
(new 'static 'nav-network-adjacency :index 30 :dist 37724.16)
|
||||
(new 'static 'nav-network-adjacency :index 34 :dist 91299.84)
|
||||
)
|
||||
)
|
||||
(new 'static 'nav-network-info
|
||||
:path-node (new 'static 'nav-network-path-node :row-index 30 :parent #f)
|
||||
:pos (new 'static 'vector :x 914595.8 :y 2194350.0 :z -19660.8 :w 1.0)
|
||||
:index 30
|
||||
:sub-graph 2
|
||||
:count 3
|
||||
:adjacency (new 'static 'inline-array nav-network-adjacency 3
|
||||
(new 'static 'nav-network-adjacency :index 29 :dist 37724.16)
|
||||
(new 'static 'nav-network-adjacency :index 31 :dist 39936.0)
|
||||
(new 'static 'nav-network-adjacency :index 34 :dist 86179.84)
|
||||
)
|
||||
)
|
||||
(new 'static 'nav-network-info
|
||||
:path-node (new 'static 'nav-network-path-node :row-index 31 :parent #f)
|
||||
:pos (new 'static 'vector :x 954531.8 :y 2194350.0 :z -19496.96 :w 1.0)
|
||||
:index 31
|
||||
:sub-graph 2
|
||||
:count 3
|
||||
:adjacency (new 'static 'inline-array nav-network-adjacency 3
|
||||
(new 'static 'nav-network-adjacency :index 30 :dist 39936.0)
|
||||
(new 'static 'nav-network-adjacency :index 32 :dist 37642.24)
|
||||
(new 'static 'nav-network-adjacency :index 33 :dist 89292.8)
|
||||
)
|
||||
)
|
||||
(new 'static 'nav-network-info
|
||||
:path-node (new 'static 'nav-network-path-node :row-index 32 :parent #f)
|
||||
:pos (new 'static 'vector :x 992092.2 :y 2194350.0 :z -21667.84 :w 1.0)
|
||||
:index 32
|
||||
:sub-graph 2
|
||||
:count 2
|
||||
:adjacency (new 'static 'inline-array nav-network-adjacency 2
|
||||
(new 'static 'nav-network-adjacency :index 31 :dist 37642.24)
|
||||
(new 'static 'nav-network-adjacency :index 33 :dist 88350.72)
|
||||
)
|
||||
)
|
||||
(new 'static 'nav-network-info
|
||||
:path-node (new 'static 'nav-network-path-node :row-index 33 :parent #f)
|
||||
:pos (new 'static 'vector :x 977551.4 :y 2274304.0 :z 12943.36 :w 1.0)
|
||||
:index 33
|
||||
:sub-graph 2
|
||||
:count 5
|
||||
:adjacency (new 'static 'inline-array nav-network-adjacency 5
|
||||
(new 'static 'nav-network-adjacency :index 31 :dist 89292.8)
|
||||
(new 'static 'nav-network-adjacency :index 32 :dist 88350.72)
|
||||
(new 'static 'nav-network-adjacency :index 34 :dist 69427.2)
|
||||
(new 'static 'nav-network-adjacency :index 35 :dist 87531.52)
|
||||
(new 'static 'nav-network-adjacency :index 39 :dist 87244.8)
|
||||
)
|
||||
)
|
||||
(new 'static 'nav-network-info
|
||||
:path-node (new 'static 'nav-network-path-node :row-index 34 :parent #f)
|
||||
:pos (new 'static 'vector :x 908124.2 :y 2274304.0 :z 11837.44 :w 1.0)
|
||||
:index 34
|
||||
:sub-graph 2
|
||||
:count 5
|
||||
:adjacency (new 'static 'inline-array nav-network-adjacency 5
|
||||
(new 'static 'nav-network-adjacency :index 29 :dist 91299.84)
|
||||
(new 'static 'nav-network-adjacency :index 30 :dist 86179.84)
|
||||
(new 'static 'nav-network-adjacency :index 33 :dist 69427.2)
|
||||
(new 'static 'nav-network-adjacency :index 35 :dist 84500.48)
|
||||
(new 'static 'nav-network-adjacency :index 39 :dist 81756.16)
|
||||
)
|
||||
)
|
||||
(new 'static 'nav-network-info
|
||||
:path-node (new 'static 'nav-network-path-node :row-index 35 :parent #f)
|
||||
:pos (new 'static 'vector :x 940277.75 :y 2279997.5 :z -66068.48 :w 1.0)
|
||||
:index 35
|
||||
:sub-graph 2
|
||||
:count 3
|
||||
:adjacency (new 'static 'inline-array nav-network-adjacency 3
|
||||
(new 'static 'nav-network-adjacency :index 33 :dist 87531.52)
|
||||
(new 'static 'nav-network-adjacency :index 34 :dist 84500.48)
|
||||
(new 'static 'nav-network-adjacency :index 36 :dist 210984.95)
|
||||
)
|
||||
)
|
||||
(new 'static 'nav-network-info
|
||||
:path-node (new 'static 'nav-network-path-node :row-index 36 :parent #f)
|
||||
:pos (new 'static 'vector :x 935976.94 :y 2279997.5 :z -277012.47 :w 1.0)
|
||||
:index 36
|
||||
:sub-graph 2
|
||||
:count 2
|
||||
:adjacency (new 'static 'inline-array nav-network-adjacency 2
|
||||
(new 'static 'nav-network-adjacency :index 35 :dist 210984.95)
|
||||
(new 'static 'nav-network-adjacency :index 37 :dist 73359.36)
|
||||
)
|
||||
)
|
||||
(new 'static 'nav-network-info
|
||||
:path-node (new 'static 'nav-network-path-node :row-index 37 :parent #f)
|
||||
:pos (new 'static 'vector :x 876789.75 :y 2279997.5 :z -320430.1 :w 1.0)
|
||||
:index 37
|
||||
:sub-graph 2
|
||||
:count 2
|
||||
:adjacency (new 'static 'inline-array nav-network-adjacency 2
|
||||
(new 'static 'nav-network-adjacency :index 36 :dist 73359.36)
|
||||
(new 'static 'nav-network-adjacency :index 38 :dist 64471.04)
|
||||
)
|
||||
)
|
||||
(new 'static 'nav-network-info
|
||||
:path-node (new 'static 'nav-network-path-node :row-index 38 :parent #f)
|
||||
:pos (new 'static 'vector :x 812728.3 :y 2279997.5 :z -327311.38 :w 1.0)
|
||||
:index 38
|
||||
:sub-graph 2
|
||||
:count 1
|
||||
:adjacency (new 'static 'inline-array nav-network-adjacency 1
|
||||
(new 'static 'nav-network-adjacency :index 37 :dist 64471.04)
|
||||
)
|
||||
)
|
||||
(new 'static 'nav-network-info
|
||||
:path-node (new 'static 'nav-network-path-node :row-index 39 :parent #f)
|
||||
:pos (new 'static 'vector :x 934993.94 :y 2252636.2 :z 85975.04 :w 1.0)
|
||||
:index 39
|
||||
:sub-graph 2
|
||||
:count 3
|
||||
:adjacency (new 'static 'inline-array nav-network-adjacency 3
|
||||
(new 'static 'nav-network-adjacency :index 33 :dist 87244.8)
|
||||
(new 'static 'nav-network-adjacency :index 34 :dist 81756.16)
|
||||
(new 'static 'nav-network-adjacency :index 40 :dist 131072.0)
|
||||
)
|
||||
)
|
||||
(new 'static 'nav-network-info
|
||||
:path-node (new 'static 'nav-network-path-node :row-index 40 :parent #f)
|
||||
:pos (new 'static 'vector :x 1011507.2 :y 2215198.8 :z 185630.72 :w 1.0)
|
||||
:index 40
|
||||
:sub-graph 2
|
||||
:count 2
|
||||
:adjacency (new 'static 'inline-array nav-network-adjacency 2
|
||||
(new 'static 'nav-network-adjacency :index 39 :dist 131072.0)
|
||||
(new 'static 'nav-network-adjacency :index 41 :dist 179691.52)
|
||||
)
|
||||
)
|
||||
(new 'static 'nav-network-info
|
||||
:path-node (new 'static 'nav-network-path-node :row-index 41 :parent #f)
|
||||
:pos (new 'static 'vector :x 1152450.5 :y 2198446.0 :z 295854.1 :w 1.0)
|
||||
:index 41
|
||||
:sub-graph 2
|
||||
:count 2
|
||||
:adjacency (new 'static 'inline-array nav-network-adjacency 2
|
||||
(new 'static 'nav-network-adjacency :index 40 :dist 179691.52)
|
||||
(new 'static 'nav-network-adjacency :index 42 :dist 135741.44)
|
||||
)
|
||||
)
|
||||
(new 'static 'nav-network-info
|
||||
:path-node (new 'static 'nav-network-path-node :row-index 42 :parent #f)
|
||||
:pos (new 'static 'vector :x 1048125.44 :y 2184806.5 :z 381665.28 :w 1.0)
|
||||
:index 42
|
||||
:sub-graph 2
|
||||
:count 2
|
||||
:adjacency (new 'static 'inline-array nav-network-adjacency 2
|
||||
(new 'static 'nav-network-adjacency :index 41 :dist 135741.44)
|
||||
(new 'static 'nav-network-adjacency :index 43 :dist 183541.77)
|
||||
)
|
||||
)
|
||||
(new 'static 'nav-network-info
|
||||
:path-node (new 'static 'nav-network-path-node :row-index 43 :parent #f)
|
||||
:pos (new 'static 'vector :x 917012.5 :y 2120540.2 :z 492830.72 :w 1.0)
|
||||
:index 43
|
||||
:sub-graph 2
|
||||
:count 2
|
||||
:adjacency (new 'static 'inline-array nav-network-adjacency 2
|
||||
(new 'static 'nav-network-adjacency :index 42 :dist 183541.77)
|
||||
(new 'static 'nav-network-adjacency :index 44 :dist 160808.95)
|
||||
)
|
||||
)
|
||||
(new 'static 'nav-network-info
|
||||
:path-node (new 'static 'nav-network-path-node :row-index 44 :parent #f)
|
||||
:pos (new 'static 'vector :x 985210.9 :y 2077532.1 :z 631971.8 :w 1.0)
|
||||
:index 44
|
||||
:sub-graph 2
|
||||
:count 1
|
||||
:adjacency (new 'static 'inline-array nav-network-adjacency 1
|
||||
(new 'static 'nav-network-adjacency :index 43 :dist 160808.95)
|
||||
)
|
||||
)
|
||||
(new 'static 'nav-network-info
|
||||
:path-node (new 'static 'nav-network-path-node :row-index 45 :parent #f)
|
||||
:pos (new 'static 'vector :x 992419.8 :y 2083635.2 :z 907796.5 :w 1.0)
|
||||
:index 45
|
||||
:sub-graph 3
|
||||
:count 3
|
||||
:adjacency (new 'static 'inline-array nav-network-adjacency 3
|
||||
(new 'static 'nav-network-adjacency :index 46 :dist 127754.24)
|
||||
(new 'static 'nav-network-adjacency :index 47 :dist 117800.96)
|
||||
(new 'static 'nav-network-adjacency :index 50 :dist 116244.48)
|
||||
)
|
||||
)
|
||||
(new 'static 'nav-network-info
|
||||
:path-node (new 'static 'nav-network-path-node :row-index 46 :parent #f)
|
||||
:pos (new 'static 'vector :x 993730.56 :y 2083635.2 :z 780001.25 :w 1.0)
|
||||
:index 46
|
||||
:sub-graph 3
|
||||
:count 1
|
||||
:adjacency (new 'static 'inline-array nav-network-adjacency 1
|
||||
(new 'static 'nav-network-adjacency :index 45 :dist 127754.24)
|
||||
)
|
||||
)
|
||||
(new 'static 'nav-network-info
|
||||
:path-node (new 'static 'nav-network-path-node :row-index 47 :parent #f)
|
||||
:pos (new 'static 'vector :x 995328.0 :y 1966202.9 :z 899112.94 :w 1.0)
|
||||
:index 47
|
||||
:sub-graph 3
|
||||
:count 3
|
||||
:adjacency (new 'static 'inline-array nav-network-adjacency 3
|
||||
(new 'static 'nav-network-adjacency :index 45 :dist 117800.96)
|
||||
(new 'static 'nav-network-adjacency :index 48 :dist 68853.76)
|
||||
(new 'static 'nav-network-adjacency :index 49 :dist 70082.56)
|
||||
)
|
||||
)
|
||||
(new 'static 'nav-network-info
|
||||
:path-node (new 'static 'nav-network-path-node :row-index 48 :parent #f)
|
||||
:pos (new 'static 'vector :x 1031454.75 :y 1966202.9 :z 840458.25 :w 1.0)
|
||||
:index 48
|
||||
:sub-graph 3
|
||||
:count 1
|
||||
:adjacency (new 'static 'inline-array nav-network-adjacency 1
|
||||
(new 'static 'nav-network-adjacency :index 47 :dist 68853.76)
|
||||
)
|
||||
)
|
||||
(new 'static 'nav-network-info
|
||||
:path-node (new 'static 'nav-network-path-node :row-index 49 :parent #f)
|
||||
:pos (new 'static 'vector :x 952811.5 :y 1966202.9 :z 843407.4 :w 1.0)
|
||||
:index 49
|
||||
:sub-graph 3
|
||||
:count 1
|
||||
:adjacency (new 'static 'inline-array nav-network-adjacency 1
|
||||
(new 'static 'nav-network-adjacency :index 47 :dist 70082.56)
|
||||
)
|
||||
)
|
||||
(new 'static 'nav-network-info
|
||||
:path-node (new 'static 'nav-network-path-node :row-index 50 :parent #f)
|
||||
:pos (new 'static 'vector :x 991232.0 :y 2083635.2 :z 1024040.94 :w 1.0)
|
||||
:index 50
|
||||
:sub-graph 3
|
||||
:count 2
|
||||
:adjacency (new 'static 'inline-array nav-network-adjacency 2
|
||||
(new 'static 'nav-network-adjacency :index 45 :dist 116244.48)
|
||||
(new 'static 'nav-network-adjacency :index 51 :dist 122675.2)
|
||||
)
|
||||
)
|
||||
(new 'static 'nav-network-info
|
||||
:path-node (new 'static 'nav-network-path-node :row-index 51 :parent #f)
|
||||
:pos (new 'static 'vector :x 946298.9 :y 2083635.2 :z 1138196.5 :w 1.0)
|
||||
:index 51
|
||||
:sub-graph 3
|
||||
:count 2
|
||||
:adjacency (new 'static 'inline-array nav-network-adjacency 2
|
||||
(new 'static 'nav-network-adjacency :index 50 :dist 122675.2)
|
||||
(new 'static 'nav-network-adjacency :index 52 :dist 104857.6)
|
||||
)
|
||||
)
|
||||
(new 'static 'nav-network-info
|
||||
:path-node (new 'static 'nav-network-path-node :row-index 52 :parent #f)
|
||||
:pos (new 'static 'vector :x 866672.6 :y 2083635.2 :z 1206435.9 :w 1.0)
|
||||
:index 52
|
||||
:sub-graph 3
|
||||
:count 1
|
||||
:adjacency (new 'static 'inline-array nav-network-adjacency 1
|
||||
(new 'static 'nav-network-adjacency :index 51 :dist 104857.6)
|
||||
)
|
||||
)
|
||||
)
|
||||
:edge-array (new 'static 'boxed-array :type nav-network-edge
|
||||
(new 'static 'nav-network-edge :start-index 2 :end-index 1 :radius 16384.0)
|
||||
(new 'static 'nav-network-edge :start-index 3 :radius 16384.0)
|
||||
(new 'static 'nav-network-edge :start-index 5 :end-index 4 :radius 16384.0)
|
||||
(new 'static 'nav-network-edge :start-index 6 :end-index 5 :radius 16384.0)
|
||||
(new 'static 'nav-network-edge :start-index 7 :end-index 8 :radius 16384.0 :sub-graph 1)
|
||||
(new 'static 'nav-network-edge :start-index 8 :end-index 9 :radius 16384.0 :sub-graph 1)
|
||||
(new 'static 'nav-network-edge :start-index 9 :end-index 10 :radius 16384.0 :sub-graph 1)
|
||||
(new 'static 'nav-network-edge :start-index 10 :end-index 11 :radius 16384.0 :sub-graph 1)
|
||||
(new 'static 'nav-network-edge :start-index 11 :end-index 12 :radius 16384.0 :sub-graph 1)
|
||||
(new 'static 'nav-network-edge :start-index 12 :end-index 13 :radius 16384.0 :sub-graph 1)
|
||||
(new 'static 'nav-network-edge :start-index 13 :end-index 14 :radius 16384.0 :sub-graph 1)
|
||||
(new 'static 'nav-network-edge :start-index 14 :end-index 15 :radius 16384.0 :sub-graph 1)
|
||||
(new 'static 'nav-network-edge :start-index 16 :end-index 7 :radius 16384.0 :sub-graph 1)
|
||||
(new 'static 'nav-network-edge :start-index 17 :end-index 8 :radius 16384.0 :sub-graph 1)
|
||||
(new 'static 'nav-network-edge :start-index 18 :end-index 9 :radius 16384.0 :sub-graph 1)
|
||||
(new 'static 'nav-network-edge :start-index 19 :end-index 11 :radius 16384.0 :sub-graph 1)
|
||||
(new 'static 'nav-network-edge :start-index 20 :end-index 11 :radius 16384.0 :sub-graph 1)
|
||||
(new 'static 'nav-network-edge :start-index 20 :end-index 12 :radius 16384.0 :sub-graph 1)
|
||||
(new 'static 'nav-network-edge :start-index 21 :end-index 12 :radius 16384.0 :sub-graph 1)
|
||||
(new 'static 'nav-network-edge :start-index 22 :end-index 15 :radius 16384.0 :sub-graph 1)
|
||||
(new 'static 'nav-network-edge :start-index 23 :radius 16384.0)
|
||||
(new 'static 'nav-network-edge :start-index 23 :end-index 24 :radius 20889.6)
|
||||
(new 'static 'nav-network-edge :start-index 24 :end-index 1 :radius 16384.0)
|
||||
(new 'static 'nav-network-edge :start-index 24 :end-index 25 :radius 35553.28)
|
||||
(new 'static 'nav-network-edge :start-index 25 :end-index 26 :radius 46694.4)
|
||||
(new 'static 'nav-network-edge :start-index 26 :end-index 4 :radius 16384.0)
|
||||
(new 'static 'nav-network-edge :start-index 26 :end-index 27 :radius 24780.8)
|
||||
(new 'static 'nav-network-edge :start-index 27 :end-index 28 :radius 18841.6)
|
||||
(new 'static 'nav-network-edge :start-index 29 :end-index 30 :radius 16384.0 :sub-graph 2)
|
||||
(new 'static 'nav-network-edge :start-index 29 :end-index 34 :radius 16384.0 :sub-graph 2)
|
||||
(new 'static 'nav-network-edge :start-index 30 :end-index 31 :radius 16384.0 :sub-graph 2)
|
||||
(new 'static 'nav-network-edge :start-index 31 :end-index 33 :radius 16384.0 :sub-graph 2)
|
||||
(new 'static 'nav-network-edge :start-index 32 :end-index 31 :radius 16384.0 :sub-graph 2)
|
||||
(new 'static 'nav-network-edge :start-index 33 :end-index 32 :radius 16384.0 :sub-graph 2)
|
||||
(new 'static 'nav-network-edge :start-index 33 :end-index 34 :radius 16384.0 :sub-graph 2)
|
||||
(new 'static 'nav-network-edge :start-index 34 :end-index 30 :radius 16384.0 :sub-graph 2)
|
||||
(new 'static 'nav-network-edge :start-index 34 :end-index 35 :radius 19456.0 :sub-graph 2)
|
||||
(new 'static 'nav-network-edge :start-index 35 :end-index 33 :radius 19251.2 :sub-graph 2)
|
||||
(new 'static 'nav-network-edge :start-index 35 :end-index 36 :radius 22118.4 :sub-graph 2)
|
||||
(new 'static 'nav-network-edge :start-index 36 :end-index 37 :radius 19988.48 :sub-graph 2)
|
||||
(new 'static 'nav-network-edge :start-index 37 :end-index 38 :radius 21299.2 :sub-graph 2)
|
||||
(new 'static 'nav-network-edge :start-index 39 :end-index 33 :radius 29941.76 :sub-graph 2)
|
||||
(new 'static 'nav-network-edge :start-index 39 :end-index 34 :radius 33013.76 :sub-graph 2)
|
||||
(new 'static 'nav-network-edge :start-index 40 :end-index 39 :radius 25968.64 :sub-graph 2)
|
||||
(new 'static 'nav-network-edge :start-index 41 :end-index 40 :radius 16384.0 :sub-graph 2)
|
||||
(new 'static 'nav-network-edge :start-index 42 :end-index 41 :radius 38215.68 :sub-graph 2)
|
||||
(new 'static 'nav-network-edge :start-index 43 :end-index 42 :radius 45875.2 :sub-graph 2)
|
||||
(new 'static 'nav-network-edge :start-index 44 :end-index 43 :radius 17203.2 :sub-graph 2)
|
||||
(new 'static 'nav-network-edge :start-index 45 :end-index 46 :radius 25804.8 :sub-graph 3)
|
||||
(new 'static 'nav-network-edge :start-index 45 :end-index 50 :radius 36945.92 :sub-graph 3)
|
||||
(new 'static 'nav-network-edge :start-index 47 :end-index 45 :radius 17612.8 :sub-graph 3)
|
||||
(new 'static 'nav-network-edge :start-index 47 :end-index 48 :radius 22937.6 :sub-graph 3)
|
||||
(new 'static 'nav-network-edge :start-index 47 :end-index 49 :radius 19251.2 :sub-graph 3)
|
||||
(new 'static 'nav-network-edge :start-index 50 :end-index 51 :radius 23961.6 :sub-graph 3)
|
||||
(new 'static 'nav-network-edge :start-index 51 :end-index 52 :radius 35553.28 :sub-graph 3)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
@ -7,3 +7,256 @@
|
||||
|
||||
;; DECOMP BEGINS
|
||||
|
||||
(deftype precura-states (structure)
|
||||
((pulse pulse-state :inline)
|
||||
(generator pulse-state :inline)
|
||||
(main float)
|
||||
(target-laser float 2)
|
||||
(current-laser float 2)
|
||||
(speed-laser float)
|
||||
(target-bomb float)
|
||||
(current-bomb float)
|
||||
(speed-bomb float)
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
(defun init-mood-precura ((arg0 mood-context))
|
||||
(let ((v1-0 (-> arg0 state)))
|
||||
(set! (-> v1-0 1) (the-as uint 1.0))
|
||||
(set! (-> v1-0 2) (the-as uint 1.0))
|
||||
(set! (-> v1-0 3) (the-as uint 1.0))
|
||||
(set! (-> v1-0 5) (the-as uint 1.0))
|
||||
(set! (-> v1-0 6) (the-as uint 1.0))
|
||||
(let ((f0-5 2.0))
|
||||
(set! (-> v1-0 7) (the-as uint f0-5))
|
||||
f0-5
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
;; WARN: Return type mismatch float vs none.
|
||||
(defun update-precura-lights ((arg0 mood-context))
|
||||
(let ((v1-0 (-> arg0 light-group)))
|
||||
(let ((a0-1 (-> v1-0 0)))
|
||||
(set! (-> a0-1 dir0 direction x) 0.0)
|
||||
(set! (-> a0-1 dir0 direction y) 1.0)
|
||||
(set! (-> a0-1 dir0 direction z) 0.0)
|
||||
(set! (-> a0-1 dir0 direction w) 0.0)
|
||||
)
|
||||
(set-vector! (-> v1-0 0 dir0 color) 0.5 0.667 0.667 1.0)
|
||||
(set-vector! (-> v1-0 0 ambi color) 0.25 0.333 0.333 1.0)
|
||||
(set! (-> v1-0 0 dir0 extra x) 1.0)
|
||||
(set! (-> v1-0 0 dir1 extra x) 0.0)
|
||||
(set! (-> v1-0 0 dir2 extra x) 0.0)
|
||||
(set! (-> v1-0 0 ambi extra x) 1.0)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
|
||||
(defbehavior update-mood-precura time-of-day-proc ((arg0 mood-context) (arg1 float) (arg2 int))
|
||||
(update-mood-interior arg0 #f)
|
||||
(update-precura-lights arg0)
|
||||
(cond
|
||||
((< (the-as uint 8) (the-as uint (-> *time-of-day-context* mode)))
|
||||
(palette-select-special arg0)
|
||||
)
|
||||
(else
|
||||
(let ((gp-0 (the-as object (-> arg0 state))))
|
||||
(set! (-> arg0 times 0 w) 1.0)
|
||||
(update-mood-pulse arg0 1 0 1.0 0.25 (* 65536.0 (seconds-per-frame)) 0.0)
|
||||
(update-mood-pulse arg0 4 16 1.0 0.125 (* 65536.0 (seconds-per-frame)) 0.0)
|
||||
(set! (-> arg0 times 2 w) 1.0)
|
||||
(let* ((v1-10 (-> *display* part-clock frame-counter))
|
||||
(f0-7 (* 218.45334 (the float (mod v1-10 300))))
|
||||
)
|
||||
(set! (-> arg0 times 3 w) (+ 0.875 (* 0.175 (cos f0-7))))
|
||||
)
|
||||
(set! (-> arg0 times 5 w) (-> (the-as precura-states gp-0) current-bomb))
|
||||
(set! (-> arg0 times 6 w) (-> (the-as precura-states gp-0) current-laser 0))
|
||||
(set! (-> arg0 times 7 w) (-> (the-as precura-states gp-0) current-laser 1))
|
||||
(when (not (paused?))
|
||||
(seek!
|
||||
(-> (the-as precura-states gp-0) current-bomb)
|
||||
(-> (the-as precura-states gp-0) target-bomb)
|
||||
(-> (the-as precura-states gp-0) speed-bomb)
|
||||
)
|
||||
(seek!
|
||||
(-> (the-as precura-states gp-0) current-laser 0)
|
||||
(-> (the-as precura-states gp-0) target-laser 0)
|
||||
(-> (the-as precura-states gp-0) speed-laser)
|
||||
)
|
||||
(seek!
|
||||
(-> (the-as precura-states gp-0) current-laser 1)
|
||||
(-> (the-as precura-states gp-0) target-laser 1)
|
||||
(-> (the-as precura-states gp-0) speed-laser)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
0
|
||||
(none)
|
||||
)
|
||||
|
||||
;; WARN: Return type mismatch float vs none.
|
||||
(defun set-precura-generator-light! ((arg0 float))
|
||||
(let ((v1-1 (level-get *level* 'precura)))
|
||||
(when v1-1
|
||||
(let ((v1-2 (the-as object (-> v1-1 mood-context state))))
|
||||
(set! (-> (the-as precura-states v1-2) generator target-brightness) arg0)
|
||||
)
|
||||
)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
|
||||
;; WARN: Return type mismatch float vs none.
|
||||
(defun set-precura-laser-light! ((arg0 float) (arg1 float) (arg2 int))
|
||||
(let ((v1-1 (level-get *level* 'precura)))
|
||||
(when v1-1
|
||||
(let ((v1-2 (the-as object (-> v1-1 mood-context state))))
|
||||
(set! (-> (the-as precura-states v1-2) target-laser arg2) arg0)
|
||||
(set! (-> (the-as precura-states v1-2) speed-laser) arg1)
|
||||
(if (= arg1 0.0)
|
||||
(set! (-> (the-as precura-states (+ (* arg2 4) (the-as int v1-2))) current-laser 0) arg0)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
|
||||
;; WARN: Return type mismatch float vs none.
|
||||
(defun set-precura-bomb-light! ((arg0 float) (arg1 float))
|
||||
(let ((v1-1 (level-get *level* 'precura)))
|
||||
(when v1-1
|
||||
(let ((v1-2 (the-as object (-> v1-1 mood-context state))))
|
||||
(set! (-> (the-as precura-states v1-2) target-bomb) arg0)
|
||||
(set! (-> (the-as precura-states v1-2) speed-bomb) arg1)
|
||||
)
|
||||
)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
|
||||
(deftype precurb-states (structure)
|
||||
((pulse pulse-state :inline)
|
||||
(main float)
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
(defun init-mood-precurb ((arg0 mood-context))
|
||||
(let ((v1-0 (-> arg0 state)))
|
||||
(set! (-> v1-0 1) (the-as uint 1.0))
|
||||
(set! (-> v1-0 2) (the-as uint 1.0))
|
||||
(let ((f0-2 1.0))
|
||||
(set! (-> v1-0 3) (the-as uint f0-2))
|
||||
f0-2
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
(defbehavior update-mood-precurb time-of-day-proc ((arg0 mood-context) (arg1 float) (arg2 int))
|
||||
(update-mood-interior arg0 #f)
|
||||
(update-precura-lights arg0)
|
||||
(cond
|
||||
((< (the-as uint 8) (the-as uint (-> *time-of-day-context* mode)))
|
||||
(palette-select-special arg0)
|
||||
)
|
||||
(else
|
||||
(-> arg0 state)
|
||||
(set! (-> arg0 times 0 w) 1.0)
|
||||
(update-mood-pulse arg0 1 0 1.0 0.25 (* 65536.0 (seconds-per-frame)) 0.0)
|
||||
(set! (-> arg0 times 2 w) 1.0)
|
||||
(let* ((v1-9 (-> *display* part-clock frame-counter))
|
||||
(f0-5 (* 218.45334 (the float (mod v1-9 300))))
|
||||
)
|
||||
(set! (-> arg0 times 3 w) (+ 0.875 (* 0.175 (cos f0-5))))
|
||||
)
|
||||
(set! (-> arg0 times 4 w) 1.0)
|
||||
(set! (-> arg0 times 5 w) 1.0)
|
||||
(set! (-> arg0 times 6 w) 1.0)
|
||||
(set! (-> arg0 times 7 w) 1.0)
|
||||
)
|
||||
)
|
||||
0
|
||||
(none)
|
||||
)
|
||||
|
||||
(deftype lprecurc-loader (process)
|
||||
()
|
||||
(:state-methods
|
||||
idle
|
||||
die
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
(defstate idle (lprecurc-loader)
|
||||
:virtual #t
|
||||
:event (behavior ((proc process) (argc int) (message symbol) (block event-message-block))
|
||||
(case message
|
||||
(('deactivate)
|
||||
(go-virtual die)
|
||||
)
|
||||
)
|
||||
)
|
||||
:enter (behavior ()
|
||||
(set-setting! 'borrow '((precurc 0 lprecurc copy)) 0.0 0)
|
||||
(apply-settings *setting-control*)
|
||||
)
|
||||
:exit (behavior ()
|
||||
(remove-setting! 'borrow)
|
||||
(apply-settings *setting-control*)
|
||||
)
|
||||
:code sleep-code
|
||||
)
|
||||
|
||||
(defstate die (lprecurc-loader)
|
||||
:virtual #t
|
||||
:code (behavior ()
|
||||
'()
|
||||
)
|
||||
)
|
||||
|
||||
(defbehavior lprecurc-loader-init-by-other lprecurc-loader ((arg0 level))
|
||||
(set! (-> self level) arg0)
|
||||
(go-virtual idle)
|
||||
)
|
||||
|
||||
(defun precura-login ((arg0 level))
|
||||
(set! *nav-network* (new 'loading-level 'nav-network))
|
||||
(alloc-nav-network-for-level! *nav-network* 64 10)
|
||||
0
|
||||
(none)
|
||||
)
|
||||
|
||||
(defun precura-activate ((arg0 level))
|
||||
(persist-with-delay
|
||||
*setting-control*
|
||||
'precur-activate
|
||||
(the-as time-frame (the-as uint #xb2d05e00))
|
||||
'sky-type
|
||||
'star-field
|
||||
0.0
|
||||
0
|
||||
)
|
||||
(process-spawn lprecurc-loader arg0 :name "lprecurc-loader" :to *entity-pool*)
|
||||
(if (and (nonzero? *nav-network*) *nav-network*)
|
||||
(init-by-other! *nav-network* arg0 *precura-adjacency*)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
|
||||
(defun precura-deactivate ((arg0 level))
|
||||
(persist-with-delay *setting-control* 'precur-activate 0 'sky-type #f 0.0 0)
|
||||
(none)
|
||||
)
|
||||
|
||||
(defun precura-logout ((arg0 level))
|
||||
(set! *nav-network* (the-as nav-network 0))
|
||||
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,748 @@
|
||||
|
||||
;; DECOMP BEGINS
|
||||
|
||||
(defpartgroup group-precura-generator-explode
|
||||
:id 1313
|
||||
:flags (sp0 sp5)
|
||||
:bounds (static-bspherem 0 0 0 15)
|
||||
:parts ((sp-item 4411 :period (seconds 10) :length (seconds 6))
|
||||
(sp-item 4412 :period (seconds 10) :length (seconds 2))
|
||||
(sp-item 4413 :period (seconds 15) :length (seconds 0.035))
|
||||
(sp-item 4414 :flags (sp3))
|
||||
)
|
||||
)
|
||||
|
||||
(defpart 4411
|
||||
:init-specs ((:texture (motion-blur-part level-default-sprite))
|
||||
(:num 8.0)
|
||||
(:x (meters -10) (meters 20))
|
||||
(:y (meters -10) (meters 20))
|
||||
(:z (meters -10) (meters 20))
|
||||
(:scale-x (meters 0.04) (meters 0.04))
|
||||
(:scale-y :copy scale-x)
|
||||
(:r 64.0 128.0)
|
||||
(:g 0.0 1 64.0)
|
||||
(:b 255.0)
|
||||
(:a 128.0 128.0)
|
||||
(:omega (degrees 0.045))
|
||||
(:vel-y (meters 0) (meters 0.01))
|
||||
(:fade-a -0.2125 -0.2125)
|
||||
(:timer (seconds 5))
|
||||
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3))
|
||||
(:func 'sparticle-motion-blur)
|
||||
(:next-time (seconds 0.017))
|
||||
(:next-launcher 4415)
|
||||
(:conerot-x (degrees 0) (degrees 360))
|
||||
(:rotate-y (degrees 0) (degrees 3600))
|
||||
)
|
||||
)
|
||||
|
||||
(defpart 4415
|
||||
:init-specs ((:accel-x (meters -0.0033333334) 1 (meters 0.006666667))
|
||||
(:accel-y (meters -0.0033333334) 1 (meters 0.006666667))
|
||||
(:accel-z (meters -0.0033333334) 1 (meters 0.006666667))
|
||||
(:next-time (seconds 0.067) (seconds 0.03))
|
||||
(:next-launcher 4415)
|
||||
)
|
||||
)
|
||||
|
||||
(defpart 4412
|
||||
:init-specs ((:texture (bigpuff level-default-sprite))
|
||||
(:num 1.0)
|
||||
(:scale-x (meters 3))
|
||||
(:rot-z (degrees 0) (degrees 360))
|
||||
(:scale-y :copy scale-x)
|
||||
(:r 128.0)
|
||||
(:g 128.0)
|
||||
(:b 255.0)
|
||||
(:a 64.0)
|
||||
(:vel-z (meters 0.026666667) (meters 0.026666667))
|
||||
(:scalevel-x (meters 0.02))
|
||||
(:scalevel-y :copy scalevel-x)
|
||||
(:fade-a -0.07111111 -0.07111111)
|
||||
(:timer (seconds 3))
|
||||
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3))
|
||||
(:conerot-x (degrees -8) (degrees 16))
|
||||
(:rotate-y (degrees 0) (degrees 3600))
|
||||
)
|
||||
)
|
||||
|
||||
(defpart 4413
|
||||
:init-specs ((:texture (explosion-edge level-default-sprite))
|
||||
(:num 20.0)
|
||||
(:scale-x (meters 3))
|
||||
(:rot-y (degrees 0) (degrees 360))
|
||||
(:scale-y :copy scale-x)
|
||||
(:r 80.0)
|
||||
(:g 128.0)
|
||||
(:b 255.0)
|
||||
(:a 128.0)
|
||||
(:vel-y (meters 0.00033333333) (meters 0.0033333334))
|
||||
(:scalevel-x (meters 0.006666667))
|
||||
(:scalevel-y :copy scalevel-x)
|
||||
(:fade-r -0.08888889)
|
||||
(:fade-g -0.033333335)
|
||||
(:fade-a -0.14222223 -0.14222223)
|
||||
(:friction 0.999)
|
||||
(:timer (seconds 3))
|
||||
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3))
|
||||
(:func 'sparticle-2d-spline-align-instant)
|
||||
(:conerot-x (degrees 0) (degrees 360))
|
||||
(:rotate-y (degrees 0) (degrees 3600))
|
||||
)
|
||||
)
|
||||
|
||||
(defpart 4414
|
||||
:init-specs ((:texture (glow-soft level-default-sprite))
|
||||
(:num 1.0)
|
||||
(:scale-x (meters 30))
|
||||
(:rot-x (degrees 22.5))
|
||||
(:scale-y (meters 50))
|
||||
(:r 40.0)
|
||||
(:g 128.0)
|
||||
(:b 255.0)
|
||||
(:a 128.0)
|
||||
(:omega (degrees 6761.25))
|
||||
(:fade-a -0.08533333)
|
||||
(:timer (seconds 5))
|
||||
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow))
|
||||
(:userdata 4096.0)
|
||||
)
|
||||
)
|
||||
|
||||
(defpartgroup group-platform-effect
|
||||
:id 1314
|
||||
:flags (sp0 sp4 sp12)
|
||||
:bounds (static-bspherem 0 0 0 10)
|
||||
:parts ((sp-item 4417 :flags (sp7) :period (seconds 20) :length (seconds 2))
|
||||
(sp-item 4418 :flags (sp3 sp7) :binding 4416)
|
||||
(sp-item 4419 :flags (sp3 sp7) :binding 4416)
|
||||
(sp-item 4420 :flags (sp3 sp7) :binding 4416)
|
||||
(sp-item 4421 :flags (sp3 sp7) :binding 4416)
|
||||
(sp-item 4422 :flags (sp3 sp7) :binding 4416)
|
||||
(sp-item 4416 :flags (sp2) :period (seconds 20) :length (seconds 2))
|
||||
(sp-item 4416 :flags (sp2) :period (seconds 20) :length (seconds 2))
|
||||
(sp-item 4416 :flags (sp2) :period (seconds 20) :length (seconds 2))
|
||||
(sp-item 4416 :flags (sp2) :period (seconds 20) :length (seconds 2))
|
||||
(sp-item 4416 :flags (sp2) :period (seconds 20) :length (seconds 2))
|
||||
)
|
||||
)
|
||||
|
||||
(defpart 4417
|
||||
:init-specs ((:texture (glow-hotdot level-default-sprite))
|
||||
(:num 2.0)
|
||||
(:scale-x (meters 0.5))
|
||||
(:rot-x (degrees 450))
|
||||
(:rot-y (degrees 0) (degrees 360))
|
||||
(:scale-y :copy scale-x)
|
||||
(:r 64.0 64.0)
|
||||
(:g 0.0 64.0)
|
||||
(:b 255.0)
|
||||
(:a 128.0)
|
||||
(:vel-y (meters 1))
|
||||
(:scalevel-x (meters 0.0033333334) (meters 0.0033333334))
|
||||
(:scalevel-y :copy scalevel-x)
|
||||
(:fade-a -0.64 -0.64)
|
||||
(:friction 0.6 0.05)
|
||||
(:timer (seconds 0.667))
|
||||
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow))
|
||||
(:userdata 81920.0)
|
||||
(:func 'spt-func-relative-pos)
|
||||
(:conerot-x (degrees 90) (degrees 180))
|
||||
(:rotate-y (degrees 0) (degrees 3600))
|
||||
)
|
||||
)
|
||||
|
||||
(defun sparticle-track-joint-xz ((arg0 sparticle-system) (arg1 sparticle-cpuinfo) (arg2 sparticle-launchinfo))
|
||||
(let* ((v1-1 (-> arg1 key proc))
|
||||
(a1-1 (the int (-> arg1 user-float)))
|
||||
(v1-3 (vector<-cspace! (new 'stack-no-clear 'vector) (-> v1-1 node-list data a1-1)))
|
||||
)
|
||||
(set! (-> arg2 launchrot x) (-> v1-3 x))
|
||||
(set! (-> arg2 launchrot z) (-> v1-3 z))
|
||||
)
|
||||
0
|
||||
(none)
|
||||
)
|
||||
|
||||
(defpart 4418
|
||||
:init-specs ((:texture (tinyspeck level-default-sprite))
|
||||
(:num 1.0)
|
||||
(:y (meters 0))
|
||||
(:scale-x (meters 0.01))
|
||||
(:scale-y :copy scale-x)
|
||||
(:r 0.0)
|
||||
(:g 0.0)
|
||||
(:b 1.0)
|
||||
(:a 1.0)
|
||||
(:timer (seconds 5))
|
||||
(:flags ())
|
||||
(:userdata 4.0)
|
||||
(:func 'sparticle-track-joint-xz)
|
||||
)
|
||||
)
|
||||
|
||||
(defpart 4419
|
||||
:init-specs ((:texture (tinyspeck level-default-sprite))
|
||||
(:num 1.0)
|
||||
(:y (meters -1))
|
||||
(:scale-x (meters 0.01))
|
||||
(:scale-y :copy scale-x)
|
||||
(:r 0.0)
|
||||
(:g 0.0)
|
||||
(:b 1.0)
|
||||
(:a 1.0)
|
||||
(:timer (seconds 5))
|
||||
(:flags ())
|
||||
(:userdata 4.0)
|
||||
(:func 'sparticle-track-joint-xz)
|
||||
)
|
||||
)
|
||||
|
||||
(defpart 4420
|
||||
:init-specs ((:texture (tinyspeck level-default-sprite))
|
||||
(:num 1.0)
|
||||
(:y (meters -2))
|
||||
(:scale-x (meters 0.01))
|
||||
(:scale-y :copy scale-x)
|
||||
(:r 0.0)
|
||||
(:g 0.0)
|
||||
(:b 1.0)
|
||||
(:a 1.0)
|
||||
(:timer (seconds 5))
|
||||
(:flags ())
|
||||
(:userdata 4.0)
|
||||
(:func 'sparticle-track-joint-xz)
|
||||
)
|
||||
)
|
||||
|
||||
(defpart 4421
|
||||
:init-specs ((:texture (tinyspeck level-default-sprite))
|
||||
(:num 1.0)
|
||||
(:y (meters -3))
|
||||
(:scale-x (meters 0.01))
|
||||
(:scale-y :copy scale-x)
|
||||
(:r 0.0)
|
||||
(:g 0.0)
|
||||
(:b 1.0)
|
||||
(:a 1.0)
|
||||
(:timer (seconds 5))
|
||||
(:flags ())
|
||||
(:userdata 4.0)
|
||||
(:func 'sparticle-track-joint-xz)
|
||||
)
|
||||
)
|
||||
|
||||
(defpart 4422
|
||||
:init-specs ((:texture (tinyspeck level-default-sprite))
|
||||
(:num 1.0)
|
||||
(:y (meters -4))
|
||||
(:scale-x (meters 0.01))
|
||||
(:scale-y :copy scale-x)
|
||||
(:r 0.0)
|
||||
(:g 0.0)
|
||||
(:b 1.0)
|
||||
(:a 1.0)
|
||||
(:timer (seconds 5))
|
||||
(:flags ())
|
||||
(:userdata 4.0)
|
||||
(:func 'sparticle-track-joint-xz)
|
||||
)
|
||||
)
|
||||
|
||||
(defpart 4416
|
||||
:init-specs ((:texture (glow-hotdot level-default-sprite))
|
||||
(:num 1.0)
|
||||
(:z (meters 4.5))
|
||||
(:scale-x (meters 1))
|
||||
(:scale-y :copy scale-x)
|
||||
(:r 64.0 64.0)
|
||||
(:g 0.0 64.0)
|
||||
(:b 255.0)
|
||||
(:a 128.0)
|
||||
(:omega (degrees 0) (degrees 360))
|
||||
(:vel-x (meters -0.026666667) 1 (meters 0.053333335))
|
||||
(:scalevel-x (meters 0.0033333334) (meters 0.0033333334))
|
||||
(:scalevel-y :copy scalevel-x)
|
||||
(:fade-a -0.64 -0.64)
|
||||
(:timer (seconds 0.667))
|
||||
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 ready-to-launch))
|
||||
)
|
||||
)
|
||||
|
||||
(defpart 4423
|
||||
:init-specs ((:texture (colorflash level-default-sprite))
|
||||
(:num 1.5)
|
||||
(:scale-x (meters 15) (meters 3))
|
||||
(:rot-x (degrees 22.5))
|
||||
(:rot-z (degrees 0) (degrees 360))
|
||||
(:scale-y :copy scale-x)
|
||||
(:r 255.0)
|
||||
(:g 255.0)
|
||||
(:b 255.0)
|
||||
(:a 60.0)
|
||||
(:fade-a -0.2 -0.2)
|
||||
(:timer (seconds 0.017))
|
||||
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow))
|
||||
)
|
||||
)
|
||||
|
||||
(defpart 4424
|
||||
:init-specs ((:texture (glow-soft level-default-sprite))
|
||||
(:num 1.0)
|
||||
(:scale-x (meters 20) (meters 3))
|
||||
(:rot-x (degrees 22.5))
|
||||
(:rot-z (degrees 0) (degrees 360))
|
||||
(:scale-y :copy scale-x)
|
||||
(:r 64.0)
|
||||
(:g 0.0)
|
||||
(:b 255.0)
|
||||
(:a 60.0 10.0)
|
||||
(:fade-a -0.36571428 -0.36571428)
|
||||
(:timer (seconds 0.017))
|
||||
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow))
|
||||
)
|
||||
)
|
||||
|
||||
(defpart 4425
|
||||
:init-specs ((:texture (tinyspeck level-default-sprite))
|
||||
(:num 20.0)
|
||||
(:scale-x (meters 1.5))
|
||||
(:scale-y :copy scale-x)
|
||||
(:r 32.0 64.0)
|
||||
(:g 32.0)
|
||||
(:b 255.0)
|
||||
(:a 128.0)
|
||||
(:omega (degrees 0.1125))
|
||||
(:vel-y (meters 0.06666667) (meters 0.06666667))
|
||||
(:fade-a -0.36571428 -0.36571428)
|
||||
(:friction 0.9)
|
||||
(:timer (seconds 0.5) (seconds 0.497))
|
||||
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3))
|
||||
(:func 'sparticle-motion-blur)
|
||||
(:conerot-x (degrees 0) (degrees 360))
|
||||
(:rotate-y (degrees 0) (degrees 3600))
|
||||
)
|
||||
)
|
||||
|
||||
(defpart 4426
|
||||
:init-specs ((:texture (lightning-anim-01 level-default-sprite))
|
||||
(:birth-func 'birth-func-texture-group)
|
||||
(:num 1.0 1.0)
|
||||
(:scale-x (meters 2) (meters 1))
|
||||
(:rot-x 4)
|
||||
(:rot-z (degrees 0) (degrees 360))
|
||||
(:scale-y :copy scale-x)
|
||||
(:r 100.0)
|
||||
(:g 100.0)
|
||||
(:b 255.0)
|
||||
(:a 128.0 128.0)
|
||||
(:scalevel-x (meters -0.006666667) (meters 0.013333334))
|
||||
(:rotvel-z (degrees -0.53333336) (degrees 1.0666667))
|
||||
(:scalevel-y :copy scalevel-x)
|
||||
(:fade-a -0.36571428 -0.36571428)
|
||||
(:timer (seconds 0.017) (seconds 0.13))
|
||||
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 sp-cpuinfo-flag-14))
|
||||
(:userdata :data (new 'static 'boxed-array :type int32 5 1 0 #x405700 #x405800 #x405900))
|
||||
)
|
||||
)
|
||||
|
||||
(defpartgroup group-bomb-spawner
|
||||
:id 1315
|
||||
:bounds (static-bspherem 0 0 0 10)
|
||||
:parts ((sp-item 4427) (sp-item 4428))
|
||||
)
|
||||
|
||||
(defpart 4427
|
||||
:init-specs ((:texture (hotdot level-default-sprite))
|
||||
(:num 1.0)
|
||||
(:x (meters 0) (meters 1.5))
|
||||
(:scale-x (meters 0.5))
|
||||
(:scale-y (meters 1.7))
|
||||
(:r 0.0 50.0)
|
||||
(:g 50.0 32.0)
|
||||
(:b 0.0 64.0)
|
||||
(:a 32.0 64.0)
|
||||
(:scalevel-y (meters 0.21333334))
|
||||
(:fade-a -1.6)
|
||||
(:timer (seconds 0.2))
|
||||
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 sp-cpuinfo-flag-14))
|
||||
(:rotate-y (degrees 0) (degrees 3600))
|
||||
)
|
||||
)
|
||||
|
||||
(defpart 4428
|
||||
:init-specs ((:texture (glow-soft level-default-sprite))
|
||||
(:num 1.0)
|
||||
(:x (meters 0))
|
||||
(:y (meters 0.4))
|
||||
(:scale-x (meters 3) (meters 0.5))
|
||||
(:rot-x (degrees 22.5))
|
||||
(:scale-y (meters 6))
|
||||
(:r 40.0 10.0)
|
||||
(:g 70.0 10.0)
|
||||
(:b 20.0 10.0)
|
||||
(:a 70.0 5.0)
|
||||
(:timer (seconds 0.005))
|
||||
(:flags (sp-cpuinfo-flag-3 glow))
|
||||
(:userdata 8192.0)
|
||||
(:rotate-y (degrees 0) (degrees 3600))
|
||||
)
|
||||
)
|
||||
|
||||
(defpartgroup group-shock-wave
|
||||
:id 1316
|
||||
:flags (sp0 sp4)
|
||||
:bounds (static-bspherem 0 0 0 10)
|
||||
:parts ((sp-item 4429) (sp-item 4430))
|
||||
)
|
||||
|
||||
(defpart 4429
|
||||
:init-specs ((:texture (glow-soft level-default-sprite))
|
||||
(:num 1.0)
|
||||
(:y (meters 1))
|
||||
(:scale-x (meters 5) (meters 3))
|
||||
(:scale-y :copy scale-x)
|
||||
(:r 84.0)
|
||||
(:g 84.0)
|
||||
(:b 255.0)
|
||||
(:a 30.0 10.0)
|
||||
(:timer (seconds 0.005))
|
||||
(:flags (sp-cpuinfo-flag-3 glow))
|
||||
(:userdata 4096.0)
|
||||
)
|
||||
)
|
||||
|
||||
(defpart 4430
|
||||
:init-specs ((:texture (lightning-anim-01 level-default-sprite))
|
||||
(:num 1.0)
|
||||
(:y (meters 1))
|
||||
(:scale-x (meters 1) (meters 1))
|
||||
(:rot-x 4)
|
||||
(:rot-z (degrees 0) (degrees 3598.0002))
|
||||
(:scale-y :copy scale-x)
|
||||
(:r 128.0)
|
||||
(:g 128.0)
|
||||
(:b 255.0)
|
||||
(:a 128.0)
|
||||
(:fade-a -1.6)
|
||||
(:timer (seconds 0.3) (seconds 0.197))
|
||||
(:flags (sp-cpuinfo-flag-0 sp-cpuinfo-flag-2 sp-cpuinfo-flag-3))
|
||||
)
|
||||
)
|
||||
|
||||
(defpartgroup group-gem-d-smoke
|
||||
:id 1317
|
||||
:duration (seconds 3)
|
||||
:linger-duration (seconds 3)
|
||||
:flags (sp0)
|
||||
:bounds (static-bspherem 0 0 0 640)
|
||||
:parts ((sp-item 4431 :flags (sp7)))
|
||||
)
|
||||
|
||||
(defpart 4432
|
||||
:init-specs ((:texture (starflash level-default-sprite))
|
||||
(:num 1.0)
|
||||
(:scale-x (meters 20.4) (meters 1.4))
|
||||
(:rot-x (degrees 22.5))
|
||||
(:rot-z (degrees 0) (degrees 360))
|
||||
(:scale-y :copy scale-x)
|
||||
(:r 128.0 64.0)
|
||||
(:g 100.0)
|
||||
(:b 30.0)
|
||||
(:a 128.0 55.0)
|
||||
(:omega (degrees 4511.25))
|
||||
(:scalevel-x (meters 0.02))
|
||||
(:scalevel-y :copy scalevel-x)
|
||||
(:timer (seconds 0.017))
|
||||
(:flags (sp-cpuinfo-flag-3 sp-cpuinfo-flag-14 glow))
|
||||
(:userdata 4096.0)
|
||||
)
|
||||
)
|
||||
|
||||
(defpart 4431
|
||||
:init-specs ((:texture (bigpuff level-default-sprite))
|
||||
(:num 1.0)
|
||||
(:scale-x (meters 2.5))
|
||||
(:rot-z (degrees 0) (degrees 360))
|
||||
(:scale-y :copy scale-x)
|
||||
(:r 34.0)
|
||||
(:g 34.0)
|
||||
(:b 64.0 34.0)
|
||||
(:a 64.0 10.0)
|
||||
(:scalevel-x (meters 0.033333335))
|
||||
(:scalevel-y :copy scalevel-x)
|
||||
(:fade-b -0.64)
|
||||
(:fade-a -0.32)
|
||||
(:timer (seconds 0.335))
|
||||
(:flags (sp-cpuinfo-flag-2))
|
||||
(:rotate-y (degrees 0))
|
||||
)
|
||||
)
|
||||
|
||||
(defpartgroup group-gem-explosion
|
||||
:id 1318
|
||||
:duration (seconds 2)
|
||||
:linger-duration (seconds 1)
|
||||
:flags (sp0 sp5 sp6 sp7)
|
||||
:bounds (static-bspherem 0 0 0 15)
|
||||
:rotate ((degrees 0) (degrees 90) (degrees 0))
|
||||
:scale (1.5 1.5 1.5)
|
||||
:parts ((sp-item 4433 :flags (sp3))
|
||||
(sp-item 4434 :flags (sp3))
|
||||
(sp-item 4435 :period (seconds 30) :length (seconds 0.167))
|
||||
(sp-item 4436 :flags (sp3))
|
||||
)
|
||||
)
|
||||
|
||||
(defpart 4437
|
||||
:init-specs ((:texture (shockwave level-default-sprite))
|
||||
(:num 1.0)
|
||||
(:scale-x (meters 10))
|
||||
(:scale-y :copy scale-x)
|
||||
(:r 128.0)
|
||||
(:g 128.0)
|
||||
(:b 128.0)
|
||||
(:a 128.0)
|
||||
(:scalevel-x (meters 0.33333334))
|
||||
(:scalevel-y :copy scalevel-x)
|
||||
(:fade-a -1.28)
|
||||
(:timer (seconds 0.335))
|
||||
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3))
|
||||
(:rotate-y (degrees 0))
|
||||
)
|
||||
)
|
||||
|
||||
(defpart 4433
|
||||
:init-specs ((:texture (glow-soft level-default-sprite))
|
||||
(:num 1.0)
|
||||
(:scale-x (meters 20))
|
||||
(:rot-x (degrees 225))
|
||||
(:scale-y :copy scale-x)
|
||||
(:r 40.0)
|
||||
(:g 128.0)
|
||||
(:b 255.0)
|
||||
(:a 64.0)
|
||||
(:fade-a -0.21333334)
|
||||
(:timer (seconds 1))
|
||||
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow))
|
||||
(:userdata 40960.0)
|
||||
)
|
||||
)
|
||||
|
||||
(defpart 4434
|
||||
:init-specs ((:texture (starflash level-default-sprite))
|
||||
(:num 1.0)
|
||||
(:scale-x (meters 50))
|
||||
(:rot-x (degrees 2.25))
|
||||
(:rot-z (degrees 0) (degrees 360))
|
||||
(:scale-y :copy scale-x)
|
||||
(:r 40.0)
|
||||
(:g 80.0)
|
||||
(:b 255.0)
|
||||
(:a 255.0)
|
||||
(:omega (degrees 6767.9995))
|
||||
(:scalevel-x (meters -0.6666667))
|
||||
(:scalevel-y :copy scalevel-x)
|
||||
(:timer (seconds 0.135))
|
||||
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow))
|
||||
(:userdata 4096.0)
|
||||
)
|
||||
)
|
||||
|
||||
(defpart 4435
|
||||
:init-specs ((:texture (explosion-edge level-default-sprite))
|
||||
(:birth-func 'birth-func-flip-based-on-scale)
|
||||
(:num 10.0)
|
||||
(:scale-x (meters -1) 2.0 (meters 2))
|
||||
(:rot-y (degrees 0) (degrees 360))
|
||||
(:scale-y :copy scale-x)
|
||||
(:r 130.0)
|
||||
(:g 200.0 20.0)
|
||||
(:b 255.0)
|
||||
(:a 128.0)
|
||||
(:vel-y (meters 0) (meters 0.16666667))
|
||||
(:scalevel-x (meters 0.013333334) (meters 0.013333334))
|
||||
(:scalevel-y :copy scalevel-x)
|
||||
(:fade-r -0.26666668)
|
||||
(:fade-g -0.1)
|
||||
(:fade-a -0.42666668 -0.42666668)
|
||||
(:friction 0.8)
|
||||
(:timer (seconds 1))
|
||||
(:flags (sp-cpuinfo-flag-0))
|
||||
(:func 'sparticle-2d-spline-align-instant)
|
||||
(:conerot-x (degrees 0) (degrees 360))
|
||||
(:rotate-y (degrees 0) (degrees 3600))
|
||||
)
|
||||
)
|
||||
|
||||
(defpart 4436
|
||||
:init-specs ((:texture (water-radiate level-default-sprite))
|
||||
(:birth-func 'birth-func-flip-based-on-scale)
|
||||
(:num 100.0)
|
||||
(:x (meters 0) (meters 0.1))
|
||||
(:scale-x (meters -1) 2.0 (meters 2))
|
||||
(:scale-y :copy scale-x)
|
||||
(:r 255.0)
|
||||
(:g 255.0)
|
||||
(:b 200.0)
|
||||
(:a 255.0)
|
||||
(:vel-y (meters 0.16666667) (meters 0.033333335))
|
||||
(:scalevel-x (meters 0.013333334))
|
||||
(:fade-r -1.7)
|
||||
(:fade-g -1.7)
|
||||
(:fade-a -0.85)
|
||||
(:friction 0.83)
|
||||
(:timer (seconds 1))
|
||||
(:flags (sp-cpuinfo-flag-3 left-multiply-quat))
|
||||
(:func 'sparticle-2d-spline-align-instant)
|
||||
(:next-time (seconds 0.25))
|
||||
(:next-launcher 4438)
|
||||
(:conerot-x (degrees -90) (degrees 180))
|
||||
(:rotate-y (degrees 0) (degrees 3600))
|
||||
)
|
||||
)
|
||||
|
||||
(defpart 4438
|
||||
:init-specs ((:scalevel-x (meters 0))
|
||||
(:scalevel-y :copy scalevel-x)
|
||||
(:fade-r -0.33333334)
|
||||
(:fade-g -0.6666667)
|
||||
(:friction 0.99)
|
||||
)
|
||||
)
|
||||
|
||||
(defpartgroup group-precura-bulb-green-glow
|
||||
:id 1319
|
||||
:bounds (static-bspherem 0 0 0 3)
|
||||
:parts ((sp-item 4439 :fade-after (meters 120) :flags (sp6)))
|
||||
)
|
||||
|
||||
(defpart 4439
|
||||
:init-specs ((:texture (glow-soft level-default-sprite))
|
||||
(:num 1.0)
|
||||
(:scale-x (meters 5) (meters 0.1))
|
||||
(:rot-x (degrees 9))
|
||||
(:rot-z (degrees -17))
|
||||
(:scale-y :copy scale-x)
|
||||
(:r 0.0)
|
||||
(:g 128.0)
|
||||
(:b 0.0)
|
||||
(:a 40.0 4.0)
|
||||
(:omega (degrees 2715.75))
|
||||
(:timer (seconds 0.017))
|
||||
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow))
|
||||
(:userdata 819.2)
|
||||
)
|
||||
)
|
||||
|
||||
(defpartgroup group-precura-bulb-green-glow-long
|
||||
:id 1320
|
||||
:bounds (static-bspherem 0 0 0 3)
|
||||
:parts ((sp-item 4440 :fade-after (meters 120) :flags (sp6)))
|
||||
)
|
||||
|
||||
(defpart 4440
|
||||
:init-specs ((:texture (glow-soft level-default-sprite))
|
||||
(:num 1.0)
|
||||
(:scale-x (meters 5) (meters 0.1))
|
||||
(:rot-x (degrees 9))
|
||||
(:rot-z (degrees -17))
|
||||
(:scale-y :copy scale-x)
|
||||
(:r 0.0)
|
||||
(:g 128.0)
|
||||
(:b 0.0)
|
||||
(:a 40.0 4.0)
|
||||
(:omega (degrees 2715.75))
|
||||
(:timer (seconds 0.017))
|
||||
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow))
|
||||
(:userdata 819.2)
|
||||
)
|
||||
)
|
||||
|
||||
(defpartgroup group-precura-green-steam
|
||||
:id 1321
|
||||
:flags (sp0 sp4)
|
||||
:bounds (static-bspherem 0 0 0 60)
|
||||
:parts ((sp-item 4441 :fade-after (meters 200) :falloff-to (meters 250) :flags (sp7)))
|
||||
)
|
||||
|
||||
(defpart 4441
|
||||
:init-specs ((:texture (dirtpuff01 level-default-sprite))
|
||||
(:num 0.04)
|
||||
(:z (meters 0) (meters 1))
|
||||
(:scale-x (meters 2) (meters 1))
|
||||
(:rot-z (degrees 0) (degrees 360))
|
||||
(:scale-y :copy scale-x)
|
||||
(:r 0.0)
|
||||
(:g 128.0)
|
||||
(:b 80.0)
|
||||
(:a 0.0)
|
||||
(:vel-y (meters 0.005925926))
|
||||
(:scalevel-x (meters 0.001) (meters 0.0033333334))
|
||||
(:rotvel-z (degrees -0.13333334) (degrees 0.26666668))
|
||||
(:scalevel-y :copy scalevel-x)
|
||||
(:fade-a 0.21333334)
|
||||
(:accel-x (meters -0.000033333334) (meters 0.00006666667))
|
||||
(:accel-y (meters 0.00033333333) (meters 0.000033333334))
|
||||
(:accel-z (meters -0.000033333334) (meters 0.00006666667))
|
||||
(:friction 0.94)
|
||||
(:timer (seconds 16.667))
|
||||
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-13 launch-along-z))
|
||||
(:next-time (seconds 1))
|
||||
(:next-launcher 4442)
|
||||
(:rotate-y (degrees 0) (degrees 3600))
|
||||
)
|
||||
)
|
||||
|
||||
(defpart 4442
|
||||
:init-specs ((:fade-a -0.0128 -0.0128))
|
||||
)
|
||||
|
||||
(defpartgroup group-precura-green-glow-small
|
||||
:id 1322
|
||||
:bounds (static-bspherem 0 0 0 3)
|
||||
:parts ((sp-item 4443 :fade-after (meters 120) :flags (sp6)))
|
||||
)
|
||||
|
||||
(defpart 4443
|
||||
:init-specs ((:texture (glow-soft level-default-sprite))
|
||||
(:num 1.0)
|
||||
(:scale-x (meters 2) (meters 0.1))
|
||||
(:rot-x (degrees 9))
|
||||
(:rot-z (degrees -17))
|
||||
(:scale-y :copy scale-x)
|
||||
(:r 0.0)
|
||||
(:g 128.0)
|
||||
(:b 0.0)
|
||||
(:a 40.0 4.0)
|
||||
(:omega (degrees 2715.75))
|
||||
(:timer (seconds 0.017))
|
||||
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow))
|
||||
(:userdata 819.2)
|
||||
)
|
||||
)
|
||||
|
||||
(defpartgroup group-precura-rtableb
|
||||
:id 1323
|
||||
:bounds (static-bspherem 0 0 0 3)
|
||||
:parts ((sp-item 4444 :fade-after (meters 120) :flags (sp6)))
|
||||
)
|
||||
|
||||
(defpart 4444
|
||||
:init-specs ((:texture (glow-soft level-default-sprite))
|
||||
(:num 1.0)
|
||||
(:scale-x (meters 8) (meters 0.2))
|
||||
(:rot-x (degrees 9))
|
||||
(:rot-z (degrees -17))
|
||||
(:scale-y :copy scale-x)
|
||||
(:r 0.0)
|
||||
(:g 90.0)
|
||||
(:b 80.0)
|
||||
(:a 70.0 10.0)
|
||||
(:omega (degrees 2715.75))
|
||||
(:timer (seconds 0.017))
|
||||
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow))
|
||||
(:userdata 819.2)
|
||||
)
|
||||
)
|
||||
|
@ -7,3 +7,80 @@
|
||||
|
||||
;; DECOMP BEGINS
|
||||
|
||||
(deftype precurc-states (structure)
|
||||
((pulse pulse-state :inline)
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
(defun init-mood-precurc ((arg0 mood-context))
|
||||
(let ((v1-0 (the-as object (-> arg0 state))))
|
||||
(set! (-> (the-as precurc-states v1-0) pulse brightness) 1.0)
|
||||
(set! (-> (the-as precurc-states v1-0) pulse target-brightness) 1.0)
|
||||
(set! (-> (the-as precurc-states v1-0) pulse speed) 1.0)
|
||||
)
|
||||
)
|
||||
|
||||
;; WARN: Return type mismatch float vs none.
|
||||
(defun update-precurc-lights ((arg0 mood-context))
|
||||
(let ((v1-0 (-> arg0 light-group)))
|
||||
(let ((a0-1 (-> v1-0 0)))
|
||||
(set! (-> a0-1 dir0 direction x) 0.0)
|
||||
(set! (-> a0-1 dir0 direction y) 1.0)
|
||||
(set! (-> a0-1 dir0 direction z) 0.0)
|
||||
(set! (-> a0-1 dir0 direction w) 0.0)
|
||||
)
|
||||
(set-vector! (-> v1-0 0 dir0 color) 0.5 0.667 0.667 1.0)
|
||||
(set-vector! (-> v1-0 0 ambi color) 0.25 0.333 0.333 1.0)
|
||||
(set! (-> v1-0 0 dir0 extra x) 1.0)
|
||||
(set! (-> v1-0 0 dir1 extra x) 0.0)
|
||||
(set! (-> v1-0 0 dir2 extra x) 0.0)
|
||||
(set! (-> v1-0 0 ambi extra x) 1.0)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
|
||||
(defbehavior update-mood-precurc time-of-day-proc ((arg0 mood-context) (arg1 float) (arg2 int))
|
||||
(update-mood-interior arg0 #f)
|
||||
(update-precurc-lights arg0)
|
||||
(cond
|
||||
((< (the-as uint 8) (the-as uint (-> *time-of-day-context* mode)))
|
||||
(palette-select-special arg0)
|
||||
)
|
||||
(else
|
||||
(-> arg0 state)
|
||||
(set! (-> arg0 times 0 w) 1.0)
|
||||
(update-mood-pulse arg0 1 0 1.0 0.25 (* 65536.0 (seconds-per-frame)) 0.0)
|
||||
(set! (-> arg0 times 2 w) 1.0)
|
||||
(let* ((v1-9 (-> *display* part-clock frame-counter))
|
||||
(f0-5 (* 218.45334 (the float (mod v1-9 300))))
|
||||
)
|
||||
(set! (-> arg0 times 3 w) (+ 0.875 (* 0.175 (cos f0-5))))
|
||||
)
|
||||
(set! (-> arg0 times 4 w) 1.0)
|
||||
(set! (-> arg0 times 5 w) 1.0)
|
||||
(set! (-> arg0 times 6 w) 1.0)
|
||||
(set! (-> arg0 times 7 w) 1.0)
|
||||
)
|
||||
)
|
||||
0
|
||||
(none)
|
||||
)
|
||||
|
||||
(defun precurc-activate ((arg0 level))
|
||||
(persist-with-delay
|
||||
*setting-control*
|
||||
'precur-activate
|
||||
(the-as time-frame (the-as uint #xb2d05e00))
|
||||
'sky-type
|
||||
'star-field
|
||||
0.0
|
||||
0
|
||||
)
|
||||
(none)
|
||||
)
|
||||
|
||||
(defun precur-deactivate ((arg0 level))
|
||||
(persist-with-delay *setting-control* 'precur-activate 0 'sky-type #f 0.0 0)
|
||||
(none)
|
||||
)
|
||||
|
@ -7,3 +7,423 @@
|
||||
|
||||
;; DECOMP BEGINS
|
||||
|
||||
(deftype precur-elevator (elevator)
|
||||
()
|
||||
)
|
||||
|
||||
|
||||
(defskelgroup skel-precur-elevator precur-elevator precur-elevator-lod0-jg precur-elevator-idle-ja
|
||||
((precur-elevator-lod0-mg (meters 999999)))
|
||||
:bounds (static-spherem 0 0 0 16)
|
||||
)
|
||||
|
||||
(defmethod get-art-group ((this precur-elevator))
|
||||
(art-group-get-by-name *level* "skel-precur-elevator" (the-as (pointer level) #f))
|
||||
)
|
||||
|
||||
(defmethod elevator-method-47 ((this precur-elevator))
|
||||
(if *target*
|
||||
(< (vector-vector-xz-distance (target-pos 0) (-> this root trans))
|
||||
(* 0.4 (-> this root root-prim prim-core world-sphere w))
|
||||
)
|
||||
#f
|
||||
)
|
||||
)
|
||||
|
||||
;; WARN: Return type mismatch collide-shape-moving vs none.
|
||||
(defmethod init-collision! ((this precur-elevator))
|
||||
(let ((s5-0 (new 'process 'collide-shape-moving this (collide-list-enum usually-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-group s5-0 (the-as uint 1) 0)))
|
||||
(set! (-> s5-0 total-prims) (the-as uint 2))
|
||||
(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) 3)
|
||||
(set-vector! (-> s4-0 local-sphere) 0.0 0.0 0.0 65536.0)
|
||||
(set! (-> s5-0 root-prim) s4-0)
|
||||
)
|
||||
(pusher-init s5-0)
|
||||
(let ((v1-15 (new 'process 'collide-shape-prim-mesh s5-0 (the-as uint 0) (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 0.0 0.0 65536.0)
|
||||
)
|
||||
(set! (-> s5-0 nav-radius) (* 0.75 (-> s5-0 root-prim local-sphere w)))
|
||||
(let ((v1-18 (-> s5-0 root-prim)))
|
||||
(set! (-> s5-0 backup-collide-as) (-> v1-18 prim-core collide-as))
|
||||
(set! (-> s5-0 backup-collide-with) (-> v1-18 prim-core collide-with))
|
||||
)
|
||||
(set! (-> this root) s5-0)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
|
||||
;; WARN: Return type mismatch sound-spec vs none.
|
||||
(defmethod base-plat-method-34 ((this precur-elevator))
|
||||
(set! (-> this sound-running-loop) (static-sound-spec "prec-elev-loop" :group 0))
|
||||
(set! (-> this sound-arrived) (static-sound-spec "prec-elev-stop" :group 0))
|
||||
(none)
|
||||
)
|
||||
|
||||
(defskelgroup skel-precur-door-a precur-door-a precur-door-a-lod0-jg precur-door-a-idle-ja
|
||||
((precur-door-a-lod0-mg (meters 999999)))
|
||||
:bounds (static-spherem 0 6 0 10)
|
||||
)
|
||||
|
||||
(deftype precur-door-a (process-drawable)
|
||||
((open-test pair)
|
||||
(open-started time-frame)
|
||||
(do-camera? symbol)
|
||||
(open-frame float)
|
||||
)
|
||||
(:state-methods
|
||||
open
|
||||
close
|
||||
)
|
||||
(:methods
|
||||
(precur-door-a-method-22 () none)
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
(defmethod init-from-entity! ((this precur-door-a) (arg0 entity-actor))
|
||||
(set! (-> this open-started) 0)
|
||||
(set! (-> this open-frame) 45.0)
|
||||
(let ((s4-0 (new 'process 'collide-shape this (collide-list-enum usually-hit-by-player))))
|
||||
(set! (-> s4-0 penetrated-by) (penetrate))
|
||||
(let ((s3-0 (new 'process 'collide-shape-prim-group s4-0 (the-as uint 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 collide-with) (collide-spec jak bot player-list))
|
||||
(set! (-> s3-0 prim-core action) (collide-action solid))
|
||||
(set-vector! (-> s3-0 local-sphere) 0.0 24576.0 0.0 40960.0)
|
||||
(set! (-> s4-0 root-prim) s3-0)
|
||||
)
|
||||
(let ((v1-9 (new 'process 'collide-shape-prim-mesh s4-0 (the-as uint 0) (the-as uint 0))))
|
||||
(set! (-> v1-9 prim-core collide-as) (collide-spec obstacle))
|
||||
(set! (-> v1-9 prim-core collide-with) (collide-spec jak bot player-list))
|
||||
(set! (-> v1-9 prim-core action) (collide-action solid))
|
||||
(set! (-> v1-9 transform-index) 3)
|
||||
(set-vector! (-> v1-9 local-sphere) 0.0 0.0 0.0 40960.0)
|
||||
)
|
||||
(let ((v1-11 (new 'process 'collide-shape-prim-mesh s4-0 (the-as uint 1) (the-as uint 0))))
|
||||
(set! (-> v1-11 prim-core collide-as) (collide-spec obstacle))
|
||||
(set! (-> v1-11 prim-core collide-with) (collide-spec jak bot player-list))
|
||||
(set! (-> v1-11 prim-core action) (collide-action solid))
|
||||
(set! (-> v1-11 transform-index) 4)
|
||||
(set-vector! (-> v1-11 local-sphere) 0.0 24576.0 0.0 40960.0)
|
||||
)
|
||||
(set! (-> s4-0 nav-radius) (* 0.75 (-> s4-0 root-prim local-sphere w)))
|
||||
(let ((v1-14 (-> s4-0 root-prim)))
|
||||
(set! (-> s4-0 backup-collide-as) (-> v1-14 prim-core collide-as))
|
||||
(set! (-> s4-0 backup-collide-with) (-> v1-14 prim-core collide-with))
|
||||
)
|
||||
(set! (-> this root) s4-0)
|
||||
)
|
||||
(process-drawable-from-entity! this arg0)
|
||||
(set! (-> this open-test)
|
||||
(the-as
|
||||
pair
|
||||
((method-of-type res-lump get-property-struct)
|
||||
(-> this entity)
|
||||
'open-test
|
||||
'interp
|
||||
-1000000000.0
|
||||
(the-as structure '(not (or (scene-player?) (focus-test? *target* grabbed))))
|
||||
(the-as (pointer res-tag) #f)
|
||||
*res-static-buf*
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! (-> this do-camera?)
|
||||
(the-as
|
||||
symbol
|
||||
(and (res-lump-struct (-> this entity) 'camera-name structure)
|
||||
(and (not (script-eval (-> this open-test))) (task-node-closed? (game-task-node precursor-tour-resolution)))
|
||||
)
|
||||
)
|
||||
)
|
||||
(initialize-skeleton
|
||||
this
|
||||
(the-as skeleton-group (art-group-get-by-name *level* "skel-precur-door-a" (the-as (pointer level) #f)))
|
||||
(the-as pair 0)
|
||||
)
|
||||
(go (method-of-object this close))
|
||||
)
|
||||
|
||||
(defstate close (precur-door-a)
|
||||
:virtual #t
|
||||
:enter (behavior ()
|
||||
(set-time! (-> self state-time))
|
||||
)
|
||||
:code (behavior ()
|
||||
(until #f
|
||||
(if (script-eval (-> self open-test))
|
||||
(go-virtual open)
|
||||
)
|
||||
(suspend)
|
||||
)
|
||||
#f
|
||||
)
|
||||
:post transform-post
|
||||
)
|
||||
|
||||
(defstate open (precur-door-a)
|
||||
:virtual #t
|
||||
:enter (behavior ()
|
||||
(cond
|
||||
((and (time-elapsed? (-> self state-time) (seconds 0.5)) (-> self do-camera?) (zero? (-> self open-started)))
|
||||
(if (res-lump-struct (-> self entity) 'camera-name structure)
|
||||
(process-spawn
|
||||
external-camera-controller
|
||||
(-> self entity)
|
||||
900
|
||||
#f
|
||||
:name "external-camera-controller"
|
||||
:to *entity-pool*
|
||||
)
|
||||
)
|
||||
(let* ((v1-14 (-> *game-info* sub-task-list (game-task-node precursor-destroy-ship-escape)))
|
||||
(v1-16 (if (-> v1-14 manager)
|
||||
(-> v1-14 manager manager)
|
||||
(the-as handle #f)
|
||||
)
|
||||
)
|
||||
)
|
||||
(if v1-16
|
||||
(send-event (handle->process v1-16) 'extra-time 900)
|
||||
)
|
||||
)
|
||||
(set-time! (-> self open-started))
|
||||
)
|
||||
(else
|
||||
(ja :num-func num-func-identity :frame-num (ja-aframe (-> self open-frame) 0))
|
||||
)
|
||||
)
|
||||
(set-time! (-> self state-time))
|
||||
)
|
||||
:code (behavior ()
|
||||
(sleep-code)
|
||||
)
|
||||
:post (behavior ()
|
||||
(when (time-elapsed? (-> self state-time) (seconds 2))
|
||||
(if (>= 0.0 (ja-frame-num 0))
|
||||
(sound-play "prec-door-open")
|
||||
)
|
||||
(ja :num! (seek! (ja-aframe (-> self open-frame) 0) 0.5))
|
||||
)
|
||||
(transform-post)
|
||||
)
|
||||
)
|
||||
|
||||
(defskelgroup skel-precur-swingpole-pop precur-swingpole-pop precur-swingpole-pop-lod0-jg precur-swingpole-pop-idle-ja
|
||||
((precur-swingpole-pop-lod0-mg (meters 999999)))
|
||||
:bounds (static-spherem 0 0 6 8)
|
||||
)
|
||||
|
||||
(deftype precur-swingpole-pop (swingpole)
|
||||
((root collide-shape :override)
|
||||
(moving? symbol)
|
||||
(player-grabbed? symbol)
|
||||
(halfway? symbol)
|
||||
(stopped-time time-frame)
|
||||
(movedist float)
|
||||
(tt float)
|
||||
(paused-time time-frame)
|
||||
(direction uint8)
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
(defmethod swingpole-method-22 ((this precur-swingpole-pop))
|
||||
(rlet ((acc :class vf)
|
||||
(vf0 :class vf)
|
||||
(vf4 :class vf)
|
||||
(vf5 :class vf)
|
||||
(vf6 :class vf)
|
||||
(vf7 :class vf)
|
||||
)
|
||||
(init-vf0-vector)
|
||||
(when (-> this moving?)
|
||||
(let ((s5-0 (new 'stack-no-clear 'vector)))
|
||||
(let ((s4-0 (-> this node-list data 3)))
|
||||
0.0
|
||||
(cond
|
||||
((zero? (-> this paused-time))
|
||||
(+! (-> this tt) (* 0.5 (seconds-per-frame)))
|
||||
(when (< 1.0 (-> this tt))
|
||||
(let ((f0-4 (-> this tt)))
|
||||
(set! (-> this tt) (- f0-4 (* (the float (the int (/ f0-4 1.0))) 1.0)))
|
||||
)
|
||||
(set-time! (-> this paused-time))
|
||||
)
|
||||
)
|
||||
(else
|
||||
(when (time-elapsed? (-> this paused-time) (seconds 1))
|
||||
(set! (-> this paused-time) 0)
|
||||
(sound-play "spike-retract")
|
||||
(set! (-> this halfway?) #f)
|
||||
)
|
||||
)
|
||||
)
|
||||
(when (and (not (-> this halfway?)) (< 0.5 (-> this tt)))
|
||||
(set! (-> this halfway?) #t)
|
||||
(sound-play "spike-reveal")
|
||||
)
|
||||
(let ((f0-9 (cos (* 65536.0 (-> this tt)))))
|
||||
(set! (-> this movedist) (* 20480.0 (+ -1.0 f0-9)))
|
||||
)
|
||||
(set! (-> s5-0 quad) (-> this entity extra trans quad))
|
||||
(vector-normalize-copy! (-> this dir) (-> s4-0 bone transform fvec) 1.0)
|
||||
)
|
||||
(let ((a1-3 s5-0))
|
||||
(let ((v1-30 s5-0))
|
||||
(let ((a0-12 (-> this dir)))
|
||||
(let ((a2-3 (-> this movedist)))
|
||||
(.mov vf7 a2-3)
|
||||
)
|
||||
(.lvf vf5 (&-> a0-12 quad))
|
||||
)
|
||||
(.lvf vf4 (&-> v1-30 quad))
|
||||
)
|
||||
(.add.x.vf vf6 vf0 vf0 :mask #b1000)
|
||||
(.mul.x.vf acc vf5 vf7 :mask #b111)
|
||||
(.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111)
|
||||
(.svf (&-> a1-3 quad) vf6)
|
||||
)
|
||||
(move-to-point! (-> this root) s5-0)
|
||||
)
|
||||
(when (and (-> this moving?)
|
||||
(< (fabs (-> this movedist)) 1228.8)
|
||||
(< 122880.0 (vector-vector-distance (target-pos 0) (-> this entity extra trans)))
|
||||
)
|
||||
(set! (-> this moving?) #f)
|
||||
(set! (-> this player-grabbed?) #f)
|
||||
(set-time! (-> this stopped-time))
|
||||
)
|
||||
)
|
||||
(when (-> this player-grabbed?)
|
||||
(let ((s5-2 (new 'stack-no-clear 'vector)))
|
||||
(set! (-> s5-2 quad) (-> this entity extra trans quad))
|
||||
(seek! (-> this movedist) 0.0 (* 36864.0 (seconds-per-frame)))
|
||||
(let ((a1-7 s5-2))
|
||||
(let ((v1-48 s5-2))
|
||||
(let ((a0-21 (-> this dir)))
|
||||
(let ((a2-5 (-> this movedist)))
|
||||
(.mov vf7 a2-5)
|
||||
)
|
||||
(.lvf vf5 (&-> a0-21 quad))
|
||||
)
|
||||
(.lvf vf4 (&-> v1-48 quad))
|
||||
)
|
||||
(.add.x.vf vf6 vf0 vf0 :mask #b1000)
|
||||
(.mul.x.vf acc vf5 vf7 :mask #b111)
|
||||
(.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111)
|
||||
(.svf (&-> a1-7 quad) vf6)
|
||||
)
|
||||
(move-to-point! (-> this root) s5-2)
|
||||
)
|
||||
)
|
||||
(when (and (not (-> this moving?)) (and (not (-> this player-grabbed?))
|
||||
(time-elapsed? (-> this stopped-time) (seconds 0.5))
|
||||
(< (vector-vector-distance (target-pos 0) (-> this root trans)) 122880.0)
|
||||
)
|
||||
)
|
||||
(set! (-> this moving?) #t)
|
||||
(set! (-> this player-grabbed?) #f)
|
||||
(set-time! (-> this stopped-time))
|
||||
)
|
||||
(call-parent-method this)
|
||||
(none)
|
||||
)
|
||||
)
|
||||
|
||||
(defstate idle (precur-swingpole-pop)
|
||||
:virtual #t
|
||||
:event (behavior ((proc process) (argc int) (message symbol) (block event-message-block))
|
||||
(case message
|
||||
(('touch 'attack)
|
||||
(when (send-event proc 'pole-grab (-> block param 0))
|
||||
(go-virtual active (process->handle proc))
|
||||
(set! (-> self moving?) #f)
|
||||
(set! (-> self player-grabbed?) #t)
|
||||
(set-time! (-> self stopped-time))
|
||||
)
|
||||
#f
|
||||
)
|
||||
)
|
||||
)
|
||||
:enter (behavior ()
|
||||
(set! (-> self player-grabbed?) #f)
|
||||
(set! (-> self tt) 0.0)
|
||||
(set! (-> self direction) (the-as uint 0))
|
||||
0
|
||||
)
|
||||
:code (behavior ()
|
||||
(if (nonzero? (-> self draw))
|
||||
(ja-post)
|
||||
)
|
||||
(update-transforms (-> self root))
|
||||
(until #f
|
||||
(swingpole-method-22 self)
|
||||
(suspend)
|
||||
)
|
||||
#f
|
||||
)
|
||||
)
|
||||
|
||||
(defmethod init-collision! ((this precur-swingpole-pop))
|
||||
(let ((s5-0 (new 'process 'collide-shape this (collide-list-enum hit-by-player))))
|
||||
(let ((s4-0 (new 'process 'collide-shape-prim-group s5-0 (the-as uint 2) 0)))
|
||||
(set! (-> s5-0 total-prims) (the-as uint 3))
|
||||
(set! (-> s4-0 prim-core collide-as) (collide-spec obstacle))
|
||||
(set! (-> s4-0 prim-core collide-with) (collide-spec jak player-list tobot))
|
||||
(set! (-> s4-0 transform-index) 0)
|
||||
(set-vector! (-> s4-0 local-sphere) 0.0 0.0 24576.0 32768.0)
|
||||
(set! (-> s5-0 root-prim) s4-0)
|
||||
)
|
||||
(let ((v1-7 (new 'process 'collide-shape-prim-mesh s5-0 (the-as uint 0) (the-as uint 0))))
|
||||
(set! (-> v1-7 prim-core collide-as) (collide-spec obstacle))
|
||||
(set! (-> v1-7 prim-core collide-with) (collide-spec jak player-list tobot))
|
||||
(set! (-> v1-7 prim-core action) (collide-action solid))
|
||||
(set! (-> v1-7 transform-index) 0)
|
||||
(set-vector! (-> v1-7 local-sphere) 0.0 0.0 24576.0 32768.0)
|
||||
)
|
||||
(let ((v1-9 (new 'process 'collide-shape-prim-sphere s5-0 (the-as uint 0))))
|
||||
(set! (-> v1-9 prim-core collide-as) (collide-spec obstacle))
|
||||
(set! (-> v1-9 prim-core collide-with) (collide-spec jak player-list tobot))
|
||||
(set! (-> v1-9 transform-index) 0)
|
||||
(set-vector! (-> v1-9 local-sphere) 0.0 0.0 24576.0 12288.0)
|
||||
)
|
||||
(set! (-> s5-0 nav-radius) (* 0.75 (-> s5-0 root-prim local-sphere w)))
|
||||
(let ((v1-12 (-> s5-0 root-prim)))
|
||||
(set! (-> s5-0 backup-collide-as) (-> v1-12 prim-core collide-as))
|
||||
(set! (-> s5-0 backup-collide-with) (-> v1-12 prim-core collide-with))
|
||||
)
|
||||
(set! (-> this root) s5-0)
|
||||
)
|
||||
0
|
||||
(none)
|
||||
)
|
||||
|
||||
;; WARN: Return type mismatch symbol vs object.
|
||||
(defmethod init-from-entity! ((this precur-swingpole-pop) (arg0 entity-actor))
|
||||
(call-parent-method this arg0)
|
||||
(set! (-> this player-grabbed?) #f)
|
||||
(set! (-> this moving?) #f)
|
||||
(set-time! (-> this stopped-time))
|
||||
(set! (-> this halfway?) #f)
|
||||
#f
|
||||
)
|
||||
|
||||
;; WARN: Return type mismatch collide-prim-core vs vector.
|
||||
(defmethod get-trans ((this precur-swingpole-pop))
|
||||
(the-as vector (-> this root root-prim prim-core))
|
||||
)
|
||||
|
@ -7,3 +7,137 @@
|
||||
|
||||
;; DECOMP BEGINS
|
||||
|
||||
(defpartgroup group-precurc-bulb-green-glow
|
||||
:id 1329
|
||||
:bounds (static-bspherem 0 0 0 3)
|
||||
:parts ((sp-item 4458 :fade-after (meters 120) :flags (sp6)))
|
||||
)
|
||||
|
||||
(defpart 4458
|
||||
:init-specs ((:texture (glow-soft level-default-sprite))
|
||||
(:num 1.0)
|
||||
(:scale-x (meters 5) (meters 0.1))
|
||||
(:rot-x (degrees 9))
|
||||
(:rot-z (degrees -17))
|
||||
(:scale-y :copy scale-x)
|
||||
(:r 0.0)
|
||||
(:g 128.0)
|
||||
(:b 0.0)
|
||||
(:a 40.0 4.0)
|
||||
(:omega (degrees 2715.75))
|
||||
(:timer (seconds 0.017))
|
||||
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow))
|
||||
(:userdata 819.2)
|
||||
)
|
||||
)
|
||||
|
||||
(defpartgroup group-precurc-bulb-green-glow-long
|
||||
:id 1330
|
||||
:bounds (static-bspherem 0 0 0 3)
|
||||
:parts ((sp-item 4459 :fade-after (meters 120) :flags (sp6)))
|
||||
)
|
||||
|
||||
(defpart 4459
|
||||
:init-specs ((:texture (glow-soft level-default-sprite))
|
||||
(:num 1.0)
|
||||
(:scale-x (meters 5) (meters 0.1))
|
||||
(:rot-x (degrees 9))
|
||||
(:rot-z (degrees -17))
|
||||
(:scale-y :copy scale-x)
|
||||
(:r 0.0)
|
||||
(:g 128.0)
|
||||
(:b 0.0)
|
||||
(:a 40.0 4.0)
|
||||
(:omega (degrees 2715.75))
|
||||
(:timer (seconds 0.017))
|
||||
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow))
|
||||
(:userdata 819.2)
|
||||
)
|
||||
)
|
||||
|
||||
(defpartgroup group-precurc-green-steam
|
||||
:id 1331
|
||||
:flags (sp0 sp4)
|
||||
:bounds (static-bspherem 0 0 0 60)
|
||||
:parts ((sp-item 4460 :fade-after (meters 200) :falloff-to (meters 250) :flags (sp7)))
|
||||
)
|
||||
|
||||
(defpart 4460
|
||||
:init-specs ((:texture (dirtpuff01 level-default-sprite))
|
||||
(:num 0.04)
|
||||
(:z (meters 0) (meters 1))
|
||||
(:scale-x (meters 2) (meters 1))
|
||||
(:rot-z (degrees 0) (degrees 360))
|
||||
(:scale-y :copy scale-x)
|
||||
(:r 0.0)
|
||||
(:g 128.0)
|
||||
(:b 80.0)
|
||||
(:a 0.0)
|
||||
(:vel-y (meters 0.005925926))
|
||||
(:scalevel-x (meters 0.001) (meters 0.0033333334))
|
||||
(:rotvel-z (degrees -0.13333334) (degrees 0.26666668))
|
||||
(:scalevel-y :copy scalevel-x)
|
||||
(:fade-a 0.21333334)
|
||||
(:accel-x (meters -0.000033333334) (meters 0.00006666667))
|
||||
(:accel-y (meters 0.00033333333) (meters 0.000033333334))
|
||||
(:accel-z (meters -0.000033333334) (meters 0.00006666667))
|
||||
(:friction 0.94)
|
||||
(:timer (seconds 16.667))
|
||||
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-13 launch-along-z))
|
||||
(:next-time (seconds 1))
|
||||
(:next-launcher 4461)
|
||||
(:rotate-y (degrees 0) (degrees 3600))
|
||||
)
|
||||
)
|
||||
|
||||
(defpart 4461
|
||||
:init-specs ((:fade-a -0.0128 -0.0128))
|
||||
)
|
||||
|
||||
(defpartgroup group-precurc-green-glow-small
|
||||
:id 1332
|
||||
:bounds (static-bspherem 0 0 0 3)
|
||||
:parts ((sp-item 4462 :fade-after (meters 120) :flags (sp6)))
|
||||
)
|
||||
|
||||
(defpart 4462
|
||||
:init-specs ((:texture (glow-soft level-default-sprite))
|
||||
(:num 1.0)
|
||||
(:scale-x (meters 2) (meters 0.1))
|
||||
(:rot-x (degrees 9))
|
||||
(:rot-z (degrees -17))
|
||||
(:scale-y :copy scale-x)
|
||||
(:r 0.0)
|
||||
(:g 128.0)
|
||||
(:b 0.0)
|
||||
(:a 40.0 4.0)
|
||||
(:omega (degrees 2715.75))
|
||||
(:timer (seconds 0.017))
|
||||
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow))
|
||||
(:userdata 819.2)
|
||||
)
|
||||
)
|
||||
|
||||
(defpartgroup group-precurc-purple-glow-small
|
||||
:id 1333
|
||||
:bounds (static-bspherem 0 0 0 3)
|
||||
:parts ((sp-item 4463 :fade-after (meters 120) :flags (sp6)))
|
||||
)
|
||||
|
||||
(defpart 4463
|
||||
:init-specs ((:texture (glow-soft level-default-sprite))
|
||||
(:num 1.0)
|
||||
(:scale-x (meters 12) (meters 0.5))
|
||||
(:rot-x (degrees 9))
|
||||
(:rot-z (degrees -17))
|
||||
(:scale-y :copy scale-x)
|
||||
(:r 128.0)
|
||||
(:g 0.0)
|
||||
(:b 128.0)
|
||||
(:a 90.0 4.0)
|
||||
(:omega (degrees 2715.75))
|
||||
(:timer (seconds 0.017))
|
||||
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow))
|
||||
(:userdata 819.2)
|
||||
)
|
||||
)
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -7,3 +7,184 @@
|
||||
|
||||
;; DECOMP BEGINS
|
||||
|
||||
(defpartgroup group-precur-debris-wind
|
||||
:id 1309
|
||||
:flags (sp0 sp4 sp10)
|
||||
:bounds (static-bspherem 0 0 0 500)
|
||||
:parts ((sp-item 4401 :flags (is-3d sp7)) (sp-item 4402 :flags (sp7)) (sp-item 4403 :flags (sp7)))
|
||||
)
|
||||
|
||||
(defpart 4401
|
||||
:init-specs ((:texture (crate-wood-01-splinter level-default-sprite))
|
||||
(:birth-func 'birth-func-texture-group)
|
||||
(:num 0.5)
|
||||
(:x (meters 0) (meters 50))
|
||||
(:z (meters -300))
|
||||
(:scale-x (meters 0.5) (meters 10))
|
||||
(:scale-y (meters 0.5) (meters 10))
|
||||
(:r 20.0 50.0)
|
||||
(:g :copy r)
|
||||
(:b :copy r)
|
||||
(:a 128.0)
|
||||
(:vel-z (meters 0.6) (meters 0.06666667))
|
||||
(:rotvel-x (degrees -5) (degrees 10))
|
||||
(:rotvel-y (degrees -5) (degrees 10))
|
||||
(:rotvel-z (degrees -5) (degrees 10))
|
||||
(:timer (seconds 2.5))
|
||||
(:flags (launch-along-z left-multiply-quat))
|
||||
(:userdata :data (new 'static 'boxed-array :type int32 5 0 0 #x400600 -743440384 -743440128 -743439872))
|
||||
(:next-time (seconds 0.335))
|
||||
(:next-launcher 4404)
|
||||
(:rotate-y (degrees 0))
|
||||
(:rotate-z (degrees 0) (degrees 3600))
|
||||
)
|
||||
)
|
||||
|
||||
(defpart 4404
|
||||
:init-specs ((:r 20.0 50.0)
|
||||
(:g :copy r)
|
||||
(:b :copy r)
|
||||
(:rotvel-x (degrees -5) (degrees 10))
|
||||
(:rotvel-y (degrees -5) (degrees 10))
|
||||
(:rotvel-z (degrees -5) (degrees 10))
|
||||
(:accel-x (meters -0.0033333334) (meters 0.006666667))
|
||||
(:accel-y (meters -0.0033333334) (meters 0.006666667))
|
||||
(:accel-z (meters -0.0033333334) (meters 0.006666667))
|
||||
(:next-time (seconds 0.017) (seconds 0.997))
|
||||
(:next-launcher 4405)
|
||||
)
|
||||
)
|
||||
|
||||
(defpart 4405
|
||||
:init-specs ((:r 255.0)
|
||||
(:g :copy r)
|
||||
(:b :copy r)
|
||||
(:rotvel-x (degrees -5) (degrees 10))
|
||||
(:rotvel-y (degrees -5) (degrees 10))
|
||||
(:rotvel-z (degrees -5) (degrees 10))
|
||||
(:next-time (seconds 0.017))
|
||||
(:next-launcher 4404)
|
||||
)
|
||||
)
|
||||
|
||||
(defpart 4402
|
||||
:init-specs ((:texture (big-cloud level-default-sprite))
|
||||
(:num 3.0)
|
||||
(:x (meters 0) (meters 50))
|
||||
(:z (meters -300))
|
||||
(:scale-x (meters 10) (meters 10))
|
||||
(:rot-z (degrees 0) (degrees 360))
|
||||
(:scale-y :copy scale-x)
|
||||
(:r 128.0 100.0)
|
||||
(:g :copy r)
|
||||
(:b :copy r)
|
||||
(:a 0.0)
|
||||
(:vel-z (meters 0.6) (meters 0.06666667))
|
||||
(:fade-a 0.06 0.06)
|
||||
(:timer (seconds 2.5))
|
||||
(:flags ())
|
||||
(:next-time (seconds 0.335))
|
||||
(:next-launcher 4406)
|
||||
(:rotate-y (degrees 0))
|
||||
(:rotate-z (degrees 0) (degrees 3600))
|
||||
)
|
||||
)
|
||||
|
||||
(defpart 4406
|
||||
:init-specs ((:fade-a 0.0))
|
||||
)
|
||||
|
||||
(defpart 4403
|
||||
:init-specs ((:texture (big-cloud level-default-sprite))
|
||||
(:num 2.0)
|
||||
(:x (meters 40) (meters 40))
|
||||
(:z (meters -300))
|
||||
(:scale-x (meters 20) (meters 40))
|
||||
(:rot-z (degrees 0) (degrees 360))
|
||||
(:scale-y :copy scale-x)
|
||||
(:r 128.0 100.0)
|
||||
(:g :copy r)
|
||||
(:b :copy r)
|
||||
(:a 0.0)
|
||||
(:vel-z (meters 0.6666667) (meters 0.06666667))
|
||||
(:fade-a 0.08 0.08)
|
||||
(:timer (seconds 2.5))
|
||||
(:flags ())
|
||||
(:next-time (seconds 0.335))
|
||||
(:next-launcher 4406)
|
||||
(:rotate-y (degrees 0))
|
||||
(:rotate-z (degrees 0) (degrees 3600))
|
||||
)
|
||||
)
|
||||
|
||||
(defpartgroup group-precurd-bulb-green-glow-small
|
||||
:id 1310
|
||||
:bounds (static-bspherem 0 0 0 3)
|
||||
:parts ((sp-item 4407 :fade-after (meters 120) :flags (sp6)))
|
||||
)
|
||||
|
||||
(defpart 4407
|
||||
:init-specs ((:texture (glow-soft level-default-sprite))
|
||||
(:num 1.0)
|
||||
(:scale-x (meters 5) (meters 0.1))
|
||||
(:rot-x (degrees 9))
|
||||
(:rot-z (degrees -17))
|
||||
(:scale-y :copy scale-x)
|
||||
(:r 0.0)
|
||||
(:g 128.0)
|
||||
(:b 0.0)
|
||||
(:a 40.0 4.0)
|
||||
(:omega (degrees 2715.75))
|
||||
(:timer (seconds 0.017))
|
||||
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow))
|
||||
(:userdata 819.2)
|
||||
)
|
||||
)
|
||||
|
||||
(defpartgroup group-precurd-bulb-green-glow-long
|
||||
:id 1311
|
||||
:bounds (static-bspherem 0 0 0 3)
|
||||
:parts ((sp-item 4408 :fade-after (meters 120) :flags (sp6)))
|
||||
)
|
||||
|
||||
(defpart 4409
|
||||
:init-specs ((:texture (glow-soft level-default-sprite))
|
||||
(:num 1.0)
|
||||
(:scale-x (meters 10) (meters 0.1))
|
||||
(:rot-x (degrees 9))
|
||||
(:rot-z (degrees -17))
|
||||
(:scale-y :copy scale-x)
|
||||
(:r 0.0)
|
||||
(:g 128.0)
|
||||
(:b 0.0)
|
||||
(:a 40.0 4.0)
|
||||
(:omega (degrees 2715.75))
|
||||
(:timer (seconds 0.017))
|
||||
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow))
|
||||
(:userdata 819.2)
|
||||
)
|
||||
)
|
||||
|
||||
(defpartgroup group-precurd-bulb-ceiling-glow
|
||||
:id 1312
|
||||
:bounds (static-bspherem 0 0 0 3)
|
||||
:parts ((sp-item 4410 :fade-after (meters 120) :flags (sp6)))
|
||||
)
|
||||
|
||||
(defpart 4410
|
||||
:init-specs ((:texture (glow-soft level-default-sprite))
|
||||
(:num 1.0)
|
||||
(:scale-x (meters 22) (meters 2))
|
||||
(:rot-x (degrees 9))
|
||||
(:rot-z (degrees -17))
|
||||
(:scale-y :copy scale-x)
|
||||
(:r 0.0)
|
||||
(:g 128.0)
|
||||
(:b 128.0)
|
||||
(:a 40.0 4.0)
|
||||
(:omega (degrees 2715.75))
|
||||
(:timer (seconds 0.017))
|
||||
(:flags (sp-cpuinfo-flag-2 sp-cpuinfo-flag-3 glow))
|
||||
(:userdata 819.2)
|
||||
)
|
||||
)
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -7,3 +7,211 @@
|
||||
|
||||
;; DECOMP BEGINS
|
||||
|
||||
(define *default-prim-beam-appearance* (new 'static 'prim-beam-settings
|
||||
:width 4096.0
|
||||
:color (new 'static 'rgba :r #xff :g #xff :a #x80)
|
||||
:alpha 0.5
|
||||
:tex-id #x100300
|
||||
:num-tiles 1.0
|
||||
)
|
||||
)
|
||||
|
||||
(deftype prim-beam (process-drawable)
|
||||
((strip prim-strip)
|
||||
(pos0 vector :inline)
|
||||
(pos1 vector :inline)
|
||||
(appearance prim-beam-settings :inline)
|
||||
(duration time-frame :offset 272)
|
||||
)
|
||||
(:state-methods
|
||||
active
|
||||
hidden
|
||||
)
|
||||
(:methods
|
||||
(prim-beam-method-22 (_type_) none)
|
||||
(prim-beam-method-23 (_type_) none)
|
||||
(prim-beam-method-24 (_type_) none)
|
||||
(init-strip! (_type_) none)
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
;; WARN: Return type mismatch object vs none.
|
||||
(defmethod prim-beam-method-22 ((this prim-beam))
|
||||
(set! (-> this strip)
|
||||
(new 'process 'prim-strip 4 (the-as texture-id (-> this appearance tex-id)) (the-as string #f))
|
||||
)
|
||||
(set! (-> this strip bucket) (bucket-id generic-sprite-1))
|
||||
(set! (-> this strip sink) (the-as uint 65))
|
||||
(set! (-> this root) (new 'process 'trsqv))
|
||||
(go (method-of-object this active))
|
||||
(none)
|
||||
)
|
||||
|
||||
(defstate active (prim-beam)
|
||||
:virtual #t
|
||||
:event (behavior ((proc process) (argc int) (message symbol) (block event-message-block))
|
||||
(case message
|
||||
(('hide)
|
||||
(go-virtual hidden)
|
||||
)
|
||||
(('die)
|
||||
(go empty-state)
|
||||
)
|
||||
)
|
||||
)
|
||||
:enter (behavior ()
|
||||
(init-strip! self)
|
||||
(set-time! (-> self state-time))
|
||||
)
|
||||
:trans (behavior ()
|
||||
(prim-beam-method-24 self)
|
||||
(if (and (> (-> self duration) 0) (time-elapsed? (-> self state-time) (-> self duration)))
|
||||
(go empty-state)
|
||||
)
|
||||
)
|
||||
:code sleep-code
|
||||
)
|
||||
|
||||
(defstate hidden (prim-beam)
|
||||
:virtual #t
|
||||
:event (behavior ((proc process) (argc int) (message symbol) (block event-message-block))
|
||||
(case message
|
||||
(('show)
|
||||
(go-virtual active)
|
||||
)
|
||||
(('die)
|
||||
(go empty-state)
|
||||
)
|
||||
)
|
||||
)
|
||||
:enter (behavior ()
|
||||
(set! (-> self strip num-verts) (the-as uint 0))
|
||||
0
|
||||
)
|
||||
:code sleep-code
|
||||
)
|
||||
|
||||
;; WARN: Return type mismatch symbol vs none.
|
||||
(defmethod prim-beam-method-24 ((this prim-beam))
|
||||
(let ((s3-0 (-> this strip data))
|
||||
(s5-0 (new 'stack-no-clear 'vector))
|
||||
(v1-1 (camera-pos))
|
||||
(s4-0 (new 'stack-no-clear 'vector))
|
||||
(s2-0 (new 'stack-no-clear 'vector))
|
||||
(s1-0 (new 'stack-no-clear 'vector))
|
||||
(f30-0 (-> this appearance width))
|
||||
)
|
||||
(set! (-> s5-0 quad) (-> this pos0 quad))
|
||||
(vector-! s1-0 (-> this pos1) (-> this pos0))
|
||||
(vector-! s2-0 v1-1 s5-0)
|
||||
(set! (-> s2-0 quad) (-> (math-camera-matrix) fvec quad))
|
||||
(vector-cross! s4-0 s2-0 s1-0)
|
||||
(vector-normalize! s4-0 1.0)
|
||||
(vector+float*! s5-0 (-> this pos0) s4-0 f30-0)
|
||||
(set! (-> s3-0 0 pos quad) (-> s5-0 quad))
|
||||
(set! (-> s3-0 0 stq z) 0.0)
|
||||
(set! (-> s3-0 0 stq x) 0.0)
|
||||
(set! (-> s3-0 0 stq y) 0.0)
|
||||
(let ((v1-9 (-> s3-0 1)))
|
||||
(vector+float*! s5-0 (-> this pos0) s4-0 (- f30-0))
|
||||
(set! (-> v1-9 pos quad) (-> s5-0 quad))
|
||||
(set! (-> v1-9 stq z) 0.0)
|
||||
(set! (-> v1-9 stq x) 1.0)
|
||||
(set! (-> v1-9 stq y) 0.0)
|
||||
(let ((v1-10 (&+ v1-9 32)))
|
||||
(vector+float*! s5-0 (-> this pos1) s4-0 f30-0)
|
||||
(set! (-> v1-10 pos quad) (-> s5-0 quad))
|
||||
(set! (-> v1-10 stq z) 0.0)
|
||||
(set! (-> v1-10 stq x) 0.0)
|
||||
(set! (-> v1-10 stq y) (-> this appearance num-tiles))
|
||||
(let ((v1-11 (&+ v1-10 32)))
|
||||
(vector+float*! s5-0 (-> this pos1) s4-0 (- f30-0))
|
||||
(set! (-> v1-11 pos quad) (-> s5-0 quad))
|
||||
(set! (-> v1-11 stq z) 0.0)
|
||||
(set! (-> v1-11 stq x) 1.0)
|
||||
(set! (-> v1-11 stq y) (-> this appearance num-tiles))
|
||||
(&+ v1-11 32)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(let ((v1-14 (the-as object (-> this strip data))))
|
||||
(dotimes (a0-19 4)
|
||||
(set! (-> (the-as prim-vertex v1-14) col) (-> this appearance color))
|
||||
(set! (-> (the-as prim-vertex v1-14) col a) (the int (* 128.0 (-> this appearance alpha))))
|
||||
(set! v1-14 (&+ (the-as prim-vertex v1-14) 32))
|
||||
)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
|
||||
;; WARN: Return type mismatch uint vs none.
|
||||
(defmethod init-strip! ((this prim-beam))
|
||||
(set! (-> this strip clamp) (new 'static 'gs-clamp))
|
||||
(set! (-> this strip num-verts) (the-as uint 4))
|
||||
(set! (-> this strip alpha) *simple-prim-additive*)
|
||||
(set! (-> this strip adnops 0 cmds) (gs-reg64 test-1))
|
||||
(set! (-> this strip data0)
|
||||
(new 'static 'gs-test :ate #x1 :afail #x1 :zte #x1 :ztst (gs-ztest greater-equal))
|
||||
)
|
||||
(set! (-> this strip tex-id) (the-as texture-id (-> this appearance tex-id)))
|
||||
(none)
|
||||
)
|
||||
|
||||
(defmethod relocate ((this prim-beam) (offset int))
|
||||
(if (nonzero? (-> this strip))
|
||||
(&+! (-> this strip) offset)
|
||||
)
|
||||
(call-parent-method this offset)
|
||||
)
|
||||
|
||||
(deftype prim-beam-tracker (prim-beam)
|
||||
((track-obj1 handle)
|
||||
(track-obj2 handle)
|
||||
(track-joint1 int32)
|
||||
(track-joint2 int32)
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
(defmethod prim-beam-method-24 ((this prim-beam-tracker))
|
||||
(let ((v1-1 (the-as process-drawable (handle->process (-> this track-obj1)))))
|
||||
(if v1-1
|
||||
(vector<-cspace! (-> this pos0) (-> v1-1 node-list data (-> this track-joint1)))
|
||||
)
|
||||
)
|
||||
(let ((v1-5 (the-as process-drawable (handle->process (-> this track-obj2)))))
|
||||
(if v1-5
|
||||
(vector<-cspace! (-> this pos1) (-> v1-5 node-list data (-> this track-joint2)))
|
||||
)
|
||||
)
|
||||
(call-parent-method this)
|
||||
(none)
|
||||
)
|
||||
|
||||
;; WARN: Return type mismatch none vs object.
|
||||
(defbehavior prim-beam-tracker-init-by-other prim-beam-tracker ((arg0 prim-beam-tracker-params))
|
||||
(set! (-> self track-obj1) (-> arg0 track-obj1))
|
||||
(set! (-> self track-obj2) (-> arg0 track-obj2))
|
||||
(set! (-> self track-joint1) (-> arg0 track-joint1))
|
||||
(set! (-> self track-joint2) (-> arg0 track-joint2))
|
||||
(if (-> arg0 pos0)
|
||||
(set! (-> self pos0 quad) (-> arg0 pos0 quad))
|
||||
)
|
||||
(if (-> arg0 pos1)
|
||||
(set! (-> self pos1 quad) (-> arg0 pos1 quad))
|
||||
)
|
||||
(set! (-> self duration) (-> arg0 duration))
|
||||
(mem-copy! (the-as pointer (-> self appearance)) (the-as pointer (-> arg0 appearance)) 20)
|
||||
(prim-beam-method-22 self)
|
||||
)
|
||||
|
||||
;; WARN: Return type mismatch int vs handle.
|
||||
(defun spawn-prim-beam-tracker ((arg0 prim-beam-tracker-params) (arg1 symbol) (arg2 process))
|
||||
(if (not arg1)
|
||||
(set! arg1 '*default-prim-beam-appearance*)
|
||||
)
|
||||
(set! (-> arg0 appearance) (the-as prim-beam-settings (-> arg1 value)))
|
||||
(the-as handle (ppointer->handle (process-spawn prim-beam-tracker arg0 :name "prim-beam-tracker" :to arg2)))
|
||||
)
|
||||
|
File diff suppressed because it is too large
Load Diff
8
test/decompiler/reference/jak3/engine/common-obs/powerups_REF.gc
generated
vendored
8
test/decompiler/reference/jak3/engine/common-obs/powerups_REF.gc
generated
vendored
@ -1209,11 +1209,11 @@
|
||||
)
|
||||
(target-eco-process)
|
||||
(target-color-effect-process)
|
||||
(if (logtest? (-> self target-effect) 7)
|
||||
(if (logtest? (-> self target-effect) (target-effect te0 te1 te2))
|
||||
(logior! (-> self draw global-effect) (draw-control-global-effect no-textures))
|
||||
(logclear! (-> self draw global-effect) (draw-control-global-effect no-textures))
|
||||
)
|
||||
(if (logtest? (-> self target-effect) 56)
|
||||
(if (logtest? (-> self target-effect) (target-effect te3 te4 te5))
|
||||
(logior! (-> self draw global-effect) (draw-control-global-effect rim-lights))
|
||||
(logclear! (-> self draw global-effect) (draw-control-global-effect rim-lights))
|
||||
)
|
||||
@ -1303,7 +1303,3 @@
|
||||
0
|
||||
(none)
|
||||
)
|
||||
|
||||
|
||||
|
||||
|
||||
|
2
test/decompiler/reference/jak3/engine/common-obs/prim-h_REF.gc
generated
vendored
2
test/decompiler/reference/jak3/engine/common-obs/prim-h_REF.gc
generated
vendored
@ -65,7 +65,7 @@ These are owned by the thing submitting to prim, not the prim renderer itself."
|
||||
(alpha gs-alpha)
|
||||
(bucket bucket-id)
|
||||
(sink uint32)
|
||||
(level basic)
|
||||
(level level)
|
||||
(texture-index uint32)
|
||||
(data prim-vertex :inline :dynamic)
|
||||
)
|
||||
|
241
test/decompiler/reference/jak3/engine/common-obs/prim_REF.gc
generated
vendored
241
test/decompiler/reference/jak3/engine/common-obs/prim_REF.gc
generated
vendored
@ -70,8 +70,245 @@
|
||||
)
|
||||
|
||||
;; definition for method 9 of type prim-strip
|
||||
;; INFO: function output is handled by mips2c
|
||||
(defmethod-mips2c "(method 9 prim-strip)" 9 prim-strip)
|
||||
;; INFO: Used lq/sq
|
||||
;; WARN: Return type mismatch int vs none.
|
||||
(defmethod generate-dma! ((this prim-strip) (arg0 matrix))
|
||||
"Generate DMA for prim rendering."
|
||||
(local-vars
|
||||
(a3-6 uint128)
|
||||
(a3-13 uint128)
|
||||
(a3-14 uint128)
|
||||
(t0-13 uint128)
|
||||
(t0-14 uint128)
|
||||
(t1-4 uint128)
|
||||
(t1-5 uint128)
|
||||
(t2-0 uint128)
|
||||
(t2-1 uint128)
|
||||
)
|
||||
(rlet ((vf1 :class vf)
|
||||
(vf10 :class vf)
|
||||
(vf11 :class vf)
|
||||
(vf12 :class vf)
|
||||
(vf13 :class vf)
|
||||
(vf14 :class vf)
|
||||
(vf15 :class vf)
|
||||
(vf16 :class vf)
|
||||
(vf2 :class vf)
|
||||
(vf3 :class vf)
|
||||
(vf4 :class vf)
|
||||
(vf5 :class vf)
|
||||
(vf6 :class vf)
|
||||
(vf7 :class vf)
|
||||
(vf8 :class vf)
|
||||
(vf9 :class vf)
|
||||
)
|
||||
(let ((v1-5 (-> *display* frames (-> *display* on-screen) global-buf))
|
||||
(a0-4 (/ (+ (-> this num-verts) 79) (the-as uint 80)))
|
||||
)
|
||||
(cond
|
||||
((< (the-as uint (+ (* (the-as uint 144) (-> this num-verts)) (* a0-4 128)))
|
||||
(the-as uint (&- (-> v1-5 end) (the-as uint (-> v1-5 base))))
|
||||
)
|
||||
(let* ((a1-5 (lookup-texture-by-id (-> this tex-id)))
|
||||
(s3-0 *prim-work*)
|
||||
(s2-0 (-> s3-0 sinks (-> this sink)))
|
||||
(s4-0 (-> *display* frames (-> *display* on-screen) global-buf))
|
||||
(s5-0 (-> s4-0 base))
|
||||
)
|
||||
(set! (-> s3-0 in-verts) (the-as int (-> this num-verts)))
|
||||
(set! (-> s3-0 vert-ptr) (-> this data))
|
||||
(let ((v1-20 (if (logtest? (-> this flags) (prim-flags alpha-blend-enable))
|
||||
1
|
||||
0
|
||||
)
|
||||
)
|
||||
(a0-11 (if (logtest? (-> this flags) (prim-flags texture-enable))
|
||||
1
|
||||
0
|
||||
)
|
||||
)
|
||||
(a2-3 (if (logtest? (-> this flags) (prim-flags fog-enable))
|
||||
1
|
||||
0
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! (-> s3-0 giftag fan-prim)
|
||||
(new 'static 'gif-tag-prim
|
||||
:pre #x1
|
||||
:nreg #x3
|
||||
:prim (new 'static 'gs-prim :prim (gs-prim-type tri-fan) :iip #x1 :abe v1-20 :tme a0-11 :fge a2-3)
|
||||
)
|
||||
)
|
||||
(set! (-> s3-0 giftag str-prim)
|
||||
(new 'static 'gif-tag-prim
|
||||
:pre #x1
|
||||
:nreg #x3
|
||||
:prim (new 'static 'gs-prim :prim (gs-prim-type tri-strip) :iip #x1 :abe v1-20 :tme a0-11 :fge a2-3)
|
||||
)
|
||||
)
|
||||
)
|
||||
(when a1-5
|
||||
(let ((v1-28 (-> this level)))
|
||||
(-> this texture-index)
|
||||
(let ((a0-17 (+ (-> this texture-index) 12)))
|
||||
(dotimes (a2-7 3)
|
||||
(let ((a3-5 (-> v1-28 texture-mask a0-17 mask quad))
|
||||
(t0-9 (-> a1-5 masks data a2-7 mask quad))
|
||||
)
|
||||
(.por a3-6 a3-5 t0-9)
|
||||
)
|
||||
(set! (-> v1-28 texture-mask a0-17 mask quad) a3-6)
|
||||
)
|
||||
)
|
||||
)
|
||||
(adgif-shader<-texture-simple! (-> s3-0 shader) a1-5)
|
||||
(set! (-> s3-0 shader clamp) (-> this clamp))
|
||||
(set! (-> s3-0 shader clamp-reg) (gs-reg64 clamp-1))
|
||||
(set! (-> s3-0 shader alpha) (the-as gs-miptbp (-> this alpha)))
|
||||
(set! (-> s3-0 shader reg-4) (gs-reg alpha-1))
|
||||
(.lvf vf1 (&-> arg0 rvec quad))
|
||||
(.lvf vf2 (&-> arg0 uvec quad))
|
||||
(.lvf vf3 (&-> arg0 fvec quad))
|
||||
(.lvf vf4 (&-> arg0 trans quad))
|
||||
(.lvf vf5 (&-> s3-0 shader quad 0 quad))
|
||||
(.lvf vf6 (&-> s3-0 shader quad 1 quad))
|
||||
(.lvf vf7 (&-> s3-0 shader quad 2 quad))
|
||||
(.lvf vf8 (&-> s3-0 shader quad 3 quad))
|
||||
(.lvf vf9 (&-> s3-0 shader quad 4 quad))
|
||||
(.lvf vf10 (&-> s3-0 giftag qword quad))
|
||||
(.lvf vf11 (&-> this adnops 0 quad))
|
||||
(.lvf vf12 (&-> this adnops 1 quad))
|
||||
(while (< 2 (-> s3-0 in-verts))
|
||||
(set! (-> s3-0 num-verts) (min 80 (-> s3-0 in-verts)))
|
||||
(let* ((a0-20 (-> s3-0 control-tmpl (logand (-> s2-0 control-count) 1)))
|
||||
(v1-41 (-> s4-0 base))
|
||||
(a0-21 (-> a0-20 quad))
|
||||
(a1-6 (the-as object (&+ v1-41 16)))
|
||||
(v1-42 (-> s3-0 num-verts))
|
||||
)
|
||||
(set! (-> (the-as (pointer uint128) a1-6) -1) a0-21)
|
||||
(.svf (&-> (the-as (inline-array prim-vertex) a1-6) 0 stq quad) vf1)
|
||||
(.svf (&-> (the-as (inline-array prim-vertex) a1-6) 0 pos quad) vf2)
|
||||
(.svf (&-> (the-as (inline-array prim-vertex) a1-6) 1 stq quad) vf3)
|
||||
(.svf (&-> (the-as (inline-array prim-vertex) a1-6) 1 pos quad) vf4)
|
||||
(.svf (&-> (the-as (inline-array prim-vertex) a1-6) 2 stq quad) vf10)
|
||||
(.svf (&-> (the-as (inline-array prim-vertex) a1-6) 2 pos quad) vf11)
|
||||
(.svf (&-> (the-as (inline-array prim-vertex) a1-6) 3 stq quad) vf12)
|
||||
(set! (-> (the-as (inline-array prim-vertex) a1-6) 2 pos w) (the-as float v1-42))
|
||||
(.svf (&-> (the-as (inline-array prim-vertex) a1-6) 3 pos quad) vf5)
|
||||
(.svf (&-> (the-as (inline-array prim-vertex) a1-6) 4 stq quad) vf6)
|
||||
(.svf (&-> (the-as (inline-array prim-vertex) a1-6) 4 pos quad) vf7)
|
||||
(.svf (&-> (the-as (inline-array prim-vertex) a1-6) 5 stq quad) vf8)
|
||||
(.svf (&-> (the-as (inline-array prim-vertex) a1-6) 5 pos quad) vf9)
|
||||
(set! (-> (the-as (inline-array prim-vertex) a1-6) 4 col) (the-as rgba (logior v1-42 #x8000)))
|
||||
(set! (-> s4-0 base) (the-as pointer (-> (the-as (inline-array prim-vertex) a1-6) 6)))
|
||||
(let ((a0-28 (-> s3-0 vertex-tmpl (mod (-> s2-0 vertex-count) (the-as uint 3)))))
|
||||
(let ((a1-9 (* 3 v1-42)))
|
||||
(set! (-> a0-28 dma qwc) a1-9)
|
||||
(set! (-> a0-28 vif1 num) a1-9)
|
||||
)
|
||||
(let ((a2-13 (the-as object (-> s4-0 base)))
|
||||
(a3-11 (-> a0-28 quad))
|
||||
(a0-29 (-> s3-0 mask quad))
|
||||
(a1-13 (-> s3-0 vert-ptr))
|
||||
)
|
||||
(nop!)
|
||||
(set! (-> (the-as (inline-array prim-vertex) a2-13) 0 stq quad) a3-11)
|
||||
(let ((a2-14 (the-as (object object) (-> (the-as (inline-array prim-vertex) a2-13) 0 pos))))
|
||||
(set! (-> s4-0 base) (the-as pointer a2-14))
|
||||
(nop!)
|
||||
(label cfg-16)
|
||||
(nop!)
|
||||
(let ((t0-12 (the-as uint128 (-> a1-13 0 stq w))))
|
||||
(nop!)
|
||||
(let ((a3-12 (the-as uint128 (-> a1-13 1 stq w))))
|
||||
(.pextlb t0-13 0 t0-12)
|
||||
(.lvf vf15 (&-> a1-13 0 stq quad))
|
||||
(.pextlh t0-14 0 t0-13)
|
||||
(.lvf vf16 (&-> a1-13 1 stq quad))
|
||||
(.pextlb a3-13 0 a3-12)
|
||||
)
|
||||
)
|
||||
(.lvf vf13 (&-> a1-13 0 pos quad))
|
||||
(.pextlh a3-14 0 a3-13)
|
||||
(.lvf vf14 (&-> a1-13 1 pos quad))
|
||||
(vftoi12.xyzw vf15 vf15)
|
||||
(set! (-> (the-as (inline-array prim-vertex) a2-14) 0 pos quad) t0-14)
|
||||
(vftoi12.xyzw vf16 vf16)
|
||||
(set! (-> (the-as (inline-array prim-vertex) a2-14) 2 stq quad) a3-14)
|
||||
(nop!)
|
||||
(let ((t0-15 (the-as number (-> a1-13 0 stq z))))
|
||||
(nop!)
|
||||
(let ((a3-15 (the-as number (-> a1-13 1 stq z))))
|
||||
(set! a1-13 (the-as (inline-array prim-vertex) (-> a1-13 2)))
|
||||
(.mov t2-0 vf15)
|
||||
(+! v1-42 -2)
|
||||
(.mov t1-4 vf16)
|
||||
(.pand t2-1 t2-0 a0-29)
|
||||
(.svf (&-> (the-as (inline-array prim-vertex) a2-14) 1 stq quad) vf13)
|
||||
(.pand t1-5 t1-4 a0-29)
|
||||
(.svf (&-> (the-as (inline-array prim-vertex) a2-14) 2 pos quad) vf14)
|
||||
(let ((t0-16 (logior (the-as int t2-1) (the-as int t0-15))))
|
||||
(nop!)
|
||||
(let ((a3-16 (logior (the-as int t1-5) (the-as int a3-15))))
|
||||
(nop!)
|
||||
(set! (-> (the-as (inline-array prim-vertex) a2-14) 0 stq quad) (the-as uint128 t0-16))
|
||||
(set! a2-14 (the-as (object object) (-> (the-as (inline-array prim-vertex) a2-14) 3)))
|
||||
(b! (> v1-42 0) cfg-16 :delay (set! (-> (the-as (pointer uint128) a2-14) -3) (the-as uint128 a3-16)))
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(&+! (-> s4-0 base) (* 48 (-> s3-0 num-verts)))
|
||||
(set! (-> (the-as (pointer uint128) (-> s4-0 base))) (-> s3-0 call-scissor quad))
|
||||
(&+! (-> s4-0 base) 16)
|
||||
(+! (-> s3-0 in-verts) -78)
|
||||
(set! (-> s3-0 vert-ptr) (the-as (inline-array prim-vertex) (-> s3-0 vert-ptr 78)))
|
||||
(+! (-> s2-0 vertex-count) 1)
|
||||
(+! (-> s2-0 control-count) 1)
|
||||
)
|
||||
)
|
||||
(when (not (paused?))
|
||||
(when (logtest? (-> this flags) (prim-flags pf3))
|
||||
(when (not (logtest? (-> this flags) (prim-flags pf4)))
|
||||
(set! (-> this num-verts) (the-as uint 0))
|
||||
0
|
||||
)
|
||||
(logclear! (-> this flags) (prim-flags pf4))
|
||||
)
|
||||
)
|
||||
(let ((a3-17 (-> s4-0 base)))
|
||||
(when (!= s5-0 a3-17)
|
||||
(let ((v1-69 (the-as object (-> s4-0 base))))
|
||||
(set! (-> (the-as dma-packet v1-69) dma) (new 'static 'dma-tag :id (dma-tag-id next)))
|
||||
(set! (-> (the-as dma-packet v1-69) vif0) (new 'static 'vif-tag))
|
||||
(set! (-> (the-as dma-packet v1-69) vif1) (new 'static 'vif-tag))
|
||||
(set! (-> s4-0 base) (&+ (the-as pointer v1-69) 16))
|
||||
)
|
||||
(dma-bucket-insert-tag
|
||||
(-> *display* frames (-> *display* on-screen) bucket-group)
|
||||
(-> this bucket)
|
||||
s5-0
|
||||
(the-as (pointer dma-tag) a3-17)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(else
|
||||
(format *stdcon* "Out of DMA buffer for prim rendering~%")
|
||||
)
|
||||
)
|
||||
)
|
||||
0
|
||||
(none)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for method 10 of type prim-strip
|
||||
;; WARN: Return type mismatch int vs none.
|
||||
|
38
test/decompiler/reference/jak3/engine/gfx/sprite/particles/sparticle-h_REF.gc
generated
vendored
38
test/decompiler/reference/jak3/engine/gfx/sprite/particles/sparticle-h_REF.gc
generated
vendored
@ -11,25 +11,25 @@
|
||||
(adgif adgif-shader)
|
||||
(radius float)
|
||||
(omega float)
|
||||
(vel-sxvel vector :inline)
|
||||
(rot-syvel vector :inline)
|
||||
(fade rgbaf :inline)
|
||||
(acc vector :inline)
|
||||
(rotvel3d quaternion :inline)
|
||||
(vel vector3s :inline :overlay-at (-> vel-sxvel data 0))
|
||||
(accel vector3s :inline :overlay-at (-> acc data 0))
|
||||
(scalevelx float :overlay-at (-> vel-sxvel data 3))
|
||||
(scalevely float :overlay-at (-> rot-syvel data 3))
|
||||
(vel-sxvel vector :inline)
|
||||
(rot-syvel vector :inline)
|
||||
(fade rgbaf :inline)
|
||||
(acc vector :inline)
|
||||
(rotvel3d quaternion :inline)
|
||||
(vel vector3s :inline :overlay-at (-> vel-sxvel data 0))
|
||||
(accel vector3s :inline :overlay-at (-> acc data 0))
|
||||
(scalevelx float :overlay-at (-> vel-sxvel data 3))
|
||||
(scalevely float :overlay-at (-> rot-syvel data 3))
|
||||
(friction float)
|
||||
(timer int32)
|
||||
(flags sp-cpuinfo-flag)
|
||||
(flags-s32 int32 :overlay-at flags)
|
||||
(flags-s32 sp-cpuinfo-flag-s32 :overlay-at flags)
|
||||
(user-int32 int32)
|
||||
(user-uint32 uint32 :overlay-at user-int32)
|
||||
(user-float float :overlay-at user-int32)
|
||||
(user-pntr uint32 :overlay-at user-int32)
|
||||
(user-object basic :overlay-at user-int32)
|
||||
(user-sprite sprite-vec-data-2d :overlay-at user-int32)
|
||||
(user-uint32 uint32 :overlay-at user-int32)
|
||||
(user-float float :overlay-at user-int32)
|
||||
(user-pntr uint32 :overlay-at user-int32)
|
||||
(user-object basic :overlay-at user-int32)
|
||||
(user-sprite sprite-vec-data-2d :overlay-at user-int32)
|
||||
(sp-func (function sparticle-system sparticle-cpuinfo sprite-vec-data-3d uint none))
|
||||
(next-time uint32)
|
||||
(next-launcher basic)
|
||||
@ -39,10 +39,10 @@
|
||||
(user1-int16 uint16)
|
||||
(key sparticle-launch-control)
|
||||
(binding sparticle-launch-state)
|
||||
(data uint32 1 :overlay-at omega)
|
||||
(datab int8 4 :overlay-at omega)
|
||||
(dataf float 1 :overlay-at omega)
|
||||
(datac uint8 1 :overlay-at omega)
|
||||
(data uint32 1 :overlay-at omega)
|
||||
(datab int8 4 :overlay-at omega)
|
||||
(dataf float 1 :overlay-at omega)
|
||||
(datac uint8 1 :overlay-at omega)
|
||||
)
|
||||
)
|
||||
|
||||
|
16
test/decompiler/reference/jak3/engine/gfx/sprite/particles/sparticle-launcher_REF.gc
generated
vendored
16
test/decompiler/reference/jak3/engine/gfx/sprite/particles/sparticle-launcher_REF.gc
generated
vendored
@ -1033,10 +1033,10 @@
|
||||
(let* ((a1-1 (-> arg2 flags-s32))
|
||||
(v1-1 -2)
|
||||
(a0-1 (-> arg3 r-g-b-a x))
|
||||
(a1-2 (logand a1-1 #x4000))
|
||||
(a1-2 (logand a1-1 (sp-cpuinfo-flag-s32 sp-cpuinfo-flag-14)))
|
||||
)
|
||||
1
|
||||
(let ((a1-3 (sar a1-2 14)))
|
||||
(let ((a1-3 (sar (the-as int a1-2) 14)))
|
||||
(set! (-> arg3 r-g-b-a x) (the-as float (logior (logand a0-1 (the-as uint v1-1)) a1-3)))
|
||||
)
|
||||
)
|
||||
@ -2334,9 +2334,9 @@
|
||||
(.mul.vf vf1 vf1 vf2)
|
||||
(.mov a0-5 vf1)
|
||||
)
|
||||
(let ((v1-16 (logand v1-15 #x4000)))
|
||||
(let ((v1-16 (logand v1-15 (sp-cpuinfo-flag-s32 sp-cpuinfo-flag-14))))
|
||||
(.mov t7-0 vf1)
|
||||
(let ((v1-17 (sar v1-16 14)))
|
||||
(let ((v1-17 (sar (the-as int v1-16) 14)))
|
||||
(set! (-> arg2 r-g-b-a quad) (the-as uint128 (logior (logand t7-0 (the-as uint -2)) v1-17)))
|
||||
)
|
||||
)
|
||||
@ -2371,9 +2371,9 @@
|
||||
(.mul.vf vf1 vf1 vf2)
|
||||
(.mov a0-11 vf1)
|
||||
)
|
||||
(let ((v1-30 (logand v1-29 #x4000)))
|
||||
(let ((v1-30 (logand v1-29 (sp-cpuinfo-flag-s32 sp-cpuinfo-flag-14))))
|
||||
(.mov t7-3 vf1)
|
||||
(let ((v1-31 (sar v1-30 14)))
|
||||
(let ((v1-31 (sar (the-as int v1-30) 14)))
|
||||
(set! (-> arg2 r-g-b-a quad) (the-as uint128 (logior (logand t7-3 (the-as uint -2)) v1-31)))
|
||||
)
|
||||
)
|
||||
@ -3219,7 +3219,3 @@
|
||||
(none)
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
|
||||
|
||||
|
6
test/decompiler/reference/jak3/engine/target/board/board-util_REF.gc
generated
vendored
6
test/decompiler/reference/jak3/engine/target/board/board-util_REF.gc
generated
vendored
@ -52,7 +52,7 @@
|
||||
)
|
||||
)
|
||||
(if (or (logtest? (-> v1-0 draw status) (draw-control-status no-draw no-draw-temp no-draw-bounds no-draw-bounds2))
|
||||
(or (logtest? (-> v1-0 target-effect) 1) (zero? (-> v1-0 skel active-channels)))
|
||||
(or (logtest? (-> v1-0 target-effect) (target-effect te0)) (zero? (-> v1-0 skel active-channels)))
|
||||
)
|
||||
(logior! (-> self draw status) (draw-control-status no-draw))
|
||||
(logclear! (-> self draw status) (draw-control-status no-draw))
|
||||
@ -61,11 +61,11 @@
|
||||
(logior! (-> self draw status) (draw-control-status force-fade))
|
||||
(logclear! (-> self draw status) (draw-control-status force-fade))
|
||||
)
|
||||
(if (logtest? (-> v1-0 target-effect) 7)
|
||||
(if (logtest? (-> v1-0 target-effect) (target-effect te0 te1 te2))
|
||||
(logior! (-> self draw global-effect) (draw-control-global-effect no-textures))
|
||||
(logclear! (-> self draw global-effect) (draw-control-global-effect no-textures))
|
||||
)
|
||||
(if (logtest? (-> v1-0 target-effect) 56)
|
||||
(if (logtest? (-> v1-0 target-effect) (target-effect te3 te4 te5))
|
||||
(logior! (-> self draw global-effect) (draw-control-global-effect rim-lights))
|
||||
(logclear! (-> self draw global-effect) (draw-control-global-effect rim-lights))
|
||||
)
|
||||
|
6
test/decompiler/reference/jak3/engine/target/gun/gun-util_REF.gc
generated
vendored
6
test/decompiler/reference/jak3/engine/target/gun/gun-util_REF.gc
generated
vendored
@ -404,7 +404,7 @@
|
||||
(if (or (logtest? (-> (the-as target gp-0) draw status)
|
||||
(draw-control-status no-draw no-draw-temp no-draw-bounds no-draw-bounds2)
|
||||
)
|
||||
(or (logtest? (-> (the-as target gp-0) target-effect) 1)
|
||||
(or (logtest? (-> (the-as target gp-0) target-effect) (target-effect te0))
|
||||
(zero? (-> (the-as target gp-0) skel active-channels))
|
||||
)
|
||||
)
|
||||
@ -415,11 +415,11 @@
|
||||
(logior! (-> self draw status) (draw-control-status force-fade))
|
||||
(logclear! (-> self draw status) (draw-control-status force-fade))
|
||||
)
|
||||
(if (logtest? (-> (the-as target gp-0) target-effect) 7)
|
||||
(if (logtest? (-> (the-as target gp-0) target-effect) (target-effect te0 te1 te2))
|
||||
(logior! (-> self draw global-effect) (draw-control-global-effect no-textures))
|
||||
(logclear! (-> self draw global-effect) (draw-control-global-effect no-textures))
|
||||
)
|
||||
(if (logtest? (-> (the-as target gp-0) target-effect) 56)
|
||||
(if (logtest? (-> (the-as target gp-0) target-effect) (target-effect te3 te4 te5))
|
||||
(logior! (-> self draw global-effect) (draw-control-global-effect rim-lights))
|
||||
(logclear! (-> self draw global-effect) (draw-control-global-effect rim-lights))
|
||||
)
|
||||
|
2
test/decompiler/reference/jak3/engine/target/indax/target-indax_REF.gc
generated
vendored
2
test/decompiler/reference/jak3/engine/target/indax/target-indax_REF.gc
generated
vendored
@ -414,7 +414,7 @@
|
||||
(target-indax-reset)
|
||||
(cloth-post)
|
||||
(set! (-> self major-mode-exit-hook) target-indax-exit)
|
||||
(set! (-> self major-mode-event-hook) (the-as (function none :behavior target) target-indax-handler))
|
||||
(set! (-> self major-mode-event-hook) target-indax-handler)
|
||||
(set! (-> self major-mode-exit-hook) target-indax-reset)
|
||||
(set! (-> self indax pad) (add-setting! 'mode-sound-bank 'modeidax 0.0 0))
|
||||
(remove-exit)
|
||||
|
2
test/decompiler/reference/jak3/engine/target/logic-target_REF.gc
generated
vendored
2
test/decompiler/reference/jak3/engine/target/logic-target_REF.gc
generated
vendored
@ -1834,7 +1834,7 @@
|
||||
(logtest? (-> self control mod-surface flags) (surface-flag look-around))
|
||||
(not (focus-test? self edge-grab pole flut tube light board pilot dark))
|
||||
(-> *setting-control* user-current allow-look-around)
|
||||
(time-elapsed? (the-as int (-> self no-look-around-wait)) (seconds 0.05))
|
||||
(time-elapsed? (-> self no-look-around-wait) (seconds 0.05))
|
||||
(not (and (= (-> self control ground-pat material) (pat-material ice)) (< 4096.0 (-> self control ctrl-xz-vel)))
|
||||
)
|
||||
)
|
||||
|
2
test/decompiler/reference/jak3/engine/target/sidekick_REF.gc
generated
vendored
2
test/decompiler/reference/jak3/engine/target/sidekick_REF.gc
generated
vendored
@ -270,7 +270,7 @@
|
||||
(set! (-> self anim-seed) (-> self parent 0 anim-seed))
|
||||
(set! (-> self draw status) (-> self parent 0 draw status))
|
||||
(cond
|
||||
((logtest? (-> self parent 0 target-effect) 1)
|
||||
((logtest? (-> self parent 0 target-effect) (target-effect te0))
|
||||
(logior! (-> self draw status) (draw-control-status no-draw))
|
||||
(logior! (-> self draw global-effect) (draw-control-global-effect no-textures))
|
||||
)
|
||||
|
2
test/decompiler/reference/jak3/engine/target/target-darkjak_REF.gc
generated
vendored
2
test/decompiler/reference/jak3/engine/target/target-darkjak_REF.gc
generated
vendored
@ -976,7 +976,7 @@
|
||||
)
|
||||
)
|
||||
)
|
||||
(set-darkjak-texture-morph! (if (logtest? (-> self target-effect) 64)
|
||||
(set-darkjak-texture-morph! (if (logtest? (-> self target-effect) (target-effect te6))
|
||||
1.0
|
||||
f30-0
|
||||
)
|
||||
|
4
test/decompiler/reference/jak3/engine/target/target-death_REF.gc
generated
vendored
4
test/decompiler/reference/jak3/engine/target/target-death_REF.gc
generated
vendored
@ -187,7 +187,7 @@
|
||||
)
|
||||
)
|
||||
((and (logtest? (continue-flags race) (-> arg0 flags)) (!= (-> arg0 vehicle-type) 27))
|
||||
(set! (-> self mode-cache) (the-as basic 'pilot))
|
||||
(set! (-> self mode-cache) 'pilot)
|
||||
(set! (-> self mode-param1) (the-as handle #f))
|
||||
(set! (-> self mode-param2) (-> arg0 vehicle-type))
|
||||
(when (= (-> arg0 vehicle-type) 28)
|
||||
@ -487,7 +487,7 @@
|
||||
#f
|
||||
)
|
||||
(else
|
||||
(set! (-> self mode-cache) (the-as basic (-> block param 0)))
|
||||
(set! (-> self mode-cache) (the-as symbol (-> block param 0)))
|
||||
(set! (-> self mode-param1) (if (>= argc 2)
|
||||
(process->handle (the-as process (-> block param 1)))
|
||||
(the-as handle #f)
|
||||
|
12
test/decompiler/reference/jak3/engine/target/target-h_REF.gc
generated
vendored
12
test/decompiler/reference/jak3/engine/target/target-h_REF.gc
generated
vendored
@ -46,18 +46,18 @@
|
||||
(spool-anim spool-anim)
|
||||
(ambient-time time-frame)
|
||||
(fp-hud handle)
|
||||
(no-load-wait uint64)
|
||||
(no-look-around-wait uint64)
|
||||
(no-load-wait time-frame)
|
||||
(no-look-around-wait time-frame)
|
||||
(burn-proc handle)
|
||||
(pre-joint-hook (function none :behavior target))
|
||||
(notify handle)
|
||||
(death-resetter resetter-spec :inline)
|
||||
(mode-cache basic)
|
||||
(mode-cache symbol)
|
||||
(mode-param1 handle)
|
||||
(mode-param2 uint64)
|
||||
(mode-param3 uint64)
|
||||
(major-mode-exit-hook (function none :behavior target))
|
||||
(major-mode-event-hook (function none :behavior target))
|
||||
(major-mode-event-hook (function process int symbol event-message-block object :behavior target))
|
||||
(sub-mode-exit-hook (function none :behavior target))
|
||||
(ext-geo-control external-art-buffer)
|
||||
(pending-ext-geo target-geo)
|
||||
@ -68,8 +68,8 @@
|
||||
(tobot-state state)
|
||||
(tobot? symbol)
|
||||
(tobot-recorder basic)
|
||||
(target-effect uint64)
|
||||
(color-effect basic)
|
||||
(target-effect target-effect)
|
||||
(color-effect symbol)
|
||||
(color-effect-start-time time-frame)
|
||||
(color-effect-duration time-frame)
|
||||
(racer racer-info)
|
||||
|
8
test/decompiler/reference/jak3/engine/target/target-handler_REF.gc
generated
vendored
8
test/decompiler/reference/jak3/engine/target/target-handler_REF.gc
generated
vendored
@ -894,7 +894,7 @@
|
||||
(target-powerup-effect (the-as symbol (-> arg3 param 0)))
|
||||
)
|
||||
(('color-effect)
|
||||
(set! (-> self color-effect) (the-as basic (-> arg3 param 0)))
|
||||
(set! (-> self color-effect) (the-as symbol (-> arg3 param 0)))
|
||||
(set-time! (-> self color-effect-start-time))
|
||||
(set! v0-0 (-> arg3 param 1))
|
||||
(set! (-> self color-effect-duration) (the-as time-frame v0-0))
|
||||
@ -1113,11 +1113,11 @@
|
||||
)
|
||||
(('no-load-wait)
|
||||
(set! v0-0 (+ (current-time) (the-as time-frame (-> arg3 param 0))))
|
||||
(set! (-> self no-load-wait) (the-as uint v0-0))
|
||||
(set! (-> self no-load-wait) (the-as time-frame v0-0))
|
||||
v0-0
|
||||
)
|
||||
(('no-look-around)
|
||||
(set! (-> self no-look-around-wait) (the-as uint (+ (current-time) (the-as time-frame (-> arg3 param 0)))))
|
||||
(set! (-> self no-look-around-wait) (+ (current-time) (the-as time-frame (-> arg3 param 0))))
|
||||
(if (and (-> self next-state) (= (-> self next-state name) 'target-look-around))
|
||||
(send-event self 'end-mode 'in-head)
|
||||
)
|
||||
@ -1267,7 +1267,7 @@
|
||||
)
|
||||
(or (logtest? (-> self target-flags) (target-flags tf1))
|
||||
(focus-test? self dead dangerous hit grabbed in-head edge-grab pole flut tube board pilot mech)
|
||||
(>= (the-as time-frame (-> self no-load-wait)) (current-time))
|
||||
(>= (-> self no-load-wait) (current-time))
|
||||
)
|
||||
)
|
||||
)
|
||||
|
8
test/decompiler/reference/jak3/engine/target/target-invisible_REF.gc
generated
vendored
8
test/decompiler/reference/jak3/engine/target/target-invisible_REF.gc
generated
vendored
@ -219,18 +219,18 @@
|
||||
(-> self invisible-interp)
|
||||
)
|
||||
(set! (-> self draw shadow-ctrl settings shadow-dir w) (-> self invisible-shadow-dir-backup w))
|
||||
(logand! (-> self target-effect) -2)
|
||||
(logclear! (-> self target-effect) (target-effect te0))
|
||||
(if (= (-> self invisible-interp) 1.0)
|
||||
(logior! (-> self target-effect) 1)
|
||||
(logior! (-> self target-effect) (target-effect te0))
|
||||
)
|
||||
(if (and (time-elapsed? (-> self invisible-start-time) (+ (-> self invisible-duration) (seconds -2)))
|
||||
(< (mod (- (current-time) (-> self invisible-start-time)) 60) 30)
|
||||
)
|
||||
(logand! (-> self target-effect) -2)
|
||||
(logclear! (-> self target-effect) (target-effect te0))
|
||||
)
|
||||
)
|
||||
((!= (-> self invisible-interp) 0.0)
|
||||
(logand! (-> self target-effect) -2)
|
||||
(logclear! (-> self target-effect) (target-effect te0))
|
||||
(seek! (-> self invisible-interp) 0.0 (* 0.5 (seconds-per-frame)))
|
||||
)
|
||||
)
|
||||
|
10
test/decompiler/reference/jak3/engine/target/target-lightjak_REF.gc
generated
vendored
10
test/decompiler/reference/jak3/engine/target/target-lightjak_REF.gc
generated
vendored
@ -1166,8 +1166,8 @@
|
||||
(let ((f30-0 (-> self lightjak-interp)))
|
||||
(cond
|
||||
((< 0.0 f30-0)
|
||||
(logior! (-> self target-effect) 2)
|
||||
(logior! (-> self target-effect) 16)
|
||||
(logior! (-> self target-effect) (target-effect te1))
|
||||
(logior! (-> self target-effect) (target-effect te4))
|
||||
(sound-play-by-name
|
||||
(static-sound-name "ltjak-chill")
|
||||
(the-as sound-id (-> self lightjak tone))
|
||||
@ -1179,7 +1179,7 @@
|
||||
)
|
||||
)
|
||||
(else
|
||||
(when (logtest? (-> self target-effect) 2)
|
||||
(when (logtest? (-> self target-effect) (target-effect te1))
|
||||
(let ((v1-14 (get-status *gui-control* (the-as sound-id (-> self lightjak on-off)))))
|
||||
(cond
|
||||
((= v1-14 (gui-status ready))
|
||||
@ -1248,8 +1248,8 @@
|
||||
(part-tracker-spawn part-tracker :to self :group (-> *part-group-id-table* 176) :target self :mat-joint 6)
|
||||
)
|
||||
)
|
||||
(logand! (-> self target-effect) -3)
|
||||
(logand! (-> self target-effect) -17)
|
||||
(logclear! (-> self target-effect) (target-effect te1))
|
||||
(logclear! (-> self target-effect) (target-effect te4))
|
||||
)
|
||||
)
|
||||
(when (and (< 0.0 f30-0) (and (not (focus-test? self in-head))
|
||||
|
2
test/decompiler/reference/jak3/engine/target/target-tube_REF.gc
generated
vendored
2
test/decompiler/reference/jak3/engine/target/target-tube_REF.gc
generated
vendored
@ -506,7 +506,7 @@
|
||||
)
|
||||
)
|
||||
((-> self major-mode-event-hook)
|
||||
((-> self major-mode-event-hook))
|
||||
((-> self major-mode-event-hook) proc argc message block)
|
||||
)
|
||||
(else
|
||||
(target-generic-event-handler proc argc message block)
|
||||
|
6
test/decompiler/reference/jak3/engine/target/target2_REF.gc
generated
vendored
6
test/decompiler/reference/jak3/engine/target/target2_REF.gc
generated
vendored
@ -1229,7 +1229,7 @@
|
||||
(defstate target-eco-powerup (target)
|
||||
:event target-standard-event-handler
|
||||
:exit (behavior ()
|
||||
(logand! (-> self target-effect) -101)
|
||||
(logclear! (-> self target-effect) (target-effect te2 te5 te6))
|
||||
(target-exit)
|
||||
)
|
||||
:trans (behavior ()
|
||||
@ -1238,10 +1238,10 @@
|
||||
:code (behavior ((arg0 int) (arg1 float))
|
||||
(case arg0
|
||||
((8)
|
||||
(logior! (-> self target-effect) 36)
|
||||
(logior! (-> self target-effect) (target-effect te2 te5))
|
||||
)
|
||||
((7)
|
||||
(logior! (-> self target-effect) 64)
|
||||
(logior! (-> self target-effect) (target-effect te6))
|
||||
)
|
||||
)
|
||||
(set! (-> self neck flex-blend) 0.0)
|
||||
|
24
test/decompiler/reference/jak3/engine/ui/minimap_REF.gc
generated
vendored
24
test/decompiler/reference/jak3/engine/ui/minimap_REF.gc
generated
vendored
@ -1738,13 +1738,7 @@
|
||||
)
|
||||
)
|
||||
(when s3-0
|
||||
(let* ((s2-2 s5-0)
|
||||
(s1-0 (method-of-object s2-2 trail-graph-method-29))
|
||||
)
|
||||
(target-pos 0)
|
||||
(-> s4-0 cached-info)
|
||||
(s1-0 s2-2)
|
||||
)
|
||||
(trail-graph-method-29 s5-0 (target-pos 0) s3-0 (-> s4-0 cached-info))
|
||||
(set! (-> s4-0 search-id) (-> s5-0 search-id))
|
||||
)
|
||||
)
|
||||
@ -1754,15 +1748,9 @@
|
||||
(countdown (v1-33 6)
|
||||
(let ((s4-1 (-> this trail v1-33)))
|
||||
(when (and (= (-> s4-1 search-id) (-> s5-0 search-id)) (-> s4-1 used-by))
|
||||
(let* ((a0-29 s5-0)
|
||||
(t9-5 (method-of-object a0-29 trail-graph-method-21))
|
||||
)
|
||||
(-> s4-1 node-id)
|
||||
64
|
||||
(&-> s4-1 goal-node-id)
|
||||
(&-> s4-1 node-path-dist)
|
||||
(set! (-> s4-1 node-count) (the-as int (t9-5 a0-29)))
|
||||
)
|
||||
(set! (-> s4-1 node-count)
|
||||
(trail-graph-method-21 s5-0 (-> s4-1 node-id) 64 (&-> s4-1 goal-node-id) (&-> s4-1 node-path-dist))
|
||||
)
|
||||
(set! (-> s4-1 last-updated) (the-as uint (current-time)))
|
||||
(goto cfg-64)
|
||||
)
|
||||
@ -3997,7 +3985,3 @@
|
||||
)
|
||||
#t
|
||||
)
|
||||
|
||||
|
||||
|
||||
|
||||
|
2
test/decompiler/reference/jak3/levels/city/bombbot/bombbot_REF.gc
generated
vendored
2
test/decompiler/reference/jak3/levels/city/bombbot/bombbot_REF.gc
generated
vendored
@ -4012,7 +4012,6 @@
|
||||
|
||||
;; definition for function bombbot-init-by-other
|
||||
;; INFO: Used lq/sq
|
||||
;; WARN: Return type mismatch object vs none.
|
||||
(defbehavior bombbot-init-by-other bombbot ((arg0 bombbot-spawn-params))
|
||||
(stack-size-set! (-> self main-thread) 512)
|
||||
(set! (-> self city-path) (-> arg0 path))
|
||||
@ -4034,7 +4033,6 @@
|
||||
(set! (-> self shoot-duration) 1.0)
|
||||
(set! (-> self draw light-index) (the-as uint 10))
|
||||
(go-virtual hostile)
|
||||
(none)
|
||||
)
|
||||
|
||||
;; definition for method 84 of type bombbot
|
||||
|
2125
test/decompiler/reference/jak3/levels/city/common/trail-graph_REF.gc
generated
vendored
Normal file
2125
test/decompiler/reference/jak3/levels/city/common/trail-graph_REF.gc
generated
vendored
Normal file
File diff suppressed because it is too large
Load Diff
54
test/decompiler/reference/jak3/levels/city/common/trail-h_REF.gc
generated
vendored
54
test/decompiler/reference/jak3/levels/city/common/trail-h_REF.gc
generated
vendored
@ -18,7 +18,7 @@
|
||||
:pack-me
|
||||
(:methods
|
||||
(get-dist-score (_type_ vector) uint)
|
||||
(debug-draw (_type_ int) none)
|
||||
(debug-draw (_type_ int) symbol)
|
||||
(get-position (_type_ vector) vector)
|
||||
)
|
||||
)
|
||||
@ -230,7 +230,7 @@
|
||||
|
||||
;; definition of type trail-cached-start-pov
|
||||
(deftype trail-cached-start-pov (structure)
|
||||
((last-updated uint64)
|
||||
((last-updated time-frame)
|
||||
(pov-can-see-start uint64)
|
||||
(next-node-id int32)
|
||||
(start-pos vector :inline)
|
||||
@ -269,12 +269,12 @@
|
||||
(conn-mask uint8)
|
||||
(node (inline-array trail-node))
|
||||
(conn (inline-array trail-conn))
|
||||
(blocker uint32)
|
||||
(blocker (inline-array trail-blocker))
|
||||
(conn-ids (pointer uint16))
|
||||
(visgroup (inline-array trail-conn-hash-cell))
|
||||
(visnode-ids (pointer uint16))
|
||||
(conn-hash trail-conn-hash)
|
||||
(cell-pov-bit-arrays uint32)
|
||||
(cell-pov-bit-arrays (pointer uint64))
|
||||
(pov-can-see-goal uint64)
|
||||
(cached-start-pov trail-cached-start-pov :inline)
|
||||
(orig-start-pos vector :inline)
|
||||
@ -287,31 +287,31 @@
|
||||
(closed-bits vector16ub 2 :inline :overlay-at closed-quads)
|
||||
)
|
||||
(:methods
|
||||
(trail-graph-method-9 (_type_ int) none)
|
||||
(trail-graph-method-10 (_type_ int) none)
|
||||
(trail-graph-method-9 (_type_ int) int)
|
||||
(trail-graph-method-10 (_type_ int) symbol)
|
||||
(trail-graph-method-11 (_type_ int int) trail-node)
|
||||
(trail-graph-method-12 (_type_) none)
|
||||
(trail-graph-method-13 (_type_ vector vector) none)
|
||||
(debug-draw (_type_) none)
|
||||
(trail-graph-method-15 (_type_ int) none)
|
||||
(trail-graph-method-16 (_type_ int (pointer uint16) vector vector rgba float) none)
|
||||
(trail-graph-method-17 (_type_) none)
|
||||
(trail-graph-method-12 (_type_ trail-node vector) symbol)
|
||||
(trail-graph-method-13 (_type_ vector vector) symbol)
|
||||
(debug-draw (_type_) symbol)
|
||||
(trail-graph-method-15 (_type_ int) symbol)
|
||||
(trail-graph-method-16 (_type_ int (pointer uint16) vector vector rgba float) symbol)
|
||||
(trail-graph-method-17 (_type_ vector vector) int)
|
||||
(trail-graph-method-18 (_type_ vector) int)
|
||||
(trail-graph-method-19 (_type_) none)
|
||||
(trail-graph-method-20 (_type_ uint vector) none)
|
||||
(trail-graph-method-21 (_type_) none)
|
||||
(trail-graph-method-22 (_type_) none)
|
||||
(trail-graph-method-23 (_type_) none)
|
||||
(trail-graph-method-24 (_type_) none)
|
||||
(trail-graph-method-25 (_type_ int) none)
|
||||
(trail-graph-method-26 (_type_) none)
|
||||
(trail-graph-method-27 (_type_) none)
|
||||
(trail-graph-method-28 (_type_) none)
|
||||
(trail-graph-method-29 (_type_) none)
|
||||
(trail-graph-method-30 (_type_) none)
|
||||
(trail-graph-method-20 (_type_ uint vector) vector)
|
||||
(trail-graph-method-21 (_type_ (pointer uint16) int (pointer int32) (pointer float)) int)
|
||||
(trail-graph-method-22 (_type_ int int) symbol)
|
||||
(trail-graph-method-23 (_type_) symbol)
|
||||
(trail-graph-method-24 (_type_ uint vector int int) symbol)
|
||||
(trail-graph-method-25 (_type_ int) int)
|
||||
(trail-graph-method-26 (_type_) int)
|
||||
(trail-graph-method-27 (_type_) int)
|
||||
(trail-graph-method-28 (_type_ trail-conn-search int int) symbol)
|
||||
(trail-graph-method-29 (_type_ vector vector trail-cached-search-info) int)
|
||||
(trail-graph-method-30 (_type_) int)
|
||||
(trail-graph-method-31 (_type_ int) none)
|
||||
(trail-graph-method-32 (_type_) none)
|
||||
(trail-graph-method-33 (_type_) none)
|
||||
(trail-graph-method-32 (_type_) uint)
|
||||
(trail-graph-method-33 (_type_ int) symbol)
|
||||
)
|
||||
)
|
||||
|
||||
@ -359,3 +359,7 @@
|
||||
|
||||
;; definition for symbol *trail-graph*, type trail-graph
|
||||
(define *trail-graph* (the-as trail-graph #f))
|
||||
|
||||
|
||||
|
||||
|
||||
|
1200
test/decompiler/reference/jak3/levels/city/common/trail_REF.gc
generated
vendored
Normal file
1200
test/decompiler/reference/jak3/levels/city/common/trail_REF.gc
generated
vendored
Normal file
File diff suppressed because it is too large
Load Diff
56
test/decompiler/reference/jak3/levels/city/protect/assault-cams_REF.gc
generated
vendored
Normal file
56
test/decompiler/reference/jak3/levels/city/protect/assault-cams_REF.gc
generated
vendored
Normal file
@ -0,0 +1,56 @@
|
||||
;;-*-Lisp-*-
|
||||
(in-package goal)
|
||||
|
||||
;; definition for symbol *assault-cams*, type (array assault-cam-info)
|
||||
(define *assault-cams* (new 'static 'boxed-array :type assault-cam-info
|
||||
(new 'static 'assault-cam-info
|
||||
:pos (new 'static 'vector :x -190874.02 :y 106024.96 :z 5588420.0 :w 1.0)
|
||||
:mat (new 'static 'matrix
|
||||
:rvec (new 'static 'vector :x -0.80696344 :z 0.5906011)
|
||||
:uvec (new 'static 'vector :x -0.36253208 :y 0.7894338 :z -0.49534297)
|
||||
:fvec (new 'static 'vector :x -0.46624056 :y -0.61383563 :z -0.63704425)
|
||||
:trans (new 'static 'vector :w 1.0)
|
||||
)
|
||||
)
|
||||
(new 'static 'assault-cam-info
|
||||
:pos (new 'static 'vector :x 423746.34 :y 149545.38 :z 7161433.5 :w 1.0)
|
||||
:mat (new 'static 'matrix
|
||||
:rvec (new 'static 'vector :x -0.0033539534 :z 0.9999943)
|
||||
:uvec (new 'static 'vector :x -0.8762458 :y 0.4818552 :z -0.0029389048)
|
||||
:fvec (new 'static 'vector :x -0.4818526 :y -0.87625074 :z -0.0016161203)
|
||||
:trans (new 'static 'vector :w 1.0)
|
||||
)
|
||||
)
|
||||
(new 'static 'assault-cam-info
|
||||
:pos (new 'static 'vector :x 754367.3 :y 136453.73 :z 5612391.0 :w 1.0)
|
||||
:mat (new 'static 'matrix
|
||||
:rvec (new 'static 'vector :x -0.91507846 :z -0.4032754)
|
||||
:uvec (new 'static 'vector :x 0.34681395 :y 0.51030624 :z -0.7869609)
|
||||
:fvec (new 'static 'vector :x 0.20579405 :y -0.8599926 :z -0.46697044)
|
||||
:trans (new 'static 'vector :w 1.0)
|
||||
)
|
||||
)
|
||||
(new 'static 'assault-cam-info
|
||||
:pos (new 'static 'vector :x 1701028.2 :y 180959.23 :z 5565024.5 :w 1.0)
|
||||
:mat (new 'static 'matrix
|
||||
:rvec (new 'static 'vector :x -0.80724764 :z -0.59021246)
|
||||
:uvec (new 'static 'vector :x 0.4939913 :y 0.54724586 :z -0.67564356)
|
||||
:fvec (new 'static 'vector :x 0.32299143 :y -0.8369716 :z -0.44176307)
|
||||
:trans (new 'static 'vector :w 1.0)
|
||||
)
|
||||
)
|
||||
(new 'static 'assault-cam-info
|
||||
:pos (new 'static 'vector :x -311586.8 :y 110921.73 :z 5417229.0 :w 1.0)
|
||||
:mat (new 'static 'matrix
|
||||
:rvec (new 'static 'vector :x -0.8088231 :z 0.58805186)
|
||||
:uvec (new 'static 'vector :x -0.42552334 :y 0.69020355 :z -0.5852767)
|
||||
:fvec (new 'static 'vector :x -0.4058755 :y -0.7236152 :z -0.5582527)
|
||||
:trans (new 'static 'vector :w 1.0)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
|
||||
|
2364
test/decompiler/reference/jak3/levels/city/protect/assault-enemies_REF.gc
generated
vendored
Normal file
2364
test/decompiler/reference/jak3/levels/city/protect/assault-enemies_REF.gc
generated
vendored
Normal file
File diff suppressed because it is too large
Load Diff
171
test/decompiler/reference/jak3/levels/city/protect/assault-path_REF.gc
generated
vendored
Normal file
171
test/decompiler/reference/jak3/levels/city/protect/assault-path_REF.gc
generated
vendored
Normal file
@ -0,0 +1,171 @@
|
||||
;;-*-Lisp-*-
|
||||
(in-package goal)
|
||||
|
||||
;; definition for symbol *assault-rooms*, type (array assault-room)
|
||||
(define *assault-rooms* (new 'static 'boxed-array :type assault-room :length 0 :allocated-length 5))
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(set! (-> *assault-rooms* length) (-> *assault-rooms* allocated-length))
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(set! (-> *assault-rooms* 0)
|
||||
(new 'static 'assault-room :center-pos (new 'static 'vector :x -240257.03 :y 36409.344 :z 5520792.5 :w 1.0))
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(set! (-> *assault-rooms* 0 cam-info) (-> *assault-cams* 0))
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(set! (-> *assault-rooms* 0 collision) (new 'static 'assault-room-collision
|
||||
:cam-matrix (new 'static 'matrix
|
||||
:rvec (new 'static 'vector :x -0.80696344 :z 0.5906011)
|
||||
:uvec (new 'static 'vector :x -0.36253208 :y 0.7894338 :z -0.49534297)
|
||||
:fvec (new 'static 'vector :x -0.46624056 :y -0.61383563 :z -0.63704425)
|
||||
:trans (new 'static 'vector :w 1.0)
|
||||
)
|
||||
:cam-pos (new 'static 'vector :x -190874.02 :y 106024.96 :z 5588420.0 :w 1.0)
|
||||
:clip-dists (new 'static 'triangle-dists :dist0 30608.953 :dist1 40000.055)
|
||||
:hoz-clip-dist 75502.086
|
||||
)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(set! (-> *assault-rooms* 0 node-positions)
|
||||
(new 'static 'boxed-array :type vector
|
||||
(new 'static 'vector :x -320432.12 :y 39460.863 :z 5583748.0 :w 1.0)
|
||||
(new 'static 'vector :x -157367.1 :y 35726.54 :z 5467749.0 :w 1.0)
|
||||
)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(set! (-> *assault-rooms* 1)
|
||||
(new 'static 'assault-room :center-pos (new 'static 'vector :x 371519.1 :y 35597.105 :z 7164435.0 :w 1.0))
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(set! (-> *assault-rooms* 1 cam-info) (-> *assault-cams* 1))
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(set! (-> *assault-rooms* 1 collision)
|
||||
(new 'static 'assault-room-collision
|
||||
:cam-matrix (new 'static 'matrix
|
||||
:rvec (new 'static 'vector :x -0.0033539534 :z 0.9999943)
|
||||
:uvec (new 'static 'vector :x -0.8762458 :y 0.4818552 :z -0.0029389048)
|
||||
:fvec (new 'static 'vector :x -0.4818526 :y -0.87625074 :z -0.0016161203)
|
||||
:trans (new 'static 'vector :w 1.0)
|
||||
)
|
||||
:cam-pos (new 'static 'vector :x 423746.75 :y 149545.38 :z 7161433.5 :w 1.0)
|
||||
:clip-dists (new 'static 'triangle-dists :dist0 38132.883 :dist1 60766.504)
|
||||
:hoz-clip-dist 84132.84
|
||||
)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(set! (-> *assault-rooms* 1 node-positions)
|
||||
(new 'static 'boxed-array :type vector
|
||||
(new 'static 'vector :x 451624.56 :y 37709.004 :z 7164598.5 :w 1.0)
|
||||
(new 'static 'vector :x 314352.03 :y 35603.25 :z 7283629.0 :w 1.0)
|
||||
(new 'static 'vector :x 319363.06 :y 35609.395 :z 7031069.5 :w 1.0)
|
||||
)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(set! (-> *assault-rooms* 2)
|
||||
(new 'static 'assault-room :center-pos (new 'static 'vector :x 785399.4 :y 35733.504 :z 5553110.0 :w 1.0))
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(set! (-> *assault-rooms* 2 cam-info) (-> *assault-cams* 2))
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(set! (-> *assault-rooms* 2 collision) (new 'static 'assault-room-collision
|
||||
:cam-matrix (new 'static 'matrix
|
||||
:rvec (new 'static 'vector :x -0.91507846 :z -0.4032754)
|
||||
:uvec (new 'static 'vector :x 0.34681395 :y 0.51030624 :z -0.7869609)
|
||||
:fvec (new 'static 'vector :x 0.20579405 :y -0.8599926 :z -0.46697044)
|
||||
:trans (new 'static 'vector :w 1.0)
|
||||
)
|
||||
:cam-pos (new 'static 'vector :x 754367.3 :y 136454.14 :z 5612391.5 :w 1.0)
|
||||
:clip-dists (new 'static 'triangle-dists :dist0 34730.176 :dist1 57014.51)
|
||||
:hoz-clip-dist 76124.41
|
||||
)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(set! (-> *assault-rooms* 2 node-positions)
|
||||
(new 'static 'boxed-array :type vector
|
||||
(new 'static 'vector :x 784477.8 :y 35810.508 :z 5431458.0 :w 1.0)
|
||||
(new 'static 'vector :x 684347.0 :y 35715.89 :z 5563923.0 :w 1.0)
|
||||
(new 'static 'vector :x 882867.8 :y 36161.125 :z 5581003.0 :w 1.0)
|
||||
)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(set! (-> *assault-rooms* 3)
|
||||
(new 'static 'assault-room :center-pos (new 'static 'vector :x 1754726.0 :y 35726.95 :z 5489334.5 :w 1.0))
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(set! (-> *assault-rooms* 3 cam-info) (-> *assault-cams* 3))
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(set! (-> *assault-rooms* 3 collision) (new 'static 'assault-room-collision
|
||||
:cam-matrix (new 'static 'matrix
|
||||
:rvec (new 'static 'vector :x -0.80724764 :z -0.59021246)
|
||||
:uvec (new 'static 'vector :x 0.4939913 :y 0.54724586 :z -0.67564356)
|
||||
:fvec (new 'static 'vector :x 0.32299143 :y -0.8369716 :z -0.44176307)
|
||||
:trans (new 'static 'vector :w 1.0)
|
||||
)
|
||||
:cam-pos (new 'static 'vector :x 1701028.2 :y 180959.23 :z 5565024.5 :w 1.0)
|
||||
:clip-dists (new 'static 'triangle-dists :dist0 51394.637 :dist1 87897.0)
|
||||
:hoz-clip-dist 111438.664
|
||||
)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(set! (-> *assault-rooms* 3 node-positions)
|
||||
(new 'static 'boxed-array :type vector
|
||||
(new 'static 'vector :x 1655123.5 :y 35728.18 :z 5430803.0 :w 1.0)
|
||||
(new 'static 'vector :x 1852997.2 :y 35795.76 :z 5552741.0 :w 1.0)
|
||||
(new 'static 'vector :x 1711406.8 :y 42685.234 :z 5560278.0 :w 1.0)
|
||||
)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(set! (-> *assault-rooms* 4)
|
||||
(new 'static 'assault-room :center-pos (new 'static 'vector :x -359565.3 :y 41573.17 :z 5346835.0 :w 1.0))
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(set! (-> *assault-rooms* 4 cam-info) (-> *assault-cams* 4))
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(set! (-> *assault-rooms* 4 collision) (new 'static 'assault-room-collision
|
||||
:cam-matrix (new 'static 'matrix
|
||||
:rvec (new 'static 'vector :x -0.8088231 :z 0.58805186)
|
||||
:uvec (new 'static 'vector :x -0.42552334 :y 0.69020355 :z -0.5852767)
|
||||
:fvec (new 'static 'vector :x -0.4058755 :y -0.7236152 :z -0.5582527)
|
||||
:trans (new 'static 'vector :w 1.0)
|
||||
)
|
||||
:cam-pos (new 'static 'vector :x -311586.9 :y 110922.0 :z 5417229.5 :w 1.0)
|
||||
:clip-dists (new 'static 'triangle-dists :dist0 29167.535 :dist1 61501.04)
|
||||
:hoz-clip-dist 59058.156
|
||||
)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(set! (-> *assault-rooms* 4 node-positions)
|
||||
(new 'static 'boxed-array :type vector
|
||||
(new 'static 'vector :x -318851.9 :y 40452.914 :z 5403400.5 :w 1.0)
|
||||
(new 'static 'vector :x -350418.94 :y 43542.938 :z 5425846.5 :w 1.0)
|
||||
(new 'static 'vector :x -292352.4 :y 42613.145 :z 5385706.5 :w 1.0)
|
||||
(new 'static 'vector :x -426024.56 :y 43729.305 :z 5323487.5 :w 1.0)
|
||||
(new 'static 'vector :x -350490.22 :y 43717.02 :z 5272411.0 :w 1.0)
|
||||
(new 'static 'vector :x -326335.7 :y 43717.02 :z 5312429.0 :w 1.0)
|
||||
(new 'static 'vector :x -406911.38 :y 43717.02 :z 5361293.5 :w 1.0)
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
|
||||
|
1183
test/decompiler/reference/jak3/levels/city/protect/assault-script_REF.gc
generated
vendored
Normal file
1183
test/decompiler/reference/jak3/levels/city/protect/assault-script_REF.gc
generated
vendored
Normal file
File diff suppressed because it is too large
Load Diff
295
test/decompiler/reference/jak3/levels/city/protect/assault-shared_REF.gc
generated
vendored
Normal file
295
test/decompiler/reference/jak3/levels/city/protect/assault-shared_REF.gc
generated
vendored
Normal file
@ -0,0 +1,295 @@
|
||||
;;-*-Lisp-*-
|
||||
(in-package goal)
|
||||
|
||||
;; definition of type assault-cam-info
|
||||
(deftype assault-cam-info (structure)
|
||||
((pos vector :inline)
|
||||
(mat matrix :inline)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for method 3 of type assault-cam-info
|
||||
(defmethod inspect ((this assault-cam-info))
|
||||
(when (not this)
|
||||
(set! this this)
|
||||
(goto cfg-4)
|
||||
)
|
||||
(format #t "[~8x] ~A~%" this 'assault-cam-info)
|
||||
(format #t "~1Tpos: #<vector @ #x~X>~%" (-> this pos))
|
||||
(format #t "~1Tmat: #<matrix @ #x~X>~%" (-> this mat))
|
||||
(label cfg-4)
|
||||
this
|
||||
)
|
||||
|
||||
;; definition of type triangle-dists
|
||||
(deftype triangle-dists (structure)
|
||||
((dist0 float)
|
||||
(dist1 float)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for method 3 of type triangle-dists
|
||||
(defmethod inspect ((this triangle-dists))
|
||||
(when (not this)
|
||||
(set! this this)
|
||||
(goto cfg-4)
|
||||
)
|
||||
(format #t "[~8x] ~A~%" this 'triangle-dists)
|
||||
(format #t "~1Tdist0: ~f~%" (-> this dist0))
|
||||
(format #t "~1Tdist1: ~f~%" (-> this dist1))
|
||||
(label cfg-4)
|
||||
this
|
||||
)
|
||||
|
||||
;; definition of type assault-room-collision
|
||||
(deftype assault-room-collision (structure)
|
||||
((cam-matrix matrix :inline)
|
||||
(cam-pos vector :inline)
|
||||
(clip-dists triangle-dists :inline)
|
||||
(hoz-clip-dist float)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for method 3 of type assault-room-collision
|
||||
(defmethod inspect ((this assault-room-collision))
|
||||
(when (not this)
|
||||
(set! this this)
|
||||
(goto cfg-4)
|
||||
)
|
||||
(format #t "[~8x] ~A~%" this 'assault-room-collision)
|
||||
(format #t "~1Tcam-matrix: #<matrix @ #x~X>~%" (-> this cam-matrix))
|
||||
(format #t "~1Tcam-pos: #<vector @ #x~X>~%" (-> this cam-pos))
|
||||
(format #t "~1Tclip-dists: #<triangle-dists @ #x~X>~%" (-> this clip-dists))
|
||||
(format #t "~1Thoz-clip-dist: ~f~%" (-> this hoz-clip-dist))
|
||||
(label cfg-4)
|
||||
this
|
||||
)
|
||||
|
||||
;; definition of type assault-room
|
||||
(deftype assault-room (structure)
|
||||
((center-pos vector :inline)
|
||||
(cam-info assault-cam-info)
|
||||
(collision assault-room-collision)
|
||||
(node-positions (array vector))
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for method 3 of type assault-room
|
||||
(defmethod inspect ((this assault-room))
|
||||
(when (not this)
|
||||
(set! this this)
|
||||
(goto cfg-4)
|
||||
)
|
||||
(format #t "[~8x] ~A~%" this 'assault-room)
|
||||
(format #t "~1Tcenter-pos: #<vector @ #x~X>~%" (-> this center-pos))
|
||||
(format #t "~1Tcam-info: #<assault-cam-info @ #x~X>~%" (-> this cam-info))
|
||||
(format #t "~1Tcollision: #<assault-room-collision @ #x~X>~%" (-> this collision))
|
||||
(format #t "~1Tnode-positions: ~A~%" (-> this node-positions))
|
||||
(label cfg-4)
|
||||
this
|
||||
)
|
||||
|
||||
;; definition for symbol *assault-speech-list*, type (inline-array talker-speech-class)
|
||||
(define *assault-speech-list* (new 'static 'inline-array talker-speech-class 22
|
||||
(new 'static 'talker-speech-class :name "none")
|
||||
(new 'static 'talker-speech-class
|
||||
:name "torn102"
|
||||
:channel (gui-channel voicebox)
|
||||
:speech #x1
|
||||
:neg #x1
|
||||
:on-close #f
|
||||
:camera #f
|
||||
)
|
||||
(new 'static 'talker-speech-class
|
||||
:name "torn202"
|
||||
:channel (gui-channel voicebox)
|
||||
:speech #x2
|
||||
:neg #x1
|
||||
:on-close #f
|
||||
:camera #f
|
||||
)
|
||||
(new 'static 'talker-speech-class
|
||||
:name "torn122"
|
||||
:channel (gui-channel voicebox)
|
||||
:speech #x3
|
||||
:neg #x1
|
||||
:on-close #f
|
||||
:camera #f
|
||||
)
|
||||
(new 'static 'talker-speech-class
|
||||
:name "torn133"
|
||||
:channel (gui-channel voicebox)
|
||||
:speech #x4
|
||||
:neg #x1
|
||||
:on-close #f
|
||||
:camera #f
|
||||
)
|
||||
(new 'static 'talker-speech-class
|
||||
:name "torn203"
|
||||
:channel (gui-channel voicebox)
|
||||
:speech #x5
|
||||
:neg #x1
|
||||
:on-close #f
|
||||
:camera #f
|
||||
)
|
||||
(new 'static 'talker-speech-class
|
||||
:name "torn116"
|
||||
:channel (gui-channel voicebox)
|
||||
:speech #x6
|
||||
:neg #x1
|
||||
:on-close #f
|
||||
:camera #f
|
||||
)
|
||||
(new 'static 'talker-speech-class
|
||||
:name "torn192"
|
||||
:channel (gui-channel voicebox)
|
||||
:speech #x7
|
||||
:neg #x1
|
||||
:on-close #f
|
||||
:camera #f
|
||||
)
|
||||
(new 'static 'talker-speech-class
|
||||
:name "torn205"
|
||||
:channel (gui-channel voicebox)
|
||||
:speech #x8
|
||||
:neg #x1
|
||||
:on-close #f
|
||||
:camera #f
|
||||
)
|
||||
(new 'static 'talker-speech-class
|
||||
:name "torn198"
|
||||
:channel (gui-channel voicebox)
|
||||
:speech #x9
|
||||
:neg #x1
|
||||
:on-close #f
|
||||
:camera #f
|
||||
)
|
||||
(new 'static 'talker-speech-class
|
||||
:name "torn154"
|
||||
:channel (gui-channel voicebox)
|
||||
:speech #xa
|
||||
:neg #x1
|
||||
:on-close #f
|
||||
:camera #f
|
||||
)
|
||||
(new 'static 'talker-speech-class
|
||||
:name "torn194"
|
||||
:channel (gui-channel rider)
|
||||
:speech #xb
|
||||
:neg #x1
|
||||
:on-close #f
|
||||
:camera #f
|
||||
)
|
||||
(new 'static 'talker-speech-class
|
||||
:name "torn117"
|
||||
:channel (gui-channel rider)
|
||||
:speech #xc
|
||||
:neg #x1
|
||||
:on-close #f
|
||||
:camera #f
|
||||
)
|
||||
(new 'static 'talker-speech-class
|
||||
:name "assault-protect-civilians"
|
||||
:channel (gui-channel message)
|
||||
:speech #xd
|
||||
:text-duration (seconds 4)
|
||||
:neg #x1
|
||||
:text-message (text-id text-06de)
|
||||
:on-close #f
|
||||
:camera #f
|
||||
)
|
||||
(new 'static 'talker-speech-class
|
||||
:name "dax238"
|
||||
:channel (gui-channel daxter)
|
||||
:flags (talker-flags tf0)
|
||||
:speech #xe
|
||||
:neg #x1
|
||||
:on-close #f
|
||||
:camera #f
|
||||
)
|
||||
(new 'static 'talker-speech-class
|
||||
:name "dax353"
|
||||
:channel (gui-channel daxter)
|
||||
:speech #xf
|
||||
:neg #x1
|
||||
:on-close #f
|
||||
:camera #f
|
||||
)
|
||||
(new 'static 'talker-speech-class
|
||||
:name "dax330"
|
||||
:channel (gui-channel daxter)
|
||||
:speech #x10
|
||||
:neg #x1
|
||||
:on-close #f
|
||||
:camera #f
|
||||
)
|
||||
(new 'static 'talker-speech-class
|
||||
:name "dax577"
|
||||
:channel (gui-channel daxter)
|
||||
:speech #x11
|
||||
:neg #x1
|
||||
:on-close #f
|
||||
:camera #f
|
||||
)
|
||||
(new 'static 'talker-speech-class
|
||||
:name "tor001"
|
||||
:channel (gui-channel voicebox)
|
||||
:speech #x12
|
||||
:neg #x1
|
||||
:on-close #f
|
||||
:camera #f
|
||||
)
|
||||
(new 'static 'talker-speech-class
|
||||
:name "grds178a"
|
||||
:channel (gui-channel guard)
|
||||
:flags (talker-flags tf0)
|
||||
:speech #x13
|
||||
:neg #x1
|
||||
:on-close #f
|
||||
:camera #f
|
||||
)
|
||||
(new 'static 'talker-speech-class
|
||||
:name "grds178b"
|
||||
:channel (gui-channel guard)
|
||||
:flags (talker-flags tf0)
|
||||
:speech #x14
|
||||
:neg #x1
|
||||
:on-close #f
|
||||
:camera #f
|
||||
)
|
||||
(new 'static 'talker-speech-class
|
||||
:name "grds103a"
|
||||
:channel (gui-channel guard)
|
||||
:speech #x15
|
||||
:neg #x1
|
||||
:on-close #f
|
||||
:camera #f
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition of type assault-speech-instance
|
||||
(deftype assault-speech-instance (speech-instance)
|
||||
()
|
||||
)
|
||||
|
||||
;; definition for method 3 of type assault-speech-instance
|
||||
(defmethod inspect ((this assault-speech-instance))
|
||||
(when (not this)
|
||||
(set! this this)
|
||||
(goto cfg-4)
|
||||
)
|
||||
(format #t "[~8x] ~A~%" this 'assault-speech-instance)
|
||||
(format #t "~1Tspeech: ~D~%" (-> this speech))
|
||||
(format #t "~1Tnum-play-times: ~D~%" (-> this num-play-times))
|
||||
(format #t "~1Tprobability: ~f~%" (-> this probability))
|
||||
(label cfg-4)
|
||||
this
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
0
|
||||
|
||||
|
||||
|
||||
|
1796
test/decompiler/reference/jak3/levels/city/protect/assault-task_REF.gc
generated
vendored
Normal file
1796
test/decompiler/reference/jak3/levels/city/protect/assault-task_REF.gc
generated
vendored
Normal file
File diff suppressed because it is too large
Load Diff
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user