mirror of
https://github.com/open-goal/jak-project
synced 2026-08-06 09:54:10 -04:00
d/jak2: finish vol | cam-layout | menu | default-menu and start working on nav code (#1867)
I also added font-color names since this PR adds quite a few: 
This commit is contained in:
+1
-1
@@ -55,7 +55,7 @@ tasks:
|
||||
- sh: test -f {{.GK_BIN_RELEASE_DIR}}/gk{{.EXE_FILE_EXTENSION}}
|
||||
msg: "Couldn't locate runtime executable in '{{.GK_BIN_RELEASE_DIR}}/gk'"
|
||||
cmds:
|
||||
- "{{.GK_BIN_RELEASE_DIR}}/gk -fakeiso -debug -v"
|
||||
- "{{.GK_BIN_RELEASE_DIR}}/gk -fakeiso -debug -{{.GAME}} -v"
|
||||
# DEVELOPMENT
|
||||
repl:
|
||||
desc: "Start the REPL"
|
||||
|
||||
+570
-480
File diff suppressed because it is too large
Load Diff
@@ -220,7 +220,7 @@
|
||||
[189, "(function none)"],
|
||||
[190, "(function none)"],
|
||||
[191, "(function symbol debug-menu-msg float float float)"],
|
||||
[193, "(function symbol int object)"],
|
||||
[193, "(function symbol debug-menu-msg object)"],
|
||||
[198, "(function debug-menu debug-menu symbol)"],
|
||||
[199, "(function debug-menu debug-menu symbol)"],
|
||||
[200, "(function debug-menu debug-menu symbol)"],
|
||||
|
||||
@@ -58,7 +58,6 @@
|
||||
"(method 224 bot)",
|
||||
"(method 77 rapid-gunner)",
|
||||
// until loop without nop:
|
||||
"cam-layout-entity-volume-info-create",
|
||||
"process-drawable-shock-skel-effect",
|
||||
"target-history-print",
|
||||
"display-list-control",
|
||||
@@ -196,6 +195,13 @@
|
||||
"debug-menu-context-make-default-menus",
|
||||
"debug-menu-make-task-menu",
|
||||
"(method 19 gui-control)",
|
||||
// menu
|
||||
"debug-menu-rebuild",
|
||||
"debug-menu-find-from-template",
|
||||
"debug-menu-render",
|
||||
"debug-menu-context-select-next-or-prev-item",
|
||||
"debug-menu-context-select-new-item",
|
||||
"debug-menu-send-msg",
|
||||
// airlock
|
||||
"(method 24 com-airlock)",
|
||||
"(method 19 gui-control)",
|
||||
@@ -241,7 +247,17 @@
|
||||
"(method 11 perf-stat)": [0],
|
||||
"(method 22 gui-control)": [117, 121, 127, 128, 129, 139],
|
||||
"bsp-camera-asm": [1, 2, 3, 4, 6, 7],
|
||||
"level-remap-texture": [2, 3, 4, 5, 6]
|
||||
"level-remap-texture": [2, 3, 4, 5, 6],
|
||||
"(method 27 nav-mesh)": [0, 1, 2, 4, 5],
|
||||
"(method 31 nav-mesh)": [0, 1, 2, 7, 8, 9, 11, 12, 13, 15],
|
||||
"(method 45 nav-mesh)": [1, 4, 5, 8],
|
||||
"(method 46 nav-mesh)": [1, 2, 3, 5],
|
||||
"(method 32 nav-mesh)": [0, 1, 2, 4],
|
||||
"(method 33 nav-mesh)": [0, 1, 2, 4],
|
||||
"(method 42 nav-mesh)": [1, 2, 3, 7],
|
||||
"point-poly-distance-min": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12],
|
||||
"(method 34 nav-mesh)": [1, 2, 3, 7],
|
||||
"(method 35 nav-mesh)": [2, 4]
|
||||
},
|
||||
|
||||
// Sometimes the game might use format strings that are fetched dynamically,
|
||||
@@ -255,7 +271,9 @@
|
||||
"collide-do-primitives",
|
||||
"moving-sphere-triangle-intersect",
|
||||
"calc-animation-from-spr",
|
||||
"draw-string-asm", "draw-string", "get-string-length",
|
||||
"draw-string-asm",
|
||||
"draw-string",
|
||||
"get-string-length",
|
||||
"init-boundary-regs"
|
||||
],
|
||||
|
||||
|
||||
@@ -166,5 +166,23 @@
|
||||
["L479", "vector"],
|
||||
["L474", "vector"]
|
||||
],
|
||||
"merc-vu1": [["L1", "vu-function"]]
|
||||
"merc-vu1": [["L1", "vu-function"]],
|
||||
"cam-layout": [
|
||||
["L784", "vector4w"], // needed or it guesses pointer and hits an assert
|
||||
["L791", "vector4w"],
|
||||
["L793", "vector4w"],
|
||||
["L795", "vector4w"],
|
||||
["L797", "vector4w"],
|
||||
["L799", "vector4w"],
|
||||
["L801", "vector4w"],
|
||||
["L888", "(pointer uint64)", 1],
|
||||
["L891", "(pointer uint64)", 1],
|
||||
["L892", "(pointer uint64)", 1],
|
||||
["L893", "(pointer uint64)", 1],
|
||||
["L894", "(pointer uint64)", 1],
|
||||
["L895", "(pointer uint64)", 1],
|
||||
["L896", "(pointer uint64)", 1],
|
||||
["L897", "(pointer uint64)", 1]
|
||||
],
|
||||
"nav-mesh": [["L347", "(inline-array vector)", 2]]
|
||||
}
|
||||
|
||||
@@ -227,9 +227,7 @@
|
||||
[112, "vector"],
|
||||
[128, "vector"]
|
||||
],
|
||||
"add-debug-sphere-with-transform": [
|
||||
[16, "vector"]
|
||||
],
|
||||
"add-debug-sphere-with-transform": [[16, "vector"]],
|
||||
"add-debug-line-sphere": [
|
||||
[48, "matrix"],
|
||||
[112, "matrix"],
|
||||
@@ -244,15 +242,9 @@
|
||||
[16, "vector"],
|
||||
[32, "vector"]
|
||||
],
|
||||
"add-debug-vector": [
|
||||
[16, "vector"]
|
||||
],
|
||||
"add-debug-quaternion": [
|
||||
[16, "matrix"]
|
||||
],
|
||||
"add-debug-yrot-vector": [
|
||||
[16, "vector"]
|
||||
],
|
||||
"add-debug-vector": [[16, "vector"]],
|
||||
"add-debug-quaternion": [[16, "matrix"]],
|
||||
"add-debug-yrot-vector": [[16, "vector"]],
|
||||
"add-debug-arc": [
|
||||
[16, "vector"],
|
||||
[32, "vector"]
|
||||
@@ -261,15 +253,9 @@
|
||||
[16, "vector"],
|
||||
[32, "vector"]
|
||||
],
|
||||
"add-debug-points": [
|
||||
[16, "vector"]
|
||||
],
|
||||
"add-debug-light": [
|
||||
[16, "vector"]
|
||||
],
|
||||
"add-debug-cursor": [
|
||||
[16, "vector"]
|
||||
],
|
||||
"add-debug-points": [[16, "vector"]],
|
||||
"add-debug-light": [[16, "vector"]],
|
||||
"add-debug-cursor": [[16, "vector"]],
|
||||
"dma-timeout-cam": [
|
||||
[16, "vector"],
|
||||
[32, "matrix"]
|
||||
@@ -289,7 +275,6 @@
|
||||
[48, "vector"],
|
||||
[64, "vector"]
|
||||
],
|
||||
|
||||
"matrix-3x3-triple-transpose-product": [[16, ["inline-array", "matrix", 3]]],
|
||||
"(method 14 rigid-body)": [[16, "quaternion"]],
|
||||
"(method 19 rigid-body)": [
|
||||
@@ -538,36 +523,20 @@
|
||||
[32, "vector"],
|
||||
[48, "vector"]
|
||||
],
|
||||
"build-conversions": [
|
||||
[16, "vector"]
|
||||
],
|
||||
"warp-vector-into-surface!": [
|
||||
[16, "matrix"]
|
||||
],
|
||||
"vector<-pad-in-matrix!": [
|
||||
[16, "vector"]
|
||||
],
|
||||
"target-no-ja-move-post": [
|
||||
[16, "overlaps-others-params"]
|
||||
],
|
||||
"do-target-gspot": [
|
||||
[16, "collide-query"]
|
||||
],
|
||||
"target-no-move-post": [
|
||||
[16, "overlaps-others-params"]
|
||||
],
|
||||
"build-conversions": [[16, "vector"]],
|
||||
"warp-vector-into-surface!": [[16, "matrix"]],
|
||||
"vector<-pad-in-matrix!": [[16, "vector"]],
|
||||
"target-no-ja-move-post": [[16, "overlaps-others-params"]],
|
||||
"do-target-gspot": [[16, "collide-query"]],
|
||||
"target-no-move-post": [[16, "overlaps-others-params"]],
|
||||
"add-gravity": [
|
||||
[16, "vector"],
|
||||
[32, "vector"],
|
||||
[48, "vector"],
|
||||
[64, "vector"]
|
||||
],
|
||||
"target-no-stick-post": [
|
||||
[32, "collide-query"]
|
||||
],
|
||||
"target-swim-post": [
|
||||
[32, "collide-query"]
|
||||
],
|
||||
"target-no-stick-post": [[32, "collide-query"]],
|
||||
"target-swim-post": [[32, "collide-query"]],
|
||||
"target-real-post": [
|
||||
[16, "vector"],
|
||||
[32, "vector"],
|
||||
@@ -597,9 +566,7 @@
|
||||
[16, "event-message-block"],
|
||||
[96, "bone"]
|
||||
],
|
||||
"bend-gravity": [
|
||||
[32, "vector"]
|
||||
],
|
||||
"bend-gravity": [[32, "vector"]],
|
||||
"wall-hide?": [
|
||||
[16, "collide-query"],
|
||||
[560, "vector"],
|
||||
@@ -622,12 +589,8 @@
|
||||
[96, "vector"],
|
||||
[112, "vector"]
|
||||
],
|
||||
"do-rotations2": [
|
||||
[16, "vector"]
|
||||
],
|
||||
"tobot-init": [
|
||||
[16, "event-message-block"]
|
||||
],
|
||||
"do-rotations2": [[16, "vector"]],
|
||||
"tobot-init": [[16, "event-message-block"]],
|
||||
"target-update-ik": [
|
||||
[16, "collide-query"],
|
||||
[560, "vector"],
|
||||
@@ -648,9 +611,7 @@
|
||||
[96, "vector"],
|
||||
[112, "vector"]
|
||||
],
|
||||
"draw-history": [
|
||||
[16, "history-iterator"]
|
||||
],
|
||||
"draw-history": [[16, "history-iterator"]],
|
||||
"target-collision-reaction": [
|
||||
[16, "vector"],
|
||||
[32, "vector"],
|
||||
@@ -667,8 +628,82 @@
|
||||
[128, "vector"],
|
||||
[144, "vector"]
|
||||
],
|
||||
"target-move-dist": [
|
||||
[16, "vector"]
|
||||
"target-move-dist": [[16, "vector"]],
|
||||
"cam-layout-entity-volume-info-create": [
|
||||
// needed to prevent hang
|
||||
[32, "vector"],
|
||||
[48, "vector"],
|
||||
[64, "vector"],
|
||||
[80, "vector"],
|
||||
[96, "vector"],
|
||||
[112, "vector"],
|
||||
[128, "vector"],
|
||||
[144, "vector"]
|
||||
],
|
||||
"cam-layout-entity-info": [
|
||||
// needed to prevent a hang
|
||||
[16, "matrix"],
|
||||
[80, "vector"],
|
||||
[96, "vector"],
|
||||
[112, "vector"],
|
||||
[128, "vector"],
|
||||
[144, "curve"],
|
||||
[176, "vector"],
|
||||
[192, "vector"],
|
||||
[208, "vector"],
|
||||
[224, "curve"],
|
||||
[256, "vector"],
|
||||
[272, "vector"],
|
||||
[288, "vector"],
|
||||
[304, "curve"],
|
||||
[336, "vector"],
|
||||
[352, "vector"],
|
||||
[368, "interp-test-info"],
|
||||
[432, "vector"]
|
||||
],
|
||||
"clmf-pos-rot": [
|
||||
// needed to prevent a hang
|
||||
[16, "vector"],
|
||||
[32, "vector"],
|
||||
[48, "matrix"],
|
||||
[112, "matrix"],
|
||||
[176, "vector"]
|
||||
],
|
||||
"(method 9 plane-volume)": [
|
||||
// needed to prevent a hang
|
||||
[16, "vector"],
|
||||
[32, "vector"],
|
||||
[48, "vector"],
|
||||
[64, "vector"],
|
||||
[80, "vector"],
|
||||
[96, "vector"],
|
||||
[112, "vector"],
|
||||
[128, "vector"]
|
||||
],
|
||||
"(method 31 entity-actor)": [[16, "nav-find-poly-parms"]],
|
||||
"(method 32 entity-actor)": [[32, "nav-find-poly-parms"]],
|
||||
"(method 36 nav-mesh)": [[16, "nav-route-portal"]],
|
||||
"(method 13 nav-engine)": [[16, "nav-vertex"]],
|
||||
"(method 12 nav-mesh)": [[16, "nav-vertex"]],
|
||||
"(method 44 nav-mesh)": [[32, "nav-poly"]],
|
||||
"(method 15 nav-mesh)": [[16, "vector"]],
|
||||
"(method 40 nav-mesh)": [
|
||||
[16, "vector"],
|
||||
[32, "vector"]
|
||||
],
|
||||
"find-nearest-nav-mesh": [[16, "nav-find-poly-parms"]],
|
||||
"(method 10 nav-mesh)": [[32, "nav-find-poly-parms"]],
|
||||
"(method 34 nav-mesh)": [[16, "nav-poly"]],
|
||||
"(method 9 nav-mesh)": [[16, "vector"]],
|
||||
"debug-nav-validate-current-poly": [[16, "vector"]],
|
||||
"(method 11 nav-control)": [[16, "nav-find-poly-parms"]],
|
||||
"(method 15 nav-control)": [[16, "nav-find-poly-parms"]],
|
||||
"(method 16 nav-control)": [[16, "nav-find-poly-parms"]],
|
||||
"(method 46 nav-control)": [[16, "find-nav-sphere-ids-params"]],
|
||||
"circle-tangent-directions": [
|
||||
[16, "vector"],
|
||||
[32, "vector"],
|
||||
[48, "vector"]
|
||||
],
|
||||
"(trans close com-airlock)": [[16, "script-context"]],
|
||||
"traj3d-calc-initial-velocity-using-tilt": [[16, "traj2d-params"]],
|
||||
|
||||
@@ -929,9 +929,7 @@
|
||||
"joint-mod-joint-set-world-handler": [[[6, 197], "s5", "joint-mod"]],
|
||||
"joint-mod-joint-set*-handler": [[[2, 39], "s5", "joint-mod"]],
|
||||
"joint-mod-joint-set*-world-handler": [[[4, 53], "s5", "joint-mod"]],
|
||||
"joint-mod-debug-draw": [
|
||||
[8, "a3", "float"]
|
||||
],
|
||||
"joint-mod-debug-draw": [[8, "a3", "float"]],
|
||||
"glst-find-node-by-name": [
|
||||
[6, "s5", "glst-named-node"],
|
||||
[7, "v1", "glst-named-node"]
|
||||
@@ -1437,7 +1435,6 @@
|
||||
[35, "s3", "pointer"]
|
||||
],
|
||||
"sp-process-particle-system": [[14, "a1", "vector"]],
|
||||
|
||||
// debug
|
||||
"add-debug-point": [
|
||||
[[35, 39], "a3", "dma-packet"],
|
||||
@@ -1458,9 +1455,7 @@
|
||||
[[107, 267], "a0", "(pointer uint64)"],
|
||||
[[268, 273], "a0", "dma-packet"]
|
||||
],
|
||||
"internal-draw-debug-text-3d": [
|
||||
[[53, 56], "v1", "dma-packet"]
|
||||
],
|
||||
"internal-draw-debug-text-3d": [[[53, 56], "v1", "dma-packet"]],
|
||||
"add-debug-flat-triangle": [
|
||||
[[70, 76], "a3", "dma-packet"],
|
||||
[[79, 85], "a3", "gs-gif-tag"],
|
||||
@@ -1481,38 +1476,22 @@
|
||||
[[17, 20], "t0", "float"],
|
||||
[[22, 29], "t0", "float"]
|
||||
],
|
||||
"add-debug-cspace": [
|
||||
[[4, 6], "a3", "float"]
|
||||
],
|
||||
"add-debug-points": [
|
||||
[[52, 57], "a3", "rgba"]
|
||||
],
|
||||
"debug-percent-bar": [
|
||||
[[44, 49], "v1", "dma-packet"]
|
||||
],
|
||||
"debug-pad-display": [
|
||||
[[72, 77], "v1", "dma-packet"]
|
||||
],
|
||||
"add-debug-light": [
|
||||
[[17, 20], "t0", "float"]
|
||||
],
|
||||
"drawable-frag-count": [
|
||||
[[14, 20], "s5", "drawable-group"]
|
||||
],
|
||||
"add-debug-cursor": [
|
||||
[[35, 40], "v1", "dma-packet"]
|
||||
],
|
||||
"add-debug-cspace": [[[4, 6], "a3", "float"]],
|
||||
"add-debug-points": [[[52, 57], "a3", "rgba"]],
|
||||
"debug-percent-bar": [[[44, 49], "v1", "dma-packet"]],
|
||||
"debug-pad-display": [[[72, 77], "v1", "dma-packet"]],
|
||||
"add-debug-light": [[[17, 20], "t0", "float"]],
|
||||
"drawable-frag-count": [[[14, 20], "s5", "drawable-group"]],
|
||||
"add-debug-cursor": [[[35, 40], "v1", "dma-packet"]],
|
||||
"add-boundary-shader": [
|
||||
[[6, 12], "a0", "gs-gif-tag"],
|
||||
[[14, 31], "s5", "adgif-shader"]
|
||||
],
|
||||
|
||||
// debug-sphere
|
||||
"add-debug-sphere-from-table": [
|
||||
[[38, 41], "v1", "vector"],
|
||||
[[55, 59], "s0", "(inline-array vector)"]
|
||||
],
|
||||
|
||||
"drawable-load": [[[25, 28], "s5", "drawable"]],
|
||||
"art-load": [[[13, 16], "s5", "art"]],
|
||||
"art-group-load-check": [[[43, 53], "s3", "art-group"]],
|
||||
@@ -1553,32 +1532,22 @@
|
||||
[14, "v1", "gui-connection"]
|
||||
],
|
||||
"(method 10 gui-control)": [[[4, 32], "s3", "gui-connection"]],
|
||||
|
||||
"(method 10 bsp-header)": [
|
||||
[49, "a3", "(pointer uint128)"]
|
||||
],
|
||||
|
||||
"(method 10 bsp-header)": [[49, "a3", "(pointer uint128)"]],
|
||||
"bsp-camera-asm": [
|
||||
[26, "v1", "pointer"],
|
||||
[[26, 63], "t1", "bsp-node"],
|
||||
[43, "t3", "uint"]
|
||||
],
|
||||
|
||||
"ja-post": [
|
||||
[[42, 46], "a0", "collide-shape"]
|
||||
],
|
||||
|
||||
"ja-post": [[[42, 46], "a0", "collide-shape"]],
|
||||
"display-frame-start": [
|
||||
[4, "v1", "vif-bank"],
|
||||
[9, "a0", "vif-bank"]
|
||||
],
|
||||
|
||||
"display-frame-finish": [
|
||||
[[178, 185], "a0", "dma-packet"],
|
||||
[[193, 194], "a0", "dma-packet"],
|
||||
[194, "a0", "(pointer int64)"]
|
||||
],
|
||||
|
||||
"default-end-buffer": [
|
||||
[9, "v1", "dma-bucket"],
|
||||
[[20, 28], "t1", "dma-packet"],
|
||||
@@ -1604,7 +1573,6 @@
|
||||
[[79, 82], "a1", "dma-packet"],
|
||||
[85, "a1", "dma-bucket"]
|
||||
],
|
||||
|
||||
"default-init-buffer": [
|
||||
[[20, 28], "t1", "dma-packet"],
|
||||
[[30, 36], "t1", "gs-gif-tag"],
|
||||
@@ -1779,9 +1747,7 @@
|
||||
[23, "v1", "fact-info-target"],
|
||||
[29, "v1", "fact-info-target"]
|
||||
],
|
||||
"target-real-post": [
|
||||
[97, "f28", "float"]
|
||||
],
|
||||
"target-real-post": [[97, "f28", "float"]],
|
||||
"target-compute-pole": [
|
||||
[12, "s2", "swingpole"],
|
||||
[20, "s2", "swingpole"],
|
||||
@@ -1791,20 +1757,114 @@
|
||||
[99, "s2", "swingpole"],
|
||||
[122, "s2", "swingpole"]
|
||||
],
|
||||
"tobot-start": [
|
||||
[26, "s5", "target"]
|
||||
"tobot-start": [[26, "s5", "target"]],
|
||||
"(method 10 target)": [[28, "t9", "(function target none)"]],
|
||||
"target-compute-edge": [[48, "a0", "process-drawable"]],
|
||||
"target-compute-edge-rider": [[48, "a0", "process-drawable"]],
|
||||
"target-update-ik": [[288, "f30", "float"]],
|
||||
"cam-layout-entity-volume-info-create": [
|
||||
["_stack_", 16, "res-tag"],
|
||||
[16, "v0", "(inline-array vector)"],
|
||||
[223, "v1", "float"],
|
||||
[254, "v1", "float"],
|
||||
[258, "v1", "float"],
|
||||
[282, "v1", "float"],
|
||||
[325, "f0", "float"]
|
||||
],
|
||||
"(method 10 target)": [
|
||||
[28, "t9", "(function target none)"]
|
||||
"cam-layout-entity-info": [
|
||||
// can't just cast the return value from the res-tag retrieval
|
||||
[202, "v1", "vector"]
|
||||
],
|
||||
"target-compute-edge": [
|
||||
[48, "a0", "process-drawable"]
|
||||
"clmf-next-entity": [[38, "a0", "connection"]],
|
||||
"cam-layout-save-cam-rot": [[13, "v0", "vector"]],
|
||||
"cam-layout-save-cam-trans": [
|
||||
[29, "v0", "vector"],
|
||||
[40, "v0", "vector"],
|
||||
// super weird handling of vectors
|
||||
[93, "s5", "symbol"],
|
||||
[95, "s2", "symbol"],
|
||||
[94, "s2", "symbol"]
|
||||
],
|
||||
"target-compute-edge-rider": [
|
||||
[48, "a0", "process-drawable"]
|
||||
"cam-layout-save-pivot": [
|
||||
[38, "v0", "vector"],
|
||||
[13, "v0", "vector"]
|
||||
],
|
||||
"target-update-ik": [
|
||||
[288, "f30", "float"]
|
||||
"cam-layout-save-align": [
|
||||
[38, "v0", "vector"],
|
||||
[13, "v0", "vector"]
|
||||
],
|
||||
"cam-layout-save-interesting": [
|
||||
[38, "v0", "vector"],
|
||||
[13, "v0", "vector"]
|
||||
],
|
||||
"cam-layout-save-splineoffset": [[37, "v0", "vector"]],
|
||||
"cam-layout-save-campointsoffset": [[12, "v0", "vector"]],
|
||||
"clmf-save-all": [[18, "v1", "connection"]],
|
||||
"cam-layout-do-action": [[99, "s5", "(function object symbol symbol)"]],
|
||||
"cam-layout-function-call": [[15, "gp", "(function string int basic none)"]],
|
||||
"cam-layout-do-menu": [
|
||||
[[280, 363], "s4", "clm-list"],
|
||||
[374, "v1", "clm-item"],
|
||||
[[136, 182], "s3", "clm-list"],
|
||||
[209, "a0", "clm-item"],
|
||||
[219, "v1", "clm-item"],
|
||||
[234, "s3", "clm-item"],
|
||||
[239, "v1", "clm-item"],
|
||||
[244, "s3", "clm-item"]
|
||||
],
|
||||
"cam-layout-init": [[10, "v1", "connection"]],
|
||||
"cam-layout-print": [[[21, 24], "v1", "dma-packet"]],
|
||||
"clmf-pos-rot": [
|
||||
[68, "a1", "res-tag"],
|
||||
[139, "v1", "res-tag"],
|
||||
[82, "v0", "vector"]
|
||||
],
|
||||
"clmf-cam-float-adjust": [[53, "v1", "res-tag"]],
|
||||
"(method 9 plane-volume)": [
|
||||
[185, "v1", "float"],
|
||||
[216, "v1", "float"],
|
||||
[241, "v1", "float"],
|
||||
[281, "f0", "float"],
|
||||
[220, "v1", "float"]
|
||||
],
|
||||
"(method 45 nav-mesh)": [[15, "v1", "entity-nav-mesh"]],
|
||||
"(method 13 nav-engine)": [
|
||||
[[53, 65], "s4", "nav-mesh"],
|
||||
[[38, 50], "s3", "nav-mesh"]
|
||||
],
|
||||
"(method 9 nav-mesh)": [[[81, 134], "s4", "nav-poly"]],
|
||||
"(method 37 nav-mesh)": [[[4, 18], "a1", "(inline-array vector)"]],
|
||||
"debug-menu-item-var-update-display-str": [
|
||||
[[44, 49], "v1", "int"],
|
||||
[[61, 69], "v1", "int"]
|
||||
],
|
||||
"debug-menu-item-var-make-float": [[31, "v0", "int"]],
|
||||
"debug-menu-item-get-max-width": [[[18, 35], "a0", "debug-menu-item-var"]],
|
||||
"debug-menu-find-from-template": [
|
||||
[10, "s4", "debug-menu-item"],
|
||||
[18, "s4", "debug-menu-item-submenu"],
|
||||
[3, "s5", "debug-menu"]
|
||||
],
|
||||
"debug-menu-item-var-joypad-handler": [
|
||||
[206, "a1", "int"],
|
||||
[207, "v1", "int"]
|
||||
],
|
||||
"debug-menu-rebuild": [[7, "a0", "debug-menu-item"]],
|
||||
"debug-menu-render": [
|
||||
[[45, 49], "v1", "dma-packet"],
|
||||
[[108, 111], "v1", "dma-packet"]
|
||||
],
|
||||
"debug-menu-item-submenu-render": [[[39, 44], "v1", "dma-packet"]],
|
||||
"debug-menu-item-flag-render": [[[44, 49], "v1", "dma-packet"]],
|
||||
"debug-menu-item-function-render": [[[46, 51], "v1", "dma-packet"]],
|
||||
"debug-menu-item-var-render": [[[94, 98], "v1", "dma-packet"]],
|
||||
"debug-menu-send-msg": [
|
||||
[[3, 14], "s2", "debug-menu-item"],
|
||||
[[14, 21], "s2", "debug-menu-item-submenu"]
|
||||
],
|
||||
"(anon-function 86 default-menu)": [
|
||||
// TODO - should not be required
|
||||
[9, "a0", "state-flags"]
|
||||
],
|
||||
"(anon-function 2 find-nearest)": [
|
||||
[28, "s3", "collide-shape"],
|
||||
@@ -1865,7 +1925,7 @@
|
||||
[582, "a0", "editable"],
|
||||
[611, "a0", "editable"]
|
||||
],
|
||||
|
||||
|
||||
"(event idle editable-player)": [
|
||||
[351, "s4", "editable-light"],
|
||||
[409, "s4", "editable-light"],
|
||||
|
||||
@@ -348,7 +348,15 @@
|
||||
}
|
||||
},
|
||||
"add-debug-line": {
|
||||
"args": ["enable", "bucket", "start", "end", "start-color", "mode", "end-color"],
|
||||
"args": [
|
||||
"enable",
|
||||
"bucket",
|
||||
"start",
|
||||
"end",
|
||||
"start-color",
|
||||
"mode",
|
||||
"end-color"
|
||||
],
|
||||
"vars": {
|
||||
"v1-2": "line"
|
||||
}
|
||||
@@ -476,7 +484,16 @@
|
||||
}
|
||||
},
|
||||
"add-debug-arc": {
|
||||
"args": ["enable", "bucket", "position", "start-angle", "end-angle", "radius", "color", "orientation"],
|
||||
"args": [
|
||||
"enable",
|
||||
"bucket",
|
||||
"position",
|
||||
"start-angle",
|
||||
"end-angle",
|
||||
"radius",
|
||||
"color",
|
||||
"orientation"
|
||||
],
|
||||
"vars": {
|
||||
"f30-0": "angle",
|
||||
"sv-80": "i",
|
||||
@@ -485,7 +502,15 @@
|
||||
}
|
||||
},
|
||||
"add-debug-curve": {
|
||||
"args": ["enable", "bucket", "cverts", "num-cverts", "knots", "num-knots", "color"],
|
||||
"args": [
|
||||
"enable",
|
||||
"bucket",
|
||||
"cverts",
|
||||
"num-cverts",
|
||||
"knots",
|
||||
"num-knots",
|
||||
"color"
|
||||
],
|
||||
"vars": {
|
||||
"sv-80": "i",
|
||||
"s0-0": "p0",
|
||||
@@ -497,14 +522,31 @@
|
||||
"args": ["enable", "bucket", "curve", "color", "arg4"]
|
||||
},
|
||||
"add-debug-points": {
|
||||
"args": ["enable", "bucket", "points", "num-points", "color", "y-override", "highlight"],
|
||||
"args": [
|
||||
"enable",
|
||||
"bucket",
|
||||
"points",
|
||||
"num-points",
|
||||
"color",
|
||||
"y-override",
|
||||
"highlight"
|
||||
],
|
||||
"vars": {
|
||||
"s0-0": "i",
|
||||
"sv-96": "position"
|
||||
}
|
||||
},
|
||||
"debug-percent-bar": {
|
||||
"args": ["enable", "bucket", "x", "y", "percentage", "color", "width", "height"],
|
||||
"args": [
|
||||
"enable",
|
||||
"bucket",
|
||||
"x",
|
||||
"y",
|
||||
"percentage",
|
||||
"color",
|
||||
"width",
|
||||
"height"
|
||||
],
|
||||
"vars": {
|
||||
"s0-0": "buf",
|
||||
"s5-0": "tag-start",
|
||||
@@ -648,16 +690,16 @@
|
||||
}
|
||||
},
|
||||
"display-sync": {
|
||||
"arg0":["disp"],
|
||||
"arg0": ["disp"],
|
||||
"vars": {
|
||||
"s4-0" : "just-rendered-frame",
|
||||
"a1-1" : "current-time",
|
||||
"s5-0" : "just-rendered-frame-start-time",
|
||||
"a0-3" : "prev-vblank-time-1",
|
||||
"v1-6" : "prev-vblank-time-2",
|
||||
"s4-0": "just-rendered-frame",
|
||||
"a1-1": "current-time",
|
||||
"s5-0": "just-rendered-frame-start-time",
|
||||
"a0-3": "prev-vblank-time-1",
|
||||
"v1-6": "prev-vblank-time-2",
|
||||
"f28-0": "ticks-per-frame-f",
|
||||
"f1-0" : "frame-duration",
|
||||
"f0-2" : "frame-time-ratio",
|
||||
"f1-0": "frame-duration",
|
||||
"f0-2": "frame-time-ratio",
|
||||
"f26-0": "vysnc-progress",
|
||||
"f30-0": "last-dog",
|
||||
"f30-1": "next-dog",
|
||||
@@ -693,5 +735,8 @@
|
||||
"s4-0": ["geo", "merc-fragment"],
|
||||
"s5-0": ["ctrl", "merc-fragment-control"]
|
||||
}
|
||||
},
|
||||
"add-nav-sphere": {
|
||||
"args": ["nav", "sphere", "max-spheres"]
|
||||
}
|
||||
}
|
||||
|
||||
@@ -436,9 +436,9 @@ goos::Object decomp_ref_to_inline_array_guess_size(
|
||||
|
||||
// verify the stride matches the type system
|
||||
auto elt_type_info = ts.lookup_type(array_elt_type);
|
||||
int ye = align(elt_type_info->get_size_in_memory(),
|
||||
elt_type_info->get_inline_array_stride_alignment());
|
||||
ASSERT(stride == ye);
|
||||
int elt_size = align(elt_type_info->get_size_in_memory(),
|
||||
elt_type_info->get_inline_array_stride_alignment());
|
||||
ASSERT(stride == elt_size);
|
||||
|
||||
// the input is the location of the data field.
|
||||
// we expect that to be a label:
|
||||
@@ -573,6 +573,29 @@ goos::Object nav_mesh_poly_arr_decompile(const std::vector<LinkedWord>& words,
|
||||
file, TypeSpec("nav-poly"), 8);
|
||||
}
|
||||
|
||||
goos::Object nav_mesh_poly_arr_jak2_decompile(const std::vector<LinkedWord>& words,
|
||||
const std::vector<DecompilerLabel>& labels,
|
||||
int my_seg,
|
||||
int field_location,
|
||||
const TypeSystem& ts,
|
||||
const std::vector<std::vector<LinkedWord>>& all_words,
|
||||
const LinkedObjectFile* file) {
|
||||
return decomp_ref_to_inline_array_guess_size(words, labels, my_seg, field_location, ts, all_words,
|
||||
file, TypeSpec("nav-poly"), 64);
|
||||
}
|
||||
|
||||
goos::Object nav_mesh_nav_control_arr_decompile(
|
||||
const std::vector<LinkedWord>& words,
|
||||
const std::vector<DecompilerLabel>& labels,
|
||||
int my_seg,
|
||||
int field_location,
|
||||
const TypeSystem& ts,
|
||||
const std::vector<std::vector<LinkedWord>>& all_words,
|
||||
const LinkedObjectFile* file) {
|
||||
return decomp_ref_to_inline_array_guess_size(words, labels, my_seg, field_location, ts, all_words,
|
||||
file, TypeSpec("nav-control"), 288);
|
||||
}
|
||||
|
||||
goos::Object nav_mesh_route_arr_decompile(const std::vector<LinkedWord>& words,
|
||||
const std::vector<DecompilerLabel>& labels,
|
||||
int my_seg,
|
||||
@@ -958,6 +981,7 @@ goos::Object decompile_structure(const TypeSpec& type,
|
||||
fmt::format("Dynamic value field {} in static data type {} not yet implemented",
|
||||
field.name(), actual_type.print()));
|
||||
} else {
|
||||
// TODO - this is getting a little unwieldly -- refactor this at some point
|
||||
if (field.name() == "data" && type.print() == "ocean-near-indices") {
|
||||
// first, get the label:
|
||||
field_defs_out.emplace_back(
|
||||
@@ -971,15 +995,28 @@ goos::Object decompile_structure(const TypeSpec& type,
|
||||
field_defs_out.emplace_back(
|
||||
field.name(), sp_field_init_spec_decompile(obj_words, labels, label.target_segment,
|
||||
field_start, ts, words, file));
|
||||
} else if (field.name() == "vertex" && type.print() == "nav-mesh") {
|
||||
} else if (field.name() == "vertex" && type.print() == "nav-mesh" &&
|
||||
file->version == GameVersion::Jak1) {
|
||||
field_defs_out.emplace_back(
|
||||
field.name(), nav_mesh_vertex_arr_decompile(obj_words, labels, label.target_segment,
|
||||
field_start, ts, words, file));
|
||||
} else if (field.name() == "poly" && type.print() == "nav-mesh") {
|
||||
} else if (field.name() == "poly" && type.print() == "nav-mesh" &&
|
||||
file->version == GameVersion::Jak1) {
|
||||
field_defs_out.emplace_back(
|
||||
field.name(), nav_mesh_poly_arr_decompile(obj_words, labels, label.target_segment,
|
||||
field_start, ts, words, file));
|
||||
} else if (field.name() == "route" && type.print() == "nav-mesh") {
|
||||
} else if (field.name() == "poly-array" && type.print() == "nav-mesh" &&
|
||||
file->version == GameVersion::Jak2) {
|
||||
field_defs_out.emplace_back(field.name(), nav_mesh_poly_arr_jak2_decompile(
|
||||
obj_words, labels, label.target_segment,
|
||||
field_start, ts, words, file));
|
||||
} else if (field.name() == "nav-control-array" && type.print() == "nav-mesh" &&
|
||||
file->version == GameVersion::Jak2) {
|
||||
field_defs_out.emplace_back(field.name(), nav_mesh_nav_control_arr_decompile(
|
||||
obj_words, labels, label.target_segment,
|
||||
field_start, ts, words, file));
|
||||
} else if (field.name() == "route" && type.print() == "nav-mesh" &&
|
||||
file->version == GameVersion::Jak1) {
|
||||
field_defs_out.emplace_back(
|
||||
field.name(), nav_mesh_route_arr_decompile(obj_words, labels, label.target_segment,
|
||||
field_start, ts, words, file));
|
||||
|
||||
@@ -7,6 +7,10 @@
|
||||
|
||||
;; todo: some types, method names.
|
||||
|
||||
;; NOTE - for default-menu
|
||||
(define-extern traffic-start (function none))
|
||||
(define-extern traffic-kill (function none))
|
||||
|
||||
;; DECOMP BEGINS
|
||||
|
||||
(define *traffic-manager* (the-as process #f))
|
||||
|
||||
@@ -18,6 +18,14 @@
|
||||
;; NOTE - for cam-states
|
||||
(define-extern cam-collision-record-save (function vector vector int symbol camera-slave none))
|
||||
|
||||
;; NOTE - for cam-layout
|
||||
(define-extern camera-line-setup (function vector4w none))
|
||||
(define-extern camera-line-draw (function vector vector none))
|
||||
(define-extern camera-cross (function vector vector vector vector4w meters none))
|
||||
(define-extern camera-fov-frame (function matrix vector float float float vector4w symbol))
|
||||
(define-extern cam-slave-options->string (function cam-slave-options object string))
|
||||
(define-extern cam-index-options->string (function cam-index-options object string))
|
||||
|
||||
;; DECOMP BEGINS
|
||||
|
||||
(declare-file (debug))
|
||||
|
||||
@@ -200,13 +200,12 @@
|
||||
:nreg #x4
|
||||
)
|
||||
)
|
||||
(set! (-> (the-as gs-gif-tag a3-2) regs)
|
||||
(new 'static 'gif-tag-regs
|
||||
:regs0 (gif-reg-id rgbaq)
|
||||
:regs1 (gif-reg-id xyzf2)
|
||||
:regs2 (gif-reg-id rgbaq)
|
||||
:regs3 (gif-reg-id xyzf2)
|
||||
)
|
||||
(set! (-> (the-as gs-gif-tag a3-2) regs) (new 'static 'gif-tag-regs
|
||||
:regs0 (gif-reg-id rgbaq)
|
||||
:regs1 (gif-reg-id xyzf2)
|
||||
:regs2 (gif-reg-id rgbaq)
|
||||
:regs3 (gif-reg-id xyzf2)
|
||||
)
|
||||
)
|
||||
(set! (-> a1-1 base) (&+ (the-as pointer a3-2) 16))
|
||||
)
|
||||
@@ -1636,6 +1635,10 @@
|
||||
)
|
||||
|
||||
;; WARN: Return type mismatch int vs none.
|
||||
;; WARN: Function may read a register that is not set: t0
|
||||
;; WARN: Function may read a register that is not set: t1
|
||||
;; WARN: Function may read a register that is not set: t2
|
||||
;; WARN: Function may read a register that is not set: t3
|
||||
(defun cam-collision-record-draw ()
|
||||
(cond
|
||||
((cpad-pressed? 0 down)
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -237,6 +237,16 @@
|
||||
(hit-by-others)
|
||||
(player)
|
||||
)
|
||||
|
||||
;; +++nav-flags
|
||||
(defenum nav-flags
|
||||
:type uint8
|
||||
:bitfield #t
|
||||
(nav-flags0 0)
|
||||
(nav-flags1 1)
|
||||
)
|
||||
;; ---nav-flags
|
||||
|
||||
;; DECOMP BEGINS
|
||||
|
||||
(deftype collide-rider (structure)
|
||||
@@ -422,9 +432,9 @@
|
||||
|
||||
(deftype collide-shape (trsqv)
|
||||
((actor-hash-index int16 :offset 12)
|
||||
(process process :offset-assert 140)
|
||||
(process process-drawable :offset-assert 140)
|
||||
(max-iteration-count uint8 :offset-assert 144)
|
||||
(nav-flags uint8 :offset-assert 145)
|
||||
(nav-flags nav-flags :offset-assert 145)
|
||||
(total-prims uint8 :offset-assert 146)
|
||||
(num-riders uint8 :offset-assert 147)
|
||||
(pat-ignore-mask pat-surface :offset-assert 148)
|
||||
@@ -583,7 +593,7 @@
|
||||
(set! (-> s5-0 actor-hash-index) -1)
|
||||
(set! (-> s5-0 process) arg0)
|
||||
(set! (-> s5-0 max-iteration-count) (the-as uint 1))
|
||||
(set! (-> s5-0 nav-flags) (the-as uint 1))
|
||||
(set! (-> s5-0 nav-flags) (nav-flags nav-flags0))
|
||||
(set! (-> s5-0 event-self) #f)
|
||||
(set! (-> s5-0 event-other) #f)
|
||||
(set! (-> s5-0 riders) (the-as pointer #f))
|
||||
|
||||
@@ -5,5 +5,88 @@
|
||||
;; name in dgo: anim-tester
|
||||
;; dgos: ENGINE, GAME
|
||||
|
||||
;; NOTE - for default-menu
|
||||
(define-extern anim-tester-start (function symbol))
|
||||
|
||||
;; DECOMP BEGINS
|
||||
|
||||
(defenum anim-tester-flags
|
||||
:bitfield #t
|
||||
:type int32
|
||||
(fanimt0)
|
||||
(fanimt1)
|
||||
(fanimt2)
|
||||
(fanimt3)
|
||||
(fanimt4)
|
||||
(fanimt5)
|
||||
)
|
||||
|
||||
(defenum anim-tester-debug-flags
|
||||
:bitfield #t
|
||||
:type int32
|
||||
(unk0)
|
||||
(unk1)
|
||||
(unk2)
|
||||
(unk3)
|
||||
(at-show-joint-info)
|
||||
(at-apply-align)
|
||||
(unk6)
|
||||
)
|
||||
|
||||
(deftype list-control (structure)
|
||||
((listfunc (function int list-control symbol) :offset-assert 0)
|
||||
(list-owner uint32 :offset-assert 4)
|
||||
(top int32 :offset-assert 8)
|
||||
(left int32 :offset-assert 12)
|
||||
(list glst-list :offset-assert 16)
|
||||
(the-node glst-node :offset-assert 20)
|
||||
(top-index int32 :offset-assert 24)
|
||||
(the-index int32 :offset-assert 28)
|
||||
(the-disp-line int32 :offset-assert 32)
|
||||
(highlight-index int32 :offset-assert 36)
|
||||
(current-index int32 :offset-assert 40)
|
||||
(numlines int32 :offset-assert 44)
|
||||
(lines-to-disp int32 :offset-assert 48)
|
||||
(charswide int32 :offset-assert 52)
|
||||
(highlight-disp-line int32 :offset-assert 56)
|
||||
(field-id int32 :offset-assert 60)
|
||||
(xpos int32 :offset-assert 64)
|
||||
(ypos int32 :offset-assert 68)
|
||||
(user-info int32 :offset-assert 72)
|
||||
(user-info-u uint32 :offset 72) ;; custom
|
||||
(return-int int32 :offset-assert 76)
|
||||
)
|
||||
:allow-misaligned
|
||||
:method-count-assert 9
|
||||
:size-assert #x50
|
||||
:flag-assert #x900000050
|
||||
)
|
||||
|
||||
(deftype anim-tester (process-drawable)
|
||||
((flags anim-tester-flags :offset-assert 200)
|
||||
(debug-flags anim-tester-debug-flags :offset-assert 204)
|
||||
(obj-list glst-list :inline :offset-assert 208)
|
||||
(current-obj string :offset-assert 224)
|
||||
(speed int32 :offset-assert 228)
|
||||
(list-con list-control :inline :offset-assert 232)
|
||||
(pick-con list-control :inline :offset-assert 312)
|
||||
(item-field int64 :offset-assert 392)
|
||||
(inc-delay int32 :offset-assert 400)
|
||||
(inc-timer int32 :offset-assert 404)
|
||||
(edit-mode int32 :offset-assert 408)
|
||||
(old-mode int32 :offset-assert 412)
|
||||
(anim-speed float :offset-assert 416)
|
||||
(anim-gspeed float :offset-assert 420)
|
||||
(anim-first float :offset-assert 424)
|
||||
(anim-last float :offset-assert 428)
|
||||
)
|
||||
:method-count-assert 20
|
||||
:size-assert #x1b0
|
||||
:heap-base #x130
|
||||
:flag-assert #x14013001b0
|
||||
(:states
|
||||
anim-tester-process
|
||||
)
|
||||
)
|
||||
|
||||
(define-extern *anim-tester* (pointer anim-tester))
|
||||
|
||||
@@ -22,6 +22,8 @@
|
||||
;; NOTE - for debug
|
||||
(define-extern add-debug-sphere (function symbol bucket-id vector meters rgba symbol))
|
||||
|
||||
;; NOTE - for menu
|
||||
;; +++debug-menu-msg
|
||||
(defenum debug-menu-msg
|
||||
:type int32
|
||||
(activate 1)
|
||||
@@ -29,35 +31,28 @@
|
||||
(update 3)
|
||||
(press 4)
|
||||
)
|
||||
;; ---debug-menu-msg
|
||||
|
||||
;; +++debug-menu-dest
|
||||
(defenum debug-menu-dest
|
||||
:type int32
|
||||
(activation 0)
|
||||
(root 1)
|
||||
(open-menus 2)
|
||||
(current-selection 3))
|
||||
;; ---debug-menu-dest
|
||||
|
||||
;; NOTE - for editable-player
|
||||
(declare-type debug-menu basic)
|
||||
(deftype debug-menu-context (basic)
|
||||
((is-active symbol :offset-assert 4) ;; guessed by decompiler
|
||||
(sel-length int32 :offset-assert 8)
|
||||
(sel-menu debug-menu 8 :offset-assert 12) ;; guessed by decompiler
|
||||
(root-menu debug-menu :offset-assert 44) ;; guessed by decompiler
|
||||
(joypad-func (function basic none) :offset-assert 48) ;; guessed by decompiler
|
||||
(joypad-item basic :offset-assert 52)
|
||||
(font font-context :offset-assert 56) ;; guessed by decompiler
|
||||
(is-hidden symbol :offset-assert 60) ;; guessed by decompiler
|
||||
(joypad-number int32 :offset-assert 64)
|
||||
)
|
||||
:method-count-assert 9
|
||||
:size-assert #x44
|
||||
:flag-assert #x900000044
|
||||
)
|
||||
(declare-type debug-menu-node basic)
|
||||
(declare-type debug-menu-item debug-menu-node)
|
||||
(declare-type debug-menu-context basic)
|
||||
(define-extern debug-menu-context-send-msg (function debug-menu-context debug-menu-msg debug-menu-dest debug-menu-context))
|
||||
(define-extern debug-menu-make-from-template (function debug-menu-context pair debug-menu-node))
|
||||
(define-extern debug-menu-func-decode (function object function))
|
||||
(define-extern debug-menu-item-send-msg (function debug-menu-item debug-menu-msg debug-menu-item))
|
||||
(define-extern debug-menu-send-msg (function debug-menu debug-menu-msg symbol debug-menu))
|
||||
(define-extern debug-menus-handler (function debug-menu-context debug-menu-context))
|
||||
|
||||
|
||||
;; DECOMP BEGINS
|
||||
|
||||
(deftype pos-history (structure)
|
||||
|
||||
@@ -1078,7 +1078,7 @@
|
||||
(defun-debug add-debug-text-sphere ((enable symbol) (bucket bucket-id) (position vector) (radius meters) (text string) (color rgba))
|
||||
"Add a debug sphere at the given point, with some text. The color is for the sphere - the text is color 0."
|
||||
(add-debug-sphere enable bucket position radius color)
|
||||
(add-debug-text-3d enable bucket text position (font-color default) (the-as vector2h #f))
|
||||
(add-debug-text-3d enable bucket text position (font-color default-#cddbcd) (the-as vector2h #f))
|
||||
#f
|
||||
)
|
||||
|
||||
@@ -1777,16 +1777,16 @@
|
||||
(+ y -4)
|
||||
(cond
|
||||
((= v1-7 1)
|
||||
(font-color orange-red)
|
||||
(font-color precursor-#ec3b00)
|
||||
)
|
||||
((= v1-7 2)
|
||||
(font-color fc-5)
|
||||
(font-color yellow-#f3f300)
|
||||
)
|
||||
((= v1-7 4)
|
||||
(font-color fc-6)
|
||||
(font-color green-#3df23d)
|
||||
)
|
||||
(else
|
||||
(font-color default)
|
||||
(font-color default-#cddbcd)
|
||||
)
|
||||
)
|
||||
(font-flags shadow)
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -131,7 +131,7 @@
|
||||
(s1-0 318)
|
||||
)
|
||||
(format (clear *temp-string*) "region-~D~%" (-> obj id))
|
||||
(s3-0 s2-0 (the-as bucket-id s1-0) *temp-string* arg0 (font-color one) sv-32)
|
||||
(s3-0 s2-0 (the-as bucket-id s1-0) *temp-string* arg0 (font-color #dadada) sv-32)
|
||||
)
|
||||
(set! (-> sv-32 y) (the-as int (+ (-> sv-32 y) 8)))
|
||||
(when (>= arg1 1)
|
||||
@@ -142,7 +142,7 @@
|
||||
(s1-1 318)
|
||||
)
|
||||
(format (clear *temp-string*) "(on-enter ~S)" s4-1)
|
||||
(s3-1 s2-1 (the-as bucket-id s1-1) *temp-string* arg0 (font-color one) sv-32)
|
||||
(s3-1 s2-1 (the-as bucket-id s1-1) *temp-string* arg0 (font-color #dadada) sv-32)
|
||||
)
|
||||
(set! (-> sv-32 y) (the-as int (+ (-> sv-32 y) 8)))
|
||||
)
|
||||
@@ -154,7 +154,7 @@
|
||||
(s1-2 318)
|
||||
)
|
||||
(format (clear *temp-string*) "(on-inside ~S)" s4-2)
|
||||
(s3-2 s2-2 (the-as bucket-id s1-2) *temp-string* arg0 (font-color one) sv-32)
|
||||
(s3-2 s2-2 (the-as bucket-id s1-2) *temp-string* arg0 (font-color #dadada) sv-32)
|
||||
)
|
||||
(set! (-> sv-32 y) (the-as int (+ (-> sv-32 y) 8)))
|
||||
)
|
||||
@@ -166,7 +166,7 @@
|
||||
(s2-3 318)
|
||||
)
|
||||
(format (clear *temp-string*) "(on-exit ~S)" s5-1)
|
||||
(s4-3 s3-3 (the-as bucket-id s2-3) *temp-string* arg0 (font-color one) sv-32)
|
||||
(s4-3 s3-3 (the-as bucket-id s2-3) *temp-string* arg0 (font-color #dadada) sv-32)
|
||||
)
|
||||
(set! (-> sv-32 y) (the-as int (+ (-> sv-32 y) 8)))
|
||||
)
|
||||
@@ -249,24 +249,30 @@
|
||||
|
||||
;; WARN: Return type mismatch int vs none.
|
||||
(defmethod editable-method-28 editable ((obj editable) (arg0 editable-filter))
|
||||
(let* ((s5-0 (-> obj owner)) (a0-1 (car s5-0))) (while (not (null? s5-0))
|
||||
(editable-method-28 (the-as editable a0-1) arg0)
|
||||
(set! s5-0 (cdr s5-0))
|
||||
(set! a0-1 (car s5-0))
|
||||
)
|
||||
)
|
||||
(let* ((s5-0 (-> obj owner))
|
||||
(a0-1 (car s5-0))
|
||||
)
|
||||
(while (not (null? s5-0))
|
||||
(editable-method-28 (the-as editable a0-1) arg0)
|
||||
(set! s5-0 (cdr s5-0))
|
||||
(set! a0-1 (car s5-0))
|
||||
)
|
||||
)
|
||||
0
|
||||
(none)
|
||||
)
|
||||
|
||||
;; WARN: Return type mismatch int vs symbol.
|
||||
(defmethod editable-method-29 editable ((obj editable) (arg0 editable-filter))
|
||||
(let* ((s5-0 (-> obj owner)) (a0-1 (car s5-0))) (while (not (null? s5-0))
|
||||
(editable-method-29 (the-as editable a0-1) arg0)
|
||||
(set! s5-0 (cdr s5-0))
|
||||
(set! a0-1 (car s5-0))
|
||||
)
|
||||
)
|
||||
(let* ((s5-0 (-> obj owner))
|
||||
(a0-1 (car s5-0))
|
||||
)
|
||||
(while (not (null? s5-0))
|
||||
(editable-method-29 (the-as editable a0-1) arg0)
|
||||
(set! s5-0 (cdr s5-0))
|
||||
(set! a0-1 (car s5-0))
|
||||
)
|
||||
)
|
||||
(the-as symbol 0)
|
||||
)
|
||||
|
||||
@@ -460,12 +466,15 @@
|
||||
)
|
||||
)
|
||||
(logior! (-> obj flags) (editable-flag changed))
|
||||
(let* ((s4-0 (-> obj owner)) (a0-3 (car s4-0))) (while (not (null? s4-0))
|
||||
(editable-method-26 (the-as editable a0-3) obj arg0)
|
||||
(set! s4-0 (cdr s4-0))
|
||||
(set! a0-3 (car s4-0))
|
||||
)
|
||||
)
|
||||
(let* ((s4-0 (-> obj owner))
|
||||
(a0-3 (car s4-0))
|
||||
)
|
||||
(while (not (null? s4-0))
|
||||
(editable-method-26 (the-as editable a0-3) obj arg0)
|
||||
(set! s4-0 (cdr s4-0))
|
||||
(set! a0-3 (car s4-0))
|
||||
)
|
||||
)
|
||||
0
|
||||
(none)
|
||||
)
|
||||
@@ -674,7 +683,7 @@
|
||||
(s5-0 (new 'stack-no-clear 'vector))
|
||||
)
|
||||
(set! (-> a0-1 quad) (-> obj trans quad))
|
||||
(set! (-> a0-1 w) (-> obj radius))
|
||||
(set! (-> a0-1 r) (-> obj radius))
|
||||
(when (sphere-in-view-frustum? a0-1)
|
||||
(reverse-transform-point! s5-0 (-> obj trans) (-> *math-camera* inv-camera-rot vector 2) arg0)
|
||||
(let ((f0-1 (vector-vector-distance (edit-get-trans obj) s5-0)))
|
||||
@@ -978,7 +987,7 @@
|
||||
(s3-1 318)
|
||||
)
|
||||
(format (clear *temp-string*) "~S~%" (-> obj name))
|
||||
(s5-1 s4-1 (the-as bucket-id s3-1) *temp-string* (-> obj trans) (font-color one) (the-as vector2h #f))
|
||||
(s5-1 s4-1 (the-as bucket-id s3-1) *temp-string* (-> obj trans) (font-color #dadada) (the-as vector2h #f))
|
||||
)
|
||||
)
|
||||
((method-of-type editable-sphere editable-method-10) obj)
|
||||
@@ -1170,11 +1179,10 @@
|
||||
(the-as bucket-id s1-1)
|
||||
*temp-string*
|
||||
(-> gp-0 s4-1)
|
||||
(the-as font-color (if (logtest? (-> obj flags) (editable-flag orient))
|
||||
5
|
||||
1
|
||||
)
|
||||
)
|
||||
(if (logtest? (-> obj flags) (editable-flag orient))
|
||||
(font-color yellow-#f3f300)
|
||||
(font-color #dadada)
|
||||
)
|
||||
(the-as vector2h #f)
|
||||
)
|
||||
)
|
||||
@@ -1184,16 +1192,14 @@
|
||||
324
|
||||
(the-as transform gp-0)
|
||||
sv-112
|
||||
(the-as rgba (if (logtest? (-> obj flags) (editable-flag orient))
|
||||
(-> (new 'static 'array uint64 1 #x800000ff) 0)
|
||||
(-> (new 'static 'array uint64 1 #x8000ffff) 0)
|
||||
)
|
||||
)
|
||||
(the-as rgba (if (zero? (logand (-> obj flags) (editable-flag orient)))
|
||||
(-> (new 'static 'array uint64 1 #x800000ff) 0)
|
||||
(-> (new 'static 'array uint64 1 #x8000ffff) 0)
|
||||
)
|
||||
)
|
||||
(if (logtest? (-> obj flags) (editable-flag orient))
|
||||
(the-as rgba (-> (new 'static 'array uint64 1 #x800000ff) 0))
|
||||
(the-as rgba (-> (new 'static 'array uint64 1 #x8000ffff) 0))
|
||||
)
|
||||
(if (zero? (logand (-> obj flags) (editable-flag orient)))
|
||||
(the-as rgba (-> (new 'static 'array uint64 1 #x800000ff) 0))
|
||||
(the-as rgba (-> (new 'static 'array uint64 1 #x8000ffff) 0))
|
||||
)
|
||||
(if (logtest? (-> obj flags) (editable-flag selected))
|
||||
1
|
||||
0
|
||||
@@ -1478,16 +1484,14 @@
|
||||
324
|
||||
(the-as transform gp-0)
|
||||
s4-0
|
||||
(the-as rgba (if (logtest? (-> obj flags) (editable-flag orient))
|
||||
(-> (new 'static 'array uint64 1 #x800000ff) 0)
|
||||
(-> (new 'static 'array uint64 1 #x8000ffff) 0)
|
||||
)
|
||||
)
|
||||
(the-as rgba (if (zero? (logand (-> obj flags) (editable-flag orient)))
|
||||
(-> (new 'static 'array uint64 1 #x800000ff) 0)
|
||||
(-> (new 'static 'array uint64 1 #x8000ffff) 0)
|
||||
)
|
||||
)
|
||||
(if (logtest? (-> obj flags) (editable-flag orient))
|
||||
(the-as rgba (-> (new 'static 'array uint64 1 #x800000ff) 0))
|
||||
(the-as rgba (-> (new 'static 'array uint64 1 #x8000ffff) 0))
|
||||
)
|
||||
(if (zero? (logand (-> obj flags) (editable-flag orient)))
|
||||
(the-as rgba (-> (new 'static 'array uint64 1 #x800000ff) 0))
|
||||
(the-as rgba (-> (new 'static 'array uint64 1 #x8000ffff) 0))
|
||||
)
|
||||
(if (logtest? (-> obj flags) (editable-flag selected))
|
||||
1
|
||||
0
|
||||
@@ -1652,14 +1656,18 @@
|
||||
(let ((gp-0 (-> arg0 region)))
|
||||
(when gp-0
|
||||
(editable-method-25 arg0 obj)
|
||||
(let* ((v1-3 (-> obj length)) (a0-2 0) (a1-4 (-> obj data a0-2))) (while (< a0-2 v1-3)
|
||||
(if (and a1-4 (= arg0 a1-4))
|
||||
(set! (-> obj data a0-2) #f)
|
||||
)
|
||||
(+! a0-2 1)
|
||||
(set! a1-4 (-> obj data a0-2))
|
||||
)
|
||||
)
|
||||
(let* ((v1-3 (-> obj length))
|
||||
(a0-2 0)
|
||||
(a1-4 (-> obj data a0-2))
|
||||
)
|
||||
(while (< a0-2 v1-3)
|
||||
(if (and a1-4 (= arg0 a1-4))
|
||||
(set! (-> obj data a0-2) #f)
|
||||
)
|
||||
(+! a0-2 1)
|
||||
(set! a1-4 (-> obj data a0-2))
|
||||
)
|
||||
)
|
||||
(let* ((v1-6 (-> obj length))
|
||||
(a0-3 0)
|
||||
(a1-14 (-> obj data a0-3))
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -7,3 +7,56 @@
|
||||
|
||||
;; DECOMP BEGINS
|
||||
|
||||
(deftype mysql-nav-node (structure)
|
||||
((mysql-save-flag uint32 :offset-assert 0)
|
||||
(runtime-id uint32 :offset-assert 4)
|
||||
(temp-edge-list basic :offset-assert 8)
|
||||
(level-node-index int32 :offset-assert 12)
|
||||
(cam-dist float :offset-assert 16)
|
||||
(visible basic :offset-assert 20)
|
||||
(nav_node_id uint32 :offset-assert 24)
|
||||
(nav_graph_id uint32 :offset-assert 28)
|
||||
(position vector :inline :offset-assert 32)
|
||||
(level_name basic :offset-assert 48)
|
||||
(angle float :offset-assert 52)
|
||||
(radius float :offset-assert 56)
|
||||
(nav_node_flag uint32 :offset-assert 60)
|
||||
(nav_mesh_id uint32 :offset-assert 64)
|
||||
)
|
||||
:pack-me
|
||||
:method-count-assert 11
|
||||
:size-assert #x44
|
||||
:flag-assert #xb00000044
|
||||
(:methods
|
||||
(mysql-nav-node-method-9 () none 9)
|
||||
(mysql-nav-node-method-10 () none 10)
|
||||
)
|
||||
)
|
||||
|
||||
(deftype mysql-nav-edge (structure)
|
||||
((mysql-save-flag uint32 :offset-assert 0)
|
||||
(runtime-id uint32 :offset-assert 4)
|
||||
(runtime-node-id-1 int32 :offset-assert 8)
|
||||
(runtime-node-id-2 int32 :offset-assert 12)
|
||||
(temp-next-edge mysql-nav-edge :offset-assert 16)
|
||||
(nav_edge_id uint32 :offset-assert 20)
|
||||
(nav_graph_id uint32 :offset-assert 24)
|
||||
(nav_node_id_1 uint32 :offset-assert 28)
|
||||
(nav_node_id_2 uint32 :offset-assert 32)
|
||||
(directionality uint32 :offset-assert 36)
|
||||
(speed_limit float :offset-assert 40)
|
||||
(density float :offset-assert 44)
|
||||
(traffic_edge_flag int32 :offset-assert 48)
|
||||
(nav_clock_mask uint32 :offset-assert 52)
|
||||
(nav_clock_type uint32 :offset-assert 56)
|
||||
(width float :offset-assert 60)
|
||||
(minimap_edge_flag int32 :offset-assert 64)
|
||||
)
|
||||
:pack-me
|
||||
:method-count-assert 10
|
||||
:size-assert #x44
|
||||
:flag-assert #xa00000044
|
||||
(:methods
|
||||
(mysql-nav-edge-method-9 () none 9)
|
||||
)
|
||||
)
|
||||
|
||||
@@ -5,5 +5,96 @@
|
||||
;; name in dgo: nav-graph-editor
|
||||
;; dgos: ENGINE, GAME
|
||||
|
||||
;; NOTE - for default-menu
|
||||
(declare-type nav-graph-editor process)
|
||||
(define-extern get-nav-graph-editor (function nav-graph-editor))
|
||||
(define-extern run-nav-graph-editor (function symbol none))
|
||||
(define-extern exit-nav-graph-editor (function none))
|
||||
|
||||
;; DECOMP BEGINS
|
||||
|
||||
(deftype nav-graph-editor (process)
|
||||
((nav-graph basic :offset-assert 128)
|
||||
(mode uint32 :offset-assert 132)
|
||||
(command-id int32 :offset-assert 136)
|
||||
(max-command int32 :offset-assert 140)
|
||||
(selected-index int32 :offset-assert 144)
|
||||
(selected-dist float :offset-assert 148)
|
||||
(selected-node-edge? basic :offset-assert 152)
|
||||
(closest-node int32 :offset-assert 156)
|
||||
(dist-closest-node float :offset-assert 160)
|
||||
(closest-edge int32 :offset-assert 164)
|
||||
(dist-closest-edge float :offset-assert 168)
|
||||
(mouse-pos vector :inline :offset-assert 176)
|
||||
(mouse-hit vector :inline :offset-assert 192)
|
||||
(mouse-hit-pick vector :inline :offset-assert 208)
|
||||
(mouse-normal vector :inline :offset-assert 224)
|
||||
(mouse-spos-hold vector :inline :offset-assert 240)
|
||||
(edge-src int32 :offset-assert 256)
|
||||
(edge-dst int32 :offset-assert 260)
|
||||
(edge-visibility int32 :offset-assert 264)
|
||||
(vehicle-edit-mode basic :offset-assert 268)
|
||||
(hover-edit-mode basic :offset-assert 272)
|
||||
(clipping-dist float :offset-assert 276)
|
||||
(plane-height float :offset-assert 280)
|
||||
(plane-height-hold float :offset-assert 284)
|
||||
(default-node mysql-nav-node :inline :offset-assert 288)
|
||||
(default-edge mysql-nav-edge :inline :offset-assert 356)
|
||||
(command-array basic :offset-assert 424)
|
||||
)
|
||||
:method-count-assert 64
|
||||
:size-assert #x1ac
|
||||
:flag-assert #x40013001ac
|
||||
(:methods
|
||||
(move-node () _type_ :state 14)
|
||||
(move-plane () _type_ :state 15)
|
||||
(create () _type_ :state 16)
|
||||
(edit-edge () _type_ :state 17)
|
||||
(create-edge () _type_ :state 18)
|
||||
(adjust-plane () _type_ :state 19)
|
||||
(adjust-it () _type_ :state 20)
|
||||
(adjust-minimap () _type_ :state 21)
|
||||
(adjust-node-angle () _type_ :state 22)
|
||||
(adjust-node-radius () _type_ :state 23)
|
||||
(adjust-edge-visibility () _type_ :state 24)
|
||||
(adjust-edge-width () _type_ :state 25)
|
||||
(adjust-edge-density () _type_ :state 26)
|
||||
(draw-closest-minimap () _type_ :state 27)
|
||||
(nav-graph-editor-method-28 () none 28)
|
||||
(nav-graph-editor-method-29 () none 29)
|
||||
(nav-graph-editor-method-30 () none 30)
|
||||
(nav-graph-editor-method-31 () none 31)
|
||||
(nav-graph-editor-method-32 () none 32)
|
||||
(nav-graph-editor-method-33 () none 33)
|
||||
(nav-graph-editor-method-34 () none 34)
|
||||
(nav-graph-editor-method-35 () none 35)
|
||||
(nav-graph-editor-method-36 () none 36)
|
||||
(nav-graph-editor-method-37 () none 37)
|
||||
(nav-graph-editor-method-38 () none 38)
|
||||
(nav-graph-editor-method-39 () none 39)
|
||||
(nav-graph-editor-method-40 () none 40)
|
||||
(nav-graph-editor-method-41 () none 41)
|
||||
(nav-graph-editor-method-42 () none 42)
|
||||
(nav-graph-editor-method-43 () none 43)
|
||||
(nav-graph-editor-method-44 () none 44)
|
||||
(nav-graph-editor-method-45 () none 45)
|
||||
(nav-graph-editor-method-46 () none 46)
|
||||
(nav-graph-editor-method-47 () none 47)
|
||||
(nav-graph-editor-method-48 () none 48)
|
||||
(nav-graph-editor-method-49 () none 49)
|
||||
(nav-graph-editor-method-50 () none 50)
|
||||
(nav-graph-editor-method-51 () none 51)
|
||||
(nav-graph-editor-method-52 () none 52)
|
||||
(nav-graph-editor-method-53 () none 53)
|
||||
(nav-graph-editor-method-54 () none 54)
|
||||
(nav-graph-editor-method-55 () none 55)
|
||||
(nav-graph-editor-method-56 () none 56)
|
||||
(nav-graph-editor-method-57 () none 57)
|
||||
(nav-graph-editor-method-58 () none 58)
|
||||
(nav-graph-editor-method-59 () none 59)
|
||||
(nav-graph-editor-method-60 () none 60)
|
||||
(nav-graph-editor-method-61 () none 61)
|
||||
(nav-graph-editor-method-62 () none 62)
|
||||
(nav-graph-editor-method-63 () none 63)
|
||||
)
|
||||
)
|
||||
|
||||
@@ -9,6 +9,14 @@
|
||||
;; NOTE - for sparticle-launcher and editable
|
||||
(define-extern sphere-in-view-frustum? (function sphere symbol))
|
||||
|
||||
;; NOTE - for default-menu
|
||||
(define-extern *edit-instance* string)
|
||||
(declare-type prototype-bucket basic)
|
||||
(define-extern find-instance-by-name (function string prototype-bucket))
|
||||
(define-extern prototype-bucket-type (function prototype-bucket type))
|
||||
(define-extern print-prototype-list (function none))
|
||||
(define-extern prototype-bucket-recalc-fields (function prototype-bucket prototype-bucket))
|
||||
|
||||
;; DECOMP BEGINS
|
||||
|
||||
(deftype drawable (basic)
|
||||
|
||||
@@ -30,6 +30,13 @@
|
||||
(define-extern process-entity-status! (function process entity-perm-status symbol int))
|
||||
(define-extern process-drawable-from-entity! (function process-drawable entity-actor none))
|
||||
|
||||
(declare-type nav-poly structure)
|
||||
|
||||
;; NOTE - for default-menu
|
||||
(define-extern *compact-actors* symbol)
|
||||
(define-extern debug-actor (function string none))
|
||||
(define-extern reset-actors (function symbol none))
|
||||
|
||||
;; DECOMP BEGINS
|
||||
|
||||
(define *generate-actor-vis* #f)
|
||||
@@ -62,6 +69,7 @@
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
(deftype entity-links (structure)
|
||||
((prev-link entity-links :offset-assert 0)
|
||||
(next-link entity-links :offset-assert 4)
|
||||
@@ -85,6 +93,7 @@
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
(deftype entity-perm-array (inline-array-class)
|
||||
((data entity-perm :inline :dynamic :offset-assert 16)
|
||||
)
|
||||
@@ -92,6 +101,8 @@
|
||||
:size-assert #x10
|
||||
:flag-assert #x900000010
|
||||
)
|
||||
|
||||
|
||||
(set! (-> entity-perm-array heap-base) (the-as uint 16))
|
||||
|
||||
(deftype entity-links-array (inline-array-class)
|
||||
@@ -101,6 +112,8 @@
|
||||
:size-assert #x10
|
||||
:flag-assert #x900000010
|
||||
)
|
||||
|
||||
|
||||
(set! (-> entity-links-array heap-base) (the-as uint 64))
|
||||
|
||||
(deftype entity (res-lump)
|
||||
@@ -111,8 +124,8 @@
|
||||
:size-assert #x34
|
||||
:flag-assert #x1b00000034
|
||||
(:methods
|
||||
(entity-method-22 () none 22)
|
||||
(entity-method-23 () none 23)
|
||||
(entity-method-22 (_type_) _type_ 22)
|
||||
(entity-method-23 (_type_) _type_ 23)
|
||||
(entity-method-24 () none 24)
|
||||
(entity-method-25 () none 25)
|
||||
(entity-method-26 () none 26)
|
||||
@@ -134,8 +147,8 @@
|
||||
:size-assert #x38
|
||||
:flag-assert #x1d00000038
|
||||
(:methods
|
||||
(entity-nav-mesh-method-27 () none 27)
|
||||
(entity-nav-mesh-method-28 () none 28)
|
||||
(entity-nav-mesh-method-27 (_type_) none 27)
|
||||
(debug-draw (_type_) none 28)
|
||||
)
|
||||
)
|
||||
|
||||
@@ -166,8 +179,8 @@
|
||||
(prev-actor (_type_) entity-actor 28)
|
||||
(entity-actor-method-29 () none 29)
|
||||
(entity-actor-method-30 () none 30)
|
||||
(entity-actor-method-31 () none 31)
|
||||
(entity-actor-method-32 () none 32)
|
||||
(entity-actor-method-31 (_type_ vector vector vector object float) nav-mesh 31)
|
||||
(entity-actor-method-32 (_type_ vector vector nav-poly float) nav-poly 32)
|
||||
)
|
||||
)
|
||||
|
||||
@@ -180,6 +193,7 @@
|
||||
:flag-assert #x900000008
|
||||
)
|
||||
|
||||
|
||||
(deftype actor-group (inline-array-class)
|
||||
((data actor-reference :inline :dynamic :offset-assert 16)
|
||||
)
|
||||
@@ -187,20 +201,23 @@
|
||||
:size-assert #x10
|
||||
:flag-assert #x900000010
|
||||
)
|
||||
|
||||
|
||||
(set! (-> actor-group heap-base) (the-as uint 8))
|
||||
|
||||
(deftype entity-info (basic)
|
||||
((ptype type :offset-assert 4)
|
||||
((ptype type :offset-assert 4)
|
||||
(package string :offset-assert 8)
|
||||
(art-group pair :offset-assert 12)
|
||||
(art-group pair :offset-assert 12)
|
||||
(pool symbol :offset-assert 16)
|
||||
(heap-size int32 :offset-assert 20)
|
||||
(heap-size int32 :offset-assert 20)
|
||||
)
|
||||
:method-count-assert 9
|
||||
:size-assert #x18
|
||||
:flag-assert #x900000018
|
||||
)
|
||||
|
||||
|
||||
(deftype actor-bank (basic)
|
||||
((pause-dist meters :offset-assert 4)
|
||||
(birth-dist meters :offset-assert 8)
|
||||
@@ -211,4 +228,11 @@
|
||||
:flag-assert #x900000010
|
||||
)
|
||||
|
||||
|
||||
(define *ACTOR-bank* (new 'static 'actor-bank :pause-dist (meters 50) :birth-dist (meters 220) :birth-max 10))
|
||||
|
||||
0
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -126,6 +126,10 @@
|
||||
(define-extern process-drawable-art-error (state string process-drawable))
|
||||
(define-extern part-group-pointer? (function pointer symbol))
|
||||
|
||||
;; NOTE - for default-menu
|
||||
(define-extern bug-report-display (function none))
|
||||
(define-extern trsq->continue-point (function trsq none))
|
||||
|
||||
;; DECOMP BEGINS
|
||||
|
||||
(local-vars (gp-0 game-info))
|
||||
@@ -247,102 +251,102 @@
|
||||
|
||||
|
||||
(deftype game-info (basic)
|
||||
((mode symbol :offset-assert 4)
|
||||
(save-name string :offset-assert 8)
|
||||
(life float :offset-assert 12)
|
||||
(life-max float :offset-assert 16)
|
||||
(money float :offset-assert 20)
|
||||
(money-total float :offset-assert 24)
|
||||
(money-per-level uint8 32 :offset-assert 28)
|
||||
(deaths-per-level uint8 32 :offset-assert 60)
|
||||
(buzzer-total float :offset-assert 92)
|
||||
(fuel float :offset-assert 96)
|
||||
(gem float :offset-assert 100)
|
||||
(gem-total float :offset-assert 104)
|
||||
(skill float :offset-assert 108)
|
||||
(skill-total float :offset-assert 112)
|
||||
(karma float :offset-assert 116)
|
||||
(eco-pill-dark float :offset-assert 120)
|
||||
(eco-pill-dark-total float :offset-assert 124)
|
||||
(features game-feature :offset-assert 128)
|
||||
(debug-features game-feature :offset-assert 136)
|
||||
(secrets game-secrets :offset-assert 144)
|
||||
(unknown-pad1 uint32 :offset-assert 148)
|
||||
(purchase-secrets uint32 :offset-assert 152)
|
||||
(unknown-pad2 uint32 :offset-assert 156)
|
||||
(gun-type int32 :offset-assert 160)
|
||||
(gun-ammo float 4 :offset-assert 164)
|
||||
(shield float :offset-assert 180)
|
||||
(score float :offset-assert 184)
|
||||
(score-owner uint64 :offset-assert 192)
|
||||
(timer uint64 :offset-assert 200)
|
||||
(timer-owner uint64 :offset-assert 208)
|
||||
(timer-flash basic :offset-assert 216)
|
||||
(counter float :offset-assert 220)
|
||||
(counter-flash basic :offset-assert 224)
|
||||
(attack-id uint32 :offset-assert 228)
|
||||
(perm-list entity-perm-array :offset-assert 232)
|
||||
(task-perm-list entity-perm-array :offset-assert 236)
|
||||
(current-continue continue-point :offset-assert 240)
|
||||
(last-continue continue-point :offset-assert 244)
|
||||
(unknown-pad3 array :offset-assert 248)
|
||||
(unknown-pad4 array :offset-assert 252)
|
||||
(unknown-pad5 array :offset-assert 256)
|
||||
(task-counter uint32 :offset-assert 260)
|
||||
(unknown-pad6 uint32 :offset-assert 264)
|
||||
(level-opened uint8 32 :offset-assert 268)
|
||||
(total-deaths int32 :offset-assert 300)
|
||||
(continue-deaths int32 :offset-assert 304)
|
||||
(task-deaths int32 :offset-assert 308)
|
||||
(total-trys int32 :offset-assert 312)
|
||||
(game-start-time time-frame :offset-assert 320)
|
||||
(continue-time time-frame :offset-assert 328)
|
||||
(death-time time-frame :offset-assert 336)
|
||||
(hit-time time-frame :offset-assert 344)
|
||||
(task-pickup-time time-frame :offset-assert 352)
|
||||
(unknown-array1 (array uint64) :offset-assert 360)
|
||||
(unknown-array2 (array uint64) :offset-assert 364)
|
||||
(unknown-array3 (array uint64) :offset-assert 368)
|
||||
(death-pos vector-array :offset 372)
|
||||
(stop-watch-start uint64 :offset-assert 376)
|
||||
(stop-watch-stop uint64 :offset-assert 384)
|
||||
(blackout-time time-frame :offset-assert 392)
|
||||
(letterbox-time time-frame :offset-assert 400)
|
||||
(hint-play-time time-frame :offset-assert 408)
|
||||
(display-text-time time-frame :offset-assert 416)
|
||||
(display-text-handle uint64 :offset-assert 424)
|
||||
(death-movie-tick int32 :offset-assert 432)
|
||||
(want-auto-save symbol :offset-assert 436)
|
||||
(auto-save-proc handle :offset-assert 440)
|
||||
(auto-save-status mc-status-code :offset-assert 448)
|
||||
(auto-save-card int32 :offset-assert 452)
|
||||
(auto-save-which int32 :offset-assert 456)
|
||||
(auto-save-count int32 :offset-assert 460)
|
||||
(pov-camera-handle uint64 :offset-assert 464)
|
||||
(other-camera-handle uint64 :offset-assert 472)
|
||||
(controller uint64 2 :offset-assert 480)
|
||||
(race-timer uint64 :offset-assert 496)
|
||||
(race-current-lap-count int32 :offset-assert 504)
|
||||
(race-total-lap-count int32 :offset-assert 508)
|
||||
(race-position int32 :offset-assert 512)
|
||||
(race-number-turbos int32 :offset-assert 516)
|
||||
(bot-health uint32 3 :offset-assert 520)
|
||||
(demo-state uint32 :offset-assert 532)
|
||||
(wanted-flash basic :offset-assert 536)
|
||||
(distance float :offset-assert 540)
|
||||
(kiosk-timeout uint64 :offset-assert 544)
|
||||
(pause-start-time time-frame :offset-assert 552)
|
||||
(game-score (array highscore-info) :offset-assert 560)
|
||||
(goal float :offset-assert 564)
|
||||
(miss float :offset-assert 568)
|
||||
(miss-max float :offset-assert 572)
|
||||
(unknown-array4 (array uint64) :offset-assert 576)
|
||||
(live-eco-pill-count int32 :offset-assert 580)
|
||||
(live-gem-count int32 :offset-assert 584)
|
||||
(air-supply float :offset-assert 588)
|
||||
(homing-beacon int32 :offset-assert 592)
|
||||
(dark-eco-pickup int32 :offset-assert 596)
|
||||
(green-eco-pickup int32 :offset-assert 600)
|
||||
((mode symbol :offset-assert 4)
|
||||
(save-name string :offset-assert 8)
|
||||
(life float :offset-assert 12)
|
||||
(life-max float :offset-assert 16)
|
||||
(money float :offset-assert 20)
|
||||
(money-total float :offset-assert 24)
|
||||
(money-per-level uint8 32 :offset-assert 28)
|
||||
(deaths-per-level uint8 32 :offset-assert 60)
|
||||
(buzzer-total float :offset-assert 92)
|
||||
(fuel float :offset-assert 96)
|
||||
(gem float :offset-assert 100)
|
||||
(gem-total float :offset-assert 104)
|
||||
(skill float :offset-assert 108)
|
||||
(skill-total float :offset-assert 112)
|
||||
(karma float :offset-assert 116)
|
||||
(eco-pill-dark float :offset-assert 120)
|
||||
(eco-pill-dark-total float :offset-assert 124)
|
||||
(features game-feature :offset-assert 128)
|
||||
(debug-features game-feature :offset-assert 136)
|
||||
(secrets game-secrets :offset-assert 144)
|
||||
(unknown-pad1 uint32 :offset-assert 148)
|
||||
(purchase-secrets uint32 :offset-assert 152)
|
||||
(unknown-pad2 uint32 :offset-assert 156)
|
||||
(gun-type int32 :offset-assert 160)
|
||||
(gun-ammo float 4 :offset-assert 164)
|
||||
(shield float :offset-assert 180)
|
||||
(score float :offset-assert 184)
|
||||
(score-owner uint64 :offset-assert 192)
|
||||
(timer uint64 :offset-assert 200)
|
||||
(timer-owner uint64 :offset-assert 208)
|
||||
(timer-flash basic :offset-assert 216)
|
||||
(counter float :offset-assert 220)
|
||||
(counter-flash basic :offset-assert 224)
|
||||
(attack-id uint32 :offset-assert 228)
|
||||
(perm-list entity-perm-array :offset-assert 232)
|
||||
(task-perm-list entity-perm-array :offset-assert 236)
|
||||
(current-continue continue-point :offset-assert 240)
|
||||
(last-continue continue-point :offset-assert 244)
|
||||
(play-list (array game-task-info) :offset-assert 248)
|
||||
(sub-task-list (array game-task-node-info) :offset-assert 252)
|
||||
(unknown-pad5 array :offset-assert 256)
|
||||
(task-counter uint32 :offset-assert 260)
|
||||
(unknown-pad6 uint32 :offset-assert 264)
|
||||
(level-opened uint8 32 :offset-assert 268)
|
||||
(total-deaths int32 :offset-assert 300)
|
||||
(continue-deaths int32 :offset-assert 304)
|
||||
(task-deaths int32 :offset-assert 308)
|
||||
(total-trys int32 :offset-assert 312)
|
||||
(game-start-time time-frame :offset-assert 320)
|
||||
(continue-time time-frame :offset-assert 328)
|
||||
(death-time time-frame :offset-assert 336)
|
||||
(hit-time time-frame :offset-assert 344)
|
||||
(task-pickup-time time-frame :offset-assert 352)
|
||||
(unknown-array1 (array uint64) :offset-assert 360)
|
||||
(unknown-array2 (array uint64) :offset-assert 364)
|
||||
(unknown-array3 (array uint64) :offset-assert 368)
|
||||
(death-pos vector-array :offset 372)
|
||||
(stop-watch-start uint64 :offset-assert 376)
|
||||
(stop-watch-stop uint64 :offset-assert 384)
|
||||
(blackout-time time-frame :offset-assert 392)
|
||||
(letterbox-time time-frame :offset-assert 400)
|
||||
(hint-play-time time-frame :offset-assert 408)
|
||||
(display-text-time time-frame :offset-assert 416)
|
||||
(display-text-handle uint64 :offset-assert 424)
|
||||
(death-movie-tick int32 :offset-assert 432)
|
||||
(want-auto-save symbol :offset-assert 436)
|
||||
(auto-save-proc handle :offset-assert 440)
|
||||
(auto-save-status mc-status-code :offset-assert 448)
|
||||
(auto-save-card int32 :offset-assert 452)
|
||||
(auto-save-which int32 :offset-assert 456)
|
||||
(auto-save-count int32 :offset-assert 460)
|
||||
(pov-camera-handle uint64 :offset-assert 464)
|
||||
(other-camera-handle uint64 :offset-assert 472)
|
||||
(controller uint64 2 :offset-assert 480)
|
||||
(race-timer uint64 :offset-assert 496)
|
||||
(race-current-lap-count int32 :offset-assert 504)
|
||||
(race-total-lap-count int32 :offset-assert 508)
|
||||
(race-position int32 :offset-assert 512)
|
||||
(race-number-turbos int32 :offset-assert 516)
|
||||
(bot-health uint32 3 :offset-assert 520)
|
||||
(demo-state uint32 :offset-assert 532)
|
||||
(wanted-flash basic :offset-assert 536)
|
||||
(distance float :offset-assert 540)
|
||||
(kiosk-timeout uint64 :offset-assert 544)
|
||||
(pause-start-time time-frame :offset-assert 552)
|
||||
(game-score (array highscore-info) :offset-assert 560)
|
||||
(goal float :offset-assert 564)
|
||||
(miss float :offset-assert 568)
|
||||
(miss-max float :offset-assert 572)
|
||||
(unknown-array4 (array uint64) :offset-assert 576)
|
||||
(live-eco-pill-count int32 :offset-assert 580)
|
||||
(live-gem-count int32 :offset-assert 584)
|
||||
(air-supply float :offset-assert 588)
|
||||
(homing-beacon int32 :offset-assert 592)
|
||||
(dark-eco-pickup int32 :offset-assert 596)
|
||||
(green-eco-pickup int32 :offset-assert 600)
|
||||
)
|
||||
:method-count-assert 31
|
||||
:size-assert #x25c
|
||||
|
||||
@@ -5,5 +5,8 @@
|
||||
;; name in dgo: game-save
|
||||
;; dgos: ENGINE, GAME
|
||||
|
||||
;; NOTE - for default-menu
|
||||
(define-extern auto-save-command (function symbol int int process-tree symbol none))
|
||||
|
||||
;; DECOMP BEGINS
|
||||
|
||||
|
||||
@@ -102,6 +102,9 @@
|
||||
;; NOTE - for settings
|
||||
(define-extern *master-exit* symbol)
|
||||
|
||||
;; NOTE - for default-menu
|
||||
(define-extern set-master-mode (function symbol none))
|
||||
|
||||
;; DECOMP BEGINS
|
||||
|
||||
;; engine debug settings
|
||||
|
||||
@@ -67,7 +67,7 @@
|
||||
; (when *display-deci-count*
|
||||
; (let ((s2-0 draw-string-xy))
|
||||
; (format (clear *temp-string*) "~D" *deci-count*)
|
||||
; (s2-0 *temp-string* s3-0 448 210 (font-color default) (font-flags shadow))
|
||||
; (s2-0 *temp-string* s3-0 448 210 (font-color default-#cddbcd) (font-flags shadow))
|
||||
; )
|
||||
; )
|
||||
; (display-file-info)
|
||||
@@ -93,7 +93,7 @@
|
||||
; 352
|
||||
; 320
|
||||
; )
|
||||
; (font-color orange-red)
|
||||
; (font-color precursor-#ec3b00)
|
||||
; (font-flags shadow kerning middle large)
|
||||
; )
|
||||
; )
|
||||
@@ -113,7 +113,7 @@
|
||||
; s3-1
|
||||
; (the int (-> *font-context* origin x))
|
||||
; s2-2
|
||||
; (font-color default)
|
||||
; (font-color default-#cddbcd)
|
||||
; (font-flags shadow)
|
||||
; )
|
||||
; )
|
||||
@@ -124,7 +124,7 @@
|
||||
; s3-1
|
||||
; (the int (-> *font-context* origin x))
|
||||
; a3-6
|
||||
; (font-color default)
|
||||
; (font-color default-#cddbcd)
|
||||
; (font-flags shadow)
|
||||
; )
|
||||
; )
|
||||
|
||||
@@ -167,6 +167,13 @@
|
||||
;; NOTE - for settings
|
||||
(define-extern update-task-masks (function symbol none))
|
||||
|
||||
;; NOTE - for default-menu
|
||||
(define-extern play-clean (function symbol none))
|
||||
(define-extern task-node-open! (function game-task none))
|
||||
(define-extern task-node-close! (function game-task none))
|
||||
(define-extern task-node-open? (function game-task symbol))
|
||||
(define-extern play-task (function game-task symbol symbol string))
|
||||
|
||||
;; DECOMP BEGINS
|
||||
|
||||
(defun-debug game-task->string ((arg0 game-task))
|
||||
@@ -1291,8 +1298,8 @@
|
||||
(deftype game-task-node-info (basic)
|
||||
((level basic :offset-assert 4)
|
||||
(task game-task :offset-assert 8)
|
||||
(name basic :offset-assert 12)
|
||||
(when-open basic :offset-assert 16)
|
||||
(name string :offset-assert 12)
|
||||
(when-open array :offset-assert 16)
|
||||
(flags game-task-node-flag :offset-assert 20)
|
||||
(parent-node uint16 4 :offset-assert 24)
|
||||
(task-mask task-mask :offset-assert 32)
|
||||
@@ -1323,14 +1330,14 @@
|
||||
|
||||
|
||||
(deftype game-task-info (basic)
|
||||
((name basic :offset-assert 4)
|
||||
((name string :offset-assert 4)
|
||||
(text-name uint32 :offset-assert 8)
|
||||
(pre-play-node uint16 :offset-assert 12)
|
||||
(kiosk-play-node uint16 :offset-assert 14)
|
||||
(pre-play-continue basic :offset-assert 16)
|
||||
(pre-play-continue string :offset-assert 16)
|
||||
(play-node uint16 :offset-assert 20)
|
||||
(play-continue basic :offset-assert 24)
|
||||
(kiosk-play-continue basic :offset-assert 28)
|
||||
(play-continue string :offset-assert 24)
|
||||
(kiosk-play-continue string :offset-assert 28)
|
||||
)
|
||||
:method-count-assert 9
|
||||
:size-assert #x20
|
||||
|
||||
@@ -5,11 +5,14 @@
|
||||
;; name in dgo: vol-h
|
||||
;; dgos: ENGINE, GAME
|
||||
|
||||
;; +++vol-flags
|
||||
(defenum vol-flags
|
||||
:bitfield #t
|
||||
:type uint32
|
||||
(display?)
|
||||
(vol-flags-1)
|
||||
)
|
||||
;; ---vol-flags
|
||||
|
||||
;; DECOMP BEGINS
|
||||
|
||||
@@ -27,12 +30,13 @@
|
||||
:size-assert #x18
|
||||
:flag-assert #xc00000018
|
||||
(:methods
|
||||
(plane-volume-method-9 () none 9)
|
||||
(plane-volume-method-10 () none 10)
|
||||
(plane-volume-method-11 () none 11)
|
||||
(plane-volume-method-9 (_type_ symbol vector-array vector-array) plane-volume 9)
|
||||
(debug-draw (_type_) none 10)
|
||||
(point-in-vol? (_type_ vector float) symbol 11)
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
(deftype vol-control (basic)
|
||||
((flags vol-flags :offset-assert 4)
|
||||
(process process-drawable :offset-assert 8)
|
||||
@@ -48,12 +52,14 @@
|
||||
:flag-assert #xc0000061c
|
||||
(:methods
|
||||
(new (symbol type process-drawable) _type_ 0)
|
||||
(vol-control-method-9 (_type_) symbol 9)
|
||||
(vol-control-method-10 (_type_ vector) symbol 10)
|
||||
(vol-control-method-9 (_type_) none 9)
|
||||
(vol-control-method-10 (_type_ plane) symbol 10)
|
||||
(should-display? (_type_) symbol 11)
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
;; WARN: Return type mismatch object vs vol-control.
|
||||
(defmethod new vol-control ((allocation symbol) (type-to-make type) (arg0 process-drawable))
|
||||
(let ((gp-0 (the-as object (object-new allocation type-to-make (the-as int (-> type-to-make size))))))
|
||||
(when (zero? (the-as vol-control gp-0))
|
||||
|
||||
@@ -7,3 +7,352 @@
|
||||
|
||||
;; DECOMP BEGINS
|
||||
|
||||
(defun plane-volume-intersect-dist ((arg0 vector) (arg1 vector) (arg2 vector))
|
||||
(let ((f0-1 (vector-dot arg1 arg0))
|
||||
(f1-1 (vector-dot arg2 arg0))
|
||||
)
|
||||
(if (< 0.00001 (fabs f1-1))
|
||||
(/ (- (-> arg0 w) f0-1) f1-1)
|
||||
409600000.0
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
;; WARN: Stack slot offset 148 signed mismatch
|
||||
;; WARN: Stack slot offset 148 signed mismatch
|
||||
;; WARN: Stack slot offset 148 signed mismatch
|
||||
;; WARN: Stack slot offset 148 signed mismatch
|
||||
;; WARN: Stack slot offset 148 signed mismatch
|
||||
;; WARN: Stack slot offset 148 signed mismatch
|
||||
;; WARN: Stack slot offset 148 signed mismatch
|
||||
;; WARN: Stack slot offset 148 signed mismatch
|
||||
;; WARN: Stack slot offset 148 signed mismatch
|
||||
;; WARN: Stack slot offset 148 signed mismatch
|
||||
;; WARN: Stack slot offset 148 signed mismatch
|
||||
;; WARN: Stack slot offset 148 signed mismatch
|
||||
;; WARN: Stack slot offset 148 signed mismatch
|
||||
;; WARN: Stack slot offset 148 signed mismatch
|
||||
;; WARN: Stack slot offset 148 signed mismatch
|
||||
;; WARN: Stack slot offset 148 signed mismatch
|
||||
;; WARN: Stack slot offset 148 signed mismatch
|
||||
;; WARN: Stack slot offset 148 signed mismatch
|
||||
;; WARN: Stack slot offset 148 signed mismatch
|
||||
;; WARN: Stack slot offset 148 signed mismatch
|
||||
;; WARN: Stack slot offset 148 signed mismatch
|
||||
;; WARN: Stack slot offset 148 signed mismatch
|
||||
;; WARN: Stack slot offset 148 signed mismatch
|
||||
;; WARN: Stack slot offset 148 signed mismatch
|
||||
;; WARN: Stack slot offset 148 signed mismatch
|
||||
;; WARN: Stack slot offset 148 signed mismatch
|
||||
;; WARN: Stack slot offset 148 signed mismatch
|
||||
;; WARN: Stack slot offset 148 signed mismatch
|
||||
;; WARN: Stack slot offset 148 signed mismatch
|
||||
(defmethod plane-volume-method-9 plane-volume ((obj plane-volume) (arg0 symbol) (arg1 vector-array) (arg2 vector-array))
|
||||
(local-vars
|
||||
(sv-144 vector)
|
||||
(sv-148 number)
|
||||
(sv-152 int)
|
||||
(sv-160 vector)
|
||||
(sv-176 vector)
|
||||
(sv-192 vector)
|
||||
(sv-208 vector)
|
||||
(sv-224 vector)
|
||||
(sv-240 int)
|
||||
(sv-256 int)
|
||||
)
|
||||
(rlet ((acc :class vf)
|
||||
(vf0 :class vf)
|
||||
(vf1 :class vf)
|
||||
(vf2 :class vf)
|
||||
(vf3 :class vf)
|
||||
(vf4 :class vf)
|
||||
)
|
||||
(init-vf0-vector)
|
||||
(set! (-> obj volume-type) arg0)
|
||||
(set! (-> obj point-count) 0)
|
||||
(set! (-> obj first-point) (the-as (pointer vector) (-> arg1 data (-> arg1 length))))
|
||||
(set! (-> obj normal-count) 0)
|
||||
(set! (-> obj first-normal) (the-as (pointer vector) (-> arg2 data (-> arg2 length))))
|
||||
(dotimes (s3-0 (-> obj num-planes))
|
||||
(set! sv-176 (new 'stack-no-clear 'vector))
|
||||
(set! (-> sv-176 quad) (the-as uint128 0))
|
||||
(set! sv-192 (new 'stack-no-clear 'vector))
|
||||
(set! (-> sv-192 quad) (the-as uint128 0))
|
||||
(set! sv-208 (new 'stack-no-clear 'vector))
|
||||
(set! (-> sv-208 quad) (the-as uint128 0))
|
||||
(set! sv-224 (new 'stack-no-clear 'vector))
|
||||
(set! (-> sv-224 quad) (the-as uint128 0))
|
||||
0.0
|
||||
0.0
|
||||
0.0
|
||||
(set! (-> (new 'stack-no-clear 'vector) quad) (the-as uint128 0))
|
||||
(let ((s1-0 (new-stack-vector0))
|
||||
(s0-0 0)
|
||||
(s2-0 (-> obj plane))
|
||||
)
|
||||
(set! sv-240 0)
|
||||
(while (< sv-240 (-> obj num-planes))
|
||||
(when (!= s3-0 sv-240)
|
||||
(vector-float*! sv-176 (the-as vector (-> s2-0 sv-240)) (-> s2-0 sv-240 w))
|
||||
(vector-cross! sv-192 (the-as vector (-> s2-0 sv-240)) (the-as vector (-> s2-0 s3-0)))
|
||||
(vector-normalize! sv-192 1.0)
|
||||
(vector-cross! sv-208 sv-192 (the-as vector (-> s2-0 sv-240)))
|
||||
(vector-normalize! sv-208 1.0)
|
||||
(let ((f0-4 (plane-volume-intersect-dist (-> s2-0 s3-0) sv-176 sv-208)))
|
||||
(when (!= f0-4 409600000.0)
|
||||
(let ((v1-28 sv-224))
|
||||
(let ((a0-12 sv-176))
|
||||
(.lvf vf2 (&-> sv-208 quad))
|
||||
(.lvf vf1 (&-> a0-12 quad))
|
||||
)
|
||||
(let ((a0-13 f0-4))
|
||||
(.mov vf3 a0-13)
|
||||
)
|
||||
(.add.x.vf vf4 vf0 vf0 :mask #b1000)
|
||||
(.mul.x.vf acc vf2 vf3)
|
||||
(.add.mul.w.vf vf4 vf1 vf0 acc :mask #b111)
|
||||
(.svf (&-> v1-28 quad) vf4)
|
||||
)
|
||||
(set! sv-144 (new-stack-vector0))
|
||||
(set! sv-148 0.0)
|
||||
(set! sv-152 0)
|
||||
(set! sv-160 (new-stack-vector0))
|
||||
(set! (-> sv-144 quad) (-> sv-224 quad))
|
||||
(set! sv-256 0)
|
||||
(while (< sv-256 (-> obj num-planes))
|
||||
(when (and (!= sv-256 s3-0) (!= sv-256 sv-240))
|
||||
(let ((f0-6 (plane-volume-intersect-dist (-> s2-0 sv-256) sv-144 sv-192)))
|
||||
(cond
|
||||
((= f0-6 409600000.0)
|
||||
)
|
||||
((zero? sv-152)
|
||||
(let ((v1-42 sv-144))
|
||||
(let ((a0-19 sv-144))
|
||||
(.lvf vf2 (&-> sv-192 quad))
|
||||
(.lvf vf1 (&-> a0-19 quad))
|
||||
)
|
||||
(let ((a0-20 f0-6))
|
||||
(.mov vf3 a0-20)
|
||||
)
|
||||
(.add.x.vf vf4 vf0 vf0 :mask #b1000)
|
||||
(.mul.x.vf acc vf2 vf3)
|
||||
(.add.mul.w.vf vf4 vf1 vf0 acc :mask #b111)
|
||||
(.svf (&-> v1-42 quad) vf4)
|
||||
)
|
||||
(set! (-> sv-160 quad) (-> s2-0 sv-256 quad))
|
||||
(set! sv-148 8192000.0)
|
||||
(set! sv-152 1)
|
||||
)
|
||||
((begin (vector-float*! sv-224 sv-192 f0-6) (>= (vector-dot sv-224 sv-160) 0.0))
|
||||
)
|
||||
((>= (vector-dot sv-224 (the-as vector (-> s2-0 sv-256))) 0.0)
|
||||
(when (< (fabs f0-6) (fabs (the-as float sv-148)))
|
||||
(set! sv-148 f0-6)
|
||||
(set! sv-152 (+ sv-152 1))
|
||||
)
|
||||
)
|
||||
(else
|
||||
(let ((v1-59 sv-144))
|
||||
(let ((a0-28 sv-144)
|
||||
(a1-15 sv-192)
|
||||
(f1-8 f0-6)
|
||||
)
|
||||
(.lvf vf2 (&-> a1-15 quad))
|
||||
(.lvf vf1 (&-> a0-28 quad))
|
||||
(let ((a0-29 f1-8))
|
||||
(.mov vf3 a0-29)
|
||||
)
|
||||
)
|
||||
(.add.x.vf vf4 vf0 vf0 :mask #b1000)
|
||||
(.mul.x.vf acc vf2 vf3)
|
||||
(.add.mul.w.vf vf4 vf1 vf0 acc :mask #b111)
|
||||
(.svf (&-> v1-59 quad) vf4)
|
||||
)
|
||||
(set! (-> sv-160 quad) (-> s2-0 sv-256 quad))
|
||||
(set! sv-152 (+ sv-152 1))
|
||||
(if (< (fabs f0-6) (fabs (the-as float sv-148)))
|
||||
(set! sv-148 (- (the-as float sv-148) f0-6))
|
||||
(set! sv-148 0.0)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! sv-256 (+ sv-256 1))
|
||||
)
|
||||
(cond
|
||||
((zero? sv-152)
|
||||
)
|
||||
((= (the-as float sv-148) 0.0)
|
||||
)
|
||||
(else
|
||||
(dotimes (v1-76 (-> obj num-planes))
|
||||
(when (and (!= v1-76 s3-0) (!= v1-76 sv-240))
|
||||
(if (< 4096.0 (- (vector-dot sv-144 (the-as vector (-> s2-0 v1-76))) (-> s2-0 v1-76 w)))
|
||||
(goto cfg-42)
|
||||
)
|
||||
)
|
||||
)
|
||||
(let ((v1-80 sv-224))
|
||||
(let ((a0-46 sv-144)
|
||||
(a1-18 sv-192)
|
||||
(f0-12 sv-148)
|
||||
)
|
||||
(.lvf vf2 (&-> a1-18 quad))
|
||||
(.lvf vf1 (&-> a0-46 quad))
|
||||
(let ((a0-47 (the-as float f0-12)))
|
||||
(.mov vf3 a0-47)
|
||||
)
|
||||
)
|
||||
(.add.x.vf vf4 vf0 vf0 :mask #b1000)
|
||||
(.mul.x.vf acc vf2 vf3)
|
||||
(.add.mul.w.vf vf4 vf1 vf0 acc :mask #b111)
|
||||
(.svf (&-> v1-80 quad) vf4)
|
||||
)
|
||||
(cond
|
||||
((< (-> arg1 allocated-length) (+ (-> arg1 length) 2))
|
||||
(format 0 "ERROR <AG>: vol-control #x~X out of volume points~%" obj)
|
||||
)
|
||||
(else
|
||||
(set! (-> arg1 data (-> arg1 length) quad) (-> sv-144 quad))
|
||||
(set! (-> arg1 data (+ (-> arg1 length) 1) quad) (-> sv-224 quad))
|
||||
(+! (-> arg1 length) 2)
|
||||
(+! (-> obj point-count) 2)
|
||||
)
|
||||
)
|
||||
(vector+! s1-0 s1-0 sv-144)
|
||||
(vector+! s1-0 s1-0 sv-224)
|
||||
(+! s0-0 2)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(label cfg-42)
|
||||
(set! sv-240 (+ sv-240 1))
|
||||
)
|
||||
(when (nonzero? s0-0)
|
||||
(vector-float*! s1-0 s1-0 (/ 1.0 (the float s0-0)))
|
||||
(cond
|
||||
((< (-> arg2 allocated-length) (+ (-> arg2 length) 2))
|
||||
(format 0 "ERROR <AG>: vol-control #x~X out of volume normals~%" obj)
|
||||
)
|
||||
(else
|
||||
(set! (-> arg2 data (-> arg2 length) quad) (-> s1-0 quad))
|
||||
(set! (-> arg2 data (+ (-> arg2 length) 1) quad) (-> s2-0 s3-0 quad))
|
||||
(+! (-> arg2 length) 2)
|
||||
(set! (-> obj normal-count) (+ (-> obj normal-count) 2))
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
obj
|
||||
)
|
||||
)
|
||||
|
||||
;; WARN: Return type mismatch int vs none.
|
||||
(defmethod debug-draw plane-volume ((obj plane-volume))
|
||||
(let* ((v1-0 (-> obj volume-type))
|
||||
(s5-0 (cond
|
||||
((= v1-0 'vol)
|
||||
(the-as uint #x8000c000)
|
||||
)
|
||||
((= v1-0 'pvol)
|
||||
(the-as uint #x80808080)
|
||||
)
|
||||
(else
|
||||
(the-as uint #x800000c0)
|
||||
)
|
||||
)
|
||||
)
|
||||
(s4-0 (-> obj first-point))
|
||||
)
|
||||
(dotimes (s3-0 (/ (-> obj point-count) 2))
|
||||
(add-debug-line
|
||||
#t
|
||||
(bucket-id bucket-318)
|
||||
(the-as vector s4-0)
|
||||
(the-as vector (&-> s4-0 4))
|
||||
(the-as rgba s5-0)
|
||||
#f
|
||||
(the-as rgba -1)
|
||||
)
|
||||
(set! s4-0 (&-> s4-0 8))
|
||||
)
|
||||
)
|
||||
0
|
||||
(none)
|
||||
)
|
||||
|
||||
(defmethod point-in-vol? plane-volume ((obj plane-volume) (arg0 vector) (arg1 float))
|
||||
"TODO - Checks if the given [[vector]] point is inside the volume defined by 6 [[plane]]s by atleast the padding value provided"
|
||||
(dotimes (v1-0 (-> obj num-planes))
|
||||
(if (< arg1 (- (vector-dot arg0 (the-as vector (-> obj plane v1-0))) (-> obj plane v1-0 w)))
|
||||
(return #f)
|
||||
)
|
||||
)
|
||||
#t
|
||||
)
|
||||
|
||||
;; WARN: Return type mismatch int vs none.
|
||||
(defmethod vol-control-method-9 vol-control ((obj vol-control))
|
||||
(with-pp
|
||||
(let ((a0-1 obj))
|
||||
(when (and (and *display-vol-marks* (logtest? (-> a0-1 flags) (vol-flags display?)))
|
||||
(logtest? (-> obj flags) (vol-flags vol-flags-1))
|
||||
)
|
||||
(when (zero? (-> obj debug-point))
|
||||
(let ((s5-0 pp))
|
||||
(set! pp (-> obj process))
|
||||
(let ((s4-0 0))
|
||||
(dotimes (v1-8 (-> obj pos-vol-count))
|
||||
(+! s4-0 (-> obj pos-vol v1-8 num-planes))
|
||||
)
|
||||
(dotimes (v1-11 (-> obj neg-vol-count))
|
||||
(+! s4-0 (-> obj neg-vol v1-11 num-planes))
|
||||
)
|
||||
(set! (-> obj debug-point) (new 'debug 'vector-array (* 10 s4-0)))
|
||||
(set! (-> obj debug-normal) (new 'debug 'vector-array (* 10 s4-0)))
|
||||
)
|
||||
(set! pp s5-0)
|
||||
)
|
||||
(set! (-> obj debug-point length) 0)
|
||||
(set! (-> obj debug-normal length) 0)
|
||||
(dotimes (s5-1 (-> obj pos-vol-count))
|
||||
(plane-volume-method-9 (-> obj pos-vol s5-1) 'vol (-> obj debug-point) (-> obj debug-normal))
|
||||
)
|
||||
(dotimes (s5-2 (-> obj neg-vol-count))
|
||||
(plane-volume-method-9 (-> obj neg-vol s5-2) 'vol (-> obj debug-point) (-> obj debug-normal))
|
||||
)
|
||||
)
|
||||
(dotimes (s5-3 (-> obj pos-vol-count))
|
||||
(debug-draw (-> obj pos-vol s5-3))
|
||||
)
|
||||
(dotimes (s5-4 (-> obj neg-vol-count))
|
||||
(debug-draw (-> obj neg-vol s5-4))
|
||||
)
|
||||
)
|
||||
)
|
||||
0
|
||||
(none)
|
||||
)
|
||||
)
|
||||
|
||||
(defmethod vol-control-method-10 vol-control ((obj vol-control) (arg0 plane))
|
||||
(dotimes (s4-0 (-> obj neg-vol-count))
|
||||
(if (point-in-vol? (-> obj neg-vol s4-0) arg0 0.0)
|
||||
(return #f)
|
||||
)
|
||||
)
|
||||
(dotimes (s4-1 (-> obj pos-vol-count))
|
||||
(if (point-in-vol? (-> obj pos-vol s4-1) arg0 0.0)
|
||||
(return #t)
|
||||
)
|
||||
)
|
||||
#f
|
||||
)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -5,6 +5,13 @@
|
||||
;; name in dgo: subdivide-h
|
||||
;; dgos: ENGINE, GAME
|
||||
|
||||
;; NOTE - for default-menu
|
||||
(declare-type subdivide-settings basic)
|
||||
(define-extern *subdivide-settings* subdivide-settings)
|
||||
(define-extern *stat-string-tfrag* string)
|
||||
(define-extern *stat-string-tfrag-scissor* string)
|
||||
(define-extern *stat-string-total* string)
|
||||
|
||||
;; DECOMP BEGINS
|
||||
|
||||
(deftype subdivide-settings (basic)
|
||||
|
||||
@@ -9,14 +9,51 @@
|
||||
;; TODO: figure out what's weird with set-font-color
|
||||
;; The font system draws all of the strings.
|
||||
|
||||
;; +++font-color
|
||||
(defenum font-color
|
||||
:type uint32
|
||||
(default 0)
|
||||
(one 1)
|
||||
(orange-red 3)
|
||||
(fc-5 5)
|
||||
(fc-6 6)
|
||||
(default-#cddbcd 0)
|
||||
(#dadada 1)
|
||||
(#ededed 2)
|
||||
(precursor-#ec3b00 3)
|
||||
(gold-#ba9200 4)
|
||||
(yellow-#f3f300 5)
|
||||
(green-#3df23d 6)
|
||||
(blue-#003cf1 7)
|
||||
(cyan-#00fefe 8)
|
||||
(magenta-#f87df8 9)
|
||||
(#a0d5d5 10)
|
||||
(#7cbaba 11)
|
||||
(white-#ffffff 12)
|
||||
(#959595 13)
|
||||
(#f9a400 14)
|
||||
(#daf95e 15)
|
||||
(#8aa81f 16)
|
||||
(#a6b5a6 17)
|
||||
(#757f75 18)
|
||||
(#5e3f5e 19)
|
||||
(#f0e387 20)
|
||||
(#3fbaed 21)
|
||||
(#3a3a3a 22)
|
||||
(#5c5c5c 23)
|
||||
(#f298c8 24)
|
||||
(#f46868 25)
|
||||
(#20ca98 26)
|
||||
(#8289de 27)
|
||||
(#a8f3f6 28)
|
||||
(#fef666 29)
|
||||
(#f1f104 30)
|
||||
(#8ed0f4 31)
|
||||
(#7efbfb 32)
|
||||
(#7ffcfc 33)
|
||||
(#f9f9f9 34)
|
||||
(#408080 35)
|
||||
(#e0f0e0 36)
|
||||
(#c00000 37)
|
||||
(#ffc040 38)
|
||||
(#000000 39)
|
||||
)
|
||||
;; ---font-color
|
||||
|
||||
;; copied from jak1, not completely confirmed.
|
||||
(defenum font-flags
|
||||
|
||||
@@ -5,11 +5,13 @@
|
||||
;; name in dgo: font
|
||||
;; dgos: ENGINE, GAME
|
||||
|
||||
(def-mips2c draw-string-asm (function string dma-buffer font-context uint))
|
||||
(def-mips2c draw-string (function string dma-buffer font-context draw-string-result))
|
||||
(def-mips2c get-string-length (function string font-context draw-string-result))
|
||||
|
||||
;; DECOMP BEGINS
|
||||
|
||||
|
||||
;; definition for function gen-font-12
|
||||
;; INFO: Return type mismatch object vs none.
|
||||
;; WARN: Return type mismatch object vs none.
|
||||
(defun gen-font-12 ((arg0 string))
|
||||
(format #t "(define ~s~%" arg0)
|
||||
(format #t " (new 'static 'inline-array 'vector 0~%")
|
||||
@@ -142,28 +144,19 @@
|
||||
(none)
|
||||
)
|
||||
|
||||
;; definition for function draw-string-asm
|
||||
;; ERROR: function was not converted to expressions. Cannot decompile.
|
||||
|
||||
;; definition for function draw-string
|
||||
;; ERROR: function was not converted to expressions. Cannot decompile.
|
||||
|
||||
;; definition for function get-string-length
|
||||
;; ERROR: function was not converted to expressions. Cannot decompile.
|
||||
|
||||
(def-mips2c draw-string-asm (function string dma-buffer font-context uint))
|
||||
(def-mips2c draw-string (function string dma-buffer font-context draw-string-result))
|
||||
(def-mips2c get-string-length (function string font-context float))
|
||||
|
||||
;; definition for function draw-string-xy
|
||||
(defun draw-string-xy ((arg0 string) (arg1 dma-buffer) (arg2 int) (arg3 int) (arg4 font-color) (arg5 font-flags))
|
||||
(let ((a2-2 (new 'stack 'font-context *font-default-matrix* arg2 arg3 0.0 arg4 arg5)))
|
||||
(draw-string arg0 arg1 a2-2)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for function draw-string-adv
|
||||
;; INFO: Return type mismatch float vs none.
|
||||
;; WARN: Return type mismatch float vs none.
|
||||
(defun draw-string-adv ((arg0 string) (arg1 dma-buffer) (arg2 font-context))
|
||||
(let ((v1-0 (draw-string arg0 arg1 arg2)))
|
||||
(+! (-> arg2 origin x) (-> v1-0 length))
|
||||
@@ -174,3 +167,4 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -5,6 +5,10 @@
|
||||
;; name in dgo: generic-h
|
||||
;; dgos: ENGINE, GAME
|
||||
|
||||
;; NOTE - for default-menu
|
||||
(declare-type generic-consts structure)
|
||||
(define-extern *generic-consts* generic-consts)
|
||||
|
||||
;; DECOMP BEGINS
|
||||
|
||||
(deftype gsf-vertex (structure)
|
||||
|
||||
@@ -80,7 +80,7 @@
|
||||
)
|
||||
|
||||
(define *font-context*
|
||||
(new 'global 'font-context *font-default-matrix* 0 0 0.0 (font-color default) (font-flags shadow kerning))
|
||||
(new 'global 'font-context *font-default-matrix* 0 0 0.0 (font-color default-#cddbcd) (font-flags shadow kerning))
|
||||
)
|
||||
|
||||
(defun draw-sprite2d-xy ((arg0 dma-buffer) (arg1 int) (arg2 int) (arg3 int) (arg4 int) (arg5 rgba))
|
||||
|
||||
@@ -5,6 +5,9 @@
|
||||
;; name in dgo: merc-h
|
||||
;; dgos: ENGINE, GAME
|
||||
|
||||
;; NOTE - for default-menu
|
||||
(define-extern merc-stats (function none))
|
||||
|
||||
;; DECOMP BEGINS
|
||||
|
||||
(deftype ripple-merc-query (inline-array-class)
|
||||
|
||||
@@ -27,6 +27,11 @@
|
||||
;; NOTE - for mood-funcs
|
||||
(define-extern set-filter-color! (function float float float none))
|
||||
|
||||
;; NOTE - for default-menu
|
||||
(declare-type time-of-day-proc process)
|
||||
(define-extern *time-of-day* (pointer time-of-day-proc))
|
||||
(define-extern time-of-day-setup (function symbol symbol))
|
||||
|
||||
;; DECOMP BEGINS
|
||||
|
||||
(deftype palette-fade-control (structure)
|
||||
|
||||
@@ -24,6 +24,12 @@
|
||||
(define-extern adgif-shader<-texture-simple! (function adgif-shader texture adgif-shader))
|
||||
(define-extern lookup-texture-by-id-fast (function texture-id texture))
|
||||
|
||||
;; NOTE - for default-menu
|
||||
(define-extern *edit-shader* texture-id)
|
||||
(define-extern adgif-shader-update! (function adgif-shader texture none))
|
||||
(declare-type texture-page-dir basic)
|
||||
(define-extern texture-page-dir-inspect (function texture-page-dir symbol none))
|
||||
|
||||
;; DECOMP BEGINS
|
||||
|
||||
(deftype texture-id (uint32)
|
||||
|
||||
@@ -363,7 +363,7 @@
|
||||
(bucket-323 323) ;; hud
|
||||
(bucket-324 324) ;; debug
|
||||
(debug-no-zbuf 325) ;; debug
|
||||
;; (bucket-326 326) ;; debug
|
||||
(debug-unknown-326 326) ;; debug
|
||||
)
|
||||
|
||||
(defenum vu1-renderer-mask
|
||||
|
||||
@@ -169,7 +169,7 @@
|
||||
(callback-info nav-callback-info :offset-assert 4)
|
||||
(process process :offset-assert 8)
|
||||
(pad0 uint32 :offset-assert 12)
|
||||
(shape basic :offset-assert 16)
|
||||
(shape collide-shape :offset-assert 16)
|
||||
(nearest-y-threshold meters :offset-assert 20)
|
||||
(nav-cull-radius meters :offset-assert 24)
|
||||
(sec-per-frame float :offset-assert 28)
|
||||
@@ -184,8 +184,8 @@
|
||||
(sphere-mask uint8 :offset-assert 61)
|
||||
(pad1 uint8 2 :offset-assert 62)
|
||||
(sphere-id-array uint8 16 :offset-assert 64)
|
||||
(extra-nav-sphere vector :inline :offset-assert 80)
|
||||
(root-nav-sphere vector :inline :offset-assert 96)
|
||||
(extra-nav-sphere sphere :inline :offset-assert 80)
|
||||
(root-nav-sphere sphere :inline :offset-assert 96)
|
||||
(state nav-state :inline :offset-assert 112)
|
||||
)
|
||||
:method-count-assert 47
|
||||
@@ -193,43 +193,43 @@
|
||||
:flag-assert #x2f00000120
|
||||
(:methods
|
||||
(nav-control-method-9 () none 9)
|
||||
(nav-control-method-10 () none 10)
|
||||
(point-in-bounds? (_type_ vector) symbol 10)
|
||||
(nav-control-method-11 (_type_ vector) vector 11)
|
||||
(nav-control-method-12 () none 12)
|
||||
(nav-control-method-13 () none 13)
|
||||
(nav-control-method-14 () none 14)
|
||||
(nav-control-method-15 () none 15)
|
||||
(nav-control-method-16 () none 16)
|
||||
(nav-control-method-17 () none 17)
|
||||
(find-poly (_type_ vector) nav-poly 13)
|
||||
(nav-control-method-14 (_type_ nav-poly vector object vector) none 14)
|
||||
(nav-control-method-15 (_type_ vector) none 15)
|
||||
(nav-control-method-16 (_type_ vector float) symbol 16)
|
||||
(is-in-mesh? (_type_ vector float) symbol 17)
|
||||
(nav-control-method-18 () none 18)
|
||||
(nav-control-method-19 () none 19)
|
||||
(nav-control-method-20 (_type_ vector vector vector int symbol symbol) none 20)
|
||||
(nav-control-method-21 () none 21)
|
||||
(nav-control-method-22 () none 22)
|
||||
(nav-control-method-23 () none 23)
|
||||
(nav-control-method-23 (_type_) none 23)
|
||||
(nav-control-method-24 () none 24)
|
||||
(nav-control-method-25 () none 25)
|
||||
(nav-control-method-26 () none 26)
|
||||
(nav-control-method-27 () none 27)
|
||||
(nav-control-method-28 () none 28)
|
||||
(nav-control-method-29 () none 29)
|
||||
(nav-control-method-30 () none 30)
|
||||
(nav-control-method-31 () none 31)
|
||||
(nav-control-method-32 () none 32)
|
||||
(nav-control-method-33 () none 33)
|
||||
(nav-control-method-34 () none 34)
|
||||
(nav-control-method-35 () none 35)
|
||||
(nav-control-method-36 () none 36)
|
||||
(nav-control-method-37 () none 37)
|
||||
(nav-control-method-38 () none 38)
|
||||
(nav-control-method-39 () none 39)
|
||||
(nav-control-method-40 () none 40)
|
||||
(nav-control-method-41 () none 41)
|
||||
(nav-control-method-42 () none 42)
|
||||
(nav-control-method-43 () none 43)
|
||||
(get-max-rotation-rate (_type_) float 25)
|
||||
(get-sphere-mask (_type_) none 26)
|
||||
(get-target-speed (_type_) meters 27)
|
||||
(nav-control-method-28 (_type_) none 28)
|
||||
(nav-control-method-29 (_type_) none 29)
|
||||
(copy-extra-nav-sphere! (_type_ sphere) none 30)
|
||||
(set-extra-nav-sphere! (_type_ sphere) none 31)
|
||||
(set-extra-nav-sphere-radius! (_type_ float) none 32)
|
||||
(set-nearest-y-thres! (_type_ float) none 33)
|
||||
(set-nav-cull-radius! (_type_ meters) none 34)
|
||||
(set-speed-scale! (_type_ float) none 35)
|
||||
(set-target-speed! (_type_ meters) none 36)
|
||||
(set-acceleration! (_type_ meters) none 37)
|
||||
(set-turning-acceleration! (_type_ meters) none 38)
|
||||
(set-max-rotation-rate! (_type_ float) none 39)
|
||||
(set-sphere-mask! (_type_ uint) none 40)
|
||||
(nav-control-method-41 (_type_) none 41)
|
||||
(init! (_type_ collide-shape) none 42)
|
||||
(display-marks? (_type_) symbol 43)
|
||||
(nav-control-method-44 () none 44)
|
||||
(nav-control-method-45 () none 45)
|
||||
(nav-control-method-46 () none 46)
|
||||
(nav-control-method-45 (_type_ vector vector vector) sphere 45)
|
||||
(find-sphere (_type_) none 46)
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
@@ -11,6 +11,9 @@
|
||||
(dummy 0)
|
||||
)
|
||||
|
||||
(declare-type grid-hash basic)
|
||||
(declare-type sphere-hash grid-hash)
|
||||
|
||||
;; DECOMP BEGINS
|
||||
|
||||
(deftype nav-mesh-work-debug (structure)
|
||||
@@ -33,6 +36,7 @@
|
||||
:flag-assert #x9000001c0
|
||||
)
|
||||
|
||||
|
||||
(deftype nav-mesh-work (structure)
|
||||
((vert0-table int8 4 :offset-assert 0)
|
||||
(vert1-table int8 4 :offset-assert 4)
|
||||
@@ -47,10 +51,10 @@
|
||||
(work-struct-in-scratch int8 :offset-assert 292)
|
||||
(mesh-struct-in-scratch int8 :offset-assert 293)
|
||||
(polys-in-scratch int8 :offset-assert 294)
|
||||
(mesh basic :offset-assert 296)
|
||||
(mesh nav-mesh :offset-assert 296)
|
||||
(nav basic :offset-assert 300)
|
||||
(poly0 basic :offset-assert 304)
|
||||
(poly1 basic :offset-assert 308)
|
||||
(poly0 nav-poly :offset-assert 304)
|
||||
(poly1 nav-poly :offset-assert 308)
|
||||
(poly-id int32 :offset-assert 312)
|
||||
)
|
||||
:method-count-assert 9
|
||||
@@ -58,6 +62,7 @@
|
||||
:flag-assert #x90000013c
|
||||
)
|
||||
|
||||
|
||||
(deftype nav-mesh-link (structure)
|
||||
((id uint32 :offset-assert 0)
|
||||
(dest-mesh-id uint32 :offset-assert 4)
|
||||
@@ -72,6 +77,7 @@
|
||||
:flag-assert #x900000010
|
||||
)
|
||||
|
||||
|
||||
(deftype nav-poly (structure)
|
||||
((data uint8 64 :offset-assert 0)
|
||||
(vertex vector 4 :inline :offset 0)
|
||||
@@ -96,13 +102,17 @@
|
||||
:flag-assert #x900000040
|
||||
)
|
||||
|
||||
|
||||
(deftype nav-vertex (vector)
|
||||
"A typedef for `vector`, not used because our code looks nicer if everything is `vector`s anyway
|
||||
and declared out of order (cannot use forward declared structures in inline arrays)"
|
||||
()
|
||||
:method-count-assert 9
|
||||
:size-assert #x10
|
||||
:flag-assert #x900000010
|
||||
)
|
||||
|
||||
|
||||
(deftype nav-sphere (structure)
|
||||
((trans sphere :inline :offset-assert 0)
|
||||
)
|
||||
@@ -111,6 +121,7 @@
|
||||
:flag-assert #x900000010
|
||||
)
|
||||
|
||||
|
||||
(deftype nav-ray (structure)
|
||||
((current-pos vector :inline :offset-assert 0)
|
||||
(dir vector :inline :offset-assert 16)
|
||||
@@ -130,6 +141,7 @@
|
||||
:flag-assert #x900000050
|
||||
)
|
||||
|
||||
|
||||
(deftype nav-route-portal (structure)
|
||||
((vertex nav-vertex 2 :inline :offset-assert 0)
|
||||
(next-poly nav-poly :offset-assert 32)
|
||||
@@ -140,6 +152,7 @@
|
||||
:flag-assert #x900000025
|
||||
)
|
||||
|
||||
|
||||
(deftype nav-find-poly-parms (structure)
|
||||
((point vector :inline :offset-assert 0)
|
||||
(y-threshold float :offset-assert 16)
|
||||
@@ -153,6 +166,7 @@
|
||||
:flag-assert #x900000024
|
||||
)
|
||||
|
||||
|
||||
(deftype clamp-travel-vector-to-mesh-return-info (structure)
|
||||
((found-boundary basic :offset-assert 0)
|
||||
(intersection vector :inline :offset-assert 16)
|
||||
@@ -173,77 +187,79 @@
|
||||
:flag-assert #x9000000a0
|
||||
)
|
||||
|
||||
|
||||
(deftype nav-mesh (basic)
|
||||
((work nav-mesh-work :offset-assert 4)
|
||||
(poly-array (inline-array nav-poly) :offset-assert 8)
|
||||
(static-sphere-count uint8 :offset-assert 12)
|
||||
(poly-count uint8 :offset-assert 13)
|
||||
(nav-control-count uint8 :offset-assert 14)
|
||||
(max-nav-control-count uint8 :offset-assert 15)
|
||||
(route uint32 :offset-assert 16)
|
||||
(poly-hash basic :offset-assert 20)
|
||||
(nav-control-array uint32 :offset-assert 24)
|
||||
(sphere-hash basic :offset-assert 28)
|
||||
(static-sphere uint32 :offset-assert 32)
|
||||
(user-list basic :offset-assert 36)
|
||||
(next-nav-mesh basic :offset-assert 40)
|
||||
(prev-nav-mesh basic :offset-assert 44)
|
||||
(bounds sphere :inline :offset-assert 48)
|
||||
(origin vector :inline :offset 48)
|
||||
(entity entity :offset-assert 64)
|
||||
(link-array uint32 :offset-assert 68)
|
||||
(link-count uint8 :offset-assert 72)
|
||||
(flags nav-mesh-flag :offset-assert 73)
|
||||
(pad1 uint8 2 :offset-assert 74)
|
||||
(nearest-y-threshold meters :offset-assert 76)
|
||||
(water-max-height meters :offset-assert 80)
|
||||
(pad2 uint32 7 :offset-assert 84)
|
||||
((work nav-mesh-work :offset-assert 4)
|
||||
(poly-array (inline-array nav-poly) :offset-assert 8)
|
||||
(static-sphere-count uint8 :offset-assert 12)
|
||||
(poly-count uint8 :offset-assert 13)
|
||||
(nav-control-count uint8 :offset-assert 14)
|
||||
(max-nav-control-count uint8 :offset-assert 15)
|
||||
(route uint32 :offset-assert 16)
|
||||
(poly-hash grid-hash :offset-assert 20)
|
||||
(nav-control-array (inline-array nav-control) :offset-assert 24)
|
||||
(sphere-hash sphere-hash :offset-assert 28)
|
||||
(static-sphere (inline-array sphere) :offset-assert 32)
|
||||
(user-list engine :offset-assert 36)
|
||||
(next-nav-mesh surface :offset-assert 40)
|
||||
(prev-nav-mesh surface :offset-assert 44)
|
||||
(bounds sphere :inline :offset-assert 48)
|
||||
(origin vector :inline :offset 48)
|
||||
(entity entity :offset-assert 64)
|
||||
(link-array (array nav-mesh-link) :offset-assert 68)
|
||||
(link-count uint8 :offset-assert 72)
|
||||
(flags nav-mesh-flag :offset-assert 73)
|
||||
(pad1 uint8 2 :offset-assert 74)
|
||||
(nearest-y-threshold meters :offset-assert 76)
|
||||
(water-max-height meters :offset-assert 80)
|
||||
(pad2 uint32 7 :offset-assert 84)
|
||||
)
|
||||
:method-count-assert 47
|
||||
:size-assert #x70
|
||||
:flag-assert #x2f00000070
|
||||
(:methods
|
||||
(nav-mesh-method-9 () none 9)
|
||||
(nav-mesh-method-10 () none 10)
|
||||
(nav-mesh-method-11 () none 11)
|
||||
(nav-mesh-method-12 () none 12)
|
||||
(nav-mesh-method-13 () none 13)
|
||||
(nav-mesh-method-14 () none 14)
|
||||
(nav-mesh-method-15 () none 15)
|
||||
(nav-mesh-method-9 (_type_) none 9)
|
||||
(nav-mesh-method-10 (_type_ vector vector nav-poly) nav-poly 10)
|
||||
(nav-mesh-method-11 (_type_ nav-poly vector) vector 11)
|
||||
(nav-mesh-method-12 (_type_ nav-poly vector) none 12)
|
||||
(nav-mesh-method-13 (_type_ symbol symbol) none 13)
|
||||
(get-route-portal (_type_ object object nav-find-poly-parms) none 14)
|
||||
(initialize-mesh! (_type_) none 15)
|
||||
(move-along-nav-ray! (_type_ nav-ray) none 16)
|
||||
(nav-mesh-method-17 () none 17)
|
||||
(try-move-along-ray (_type_ nav-poly vector vector float) meters 17)
|
||||
(nav-mesh-method-18 () none 18)
|
||||
(nav-mesh-method-19 () none 19)
|
||||
(nav-mesh-method-20 () none 20)
|
||||
(nav-mesh-method-21 () none 21)
|
||||
(nav-mesh-method-22 () none 22)
|
||||
(nav-mesh-method-23 () none 23)
|
||||
(nav-mesh-method-24 () none 24)
|
||||
(nav-mesh-method-25 () none 25)
|
||||
(nav-mesh-method-26 () none 26)
|
||||
(nav-mesh-method-27 () none 27)
|
||||
(nav-mesh-method-28 () none 28)
|
||||
(nav-mesh-method-29 () none 29)
|
||||
(nav-mesh-method-30 () none 30)
|
||||
(nav-mesh-method-31 () none 31)
|
||||
(nav-mesh-method-32 () none 32)
|
||||
(nav-mesh-method-33 () none 33)
|
||||
(nav-mesh-method-34 () none 34)
|
||||
(nav-mesh-method-22 (_type_ vector vector) none 22)
|
||||
(nav-mesh-method-23 (_type_ entity-nav-mesh) none 23)
|
||||
(nav-mesh-method-24 (_type_) none 24)
|
||||
(nav-mesh-method-25 (_type_) none 25)
|
||||
(nav-mesh-method-26 (_type_) none 26)
|
||||
(new-nav-control (_type_ vector int) nav-control 27)
|
||||
(nav-mesh-method-28 (_type_ object) none 28)
|
||||
(nav-mesh-method-29 (_type_ object symbol) nav-control 29)
|
||||
(nav-mesh-method-30 (_type_ process-drawable) none 30)
|
||||
(change-to (_type_ process-drawable) none 31)
|
||||
(nav-mesh-method-32 (_type_ uint32) none 32)
|
||||
(nav-mesh-method-33 (_type_ uint32) symbol 33)
|
||||
(nav-mesh-method-34 (_type_ object vector float) none 34)
|
||||
(nav-mesh-method-35 () none 35)
|
||||
(nav-mesh-method-36 () none 36)
|
||||
(nav-mesh-method-36 (_type_ nav-poly rgba) none 36)
|
||||
(point-in-poly? (_type_ nav-poly vector) symbol 37)
|
||||
(nav-mesh-method-38 () none 38)
|
||||
(nav-mesh-method-38 (_type_ nav-poly vector vector vector object) vector 38)
|
||||
(closest-point-on-boundary (_type_ nav-poly vector vector) none 39)
|
||||
(nav-mesh-method-40 () none 40)
|
||||
(nav-mesh-method-40 (_type_ nav-poly vector object vector) none 40)
|
||||
(project-point-into-poly-2d (_type_ nav-poly vector vector) none 41)
|
||||
(nav-mesh-method-42 () none 42)
|
||||
(nav-mesh-method-43 () none 43)
|
||||
(nav-mesh-method-44 () none 44)
|
||||
(nav-mesh-method-45 () none 45)
|
||||
(nav-mesh-method-46 () none 46)
|
||||
(nav-mesh-method-42 (_type_ nav-find-poly-parms) symbol 42)
|
||||
(nav-mesh-method-43 (_type_ nav-find-poly-parms) none 43)
|
||||
(nav-mesh-method-44 (_type_ vector float float) symbol 44)
|
||||
(nav-mesh-method-45 (_type_ entity-perm) none 45)
|
||||
(nav-mesh-method-46 (_type_ object) none 46)
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
(defun vector-normalize-unity! ((arg0 vector))
|
||||
(rlet ((acc :class vf)
|
||||
(Q :class vf)
|
||||
@@ -313,6 +329,7 @@
|
||||
#f
|
||||
)
|
||||
|
||||
;; WARN: Return type mismatch int vs none.
|
||||
(defun init-ray ((arg0 nav-ray))
|
||||
(rlet ((acc :class vf)
|
||||
(Q :class vf)
|
||||
@@ -357,8 +374,6 @@
|
||||
)
|
||||
|
||||
(defun point-poly-intersection? ((arg0 nav-mesh) (arg1 vector) (arg2 int) (arg3 (inline-array vector)))
|
||||
"Helper for point in poly...
|
||||
Uses the vertex table of the nav-mesh, but user supplied vectors."
|
||||
(let ((v1-1 (-> arg0 work vert0-table))
|
||||
(a0-2 (-> arg0 work vert1-table))
|
||||
)
|
||||
@@ -381,11 +396,10 @@
|
||||
)
|
||||
|
||||
(defmethod point-in-poly? nav-mesh ((obj nav-mesh) (arg0 nav-poly) (arg1 vector))
|
||||
"Is the point in the poly?"
|
||||
(let* ((a3-0 obj)
|
||||
(v1-0 arg1)
|
||||
(a0-1 (-> arg0 vertex-count))
|
||||
(a1-1 (-> arg0 vertex))
|
||||
(a1-1 (the-as (inline-array vector) (-> arg0 vertex0)))
|
||||
(a2-2 (-> a3-0 work vert0-table))
|
||||
(a3-2 (-> a3-0 work vert1-table))
|
||||
)
|
||||
@@ -407,8 +421,12 @@
|
||||
#t
|
||||
)
|
||||
|
||||
;; WARN: Stack slot offset 56 signed mismatch
|
||||
;; WARN: Stack slot offset 56 signed mismatch
|
||||
;; WARN: Stack slot offset 56 signed mismatch
|
||||
;; WARN: Stack slot offset 56 signed mismatch
|
||||
;; WARN: Return type mismatch vector vs none.
|
||||
(defmethod closest-point-on-boundary nav-mesh ((obj nav-mesh) (arg0 nav-poly) (arg1 vector) (arg2 vector))
|
||||
"Set arg1 to the closest point to arg2 that's on the boundary of arg0."
|
||||
(local-vars (sv-48 vector) (sv-52 vector) (sv-56 float))
|
||||
(set! sv-48 (new 'stack-no-clear 'vector))
|
||||
(set! sv-52 (new 'stack-no-clear 'vector))
|
||||
@@ -430,10 +448,12 @@
|
||||
(none)
|
||||
)
|
||||
|
||||
;; WARN: Stack slot offset 56 signed mismatch
|
||||
;; WARN: Stack slot offset 56 signed mismatch
|
||||
;; WARN: Stack slot offset 56 signed mismatch
|
||||
;; WARN: Stack slot offset 56 signed mismatch
|
||||
;; WARN: Return type mismatch vector vs none.
|
||||
(defmethod project-point-into-poly-2d nav-mesh ((obj nav-mesh) (arg0 nav-poly) (arg1 vector) (arg2 vector))
|
||||
"Project into polygon. If it's not in the polygon, sets y to the height of the edge.
|
||||
If it's in the polygon (in the xz plane), the output uses y from the input.
|
||||
As a result, this doesn't make too much sense for 3d stuff."
|
||||
(local-vars (sv-48 vector) (sv-52 vector) (sv-56 float))
|
||||
(cond
|
||||
((point-in-poly? obj arg0 arg2)
|
||||
@@ -464,9 +484,56 @@
|
||||
(none)
|
||||
)
|
||||
|
||||
;; WARN: Stack slot offset 44 signed mismatch
|
||||
;; WARN: Stack slot offset 48 signed mismatch
|
||||
;; WARN: Stack slot offset 44 signed mismatch
|
||||
;; WARN: Stack slot offset 48 signed mismatch
|
||||
;; WARN: Stack slot offset 44 signed mismatch
|
||||
;; WARN: Stack slot offset 60 signed mismatch
|
||||
;; WARN: Stack slot offset 48 signed mismatch
|
||||
;; WARN: Stack slot offset 64 signed mismatch
|
||||
;; WARN: Stack slot offset 60 signed mismatch
|
||||
;; WARN: Stack slot offset 64 signed mismatch
|
||||
;; WARN: Stack slot offset 44 signed mismatch
|
||||
;; WARN: Stack slot offset 48 signed mismatch
|
||||
;; WARN: Stack slot offset 44 signed mismatch
|
||||
;; WARN: Stack slot offset 48 signed mismatch
|
||||
;; WARN: Stack slot offset 44 signed mismatch
|
||||
;; WARN: Stack slot offset 48 signed mismatch
|
||||
;; WARN: Stack slot offset 44 signed mismatch
|
||||
;; WARN: Stack slot offset 60 signed mismatch
|
||||
;; WARN: Stack slot offset 48 signed mismatch
|
||||
;; WARN: Stack slot offset 64 signed mismatch
|
||||
;; WARN: Stack slot offset 60 signed mismatch
|
||||
;; WARN: Stack slot offset 64 signed mismatch
|
||||
;; WARN: Stack slot offset 44 signed mismatch
|
||||
;; WARN: Stack slot offset 48 signed mismatch
|
||||
;; WARN: Stack slot offset 44 signed mismatch
|
||||
;; WARN: Stack slot offset 48 signed mismatch
|
||||
;; WARN: Stack slot offset 44 signed mismatch
|
||||
;; WARN: Stack slot offset 48 signed mismatch
|
||||
;; WARN: Stack slot offset 44 signed mismatch
|
||||
;; WARN: Stack slot offset 60 signed mismatch
|
||||
;; WARN: Stack slot offset 48 signed mismatch
|
||||
;; WARN: Stack slot offset 64 signed mismatch
|
||||
;; WARN: Stack slot offset 60 signed mismatch
|
||||
;; WARN: Stack slot offset 64 signed mismatch
|
||||
;; WARN: Stack slot offset 44 signed mismatch
|
||||
;; WARN: Stack slot offset 48 signed mismatch
|
||||
;; WARN: Stack slot offset 44 signed mismatch
|
||||
;; WARN: Stack slot offset 48 signed mismatch
|
||||
;; WARN: Stack slot offset 44 signed mismatch
|
||||
;; WARN: Stack slot offset 48 signed mismatch
|
||||
;; WARN: Stack slot offset 44 signed mismatch
|
||||
;; WARN: Stack slot offset 60 signed mismatch
|
||||
;; WARN: Stack slot offset 48 signed mismatch
|
||||
;; WARN: Stack slot offset 64 signed mismatch
|
||||
;; WARN: Stack slot offset 60 signed mismatch
|
||||
;; WARN: Stack slot offset 64 signed mismatch
|
||||
;; WARN: Stack slot offset 44 signed mismatch
|
||||
;; WARN: Stack slot offset 48 signed mismatch
|
||||
;; WARN: Return type mismatch int vs none.
|
||||
(defmethod move-along-nav-ray! nav-mesh ((obj nav-mesh) (ray nav-ray))
|
||||
"Advance the ray into the next polygon.
|
||||
update the ray's status as needed."
|
||||
(local-vars
|
||||
(next-poly-idx int)
|
||||
(work nav-mesh-work)
|
||||
@@ -495,16 +562,16 @@
|
||||
(set! adj-vtx-1 (-> current-poly vertex (-> v1-table i)))
|
||||
(set! adj-edge-dz (- (-> adj-vtx-0 z) (-> adj-vtx-1 z)))
|
||||
(set! adj-edge-minus-dx (- (-> adj-vtx-1 x) (-> adj-vtx-0 x)))
|
||||
(let ((f0-10 (+ (* delta-x adj-edge-dz) (* delta-z adj-edge-minus-dx))))
|
||||
(when (< 0.0 f0-10)
|
||||
(let ((heading-dot (+ (* delta-x adj-edge-dz) (* delta-z adj-edge-minus-dx))))
|
||||
(when (< 0.0 heading-dot)
|
||||
(let ((f1-10 (+ (* adj-edge-dz (- (-> adj-vtx-0 x) (-> ray current-pos x)))
|
||||
(* adj-edge-minus-dx (- (-> adj-vtx-0 z) (-> ray current-pos z)))
|
||||
)
|
||||
)
|
||||
)
|
||||
(when (< f1-10 f0-10)
|
||||
(when (< f1-10 heading-dot)
|
||||
(set! next-poly-idx i)
|
||||
(let ((f0-12 (fmax 0.0 (/ f1-10 f0-10))))
|
||||
(let ((f0-12 (fmax 0.0 (/ f1-10 heading-dot))))
|
||||
(set! delta-x (* delta-x f0-12))
|
||||
(set! delta-z (* delta-z f0-12))
|
||||
)
|
||||
@@ -529,7 +596,7 @@
|
||||
(+! (-> ray current-pos z) delta-z)
|
||||
(set! sv-68 (-> current-poly adj-poly next-poly-idx))
|
||||
(if (!= sv-68 255)
|
||||
(set! (-> ray next-poly) (-> obj poly-array sv-68))
|
||||
(set! (-> ray next-poly) (the-as nav-poly (-> obj poly-array sv-68 vertex0)))
|
||||
)
|
||||
(cond
|
||||
((and (-> ray next-poly) (zero? (logand (-> ray next-poly pat) (-> ray ignore))))
|
||||
@@ -550,6 +617,7 @@
|
||||
(none)
|
||||
)
|
||||
|
||||
;; WARN: Return type mismatch int vs none.
|
||||
(defun-debug nav-sphere-from-cam ()
|
||||
(let ((v1-0 (camera-pos)))
|
||||
(format #t "SPHEREM(~4,,1M, ~4,,1M, ~4,,1M, 1.0)~%" (-> v1-0 x) (-> v1-0 y) (-> v1-0 z))
|
||||
|
||||
@@ -106,7 +106,7 @@
|
||||
)
|
||||
)
|
||||
)
|
||||
(draw-string-xy *temp-string* arg0 32 (+ (* 12 s4-0) 8) (font-color orange-red) (font-flags shadow))
|
||||
(draw-string-xy *temp-string* arg0 32 (+ (* 12 s4-0) 8) (font-color precursor-#ec3b00) (font-flags shadow))
|
||||
)
|
||||
)
|
||||
0
|
||||
|
||||
@@ -5,6 +5,10 @@
|
||||
;; name in dgo: scene-h
|
||||
;; dgos: ENGINE, GAME
|
||||
|
||||
;; NOTE - for default-menu
|
||||
(declare-type scene-player process-drawable)
|
||||
(define-extern scene-player-init (function string symbol object none :behavior scene-player))
|
||||
|
||||
;; DECOMP BEGINS
|
||||
|
||||
(deftype scene-actor (basic)
|
||||
|
||||
@@ -844,7 +844,7 @@
|
||||
arg0
|
||||
(+ (* s5-0 16) 16)
|
||||
48
|
||||
(font-color default)
|
||||
(font-color default-#cddbcd)
|
||||
(font-flags shadow)
|
||||
)
|
||||
)
|
||||
@@ -857,7 +857,7 @@
|
||||
arg0
|
||||
(+ (* s5-1 16) 16)
|
||||
64
|
||||
(font-color default)
|
||||
(font-color default-#cddbcd)
|
||||
(font-flags shadow)
|
||||
)
|
||||
)
|
||||
@@ -869,7 +869,7 @@
|
||||
(-> *level* sound-bank 1)
|
||||
(-> *level* sound-bank 2)
|
||||
)
|
||||
(s5-2 *temp-string* arg0 16 88 (font-color default) (font-flags shadow))
|
||||
(s5-2 *temp-string* arg0 16 88 (font-color default-#cddbcd) (font-flags shadow))
|
||||
)
|
||||
(let ((s5-3 draw-string-xy))
|
||||
(format
|
||||
@@ -882,7 +882,7 @@
|
||||
(-> *setting-control* user-current sound-excitement)
|
||||
(-> *setting-control* user-current mode-sound-bank)
|
||||
)
|
||||
(s5-3 *temp-string* arg0 16 104 (font-color default) (font-flags shadow))
|
||||
(s5-3 *temp-string* arg0 16 104 (font-color default-#cddbcd) (font-flags shadow))
|
||||
)
|
||||
0
|
||||
)
|
||||
@@ -895,7 +895,7 @@
|
||||
(-> *sound-iop-info* freemem)
|
||||
(shr (-> *sound-iop-info* freemem) 10)
|
||||
)
|
||||
(s5-0 *temp-string* arg0 32 96 (font-color default) (font-flags shadow))
|
||||
(s5-0 *temp-string* arg0 32 96 (font-color default-#cddbcd) (font-flags shadow))
|
||||
)
|
||||
(let ((s5-1 draw-string-xy))
|
||||
(format
|
||||
@@ -904,7 +904,7 @@
|
||||
(-> *sound-iop-info* freemem2)
|
||||
(shr (-> *sound-iop-info* freemem2) 10)
|
||||
)
|
||||
(s5-1 *temp-string* arg0 32 64 (font-color default) (font-flags shadow))
|
||||
(s5-1 *temp-string* arg0 32 64 (font-color default-#cddbcd) (font-flags shadow))
|
||||
)
|
||||
0
|
||||
)
|
||||
|
||||
@@ -24,6 +24,7 @@
|
||||
:flag-assert #x900000006
|
||||
)
|
||||
|
||||
|
||||
(deftype grid-hash (basic)
|
||||
((work basic :offset-assert 4)
|
||||
(search-box grid-hash-box :inline :offset-assert 8)
|
||||
@@ -66,6 +67,7 @@
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
(deftype find-nav-sphere-ids-params (structure)
|
||||
((bsphere sphere :inline :offset-assert 0)
|
||||
(y-threshold float :offset-assert 16)
|
||||
@@ -79,12 +81,13 @@
|
||||
:flag-assert #x900000020
|
||||
)
|
||||
|
||||
|
||||
(deftype sphere-hash (grid-hash)
|
||||
((sphere-array uint32 :offset-assert 88)
|
||||
(max-object-count int16 :offset-assert 92)
|
||||
(pad int16 :offset-assert 94)
|
||||
(mem-sphere-array uint32 :offset-assert 96)
|
||||
(spr-sphere-array uint32 :offset-assert 100)
|
||||
((sphere-array (inline-array sphere) :offset-assert 88)
|
||||
(max-object-count int16 :offset-assert 92)
|
||||
(pad int16 :offset-assert 94)
|
||||
(mem-sphere-array uint32 :offset-assert 96)
|
||||
(spr-sphere-array uint32 :offset-assert 100)
|
||||
)
|
||||
:method-count-assert 34
|
||||
:size-assert #x68
|
||||
@@ -95,13 +98,14 @@
|
||||
(sphere-hash-method-27 () none 27)
|
||||
(sphere-hash-method-28 () none 28)
|
||||
(sphere-hash-method-29 () none 29)
|
||||
(sphere-hash-method-30 () none 30)
|
||||
(sphere-hash-method-30 (_type_ find-nav-sphere-ids-params) none 30)
|
||||
(sphere-hash-method-31 () none 31)
|
||||
(sphere-hash-method-32 () none 32)
|
||||
(sphere-hash-method-33 () none 33)
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
(deftype hash-object-info (structure)
|
||||
((object basic :offset-assert 0)
|
||||
)
|
||||
@@ -110,6 +114,7 @@
|
||||
:flag-assert #x900000004
|
||||
)
|
||||
|
||||
|
||||
(deftype spatial-hash (sphere-hash)
|
||||
((object-array uint32 :offset-assert 104)
|
||||
(mem-object-array uint32 :offset-assert 108)
|
||||
@@ -128,3 +133,10 @@
|
||||
(spatial-hash-method-40 () none 40)
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
0
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -689,8 +689,8 @@
|
||||
488
|
||||
arg1
|
||||
(if (>= f30-0 100.0)
|
||||
(font-color orange-red)
|
||||
(font-color default)
|
||||
(font-color precursor-#ec3b00)
|
||||
(font-color default-#cddbcd)
|
||||
)
|
||||
(font-flags shadow right)
|
||||
)
|
||||
@@ -705,8 +705,8 @@
|
||||
488
|
||||
arg1
|
||||
(if (>= f30-0 100.0)
|
||||
(font-color orange-red)
|
||||
(font-color default)
|
||||
(font-color precursor-#ec3b00)
|
||||
(font-color default-#cddbcd)
|
||||
)
|
||||
(font-flags shadow right)
|
||||
)
|
||||
@@ -740,8 +740,8 @@
|
||||
488
|
||||
arg1
|
||||
(if (>= f30-1 100.0)
|
||||
(font-color orange-red)
|
||||
(font-color default)
|
||||
(font-color precursor-#ec3b00)
|
||||
(font-color default-#cddbcd)
|
||||
)
|
||||
(font-flags shadow right)
|
||||
)
|
||||
@@ -756,8 +756,8 @@
|
||||
488
|
||||
arg1
|
||||
(if (>= f30-1 100.0)
|
||||
(font-color orange-red)
|
||||
(font-color default)
|
||||
(font-color precursor-#ec3b00)
|
||||
(font-color default-#cddbcd)
|
||||
)
|
||||
(font-flags shadow right)
|
||||
)
|
||||
@@ -859,4 +859,4 @@
|
||||
,@body
|
||||
(end-profiler)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
@@ -12,6 +12,10 @@
|
||||
(define-extern *syntax-context* script-context)
|
||||
(define-extern *script-context* script-context)
|
||||
|
||||
;; NOTE - for menu
|
||||
(define-extern command-get-int (function object int int))
|
||||
(define-extern command-get-float (function object float float))
|
||||
|
||||
;; DECOMP BEGINS
|
||||
|
||||
(deftype script-form (structure)
|
||||
|
||||
+3766
File diff suppressed because it is too large
Load Diff
+12
-12
@@ -343,18 +343,18 @@
|
||||
:max (new 'static 'vector :x 6144.0 :y 11059.2 :z 6144.0 :w 1.0)
|
||||
)
|
||||
:local-player-spheres (new 'static 'inline-array sphere 12
|
||||
(new 'static 'sphere :x 1720.32 :y -819.2 :w 1433.6)
|
||||
(new 'static 'sphere :x 2293.76 :y -3276.8 :w 1884.16)
|
||||
(new 'static 'sphere :x 1966.08 :y -6144.0 :w 1556.48)
|
||||
(new 'static 'sphere :x 1966.08 :y -8601.6 :w 1556.48)
|
||||
(new 'static 'sphere :x 1761.28 :y -11059.2 :w 1351.68)
|
||||
(new 'static 'sphere :x 1679.36 :y -13312.0 :w 1269.76)
|
||||
(new 'static 'sphere :x -737.28 :y 4096.0 :w 3072.0)
|
||||
(new 'static 'sphere :x -737.28 :y 6553.6 :w 3072.0)
|
||||
(new 'static 'sphere :x -737.28 :y 9420.8 :w 3072.0)
|
||||
(new 'static 'sphere :x 1720.32 :y 3686.4 :w 2949.12)
|
||||
(new 'static 'sphere :x 1720.32 :y 5734.4 :w 2949.12)
|
||||
(new 'static 'sphere :x 1720.32 :y 8601.6 :w 2949.12)
|
||||
(new 'static 'sphere :x 1720.32 :y -819.2 :r 1433.6)
|
||||
(new 'static 'sphere :x 2293.76 :y -3276.8 :r 1884.16)
|
||||
(new 'static 'sphere :x 1966.08 :y -6144.0 :r 1556.48)
|
||||
(new 'static 'sphere :x 1966.08 :y -8601.6 :r 1556.48)
|
||||
(new 'static 'sphere :x 1761.28 :y -11059.2 :r 1351.68)
|
||||
(new 'static 'sphere :x 1679.36 :y -13312.0 :r 1269.76)
|
||||
(new 'static 'sphere :x -737.28 :y 4096.0 :r 3072.0)
|
||||
(new 'static 'sphere :x -737.28 :y 6553.6 :r 3072.0)
|
||||
(new 'static 'sphere :x -737.28 :y 9420.8 :r 3072.0)
|
||||
(new 'static 'sphere :x 1720.32 :y 3686.4 :r 2949.12)
|
||||
(new 'static 'sphere :x 1720.32 :y 5734.4 :r 2949.12)
|
||||
(new 'static 'sphere :x 1720.32 :y 8601.6 :r 2949.12)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
+3
-3
@@ -1284,9 +1284,9 @@
|
||||
;; definition of type collide-shape
|
||||
(deftype collide-shape (trsqv)
|
||||
((actor-hash-index int16 :offset 12)
|
||||
(process process :offset-assert 140)
|
||||
(process process-drawable :offset-assert 140)
|
||||
(max-iteration-count uint8 :offset-assert 144)
|
||||
(nav-flags uint8 :offset-assert 145)
|
||||
(nav-flags nav-flags :offset-assert 145)
|
||||
(total-prims uint8 :offset-assert 146)
|
||||
(num-riders uint8 :offset-assert 147)
|
||||
(pat-ignore-mask pat-surface :offset-assert 148)
|
||||
@@ -1964,7 +1964,7 @@
|
||||
(set! (-> s5-0 actor-hash-index) -1)
|
||||
(set! (-> s5-0 process) arg0)
|
||||
(set! (-> s5-0 max-iteration-count) (the-as uint 1))
|
||||
(set! (-> s5-0 nav-flags) (the-as uint 1))
|
||||
(set! (-> s5-0 nav-flags) (nav-flags nav-flags0))
|
||||
(set! (-> s5-0 event-self) #f)
|
||||
(set! (-> s5-0 event-other) #f)
|
||||
(set! (-> s5-0 riders) (the-as pointer #f))
|
||||
|
||||
+5
-5
@@ -1085,7 +1085,7 @@
|
||||
;; definition (debug) for function add-debug-text-sphere
|
||||
(defun-debug add-debug-text-sphere ((enable symbol) (bucket bucket-id) (position vector) (radius meters) (text string) (color rgba))
|
||||
(add-debug-sphere enable bucket position radius color)
|
||||
(add-debug-text-3d enable bucket text position (font-color default) (the-as vector2h #f))
|
||||
(add-debug-text-3d enable bucket text position (font-color default-#cddbcd) (the-as vector2h #f))
|
||||
#f
|
||||
)
|
||||
|
||||
@@ -1879,16 +1879,16 @@
|
||||
(+ y -4)
|
||||
(cond
|
||||
((= v1-7 1)
|
||||
(font-color orange-red)
|
||||
(font-color precursor-#ec3b00)
|
||||
)
|
||||
((= v1-7 2)
|
||||
(font-color fc-5)
|
||||
(font-color yellow-#f3f300)
|
||||
)
|
||||
((= v1-7 4)
|
||||
(font-color fc-6)
|
||||
(font-color green-#3df23d)
|
||||
)
|
||||
(else
|
||||
(font-color default)
|
||||
(font-color default-#cddbcd)
|
||||
)
|
||||
)
|
||||
(font-flags shadow)
|
||||
|
||||
+4261
-5252
File diff suppressed because it is too large
Load Diff
+8
-8
@@ -124,7 +124,7 @@
|
||||
(s1-0 318)
|
||||
)
|
||||
(format (clear *temp-string*) "region-~D~%" (-> obj id))
|
||||
(s3-0 s2-0 (the-as bucket-id s1-0) *temp-string* arg0 (font-color one) sv-32)
|
||||
(s3-0 s2-0 (the-as bucket-id s1-0) *temp-string* arg0 (font-color #dadada) sv-32)
|
||||
)
|
||||
(set! (-> sv-32 y) (the-as int (+ (-> sv-32 y) 8)))
|
||||
(when (>= arg1 1)
|
||||
@@ -135,7 +135,7 @@
|
||||
(s1-1 318)
|
||||
)
|
||||
(format (clear *temp-string*) "(on-enter ~S)" s4-1)
|
||||
(s3-1 s2-1 (the-as bucket-id s1-1) *temp-string* arg0 (font-color one) sv-32)
|
||||
(s3-1 s2-1 (the-as bucket-id s1-1) *temp-string* arg0 (font-color #dadada) sv-32)
|
||||
)
|
||||
(set! (-> sv-32 y) (the-as int (+ (-> sv-32 y) 8)))
|
||||
)
|
||||
@@ -147,7 +147,7 @@
|
||||
(s1-2 318)
|
||||
)
|
||||
(format (clear *temp-string*) "(on-inside ~S)" s4-2)
|
||||
(s3-2 s2-2 (the-as bucket-id s1-2) *temp-string* arg0 (font-color one) sv-32)
|
||||
(s3-2 s2-2 (the-as bucket-id s1-2) *temp-string* arg0 (font-color #dadada) sv-32)
|
||||
)
|
||||
(set! (-> sv-32 y) (the-as int (+ (-> sv-32 y) 8)))
|
||||
)
|
||||
@@ -159,7 +159,7 @@
|
||||
(s2-3 318)
|
||||
)
|
||||
(format (clear *temp-string*) "(on-exit ~S)" s5-1)
|
||||
(s4-3 s3-3 (the-as bucket-id s2-3) *temp-string* arg0 (font-color one) sv-32)
|
||||
(s4-3 s3-3 (the-as bucket-id s2-3) *temp-string* arg0 (font-color #dadada) sv-32)
|
||||
)
|
||||
(set! (-> sv-32 y) (the-as int (+ (-> sv-32 y) 8)))
|
||||
)
|
||||
@@ -708,7 +708,7 @@
|
||||
(s5-0 (new 'stack-no-clear 'vector))
|
||||
)
|
||||
(set! (-> a0-1 quad) (-> obj trans quad))
|
||||
(set! (-> a0-1 w) (-> obj radius))
|
||||
(set! (-> a0-1 r) (-> obj radius))
|
||||
(when (sphere-in-view-frustum? a0-1)
|
||||
(reverse-transform-point! s5-0 (-> obj trans) (-> *math-camera* inv-camera-rot vector 2) arg0)
|
||||
(let ((f0-1 (vector-vector-distance (edit-get-trans obj) s5-0)))
|
||||
@@ -1027,7 +1027,7 @@
|
||||
(s3-1 318)
|
||||
)
|
||||
(format (clear *temp-string*) "~S~%" (-> obj name))
|
||||
(s5-1 s4-1 (the-as bucket-id s3-1) *temp-string* (-> obj trans) (font-color one) (the-as vector2h #f))
|
||||
(s5-1 s4-1 (the-as bucket-id s3-1) *temp-string* (-> obj trans) (font-color #dadada) (the-as vector2h #f))
|
||||
)
|
||||
)
|
||||
((method-of-type editable-sphere editable-method-10) obj)
|
||||
@@ -1648,8 +1648,8 @@
|
||||
*temp-string*
|
||||
(-> gp-0 s4-1)
|
||||
(if (logtest? (-> obj flags) (editable-flag orient))
|
||||
(font-color fc-5)
|
||||
(font-color one)
|
||||
(font-color yellow-#f3f300)
|
||||
(font-color #dadada)
|
||||
)
|
||||
(the-as vector2h #f)
|
||||
)
|
||||
|
||||
+1760
File diff suppressed because it is too large
Load Diff
+6
-6
@@ -230,8 +230,8 @@
|
||||
:size-assert #x34
|
||||
:flag-assert #x1b00000034
|
||||
(:methods
|
||||
(entity-method-22 () none 22)
|
||||
(entity-method-23 () none 23)
|
||||
(entity-method-22 (_type_) _type_ 22)
|
||||
(entity-method-23 (_type_) _type_ 23)
|
||||
(entity-method-24 () none 24)
|
||||
(entity-method-25 () none 25)
|
||||
(entity-method-26 () none 26)
|
||||
@@ -255,8 +255,8 @@
|
||||
:size-assert #x38
|
||||
:flag-assert #x1d00000038
|
||||
(:methods
|
||||
(entity-nav-mesh-method-27 () none 27)
|
||||
(entity-nav-mesh-method-28 () none 28)
|
||||
(entity-nav-mesh-method-27 (_type_) none 27)
|
||||
(debug-draw (_type_) none 28)
|
||||
)
|
||||
)
|
||||
|
||||
@@ -289,8 +289,8 @@
|
||||
(prev-actor (_type_) entity-actor 28)
|
||||
(entity-actor-method-29 () none 29)
|
||||
(entity-actor-method-30 () none 30)
|
||||
(entity-actor-method-31 () none 31)
|
||||
(entity-actor-method-32 () none 32)
|
||||
(entity-actor-method-31 (_type_ vector vector vector object float) nav-mesh 31)
|
||||
(entity-actor-method-32 (_type_ vector vector nav-poly float) nav-poly 32)
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
+96
-96
@@ -222,102 +222,102 @@
|
||||
|
||||
;; definition of type game-info
|
||||
(deftype game-info (basic)
|
||||
((mode symbol :offset-assert 4)
|
||||
(save-name string :offset-assert 8)
|
||||
(life float :offset-assert 12)
|
||||
(life-max float :offset-assert 16)
|
||||
(money float :offset-assert 20)
|
||||
(money-total float :offset-assert 24)
|
||||
(money-per-level uint8 32 :offset-assert 28)
|
||||
(deaths-per-level uint8 32 :offset-assert 60)
|
||||
(buzzer-total float :offset-assert 92)
|
||||
(fuel float :offset-assert 96)
|
||||
(gem float :offset-assert 100)
|
||||
(gem-total float :offset-assert 104)
|
||||
(skill float :offset-assert 108)
|
||||
(skill-total float :offset-assert 112)
|
||||
(karma float :offset-assert 116)
|
||||
(eco-pill-dark float :offset-assert 120)
|
||||
(eco-pill-dark-total float :offset-assert 124)
|
||||
(features game-feature :offset-assert 128)
|
||||
(debug-features game-feature :offset-assert 136)
|
||||
(secrets game-secrets :offset-assert 144)
|
||||
(unknown-pad1 uint32 :offset-assert 148)
|
||||
(purchase-secrets uint32 :offset-assert 152)
|
||||
(unknown-pad2 uint32 :offset-assert 156)
|
||||
(gun-type int32 :offset-assert 160)
|
||||
(gun-ammo float 4 :offset-assert 164)
|
||||
(shield float :offset-assert 180)
|
||||
(score float :offset-assert 184)
|
||||
(score-owner uint64 :offset-assert 192)
|
||||
(timer uint64 :offset-assert 200)
|
||||
(timer-owner uint64 :offset-assert 208)
|
||||
(timer-flash basic :offset-assert 216)
|
||||
(counter float :offset-assert 220)
|
||||
(counter-flash basic :offset-assert 224)
|
||||
(attack-id uint32 :offset-assert 228)
|
||||
(perm-list entity-perm-array :offset-assert 232)
|
||||
(task-perm-list entity-perm-array :offset-assert 236)
|
||||
(current-continue continue-point :offset-assert 240)
|
||||
(last-continue continue-point :offset-assert 244)
|
||||
(unknown-pad3 array :offset-assert 248)
|
||||
(unknown-pad4 array :offset-assert 252)
|
||||
(unknown-pad5 array :offset-assert 256)
|
||||
(task-counter uint32 :offset-assert 260)
|
||||
(unknown-pad6 uint32 :offset-assert 264)
|
||||
(level-opened uint8 32 :offset-assert 268)
|
||||
(total-deaths int32 :offset-assert 300)
|
||||
(continue-deaths int32 :offset-assert 304)
|
||||
(task-deaths int32 :offset-assert 308)
|
||||
(total-trys int32 :offset-assert 312)
|
||||
(game-start-time time-frame :offset-assert 320)
|
||||
(continue-time time-frame :offset-assert 328)
|
||||
(death-time time-frame :offset-assert 336)
|
||||
(hit-time time-frame :offset-assert 344)
|
||||
(task-pickup-time time-frame :offset-assert 352)
|
||||
(unknown-array1 (array uint64) :offset-assert 360)
|
||||
(unknown-array2 (array uint64) :offset-assert 364)
|
||||
(unknown-array3 (array uint64) :offset-assert 368)
|
||||
(death-pos vector-array :offset 372)
|
||||
(stop-watch-start uint64 :offset-assert 376)
|
||||
(stop-watch-stop uint64 :offset-assert 384)
|
||||
(blackout-time time-frame :offset-assert 392)
|
||||
(letterbox-time time-frame :offset-assert 400)
|
||||
(hint-play-time time-frame :offset-assert 408)
|
||||
(display-text-time time-frame :offset-assert 416)
|
||||
(display-text-handle uint64 :offset-assert 424)
|
||||
(death-movie-tick int32 :offset-assert 432)
|
||||
(want-auto-save symbol :offset-assert 436)
|
||||
(auto-save-proc handle :offset-assert 440)
|
||||
(auto-save-status mc-status-code :offset-assert 448)
|
||||
(auto-save-card int32 :offset-assert 452)
|
||||
(auto-save-which int32 :offset-assert 456)
|
||||
(auto-save-count int32 :offset-assert 460)
|
||||
(pov-camera-handle uint64 :offset-assert 464)
|
||||
(other-camera-handle uint64 :offset-assert 472)
|
||||
(controller uint64 2 :offset-assert 480)
|
||||
(race-timer uint64 :offset-assert 496)
|
||||
(race-current-lap-count int32 :offset-assert 504)
|
||||
(race-total-lap-count int32 :offset-assert 508)
|
||||
(race-position int32 :offset-assert 512)
|
||||
(race-number-turbos int32 :offset-assert 516)
|
||||
(bot-health uint32 3 :offset-assert 520)
|
||||
(demo-state uint32 :offset-assert 532)
|
||||
(wanted-flash basic :offset-assert 536)
|
||||
(distance float :offset-assert 540)
|
||||
(kiosk-timeout uint64 :offset-assert 544)
|
||||
(pause-start-time time-frame :offset-assert 552)
|
||||
(game-score (array highscore-info) :offset-assert 560)
|
||||
(goal float :offset-assert 564)
|
||||
(miss float :offset-assert 568)
|
||||
(miss-max float :offset-assert 572)
|
||||
(unknown-array4 (array uint64) :offset-assert 576)
|
||||
(live-eco-pill-count int32 :offset-assert 580)
|
||||
(live-gem-count int32 :offset-assert 584)
|
||||
(air-supply float :offset-assert 588)
|
||||
(homing-beacon int32 :offset-assert 592)
|
||||
(dark-eco-pickup int32 :offset-assert 596)
|
||||
(green-eco-pickup int32 :offset-assert 600)
|
||||
((mode symbol :offset-assert 4)
|
||||
(save-name string :offset-assert 8)
|
||||
(life float :offset-assert 12)
|
||||
(life-max float :offset-assert 16)
|
||||
(money float :offset-assert 20)
|
||||
(money-total float :offset-assert 24)
|
||||
(money-per-level uint8 32 :offset-assert 28)
|
||||
(deaths-per-level uint8 32 :offset-assert 60)
|
||||
(buzzer-total float :offset-assert 92)
|
||||
(fuel float :offset-assert 96)
|
||||
(gem float :offset-assert 100)
|
||||
(gem-total float :offset-assert 104)
|
||||
(skill float :offset-assert 108)
|
||||
(skill-total float :offset-assert 112)
|
||||
(karma float :offset-assert 116)
|
||||
(eco-pill-dark float :offset-assert 120)
|
||||
(eco-pill-dark-total float :offset-assert 124)
|
||||
(features game-feature :offset-assert 128)
|
||||
(debug-features game-feature :offset-assert 136)
|
||||
(secrets game-secrets :offset-assert 144)
|
||||
(unknown-pad1 uint32 :offset-assert 148)
|
||||
(purchase-secrets uint32 :offset-assert 152)
|
||||
(unknown-pad2 uint32 :offset-assert 156)
|
||||
(gun-type int32 :offset-assert 160)
|
||||
(gun-ammo float 4 :offset-assert 164)
|
||||
(shield float :offset-assert 180)
|
||||
(score float :offset-assert 184)
|
||||
(score-owner uint64 :offset-assert 192)
|
||||
(timer uint64 :offset-assert 200)
|
||||
(timer-owner uint64 :offset-assert 208)
|
||||
(timer-flash basic :offset-assert 216)
|
||||
(counter float :offset-assert 220)
|
||||
(counter-flash basic :offset-assert 224)
|
||||
(attack-id uint32 :offset-assert 228)
|
||||
(perm-list entity-perm-array :offset-assert 232)
|
||||
(task-perm-list entity-perm-array :offset-assert 236)
|
||||
(current-continue continue-point :offset-assert 240)
|
||||
(last-continue continue-point :offset-assert 244)
|
||||
(play-list (array game-task-info) :offset-assert 248)
|
||||
(sub-task-list (array game-task-node-info) :offset-assert 252)
|
||||
(unknown-pad5 array :offset-assert 256)
|
||||
(task-counter uint32 :offset-assert 260)
|
||||
(unknown-pad6 uint32 :offset-assert 264)
|
||||
(level-opened uint8 32 :offset-assert 268)
|
||||
(total-deaths int32 :offset-assert 300)
|
||||
(continue-deaths int32 :offset-assert 304)
|
||||
(task-deaths int32 :offset-assert 308)
|
||||
(total-trys int32 :offset-assert 312)
|
||||
(game-start-time time-frame :offset-assert 320)
|
||||
(continue-time time-frame :offset-assert 328)
|
||||
(death-time time-frame :offset-assert 336)
|
||||
(hit-time time-frame :offset-assert 344)
|
||||
(task-pickup-time time-frame :offset-assert 352)
|
||||
(unknown-array1 (array uint64) :offset-assert 360)
|
||||
(unknown-array2 (array uint64) :offset-assert 364)
|
||||
(unknown-array3 (array uint64) :offset-assert 368)
|
||||
(death-pos vector-array :offset 372)
|
||||
(stop-watch-start uint64 :offset-assert 376)
|
||||
(stop-watch-stop uint64 :offset-assert 384)
|
||||
(blackout-time time-frame :offset-assert 392)
|
||||
(letterbox-time time-frame :offset-assert 400)
|
||||
(hint-play-time time-frame :offset-assert 408)
|
||||
(display-text-time time-frame :offset-assert 416)
|
||||
(display-text-handle uint64 :offset-assert 424)
|
||||
(death-movie-tick int32 :offset-assert 432)
|
||||
(want-auto-save symbol :offset-assert 436)
|
||||
(auto-save-proc handle :offset-assert 440)
|
||||
(auto-save-status mc-status-code :offset-assert 448)
|
||||
(auto-save-card int32 :offset-assert 452)
|
||||
(auto-save-which int32 :offset-assert 456)
|
||||
(auto-save-count int32 :offset-assert 460)
|
||||
(pov-camera-handle uint64 :offset-assert 464)
|
||||
(other-camera-handle uint64 :offset-assert 472)
|
||||
(controller uint64 2 :offset-assert 480)
|
||||
(race-timer uint64 :offset-assert 496)
|
||||
(race-current-lap-count int32 :offset-assert 504)
|
||||
(race-total-lap-count int32 :offset-assert 508)
|
||||
(race-position int32 :offset-assert 512)
|
||||
(race-number-turbos int32 :offset-assert 516)
|
||||
(bot-health uint32 3 :offset-assert 520)
|
||||
(demo-state uint32 :offset-assert 532)
|
||||
(wanted-flash basic :offset-assert 536)
|
||||
(distance float :offset-assert 540)
|
||||
(kiosk-timeout uint64 :offset-assert 544)
|
||||
(pause-start-time time-frame :offset-assert 552)
|
||||
(game-score (array highscore-info) :offset-assert 560)
|
||||
(goal float :offset-assert 564)
|
||||
(miss float :offset-assert 568)
|
||||
(miss-max float :offset-assert 572)
|
||||
(unknown-array4 (array uint64) :offset-assert 576)
|
||||
(live-eco-pill-count int32 :offset-assert 580)
|
||||
(live-gem-count int32 :offset-assert 584)
|
||||
(air-supply float :offset-assert 588)
|
||||
(homing-beacon int32 :offset-assert 592)
|
||||
(dark-eco-pickup int32 :offset-assert 596)
|
||||
(green-eco-pickup int32 :offset-assert 600)
|
||||
)
|
||||
:method-count-assert 31
|
||||
:size-assert #x25c
|
||||
|
||||
+14
-4
@@ -1052,10 +1052,10 @@
|
||||
(local-vars (v0-0 uint) (f3-1 float) (f4-5 float) (f5-5 float) (f5-15 float) (f6-0 float) (f8-1 float))
|
||||
(let ((f3-0 (-> arg0 x))
|
||||
(f4-0 (-> arg0 z))
|
||||
(f5-0 (-> arg0 w))
|
||||
(f5-0 (-> arg0 r))
|
||||
(f1-0 (-> arg1 x))
|
||||
(f0-0 (-> arg1 z))
|
||||
(f2-0 (-> arg1 w))
|
||||
(f2-0 (-> arg1 r))
|
||||
(v1-0 0.5)
|
||||
)
|
||||
(.mula.s f5-0 f5-0)
|
||||
@@ -1248,8 +1248,18 @@
|
||||
(s5-0 (new-stack-vector0))
|
||||
(gp-0 (new-stack-vector0))
|
||||
)
|
||||
(set-vector! s4-0 0.0 0.0 0.0 1.0)
|
||||
(set-vector! a1-2 100.0 0.0 0.0 10000.0)
|
||||
(let ((v1-3 s4-0))
|
||||
(set! (-> v1-3 x) 0.0)
|
||||
(set! (-> v1-3 y) 0.0)
|
||||
(set! (-> v1-3 z) 0.0)
|
||||
(set! (-> v1-3 r) 1.0)
|
||||
)
|
||||
(let ((v1-4 a1-2))
|
||||
(set! (-> v1-4 x) 100.0)
|
||||
(set! (-> v1-4 y) 0.0)
|
||||
(set! (-> v1-4 z) 0.0)
|
||||
(set! (-> v1-4 r) 10000.0)
|
||||
)
|
||||
(let ((a2-1 (circle-circle-xz-intersect s4-0 a1-2 s5-0 gp-0)))
|
||||
(format #t "res = ~d~%" a2-1)
|
||||
)
|
||||
|
||||
+5
-5
@@ -16,9 +16,9 @@
|
||||
:size-assert #x18
|
||||
:flag-assert #xc00000018
|
||||
(:methods
|
||||
(plane-volume-method-9 () none 9)
|
||||
(plane-volume-method-10 () none 10)
|
||||
(plane-volume-method-11 () none 11)
|
||||
(plane-volume-method-9 (_type_ symbol vector-array vector-array) plane-volume 9)
|
||||
(debug-draw (_type_) none 10)
|
||||
(point-in-vol? (_type_ vector float) symbol 11)
|
||||
)
|
||||
)
|
||||
|
||||
@@ -56,8 +56,8 @@
|
||||
:flag-assert #xc0000061c
|
||||
(:methods
|
||||
(new (symbol type process-drawable) _type_ 0)
|
||||
(vol-control-method-9 (_type_) symbol 9)
|
||||
(vol-control-method-10 (_type_ vector) symbol 10)
|
||||
(vol-control-method-9 (_type_) none 9)
|
||||
(vol-control-method-10 (_type_ plane) symbol 10)
|
||||
(should-display? (_type_) symbol 11)
|
||||
)
|
||||
)
|
||||
|
||||
+355
@@ -0,0 +1,355 @@
|
||||
;;-*-Lisp-*-
|
||||
(in-package goal)
|
||||
|
||||
;; definition for function plane-volume-intersect-dist
|
||||
(defun plane-volume-intersect-dist ((arg0 vector) (arg1 vector) (arg2 vector))
|
||||
(let ((f0-1 (vector-dot arg1 arg0))
|
||||
(f1-1 (vector-dot arg2 arg0))
|
||||
)
|
||||
(if (< 0.00001 (fabs f1-1))
|
||||
(/ (- (-> arg0 w) f0-1) f1-1)
|
||||
409600000.0
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for method 9 of type plane-volume
|
||||
;; INFO: Used lq/sq
|
||||
;; WARN: Stack slot offset 148 signed mismatch
|
||||
;; WARN: Stack slot offset 148 signed mismatch
|
||||
;; WARN: Stack slot offset 148 signed mismatch
|
||||
;; WARN: Stack slot offset 148 signed mismatch
|
||||
;; WARN: Stack slot offset 148 signed mismatch
|
||||
;; WARN: Stack slot offset 148 signed mismatch
|
||||
;; WARN: Stack slot offset 148 signed mismatch
|
||||
;; WARN: Stack slot offset 148 signed mismatch
|
||||
;; WARN: Stack slot offset 148 signed mismatch
|
||||
;; WARN: Stack slot offset 148 signed mismatch
|
||||
;; WARN: Stack slot offset 148 signed mismatch
|
||||
;; WARN: Stack slot offset 148 signed mismatch
|
||||
;; WARN: Stack slot offset 148 signed mismatch
|
||||
;; WARN: Stack slot offset 148 signed mismatch
|
||||
;; WARN: Stack slot offset 148 signed mismatch
|
||||
;; WARN: Stack slot offset 148 signed mismatch
|
||||
;; WARN: Stack slot offset 148 signed mismatch
|
||||
;; WARN: Stack slot offset 148 signed mismatch
|
||||
;; WARN: Stack slot offset 148 signed mismatch
|
||||
;; WARN: Stack slot offset 148 signed mismatch
|
||||
;; WARN: Stack slot offset 148 signed mismatch
|
||||
;; WARN: Stack slot offset 148 signed mismatch
|
||||
;; WARN: Stack slot offset 148 signed mismatch
|
||||
;; WARN: Stack slot offset 148 signed mismatch
|
||||
;; WARN: Stack slot offset 148 signed mismatch
|
||||
;; WARN: Stack slot offset 148 signed mismatch
|
||||
;; WARN: Stack slot offset 148 signed mismatch
|
||||
;; WARN: Stack slot offset 148 signed mismatch
|
||||
;; WARN: Stack slot offset 148 signed mismatch
|
||||
(defmethod plane-volume-method-9 plane-volume ((obj plane-volume) (arg0 symbol) (arg1 vector-array) (arg2 vector-array))
|
||||
(local-vars
|
||||
(sv-144 vector)
|
||||
(sv-148 number)
|
||||
(sv-152 int)
|
||||
(sv-160 vector)
|
||||
(sv-176 vector)
|
||||
(sv-192 vector)
|
||||
(sv-208 vector)
|
||||
(sv-224 vector)
|
||||
(sv-240 int)
|
||||
(sv-256 int)
|
||||
)
|
||||
(rlet ((acc :class vf)
|
||||
(vf0 :class vf)
|
||||
(vf1 :class vf)
|
||||
(vf2 :class vf)
|
||||
(vf3 :class vf)
|
||||
(vf4 :class vf)
|
||||
)
|
||||
(init-vf0-vector)
|
||||
(set! (-> obj volume-type) arg0)
|
||||
(set! (-> obj point-count) 0)
|
||||
(set! (-> obj first-point) (the-as (pointer vector) (-> arg1 data (-> arg1 length))))
|
||||
(set! (-> obj normal-count) 0)
|
||||
(set! (-> obj first-normal) (the-as (pointer vector) (-> arg2 data (-> arg2 length))))
|
||||
(dotimes (s3-0 (-> obj num-planes))
|
||||
(set! sv-176 (new 'stack-no-clear 'vector))
|
||||
(set! (-> sv-176 quad) (the-as uint128 0))
|
||||
(set! sv-192 (new 'stack-no-clear 'vector))
|
||||
(set! (-> sv-192 quad) (the-as uint128 0))
|
||||
(set! sv-208 (new 'stack-no-clear 'vector))
|
||||
(set! (-> sv-208 quad) (the-as uint128 0))
|
||||
(set! sv-224 (new 'stack-no-clear 'vector))
|
||||
(set! (-> sv-224 quad) (the-as uint128 0))
|
||||
0.0
|
||||
0.0
|
||||
0.0
|
||||
(set! (-> (new 'stack-no-clear 'vector) quad) (the-as uint128 0))
|
||||
(let ((s1-0 (new-stack-vector0))
|
||||
(s0-0 0)
|
||||
(s2-0 (-> obj plane))
|
||||
)
|
||||
(set! sv-240 0)
|
||||
(while (< sv-240 (-> obj num-planes))
|
||||
(when (!= s3-0 sv-240)
|
||||
(vector-float*! sv-176 (the-as vector (-> s2-0 sv-240)) (-> s2-0 sv-240 w))
|
||||
(vector-cross! sv-192 (the-as vector (-> s2-0 sv-240)) (the-as vector (-> s2-0 s3-0)))
|
||||
(vector-normalize! sv-192 1.0)
|
||||
(vector-cross! sv-208 sv-192 (the-as vector (-> s2-0 sv-240)))
|
||||
(vector-normalize! sv-208 1.0)
|
||||
(let ((f0-4 (plane-volume-intersect-dist (-> s2-0 s3-0) sv-176 sv-208)))
|
||||
(when (!= f0-4 409600000.0)
|
||||
(let ((v1-28 sv-224))
|
||||
(let ((a0-12 sv-176))
|
||||
(.lvf vf2 (&-> sv-208 quad))
|
||||
(.lvf vf1 (&-> a0-12 quad))
|
||||
)
|
||||
(let ((a0-13 f0-4))
|
||||
(.mov vf3 a0-13)
|
||||
)
|
||||
(.add.x.vf vf4 vf0 vf0 :mask #b1000)
|
||||
(.mul.x.vf acc vf2 vf3)
|
||||
(.add.mul.w.vf vf4 vf1 vf0 acc :mask #b111)
|
||||
(.svf (&-> v1-28 quad) vf4)
|
||||
)
|
||||
(set! sv-144 (new-stack-vector0))
|
||||
(set! sv-148 0.0)
|
||||
(set! sv-152 0)
|
||||
(set! sv-160 (new-stack-vector0))
|
||||
(set! (-> sv-144 quad) (-> sv-224 quad))
|
||||
(set! sv-256 0)
|
||||
(while (< sv-256 (-> obj num-planes))
|
||||
(when (and (!= sv-256 s3-0) (!= sv-256 sv-240))
|
||||
(let ((f0-6 (plane-volume-intersect-dist (-> s2-0 sv-256) sv-144 sv-192)))
|
||||
(cond
|
||||
((= f0-6 409600000.0)
|
||||
)
|
||||
((zero? sv-152)
|
||||
(let ((v1-42 sv-144))
|
||||
(let ((a0-19 sv-144))
|
||||
(.lvf vf2 (&-> sv-192 quad))
|
||||
(.lvf vf1 (&-> a0-19 quad))
|
||||
)
|
||||
(let ((a0-20 f0-6))
|
||||
(.mov vf3 a0-20)
|
||||
)
|
||||
(.add.x.vf vf4 vf0 vf0 :mask #b1000)
|
||||
(.mul.x.vf acc vf2 vf3)
|
||||
(.add.mul.w.vf vf4 vf1 vf0 acc :mask #b111)
|
||||
(.svf (&-> v1-42 quad) vf4)
|
||||
)
|
||||
(set! (-> sv-160 quad) (-> s2-0 sv-256 quad))
|
||||
(set! sv-148 8192000.0)
|
||||
(set! sv-152 1)
|
||||
)
|
||||
((begin (vector-float*! sv-224 sv-192 f0-6) (>= (vector-dot sv-224 sv-160) 0.0))
|
||||
)
|
||||
((>= (vector-dot sv-224 (the-as vector (-> s2-0 sv-256))) 0.0)
|
||||
(when (< (fabs f0-6) (fabs (the-as float sv-148)))
|
||||
(set! sv-148 f0-6)
|
||||
(set! sv-152 (+ sv-152 1))
|
||||
)
|
||||
)
|
||||
(else
|
||||
(let ((v1-59 sv-144))
|
||||
(let ((a0-28 sv-144)
|
||||
(a1-15 sv-192)
|
||||
(f1-8 f0-6)
|
||||
)
|
||||
(.lvf vf2 (&-> a1-15 quad))
|
||||
(.lvf vf1 (&-> a0-28 quad))
|
||||
(let ((a0-29 f1-8))
|
||||
(.mov vf3 a0-29)
|
||||
)
|
||||
)
|
||||
(.add.x.vf vf4 vf0 vf0 :mask #b1000)
|
||||
(.mul.x.vf acc vf2 vf3)
|
||||
(.add.mul.w.vf vf4 vf1 vf0 acc :mask #b111)
|
||||
(.svf (&-> v1-59 quad) vf4)
|
||||
)
|
||||
(set! (-> sv-160 quad) (-> s2-0 sv-256 quad))
|
||||
(set! sv-152 (+ sv-152 1))
|
||||
(if (< (fabs f0-6) (fabs (the-as float sv-148)))
|
||||
(set! sv-148 (- (the-as float sv-148) f0-6))
|
||||
(set! sv-148 0.0)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(set! sv-256 (+ sv-256 1))
|
||||
)
|
||||
(cond
|
||||
((zero? sv-152)
|
||||
)
|
||||
((= (the-as float sv-148) 0.0)
|
||||
)
|
||||
(else
|
||||
(dotimes (v1-76 (-> obj num-planes))
|
||||
(when (and (!= v1-76 s3-0) (!= v1-76 sv-240))
|
||||
(if (< 4096.0 (- (vector-dot sv-144 (the-as vector (-> s2-0 v1-76))) (-> s2-0 v1-76 w)))
|
||||
(goto cfg-42)
|
||||
)
|
||||
)
|
||||
)
|
||||
(let ((v1-80 sv-224))
|
||||
(let ((a0-46 sv-144)
|
||||
(a1-18 sv-192)
|
||||
(f0-12 sv-148)
|
||||
)
|
||||
(.lvf vf2 (&-> a1-18 quad))
|
||||
(.lvf vf1 (&-> a0-46 quad))
|
||||
(let ((a0-47 (the-as float f0-12)))
|
||||
(.mov vf3 a0-47)
|
||||
)
|
||||
)
|
||||
(.add.x.vf vf4 vf0 vf0 :mask #b1000)
|
||||
(.mul.x.vf acc vf2 vf3)
|
||||
(.add.mul.w.vf vf4 vf1 vf0 acc :mask #b111)
|
||||
(.svf (&-> v1-80 quad) vf4)
|
||||
)
|
||||
(cond
|
||||
((< (-> arg1 allocated-length) (+ (-> arg1 length) 2))
|
||||
(format 0 "ERROR <AG>: vol-control #x~X out of volume points~%" obj)
|
||||
)
|
||||
(else
|
||||
(set! (-> arg1 data (-> arg1 length) quad) (-> sv-144 quad))
|
||||
(set! (-> arg1 data (+ (-> arg1 length) 1) quad) (-> sv-224 quad))
|
||||
(+! (-> arg1 length) 2)
|
||||
(+! (-> obj point-count) 2)
|
||||
)
|
||||
)
|
||||
(vector+! s1-0 s1-0 sv-144)
|
||||
(vector+! s1-0 s1-0 sv-224)
|
||||
(+! s0-0 2)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
(label cfg-42)
|
||||
(set! sv-240 (+ sv-240 1))
|
||||
)
|
||||
(when (nonzero? s0-0)
|
||||
(vector-float*! s1-0 s1-0 (/ 1.0 (the float s0-0)))
|
||||
(cond
|
||||
((< (-> arg2 allocated-length) (+ (-> arg2 length) 2))
|
||||
(format 0 "ERROR <AG>: vol-control #x~X out of volume normals~%" obj)
|
||||
)
|
||||
(else
|
||||
(set! (-> arg2 data (-> arg2 length) quad) (-> s1-0 quad))
|
||||
(set! (-> arg2 data (+ (-> arg2 length) 1) quad) (-> s2-0 s3-0 quad))
|
||||
(+! (-> arg2 length) 2)
|
||||
(set! (-> obj normal-count) (+ (-> obj normal-count) 2))
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
obj
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for method 10 of type plane-volume
|
||||
;; WARN: Return type mismatch int vs none.
|
||||
(defmethod debug-draw plane-volume ((obj plane-volume))
|
||||
(let* ((v1-0 (-> obj volume-type))
|
||||
(s5-0 (cond
|
||||
((= v1-0 'vol)
|
||||
(the-as uint #x8000c000)
|
||||
)
|
||||
((= v1-0 'pvol)
|
||||
(the-as uint #x80808080)
|
||||
)
|
||||
(else
|
||||
(the-as uint #x800000c0)
|
||||
)
|
||||
)
|
||||
)
|
||||
(s4-0 (-> obj first-point))
|
||||
)
|
||||
(dotimes (s3-0 (/ (-> obj point-count) 2))
|
||||
(add-debug-line
|
||||
#t
|
||||
(bucket-id bucket-318)
|
||||
(the-as vector s4-0)
|
||||
(the-as vector (&-> s4-0 4))
|
||||
(the-as rgba s5-0)
|
||||
#f
|
||||
(the-as rgba -1)
|
||||
)
|
||||
(set! s4-0 (&-> s4-0 8))
|
||||
)
|
||||
)
|
||||
0
|
||||
(none)
|
||||
)
|
||||
|
||||
;; definition for method 11 of type plane-volume
|
||||
(defmethod point-in-vol? plane-volume ((obj plane-volume) (arg0 vector) (arg1 float))
|
||||
"TODO - Checks if the given [[vector]] point is inside the volume defined by 6 [[plane]]s by atleast the padding value provided"
|
||||
(dotimes (v1-0 (-> obj num-planes))
|
||||
(if (< arg1 (- (vector-dot arg0 (the-as vector (-> obj plane v1-0))) (-> obj plane v1-0 w)))
|
||||
(return #f)
|
||||
)
|
||||
)
|
||||
#t
|
||||
)
|
||||
|
||||
;; definition for method 9 of type vol-control
|
||||
;; WARN: Return type mismatch int vs none.
|
||||
(defmethod vol-control-method-9 vol-control ((obj vol-control))
|
||||
(with-pp
|
||||
(let ((a0-1 obj))
|
||||
(when (and (and *display-vol-marks* (logtest? (-> a0-1 flags) (vol-flags display?)))
|
||||
(logtest? (-> obj flags) (vol-flags vol-flags-1))
|
||||
)
|
||||
(when (zero? (-> obj debug-point))
|
||||
(let ((s5-0 pp))
|
||||
(set! pp (-> obj process))
|
||||
(let ((s4-0 0))
|
||||
(dotimes (v1-8 (-> obj pos-vol-count))
|
||||
(+! s4-0 (-> obj pos-vol v1-8 num-planes))
|
||||
)
|
||||
(dotimes (v1-11 (-> obj neg-vol-count))
|
||||
(+! s4-0 (-> obj neg-vol v1-11 num-planes))
|
||||
)
|
||||
(set! (-> obj debug-point) (new 'debug 'vector-array (* 10 s4-0)))
|
||||
(set! (-> obj debug-normal) (new 'debug 'vector-array (* 10 s4-0)))
|
||||
)
|
||||
(set! pp s5-0)
|
||||
)
|
||||
(set! (-> obj debug-point length) 0)
|
||||
(set! (-> obj debug-normal length) 0)
|
||||
(dotimes (s5-1 (-> obj pos-vol-count))
|
||||
(plane-volume-method-9 (-> obj pos-vol s5-1) 'vol (-> obj debug-point) (-> obj debug-normal))
|
||||
)
|
||||
(dotimes (s5-2 (-> obj neg-vol-count))
|
||||
(plane-volume-method-9 (-> obj neg-vol s5-2) 'vol (-> obj debug-point) (-> obj debug-normal))
|
||||
)
|
||||
)
|
||||
(dotimes (s5-3 (-> obj pos-vol-count))
|
||||
(debug-draw (-> obj pos-vol s5-3))
|
||||
)
|
||||
(dotimes (s5-4 (-> obj neg-vol-count))
|
||||
(debug-draw (-> obj neg-vol s5-4))
|
||||
)
|
||||
)
|
||||
)
|
||||
0
|
||||
(none)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for method 10 of type vol-control
|
||||
(defmethod vol-control-method-10 vol-control ((obj vol-control) (arg0 plane))
|
||||
(dotimes (s4-0 (-> obj neg-vol-count))
|
||||
(if (point-in-vol? (-> obj neg-vol s4-0) arg0 0.0)
|
||||
(return #f)
|
||||
)
|
||||
)
|
||||
(dotimes (s4-1 (-> obj pos-vol-count))
|
||||
(if (point-in-vol? (-> obj pos-vol s4-1) arg0 0.0)
|
||||
(return #t)
|
||||
)
|
||||
)
|
||||
#f
|
||||
)
|
||||
+11
-3
@@ -69,9 +69,17 @@
|
||||
)
|
||||
|
||||
;; definition for symbol *font-context*, type font-context
|
||||
(define *font-context*
|
||||
(new 'global 'font-context *font-default-matrix* 0 0 0.0 (font-color default) (font-flags shadow kerning))
|
||||
)
|
||||
(define *font-context* (new
|
||||
'global
|
||||
'font-context
|
||||
*font-default-matrix*
|
||||
0
|
||||
0
|
||||
0.0
|
||||
(font-color default-#cddbcd)
|
||||
(font-flags shadow kerning)
|
||||
)
|
||||
)
|
||||
|
||||
;; definition for function draw-sprite2d-xy
|
||||
;; WARN: Return type mismatch pointer vs none.
|
||||
|
||||
+12
-2
@@ -238,7 +238,12 @@
|
||||
(let ((a0-10 (new 'stack-no-clear 'sphere))
|
||||
(a1-4 (-> *math-camera* trans))
|
||||
)
|
||||
(set-vector! a0-10 4898816.0 32768.0 245760.0 1.0)
|
||||
(let ((v1-6 a0-10))
|
||||
(set! (-> v1-6 x) 4898816.0)
|
||||
(set! (-> v1-6 y) 32768.0)
|
||||
(set! (-> v1-6 z) 245760.0)
|
||||
(set! (-> v1-6 r) 1.0)
|
||||
)
|
||||
(let ((f0-5 (get-sphere-interp a0-10 a1-4 61440.0 69632.0)))
|
||||
(set-vector! (-> arg0 times 0) 1.0 1.0 1.0 1.0)
|
||||
(vector-lerp!
|
||||
@@ -804,7 +809,12 @@
|
||||
(let ((a0-121 (new 'stack-no-clear 'sphere))
|
||||
(a1-40 (-> *math-camera* trans))
|
||||
)
|
||||
(set-vector! a0-121 -364544.0 0.0 5324800.0 1.0)
|
||||
(let ((v1-67 a0-121))
|
||||
(set! (-> v1-67 x) -364544.0)
|
||||
(set! (-> v1-67 y) 0.0)
|
||||
(set! (-> v1-67 z) 5324800.0)
|
||||
(set! (-> v1-67 r) 1.0)
|
||||
)
|
||||
(let ((f0-76 (get-sphere-interp a0-121 a1-40 139264.0 24576.0)))
|
||||
(vector-lerp!
|
||||
(the-as vector (-> arg0 times))
|
||||
|
||||
+6
-1
@@ -747,7 +747,12 @@
|
||||
(let ((a0-9 (new 'stack-no-clear 'sphere))
|
||||
(a1-3 (-> *math-camera* trans))
|
||||
)
|
||||
(set-vector! a0-9 786432.0 1818624.0 2498560.0 1.0)
|
||||
(let ((v1-12 a0-9))
|
||||
(set! (-> v1-12 x) 786432.0)
|
||||
(set! (-> v1-12 y) 1818624.0)
|
||||
(set! (-> v1-12 z) 2498560.0)
|
||||
(set! (-> v1-12 r) 1.0)
|
||||
)
|
||||
(let ((f0-8 (- 1.0 (get-sphere-interp a0-9 a1-3 1024000.0 2048000.0))))
|
||||
(update-mood-weather! *mood-control* (+ 0.25 (* 0.75 f0-8)) (+ 0.5 (* 0.5 f0-8)) 30.0 30.0)
|
||||
)
|
||||
|
||||
Generated
Vendored
+1
-1
@@ -1263,7 +1263,7 @@
|
||||
;; definition for method 10 of type sparticle-launch-control
|
||||
(defmethod sparticle-launch-control-method-10 sparticle-launch-control ((obj sparticle-launch-control) (arg0 vector))
|
||||
(let* ((v1-0 (-> obj group))
|
||||
(f0-0 (-> v1-0 bounds w))
|
||||
(f0-0 (-> v1-0 bounds r))
|
||||
)
|
||||
(cond
|
||||
((= f0-0 0.0)
|
||||
|
||||
+2
-2
@@ -839,9 +839,9 @@
|
||||
(format #t "~1Tx: ~f~%" (-> obj x))
|
||||
(format #t "~1Ty: ~f~%" (-> obj y))
|
||||
(format #t "~1Tz: ~f~%" (-> obj z))
|
||||
(format #t "~1Tw: ~f~%" (-> obj w))
|
||||
(format #t "~1Tw: ~f~%" (-> obj r))
|
||||
(format #t "~1Tquad: ~D~%" (-> obj quad))
|
||||
(format #t "~1Tr: ~f~%" (-> obj w))
|
||||
(format #t "~1Tr: ~f~%" (-> obj r))
|
||||
(label cfg-4)
|
||||
obj
|
||||
)
|
||||
|
||||
+3
-3
@@ -1583,9 +1583,9 @@
|
||||
;; definition for function sphere<-vector!
|
||||
;; INFO: Used lq/sq
|
||||
(defun sphere<-vector! ((arg0 sphere) (arg1 vector))
|
||||
(let ((f0-0 (-> arg0 w)))
|
||||
(let ((f0-0 (-> arg0 r)))
|
||||
(set! (-> arg0 quad) (-> arg1 quad))
|
||||
(set! (-> arg0 w) f0-0)
|
||||
(set! (-> arg0 r) f0-0)
|
||||
)
|
||||
arg0
|
||||
)
|
||||
@@ -1594,7 +1594,7 @@
|
||||
;; INFO: Used lq/sq
|
||||
(defun sphere<-vector+r! ((arg0 sphere) (arg1 vector) (arg2 float))
|
||||
(set! (-> arg0 quad) (-> arg1 quad))
|
||||
(set! (-> arg0 w) arg2)
|
||||
(set! (-> arg0 r) arg2)
|
||||
arg0
|
||||
)
|
||||
|
||||
|
||||
+31
-31
@@ -266,7 +266,7 @@
|
||||
(callback-info nav-callback-info :offset-assert 4)
|
||||
(process process :offset-assert 8)
|
||||
(pad0 uint32 :offset-assert 12)
|
||||
(shape basic :offset-assert 16)
|
||||
(shape collide-shape :offset-assert 16)
|
||||
(nearest-y-threshold meters :offset-assert 20)
|
||||
(nav-cull-radius meters :offset-assert 24)
|
||||
(sec-per-frame float :offset-assert 28)
|
||||
@@ -281,8 +281,8 @@
|
||||
(sphere-mask uint8 :offset-assert 61)
|
||||
(pad1 uint8 2 :offset-assert 62)
|
||||
(sphere-id-array uint8 16 :offset-assert 64)
|
||||
(extra-nav-sphere vector :inline :offset-assert 80)
|
||||
(root-nav-sphere vector :inline :offset-assert 96)
|
||||
(extra-nav-sphere sphere :inline :offset-assert 80)
|
||||
(root-nav-sphere sphere :inline :offset-assert 96)
|
||||
(state nav-state :inline :offset-assert 112)
|
||||
)
|
||||
:method-count-assert 47
|
||||
@@ -290,43 +290,43 @@
|
||||
:flag-assert #x2f00000120
|
||||
(:methods
|
||||
(nav-control-method-9 () none 9)
|
||||
(nav-control-method-10 () none 10)
|
||||
(point-in-bounds? (_type_ vector) symbol 10)
|
||||
(nav-control-method-11 (_type_ vector) vector 11)
|
||||
(nav-control-method-12 () none 12)
|
||||
(nav-control-method-13 () none 13)
|
||||
(nav-control-method-14 () none 14)
|
||||
(nav-control-method-15 () none 15)
|
||||
(nav-control-method-16 () none 16)
|
||||
(nav-control-method-17 () none 17)
|
||||
(find-poly (_type_ vector) nav-poly 13)
|
||||
(nav-control-method-14 (_type_ nav-poly vector object vector) none 14)
|
||||
(nav-control-method-15 (_type_ vector) none 15)
|
||||
(nav-control-method-16 (_type_ vector float) symbol 16)
|
||||
(is-in-mesh? (_type_ vector float) symbol 17)
|
||||
(nav-control-method-18 () none 18)
|
||||
(nav-control-method-19 () none 19)
|
||||
(nav-control-method-20 (_type_ vector vector vector int symbol symbol) none 20)
|
||||
(nav-control-method-21 () none 21)
|
||||
(nav-control-method-22 () none 22)
|
||||
(nav-control-method-23 () none 23)
|
||||
(nav-control-method-23 (_type_) none 23)
|
||||
(nav-control-method-24 () none 24)
|
||||
(nav-control-method-25 () none 25)
|
||||
(nav-control-method-26 () none 26)
|
||||
(nav-control-method-27 () none 27)
|
||||
(nav-control-method-28 () none 28)
|
||||
(nav-control-method-29 () none 29)
|
||||
(nav-control-method-30 () none 30)
|
||||
(nav-control-method-31 () none 31)
|
||||
(nav-control-method-32 () none 32)
|
||||
(nav-control-method-33 () none 33)
|
||||
(nav-control-method-34 () none 34)
|
||||
(nav-control-method-35 () none 35)
|
||||
(nav-control-method-36 () none 36)
|
||||
(nav-control-method-37 () none 37)
|
||||
(nav-control-method-38 () none 38)
|
||||
(nav-control-method-39 () none 39)
|
||||
(nav-control-method-40 () none 40)
|
||||
(nav-control-method-41 () none 41)
|
||||
(nav-control-method-42 () none 42)
|
||||
(nav-control-method-43 () none 43)
|
||||
(get-max-rotation-rate (_type_) float 25)
|
||||
(get-sphere-mask (_type_) none 26)
|
||||
(get-target-speed (_type_) meters 27)
|
||||
(nav-control-method-28 (_type_) none 28)
|
||||
(nav-control-method-29 (_type_) none 29)
|
||||
(copy-extra-nav-sphere! (_type_ sphere) none 30)
|
||||
(set-extra-nav-sphere! (_type_ sphere) none 31)
|
||||
(set-extra-nav-sphere-radius! (_type_ float) none 32)
|
||||
(set-nearest-y-thres! (_type_ float) none 33)
|
||||
(set-nav-cull-radius! (_type_ meters) none 34)
|
||||
(set-speed-scale! (_type_ float) none 35)
|
||||
(set-target-speed! (_type_ meters) none 36)
|
||||
(set-acceleration! (_type_ meters) none 37)
|
||||
(set-turning-acceleration! (_type_ meters) none 38)
|
||||
(set-max-rotation-rate! (_type_ float) none 39)
|
||||
(set-sphere-mask! (_type_ uint) none 40)
|
||||
(nav-control-method-41 (_type_) none 41)
|
||||
(init! (_type_ collide-shape) none 42)
|
||||
(display-marks? (_type_) symbol 43)
|
||||
(nav-control-method-44 () none 44)
|
||||
(nav-control-method-45 () none 45)
|
||||
(nav-control-method-46 () none 46)
|
||||
(nav-control-method-45 (_type_ vector vector vector) sphere 45)
|
||||
(find-sphere (_type_) none 46)
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
+63
-61
@@ -61,10 +61,10 @@
|
||||
(work-struct-in-scratch int8 :offset-assert 292)
|
||||
(mesh-struct-in-scratch int8 :offset-assert 293)
|
||||
(polys-in-scratch int8 :offset-assert 294)
|
||||
(mesh basic :offset-assert 296)
|
||||
(mesh nav-mesh :offset-assert 296)
|
||||
(nav basic :offset-assert 300)
|
||||
(poly0 basic :offset-assert 304)
|
||||
(poly1 basic :offset-assert 308)
|
||||
(poly0 nav-poly :offset-assert 304)
|
||||
(poly1 nav-poly :offset-assert 308)
|
||||
(poly-id int32 :offset-assert 312)
|
||||
)
|
||||
:method-count-assert 9
|
||||
@@ -166,9 +166,9 @@
|
||||
(goto cfg-4)
|
||||
)
|
||||
(format #t "[~8x] ~A~%" obj 'nav-poly)
|
||||
(format #t "~1Tdata[64] @ #x~X~%" (-> obj vertex))
|
||||
(format #t "~1Tvertex[4] @ #x~X~%" (-> obj vertex))
|
||||
(format #t "~1Tvertex0: ~`vector`P~%" (-> obj vertex))
|
||||
(format #t "~1Tdata[64] @ #x~X~%" (-> obj vertex0))
|
||||
(format #t "~1Tvertex[4] @ #x~X~%" (-> obj vertex0))
|
||||
(format #t "~1Tvertex0: ~`vector`P~%" (-> obj vertex0))
|
||||
(format #t "~1Tvertex1: ~`vector`P~%" (-> obj vertex1))
|
||||
(format #t "~1Tvertex2: ~`vector`P~%" (-> obj vertex2))
|
||||
(format #t "~1Tvertex3: ~`vector`P~%" (-> obj vertex3))
|
||||
@@ -189,6 +189,8 @@
|
||||
|
||||
;; definition of type nav-vertex
|
||||
(deftype nav-vertex (vector)
|
||||
"A typedef for `vector`, not used because our code looks nicer if everything is `vector`s anyway
|
||||
and declared out of order (cannot use forward declared structures in inline arrays)"
|
||||
()
|
||||
:method-count-assert 9
|
||||
:size-assert #x10
|
||||
@@ -380,73 +382,73 @@
|
||||
|
||||
;; definition of type nav-mesh
|
||||
(deftype nav-mesh (basic)
|
||||
((work nav-mesh-work :offset-assert 4)
|
||||
(poly-array (inline-array nav-poly) :offset-assert 8)
|
||||
(static-sphere-count uint8 :offset-assert 12)
|
||||
(poly-count uint8 :offset-assert 13)
|
||||
(nav-control-count uint8 :offset-assert 14)
|
||||
(max-nav-control-count uint8 :offset-assert 15)
|
||||
(route uint32 :offset-assert 16)
|
||||
(poly-hash basic :offset-assert 20)
|
||||
(nav-control-array uint32 :offset-assert 24)
|
||||
(sphere-hash basic :offset-assert 28)
|
||||
(static-sphere uint32 :offset-assert 32)
|
||||
(user-list basic :offset-assert 36)
|
||||
(next-nav-mesh basic :offset-assert 40)
|
||||
(prev-nav-mesh basic :offset-assert 44)
|
||||
(bounds sphere :inline :offset-assert 48)
|
||||
(origin vector :inline :offset 48)
|
||||
(entity entity :offset-assert 64)
|
||||
(link-array uint32 :offset-assert 68)
|
||||
(link-count uint8 :offset-assert 72)
|
||||
(flags nav-mesh-flag :offset-assert 73)
|
||||
(pad1 uint8 2 :offset-assert 74)
|
||||
(nearest-y-threshold meters :offset-assert 76)
|
||||
(water-max-height meters :offset-assert 80)
|
||||
(pad2 uint32 7 :offset-assert 84)
|
||||
((work nav-mesh-work :offset-assert 4)
|
||||
(poly-array (inline-array nav-poly) :offset-assert 8)
|
||||
(static-sphere-count uint8 :offset-assert 12)
|
||||
(poly-count uint8 :offset-assert 13)
|
||||
(nav-control-count uint8 :offset-assert 14)
|
||||
(max-nav-control-count uint8 :offset-assert 15)
|
||||
(route uint32 :offset-assert 16)
|
||||
(poly-hash grid-hash :offset-assert 20)
|
||||
(nav-control-array (inline-array nav-control) :offset-assert 24)
|
||||
(sphere-hash sphere-hash :offset-assert 28)
|
||||
(static-sphere (inline-array sphere) :offset-assert 32)
|
||||
(user-list engine :offset-assert 36)
|
||||
(next-nav-mesh surface :offset-assert 40)
|
||||
(prev-nav-mesh surface :offset-assert 44)
|
||||
(bounds sphere :inline :offset-assert 48)
|
||||
(origin vector :inline :offset 48)
|
||||
(entity entity :offset-assert 64)
|
||||
(link-array (array nav-mesh-link) :offset-assert 68)
|
||||
(link-count uint8 :offset-assert 72)
|
||||
(flags nav-mesh-flag :offset-assert 73)
|
||||
(pad1 uint8 2 :offset-assert 74)
|
||||
(nearest-y-threshold meters :offset-assert 76)
|
||||
(water-max-height meters :offset-assert 80)
|
||||
(pad2 uint32 7 :offset-assert 84)
|
||||
)
|
||||
:method-count-assert 47
|
||||
:size-assert #x70
|
||||
:flag-assert #x2f00000070
|
||||
(:methods
|
||||
(nav-mesh-method-9 () none 9)
|
||||
(nav-mesh-method-10 () none 10)
|
||||
(nav-mesh-method-11 () none 11)
|
||||
(nav-mesh-method-12 () none 12)
|
||||
(nav-mesh-method-13 () none 13)
|
||||
(nav-mesh-method-14 () none 14)
|
||||
(nav-mesh-method-15 () none 15)
|
||||
(nav-mesh-method-9 (_type_) none 9)
|
||||
(nav-mesh-method-10 (_type_ vector vector nav-poly) nav-poly 10)
|
||||
(nav-mesh-method-11 (_type_ nav-poly vector) vector 11)
|
||||
(nav-mesh-method-12 (_type_ nav-poly vector) none 12)
|
||||
(nav-mesh-method-13 (_type_ symbol symbol) none 13)
|
||||
(get-route-portal (_type_ object object nav-find-poly-parms) none 14)
|
||||
(initialize-mesh! (_type_) none 15)
|
||||
(move-along-nav-ray! (_type_ nav-ray) none 16)
|
||||
(nav-mesh-method-17 () none 17)
|
||||
(try-move-along-ray (_type_ nav-poly vector vector float) meters 17)
|
||||
(nav-mesh-method-18 () none 18)
|
||||
(nav-mesh-method-19 () none 19)
|
||||
(nav-mesh-method-20 () none 20)
|
||||
(nav-mesh-method-21 () none 21)
|
||||
(nav-mesh-method-22 () none 22)
|
||||
(nav-mesh-method-23 () none 23)
|
||||
(nav-mesh-method-24 () none 24)
|
||||
(nav-mesh-method-25 () none 25)
|
||||
(nav-mesh-method-26 () none 26)
|
||||
(nav-mesh-method-27 () none 27)
|
||||
(nav-mesh-method-28 () none 28)
|
||||
(nav-mesh-method-29 () none 29)
|
||||
(nav-mesh-method-30 () none 30)
|
||||
(nav-mesh-method-31 () none 31)
|
||||
(nav-mesh-method-32 () none 32)
|
||||
(nav-mesh-method-33 () none 33)
|
||||
(nav-mesh-method-34 () none 34)
|
||||
(nav-mesh-method-22 (_type_ vector vector) none 22)
|
||||
(nav-mesh-method-23 (_type_ entity-nav-mesh) none 23)
|
||||
(nav-mesh-method-24 (_type_) none 24)
|
||||
(nav-mesh-method-25 (_type_) none 25)
|
||||
(nav-mesh-method-26 (_type_) none 26)
|
||||
(new-nav-control (_type_ vector int) nav-control 27)
|
||||
(nav-mesh-method-28 (_type_ object) none 28)
|
||||
(nav-mesh-method-29 (_type_ object symbol) nav-control 29)
|
||||
(nav-mesh-method-30 (_type_ process-drawable) none 30)
|
||||
(change-to (_type_ process-drawable) none 31)
|
||||
(nav-mesh-method-32 (_type_ uint32) none 32)
|
||||
(nav-mesh-method-33 (_type_ uint32) symbol 33)
|
||||
(nav-mesh-method-34 (_type_ object vector float) none 34)
|
||||
(nav-mesh-method-35 () none 35)
|
||||
(nav-mesh-method-36 () none 36)
|
||||
(nav-mesh-method-36 (_type_ nav-poly rgba) none 36)
|
||||
(point-in-poly? (_type_ nav-poly vector) symbol 37)
|
||||
(nav-mesh-method-38 () none 38)
|
||||
(nav-mesh-method-38 (_type_ nav-poly vector vector vector object) vector 38)
|
||||
(closest-point-on-boundary (_type_ nav-poly vector vector) none 39)
|
||||
(nav-mesh-method-40 () none 40)
|
||||
(nav-mesh-method-40 (_type_ nav-poly vector object vector) none 40)
|
||||
(project-point-into-poly-2d (_type_ nav-poly vector vector) none 41)
|
||||
(nav-mesh-method-42 () none 42)
|
||||
(nav-mesh-method-43 () none 43)
|
||||
(nav-mesh-method-44 () none 44)
|
||||
(nav-mesh-method-45 () none 45)
|
||||
(nav-mesh-method-46 () none 46)
|
||||
(nav-mesh-method-42 (_type_ nav-find-poly-parms) symbol 42)
|
||||
(nav-mesh-method-43 (_type_ nav-find-poly-parms) none 43)
|
||||
(nav-mesh-method-44 (_type_ vector float float) symbol 44)
|
||||
(nav-mesh-method-45 (_type_ entity-perm) none 45)
|
||||
(nav-mesh-method-46 (_type_ object) none 46)
|
||||
)
|
||||
)
|
||||
|
||||
@@ -637,7 +639,7 @@
|
||||
(let* ((a3-0 obj)
|
||||
(v1-0 arg1)
|
||||
(a0-1 (-> arg0 vertex-count))
|
||||
(a1-1 (-> arg0 vertex))
|
||||
(a1-1 (the-as (inline-array vector) (-> arg0 vertex0)))
|
||||
(a2-2 (-> a3-0 work vert0-table))
|
||||
(a3-2 (-> a3-0 work vert1-table))
|
||||
)
|
||||
@@ -840,7 +842,7 @@
|
||||
(+! (-> ray current-pos z) delta-z)
|
||||
(set! sv-68 (-> current-poly adj-poly next-poly-idx))
|
||||
(if (!= sv-68 255)
|
||||
(set! (-> ray next-poly) (-> obj poly-array sv-68))
|
||||
(set! (-> ray next-poly) (the-as nav-poly (-> obj poly-array sv-68 vertex0)))
|
||||
)
|
||||
(cond
|
||||
((and (-> ray next-poly) (zero? (logand (-> ray next-poly pat) (-> ray ignore))))
|
||||
|
||||
+1
-1
@@ -153,7 +153,7 @@
|
||||
)
|
||||
)
|
||||
)
|
||||
(draw-string-xy *temp-string* arg0 32 (+ (* 12 s4-0) 8) (font-color orange-red) (font-flags shadow))
|
||||
(draw-string-xy *temp-string* arg0 32 (+ (* 12 s4-0) 8) (font-color precursor-#ec3b00) (font-flags shadow))
|
||||
)
|
||||
)
|
||||
0
|
||||
|
||||
+6
-6
@@ -1150,7 +1150,7 @@
|
||||
arg0
|
||||
(+ (* s5-0 16) 16)
|
||||
48
|
||||
(font-color default)
|
||||
(font-color default-#cddbcd)
|
||||
(font-flags shadow)
|
||||
)
|
||||
)
|
||||
@@ -1163,7 +1163,7 @@
|
||||
arg0
|
||||
(+ (* s5-1 16) 16)
|
||||
64
|
||||
(font-color default)
|
||||
(font-color default-#cddbcd)
|
||||
(font-flags shadow)
|
||||
)
|
||||
)
|
||||
@@ -1175,7 +1175,7 @@
|
||||
(-> *level* sound-bank 1)
|
||||
(-> *level* sound-bank 2)
|
||||
)
|
||||
(s5-2 *temp-string* arg0 16 88 (font-color default) (font-flags shadow))
|
||||
(s5-2 *temp-string* arg0 16 88 (font-color default-#cddbcd) (font-flags shadow))
|
||||
)
|
||||
(let ((s5-3 draw-string-xy))
|
||||
(format
|
||||
@@ -1188,7 +1188,7 @@
|
||||
(-> *setting-control* user-current sound-excitement)
|
||||
(-> *setting-control* user-current mode-sound-bank)
|
||||
)
|
||||
(s5-3 *temp-string* arg0 16 104 (font-color default) (font-flags shadow))
|
||||
(s5-3 *temp-string* arg0 16 104 (font-color default-#cddbcd) (font-flags shadow))
|
||||
)
|
||||
0
|
||||
)
|
||||
@@ -1202,7 +1202,7 @@
|
||||
(-> *sound-iop-info* freemem)
|
||||
(shr (-> *sound-iop-info* freemem) 10)
|
||||
)
|
||||
(s5-0 *temp-string* arg0 32 96 (font-color default) (font-flags shadow))
|
||||
(s5-0 *temp-string* arg0 32 96 (font-color default-#cddbcd) (font-flags shadow))
|
||||
)
|
||||
(let ((s5-1 draw-string-xy))
|
||||
(format
|
||||
@@ -1211,7 +1211,7 @@
|
||||
(-> *sound-iop-info* freemem2)
|
||||
(shr (-> *sound-iop-info* freemem2) 10)
|
||||
)
|
||||
(s5-1 *temp-string* arg0 32 64 (font-color default) (font-flags shadow))
|
||||
(s5-1 *temp-string* arg0 32 64 (font-color default-#cddbcd) (font-flags shadow))
|
||||
)
|
||||
0
|
||||
)
|
||||
|
||||
+6
-10
@@ -137,11 +137,11 @@
|
||||
|
||||
;; definition of type sphere-hash
|
||||
(deftype sphere-hash (grid-hash)
|
||||
((sphere-array uint32 :offset-assert 88)
|
||||
(max-object-count int16 :offset-assert 92)
|
||||
(pad int16 :offset-assert 94)
|
||||
(mem-sphere-array uint32 :offset-assert 96)
|
||||
(spr-sphere-array uint32 :offset-assert 100)
|
||||
((sphere-array (inline-array sphere) :offset-assert 88)
|
||||
(max-object-count int16 :offset-assert 92)
|
||||
(pad int16 :offset-assert 94)
|
||||
(mem-sphere-array uint32 :offset-assert 96)
|
||||
(spr-sphere-array uint32 :offset-assert 100)
|
||||
)
|
||||
:method-count-assert 34
|
||||
:size-assert #x68
|
||||
@@ -152,7 +152,7 @@
|
||||
(sphere-hash-method-27 () none 27)
|
||||
(sphere-hash-method-28 () none 28)
|
||||
(sphere-hash-method-29 () none 29)
|
||||
(sphere-hash-method-30 () none 30)
|
||||
(sphere-hash-method-30 (_type_ find-nav-sphere-ids-params) none 30)
|
||||
(sphere-hash-method-31 () none 31)
|
||||
(sphere-hash-method-32 () none 32)
|
||||
(sphere-hash-method-33 () none 33)
|
||||
@@ -271,7 +271,3 @@
|
||||
|
||||
;; failed to figure out what this is:
|
||||
0
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
+3
-3
@@ -422,14 +422,14 @@
|
||||
)
|
||||
(set! (-> s5-0 0 quad) (-> v1-51 quad))
|
||||
(set! (-> s5-0 0 y) (+ 8192.0 (-> s5-0 0 y)))
|
||||
(set! (-> s5-0 0 w) 2867.2)
|
||||
(set! (-> s5-0 0 r) 2867.2)
|
||||
(set! (-> s5-0 1 quad) (-> v1-51 quad))
|
||||
(set! (-> s5-0 1 y) (+ 12288.0 (-> s5-0 1 y)))
|
||||
(set! (-> s5-0 1 w) 2867.2)
|
||||
(set! (-> s5-0 1 r) 2867.2)
|
||||
(set! (-> s5-0 2 quad) (-> v1-51 quad))
|
||||
)
|
||||
(set! (-> s5-0 2 y) (+ 16384.0 (-> s5-0 2 y)))
|
||||
(set! (-> s5-0 2 w) 2867.2)
|
||||
(set! (-> s5-0 2 r) 2867.2)
|
||||
(let ((v1-55 gp-0))
|
||||
(set! (-> v1-55 spheres) s5-0)
|
||||
(set! (-> v1-55 num-spheres) (the-as uint 3))
|
||||
|
||||
+6
-6
@@ -1206,8 +1206,8 @@
|
||||
(deftype game-task-node-info (basic)
|
||||
((level basic :offset-assert 4)
|
||||
(task game-task :offset-assert 8)
|
||||
(name basic :offset-assert 12)
|
||||
(when-open basic :offset-assert 16)
|
||||
(name string :offset-assert 12)
|
||||
(when-open array :offset-assert 16)
|
||||
(flags game-task-node-flag :offset-assert 20)
|
||||
(parent-node uint16 4 :offset-assert 24)
|
||||
(task-mask task-mask :offset-assert 32)
|
||||
@@ -1333,14 +1333,14 @@
|
||||
|
||||
;; definition of type game-task-info
|
||||
(deftype game-task-info (basic)
|
||||
((name basic :offset-assert 4)
|
||||
((name string :offset-assert 4)
|
||||
(text-name uint32 :offset-assert 8)
|
||||
(pre-play-node uint16 :offset-assert 12)
|
||||
(kiosk-play-node uint16 :offset-assert 14)
|
||||
(pre-play-continue basic :offset-assert 16)
|
||||
(pre-play-continue string :offset-assert 16)
|
||||
(play-node uint16 :offset-assert 20)
|
||||
(play-continue basic :offset-assert 24)
|
||||
(kiosk-play-continue basic :offset-assert 28)
|
||||
(play-continue string :offset-assert 24)
|
||||
(kiosk-play-continue string :offset-assert 28)
|
||||
)
|
||||
:method-count-assert 9
|
||||
:size-assert #x20
|
||||
|
||||
+3
-3
@@ -441,7 +441,7 @@
|
||||
(sv-40 float)
|
||||
(sv-44 float)
|
||||
(sv-48 float)
|
||||
(sv-52 int)
|
||||
(sv-52 float)
|
||||
(sv-56 float)
|
||||
(sv-64 int)
|
||||
(sv-72 uint)
|
||||
@@ -471,7 +471,7 @@
|
||||
(set! sv-40 (-> arg1 origin x))
|
||||
(set! sv-44 (+ (-> arg1 origin x) (-> arg1 width)))
|
||||
(set! sv-48 (+ (-> arg1 origin y) (-> arg1 height)))
|
||||
(set! sv-52 (gpr->fpr (.asm.sllv.r0 (get-string-length " " arg1))))
|
||||
(set! sv-52 (-> (get-string-length " " arg1) length))
|
||||
(set! sv-56 (* (if (logtest? (-> arg1 flags) (font-flags large))
|
||||
(the float arg3)
|
||||
28.0
|
||||
@@ -536,7 +536,7 @@
|
||||
(when sv-108
|
||||
(set! (-> *game-text-word* data sv-80) (the-as uint 0))
|
||||
(let ((f30-1 sv-36))
|
||||
(set! sv-120 (the int (the-as float (.asm.sllv.r0 (get-string-length *game-text-word* arg1)))))
|
||||
(set! sv-120 (the int (the-as float (-> (get-string-length *game-text-word* arg1) length))))
|
||||
(let ((f0-26 (+ f30-1 (the float sv-120))))
|
||||
(if (= (-> *game-text-word* data (+ sv-80 -1)) 32)
|
||||
(set! f0-26 (- f0-26 (the-as float sv-52)))
|
||||
|
||||
+8
-8
@@ -684,8 +684,8 @@
|
||||
488
|
||||
arg1
|
||||
(if (>= f30-0 100.0)
|
||||
(font-color orange-red)
|
||||
(font-color default)
|
||||
(font-color precursor-#ec3b00)
|
||||
(font-color default-#cddbcd)
|
||||
)
|
||||
(font-flags shadow right)
|
||||
)
|
||||
@@ -700,8 +700,8 @@
|
||||
488
|
||||
arg1
|
||||
(if (>= f30-0 100.0)
|
||||
(font-color orange-red)
|
||||
(font-color default)
|
||||
(font-color precursor-#ec3b00)
|
||||
(font-color default-#cddbcd)
|
||||
)
|
||||
(font-flags shadow right)
|
||||
)
|
||||
@@ -735,8 +735,8 @@
|
||||
488
|
||||
arg1
|
||||
(if (>= f30-1 100.0)
|
||||
(font-color orange-red)
|
||||
(font-color default)
|
||||
(font-color precursor-#ec3b00)
|
||||
(font-color default-#cddbcd)
|
||||
)
|
||||
(font-flags shadow right)
|
||||
)
|
||||
@@ -751,8 +751,8 @@
|
||||
488
|
||||
arg1
|
||||
(if (>= f30-1 100.0)
|
||||
(font-color orange-red)
|
||||
(font-color default)
|
||||
(font-color precursor-#ec3b00)
|
||||
(font-color default-#cddbcd)
|
||||
)
|
||||
(font-flags shadow right)
|
||||
)
|
||||
|
||||
@@ -60,19 +60,10 @@
|
||||
"ja-play-spooled-anim",
|
||||
|
||||
// default menu
|
||||
// - causes a decompiler hang
|
||||
"dm-cam-setting-float",
|
||||
"debug-menu-make-camera-menu", // requires the above, fine on it's own
|
||||
// - delayed until game-info is better understood
|
||||
"debug-menu-make-play-menu",
|
||||
"debug-menu-make-task-sub-menu",
|
||||
// - weird array accessing pattern, we never fixed it in jak 1
|
||||
"all-texture-tweak-adjust",
|
||||
"debug-menu-make-shader-menu", // requires the above, fine on it's own
|
||||
// - process-spawn macro issues
|
||||
"dm-scene-load-pick-func",
|
||||
"popup-menu-context-make-default-menus",
|
||||
"debug-menu-context-make-default-menus",
|
||||
|
||||
// camera
|
||||
// - vector-dot issue
|
||||
"slave-set-rotation!",
|
||||
|
||||
Reference in New Issue
Block a user