mirror of
https://github.com/open-goal/jak-project
synced 2026-08-23 07:19:47 -04:00
decomp: Pass of the final remaining gameplay related files (#921)
* blocked: `plant-boss` has `go` returning none issues * blocked: `ice-cube` return value getting forced to none * blocked: `ropebridge` has static data isue * blocked: `double-lurker` handle cast issues * decomp: finish `billy` * decomp: finish `lurkerworm` * blocked: `pelican` handle casts * decomp: finish `citb-bunny` * blocked: inherited states in `snow-bunny` * blocked: CFG resolution in `lavatube-energy` * decomp: finish `citadel-sages` * progress: working through `collectables` * blocked: finished as much as currently possible in `collectables` - process-tree's 10 method pparently has a 3rd arg -- im doubtful - set-to-run function - branch delay unimplemented case - weird method 21 eco-collectable * pre-merge * decomp: update source files / ref tests * decomp: finish `floating-launcher`, `shover`, `steam-cap`, `sun-iris-door`, `whirlpool` * decomp: address feedback * update ref tests and gsrc
This commit is contained in:
+624
-1068
File diff suppressed because it is too large
Load Diff
@@ -821,5 +821,33 @@
|
||||
[5, "(function symbol :behavior touch-tracker)"]
|
||||
],
|
||||
|
||||
"plant-boss": [
|
||||
[22, "(function none :behavior camera-tracker)"]
|
||||
],
|
||||
|
||||
"pelican": [
|
||||
[1, "(function sparticle-launch-control :behavior pelican)"],
|
||||
[5, "(function pelican int)"],
|
||||
[6, "(function int)"],
|
||||
[10, "(function int)"],
|
||||
[15, "(function process int symbol event-message-block object :behavior pelican)"],
|
||||
[16, "(function none :behavior pelican)"],
|
||||
[24, "(function pelican int)"],
|
||||
[25, "(function int)"],
|
||||
[34, "(function int)"],
|
||||
[35, "(function int)"],
|
||||
[37, "(function none :behavior camera-tracker)"],
|
||||
[39, "(function sparticle-launch-control :behavior pelican)"]
|
||||
],
|
||||
|
||||
"collectables": [
|
||||
[11, "(function symbol)"],
|
||||
[12, "(function symbol)"],
|
||||
[13, "(function symbol)"],
|
||||
[14, "(function vent symbol)"],
|
||||
[38, "(function int none :behavior collectable)"],
|
||||
[69, "(function part-tracker vector)"]
|
||||
],
|
||||
|
||||
"placeholder-do-not-add-below": []
|
||||
}
|
||||
|
||||
@@ -323,9 +323,6 @@
|
||||
// navigate BUG
|
||||
"(method 32 nav-control)",
|
||||
|
||||
// collectables BUG
|
||||
"add-blue-motion",
|
||||
|
||||
// ocean
|
||||
"draw-large-polygon-ocean", // CFG
|
||||
|
||||
@@ -337,10 +334,9 @@
|
||||
"(method 27 ropebridge)",
|
||||
|
||||
// all unchecked and in level DGO code
|
||||
"(anon-function 21 plant-boss)",
|
||||
"(anon-function 10 ice-cube)",
|
||||
"(anon-function 15 ice-cube)",
|
||||
"(anon-function 45 lavatube-energy)",
|
||||
"(anon-function 21 plant-boss)", // CFG
|
||||
// "(anon-function 10 ice-cube)",
|
||||
// "(anon-function 15 ice-cube)",
|
||||
"mistycannon-find-best-solution",
|
||||
"target-flut-falling-anim-trans",
|
||||
"kermit-check-to-hit-player?",
|
||||
@@ -401,7 +397,8 @@
|
||||
"command-get-quoted-param",
|
||||
"command-get-trans",
|
||||
"command-get-camera",
|
||||
"(method 14 camera-tracker)"
|
||||
"(method 14 camera-tracker)",
|
||||
"(enter billy-playing)"
|
||||
],
|
||||
|
||||
// If format is used with the wrong number of arguments,
|
||||
|
||||
@@ -854,6 +854,7 @@
|
||||
"target-snowball": [["L23", "vector"]],
|
||||
|
||||
"ice-cube": [
|
||||
["L210", "vector"],
|
||||
["L212", "attack-info"],
|
||||
["L213", "attack-info"],
|
||||
["L215", "attack-info"]
|
||||
@@ -911,26 +912,6 @@
|
||||
["L318", "vector"]
|
||||
],
|
||||
|
||||
"collectables": [
|
||||
["L611", "(pointer float)", true, 1],
|
||||
["L649", "(pointer float)", true, 1],
|
||||
["L656", "(pointer float)", true, 1],
|
||||
["L657", "(pointer float)", true, 1],
|
||||
["L658", "(pointer float)", true, 1],
|
||||
["L660", "(pointer float)", true, 1],
|
||||
["L663", "(pointer float)", true, 1],
|
||||
["L585", "vector"],
|
||||
["L725", "float", true],
|
||||
["L726", "float", true],
|
||||
["L727", "float", true],
|
||||
["L728", "uint64", true],
|
||||
["L729", "uint64", true],
|
||||
["L730", "uint64", true],
|
||||
["L731", "uint64", true],
|
||||
["L732", "uint64", true],
|
||||
["L733", "uint64", true]
|
||||
],
|
||||
|
||||
"sky": [["L13", "vu-function"]],
|
||||
|
||||
"sky-tng": [
|
||||
@@ -1137,6 +1118,7 @@
|
||||
["L272", "vector"],
|
||||
["L527", "quaternion"]
|
||||
],
|
||||
|
||||
"sage-finalboss-L1": [
|
||||
["L528", "vector"],
|
||||
["L272", "vector"],
|
||||
@@ -1248,6 +1230,223 @@
|
||||
["L457", "attack-info"]
|
||||
],
|
||||
|
||||
"collectables": [
|
||||
["L533", "vector"],
|
||||
["L606", "float", true],
|
||||
["L607", "float", true],
|
||||
["L608", "float", true],
|
||||
["L609", "float", true],
|
||||
["L610", "float", true],
|
||||
["L611", "float", true],
|
||||
["L612", "float", true],
|
||||
["L613", "float", true],
|
||||
["L614", "float", true],
|
||||
["L615", "float", true],
|
||||
["L616", "float", true],
|
||||
["L617", "float", true],
|
||||
["L618", "float", true],
|
||||
["L619", "float", true],
|
||||
["L620", "float", true],
|
||||
["L621", "float", true],
|
||||
["L622", "float", true],
|
||||
["L623", "float", true],
|
||||
["L624", "float", true],
|
||||
["L625", "float", true],
|
||||
["L626", "float", true],
|
||||
["L627", "float", true],
|
||||
["L628", "float", true],
|
||||
["L629", "float", true],
|
||||
["L630", "float", true],
|
||||
["L631", "float", true],
|
||||
["L632", "float", true],
|
||||
["L633", "float", true],
|
||||
["L634", "float", true],
|
||||
["L635", "float", true],
|
||||
["L636", "float", true],
|
||||
["L637", "float", true],
|
||||
["L638", "float", true],
|
||||
["L639", "float", true],
|
||||
["L640", "float", true],
|
||||
["L641", "float", true],
|
||||
["L642", "float", true],
|
||||
["L643", "float", true],
|
||||
["L644", "float", true],
|
||||
["L645", "float", true],
|
||||
["L646", "float", true],
|
||||
["L647", "float", true],
|
||||
["L648", "float", true],
|
||||
["L649", "float", true],
|
||||
["L650", "float", true],
|
||||
["L651", "float", true],
|
||||
["L652", "float", true],
|
||||
["L653", "float", true],
|
||||
["L654", "float", true],
|
||||
["L655", "float", true],
|
||||
["L656", "float", true],
|
||||
["L657", "float", true],
|
||||
["L658", "float", true],
|
||||
["L659", "float", true],
|
||||
["L660", "float", true],
|
||||
["L661", "float", true],
|
||||
["L662", "float", true],
|
||||
["L663", "(pointer float)", 1],
|
||||
["L664", "uint64", true],
|
||||
["L666", "uint64", true],
|
||||
["L665", "uint64", true],
|
||||
["L667", "uint64", true],
|
||||
["L668", "uint64", true],
|
||||
["L669", "uint64", true],
|
||||
["L670", "uint64", true],
|
||||
["L671", "uint64", true],
|
||||
["L672", "uint64", true],
|
||||
["L585", "vector"],
|
||||
["L725", "float", true],
|
||||
["L726", "float", true],
|
||||
["L727", "float", true],
|
||||
["L728", "uint64", true],
|
||||
["L729", "uint64", true],
|
||||
["L730", "uint64", true],
|
||||
["L731", "uint64", true],
|
||||
["L732", "uint64", true],
|
||||
["L733", "uint64", true]
|
||||
],
|
||||
|
||||
"plant-boss": [
|
||||
["L343", "vector"],
|
||||
["L344", "vector"],
|
||||
["L345", "vector"],
|
||||
["L346", "vector"],
|
||||
["L347", "vector"],
|
||||
["L348", "vector"],
|
||||
["L349", "vector"],
|
||||
["L350", "vector"],
|
||||
["L351", "vector"],
|
||||
["L352", "vector"],
|
||||
["L353", "vector"],
|
||||
["L354", "vector"],
|
||||
["L355", "vector"],
|
||||
["L356", "vector"],
|
||||
["L357", "vector"],
|
||||
["L358", "vector"],
|
||||
["L359", "vector"],
|
||||
["L360", "vector"],
|
||||
["L361", "vector"],
|
||||
["L362", "vector"],
|
||||
["L363", "vector"],
|
||||
["L364", "vector"],
|
||||
["L375", "attack-info"],
|
||||
["L377", "attack-info"],
|
||||
["L399", "attack-info"],
|
||||
["L403", "attack-info"],
|
||||
["L412", "float", true],
|
||||
["L413", "float", true],
|
||||
["L414", "float", true],
|
||||
["L415", "(pointer float)", 1],
|
||||
["L416", "float", true],
|
||||
["L417", "float", true],
|
||||
["L418", "float", true],
|
||||
["L419", "float", true],
|
||||
["L420", "float", true],
|
||||
["L421", "float", true],
|
||||
["L422", "float", true],
|
||||
["L423", "float", true],
|
||||
["L424", "float", true],
|
||||
["L425", "float", true],
|
||||
["L426", "float", true],
|
||||
["L427", "float", true],
|
||||
["L428", "float", true],
|
||||
["L429", "float", true],
|
||||
["L430", "float", true],
|
||||
["L431", "(pointer float)", 1],
|
||||
["L432", "float", true],
|
||||
["L433", "float", true],
|
||||
["L434", "float", true],
|
||||
["L435", "float", true],
|
||||
["L436", "float", true],
|
||||
["L437", "float", true],
|
||||
["L438", "(pointer float)", 1],
|
||||
["L439", "float", true],
|
||||
["L440", "float", true],
|
||||
["L441", "float", true],
|
||||
["L442", "(pointer float)", 1],
|
||||
["L443", "float", true],
|
||||
["L444", "float", true],
|
||||
["L445", "float", true],
|
||||
["L446", "float", true],
|
||||
["L447", "float", true],
|
||||
["L448", "float", true],
|
||||
["L449", "float", true],
|
||||
["L450", "float", true],
|
||||
["L451", "float", true],
|
||||
["L452", "float", true],
|
||||
["L453", "float", true],
|
||||
["L454", "float", true],
|
||||
["L455", "float", true],
|
||||
["L456", "float", true],
|
||||
["L457", "float", true],
|
||||
["L458", "float", true],
|
||||
["L459", "float", true],
|
||||
["L460", "float", true],
|
||||
["L461", "float", true],
|
||||
["L462", "float", true],
|
||||
["L463", "float", true],
|
||||
["L464", "float", true],
|
||||
["L465", "float", true],
|
||||
["L466", "(pointer float)", 1],
|
||||
["L467", "float", true],
|
||||
["L468", "float", true],
|
||||
["L469", "(pointer float)", 1],
|
||||
["L470", "uint64", true],
|
||||
["L498", "float", true],
|
||||
["L499", "uint64", true],
|
||||
["L500", "uint64", true],
|
||||
["L501", "uint64", true]
|
||||
],
|
||||
|
||||
"ropebridge": [
|
||||
["L97", "(inline-array ropebridge-tuning)", 6],
|
||||
["L104", "(inline-array ropebridge-spring-point)", 8],
|
||||
["L105", "(inline-array ropebridge-spring-point)", 7],
|
||||
["L106", "(inline-array ropebridge-spring-point)", 11],
|
||||
["L107", "(inline-array ropebridge-spring-point)", 15]
|
||||
],
|
||||
|
||||
"double-lurker": [
|
||||
["L109", "vector"],
|
||||
["L122", "attack-info"],
|
||||
["L123", "attack-info"],
|
||||
["L128", "attack-info"]
|
||||
],
|
||||
|
||||
"billy": [
|
||||
["L234", "vector"]
|
||||
],
|
||||
|
||||
"lurkerworm": [
|
||||
["L56", "attack-info"]
|
||||
],
|
||||
|
||||
"pelican": [
|
||||
["L199", "vector"],
|
||||
["L225", "vector"]
|
||||
],
|
||||
|
||||
"citadel-sages": [
|
||||
["L179", "vector"],
|
||||
["L623", "vector"],
|
||||
["L651", "vector"],
|
||||
["L701", "vector"]
|
||||
],
|
||||
|
||||
"shover": [
|
||||
["L13", "attack-info"],
|
||||
["L14", "attack-info"]
|
||||
],
|
||||
|
||||
"steam-cap": [
|
||||
["L51", "attack-info"]
|
||||
],
|
||||
|
||||
// please do not add things after this entry! git is dumb.
|
||||
"object-file-that-doesnt-actually-exist-and-i-just-put-this-here-to-prevent-merge-conflicts-with-this-file": []
|
||||
}
|
||||
|
||||
@@ -3625,5 +3625,513 @@
|
||||
[48, "event-message-block"]
|
||||
],
|
||||
|
||||
"plant-boss-default-event-handler": [
|
||||
[16, "event-message-block"]
|
||||
],
|
||||
|
||||
"(event plant-boss-vulnerable)": [
|
||||
[16, "event-message-block"]
|
||||
],
|
||||
|
||||
"(code plant-boss-hit)": [
|
||||
[16, "event-message-block"]
|
||||
],
|
||||
|
||||
"(code plant-boss-dead)": [
|
||||
[16, "event-message-block"]
|
||||
],
|
||||
|
||||
"(event plant-boss-attack)": [
|
||||
[16, "event-message-block"]
|
||||
],
|
||||
|
||||
"(code plant-boss-eat)": [
|
||||
[16, "event-message-block"]
|
||||
],
|
||||
|
||||
"(anon-function 22 plant-boss)": [
|
||||
[16, "event-message-block"]
|
||||
],
|
||||
|
||||
"(code plant-boss-vulnerable)": [
|
||||
[16, "event-message-block"]
|
||||
],
|
||||
|
||||
"(exit plant-boss-vulnerable)": [
|
||||
[16, "event-message-block"]
|
||||
],
|
||||
|
||||
"(event plant-boss-back-arms-idle)": [
|
||||
[16, "event-message-block"]
|
||||
],
|
||||
|
||||
"(method 11 plant-boss)": [
|
||||
[16, "vector"],
|
||||
[32, "vector"],
|
||||
[48, "vector"],
|
||||
[64, "vector"],
|
||||
[80, "vector"],
|
||||
[96, "vector"],
|
||||
[112, "vector"],
|
||||
[128, "vector"],
|
||||
[144, "vector"],
|
||||
[160, "vector"],
|
||||
[176, "vector"],
|
||||
[192, "vector"]
|
||||
],
|
||||
|
||||
"(method 60 ice-cube)": [
|
||||
[16, "vector"]
|
||||
],
|
||||
|
||||
"(method 52 ice-cube)": [
|
||||
[16, "vector"]
|
||||
],
|
||||
|
||||
"(trans ice-cube-appear)": [
|
||||
[16, "vector"]
|
||||
],
|
||||
|
||||
"(code ice-cube-appear-land)": [
|
||||
[16, "vector"]
|
||||
],
|
||||
|
||||
"(code ice-cube-face-player)": [
|
||||
[16, "vector"]
|
||||
],
|
||||
|
||||
"(code ice-cube-mean-turn-to-charge)": [
|
||||
[16, "vector"]
|
||||
],
|
||||
|
||||
"(method 54 ice-cube)": [
|
||||
[16, "vector"]
|
||||
],
|
||||
|
||||
"(code ice-cube-shatter)": [
|
||||
[16, "vector"],
|
||||
[32, "joint-exploder-tuning"]
|
||||
],
|
||||
|
||||
"(trans ice-cube-trying-to-appear)": [
|
||||
[16, "vector"],
|
||||
[32, "vector"]
|
||||
],
|
||||
|
||||
"(trans ice-cube-mean-charge)": [
|
||||
[16, "vector"],
|
||||
[32, "vector"],
|
||||
[48, "vector"]
|
||||
],
|
||||
|
||||
"(method 51 ice-cube)": [
|
||||
[16, "vector"],
|
||||
[32, "collide-tri-result"]
|
||||
],
|
||||
|
||||
"(method 53 ice-cube)": [
|
||||
[16, "vector"],
|
||||
[32, "collide-mesh-cache-tri"]
|
||||
],
|
||||
|
||||
"(event double-lurker-top-knocked-down)": [
|
||||
[16, "event-message-block"]
|
||||
],
|
||||
|
||||
"(code double-lurker-top-knocked-down)": [
|
||||
[16, "vector"]
|
||||
],
|
||||
|
||||
"(method 48 double-lurker)": [
|
||||
[16, "vector"]
|
||||
],
|
||||
|
||||
"(method 52 double-lurker)": [
|
||||
[16, "vector"],
|
||||
[32, "vector"],
|
||||
[48, "collide-mesh-cache-tri"]
|
||||
],
|
||||
|
||||
"double-lurker-default-event-handler": [
|
||||
[16, "vector"],
|
||||
[32, "event-message-block"]
|
||||
],
|
||||
|
||||
"(code double-lurker-buddy-was-hit)": [
|
||||
[16, "vector"],
|
||||
[32, "event-message-block"]
|
||||
],
|
||||
|
||||
"(trans double-lurker-both-knocked-back)": [
|
||||
[16, "check-vector-collision-with-nav-spheres-info"],
|
||||
[64, "clip-travel-vector-to-mesh-return-info"]
|
||||
],
|
||||
|
||||
"(trans double-lurker-knocked-back)": [
|
||||
[16, "check-vector-collision-with-nav-spheres-info"],
|
||||
[64, "clip-travel-vector-to-mesh-return-info"]
|
||||
],
|
||||
|
||||
"(code nav-enemy-die billy-rat)": [
|
||||
[16, "event-message-block"]
|
||||
],
|
||||
|
||||
"(code billy-rat-eat)": [
|
||||
[16, "event-message-block"]
|
||||
],
|
||||
|
||||
"(code billy-rat-salivate)": [
|
||||
[16, "event-message-block"]
|
||||
],
|
||||
|
||||
"(enter nav-enemy-victory billy-rat)": [
|
||||
[16, "event-message-block"]
|
||||
],
|
||||
|
||||
"(enter billy-done)": [
|
||||
[16, "event-message-block"]
|
||||
],
|
||||
|
||||
"(exit billy-done)": [
|
||||
[16, "event-message-block"]
|
||||
],
|
||||
|
||||
"(trans enter-playing billy)": [
|
||||
[16, "event-message-block"]
|
||||
],
|
||||
|
||||
"(method 11 billy)": [
|
||||
[16, "event-message-block"]
|
||||
],
|
||||
|
||||
"(method 32 billy)": [
|
||||
[16, "vector"]
|
||||
],
|
||||
|
||||
"billy-rat-init-by-other": [
|
||||
[16, "vector"]
|
||||
],
|
||||
|
||||
"(method 43 billy)": [
|
||||
[16, "vector"]
|
||||
],
|
||||
|
||||
"(enter billy-playing)": [
|
||||
[16, "vector"]
|
||||
],
|
||||
|
||||
"billy-game-update": [
|
||||
[16, "vector"],
|
||||
[32, "vector"]
|
||||
],
|
||||
|
||||
"(method 20 lurkerworm)": [
|
||||
[16, "vector"]
|
||||
],
|
||||
|
||||
"lurkerworm-prebind-function": [
|
||||
[16, "quaternion"]
|
||||
],
|
||||
|
||||
"(method 21 lurkerworm)": [
|
||||
[16, "vector"],
|
||||
[32, "vector"],
|
||||
[48, "vector"],
|
||||
[64, "vector"]
|
||||
],
|
||||
|
||||
"lurkerworm-default-event-handler": [
|
||||
[16, "event-message-block"]
|
||||
],
|
||||
|
||||
"(method 11 pelican)": [
|
||||
[16, "event-message-block"]
|
||||
],
|
||||
|
||||
"(code pelican-explode)": [
|
||||
[16, "vector"],
|
||||
[32, "event-message-block"]
|
||||
],
|
||||
|
||||
"(event pelican-circle)": [
|
||||
[16, "vector"]
|
||||
],
|
||||
|
||||
"pelican-path-update": [
|
||||
[16, "vector"]
|
||||
],
|
||||
|
||||
"(trans pelican-wait-at-nest)": [
|
||||
[16, "vector"]
|
||||
],
|
||||
|
||||
"(enter pelican-fly-to-end)": [
|
||||
[16, "vector"]
|
||||
],
|
||||
|
||||
"(code pelican-spit)": [
|
||||
[16, "quaternion"],
|
||||
[32, "event-message-block"],
|
||||
[112, "vector"]
|
||||
],
|
||||
|
||||
"(enter pelican-circle)": [
|
||||
[16, "event-message-block"]
|
||||
],
|
||||
|
||||
"(code pelican-wait-at-nest)": [
|
||||
[16, "event-message-block"]
|
||||
],
|
||||
|
||||
"(event pelican-wait-at-nest)": [
|
||||
[16, "event-message-block"],
|
||||
[96, "vector"]
|
||||
],
|
||||
|
||||
"(code pelican-dive)": [
|
||||
[16, "event-message-block"]
|
||||
],
|
||||
|
||||
"(enter pelican-wait-at-nest)": [
|
||||
[16, "event-message-block"]
|
||||
],
|
||||
|
||||
"(code pelican-circle)": [
|
||||
[16, "event-message-block"]
|
||||
],
|
||||
|
||||
"(enter pelican-dive)": [
|
||||
[16, "event-message-block"],
|
||||
[96, "vector"]
|
||||
],
|
||||
|
||||
"(anon-function 37 pelican)": [
|
||||
[16, "event-message-block"]
|
||||
],
|
||||
|
||||
"(trans energydoor-closed-till-task)": [
|
||||
[16, "event-message-block"]
|
||||
],
|
||||
|
||||
"(method 11 energydoor)": [
|
||||
[16, "event-message-block"]
|
||||
],
|
||||
|
||||
"(enter energyhub-stopped)": [
|
||||
[16, "event-message-block"]
|
||||
],
|
||||
|
||||
"(enter energyhub-stop)": [
|
||||
[16, "event-message-block"]
|
||||
],
|
||||
|
||||
"energydoor-player-dist": [
|
||||
[16, "vector"],
|
||||
[32, "matrix"]
|
||||
],
|
||||
|
||||
"(trans energyarm-idle)": [
|
||||
[16, "vector"],
|
||||
[32, "vector"],
|
||||
[48, "vector"],
|
||||
[64, "event-message-block"]
|
||||
],
|
||||
|
||||
"energyarm-trans": [
|
||||
[16, "vector"],
|
||||
[32, "matrix"]
|
||||
],
|
||||
|
||||
"(trans energyball-idle)": [
|
||||
[16, "vector"],
|
||||
[32, "matrix"]
|
||||
],
|
||||
|
||||
"(method 11 energyhub)": [
|
||||
[16, "vector"],
|
||||
[32, "matrix"]
|
||||
],
|
||||
|
||||
"energyhub-trans": [
|
||||
[16, "matrix"]
|
||||
],
|
||||
|
||||
"(method 43 red-sagecage)": [
|
||||
[16, "vector"]
|
||||
],
|
||||
|
||||
"(method 43 blue-sagecage)": [
|
||||
[16, "vector"]
|
||||
],
|
||||
|
||||
"(method 43 yellow-sagecage)": [
|
||||
[16, "vector"]
|
||||
],
|
||||
|
||||
"(method 44 citb-sage)": [
|
||||
[16, "vector"],
|
||||
[32, "vector"]
|
||||
],
|
||||
|
||||
"(enter hidden citb-sage)": [
|
||||
[16, "event-message-block"]
|
||||
],
|
||||
|
||||
"(trans idle green-sagecage)": [
|
||||
[16, "event-message-block"]
|
||||
],
|
||||
|
||||
"(exit play-anim green-sagecage)": [
|
||||
[16, "event-message-block"]
|
||||
],
|
||||
|
||||
"(trans play-anim green-sagecage)": [
|
||||
[16, "event-message-block"]
|
||||
],
|
||||
|
||||
"(event play-anim green-sagecage)": [
|
||||
[16, "event-message-block"]
|
||||
],
|
||||
|
||||
"(method 32 green-sagecage)": [
|
||||
[16, "event-message-block"]
|
||||
],
|
||||
|
||||
"(event play-anim citb-sage)": [
|
||||
[16, "event-message-block"]
|
||||
],
|
||||
|
||||
"(event idle citb-sage)": [
|
||||
[16, "event-message-block"]
|
||||
],
|
||||
|
||||
"(event wait eco-collectable)": [
|
||||
[16, "event-message-block"]
|
||||
],
|
||||
|
||||
"(enter wait eco-collectable)": [
|
||||
[16, "event-message-block"]
|
||||
],
|
||||
|
||||
"(event notice-blue eco-collectable)": [
|
||||
[16, "event-message-block"]
|
||||
],
|
||||
|
||||
"(trans notice-blue eco-collectable)": [
|
||||
[16, "event-message-block"]
|
||||
],
|
||||
|
||||
"(code pickup eco-collectable)": [
|
||||
[16, "event-message-block"]
|
||||
],
|
||||
|
||||
"(enter pickup eco-collectable)": [
|
||||
[16, "event-message-block"]
|
||||
],
|
||||
|
||||
"(code die eco)": [
|
||||
[16, "event-message-block"]
|
||||
],
|
||||
|
||||
"(code pickup fuel-cell)": [
|
||||
[16, "event-message-block"]
|
||||
],
|
||||
|
||||
"(code pickup buzzer)": [
|
||||
[16, "event-message-block"],
|
||||
[96, "vector"]
|
||||
],
|
||||
|
||||
"(trans pickup fuel-cell)": [
|
||||
[16, "event-message-block"]
|
||||
],
|
||||
|
||||
"(event vent-wait-for-touch)": [
|
||||
[16, "event-message-block"]
|
||||
],
|
||||
|
||||
"add-blue-motion": [
|
||||
[16, "vector"]
|
||||
],
|
||||
|
||||
"ecovalve-init-by-other": [
|
||||
[16, "vector"]
|
||||
],
|
||||
|
||||
"(anon-function 69 collectables)": [
|
||||
[16, "vector"]
|
||||
],
|
||||
|
||||
"(code ecovalve-idle)": [
|
||||
[16, "vector"]
|
||||
],
|
||||
|
||||
"(method 9 fact-info)": [
|
||||
[16, "vector"],
|
||||
[32, "collide-tri-result"]
|
||||
],
|
||||
|
||||
"(method 29 buzzer)": [
|
||||
[16, "vector"]
|
||||
],
|
||||
|
||||
"(trans wait eco-collectable)": [
|
||||
[16, "vector"],
|
||||
[32, "event-message-block"]
|
||||
],
|
||||
|
||||
"(code jump eco-collectable)": [
|
||||
[16, "trajectory"]
|
||||
],
|
||||
|
||||
"(event shover-idle)": [
|
||||
[16, "attack-info"],
|
||||
[128, "event-message-block"]
|
||||
],
|
||||
|
||||
"(method 21 sun-iris-door)": [
|
||||
[16, "vector"]
|
||||
],
|
||||
|
||||
"(method 20 sun-iris-door)": [
|
||||
[16, "vector"],
|
||||
[32, "vector"],
|
||||
[48, "vector"]
|
||||
],
|
||||
|
||||
"(method 20 steam-cap)": [
|
||||
[16, "vector"],
|
||||
[32, "event-message-block"]
|
||||
],
|
||||
|
||||
"(method 21 steam-cap)": [
|
||||
[16, "vector"],
|
||||
[32, "vector"],
|
||||
[48, "vector"],
|
||||
[64, "vector"],
|
||||
[80, "vector"],
|
||||
[96, "vector"],
|
||||
[112, "vector"],
|
||||
[128, "vector"],
|
||||
[144, "vector"]
|
||||
],
|
||||
|
||||
"(method 11 steam-cap)": [
|
||||
[32, "vector"]
|
||||
],
|
||||
|
||||
"(trans floating-launcher-idle)": [
|
||||
[16, "vector"]
|
||||
],
|
||||
|
||||
"(trans whirlpool-idle)": [
|
||||
[16, "vector"]
|
||||
],
|
||||
|
||||
"(method 20 whirlpool)": [
|
||||
[16, "vector"],
|
||||
[32, "event-message-block"]
|
||||
],
|
||||
|
||||
"placeholder-do-not-add-below!": []
|
||||
}
|
||||
|
||||
@@ -3194,7 +3194,15 @@
|
||||
[14, "t9", "(function process-drawable int process-drawable)"]
|
||||
],
|
||||
|
||||
"(method 57 ice-cube)": [[16, "v1", "collide-shape-prim-sphere"]],
|
||||
"(method 57 ice-cube)": [
|
||||
[16, "v1", "collide-shape-prim-group"],
|
||||
[26, "v1", "collide-shape-prim-group"]
|
||||
],
|
||||
|
||||
"(method 58 ice-cube)": [
|
||||
[16, "v1", "collide-shape-prim-group"],
|
||||
[26, "v1", "collide-shape-prim-group"]
|
||||
],
|
||||
|
||||
"(code yeti-slave-appear-jump-up)": [[14, "v1", "art-joint-anim"]],
|
||||
|
||||
@@ -3477,7 +3485,10 @@
|
||||
|
||||
"(method 73 green-eco-lurker)": [[6, "a1", "touching-shapes-entry"]],
|
||||
|
||||
"citb-sagecage-update-collision": [[2, "a0", "collide-shape-prim-group"]],
|
||||
"citb-sagecage-update-collision": [
|
||||
[2, "a0", "collide-shape-prim-mesh"],
|
||||
[9, "a0", "collide-shape-prim-mesh"]
|
||||
],
|
||||
|
||||
"race-ring-set-particle-rotation-callback": [
|
||||
[1, "v1", "(pointer race-ring)"]
|
||||
@@ -5125,5 +5136,477 @@
|
||||
[27, "gp", "symbol"]
|
||||
],
|
||||
|
||||
"(method 7 plant-boss)": [
|
||||
[47, "t9", "(function process-drawable int process-drawable)"]
|
||||
],
|
||||
|
||||
"(code plant-boss-arm-hit)": [
|
||||
[88, "v1", "art-joint-anim"]
|
||||
],
|
||||
|
||||
"(code plant-boss-arm-die)": [
|
||||
[3, "v1", "collide-shape-prim-group"],
|
||||
[18, "a0", "collide-shape-prim-group"],
|
||||
[58, "v1", "art-joint-anim"],
|
||||
[109, "v1", "art-joint-anim"],
|
||||
[165, "v1", "art-joint-anim"],
|
||||
[186, "v1", "art-joint-anim"]
|
||||
],
|
||||
|
||||
"(code plant-boss-back-arms-idle)": [
|
||||
[10, "v1", "art-joint-anim"]
|
||||
],
|
||||
|
||||
"(code plant-boss-vine-hit)": [
|
||||
[88, "v1", "art-joint-anim"]
|
||||
],
|
||||
|
||||
"(code plant-boss-dead-bounce)": [
|
||||
[79, "v1", "art-joint-anim"]
|
||||
],
|
||||
|
||||
"(code plant-boss-vine-die)": [
|
||||
[46, "v1", "art-joint-anim"]
|
||||
],
|
||||
|
||||
"(code plant-boss-dead-idle)": [
|
||||
[16, "v1", "art-joint-anim"]
|
||||
],
|
||||
|
||||
"(code plant-boss-dead)": [
|
||||
[45, "v1", "art-joint-anim"],
|
||||
[113, "v1", "art-joint-anim"]
|
||||
],
|
||||
|
||||
"(code plant-boss-root-idle)": [
|
||||
[17, "v1", "art-joint-anim"]
|
||||
],
|
||||
|
||||
"(code plant-boss-eat)": [
|
||||
[274, "v1", "art-joint-anim"]
|
||||
],
|
||||
|
||||
"(code plant-boss-vulnerable)": [
|
||||
[149, "v1", "art-joint-anim"],
|
||||
[221, "v1", "art-joint-anim"]
|
||||
],
|
||||
|
||||
"(code plant-boss-far-idle)": [
|
||||
[62, "v1", "art-joint-anim"]
|
||||
],
|
||||
|
||||
"(code plant-boss-idle)": [
|
||||
[25, "v1", "art-joint-anim"],
|
||||
[177, "v1", "art-joint-anim"],
|
||||
[271, "v1", "art-joint-anim"],
|
||||
[304, "v1", "art-joint-anim"],
|
||||
[366, "v1", "art-joint-anim"],
|
||||
[404, "v1", "art-joint-anim"]
|
||||
],
|
||||
|
||||
"(code plant-boss-leaf-close)": [
|
||||
[34, "v1", "art-joint-anim"],
|
||||
[98, "v1", "art-joint-anim"]
|
||||
],
|
||||
|
||||
"(code plant-boss-leaf-bounce)": [
|
||||
[17, "v1", "art-joint-anim"],
|
||||
[72, "v1", "art-joint-anim"]
|
||||
],
|
||||
|
||||
"(code plant-boss-leaf-open)": [
|
||||
[98, "v1", "art-joint-anim"],
|
||||
[227, "v1", "art-joint-anim"]
|
||||
],
|
||||
|
||||
"(code plant-boss-leaf-idle)": [
|
||||
[15, "v1", "art-joint-anim"],
|
||||
[74, "v1", "art-joint-anim"]
|
||||
],
|
||||
|
||||
"(code plant-boss-vine-idle)": [
|
||||
[17, "v1", "art-joint-anim"]
|
||||
],
|
||||
|
||||
"(code plant-boss-back-arms-die)": [
|
||||
[20, "v1", "art-joint-anim"],
|
||||
[82, "v1", "art-joint-anim"]
|
||||
],
|
||||
|
||||
"(code plant-boss-back-arms-hit)": [
|
||||
[149, "v1", "art-joint-anim"]
|
||||
],
|
||||
|
||||
"(method 7 ice-cube)": [
|
||||
[24, "t9", "(function nav-enemy int nav-enemy)"]
|
||||
],
|
||||
|
||||
"(code ice-cube-appear)": [
|
||||
[14, "v1", "art-joint-anim"]
|
||||
],
|
||||
|
||||
"(code ice-cube-tired)": [
|
||||
[14, "v1", "art-joint-anim"],
|
||||
[68, "v1", "art-joint-anim"]
|
||||
],
|
||||
|
||||
"(code ice-cube-become-mean)": [
|
||||
[15, "v1", "art-joint-anim"]
|
||||
],
|
||||
|
||||
"(code ice-cube-retract-spikes)": [
|
||||
[22, "v1", "art-joint-anim"]
|
||||
],
|
||||
|
||||
"(code ice-cube-mean-turn-to-charge)": [
|
||||
[15, "v1", "art-joint-anim"],
|
||||
[187, "v1", "art-joint-anim"]
|
||||
],
|
||||
|
||||
"(code ice-cube-face-player)": [
|
||||
[15, "v1", "art-joint-anim"],
|
||||
[187, "v1", "art-joint-anim"]
|
||||
],
|
||||
|
||||
"(code ice-cube-appear-land)": [
|
||||
[37, "v1", "art-joint-anim"]
|
||||
],
|
||||
|
||||
"(code nav-enemy-patrol ice-cube)": [
|
||||
[8, "t9", "(function none)"]
|
||||
],
|
||||
|
||||
"(event double-lurker-top-on-shoulders)": [
|
||||
[5, "a0", "vector"],
|
||||
[22, "v1", "vector"],
|
||||
[24, "v1", "vector"]
|
||||
],
|
||||
|
||||
"(code double-lurker-top-on-shoulders-die)": [
|
||||
[18, "v1", "art-joint-anim"]
|
||||
],
|
||||
|
||||
"(code double-lurker-top-knocked-down)": [
|
||||
[51, "v1", "art-joint-anim"]
|
||||
],
|
||||
|
||||
"(code double-lurker-both-knocked-back)": [
|
||||
[14, "v1", "art-joint-anim"]
|
||||
],
|
||||
|
||||
"(code double-lurker-knocked-back)": [
|
||||
[14, "v1", "art-joint-anim"]
|
||||
],
|
||||
|
||||
"(code double-lurker-break-apart)": [
|
||||
[10, "v1", "art-joint-anim"]
|
||||
],
|
||||
|
||||
"(code nav-enemy-patrol double-lurker-top)": [
|
||||
[27, "t9", "(function none)"]
|
||||
],
|
||||
|
||||
"(code nav-enemy-patrol double-lurker)": [
|
||||
[27, "t9", "(function none)"]
|
||||
],
|
||||
|
||||
"double-lurker-default-event-handler": [
|
||||
[95, "gp", "target"]
|
||||
],
|
||||
|
||||
"(method 51 double-lurker)": [
|
||||
[18, "v1", "collide-shape-prim-group"],
|
||||
[22, "v1", "collide-shape-prim-group"]
|
||||
],
|
||||
|
||||
"(method 7 billy)": [
|
||||
[26, "t9", "(function process-drawable int process-drawable)"]
|
||||
],
|
||||
|
||||
"(method 38 billy)": [
|
||||
[33, "t9", "(function nav-enemy none)"]
|
||||
],
|
||||
|
||||
"(enter nav-enemy-victory billy-rat)": [
|
||||
[4, "v0", "(state nav-enemy)"]
|
||||
],
|
||||
|
||||
"(code billy-rat-salivate)": [
|
||||
[43, "v1", "art-joint-anim"]
|
||||
],
|
||||
|
||||
"(code idle billy)": [
|
||||
[35, "v1", "float"],
|
||||
[132, "v1", "art-joint-anim"]
|
||||
],
|
||||
|
||||
"(enter billy-done)": [
|
||||
[191, "v1", "float"]
|
||||
],
|
||||
|
||||
"(method 43 billy)": [
|
||||
[19, "v1", "float"]
|
||||
],
|
||||
|
||||
"(event billy-done)": [
|
||||
[15, "v1", "billy-rat"],
|
||||
[19, "v1", "billy-rat"]
|
||||
],
|
||||
|
||||
"(event billy-playing)": [
|
||||
[14, "v1", "float"],
|
||||
[93, "s5", "billy-rat"],
|
||||
[103, "v1", "float"],
|
||||
[169, "v1", "billy-snack"],
|
||||
[216, "v1", "billy-snack"],
|
||||
[219, "v1", "billy-snack"],
|
||||
[223, "v1", "billy-snack"],
|
||||
[240, "s5", "billy-snack"],
|
||||
[248, "v1", "handle"],
|
||||
[249, "s5", "billy-snack"],
|
||||
[251, "s5", "billy-snack"],
|
||||
[255, "s5", "billy-snack"]
|
||||
],
|
||||
|
||||
"(code lurkerworm-rise)": [
|
||||
[13, "v1", "art-joint-anim"]
|
||||
],
|
||||
|
||||
"(code lurkerworm-sink)": [
|
||||
[10, "v1", "art-joint-anim"]
|
||||
],
|
||||
|
||||
"(code lurkerworm-die)": [
|
||||
[19, "v1", "art-joint-anim"]
|
||||
],
|
||||
|
||||
"(code lurkerworm-rest)": [
|
||||
[10, "v1", "float"],
|
||||
[35, "v1", "art-joint-anim"],
|
||||
[89, "v1", "float"]
|
||||
],
|
||||
|
||||
"(method 7 pelican)": [
|
||||
[36, "t9", "(function process-drawable int process-drawable)"]
|
||||
],
|
||||
|
||||
"pelican-fly": [
|
||||
[61, "v1", "art-joint-anim"],
|
||||
[186, "v1", "art-joint-anim"]
|
||||
],
|
||||
|
||||
"(code pelican-dive)": [
|
||||
[161, "v1", "art-joint-anim"]
|
||||
],
|
||||
|
||||
"(code pelican-wait-at-nest)": [
|
||||
[30, "v1", "art-joint-anim"],
|
||||
[118, "v1", "art-joint-anim"],
|
||||
[197, "v1", "art-joint-anim"]
|
||||
],
|
||||
|
||||
"(event pelican-wait-at-nest)": [
|
||||
[49, "v1", "process-drawable"]
|
||||
],
|
||||
|
||||
"(code pelican-explode)": [
|
||||
[71, "a0", "process-drawable"]
|
||||
],
|
||||
|
||||
"(event pelican-circle)": [
|
||||
[23, "v1", "float"]
|
||||
],
|
||||
|
||||
"(code pelican-spit)": [
|
||||
[42, "gp", "handle"],
|
||||
[50, "gp", "handle"],
|
||||
[121, "gp", "handle"],
|
||||
[143, "gp", "handle"],
|
||||
[155, "gp", "handle"],
|
||||
[161, "s4", "handle"],
|
||||
[173, "s4", "handle"]
|
||||
],
|
||||
|
||||
"(trans energyarm-no-ball)": [
|
||||
[27, "v1", "float"],
|
||||
[57, "v1", "float"]
|
||||
],
|
||||
|
||||
"(trans energyarm-idle)": [
|
||||
[21, "v1", "float"]
|
||||
],
|
||||
|
||||
"(code energyhub-stopped)": [
|
||||
[11, "v1", "float"]
|
||||
],
|
||||
|
||||
"(code energyhub-stop)": [
|
||||
[11, "v1", "float"]
|
||||
],
|
||||
|
||||
"(code energyhub-idle)": [
|
||||
[11, "v1", "float"]
|
||||
],
|
||||
|
||||
"(code energyarm-idle)": [
|
||||
[13, "v1", "float"],
|
||||
[36, "v1", "float"]
|
||||
],
|
||||
|
||||
"energyhub-set-lava-height": [
|
||||
[25, "v1", "process-drawable"],
|
||||
[28, "v1", "process-drawable"]
|
||||
],
|
||||
|
||||
"(trans energyhub-idle)": [
|
||||
[34, "v1", "energyarm"]
|
||||
],
|
||||
|
||||
"(post idle citb-sage)": [
|
||||
[3, "t9", "(function none :behavior citb-sage)"]
|
||||
],
|
||||
|
||||
"(method 44 red-sagecage)": [
|
||||
[35, "t9", "(function citb-sage none)"]
|
||||
],
|
||||
|
||||
"(method 44 blue-sagecage)": [
|
||||
[35, "t9", "(function citb-sage none)"]
|
||||
],
|
||||
|
||||
"(method 44 yellow-sagecage)": [
|
||||
[35, "t9", "(function citb-sage none)"]
|
||||
],
|
||||
|
||||
"(method 44 green-sagecage)": [
|
||||
[35, "t9", "(function citb-sage none)"]
|
||||
],
|
||||
|
||||
"(method 43 red-sagecage)": [
|
||||
[24, "v1", "float"]
|
||||
],
|
||||
|
||||
"(method 43 blue-sagecage)": [
|
||||
[24, "v1", "float"]
|
||||
],
|
||||
|
||||
"(method 43 yellow-sagecage)": [
|
||||
[24, "v1", "float"]
|
||||
],
|
||||
|
||||
"(event play-anim green-sagecage)": [
|
||||
[128, "s5", "robotboss"]
|
||||
],
|
||||
|
||||
"(method 21 citb-sagecage)": [
|
||||
[[27, 97], "v1", "vector"]
|
||||
],
|
||||
|
||||
"(code citb-sagecage-idle)": [
|
||||
[9, "gp", "citb-sage"],
|
||||
[15, "gp", "citb-sage"]
|
||||
],
|
||||
|
||||
"add-blue-motion": [
|
||||
[25, "v1", "process-drawable"],
|
||||
[34, "gp", "collide-shape"]
|
||||
],
|
||||
|
||||
"(event wait eco-collectable)": [
|
||||
[118, "a0", "vector"],
|
||||
[136, "a0", "vector"]
|
||||
],
|
||||
|
||||
"(event pickup eco-collectable)": [
|
||||
[18, "a0", "vector"]
|
||||
],
|
||||
|
||||
"(event fuel-cell-clone-anim)": [
|
||||
[35, "a0", "vector"]
|
||||
],
|
||||
|
||||
"fuel-cell-animate": [
|
||||
[9, "gp", "fuel-cell"]
|
||||
],
|
||||
|
||||
"(event wait fuel-cell)": [
|
||||
[95, "a0", "vector"]
|
||||
],
|
||||
|
||||
"(enter pickup fuel-cell)": [
|
||||
[9, "v0", "(state eco-collectable)"]
|
||||
],
|
||||
|
||||
"(code ecovalve-idle)": [
|
||||
[41, "v1", "process-drawable"]
|
||||
],
|
||||
|
||||
"(code vent-pickup)": [
|
||||
[25, "gp", "process-drawable"],
|
||||
[59, "s5", "collide-shape"]
|
||||
],
|
||||
|
||||
"(anon-function 69 collectables)": [
|
||||
[2, "v1", "handle"],
|
||||
[5, "v1", "handle"],
|
||||
[13, "s5", "eco-collectable"],
|
||||
[33, "v1", "target"],
|
||||
[38, "v1", "target"],
|
||||
[50, "s5", "eco-collectable"]
|
||||
],
|
||||
|
||||
"fuel-cell-init-by-other": [
|
||||
[118, "gp", "vector"]
|
||||
],
|
||||
|
||||
"ecovalve-init-by-other": [
|
||||
[95, "a0", "process-drawable"],
|
||||
[144, "v1", "process-drawable"]
|
||||
],
|
||||
|
||||
"(method 11 shover)": [
|
||||
["_stack_", 16, "res-tag"],
|
||||
[120, "v0", "(pointer float)"]
|
||||
],
|
||||
|
||||
"(method 11 sun-iris-door)": [
|
||||
["_stack_", 16, "res-tag"],
|
||||
[153, "v0", "(pointer float)"]
|
||||
],
|
||||
|
||||
"(event sun-iris-door-closed)": [
|
||||
[14, "a0", "vector"]
|
||||
],
|
||||
|
||||
"(event sun-iris-door-opening)": [
|
||||
[14, "a0", "vector"]
|
||||
],
|
||||
|
||||
"(event sun-iris-door-closing)": [
|
||||
[14, "a0", "vector"]
|
||||
],
|
||||
|
||||
"(event sun-iris-door-open)": [
|
||||
[20, "a0", "vector"]
|
||||
],
|
||||
|
||||
"sun-iris-door-init-by-other": [
|
||||
[97, "v1", "art-joint-anim"]
|
||||
],
|
||||
|
||||
"(method 7 steam-cap)": [
|
||||
[19, "t9", "(function process-drawable int process-drawable)"]
|
||||
],
|
||||
|
||||
"(method 11 steam-cap)": [
|
||||
["_stack_", 16, "res-tag"],
|
||||
[139, "v0", "(pointer float)"]
|
||||
],
|
||||
|
||||
"(method 11 whirlpool)": [
|
||||
["_stack_", 16, "res-tag"],
|
||||
[92, "v0", "(pointer float)"]
|
||||
],
|
||||
|
||||
"placeholder-do-not-add-below": []
|
||||
}
|
||||
|
||||
@@ -536,8 +536,9 @@ goos::Object decompile_structure(const TypeSpec& type,
|
||||
|
||||
// check enough room
|
||||
if (int(words.at(label.target_segment).size()) < word_count + offset_location / 4) {
|
||||
throw std::runtime_error(fmt::format("Structure type {} takes up {} bytes and doesn't fit.",
|
||||
type_info->get_name(), type_info->get_size_in_memory()));
|
||||
throw std::runtime_error(fmt::format(
|
||||
"Structure type {} takes up {} bytes and doesn't fit. {}:{}", type_info->get_name(),
|
||||
type_info->get_size_in_memory(), label.name, offset_location));
|
||||
}
|
||||
|
||||
// get words for real
|
||||
|
||||
@@ -203,7 +203,7 @@
|
||||
:flag-assert #x1d0000005c
|
||||
(:methods
|
||||
(new (symbol type basic uint uint) _type_ 0)
|
||||
(dummy-28 () none 28)
|
||||
(dummy-28 (_type_ int) none 28)
|
||||
)
|
||||
)
|
||||
|
||||
@@ -249,21 +249,21 @@
|
||||
:size-assert #xb8
|
||||
:flag-assert #x38000000b8
|
||||
(:methods
|
||||
(new (symbol type process collide-list-enum) _type_ 0)
|
||||
(new (symbol type process collide-list-enum) _type_)
|
||||
(TODO-RENAME-28 (_type_) none 28)
|
||||
(dummy-29 (_type_ int) none 29)
|
||||
(TODO-RENAME-30 (_type_ vector) none 30)
|
||||
(dummy-31 () none 31)
|
||||
(dummy-32 () none 32)
|
||||
(dummy-32 (_type_ float uint) none 32)
|
||||
(dummy-33 (_type_ vector uint) none 33)
|
||||
(dummy-34 (_type_ uint) collide-shape-prim 34)
|
||||
(dummy-34 (_type_ uint) collide-shape-prim 34)
|
||||
(dummy-35 (_type_) none 35)
|
||||
(dummy-36 () none 36)
|
||||
(dummy-37 () none 37)
|
||||
(dummy-37 (_type_ vector) none 37)
|
||||
(dummy-38 () none 38)
|
||||
(dummy-39 () none 39)
|
||||
(dummy-40 (_type_ structure) none 40) ;; ?? - I've seen overlaps-others-params | collide-edge-hold-list
|
||||
(dummy-41 () none 41)
|
||||
(dummy-41 (_type_ attack-info float) none 41)
|
||||
(dummy-42 () none 42)
|
||||
(dummy-43 () none 43)
|
||||
(dummy-44 (_type_) none 44)
|
||||
|
||||
@@ -7,24 +7,25 @@
|
||||
|
||||
(declare-type touching-shapes-entry structure)
|
||||
|
||||
;; decomp begins
|
||||
;; DECOMP BEGINS
|
||||
|
||||
(deftype touching-prim (structure)
|
||||
((cprim collide-shape-prim :offset-assert 0) ;; a big guess, there's a few that meet this name
|
||||
(has-tri? symbol :offset-assert 4)
|
||||
(tri collide-tri-result :inline :offset-assert 16)
|
||||
((cprim collide-shape-prim :offset-assert 0)
|
||||
(has-tri? symbol :offset-assert 4)
|
||||
(tri collide-tri-result :inline :offset-assert 16)
|
||||
)
|
||||
:method-count-assert 9
|
||||
:size-assert #x64
|
||||
:flag-assert #x900000064
|
||||
)
|
||||
|
||||
|
||||
(deftype touching-prims-entry (structure)
|
||||
((next touching-prims-entry :offset-assert 0)
|
||||
(prev touching-prims-entry :offset-assert 4)
|
||||
(allocated? symbol :offset-assert 8)
|
||||
(u float :offset-assert 12)
|
||||
(prim1 touching-prim :inline :offset-assert 16)
|
||||
((next touching-prims-entry :offset-assert 0)
|
||||
(prev touching-prims-entry :offset-assert 4)
|
||||
(allocated? symbol :offset-assert 8)
|
||||
(u float :offset-assert 12)
|
||||
(prim1 touching-prim :inline :offset-assert 16)
|
||||
(prim2 touching-prim :inline :offset-assert 128)
|
||||
)
|
||||
:method-count-assert 13
|
||||
@@ -38,75 +39,75 @@
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
(deftype touching-prims-entry-pool (structure)
|
||||
((head touching-prims-entry :offset-assert 0)
|
||||
(nodes touching-prims-entry 64 :inline :offset-assert 16)
|
||||
((head touching-prims-entry :offset-assert 0)
|
||||
(nodes touching-prims-entry 64 :inline :offset-assert 16)
|
||||
)
|
||||
:method-count-assert 13
|
||||
:size-assert #x3c10
|
||||
:flag-assert #xd00003c10
|
||||
(:methods
|
||||
(new (symbol type) _type_ 0)
|
||||
(dummy-9 () none 9)
|
||||
(dummy-10 () none 10)
|
||||
(init-list! (_type_) none 11)
|
||||
(dummy-12 () none 12)
|
||||
)
|
||||
(new (symbol type) _type_ 0)
|
||||
(dummy-9 () none 9)
|
||||
(dummy-10 () none 10)
|
||||
(init-list! (_type_) none 11)
|
||||
(dummy-12 () none 12)
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
(defmethod init-list! touching-prims-entry-pool ((obj touching-prims-entry-pool))
|
||||
"Initialize all entries to be not allocated and in a linked list."
|
||||
(let ((prev (the-as touching-prims-entry #f)))
|
||||
(let ((current (the-as touching-prims-entry (-> obj nodes))))
|
||||
(set! (-> obj head) current)
|
||||
(countdown (a0-1 64)
|
||||
(set! (-> current prev) prev)
|
||||
(let ((next (&+ current 240)))
|
||||
(set! (-> current next) (the-as touching-prims-entry next))
|
||||
(set! (-> current allocated?) #f)
|
||||
(set! prev current)
|
||||
(set! current (the-as touching-prims-entry next))
|
||||
)
|
||||
)
|
||||
(let ((current (the-as touching-prims-entry (-> obj nodes))))
|
||||
(set! (-> obj head) current)
|
||||
(countdown (a0-1 64)
|
||||
(set! (-> current prev) prev)
|
||||
(let ((next (&+ current 240)))
|
||||
(set! (-> current next) (the-as touching-prims-entry next))
|
||||
(set! (-> current allocated?) #f)
|
||||
(set! prev current)
|
||||
(set! current (the-as touching-prims-entry next))
|
||||
)
|
||||
(set! (-> prev next) #f)
|
||||
)
|
||||
)
|
||||
(set! (-> prev next) #f)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
|
||||
(defmethod new touching-prims-entry-pool ((allocation symbol) (type-to-make type))
|
||||
"Allocate a new touching-prims-entry-pool"
|
||||
|
||||
;; Note - the original code passed (-> type-to-make size) as an argument.
|
||||
;; however, the new method of structure doesn't have this argument.
|
||||
;; it uses the same value for the size so it doesn't really matter.
|
||||
(let ((obj (the touching-prims-entry-pool ((method-of-type structure new)
|
||||
allocation
|
||||
type-to-make
|
||||
;; (-> type-to-make size) see note
|
||||
)
|
||||
)))
|
||||
(init-list! obj)
|
||||
obj
|
||||
(defmethod
|
||||
new
|
||||
touching-prims-entry-pool
|
||||
((allocation symbol) (type-to-make type))
|
||||
(let ((t9-0 (method-of-type structure new))
|
||||
(v1-1 type-to-make)
|
||||
)
|
||||
(-> type-to-make size)
|
||||
(let ((gp-0 (t9-0 allocation v1-1)))
|
||||
((method-of-type touching-prims-entry-pool init-list!)
|
||||
(the-as touching-prims-entry-pool gp-0)
|
||||
)
|
||||
(the-as touching-prims-entry-pool gp-0)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
(deftype touching-shapes-entry (structure)
|
||||
((cshape1 collide-shape :offset-assert 0)
|
||||
(cshape2 collide-shape :offset-assert 4)
|
||||
(resolve-u int8 :offset-assert 8)
|
||||
(head touching-prims-entry :offset-assert 12)
|
||||
((cshape1 collide-shape :offset-assert 0)
|
||||
(cshape2 collide-shape :offset-assert 4)
|
||||
(resolve-u int8 :offset-assert 8)
|
||||
(head touching-prims-entry :offset-assert 12)
|
||||
)
|
||||
:allow-misaligned
|
||||
:method-count-assert 18
|
||||
:allow-misaligned :method-count-assert 18
|
||||
:size-assert #x10
|
||||
:flag-assert #x1200000010
|
||||
(:methods
|
||||
(dummy-9 () none 9)
|
||||
(touched-shape (_type_ collide-shape-moving) collide-shape 10)
|
||||
(dummy-11 () none 11)
|
||||
(prims-touching? (_type_ collide-shape-moving uint) touching-prims-entry 12) ; this one!
|
||||
(dummy-13 () none 13)
|
||||
(prims-touching? (_type_ collide-shape-moving uint) touching-prims-entry 12)
|
||||
(dummy-13 (_type_ control-info int int) none 13)
|
||||
(dummy-14 () none 14)
|
||||
(dummy-15 () none 15)
|
||||
(get-head (_type_) touching-prims-entry 16)
|
||||
@@ -114,10 +115,11 @@
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
(deftype touching-list (structure)
|
||||
((num-touching-shapes int32 :offset-assert 0)
|
||||
(resolve-u int8 :offset-assert 4)
|
||||
(touching-shapes touching-shapes-entry 32 :inline :offset-assert 8)
|
||||
((num-touching-shapes int32 :offset-assert 0)
|
||||
(resolve-u int8 :offset-assert 4)
|
||||
(touching-shapes touching-shapes-entry 32 :inline :offset-assert 8)
|
||||
)
|
||||
:method-count-assert 15
|
||||
:size-assert #x208
|
||||
@@ -133,29 +135,37 @@
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
(defmethod new touching-list ((allocation symbol) (type-to-make type))
|
||||
"See note in touching-prims-entry-pool"
|
||||
(let ((obj (the touching-list ((method-of-type structure new)
|
||||
allocation
|
||||
type-to-make
|
||||
;; (-> type-to-make size) see note
|
||||
)
|
||||
)))
|
||||
(let ((t9-0 (method-of-type structure new))
|
||||
(v1-1 type-to-make)
|
||||
)
|
||||
(-> type-to-make size)
|
||||
(let ((obj (the-as touching-list (t9-0 allocation v1-1))))
|
||||
(set! (-> obj num-touching-shapes) 0)
|
||||
(set! (-> obj resolve-u) 0)
|
||||
obj
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
(defmethod get-head touching-shapes-entry ((obj touching-shapes-entry))
|
||||
(-> obj head)
|
||||
)
|
||||
|
||||
(defmethod unknown1 touching-shapes-entry ((obj touching-shapes-entry) (arg0 (pointer uint32)))
|
||||
(defmethod
|
||||
unknown1
|
||||
touching-shapes-entry
|
||||
((obj touching-shapes-entry) (arg0 (pointer uint32)))
|
||||
(-> arg0 0)
|
||||
)
|
||||
|
||||
(define-perm *touching-prims-entry-pool* touching-prims-entry-pool
|
||||
(new 'global 'touching-prims-entry-pool)
|
||||
)
|
||||
|
||||
(define-perm *touching-prims-entry-pool* touching-prims-entry-pool (new 'global 'touching-prims-entry-pool))
|
||||
(define-perm *touching-list* touching-list (new 'global 'touching-list))
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -44,7 +44,7 @@
|
||||
(collect-effect-time uint64 :offset-assert 328)
|
||||
(respawn-delay uint64 :offset-assert 336)
|
||||
(sound-name sound-spec :offset-assert 344)
|
||||
(target uint64 :offset-assert 352)
|
||||
(target handle :offset-assert 352)
|
||||
(suck-time uint64 :offset-assert 360)
|
||||
(suck-y-offset float :offset-assert 368)
|
||||
(speed vector :inline :offset-assert 384)
|
||||
@@ -52,12 +52,12 @@
|
||||
)
|
||||
(:methods
|
||||
(wait () _type_ :state 22) ;; state
|
||||
(pickup () _type_ :state 23) ;; state
|
||||
(pickup (object handle) _type_ :state 23) ;; state
|
||||
(die () _type_ :state 24) ;; state
|
||||
(jump () _type_ :state 25)
|
||||
(notice-blue () _type_ :state 26) ;; state
|
||||
(notice-blue (handle) _type_ :state 26) ;; state
|
||||
(get-pickup-sound (_type_ pickup-type) ambient-sound 27)
|
||||
(dummy-28 (_type_ basic pickup-type float) none 28)
|
||||
(dummy-28 (_type_ res-lump pickup-type float) object 28)
|
||||
(update-sound! (_type_) none 29) ;; something to do with particles too
|
||||
(blocked () _type_ :state 30)
|
||||
)
|
||||
@@ -74,7 +74,7 @@
|
||||
:size-assert #x19c
|
||||
:flag-assert #x1f0130019c
|
||||
)
|
||||
(define-extern fuel-cell-init-as-clone (function handle object none))
|
||||
(define-extern fuel-cell-init-as-clone (function handle int none :behavior fuel-cell))
|
||||
(define-extern fuel-cell-pick-anim (function process-drawable spool-anim))
|
||||
|
||||
(defskelgroup *money-sg* money
|
||||
@@ -105,4 +105,5 @@
|
||||
:flag-assert #x1f01300194
|
||||
)
|
||||
|
||||
(define-extern money-init-by-other-no-bob (function vector vector int float entity none))
|
||||
;; TODO - for orb-cache
|
||||
(define-extern money-init-by-other-no-bob (function vector vector fact-info float entity none :behavior money))
|
||||
|
||||
@@ -71,19 +71,19 @@
|
||||
|
||||
|
||||
(deftype part-tracker (process)
|
||||
((root trsqv :offset-assert 112)
|
||||
(part sparticle-launch-control :offset-assert 116)
|
||||
(target handle :offset-assert 120)
|
||||
(callback (function part-tracker none) :offset-assert 128)
|
||||
(linger-callback (function part-tracker none) :offset-assert 132)
|
||||
(duration int64 :offset-assert 136)
|
||||
(linger-duration int64 :offset-assert 144)
|
||||
(start-time int64 :offset-assert 152)
|
||||
(offset vector :inline :offset-assert 160)
|
||||
(userdata uint64 :offset-assert 176)
|
||||
(user-time int64 2 :offset-assert 184)
|
||||
(user-vector vector 2 :inline :offset-assert 208)
|
||||
(user-handle uint32 2 :offset-assert 240)
|
||||
((root trsqv :offset-assert 112)
|
||||
(part sparticle-launch-control :offset-assert 116)
|
||||
(target handle :offset-assert 120)
|
||||
(callback (function part-tracker vector) :offset-assert 128)
|
||||
(linger-callback (function part-tracker vector) :offset-assert 132)
|
||||
(duration uint64 :offset-assert 136)
|
||||
(linger-duration uint64 :offset-assert 144)
|
||||
(start-time uint64 :offset-assert 152)
|
||||
(offset vector :inline :offset-assert 160)
|
||||
(userdata uint64 :offset-assert 176)
|
||||
(user-time int64 2 :offset-assert 184)
|
||||
(user-vector vector 2 :inline :offset-assert 208)
|
||||
(user-handle uint32 2 :offset-assert 240)
|
||||
)
|
||||
:heap-base #x90
|
||||
:method-count-assert 14
|
||||
|
||||
@@ -835,11 +835,11 @@
|
||||
(defstate part-tracker-process (part-tracker)
|
||||
:code
|
||||
(behavior ()
|
||||
(set! (-> self start-time) (-> *display* base-frame-counter))
|
||||
(set! (-> self start-time) (the-as uint (-> *display* base-frame-counter)))
|
||||
(while
|
||||
(<
|
||||
(- (-> *display* base-frame-counter) (-> self start-time))
|
||||
(-> self duration)
|
||||
(- (-> *display* base-frame-counter) (the-as int (-> self start-time)))
|
||||
(the-as int (-> self duration))
|
||||
)
|
||||
(let ((gp-0 (handle->process (-> self target))))
|
||||
(when gp-0
|
||||
@@ -867,7 +867,10 @@
|
||||
)
|
||||
(let ((gp-2 (-> *display* base-frame-counter)))
|
||||
(until
|
||||
(>= (- (-> *display* base-frame-counter) gp-2) (-> self linger-duration))
|
||||
(>=
|
||||
(- (-> *display* base-frame-counter) gp-2)
|
||||
(the-as int (-> self linger-duration))
|
||||
)
|
||||
(if (-> self linger-callback)
|
||||
((-> self linger-callback) self)
|
||||
)
|
||||
@@ -897,7 +900,7 @@
|
||||
(set! (-> self root) (new 'process 'trsqv))
|
||||
(set! (-> self root trans quad) (-> arg5 world-sphere quad))
|
||||
(set! (-> self offset quad) (-> arg5 world-sphere quad))
|
||||
(set! (-> self callback) arg2)
|
||||
(set! (-> self callback) (the-as (function part-tracker vector) arg2))
|
||||
(set! (-> self linger-callback) #f)
|
||||
(set! (-> self userdata) (the-as uint arg3))
|
||||
(set! (-> self target) (process->handle arg4))
|
||||
@@ -911,8 +914,8 @@
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! (-> self duration) arg1)
|
||||
(set! (-> self linger-duration) (the-as int (-> arg0 linger-duration)))
|
||||
(set! (-> self duration) (the-as uint arg1))
|
||||
(set! (-> self linger-duration) (-> arg0 linger-duration))
|
||||
(set! (-> self part) (create-launch-control arg0 self))
|
||||
(go part-tracker-process)
|
||||
(none)
|
||||
|
||||
@@ -251,8 +251,8 @@
|
||||
(dummy-20 () none 20)
|
||||
(dummy-21 () none 21)
|
||||
(dummy-22 () none 22)
|
||||
(dummy-23 () none 23)
|
||||
(dummy-24 (_type_ float symbol) none 24)
|
||||
(dummy-23 (_type_ vector check-vector-collision-with-nav-spheres-info) float 23) ;; TODO - unconfirmed
|
||||
(dummy-24 (_type_ float clip-travel-vector-to-mesh-return-info) none 24)
|
||||
(dummy-25 (_type_ vector float) symbol 25) ; see - nav-enemy-test-point-near-nav-mesh?
|
||||
(dummy-26 (_type_) none 26)
|
||||
(dummy-27 () none 27)
|
||||
|
||||
@@ -165,11 +165,17 @@
|
||||
|
||||
(beach-seagulls-avalanche #x273)
|
||||
|
||||
(beach-pelican-quick-get-cell #x274)
|
||||
|
||||
(beach-flutflutegg-hint #x275)
|
||||
|
||||
(sidekick-hint-fish-powerup #x278)
|
||||
|
||||
(sidekick-speech-hint-crate-darkeco1 #x281)
|
||||
(beach-collectors-unblocked #x288)
|
||||
|
||||
(misty-stopped-lurkers-at-silo #x28a)
|
||||
(misty-stopped-balloon-lurkers #x28b)
|
||||
|
||||
(sidekick-speech-crate-steel-break1 #x283)
|
||||
(sidekick-speech-hint-crate-iron #x284)
|
||||
@@ -180,6 +186,9 @@
|
||||
(sidekick-speech-crate-steel-break2 #x28e)
|
||||
(sidekick-speech-hint-crate-darkeco2 #x28f)
|
||||
|
||||
(collectables-scout-flies-red-boxes #x295)
|
||||
|
||||
(found-all-scout-flies #x296)
|
||||
(yakow-owed-powercell #x297)
|
||||
|
||||
(misty-teetertotter-bonk-dax-tutorial #x2a4)
|
||||
@@ -236,6 +245,10 @@
|
||||
(rolling-ring-chase-1 #x324)
|
||||
(rolling-ring-chase-2 #x325)
|
||||
|
||||
(rolling-beat-lurkers #x327)
|
||||
|
||||
(swamp-finished-with-flutflut #x328)
|
||||
|
||||
(rolling-race-beat-record #x335)
|
||||
(sidekick-speech-hint-rolling-crate-darkeco #x336)
|
||||
|
||||
@@ -247,7 +260,8 @@
|
||||
(rolling-ring-hint-be-quick-all #x341)
|
||||
|
||||
(sunken-blue-eco-charger-hint #x345)
|
||||
|
||||
(sunken-take-it-easy-hot-pipes #x34e)
|
||||
(sunken-double-lurker-hint #x347)
|
||||
(sunken-qbert-plat-hint #x34a)
|
||||
|
||||
(sunken-blue-eco-charger-all-hint #x34d)
|
||||
@@ -257,6 +271,8 @@
|
||||
(swamp-bats-hint #x364) ;; maybe we can ???? the bats. lol
|
||||
(flutflut-reminder #x368)
|
||||
|
||||
(sage-golfclap-i-have-low-expectations #x36a) ;; where was this said?
|
||||
|
||||
(village2-warp-gate-reminder #x36f)
|
||||
(village2-warp-gate-reminder-annoyed #x370)
|
||||
(village2-warp-gate-reminder-very-annoyed #x371)
|
||||
@@ -329,17 +345,27 @@
|
||||
|
||||
(fire-canyon-level-name #x50c)
|
||||
|
||||
(fire-canyon-we-made-it #x515)
|
||||
|
||||
(collectables-theres-scout-flys-here-too #x516)
|
||||
|
||||
(ogre-end #x600)
|
||||
(ogre-buzzer #x601)
|
||||
(ogre-boss #x603)
|
||||
(ogre-boss-killed #x604)
|
||||
|
||||
(assistant-voicebox-intro-ogre-race #x605)
|
||||
|
||||
(sidekick-speech-hint-ogre-race #x61c)
|
||||
(assistant-finished-mountain-pass-race #x61d)
|
||||
|
||||
(lavatube-end #x700)
|
||||
(lavatube-buzzer #x701)
|
||||
|
||||
(lavatube-shoot-the-spheres #x70d)
|
||||
|
||||
(lavatube-spheres-door-open #x710)
|
||||
|
||||
(citadel-buzzer #x800)
|
||||
(citadel-level-name #x801)
|
||||
(citadel-sage-blue #x802)
|
||||
@@ -355,17 +381,20 @@
|
||||
|
||||
(training-precursor-orbs #x901)
|
||||
(training-power-cells #x902)
|
||||
(training-assistant-found-scout-fly #x903)
|
||||
(training-assistant-found-scout-fly-cell #x904)
|
||||
(training-blue-eco-vent #x907)
|
||||
(training-eco-green #x908)
|
||||
(training-eco-blue #x909)
|
||||
(training-more-eco-more-time #x90a)
|
||||
(training-precursor-door #x90b)
|
||||
(training-eco-opened-door #x90c)
|
||||
(training-double-jump #x90e)
|
||||
|
||||
(sage-voicebox-hint-crate-iron #x917)
|
||||
|
||||
(training-warp-gate-blocked #x919)
|
||||
(training-warp-gate-reminder #x91a)
|
||||
|
||||
|
||||
(training-gimmie-task-name #x91b)
|
||||
(training-buzzer-task-name #x91c)
|
||||
(training-door-task-name #x91d)
|
||||
|
||||
@@ -87,6 +87,7 @@
|
||||
(damping float :offset-assert 16)
|
||||
(accel float :offset-assert 20)
|
||||
)
|
||||
:pack-me
|
||||
:method-count-assert 11
|
||||
:size-assert #x18
|
||||
:flag-assert #xb00000018
|
||||
@@ -103,6 +104,7 @@
|
||||
(elasticity float :offset-assert 32)
|
||||
(state int32 :offset-assert 36)
|
||||
)
|
||||
:pack-me
|
||||
:method-count-assert 13
|
||||
:size-assert #x28
|
||||
:flag-assert #xd00000028
|
||||
|
||||
@@ -5,3 +5,983 @@
|
||||
;; name in dgo: lurkerworm
|
||||
;; dgos: BEA, L1
|
||||
|
||||
(define-extern *lurkerworm-sg* skeleton-group)
|
||||
|
||||
;; DECOMP BEGINS
|
||||
|
||||
(deftype lurkerworm (process-drawable)
|
||||
((root-override collide-shape-moving :offset 112)
|
||||
(twister twister :offset-assert 176)
|
||||
(head-tilt float :offset-assert 180)
|
||||
(strike-count int32 :offset-assert 184)
|
||||
(angle float :offset-assert 188)
|
||||
(vulnerable symbol :offset-assert 192)
|
||||
(part2 sparticle-launch-control :offset-assert 196)
|
||||
)
|
||||
:heap-base #x60
|
||||
:method-count-assert 22
|
||||
:size-assert #xc8
|
||||
:flag-assert #x16006000c8
|
||||
(:methods
|
||||
(TODO-RENAME-20 (_type_) none 20)
|
||||
(particle-effect (_type_) none 21)
|
||||
)
|
||||
(:states
|
||||
lurkerworm-die
|
||||
lurkerworm-idle
|
||||
lurkerworm-rest
|
||||
lurkerworm-rise
|
||||
lurkerworm-sink
|
||||
lurkerworm-spot
|
||||
lurkerworm-strike
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
(defmethod relocate lurkerworm ((obj lurkerworm) (arg0 int))
|
||||
(if (nonzero? (-> obj part2))
|
||||
(&+! (-> obj part2) arg0)
|
||||
)
|
||||
(if (nonzero? (-> obj twister))
|
||||
(&+! (-> obj twister) arg0)
|
||||
)
|
||||
(the-as lurkerworm ((method-of-type process-drawable relocate) obj arg0))
|
||||
)
|
||||
|
||||
(defmethod deactivate lurkerworm ((obj lurkerworm))
|
||||
(if (nonzero? (-> obj part2))
|
||||
(kill-and-free-particles (-> obj part2))
|
||||
)
|
||||
((method-of-type process-drawable deactivate) obj)
|
||||
(none)
|
||||
)
|
||||
|
||||
(defskelgroup *lurkerworm-sg* lurkerworm
|
||||
0
|
||||
3
|
||||
((1 (meters 999999)))
|
||||
:bounds (static-spherem 0 2 0 6.5)
|
||||
:longest-edge (meters 1.5)
|
||||
)
|
||||
|
||||
(set!
|
||||
(-> *part-group-id-table* 157)
|
||||
(new 'static 'sparticle-launch-group
|
||||
:length 4
|
||||
:duration #xbb8
|
||||
:linger-duration #x5dc
|
||||
:flags (sp-group-flag use-local-clock)
|
||||
:name "group-beach-sandworm"
|
||||
:launcher
|
||||
(new 'static 'inline-array sparticle-group-item 4
|
||||
(sp-item 656 :fade-after (meters 90.0) :period 900 :length 300)
|
||||
(sp-item 657 :fade-after (meters 100.0) :period 900 :length 390)
|
||||
(sp-item 658 :fade-after (meters 150.0) :period 900 :length 420 :offset 120)
|
||||
(sp-item 659 :fade-after (meters 60.0) :period 900 :length 420 :offset 120)
|
||||
)
|
||||
:bounds (new 'static 'sphere :w 24576.0)
|
||||
)
|
||||
)
|
||||
|
||||
(set!
|
||||
(-> *part-group-id-table* 158)
|
||||
(new 'static 'sparticle-launch-group
|
||||
:length 3
|
||||
:duration #xbb8
|
||||
:linger-duration #x5dc
|
||||
:flags (sp-group-flag use-local-clock)
|
||||
:name "group-beach-sandworm-norocks"
|
||||
:launcher
|
||||
(new 'static 'inline-array sparticle-group-item 3
|
||||
(sp-item 656 :fade-after (meters 90.0) :period 900 :length 300)
|
||||
(sp-item 658 :fade-after (meters 150.0) :period 900 :length 420 :offset 120)
|
||||
(sp-item 659 :fade-after (meters 60.0) :period 900 :length 420 :offset 120)
|
||||
)
|
||||
:bounds (new 'static 'sphere :w 24576.0)
|
||||
)
|
||||
)
|
||||
|
||||
(set!
|
||||
(-> *part-id-table* 656)
|
||||
(new 'static 'sparticle-launcher
|
||||
:init-specs
|
||||
(new 'static 'inline-array sp-field-init-spec 21
|
||||
(sp-tex spt-texture (new 'static 'texture-id :index #x19 :page #x2))
|
||||
(sp-flt spt-num 4.0)
|
||||
(sp-rnd-flt spt-x (meters 3.0) (meters 5.0) 1.0)
|
||||
(sp-flt spt-y (meters 1.0))
|
||||
(sp-rnd-flt spt-scale-x (meters 1.0) (meters 2.0) 1.0)
|
||||
(sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 360.0) 1.0)
|
||||
(sp-copy-from-other spt-scale-y -4)
|
||||
(sp-rnd-flt spt-r 130.0 20.0 1.0)
|
||||
(sp-rnd-flt spt-g 90.0 20.0 1.0)
|
||||
(sp-rnd-flt spt-b 50.0 8.0 1.0)
|
||||
(sp-flt spt-a 0.0)
|
||||
(sp-flt spt-vel-x (meters -0.02))
|
||||
(sp-flt spt-vel-y (meters -0.0033333334))
|
||||
(sp-rnd-flt spt-rotvel-z (degrees -0.15) (degrees 0.3) 1.0)
|
||||
(sp-flt spt-fade-a 0.21333334)
|
||||
(sp-int spt-timer 900)
|
||||
(sp-cpuinfo-flags bit2 bit12)
|
||||
(sp-int-plain-rnd spt-next-time 90 59 1)
|
||||
(sp-launcher-by-id spt-next-launcher 660)
|
||||
(sp-rnd-flt spt-rotate-y (degrees 0.0) (degrees 360.0) 1.0)
|
||||
(sp-end)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
(set!
|
||||
(-> *part-id-table* 660)
|
||||
(new 'static 'sparticle-launcher
|
||||
:init-specs
|
||||
(new 'static 'inline-array sp-field-init-spec 2
|
||||
(sp-flt spt-fade-a -0.21333334)
|
||||
(sp-end)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
(set!
|
||||
(-> *part-id-table* 658)
|
||||
(new 'static 'sparticle-launcher
|
||||
:init-specs
|
||||
(new 'static 'inline-array sp-field-init-spec 19
|
||||
(sp-tex spt-texture (new 'static 'texture-id :index #x19 :page #x2))
|
||||
(sp-flt spt-num 0.4)
|
||||
(sp-rnd-flt spt-x (meters 0.0) (meters 1.0) 1.0)
|
||||
(sp-rnd-flt spt-scale-x (meters 2.0) (meters 1.0) 1.0)
|
||||
(sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 360.0) 1.0)
|
||||
(sp-copy-from-other spt-scale-y -4)
|
||||
(sp-rnd-flt spt-r 90.0 60.0 1.0)
|
||||
(sp-rnd-flt spt-g 90.0 10.0 1.0)
|
||||
(sp-rnd-flt spt-b 50.0 8.0 1.0)
|
||||
(sp-flt spt-a 0.0)
|
||||
(sp-rnd-flt spt-vel-x (meters 0.0033333334) (meters 0.0033333334) 1.0)
|
||||
(sp-flt spt-vel-y (meters 0.026666667))
|
||||
(sp-rnd-int-flt spt-rotvel-z (degrees -0.3) 1 109.22667)
|
||||
(sp-flt spt-fade-a 0.32)
|
||||
(sp-flt spt-accel-y -4.096)
|
||||
(sp-int spt-timer 300)
|
||||
(sp-cpuinfo-flags bit2 bit12)
|
||||
(sp-rnd-flt spt-rotate-y (degrees 0.0) (degrees 360.0) 1.0)
|
||||
(sp-end)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
(set!
|
||||
(-> *part-id-table* 659)
|
||||
(new 'static 'sparticle-launcher
|
||||
:init-specs
|
||||
(new 'static 'inline-array sp-field-init-spec 19
|
||||
(sp-tex spt-texture (new 'static 'texture-id :index #x19 :page #x2))
|
||||
(sp-flt spt-num 0.6)
|
||||
(sp-rnd-flt spt-x (meters 0.0) (meters 1.0) 1.0)
|
||||
(sp-rnd-flt spt-scale-x (meters 1.0) (meters 1.0) 1.0)
|
||||
(sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 360.0) 1.0)
|
||||
(sp-copy-from-other spt-scale-y -4)
|
||||
(sp-rnd-flt spt-r 45.0 30.0 1.0)
|
||||
(sp-rnd-flt spt-g 45.0 5.0 1.0)
|
||||
(sp-rnd-flt spt-b 25.0 4.0 1.0)
|
||||
(sp-flt spt-a 0.0)
|
||||
(sp-rnd-flt spt-vel-x (meters 0.0033333334) (meters 0.0033333334) 1.0)
|
||||
(sp-flt spt-vel-y (meters 0.026666667))
|
||||
(sp-rnd-int-flt spt-rotvel-z (degrees -0.3) 1 109.22667)
|
||||
(sp-flt spt-fade-a 0.42666668)
|
||||
(sp-flt spt-accel-y -4.096)
|
||||
(sp-int spt-timer 300)
|
||||
(sp-cpuinfo-flags bit2 bit12)
|
||||
(sp-rnd-flt spt-rotate-y (degrees 0.0) (degrees 360.0) 1.0)
|
||||
(sp-end)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
(set!
|
||||
(-> *part-id-table* 657)
|
||||
(new 'static 'sparticle-launcher
|
||||
:init-specs
|
||||
(new 'static 'inline-array sp-field-init-spec 18
|
||||
(sp-tex spt-texture (new 'static 'texture-id :index #x1d :page #x2))
|
||||
(sp-flt spt-num 0.5)
|
||||
(sp-rnd-flt spt-x (meters 0.0) (meters 1.0) 1.0)
|
||||
(sp-rnd-flt spt-scale-x (meters 0.05) (meters 0.4) 1.0)
|
||||
(sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 360.0) 1.0)
|
||||
(sp-copy-from-other spt-scale-y -4)
|
||||
(sp-rnd-flt spt-r 75.0 45.0 1.0)
|
||||
(sp-rnd-flt spt-g 75.0 10.0 1.0)
|
||||
(sp-rnd-flt spt-b 40.0 6.0 1.0)
|
||||
(sp-flt spt-a 96.0)
|
||||
(sp-rnd-flt spt-vel-x (meters 0.0033333334) (meters 0.0033333334) 1.0)
|
||||
(sp-rnd-flt spt-vel-y (meters 0.013333334) (meters 0.026666667) 1.0)
|
||||
(sp-rnd-int-flt spt-rotvel-z (degrees -0.3) 1 109.22667)
|
||||
(sp-flt spt-accel-y -4.096)
|
||||
(sp-int spt-timer 450)
|
||||
(sp-cpuinfo-flags bit2 bit12)
|
||||
(sp-rnd-flt spt-rotate-y (degrees 0.0) (degrees 360.0) 1.0)
|
||||
(sp-end)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
(set!
|
||||
(-> *part-id-table* 661)
|
||||
(new 'static 'sparticle-launcher
|
||||
:init-specs
|
||||
(new 'static 'inline-array sp-field-init-spec 20
|
||||
(sp-tex spt-texture (new 'static 'texture-id :index #x19 :page #x2))
|
||||
(sp-flt spt-num 0.1)
|
||||
(sp-rnd-flt spt-x (meters -0.5) (meters 1.0) 1.0)
|
||||
(sp-rnd-flt spt-z -2048.0 4096.0 1.0)
|
||||
(sp-rnd-flt spt-scale-x (meters 2.0) (meters 1.0) 1.0)
|
||||
(sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 360.0) 1.0)
|
||||
(sp-copy-from-other spt-scale-y -4)
|
||||
(sp-rnd-flt spt-r 90.0 60.0 1.0)
|
||||
(sp-rnd-flt spt-g 90.0 10.0 1.0)
|
||||
(sp-rnd-flt spt-b 50.0 8.0 1.0)
|
||||
(sp-flt spt-a 0.0)
|
||||
(sp-rnd-flt spt-vel-x (meters 0.0033333334) (meters 0.00083333335) 1.0)
|
||||
(sp-rnd-int-flt spt-rotvel-z (degrees -0.3) 1 109.22667)
|
||||
(sp-flt spt-fade-a 0.21333334)
|
||||
(sp-flt spt-accel-y -0.54613334)
|
||||
(sp-int spt-timer 600)
|
||||
(sp-cpuinfo-flags bit2 bit12)
|
||||
(sp-int spt-next-time 150)
|
||||
(sp-launcher-by-id spt-next-launcher 662)
|
||||
(sp-end)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
(set!
|
||||
(-> *part-id-table* 662)
|
||||
(new 'static 'sparticle-launcher
|
||||
:init-specs
|
||||
(new 'static 'inline-array sp-field-init-spec 2
|
||||
(sp-flt spt-fade-a -0.10666667)
|
||||
(sp-end)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
(defmethod TODO-RENAME-20 lurkerworm ((obj lurkerworm))
|
||||
(let ((s5-0 (new 'stack-no-clear 'vector)))
|
||||
(vector-! s5-0 (target-pos 0) (-> obj root-override trans))
|
||||
(set-target! (-> obj twister) (atan (-> s5-0 x) (-> s5-0 z)))
|
||||
(TODO-RENAME-11 (-> obj twister))
|
||||
(let*
|
||||
((f0-5 (sqrtf (+ (* (-> s5-0 x) (-> s5-0 x)) (* (-> s5-0 z) (-> s5-0 z)))))
|
||||
(f0-6 (atan (-> s5-0 y) f0-5))
|
||||
)
|
||||
(set!
|
||||
(-> obj head-tilt)
|
||||
(seek
|
||||
(-> obj head-tilt)
|
||||
f0-6
|
||||
(* 5461.3335 (-> *display* seconds-per-frame))
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! (-> obj head-tilt) (fmin 8192.0 (fmax -5461.3335 (-> obj head-tilt))))
|
||||
0
|
||||
(none)
|
||||
)
|
||||
|
||||
(defbehavior
|
||||
lurkerworm-prebind-function lurkerworm
|
||||
((arg0 process) (arg1 int) (arg2 lurkerworm))
|
||||
(let ((v1-0 arg2)
|
||||
(s5-0 (new 'stack-no-clear 'quaternion))
|
||||
(gp-0 (&-> arg0 stack 324))
|
||||
)
|
||||
(quaternion-axis-angle! s5-0 -1.0 0.0 0.0 (-> v1-0 head-tilt))
|
||||
(quaternion*! (the-as quaternion gp-0) (the-as quaternion gp-0) s5-0)
|
||||
)
|
||||
0
|
||||
(none)
|
||||
)
|
||||
|
||||
(defun lurkerworm-joint-callback ((arg0 lurkerworm))
|
||||
(let ((a1-0 arg0))
|
||||
(TODO-RENAME-12 (-> a1-0 twister) a1-0)
|
||||
)
|
||||
0
|
||||
(none)
|
||||
)
|
||||
|
||||
(defmethod particle-effect lurkerworm ((obj lurkerworm))
|
||||
(let
|
||||
((a2-0
|
||||
(vector<-cspace! (new 'stack-no-clear 'vector) (-> obj node-list data 5))
|
||||
)
|
||||
)
|
||||
(sp-launch-particles-var
|
||||
*sp-particle-system-2d*
|
||||
(-> *part-id-table* 661)
|
||||
a2-0
|
||||
(the-as sparticle-launch-state #f)
|
||||
(the-as sparticle-launch-control #f)
|
||||
1.0
|
||||
)
|
||||
)
|
||||
(let
|
||||
((a2-1
|
||||
(vector<-cspace! (new 'stack-no-clear 'vector) (-> obj node-list data 6))
|
||||
)
|
||||
)
|
||||
(sp-launch-particles-var
|
||||
*sp-particle-system-2d*
|
||||
(-> *part-id-table* 661)
|
||||
a2-1
|
||||
(the-as sparticle-launch-state #f)
|
||||
(the-as sparticle-launch-control #f)
|
||||
1.0
|
||||
)
|
||||
)
|
||||
(let
|
||||
((a2-2
|
||||
(vector<-cspace! (new 'stack-no-clear 'vector) (-> obj node-list data 7))
|
||||
)
|
||||
)
|
||||
(sp-launch-particles-var
|
||||
*sp-particle-system-2d*
|
||||
(-> *part-id-table* 661)
|
||||
a2-2
|
||||
(the-as sparticle-launch-state #f)
|
||||
(the-as sparticle-launch-control #f)
|
||||
1.0
|
||||
)
|
||||
)
|
||||
(let
|
||||
((a2-3
|
||||
(vector<-cspace! (new 'stack-no-clear 'vector) (-> obj node-list data 8))
|
||||
)
|
||||
)
|
||||
(sp-launch-particles-var
|
||||
*sp-particle-system-2d*
|
||||
(-> *part-id-table* 661)
|
||||
a2-3
|
||||
(the-as sparticle-launch-state #f)
|
||||
(the-as sparticle-launch-control #f)
|
||||
1.0
|
||||
)
|
||||
)
|
||||
0
|
||||
(none)
|
||||
)
|
||||
|
||||
(defbehavior
|
||||
lurkerworm-default-event-handler lurkerworm
|
||||
((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
|
||||
(case arg2
|
||||
(('attack)
|
||||
(-> arg3 param 1)
|
||||
(go lurkerworm-die)
|
||||
)
|
||||
(('touch)
|
||||
(if
|
||||
((method-of-type touching-shapes-entry prims-touching?)
|
||||
(the-as touching-shapes-entry (-> arg3 param 0))
|
||||
(-> self root-override)
|
||||
(the-as uint 1)
|
||||
)
|
||||
(send-event arg0 'attack (-> arg3 param 0) (new 'static 'attack-info))
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
(defbehavior lurkerworm-default-post-behavior lurkerworm ()
|
||||
(TODO-RENAME-20 self)
|
||||
(transform-post)
|
||||
0
|
||||
(none)
|
||||
)
|
||||
|
||||
lurkerworm-default-event-handler
|
||||
|
||||
lurkerworm-default-post-behavior
|
||||
|
||||
(defstate lurkerworm-idle (lurkerworm)
|
||||
:event
|
||||
lurkerworm-default-event-handler
|
||||
:enter
|
||||
(behavior ()
|
||||
(ja-channel-set! 0)
|
||||
(set! (-> self state-time) (-> *display* base-frame-counter))
|
||||
(none)
|
||||
)
|
||||
:code
|
||||
(behavior ()
|
||||
(while #t
|
||||
(if
|
||||
(and
|
||||
(>= (- (-> *display* base-frame-counter) (-> self state-time)) 300)
|
||||
*target*
|
||||
(>=
|
||||
81920.0
|
||||
(vector-vector-distance
|
||||
(-> self root-override trans)
|
||||
(-> *target* control trans)
|
||||
)
|
||||
)
|
||||
)
|
||||
(go lurkerworm-spot)
|
||||
)
|
||||
(suspend)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
:post
|
||||
lurkerworm-default-post-behavior
|
||||
)
|
||||
|
||||
(defstate lurkerworm-spot (lurkerworm)
|
||||
:event
|
||||
lurkerworm-default-event-handler
|
||||
:enter
|
||||
(behavior ()
|
||||
(set! (-> self state-time) (-> *display* base-frame-counter))
|
||||
(sound-play-by-name
|
||||
(static-sound-name "worm-rise1")
|
||||
(new-sound-id)
|
||||
1024
|
||||
0
|
||||
0
|
||||
1
|
||||
#t
|
||||
)
|
||||
(none)
|
||||
)
|
||||
:code
|
||||
(behavior ()
|
||||
(set! (-> self part local-clock) 0)
|
||||
(while #t
|
||||
(spawn (-> self part) (-> self root-override trans))
|
||||
(particle-effect self)
|
||||
(when (>= (- (-> *display* base-frame-counter) (-> self state-time)) 300)
|
||||
(if
|
||||
(and
|
||||
*target*
|
||||
(>=
|
||||
81920.0
|
||||
(vector-vector-distance
|
||||
(-> self root-override trans)
|
||||
(-> *target* control trans)
|
||||
)
|
||||
)
|
||||
)
|
||||
(go lurkerworm-rise)
|
||||
(go lurkerworm-idle)
|
||||
)
|
||||
)
|
||||
(suspend)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
:post
|
||||
lurkerworm-default-post-behavior
|
||||
)
|
||||
|
||||
(defstate lurkerworm-rise (lurkerworm)
|
||||
:event
|
||||
lurkerworm-default-event-handler
|
||||
:enter
|
||||
(behavior ()
|
||||
(set! (-> self state-time) (-> *display* base-frame-counter))
|
||||
(none)
|
||||
)
|
||||
:code
|
||||
(behavior ()
|
||||
(ja-channel-set! 1)
|
||||
(let ((a0-1 (-> self skel root-channel 0)))
|
||||
(set!
|
||||
(-> a0-1 frame-group)
|
||||
(the-as art-joint-anim (-> self draw art-group data 4))
|
||||
)
|
||||
(set!
|
||||
(-> a0-1 param 0)
|
||||
(the
|
||||
float
|
||||
(+
|
||||
(->
|
||||
(the-as art-joint-anim (-> self draw art-group data 4))
|
||||
data
|
||||
0
|
||||
length
|
||||
)
|
||||
-1
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! (-> a0-1 param 1) 1.0)
|
||||
(set! (-> a0-1 frame-num) 0.0)
|
||||
(joint-control-channel-group!
|
||||
a0-1
|
||||
(the-as art-joint-anim (-> self draw art-group data 4))
|
||||
num-func-seek!
|
||||
)
|
||||
)
|
||||
(until (ja-done? 0)
|
||||
(spawn (-> self part) (-> self root-override trans))
|
||||
(particle-effect self)
|
||||
(suspend)
|
||||
(let ((a0-4 (-> self skel root-channel 0)))
|
||||
(set!
|
||||
(-> a0-4 param 0)
|
||||
(the float (+ (-> a0-4 frame-group data 0 length) -1))
|
||||
)
|
||||
(set! (-> a0-4 param 1) 1.0)
|
||||
(joint-control-channel-group-eval!
|
||||
a0-4
|
||||
(the-as art-joint-anim #f)
|
||||
num-func-seek!
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! (-> self strike-count) 3)
|
||||
(go lurkerworm-rest)
|
||||
(none)
|
||||
)
|
||||
:post
|
||||
lurkerworm-default-post-behavior
|
||||
)
|
||||
|
||||
(defstate lurkerworm-rest (lurkerworm)
|
||||
:event
|
||||
lurkerworm-default-event-handler
|
||||
:enter
|
||||
(behavior ()
|
||||
(set! (-> self state-time) (-> *display* base-frame-counter))
|
||||
(set! (-> self vulnerable) #t)
|
||||
(none)
|
||||
)
|
||||
:exit
|
||||
(behavior ()
|
||||
(set! (-> self vulnerable) #f)
|
||||
(none)
|
||||
)
|
||||
:code
|
||||
(behavior ()
|
||||
(let* ((f30-0 10.0)
|
||||
(f28-0 100.0)
|
||||
(v1-1 (/ (the-as int (rand-uint31-gen *random-generator*)) 256))
|
||||
(v1-2 (the-as number (logior #x3f800000 v1-1)))
|
||||
(s5-0 (the int (+ f30-0 (* f28-0 (+ -1.0 (the-as float v1-2))))))
|
||||
(gp-1 (nonzero? (-> self strike-count)))
|
||||
)
|
||||
(if gp-1
|
||||
(+! (-> self strike-count) -1)
|
||||
)
|
||||
(let ((a0-2 (-> self skel root-channel 0)))
|
||||
(set!
|
||||
(-> a0-2 frame-group)
|
||||
(the-as art-joint-anim (-> self draw art-group data 3))
|
||||
)
|
||||
(set!
|
||||
(-> a0-2 param 0)
|
||||
(the
|
||||
float
|
||||
(+
|
||||
(->
|
||||
(the-as art-joint-anim (-> self draw art-group data 3))
|
||||
data
|
||||
0
|
||||
length
|
||||
)
|
||||
-1
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! (-> a0-2 param 1) 1.0)
|
||||
(set! (-> a0-2 frame-num) 0.0)
|
||||
(joint-control-channel-group!
|
||||
a0-2
|
||||
(the-as art-joint-anim (-> self draw art-group data 3))
|
||||
num-func-seek!
|
||||
)
|
||||
)
|
||||
(until (ja-done? 0)
|
||||
(ja-blend-eval)
|
||||
(particle-effect self)
|
||||
(when gp-1
|
||||
(let* ((f0-13 (- 1.0 (* 0.00009765625 (+ -16384.0 (if *target*
|
||||
(vector-vector-distance
|
||||
(->
|
||||
self
|
||||
root-override
|
||||
trans
|
||||
)
|
||||
(->
|
||||
*target*
|
||||
control
|
||||
trans
|
||||
)
|
||||
)
|
||||
4096000.0
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(f30-2 (* 0.2 f0-13))
|
||||
(v1-31 (/ (the-as int (rand-uint31-gen *random-generator*)) 256))
|
||||
(v1-32 (the-as number (logior #x3f800000 v1-31)))
|
||||
)
|
||||
(if (< (+ -1.0 (the-as float v1-32)) f30-2)
|
||||
(go lurkerworm-strike)
|
||||
)
|
||||
)
|
||||
)
|
||||
(+! s5-0 -1)
|
||||
(when (zero? s5-0)
|
||||
(if gp-1
|
||||
(go lurkerworm-strike)
|
||||
(go lurkerworm-sink)
|
||||
)
|
||||
)
|
||||
(suspend)
|
||||
(let ((a0-7 (-> self skel root-channel 0)))
|
||||
(set!
|
||||
(-> a0-7 param 0)
|
||||
(the float (+ (-> a0-7 frame-group data 0 length) -1))
|
||||
)
|
||||
(set! (-> a0-7 param 1) 1.0)
|
||||
(joint-control-channel-group-eval!
|
||||
a0-7
|
||||
(the-as art-joint-anim #f)
|
||||
num-func-seek!
|
||||
)
|
||||
)
|
||||
)
|
||||
(if gp-1
|
||||
(go lurkerworm-strike)
|
||||
(go lurkerworm-sink)
|
||||
)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
:post
|
||||
lurkerworm-default-post-behavior
|
||||
)
|
||||
|
||||
(defstate lurkerworm-strike (lurkerworm)
|
||||
:event
|
||||
lurkerworm-default-event-handler
|
||||
:code
|
||||
(behavior ()
|
||||
(let ((a0-0 (-> self skel root-channel 0)))
|
||||
(set! (-> a0-0 param 0) 1.0)
|
||||
(joint-control-channel-group!
|
||||
a0-0
|
||||
(the-as art-joint-anim #f)
|
||||
num-func-loop!
|
||||
)
|
||||
)
|
||||
(ja-channel-push! 1 40)
|
||||
(let ((gp-0 (-> self skel root-channel 0)))
|
||||
(set!
|
||||
(-> gp-0 frame-group)
|
||||
(the-as art-joint-anim (-> self draw art-group data 6))
|
||||
)
|
||||
(set! (-> gp-0 param 0) (ja-aframe 13.0 0))
|
||||
(set! (-> gp-0 param 1) 1.0)
|
||||
(set! (-> gp-0 frame-num) 0.0)
|
||||
(joint-control-channel-group!
|
||||
gp-0
|
||||
(the-as art-joint-anim (-> self draw art-group data 6))
|
||||
num-func-seek!
|
||||
)
|
||||
)
|
||||
(until (ja-done? 0)
|
||||
(ja-blend-eval)
|
||||
(particle-effect self)
|
||||
(suspend)
|
||||
(let ((gp-1 (-> self skel root-channel 0)))
|
||||
(set! (-> gp-1 param 0) (ja-aframe 13.0 0))
|
||||
(set! (-> gp-1 param 1) 1.0)
|
||||
(joint-control-channel-group-eval!
|
||||
gp-1
|
||||
(the-as art-joint-anim #f)
|
||||
num-func-seek!
|
||||
)
|
||||
)
|
||||
)
|
||||
(let ((a0-8 (-> self skel root-channel 0)))
|
||||
(set!
|
||||
(-> a0-8 param 0)
|
||||
(the float (+ (-> a0-8 frame-group data 0 length) -1))
|
||||
)
|
||||
(set! (-> a0-8 param 1) 1.0)
|
||||
(joint-control-channel-group!
|
||||
a0-8
|
||||
(the-as art-joint-anim #f)
|
||||
num-func-seek!
|
||||
)
|
||||
)
|
||||
(ja-channel-push! 1 40)
|
||||
(go lurkerworm-rest)
|
||||
(none)
|
||||
)
|
||||
:post
|
||||
lurkerworm-default-post-behavior
|
||||
)
|
||||
|
||||
(defstate lurkerworm-sink (lurkerworm)
|
||||
:event
|
||||
lurkerworm-default-event-handler
|
||||
:enter
|
||||
(behavior ()
|
||||
(set! (-> self state-time) (-> *display* base-frame-counter))
|
||||
(none)
|
||||
)
|
||||
:code
|
||||
(behavior ()
|
||||
(let ((a0-0 (-> self skel root-channel 0)))
|
||||
(set!
|
||||
(-> a0-0 frame-group)
|
||||
(the-as art-joint-anim (-> self draw art-group data 5))
|
||||
)
|
||||
(set!
|
||||
(-> a0-0 param 0)
|
||||
(the
|
||||
float
|
||||
(+
|
||||
(->
|
||||
(the-as art-joint-anim (-> self draw art-group data 5))
|
||||
data
|
||||
0
|
||||
length
|
||||
)
|
||||
-1
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! (-> a0-0 param 1) 1.0)
|
||||
(set! (-> a0-0 frame-num) 0.0)
|
||||
(joint-control-channel-group!
|
||||
a0-0
|
||||
(the-as art-joint-anim (-> self draw art-group data 5))
|
||||
num-func-seek!
|
||||
)
|
||||
)
|
||||
(until (ja-done? 0)
|
||||
(spawn (-> self part2) (-> self root-override trans))
|
||||
(particle-effect self)
|
||||
(suspend)
|
||||
(let ((a0-3 (-> self skel root-channel 0)))
|
||||
(set!
|
||||
(-> a0-3 param 0)
|
||||
(the float (+ (-> a0-3 frame-group data 0 length) -1))
|
||||
)
|
||||
(set! (-> a0-3 param 1) 1.0)
|
||||
(joint-control-channel-group-eval!
|
||||
a0-3
|
||||
(the-as art-joint-anim #f)
|
||||
num-func-seek!
|
||||
)
|
||||
)
|
||||
)
|
||||
(go lurkerworm-idle)
|
||||
(none)
|
||||
)
|
||||
:post
|
||||
lurkerworm-default-post-behavior
|
||||
)
|
||||
|
||||
(defstate lurkerworm-die (lurkerworm)
|
||||
:event
|
||||
(the-as
|
||||
(function process int symbol event-message-block object :behavior lurkerworm)
|
||||
process-drawable-death-event-handler
|
||||
)
|
||||
:code
|
||||
(behavior ()
|
||||
(logclear! (-> self mask) (process-mask actor-pause))
|
||||
(let ((v1-3 (-> self root-override root-prim)))
|
||||
(set! (-> v1-3 collide-with) (the-as uint 0))
|
||||
(set! (-> v1-3 prim-core collide-as) (the-as uint 0))
|
||||
)
|
||||
0
|
||||
(let ((a0-1 (-> self skel root-channel 0)))
|
||||
(set!
|
||||
(-> a0-1 frame-group)
|
||||
(the-as art-joint-anim (-> self draw art-group data 7))
|
||||
)
|
||||
(set!
|
||||
(-> a0-1 param 0)
|
||||
(the
|
||||
float
|
||||
(+
|
||||
(->
|
||||
(the-as art-joint-anim (-> self draw art-group data 7))
|
||||
data
|
||||
0
|
||||
length
|
||||
)
|
||||
-1
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! (-> a0-1 param 1) 1.0)
|
||||
(set! (-> a0-1 frame-num) 0.0)
|
||||
(joint-control-channel-group!
|
||||
a0-1
|
||||
(the-as art-joint-anim (-> self draw art-group data 7))
|
||||
num-func-seek!
|
||||
)
|
||||
)
|
||||
(until (ja-done? 0)
|
||||
(suspend)
|
||||
(let ((a0-2 (-> self skel root-channel 0)))
|
||||
(set!
|
||||
(-> a0-2 param 0)
|
||||
(the float (+ (-> a0-2 frame-group data 0 length) -1))
|
||||
)
|
||||
(set! (-> a0-2 param 1) 1.0)
|
||||
(joint-control-channel-group-eval!
|
||||
a0-2
|
||||
(the-as art-joint-anim #f)
|
||||
num-func-seek!
|
||||
)
|
||||
)
|
||||
)
|
||||
(dummy-18 self)
|
||||
(none)
|
||||
)
|
||||
:post
|
||||
lurkerworm-default-post-behavior
|
||||
)
|
||||
|
||||
(defmethod copy-defaults! lurkerworm ((obj lurkerworm) (arg0 res-lump))
|
||||
(set! (-> obj mask) (logior (process-mask enemy) (-> obj mask)))
|
||||
(let
|
||||
((s4-0
|
||||
(new
|
||||
'process
|
||||
'collide-shape-moving
|
||||
obj
|
||||
(collide-list-enum usually-hit-by-player)
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! (-> s4-0 dynam) (copy *standard-dynamics* 'process))
|
||||
(set! (-> s4-0 reaction) default-collision-reaction)
|
||||
(set! (-> s4-0 no-reaction) nothing)
|
||||
(let ((s3-0 (new 'process 'collide-shape-prim-group s4-0 (the-as uint 6) 0)))
|
||||
(set! (-> s3-0 prim-core collide-as) (the-as uint 256))
|
||||
(set! (-> s3-0 collide-with) (the-as uint 16))
|
||||
(set! (-> s3-0 prim-core action) (the-as uint 1))
|
||||
(set-vector! (-> s3-0 local-sphere) 0.0 10240.0 0.0 24576.0)
|
||||
(dummy-46 s4-0)
|
||||
(let ((s2-0 (new 'process 'collide-shape-prim-sphere s4-0 (the-as uint 0))))
|
||||
(set! (-> s2-0 prim-core collide-as) (the-as uint 256))
|
||||
(set! (-> s2-0 collide-with) (the-as uint 16))
|
||||
(set! (-> s2-0 prim-core action) (the-as uint 1))
|
||||
(set! (-> s2-0 prim-core offense) 4)
|
||||
(set! (-> s2-0 transform-index) 3)
|
||||
(set-vector! (-> s2-0 local-sphere) 0.0 0.0 0.0 4096.0)
|
||||
)
|
||||
(dummy-28 s3-0)
|
||||
(let ((s2-1 (new 'process 'collide-shape-prim-sphere s4-0 (the-as uint 0))))
|
||||
(set! (-> s2-1 prim-core collide-as) (the-as uint 256))
|
||||
(set! (-> s2-1 collide-with) (the-as uint 16))
|
||||
(set! (-> s2-1 prim-core action) (the-as uint 1))
|
||||
(set! (-> s2-1 prim-core offense) 4)
|
||||
(set! (-> s2-1 transform-index) 5)
|
||||
(set-vector! (-> s2-1 local-sphere) 0.0 0.0 0.0 4096.0)
|
||||
)
|
||||
(dummy-28 s3-0)
|
||||
(let ((s2-2 (new 'process 'collide-shape-prim-sphere s4-0 (the-as uint 0))))
|
||||
(set! (-> s2-2 prim-core collide-as) (the-as uint 256))
|
||||
(set! (-> s2-2 collide-with) (the-as uint 16))
|
||||
(set! (-> s2-2 prim-core action) (the-as uint 1))
|
||||
(set! (-> s2-2 prim-core offense) 4)
|
||||
(set! (-> s2-2 transform-index) 6)
|
||||
(set-vector! (-> s2-2 local-sphere) 0.0 0.0 0.0 4096.0)
|
||||
)
|
||||
(dummy-28 s3-0)
|
||||
(let ((s2-3 (new 'process 'collide-shape-prim-sphere s4-0 (the-as uint 0))))
|
||||
(set! (-> s2-3 prim-core collide-as) (the-as uint 256))
|
||||
(set! (-> s2-3 collide-with) (the-as uint 16))
|
||||
(set! (-> s2-3 prim-core action) (the-as uint 1))
|
||||
(set! (-> s2-3 prim-core offense) 4)
|
||||
(set! (-> s2-3 transform-index) 7)
|
||||
(set-vector! (-> s2-3 local-sphere) 0.0 0.0 0.0 4096.0)
|
||||
)
|
||||
(dummy-28 s3-0)
|
||||
(let ((s2-4 (new 'process 'collide-shape-prim-sphere s4-0 (the-as uint 0))))
|
||||
(set! (-> s2-4 prim-core collide-as) (the-as uint 256))
|
||||
(set! (-> s2-4 collide-with) (the-as uint 16))
|
||||
(set! (-> s2-4 prim-core action) (the-as uint 1))
|
||||
(set! (-> s2-4 prim-core offense) 4)
|
||||
(set! (-> s2-4 transform-index) 8)
|
||||
(set-vector! (-> s2-4 local-sphere) 0.0 0.0 0.0 4096.0)
|
||||
)
|
||||
(dummy-28 s3-0)
|
||||
(let ((s2-5 (new 'process 'collide-shape-prim-sphere s4-0 (the-as uint 1))))
|
||||
(set! (-> s2-5 prim-core collide-as) (the-as uint 256))
|
||||
(set! (-> s2-5 collide-with) (the-as uint 16))
|
||||
(set! (-> s2-5 prim-core offense) 2)
|
||||
(set! (-> s2-5 transform-index) 11)
|
||||
(set-vector! (-> s2-5 local-sphere) 0.0 0.0 0.0 6144.0)
|
||||
)
|
||||
(dummy-28 s3-0)
|
||||
)
|
||||
(set! (-> s4-0 nav-radius) (* 0.75 (-> s4-0 root-prim local-sphere w)))
|
||||
(dummy-50 s4-0)
|
||||
(set! (-> obj root-override) s4-0)
|
||||
)
|
||||
(process-drawable-from-entity! obj arg0)
|
||||
(initialize-skeleton obj *lurkerworm-sg* '())
|
||||
(set!
|
||||
(-> obj fact)
|
||||
(new
|
||||
'process
|
||||
'fact-info-enemy
|
||||
obj
|
||||
(pickup-type eco-pill-random)
|
||||
(-> *FACT-bank* default-pill-inc)
|
||||
)
|
||||
)
|
||||
(set! (-> obj angle) 0.0)
|
||||
(set! (-> obj vulnerable) #f)
|
||||
(set!
|
||||
(-> obj part)
|
||||
(create-launch-control (-> *part-group-id-table* 157) obj)
|
||||
)
|
||||
(set!
|
||||
(-> obj part2)
|
||||
(create-launch-control (-> *part-group-id-table* 158) obj)
|
||||
)
|
||||
(set!
|
||||
(-> obj twister)
|
||||
(new 'process 'twister 3 15 1092.2667 72.81778 0.25 0.001)
|
||||
)
|
||||
(TODO-RENAME-9 (-> obj twister) 3 9 910.2222)
|
||||
(set! (-> obj head-tilt) 0.0)
|
||||
(set!
|
||||
(-> obj skel prebind-function)
|
||||
(the-as
|
||||
(function pointer int process-drawable none)
|
||||
lurkerworm-prebind-function
|
||||
)
|
||||
)
|
||||
(set!
|
||||
(-> obj skel postbind-function)
|
||||
(the-as
|
||||
(function pointer int process-drawable none)
|
||||
lurkerworm-joint-callback
|
||||
)
|
||||
)
|
||||
(set! (-> obj root-override nav-radius) 12288.0)
|
||||
(nav-mesh-connect obj (-> obj root-override) (the-as nav-control #f))
|
||||
(go lurkerworm-idle)
|
||||
(none)
|
||||
)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -5,7 +5,8 @@
|
||||
;; name in dgo: twister
|
||||
;; dgos: BEA, L1
|
||||
|
||||
;; definition of type twist-joint
|
||||
;; DECOMP BEGINS
|
||||
|
||||
(deftype twist-joint (structure)
|
||||
((ry float :offset-assert 0)
|
||||
(max-dry float :offset-assert 4)
|
||||
@@ -15,7 +16,7 @@
|
||||
:flag-assert #x900000008
|
||||
)
|
||||
|
||||
;; definition of type twister
|
||||
|
||||
(deftype twister (basic)
|
||||
((num-joints int32 :offset-assert 4)
|
||||
(first-joint int32 :offset-assert 8)
|
||||
@@ -33,7 +34,7 @@
|
||||
:size-assert #x28
|
||||
:flag-assert #xd00000028
|
||||
(:methods
|
||||
(new (symbol _type_ int int float float float float) _type_ 0)
|
||||
(new (symbol type int int float float float float) _type_ 0)
|
||||
(TODO-RENAME-9 (_type_ int int float) none 9)
|
||||
(set-target! (_type_ float) none 10)
|
||||
(TODO-RENAME-11 (_type_) none 11)
|
||||
@@ -41,12 +42,12 @@
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for method 0 of type twister
|
||||
|
||||
(defmethod
|
||||
new
|
||||
twister
|
||||
((allocation symbol)
|
||||
(type-to-make twister)
|
||||
(type-to-make type)
|
||||
(arg0 int)
|
||||
(arg1 int)
|
||||
(arg2 float)
|
||||
@@ -58,8 +59,8 @@
|
||||
(v0-0
|
||||
(object-new
|
||||
allocation
|
||||
(the-as type type-to-make)
|
||||
(the-as int (+ (-> type-to-make something) (* gp-0 16)))
|
||||
type-to-make
|
||||
(the-as int (+ (-> type-to-make size) (* gp-0 16)))
|
||||
)
|
||||
)
|
||||
)
|
||||
@@ -80,13 +81,10 @@
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for method 5 of type twister
|
||||
(defmethod asize-of twister ((obj twister))
|
||||
(+ (* (-> obj num-joints) 16) 40)
|
||||
)
|
||||
|
||||
;; definition for method 9 of type twister
|
||||
;; INFO: Return type mismatch int vs none.
|
||||
(defmethod
|
||||
TODO-RENAME-9
|
||||
twister
|
||||
@@ -103,16 +101,12 @@
|
||||
(none)
|
||||
)
|
||||
|
||||
;; definition for method 10 of type twister
|
||||
;; INFO: Return type mismatch int vs none.
|
||||
(defmethod set-target! twister ((obj twister) (arg0 float))
|
||||
(set! (-> obj target) arg0)
|
||||
0
|
||||
(none)
|
||||
)
|
||||
|
||||
;; definition for method 11 of type twister
|
||||
;; INFO: Return type mismatch int vs none.
|
||||
(defmethod TODO-RENAME-11 twister ((obj twister))
|
||||
(let* ((s5-0 (+ (-> obj num-joints) -1))
|
||||
(s4-0 (-> obj data s5-0))
|
||||
@@ -176,8 +170,6 @@
|
||||
(none)
|
||||
)
|
||||
|
||||
;; definition for method 12 of type twister
|
||||
;; INFO: Return type mismatch int vs none.
|
||||
(defmethod TODO-RENAME-12 twister ((obj twister) (arg0 process-drawable))
|
||||
(let ((s4-0 (new 'stack-no-clear 'matrix)))
|
||||
(dotimes (s3-0 (-> obj num-joints))
|
||||
@@ -196,3 +188,7 @@
|
||||
0
|
||||
(none)
|
||||
)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -5,3 +5,156 @@
|
||||
;; name in dgo: citb-bunny
|
||||
;; dgos: CIT, L1
|
||||
|
||||
(define-extern *citb-bunny-sg* skeleton-group)
|
||||
|
||||
;; DECOMP BEGINS
|
||||
|
||||
(deftype citb-bunny (snow-bunny)
|
||||
()
|
||||
:heap-base #x190
|
||||
:method-count-assert 77
|
||||
:size-assert #x200
|
||||
:flag-assert #x4d01900200
|
||||
(:methods
|
||||
(TODO-RENAME-48 (_type_ object) none :replace 48)
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
(defskelgroup *citb-bunny-sg* citb-bunny
|
||||
0
|
||||
3
|
||||
((1 (meters 999999)))
|
||||
:bounds (static-spherem 0 0.25 0 2)
|
||||
:longest-edge (meters 0)
|
||||
)
|
||||
|
||||
(define
|
||||
*citb-bunny-nav-enemy-info*
|
||||
(new 'static 'nav-enemy-info
|
||||
:idle-anim 3
|
||||
:walk-anim 3
|
||||
:turn-anim 3
|
||||
:notice-anim 7
|
||||
:run-anim 3
|
||||
:jump-anim 5
|
||||
:jump-land-anim 8
|
||||
:victory-anim 7
|
||||
:taunt-anim 7
|
||||
:die-anim 9
|
||||
:neck-joint 5
|
||||
:player-look-at-joint 5
|
||||
:run-travel-speed (meters 6.0)
|
||||
:run-rotate-speed (degrees 2880.0)
|
||||
:run-acceleration (meters 1.0)
|
||||
:run-turn-time (seconds 0.1)
|
||||
:walk-travel-speed (meters 4.0)
|
||||
:walk-rotate-speed (degrees 720.0)
|
||||
:walk-acceleration (meters 1.0)
|
||||
:walk-turn-time (seconds 0.5)
|
||||
:shadow-size (meters 2.0)
|
||||
:notice-nav-radius (meters 1.2)
|
||||
:nav-nearest-y-threshold (meters 10.0)
|
||||
:notice-distance (meters 130.0)
|
||||
:stop-chase-distance (meters 150.0)
|
||||
:frustration-distance (meters 8.0)
|
||||
:frustration-time #x4b0
|
||||
:die-anim-hold-frame 31.0
|
||||
:jump-anim-start-frame 11.0
|
||||
:jump-land-anim-end-frame 10000000000.0
|
||||
:jump-height-min (meters 1.0)
|
||||
:jump-height-factor 0.6
|
||||
:jump-start-anim-speed 1.0
|
||||
:shadow-max-y (meters 0.25)
|
||||
:shadow-min-y (meters -3.5)
|
||||
:shadow-locus-dist (meters 150.0)
|
||||
:use-align #f
|
||||
:draw-shadow #t
|
||||
:move-to-ground #t
|
||||
:hover-if-no-ground #f
|
||||
:use-momentum #f
|
||||
:use-flee #f
|
||||
:use-proximity-notice #f
|
||||
:use-jump-blocked #f
|
||||
:use-jump-patrol #f
|
||||
:gnd-collide-with #x1
|
||||
:debug-draw-neck #f
|
||||
:debug-draw-jump #f
|
||||
)
|
||||
)
|
||||
|
||||
(defmethod dummy-60 citb-bunny ((obj citb-bunny) (arg0 object))
|
||||
(initialize-skeleton obj *citb-bunny-sg* '())
|
||||
(set! (-> obj draw origin-joint-index) (the-as uint 3))
|
||||
(the-as symbol 0)
|
||||
)
|
||||
|
||||
(defmethod TODO-RENAME-48 citb-bunny ((obj citb-bunny) (arg0 object))
|
||||
(dummy-60 obj arg0)
|
||||
(TODO-RENAME-45 obj *citb-bunny-nav-enemy-info*)
|
||||
(set!
|
||||
(-> obj draw shadow-ctrl settings flags)
|
||||
(logand -9 (-> obj draw shadow-ctrl settings flags))
|
||||
)
|
||||
(cond
|
||||
((zero? (res-lump-value (-> obj entity) 'mode uint128))
|
||||
(set! (-> obj defense) (the-as uint 1))
|
||||
(set! (-> obj retreat-timeout) 5.0)
|
||||
)
|
||||
(else
|
||||
(set! (-> obj defense) (the-as uint 0))
|
||||
(set! (-> obj retreat-timeout) 0.1)
|
||||
)
|
||||
)
|
||||
(set!
|
||||
(-> obj last-nondangerous-time)
|
||||
(the-as uint (-> *display* base-frame-counter))
|
||||
)
|
||||
(set! (-> obj gnd-popup) 16384.0)
|
||||
(set! (-> obj got-jump-event?) #f)
|
||||
(set! (-> obj notice-land-anim) 8)
|
||||
(set! (-> obj attack-anim) 4)
|
||||
(set! (-> obj neck up) (the-as uint 1))
|
||||
(set! (-> obj neck nose) (the-as uint 2))
|
||||
(set! (-> obj neck ear) (the-as uint 0))
|
||||
(set! (-> obj patrol-rand-distraction) (+ (nav-enemy-rnd-int-count 5) 1))
|
||||
(set! (-> obj patrol-hop-failed?) #f)
|
||||
(logclear! (-> obj mask) (process-mask actor-pause))
|
||||
0
|
||||
(none)
|
||||
)
|
||||
|
||||
(defmethod set-jump-height-factor! citb-bunny ((obj citb-bunny) (arg0 int))
|
||||
(let ((v1-0 arg0))
|
||||
(cond
|
||||
((zero? v1-0)
|
||||
(set! (-> obj jump-anim) 6)
|
||||
(set! (-> obj jump-height-min) 4096.0)
|
||||
(let ((f0-1 0.6))
|
||||
(set! (-> obj jump-height-factor) f0-1)
|
||||
f0-1
|
||||
)
|
||||
)
|
||||
((= v1-0 1)
|
||||
(set! (-> obj jump-anim) 5)
|
||||
(set! (-> obj jump-height-min) 4096.0)
|
||||
(let ((f0-3 0.6))
|
||||
(set! (-> obj jump-height-factor) f0-3)
|
||||
f0-3
|
||||
)
|
||||
)
|
||||
((= v1-0 2)
|
||||
(set! (-> obj jump-anim) 5)
|
||||
(set! (-> obj jump-height-min) 4096.0)
|
||||
(let ((f0-5 0.4))
|
||||
(set! (-> obj jump-height-factor) f0-5)
|
||||
f0-5
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -103,8 +103,8 @@
|
||||
(dummy-24 (_type_) none 24)
|
||||
(dummy-25 () none 25)
|
||||
(dummy-26 (_type_) none 26)
|
||||
(dummy-27 (_type_) none 27)
|
||||
(dummy-28 () none 28)
|
||||
(dummy-27 (_type_ joint-exploder-list) none 27)
|
||||
(dummy-28 (_type_) none 28)
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
@@ -141,11 +141,11 @@
|
||||
(dummy-53 (_type_) symbol 53)
|
||||
(dummy-54 (_type_) none 54)
|
||||
(dummy-55 (_type_) none 55)
|
||||
(dummy-56 (_type_) none 56)
|
||||
(dummy-57 (_type_) none 57)
|
||||
(dummy-58 (_type_) none 58)
|
||||
(set-jump-height-factor! (_type_ int) float 56)
|
||||
(dummy-57 (_type_) vector 57)
|
||||
(dummy-58 (_type_) vector 58)
|
||||
(TODO-RENAME-59 (_type_) none 59)
|
||||
(dummy-60 (_type_) none 60)
|
||||
(dummy-60 (_type_ object) symbol 60)
|
||||
(dummy-61 (_type_) none 61)
|
||||
(dummy-62 (_type_) none 62)
|
||||
(dummy-63 (_type_) none 63)
|
||||
@@ -156,7 +156,7 @@
|
||||
(dummy-68 (_type_) none 68)
|
||||
(dummy-69 (_type_) none 69)
|
||||
(dummy-70 (_type_) none 70)
|
||||
(dummy-71 (_type_) none 71)
|
||||
(dummy-71 () _type_ :state 71)
|
||||
(nav-enemy-touch-handler (_type_ process event-message-block) object 72)
|
||||
(nav-enemy-attack-handler (_type_ process event-message-block) object 73)
|
||||
(nav-enemy-jump-blocked () _type_ :state 74)
|
||||
|
||||
@@ -526,7 +526,11 @@ nav-enemy-default-event-handler
|
||||
(set! (-> self nav travel quad) (-> gp-1 quad))
|
||||
)
|
||||
(vector-normalize! (-> self nav travel) 409600.0)
|
||||
(dummy-24 (-> self nav) 204.8 #f)
|
||||
(dummy-24
|
||||
(-> self nav)
|
||||
204.8
|
||||
(the-as clip-travel-vector-to-mesh-return-info #f)
|
||||
)
|
||||
(vector+!
|
||||
(-> self nav target-pos)
|
||||
(-> self collide-info trans)
|
||||
|
||||
@@ -5,3 +5,33 @@
|
||||
;; name in dgo: snow-bunny
|
||||
;; dgos: CIT, L1, SNO
|
||||
|
||||
(deftype snow-bunny (nav-enemy)
|
||||
((patrol-rand-distraction int32 :offset-assert 400)
|
||||
(base-hop-dist float :offset-assert 404)
|
||||
(halfway-dist float :offset-assert 408)
|
||||
(retreat-timeout float :offset-assert 412)
|
||||
(gnd-popup float :offset-assert 416)
|
||||
(jump-height-min float :offset-assert 420)
|
||||
(jump-height-factor float :offset-assert 424)
|
||||
(jump-anim-start-frame float :offset-assert 428)
|
||||
(defense uint64 :offset-assert 432)
|
||||
(retreat-timeout-time uint64 :offset-assert 440)
|
||||
(last-nondangerous-time uint64 :offset-assert 448)
|
||||
(patrol-hop-failed? basic :offset-assert 456)
|
||||
(should-retreat? basic :offset-assert 460)
|
||||
(got-jump-event? basic :offset-assert 464)
|
||||
(using-jump-event? basic :offset-assert 468)
|
||||
(jump-anim int8 :offset-assert 472)
|
||||
(notice-land-anim int8 :offset-assert 473)
|
||||
(attack-anim int8 :offset-assert 474)
|
||||
(final-dest vector :inline :offset-assert 480)
|
||||
(jump-event-dest vector :inline :offset-assert 496)
|
||||
)
|
||||
:method-count-assert 77
|
||||
:size-assert #x200
|
||||
:heap-base #x190
|
||||
:flag-assert #x4d01900200
|
||||
(:methods
|
||||
(dummy-76 () none 76))
|
||||
)
|
||||
|
||||
|
||||
@@ -40,7 +40,7 @@
|
||||
0
|
||||
-1
|
||||
((1 (meters 999999)))
|
||||
:bounds (static-spherem 0 0 0 5.95)
|
||||
:bounds (static-spherem 0 0 0 5.949999809265137)
|
||||
:longest-edge (meters 0)
|
||||
:shadow 2
|
||||
)
|
||||
|
||||
@@ -1144,7 +1144,7 @@ baby-spider-default-event-handler
|
||||
(set! (-> self enemy-info pickup-amount) (the float (-> arg3 pickup-amount)))
|
||||
(create-connection!
|
||||
*cavecrystal-light-control*
|
||||
(the-as cavecrystal self)
|
||||
self
|
||||
(-> self entity)
|
||||
(the-as
|
||||
(function object object object object object)
|
||||
@@ -1191,7 +1191,7 @@ baby-spider-default-event-handler
|
||||
)
|
||||
(create-connection!
|
||||
*cavecrystal-light-control*
|
||||
(the-as cavecrystal obj)
|
||||
obj
|
||||
(-> obj entity)
|
||||
(the-as
|
||||
(function object object object object object)
|
||||
|
||||
@@ -51,8 +51,8 @@
|
||||
0
|
||||
-1
|
||||
((1 (meters 999999)))
|
||||
:bounds (static-spherem 0 0.75 0 3.9)
|
||||
:longest-edge (meters 1.3)
|
||||
:bounds (static-spherem 0 0.75 0 3.9000000953674316)
|
||||
:longest-edge (meters 1.2999999523162842)
|
||||
)
|
||||
|
||||
(define
|
||||
|
||||
@@ -5,3 +5,220 @@
|
||||
;; name in dgo: floating-launcher
|
||||
;; dgos: L1, SUN, SUNKEN
|
||||
|
||||
;; DECOMP BEGINS
|
||||
|
||||
(deftype floating-launcher (baseplat)
|
||||
((trigger-height float :offset-assert 228)
|
||||
(launcher (pointer launcher) :offset-assert 232)
|
||||
)
|
||||
:heap-base #x80
|
||||
:method-count-assert 27
|
||||
:size-assert #xec
|
||||
:flag-assert #x1b008000ec
|
||||
(:states
|
||||
floating-launcher-idle
|
||||
floating-launcher-lowering
|
||||
floating-launcher-ready
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
(defskelgroup *floating-launcher-sg* floating-launcher
|
||||
0
|
||||
2
|
||||
((1 (meters 999999)))
|
||||
:bounds (static-spherem 0 0 0 5)
|
||||
:longest-edge (meters 0)
|
||||
)
|
||||
|
||||
(defstate floating-launcher-idle (floating-launcher)
|
||||
:event
|
||||
(the-as
|
||||
(function process int symbol event-message-block object :behavior floating-launcher)
|
||||
plat-event
|
||||
)
|
||||
:trans
|
||||
(behavior ()
|
||||
(plat-trans)
|
||||
(when
|
||||
(<
|
||||
(vector-xz-length
|
||||
(vector-!
|
||||
(new 'stack-no-clear 'vector)
|
||||
(target-pos 0)
|
||||
(-> self root-override trans)
|
||||
)
|
||||
)
|
||||
81920.0
|
||||
)
|
||||
(if
|
||||
(and
|
||||
(>= (-> (target-pos 0) y) (-> self trigger-height))
|
||||
(logtest? (-> *target* control status) 2)
|
||||
)
|
||||
(go floating-launcher-lowering)
|
||||
)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
:code
|
||||
(behavior ()
|
||||
(transform-post)
|
||||
(suspend)
|
||||
(transform-post)
|
||||
(suspend)
|
||||
(while #t
|
||||
(suspend)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
:post
|
||||
(the-as (function none :behavior floating-launcher) plat-post)
|
||||
)
|
||||
|
||||
(defstate floating-launcher-lowering (floating-launcher)
|
||||
:event
|
||||
(the-as
|
||||
(function process int symbol event-message-block object :behavior floating-launcher)
|
||||
plat-event
|
||||
)
|
||||
:trans
|
||||
(the-as (function none :behavior floating-launcher) plat-trans)
|
||||
:code
|
||||
(behavior ()
|
||||
(let ((a0-1 (entity-actor-lookup (-> self entity) 'alt-actor 0)))
|
||||
(if a0-1
|
||||
(entity-birth-no-kill a0-1)
|
||||
)
|
||||
)
|
||||
(let ((f30-0 1.0))
|
||||
(while (!= f30-0 0.0)
|
||||
(set! f30-0 (seek f30-0 0.0 (-> *display* seconds-per-frame)))
|
||||
(eval-path-curve-div! (-> self path) (-> self basetrans) f30-0 'interp)
|
||||
(set!
|
||||
(-> self launcher 0 root-override trans quad)
|
||||
(-> self basetrans quad)
|
||||
)
|
||||
(dummy-47 (-> self launcher 0 root-override))
|
||||
(suspend)
|
||||
)
|
||||
)
|
||||
(eval-path-curve-div! (-> self path) (-> self basetrans) 0.0 'interp)
|
||||
(set! (-> self launcher 0 root-override trans quad) (-> self basetrans quad))
|
||||
(dummy-47 (-> self launcher 0 root-override))
|
||||
(go floating-launcher-ready)
|
||||
(none)
|
||||
)
|
||||
:post
|
||||
(the-as (function none :behavior floating-launcher) plat-post)
|
||||
)
|
||||
|
||||
(defstate floating-launcher-ready (floating-launcher)
|
||||
:event
|
||||
(the-as
|
||||
(function process int symbol event-message-block object :behavior floating-launcher)
|
||||
plat-event
|
||||
)
|
||||
:trans
|
||||
(the-as (function none :behavior floating-launcher) plat-trans)
|
||||
:code
|
||||
(the-as (function none :behavior floating-launcher) plat-code)
|
||||
:post
|
||||
(the-as (function none :behavior floating-launcher) plat-post)
|
||||
)
|
||||
|
||||
(defmethod
|
||||
copy-defaults!
|
||||
floating-launcher
|
||||
((obj floating-launcher) (arg0 res-lump))
|
||||
(set! (-> obj mask) (logior (process-mask platform) (-> obj mask)))
|
||||
(let
|
||||
((s4-0
|
||||
(new 'process 'collide-shape-moving obj (collide-list-enum hit-by-player))
|
||||
)
|
||||
)
|
||||
(set! (-> s4-0 dynam) (copy *standard-dynamics* 'process))
|
||||
(set! (-> s4-0 reaction) default-collision-reaction)
|
||||
(set! (-> s4-0 no-reaction) nothing)
|
||||
(dummy-29 s4-0 1)
|
||||
(let
|
||||
((s3-0
|
||||
(new
|
||||
'process
|
||||
'collide-shape-prim-mesh
|
||||
s4-0
|
||||
(the-as uint 0)
|
||||
(the-as uint 0)
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! (-> s3-0 prim-core collide-as) (the-as uint 2048))
|
||||
(set! (-> s3-0 collide-with) (the-as uint 16))
|
||||
(set! (-> s3-0 prim-core action) (the-as uint 3))
|
||||
(set! (-> s3-0 prim-core offense) 4)
|
||||
(set! (-> s3-0 transform-index) 0)
|
||||
(set-vector! (-> s3-0 local-sphere) 0.0 0.0 0.0 11468.8)
|
||||
)
|
||||
(dummy-46 s4-0)
|
||||
(set! (-> s4-0 nav-radius) (* 0.75 (-> s4-0 root-prim local-sphere w)))
|
||||
(dummy-50 s4-0)
|
||||
(set! (-> obj root-override) s4-0)
|
||||
)
|
||||
(process-drawable-from-entity! obj arg0)
|
||||
(set! (-> obj path) (new 'process 'path-control obj 'path 0.0))
|
||||
(logior!
|
||||
(-> obj path flags)
|
||||
(path-control-flag display draw-line draw-point draw-text)
|
||||
)
|
||||
(eval-path-curve-div! (-> obj path) (-> obj root-override trans) 1.0 'interp)
|
||||
(let ((f30-0 (res-lump-float arg0 'spring-height :default 163840.0))
|
||||
(s4-1 (get-process *default-dead-pool* launcher #x4000))
|
||||
)
|
||||
(set! (-> obj launcher) (the-as (pointer launcher) (when s4-1
|
||||
(let
|
||||
((t9-11
|
||||
(method-of-type
|
||||
launcher
|
||||
activate
|
||||
)
|
||||
)
|
||||
)
|
||||
(t9-11
|
||||
(the-as launcher s4-1)
|
||||
obj
|
||||
'launcher
|
||||
(the-as
|
||||
pointer
|
||||
#x70004000
|
||||
)
|
||||
)
|
||||
)
|
||||
(run-now-in-process
|
||||
s4-1
|
||||
launcher-init-by-other
|
||||
(->
|
||||
obj
|
||||
root-override
|
||||
trans
|
||||
)
|
||||
f30-0
|
||||
0
|
||||
81920.0
|
||||
)
|
||||
(-> s4-1 ppointer)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(initialize-skeleton obj *floating-launcher-sg* '())
|
||||
(logior! (-> obj skel status) 1)
|
||||
(dummy-47 (-> obj root-override))
|
||||
(dummy-21 obj)
|
||||
(set! (-> obj trigger-height) (res-lump-float arg0 'trigger-height))
|
||||
(go floating-launcher-idle)
|
||||
(none)
|
||||
)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -5,3 +5,189 @@
|
||||
;; name in dgo: shover
|
||||
;; dgos: L1, SUN, SUNKEN
|
||||
|
||||
(declare-type shover process-drawable)
|
||||
(define-extern *shover* shover) ;; unknown type
|
||||
|
||||
;; DECOMP BEGINS
|
||||
|
||||
(deftype shover (process-drawable)
|
||||
((root-override collide-shape :offset 112)
|
||||
(shove-up float :offset-assert 176)
|
||||
)
|
||||
:heap-base #x50
|
||||
:method-count-assert 20
|
||||
:size-assert #xb4
|
||||
:flag-assert #x14005000b4
|
||||
(:states
|
||||
shover-idle
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
(defskelgroup *shover-sg* shover
|
||||
0
|
||||
2
|
||||
((1 (meters 999999)))
|
||||
:bounds (static-spherem 0 0 0 2)
|
||||
:longest-edge (meters 0)
|
||||
)
|
||||
|
||||
(defstate shover-idle (shover)
|
||||
:event
|
||||
(behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
|
||||
(case arg2
|
||||
(('touch 'attack)
|
||||
(when (= (-> arg0 type) target)
|
||||
(when
|
||||
((method-of-type touching-shapes-entry dummy-13)
|
||||
(the-as touching-shapes-entry (-> arg3 param 0))
|
||||
(-> *target* control)
|
||||
1
|
||||
0
|
||||
)
|
||||
(let ((s4-0 (new 'stack 'attack-info)))
|
||||
(dummy-41 (-> self root-override) s4-0 (-> self shove-up))
|
||||
(level-hint-spawn
|
||||
(game-text-id sunken-take-it-easy-hot-pipes)
|
||||
"sksp0134"
|
||||
(the-as entity #f)
|
||||
*entity-pool*
|
||||
(game-task none)
|
||||
)
|
||||
(cond
|
||||
((or
|
||||
(= (-> *target* control unknown-surface00 mode) 'air)
|
||||
(>=
|
||||
(+ (-> *display* base-frame-counter) -60)
|
||||
(-> *target* control unknown-dword10)
|
||||
)
|
||||
(< 0.75 (-> *target* control poly-normal y))
|
||||
)
|
||||
(let ((a1-6 (new 'stack-no-clear 'event-message-block)))
|
||||
(set! (-> a1-6 from) self)
|
||||
(set! (-> a1-6 num-params) 2)
|
||||
(set! (-> a1-6 message) 'attack-or-shove)
|
||||
(set! (-> a1-6 param 0) (-> arg3 param 0))
|
||||
(let ((v1-22 (new 'static 'attack-info :mask #xa2)))
|
||||
(set! (-> v1-22 mode) 'burn)
|
||||
(set! (-> v1-22 vector quad) (-> s4-0 vector quad))
|
||||
(set! (-> v1-22 shove-up) (-> s4-0 shove-up))
|
||||
(set! (-> a1-6 param 1) (the-as uint v1-22))
|
||||
)
|
||||
(send-event-function arg0 a1-6)
|
||||
)
|
||||
)
|
||||
(else
|
||||
(let ((a1-7 (new 'stack-no-clear 'event-message-block)))
|
||||
(set! (-> a1-7 from) self)
|
||||
(set! (-> a1-7 num-params) 2)
|
||||
(set! (-> a1-7 message) 'attack-or-shove)
|
||||
(set! (-> a1-7 param 0) (-> arg3 param 0))
|
||||
(let ((v1-26 (new 'static 'attack-info :mask #x8e2)))
|
||||
(set! (-> v1-26 mode) 'burn)
|
||||
(set! (-> v1-26 shove-up) 0.0)
|
||||
(set! (-> v1-26 shove-back) 8192.0)
|
||||
(set!
|
||||
(-> v1-26 vector quad)
|
||||
(-> *target* control poly-normal quad)
|
||||
)
|
||||
(set! (-> v1-26 angle) 'shove)
|
||||
(set! (-> a1-7 param 1) (the-as uint v1-26))
|
||||
)
|
||||
(send-event-function arg0 a1-7)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
:code
|
||||
(the-as (function none :behavior shover) anim-loop)
|
||||
)
|
||||
|
||||
(defmethod copy-defaults! shover ((obj shover) (arg0 res-lump))
|
||||
(local-vars (sv-16 res-tag))
|
||||
(set! (-> obj shove-up) (res-lump-float arg0 'shove :default 12288.0))
|
||||
(let ((s3-0 (res-lump-value arg0 'collision-mesh-id uint128))
|
||||
(s4-0
|
||||
(new 'process 'collide-shape obj (collide-list-enum hit-by-player))
|
||||
)
|
||||
)
|
||||
(let
|
||||
((s3-1
|
||||
(new
|
||||
'process
|
||||
'collide-shape-prim-mesh
|
||||
s4-0
|
||||
(the-as uint s3-0)
|
||||
(the-as uint 0)
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! (-> s3-1 prim-core collide-as) (the-as uint 512))
|
||||
(set! (-> s3-1 collide-with) (the-as uint 16))
|
||||
(set! (-> s3-1 prim-core action) (the-as uint 1))
|
||||
(set! (-> s3-1 prim-core offense) 4)
|
||||
(set! (-> s3-1 transform-index) 0)
|
||||
(set-vector! (-> s3-1 local-sphere) 0.0 0.0 0.0 53248.0)
|
||||
)
|
||||
(dummy-46 s4-0)
|
||||
(set! (-> s4-0 nav-radius) (* 0.75 (-> s4-0 root-prim local-sphere w)))
|
||||
(dummy-50 s4-0)
|
||||
(set! (-> obj root-override) s4-0)
|
||||
)
|
||||
(process-drawable-from-entity! obj arg0)
|
||||
(initialize-skeleton obj *shover-sg* '())
|
||||
(let ((v1-17 (new 'process 'path-control obj 'path 0.0)))
|
||||
(set! (-> obj path) v1-17)
|
||||
(logior!
|
||||
(-> v1-17 flags)
|
||||
(path-control-flag display draw-line draw-point draw-text)
|
||||
)
|
||||
(if (<= (-> v1-17 curve num-cverts) 0)
|
||||
(go process-drawable-art-error "no path")
|
||||
)
|
||||
)
|
||||
(set! sv-16 (new 'static 'res-tag))
|
||||
(let
|
||||
((v1-23
|
||||
(res-lump-data arg0 'trans-offset (pointer float) :tag-ptr (& sv-16))
|
||||
)
|
||||
)
|
||||
(when v1-23
|
||||
(+! (-> obj root-override trans x) (-> v1-23 0))
|
||||
(+! (-> obj root-override trans y) (-> v1-23 1))
|
||||
(+! (-> obj root-override trans z) (-> v1-23 2))
|
||||
)
|
||||
)
|
||||
(let ((f0-13 (res-lump-float arg0 'rotoffset)))
|
||||
(if (!= f0-13 0.0)
|
||||
(quaternion-rotate-y!
|
||||
(-> obj root-override quat)
|
||||
(-> obj root-override quat)
|
||||
f0-13
|
||||
)
|
||||
)
|
||||
)
|
||||
(ja-channel-set! 1)
|
||||
(let ((s5-1 (-> obj skel root-channel 0)))
|
||||
(joint-control-channel-group-eval!
|
||||
s5-1
|
||||
(the-as art-joint-anim (-> obj draw art-group data 2))
|
||||
num-func-identity
|
||||
)
|
||||
(set! (-> s5-1 frame-num) 0.0)
|
||||
)
|
||||
(ja-post)
|
||||
(dummy-47 (-> obj root-override))
|
||||
(set! *shover* obj)
|
||||
(go shover-idle)
|
||||
(none)
|
||||
)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -5,3 +5,996 @@
|
||||
;; name in dgo: steam-cap
|
||||
;; dgos: L1, SUN, SUNKEN
|
||||
|
||||
;; DECOMP BEGINS
|
||||
|
||||
(deftype steam-cap-control-pt (structure)
|
||||
((trans vector :inline :offset-assert 0)
|
||||
(transv vector :inline :offset-assert 16)
|
||||
)
|
||||
:method-count-assert 9
|
||||
:size-assert #x20
|
||||
:flag-assert #x900000020
|
||||
)
|
||||
|
||||
|
||||
(deftype steam-cap (process-drawable)
|
||||
((root-override collide-shape-moving :offset 112)
|
||||
(do-burst? symbol :offset-assert 176)
|
||||
(do-falling-sound? symbol :offset-assert 180)
|
||||
(do-landing-sound? symbol :offset-assert 184)
|
||||
(begin-travel-up float :offset-assert 188)
|
||||
(begin-travel-down float :offset-assert 192)
|
||||
(sync sync-info :inline :offset-assert 196)
|
||||
(part2 sparticle-launch-control :offset-assert 204)
|
||||
(part3 sparticle-launch-control :offset-assert 208)
|
||||
(down vector :inline :offset-assert 224)
|
||||
(up vector :inline :offset-assert 240)
|
||||
(control-pt steam-cap-control-pt 3 :inline :offset-assert 256)
|
||||
)
|
||||
:heap-base #xf0
|
||||
:method-count-assert 22
|
||||
:size-assert #x160
|
||||
:flag-assert #x1600f00160
|
||||
(:methods
|
||||
(dummy-20 (_type_) none 20)
|
||||
(dummy-21 (_type_) quaternion 21)
|
||||
)
|
||||
(:states
|
||||
steam-cap-idle
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
(set!
|
||||
(-> *part-group-id-table* 441)
|
||||
(new 'static 'sparticle-launch-group
|
||||
:length 7
|
||||
:duration #xbb8
|
||||
:linger-duration #x5dc
|
||||
:name "group-steam-cap-sides"
|
||||
:launcher
|
||||
(new 'static 'inline-array sparticle-group-item 7
|
||||
(sp-item 1718 :fade-after (meters 100.0) :falloff-to (meters 160.0) :period 180 :length 75)
|
||||
(sp-item 1719 :fade-after (meters 100.0) :falloff-to (meters 160.0) :period 180 :length 75 :offset 60)
|
||||
(sp-item 1720 :fade-after (meters 100.0) :falloff-to (meters 160.0) :period 180 :length 75 :offset 120)
|
||||
(sp-item 1721 :fade-after (meters 100.0) :falloff-to (meters 160.0) :period 180 :length 75)
|
||||
(sp-item 1722 :fade-after (meters 100.0) :falloff-to (meters 160.0) :period 180 :length 75 :offset 60)
|
||||
(sp-item 1723 :fade-after (meters 100.0) :falloff-to (meters 160.0) :period 180 :length 75 :offset 120)
|
||||
(sp-item 1724 :fade-after (meters 60.0) :falloff-to (meters 60.0) :period 180 :length 75 :offset 120)
|
||||
)
|
||||
:bounds (new 'static 'sphere :w 40960.0)
|
||||
)
|
||||
)
|
||||
|
||||
(set!
|
||||
(-> *part-id-table* 1724)
|
||||
(new 'static 'sparticle-launcher
|
||||
:init-specs
|
||||
(new 'static 'inline-array sp-field-init-spec 16
|
||||
(sp-flt spt-num 1.0)
|
||||
(sp-int spt-rot-x 5)
|
||||
(sp-flt spt-r 4096.0)
|
||||
(sp-flt spt-g 2867.2)
|
||||
(sp-flt spt-b 3276.8)
|
||||
(sp-rnd-flt spt-vel-y (meters 0.016666668) (meters 0.033333335) 1.0)
|
||||
(sp-flt spt-accel-y 0.13653333)
|
||||
(sp-rnd-flt spt-friction 0.92 0.02 1.0)
|
||||
(sp-int spt-timer 300)
|
||||
(sp-cpuinfo-flags aux-list)
|
||||
(sp-int spt-next-time 150)
|
||||
(sp-launcher-by-id spt-next-launcher 1725)
|
||||
(sp-flt spt-conerot-x (degrees 90.0))
|
||||
(sp-rnd-flt spt-conerot-y (degrees 0.0) (degrees 360.0) 1.0)
|
||||
(sp-flt spt-conerot-radius (meters 2.5))
|
||||
(sp-end)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
(set!
|
||||
(-> *part-id-table* 1725)
|
||||
(new 'static 'sparticle-launcher
|
||||
:init-specs
|
||||
(new 'static 'inline-array sp-field-init-spec 2
|
||||
(sp-flt spt-fade-b -2.7306666)
|
||||
(sp-end)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
(set!
|
||||
(-> *part-id-table* 1718)
|
||||
(new 'static 'sparticle-launcher
|
||||
:init-specs
|
||||
(new 'static 'inline-array sp-field-init-spec 25
|
||||
(sp-tex spt-texture (new 'static 'texture-id :page #x2))
|
||||
(sp-rnd-flt spt-num 0.0 2.0 1.0)
|
||||
(sp-flt spt-y (meters -0.5))
|
||||
(sp-rnd-flt spt-scale-x (meters 0.5) (meters 1.5) 1.0)
|
||||
(sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 360.0) 1.0)
|
||||
(sp-copy-from-other spt-scale-y -4)
|
||||
(sp-flt spt-r 128.0)
|
||||
(sp-flt spt-g 128.0)
|
||||
(sp-flt spt-b 128.0)
|
||||
(sp-rnd-flt spt-a 0.0 16.0 1.0)
|
||||
(sp-rnd-flt spt-vel-y (meters 0.016666668) (meters 0.033333335) 1.0)
|
||||
(sp-flt spt-scalevel-x (meters 0.01))
|
||||
(sp-rnd-flt spt-rotvel-z (degrees -0.2) (degrees 0.4) 1.0)
|
||||
(sp-copy-from-other spt-scalevel-y -4)
|
||||
(sp-flt spt-fade-a 0.10666667)
|
||||
(sp-flt spt-accel-y 0.13653333)
|
||||
(sp-rnd-flt spt-friction 0.92 0.02 1.0)
|
||||
(sp-int spt-timer 300)
|
||||
(sp-cpuinfo-flags bit2 bit3)
|
||||
(sp-int spt-next-time 150)
|
||||
(sp-launcher-by-id spt-next-launcher 1726)
|
||||
(sp-flt spt-conerot-x (degrees 90.0))
|
||||
(sp-rnd-flt spt-conerot-y (degrees 0.0) (degrees 120.0) 1.0)
|
||||
(sp-flt spt-conerot-radius (meters 2.5))
|
||||
(sp-end)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
(set!
|
||||
(-> *part-id-table* 1721)
|
||||
(new 'static 'sparticle-launcher
|
||||
:init-specs
|
||||
(new 'static 'inline-array sp-field-init-spec 25
|
||||
(sp-tex spt-texture (new 'static 'texture-id :page #x2))
|
||||
(sp-rnd-flt spt-num 0.0 2.0 1.0)
|
||||
(sp-flt spt-y (meters -0.5))
|
||||
(sp-rnd-flt spt-scale-x (meters 0.5) (meters 1.5) 1.0)
|
||||
(sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 360.0) 1.0)
|
||||
(sp-copy-from-other spt-scale-y -4)
|
||||
(sp-flt spt-r 128.0)
|
||||
(sp-flt spt-g 128.0)
|
||||
(sp-flt spt-b 128.0)
|
||||
(sp-rnd-flt spt-a 0.0 16.0 1.0)
|
||||
(sp-rnd-flt spt-vel-y (meters 0.016666668) (meters 0.033333335) 1.0)
|
||||
(sp-flt spt-scalevel-x (meters 0.01))
|
||||
(sp-rnd-flt spt-rotvel-z (degrees -0.2) (degrees 0.4) 1.0)
|
||||
(sp-copy-from-other spt-scalevel-y -4)
|
||||
(sp-flt spt-fade-a 0.10666667)
|
||||
(sp-flt spt-accel-y 0.13653333)
|
||||
(sp-rnd-flt spt-friction 0.92 0.02 1.0)
|
||||
(sp-int spt-timer 300)
|
||||
(sp-cpuinfo-flags bit2)
|
||||
(sp-int spt-next-time 150)
|
||||
(sp-launcher-by-id spt-next-launcher 1726)
|
||||
(sp-flt spt-conerot-x (degrees 90.0))
|
||||
(sp-rnd-flt spt-conerot-y (degrees 0.0) (degrees 120.0) 1.0)
|
||||
(sp-flt spt-conerot-radius (meters 2.5))
|
||||
(sp-end)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
(set!
|
||||
(-> *part-id-table* 1719)
|
||||
(new 'static 'sparticle-launcher
|
||||
:init-specs
|
||||
(new 'static 'inline-array sp-field-init-spec 25
|
||||
(sp-tex spt-texture (new 'static 'texture-id :page #x2))
|
||||
(sp-rnd-flt spt-num 0.0 2.0 1.0)
|
||||
(sp-flt spt-y (meters -0.5))
|
||||
(sp-rnd-flt spt-scale-x (meters 0.5) (meters 1.5) 1.0)
|
||||
(sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 360.0) 1.0)
|
||||
(sp-copy-from-other spt-scale-y -4)
|
||||
(sp-flt spt-r 128.0)
|
||||
(sp-flt spt-g 128.0)
|
||||
(sp-flt spt-b 128.0)
|
||||
(sp-rnd-flt spt-a 0.0 16.0 1.0)
|
||||
(sp-rnd-flt spt-vel-y (meters 0.016666668) (meters 0.033333335) 1.0)
|
||||
(sp-flt spt-scalevel-x (meters 0.01))
|
||||
(sp-rnd-flt spt-rotvel-z (degrees -0.2) (degrees 0.4) 1.0)
|
||||
(sp-copy-from-other spt-scalevel-y -4)
|
||||
(sp-flt spt-fade-a 0.10666667)
|
||||
(sp-flt spt-accel-y 0.13653333)
|
||||
(sp-rnd-flt spt-friction 0.92 0.02 1.0)
|
||||
(sp-int spt-timer 300)
|
||||
(sp-cpuinfo-flags bit2 bit3)
|
||||
(sp-int spt-next-time 150)
|
||||
(sp-launcher-by-id spt-next-launcher 1726)
|
||||
(sp-flt spt-conerot-x (degrees 90.0))
|
||||
(sp-rnd-flt spt-conerot-y (degrees 120.0) (degrees 120.0) 1.0)
|
||||
(sp-flt spt-conerot-radius (meters 2.5))
|
||||
(sp-end)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
(set!
|
||||
(-> *part-id-table* 1722)
|
||||
(new 'static 'sparticle-launcher
|
||||
:init-specs
|
||||
(new 'static 'inline-array sp-field-init-spec 25
|
||||
(sp-tex spt-texture (new 'static 'texture-id :page #x2))
|
||||
(sp-rnd-flt spt-num 0.0 2.0 1.0)
|
||||
(sp-flt spt-y (meters -0.5))
|
||||
(sp-rnd-flt spt-scale-x (meters 0.5) (meters 1.5) 1.0)
|
||||
(sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 360.0) 1.0)
|
||||
(sp-copy-from-other spt-scale-y -4)
|
||||
(sp-flt spt-r 128.0)
|
||||
(sp-flt spt-g 128.0)
|
||||
(sp-flt spt-b 128.0)
|
||||
(sp-rnd-flt spt-a 0.0 16.0 1.0)
|
||||
(sp-rnd-flt spt-vel-y (meters 0.016666668) (meters 0.033333335) 1.0)
|
||||
(sp-flt spt-scalevel-x (meters 0.01))
|
||||
(sp-rnd-flt spt-rotvel-z (degrees -0.2) (degrees 0.4) 1.0)
|
||||
(sp-copy-from-other spt-scalevel-y -4)
|
||||
(sp-flt spt-fade-a 0.10666667)
|
||||
(sp-flt spt-accel-y 0.13653333)
|
||||
(sp-rnd-flt spt-friction 0.92 0.02 1.0)
|
||||
(sp-int spt-timer 300)
|
||||
(sp-cpuinfo-flags bit2)
|
||||
(sp-int spt-next-time 150)
|
||||
(sp-launcher-by-id spt-next-launcher 1726)
|
||||
(sp-flt spt-conerot-x (degrees 90.0))
|
||||
(sp-rnd-flt spt-conerot-y (degrees 120.0) (degrees 120.0) 1.0)
|
||||
(sp-flt spt-conerot-radius (meters 2.5))
|
||||
(sp-end)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
(set!
|
||||
(-> *part-id-table* 1720)
|
||||
(new 'static 'sparticle-launcher
|
||||
:init-specs
|
||||
(new 'static 'inline-array sp-field-init-spec 25
|
||||
(sp-tex spt-texture (new 'static 'texture-id :page #x2))
|
||||
(sp-rnd-flt spt-num 0.0 2.0 1.0)
|
||||
(sp-flt spt-y (meters -0.5))
|
||||
(sp-rnd-flt spt-scale-x (meters 0.5) (meters 1.5) 1.0)
|
||||
(sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 360.0) 1.0)
|
||||
(sp-copy-from-other spt-scale-y -4)
|
||||
(sp-flt spt-r 128.0)
|
||||
(sp-flt spt-g 128.0)
|
||||
(sp-flt spt-b 128.0)
|
||||
(sp-rnd-flt spt-a 0.0 16.0 1.0)
|
||||
(sp-rnd-flt spt-vel-y (meters 0.016666668) (meters 0.033333335) 1.0)
|
||||
(sp-flt spt-scalevel-x (meters 0.01))
|
||||
(sp-rnd-flt spt-rotvel-z (degrees -0.2) (degrees 0.4) 1.0)
|
||||
(sp-copy-from-other spt-scalevel-y -4)
|
||||
(sp-flt spt-fade-a 0.10666667)
|
||||
(sp-flt spt-accel-y 0.13653333)
|
||||
(sp-rnd-flt spt-friction 0.92 0.02 1.0)
|
||||
(sp-int spt-timer 300)
|
||||
(sp-cpuinfo-flags bit2 bit3)
|
||||
(sp-int spt-next-time 150)
|
||||
(sp-launcher-by-id spt-next-launcher 1726)
|
||||
(sp-flt spt-conerot-x (degrees 90.0))
|
||||
(sp-rnd-flt spt-conerot-y (degrees 240.0) (degrees 120.0) 1.0)
|
||||
(sp-flt spt-conerot-radius (meters 2.5))
|
||||
(sp-end)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
(set!
|
||||
(-> *part-id-table* 1723)
|
||||
(new 'static 'sparticle-launcher
|
||||
:init-specs
|
||||
(new 'static 'inline-array sp-field-init-spec 25
|
||||
(sp-tex spt-texture (new 'static 'texture-id :page #x2))
|
||||
(sp-rnd-flt spt-num 0.0 2.0 1.0)
|
||||
(sp-flt spt-y (meters -0.5))
|
||||
(sp-rnd-flt spt-scale-x (meters 0.5) (meters 1.5) 1.0)
|
||||
(sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 360.0) 1.0)
|
||||
(sp-copy-from-other spt-scale-y -4)
|
||||
(sp-flt spt-r 128.0)
|
||||
(sp-flt spt-g 128.0)
|
||||
(sp-flt spt-b 128.0)
|
||||
(sp-rnd-flt spt-a 0.0 16.0 1.0)
|
||||
(sp-rnd-flt spt-vel-y (meters 0.016666668) (meters 0.033333335) 1.0)
|
||||
(sp-flt spt-scalevel-x (meters 0.01))
|
||||
(sp-rnd-flt spt-rotvel-z (degrees -0.2) (degrees 0.4) 1.0)
|
||||
(sp-copy-from-other spt-scalevel-y -4)
|
||||
(sp-flt spt-fade-a 0.10666667)
|
||||
(sp-flt spt-accel-y 0.13653333)
|
||||
(sp-rnd-flt spt-friction 0.92 0.02 1.0)
|
||||
(sp-int spt-timer 300)
|
||||
(sp-cpuinfo-flags bit2)
|
||||
(sp-int spt-next-time 150)
|
||||
(sp-launcher-by-id spt-next-launcher 1726)
|
||||
(sp-flt spt-conerot-x (degrees 90.0))
|
||||
(sp-rnd-flt spt-conerot-y (degrees 240.0) (degrees 120.0) 1.0)
|
||||
(sp-flt spt-conerot-radius (meters 2.5))
|
||||
(sp-end)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
(set!
|
||||
(-> *part-id-table* 1726)
|
||||
(new 'static 'sparticle-launcher
|
||||
:init-specs
|
||||
(new 'static 'inline-array sp-field-init-spec 2
|
||||
(sp-flt spt-fade-a -0.21333334)
|
||||
(sp-end)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
(set!
|
||||
(-> *part-group-id-table* 442)
|
||||
(new 'static 'sparticle-launch-group
|
||||
:length 4
|
||||
:duration #xbb8
|
||||
:linger-duration #x5dc
|
||||
:name "group-steam-cap-plume"
|
||||
:launcher
|
||||
(new 'static 'inline-array sparticle-group-item 4
|
||||
(sp-item 1727 :fade-after (meters 120.0) :falloff-to (meters 160.0))
|
||||
(sp-item 1728 :fade-after (meters 120.0) :falloff-to (meters 160.0))
|
||||
(sp-item 1729 :fade-after (meters 60.0) :falloff-to (meters 60.0))
|
||||
(sp-item 1730 :fade-after (meters 60.0) :falloff-to (meters 60.0) :flags (start-dead))
|
||||
)
|
||||
:bounds (new 'static 'sphere :w 131072.0)
|
||||
)
|
||||
)
|
||||
|
||||
(set!
|
||||
(-> *part-group-id-table* 443)
|
||||
(new 'static 'sparticle-launch-group
|
||||
:length 2
|
||||
:duration #xbb8
|
||||
:linger-duration #x5dc
|
||||
:name "group-steam-cap-plume-spread"
|
||||
:launcher
|
||||
(new 'static 'inline-array sparticle-group-item 2
|
||||
(sp-item 1731 :fade-after (meters 120.0) :falloff-to (meters 160.0))
|
||||
(sp-item 1732 :fade-after (meters 120.0) :falloff-to (meters 160.0))
|
||||
)
|
||||
:bounds (new 'static 'sphere :w 131072.0)
|
||||
)
|
||||
)
|
||||
|
||||
(set!
|
||||
(-> *part-id-table* 1730)
|
||||
(new 'static 'sparticle-launcher
|
||||
:init-specs
|
||||
(new 'static 'inline-array sp-field-init-spec 16
|
||||
(sp-flt spt-num 0.4)
|
||||
(sp-int spt-rot-x 5)
|
||||
(sp-flt spt-r 6144.0)
|
||||
(sp-flt spt-g 2867.2)
|
||||
(sp-flt spt-b 3276.8)
|
||||
(sp-rnd-flt spt-vel-y (meters 0.016666668) (meters 0.033333335) 1.0)
|
||||
(sp-flt spt-accel-y 0.13653333)
|
||||
(sp-rnd-flt spt-friction 0.94 0.02 1.0)
|
||||
(sp-int spt-timer 300)
|
||||
(sp-cpuinfo-flags aux-list)
|
||||
(sp-int spt-next-time 150)
|
||||
(sp-launcher-by-id spt-next-launcher 1725)
|
||||
(sp-flt spt-conerot-x (degrees 90.0))
|
||||
(sp-rnd-flt spt-conerot-y (degrees 0.0) (degrees 360.0) 1.0)
|
||||
(sp-flt spt-conerot-radius (meters 2.5))
|
||||
(sp-end)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
(set!
|
||||
(-> *part-id-table* 1732)
|
||||
(new 'static 'sparticle-launcher
|
||||
:init-specs
|
||||
(new 'static 'inline-array sp-field-init-spec 24
|
||||
(sp-tex spt-texture (new 'static 'texture-id :page #x2))
|
||||
(sp-flt spt-num 0.5)
|
||||
(sp-flt spt-y (meters -0.5))
|
||||
(sp-rnd-flt spt-scale-x (meters 1.0) (meters 1.0) 1.0)
|
||||
(sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 360.0) 1.0)
|
||||
(sp-copy-from-other spt-scale-y -4)
|
||||
(sp-flt spt-r 128.0)
|
||||
(sp-flt spt-g 128.0)
|
||||
(sp-flt spt-b 128.0)
|
||||
(sp-rnd-flt spt-a 16.0 32.0 1.0)
|
||||
(sp-rnd-flt spt-vel-y (meters 0.026666667) (meters 0.026666667) 1.0)
|
||||
(sp-flt spt-scalevel-x (meters 0.013333334))
|
||||
(sp-rnd-flt spt-rotvel-z (degrees -0.2) (degrees 0.4) 1.0)
|
||||
(sp-copy-from-other spt-scalevel-y -4)
|
||||
(sp-flt spt-accel-y 0.13653333)
|
||||
(sp-rnd-flt spt-friction 0.92 0.02 1.0)
|
||||
(sp-int spt-timer 300)
|
||||
(sp-cpuinfo-flags bit2 bit3)
|
||||
(sp-int spt-next-time 150)
|
||||
(sp-launcher-by-id spt-next-launcher 1735)
|
||||
(sp-rnd-flt spt-conerot-x (degrees 90.0) (degrees 15.0) 1.0)
|
||||
(sp-rnd-flt spt-conerot-y (degrees 0.0) (degrees 360.0) 1.0)
|
||||
(sp-flt spt-conerot-radius (meters 0.5))
|
||||
(sp-end)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
(set!
|
||||
(-> *part-id-table* 1731)
|
||||
(new 'static 'sparticle-launcher
|
||||
:init-specs
|
||||
(new 'static 'inline-array sp-field-init-spec 24
|
||||
(sp-tex spt-texture (new 'static 'texture-id :page #x2))
|
||||
(sp-flt spt-num 0.5)
|
||||
(sp-flt spt-y (meters -0.5))
|
||||
(sp-rnd-flt spt-scale-x (meters 1.0) (meters 1.0) 1.0)
|
||||
(sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 360.0) 1.0)
|
||||
(sp-copy-from-other spt-scale-y -4)
|
||||
(sp-flt spt-r 128.0)
|
||||
(sp-flt spt-g 128.0)
|
||||
(sp-flt spt-b 128.0)
|
||||
(sp-rnd-flt spt-a 16.0 32.0 1.0)
|
||||
(sp-rnd-flt spt-vel-y (meters 0.026666667) (meters 0.026666667) 1.0)
|
||||
(sp-flt spt-scalevel-x (meters 0.013333334))
|
||||
(sp-rnd-flt spt-rotvel-z (degrees -0.2) (degrees 0.4) 1.0)
|
||||
(sp-copy-from-other spt-scalevel-y -4)
|
||||
(sp-flt spt-accel-y 0.13653333)
|
||||
(sp-rnd-flt spt-friction 0.92 0.02 1.0)
|
||||
(sp-int spt-timer 300)
|
||||
(sp-cpuinfo-flags bit2)
|
||||
(sp-int spt-next-time 150)
|
||||
(sp-launcher-by-id spt-next-launcher 1735)
|
||||
(sp-rnd-flt spt-conerot-x (degrees 90.0) (degrees 15.0) 1.0)
|
||||
(sp-rnd-flt spt-conerot-y (degrees 0.0) (degrees 360.0) 1.0)
|
||||
(sp-flt spt-conerot-radius (meters 0.5))
|
||||
(sp-end)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
(set!
|
||||
(-> *part-id-table* 1735)
|
||||
(new 'static 'sparticle-launcher
|
||||
:init-specs
|
||||
(new 'static 'inline-array sp-field-init-spec 2
|
||||
(sp-flt spt-fade-a -0.32)
|
||||
(sp-end)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
(set!
|
||||
(-> *part-id-table* 1727)
|
||||
(new 'static 'sparticle-launcher
|
||||
:init-specs
|
||||
(new 'static 'inline-array sp-field-init-spec 19
|
||||
(sp-tex spt-texture (new 'static 'texture-id :page #x2))
|
||||
(sp-rnd-flt spt-num 0.5 0.5 1.0)
|
||||
(sp-rnd-flt spt-x (meters 0.0) (meters 1.0) 1.0)
|
||||
(sp-flt spt-y (meters -1.0))
|
||||
(sp-rnd-flt spt-scale-x (meters 2.0) (meters 2.0) 1.0)
|
||||
(sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 360.0) 1.0)
|
||||
(sp-copy-from-other spt-scale-y -4)
|
||||
(sp-flt spt-r 128.0)
|
||||
(sp-flt spt-g 128.0)
|
||||
(sp-flt spt-b 128.0)
|
||||
(sp-rnd-flt spt-a 16.0 16.0 1.0)
|
||||
(sp-flt spt-vel-y (meters 0.053333335))
|
||||
(sp-rnd-flt spt-rotvel-z (degrees -0.2) (degrees 0.4) 1.0)
|
||||
(sp-flt spt-accel-y 2.7306666)
|
||||
(sp-int spt-timer 153)
|
||||
(sp-cpuinfo-flags bit2)
|
||||
(sp-rnd-flt spt-conerot-x (degrees 0.0) (degrees 15.0) 1.0)
|
||||
(sp-rnd-flt spt-rotate-y (degrees 0.0) (degrees 360.0) 1.0)
|
||||
(sp-end)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
(set!
|
||||
(-> *part-id-table* 1728)
|
||||
(new 'static 'sparticle-launcher
|
||||
:init-specs
|
||||
(new 'static 'inline-array sp-field-init-spec 18
|
||||
(sp-tex spt-texture (new 'static 'texture-id :page #x2))
|
||||
(sp-rnd-flt spt-num 0.5 0.5 1.0)
|
||||
(sp-rnd-flt spt-x (meters 0.0) (meters 0.5) 1.0)
|
||||
(sp-flt spt-y (meters -1.0))
|
||||
(sp-rnd-flt spt-scale-x (meters 2.0) (meters 2.0) 1.0)
|
||||
(sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 360.0) 1.0)
|
||||
(sp-copy-from-other spt-scale-y -4)
|
||||
(sp-flt spt-r 128.0)
|
||||
(sp-flt spt-g 128.0)
|
||||
(sp-flt spt-b 128.0)
|
||||
(sp-rnd-flt spt-a 32.0 32.0 1.0)
|
||||
(sp-flt spt-vel-y (meters 0.053333335))
|
||||
(sp-rnd-flt spt-rotvel-z (degrees -0.2) (degrees 0.4) 1.0)
|
||||
(sp-flt spt-accel-y 2.7306666)
|
||||
(sp-int spt-timer 153)
|
||||
(sp-cpuinfo-flags bit2 bit3)
|
||||
(sp-rnd-flt spt-rotate-y (degrees 0.0) (degrees 360.0) 1.0)
|
||||
(sp-end)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
(set!
|
||||
(-> *part-id-table* 1729)
|
||||
(new 'static 'sparticle-launcher
|
||||
:init-specs
|
||||
(new 'static 'inline-array sp-field-init-spec 11
|
||||
(sp-flt spt-num 0.5)
|
||||
(sp-rnd-flt spt-x (meters 0.5) (meters 0.5) 1.0)
|
||||
(sp-int spt-rot-x 5)
|
||||
(sp-flt spt-r 6144.0)
|
||||
(sp-flt spt-g 2457.6)
|
||||
(sp-flt spt-b 3276.8)
|
||||
(sp-flt spt-vel-y (meters 0.053333335))
|
||||
(sp-int spt-timer 153)
|
||||
(sp-cpuinfo-flags aux-list)
|
||||
(sp-rnd-flt spt-rotate-y (degrees 0.0) (degrees 360.0) 1.0)
|
||||
(sp-end)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
(defskelgroup *steam-cap-sg* steam-cap
|
||||
0
|
||||
2
|
||||
((1 (meters 999999)))
|
||||
:bounds (static-spherem 0 0 0 3)
|
||||
:longest-edge (meters 0)
|
||||
)
|
||||
|
||||
(defmethod dummy-20 steam-cap ((obj steam-cap))
|
||||
(with-pp
|
||||
(when *target*
|
||||
(let* ((a1-0 (target-pos 0))
|
||||
(f0-0 (-> a1-0 y))
|
||||
)
|
||||
(when
|
||||
(and
|
||||
(>= f0-0 (+ -8192.0 (-> obj down y)))
|
||||
(and
|
||||
(>= (+ -4096.0 (-> obj root-override trans y)) f0-0)
|
||||
(zero? (-> obj root-override riders num-riders))
|
||||
)
|
||||
)
|
||||
(let ((f0-1 (vector-vector-xz-distance-squared (-> obj down) a1-0)))
|
||||
(when (>= 104857600.0 f0-1)
|
||||
(let ((s5-0 (>= 37748736.0 f0-1)))
|
||||
(when (not s5-0)
|
||||
(when (>= (- (-> obj root-override trans y) (-> obj down y)) 3072.0)
|
||||
(let ((a1-1 (new 'stack-no-clear 'vector)))
|
||||
(set! (-> a1-1 x) (the-as float 1))
|
||||
(set! (-> a1-1 y) (the-as float #f))
|
||||
(if (dummy-40 (-> obj root-override) a1-1)
|
||||
(set! s5-0 #t)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(when s5-0
|
||||
(let ((a1-2 (new 'stack-no-clear 'event-message-block)))
|
||||
(set! (-> a1-2 from) pp)
|
||||
(set! (-> a1-2 num-params) 2)
|
||||
(set! (-> a1-2 message) 'shove)
|
||||
(set! (-> a1-2 param 0) (the-as uint #f))
|
||||
(let ((v1-16 (new 'static 'attack-info :mask #xc0)))
|
||||
(set! (-> v1-16 shove-up) 2048.0)
|
||||
(set! (-> v1-16 shove-back) 6144.0)
|
||||
(set! (-> a1-2 param 1) (the-as uint v1-16))
|
||||
)
|
||||
(send-event-function *target* a1-2)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
)
|
||||
|
||||
(defmethod dummy-21 steam-cap ((obj steam-cap))
|
||||
(local-vars (at-0 int) (at-1 int) (s5-0 symbol))
|
||||
(rlet ((vf0 :class vf)
|
||||
(vf1 :class vf)
|
||||
(vf2 :class vf)
|
||||
)
|
||||
(init-vf0-vector)
|
||||
(let ((f0-0 (get-current-phase (-> obj sync))))
|
||||
#t
|
||||
(cond
|
||||
((< f0-0 (-> obj begin-travel-up))
|
||||
(let ((f30-0 (/ f0-0 (-> obj begin-travel-up))))
|
||||
(set! s5-0 #t)
|
||||
(dotimes (s4-0 3)
|
||||
(let ((s3-0 (-> obj control-pt s4-0)))
|
||||
(when (= (-> s3-0 trans y) (-> obj down y))
|
||||
(set! (-> obj do-burst?) #t)
|
||||
(let ((a0-2 (+ (the int (* 60.0 (- 1.0 f30-0))) 3)))
|
||||
(if (zero? (rand-vu-int-count a0-2))
|
||||
(+!
|
||||
(-> s3-0 transv y)
|
||||
(* (rand-vu-float-range 40960.0 57344.0) f30-0)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(let ((a0-4 (+ (the int (* 60.0 (- 1.0 f30-0))) 1)))
|
||||
(if (zero? (rand-vu-int-count a0-4))
|
||||
(spawn (-> obj part) (-> obj down))
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
((< f0-0 (-> obj begin-travel-down))
|
||||
(let
|
||||
((f30-1
|
||||
(/
|
||||
(- f0-0 (-> obj begin-travel-up))
|
||||
(- (-> obj begin-travel-down) (-> obj begin-travel-up))
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! s5-0 #f)
|
||||
(set! (-> obj do-falling-sound?) #t)
|
||||
(when (-> obj do-burst?)
|
||||
(sound-play-by-name
|
||||
(static-sound-name "sunk-top-rises")
|
||||
(new-sound-id)
|
||||
1024
|
||||
0
|
||||
0
|
||||
1
|
||||
#t
|
||||
)
|
||||
(set! (-> obj do-burst?) #f)
|
||||
(spawn (-> obj part) (-> obj down))
|
||||
(spawn (-> obj part) (-> obj down))
|
||||
(spawn (-> obj part) (-> obj down))
|
||||
(spawn (-> obj part) (-> obj down))
|
||||
)
|
||||
(when (< f30-1 0.94)
|
||||
(spawn (-> obj part2) (-> obj down))
|
||||
(let ((a1-8 (new 'stack-no-clear 'vector)))
|
||||
(set! (-> a1-8 quad) (-> obj root-override trans quad))
|
||||
(set! (-> a1-8 y) (+ -3072.0 (-> a1-8 y)))
|
||||
(spawn (-> obj part3) a1-8)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(else
|
||||
(set! s5-0 #t)
|
||||
(when (-> obj do-falling-sound?)
|
||||
(set! (-> obj do-falling-sound?) #f)
|
||||
(sound-play-by-name
|
||||
(static-sound-name "sunk-top-falls")
|
||||
(new-sound-id)
|
||||
1024
|
||||
0
|
||||
0
|
||||
1
|
||||
#t
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(dotimes (s4-3 3)
|
||||
(let ((s2-0 (-> obj control-pt s4-3))
|
||||
(s3-3 (new 'stack-no-clear 'vector))
|
||||
)
|
||||
(set! (-> s3-3 quad) (-> s2-0 trans quad))
|
||||
(cond
|
||||
(s5-0
|
||||
(+! (-> s2-0 transv y) (* -819200.0 (-> *display* seconds-per-frame)))
|
||||
(let ((a1-10 s3-3)
|
||||
(v1-42 s3-3)
|
||||
(a0-21 (new 'stack-no-clear 'vector))
|
||||
)
|
||||
(.lvf vf1 (&-> (-> s2-0 transv) quad))
|
||||
(let ((f0-17 (-> *display* seconds-per-frame)))
|
||||
(.mov at-0 f0-17)
|
||||
)
|
||||
(.mov vf2 at-0)
|
||||
(.mov.vf vf1 vf0 :mask #b1000)
|
||||
(.mul.x.vf vf1 vf1 vf2 :mask #b111)
|
||||
(.svf (&-> a0-21 quad) vf1)
|
||||
(vector+! a1-10 v1-42 a0-21)
|
||||
)
|
||||
(when (< (-> s3-3 y) (-> obj down y))
|
||||
(when (-> obj do-landing-sound?)
|
||||
(set! (-> obj do-landing-sound?) #f)
|
||||
(sound-play-by-name
|
||||
(static-sound-name "sunk-top-lands")
|
||||
(new-sound-id)
|
||||
1024
|
||||
0
|
||||
0
|
||||
1
|
||||
#t
|
||||
)
|
||||
)
|
||||
(set! (-> s3-3 y) (-> obj down y))
|
||||
(let ((f0-20 (-> s2-0 transv y)))
|
||||
(when (< f0-20 0.0)
|
||||
(let ((f0-22 (* 0.3 (- f0-20))))
|
||||
(set! (-> s2-0 transv y) f0-22)
|
||||
(if (< 7782.4 f0-22)
|
||||
(sound-play-by-name
|
||||
(static-sound-name "sunk-top-lands")
|
||||
(new-sound-id)
|
||||
614
|
||||
0
|
||||
0
|
||||
1
|
||||
#t
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(else
|
||||
(set! (-> obj do-landing-sound?) #t)
|
||||
(let ((f0-24 (* 0.000048828126 (- (-> obj up y) (-> s2-0 trans y)))))
|
||||
(cond
|
||||
((< 1.0 f0-24)
|
||||
(set! f0-24 1.0)
|
||||
)
|
||||
((< f0-24 -1.0)
|
||||
(set! f0-24 -1.0)
|
||||
)
|
||||
)
|
||||
(+!
|
||||
(-> s2-0 transv y)
|
||||
(* 819200.0 (-> *display* seconds-per-frame) f0-24)
|
||||
)
|
||||
(let ((f1-24 (-> s2-0 transv y)))
|
||||
(when (< 122880.0 (fabs f1-24))
|
||||
(if (>= f1-24 0.0)
|
||||
(set! (-> s2-0 transv y) 122880.0)
|
||||
(set! (-> s2-0 transv y) -122880.0)
|
||||
)
|
||||
)
|
||||
)
|
||||
(let ((a1-14 s3-3)
|
||||
(v1-61 s3-3)
|
||||
(a0-26 (new 'stack-no-clear 'vector))
|
||||
)
|
||||
(.lvf vf1 (&-> (-> s2-0 transv) quad))
|
||||
(let ((f1-27 (-> *display* seconds-per-frame)))
|
||||
(.mov at-1 f1-27)
|
||||
)
|
||||
(.mov vf2 at-1)
|
||||
(.mov.vf vf1 vf0 :mask #b1000)
|
||||
(.mul.x.vf vf1 vf1 vf2 :mask #b111)
|
||||
(.svf (&-> a0-26 quad) vf1)
|
||||
(vector+! a1-14 v1-61 a0-26)
|
||||
)
|
||||
(let ((f1-29 (- (-> obj up y) (-> s3-3 y)))
|
||||
(v1-62 (>= f0-24 0.0))
|
||||
)
|
||||
(when (!= v1-62 (>= f1-29 0.0))
|
||||
(let ((f0-26 (-> s2-0 transv y)))
|
||||
(when (< 40960.0 (fabs f0-26))
|
||||
(if (>= f0-26 0.0)
|
||||
(set! (-> s2-0 transv y) 40960.0)
|
||||
(set! (-> s2-0 transv y) -40960.0)
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! (-> s2-0 transv y) (* 0.8 (-> s2-0 transv y)))
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! (-> s2-0 trans quad) (-> s3-3 quad))
|
||||
)
|
||||
)
|
||||
(let ((f0-31 0.0))
|
||||
(dotimes (v1-71 3)
|
||||
(+! f0-31 (-> obj control-pt v1-71 trans y))
|
||||
)
|
||||
(let ((f0-32 (* 0.33333334 f0-31))
|
||||
(a1-16 (new 'stack-no-clear 'vector))
|
||||
)
|
||||
(set! (-> a1-16 quad) (-> obj root-override trans quad))
|
||||
(set! (-> a1-16 y) f0-32)
|
||||
(TODO-RENAME-30 (-> obj root-override) a1-16)
|
||||
)
|
||||
)
|
||||
(let ((v1-77 (new 'stack-no-clear 'vector))
|
||||
(a0-35 (new 'stack-no-clear 'vector))
|
||||
(s5-1 (new 'stack-no-clear 'vector))
|
||||
)
|
||||
(vector-!
|
||||
v1-77
|
||||
(the-as vector (&-> obj stack 176))
|
||||
(the-as vector (-> obj control-pt))
|
||||
)
|
||||
(vector-!
|
||||
a0-35
|
||||
(the-as vector (&-> obj stack 208))
|
||||
(the-as vector (-> obj control-pt))
|
||||
)
|
||||
(vector-cross! s5-1 v1-77 a0-35)
|
||||
(vector-normalize! s5-1 1.0)
|
||||
(forward-up-nopitch->quaternion
|
||||
(-> obj root-override quat)
|
||||
(vector-z-quaternion! (new-stack-vector0) (-> obj root-override quat))
|
||||
s5-1
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
(defstate steam-cap-idle (steam-cap)
|
||||
:trans
|
||||
(the-as (function none :behavior steam-cap) rider-trans)
|
||||
:code
|
||||
(behavior ()
|
||||
(while #t
|
||||
(dummy-20 self)
|
||||
(dummy-21 self)
|
||||
(suspend)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
:post
|
||||
(the-as (function none :behavior steam-cap) rider-post)
|
||||
)
|
||||
|
||||
(defmethod relocate steam-cap ((obj steam-cap) (arg0 int))
|
||||
(if (nonzero? (-> obj part2))
|
||||
(&+! (-> obj part2) arg0)
|
||||
)
|
||||
(if (nonzero? (-> obj part3))
|
||||
(&+! (-> obj part3) arg0)
|
||||
)
|
||||
(the-as
|
||||
steam-cap
|
||||
((the-as
|
||||
(function process-drawable int process-drawable)
|
||||
(find-parent-method steam-cap 7)
|
||||
)
|
||||
obj
|
||||
arg0
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
(defmethod deactivate steam-cap ((obj steam-cap))
|
||||
(if (nonzero? (-> obj part2))
|
||||
(kill-and-free-particles (-> obj part2))
|
||||
)
|
||||
(if (nonzero? (-> obj part3))
|
||||
(kill-and-free-particles (-> obj part3))
|
||||
)
|
||||
((method-of-type process-drawable deactivate) obj)
|
||||
(none)
|
||||
)
|
||||
|
||||
(defmethod copy-defaults! steam-cap ((obj steam-cap) (arg0 res-lump))
|
||||
(local-vars (sv-16 int))
|
||||
(set! (-> obj mask) (logior (process-mask platform) (-> obj mask)))
|
||||
(let
|
||||
((s4-0
|
||||
(new 'process 'collide-shape-moving obj (collide-list-enum hit-by-player))
|
||||
)
|
||||
)
|
||||
(set! (-> s4-0 dynam) (copy *standard-dynamics* 'process))
|
||||
(set! (-> s4-0 reaction) default-collision-reaction)
|
||||
(set! (-> s4-0 no-reaction) nothing)
|
||||
(dummy-29 s4-0 1)
|
||||
(let
|
||||
((s3-0
|
||||
(new
|
||||
'process
|
||||
'collide-shape-prim-mesh
|
||||
s4-0
|
||||
(the-as uint 0)
|
||||
(the-as uint 0)
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! (-> s3-0 prim-core collide-as) (the-as uint 2048))
|
||||
(set! (-> s3-0 collide-with) (the-as uint 16))
|
||||
(set! (-> s3-0 prim-core action) (the-as uint 3))
|
||||
(set! (-> s3-0 prim-core offense) 4)
|
||||
(set! (-> s3-0 transform-index) 4)
|
||||
(set-vector! (-> s3-0 local-sphere) 0.0 0.0 0.0 12288.0)
|
||||
)
|
||||
(dummy-46 s4-0)
|
||||
(set! (-> s4-0 nav-radius) (* 0.75 (-> s4-0 root-prim local-sphere w)))
|
||||
(dummy-50 s4-0)
|
||||
(set! (-> obj root-override) s4-0)
|
||||
)
|
||||
(set! (-> obj do-burst?) #f)
|
||||
(set! (-> obj do-falling-sound?) #f)
|
||||
(set! (-> obj do-landing-sound?) #f)
|
||||
(process-drawable-from-entity! obj arg0)
|
||||
(initialize-skeleton obj *steam-cap-sg* '())
|
||||
(logior! (-> obj skel status) 1)
|
||||
(ja-channel-set! 1)
|
||||
(let ((s4-1 (-> obj skel root-channel 0)))
|
||||
(joint-control-channel-group-eval!
|
||||
s4-1
|
||||
(the-as art-joint-anim (-> obj draw art-group data 2))
|
||||
num-func-identity
|
||||
)
|
||||
(set! (-> s4-1 frame-num) 0.0)
|
||||
)
|
||||
(dummy-47 (-> obj root-override))
|
||||
(load-params! (-> obj sync) obj (the-as uint 1800) 0.0 0.15 0.15)
|
||||
(let ((f30-0 0.4)
|
||||
(f28-0 0.9)
|
||||
)
|
||||
(set! sv-16 0)
|
||||
(let
|
||||
((v1-36
|
||||
(res-lump-data
|
||||
arg0
|
||||
'percent
|
||||
(pointer float)
|
||||
:tag-ptr
|
||||
(the-as (pointer res-tag) (& sv-16))
|
||||
)
|
||||
)
|
||||
)
|
||||
(when v1-36
|
||||
(set! f30-0 (-> v1-36 0))
|
||||
(set! f28-0 (-> v1-36 1))
|
||||
(if (>= 0.01 f30-0)
|
||||
(set! f30-0 0.01)
|
||||
)
|
||||
(if (>= 0.01 f28-0)
|
||||
(set! f28-0 0.01)
|
||||
)
|
||||
(if (>= f30-0 f28-0)
|
||||
(set! f28-0 (+ 0.01 f30-0))
|
||||
)
|
||||
(when (>= f30-0 1.0)
|
||||
(set! f28-0 (* 0.9 (/ f28-0 f30-0)))
|
||||
(set! f30-0 0.9)
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! (-> obj begin-travel-up) f30-0)
|
||||
(set! (-> obj begin-travel-down) f28-0)
|
||||
)
|
||||
(set! (-> obj down quad) (-> obj root-override trans quad))
|
||||
(set! (-> obj up quad) (-> obj root-override trans quad))
|
||||
(set! (-> obj up y) (+ 40960.0 (-> obj up y)))
|
||||
(set!
|
||||
(-> obj part)
|
||||
(create-launch-control (-> *part-group-id-table* 441) obj)
|
||||
)
|
||||
(set!
|
||||
(-> obj part2)
|
||||
(create-launch-control (-> *part-group-id-table* 442) obj)
|
||||
)
|
||||
(set!
|
||||
(-> obj part3)
|
||||
(create-launch-control (-> *part-group-id-table* 443) obj)
|
||||
)
|
||||
(vector-reset! (-> obj root-override transv))
|
||||
(let ((s5-1 (new 'stack-no-clear 'vector))
|
||||
(f30-1 0.0)
|
||||
)
|
||||
(dotimes (s4-2 3)
|
||||
(let ((s3-1 (-> obj control-pt s4-2)))
|
||||
(set-vector! s5-1 0.0 0.0 10240.0 1.0)
|
||||
(vector-rotate-around-y! s5-1 s5-1 f30-1)
|
||||
(set! f30-1 (+ 21845.334 f30-1))
|
||||
(vector+! (-> s3-1 trans) s5-1 (-> obj root-override trans))
|
||||
(vector-reset! (-> s3-1 transv))
|
||||
)
|
||||
)
|
||||
)
|
||||
(go steam-cap-idle)
|
||||
(none)
|
||||
)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -5,3 +5,600 @@
|
||||
;; name in dgo: sun-iris-door
|
||||
;; dgos: L1, SUN, SUNKEN
|
||||
|
||||
;; DECOMP BEGINS
|
||||
|
||||
(deftype sun-iris-door (process-drawable)
|
||||
((root-override collide-shape :offset 112)
|
||||
(timeout float :offset-assert 176)
|
||||
(proximity? symbol :offset-assert 180)
|
||||
(directional-proximity? symbol :offset-assert 184)
|
||||
(move-to? symbol :offset-assert 188)
|
||||
(locked-by-task? symbol :offset-assert 192)
|
||||
(close-dist float :offset-assert 196)
|
||||
(open-dist float :offset-assert 200)
|
||||
(move-to-pos vector :inline :offset-assert 208)
|
||||
(outward-vec vector :inline :offset-assert 224)
|
||||
(move-to-quat quaternion :inline :offset-assert 240)
|
||||
)
|
||||
:heap-base #x90
|
||||
:method-count-assert 22
|
||||
:size-assert #x100
|
||||
:flag-assert #x1600900100
|
||||
(:methods
|
||||
(should-close? (_type_) symbol 20)
|
||||
(should-open? (_type_) symbol 21)
|
||||
)
|
||||
(:states
|
||||
sun-iris-door-closed
|
||||
sun-iris-door-closing
|
||||
sun-iris-door-open
|
||||
sun-iris-door-opening
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
(defskelgroup *sun-iris-door-sg* sun-iris-door
|
||||
0
|
||||
3
|
||||
((1 (meters 999999)))
|
||||
:bounds (static-spherem 0 0 0 4.5)
|
||||
:longest-edge (meters 0)
|
||||
)
|
||||
|
||||
(defmethod should-open? sun-iris-door ((obj sun-iris-door))
|
||||
(let ((f30-0 1228800.0))
|
||||
0.0
|
||||
(let ((f0-7 (cond
|
||||
((-> obj directional-proximity?)
|
||||
(let ((s5-0 (new 'stack-no-clear 'vector)))
|
||||
(when *target*
|
||||
(vector-! s5-0 (target-pos 0) (-> obj root-override trans))
|
||||
(set! (-> s5-0 y) 0.0)
|
||||
(set! f30-0 (fabs (vector-dot s5-0 (-> obj outward-vec))))
|
||||
)
|
||||
(vector-! s5-0 (camera-pos) (-> obj root-override trans))
|
||||
(set! (-> s5-0 y) 0.0)
|
||||
(fabs (vector-dot s5-0 (-> obj outward-vec)))
|
||||
)
|
||||
)
|
||||
(else
|
||||
(if *target*
|
||||
(set!
|
||||
f30-0
|
||||
(vector-vector-xz-distance
|
||||
(-> obj root-override trans)
|
||||
(target-pos 0)
|
||||
)
|
||||
)
|
||||
)
|
||||
(vector-vector-xz-distance
|
||||
(-> obj root-override trans)
|
||||
(camera-pos)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(when (or (>= (-> obj open-dist) f30-0) (>= (-> obj open-dist) f0-7))
|
||||
(if
|
||||
(or
|
||||
(not (-> obj locked-by-task?))
|
||||
(task-complete? *game-info* (-> obj entity extra perm task))
|
||||
)
|
||||
(return #t)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
#f
|
||||
)
|
||||
|
||||
(defstate sun-iris-door-closed (sun-iris-door)
|
||||
:event
|
||||
(behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
|
||||
(case arg2
|
||||
(('trigger)
|
||||
(go sun-iris-door-opening)
|
||||
)
|
||||
(('move-to)
|
||||
(set! (-> self move-to?) #t)
|
||||
(set!
|
||||
(-> self move-to-pos quad)
|
||||
(-> (the-as vector (-> arg3 param 0)) quad)
|
||||
)
|
||||
(quaternion-copy!
|
||||
(-> self move-to-quat)
|
||||
(the-as quaternion (-> arg3 param 1))
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
:trans
|
||||
(behavior ()
|
||||
(when (-> self proximity?)
|
||||
(if (should-open? self)
|
||||
(go sun-iris-door-opening)
|
||||
)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
:code
|
||||
(behavior ()
|
||||
(while #t
|
||||
(logior! (-> self mask) (process-mask sleep-code))
|
||||
(suspend)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
:post
|
||||
(behavior ()
|
||||
(when (-> self move-to?)
|
||||
(set! (-> self move-to?) #f)
|
||||
(TODO-RENAME-30 (-> self root-override) (-> self move-to-pos))
|
||||
(quaternion-copy! (-> self root-override quat) (-> self move-to-quat))
|
||||
(ja-post)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
)
|
||||
|
||||
(defstate sun-iris-door-opening (sun-iris-door)
|
||||
:event
|
||||
(behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
|
||||
(case arg2
|
||||
(('untrigger)
|
||||
(go sun-iris-door-closing)
|
||||
)
|
||||
(('move-to)
|
||||
(set! (-> self move-to?) #t)
|
||||
(set!
|
||||
(-> self move-to-pos quad)
|
||||
(-> (the-as vector (-> arg3 param 0)) quad)
|
||||
)
|
||||
(quaternion-copy!
|
||||
(-> self move-to-quat)
|
||||
(the-as quaternion (-> arg3 param 1))
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
:code
|
||||
(behavior ()
|
||||
(sound-play-by-name
|
||||
(static-sound-name "irisdoor2")
|
||||
(new-sound-id)
|
||||
1024
|
||||
0
|
||||
0
|
||||
1
|
||||
#t
|
||||
)
|
||||
(let ((a0-2 (-> self skel root-channel 0)))
|
||||
(set!
|
||||
(-> a0-2 param 0)
|
||||
(the float (+ (-> a0-2 frame-group data 0 length) -1))
|
||||
)
|
||||
(set! (-> a0-2 param 1) 1.0)
|
||||
(joint-control-channel-group!
|
||||
a0-2
|
||||
(the-as art-joint-anim #f)
|
||||
num-func-seek!
|
||||
)
|
||||
)
|
||||
(until (ja-done? 0)
|
||||
(suspend)
|
||||
(let ((a0-3 (-> self skel root-channel 0)))
|
||||
(set!
|
||||
(-> a0-3 param 0)
|
||||
(the float (+ (-> a0-3 frame-group data 0 length) -1))
|
||||
)
|
||||
(set! (-> a0-3 param 1) 1.0)
|
||||
(joint-control-channel-group-eval!
|
||||
a0-3
|
||||
(the-as art-joint-anim #f)
|
||||
num-func-seek!
|
||||
)
|
||||
)
|
||||
)
|
||||
(ja-post)
|
||||
(go sun-iris-door-open)
|
||||
(none)
|
||||
)
|
||||
:post
|
||||
(behavior ()
|
||||
(cond
|
||||
((-> self move-to?)
|
||||
(set! (-> self move-to?) #f)
|
||||
(TODO-RENAME-30 (-> self root-override) (-> self move-to-pos))
|
||||
(quaternion-copy! (-> self root-override quat) (-> self move-to-quat))
|
||||
(ja-post)
|
||||
)
|
||||
(else
|
||||
(transform-post)
|
||||
)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
)
|
||||
|
||||
(defmethod should-close? sun-iris-door ((obj sun-iris-door))
|
||||
(let ((f30-0 1228800.0))
|
||||
0.0
|
||||
(let ((f0-7 (cond
|
||||
((-> obj directional-proximity?)
|
||||
(let ((s5-0 (new 'stack-no-clear 'vector)))
|
||||
(when *target*
|
||||
(vector-! s5-0 (target-pos 0) (-> obj root-override trans))
|
||||
(set! (-> s5-0 y) 0.0)
|
||||
(set! f30-0 (fabs (vector-dot s5-0 (-> obj outward-vec))))
|
||||
)
|
||||
(vector-! s5-0 (camera-pos) (-> obj root-override trans))
|
||||
(set! (-> s5-0 y) 0.0)
|
||||
(fabs (vector-dot s5-0 (-> obj outward-vec)))
|
||||
)
|
||||
)
|
||||
(else
|
||||
(if *target*
|
||||
(set!
|
||||
f30-0
|
||||
(vector-vector-xz-distance
|
||||
(-> obj root-override trans)
|
||||
(target-pos 0)
|
||||
)
|
||||
)
|
||||
)
|
||||
(vector-vector-xz-distance
|
||||
(-> obj root-override trans)
|
||||
(camera-pos)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(when (and (>= f30-0 (-> obj close-dist)) (>= f0-7 (-> obj close-dist)))
|
||||
(cond
|
||||
((and *target* (-> obj directional-proximity?))
|
||||
(let ((s4-6 (new 'stack-no-clear 'vector))
|
||||
(s5-3 (new 'stack-no-clear 'vector))
|
||||
)
|
||||
(vector-! s4-6 (target-pos 0) (-> obj root-override trans))
|
||||
(set! (-> s4-6 y) 0.0)
|
||||
(vector-! s5-3 (camera-pos) (-> obj root-override trans))
|
||||
(set! (-> s5-3 y) 0.0)
|
||||
(case (>= (vector-dot (-> obj outward-vec) s4-6) 0.0)
|
||||
(((>= (vector-dot (-> obj outward-vec) s5-3) 0.0))
|
||||
(return #t)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(else
|
||||
(return #t)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
#f
|
||||
)
|
||||
|
||||
(defstate sun-iris-door-open (sun-iris-door)
|
||||
:event
|
||||
(behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
|
||||
(case arg2
|
||||
(('trigger)
|
||||
(let ((v0-0 (the-as object (-> *display* base-frame-counter))))
|
||||
(set! (-> self state-time) (the-as int v0-0))
|
||||
v0-0
|
||||
)
|
||||
)
|
||||
(('untrigger)
|
||||
(go sun-iris-door-closing)
|
||||
)
|
||||
(('move-to)
|
||||
(set! (-> self move-to?) #t)
|
||||
(set!
|
||||
(-> self move-to-pos quad)
|
||||
(-> (the-as vector (-> arg3 param 0)) quad)
|
||||
)
|
||||
(quaternion-copy!
|
||||
(-> self move-to-quat)
|
||||
(the-as quaternion (-> arg3 param 1))
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
:enter
|
||||
(behavior ()
|
||||
(set! (-> self state-time) (-> *display* base-frame-counter))
|
||||
(dummy-48 (-> self root-override))
|
||||
(logior! (-> self draw status) 2)
|
||||
(none)
|
||||
)
|
||||
:exit
|
||||
(behavior ()
|
||||
(dummy-49 (-> self root-override))
|
||||
(set! (-> self draw status) (logand -3 (-> self draw status)))
|
||||
(none)
|
||||
)
|
||||
:trans
|
||||
(behavior ()
|
||||
(when (-> self proximity?)
|
||||
(if (should-close? self)
|
||||
(go sun-iris-door-closing)
|
||||
)
|
||||
)
|
||||
(if
|
||||
(and
|
||||
(!= (-> self timeout) 0.0)
|
||||
(>=
|
||||
(- (-> *display* base-frame-counter) (-> self state-time))
|
||||
(the int (* 300.0 (-> self timeout)))
|
||||
)
|
||||
)
|
||||
(go sun-iris-door-closing)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
:code
|
||||
(behavior ()
|
||||
(while #t
|
||||
(logior! (-> self mask) (process-mask sleep-code))
|
||||
(suspend)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
:post
|
||||
(behavior ()
|
||||
(when (-> self move-to?)
|
||||
(set! (-> self move-to?) #f)
|
||||
(TODO-RENAME-30 (-> self root-override) (-> self move-to-pos))
|
||||
(quaternion-copy! (-> self root-override quat) (-> self move-to-quat))
|
||||
(ja-post)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
)
|
||||
|
||||
(defstate sun-iris-door-closing (sun-iris-door)
|
||||
:event
|
||||
(behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
|
||||
(case arg2
|
||||
(('trigger)
|
||||
(go sun-iris-door-opening)
|
||||
)
|
||||
(('move-to)
|
||||
(set! (-> self move-to?) #t)
|
||||
(set!
|
||||
(-> self move-to-pos quad)
|
||||
(-> (the-as vector (-> arg3 param 0)) quad)
|
||||
)
|
||||
(quaternion-copy!
|
||||
(-> self move-to-quat)
|
||||
(the-as quaternion (-> arg3 param 1))
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
:code
|
||||
(behavior ()
|
||||
(sound-play-by-name
|
||||
(static-sound-name "irisdoor2")
|
||||
(new-sound-id)
|
||||
1024
|
||||
0
|
||||
0
|
||||
1
|
||||
#t
|
||||
)
|
||||
(let ((a0-2 (-> self skel root-channel 0)))
|
||||
(set! (-> a0-2 param 0) 0.0)
|
||||
(set! (-> a0-2 param 1) 1.0)
|
||||
(joint-control-channel-group!
|
||||
a0-2
|
||||
(the-as art-joint-anim #f)
|
||||
num-func-seek!
|
||||
)
|
||||
)
|
||||
(until (ja-done? 0)
|
||||
(suspend)
|
||||
(let ((a0-3 (-> self skel root-channel 0)))
|
||||
(set! (-> a0-3 param 0) 0.0)
|
||||
(set! (-> a0-3 param 1) 1.0)
|
||||
(joint-control-channel-group-eval!
|
||||
a0-3
|
||||
(the-as art-joint-anim #f)
|
||||
num-func-seek!
|
||||
)
|
||||
)
|
||||
)
|
||||
(ja-post)
|
||||
(go sun-iris-door-closed)
|
||||
(none)
|
||||
)
|
||||
:post
|
||||
(behavior ()
|
||||
(cond
|
||||
((-> self move-to?)
|
||||
(set! (-> self move-to?) #f)
|
||||
(TODO-RENAME-30 (-> self root-override) (-> self move-to-pos))
|
||||
(quaternion-copy! (-> self root-override quat) (-> self move-to-quat))
|
||||
(ja-post)
|
||||
)
|
||||
(else
|
||||
(transform-post)
|
||||
)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
)
|
||||
|
||||
(defmethod copy-defaults! sun-iris-door ((obj sun-iris-door) (arg0 res-lump))
|
||||
(local-vars (sv-16 int))
|
||||
(set! (-> obj move-to?) #f)
|
||||
(let
|
||||
((s4-0 (new 'process 'collide-shape obj (collide-list-enum hit-by-others))))
|
||||
(let
|
||||
((s3-0
|
||||
(new
|
||||
'process
|
||||
'collide-shape-prim-mesh
|
||||
s4-0
|
||||
(the-as uint 0)
|
||||
(the-as uint 0)
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! (-> s3-0 prim-core collide-as) (the-as uint 512))
|
||||
(set! (-> s3-0 collide-with) (the-as uint 16))
|
||||
(set! (-> s3-0 prim-core action) (the-as uint 1))
|
||||
(set! (-> s3-0 prim-core offense) 4)
|
||||
(set! (-> s3-0 transform-index) 0)
|
||||
(set-vector! (-> s3-0 local-sphere) 0.0 0.0 0.0 24576.0)
|
||||
)
|
||||
(dummy-46 s4-0)
|
||||
(set! (-> s4-0 nav-radius) (* 0.75 (-> s4-0 root-prim local-sphere w)))
|
||||
(dummy-50 s4-0)
|
||||
(set! (-> obj root-override) s4-0)
|
||||
)
|
||||
(process-drawable-from-entity! obj arg0)
|
||||
(initialize-skeleton obj *sun-iris-door-sg* '())
|
||||
(set! (-> obj close-dist) 49152.0)
|
||||
(set! (-> obj open-dist) 40960.0)
|
||||
(set! (-> obj timeout) (res-lump-float arg0 'timeout))
|
||||
(set! (-> obj proximity?) (nonzero? (res-lump-value arg0 'proximity uint128)))
|
||||
(set! (-> obj directional-proximity?) #f)
|
||||
(when (name= (-> obj name) "sun-iris-door-6")
|
||||
(set! (-> obj close-dist) 16384.0)
|
||||
(set! (-> obj open-dist) 8192.0)
|
||||
(set! (-> obj directional-proximity?) #t)
|
||||
)
|
||||
(set! (-> obj locked-by-task?) (nonzero? (-> obj entity extra perm task)))
|
||||
(let ((f0-11 (res-lump-float arg0 'scale-factor :default 1.0)))
|
||||
(set-vector! (-> obj root-override scale) f0-11 f0-11 f0-11 1.0)
|
||||
(set! (-> obj draw bounds w) (* 18432.0 f0-11))
|
||||
(let ((v1-25 (-> obj root-override root-prim)))
|
||||
(set! (-> v1-25 local-sphere w) (* 24576.0 f0-11 f0-11))
|
||||
)
|
||||
)
|
||||
(set! sv-16 0)
|
||||
(let
|
||||
((v1-28
|
||||
(res-lump-data
|
||||
(-> obj entity)
|
||||
'trans-offset
|
||||
(pointer float)
|
||||
:tag-ptr
|
||||
(the-as (pointer res-tag) (& sv-16))
|
||||
)
|
||||
)
|
||||
)
|
||||
(when v1-28
|
||||
(+! (-> obj root-override trans x) (-> v1-28 0))
|
||||
(+! (-> obj root-override trans y) (-> v1-28 1))
|
||||
(+! (-> obj root-override trans z) (-> v1-28 2))
|
||||
)
|
||||
)
|
||||
(let ((f30-0 (quaternion-y-angle (-> obj root-override quat))))
|
||||
(set-vector! (-> obj outward-vec) (sin f30-0) 0.0 (cos f30-0) 1.0)
|
||||
)
|
||||
(ja-channel-set! 1)
|
||||
(let ((s5-2 (-> obj skel root-channel 0)))
|
||||
(joint-control-channel-group-eval!
|
||||
s5-2
|
||||
(the-as art-joint-anim (-> obj draw art-group data 3))
|
||||
num-func-identity
|
||||
)
|
||||
(set! (-> s5-2 frame-num) 0.0)
|
||||
)
|
||||
(dummy-47 (-> obj root-override))
|
||||
(ja-post)
|
||||
(go sun-iris-door-closed)
|
||||
(none)
|
||||
)
|
||||
|
||||
(defbehavior
|
||||
sun-iris-door-init-by-other sun-iris-door
|
||||
((arg0 vector) (arg1 quaternion) (arg2 symbol))
|
||||
(set! (-> self move-to?) #f)
|
||||
(let
|
||||
((s3-0 (new 'process 'collide-shape self (collide-list-enum hit-by-others))))
|
||||
(let
|
||||
((s2-0
|
||||
(new
|
||||
'process
|
||||
'collide-shape-prim-mesh
|
||||
s3-0
|
||||
(the-as uint 0)
|
||||
(the-as uint 0)
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! (-> s2-0 prim-core collide-as) (the-as uint 512))
|
||||
(set! (-> s2-0 collide-with) (the-as uint 16))
|
||||
(set! (-> s2-0 prim-core action) (the-as uint 1))
|
||||
(set! (-> s2-0 prim-core offense) 4)
|
||||
(set! (-> s2-0 transform-index) 0)
|
||||
(set-vector! (-> s2-0 local-sphere) 0.0 0.0 0.0 24576.0)
|
||||
)
|
||||
(dummy-46 s3-0)
|
||||
(set! (-> s3-0 nav-radius) (* 0.75 (-> s3-0 root-prim local-sphere w)))
|
||||
(dummy-50 s3-0)
|
||||
(set! (-> self root-override) s3-0)
|
||||
)
|
||||
(set! (-> self root-override trans quad) (-> arg0 quad))
|
||||
(quaternion-copy! (-> self root-override quat) arg1)
|
||||
(initialize-skeleton self *sun-iris-door-sg* '())
|
||||
(set! (-> self close-dist) 49152.0)
|
||||
(set! (-> self open-dist) 40960.0)
|
||||
(set! (-> self timeout) 0.0)
|
||||
(set! (-> self proximity?) #f)
|
||||
(set! (-> self directional-proximity?) #f)
|
||||
(ja-channel-set! 1)
|
||||
(cond
|
||||
(arg2
|
||||
(let ((s5-1 (-> self skel root-channel 0)))
|
||||
(joint-control-channel-group-eval!
|
||||
s5-1
|
||||
(the-as art-joint-anim (-> self draw art-group data 3))
|
||||
num-func-identity
|
||||
)
|
||||
(set!
|
||||
(-> s5-1 frame-num)
|
||||
(the
|
||||
float
|
||||
(+
|
||||
(->
|
||||
(the-as art-joint-anim (-> self draw art-group data 3))
|
||||
data
|
||||
0
|
||||
length
|
||||
)
|
||||
-1
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(else
|
||||
(let ((s5-2 (-> self skel root-channel 0)))
|
||||
(joint-control-channel-group-eval!
|
||||
s5-2
|
||||
(the-as art-joint-anim (-> self draw art-group data 3))
|
||||
num-func-identity
|
||||
)
|
||||
(set! (-> s5-2 frame-num) 0.0)
|
||||
)
|
||||
)
|
||||
)
|
||||
(transform-post)
|
||||
(if arg2
|
||||
(go sun-iris-door-open)
|
||||
(go sun-iris-door-closed)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -5,3 +5,497 @@
|
||||
;; name in dgo: whirlpool
|
||||
;; dgos: L1, SUN, SUNKEN
|
||||
|
||||
;; DECOMP BEGINS
|
||||
|
||||
(deftype whirlpool (process-drawable)
|
||||
((root-override collide-shape :offset 112)
|
||||
(spin-ry float :offset-assert 176)
|
||||
(spin-speed-idle float :offset-assert 180)
|
||||
(spin-speed-delta float :offset-assert 184)
|
||||
(sync sync-info-paused :inline :offset-assert 188)
|
||||
)
|
||||
:heap-base #x60
|
||||
:method-count-assert 21
|
||||
:size-assert #xcc
|
||||
:flag-assert #x15006000cc
|
||||
(:methods
|
||||
(dummy-20 (_type_ float) uint 20)
|
||||
)
|
||||
(:states
|
||||
whirlpool-idle
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
(defskelgroup *whirlpool-sg* whirlpool
|
||||
0
|
||||
2
|
||||
((1 (meters 999999)))
|
||||
:bounds (static-spherem 0 0.6000000238418579 0 3)
|
||||
:longest-edge (meters 0)
|
||||
)
|
||||
|
||||
(set!
|
||||
(-> *part-group-id-table* 447)
|
||||
(new 'static 'sparticle-launch-group
|
||||
:length #xbb
|
||||
:duration #xbb8
|
||||
:linger-duration #x5dc
|
||||
:flags (sp-group-flag use-local-clock)
|
||||
:name "group-whirlpool-swirl"
|
||||
:launcher
|
||||
(new 'static 'inline-array sparticle-group-item 187
|
||||
(sp-item 1739 :fade-after (meters 60.0) :falloff-to (meters 60.0) :binding 1737)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
)
|
||||
:bounds (new 'static 'sphere :w 32768.0)
|
||||
)
|
||||
)
|
||||
|
||||
(set!
|
||||
(-> *part-id-table* 1739)
|
||||
(new 'static 'sparticle-launcher
|
||||
:init-specs
|
||||
(new 'static 'inline-array sp-field-init-spec 11
|
||||
(sp-tex spt-texture (new 'static 'texture-id :index #x9 :page #x2))
|
||||
(sp-flt spt-num 1.0)
|
||||
(sp-flt spt-y (meters 6.6))
|
||||
(sp-flt spt-scale-x (meters 0.2))
|
||||
(sp-copy-from-other spt-scale-y -4)
|
||||
(sp-flt spt-g 0.0)
|
||||
(sp-flt spt-a 128.0)
|
||||
(sp-flt spt-accel-y -0.68266666)
|
||||
(sp-int spt-timer 510)
|
||||
(sp-cpuinfo-flags bit2 bit3)
|
||||
(sp-end)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
(set!
|
||||
(-> *part-id-table* 1737)
|
||||
(new 'static 'sparticle-launcher
|
||||
:init-specs
|
||||
(new 'static 'inline-array sp-field-init-spec 22
|
||||
(sp-tex spt-texture (new 'static 'texture-id :page #x2))
|
||||
(sp-flt spt-num 1.0)
|
||||
(sp-flt spt-x (meters 0.0))
|
||||
(sp-flt spt-y (meters 0.0))
|
||||
(sp-rnd-flt spt-z 16384.0 4096.0 1.0)
|
||||
(sp-flt spt-scale-x (meters 3.2))
|
||||
(sp-flt spt-scale-y (meters 1.0))
|
||||
(sp-flt spt-r 150.0)
|
||||
(sp-flt spt-g 150.0)
|
||||
(sp-flt spt-b 255.0)
|
||||
(sp-flt spt-a 0.0)
|
||||
(sp-rnd-flt spt-omega 0.0 65536.0 1.0)
|
||||
(sp-flt spt-vel-x (meters 0.053333335))
|
||||
(sp-flt spt-vel-y (meters 0.0))
|
||||
(sp-flt spt-vel-z (meters -0.01))
|
||||
(sp-flt spt-scalevel-x (meters -0.004888889))
|
||||
(sp-flt spt-fade-a 0.42666668)
|
||||
(sp-int spt-timer 450)
|
||||
(sp-cpuinfo-flags bit2 bit3 bit7)
|
||||
(sp-int-plain-rnd spt-next-time 37 36 1)
|
||||
(sp-launcher-by-id spt-next-launcher 1740)
|
||||
(sp-end)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
(set!
|
||||
(-> *part-id-table* 1740)
|
||||
(new 'static 'sparticle-launcher
|
||||
:init-specs
|
||||
(new 'static 'inline-array sp-field-init-spec 2
|
||||
(sp-flt spt-fade-a 0.0)
|
||||
(sp-end)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
(set!
|
||||
(-> *part-id-table* 1738)
|
||||
(new 'static 'sparticle-launcher
|
||||
:init-specs
|
||||
(new 'static 'inline-array sp-field-init-spec 12
|
||||
(sp-tex spt-texture (new 'static 'texture-id :index #x9 :page #x2))
|
||||
(sp-flt spt-num 1.0)
|
||||
(sp-rnd-flt spt-scale-x (meters 0.3) (meters 0.1) 1.0)
|
||||
(sp-copy-from-other spt-scale-y -4)
|
||||
(sp-flt spt-r 255.0)
|
||||
(sp-flt spt-g 255.0)
|
||||
(sp-flt spt-b 255.0)
|
||||
(sp-rnd-flt spt-a 32.0 32.0 1.0)
|
||||
(sp-flt spt-fade-a -1.8285716)
|
||||
(sp-int spt-timer 30)
|
||||
(sp-cpuinfo-flags bit2 bit3)
|
||||
(sp-end)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
(defmethod dummy-20 whirlpool ((obj whirlpool) (arg0 float))
|
||||
(let* ((gp-0 (target-pos 0))
|
||||
(f28-0 (vector-vector-xz-distance (-> obj root-override trans) gp-0))
|
||||
)
|
||||
(when (< f28-0 40960.0)
|
||||
(let* ((f0-2 (* 0.000024414063 (- 40960.0 f28-0)))
|
||||
(f26-0 (* f0-2 f0-2))
|
||||
(f0-7
|
||||
(atan
|
||||
(- (-> gp-0 x) (-> obj root-override trans x))
|
||||
(- (-> gp-0 z) (-> obj root-override trans z))
|
||||
)
|
||||
)
|
||||
(f30-0 (* 0.5 f26-0 arg0 (-> *display* seconds-per-frame)))
|
||||
(f24-0 (+ f0-7 f30-0))
|
||||
(f28-1
|
||||
(-
|
||||
f28-0
|
||||
(fmin
|
||||
f28-0
|
||||
(* 0.16874999 f26-0 (fabs arg0) (-> *display* seconds-per-frame))
|
||||
)
|
||||
)
|
||||
)
|
||||
(s4-1 (new 'stack-no-clear 'vector))
|
||||
)
|
||||
(set-vector! s4-1 (* (sin f24-0) f28-1) 0.0 (* (cos f24-0) f28-1) 1.0)
|
||||
(vector+! s4-1 s4-1 (-> obj root-override trans))
|
||||
(set!
|
||||
(-> s4-1 x)
|
||||
(* (- (-> s4-1 x) (-> gp-0 x)) (-> *display* frames-per-second))
|
||||
)
|
||||
(set! (-> s4-1 y) 0.0)
|
||||
(set!
|
||||
(-> s4-1 z)
|
||||
(* (- (-> s4-1 z) (-> gp-0 z)) (-> *display* frames-per-second))
|
||||
)
|
||||
(let ((gp-1 (-> *target* control)))
|
||||
(send-event (-> gp-1 process) 'rotate-y-angle f30-0)
|
||||
(dummy-32 gp-1 8192.0 (-> gp-1 root-prim collide-with))
|
||||
(let ((s3-0 (-> gp-1 status)))
|
||||
(dummy-37 gp-1 s4-1)
|
||||
(set! (-> gp-1 status) s3-0)
|
||||
s3-0
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
(defstate whirlpool-idle (whirlpool)
|
||||
:trans
|
||||
(behavior ()
|
||||
(let
|
||||
((f30-0
|
||||
(+
|
||||
(*
|
||||
(get-current-phase-with-mirror (-> self sync))
|
||||
(-> self spin-speed-delta)
|
||||
)
|
||||
(-> self spin-speed-idle)
|
||||
)
|
||||
)
|
||||
)
|
||||
(when (>= (fabs f30-0) 45511.11)
|
||||
(let ((a1-0 (new 'stack-no-clear 'vector)))
|
||||
(set! (-> a1-0 quad) (-> self root-override trans quad))
|
||||
(set! (-> a1-0 y) (+ -8192.0 (-> a1-0 y)))
|
||||
(spawn (-> self part) a1-0)
|
||||
)
|
||||
)
|
||||
(+! (-> self spin-ry) (* f30-0 (-> *display* seconds-per-frame)))
|
||||
(quaternion-axis-angle!
|
||||
(-> self root-override quat)
|
||||
0.0
|
||||
1.0
|
||||
0.0
|
||||
(-> self spin-ry)
|
||||
)
|
||||
(if (and *target* (logtest? (-> *target* water flags) 512))
|
||||
(dummy-20 self f30-0)
|
||||
)
|
||||
(update! (-> self sound))
|
||||
(let
|
||||
((f0-9
|
||||
(fmin 1.0 (* 0.000007608261 (fmax 0.0 (+ -28580.979 (fabs f30-0)))))
|
||||
)
|
||||
)
|
||||
(update-vol! (-> self sound) (the int (* 100.0 f0-9)))
|
||||
)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
:code
|
||||
(the-as (function none :behavior whirlpool) anim-loop)
|
||||
:post
|
||||
(the-as (function none :behavior whirlpool) ja-post)
|
||||
)
|
||||
|
||||
(defmethod deactivate whirlpool ((obj whirlpool))
|
||||
(if (nonzero? (-> obj sound))
|
||||
(stop! (-> obj sound))
|
||||
)
|
||||
((method-of-type process-drawable deactivate) obj)
|
||||
(none)
|
||||
)
|
||||
|
||||
(defmethod copy-defaults! whirlpool ((obj whirlpool) (arg0 res-lump))
|
||||
(local-vars (sv-16 res-tag))
|
||||
(set! (-> obj spin-ry) (rand-vu-float-range 0.0 65536.0))
|
||||
(let
|
||||
((s4-0 (new 'process 'collide-shape obj (collide-list-enum hit-by-player))))
|
||||
(let ((s3-0 (new 'process 'collide-shape-prim-sphere s4-0 (the-as uint 0))))
|
||||
(set! (-> s3-0 prim-core collide-as) (the-as uint 512))
|
||||
(set! (-> s3-0 collide-with) (the-as uint 16))
|
||||
(set! (-> s3-0 prim-core action) (the-as uint 1))
|
||||
(set! (-> s3-0 prim-core offense) 4)
|
||||
(set-vector! (-> s3-0 local-sphere) 0.0 -819.2 0.0 11468.8)
|
||||
)
|
||||
(dummy-46 s4-0)
|
||||
(set! (-> s4-0 nav-radius) (* 0.75 (-> s4-0 root-prim local-sphere w)))
|
||||
(dummy-50 s4-0)
|
||||
(set! (-> obj root-override) s4-0)
|
||||
)
|
||||
(process-drawable-from-entity! obj arg0)
|
||||
(initialize-skeleton obj *whirlpool-sg* '())
|
||||
(load-params! (-> obj sync) obj (the-as uint 1500) 0.0 0.15 0.15)
|
||||
(let ((f30-0 32768.0)
|
||||
(f28-0 145635.56)
|
||||
)
|
||||
(set! sv-16 (new 'static 'res-tag))
|
||||
(let ((v1-17 (res-lump-data arg0 'speed (pointer float) :tag-ptr (& sv-16))))
|
||||
(when v1-17
|
||||
(set! f30-0 (-> v1-17 0))
|
||||
(set! f28-0 (-> v1-17 1))
|
||||
)
|
||||
)
|
||||
(set! (-> obj spin-speed-idle) f30-0)
|
||||
(set! (-> obj spin-speed-delta) (- f28-0 f30-0))
|
||||
)
|
||||
(set!
|
||||
(-> obj part)
|
||||
(create-launch-control (-> *part-group-id-table* 447) obj)
|
||||
)
|
||||
(set!
|
||||
(-> obj sound)
|
||||
(new
|
||||
'process
|
||||
'ambient-sound
|
||||
(new 'static 'sound-spec
|
||||
:mask #x80
|
||||
:num 1.0
|
||||
:group #x1
|
||||
:sound-name (static-sound-name "whirlpool")
|
||||
:volume #x400
|
||||
:fo-max 55
|
||||
)
|
||||
(-> obj root-override trans)
|
||||
)
|
||||
)
|
||||
(ja-channel-set! 1)
|
||||
(let ((s5-1 (-> obj skel root-channel 0)))
|
||||
(joint-control-channel-group-eval!
|
||||
s5-1
|
||||
(the-as art-joint-anim (-> obj draw art-group data 2))
|
||||
num-func-identity
|
||||
)
|
||||
(set! (-> s5-1 frame-num) 0.0)
|
||||
)
|
||||
(ja-post)
|
||||
(dummy-47 (-> obj root-override))
|
||||
(go whirlpool-idle)
|
||||
(none)
|
||||
)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -6,6 +6,7 @@
|
||||
;; dgos: L1, SWA
|
||||
|
||||
(declare-type swamp-rat-nest process-drawable)
|
||||
(declare-type billy process-taskable)
|
||||
|
||||
;; DECOMP BEGINS
|
||||
|
||||
@@ -858,12 +859,7 @@ swamp-rat-default-event-handler
|
||||
|
||||
(defbehavior
|
||||
swamp-rat-init-by-other swamp-rat
|
||||
((arg0 swamp-rat-nest)
|
||||
(arg1 vector)
|
||||
(arg2 vector)
|
||||
(arg3 pickup-type)
|
||||
(arg4 symbol)
|
||||
)
|
||||
((arg0 billy) (arg1 vector) (arg2 vector) (arg3 pickup-type) (arg4 symbol))
|
||||
(initialize-collision self)
|
||||
(if arg4
|
||||
(logclear! (-> self mask) (process-mask actor-pause))
|
||||
|
||||
@@ -432,7 +432,11 @@ yakow-default-event-handler
|
||||
(set! (-> gp-1 y) 0.0)
|
||||
(set! (-> self nav travel quad) (-> gp-1 quad))
|
||||
(vector-normalize! (-> self nav travel) 409600.0)
|
||||
(dummy-24 (-> self nav) 204.8 #f)
|
||||
(dummy-24
|
||||
(-> self nav)
|
||||
204.8
|
||||
(the-as clip-travel-vector-to-mesh-return-info #f)
|
||||
)
|
||||
(when (not (-> self enable-turn-around))
|
||||
(set! (-> gp-1 quad) (-> self nav travel quad))
|
||||
(let ((f30-0 (vector-length gp-1)))
|
||||
@@ -443,7 +447,11 @@ yakow-default-event-handler
|
||||
)
|
||||
(set! (-> self nav travel quad) (-> s5-1 quad))
|
||||
(vector-normalize! (-> self nav travel) 409600.0)
|
||||
(dummy-24 (-> self nav) 204.8 #f)
|
||||
(dummy-24
|
||||
(-> self nav)
|
||||
204.8
|
||||
(the-as clip-travel-vector-to-mesh-return-info #f)
|
||||
)
|
||||
(vector-length (-> self nav travel))
|
||||
)
|
||||
)
|
||||
|
||||
+4
-4
@@ -324,7 +324,7 @@
|
||||
:flag-assert #x1d0000005c
|
||||
(:methods
|
||||
(new (symbol type basic uint uint) _type_ 0)
|
||||
(dummy-28 () none 28)
|
||||
(dummy-28 (_type_ int) none 28)
|
||||
)
|
||||
)
|
||||
|
||||
@@ -411,16 +411,16 @@
|
||||
(dummy-29 (_type_ int) none 29)
|
||||
(TODO-RENAME-30 (_type_ vector) none 30)
|
||||
(dummy-31 () none 31)
|
||||
(dummy-32 () none 32)
|
||||
(dummy-32 (_type_ float uint) none 32)
|
||||
(dummy-33 (_type_ vector uint) none 33)
|
||||
(dummy-34 (_type_ uint) collide-shape-prim 34)
|
||||
(dummy-35 (_type_) none 35)
|
||||
(dummy-36 () none 36)
|
||||
(dummy-37 () none 37)
|
||||
(dummy-37 (_type_ vector) none 37)
|
||||
(dummy-38 () none 38)
|
||||
(dummy-39 () none 39)
|
||||
(dummy-40 (_type_ structure) none 40)
|
||||
(dummy-41 () none 41)
|
||||
(dummy-41 (_type_ attack-info float) none 41)
|
||||
(dummy-42 () none 42)
|
||||
(dummy-43 () none 43)
|
||||
(dummy-44 (_type_) none 44)
|
||||
|
||||
+1
-1
@@ -133,7 +133,7 @@
|
||||
(touched-shape (_type_ collide-shape-moving) collide-shape 10)
|
||||
(dummy-11 () none 11)
|
||||
(prims-touching? (_type_ collide-shape-moving uint) touching-prims-entry 12)
|
||||
(dummy-13 () none 13)
|
||||
(dummy-13 (_type_ control-info int int) none 13)
|
||||
(dummy-14 () none 14)
|
||||
(dummy-15 () none 15)
|
||||
(get-head (_type_) touching-prims-entry 16)
|
||||
|
||||
+4
-1
@@ -69,7 +69,10 @@
|
||||
a2-0
|
||||
(*
|
||||
0.006666667
|
||||
(the float (- (-> *display* base-frame-counter) (-> arg0 start-time)))
|
||||
(the
|
||||
float
|
||||
(- (-> *display* base-frame-counter) (the-as int (-> arg0 start-time)))
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
+13
-13
@@ -78,19 +78,19 @@
|
||||
|
||||
;; definition of type part-tracker
|
||||
(deftype part-tracker (process)
|
||||
((root trsqv :offset-assert 112)
|
||||
(part sparticle-launch-control :offset-assert 116)
|
||||
(target handle :offset-assert 120)
|
||||
(callback (function part-tracker none) :offset-assert 128)
|
||||
(linger-callback (function part-tracker none) :offset-assert 132)
|
||||
(duration int64 :offset-assert 136)
|
||||
(linger-duration int64 :offset-assert 144)
|
||||
(start-time int64 :offset-assert 152)
|
||||
(offset vector :inline :offset-assert 160)
|
||||
(userdata uint64 :offset-assert 176)
|
||||
(user-time int64 2 :offset-assert 184)
|
||||
(user-vector vector 2 :inline :offset-assert 208)
|
||||
(user-handle uint32 2 :offset-assert 240)
|
||||
((root trsqv :offset-assert 112)
|
||||
(part sparticle-launch-control :offset-assert 116)
|
||||
(target handle :offset-assert 120)
|
||||
(callback (function part-tracker vector) :offset-assert 128)
|
||||
(linger-callback (function part-tracker vector) :offset-assert 132)
|
||||
(duration uint64 :offset-assert 136)
|
||||
(linger-duration uint64 :offset-assert 144)
|
||||
(start-time uint64 :offset-assert 152)
|
||||
(offset vector :inline :offset-assert 160)
|
||||
(userdata uint64 :offset-assert 176)
|
||||
(user-time int64 2 :offset-assert 184)
|
||||
(user-vector vector 2 :inline :offset-assert 208)
|
||||
(user-handle uint32 2 :offset-assert 240)
|
||||
)
|
||||
:heap-base #x90
|
||||
:method-count-assert 14
|
||||
|
||||
+10
-7
@@ -767,11 +767,11 @@
|
||||
(defstate part-tracker-process (part-tracker)
|
||||
:code
|
||||
(behavior ()
|
||||
(set! (-> self start-time) (-> *display* base-frame-counter))
|
||||
(set! (-> self start-time) (the-as uint (-> *display* base-frame-counter)))
|
||||
(while
|
||||
(<
|
||||
(- (-> *display* base-frame-counter) (-> self start-time))
|
||||
(-> self duration)
|
||||
(- (-> *display* base-frame-counter) (the-as int (-> self start-time)))
|
||||
(the-as int (-> self duration))
|
||||
)
|
||||
(let ((gp-0 (handle->process (-> self target))))
|
||||
(when gp-0
|
||||
@@ -799,7 +799,10 @@
|
||||
)
|
||||
(let ((gp-2 (-> *display* base-frame-counter)))
|
||||
(until
|
||||
(>= (- (-> *display* base-frame-counter) gp-2) (-> self linger-duration))
|
||||
(>=
|
||||
(- (-> *display* base-frame-counter) gp-2)
|
||||
(the-as int (-> self linger-duration))
|
||||
)
|
||||
(if (-> self linger-callback)
|
||||
((-> self linger-callback) self)
|
||||
)
|
||||
@@ -832,7 +835,7 @@
|
||||
(set! (-> self root) (new 'process 'trsqv))
|
||||
(set! (-> self root trans quad) (-> arg5 world-sphere quad))
|
||||
(set! (-> self offset quad) (-> arg5 world-sphere quad))
|
||||
(set! (-> self callback) arg2)
|
||||
(set! (-> self callback) (the-as (function part-tracker vector) arg2))
|
||||
(set! (-> self linger-callback) #f)
|
||||
(set! (-> self userdata) (the-as uint arg3))
|
||||
(set! (-> self target) (process->handle arg4))
|
||||
@@ -846,8 +849,8 @@
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! (-> self duration) arg1)
|
||||
(set! (-> self linger-duration) (the-as int (-> arg0 linger-duration)))
|
||||
(set! (-> self duration) (the-as uint arg1))
|
||||
(set! (-> self linger-duration) (-> arg0 linger-duration))
|
||||
(set! (-> self part) (create-launch-control arg0 self))
|
||||
(go part-tracker-process)
|
||||
(none)
|
||||
|
||||
+2
-2
@@ -393,8 +393,8 @@
|
||||
(dummy-20 () none 20)
|
||||
(dummy-21 () none 21)
|
||||
(dummy-22 () none 22)
|
||||
(dummy-23 () none 23)
|
||||
(dummy-24 (_type_ float symbol) none 24)
|
||||
(dummy-23 (_type_ vector check-vector-collision-with-nav-spheres-info) float 23)
|
||||
(dummy-24 (_type_ float clip-travel-vector-to-mesh-return-info) none 24)
|
||||
(dummy-25 (_type_ vector float) symbol 25)
|
||||
(dummy-26 (_type_) none 26)
|
||||
(dummy-27 () none 27)
|
||||
|
||||
+2
@@ -118,6 +118,7 @@
|
||||
(damping float :offset-assert 16)
|
||||
(accel float :offset-assert 20)
|
||||
)
|
||||
:pack-me
|
||||
:method-count-assert 11
|
||||
:size-assert #x18
|
||||
:flag-assert #xb00000018
|
||||
@@ -147,6 +148,7 @@
|
||||
(elasticity float :offset-assert 32)
|
||||
(state int32 :offset-assert 36)
|
||||
)
|
||||
:pack-me
|
||||
:method-count-assert 13
|
||||
:size-assert #x28
|
||||
:flag-assert #xd00000028
|
||||
|
||||
+1024
File diff suppressed because it is too large
Load Diff
+4
-8
@@ -37,7 +37,7 @@
|
||||
:size-assert #x28
|
||||
:flag-assert #xd00000028
|
||||
(:methods
|
||||
(new (symbol _type_ int int float float float float) _type_ 0)
|
||||
(new (symbol type int int float float float float) _type_ 0)
|
||||
(TODO-RENAME-9 (_type_ int int float) none 9)
|
||||
(set-target! (_type_ float) none 10)
|
||||
(TODO-RENAME-11 (_type_) none 11)
|
||||
@@ -66,7 +66,7 @@
|
||||
new
|
||||
twister
|
||||
((allocation symbol)
|
||||
(type-to-make twister)
|
||||
(type-to-make type)
|
||||
(arg0 int)
|
||||
(arg1 int)
|
||||
(arg2 float)
|
||||
@@ -78,8 +78,8 @@
|
||||
(v0-0
|
||||
(object-new
|
||||
allocation
|
||||
(the-as type type-to-make)
|
||||
(the-as int (+ (-> type-to-make something) (* gp-0 16)))
|
||||
type-to-make
|
||||
(the-as int (+ (-> type-to-make size) (* gp-0 16)))
|
||||
)
|
||||
)
|
||||
)
|
||||
@@ -216,7 +216,3 @@
|
||||
0
|
||||
(none)
|
||||
)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
+1916
File diff suppressed because it is too large
Load Diff
+163
@@ -0,0 +1,163 @@
|
||||
;;-*-Lisp-*-
|
||||
(in-package goal)
|
||||
|
||||
;; definition of type citb-bunny
|
||||
(deftype citb-bunny (snow-bunny)
|
||||
()
|
||||
:heap-base #x190
|
||||
:method-count-assert 77
|
||||
:size-assert #x200
|
||||
:flag-assert #x4d01900200
|
||||
(:methods
|
||||
(TODO-RENAME-48 (_type_ object) none :replace 48)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for method 3 of type citb-bunny
|
||||
(defmethod inspect citb-bunny ((obj citb-bunny))
|
||||
(let ((t9-0 (method-of-type snow-bunny inspect)))
|
||||
(t9-0 obj)
|
||||
)
|
||||
obj
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defskelgroup *citb-bunny-sg* citb-bunny
|
||||
0
|
||||
3
|
||||
((1 (meters 999999)))
|
||||
:bounds (static-spherem 0 0.25 0 2)
|
||||
:longest-edge (meters 0)
|
||||
)
|
||||
|
||||
;; definition for symbol *citb-bunny-nav-enemy-info*, type nav-enemy-info
|
||||
(define
|
||||
*citb-bunny-nav-enemy-info*
|
||||
(new 'static 'nav-enemy-info
|
||||
:idle-anim 3
|
||||
:walk-anim 3
|
||||
:turn-anim 3
|
||||
:notice-anim 7
|
||||
:run-anim 3
|
||||
:jump-anim 5
|
||||
:jump-land-anim 8
|
||||
:victory-anim 7
|
||||
:taunt-anim 7
|
||||
:die-anim 9
|
||||
:neck-joint 5
|
||||
:player-look-at-joint 5
|
||||
:run-travel-speed (meters 6.0)
|
||||
:run-rotate-speed (degrees 2880.0)
|
||||
:run-acceleration (meters 1.0)
|
||||
:run-turn-time (seconds 0.1)
|
||||
:walk-travel-speed (meters 4.0)
|
||||
:walk-rotate-speed (degrees 720.0)
|
||||
:walk-acceleration (meters 1.0)
|
||||
:walk-turn-time (seconds 0.5)
|
||||
:shadow-size (meters 2.0)
|
||||
:notice-nav-radius (meters 1.2)
|
||||
:nav-nearest-y-threshold (meters 10.0)
|
||||
:notice-distance (meters 130.0)
|
||||
:stop-chase-distance (meters 150.0)
|
||||
:frustration-distance (meters 8.0)
|
||||
:frustration-time #x4b0
|
||||
:die-anim-hold-frame 31.0
|
||||
:jump-anim-start-frame 11.0
|
||||
:jump-land-anim-end-frame 10000000000.0
|
||||
:jump-height-min (meters 1.0)
|
||||
:jump-height-factor 0.6
|
||||
:jump-start-anim-speed 1.0
|
||||
:shadow-max-y (meters 0.25)
|
||||
:shadow-min-y (meters -3.5)
|
||||
:shadow-locus-dist (meters 150.0)
|
||||
:use-align #f
|
||||
:draw-shadow #t
|
||||
:move-to-ground #t
|
||||
:hover-if-no-ground #f
|
||||
:use-momentum #f
|
||||
:use-flee #f
|
||||
:use-proximity-notice #f
|
||||
:use-jump-blocked #f
|
||||
:use-jump-patrol #f
|
||||
:gnd-collide-with #x1
|
||||
:debug-draw-neck #f
|
||||
:debug-draw-jump #f
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for method 60 of type citb-bunny
|
||||
;; INFO: Return type mismatch int vs symbol.
|
||||
(defmethod dummy-60 citb-bunny ((obj citb-bunny) (arg0 object))
|
||||
(initialize-skeleton obj *citb-bunny-sg* '())
|
||||
(set! (-> obj draw origin-joint-index) (the-as uint 3))
|
||||
(the-as symbol 0)
|
||||
)
|
||||
|
||||
;; definition for method 48 of type citb-bunny
|
||||
;; INFO: Return type mismatch int vs none.
|
||||
(defmethod TODO-RENAME-48 citb-bunny ((obj citb-bunny) (arg0 object))
|
||||
(dummy-60 obj arg0)
|
||||
(TODO-RENAME-45 obj *citb-bunny-nav-enemy-info*)
|
||||
(set!
|
||||
(-> obj draw shadow-ctrl settings flags)
|
||||
(logand -9 (-> obj draw shadow-ctrl settings flags))
|
||||
)
|
||||
(cond
|
||||
((zero? (res-lump-value (-> obj entity) 'mode uint128))
|
||||
(set! (-> obj defense) (the-as uint 1))
|
||||
(set! (-> obj retreat-timeout) 5.0)
|
||||
)
|
||||
(else
|
||||
(set! (-> obj defense) (the-as uint 0))
|
||||
(set! (-> obj retreat-timeout) 0.1)
|
||||
)
|
||||
)
|
||||
(set!
|
||||
(-> obj last-nondangerous-time)
|
||||
(the-as uint (-> *display* base-frame-counter))
|
||||
)
|
||||
(set! (-> obj gnd-popup) 16384.0)
|
||||
(set! (-> obj got-jump-event?) #f)
|
||||
(set! (-> obj notice-land-anim) 8)
|
||||
(set! (-> obj attack-anim) 4)
|
||||
(set! (-> obj neck up) (the-as uint 1))
|
||||
(set! (-> obj neck nose) (the-as uint 2))
|
||||
(set! (-> obj neck ear) (the-as uint 0))
|
||||
(set! (-> obj patrol-rand-distraction) (+ (nav-enemy-rnd-int-count 5) 1))
|
||||
(set! (-> obj patrol-hop-failed?) #f)
|
||||
(logclear! (-> obj mask) (process-mask actor-pause))
|
||||
0
|
||||
(none)
|
||||
)
|
||||
|
||||
;; definition for method 56 of type citb-bunny
|
||||
(defmethod set-jump-height-factor! citb-bunny ((obj citb-bunny) (arg0 int))
|
||||
(let ((v1-0 arg0))
|
||||
(cond
|
||||
((zero? v1-0)
|
||||
(set! (-> obj jump-anim) 6)
|
||||
(set! (-> obj jump-height-min) 4096.0)
|
||||
(let ((f0-1 0.6))
|
||||
(set! (-> obj jump-height-factor) f0-1)
|
||||
f0-1
|
||||
)
|
||||
)
|
||||
((= v1-0 1)
|
||||
(set! (-> obj jump-anim) 5)
|
||||
(set! (-> obj jump-height-min) 4096.0)
|
||||
(let ((f0-3 0.6))
|
||||
(set! (-> obj jump-height-factor) f0-3)
|
||||
f0-3
|
||||
)
|
||||
)
|
||||
((= v1-0 2)
|
||||
(set! (-> obj jump-anim) 5)
|
||||
(set! (-> obj jump-height-min) 4096.0)
|
||||
(let ((f0-5 0.4))
|
||||
(set! (-> obj jump-height-factor) f0-5)
|
||||
f0-5
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
+5
-5
@@ -207,11 +207,11 @@
|
||||
(dummy-53 (_type_) symbol 53)
|
||||
(dummy-54 (_type_) none 54)
|
||||
(dummy-55 (_type_) none 55)
|
||||
(dummy-56 (_type_) none 56)
|
||||
(dummy-57 (_type_) none 57)
|
||||
(dummy-58 (_type_) none 58)
|
||||
(set-jump-height-factor! (_type_ int) float 56)
|
||||
(dummy-57 (_type_) vector 57)
|
||||
(dummy-58 (_type_) vector 58)
|
||||
(TODO-RENAME-59 (_type_) none 59)
|
||||
(dummy-60 (_type_) none 60)
|
||||
(dummy-60 (_type_ object) symbol 60)
|
||||
(dummy-61 (_type_) none 61)
|
||||
(dummy-62 (_type_) none 62)
|
||||
(dummy-63 (_type_) none 63)
|
||||
@@ -222,7 +222,7 @@
|
||||
(dummy-68 (_type_) none 68)
|
||||
(dummy-69 (_type_) none 69)
|
||||
(dummy-70 (_type_) none 70)
|
||||
(dummy-71 (_type_) none 71)
|
||||
(dummy-71 () _type_ :state 71)
|
||||
(nav-enemy-touch-handler (_type_ process event-message-block) object 72)
|
||||
(nav-enemy-attack-handler (_type_ process event-message-block) object 73)
|
||||
(nav-enemy-jump-blocked () _type_ :state 74)
|
||||
|
||||
+5
-1
@@ -566,7 +566,11 @@ nav-enemy-default-event-handler
|
||||
(set! (-> self nav travel quad) (-> gp-1 quad))
|
||||
)
|
||||
(vector-normalize! (-> self nav travel) 409600.0)
|
||||
(dummy-24 (-> self nav) 204.8 #f)
|
||||
(dummy-24
|
||||
(-> self nav)
|
||||
204.8
|
||||
(the-as clip-travel-vector-to-mesh-return-info #f)
|
||||
)
|
||||
(vector+!
|
||||
(-> self nav target-pos)
|
||||
(-> self collide-info trans)
|
||||
|
||||
+1
-1
@@ -308,7 +308,7 @@
|
||||
(the-as part-tracker (-> self particles gp-0 tracker process 0))
|
||||
start-time
|
||||
)
|
||||
(-> *display* base-frame-counter)
|
||||
(the-as uint (-> *display* base-frame-counter))
|
||||
)
|
||||
)
|
||||
((-> self particles gp-0 kind)
|
||||
|
||||
+230
@@ -0,0 +1,230 @@
|
||||
;;-*-Lisp-*-
|
||||
(in-package goal)
|
||||
|
||||
;; definition of type floating-launcher
|
||||
(deftype floating-launcher (baseplat)
|
||||
((trigger-height float :offset-assert 228)
|
||||
(launcher (pointer launcher) :offset-assert 232)
|
||||
)
|
||||
:heap-base #x80
|
||||
:method-count-assert 27
|
||||
:size-assert #xec
|
||||
:flag-assert #x1b008000ec
|
||||
(:states
|
||||
floating-launcher-idle
|
||||
floating-launcher-lowering
|
||||
floating-launcher-ready
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for method 3 of type floating-launcher
|
||||
(defmethod inspect floating-launcher ((obj floating-launcher))
|
||||
(let ((t9-0 (method-of-type baseplat inspect)))
|
||||
(t9-0 obj)
|
||||
)
|
||||
(format #t "~T~Ttrigger-height: ~f~%" (-> obj trigger-height))
|
||||
(format #t "~T~Tlauncher: #x~X~%" (-> obj launcher))
|
||||
obj
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defskelgroup *floating-launcher-sg* floating-launcher
|
||||
0
|
||||
2
|
||||
((1 (meters 999999)))
|
||||
:bounds (static-spherem 0 0 0 5)
|
||||
:longest-edge (meters 0)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defstate floating-launcher-idle (floating-launcher)
|
||||
:event
|
||||
(the-as
|
||||
(function process int symbol event-message-block object :behavior floating-launcher)
|
||||
plat-event
|
||||
)
|
||||
:trans
|
||||
(behavior ()
|
||||
(plat-trans)
|
||||
(when
|
||||
(<
|
||||
(vector-xz-length
|
||||
(vector-!
|
||||
(new 'stack-no-clear 'vector)
|
||||
(target-pos 0)
|
||||
(-> self root-override trans)
|
||||
)
|
||||
)
|
||||
81920.0
|
||||
)
|
||||
(if
|
||||
(and
|
||||
(>= (-> (target-pos 0) y) (-> self trigger-height))
|
||||
(logtest? (-> *target* control status) 2)
|
||||
)
|
||||
(go floating-launcher-lowering)
|
||||
)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
:code
|
||||
(behavior ()
|
||||
(transform-post)
|
||||
(suspend)
|
||||
(transform-post)
|
||||
(suspend)
|
||||
(while #t
|
||||
(suspend)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
:post
|
||||
(the-as (function none :behavior floating-launcher) plat-post)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defstate floating-launcher-lowering (floating-launcher)
|
||||
:event
|
||||
(the-as
|
||||
(function process int symbol event-message-block object :behavior floating-launcher)
|
||||
plat-event
|
||||
)
|
||||
:trans
|
||||
(the-as (function none :behavior floating-launcher) plat-trans)
|
||||
:code
|
||||
(behavior ()
|
||||
(let ((a0-1 (entity-actor-lookup (-> self entity) 'alt-actor 0)))
|
||||
(if a0-1
|
||||
(entity-birth-no-kill a0-1)
|
||||
)
|
||||
)
|
||||
(let ((f30-0 1.0))
|
||||
(while (!= f30-0 0.0)
|
||||
(set! f30-0 (seek f30-0 0.0 (-> *display* seconds-per-frame)))
|
||||
(eval-path-curve-div! (-> self path) (-> self basetrans) f30-0 'interp)
|
||||
(set!
|
||||
(-> self launcher 0 root-override trans quad)
|
||||
(-> self basetrans quad)
|
||||
)
|
||||
(dummy-47 (-> self launcher 0 root-override))
|
||||
(suspend)
|
||||
)
|
||||
)
|
||||
(eval-path-curve-div! (-> self path) (-> self basetrans) 0.0 'interp)
|
||||
(set! (-> self launcher 0 root-override trans quad) (-> self basetrans quad))
|
||||
(dummy-47 (-> self launcher 0 root-override))
|
||||
(go floating-launcher-ready)
|
||||
(none)
|
||||
)
|
||||
:post
|
||||
(the-as (function none :behavior floating-launcher) plat-post)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defstate floating-launcher-ready (floating-launcher)
|
||||
:event
|
||||
(the-as
|
||||
(function process int symbol event-message-block object :behavior floating-launcher)
|
||||
plat-event
|
||||
)
|
||||
:trans
|
||||
(the-as (function none :behavior floating-launcher) plat-trans)
|
||||
:code
|
||||
(the-as (function none :behavior floating-launcher) plat-code)
|
||||
:post
|
||||
(the-as (function none :behavior floating-launcher) plat-post)
|
||||
)
|
||||
|
||||
;; definition for method 11 of type floating-launcher
|
||||
;; INFO: Return type mismatch object vs none.
|
||||
(defmethod
|
||||
copy-defaults!
|
||||
floating-launcher
|
||||
((obj floating-launcher) (arg0 res-lump))
|
||||
(set! (-> obj mask) (logior (process-mask platform) (-> obj mask)))
|
||||
(let
|
||||
((s4-0
|
||||
(new 'process 'collide-shape-moving obj (collide-list-enum hit-by-player))
|
||||
)
|
||||
)
|
||||
(set! (-> s4-0 dynam) (copy *standard-dynamics* 'process))
|
||||
(set! (-> s4-0 reaction) default-collision-reaction)
|
||||
(set! (-> s4-0 no-reaction) nothing)
|
||||
(dummy-29 s4-0 1)
|
||||
(let
|
||||
((s3-0
|
||||
(new
|
||||
'process
|
||||
'collide-shape-prim-mesh
|
||||
s4-0
|
||||
(the-as uint 0)
|
||||
(the-as uint 0)
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! (-> s3-0 prim-core collide-as) (the-as uint 2048))
|
||||
(set! (-> s3-0 collide-with) (the-as uint 16))
|
||||
(set! (-> s3-0 prim-core action) (the-as uint 3))
|
||||
(set! (-> s3-0 prim-core offense) 4)
|
||||
(set! (-> s3-0 transform-index) 0)
|
||||
(set-vector! (-> s3-0 local-sphere) 0.0 0.0 0.0 11468.8)
|
||||
)
|
||||
(dummy-46 s4-0)
|
||||
(set! (-> s4-0 nav-radius) (* 0.75 (-> s4-0 root-prim local-sphere w)))
|
||||
(dummy-50 s4-0)
|
||||
(set! (-> obj root-override) s4-0)
|
||||
)
|
||||
(process-drawable-from-entity! obj arg0)
|
||||
(set! (-> obj path) (new 'process 'path-control obj 'path 0.0))
|
||||
(logior!
|
||||
(-> obj path flags)
|
||||
(path-control-flag display draw-line draw-point draw-text)
|
||||
)
|
||||
(eval-path-curve-div! (-> obj path) (-> obj root-override trans) 1.0 'interp)
|
||||
(let ((f30-0 (res-lump-float arg0 'spring-height :default 163840.0))
|
||||
(s4-1 (get-process *default-dead-pool* launcher #x4000))
|
||||
)
|
||||
(set! (-> obj launcher) (the-as (pointer launcher) (when s4-1
|
||||
(let
|
||||
((t9-11
|
||||
(method-of-type
|
||||
launcher
|
||||
activate
|
||||
)
|
||||
)
|
||||
)
|
||||
(t9-11
|
||||
(the-as launcher s4-1)
|
||||
obj
|
||||
'launcher
|
||||
(the-as
|
||||
pointer
|
||||
#x70004000
|
||||
)
|
||||
)
|
||||
)
|
||||
(run-now-in-process
|
||||
s4-1
|
||||
launcher-init-by-other
|
||||
(->
|
||||
obj
|
||||
root-override
|
||||
trans
|
||||
)
|
||||
f30-0
|
||||
0
|
||||
81920.0
|
||||
)
|
||||
(-> s4-1 ppointer)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(initialize-skeleton obj *floating-launcher-sg* '())
|
||||
(logior! (-> obj skel status) 1)
|
||||
(dummy-47 (-> obj root-override))
|
||||
(dummy-21 obj)
|
||||
(set! (-> obj trigger-height) (res-lump-float arg0 'trigger-height))
|
||||
(go floating-launcher-idle)
|
||||
(none)
|
||||
)
|
||||
+194
@@ -0,0 +1,194 @@
|
||||
;;-*-Lisp-*-
|
||||
(in-package goal)
|
||||
|
||||
;; definition of type shover
|
||||
(deftype shover (process-drawable)
|
||||
((root-override collide-shape :offset 112)
|
||||
(shove-up float :offset-assert 176)
|
||||
)
|
||||
:heap-base #x50
|
||||
:method-count-assert 20
|
||||
:size-assert #xb4
|
||||
:flag-assert #x14005000b4
|
||||
(:states
|
||||
shover-idle
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for method 3 of type shover
|
||||
(defmethod inspect shover ((obj shover))
|
||||
(let ((t9-0 (method-of-type process-drawable inspect)))
|
||||
(t9-0 obj)
|
||||
)
|
||||
(format #t "~T~Tshove-up: ~f~%" (-> obj shove-up))
|
||||
obj
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defskelgroup *shover-sg* shover
|
||||
0
|
||||
2
|
||||
((1 (meters 999999)))
|
||||
:bounds (static-spherem 0 0 0 2)
|
||||
:longest-edge (meters 0)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defstate shover-idle (shover)
|
||||
:event
|
||||
(behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
|
||||
(case arg2
|
||||
(('touch 'attack)
|
||||
(when (= (-> arg0 type) target)
|
||||
(when
|
||||
((method-of-type touching-shapes-entry dummy-13)
|
||||
(the-as touching-shapes-entry (-> arg3 param 0))
|
||||
(-> *target* control)
|
||||
1
|
||||
0
|
||||
)
|
||||
(let ((s4-0 (new 'stack 'attack-info)))
|
||||
(dummy-41 (-> self root-override) s4-0 (-> self shove-up))
|
||||
(level-hint-spawn
|
||||
(game-text-id sunken-take-it-easy-hot-pipes)
|
||||
"sksp0134"
|
||||
(the-as entity #f)
|
||||
*entity-pool*
|
||||
(game-task none)
|
||||
)
|
||||
(cond
|
||||
((or
|
||||
(= (-> *target* control unknown-surface00 mode) 'air)
|
||||
(>=
|
||||
(+ (-> *display* base-frame-counter) -60)
|
||||
(-> *target* control unknown-dword10)
|
||||
)
|
||||
(< 0.75 (-> *target* control poly-normal y))
|
||||
)
|
||||
(let ((a1-6 (new 'stack-no-clear 'event-message-block)))
|
||||
(set! (-> a1-6 from) self)
|
||||
(set! (-> a1-6 num-params) 2)
|
||||
(set! (-> a1-6 message) 'attack-or-shove)
|
||||
(set! (-> a1-6 param 0) (-> arg3 param 0))
|
||||
(let ((v1-22 (new 'static 'attack-info :mask #xa2)))
|
||||
(set! (-> v1-22 mode) 'burn)
|
||||
(set! (-> v1-22 vector quad) (-> s4-0 vector quad))
|
||||
(set! (-> v1-22 shove-up) (-> s4-0 shove-up))
|
||||
(set! (-> a1-6 param 1) (the-as uint v1-22))
|
||||
)
|
||||
(send-event-function arg0 a1-6)
|
||||
)
|
||||
)
|
||||
(else
|
||||
(let ((a1-7 (new 'stack-no-clear 'event-message-block)))
|
||||
(set! (-> a1-7 from) self)
|
||||
(set! (-> a1-7 num-params) 2)
|
||||
(set! (-> a1-7 message) 'attack-or-shove)
|
||||
(set! (-> a1-7 param 0) (-> arg3 param 0))
|
||||
(let ((v1-26 (new 'static 'attack-info :mask #x8e2)))
|
||||
(set! (-> v1-26 mode) 'burn)
|
||||
(set! (-> v1-26 shove-up) 0.0)
|
||||
(set! (-> v1-26 shove-back) 8192.0)
|
||||
(set!
|
||||
(-> v1-26 vector quad)
|
||||
(-> *target* control poly-normal quad)
|
||||
)
|
||||
(set! (-> v1-26 angle) 'shove)
|
||||
(set! (-> a1-7 param 1) (the-as uint v1-26))
|
||||
)
|
||||
(send-event-function arg0 a1-7)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
:code
|
||||
(the-as (function none :behavior shover) anim-loop)
|
||||
)
|
||||
|
||||
;; definition for method 11 of type shover
|
||||
;; INFO: Return type mismatch object vs none.
|
||||
;; Used lq/sq
|
||||
(defmethod copy-defaults! shover ((obj shover) (arg0 res-lump))
|
||||
(local-vars (sv-16 res-tag))
|
||||
(set! (-> obj shove-up) (res-lump-float arg0 'shove :default 12288.0))
|
||||
(let ((s3-0 (res-lump-value arg0 'collision-mesh-id uint128))
|
||||
(s4-0
|
||||
(new 'process 'collide-shape obj (collide-list-enum hit-by-player))
|
||||
)
|
||||
)
|
||||
(let
|
||||
((s3-1
|
||||
(new
|
||||
'process
|
||||
'collide-shape-prim-mesh
|
||||
s4-0
|
||||
(the-as uint s3-0)
|
||||
(the-as uint 0)
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! (-> s3-1 prim-core collide-as) (the-as uint 512))
|
||||
(set! (-> s3-1 collide-with) (the-as uint 16))
|
||||
(set! (-> s3-1 prim-core action) (the-as uint 1))
|
||||
(set! (-> s3-1 prim-core offense) 4)
|
||||
(set! (-> s3-1 transform-index) 0)
|
||||
(set-vector! (-> s3-1 local-sphere) 0.0 0.0 0.0 53248.0)
|
||||
)
|
||||
(dummy-46 s4-0)
|
||||
(set! (-> s4-0 nav-radius) (* 0.75 (-> s4-0 root-prim local-sphere w)))
|
||||
(dummy-50 s4-0)
|
||||
(set! (-> obj root-override) s4-0)
|
||||
)
|
||||
(process-drawable-from-entity! obj arg0)
|
||||
(initialize-skeleton obj *shover-sg* '())
|
||||
(let ((v1-17 (new 'process 'path-control obj 'path 0.0)))
|
||||
(set! (-> obj path) v1-17)
|
||||
(logior!
|
||||
(-> v1-17 flags)
|
||||
(path-control-flag display draw-line draw-point draw-text)
|
||||
)
|
||||
(if (<= (-> v1-17 curve num-cverts) 0)
|
||||
(go process-drawable-art-error "no path")
|
||||
)
|
||||
)
|
||||
(set! sv-16 (new 'static 'res-tag))
|
||||
(let
|
||||
((v1-23
|
||||
(res-lump-data arg0 'trans-offset (pointer float) :tag-ptr (& sv-16))
|
||||
)
|
||||
)
|
||||
(when v1-23
|
||||
(+! (-> obj root-override trans x) (-> v1-23 0))
|
||||
(+! (-> obj root-override trans y) (-> v1-23 1))
|
||||
(+! (-> obj root-override trans z) (-> v1-23 2))
|
||||
)
|
||||
)
|
||||
(let ((f0-13 (res-lump-float arg0 'rotoffset)))
|
||||
(if (!= f0-13 0.0)
|
||||
(quaternion-rotate-y!
|
||||
(-> obj root-override quat)
|
||||
(-> obj root-override quat)
|
||||
f0-13
|
||||
)
|
||||
)
|
||||
)
|
||||
(ja-channel-set! 1)
|
||||
(let ((s5-1 (-> obj skel root-channel 0)))
|
||||
(joint-control-channel-group-eval!
|
||||
s5-1
|
||||
(the-as art-joint-anim (-> obj draw art-group data 2))
|
||||
num-func-identity
|
||||
)
|
||||
(set! (-> s5-1 frame-num) 0.0)
|
||||
)
|
||||
(ja-post)
|
||||
(dummy-47 (-> obj root-override))
|
||||
(set! *shover* obj)
|
||||
(go shover-idle)
|
||||
(none)
|
||||
)
|
||||
+1039
File diff suppressed because it is too large
Load Diff
+625
@@ -0,0 +1,625 @@
|
||||
;;-*-Lisp-*-
|
||||
(in-package goal)
|
||||
|
||||
;; definition of type sun-iris-door
|
||||
(deftype sun-iris-door (process-drawable)
|
||||
((root-override collide-shape :offset 112)
|
||||
(timeout float :offset-assert 176)
|
||||
(proximity? symbol :offset-assert 180)
|
||||
(directional-proximity? symbol :offset-assert 184)
|
||||
(move-to? symbol :offset-assert 188)
|
||||
(locked-by-task? symbol :offset-assert 192)
|
||||
(close-dist float :offset-assert 196)
|
||||
(open-dist float :offset-assert 200)
|
||||
(move-to-pos vector :inline :offset-assert 208)
|
||||
(outward-vec vector :inline :offset-assert 224)
|
||||
(move-to-quat quaternion :inline :offset-assert 240)
|
||||
)
|
||||
:heap-base #x90
|
||||
:method-count-assert 22
|
||||
:size-assert #x100
|
||||
:flag-assert #x1600900100
|
||||
(:methods
|
||||
(should-close? (_type_) symbol 20)
|
||||
(should-open? (_type_) symbol 21)
|
||||
)
|
||||
(:states
|
||||
sun-iris-door-closed
|
||||
sun-iris-door-closing
|
||||
sun-iris-door-open
|
||||
sun-iris-door-opening
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for method 3 of type sun-iris-door
|
||||
(defmethod inspect sun-iris-door ((obj sun-iris-door))
|
||||
(let ((t9-0 (method-of-type process-drawable inspect)))
|
||||
(t9-0 obj)
|
||||
)
|
||||
(format #t "~T~Ttimeout: ~f~%" (-> obj timeout))
|
||||
(format #t "~T~Tproximity?: ~A~%" (-> obj proximity?))
|
||||
(format #t "~T~Tdirectional-proximity?: ~A~%" (-> obj directional-proximity?))
|
||||
(format #t "~T~Tmove-to?: ~A~%" (-> obj move-to?))
|
||||
(format #t "~T~Tlocked-by-task?: ~A~%" (-> obj locked-by-task?))
|
||||
(format #t "~T~Tclose-dist: ~f~%" (-> obj close-dist))
|
||||
(format #t "~T~Topen-dist: ~f~%" (-> obj open-dist))
|
||||
(format #t "~T~Tmove-to-pos: #<vector @ #x~X>~%" (-> obj move-to-pos))
|
||||
(format #t "~T~Toutward-vec: #<vector @ #x~X>~%" (-> obj outward-vec))
|
||||
(format #t "~T~Tmove-to-quat: #<quaternion @ #x~X>~%" (-> obj move-to-quat))
|
||||
obj
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defskelgroup *sun-iris-door-sg* sun-iris-door
|
||||
0
|
||||
3
|
||||
((1 (meters 999999)))
|
||||
:bounds (static-spherem 0 0 0 4.5)
|
||||
:longest-edge (meters 0)
|
||||
)
|
||||
|
||||
;; definition for method 21 of type sun-iris-door
|
||||
(defmethod should-open? sun-iris-door ((obj sun-iris-door))
|
||||
(let ((f30-0 1228800.0))
|
||||
0.0
|
||||
(let ((f0-7 (cond
|
||||
((-> obj directional-proximity?)
|
||||
(let ((s5-0 (new 'stack-no-clear 'vector)))
|
||||
(when *target*
|
||||
(vector-! s5-0 (target-pos 0) (-> obj root-override trans))
|
||||
(set! (-> s5-0 y) 0.0)
|
||||
(set! f30-0 (fabs (vector-dot s5-0 (-> obj outward-vec))))
|
||||
)
|
||||
(vector-! s5-0 (camera-pos) (-> obj root-override trans))
|
||||
(set! (-> s5-0 y) 0.0)
|
||||
(fabs (vector-dot s5-0 (-> obj outward-vec)))
|
||||
)
|
||||
)
|
||||
(else
|
||||
(if *target*
|
||||
(set!
|
||||
f30-0
|
||||
(vector-vector-xz-distance
|
||||
(-> obj root-override trans)
|
||||
(target-pos 0)
|
||||
)
|
||||
)
|
||||
)
|
||||
(vector-vector-xz-distance
|
||||
(-> obj root-override trans)
|
||||
(camera-pos)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(when (or (>= (-> obj open-dist) f30-0) (>= (-> obj open-dist) f0-7))
|
||||
(if
|
||||
(or
|
||||
(not (-> obj locked-by-task?))
|
||||
(task-complete? *game-info* (-> obj entity extra perm task))
|
||||
)
|
||||
(return #t)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
#f
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defstate sun-iris-door-closed (sun-iris-door)
|
||||
:event
|
||||
(behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
|
||||
(case arg2
|
||||
(('trigger)
|
||||
(go sun-iris-door-opening)
|
||||
)
|
||||
(('move-to)
|
||||
(set! (-> self move-to?) #t)
|
||||
(set!
|
||||
(-> self move-to-pos quad)
|
||||
(-> (the-as vector (-> arg3 param 0)) quad)
|
||||
)
|
||||
(quaternion-copy!
|
||||
(-> self move-to-quat)
|
||||
(the-as quaternion (-> arg3 param 1))
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
:trans
|
||||
(behavior ()
|
||||
(when (-> self proximity?)
|
||||
(if (should-open? self)
|
||||
(go sun-iris-door-opening)
|
||||
)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
:code
|
||||
(behavior ()
|
||||
(while #t
|
||||
(logior! (-> self mask) (process-mask sleep-code))
|
||||
(suspend)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
:post
|
||||
(behavior ()
|
||||
(when (-> self move-to?)
|
||||
(set! (-> self move-to?) #f)
|
||||
(TODO-RENAME-30 (-> self root-override) (-> self move-to-pos))
|
||||
(quaternion-copy! (-> self root-override quat) (-> self move-to-quat))
|
||||
(ja-post)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defstate sun-iris-door-opening (sun-iris-door)
|
||||
:event
|
||||
(behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
|
||||
(case arg2
|
||||
(('untrigger)
|
||||
(go sun-iris-door-closing)
|
||||
)
|
||||
(('move-to)
|
||||
(set! (-> self move-to?) #t)
|
||||
(set!
|
||||
(-> self move-to-pos quad)
|
||||
(-> (the-as vector (-> arg3 param 0)) quad)
|
||||
)
|
||||
(quaternion-copy!
|
||||
(-> self move-to-quat)
|
||||
(the-as quaternion (-> arg3 param 1))
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
:code
|
||||
(behavior ()
|
||||
(sound-play-by-name
|
||||
(static-sound-name "irisdoor2")
|
||||
(new-sound-id)
|
||||
1024
|
||||
0
|
||||
0
|
||||
1
|
||||
#t
|
||||
)
|
||||
(let ((a0-2 (-> self skel root-channel 0)))
|
||||
(set!
|
||||
(-> a0-2 param 0)
|
||||
(the float (+ (-> a0-2 frame-group data 0 length) -1))
|
||||
)
|
||||
(set! (-> a0-2 param 1) 1.0)
|
||||
(joint-control-channel-group!
|
||||
a0-2
|
||||
(the-as art-joint-anim #f)
|
||||
num-func-seek!
|
||||
)
|
||||
)
|
||||
(until (ja-done? 0)
|
||||
(suspend)
|
||||
(let ((a0-3 (-> self skel root-channel 0)))
|
||||
(set!
|
||||
(-> a0-3 param 0)
|
||||
(the float (+ (-> a0-3 frame-group data 0 length) -1))
|
||||
)
|
||||
(set! (-> a0-3 param 1) 1.0)
|
||||
(joint-control-channel-group-eval!
|
||||
a0-3
|
||||
(the-as art-joint-anim #f)
|
||||
num-func-seek!
|
||||
)
|
||||
)
|
||||
)
|
||||
(ja-post)
|
||||
(go sun-iris-door-open)
|
||||
(none)
|
||||
)
|
||||
:post
|
||||
(behavior ()
|
||||
(cond
|
||||
((-> self move-to?)
|
||||
(set! (-> self move-to?) #f)
|
||||
(TODO-RENAME-30 (-> self root-override) (-> self move-to-pos))
|
||||
(quaternion-copy! (-> self root-override quat) (-> self move-to-quat))
|
||||
(ja-post)
|
||||
)
|
||||
(else
|
||||
(transform-post)
|
||||
)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for method 20 of type sun-iris-door
|
||||
(defmethod should-close? sun-iris-door ((obj sun-iris-door))
|
||||
(let ((f30-0 1228800.0))
|
||||
0.0
|
||||
(let ((f0-7 (cond
|
||||
((-> obj directional-proximity?)
|
||||
(let ((s5-0 (new 'stack-no-clear 'vector)))
|
||||
(when *target*
|
||||
(vector-! s5-0 (target-pos 0) (-> obj root-override trans))
|
||||
(set! (-> s5-0 y) 0.0)
|
||||
(set! f30-0 (fabs (vector-dot s5-0 (-> obj outward-vec))))
|
||||
)
|
||||
(vector-! s5-0 (camera-pos) (-> obj root-override trans))
|
||||
(set! (-> s5-0 y) 0.0)
|
||||
(fabs (vector-dot s5-0 (-> obj outward-vec)))
|
||||
)
|
||||
)
|
||||
(else
|
||||
(if *target*
|
||||
(set!
|
||||
f30-0
|
||||
(vector-vector-xz-distance
|
||||
(-> obj root-override trans)
|
||||
(target-pos 0)
|
||||
)
|
||||
)
|
||||
)
|
||||
(vector-vector-xz-distance
|
||||
(-> obj root-override trans)
|
||||
(camera-pos)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(when (and (>= f30-0 (-> obj close-dist)) (>= f0-7 (-> obj close-dist)))
|
||||
(cond
|
||||
((and *target* (-> obj directional-proximity?))
|
||||
(let ((s4-6 (new 'stack-no-clear 'vector))
|
||||
(s5-3 (new 'stack-no-clear 'vector))
|
||||
)
|
||||
(vector-! s4-6 (target-pos 0) (-> obj root-override trans))
|
||||
(set! (-> s4-6 y) 0.0)
|
||||
(vector-! s5-3 (camera-pos) (-> obj root-override trans))
|
||||
(set! (-> s5-3 y) 0.0)
|
||||
(case (>= (vector-dot (-> obj outward-vec) s4-6) 0.0)
|
||||
(((>= (vector-dot (-> obj outward-vec) s5-3) 0.0))
|
||||
(return #t)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(else
|
||||
(return #t)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
#f
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defstate sun-iris-door-open (sun-iris-door)
|
||||
:event
|
||||
(behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
|
||||
(case arg2
|
||||
(('trigger)
|
||||
(let ((v0-0 (the-as object (-> *display* base-frame-counter))))
|
||||
(set! (-> self state-time) (the-as int v0-0))
|
||||
v0-0
|
||||
)
|
||||
)
|
||||
(('untrigger)
|
||||
(go sun-iris-door-closing)
|
||||
)
|
||||
(('move-to)
|
||||
(set! (-> self move-to?) #t)
|
||||
(set!
|
||||
(-> self move-to-pos quad)
|
||||
(-> (the-as vector (-> arg3 param 0)) quad)
|
||||
)
|
||||
(quaternion-copy!
|
||||
(-> self move-to-quat)
|
||||
(the-as quaternion (-> arg3 param 1))
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
:enter
|
||||
(behavior ()
|
||||
(set! (-> self state-time) (-> *display* base-frame-counter))
|
||||
(dummy-48 (-> self root-override))
|
||||
(logior! (-> self draw status) 2)
|
||||
(none)
|
||||
)
|
||||
:exit
|
||||
(behavior ()
|
||||
(dummy-49 (-> self root-override))
|
||||
(set! (-> self draw status) (logand -3 (-> self draw status)))
|
||||
(none)
|
||||
)
|
||||
:trans
|
||||
(behavior ()
|
||||
(when (-> self proximity?)
|
||||
(if (should-close? self)
|
||||
(go sun-iris-door-closing)
|
||||
)
|
||||
)
|
||||
(if
|
||||
(and
|
||||
(!= (-> self timeout) 0.0)
|
||||
(>=
|
||||
(- (-> *display* base-frame-counter) (-> self state-time))
|
||||
(the int (* 300.0 (-> self timeout)))
|
||||
)
|
||||
)
|
||||
(go sun-iris-door-closing)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
:code
|
||||
(behavior ()
|
||||
(while #t
|
||||
(logior! (-> self mask) (process-mask sleep-code))
|
||||
(suspend)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
:post
|
||||
(behavior ()
|
||||
(when (-> self move-to?)
|
||||
(set! (-> self move-to?) #f)
|
||||
(TODO-RENAME-30 (-> self root-override) (-> self move-to-pos))
|
||||
(quaternion-copy! (-> self root-override quat) (-> self move-to-quat))
|
||||
(ja-post)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defstate sun-iris-door-closing (sun-iris-door)
|
||||
:event
|
||||
(behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
|
||||
(case arg2
|
||||
(('trigger)
|
||||
(go sun-iris-door-opening)
|
||||
)
|
||||
(('move-to)
|
||||
(set! (-> self move-to?) #t)
|
||||
(set!
|
||||
(-> self move-to-pos quad)
|
||||
(-> (the-as vector (-> arg3 param 0)) quad)
|
||||
)
|
||||
(quaternion-copy!
|
||||
(-> self move-to-quat)
|
||||
(the-as quaternion (-> arg3 param 1))
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
:code
|
||||
(behavior ()
|
||||
(sound-play-by-name
|
||||
(static-sound-name "irisdoor2")
|
||||
(new-sound-id)
|
||||
1024
|
||||
0
|
||||
0
|
||||
1
|
||||
#t
|
||||
)
|
||||
(let ((a0-2 (-> self skel root-channel 0)))
|
||||
(set! (-> a0-2 param 0) 0.0)
|
||||
(set! (-> a0-2 param 1) 1.0)
|
||||
(joint-control-channel-group!
|
||||
a0-2
|
||||
(the-as art-joint-anim #f)
|
||||
num-func-seek!
|
||||
)
|
||||
)
|
||||
(until (ja-done? 0)
|
||||
(suspend)
|
||||
(let ((a0-3 (-> self skel root-channel 0)))
|
||||
(set! (-> a0-3 param 0) 0.0)
|
||||
(set! (-> a0-3 param 1) 1.0)
|
||||
(joint-control-channel-group-eval!
|
||||
a0-3
|
||||
(the-as art-joint-anim #f)
|
||||
num-func-seek!
|
||||
)
|
||||
)
|
||||
)
|
||||
(ja-post)
|
||||
(go sun-iris-door-closed)
|
||||
(none)
|
||||
)
|
||||
:post
|
||||
(behavior ()
|
||||
(cond
|
||||
((-> self move-to?)
|
||||
(set! (-> self move-to?) #f)
|
||||
(TODO-RENAME-30 (-> self root-override) (-> self move-to-pos))
|
||||
(quaternion-copy! (-> self root-override quat) (-> self move-to-quat))
|
||||
(ja-post)
|
||||
)
|
||||
(else
|
||||
(transform-post)
|
||||
)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for method 11 of type sun-iris-door
|
||||
;; INFO: Return type mismatch object vs none.
|
||||
;; Used lq/sq
|
||||
(defmethod copy-defaults! sun-iris-door ((obj sun-iris-door) (arg0 res-lump))
|
||||
(local-vars (sv-16 res-tag))
|
||||
(set! (-> obj move-to?) #f)
|
||||
(let
|
||||
((s4-0 (new 'process 'collide-shape obj (collide-list-enum hit-by-others))))
|
||||
(let
|
||||
((s3-0
|
||||
(new
|
||||
'process
|
||||
'collide-shape-prim-mesh
|
||||
s4-0
|
||||
(the-as uint 0)
|
||||
(the-as uint 0)
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! (-> s3-0 prim-core collide-as) (the-as uint 512))
|
||||
(set! (-> s3-0 collide-with) (the-as uint 16))
|
||||
(set! (-> s3-0 prim-core action) (the-as uint 1))
|
||||
(set! (-> s3-0 prim-core offense) 4)
|
||||
(set! (-> s3-0 transform-index) 0)
|
||||
(set-vector! (-> s3-0 local-sphere) 0.0 0.0 0.0 24576.0)
|
||||
)
|
||||
(dummy-46 s4-0)
|
||||
(set! (-> s4-0 nav-radius) (* 0.75 (-> s4-0 root-prim local-sphere w)))
|
||||
(dummy-50 s4-0)
|
||||
(set! (-> obj root-override) s4-0)
|
||||
)
|
||||
(process-drawable-from-entity! obj arg0)
|
||||
(initialize-skeleton obj *sun-iris-door-sg* '())
|
||||
(set! (-> obj close-dist) 49152.0)
|
||||
(set! (-> obj open-dist) 40960.0)
|
||||
(set! (-> obj timeout) (res-lump-float arg0 'timeout))
|
||||
(set! (-> obj proximity?) (nonzero? (res-lump-value arg0 'proximity uint128)))
|
||||
(set! (-> obj directional-proximity?) #f)
|
||||
(when (name= (-> obj name) "sun-iris-door-6")
|
||||
(set! (-> obj close-dist) 16384.0)
|
||||
(set! (-> obj open-dist) 8192.0)
|
||||
(set! (-> obj directional-proximity?) #t)
|
||||
)
|
||||
(set! (-> obj locked-by-task?) (nonzero? (-> obj entity extra perm task)))
|
||||
(let ((f0-11 (res-lump-float arg0 'scale-factor :default 1.0)))
|
||||
(set-vector! (-> obj root-override scale) f0-11 f0-11 f0-11 1.0)
|
||||
(set! (-> obj draw bounds w) (* 18432.0 f0-11))
|
||||
(let ((v1-25 (-> obj root-override root-prim)))
|
||||
(set! (-> v1-25 local-sphere w) (* 24576.0 f0-11 f0-11))
|
||||
)
|
||||
)
|
||||
(set! sv-16 (new 'static 'res-tag))
|
||||
(let
|
||||
((v1-28
|
||||
(res-lump-data
|
||||
(-> obj entity)
|
||||
'trans-offset
|
||||
(pointer float)
|
||||
:tag-ptr
|
||||
(& sv-16)
|
||||
)
|
||||
)
|
||||
)
|
||||
(when v1-28
|
||||
(+! (-> obj root-override trans x) (-> v1-28 0))
|
||||
(+! (-> obj root-override trans y) (-> v1-28 1))
|
||||
(+! (-> obj root-override trans z) (-> v1-28 2))
|
||||
)
|
||||
)
|
||||
(let ((f30-0 (quaternion-y-angle (-> obj root-override quat))))
|
||||
(set-vector! (-> obj outward-vec) (sin f30-0) 0.0 (cos f30-0) 1.0)
|
||||
)
|
||||
(ja-channel-set! 1)
|
||||
(let ((s5-2 (-> obj skel root-channel 0)))
|
||||
(joint-control-channel-group-eval!
|
||||
s5-2
|
||||
(the-as art-joint-anim (-> obj draw art-group data 3))
|
||||
num-func-identity
|
||||
)
|
||||
(set! (-> s5-2 frame-num) 0.0)
|
||||
)
|
||||
(dummy-47 (-> obj root-override))
|
||||
(ja-post)
|
||||
(go sun-iris-door-closed)
|
||||
(none)
|
||||
)
|
||||
|
||||
;; definition for function sun-iris-door-init-by-other
|
||||
;; INFO: Return type mismatch object vs none.
|
||||
;; Used lq/sq
|
||||
(defbehavior
|
||||
sun-iris-door-init-by-other sun-iris-door
|
||||
((arg0 vector) (arg1 quaternion) (arg2 symbol))
|
||||
(set! (-> self move-to?) #f)
|
||||
(let
|
||||
((s3-0 (new 'process 'collide-shape self (collide-list-enum hit-by-others))))
|
||||
(let
|
||||
((s2-0
|
||||
(new
|
||||
'process
|
||||
'collide-shape-prim-mesh
|
||||
s3-0
|
||||
(the-as uint 0)
|
||||
(the-as uint 0)
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! (-> s2-0 prim-core collide-as) (the-as uint 512))
|
||||
(set! (-> s2-0 collide-with) (the-as uint 16))
|
||||
(set! (-> s2-0 prim-core action) (the-as uint 1))
|
||||
(set! (-> s2-0 prim-core offense) 4)
|
||||
(set! (-> s2-0 transform-index) 0)
|
||||
(set-vector! (-> s2-0 local-sphere) 0.0 0.0 0.0 24576.0)
|
||||
)
|
||||
(dummy-46 s3-0)
|
||||
(set! (-> s3-0 nav-radius) (* 0.75 (-> s3-0 root-prim local-sphere w)))
|
||||
(dummy-50 s3-0)
|
||||
(set! (-> self root-override) s3-0)
|
||||
)
|
||||
(set! (-> self root-override trans quad) (-> arg0 quad))
|
||||
(quaternion-copy! (-> self root-override quat) arg1)
|
||||
(initialize-skeleton self *sun-iris-door-sg* '())
|
||||
(set! (-> self close-dist) 49152.0)
|
||||
(set! (-> self open-dist) 40960.0)
|
||||
(set! (-> self timeout) 0.0)
|
||||
(set! (-> self proximity?) #f)
|
||||
(set! (-> self directional-proximity?) #f)
|
||||
(ja-channel-set! 1)
|
||||
(cond
|
||||
(arg2
|
||||
(let ((s5-1 (-> self skel root-channel 0)))
|
||||
(joint-control-channel-group-eval!
|
||||
s5-1
|
||||
(the-as art-joint-anim (-> self draw art-group data 3))
|
||||
num-func-identity
|
||||
)
|
||||
(set!
|
||||
(-> s5-1 frame-num)
|
||||
(the
|
||||
float
|
||||
(+
|
||||
(->
|
||||
(the-as art-joint-anim (-> self draw art-group data 3))
|
||||
data
|
||||
0
|
||||
length
|
||||
)
|
||||
-1
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(else
|
||||
(let ((s5-2 (-> self skel root-channel 0)))
|
||||
(joint-control-channel-group-eval!
|
||||
s5-2
|
||||
(the-as art-joint-anim (-> self draw art-group data 3))
|
||||
num-func-identity
|
||||
)
|
||||
(set! (-> s5-2 frame-num) 0.0)
|
||||
)
|
||||
)
|
||||
)
|
||||
(transform-post)
|
||||
(if arg2
|
||||
(go sun-iris-door-open)
|
||||
(go sun-iris-door-closed)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
+515
@@ -0,0 +1,515 @@
|
||||
;;-*-Lisp-*-
|
||||
(in-package goal)
|
||||
|
||||
;; definition of type whirlpool
|
||||
(deftype whirlpool (process-drawable)
|
||||
((root-override collide-shape :offset 112)
|
||||
(spin-ry float :offset-assert 176)
|
||||
(spin-speed-idle float :offset-assert 180)
|
||||
(spin-speed-delta float :offset-assert 184)
|
||||
(sync sync-info-paused :inline :offset-assert 188)
|
||||
)
|
||||
:heap-base #x60
|
||||
:method-count-assert 21
|
||||
:size-assert #xcc
|
||||
:flag-assert #x15006000cc
|
||||
(:methods
|
||||
(dummy-20 (_type_ float) uint 20)
|
||||
)
|
||||
(:states
|
||||
whirlpool-idle
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for method 3 of type whirlpool
|
||||
(defmethod inspect whirlpool ((obj whirlpool))
|
||||
(let ((t9-0 (method-of-type process-drawable inspect)))
|
||||
(t9-0 obj)
|
||||
)
|
||||
(format #t "~T~Tspin-ry: ~f~%" (-> obj spin-ry))
|
||||
(format #t "~T~Tspin-speed-idle: ~f~%" (-> obj spin-speed-idle))
|
||||
(format #t "~T~Tspin-speed-delta: ~f~%" (-> obj spin-speed-delta))
|
||||
(format #t "~T~Tsync: #<sync-info-paused @ #x~X>~%" (-> obj sync))
|
||||
obj
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defskelgroup *whirlpool-sg* whirlpool
|
||||
0
|
||||
2
|
||||
((1 (meters 999999)))
|
||||
:bounds (static-spherem 0 0.6000000238418579 0 3)
|
||||
:longest-edge (meters 0)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(set!
|
||||
(-> *part-group-id-table* 447)
|
||||
(new 'static 'sparticle-launch-group
|
||||
:length #xbb
|
||||
:duration #xbb8
|
||||
:linger-duration #x5dc
|
||||
:flags (sp-group-flag use-local-clock)
|
||||
:name "group-whirlpool-swirl"
|
||||
:launcher
|
||||
(new 'static 'inline-array sparticle-group-item 187
|
||||
(sp-item 1739 :fade-after (meters 60.0) :falloff-to (meters 60.0) :binding 1737)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1737 :flags (bit1 start-dead launch-asap) :binding 1738)
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
(sp-item 1738 :flags (bit1 start-dead))
|
||||
)
|
||||
:bounds (new 'static 'sphere :w 32768.0)
|
||||
)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(set!
|
||||
(-> *part-id-table* 1739)
|
||||
(new 'static 'sparticle-launcher
|
||||
:init-specs
|
||||
(new 'static 'inline-array sp-field-init-spec 11
|
||||
(sp-tex spt-texture (new 'static 'texture-id :index #x9 :page #x2))
|
||||
(sp-flt spt-num 1.0)
|
||||
(sp-flt spt-y (meters 6.6))
|
||||
(sp-flt spt-scale-x (meters 0.2))
|
||||
(sp-copy-from-other spt-scale-y -4)
|
||||
(sp-flt spt-g 0.0)
|
||||
(sp-flt spt-a 128.0)
|
||||
(sp-flt spt-accel-y -0.68266666)
|
||||
(sp-int spt-timer 510)
|
||||
(sp-cpuinfo-flags bit2 bit3)
|
||||
(sp-end)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(set!
|
||||
(-> *part-id-table* 1737)
|
||||
(new 'static 'sparticle-launcher
|
||||
:init-specs
|
||||
(new 'static 'inline-array sp-field-init-spec 22
|
||||
(sp-tex spt-texture (new 'static 'texture-id :page #x2))
|
||||
(sp-flt spt-num 1.0)
|
||||
(sp-flt spt-x (meters 0.0))
|
||||
(sp-flt spt-y (meters 0.0))
|
||||
(sp-rnd-flt spt-z 16384.0 4096.0 1.0)
|
||||
(sp-flt spt-scale-x (meters 3.2))
|
||||
(sp-flt spt-scale-y (meters 1.0))
|
||||
(sp-flt spt-r 150.0)
|
||||
(sp-flt spt-g 150.0)
|
||||
(sp-flt spt-b 255.0)
|
||||
(sp-flt spt-a 0.0)
|
||||
(sp-rnd-flt spt-omega 0.0 65536.0 1.0)
|
||||
(sp-flt spt-vel-x (meters 0.053333335))
|
||||
(sp-flt spt-vel-y (meters 0.0))
|
||||
(sp-flt spt-vel-z (meters -0.01))
|
||||
(sp-flt spt-scalevel-x (meters -0.004888889))
|
||||
(sp-flt spt-fade-a 0.42666668)
|
||||
(sp-int spt-timer 450)
|
||||
(sp-cpuinfo-flags bit2 bit3 bit7)
|
||||
(sp-int-plain-rnd spt-next-time 37 36 1)
|
||||
(sp-launcher-by-id spt-next-launcher 1740)
|
||||
(sp-end)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(set!
|
||||
(-> *part-id-table* 1740)
|
||||
(new 'static 'sparticle-launcher
|
||||
:init-specs
|
||||
(new 'static 'inline-array sp-field-init-spec 2
|
||||
(sp-flt spt-fade-a 0.0)
|
||||
(sp-end)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(set!
|
||||
(-> *part-id-table* 1738)
|
||||
(new 'static 'sparticle-launcher
|
||||
:init-specs
|
||||
(new 'static 'inline-array sp-field-init-spec 12
|
||||
(sp-tex spt-texture (new 'static 'texture-id :index #x9 :page #x2))
|
||||
(sp-flt spt-num 1.0)
|
||||
(sp-rnd-flt spt-scale-x (meters 0.3) (meters 0.1) 1.0)
|
||||
(sp-copy-from-other spt-scale-y -4)
|
||||
(sp-flt spt-r 255.0)
|
||||
(sp-flt spt-g 255.0)
|
||||
(sp-flt spt-b 255.0)
|
||||
(sp-rnd-flt spt-a 32.0 32.0 1.0)
|
||||
(sp-flt spt-fade-a -1.8285716)
|
||||
(sp-int spt-timer 30)
|
||||
(sp-cpuinfo-flags bit2 bit3)
|
||||
(sp-end)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for method 20 of type whirlpool
|
||||
(defmethod dummy-20 whirlpool ((obj whirlpool) (arg0 float))
|
||||
(let* ((gp-0 (target-pos 0))
|
||||
(f28-0 (vector-vector-xz-distance (-> obj root-override trans) gp-0))
|
||||
)
|
||||
(when (< f28-0 40960.0)
|
||||
(let* ((f0-2 (* 0.000024414063 (- 40960.0 f28-0)))
|
||||
(f26-0 (* f0-2 f0-2))
|
||||
(f0-7
|
||||
(atan
|
||||
(- (-> gp-0 x) (-> obj root-override trans x))
|
||||
(- (-> gp-0 z) (-> obj root-override trans z))
|
||||
)
|
||||
)
|
||||
(f30-0 (* 0.5 f26-0 arg0 (-> *display* seconds-per-frame)))
|
||||
(f24-0 (+ f0-7 f30-0))
|
||||
(f28-1
|
||||
(-
|
||||
f28-0
|
||||
(fmin
|
||||
f28-0
|
||||
(* 0.16874999 f26-0 (fabs arg0) (-> *display* seconds-per-frame))
|
||||
)
|
||||
)
|
||||
)
|
||||
(s4-1 (new 'stack-no-clear 'vector))
|
||||
)
|
||||
(set-vector! s4-1 (* (sin f24-0) f28-1) 0.0 (* (cos f24-0) f28-1) 1.0)
|
||||
(vector+! s4-1 s4-1 (-> obj root-override trans))
|
||||
(set!
|
||||
(-> s4-1 x)
|
||||
(* (- (-> s4-1 x) (-> gp-0 x)) (-> *display* frames-per-second))
|
||||
)
|
||||
(set! (-> s4-1 y) 0.0)
|
||||
(set!
|
||||
(-> s4-1 z)
|
||||
(* (- (-> s4-1 z) (-> gp-0 z)) (-> *display* frames-per-second))
|
||||
)
|
||||
(let ((gp-1 (-> *target* control)))
|
||||
(send-event (-> gp-1 process) 'rotate-y-angle f30-0)
|
||||
(dummy-32 gp-1 8192.0 (-> gp-1 root-prim collide-with))
|
||||
(let ((s3-0 (-> gp-1 status)))
|
||||
(dummy-37 gp-1 s4-1)
|
||||
(set! (-> gp-1 status) s3-0)
|
||||
s3-0
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
;; failed to figure out what this is:
|
||||
(defstate whirlpool-idle (whirlpool)
|
||||
:trans
|
||||
(behavior ()
|
||||
(let
|
||||
((f30-0
|
||||
(+
|
||||
(*
|
||||
(get-current-phase-with-mirror (-> self sync))
|
||||
(-> self spin-speed-delta)
|
||||
)
|
||||
(-> self spin-speed-idle)
|
||||
)
|
||||
)
|
||||
)
|
||||
(when (>= (fabs f30-0) 45511.11)
|
||||
(let ((a1-0 (new 'stack-no-clear 'vector)))
|
||||
(set! (-> a1-0 quad) (-> self root-override trans quad))
|
||||
(set! (-> a1-0 y) (+ -8192.0 (-> a1-0 y)))
|
||||
(spawn (-> self part) a1-0)
|
||||
)
|
||||
)
|
||||
(+! (-> self spin-ry) (* f30-0 (-> *display* seconds-per-frame)))
|
||||
(quaternion-axis-angle!
|
||||
(-> self root-override quat)
|
||||
0.0
|
||||
1.0
|
||||
0.0
|
||||
(-> self spin-ry)
|
||||
)
|
||||
(if (and *target* (logtest? (-> *target* water flags) 512))
|
||||
(dummy-20 self f30-0)
|
||||
)
|
||||
(update! (-> self sound))
|
||||
(let
|
||||
((f0-9
|
||||
(fmin 1.0 (* 0.000007608261 (fmax 0.0 (+ -28580.979 (fabs f30-0)))))
|
||||
)
|
||||
)
|
||||
(update-vol! (-> self sound) (the int (* 100.0 f0-9)))
|
||||
)
|
||||
)
|
||||
(none)
|
||||
)
|
||||
:code
|
||||
(the-as (function none :behavior whirlpool) anim-loop)
|
||||
:post
|
||||
(the-as (function none :behavior whirlpool) ja-post)
|
||||
)
|
||||
|
||||
;; definition for method 10 of type whirlpool
|
||||
(defmethod deactivate whirlpool ((obj whirlpool))
|
||||
(if (nonzero? (-> obj sound))
|
||||
(stop! (-> obj sound))
|
||||
)
|
||||
((method-of-type process-drawable deactivate) obj)
|
||||
(none)
|
||||
)
|
||||
|
||||
;; definition for method 11 of type whirlpool
|
||||
;; INFO: Return type mismatch object vs none.
|
||||
;; Used lq/sq
|
||||
(defmethod copy-defaults! whirlpool ((obj whirlpool) (arg0 res-lump))
|
||||
(local-vars (sv-16 res-tag))
|
||||
(set! (-> obj spin-ry) (rand-vu-float-range 0.0 65536.0))
|
||||
(let
|
||||
((s4-0 (new 'process 'collide-shape obj (collide-list-enum hit-by-player))))
|
||||
(let ((s3-0 (new 'process 'collide-shape-prim-sphere s4-0 (the-as uint 0))))
|
||||
(set! (-> s3-0 prim-core collide-as) (the-as uint 512))
|
||||
(set! (-> s3-0 collide-with) (the-as uint 16))
|
||||
(set! (-> s3-0 prim-core action) (the-as uint 1))
|
||||
(set! (-> s3-0 prim-core offense) 4)
|
||||
(set-vector! (-> s3-0 local-sphere) 0.0 -819.2 0.0 11468.8)
|
||||
)
|
||||
(dummy-46 s4-0)
|
||||
(set! (-> s4-0 nav-radius) (* 0.75 (-> s4-0 root-prim local-sphere w)))
|
||||
(dummy-50 s4-0)
|
||||
(set! (-> obj root-override) s4-0)
|
||||
)
|
||||
(process-drawable-from-entity! obj arg0)
|
||||
(initialize-skeleton obj *whirlpool-sg* '())
|
||||
(load-params! (-> obj sync) obj (the-as uint 1500) 0.0 0.15 0.15)
|
||||
(let ((f30-0 32768.0)
|
||||
(f28-0 145635.56)
|
||||
)
|
||||
(set! sv-16 (new 'static 'res-tag))
|
||||
(let ((v1-17 (res-lump-data arg0 'speed (pointer float) :tag-ptr (& sv-16))))
|
||||
(when v1-17
|
||||
(set! f30-0 (-> v1-17 0))
|
||||
(set! f28-0 (-> v1-17 1))
|
||||
)
|
||||
)
|
||||
(set! (-> obj spin-speed-idle) f30-0)
|
||||
(set! (-> obj spin-speed-delta) (- f28-0 f30-0))
|
||||
)
|
||||
(set!
|
||||
(-> obj part)
|
||||
(create-launch-control (-> *part-group-id-table* 447) obj)
|
||||
)
|
||||
(set!
|
||||
(-> obj sound)
|
||||
(new
|
||||
'process
|
||||
'ambient-sound
|
||||
(new 'static 'sound-spec
|
||||
:mask #x80
|
||||
:num 1.0
|
||||
:group #x1
|
||||
:sound-name (static-sound-name "whirlpool")
|
||||
:volume #x400
|
||||
:fo-max 55
|
||||
)
|
||||
(-> obj root-override trans)
|
||||
)
|
||||
)
|
||||
(ja-channel-set! 1)
|
||||
(let ((s5-1 (-> obj skel root-channel 0)))
|
||||
(joint-control-channel-group-eval!
|
||||
s5-1
|
||||
(the-as art-joint-anim (-> obj draw art-group data 2))
|
||||
num-func-identity
|
||||
)
|
||||
(set! (-> s5-1 frame-num) 0.0)
|
||||
)
|
||||
(ja-post)
|
||||
(dummy-47 (-> obj root-override))
|
||||
(go whirlpool-idle)
|
||||
(none)
|
||||
)
|
||||
+2113
File diff suppressed because it is too large
Load Diff
+1
-6
@@ -901,12 +901,7 @@ swamp-rat-default-event-handler
|
||||
;; Used lq/sq
|
||||
(defbehavior
|
||||
swamp-rat-init-by-other swamp-rat
|
||||
((arg0 swamp-rat-nest)
|
||||
(arg1 vector)
|
||||
(arg2 vector)
|
||||
(arg3 pickup-type)
|
||||
(arg4 symbol)
|
||||
)
|
||||
((arg0 billy) (arg1 vector) (arg2 vector) (arg3 pickup-type) (arg4 symbol))
|
||||
(initialize-collision self)
|
||||
(if arg4
|
||||
(logclear! (-> self mask) (process-mask actor-pause))
|
||||
|
||||
+10
-2
@@ -495,7 +495,11 @@ yakow-default-event-handler
|
||||
(set! (-> gp-1 y) 0.0)
|
||||
(set! (-> self nav travel quad) (-> gp-1 quad))
|
||||
(vector-normalize! (-> self nav travel) 409600.0)
|
||||
(dummy-24 (-> self nav) 204.8 #f)
|
||||
(dummy-24
|
||||
(-> self nav)
|
||||
204.8
|
||||
(the-as clip-travel-vector-to-mesh-return-info #f)
|
||||
)
|
||||
(when (not (-> self enable-turn-around))
|
||||
(set! (-> gp-1 quad) (-> self nav travel quad))
|
||||
(let ((f30-0 (vector-length gp-1)))
|
||||
@@ -506,7 +510,11 @@ yakow-default-event-handler
|
||||
)
|
||||
(set! (-> self nav travel quad) (-> s5-1 quad))
|
||||
(vector-normalize! (-> self nav travel) 409600.0)
|
||||
(dummy-24 (-> self nav) 204.8 #f)
|
||||
(dummy-24
|
||||
(-> self nav)
|
||||
204.8
|
||||
(the-as clip-travel-vector-to-mesh-return-info #f)
|
||||
)
|
||||
(vector-length (-> self nav travel))
|
||||
)
|
||||
)
|
||||
|
||||
+5
-2
@@ -892,7 +892,10 @@
|
||||
((handle->process (-> self tracker))
|
||||
(let
|
||||
((v1-6 (-> (the-as (pointer part-tracker) (-> self tracker process)) 0)))
|
||||
(set! (-> v1-6 start-time) (-> *display* base-frame-counter))
|
||||
(set!
|
||||
(-> v1-6 start-time)
|
||||
(the-as uint (-> *display* base-frame-counter))
|
||||
)
|
||||
(set! v0-1 (-> v1-6 root trans))
|
||||
)
|
||||
(set! (-> (the-as vector v0-1) quad) (-> gp-0 quad))
|
||||
@@ -1131,7 +1134,7 @@
|
||||
0
|
||||
start-time
|
||||
)
|
||||
(-> *display* base-frame-counter)
|
||||
(the-as uint (-> *display* base-frame-counter))
|
||||
)
|
||||
)
|
||||
(else
|
||||
|
||||
Reference in New Issue
Block a user