decomp: decompile *-obs files (#856)

* decomp: mostly finish `cam-master`

* decomp/scripts: lots of work in cam-states

* stash

* Merge remote-tracking branch 'water111/master' into decomp/camera-master

Updated submodule third-party/googletest

* decompiler: Add support for non power of 2 offsets for inline arr access

* decomp: mostly finish `cam-states` need to fix a macro issue

* blocked: `cam-master` decompiler crash when adding casts

* decomp: finish `cam-states-dbg`

* decomp: mostly finish `pov-camera` with the exception of joint-related code

* decomp: `cam-debug` finished decompiling, no way does this compile yet though

* decomp: considerable work done in `cam-layout`

* decomp: `cam-layout` almost done!

* decomp: `pov-camera` finished, TC tests will fail for now

* decomp: working on resolving issues

* decomp: cam-layout decompiling

* fixing more issues in cam-master...one event handler remains

* skip problematic function in `cam-master` for now

* gsrc: update res macros

* decomp: finish `cam-states`

* decomp: giving up on `cam-debug`

* tests: allow skipping state handlers in ref tests

* decomp: working through cam-layout bugs

* decomp: allow for shifting non-integers

* decomp: finalize `cam-layout` and `cam-master`

* decomp: finalize `cam-states`

* cleanup: bi-annual formatting of the casting files

* formatting

* decomp: start working on beach-obs

* blocked: `beach-obs` mostly finished, but handle cast issues and unknown `prebind` func signature

* blocked: `villagep-obs` done, `s6` not being referred to as `self`

* decomp: finish `citadel-obs`

* decomp: finish `darkcave-obs`

* blocked: need to allow `hud-h` to decompile properly (#f as static pointer)

* decomp: finish `jungle-obs`

* decomp: finish `village-obs`

* blocked: `misty-obs` handle cast issues

* decomp: finish `village2-obs`

* decomp: 1 function left in `swamp-obs`, particle related -- maybe we know now?

* decomp: finish `swamp-obs`

* blocked: `maincave-obs` handle casts

* decomp: finish `sunken-obs`

* blocked: `rolling-obs` handle casts and hud-parts

* decomp: finish `firecanyon-obs`

* decomp: finish `ogre-obs`

* blocked: `village3-obs` gives up type analysis!

* blocked: `snow-obs` has hud-parts and handle casts code

* decomp: finish `snow-flutflut-obs`

* blocked: `lavatube-obs` has s6-1 issue

* blocked: `title-obs` handle cast issues

* fixed post merge problems

* decomp: finish `jungleb-obs`

* blocked: `training-obs` has `s6-1` issue

* fix type consistency

* scripts: Extend update script to handle the game-text-id enum as well

* git: Update git attributes to effectively halve PR burden

* fixed `sound-play-by-name` signature

* fix particle definitions in firecanyon-obs

* fix func signature in racer-states

* update ref tests

* tests: update current ref tests

* tests: add `joint` to ref-tests

* tests: add `process-drawable` to ref-tests

* updated gsrc

* add back manual fix

* address most feedback, update source files

* get rid of forward declarations in `darkcave-obs`

Co-authored-by: ManDude <7569514+ManDude@users.noreply.github.com>
This commit is contained in:
Tyler Wilding 2021-11-05 21:29:32 -04:00 committed by GitHub
parent ee930e830f
commit 5f1ed7ab60
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
159 changed files with 42499 additions and 5487 deletions

3
.gitattributes vendored
View File

@ -1,5 +1,8 @@
third-party/**/* linguist-vendored
third-party/**/* linguist-generated
test/decompiler/reference/** linguist-vendored
# suppress from PR diffs - is just reviewing the same thing twice (if properly added to g_src)
test/decompiler/reference/** linguist-generated
*.gc linguist-language=lisp
*.gd linguist-language=lisp
*.gs linguist-language=Scheme

View File

@ -74,4 +74,4 @@ jobs:
env:
NEXT_DIR: ${{ github.workspace }}
FAKE_ISO_PATH: ${{ github.workspace }}/game/fake_iso.txt
run: ./build/bin/goalc-test.exe --gtest_color=yes
run: ./build/bin/goalc-test.exe --gtest_color=yes --gtest_filter="-*MANUAL_TEST*"

View File

@ -70,7 +70,7 @@ tasks:
- python ./scripts/find-label-types.py --file "{{.FILES}}"
type-test:
cmds:
- ./out/build/Release/bin/goalc-test.exe --gtest_brief=0 --gtest_filter="*TypeConsistency*"
- ./out/build/Release/bin/goalc-test.exe --gtest_brief=0 --gtest_filter="*MANUAL_TEST_TypeConsistencyWithBuildFirst*"
update-gsrc:
cmds:
- python ./scripts/next-decomp-file.py --files "{{.FILES}}"

File diff suppressed because it is too large Load Diff

View File

@ -592,8 +592,6 @@
"title-obs": [[0, "(function none)"]],
"title-obs": [[0, "(function none)"]],
"misty-warehouse": [
[3, "(function symbol none :behavior silostep)"],
[4, "(function none :behavior silostep)"],
@ -807,5 +805,17 @@
[46, "(function float :behavior manipy)"]
],
"beach-obs": [
[8, "(function none :behavior camera-tracker)"]
],
"jungleb-obs": [
[4, "(function none :behavior camera-tracker)"]
],
"village2-obs": [
[4, "(function sparticle-launch-control :behavior ogreboss-village2)"]
],
"placeholder-do-not-add-below": []
}

View File

@ -353,9 +353,7 @@
"mistycannon-find-best-solution",
"target-flut-falling-anim-trans",
"kermit-check-to-hit-player?",
"(anon-function 6 title-obs)",
"(anon-function 36 mistycannon)",
"(anon-function 43 maincave-obs)",
"(anon-function 2 target-tube)",
"(anon-function 5 orbit-plat)",
"(anon-function 2 ogreboss)"

View File

@ -1174,6 +1174,72 @@
["L101", "attack-info"]
],
"citadel-obs": [
["L265", "attack-info"]
],
"jungleb-obs": [
["L34", "vector"]
],
"jungle-obs": [
["L164", "attack-info"]
],
"misty-obs": [
["L135", "rigid-body-platform-constants"]
],
"village2-obs": [
["L274", "rigid-body-platform-constants"],
["L275", "rigid-body-platform-constants"],
["L288", "vector"]
],
"swamp-obs": [
["L85", "rigid-body-platform-constants"],
["L109", "attack-info"]
],
"maincave-obs": [
["L159", "vector"],
["L160", "vector"],
["L175", "attack-info"],
["L176", "attack-info"]
],
"sunken-obs": [
["L43", "vector"],
["L45", "vector"],
["L47", "vector"],
["L49", "vector"],
["L51", "vector"]
],
"rolling-obs": [
["L234", "vector"],
["L257", "vector"]
],
"firecanyon-obs": [
["L57", "attack-info"]
],
"ogre-obs": [
["L141", "rigid-body-platform-constants"],
["L142", "rigid-body-platform-constants"],
["L156", "attack-info"]
],
"snow-obs": [
["L201", "vector"]
],
"lavatube-obs": [
["L162", "attack-info"],
["L194", "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": []
}

View File

@ -1595,7 +1595,6 @@
[96, "vector"],
[112, "vector"]
],
"cam-bike-code": [
[16, "matrix"],
[80, "vector"],
@ -1816,6 +1815,582 @@
"ambient-type-sound": [[32, "sound-spec"]],
"ambient-type-sound-loop": [[16, "sound-spec"]],
"(trans windmill-one-idle)": [
[16, "vector"]
],
"move-grottopole-to-position": [
[16, "vector"]
],
"flying-rock-init-by-other": [
[16, "vector"]
],
"(event flutflutegg-idle)": [
[16, "vector"]
],
"(trans flutflutegg-idle)": [
[16, "vector"]
],
"(event flutflutegg-physics)": [
[16, "vector"]
],
"(code flutflutegg-physics-fall)": [
[16, "vector"],
[32, "quaternion"]
],
"(code flutflutegg-physics)": [
[16, "vector"],
[32, "quaternion"]
],
"(code flying-rock-rolling)": [
[16, "vector"],
[32, "vector"],
[48, "vector"]
],
"move-grottopole": [
[16, "vector"],
[32, "vector"]
],
"(code ecoventrock-break)": [
[16, "event-message-block"],
[96, "vector"],
[112, "vector"]
],
"beachcam-spawn": [
[16, "event-message-block"]
],
"(anon-function 8 beach-obs)": [
[16, "event-message-block"]
],
"(code target-warp-in)": [
[16, "vector"],
[32, "event-message-block"]
],
"(trans active warp-gate)": [
[16, "vector"],
[32, "event-message-block"]
],
"(code idle warp-gate)": [
[16, "vector"],
[32, "font-context"]
],
"(code active warp-gate)": [
[16, "font-context"]
],
"(event basebutton-up-idle warp-gate-switch)": [
[16, "event-message-block"]
],
"(method 31 warp-gate-switch)": [
[16, "event-message-block"]
],
"(trans basebutton-up-idle warp-gate-switch)": [
[16, "event-message-block"]
],
"(event basebutton-down-idle warp-gate-switch)": [
[16, "event-message-block"]
],
"(code basebutton-going-down warp-gate-switch)": [
[16, "event-message-block"]
],
"(code idle citb-arm-section)": [
[16, "vector"],
[32, "vector"]
],
"(event citb-disc-idle)": [
[16, "event-message-block"]
],
"(post plat-path-active citb-launcher)": [
[16, "event-message-block"]
],
"(event citb-robotboss-idle)": [
[16, "event-message-block"]
],
"(code citb-robotboss-idle)": [
[16, "event-message-block"]
],
"citb-generator-trigger-others": [
[16, "event-message-block"]
],
"(code citb-generator-break)": [
[16, "event-message-block"]
],
"(code citadelcam-stair-plats)": [
[16, "event-message-block"]
],
"(code battlecontroller-play-intro-camera citb-battlecontroller)": [
[16, "event-message-block"]
],
"(trans cavecrystal-active)": [
[16, "vector"]
],
"(method 11 eggtop)": [
[16, "vector"]
],
"(anon-function 4 jungleb-obs)": [
[16, "event-message-block"]
],
"(event idle logtrap)": [
[16, "event-message-block"]
],
"(code pov-camera-playing precurbridgecam)": [
[16, "event-message-block"]
],
"(code precurbridge-idle)": [
[16, "event-message-block"]
],
"(code maindoor-closed)": [
[16, "event-message-block"]
],
"(method 11 maindoor)": [
[16, "event-message-block"]
],
"(code lurkerm-piston-idle)": [
[16, "vector"]
],
"starfish-spawn-child": [
[16, "vector"]
],
"(method 27 bone-platform)": [
[16, "vector"]
],
"(event breakaway-idle)": [
[16, "event-message-block"]
],
"mistycam-spawn": [
[16, "event-message-block"]
],
"mis-bone-bridge-event-handler": [
[16, "vector"],
[32, "vector"],
[48, "vector"],
[64, "event-message-block"]
],
"misty-cam-restore": [
[16, "vector"],
[32, "matrix"],
[96, "event-message-block"]
],
"(trans allpontoons-be-clone)": [
[16, "vector"],
[32, "vector"],
[48, "vector"],
[64, "vector"],
[80, "vector"],
[96, "vector"]
],
"fireboulder-hover-stuff": [
[16, "vector"]
],
"(enter fireboulder-hover)": [
[16, "vector"]
],
"boulder1-trans": [
[16, "vector"],
[32, "event-message-block"]
],
"boulder2-trans-2": [
[16, "vector"],
[32, "event-message-block"]
],
"boulder2-trans": [
[16, "vector"],
[32, "event-message-block"]
],
"boulder3-trans-2": [
[16, "vector"],
[32, "event-message-block"]
],
"boulder3-trans": [
[16, "vector"],
[32, "event-message-block"]
],
"boulder4-trans-3": [
[16, "vector"],
[32, "event-message-block"]
],
"boulder4-trans-2": [
[16, "vector"],
[32, "event-message-block"]
],
"boulder4-trans": [
[16, "vector"],
[32, "event-message-block"]
],
"(code exit-chamber-dummy-idle)": [
[16, "vector"],
[32, "event-message-block"]
],
"(code exit-chamber-dummy-wait-to-appear)": [
[16, "vector"],
[32, "event-message-block"]
],
"(code ogreboss-village2-throw)": [
[16, "event-message-block"]
],
"swamp-spike-default-event-handler": [
[16, "event-message-block"]
],
"swamp-spike-post": [
[16, "event-message-block"]
],
"(code balance-plat-idle)": [
[16, "event-message-block"]
],
"(code swamp-spike-idle)": [
[16, "vector"],
[32, "vector"]
],
"(code pov-camera-playing maincavecam)": [
[16, "event-message-block"]
],
"(event idle cavetrapdoor)": [
[16, "event-message-block"]
],
"cavecrystal-light-control-caveelevator-callback": [
[16, "vector"]
],
"(method 21 caveelevator)": [
[16, "vector"]
],
"(method 20 caveelevator)": [
[16, "vector"]
],
"caveelevator-joint-callback": [
[16, "vector"]
],
"(event caveflamepots-active)": [
[16, "attack-info"],
[128, "event-message-block"]
],
"(code pov-camera-playing sunkencam)": [
[16, "event-message-block"]
],
"dark-plant-check-target": [
[16, "event-message-block"]
],
"(code dark-plant-idle)": [
[16, "event-message-block"]
],
"(code gorge-abort-idle)": [
[16, "event-message-block"]
],
"(code gorge-finish-idle)": [
[16, "event-message-block"]
],
"(code gorge-start-race-finished)": [
[16, "event-message-block"]
],
"(code gorge-start-race-aborted)": [
[16, "event-message-block"]
],
"(enter gorge-start-racing)": [
[16, "event-message-block"]
],
"(exit gorge-start-racing)": [
[16, "event-message-block"]
],
"(code gorge-start-ready)": [
[16, "event-message-block"]
],
"(code happy-plant-opening)": [
[16, "event-message-block"],
[96, "vector"]
],
"(code pusher-idle)": [
[16, "vector"]
],
"(method 11 gorge-start)": [
[16, "vector"]
],
"(method 11 happy-plant)": [
[16, "vector"]
],
"rolling-start-init-by-other": [
[16, "matrix"]
],
"dark-plant-randomize": [
[16, "vector"]
],
"gorge-init": [
[16, "vector"]
],
"gorge-start-launch-start-banner": [
[16, "vector"]
],
"gorge-behind": [
[16, "vector"]
],
"gorge-in-front": [
[16, "vector"]
],
"race-time-read": [
[16, "race-time"]
],
"gorge-start-draw-time": [
[16, "font-context"]
],
"(event balloon-idle)": [
[16, "event-message-block"]
],
"(trans spike-up)": [
[16, "event-message-block"]
],
"(trans spike-down)": [
[16, "event-message-block"]
],
"(trans spike-idle)": [
[16, "event-message-block"]
],
"(event idle crate-darkeco-cluster)": [
[16, "event-message-block"]
],
"(event idle tntbarrel)": [
[16, "event-message-block"]
],
"(trans ogre-bridge-idle)": [
[16, "event-message-block"]
],
"(code ogre-bridge-activate)": [
[16, "event-message-block"]
],
"(event ogre-bridge-break)": [
[16, "vector"]
],
"(code ride-up gondola)": [
[16, "event-message-block"]
],
"(code ride-down gondola)": [
[16, "event-message-block"]
],
"(code idle gondola)": [
[16, "vector"],
[32, "vector"],
[48, "event-message-block"],
[128, "font-context"]
],
"(code pov-camera-playing snowcam)": [
[16, "event-message-block"]
],
"(code snow-eggtop-activate)": [
[16, "event-message-block"]
],
"(event snowpusher-idle)": [
[16, "event-message-block"]
],
"(code snow-log-wait-for-master)": [
[16, "event-message-block"]
],
"(code snow-log-button-activate)": [
[16, "event-message-block"]
],
"(method 11 snow-eggtop)": [
[16, "vector"]
],
"(method 20 snow-gears)": [
[16, "vector"]
],
"(code snow-switch-activate)": [
[16, "vector"]
],
"(method 11 snow-switch)": [
[16, "vector"]
],
"(code snow-fort-gate-activate)": [
[16, "vector"],
[32, "vector"],
[48, "vector"],
[64, "vector"]
],
"(code snow-spatula-idle)": [
[16, "matrix"]
],
"(enter snow-button-activate)": [
[16, "event-message-block"]
],
"(code plat-startup flutflut-plat)": [
[16, "event-message-block"]
],
"(enter flutflut-plat-appear)": [
[16, "vector"],
[32, "quaternion"]
],
"(enter flutflut-plat-hide)": [
[16, "vector"],
[32, "quaternion"]
],
"darkecobarrel-mover-pos": [
[16, "vector"],
[32, "matrix"],
[96, "vector"],
[112, "matrix"],
[176, "vector"]
],
"(code darkecobarrel-mover-die)": [
[16, "vector"]
],
"(code die chainmine)": [
[16, "vector"]
],
"(event idle chainmine)": [
[16, "event-message-block"]
],
"(event idle lavaballoon)": [
[16, "event-message-block"]
],
"(event darkecobarrel-mover-move)": [
[16, "event-message-block"],
[96, "vector"]
],
"(code startup logo)": [
[16, "event-message-block"]
],
"(code ndi logo)": [
[16, "event-message-block"]
],
"(enter target-title)": [
[16, "event-message-block"]
],
"(trans target-title-wait)": [
[16, "font-context"]
],
"(code target-title)": [
[16, "mc-slot-info"]
],
"(post startup logo)": [
[16, "vector"],
[32, "vector"]
],
"sp-relaunch-particle-3d": [
[16, "quaternion"],
[32, "vector"],
@ -2851,5 +3426,21 @@
[16, "vector"]
],
"(event idle scarecrow-a)": [
[16, "vector"]
],
"(method 11 touching-prims-entry)": [
[16, "vector"]
],
"(code hit scarecrow-a)": [
[16, "joint-exploder-tuning"]
],
"(code hit scarecrow-b)": [
[16, "joint-exploder-tuning"]
],
"placeholder-do-not-add-below!": []
}

View File

@ -4286,5 +4286,584 @@
[1, "a1", "entity-actor"]
],
"(code windmill-one-idle)": [
[10, "v1", "art-joint-anim"]
],
"(code harvester-inflate)": [
[11, "v1", "art-joint-anim"],
[61, "v1", "art-joint-anim"]
],
"(code flutflutegg-break)": [
[38, "v1", "art-joint-anim"],
[91, "v1", "art-joint-anim"],
[191, "v1", "art-joint-anim"]
],
"(method 7 flutflutegg)": [
[14, "t9", "(function process-drawable int process-drawable)"]
],
"(event flutflutegg-idle)": [
[30, "gp", "process-drawable"]
],
"(event flutflutegg-physics)": [
[37, "gp", "process-drawable"]
],
"(trans flutflutegg-idle)": [
[17, "v1", "float"]
],
"beachcam-spawn": [
[68, "gp", "handle"],
[77, "a0", "pov-camera"],
[88, "v1", "handle"],
[106, "s5", "handle"]
],
"(code ecoventrock-break)": [
[338, "gp", "handle"]
],
"(code target-warp-in)": [
[192, "v1", "art-joint-anim"]
],
"(method 26 warp-gate-switch)": [
[60, "v1", "art-joint-anim"]
],
"(method 31 warp-gate-switch)": [
[61, "t9", "(function basebutton symbol none)"]
],
"(code basebutton-going-down warp-gate-switch)": [
[79, "v0", "(state basebutton)"],
[81, "t9", "(function none :behavior basebutton)"]
],
"(method 11 village-cam)": [
[21, "s5", "entity-actor"]
],
"(code idle warp-gate)": [
[35, "a0", "symbol"]
],
"(method 21 citb-arm)": [
[7, "t9", "(function citb-arm-section none)"]
],
"(method 21 citb-arm-shoulder)": [
[7, "t9", "(function citb-arm-section none)"]
],
"(method 21 citb-arm-a)": [
[14, "t9", "(function citb-arm none)"]
],
"(method 21 citb-arm-b)": [
[14, "t9", "(function citb-arm none)"]
],
"(method 21 citb-arm-c)": [
[14, "t9", "(function citb-arm none)"]
],
"(method 21 citb-arm-d)": [
[14, "t9", "(function citb-arm none)"]
],
"(method 21 citb-arm-shoulder-a)": [
[14, "t9", "(function citb-arm none)"]
],
"(method 21 citb-arm-shoulder-b)": [
[14, "t9", "(function citb-arm none)"]
],
"(method 26 citb-button)": [
[31, "v1", "art-joint-anim"]
],
"(code citb-coil-break)": [
[19, "v1", "art-joint-anim"]
],
"(code citb-coil-broken)": [
[10, "v1", "art-joint-anim"]
],
"(code citb-hose-idle)": [
[10, "v1", "art-joint-anim"]
],
"(code citb-hose-spawn)": [
[14, "v1", "art-joint-anim"]
],
"(code citb-hose-die)": [
[19, "v1", "art-joint-anim"]
],
"(code citadelcam-stair-plats)": [
[79, "gp", "handle"]
],
"(code battlecontroller-play-intro-camera citb-battlecontroller)": [
[55, "gp", "handle"],
[76, "gp", "handle"]
],
"(post plat-path-active citb-launcher)": [
[4, "t9", "(function none :behavior citb-launcher)"]
],
"(code battlecontroller-die citb-battlecontroller)": [
[9, "v0", "(state battlecontroller)"],
[11, "t9", "(function none :behavior battlecontroller)"]
],
"(method 27 citb-battlecontroller)": [
[7, "t9", "(function battlecontroller none)"]
],
"(code eggtop-close)": [
[108, "v1", "art-joint-anim"],
[176, "v1", "art-joint-anim"]
],
"(code idle logtrap)": [
[12, "v1", "art-joint-anim"]
],
"(code towertop-idle)": [
[10, "v1", "art-joint-anim"]
],
"(code lurkerm-tall-sail-idle)": [
[10, "v1", "art-joint-anim"]
],
"(code lurkerm-short-sail-idle)": [
[10, "v1", "art-joint-anim"]
],
"(code lurkerm-piston-idle)": [
[10, "v1", "art-joint-anim"]
],
"(code precurbridge-activate)": [
[31, "v1", "art-joint-anim"]
],
"(event precurbridge-active)": [
[4, "gp", "touching-shapes-entry"]
],
"(method 7 jngpusher)": [
[14, "t9", "(function process-drawable int process-drawable)"]
],
"(method 11 lurkerm-piston)": [
["_stack_", 16, "res-tag"],
["_stack_", 32, "res-tag"],
[148, "v0", "(pointer float)"]
],
"(code starfish-patrol)": [
[16, "v1", "art-joint-anim"]
],
"(method 7 hutlamp)": [
[14, "t9", "(function process-drawable int process-drawable)"]
],
"(code mis-bone-bridge-bump)": [
[10, "v1", "art-joint-anim"]
],
"(code mis-bone-bridge-hit)": [
[21, "v1", "art-joint-anim"]
],
"(code mis-bone-bridge-fall)": [
[50, "v1", "art-joint-anim"]
],
"(method 23 bone-platform)": [
[9, "t9", "(function rigid-body-platform basic none)"]
],
"mistycam-spawn": [
[69, "v1", "handle"],
[72, "v1", "handle"],
[85, "v1", "handle"],
[88, "v1", "handle"],
[103, "s5", "handle"],
[106, "s5", "handle"]
],
"(code battlecontroller-play-intro-camera misty-battlecontroller)": [
[34, "gp", "handle"]
],
"(method 27 misty-battlecontroller)": [
[7, "t9", "(function battlecontroller none)"]
],
"(code boat-fuelcell-spawn)": [
[50, "gp", "handle"]
],
"(code pov-camera-playing village2cam)": [
[12, "v1", "art-joint-anim"],
[65, "v1", "art-joint-anim"]
],
"(method 23 pontoon)": [
[9, "t9", "(function rigid-body-platform basic none)"]
],
"fireboulder-disable-blocking-collision": [
[5, "v1", "collide-shape-prim-group"],
[14, "v1", "collide-shape-prim-group"]
],
"fireboulder-hover-stuff": [
[20, "v1", "(pointer part-tracker)"]
],
"(code ogreboss-village2-throw)": [
[179, "v1", "art-joint-anim"],
[227, "v1", "float"],
[434, "v1", "art-joint-anim"]
],
"(code ogreboss-village2-idle)": [
[136, "v1", "art-joint-anim"],
[194, "v1", "art-joint-anim"],
[247, "v1", "art-joint-anim"],
[299, "v1", "float"],
[319, "v1", "art-joint-anim"]
],
"(code fireboulder-idle)": [
[58, "a0", "(pointer part-tracker)"]
],
"(code swamp-spike-idle)": [
[119, "v1", "art-joint-anim"],
[203, "v1", "art-joint-anim"],
[312, "v1", "art-joint-anim"]
],
"(code swamp-spike-gate-up)": [
[60, "v1", "art-joint-anim"]
],
"(method 23 tar-plat)": [
[9, "t9", "(function rigid-body-platform basic none)"]
],
"(code battlecontroller-play-intro-camera swamp-battlecontroller)": [
[38, "gp", "handle"]
],
"(code battlecontroller-die swamp-battlecontroller)": [
[8, "t9", "(function none :behavior battlecontroller)"]
],
"swamp-spike-set-particle-rotation-callback": [
[3, "v1", "(pointer swamp-spike)"]
],
"(code pov-camera-playing maincavecam)": [
[47, "gp", "handle"],
[50, "gp", "handle"]
],
"(code cavecrusher-idle)": [
[10, "v1", "art-joint-anim"]
],
"(code idle cavetrapdoor)": [
[10, "v1", "art-joint-anim"]
],
"(code caveelevator-one-way-idle-end)": [
[19, "v1", "art-joint-anim"]
],
"(code trigger cavetrapdoor)": [
[23, "v1", "art-joint-anim"],
[157, "v1", "art-joint-anim"],
[247, "v1", "art-joint-anim"]
],
"(method 11 caveflamepots)": [
[290, "s4", "collide-shape-prim-group"]
],
"(code pov-camera-playing sunkencam)": [
[12, "v1", "art-joint-anim"],
[62, "v1", "art-joint-anim"],
[120, "v1", "art-joint-anim"],
[174, "v1", "art-joint-anim"],
[236, "v1", "art-joint-anim"],
[294, "v1", "art-joint-anim"],
[348, "v1", "art-joint-anim"],
[452, "v1", "art-joint-anim"],
[502, "v1", "art-joint-anim"]
],
"(code seaweed-idle)": [
[36, "v1", "art-joint-anim"]
],
"(code dark-plant-death)": [
[36, "v1", "art-joint-anim"]
],
"(code dark-plant-sprout)": [
[34, "v1", "art-joint-anim"]
],
"(code happy-plant-opened)": [
[10, "v1", "art-joint-anim"]
],
"(code rolling-start-whole)": [
[16, "v1", "art-joint-anim"]
],
"(code rolling-start-break)": [
[11, "v1", "art-joint-anim"],
[67, "v1", "art-joint-anim"],
[117, "v1", "art-joint-anim"]
],
"(code dark-plant-startup)": [
[10, "v1", "art-joint-anim"],
[26, "v1", "float"]
],
"(code dark-plant-idle)": [
[85, "v1", "art-joint-anim"],
[101, "v1", "float"],
[139, "v1", "float"]
],
"(code dark-plant-gone)": [
[14, "v1", "float"]
],
"dark-plants-all-done": [
[6, "a0", "dark-plant"],
[12, "a0", "dark-plant"]
],
"(code happy-plant-opening)": [
[76, "gp", "handle"],
[84, "gp", "handle"],
[145, "gp", "handle"],
[168, "v1", "handle"],
[171, "v1", "handle"],
[179, "gp", "handle"],
[185, "s5", "handle"],
[188, "s5", "handle"]
],
"(trans spike-idle)": [
[70, "v1", "float"]
],
"(method 23 ogre-plat)": [
[9, "t9", "(function rigid-body-platform basic none)"]
],
"(method 31 ogre-step)": [
[23, "t9", "(function ogre-plat none)"]
],
"(method 31 ogre-step-a)": [
[25, "t9", "(function ogre-step none)"]
],
"(method 31 ogre-step-b)": [
[25, "t9", "(function ogre-step none)"]
],
"(method 31 ogre-step-c)": [
[25, "t9", "(function ogre-step none)"]
],
"(method 31 ogre-step-d)": [
[25, "t9", "(function ogre-step none)"]
],
"(method 31 ogre-isle)": [
[17, "t9", "(function ogre-plat none)"]
],
"(method 31 ogre-isle-b)": [
[31, "t9", "(function ogre-isle none)"]
],
"(method 31 ogre-isle-c)": [
[31, "t9", "(function ogre-isle none)"]
],
"(method 31 ogre-isle-d)": [
[37, "t9", "(function ogre-isle none)"]
],
"(method 7 ogre-bridge)": [
[26, "t9", "(function process-drawable int process-drawable)"]
],
"(code ogre-bridge-activate)": [
[33, "v1", "art-joint-anim"]
],
"(code water-vol-idle ogre-lava)": [
[36, "v1", "art-joint-anim"]
],
"(code ogre-bridge-break)": [
[10, "v1", "art-joint-anim"]
],
"(code ogre-bridge-activated)": [
[13, "v1", "art-joint-anim"]
],
"(code snow-eggtop-activate)": [
[87, "v1", "art-joint-anim"]
],
"(code snow-eggtop-idle-down)": [
[32, "v1", "art-joint-anim"]
],
"(code snow-log-active)": [
[30, "v1", "art-joint-anim"]
],
"(code snow-log-activate)": [
[25, "v1", "art-joint-anim"]
],
"(code snow-gears-activate)": [
[25, "v1", "art-joint-anim"],
[75, "v1", "art-joint-anim"]
],
"(code snow-gears-halt)": [
[10, "v1", "art-joint-anim"],
[85, "v1", "art-joint-anim"]
],
"(code pov-camera-playing snowcam)": [
[12, "v1", "art-joint-anim"],
[62, "v1", "art-joint-anim"],
[112, "v1", "art-joint-anim"],
[242, "gp", "handle"],
[245, "gp", "handle"],
[274, "v1", "art-joint-anim"],
[346, "v1", "art-joint-anim"]
],
"(method 7 snow-fort-gate)": [
[19, "t9", "(function process-drawable int process-drawable)"]
],
"(code snow-button-activate)": [
[25, "v1", "art-joint-anim"]
],
"(code snow-button-deactivate)": [
[26, "v1", "art-joint-anim"]
],
"(code plat-startup flutflut-plat)": [
[62, "t9", "(function none :behavior plat)"]
],
"(method 7 darkecobarrel)": [
[14, "t9", "(function darkecobarrel-base int darkecobarrel-base)"]
],
"(event darkecobarrel-mover-move)": [
[76, "v1", "process-drawable"]
],
"(code darkecobarrel-mover-move)": [
[10, "v1", "float"],
[29, "v1", "float"]
],
"(post water-vol-idle lavatube-lava)": [
[4, "t9", "(function none :behavior lavatube-lava)"]
],
"darkecobarrel-mover-pos": [
[135, "v1", "uint"]
],
"(code startup logo)": [
[352, "v1", "art-joint-anim"]
],
"(code idle logo)": [
[78, "v1", "art-joint-anim"]
],
"(code target-title)": [
[20, "a0", "handle"],
[214, "s5", "handle"]
],
"(event idle logo-slave)": [
[14, "v1", "uint"]
],
"(method 11 training-cam)": [
[21, "s5", "entity-actor"]
],
"(method 23 tra-pontoon)": [
[9, "t9", "(function rigid-body-platform float none)"]
],
"(event idle scarecrow-a)": [
[75, "v1", "process-drawable"],
[135, "gp", "target"],
[142, "gp", "target"]
],
"(code idle scarecrow-a)": [
[14, "v1", "art-joint-anim"]
],
"(code idle scarecrow-b)": [
[14, "v1", "art-joint-anim"]
],
"(code hit scarecrow-a)": [
[30, "v1", "art-joint-anim"],
[92, "v1", "art-joint-anim"],
[143, "v1", "art-joint-anim"]
],
"(code hit scarecrow-b)": [
[30, "v1", "art-joint-anim"],
[92, "v1", "art-joint-anim"],
[143, "v1", "art-joint-anim"]
],
"placeholder-do-not-add-below": []
}

View File

@ -3673,5 +3673,24 @@
}
},
"(event citb-robotboss-idle)": {
"vars": {
"v0-3": ["v0-3", "symbol"]
}
},
"(code pov-camera-playing maincavecam)": {
"vars": {
"gp-1": ["gp-1", "handle"]
}
},
// this shouldn't be required
"(event darkecobarrel-mover-move)": {
"vars": {
"v0-0": ["v0-0", "object"]
}
},
"aaaaaaaaaaaaaaaaaaaaaaa": {}
}

View File

@ -349,7 +349,6 @@
"goal_src/levels/citadel/citb-drop-plat-CIT.gc"
"goal_src/levels/l1_only/citb-drop-plat-L1.gc"
"goal_src/levels/citadel/assistant-citadel.gc"
"goal_src/levels/darkcave/darkcave-obs.gc"
"goal_src/levels/demo/demo-obs.gc"
"goal_src/levels/common/static-screen.gc"
"goal_src/levels/finalboss/robotboss-h.gc"
@ -449,6 +448,7 @@
"goal_src/levels/maincave/mother-spider.gc"
"goal_src/levels/maincave/gnawer.gc"
"goal_src/levels/maincave/driller-lurker.gc"
"goal_src/levels/darkcave/darkcave-obs.gc"
"goal_src/levels/sunken/sunken-part.gc"
"goal_src/levels/sunken/sunken-part2.gc"
"goal_src/levels/sunken/sunken-part3.gc"
@ -511,4 +511,4 @@
"goal_src/levels/title/title-obs.gc"
"goal_src/old/lava/lava.gc"
)
)
)

View File

@ -662,8 +662,8 @@
1024
0
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
)
)
@ -753,8 +753,8 @@
1024
1
0
(the-as uint 1)
(-> self trans)
1
(the-as symbol (-> self trans))
)
)
)
@ -772,8 +772,8 @@
1024
0
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
)
)

View File

@ -1129,8 +1129,8 @@
(the int (* 10.24 (rand-vu-float-range 25.0 75.0)))
(the int (* 1524.0 (rand-vu-float-range -1.0 1.0)))
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
(sound-play-by-name
(static-sound-name "thunder")
@ -1138,8 +1138,8 @@
(the int (* 10.24 (rand-vu-float-range 200.0 400.0)))
(the int (* 1524.0 (rand-vu-float-range -1.0 1.0)))
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
)
)

View File

@ -8,10 +8,6 @@
;; TODO - for basebutton
(define-extern cam-fixed (state camera-slave))
(define-extern cam-free-floating (state camera-slave))
(define-extern cam-master-active (state camera-master))
(define-extern list-keeper-active (state camera-master))
;; DECOMP BEGINS
(deftype camera-master-bank (basic)

View File

@ -5,6 +5,9 @@
;; name in dgo: camera
;; dgos: GAME, ENGINE
(define-extern cam-free-floating (state camera-slave))
(define-extern cam-master-active (state camera-master))
;; DECOMP BEGINS
(define *cam-res-string* (new 'global 'string 64 (the-as string #f)))

View File

@ -5,16 +5,18 @@
;; name in dgo: pov-camera-h
;; dgos: GAME, ENGINE
;; DECOMP BEGINS
(deftype pov-camera (process-drawable)
((cspace-array cspace-array :offset 112)
(flags int32 :offset-assert 176)
(debounce-start-time uint64 :offset-assert 184)
(notify-handle handle :offset-assert 192)
(anim-name string :offset-assert 200)
(command-list pair :offset-assert 204) ;; not a basic atleast!
(mask-to-clear uint32 :offset-assert 208)
(music-volume-movie float :offset-assert 212)
(sfx-volume-movie float :offset-assert 216)
((cspace-array cspace-array :offset 112)
(flags int32 :offset-assert 176)
(debounce-start-time uint64 :offset-assert 184)
(notify-handle handle :offset-assert 192)
(anim-name string :offset-assert 200)
(command-list pair :offset-assert 204)
(mask-to-clear uint32 :offset-assert 208)
(music-volume-movie float :offset-assert 212)
(sfx-volume-movie float :offset-assert 216)
)
:heap-base #x70
:method-count-assert 30
@ -23,13 +25,20 @@
(:methods
(pov-camera-abort () _type_ :state 20)
(pov-camera-done-playing () _type_ :state 21)
(pov-camera-playing () _type_ :state 22) ;; state
(pov-camera-start-playing () _type_ :state 23) ;; state
(pov-camera-startup () _type_ :state 24) ;; state
(pov-camera-playing () _type_ :state 22)
(pov-camera-start-playing () _type_ :state 23)
(pov-camera-startup () _type_ :state 24)
(TODO-RENAME-25 (_type_) symbol 25)
(target-grabbed? (_type_) symbol 26)
(dummy-27 () none 27)
(target-released? () symbol 28)
(dummy-29 () none 29)
(set-stack-size! (_type_) none 29)
)
)
0

View File

@ -314,7 +314,7 @@
(none)
)
(defmethod dummy-29 pov-camera ()
(defmethod set-stack-size! pov-camera ((obj pov-camera))
(none)
)
@ -327,7 +327,7 @@
(arg4 process-drawable)
(arg5 pair)
)
((method-of-object self dummy-29))
(set-stack-size! self)
(set! (-> *game-info* pov-camera-handle) (process->handle self))
(set! (-> self flags) arg3)
(set! (-> self command-list) arg5)

View File

@ -5,6 +5,10 @@
;; name in dgo: collide-touch-h
;; dgos: GAME, ENGINE
(declare-type touching-shapes-entry structure)
;; 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)
@ -27,9 +31,9 @@
:size-assert #xe4
:flag-assert #xd000000e4
(:methods
(dummy-9 () none 9)
(touched-prim (_type_ collide-shape-moving touching-shapes-entry) collide-shape-prim 9)
(dummy-10 () none 10)
(dummy-11 () none 11)
(dummy-11 (_type_ vector) vector 11)
(dummy-12 () none 12)
)
)
@ -99,7 +103,7 @@
:flag-assert #x1200000010
(:methods
(dummy-9 () none 9)
(dummy-10 () none 10)
(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)

View File

@ -5,6 +5,9 @@
;; name in dgo: entity
;; dgos: GAME, ENGINE
;; TODO - for jungleb-obs
(define-extern entity-task-complete-on (function entity none))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; global entity settings
;;;;;;;;;;;;;;;;;;;;;;;;;;;;

View File

@ -5,3 +5,41 @@
;; name in dgo: crates
;; dgos: GAME, ENGINE
;; TODO - for swamp-obs
(deftype crate (process-drawable)
((root-override collide-shape-moving :score 20 :offset 112)
(smush smush-control :inline :offset-assert 176)
(base vector :inline :offset-assert 208)
(look symbol :offset-assert 224)
(defense symbol :offset-assert 228)
(incomming-attack-id uint64 :offset-assert 232)
(target handle :offset-assert 240)
(child-count int32 :offset-assert 248)
(victory-anim spool-anim :offset-assert 252)
)
:method-count-assert 30
:size-assert #x100
:heap-base #x90
:flag-assert #x1e00900100
;; inherited inspect of process-drawable
(:methods
(wait () _type_ :state 20) ;; state
(die (symbol int) _type_ :state 21)
(special-contents-die () _type_ :state 22)
(bounce-on () _type_ :state 23) ;; state
(notice-blue (handle) _type_ :state 24)
(params-init (_type_ entity) none 25)
(art-init (_type_) none 26)
(params-set! (_type_ symbol symbol) none 27)
(dummy-28 (_type_) none 28)
(smush-update! (_type_) none 29)
)
)
(deftype barrel (crate)
()
:method-count-assert 30
:heap-base #x90
:size-assert #x100
:flag-assert #x1e00900100
)

View File

@ -1375,8 +1375,8 @@
)
0
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
)
((logtest? (-> self water flags) 512)

View File

@ -573,8 +573,8 @@
1024
0
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
)
@ -667,8 +667,8 @@
1024
0
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
)
(set! (-> obj money-pickup-time) (-> *display* base-frame-counter))
@ -775,16 +775,16 @@
(cpad-set-buzz! (-> *cpad-list* cpads 0) 0 17 60)
(case kind
(((pickup-type eco-blue))
(sound-play-by-name (static-sound-name "get-blue-eco") (new-sound-id) 1024 0 0 (the-as uint 1) (the-as vector #t))
(sound-play-by-name (static-sound-name "get-blue-eco") (new-sound-id) 1024 0 0 1 #t)
)
(((pickup-type eco-green))
(sound-play-by-name (static-sound-name "get-green-eco") (new-sound-id) 1024 0 0 (the-as uint 1) (the-as vector #t))
(sound-play-by-name (static-sound-name "get-green-eco") (new-sound-id) 1024 0 0 1 #t)
)
(((pickup-type eco-yellow))
(sound-play-by-name (static-sound-name "get-yellow-eco") (new-sound-id) 1024 0 0 (the-as uint 1) (the-as vector #t))
(sound-play-by-name (static-sound-name "get-yellow-eco") (new-sound-id) 1024 0 0 1 #t)
)
(((pickup-type eco-red))
(sound-play-by-name (static-sound-name "get-red-eco") (new-sound-id) 1024 0 0 (the-as uint 1) (the-as vector #t))
(sound-play-by-name (static-sound-name "get-red-eco") (new-sound-id) 1024 0 0 1 #t)
)
)
)

View File

@ -5,6 +5,30 @@
;; name in dgo: generic-obs
;; dgos: GAME, ENGINE
;; TODO - temporary, for citadel-obs
(deftype launcher (process-drawable)
((spring-height meters :offset-assert 176)
(camera basic :offset-assert 180)
(active-distance float :offset-assert 184)
(seek-time int64 :offset-assert 192)
(dest vector :inline :offset-assert 208)
(sound-id sound-id :offset-assert 224)
)
:method-count-assert 20
:size-assert #xe4
:heap-base #x80
:flag-assert #x14008000e4
)
(define-extern launcher-init-by-other (function vector float vector float none :behavior launcher))
;; TODO - for village-obs
(define-extern draw-eco-beam (function vector vector none)) ;; TODO - not confirmed
;; TODO - for jungleb-obs
(define-extern camera-look-at (function process int none)) ;; TODO - process is likely a target
;; decomp begins
;; definition for function clone-anim-once
;; INFO: Return type mismatch int vs none.

View File

@ -331,8 +331,8 @@
"play the appropriate sound for inputting a cheat code"
`(if ,cheat?
(sound-play-by-name (static-sound-name "select-menu") (new-sound-id) 1024 0 0 (the-as uint 1) (the-as vector #t))
(sound-play-by-name (static-sound-name "cursor-options") (new-sound-id) 1024 0 0 (the-as uint 1) (the-as vector #t))
(sound-play-by-name (static-sound-name "select-menu") (new-sound-id) 1024 0 0 1 #t)
(sound-play-by-name (static-sound-name "cursor-options") (new-sound-id) 1024 0 0 1 #t)
)
)
@ -410,11 +410,11 @@
(external-cam-reset!)
)
(set! *external-cam-mode* 'pad-1)
(sound-play-by-name (static-sound-name "select-menu") (new-sound-id) 1024 0 0 (the-as uint 1) (the-as vector #t))
(sound-play-by-name (static-sound-name "select-menu") (new-sound-id) 1024 0 0 1 #t)
)
(else
(set! *external-cam-mode* #f)
(sound-play-by-name (static-sound-name "cursor-options") (new-sound-id) 1024 0 0 (the-as uint 1) (the-as vector #t))
(sound-play-by-name (static-sound-name "cursor-options") (new-sound-id) 1024 0 0 1 #t)
)
)
)

View File

@ -1120,8 +1120,8 @@
1024
0
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
(suspend)
(go-virtual projectile-die)
@ -1165,8 +1165,8 @@
1024
0
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
(suspend)
(go-virtual projectile-die)
@ -1341,8 +1341,8 @@
1024
0
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
(set!
(-> obj sound-id)
@ -1352,8 +1352,8 @@
1024
0
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
)
(when (zero? (logand (-> obj options) 416))
@ -1630,8 +1630,8 @@
1024
0
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
(set! (-> obj mode) 2)
(set! (-> obj max-speed) (-> *TARGET-bank* yellow-projectile-speed))

View File

@ -5,6 +5,57 @@
;; name in dgo: water-h
;; dgos: GAME, ENGINE
(define-extern *water-anim-sunken-dark-eco-qbert-sg* skeleton-group)
(define-extern *water-anim-sunken-dark-eco-platform-room-sg* skeleton-group)
(define-extern *water-anim-sunken-dark-eco-helix-room-sg* skeleton-group)
(define-extern *water-anim-sunken-big-room-sg* skeleton-group)
(define-extern *water-anim-sunken-first-room-from-entrance-sg* skeleton-group)
(define-extern *water-anim-sunken-qbert-room-sg* skeleton-group)
(define-extern *water-anim-sunken-first-right-branch-sg* skeleton-group)
(define-extern *water-anim-sunken-circular-with-bullys-sg* skeleton-group)
(define-extern *water-anim-sunken-hall-with-one-whirlpool-sg* skeleton-group)
(define-extern *water-anim-sunken-hall-with-three-whirlpools-sg* skeleton-group)
(define-extern *water-anim-sunken-start-of-helix-slide-sg* skeleton-group)
(define-extern *water-anim-sunken-room-above-exit-chamber-sg* skeleton-group)
(define-extern *water-anim-sunken-hall-before-big-room-sg* skeleton-group)
(define-extern *water-anim-sunken-short-piece-sg* skeleton-group)
(define-extern *water-anim-sunken-big-room-upper-water-sg* skeleton-group)
(define-extern *water-anim-maincave-center-pool-sg* skeleton-group)
(define-extern *water-anim-maincave-lower-right-pool-sg* skeleton-group)
(define-extern *water-anim-maincave-mid-right-pool-sg* skeleton-group)
(define-extern *water-anim-maincave-lower-left-pool-sg* skeleton-group)
(define-extern *water-anim-maincave-mid-left-pool-sg* skeleton-group)
(define-extern *water-anim-maincave-water-with-crystal-sg* skeleton-group)
(define-extern *water-anim-robocave-main-pool-sg* skeleton-group)
(define-extern *water-anim-misty-mud-by-arena-sg* skeleton-group)
(define-extern *water-anim-misty-mud-above-skeleton-sg* skeleton-group)
(define-extern *water-anim-misty-mud-behind-skeleton-sg* skeleton-group)
(define-extern *water-anim-misty-mud-above-skull-back-sg* skeleton-group)
(define-extern *water-anim-misty-mud-above-skull-front-sg* skeleton-group)
(define-extern *water-anim-misty-mud-other-near-skull-sg* skeleton-group)
(define-extern *water-anim-misty-mud-near-skull-sg* skeleton-group)
(define-extern *water-anim-misty-mud-under-spine-sg* skeleton-group)
(define-extern *water-anim-misty-mud-by-dock-sg* skeleton-group)
(define-extern *water-anim-misty-mud-island-near-dock-sg* skeleton-group)
(define-extern *water-anim-misty-mud-lonely-island-sg* skeleton-group)
(define-extern *water-anim-misty-dark-eco-pool-sg* skeleton-group)
(define-extern *water-anim-ogre-lava-sg* skeleton-group)
(define-extern *water-anim-jungle-river-sg* skeleton-group)
(define-extern *water-anim-village3-lava-sg* skeleton-group)
(define-extern *water-anim-training-lake-sg* skeleton-group)
(define-extern *water-anim-darkcave-water-with-crystal-sg* skeleton-group)
(define-extern *water-anim-rolling-water-back-sg* skeleton-group)
(define-extern *water-anim-rolling-water-front-sg* skeleton-group)
(define-extern *water-anim-finalboss-dark-eco-pool-sg* skeleton-group)
(define-extern *water-anim-lavatube-energy-lava-sg* skeleton-group)
(define-extern *water-anim-village1-rice-paddy-sg* skeleton-group)
(define-extern *water-anim-village1-fountain-sg* skeleton-group)
(define-extern *water-anim-village1-rice-paddy-mid-sg* skeleton-group)
(define-extern *water-anim-village1-rice-paddy-top-sg* skeleton-group)
(define-extern *water-anim-village2-bucket-sg* skeleton-group)
;; DECOMP BEGINS
(deftype water-control (basic)
((flags uint32 :offset-assert 4)
(process process :offset-assert 8)
@ -57,6 +108,7 @@
)
)
(defmethod display-water-marks? water-control ((obj water-control))
(and *display-water-marks* (logtest? (-> obj flags) 1))
)
@ -90,7 +142,6 @@
)
)
(defmethod distance-from-surface water-control ((obj water-control))
(- (-> obj top 0 y) (-> obj height))
)
@ -108,7 +159,6 @@
:method-count-assert 30
:size-assert #xd4
:flag-assert #x1e007000d4
;; inherited inspect of process-drawable
(:methods
(water-vol-idle () _type_ :state 20)
(water-vol-startup () _type_ :state 21)
@ -123,52 +173,9 @@
)
)
;; Manually Added
(define-extern *water-anim-sunken-dark-eco-qbert-sg* skeleton-group)
(define-extern *water-anim-sunken-dark-eco-platform-room-sg* skeleton-group)
(define-extern *water-anim-sunken-dark-eco-helix-room-sg* skeleton-group)
(define-extern *water-anim-sunken-big-room-sg* skeleton-group)
(define-extern *water-anim-sunken-first-room-from-entrance-sg* skeleton-group)
(define-extern *water-anim-sunken-qbert-room-sg* skeleton-group)
(define-extern *water-anim-sunken-first-right-branch-sg* skeleton-group)
(define-extern *water-anim-sunken-circular-with-bullys-sg* skeleton-group)
(define-extern *water-anim-sunken-hall-with-one-whirlpool-sg* skeleton-group)
(define-extern *water-anim-sunken-hall-with-three-whirlpools-sg* skeleton-group)
(define-extern *water-anim-sunken-start-of-helix-slide-sg* skeleton-group)
(define-extern *water-anim-sunken-room-above-exit-chamber-sg* skeleton-group)
(define-extern *water-anim-sunken-hall-before-big-room-sg* skeleton-group)
(define-extern *water-anim-sunken-short-piece-sg* skeleton-group)
(define-extern *water-anim-sunken-big-room-upper-water-sg* skeleton-group)
(define-extern *water-anim-maincave-center-pool-sg* skeleton-group)
(define-extern *water-anim-maincave-lower-right-pool-sg* skeleton-group)
(define-extern *water-anim-maincave-mid-right-pool-sg* skeleton-group)
(define-extern *water-anim-maincave-lower-left-pool-sg* skeleton-group)
(define-extern *water-anim-maincave-mid-left-pool-sg* skeleton-group)
(define-extern *water-anim-maincave-water-with-crystal-sg* skeleton-group)
(define-extern *water-anim-robocave-main-pool-sg* skeleton-group)
(define-extern *water-anim-misty-mud-by-arena-sg* skeleton-group)
(define-extern *water-anim-misty-mud-above-skeleton-sg* skeleton-group)
(define-extern *water-anim-misty-mud-behind-skeleton-sg* skeleton-group)
(define-extern *water-anim-misty-mud-above-skull-back-sg* skeleton-group)
(define-extern *water-anim-misty-mud-above-skull-front-sg* skeleton-group)
(define-extern *water-anim-misty-mud-other-near-skull-sg* skeleton-group)
(define-extern *water-anim-misty-mud-near-skull-sg* skeleton-group)
(define-extern *water-anim-misty-mud-under-spine-sg* skeleton-group)
(define-extern *water-anim-misty-mud-by-dock-sg* skeleton-group)
(define-extern *water-anim-misty-mud-island-near-dock-sg* skeleton-group)
(define-extern *water-anim-misty-mud-lonely-island-sg* skeleton-group)
(define-extern *water-anim-misty-dark-eco-pool-sg* skeleton-group)
(define-extern *water-anim-ogre-lava-sg* skeleton-group)
(define-extern *water-anim-jungle-river-sg* skeleton-group)
(define-extern *water-anim-village3-lava-sg* skeleton-group)
(define-extern *water-anim-training-lake-sg* skeleton-group)
(define-extern *water-anim-darkcave-water-with-crystal-sg* skeleton-group)
(define-extern *water-anim-rolling-water-back-sg* skeleton-group)
(define-extern *water-anim-rolling-water-front-sg* skeleton-group)
(define-extern *water-anim-finalboss-dark-eco-pool-sg* skeleton-group)
(define-extern *water-anim-lavatube-energy-lava-sg* skeleton-group)
(define-extern *water-anim-village1-rice-paddy-sg* skeleton-group)
(define-extern *water-anim-village1-fountain-sg* skeleton-group)
(define-extern *water-anim-village1-rice-paddy-mid-sg* skeleton-group)
(define-extern *water-anim-village1-rice-paddy-top-sg* skeleton-group)
(define-extern *water-anim-village2-bucket-sg* skeleton-group)
0

View File

@ -363,30 +363,50 @@
)
)
(defun sound-play-by-name ((name sound-name) (id sound-id) (vol int) (pitch int) (bend int) (group uint) (trans vector))
(defun
sound-play-by-name
((name sound-name)
(id sound-id)
(vol int)
(pitch int)
(bend int)
(group int)
(trans symbol)
)
"Play a sound called name with the specified params"
(#when PC_DEBUG_SOUND_ENABLE
(let ((sound-trans trans))
(when *sound-player-enable*
(let ((cmd (the sound-rpc-play (get-sound-buffer-entry))))
(set! (-> cmd command) (sound-command play))
(set! (-> cmd id) id)
(set! (-> cmd name) name)
(set! (-> cmd parms mask) (the-as uint 0))
(set! (-> cmd parms group) group)
(set! (-> cmd parms volume) vol)
(set! (-> cmd parms pitch-mod) pitch)
(set! (-> cmd parms bend) bend)
(format 0 "stfp~%")
(sound-trans-from-process cmd sound-trans)
)
(local-vars (sv-16 int))
(with-pp
(set! sv-16 group)
(let ((sound-trans (the-as structure trans)))
(when *sound-player-enable*
(let ((cmd (the-as sound-rpc-play (get-sound-buffer-entry))))
(set! (-> cmd command) (sound-command play))
(set! (-> cmd id) id)
(set! (-> cmd name) name)
(set! (-> cmd parms mask) (the-as uint 0))
(set! (-> cmd parms group) (the-as uint sv-16))
(set! (-> cmd parms volume) vol)
(set! (-> cmd parms pitch-mod) pitch)
(set! (-> cmd parms bend) bend)
(let ((proc (the-as process-drawable pp)))
(when (= (the-as symbol sound-trans) #t)
(if
(and
proc
(type-type? (-> proc type) process-drawable)
(nonzero? (-> proc root))
)
(set! sound-trans (-> proc root trans))
(set! sound-trans #f)
)
)
)
(sound-trans-convert (-> cmd parms trans) (the-as vector sound-trans))
)
)
id
)
)
id
)
)
(defun sound-play-by-spec ((spec sound-spec) (id sound-id) (sound-trans vector))
@ -695,8 +715,8 @@
(-> obj volume)
(-> obj pitch)
0
(the-as uint 1)
(-> obj trans)))
1
(the-as symbol (-> obj trans))))
)
(else
(when (>= (-> *display* base-frame-counter) (-> obj play-time))
@ -706,8 +726,8 @@
(-> obj volume)
(-> obj pitch)
0
(the-as uint 1)
(-> obj trans)))
1
(the-as symbol (-> obj trans))))
(set! (-> obj play-time) (+ (-> *display* base-frame-counter)
(-> obj time-base)
(rand-vu-int-count (-> obj time-random))

View File

@ -3096,8 +3096,8 @@
1024
0
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
(let ((s5-1 (new 'stack 'rgbaf))
(s3-0 (-> *display* base-frame-counter))

View File

@ -866,8 +866,8 @@
1024
0
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
0
(none)

View File

@ -1081,8 +1081,8 @@
1024
0
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
(set! (-> *progress-state* which) (-> obj option-index))
(set! (-> obj next-display-state) (progress-screen memcard-loading))
@ -1095,8 +1095,8 @@
1024
0
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
(set! (-> obj next-display-state) (progress-screen invalid))
)
@ -1111,8 +1111,8 @@
1024
0
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
(set! (-> *progress-state* which) (-> obj option-index))
(if (zero? (-> s5-0 file (-> obj option-index) present))
@ -1133,8 +1133,8 @@
1024
0
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
(sound-volume-off)
(set! (-> *game-info* mode) 'play)
@ -1148,8 +1148,8 @@
1024
0
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
(set! (-> obj next-display-state) (progress-screen invalid))
)
@ -1162,8 +1162,8 @@
1024
0
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
(set! (-> obj next-display-state) (progress-screen invalid))
)
@ -1176,8 +1176,8 @@
1024
0
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
(set! (-> obj next-display-state) (progress-screen memcard-saving))
)
@ -1188,8 +1188,8 @@
1024
0
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
(= (-> obj display-state-stack 0) (progress-screen title))
)
@ -1209,8 +1209,8 @@
1024
0
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
(set! (-> obj next-display-state) (progress-screen memcard-creating))
)
@ -1221,8 +1221,8 @@
1024
0
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
(sound-volume-off)
(set! (-> *game-info* mode) 'play)
@ -1243,8 +1243,8 @@
1024
0
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
(sound-volume-off)
(set! (-> *game-info* mode) 'play)
@ -1258,8 +1258,8 @@
1024
0
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
(set-master-mode 'game)
)
@ -1270,8 +1270,8 @@
1024
0
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
(set! (-> obj next-display-state) (progress-screen invalid))
)
@ -1291,8 +1291,8 @@
1024
0
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
(set! (-> obj next-display-state) (progress-screen invalid))
)
@ -1305,8 +1305,8 @@
1024
0
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
(set!
(-> *setting-control* default video-mode)
@ -1325,8 +1325,8 @@
1024
0
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
(set! (-> *progress-state* video-mode-choice) 'pal)
(set! (-> obj next-display-state) (progress-screen invalid))
@ -1347,8 +1347,8 @@
1024
0
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
)
(else
@ -1358,8 +1358,8 @@
1024
0
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
)
)
@ -1373,8 +1373,8 @@
1024
0
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
(set! (-> obj next-display-state) (progress-screen invalid))
)
@ -1388,8 +1388,8 @@
1024
0
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
(sound-volume-off)
(set! (-> *game-info* mode) 'play)
@ -1402,8 +1402,8 @@
1024
0
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
(set! (-> obj next-display-state) (progress-screen invalid))
)
@ -1418,8 +1418,8 @@
1024
0
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
(set! (-> obj next-display-state) (progress-screen memcard-formatting))
)
@ -1430,8 +1430,8 @@
1024
0
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
(sound-volume-off)
(set! (-> *game-info* mode) 'play)
@ -1445,8 +1445,8 @@
1024
0
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
(set! (-> obj next-display-state) (progress-screen invalid))
)
@ -1476,8 +1476,8 @@
1024
0
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
)
(set!
@ -1520,8 +1520,8 @@
1024
0
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
)
)
@ -1541,8 +1541,8 @@
1024
0
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
)
(set!
@ -1590,8 +1590,8 @@
1024
0
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
)
)
@ -1749,8 +1749,8 @@
1024
0
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
)
)
@ -1854,8 +1854,8 @@
(the int (* 10.24 f30-0))
0
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
)
)
@ -2015,8 +2015,8 @@
1024
0
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
)
)
@ -2120,8 +2120,8 @@
(the int (* 10.24 f30-1))
0
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
)
)
@ -2201,8 +2201,8 @@
1024
0
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
(set! (-> obj selected-option) #f)
)
@ -2229,8 +2229,8 @@
1024
0
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
(sound-play-by-name
(static-sound-name "cursor-options")
@ -2238,8 +2238,8 @@
1024
0
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
)
(load-level-text-files
@ -2274,8 +2274,8 @@
1024
0
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
(set!
(-> obj next-display-state)
@ -2307,8 +2307,8 @@
1024
0
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
(sound-play-by-name
(static-sound-name "cursor-options")
@ -2316,8 +2316,8 @@
1024
0
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
)
(load-level-text-files
@ -2405,8 +2405,8 @@
1024
0
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
(logclear! (-> *cpad-list* cpads 0 button0-abs 0) (pad-buttons x))
(logclear! (-> *cpad-list* cpads 0 button0-rel 0) (pad-buttons x))
@ -2439,8 +2439,8 @@
1024
0
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
(set! (-> obj selected-option) #f)
(case (-> s5-0 (-> obj option-index) option-type)
@ -2519,8 +2519,8 @@
1024
0
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
(set! (-> obj level-transition) 2)
)
@ -2536,8 +2536,8 @@
1024
0
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
(set! (-> obj level-transition) 1)
)
@ -2551,8 +2551,8 @@
1024
0
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
(set! (-> obj next-display-state) (progress-screen fuel-cell))
(set! (-> obj stat-transition) #t)
@ -2566,8 +2566,8 @@
1024
0
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
(set! (-> obj next-display-state) (progress-screen money))
(set! (-> obj stat-transition) #t)
@ -2581,8 +2581,8 @@
1024
0
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
(set! (-> obj next-display-state) (progress-screen buzzer))
(set! (-> obj stat-transition) #t)
@ -2597,8 +2597,8 @@
1024
0
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
(push! obj)
(set! (-> obj next-display-state) (progress-screen settings))
@ -2618,8 +2618,8 @@
1024
0
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
)
)
@ -2637,8 +2637,8 @@
1024
0
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
)
)
@ -3277,8 +3277,8 @@
1024
0
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
(set-blackout-frames 0)
(set! *pause-lock* #f)
@ -3311,8 +3311,8 @@
1024
0
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
(hide-progress-icons)
(set! (-> self particles 3 init-pos x) -320.0)

View File

@ -9,6 +9,7 @@
;; Each game string is assigned an ID number.
;; This ID is used to lookup the string for the currently selected language.
;; GAME-TEXT-ID ENUM BEGINS
(defenum game-text-id
:type uint32
:bitfield #f
@ -36,6 +37,8 @@
(spanish #x117)
(italian #x118)
(japanese #x119)
(press-to-warp #x11c)
(press-to-exit #x11d)
(aspect-ratio #x125)
(video-mode #x126)
(game-options #x127)
@ -144,8 +147,12 @@
(MISSING-orb-hint #x233)
(jungle-maindoor-hint #x23c)
(firecanyon-not-enough-cells #x24f)
(jungle-precursorbridge-hint #x25b)
(beach-gimmie #x262)
(beach-sentinel #x263)
(jungle-canyon-end #x264)
@ -157,6 +164,8 @@
(beach-seagulls-avalanche #x273)
(beach-flutflutegg-hint #x275)
(sidekick-hint-fish-powerup #x278)
(sidekick-speech-hint-crate-darkeco1 #x281)
@ -164,18 +173,23 @@
(sidekick-speech-crate-steel-break1 #x283)
(sidekick-speech-hint-crate-iron #x284)
(sidekick-speech-hint-crate-steel #x285)
(jungleb-eco-vents-opened #x289)
(sidekick-speech-crate-steel-break2 #x28e)
(sidekick-speech-hint-crate-darkeco2 #x28f)
(yakow-owed-powercell #x297)
(misty-teetertotter-bonk-dax-tutorial #x2a4)
(daxter-blue-eco-plat-tutorial #x2a7)
(misty-bone-bridge-hint #x2aa)
(fish? #x2a9)
(firecanyon-collect-cells-collected #x2b1)
(firecanyon-collect-cells-collected-reminder #x2b2)
(firecanyon-collect-cells-text #x2b3)
(caught #x2b4)
(missed #x2b5)
@ -221,15 +235,19 @@
(rolling-ring-chase-1 #x324)
(rolling-ring-chase-2 #x325)
(rolling-race-beat-record #x335)
(sidekick-speech-hint-rolling-crate-darkeco #x336)
(rolling-dark-plants-location-hint #x339)
(rolling-dark-plants-hint #x33a)
(rolling-ring-hint-one-ring-down #x33f)
(rolling-ring-hint-be-quick-to-next #x340)
(rolling-ring-hint-be-quick-all #x341)
(sunken-blue-eco-charger-hint #x345)
(sunken-qbert-hint #x34a)
(sunken-qbert-plat-hint #x34a)
(sunken-blue-eco-charger-all-hint #x34d)
@ -237,10 +255,19 @@
(swamp-bats-hint #x364) ;; maybe we can ???? the bats. lol
(flutflut-reminder #x368)
(village2-warp-gate-reminder #x36f)
(village2-warp-gate-reminder-annoyed #x370)
(village2-warp-gate-reminder-very-annoyed #x371)
(village2-not-enough-cells-levitator #x36c)
(villlage2-levitator-cell-req-text #x372)
(rolling-race-time-string-prefix #x373)
(rolling-race-record-string-prefix #x374)
(rolling-race-new-record-string-prefix #x375)
(rolling-race-try-again-string #x376)
(village3-miner-money #x400)
(village3-oracle-money #x401)
(snow-ram-3-left #x402)
@ -274,16 +301,25 @@
(cave-swing-poles #x426)
(assistant-lavatube-powercell-hint #x428)
(village3-gondola-malfunctioning #x429)
(village3-gondola-reactivated #x42a)
(snow-frozen-crate #x42b) ;; task name?
(snow-bumpers #x42c)
(darkcave-light-crystal-low-light-hint #x437)
(darkcave-light-crystal-hint #x438)
(cave-trap-nest-hint #x440)
(snow-fort-reminder #x443)
(ice-cube-hint #x448)
(village3-warp-gate-reminder #x452)
(village3-warp-gate-reminder=annoyed #x453)
(village3-warp-gate-reminder-very-annoyed #x454)
(lavatube-powercell-req-text #x455)
(fire-canyon-end #x500)
(fire-canyon-buzzer #x501)
@ -309,11 +345,26 @@
(citadel-sage-red #x803)
(citadel-sage-yellow #x804)
(citadel-sage-green #x805)
(citadel-break-generator-hint #x806)
(citadel-lurker-bunny-alert #x808)
(citadel-break-generators-reminder #x809)
(citadel-climb-plat-hint #x80c)
(misty-battle-finished #x813)
(training-precursor-orbs #x901)
(training-power-cells #x902)
(training-blue-eco-vent #x907)
(training-eco-green #x908)
(training-eco-blue #x909)
(training-precursor-door #x90b)
(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)
@ -323,7 +374,7 @@
(inc #xf10)
(europe #xf11)
)
;; GAME-TEXT-ID ENUM ENDS
;; an individual string.
(deftype game-text (structure)

View File

@ -19,6 +19,7 @@
(damp-period float :offset-assert 24) ;; set a negative value here to flag as die on next update
(ticks float :offset-assert 28)
)
:pack-me
:method-count-assert 15
:size-assert #x20
:flag-assert #xf00000020

View File

@ -54,6 +54,7 @@
((pause-after-out float :offset-assert 8)
(pause-after-in float :offset-assert 12)
)
:pack-me
:method-count-assert 18
:size-assert #x10
:flag-assert #x1200000010
@ -68,13 +69,14 @@
(start-time int64 :offset-assert 16)
(value float :offset-assert 24)
)
:pack-me
:method-count-assert 11
:size-assert #x1c
:flag-assert #xb0000001c
(:methods
(set-params! (_type_ int int float) float 9)
(update! (_type_) float 10)
)
(set-params! (_type_ int int float) float 9)
(update! (_type_ ) float 10)
)
)
(deftype oscillating-float (structure)

View File

@ -167,8 +167,8 @@ nav-enemy-default-event-handler
1024
0
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
)
(let ((a0-14 (-> self skel root-channel 0)))
@ -439,8 +439,8 @@ nav-enemy-default-event-handler
1024
0
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
(go-virtual nav-enemy-victory)
(none)

File diff suppressed because it is too large Load Diff

View File

@ -241,8 +241,8 @@
1024
0
0
(the-as uint 1)
gp-0
1
(the-as symbol gp-0)
)
)
(set! (-> self spin-angle) (* 10.0 (-> self spin-speed) (-> self interp)))
@ -289,8 +289,8 @@
1024
0
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
(let ((gp-1 (the int (* 300.0 (rand-vu-float-range 0.2 0.3)))))
(while (< (- (-> *display* base-frame-counter) (-> self state-time)) gp-1)

View File

@ -96,8 +96,8 @@
1024
0
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
(go-virtual basebutton-going-down)
)
@ -110,8 +110,8 @@
1024
0
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
(go-virtual basebutton-going-down)
)
@ -162,8 +162,8 @@
1024
0
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
(go-virtual basebutton-going-up)
)
@ -240,8 +240,8 @@
1024
0
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
(go-virtual basebutton-going-up)
)
@ -288,8 +288,8 @@
1024
0
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
(go-virtual basebutton-going-up)
)
@ -327,8 +327,8 @@
1024
0
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
(go-virtual basebutton-going-down)
)
@ -666,10 +666,10 @@
:size-assert #xc0
:flag-assert #x18005000c0
(:methods
(unknown-state00 () _type_ :state 20)
(dummy-21 () none 21)
(idle () _type_ :state 20)
(active () _type_ :state 21)
(use (int level) _type_ :state 22)
(dummy-23 () none 23)
(hidden () _type_ :state 23)
)
)
@ -686,7 +686,7 @@
(set! (-> self state-time) (-> *display* base-frame-counter))
(when (not arg1)
(process-release? *target*)
(go-virtual unknown-state00)
(go-virtual idle)
)
(let ((s4-0 (new 'stack-no-clear 'event-message-block)))
(set! (-> s4-0 from) self)

View File

@ -157,8 +157,8 @@
1024
0
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
)
)
@ -169,8 +169,8 @@
1024
0
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
)
)
@ -278,19 +278,11 @@ eco-door-event-handler
1024
0
0
(the-as uint 1)
(-> self root-override trans)
1
(the-as symbol (-> self root-override trans))
)
)
(sound-play-by-name
(-> self open-sound)
(new-sound-id)
1024
0
0
(the-as uint 1)
(the-as vector #t)
)
(sound-play-by-name (-> self open-sound) (new-sound-id) 1024 0 0 1 #t)
(dummy-48 (-> self root-override))
(until (ja-done? 0)
(let ((a0-9 (-> self skel root-channel 0)))
@ -382,15 +374,7 @@ eco-door-event-handler
(suspend)
)
)
(sound-play-by-name
(-> self close-sound)
(new-sound-id)
1024
0
0
(the-as uint 1)
(the-as vector #t)
)
(sound-play-by-name (-> self close-sound) (new-sound-id) 1024 0 0 1 #t)
(until (ja-done? 0)
(let ((a0-7 (-> self skel root-channel 0)))
(set! (-> a0-7 param 0) 0.0)
@ -410,8 +394,8 @@ eco-door-event-handler
1024
0
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
)
(go-virtual door-closed)

View File

@ -645,8 +645,8 @@ battlecontroller-default-event-handler
1024
-2286
0
(the-as uint 1)
(the-as vector #f)
1
#f
)
(battlecontroller-battle-end)
(battlecontroller-camera-off)

View File

@ -5,7 +5,8 @@
;; name in dgo: dark-eco-pool
;; dgos: GAME, COMMON, L1
;; definition of type dark-eco-pool
;; DECOMP BEGINS
(deftype dark-eco-pool (water-anim)
()
:heap-base #x70
@ -14,7 +15,7 @@
:flag-assert #x1e007000dc
)
;; definition for symbol ripple-for-misty-dark-eco-pool, type ripple-wave-set
(define
ripple-for-misty-dark-eco-pool
(new 'static 'ripple-wave-set
@ -31,7 +32,6 @@
)
)
;; definition for symbol ripple-for-maincave-dark-eco-pool, type ripple-wave-set
(define
ripple-for-maincave-dark-eco-pool
(new 'static 'ripple-wave-set
@ -48,7 +48,6 @@
)
)
;; definition for symbol ripple-for-finalboss-dark-eco-pool, type ripple-wave-set
(define
ripple-for-finalboss-dark-eco-pool
(new 'static 'ripple-wave-set
@ -65,7 +64,6 @@
)
)
;; definition for symbol ripple-for-dark-eco-pool, type ripple-wave-set
(define
ripple-for-dark-eco-pool
(new 'static 'ripple-wave-set
@ -82,7 +80,6 @@
)
)
;; definition for symbol ripple-for-sunken-dark-eco-helix-room, type ripple-wave-set
(define
ripple-for-sunken-dark-eco-helix-room
(new 'static 'ripple-wave-set
@ -99,7 +96,6 @@
)
)
;; definition for method 25 of type dark-eco-pool
(defmethod TODO-RENAME-25 dark-eco-pool ((obj dark-eco-pool))
(let ((t9-0 (method-of-type water-anim TODO-RENAME-25)))
(t9-0 obj)
@ -127,7 +123,6 @@
)
)
;; definition for method 22 of type dark-eco-pool
(defmethod TODO-RENAME-22 dark-eco-pool ((obj dark-eco-pool))
(local-vars (v0-3 ripple-wave-set))
(let ((t9-0 (method-of-type water-anim TODO-RENAME-22)))
@ -165,7 +160,6 @@
)
)
;; failed to figure out what this is:
(set!
(-> *part-group-id-table* 444)
(new 'static 'sparticle-launch-group
@ -182,7 +176,6 @@
)
)
;; failed to figure out what this is:
(set!
(-> *part-id-table* 2020)
(new 'static 'sparticle-launcher
@ -209,7 +202,6 @@
)
)
;; failed to figure out what this is:
(set!
(-> *part-id-table* 2021)
(new 'static 'sparticle-launcher
@ -224,7 +216,6 @@
)
)
;; failed to figure out what this is:
(set!
(-> *part-group-id-table* 445)
(new 'static 'sparticle-launch-group
@ -259,7 +250,6 @@
)
)
;; failed to figure out what this is:
(set!
(-> *part-id-table* 2056)
(new 'static 'sparticle-launcher
@ -282,7 +272,6 @@
)
)
;; failed to figure out what this is:
(set!
(-> *part-id-table* 2057)
(new 'static 'sparticle-launcher
@ -306,7 +295,6 @@
)
)
;; failed to figure out what this is:
(set!
(-> *part-id-table* 2052)
(new 'static 'sparticle-launcher
@ -337,7 +325,6 @@
)
)
;; failed to figure out what this is:
(set!
(-> *part-id-table* 2053)
(new 'static 'sparticle-launcher
@ -364,7 +351,6 @@
)
)
;; failed to figure out what this is:
(set!
(-> *part-id-table* 2058)
(new 'static 'sparticle-launcher
@ -388,7 +374,6 @@
)
)
;; failed to figure out what this is:
(set!
(-> *part-id-table* 2054)
(new 'static 'sparticle-launcher
@ -419,7 +404,6 @@
)
)
;; failed to figure out what this is:
(set!
(-> *part-id-table* 2055)
(new 'static 'sparticle-launcher
@ -446,7 +430,6 @@
)
)
;; failed to figure out what this is:
(defstate water-vol-idle (dark-eco-pool)
:virtual #t
:trans

View File

@ -350,8 +350,8 @@
1024
0
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
(let ((gp-1 (the-as sound-rpc-set-param (get-sound-buffer-entry))))
(set! (-> gp-1 command) (sound-command set-param))
@ -462,8 +462,8 @@
1024
0
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
(let ((gp-1 (the-as sound-rpc-set-param (get-sound-buffer-entry))))
(set! (-> gp-1 command) (sound-command set-param))
@ -512,8 +512,8 @@
1024
0
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
(while #t
(if

View File

@ -312,8 +312,8 @@
1024
0
0
(the-as uint 1)
(-> self root-override trans)
1
(the-as symbol (-> self root-override trans))
)
)
(plat-trans)

View File

@ -342,7 +342,7 @@
(cm-joint-z meters :offset-assert 88)
(idle-distance meters :offset-assert 92)
(platform symbol :offset-assert 96)
(sound-name symbol :offset-assert 100)
(sound-name string :offset-assert 100)
)
:method-count-assert 9
:size-assert #x68
@ -804,13 +804,13 @@
)
(if (-> self player-impulse)
(sound-play-by-name
(string->sound-name (the-as string (-> self info sound-name)))
(string->sound-name (-> self info sound-name))
(new-sound-id)
1024
0
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
)
(TODO-RENAME-28 self)

View File

@ -543,8 +543,8 @@ nav-enemy-default-event-handler
1024
0
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
(set! (-> self state-time) (-> *display* base-frame-counter))
(set! (-> gp-0 quad) (-> self collide-info trans quad))
@ -796,8 +796,8 @@ nav-enemy-default-event-handler
1024
0
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
(while #t
(let ((a0-3 (-> self skel root-channel 0)))
@ -887,8 +887,8 @@ nav-enemy-default-event-handler
1024
(the int (* 1524.0 f0-2))
0
(the-as uint 1)
(-> self collide-info trans)
1
(the-as symbol (-> self collide-info trans))
)
)
(none)

View File

@ -65,8 +65,8 @@
1024
0
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
)
)
@ -83,4 +83,4 @@
(- (-> *display* base-frame-counter) (-> obj starting-time))
(the-as int arg0)
)
)
)

View File

@ -5,11 +5,12 @@
;; name in dgo: water-anim
;; dgos: GAME, COMMON, L1, WATER-AN
;; definition of type water-anim
;; DECOMP BEGINS
(deftype water-anim (water-vol)
((ppointer-water-anim (pointer water-anim) :offset 24)
(look int32 :offset-assert 212)
(play-ambient-sound? basic :offset-assert 216)
(play-ambient-sound? symbol :offset-assert 216)
)
:heap-base #x70
:method-count-assert 30
@ -17,17 +18,7 @@
:flag-assert #x1e007000dc
)
;; definition for method 3 of type water-anim
(defmethod inspect water-anim ((obj water-anim))
(let ((t9-0 (method-of-type water-vol inspect)))
(t9-0 obj)
)
(format #t "~T~Tlook: ~D~%" (-> obj look))
(format #t "~T~Tplay-ambient-sound?: ~A~%" (-> obj play-ambient-sound?))
obj
)
;; failed to figure out what this is:
(let
((v1-1
(new 'static 'skeleton-group
@ -44,7 +35,6 @@
(set! *water-anim-sunken-dark-eco-qbert-sg* v1-1)
)
;; failed to figure out what this is:
(let
((v1-2
(new 'static 'skeleton-group
@ -61,7 +51,6 @@
(set! *water-anim-sunken-dark-eco-platform-room-sg* v1-2)
)
;; failed to figure out what this is:
(let
((v1-3
(new 'static 'skeleton-group
@ -78,7 +67,6 @@
(set! *water-anim-sunken-dark-eco-helix-room-sg* v1-3)
)
;; failed to figure out what this is:
(let
((v1-4
(new 'static 'skeleton-group
@ -96,7 +84,6 @@
(set! *water-anim-sunken-big-room-sg* v1-4)
)
;; failed to figure out what this is:
(let
((v1-5
(new 'static 'skeleton-group
@ -113,7 +100,6 @@
(set! *water-anim-sunken-first-room-from-entrance-sg* v1-5)
)
;; failed to figure out what this is:
(let
((v1-6
(new 'static 'skeleton-group
@ -130,7 +116,6 @@
(set! *water-anim-sunken-qbert-room-sg* v1-6)
)
;; failed to figure out what this is:
(let
((v1-7
(new 'static 'skeleton-group
@ -147,7 +132,6 @@
(set! *water-anim-sunken-first-right-branch-sg* v1-7)
)
;; failed to figure out what this is:
(let
((v1-8
(new 'static 'skeleton-group
@ -164,7 +148,6 @@
(set! *water-anim-sunken-circular-with-bullys-sg* v1-8)
)
;; failed to figure out what this is:
(let
((v1-9
(new 'static 'skeleton-group
@ -181,7 +164,6 @@
(set! *water-anim-sunken-hall-with-one-whirlpool-sg* v1-9)
)
;; failed to figure out what this is:
(let
((v1-10
(new 'static 'skeleton-group
@ -198,7 +180,6 @@
(set! *water-anim-sunken-hall-with-three-whirlpools-sg* v1-10)
)
;; failed to figure out what this is:
(let
((v1-11
(new 'static 'skeleton-group
@ -215,7 +196,6 @@
(set! *water-anim-sunken-start-of-helix-slide-sg* v1-11)
)
;; failed to figure out what this is:
(let
((v1-12
(new 'static 'skeleton-group
@ -232,7 +212,6 @@
(set! *water-anim-sunken-room-above-exit-chamber-sg* v1-12)
)
;; failed to figure out what this is:
(let
((v1-13
(new 'static 'skeleton-group
@ -250,7 +229,6 @@
(set! *water-anim-sunken-hall-before-big-room-sg* v1-13)
)
;; failed to figure out what this is:
(let
((v1-14
(new 'static 'skeleton-group
@ -267,7 +245,6 @@
(set! *water-anim-sunken-short-piece-sg* v1-14)
)
;; failed to figure out what this is:
(let
((v1-15
(new 'static 'skeleton-group
@ -284,7 +261,6 @@
(set! *water-anim-sunken-big-room-upper-water-sg* v1-15)
)
;; failed to figure out what this is:
(let
((v1-16
(new 'static 'skeleton-group
@ -301,7 +277,6 @@
(set! *water-anim-maincave-center-pool-sg* v1-16)
)
;; failed to figure out what this is:
(let
((v1-17
(new 'static 'skeleton-group
@ -319,7 +294,6 @@
(set! *water-anim-maincave-lower-right-pool-sg* v1-17)
)
;; failed to figure out what this is:
(let
((v1-18
(new 'static 'skeleton-group
@ -336,7 +310,6 @@
(set! *water-anim-maincave-mid-right-pool-sg* v1-18)
)
;; failed to figure out what this is:
(let
((v1-19
(new 'static 'skeleton-group
@ -354,7 +327,6 @@
(set! *water-anim-maincave-lower-left-pool-sg* v1-19)
)
;; failed to figure out what this is:
(let
((v1-20
(new 'static 'skeleton-group
@ -371,7 +343,6 @@
(set! *water-anim-maincave-mid-left-pool-sg* v1-20)
)
;; failed to figure out what this is:
(let
((v1-21
(new 'static 'skeleton-group
@ -389,7 +360,6 @@
(set! *water-anim-maincave-water-with-crystal-sg* v1-21)
)
;; failed to figure out what this is:
(let
((v1-22
(new 'static 'skeleton-group
@ -409,7 +379,6 @@
(set! *water-anim-robocave-main-pool-sg* v1-22)
)
;; failed to figure out what this is:
(let
((v1-23
(new 'static 'skeleton-group
@ -427,7 +396,6 @@
(set! *water-anim-misty-mud-by-arena-sg* v1-23)
)
;; failed to figure out what this is:
(let
((v1-24
(new 'static 'skeleton-group
@ -444,7 +412,6 @@
(set! *water-anim-misty-mud-above-skeleton-sg* v1-24)
)
;; failed to figure out what this is:
(let
((v1-25
(new 'static 'skeleton-group
@ -462,7 +429,6 @@
(set! *water-anim-misty-mud-behind-skeleton-sg* v1-25)
)
;; failed to figure out what this is:
(let
((v1-26
(new 'static 'skeleton-group
@ -479,7 +445,6 @@
(set! *water-anim-misty-mud-above-skull-back-sg* v1-26)
)
;; failed to figure out what this is:
(let
((v1-27
(new 'static 'skeleton-group
@ -496,7 +461,6 @@
(set! *water-anim-misty-mud-above-skull-front-sg* v1-27)
)
;; failed to figure out what this is:
(let
((v1-28
(new 'static 'skeleton-group
@ -513,7 +477,6 @@
(set! *water-anim-misty-mud-other-near-skull-sg* v1-28)
)
;; failed to figure out what this is:
(let
((v1-29
(new 'static 'skeleton-group
@ -530,7 +493,6 @@
(set! *water-anim-misty-mud-near-skull-sg* v1-29)
)
;; failed to figure out what this is:
(let
((v1-30
(new 'static 'skeleton-group
@ -547,7 +509,6 @@
(set! *water-anim-misty-mud-under-spine-sg* v1-30)
)
;; failed to figure out what this is:
(let
((v1-31
(new 'static 'skeleton-group
@ -564,7 +525,6 @@
(set! *water-anim-misty-mud-by-dock-sg* v1-31)
)
;; failed to figure out what this is:
(let
((v1-32
(new 'static 'skeleton-group
@ -582,7 +542,6 @@
(set! *water-anim-misty-mud-island-near-dock-sg* v1-32)
)
;; failed to figure out what this is:
(let
((v1-33
(new 'static 'skeleton-group
@ -599,7 +558,6 @@
(set! *water-anim-misty-mud-lonely-island-sg* v1-33)
)
;; failed to figure out what this is:
(let
((v1-34
(new 'static 'skeleton-group
@ -616,7 +574,6 @@
(set! *water-anim-misty-dark-eco-pool-sg* v1-34)
)
;; failed to figure out what this is:
(let
((v1-35
(new 'static 'skeleton-group
@ -633,7 +590,6 @@
(set! *water-anim-ogre-lava-sg* v1-35)
)
;; failed to figure out what this is:
(let
((v1-36
(new 'static 'skeleton-group
@ -653,7 +609,6 @@
(set! *water-anim-jungle-river-sg* v1-36)
)
;; failed to figure out what this is:
(let
((v1-37
(new 'static 'skeleton-group
@ -674,7 +629,6 @@
(set! *water-anim-village3-lava-sg* v1-37)
)
;; failed to figure out what this is:
(let
((v1-38
(new 'static 'skeleton-group
@ -692,7 +646,6 @@
(set! *water-anim-training-lake-sg* v1-38)
)
;; failed to figure out what this is:
(let
((v1-39
(new 'static 'skeleton-group
@ -709,7 +662,6 @@
(set! *water-anim-darkcave-water-with-crystal-sg* v1-39)
)
;; failed to figure out what this is:
(let
((v1-40
(new 'static 'skeleton-group
@ -727,7 +679,6 @@
(set! *water-anim-rolling-water-back-sg* v1-40)
)
;; failed to figure out what this is:
(let
((v1-41
(new 'static 'skeleton-group
@ -744,7 +695,6 @@
(set! *water-anim-rolling-water-front-sg* v1-41)
)
;; failed to figure out what this is:
(let
((v1-42
(new 'static 'skeleton-group
@ -761,7 +711,6 @@
(set! *water-anim-finalboss-dark-eco-pool-sg* v1-42)
)
;; failed to figure out what this is:
(let
((v1-43
(new 'static 'skeleton-group
@ -779,7 +728,6 @@
(set! *water-anim-lavatube-energy-lava-sg* v1-43)
)
;; failed to figure out what this is:
(let
((v1-44
(new 'static 'skeleton-group
@ -797,7 +745,6 @@
(set! *water-anim-village1-rice-paddy-sg* v1-44)
)
;; failed to figure out what this is:
(let
((v1-45
(new 'static 'skeleton-group
@ -814,7 +761,6 @@
(set! *water-anim-village1-fountain-sg* v1-45)
)
;; failed to figure out what this is:
(let
((v1-46
(new 'static 'skeleton-group
@ -831,7 +777,6 @@
(set! *water-anim-village1-rice-paddy-mid-sg* v1-46)
)
;; failed to figure out what this is:
(let
((v1-47
(new 'static 'skeleton-group
@ -849,7 +794,6 @@
(set! *water-anim-village1-rice-paddy-top-sg* v1-47)
)
;; failed to figure out what this is:
(let
((v1-48
(new 'static 'skeleton-group
@ -866,7 +810,6 @@
(set! *water-anim-village2-bucket-sg* v1-48)
)
;; definition of type water-anim-look
(deftype water-anim-look (structure)
((skel-group symbol :offset-assert 0)
(anim int32 :offset-assert 4)
@ -877,16 +820,7 @@
:flag-assert #x90000000c
)
;; definition for method 3 of type water-anim-look
(defmethod inspect water-anim-look ((obj water-anim-look))
(format #t "[~8x] ~A~%" obj 'water-anim-look)
(format #t "~Tskel-group: ~A~%" (-> obj skel-group))
(format #t "~Tanim: ~D~%" (-> obj anim))
(format #t "~Tambient-sound-spec: ~A~%" (-> obj ambient-sound-spec))
obj
)
;; definition for symbol *water-anim-look*, type (array water-anim-look)
(define
*water-anim-look*
(the-as (array water-anim-look)
@ -1371,7 +1305,6 @@
)
)
;; failed to figure out what this is:
(defstate water-vol-idle (water-anim)
:virtual #t
:event
@ -1423,20 +1356,14 @@
)
)
;; definition for method 28 of type water-anim
(defmethod get-ripple-height water-anim ((obj water-anim) (arg0 vector))
(ripple-find-height obj 0 arg0)
)
;; definition for method 24 of type water-anim
;; INFO: Return type mismatch symbol vs none.
(defmethod dummy-24 water-anim ()
(none)
)
;; definition for method 25 of type water-anim
;; INFO: Return type mismatch quaternion vs object.
;; Used lq/sq
(defmethod TODO-RENAME-25 water-anim ((obj water-anim))
(local-vars (sv-16 res-tag))
(set! (-> obj play-ambient-sound?) #t)
@ -1474,8 +1401,6 @@
)
)
;; definition for method 22 of type water-anim
;; INFO: Return type mismatch none vs ripple-wave-set.
(defmethod TODO-RENAME-22 water-anim ((obj water-anim))
(let ((s5-0 (-> obj look)))
(if (or (< s5-0 0) (>= s5-0 (-> *water-anim-look* length)))

View File

@ -5,33 +5,357 @@
;; name in dgo: darkcave-obs
;; dgos: DAR, L1
;; TODO - for cavecrystal-light
(define-extern *cavecrystal-sg* skeleton-group)
(declare-type cavecrystal process-drawable)
(define-extern cavecrystal-idle (state cavecrystal))
(define-extern cavecrystal-active (state cavecrystal))
;; DECOMP BEGINS
(deftype cavecrystal (process-drawable)
((root-override collide-shape :score 100 :offset 112)
(is-master? symbol :offset-assert 176)
(crystal-id int32 :offset-assert 180)
(glow-u float :offset-assert 184)
(glow-wf-period int32 :offset-assert 188)
(glow-wf-offset int32 :offset-assert 192)
(prev-compute-glow-time uint64 :offset-assert 200)
(start-fade-time uint64 :offset-assert 208)
(end-fade-time uint64 :offset-assert 216)
(activated-time uint64 :offset-assert 224)
(last-updated-user-lighting uint64 :offset-assert 232)
(player-attack-id uint64 :offset-assert 240)
(on-color-mult vector :inline :offset-assert 256)
(on-color-emissive vector :inline :offset-assert 272)
(off-color-mult vector :inline :offset-assert 288)
(off-color-emissive vector :inline :offset-assert 304)
((root-override collide-shape :offset 112)
(is-master? symbol :offset-assert 176)
(crystal-id int32 :offset-assert 180)
(glow-u float :offset-assert 184)
(glow-wf-period int32 :offset-assert 188)
(glow-wf-offset int32 :offset-assert 192)
(prev-compute-glow-time uint64 :offset-assert 200)
(start-fade-time uint64 :offset-assert 208)
(end-fade-time uint64 :offset-assert 216)
(activated-time uint64 :offset-assert 224)
(last-updated-user-lighting uint64 :offset-assert 232)
(player-attack-id uint64 :offset-assert 240)
(on-color-mult vector :inline :offset-assert 256)
(on-color-emissive vector :inline :offset-assert 272)
(off-color-mult vector :inline :offset-assert 288)
(off-color-emissive vector :inline :offset-assert 304)
)
:heap-base #xd0
:method-count-assert 22
:size-assert #x140
:heap-base #xd0
:flag-assert #x1600d00140
(:methods
(dummy-20 () none 20)
(dummy-21 () none 21)
(update-connected-crystals! (_type_) none 20)
(compute-glow (_type_) float 21)
)
)
;; decomp begins
(defskelgroup *cavecrystal-sg* cavecrystal
0
-1
((1 (meters 20)) (2 (meters 999999)))
:bounds (static-spherem 0 4.699999809265137 0 5.400000095367432)
:longest-edge (meters 0)
)
(defmethod update-connected-crystals! cavecrystal ((obj cavecrystal))
(when (-> obj is-master?)
(let ((v1-2 (-> *display* base-frame-counter)))
(when (!= (-> obj last-updated-user-lighting) v1-2)
(set! (-> obj last-updated-user-lighting) (the-as uint v1-2))
(execute-connections *cavecrystal-light-control*)
)
)
)
(none)
)
(defmethod compute-glow cavecrystal ((obj cavecrystal))
(set!
(-> obj prev-compute-glow-time)
(the-as uint (-> *display* game-frame-counter))
)
(let*
((gp-1
(max
1
(the-as
int
(+
(- 1 (the-as int (-> obj activated-time)))
(-> *display* game-frame-counter)
)
)
)
)
(f0-2
(/
(the
float
(mod
(+ (-> *display* base-frame-counter) (-> obj glow-wf-offset))
(-> obj glow-wf-period)
)
)
(the float (-> obj glow-wf-period))
)
)
(f30-1 (* 0.1 (cos (* 65536.0 f0-2))))
)
(cond
((>= 20 (the-as int gp-1))
(let ((v1-11 (* 0.05 (the float gp-1))))
(fmax 0.0 (fmin 2.0 (+ (* 2.0 v1-11) (* v1-11 f30-1))))
)
)
((>= 180 (the-as int gp-1))
(let ((a2-0 (* 0.00625 (the float (+ gp-1 -20)))))
(fmin 2.0 (+ (lerp 2.0 1.0 a2-0) f30-1))
)
)
((>= (the-as int (-> obj start-fade-time)) (the-as int gp-1))
(+ 1.0 f30-1)
)
(else
(let
((v1-20
(fmin 1.0 (* 0.004761905 (the float (- gp-1 (-> obj start-fade-time)))))
)
)
(fmax 0.0 (- (+ 1.0 (* (- 1.0 v1-20) f30-1)) v1-20))
)
)
)
)
)
(defstate cavecrystal-idle (cavecrystal)
:event
(behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
(case arg2
(('attack)
(go cavecrystal-active)
)
)
)
:trans
(behavior ()
(if
(and
*target*
(>=
40960.0
(vector-vector-distance
(-> self root-override trans)
(-> *target* control trans)
)
)
)
(level-hint-spawn
(game-text-id darkcave-light-crystal-hint)
"sksp0333"
(the-as entity #f)
*entity-pool*
(game-task none)
)
)
(update-connected-crystals! self)
(none)
)
:code
(behavior ()
(logior! (-> self mask) (process-mask sleep-code))
(suspend)
0
(none)
)
)
(defstate cavecrystal-active (cavecrystal)
:event
(behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
(let ((v1-0 arg2))
(the-as object (when (= v1-0 'attack)
(let ((v1-1 (-> arg3 param 2)))
(cond
((!= v1-1 (-> self player-attack-id))
(set! (-> self player-attack-id) v1-1)
(set!
(-> self activated-time)
(the-as uint (-> *display* game-frame-counter))
)
#t
)
(else
#f
)
)
)
)
)
)
)
:enter
(behavior ()
(logclear! (-> self mask) (process-mask actor-pause))
(set!
(-> self activated-time)
(the-as uint (-> *display* game-frame-counter))
)
(set!
(-> self prev-compute-glow-time)
(the-as uint (-> *display* game-frame-counter))
)
(none)
)
:exit
(behavior ()
(stop! (-> self sound))
(if (not (-> self is-master?))
(logior! (-> self mask) (process-mask actor-pause))
)
(none)
)
:trans
(behavior ()
(let ((f30-0 (compute-glow self)))
(set! (-> self glow-u) f30-0)
(let ((gp-0 (new 'stack-no-clear 'vector))
(f28-0 1.993)
)
(let ((s5-0 (-> self draw color-mult)))
(vector-! gp-0 (-> self on-color-mult) (-> self off-color-mult))
(vector+*! s5-0 (-> self off-color-mult) gp-0 f30-0)
(set! (-> s5-0 x) (fmax 0.0 (fmin (-> s5-0 x) f28-0)))
(set! (-> s5-0 y) (fmax 0.0 (fmin (-> s5-0 y) f28-0)))
(set! (-> s5-0 z) (fmax 0.0 (fmin (-> s5-0 z) f28-0)))
(set! (-> s5-0 w) 1.0)
)
(let ((s5-1 (-> self draw color-emissive)))
(vector-! gp-0 (-> self on-color-emissive) (-> self off-color-emissive))
(vector+*! s5-1 (-> self off-color-emissive) gp-0 f30-0)
(set! (-> s5-1 x) (fmax 0.0 (fmin (-> s5-1 x) f28-0)))
(set! (-> s5-1 y) (fmax 0.0 (fmin (-> s5-1 y) f28-0)))
(set! (-> s5-1 z) (fmax 0.0 (fmin (-> s5-1 z) f28-0)))
(set! (-> s5-1 w) 0.0)
)
)
(TODO-RENAME-9
*cavecrystal-light-control*
(-> self crystal-id)
(-> self glow-u)
self
)
(update-connected-crystals! self)
(when (>= 0.0 f30-0)
(level-hint-spawn
(game-text-id darkcave-light-crystal-low-light-hint)
"sksp0332"
(the-as entity #f)
*entity-pool*
(game-task none)
)
(go cavecrystal-idle)
)
)
(update! (-> self sound))
(none)
)
:code
(behavior ()
(logior! (-> self mask) (process-mask sleep-code))
(suspend)
0
(none)
)
)
(defmethod deactivate cavecrystal ((obj cavecrystal))
(if (nonzero? (-> obj sound))
(stop! (-> obj sound))
)
((method-of-type process-drawable deactivate) obj)
(none)
)
(defmethod copy-defaults! cavecrystal ((obj cavecrystal) (arg0 res-lump))
(set! (-> obj glow-u) 0.0)
(set! (-> obj player-attack-id) (the-as uint 0))
(set! (-> obj last-updated-user-lighting) (the-as uint 0))
(set-vector! (-> obj off-color-mult) 0.0 0.0 0.0 1.0)
(set-vector! (-> obj off-color-emissive) 0.0 0.0 0.0 0.0)
(set-vector! (-> obj on-color-mult) 1.0 1.0 1.0 1.0)
(set-vector! (-> obj on-color-emissive) 0.0 0.0 0.0 0.0)
(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 19251.2 0.0 22118.4)
)
(dummy-46 s4-0)
(set! (-> s4-0 nav-radius) 4915.2)
(dummy-50 s4-0)
(set! (-> obj root-override) s4-0)
)
(set! (-> obj link) (new 'process 'actor-link-info obj))
(set! (-> obj crystal-id) (actor-count-before (-> obj link)))
(set! (-> obj is-master?) (= (-> obj crystal-id) 3))
(set! (-> obj glow-wf-period) (rand-vu-int-range 225 375))
(set! (-> obj glow-wf-offset) (rand-vu-int-range 0 300))
(if (-> obj is-master?)
(logclear! (-> obj mask) (process-mask actor-pause))
)
(set!
(-> obj start-fade-time)
(the-as
uint
(the int (* 300.0 (res-lump-float (-> obj entity) 'timeout :default 8.0)))
)
)
(process-drawable-from-entity! obj arg0)
(initialize-skeleton obj *cavecrystal-sg* '())
(nav-mesh-connect obj (-> obj root-override) (the-as nav-control #f))
(set! (-> obj draw color-mult quad) (-> obj off-color-mult quad))
(set! (-> obj draw color-emissive quad) (-> obj off-color-emissive quad))
(ja-channel-push! 1 0)
(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 3))
num-func-identity
)
(set! (-> s5-1 frame-num) 0.0)
)
(ja-post)
(dummy-47 (-> obj root-override))
(TODO-RENAME-9 *cavecrystal-light-control* (-> obj crystal-id) 0.0 obj)
(set!
(-> obj sound)
(new
'process
'ambient-sound
(new 'static 'sound-spec
:mask #x80
:num 1.0
:group #x1
:sound-name (static-sound-name "crystal-on")
:volume #x400
:fo-max 80
)
(-> obj root-override trans)
)
)
(go cavecrystal-idle)
(none)
)

View File

@ -358,8 +358,8 @@
1024
0
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
(let ((gp-1 (new 'stack 'trajectory)))
(set! (-> self base y) (-> self jump-pos y))
@ -406,8 +406,8 @@
1024
3048
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
(let ((gp-3 (get-process *default-dead-pool* part-tracker #x4000)))
(when gp-3

View File

@ -662,8 +662,8 @@
1024
(the int (* 1524.0 (nav-enemy-rnd-float-range -0.5 0.5)))
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
)
(dummy-53 self)
@ -679,8 +679,8 @@
1024
(the int (* 1524.0 (nav-enemy-rnd-float-range -1.0 1.0)))
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
(cond
((zero? (nav-enemy-rnd-int-count 2))
@ -799,8 +799,8 @@
1024
(the int (* 1524.0 (nav-enemy-rnd-float-range -1.0 1.0)))
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
(let ((v1-4 (-> self draw shadow-ctrl)))
(let ((a0-4 v1-4))
@ -1082,8 +1082,8 @@
1024
0
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
(activate! *camera-smush-control* 409.6 37 150 1.0 0.99)
(let ((v1-14 (-> self draw shadow-ctrl)))

View File

@ -265,8 +265,8 @@
1024
0
0
(the-as uint 1)
(the-as vector #f)
1
#f
)
(activate! *camera-smush-control* 819.2 37 600 1.0 0.995)
(send-event (ppointer->process (-> self parent)) 'flash 255.0)
@ -427,8 +427,8 @@
1024
0
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
)
)
@ -459,8 +459,8 @@
1024
0
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
(let ((a0-2 (-> self skel root-channel 0)))
(set!
@ -1050,8 +1050,8 @@
1024
0
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
(set! (-> self draw status) (logand -3 (-> self draw status)))
(quaternion-identity! (-> self root quat))

View File

@ -1383,8 +1383,8 @@
1024
0
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
(none)
)
@ -2771,8 +2771,8 @@
1024
0
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
)
)
@ -3972,8 +3972,8 @@
1024
0
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
)
)
@ -5263,8 +5263,8 @@
1024
0
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
(set! (-> self blue-smoke) #t)
(let ((gp-1 (new 'stack-no-clear 'vector)))

View File

@ -5,3 +5,928 @@
;; name in dgo: firecanyon-obs
;; dgos: L1, FIC, OGR
(define-extern *balloon-sg* skeleton-group)
(define-extern *crate-darkeco-cluster-sg* skeleton-group)
(define-extern *spike-sg* skeleton-group)
(declare-type spike process-drawable)
(declare-type balloon process-drawable)
(define-extern spike-down (state spike)) ;; unknown type
(define-extern spike-idle (state spike)) ;; unknown type
(define-extern spike-up (state spike)) ;; unknown type
(define-extern balloon-idle (state balloon)) ;; unknown type
(define-extern balloon-popping (state balloon)) ;; unknown type
;; DECOMP BEGINS
(deftype balloon (process-drawable)
((root-override collide-shape :offset 112)
)
:heap-base #x40
:method-count-assert 20
:size-assert #xb0
:flag-assert #x14004000b0
)
(set!
(-> *part-group-id-table* 227)
(new 'static 'sparticle-launch-group
:length 3
:duration #x5
:linger-duration #x5dc
:name "group-balloon"
:launcher
(new 'static 'inline-array sparticle-group-item 3
(sp-item 1006)
(sp-item 1007)
(sp-item 1008)
)
:bounds (new 'static 'sphere :w 61440.0)
)
)
(set!
(-> *part-id-table* 1007)
(new 'static 'sparticle-launcher
:init-specs
(new 'static 'inline-array sp-field-init-spec 17
(sp-tex spt-texture (new 'static 'texture-id :page #x2))
(sp-flt spt-num 8.0)
(sp-rnd-flt spt-x (meters -1.0) (meters 2.0) 1.0)
(sp-rnd-flt spt-y (meters 1.0) (meters 2.0) 1.0)
(sp-rnd-flt spt-z -4096.0 8192.0 1.0)
(sp-rnd-flt spt-scale-x (meters 3.0) (meters 3.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 96.0)
(sp-flt spt-g 96.0)
(sp-flt spt-b 255.0)
(sp-rnd-flt spt-a 32.0 32.0 1.0)
(sp-rnd-flt spt-rotvel-z (degrees -1.2) (degrees 2.4) 1.0)
(sp-flt spt-fade-a -0.42666668)
(sp-int spt-timer 150)
(sp-cpuinfo-flags bit2 bit3)
(sp-end)
)
)
)
(set!
(-> *part-id-table* 1008)
(new 'static 'sparticle-launcher
:init-specs
(new 'static 'inline-array sp-field-init-spec 20
(sp-tex spt-texture (new 'static 'texture-id :page #x2))
(sp-flt spt-num 16.0)
(sp-flt spt-y (meters 2.0))
(sp-rnd-flt spt-scale-x (meters 0.5) (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 96.0)
(sp-flt spt-g 96.0)
(sp-flt spt-b 255.0)
(sp-rnd-flt spt-a 32.0 32.0 1.0)
(sp-rnd-flt spt-vel-y (meters 0.04) (meters 0.08) 1.0)
(sp-rnd-flt spt-rotvel-z (degrees -1.2) (degrees 2.4) 1.0)
(sp-flt spt-fade-a -0.85333335)
(sp-flt spt-friction 0.98)
(sp-int spt-timer 75)
(sp-cpuinfo-flags bit2 bit3)
(sp-rnd-flt spt-conerot-x (degrees 0.0) (degrees 180.0) 1.0)
(sp-rnd-flt spt-conerot-y (degrees 0.0) (degrees 360.0) 1.0)
(sp-flt spt-conerot-radius (meters 1.5))
(sp-end)
)
)
)
(set!
(-> *part-id-table* 1006)
(new 'static 'sparticle-launcher
:init-specs
(new 'static 'inline-array sp-field-init-spec 14
(sp-tex spt-texture (new 'static 'texture-id :index #x12 :page #x2))
(sp-flt spt-num 1.0)
(sp-flt spt-y (meters 2.0))
(sp-flt spt-scale-x (meters 12.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 100.0 28.0 1.0)
(sp-flt spt-g 100.0)
(sp-flt spt-b 80.0)
(sp-flt spt-a 96.0)
(sp-flt spt-fade-a -0.08)
(sp-int spt-timer 15)
(sp-cpuinfo-flags bit2 bit3)
(sp-end)
)
)
)
(defstate balloon-popping (balloon)
:code
(behavior ()
(ja-channel-set! 0)
(dummy-48 (-> self root-override))
(ja-post)
(sound-play-by-name
(static-sound-name "cool-balloon")
(new-sound-id)
1024
0
0
1
#t
)
(let ((gp-1 (get-process *default-dead-pool* part-tracker #x4000)))
(when gp-1
(let ((t9-6 (method-of-type part-tracker activate)))
(t9-6
(the-as part-tracker gp-1)
*entity-pool*
'part-tracker
(the-as pointer #x70004000)
)
)
(run-now-in-process
gp-1
part-tracker-init
(-> *part-group-id-table* 227)
-1
#f
#f
#f
(-> self root-override trans)
)
(-> gp-1 ppointer)
)
)
(suspend)
(dummy-18 self)
(deactivate self)
(none)
)
)
(defstate balloon-idle (balloon)
:event
(behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
(case arg2
(('attack)
(send-event arg0 'heat -10.0)
(go balloon-popping)
)
)
)
:code
(behavior ()
(transform-post)
(while #t
(let ((a0-0 (-> self skel root-channel 0)))
(set! (-> a0-0 frame-group) (if (> (-> self skel active-channels) 0)
(-> self skel root-channel 0 frame-group)
)
)
(set!
(-> a0-0 param 0)
(the float (+ (-> (if (> (-> self skel active-channels) 0)
(-> self skel root-channel 0 frame-group)
)
data
0
length
)
-1
)
)
)
(set! (-> a0-0 param 1) 1.0)
(set! (-> a0-0 frame-num) 0.0)
(joint-control-channel-group! a0-0 (if (> (-> self skel active-channels) 0)
(->
self
skel
root-channel
0
frame-group
)
)
num-func-seek!
)
)
(until (ja-done? 0)
(suspend)
(let ((a0-1 (-> self skel root-channel 0)))
(set!
(-> a0-1 param 0)
(the float (+ (-> a0-1 frame-group data 0 length) -1))
)
(set! (-> a0-1 param 1) 1.0)
(joint-control-channel-group-eval!
a0-1
(the-as art-joint-anim #f)
num-func-seek!
)
)
)
)
(none)
)
:post
(the-as (function none :behavior balloon) ja-post)
)
(defmethod copy-defaults! balloon ((obj balloon) (arg0 res-lump))
(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 256))
(set! (-> s3-0 collide-with) (the-as uint 16))
(set! (-> s3-0 prim-core offense) 4)
(set-vector! (-> s3-0 local-sphere) 0.0 8192.0 0.0 8192.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 *balloon-sg* '())
(set!
(-> obj part)
(create-launch-control (-> *part-group-id-table* 227) obj)
)
(go balloon-idle)
(none)
)
(deftype spike (process-drawable)
((root-override collide-shape :offset 112)
(num-alts int32 :offset-assert 176)
)
:heap-base #x50
:method-count-assert 20
:size-assert #xb4
:flag-assert #x14005000b4
)
(defskelgroup *spike-sg* spike
0
3
((1 (meters 20)) (2 (meters 999999)))
:bounds (static-spherem 0 8 0 10.199999809265137)
:longest-edge (meters 5)
)
(defstate spike-up (spike)
:event
(behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
(let ((v1-0 arg2))
(the-as object (if (= v1-0 'go-spike-up)
#t
)
)
)
)
:trans
(behavior ()
(when (nonzero? (-> self num-alts))
(let ((s5-0 (/ (-> self num-alts) 2))
(gp-0 #t)
)
(while (< s5-0 (+ (-> self num-alts) -1))
(let ((v1-2 (entity-actor-lookup (-> self entity) 'alt-actor s5-0)))
(if
(and
v1-2
(-> v1-2 extra process)
(let ((a1-1 (new 'stack-no-clear 'event-message-block)))
(set! (-> a1-1 from) self)
(set! (-> a1-1 num-params) 0)
(set! (-> a1-1 message) 'go-spike-up)
(not (send-event-function (if v1-2
(-> v1-2 extra process)
)
a1-1
)
)
)
)
(set! gp-0 #f)
)
)
(+! s5-0 1)
)
(when gp-0
(set! (-> self num-alts) 0)
0
)
)
)
(none)
)
:code
(behavior ()
(let ((a0-0 (-> self skel root-channel 0)))
(set! (-> a0-0 frame-group) (if (> (-> self skel active-channels) 0)
(-> self skel root-channel 0 frame-group)
)
)
(set!
(-> a0-0 param 0)
(the float (+ (-> (if (> (-> self skel active-channels) 0)
(-> self skel root-channel 0 frame-group)
)
data
0
length
)
-1
)
)
)
(set! (-> a0-0 param 1) 1.0)
(set! (-> a0-0 frame-num) 0.0)
(joint-control-channel-group! a0-0 (if (> (-> self skel active-channels) 0)
(->
self
skel
root-channel
0
frame-group
)
)
num-func-seek!
)
)
(until (ja-done? 0)
(transform-post)
(suspend)
(let ((a0-1 (-> self skel root-channel 0)))
(set!
(-> a0-1 param 0)
(the float (+ (-> a0-1 frame-group data 0 length) -1))
)
(set! (-> a0-1 param 1) 1.0)
(joint-control-channel-group-eval!
a0-1
(the-as art-joint-anim #f)
num-func-seek!
)
)
)
(while #t
(suspend)
)
(none)
)
)
(defstate spike-down (spike)
:event
(behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
(let ((v1-0 arg2))
(the-as object (when (= v1-0 'go-spike-up)
(go spike-up)
#t
)
)
)
)
:trans
(behavior ()
(when (nonzero? (-> self num-alts))
(let ((s5-0 0)
(gp-0 #t)
)
(while (< s5-0 (/ (-> self num-alts) 2))
(let ((v1-1 (entity-actor-lookup (-> self entity) 'alt-actor s5-0)))
(if
(and
v1-1
(-> v1-1 extra process)
(let ((a1-1 (new 'stack-no-clear 'event-message-block)))
(set! (-> a1-1 from) self)
(set! (-> a1-1 num-params) 0)
(set! (-> a1-1 message) 'go-spike-up)
(not (send-event-function (if v1-1
(-> v1-1 extra process)
)
a1-1
)
)
)
)
(set! gp-0 #f)
)
)
(+! s5-0 1)
)
(when gp-0
(set! (-> self num-alts) 0)
0
)
)
)
(none)
)
:code
(behavior ()
(transform-post)
(while #t
(suspend)
)
(none)
)
)
(defstate spike-idle (spike)
:trans
(behavior ()
(when (and *target* (let ((a1-0 (new 'stack-no-clear 'event-message-block)))
(set! (-> a1-0 from) self)
(set! (-> a1-0 num-params) 1)
(set! (-> a1-0 message) 'query)
(set! (-> a1-0 param 0) (the-as uint 'mode))
(= (send-event-function *target* a1-0) 'racer)
)
(<
(vector-vector-distance (-> self root-override trans) (target-pos 0))
225280.0
)
)
(sound-play-by-name
(static-sound-name "magma-rock")
(new-sound-id)
1024
0
0
1
#t
)
(let ((v1-8 (entity-actor-count (-> self entity) 'alt-actor)))
0
(cond
((>= 1 v1-8)
(go spike-up)
)
((let* ((v1-11 (/ (the-as int (rand-uint31-gen *random-generator*)) 256))
(v1-12 (the-as number (logior #x3f800000 v1-11)))
)
(< (+ -1.0 (the-as float v1-12)) 0.5)
)
(go spike-down)
)
(else
(go spike-up)
)
)
)
)
(none)
)
:code
(behavior ()
(transform-post)
(while #t
(suspend)
)
(none)
)
)
(defmethod copy-defaults! spike ((obj spike) (arg0 res-lump))
(let
((s4-0 (new 'process 'collide-shape obj (collide-list-enum hit-by-player))))
(let ((s3-0 (new 'process 'collide-shape-prim-group s4-0 (the-as uint 4) 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! (-> s3-0 prim-core offense) 4)
(set! (-> s3-0 transform-index) 3)
(set-vector! (-> s3-0 local-sphere) 0.0 24576.0 0.0 40960.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 8192.0 0.0 16384.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) 3)
(set-vector! (-> s2-1 local-sphere) 0.0 20480.0 0.0 16384.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) 3)
(set-vector! (-> s2-2 local-sphere) 0.0 32768.0 0.0 16384.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) 3)
(set-vector! (-> s2-3 local-sphere) 0.0 45056.0 0.0 16384.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 *spike-sg* '())
(set! (-> obj draw origin-joint-index) (the-as uint 3))
(set! (-> obj num-alts) (entity-actor-count (-> obj entity) 'alt-actor))
(if (zero? (-> obj num-alts))
(go spike-down)
(go spike-idle)
)
(none)
)
(defskelgroup *crate-darkeco-cluster-sg* crate-darkeco-cluster
0
3
((1 (meters 20)) (2 (meters 999999)))
:bounds (static-spherem 0 1.600000023841858 0 3.299999952316284)
:longest-edge (meters 0)
)
(deftype crate-darkeco-cluster (process-drawable)
((root-override collide-shape :offset 112)
)
:heap-base #x40
:method-count-assert 22
:size-assert #xb0
:flag-assert #x16004000b0
(:methods
(idle () _type_ :state 20)
(die () _type_ :state 21)
)
)
(set!
(-> *part-group-id-table* 228)
(new 'static 'sparticle-launch-group
:length 69
:duration #x258
:linger-duration #x5dc
:flags (sp-group-flag use-local-clock)
:name "group-dark-cluster-explosion"
:launcher
(new 'static 'inline-array sparticle-group-item 69
(sp-item 2100 :period 600 :length 5)
(sp-item 2101 :period 600 :length 40)
(sp-item 2102 :period 600 :length 20)
(sp-item 2103 :period 600 :length 20)
(sp-item 2104 :fade-after (meters 100.0) :period 600 :length 5 :binding 296)
(sp-item 296 :flags (start-dead launch-asap) :binding 297)
(sp-item 297 :fade-after (meters 80.0) :falloff-to (meters 100.0) :flags (start-dead))
(sp-item 296 :flags (start-dead launch-asap) :binding 297)
(sp-item 297 :fade-after (meters 80.0) :falloff-to (meters 100.0) :flags (start-dead))
(sp-item 296 :flags (start-dead launch-asap) :binding 297)
(sp-item 297 :fade-after (meters 80.0) :falloff-to (meters 100.0) :flags (start-dead))
(sp-item 296 :flags (start-dead launch-asap) :binding 297)
(sp-item 297 :fade-after (meters 80.0) :falloff-to (meters 100.0) :flags (start-dead))
(sp-item 296 :flags (start-dead launch-asap) :binding 297)
(sp-item 297 :fade-after (meters 80.0) :falloff-to (meters 100.0) :flags (start-dead))
(sp-item 296 :flags (start-dead launch-asap) :binding 297)
(sp-item 297 :fade-after (meters 80.0) :falloff-to (meters 100.0) :flags (start-dead))
(sp-item 296 :flags (start-dead launch-asap) :binding 297)
(sp-item 297 :fade-after (meters 80.0) :falloff-to (meters 100.0) :flags (start-dead))
(sp-item 296 :flags (start-dead launch-asap) :binding 297)
(sp-item 297 :fade-after (meters 80.0) :falloff-to (meters 100.0) :flags (start-dead))
(sp-item 296 :flags (start-dead launch-asap) :binding 297)
(sp-item 297 :fade-after (meters 80.0) :falloff-to (meters 100.0) :flags (start-dead))
(sp-item 296 :flags (start-dead launch-asap) :binding 297)
(sp-item 297 :fade-after (meters 80.0) :falloff-to (meters 100.0) :flags (start-dead))
(sp-item 296 :flags (start-dead launch-asap) :binding 297)
(sp-item 297 :fade-after (meters 80.0) :falloff-to (meters 100.0) :flags (start-dead))
(sp-item 296 :flags (start-dead launch-asap) :binding 297)
(sp-item 297 :fade-after (meters 80.0) :falloff-to (meters 100.0) :flags (start-dead))
(sp-item 296 :flags (start-dead launch-asap) :binding 297)
(sp-item 297 :fade-after (meters 80.0) :falloff-to (meters 100.0) :flags (start-dead))
(sp-item 296 :flags (start-dead launch-asap) :binding 297)
(sp-item 297 :fade-after (meters 80.0) :falloff-to (meters 100.0) :flags (start-dead))
(sp-item 296 :flags (start-dead launch-asap) :binding 297)
(sp-item 297 :fade-after (meters 80.0) :falloff-to (meters 100.0) :flags (start-dead))
(sp-item 296 :flags (start-dead launch-asap) :binding 297)
(sp-item 297 :fade-after (meters 80.0) :falloff-to (meters 100.0) :flags (start-dead))
(sp-item 296 :flags (start-dead launch-asap) :binding 297)
(sp-item 297 :fade-after (meters 80.0) :falloff-to (meters 100.0) :flags (start-dead))
(sp-item 296 :flags (start-dead launch-asap) :binding 297)
(sp-item 297 :fade-after (meters 80.0) :falloff-to (meters 100.0) :flags (start-dead))
(sp-item 296 :flags (start-dead launch-asap) :binding 297)
(sp-item 297 :fade-after (meters 80.0) :falloff-to (meters 100.0) :flags (start-dead))
(sp-item 296 :flags (start-dead launch-asap) :binding 297)
(sp-item 297 :fade-after (meters 80.0) :falloff-to (meters 100.0) :flags (start-dead))
(sp-item 296 :flags (start-dead launch-asap) :binding 297)
(sp-item 297 :fade-after (meters 80.0) :falloff-to (meters 100.0) :flags (start-dead))
(sp-item 296 :flags (start-dead launch-asap) :binding 297)
(sp-item 297 :fade-after (meters 80.0) :falloff-to (meters 100.0) :flags (start-dead))
(sp-item 296 :flags (start-dead launch-asap) :binding 297)
(sp-item 297 :fade-after (meters 80.0) :falloff-to (meters 100.0) :flags (start-dead))
(sp-item 296 :flags (start-dead launch-asap) :binding 297)
(sp-item 297 :fade-after (meters 80.0) :falloff-to (meters 100.0) :flags (start-dead))
(sp-item 296 :flags (start-dead launch-asap) :binding 297)
(sp-item 297 :fade-after (meters 80.0) :falloff-to (meters 100.0) :flags (start-dead))
(sp-item 296 :flags (start-dead launch-asap) :binding 297)
(sp-item 297 :fade-after (meters 80.0) :falloff-to (meters 100.0) :flags (start-dead))
(sp-item 296 :flags (start-dead launch-asap) :binding 297)
(sp-item 297 :fade-after (meters 80.0) :falloff-to (meters 100.0) :flags (start-dead))
(sp-item 296 :flags (start-dead launch-asap) :binding 297)
(sp-item 297 :fade-after (meters 80.0) :falloff-to (meters 100.0) :flags (start-dead))
(sp-item 296 :flags (start-dead launch-asap) :binding 297)
(sp-item 297 :fade-after (meters 80.0) :falloff-to (meters 100.0) :flags (start-dead))
(sp-item 296 :flags (start-dead launch-asap) :binding 297)
(sp-item 297 :fade-after (meters 80.0) :falloff-to (meters 100.0) :flags (start-dead))
(sp-item 296 :flags (start-dead launch-asap) :binding 297)
(sp-item 297 :fade-after (meters 80.0) :falloff-to (meters 100.0) :flags (start-dead))
(sp-item 296 :flags (start-dead launch-asap) :binding 297)
(sp-item 297 :fade-after (meters 80.0) :falloff-to (meters 100.0) :flags (start-dead))
)
:bounds (new 'static 'sphere :w 49152.0)
)
)
(set!
(-> *part-id-table* 2104)
(new 'static 'sparticle-launcher
:init-specs
(new 'static 'inline-array sp-field-init-spec 16
(sp-tex spt-texture (new 'static 'texture-id :index #x12 :page #x2))
(sp-flt spt-num 32.0)
(sp-rnd-flt spt-x (meters -2.0) (meters 4.0) 1.0)
(sp-rnd-flt spt-y (meters 1.0) (meters 2.0) 1.0)
(sp-rnd-flt spt-z -8192.0 16384.0 1.0)
(sp-flt spt-scale-x (meters 0.1))
(sp-copy-from-other spt-scale-y -4)
(sp-flt spt-a 0.0)
(sp-rnd-flt spt-vel-y (meters 0.053333335) (meters 0.026666667) 1.0)
(sp-flt spt-accel-y -1.3653333)
(sp-flt spt-friction 0.94)
(sp-int spt-timer 240)
(sp-cpuinfo-flags bit3)
(sp-rnd-flt spt-conerot-x (degrees 0.0) (degrees 140.0) 1.0)
(sp-rnd-flt spt-conerot-y (degrees 0.0) (degrees 360.0) 1.0)
(sp-end)
)
)
)
(set!
(-> *part-id-table* 2101)
(new 'static 'sparticle-launcher
:init-specs
(new 'static 'inline-array sp-field-init-spec 22
(sp-tex spt-texture (new 'static 'texture-id :index #xf :page #x2))
(sp-flt spt-num 12.0)
(sp-rnd-flt spt-y (meters 1.0) (meters 3.0) 1.0)
(sp-rnd-flt spt-scale-x (meters 0.4) (meters 0.8) 1.0)
(sp-copy-from-other spt-scale-y -4)
(sp-rnd-flt spt-r 128.0 128.0 1.0)
(sp-rnd-flt spt-g 0.0 32.0 1.0)
(sp-rnd-flt spt-b 128.0 128.0 1.0)
(sp-rnd-flt spt-a 32.0 96.0 1.0)
(sp-rnd-flt spt-vel-y (meters 0.04) (meters 0.16) 1.0)
(sp-flt spt-scalevel-x (meters -0.0026666666))
(sp-copy-from-other spt-scalevel-y -4)
(sp-rnd-flt spt-accel-y -0.68266666 -0.68266666 1.0)
(sp-flt spt-friction 0.9)
(sp-int spt-timer 300)
(sp-cpuinfo-flags bit2 bit14)
(sp-int-plain-rnd spt-next-time 30 89 1)
(sp-launcher-by-id spt-next-launcher 2105)
(sp-rnd-flt spt-conerot-x (degrees 0.0) (degrees 120.0) 1.0)
(sp-rnd-flt spt-conerot-y (degrees 0.0) (degrees 360.0) 1.0)
(sp-rnd-flt spt-conerot-radius (meters 2.0) (meters 4.0) 1.0)
(sp-end)
)
)
)
(set!
(-> *part-id-table* 2105)
(new 'static 'sparticle-launcher
:init-specs
(new 'static 'inline-array sp-field-init-spec 2
(sp-flt spt-fade-a -1.0666667)
(sp-end)
)
)
)
(set!
(-> *part-id-table* 2103)
(new 'static 'sparticle-launcher
:init-specs
(new 'static 'inline-array sp-field-init-spec 15
(sp-tex spt-texture (new 'static 'texture-id :index #xf :page #x2))
(sp-flt spt-num 12.0)
(sp-rnd-flt spt-y (meters 1.0) (meters 3.0) 1.0)
(sp-flt spt-scale-x (meters 0.3))
(sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 180.0) 1.0)
(sp-flt spt-scale-y (meters 12.0))
(sp-rnd-flt spt-r 128.0 128.0 1.0)
(sp-rnd-flt spt-g 0.0 32.0 1.0)
(sp-rnd-flt spt-b 128.0 64.0 1.0)
(sp-rnd-flt spt-a 32.0 64.0 1.0)
(sp-flt spt-scalevel-y (meters 1.04))
(sp-flt spt-fade-a -1.6)
(sp-int spt-timer 60)
(sp-cpuinfo-flags bit2 bit3 bit14)
(sp-end)
)
)
)
(set!
(-> *part-id-table* 2100)
(new 'static 'sparticle-launcher
:init-specs
(new 'static 'inline-array sp-field-init-spec 13
(sp-tex spt-texture (new 'static 'texture-id :index #x12 :page #x2))
(sp-flt spt-num 1.0)
(sp-flt spt-y (meters 2.0))
(sp-flt spt-scale-x (meters 24.0))
(sp-copy-from-other spt-scale-y -4)
(sp-rnd-flt spt-r 192.0 64.0 1.0)
(sp-rnd-flt spt-g 0.0 32.0 1.0)
(sp-rnd-flt spt-b 128.0 128.0 1.0)
(sp-flt spt-a 128.0)
(sp-flt spt-fade-a -2.3272727)
(sp-int spt-timer 54)
(sp-cpuinfo-flags bit2 bit3 bit14)
(sp-end)
)
)
)
(set!
(-> *part-id-table* 2102)
(new 'static 'sparticle-launcher
:init-specs
(new 'static 'inline-array sp-field-init-spec 23
(sp-tex spt-texture (new 'static 'texture-id :page #x2))
(sp-flt spt-num 16.0)
(sp-rnd-flt spt-y (meters 1.0) (meters 3.0) 1.0)
(sp-rnd-flt spt-scale-x (meters 3.0) (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-rnd-flt spt-r 0.0 96.0 1.0)
(sp-rnd-flt spt-g 0.0 32.0 1.0)
(sp-rnd-flt spt-b 64.0 32.0 1.0)
(sp-rnd-flt spt-a 64.0 64.0 1.0)
(sp-rnd-flt spt-vel-y (meters 0.08) (meters 0.04) 1.0)
(sp-flt spt-scalevel-x (meters 0.02))
(sp-rnd-flt spt-rotvel-z (degrees -0.6) (degrees 1.2) 1.0)
(sp-copy-from-other spt-scalevel-y -4)
(sp-flt spt-fade-a -0.28444445)
(sp-rnd-flt spt-accel-y 0.68266666 0.68266666 1.0)
(sp-flt spt-friction 0.8)
(sp-int spt-timer 510)
(sp-cpuinfo-flags bit2 bit14)
(sp-rnd-flt spt-conerot-x (degrees 0.0) (degrees 120.0) 1.0)
(sp-rnd-flt spt-conerot-y (degrees 0.0) (degrees 360.0) 1.0)
(sp-rnd-flt spt-conerot-radius (meters 0.0) (meters 4.0) 1.0)
(sp-end)
)
)
)
(defstate die (crate-darkeco-cluster)
:virtual #t
:code
(behavior ()
(ja-channel-set! 0)
(dummy-48 (-> self root-override))
(ja-post)
(sound-play-by-name
(static-sound-name "dcrate-break")
(new-sound-id)
1024
0
0
1
#t
)
(let ((gp-1 (get-process *default-dead-pool* part-tracker #x4000)))
(when gp-1
(let ((t9-6 (method-of-type part-tracker activate)))
(t9-6
(the-as part-tracker gp-1)
*entity-pool*
'part-tracker
(the-as pointer #x70004000)
)
)
(run-now-in-process
gp-1
part-tracker-init
(-> *part-group-id-table* 228)
-1
#f
#f
#f
(-> self root-override trans)
)
(-> gp-1 ppointer)
)
)
(suspend)
(dummy-18 self)
(deactivate self)
(none)
)
)
(defstate idle (crate-darkeco-cluster)
:virtual #t
:event
(behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
(case arg2
(('attack 'touch)
(let ((a1-3 (new 'stack-no-clear 'event-message-block)))
(set! (-> a1-3 from) self)
(set! (-> a1-3 num-params) 2)
(set! (-> a1-3 message) 'attack)
(set! (-> a1-3 param 0) (-> arg3 param 0))
(let ((a2-2 (new 'static 'attack-info :mask #x20)))
(set! (-> a2-2 mode) 'darkeco)
(set! (-> a1-3 param 1) (the-as uint a2-2))
)
(send-event-function arg0 a1-3)
)
(go-virtual die)
)
)
)
:code
(behavior ()
(transform-post)
(logior! (-> self mask) (process-mask sleep))
(suspend)
0
(none)
)
)
(defmethod
copy-defaults!
crate-darkeco-cluster
((obj crate-darkeco-cluster) (arg0 res-lump))
(let
((s4-0
(new 'process 'collide-shape obj (collide-list-enum usually-hit-by-player))
)
)
(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 128))
(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) 1)
(set! (-> s3-0 transform-index) 3)
(set-vector! (-> s3-0 local-sphere) 0.0 6553.6 0.0 13516.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 *crate-darkeco-cluster-sg* '())
(go (method-of-object obj idle))
(none)
)

View File

@ -52,8 +52,8 @@
1024
0
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
(go bouncer-fire)
)

View File

@ -1084,8 +1084,8 @@
1024
0
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
(ambient-hint-spawn
"sksp0a42"
@ -1125,8 +1125,8 @@
1024
0
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
(send-event (ppointer->process (-> self parent)) 'fisher-fish-caught 5)
)
@ -1160,8 +1160,8 @@
1024
0
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
(send-event (ppointer->process (-> self parent)) 'fisher-fish-caught 1)
)
@ -2054,8 +2054,8 @@
716
0
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
(fisher-spawn-ambient)
(let ((s5-1 (get-process *default-dead-pool* fisher-fish #x4000)))
@ -2125,8 +2125,8 @@
1024
0
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
(set! v0-2 (+ (-> self missed) (-> arg3 param 0)))
(set! (-> self missed) (the-as int v0-2))

File diff suppressed because it is too large Load Diff

View File

@ -84,8 +84,8 @@
1024
0
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
(let ((a0-3 (-> self skel root-channel 0)))
(set!
@ -166,8 +166,8 @@
1024
0
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
(let ((a0-17 (-> self skel root-channel 0)))
(set!

View File

@ -5,3 +5,735 @@
;; name in dgo: jungleb-obs
;; dgos: JUB, L1
(define-extern *jng-iris-door-sg* skeleton-group)
(define-extern *eggtop-sg* skeleton-group)
(declare-type eggtop process-drawable)
(define-extern eggtop-close (state symbol eggtop))
(define-extern eggtop-idle (state eggtop))
;; DECOMP BEGINS
(deftype eggtop (process-drawable)
((root-override collide-shape-moving :offset 112)
(cam-tracker uint64 :offset-assert 176)
(sound-id sound-id :offset-assert 184)
)
:heap-base #x50
:method-count-assert 20
:size-assert #xbc
:flag-assert #x14005000bc
)
(defskelgroup *eggtop-sg* eggtop
0
2
((1 (meters 999999)))
:bounds (static-spherem 0 -4.5 0 4.5)
:longest-edge (meters 0)
)
(set!
(-> *part-group-id-table* 189)
(new 'static 'sparticle-launch-group
:length 5
:duration #xbb8
:linger-duration #x5dc
:name "group-jungle-blue-eco-room-open"
:launcher
(new 'static 'inline-array sparticle-group-item 5
(sp-item 899 :fade-after (meters 110.0))
(sp-item 900 :fade-after (meters 110.0))
(sp-item 901 :fade-after (meters 110.0))
(sp-item 902 :fade-after (meters 110.0))
(sp-item 903 :fade-after (meters 110.0))
)
:bounds
(new 'static 'sphere :y -24576.0 :w 32768.0)
)
)
(set!
(-> *part-group-id-table* 190)
(new 'static 'sparticle-launch-group
:length 3
:duration #x384
:linger-duration #x5dc
:name "group-jungle-blue-eco-room-activate"
:launcher
(new 'static 'inline-array sparticle-group-item 3
(sp-item 903)
(sp-item 903)
(sp-item 904 :flags (bit1) :period 1200 :length 15)
)
:bounds
(new 'static 'sphere :y -24576.0 :w 32768.0)
)
)
(set!
(-> *part-id-table* 904)
(new 'static 'sparticle-launcher
:init-specs
(new 'static 'inline-array sp-field-init-spec 18
(sp-tex spt-texture (new 'static 'texture-id :index #x2 :page #x2))
(sp-flt spt-num 30.0)
(sp-flt spt-y (meters -4.0))
(sp-rnd-flt spt-scale-x (meters 20.0) (meters 10.0) 1.0)
(sp-int spt-rot-x 4)
(sp-rnd-flt spt-rot-z (degrees 0.0) (degrees 360.0) 1.0)
(sp-rnd-flt spt-scale-y (meters 5.0) (meters 2.0) 1.0)
(sp-rnd-flt spt-r 0.0 16.0 1.0)
(sp-rnd-flt spt-g 16.0 32.0 1.0)
(sp-flt spt-b 127.0)
(sp-flt spt-a 0.0)
(sp-rnd-flt spt-rotvel-z (degrees -0.05) (degrees 0.1) 1.0)
(sp-flt spt-fade-a 0.85333335)
(sp-int spt-timer 600)
(sp-cpuinfo-flags bit2 bit3 left-multiply-quat)
(sp-int spt-next-time 75)
(sp-launcher-by-id spt-next-launcher 905)
(sp-end)
)
)
)
(set!
(-> *part-id-table* 905)
(new 'static 'sparticle-launcher
:init-specs
(new 'static 'inline-array sp-field-init-spec 4
(sp-flt spt-fade-a 0.0)
(sp-int spt-next-time 225)
(sp-launcher-by-id spt-next-launcher 906)
(sp-end)
)
)
)
(set!
(-> *part-id-table* 906)
(new 'static 'sparticle-launcher
:init-specs
(new 'static 'inline-array sp-field-init-spec 2
(sp-flt spt-fade-a -0.14222223)
(sp-end)
)
)
)
(set!
(-> *part-id-table* 899)
(new 'static 'sparticle-launcher
:init-specs
(new 'static 'inline-array sp-field-init-spec 12
(sp-tex spt-texture (new 'static 'texture-id :index #xf :page #x2))
(sp-flt spt-num 1.0)
(sp-flt spt-y (meters -4.0))
(sp-rnd-flt spt-scale-x (meters 10.0) (meters 2.0) 1.0)
(sp-rnd-flt spt-scale-y (meters 8.0) (meters 2.0) 1.0)
(sp-rnd-flt spt-r 0.0 64.0 1.0)
(sp-rnd-flt spt-g 0.0 64.0 1.0)
(sp-flt spt-b 255.0)
(sp-rnd-flt spt-a 128.0 128.0 1.0)
(sp-int spt-timer 5)
(sp-cpuinfo-flags bit2 bit3)
(sp-end)
)
)
)
(set!
(-> *part-id-table* 900)
(new 'static 'sparticle-launcher
:init-specs
(new 'static 'inline-array sp-field-init-spec 12
(sp-tex spt-texture (new 'static 'texture-id :index #xf :page #x2))
(sp-flt spt-num 1.0)
(sp-flt spt-y (meters -4.0))
(sp-rnd-flt spt-scale-x (meters 3.0) (meters 2.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 128.0 128.0 1.0)
(sp-int spt-timer 5)
(sp-cpuinfo-flags bit2 bit3)
(sp-end)
)
)
)
(set!
(-> *part-id-table* 901)
(new 'static 'sparticle-launcher
:init-specs
(new 'static 'inline-array sp-field-init-spec 17
(sp-tex spt-texture (new 'static 'texture-id :index #x1f :page #x2))
(sp-rnd-flt spt-num 0.5 1.0 1.0)
(sp-flt spt-y (meters -4.0))
(sp-rnd-flt spt-scale-x (meters 3.0) (meters 3.0) 1.0)
(sp-int spt-rot-x 4)
(sp-rnd-flt spt-rot-z (degrees -30.0) (degrees 60.0) 1.0)
(sp-rnd-flt spt-scale-y (meters 0.7) (meters 0.4) 1.0)
(sp-flt spt-r 64.0)
(sp-flt spt-g 64.0)
(sp-flt spt-b 128.0)
(sp-flt spt-a 128.0)
(sp-flt spt-fade-a -1.6)
(sp-int spt-timer 90)
(sp-cpuinfo-flags bit2 bit3)
(sp-int spt-next-time 10)
(sp-launcher-by-id spt-next-launcher 907)
(sp-end)
)
)
)
(set!
(-> *part-id-table* 907)
(new 'static 'sparticle-launcher
:init-specs
(new 'static 'inline-array sp-field-init-spec 6
(sp-flt spt-r 64.0)
(sp-flt spt-g 64.0)
(sp-flt spt-fade-r -1.0)
(sp-flt spt-fade-g -1.0)
(sp-flt spt-fade-a -2.0)
(sp-end)
)
)
)
(set!
(-> *part-id-table* 902)
(new 'static 'sparticle-launcher
:init-specs
(new 'static 'inline-array sp-field-init-spec 17
(sp-tex spt-texture (new 'static 'texture-id :index #x1f :page #x2))
(sp-rnd-flt spt-num 0.5 1.0 1.0)
(sp-flt spt-y (meters -4.0))
(sp-rnd-flt spt-scale-x (meters 3.0) (meters 3.0) 1.0)
(sp-int spt-rot-x 4)
(sp-rnd-flt spt-rot-z (degrees 150.0) (degrees 60.0) 1.0)
(sp-rnd-flt spt-scale-y (meters 0.7) (meters 0.4) 1.0)
(sp-flt spt-r 64.0)
(sp-flt spt-g 64.0)
(sp-flt spt-b 128.0)
(sp-flt spt-a 128.0)
(sp-flt spt-fade-a -1.6)
(sp-int spt-timer 90)
(sp-cpuinfo-flags bit2 bit3)
(sp-int spt-next-time 10)
(sp-launcher-by-id spt-next-launcher 907)
(sp-end)
)
)
)
(set!
(-> *part-id-table* 903)
(new 'static 'sparticle-launcher
:init-specs
(new 'static 'inline-array sp-field-init-spec 20
(sp-tex spt-texture (new 'static 'texture-id :index #x1f :page #x2))
(sp-rnd-flt spt-num 1.0 1.0 1.0)
(sp-rnd-flt spt-y (meters -6.5) (meters 1.0) 1.0)
(sp-rnd-flt spt-scale-x (meters 6.0) (meters 2.0) 1.0)
(sp-int spt-rot-x 4)
(sp-rnd-flt spt-rot-z (degrees -140.0) (degrees 100.00001) 1.0)
(sp-rnd-flt spt-scale-y (meters 0.7) (meters 0.4) 1.0)
(sp-flt spt-r 64.0)
(sp-flt spt-g 64.0)
(sp-flt spt-b 128.0)
(sp-flt spt-a 128.0)
(sp-flt spt-fade-a -1.6)
(sp-int spt-timer 90)
(sp-cpuinfo-flags bit2 bit3)
(sp-int spt-next-time 10)
(sp-launcher-by-id spt-next-launcher 907)
(sp-flt spt-conerot-x (degrees 90.0))
(sp-rnd-flt spt-conerot-y (degrees 80.0) (degrees 200.00002) 1.0)
(sp-flt spt-conerot-radius (meters 4.0))
(sp-end)
)
)
)
(defstate eggtop-idle (eggtop)
:event
(behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
(let ((v1-0 arg2))
(the-as object (when (= v1-0 'notify)
(case (-> arg3 param 0)
(('pickup)
(if (type-type? (-> arg0 type) fuel-cell)
(save-reminder
(get-task-control (-> self entity extra perm task))
1
0
)
)
)
)
)
)
)
)
:exit
(behavior ()
(sound-stop (-> self sound-id))
(none)
)
:trans
(behavior ()
(if
(and
(not (-> self child))
(task-complete? *game-info* (-> self entity extra perm task))
)
(go eggtop-close #f)
)
(spawn (-> self part) (-> self root-override trans))
(sound-play-by-name
(static-sound-name "electric-loop")
(-> self sound-id)
1024
0
0
1
#t
)
(none)
)
:code
(behavior ()
(suspend)
(dummy-47 (-> self root-override))
(anim-loop)
(none)
)
:post
(the-as (function none :behavior eggtop) ja-post)
)
(defstate eggtop-close (eggtop)
:trans
(behavior ()
(rider-trans)
(hide-hud-quick)
(none)
)
:code
(behavior ((arg0 symbol))
(when (not arg0)
(sound-play-by-name
(static-sound-name "vent-switch")
(new-sound-id)
2048
0
0
1
#t
)
(let ((gp-1 (get-process *default-dead-pool* part-tracker #x4000)))
(when gp-1
(let ((t9-3 (method-of-type part-tracker activate)))
(t9-3
(the-as part-tracker gp-1)
*entity-pool*
'part-tracker
(the-as pointer #x70004000)
)
)
(run-now-in-process
gp-1
part-tracker-init
(-> *part-group-id-table* 190)
-1
#f
#f
#f
(-> self root-override trans)
)
(-> gp-1 ppointer)
)
)
(let ((gp-2 (get-process *default-dead-pool* camera-tracker #x4000)))
(set! (-> self cam-tracker) (the-as uint (ppointer->handle (when gp-2
(let
((t9-6
(method-of-type
camera-tracker
activate
)
)
)
(t9-6
(the-as
camera-tracker
gp-2
)
self
'camera-tracker
(the-as
pointer
#x70004000
)
)
)
(run-now-in-process
gp-2
camera-tracker-init
(lambda :behavior camera-tracker
()
(while
(not
(process-grab?
*target*
)
)
(suspend)
)
(let
((gp-0
(->
*display*
base-frame-counter
)
)
)
(until
(>=
(-
(->
*display*
base-frame-counter
)
gp-0
)
300
)
(suspend)
)
)
(send-event
*camera*
'blend-from-as-fixed
)
(camera-look-at
(the-as
process
"ecovent-171"
)
0
)
(camera-change-to
"camera-223"
0
#f
)
(let
((gp-1
(->
*display*
base-frame-counter
)
)
)
(until
(>=
(-
(->
*display*
base-frame-counter
)
gp-1
)
900
)
(suspend)
)
)
(while
(not
(process-release?
(handle->process
(->
self
grab-target
)
)
)
)
(suspend)
)
(send-event
*camera*
'blend-from-as-fixed
)
(level-hint-spawn
(game-text-id
jungleb-eco-vents-opened
)
"asstvb02"
(the-as
entity
#f
)
*entity-pool*
(game-task
none
)
)
(camera-look-at
*target*
0
)
(camera-change-to
(the-as
string
'base
)
150
#f
)
(send-event
(ppointer->process
(->
*hud-parts*
fuel-cell
)
)
'show
)
(none)
)
)
(->
gp-2
ppointer
)
)
)
)
)
)
(save-reminder (get-task-control (-> self entity extra perm task)) 2 0)
(sound-play-by-name
(static-sound-name "jngb-eggtop-seq")
(new-sound-id)
1024
0
0
1
#t
)
(let ((a0-16 (-> self skel root-channel 0)))
(set!
(-> a0-16 frame-group)
(the-as art-joint-anim (-> self draw art-group data 2))
)
(set!
(-> a0-16 param 0)
(the
float
(+
(->
(the-as art-joint-anim (-> self draw art-group data 2))
data
0
length
)
-1
)
)
)
(set! (-> a0-16 param 1) 1.0)
(set! (-> a0-16 frame-num) 0.0)
(joint-control-channel-group!
a0-16
(the-as art-joint-anim (-> self draw art-group data 2))
num-func-seek!
)
)
(until (ja-done? 0)
(suspend)
(let ((a0-17 (-> self skel root-channel 0)))
(set!
(-> a0-17 param 0)
(the float (+ (-> a0-17 frame-group data 0 length) -1))
)
(set! (-> a0-17 param 1) 1.0)
(joint-control-channel-group-eval!
a0-17
(the-as art-joint-anim #f)
num-func-seek!
)
)
)
)
(process-entity-status! self (entity-perm-status complete) #t)
(let ((a0-20 (-> self entity)))
(if (and a0-20 (= self (-> a0-20 extra process)))
(entity-task-complete-on a0-20)
)
)
(let ((gp-4 (-> self skel root-channel 0)))
(joint-control-channel-group-eval!
gp-4
(the-as art-joint-anim (-> self draw art-group data 2))
num-func-identity
)
(set!
(-> gp-4 frame-num)
(the
float
(+
(->
(the-as art-joint-anim (-> self draw art-group data 2))
data
0
length
)
-1
)
)
)
)
(suspend)
(logior! (-> self mask) (process-mask sleep))
(suspend)
0
(none)
)
:post
(the-as (function none :behavior eggtop) rider-post)
)
(defmethod copy-defaults! eggtop ((obj eggtop) (arg0 res-lump))
(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 -7372.8 16384.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 *eggtop-sg* '())
(logior! (-> obj skel status) 1)
(dummy-47 (-> obj root-override))
(set!
(-> obj part)
(create-launch-control (-> *part-group-id-table* 189) obj)
)
(set! (-> obj sound-id) (new-sound-id))
(cond
((task-complete? *game-info* (-> obj entity extra perm task))
(go eggtop-close #t)
)
(else
(birth-pickup-at-point
(vector+!
(new 'stack-no-clear 'vector)
(-> obj root-override trans)
(new 'static 'vector :y 6144.0 :w 1.0)
)
6
(the float (-> obj entity extra perm task))
#f
obj
(the-as fact-info #f)
)
(go eggtop-idle)
)
)
(none)
)
(deftype jng-iris-door (eco-door)
()
:heap-base #xa0
:method-count-assert 27
:size-assert #x104
:flag-assert #x1b00a00104
)
(defskelgroup *jng-iris-door-sg* jng-iris-door
0
3
((1 (meters 999999)))
:bounds (static-spherem 0 0 0 8)
:longest-edge (meters 0)
)
(defmethod TODO-RENAME-24 jng-iris-door ((obj jng-iris-door))
(let
((s5-0 (new 'process 'collide-shape obj (collide-list-enum hit-by-others))))
(let
((s4-0
(new
'process
'collide-shape-prim-mesh
s5-0
(the-as uint 0)
(the-as uint 0)
)
)
)
(set! (-> s4-0 prim-core collide-as) (the-as uint 512))
(set! (-> s4-0 collide-with) (the-as uint 16))
(set! (-> s4-0 prim-core action) (the-as uint 1))
(set! (-> s4-0 prim-core offense) 4)
(set! (-> s4-0 transform-index) 0)
(set-vector! (-> s4-0 local-sphere) 0.0 0.0 0.0 16384.0)
)
(dummy-46 s5-0)
(set! (-> s5-0 nav-radius) (* 0.75 (-> s5-0 root-prim local-sphere w)))
(dummy-50 s5-0)
(set! (-> obj root-override) s5-0)
)
0
(none)
)
(defmethod TODO-RENAME-25 jng-iris-door ((obj jng-iris-door))
(initialize-skeleton obj *jng-iris-door-sg* '())
(set! (-> obj open-distance) 32768.0)
(set! (-> obj close-distance) 49152.0)
(dummy-47 (-> obj root-override))
0
(none)
)

View File

@ -82,8 +82,8 @@
1024
0
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
)
(let ((s5-1 (-> self skel root-channel 0)))
@ -152,8 +152,8 @@
1024
0
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
)
(let ((f30-2 (- f30-1 (-> self before-turn-up-time)))

View File

@ -5,6 +5,8 @@
;; name in dgo: cavecrystal-light
;; dgos: L1, MAI, MAINCAVE
(declare-type cavecrystal process-drawable)
;; DECOMP BEGINS
(define *cavecrystal-engine* (new 'loading-level 'engine 'cavecrystal 64))
@ -34,11 +36,11 @@
:size-assert #x170
:flag-assert #xf00000170
(:methods
(TODO-RENAME-9 (_type_ int float cavecrystal) object 9)
(TODO-RENAME-9 (_type_ int float process-drawable) object 9)
(TODO-RENAME-10 (_type_ vector) float 10)
(inc-intensites! (_type_) int 11)
(TODO-RENAME-12 (_type_) symbol 12)
(create-connection! (_type_ cavecrystal res-lump (function object object object object object) object object) connection 13)
(create-connection! (_type_ process-drawable res-lump (function object object object object object) object object) connection 13)
(execute-connections (_type_) int 14)
)
)
@ -74,7 +76,7 @@
create-connection!
cavecrystal-light-control
((obj cavecrystal-light-control)
(arg0 cavecrystal)
(arg0 process-drawable)
(arg1 res-lump)
(arg2 (function object object object object object))
(arg3 object)
@ -187,7 +189,11 @@
(defmethod
TODO-RENAME-9
cavecrystal-light-control
((obj cavecrystal-light-control) (arg0 int) (arg1 float) (arg2 cavecrystal))
((obj cavecrystal-light-control)
(arg0 int)
(arg1 float)
(arg2 process-drawable)
)
(TODO-RENAME-12 obj)
(when (or (< arg0 0) (>= arg0 7))
(format 0 "ERROR: Bogus cavecrystal id!~%")
@ -199,7 +205,7 @@
(+! (-> obj active-count) 1)
(set! (-> s3-0 intensity) arg1)
(set! (-> s3-0 crystal-handle) (process->handle arg2))
(set! (-> s3-0 trans quad) (-> arg2 root-override trans quad))
(set! (-> s3-0 trans quad) (-> arg2 root trans quad))
(inc-intensites! obj)
)
((and (>= 0.0 arg1) (< 0.0 (-> s3-0 intensity)))

View File

@ -412,8 +412,8 @@
1024
0
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
)
)

View File

@ -455,8 +455,8 @@
1024
0
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
)
(sound-play-by-name
@ -465,8 +465,8 @@
1024
0
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
(none)
)
@ -529,8 +529,8 @@
1024
0
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
(suspend)
(go-virtual projectile-die)

View File

@ -153,8 +153,8 @@
1024
0
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
(let ((gp-1 (-> self skel root-channel 0)))
(set!

View File

@ -170,8 +170,8 @@
1024
0
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
(let
((gp-1
@ -225,8 +225,8 @@
1024
0
0
(the-as uint 1)
(-> self root-override trans)
1
(the-as symbol (-> self root-override trans))
)
)
)
@ -490,8 +490,8 @@
819
0
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
(let ((s4-1 (get-process *default-dead-pool* part-tracker #x4000)))
(when s4-1

View File

@ -134,8 +134,8 @@
1024
0
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
(send-to-all-after (-> self link) 'trigger-rise)
(go silostep-rise #f)

View File

@ -659,8 +659,8 @@ nav-enemy-default-event-handler
1024
0
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
(close-specific-task! (game-task misty-muse) (task-status need-reminder))
(process-entity-status! self (entity-perm-status dead) #t)

File diff suppressed because it is too large Load Diff

View File

@ -101,8 +101,8 @@
1024
0
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
(set!
(-> self racer boost-sound-id)
@ -112,8 +112,8 @@
1024
0
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
)
(set!
@ -740,8 +740,8 @@
819
0
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
(sound-play-by-name
(static-sound-name "zoomer-rev2")
@ -749,8 +749,8 @@
819
0
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
)
)
@ -922,8 +922,8 @@
1024
0
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
(set! (-> self state-time) (-> *display* base-frame-counter))
(when arg2
@ -1205,8 +1205,8 @@
1024
0
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
(set! (-> self state-time) (-> *display* base-frame-counter))
(racer-calc-gravity)
@ -1409,8 +1409,8 @@
1024
0
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
(cpad-set-buzz! (-> *cpad-list* cpads 0) 1 255 150)
(set! (-> self racer heavy) arg1)
@ -1462,8 +1462,8 @@
1024
0
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
(ja-channel-push! 2 15)
(let ((a0-4 (-> self skel root-channel 0)))
@ -1614,15 +1614,7 @@
(when (!= (-> self attack-info mode) 'endlessfall)
(dummy-10 (-> self skel effect) 'group-target-hit -1.0 -1)
(cpad-set-buzz! (-> *cpad-list* cpads 0) 1 255 90)
(sound-play-by-name
(static-sound-name "oof")
(new-sound-id)
1024
0
0
(the-as uint 1)
(the-as vector #t)
)
(sound-play-by-name (static-sound-name "oof") (new-sound-id) 1024 0 0 1 #t)
)
(set! (-> self game hit-time) (-> *display* base-frame-counter))
(logior! (-> self state-flags) 8)
@ -1772,8 +1764,8 @@
1024
0
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
(let ((gp-1 (get-process *default-dead-pool* part-tracker #x4000)))
(when gp-1
@ -2065,8 +2057,8 @@
1024
0
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
(let ((gp-5 (get-process *default-dead-pool* part-tracker #x4000)))
(when gp-5
@ -2108,8 +2100,8 @@
1024
0
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
(camera-change-to (the-as string cam-endlessfall) 30 #f)
(set! (-> self control pat-ignore-mask unknown-bit) 1)
@ -2311,8 +2303,8 @@
1024
0
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
(set! gp-1 #t)
)
@ -2669,8 +2661,8 @@
1024
0
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
(set! (-> self state-time) (-> *display* base-frame-counter))
(set! (-> self control transv quad) (the-as uint128 0))

File diff suppressed because it is too large Load Diff

View File

@ -247,8 +247,8 @@
1024
0
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
)
(else
@ -264,8 +264,8 @@
1024
0
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
)
)
@ -480,7 +480,7 @@
(behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
(case arg2
(('trigger)
(start-hint-timer (game-text-id sunken-qbert-hint))
(start-hint-timer (game-text-id sunken-qbert-plat-hint))
(close-specific-task!
(game-task sunken-platforms)
(task-status need-hint)
@ -501,7 +501,7 @@
)
(if (zero? (logand v1-3 (-> self plat-states)))
(level-hint-spawn
(game-text-id sunken-qbert-hint)
(game-text-id sunken-qbert-plat-hint)
"sksp0130"
(the-as entity #f)
*entity-pool*
@ -572,7 +572,7 @@
(when (not (-> self player-in-water?))
(set! gp-0 #t)
(level-hint-spawn
(game-text-id sunken-qbert-hint)
(game-text-id sunken-qbert-plat-hint)
"sksp0130"
(the-as entity #f)
*entity-pool*
@ -597,7 +597,7 @@
(when (and (not s5-2) (-> self player-in-bounds?))
(set! gp-0 #t)
(level-hint-spawn
(game-text-id sunken-qbert-hint)
(game-text-id sunken-qbert-plat-hint)
"sksp0130"
(the-as entity #f)
*entity-pool*

View File

@ -303,8 +303,8 @@
sv-48
a3-0
t0-0
(the-as uint t1-0)
(the-as vector t2-0)
t1-0
t2-0
)
)
)

View File

@ -5,18 +5,818 @@
;; name in dgo: sunken-obs
;; dgos: L1, SUN, SUNKEN
;; TODO - for square-platform
(define-extern *seaweed-sg* skeleton-group)
(define-extern *side-to-side-plat-sg* skeleton-group)
(define-extern *sunkencam-sg* skeleton-group)
;; DECOMP BEGINS
(deftype water-vol-deadly (process-hidden)
()
:method-count-assert 15
:size-assert #x70
:flag-assert #xf00000070
)
(deftype side-to-side-plat (plat)
((part-ry float :offset-assert 264)
)
:heap-base #xa0
:method-count-assert 33
:size-assert #x10c
:flag-assert #x2100a0010c
)
(defskelgroup *side-to-side-plat-sg* side-to-side-plat
0
3
((1 (meters 20)) (2 (meters 999999)))
:bounds (static-spherem 0 0 0 14)
:longest-edge (meters 0)
)
(set!
(-> *part-group-id-table* 436)
(new 'static 'sparticle-launch-group
:length 2
:duration #xbb8
:linger-duration #x5dc
:flags (sp-group-flag use-local-clock)
:name "group-side-to-side-plat"
:launcher
(new 'static 'inline-array sparticle-group-item 2
(sp-item 1713 :fade-after (meters 60.0) :falloff-to (meters 60.0))
(sp-item 1714 :fade-after (meters 160.0) :falloff-to (meters 160.0))
)
:bounds (new 'static 'sphere :w 32768.0)
)
)
(set!
(-> *part-id-table* 1713)
(new 'static 'sparticle-launcher
:init-specs
(new 'static 'inline-array sp-field-init-spec 16
(sp-flt spt-num 4.0)
(sp-rnd-flt spt-x (meters -11.0) (meters 22.0) 1.0)
(sp-flt spt-y (meters 1.0))
(sp-int spt-rot-x 5)
(sp-flt spt-r 5324.8)
(sp-flt spt-g 4096.0)
(sp-flt spt-b 3686.4)
(sp-flt spt-vel-y (meters 0.0033333334))
(sp-flt spt-fade-b -16.383999)
(sp-int spt-timer 25)
(sp-cpuinfo-flags aux-list)
(sp-rnd-flt spt-conerot-x (degrees 140.0) (degrees 40.0) 1.0)
(sp-rnd-flt spt-conerot-y (degrees 0.0) (degrees 360.0) 1.0)
(sp-flt spt-conerot-radius (meters 3.0))
(sp-flt spt-rotate-y (degrees 18.0))
(sp-end)
)
)
)
(set!
(-> *part-id-table* 1714)
(new 'static 'sparticle-launcher
:init-specs
(new 'static 'inline-array sp-field-init-spec 21
(sp-tex spt-texture (new 'static 'texture-id :index #xf :page #x2))
(sp-flt spt-num 6.0)
(sp-rnd-flt spt-x (meters -11.0) (meters 22.0) 1.0)
(sp-flt spt-y (meters 1.5))
(sp-rnd-flt spt-scale-x (meters 2.0) (meters 1.0) 1.0)
(sp-copy-from-other spt-scale-y -4)
(sp-rnd-flt spt-g 0.0 64.0 1.0)
(sp-rnd-flt spt-b 128.0 128.0 1.0)
(sp-rnd-flt spt-a 16.0 32.0 1.0)
(sp-flt spt-vel-y (meters 0.01))
(sp-flt spt-fade-g -0.42666668)
(sp-flt spt-fade-a -0.32)
(sp-flt spt-accel-y -0.13653333)
(sp-flt spt-friction 0.96)
(sp-int spt-timer 150)
(sp-cpuinfo-flags bit2 bit3)
(sp-rnd-flt spt-conerot-x (degrees 130.0) (degrees 100.00001) 1.0)
(sp-rnd-flt spt-conerot-y (degrees 0.0) (degrees 360.0) 1.0)
(sp-flt spt-conerot-radius (meters 3.0))
(sp-flt spt-rotate-y (degrees 18.0))
(sp-end)
)
)
)
(defmethod get-unlit-skel side-to-side-plat ((obj side-to-side-plat))
*side-to-side-plat-sg*
)
(defmethod dummy-24 side-to-side-plat ((obj side-to-side-plat))
(let
((s5-0
(new 'process 'collide-shape-moving obj (collide-list-enum hit-by-player))
)
)
(set! (-> s5-0 dynam) (copy *standard-dynamics* 'process))
(set! (-> s5-0 reaction) default-collision-reaction)
(set! (-> s5-0 no-reaction) nothing)
(dummy-29 s5-0 1)
(let
((s4-0
(new
'process
'collide-shape-prim-mesh
s5-0
(the-as uint 0)
(the-as uint 0)
)
)
)
(set! (-> s4-0 prim-core collide-as) (the-as uint 2048))
(set! (-> s4-0 collide-with) (the-as uint 16))
(set! (-> s4-0 prim-core action) (the-as uint 3))
(set! (-> s4-0 prim-core offense) 4)
(set! (-> s4-0 transform-index) 0)
(set-vector! (-> s4-0 local-sphere) 0.0 0.0 0.0 57344.0)
)
(dummy-46 s5-0)
(set! (-> s5-0 nav-radius) (* 0.75 (-> s5-0 root-prim local-sphere w)))
(dummy-50 s5-0)
(set! (-> obj root-override) s5-0)
)
0
(none)
)
(defmethod dummy-26 side-to-side-plat ((obj side-to-side-plat))
(set!
(-> obj part-ry)
(+ 16384.0 (quaternion-y-angle (-> obj root-override quat)))
)
(none)
)
(defmethod TODO-RENAME-25 side-to-side-plat ((obj side-to-side-plat))
(let ((v0-0 (create-launch-control (-> *part-group-id-table* 436) obj)))
(set! (-> obj part) v0-0)
(the-as sparticle-launch-group v0-0)
)
)
(defmethod dummy-20 side-to-side-plat ((obj side-to-side-plat))
(when (nonzero? (-> obj part))
(set!
(-> *part-id-table* 1713 init-specs 14 initial-valuef)
(-> obj part-ry)
)
(set!
(-> *part-id-table* 1714 init-specs 19 initial-valuef)
(-> obj part-ry)
)
(spawn (-> obj part) (-> obj root-override trans))
)
(none)
)
(deftype sunkencam (pov-camera)
((seq uint64 :offset-assert 224)
)
:heap-base #x80
:method-count-assert 30
:size-assert #xe8
:heap-base #x80
:flag-assert #x1e008000e8
)
;; decomp begins
(define-extern *seaweed-sg* skeleton-group)
(define-extern *side-to-side-plat-sg* skeleton-group)
(define-extern *sunkencam-sg* skeleton-group)
(defskelgroup *sunkencam-sg* sunkencam
0
-1
((1 (meters 999999)))
:bounds (static-spherem 0 0 0 10)
:longest-edge (meters 0)
)
(defmethod set-stack-size! sunkencam ((obj sunkencam))
(stack-size-set! (-> obj main-thread) 512)
(none)
)
(defstate pov-camera-playing (sunkencam)
:virtual #t
:exit
(behavior ()
(set! (-> *screen-filter* draw?) #f)
(none)
)
:code
(behavior ()
(let ((v1-0 (-> self seq)))
(cond
((zero? v1-0)
(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)
(suspend)
(let ((a0-1 (-> self skel root-channel 0)))
(set!
(-> a0-1 param 0)
(the float (+ (-> a0-1 frame-group data 0 length) -1))
)
(set! (-> a0-1 param 1) 1.0)
(joint-control-channel-group-eval!
a0-1
(the-as art-joint-anim #f)
num-func-seek!
)
)
)
(let ((a0-3 (-> self skel root-channel 0)))
(set!
(-> a0-3 frame-group)
(the-as art-joint-anim (-> self draw art-group data 6))
)
(set!
(-> a0-3 param 0)
(the
float
(+
(->
(the-as art-joint-anim (-> self draw art-group data 6))
data
0
length
)
-1
)
)
)
(set! (-> a0-3 param 1) 1.0)
(set! (-> a0-3 frame-num) 0.0)
(joint-control-channel-group!
a0-3
(the-as art-joint-anim (-> self draw art-group data 6))
num-func-seek!
)
)
(until (ja-done? 0)
(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!
)
)
)
(let ((v1-45 *screen-filter*))
(set! (-> v1-45 draw?) #t)
(set! (-> v1-45 color) (new 'static 'rgba :g #x20 :b #x40 :a #x50))
)
(set-blackout-frames 30)
(let ((a0-9 (-> self skel root-channel 0)))
(set!
(-> a0-9 frame-group)
(the-as art-joint-anim (-> self draw art-group data 7))
)
(set!
(-> a0-9 param 0)
(the
float
(+
(->
(the-as art-joint-anim (-> self draw art-group data 7))
data
0
length
)
-1
)
)
)
(set! (-> a0-9 param 1) 1.0)
(set! (-> a0-9 frame-num) 0.0)
(joint-control-channel-group!
a0-9
(the-as art-joint-anim (-> self draw art-group data 7))
num-func-seek!
)
)
(until (ja-done? 0)
(suspend)
(let ((a0-10 (-> self skel root-channel 0)))
(set!
(-> a0-10 param 0)
(the float (+ (-> a0-10 frame-group data 0 length) -1))
)
(set! (-> a0-10 param 1) 1.0)
(joint-control-channel-group-eval!
a0-10
(the-as art-joint-anim #f)
num-func-seek!
)
)
)
(set-blackout-frames 150)
(let ((gp-0 2))
(let ((a0-13 (-> self skel root-channel 0)))
(set!
(-> a0-13 frame-group)
(the-as art-joint-anim (-> self draw art-group data 8))
)
(set!
(-> a0-13 param 0)
(the
float
(+
(->
(the-as art-joint-anim (-> self draw art-group data 8))
data
0
length
)
-1
)
)
)
(set! (-> a0-13 param 1) 1.0)
(set! (-> a0-13 frame-num) 0.0)
(joint-control-channel-group!
a0-13
(the-as art-joint-anim (-> self draw art-group data 8))
num-func-seek!
)
)
(until (ja-done? 0)
(+! gp-0 -1)
(if (zero? gp-0)
(set! (-> *screen-filter* draw?) #f)
)
(suspend)
(let ((a0-14 (-> self skel root-channel 0)))
(set!
(-> a0-14 param 0)
(the float (+ (-> a0-14 frame-group data 0 length) -1))
)
(set! (-> a0-14 param 1) 1.0)
(joint-control-channel-group-eval!
a0-14
(the-as art-joint-anim #f)
num-func-seek!
)
)
)
)
(set-blackout-frames 30)
)
((= v1-0 1)
(let ((a0-18 (-> self skel root-channel 0)))
(set!
(-> a0-18 frame-group)
(the-as art-joint-anim (-> self draw art-group data 9))
)
(set!
(-> a0-18 param 0)
(the
float
(+
(->
(the-as art-joint-anim (-> self draw art-group data 9))
data
0
length
)
-1
)
)
)
(set! (-> a0-18 param 1) 1.0)
(set! (-> a0-18 frame-num) 0.0)
(joint-control-channel-group!
a0-18
(the-as art-joint-anim (-> self draw art-group data 9))
num-func-seek!
)
)
(until (ja-done? 0)
(suspend)
(let ((a0-19 (-> self skel root-channel 0)))
(set!
(-> a0-19 param 0)
(the float (+ (-> a0-19 frame-group data 0 length) -1))
)
(set! (-> a0-19 param 1) 1.0)
(joint-control-channel-group-eval!
a0-19
(the-as art-joint-anim #f)
num-func-seek!
)
)
)
(let ((v1-116 *screen-filter*))
(set! (-> v1-116 draw?) #t)
(set! (-> v1-116 color) (new 'static 'rgba :g #x20 :b #x40 :a #x50))
)
(set-blackout-frames 30)
(let ((a0-24 (-> self skel root-channel 0)))
(set!
(-> a0-24 frame-group)
(the-as art-joint-anim (-> self draw art-group data 10))
)
(set!
(-> a0-24 param 0)
(the
float
(+
(->
(the-as art-joint-anim (-> self draw art-group data 10))
data
0
length
)
-1
)
)
)
(set! (-> a0-24 param 1) 1.0)
(set! (-> a0-24 frame-num) 0.0)
(joint-control-channel-group!
a0-24
(the-as art-joint-anim (-> self draw art-group data 10))
num-func-seek!
)
)
(until (ja-done? 0)
(suspend)
(let ((a0-25 (-> self skel root-channel 0)))
(set!
(-> a0-25 param 0)
(the float (+ (-> a0-25 frame-group data 0 length) -1))
)
(set! (-> a0-25 param 1) 1.0)
(joint-control-channel-group-eval!
a0-25
(the-as art-joint-anim #f)
num-func-seek!
)
)
)
(set-blackout-frames 30)
(let ((gp-1 2))
(let ((a0-28 (-> self skel root-channel 0)))
(set!
(-> a0-28 frame-group)
(the-as art-joint-anim (-> self draw art-group data 11))
)
(set!
(-> a0-28 param 0)
(the
float
(+
(->
(the-as art-joint-anim (-> self draw art-group data 11))
data
0
length
)
-1
)
)
)
(set! (-> a0-28 param 1) 1.0)
(set! (-> a0-28 frame-num) 0.0)
(joint-control-channel-group!
a0-28
(the-as art-joint-anim (-> self draw art-group data 11))
num-func-seek!
)
)
(until (ja-done? 0)
(+! gp-1 -1)
(if (zero? gp-1)
(set! (-> *screen-filter* draw?) #f)
)
(suspend)
(let ((a0-29 (-> self skel root-channel 0)))
(set!
(-> a0-29 param 0)
(the float (+ (-> a0-29 frame-group data 0 length) -1))
)
(set! (-> a0-29 param 1) 1.0)
(joint-control-channel-group-eval!
a0-29
(the-as art-joint-anim #f)
num-func-seek!
)
)
)
)
(let ((gp-2 *camera*))
(send-event gp-2 'teleport)
(send-event gp-2 'change-state cam-fixed 0)
(send-event gp-2 'change-state *camera-base-mode* 0)
)
(set! (-> self state-time) (-> *display* base-frame-counter))
(until (>= (- (-> *display* base-frame-counter) (-> self state-time)) 300)
(suspend)
)
)
((= v1-0 2)
(let ((a0-36 (-> self skel root-channel 0)))
(set!
(-> a0-36 frame-group)
(the-as art-joint-anim (-> self draw art-group data 16))
)
(set!
(-> a0-36 param 0)
(the
float
(+
(->
(the-as art-joint-anim (-> self draw art-group data 16))
data
0
length
)
-1
)
)
)
(set! (-> a0-36 param 1) 1.0)
(set! (-> a0-36 frame-num) 0.0)
(joint-control-channel-group!
a0-36
(the-as art-joint-anim (-> self draw art-group data 16))
num-func-seek!
)
)
(until (ja-done? 0)
(suspend)
(let ((a0-37 (-> self skel root-channel 0)))
(set!
(-> a0-37 param 0)
(the float (+ (-> a0-37 frame-group data 0 length) -1))
)
(set! (-> a0-37 param 1) 1.0)
(joint-control-channel-group-eval!
a0-37
(the-as art-joint-anim #f)
num-func-seek!
)
)
)
(let ((a0-39 (-> self skel root-channel 0)))
(set!
(-> a0-39 frame-group)
(the-as art-joint-anim (-> self draw art-group data 17))
)
(set!
(-> a0-39 param 0)
(the
float
(+
(->
(the-as art-joint-anim (-> self draw art-group data 17))
data
0
length
)
-1
)
)
)
(set! (-> a0-39 param 1) 0.67)
(set! (-> a0-39 frame-num) 0.0)
(joint-control-channel-group!
a0-39
(the-as art-joint-anim (-> self draw art-group data 17))
num-func-seek!
)
)
(until (ja-done? 0)
(suspend)
(let ((a0-40 (-> self skel root-channel 0)))
(set!
(-> a0-40 param 0)
(the float (+ (-> a0-40 frame-group data 0 length) -1))
)
(set! (-> a0-40 param 1) 0.67)
(joint-control-channel-group-eval!
a0-40
(the-as art-joint-anim #f)
num-func-seek!
)
)
)
(pov-camera-play-and-reposition
(the-as joint-anim-compressed (-> self draw art-group data 18))
(new 'static 'vector :x 2449408.0 :y -1822720.0 :z -7299072.0)
0.67
)
)
((= v1-0 3)
(ambient-hint-spawn "gamcam34" (the-as vector #f) *entity-pool* 'camera)
(pov-camera-play-and-reposition
(the-as joint-anim-compressed (-> self draw art-group data 12))
(new 'static 'vector :x 2707456.0 :y -630784.0 :z -6635520.0)
1.0
)
)
((= v1-0 4)
(ambient-hint-spawn "gamcam35" (the-as vector #f) *entity-pool* 'camera)
(pov-camera-play-and-reposition
(the-as joint-anim-compressed (-> self draw art-group data 13))
(new 'static 'vector :x 2834432.0 :y -634880.0 :z -6811648.0)
1.3
)
(set! (-> self state-time) (-> *display* base-frame-counter))
(until (>= (- (-> *display* base-frame-counter) (-> self state-time)) 60)
(suspend)
)
)
((= v1-0 5)
(ambient-hint-spawn "gamcam37" (the-as vector #f) *entity-pool* 'camera)
(pov-camera-play-and-reposition
(the-as joint-anim-compressed (-> self draw art-group data 14))
(new 'static 'vector :x 2695168.0 :y -544768.0 :z -7077888.0)
1.0
)
)
((= v1-0 6)
(ambient-hint-spawn "gamcam36" (the-as vector #f) *entity-pool* 'camera)
(pov-camera-play-and-reposition
(the-as joint-anim-compressed (-> self draw art-group data 15))
(new 'static 'vector :x 2482176.0 :y -516096.0 :z -6922240.0)
1.0
)
)
(else
(suspend)
0
)
)
)
(go-virtual pov-camera-done-playing)
(none)
)
)
(deftype seaweed (process-drawable)
((anim-speed float :offset-assert 176)
)
:heap-base #x50
:method-count-assert 20
:size-assert #xb4
:flag-assert #x14005000b4
)
;; NOTE - manually added
(define-extern *seaweed* seaweed)
(defskelgroup *seaweed-sg* seaweed
0
-1
((1 (meters 999999)))
:bounds (static-spherem 0 6 0 7)
:longest-edge (meters 0)
)
(defstate seaweed-idle (seaweed)
:code
(behavior ()
(let ((a0-0 (-> self skel root-channel 0)))
(set!
(-> a0-0 param 0)
(the float (+ (-> a0-0 frame-group data 0 length) -1))
)
(set! (-> a0-0 param 1) (-> self anim-speed))
(joint-control-channel-group!
a0-0
(the-as art-joint-anim #f)
num-func-seek!
)
)
(while (not (ja-done? 0))
(suspend)
(ja-eval)
)
(while #t
(let ((a0-2 (-> self skel root-channel 0)))
(set!
(-> a0-2 frame-group)
(the-as art-joint-anim (-> self draw art-group data 2))
)
(set!
(-> a0-2 param 0)
(the
float
(+
(->
(the-as art-joint-anim (-> self draw art-group data 2))
data
0
length
)
-1
)
)
)
(set! (-> a0-2 param 1) (-> self anim-speed))
(set! (-> a0-2 frame-num) 0.0)
(joint-control-channel-group!
a0-2
(the-as art-joint-anim (-> self draw art-group data 2))
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) (-> self anim-speed))
(joint-control-channel-group-eval!
a0-3
(the-as art-joint-anim #f)
num-func-seek!
)
)
)
)
(none)
)
:post
(the-as (function none :behavior seaweed) ja-post)
)
(defmethod copy-defaults! seaweed ((obj seaweed) (arg0 res-lump))
(set! (-> obj root) (new 'process 'trsqv))
(process-drawable-from-entity! obj arg0)
(initialize-skeleton obj *seaweed-sg* '())
(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)
(rand-vu-float-range
0.0
(the float (+ (-> (if (> (-> obj skel active-channels) 0)
(-> obj skel root-channel 0 frame-group)
)
data
0
length
)
-1
)
)
)
)
)
(set! (-> obj anim-speed) (rand-vu-float-range 0.2 0.4))
(set! *seaweed* obj)
(go seaweed-idle)
(none)
)

View File

@ -134,8 +134,8 @@
1024
0
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
)
)
@ -192,8 +192,8 @@
1024
0
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
)
(update! (-> self sound))
@ -237,8 +237,8 @@
1024
0
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
)
)

View File

@ -79,8 +79,8 @@
1024
0
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
(none)
)
@ -160,8 +160,8 @@
1024
0
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
(none)
)
@ -248,8 +248,8 @@
1024
0
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
(set! gp-0 #t)
)

File diff suppressed because it is too large Load Diff

View File

@ -397,8 +397,8 @@
1024
0
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
)
)

View File

@ -513,8 +513,8 @@
1024
0
0
(the-as uint 1)
(target-pos 0)
1
(the-as symbol (target-pos 0))
)
(let ((v1-74 (-> self skel root-channel 0)))
(set!
@ -983,8 +983,8 @@
1024
0
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
)
)

View File

@ -880,8 +880,8 @@
(the int (* 10.24 f30-0))
(the int (* 1524.0 f28-0))
0
(the-as uint 1)
gp-0
1
(the-as symbol gp-0)
)
)
)

File diff suppressed because it is too large Load Diff

View File

@ -1828,8 +1828,8 @@
1024
0
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
)
)

View File

@ -1306,8 +1306,8 @@
1024
0
0
(the-as uint 1)
(target-pos 0)
1
(the-as symbol (target-pos 0))
)
(let ((a0-27 (-> self skel root-channel 0)))
(set!
@ -1738,8 +1738,8 @@
1024
0
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
)
)

File diff suppressed because it is too large Load Diff

View File

@ -2536,8 +2536,8 @@
1024
0
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
)
)

View File

@ -22,7 +22,9 @@ throw_error = False
# that will be picked up by git to shame you
files_with_modifications = [
"target-util",
"ambient"
"ambient",
"viewer",
"sunken-obs"
]
for file in files:
@ -105,5 +107,42 @@ for file in files:
print("Copied - {}!".format(file))
print("Copying game-text-id enum")
begin_str = ";; GAME-TEXT-ID ENUM BEGINS"
end_str = ";; GAME-TEXT-ID ENUM ENDS"
enum_lines = []
with open('./decompiler/config/all-types.gc') as f:
lines = f.readlines()
found_enum = False
for line in lines:
if found_enum and end_str in line:
break
if found_enum:
enum_lines.append(line)
if begin_str in line:
found_enum = True
new_texth_lines = []
with open('goal_src/engine/ui/text-h.gc') as f:
lines = f.readlines()
found_enum = False
for line in lines:
if begin_str in line:
found_enum = True
new_texth_lines.append(begin_str + "\n")
new_texth_lines += enum_lines
new_texth_lines.append(end_str + "\n")
continue
if end_str in line:
found_enum = False
continue
if found_enum:
continue
new_texth_lines.append(line)
os.remove('goal_src/engine/ui/text-h.gc')
with open('goal_src/engine/ui/text-h.gc', "w") as f:
f.writelines(new_texth_lines)
print("game-text-id enum updated!")
if throw_error:
exit(1)

View File

View File

@ -3,4 +3,4 @@
# Directory of this script
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
$DIR/build/goalc-test --gtest_color=yes "$@"
$DIR/build/goalc-test --gtest_color=yes "$@" --gtest_filter="-*MANUAL_TEST*"

View File

@ -673,19 +673,7 @@
(s4-1 string->sound-name)
)
(format (clear *temp-string*) "spool-~S" arg0)
(let
((s5-2
(s5-1
(s4-1 *temp-string*)
(new-sound-id)
1024
0
0
(the-as uint 1)
(the-as vector #t)
)
)
)
(let ((s5-2 (s5-1 (s4-1 *temp-string*) (new-sound-id) 1024 0 0 1 #t)))
(set! (-> self sound-id) s5-2)
(let ((s4-3 (-> *display* base-frame-counter)))
(while
@ -773,8 +761,8 @@
1024
1
0
(the-as uint 1)
(-> self trans)
1
(the-as symbol (-> self trans))
)
)
)
@ -786,15 +774,7 @@
(format (clear *temp-string*) "spool-~S" arg0)
(set!
(-> self sound-id)
(s5-1
(s4-2 *temp-string*)
(new-sound-id)
1024
0
0
(the-as uint 1)
(the-as vector #t)
)
(s5-1 (s4-2 *temp-string*) (new-sound-id) 1024 0 0 1 #t)
)
)
)

View File

@ -1125,8 +1125,8 @@
(the int (* 10.24 (rand-vu-float-range 25.0 75.0)))
(the int (* 1524.0 (rand-vu-float-range -1.0 1.0)))
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
(sound-play-by-name
(static-sound-name "thunder")
@ -1134,8 +1134,8 @@
(the int (* 10.24 (rand-vu-float-range 200.0 400.0)))
(the int (* 1524.0 (rand-vu-float-range -1.0 1.0)))
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
)
)

1929
test/decompiler/reference/engine/anim/joint_REF.gc generated vendored Normal file

File diff suppressed because it is too large Load Diff

View File

@ -27,7 +27,7 @@
(target-grabbed? (_type_) symbol 26)
(dummy-27 () none 27)
(target-released? () symbol 28)
(dummy-29 () none 29)
(set-stack-size! (_type_) none 29)
)
)

View File

@ -322,7 +322,7 @@
;; definition for method 29 of type pov-camera
;; INFO: Return type mismatch symbol vs none.
(defmethod dummy-29 pov-camera ()
(defmethod set-stack-size! pov-camera ((obj pov-camera))
(none)
)
@ -338,7 +338,7 @@
(arg4 process-drawable)
(arg5 pair)
)
((method-of-object self dummy-29))
(set-stack-size! self)
(set! (-> *game-info* pov-camera-handle) (process->handle self))
(set! (-> self flags) arg3)
(set! (-> self command-list) arg5)

View File

@ -34,9 +34,9 @@
:size-assert #xe4
:flag-assert #xd000000e4
(:methods
(dummy-9 () none 9)
(touched-prim (_type_ collide-shape-moving touching-shapes-entry) collide-shape-prim 9)
(dummy-10 () none 10)
(dummy-11 () none 11)
(dummy-11 (_type_ vector) vector 11)
(dummy-12 () none 12)
)
)
@ -130,7 +130,7 @@
:flag-assert #x1200000010
(:methods
(dummy-9 () none 9)
(dummy-10 () none 10)
(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)

File diff suppressed because it is too large Load Diff

View File

@ -1383,8 +1383,8 @@
)
0
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
)
((logtest? (-> self water flags) 512)

View File

@ -582,8 +582,8 @@
1024
0
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
)
(when (handle->process source-handle)
@ -687,8 +687,8 @@
1024
0
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
)
(set!
@ -840,8 +840,8 @@
1024
0
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
)
(((pickup-type eco-green))
@ -851,8 +851,8 @@
1024
0
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
)
(((pickup-type eco-yellow))
@ -862,8 +862,8 @@
1024
0
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
)
(((pickup-type eco-red))
@ -873,8 +873,8 @@
1024
0
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
)
)

View File

@ -558,8 +558,8 @@
1024
0
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
(sound-play-by-name
(static-sound-name "cursor-options")
@ -567,8 +567,8 @@
1024
0
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
)
(set! (-> *cheat-temp* 0) 0)
@ -747,8 +747,8 @@
1024
0
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
(sound-play-by-name
(static-sound-name "cursor-options")
@ -756,8 +756,8 @@
1024
0
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
)
(set! (-> *cheat-temp* 1) 0)
@ -881,8 +881,8 @@
1024
0
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
(sound-play-by-name
(static-sound-name "cursor-options")
@ -890,8 +890,8 @@
1024
0
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
)
(set! (-> *cheat-temp* 2) 0)
@ -1012,8 +1012,8 @@
1024
0
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
(sound-play-by-name
(static-sound-name "cursor-options")
@ -1021,8 +1021,8 @@
1024
0
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
)
(set! (-> *cheat-temp* 3) 0)
@ -1798,7 +1798,3 @@
(set! *run* #f)
0
)

View File

@ -1168,8 +1168,8 @@
1024
0
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
(suspend)
(go-virtual projectile-die)
@ -1214,8 +1214,8 @@
1024
0
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
(suspend)
(go-virtual projectile-die)
@ -1403,8 +1403,8 @@
1024
0
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
(set!
(-> obj sound-id)
@ -1414,8 +1414,8 @@
1024
0
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
)
(when (zero? (logand (-> obj options) 416))
@ -1702,8 +1702,8 @@
1024
0
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
(set! (-> obj mode) 2)
(set! (-> obj max-speed) (-> *TARGET-bank* yellow-projectile-speed))

View File

@ -477,25 +477,25 @@
(vol int)
(pitch int)
(bend int)
(group uint)
(trans vector)
(group int)
(trans symbol)
)
(local-vars (sv-16 uint))
(local-vars (sv-16 int))
(with-pp
(set! sv-16 group)
(let ((sound-trans trans))
(let ((sound-trans (the-as structure trans)))
(when *sound-player-enable*
(let ((cmd (the-as sound-rpc-play (get-sound-buffer-entry))))
(set! (-> cmd command) (sound-command play))
(set! (-> cmd id) id)
(set! (-> cmd name) name)
(set! (-> cmd parms mask) (the-as uint 0))
(set! (-> cmd parms group) sv-16)
(set! (-> cmd parms group) (the-as uint sv-16))
(set! (-> cmd parms volume) vol)
(set! (-> cmd parms pitch-mod) pitch)
(set! (-> cmd parms bend) bend)
(let ((proc (the-as process-drawable pp)))
(when (= sound-trans #t)
(when (= (the-as symbol sound-trans) #t)
(if
(and
proc
@ -503,11 +503,11 @@
(nonzero? (-> proc root))
)
(set! sound-trans (-> proc root trans))
(set! sound-trans (the-as vector #f))
(set! sound-trans #f)
)
)
)
(sound-trans-convert (-> cmd parms trans) sound-trans)
(sound-trans-convert (-> cmd parms trans) (the-as vector sound-trans))
)
)
)
@ -890,8 +890,8 @@
(-> obj volume)
(-> obj pitch)
0
(the-as uint 1)
(-> obj trans)
1
(the-as symbol (-> obj trans))
)
)
)
@ -905,8 +905,8 @@
(-> obj volume)
(-> obj pitch)
0
(the-as uint 1)
(-> obj trans)
1
(the-as symbol (-> obj trans))
)
)
(set!

View File

@ -3092,8 +3092,8 @@
1024
0
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
(let ((s5-1 (new 'stack 'rgbaf))
(s3-0 (-> *display* base-frame-counter))
@ -3301,7 +3301,3 @@
)
)
)

View File

@ -932,8 +932,8 @@
1024
0
0
(the-as uint 1)
(the-as vector #t)
1
#t
)
0
(none)
@ -1252,7 +1252,7 @@
0
2
((1 (meters 999999)))
:bounds (static-spherem 0 1 0 1.6)
:bounds (static-spherem 0 1 0 1.600000023841858)
:longest-edge (meters 0)
:texture-level 2
)

View File

@ -11,6 +11,7 @@
(damp-period float :offset-assert 24)
(ticks float :offset-assert 28)
)
:pack-me
:method-count-assert 15
:size-assert #x20
:flag-assert #xf00000020

Some files were not shown because too many files have changed in this diff Show More