d/jak2: finish region as well as some typedef files - ctywide-obs-h | vehicle-h | rigid-body-h (#1935)

This commit is contained in:
Tyler Wilding
2022-10-08 11:45:41 -04:00
committed by GitHub
parent f1682867af
commit 2d1b5fa57c
36 changed files with 5016 additions and 739 deletions
File diff suppressed because it is too large Load Diff
@@ -397,5 +397,6 @@
[44, "(function surface surface surface int none :behavior target)"],
[45, "(function surface object object int float :behavior target)"],
[76, "(function surface surface surface int float :behavior target)"]
]
],
"scene": [[4, "(function symbol)"]]
}
+6 -4
View File
@@ -37,7 +37,6 @@
// checking boxed type is different now - these make the cfg stuff sad
"name=",
"cspace-inspect-tree",
"scene-player-init",
"(method 77 spyder)",
"(method 77 flamer)",
"(method 77 grenadier)",
@@ -123,7 +122,6 @@
"(method 12 effect-control)",
"(method 11 effect-control)",
"(method 10 effect-control)",
"(anon-function 2 scene)",
"progress-trans",
"(method 10 bigmap)",
"(method 9 editable-region)", // condition branch assert hit
@@ -223,7 +221,10 @@
"bg",
"update-sound-banks",
"entity-remap-names",
"(method 8 process-tree)"
"(method 8 process-tree)",
"(post play-anim scene-player)",
"(method 25 scene-player)",
"(method 25 scene-player)"
],
// If format is used with the wrong number of arguments,
@@ -333,7 +334,8 @@
39, // branch fwd no delay
43, // goto 18
45 // goto 6
]
],
"(method 44 nav-graph)": [1, 3, 6, 13, 17]
},
// Sometimes the game might use format strings that are fetched dynamically,
+10 -1
View File
@@ -908,5 +908,14 @@
[32, "vector"],
[48, "vector"]
],
"target-board-pre-move": [[112, "vector"]]
"target-board-pre-move": [[112, "vector"]],
"(method 10 nav-node)": [[16, "vector"]],
"(method 9 nav-graph)": [[16, "matrix"]],
"(method 10 xz-height-map)": [[16, "matrix"]],
"(method 13 xz-height-map)": [[16, "vector4w-2"]],
"(method 9 nav-node)": [[48, "nav-graph-link"]],
"(method 18 drawable-region-face)": [
[16, "vector"],
[32, "vector"]
]
}
+74
View File
@@ -2778,5 +2778,79 @@
],
"unpack-comp-huf": [
[[21,23], "t3", "(pointer uint16)"]
],
"(method 24 scene-player)": [[38, "gp", "scene"]],
"process-drawable-draw-subtitles": [[26, "v0", "(pointer vector)"]],
"(post play-anim scene-player)": [
[192, "s4", "process-drawable"],
[243, "s4", "process-drawable"],
[306, "s5", "process-drawable"]
],
"(method 9 scene-actor)": [
[43, "s4", "skeleton-group"],
[258, "a0", "process-drawable"],
[262, "v1", "process-drawable"],
[266, "a0", "process-drawable"],
[346, "a0", "scene-player"],
[355, "v1", "manipy"],
[361, "v1", "manipy"],
[376, "v1", "manipy"],
[382, "v1", "manipy"],
[533, "a0", "process-drawable"],
[537, "v1", "process-drawable"],
[541, "a0", "process-drawable"]
],
"(method 25 scene-player)": [
[99, "s2", "process-drawable"],
[152, "s2", "process-drawable"],
[155, "s2", "process-drawable"],
[158, "s2", "process-drawable"],
[161, "s2", "process-drawable"]
],
"(method 16 drawable-inline-array-region-prim)": [
[[1, 7], "v1", "drawable-region-prim"]
],
"(method 18 drawable-region-face)": [
[[33, 84], "v1", "(inline-array vector)"]
],
"(method 18 drawable-tree-region-prim)": [
[[22, 49], "s2", "drawable-region-prim"]
],
"(method 9 region)": [
[[55, 60], "a0", "drawable-region-prim"],
[58, "v1", "region-prim-area"],
[4, "a0", "region-prim-area"],
[50, "v1", "drawable-region-prim"]
],
"(method 17 drawable-tree-region-prim)": [
[[23, 28], "a0", "drawable-region-prim"],
[4, "a0", "region-prim-area"]
],
"(method 19 drawable-region-volume)": [[8, "a3", "drawable-region-face"]],
"(method 18 drawable-region-volume)": [
[[23, 27], "a0", "drawable-region-face"]
],
"(method 17 drawable-region-volume)": [
[[12, 21], "a0", "drawable-region-face"]
],
"region-prim-lookup-by-id": [[45, "t6", "drawable-region-prim"]],
"region-tree-execute": [
[114, "v1", "region-prim-area"],
[107, "v1", "region-prim-area"],
[97, "v1", "region-prim-area"],
[159, "v1", "region-prim-area"],
[204, "v1", "region-prim-area"],
[210, "v1", "region-prim-area"],
[221, "v1", "region-prim-area"],
[165, "v1", "region-prim-area"],
[169, "v1", "region-prim-area"],
[175, "a0", "region-prim-area"],
[191, "v1", "region-prim-area"],
[120, "v1", "region-prim-area"],
[124, "v1", "region-prim-area"],
[146, "v1", "region-prim-area"],
[129, "a1", "region-prim-area"],
[103, "v1", "region-prim-area"],
[[19, 29], "v1", "region-prim-area"]
]
}
+47
View File
@@ -1565,5 +1565,52 @@
"a1-22":"all-vis",
"a2-11":"vis-qwc"
}
},
"(method 16 drawable-region-prim)": {
"args": ["obj", "area-of-interest", "_count", "region-list"],
"vars": {
"s2-0": "count"
}
},
"(method 9 region-prim-area)": {
"args": ["obj", "region-sphere"],
"vars": {
"v1-0": "regions-entered",
"a2-0": "region",
"a3-0": "idx"
}
},
"(method 10 region-prim-area)": {
"vars": {
"v1-0": "regions-exited",
"a2-0": "region",
"a3-0": "idx"
}
},
"(method 11 region-prim-area)": {
"vars": {
"v1-0": "regions-inside",
"a2-0": "region",
"a3-0": "idx"
}
},
"(method 12 region-prim-area)": {
"vars": {
"v1-0": "regions-started",
"a2-0": "region",
"a3-0": "idx"
}
},
"(method 18 drawable-region-sphere)": {
"vars": {
"s4-0": "area-of-interest"
},
"args": ["obj", "area"]
},
"(method 19 drawable-region-sphere)": {
"args": ["obj", "area"]
},
"(method 18 drawable-region-volume)": {
"args": ["obj", "area"]
}
}
+16
View File
@@ -604,6 +604,17 @@ goos::Object nav_mesh_nav_control_arr_decompile(
file, TypeSpec("nav-control"), 288);
}
goos::Object xz_height_map_data_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("vector4b"), 4);
}
goos::Object nav_mesh_route_arr_decompile(const std::vector<LinkedWord>& words,
const std::vector<DecompilerLabel>& labels,
int my_seg,
@@ -1030,6 +1041,11 @@ goos::Object decompile_structure(const TypeSpec& type,
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() == "data" && type.print() == "xz-height-map" &&
file->version == GameVersion::Jak2) {
field_defs_out.emplace_back(field.name(), xz_height_map_data_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(
+6
View File
@@ -14,8 +14,11 @@
;; DECOMP BEGINS
(define *traffic-manager* (the-as process #f))
(define *ctywide-entity* (the-as object #f))
(define *lwide-entity* (the-as object #f))
(define *race-vehicle-entity* (the-as object #f))
(deftype traffic-danger-info (structure)
@@ -33,6 +36,7 @@
:flag-assert #x900000036
)
(deftype traffic-suppression-params (structure)
((bbox bounding-box :inline :offset-assert 0)
(duration uint64 :offset-assert 32)
@@ -49,6 +53,8 @@
)
)
;; WARN: Return type mismatch symbol vs none.
(defmethod has-valid-id? traffic-suppression-params ((obj traffic-suppression-params))
(!= (-> obj id) -1)
(none)
@@ -5,5 +5,26 @@
;; name in dgo: joint-exploder
;; dgos: GAME, COMMON
;; TODO - for vehicle-h
(deftype joint-exploder-static-joint-params (structure)
((joint-index int16 :offset-assert 0)
(parent-joint-index int16 :offset-assert 2)
)
:method-count-assert 9
:size-assert #x4
:flag-assert #x900000004
)
(deftype joint-exploder-static-params (basic)
((joints (array joint-exploder-static-joint-params) :offset-assert 4) ;; guessed by decompiler
(collide-spec uint32 :offset-assert 8)
(art-level basic :offset-assert 12)
)
:method-count-assert 9
:size-assert #x10
:flag-assert #x900000010
)
;; DECOMP BEGINS
-1
View File
@@ -2447,7 +2447,6 @@
(kill! gp-0)
)
)
(none)
)
(defun-debug dump-entity-remap ((arg0 object) (arg1 object))
+4 -1
View File
@@ -68,6 +68,7 @@
(cf30 30)
)
;; +++game-secrets
(defenum game-secrets
:type uint32
:bitfield #t
@@ -88,7 +89,9 @@
(reverse-races)
(hero-mode)
(big-head)
(little-head))
(little-head)
(game-secret-unknown))
;; ---game-secrets
(defenum game-score
(none)
+8 -9
View File
@@ -27,15 +27,14 @@
;; +++scene-controls
(defenum scene-controls
:type int64
(all-off 0)
(channel 1)
(anim-name 2)
(dma-size 4)
(bounds-spheres 8)
(actors 16)
(actor-marks 32)
(special-fma-spheres 64)
(all-on 95))
:bitfield #t
(channel)
(anim-name)
(dma-size)
(bounds-spheres)
(actors)
(actor-marks)
(special-fma-spheres))
;; ---scene-controls
;; +++bot-marks-controls
@@ -30,6 +30,7 @@
)
)
(defmethod new subdivide-settings ((allocation symbol) (type-to-make type) (arg0 meters) (arg1 meters))
(let ((v0-0 (object-new allocation type-to-make (the-as int (-> type-to-make size)))))
(dotimes (v1-2 6)
@@ -51,6 +52,7 @@
:flag-assert #x900000080
)
(deftype terrain-stats (structure)
((pris tr-stat :inline :offset-assert 0)
(tie-generic tr-stat :inline :offset-assert 16)
@@ -88,6 +90,7 @@
:flag-assert #x9000001e0
)
(deftype dma-area (structure)
((instance-shrub-dma instance-shrub-dma :inline :offset 0)
(draw-node-dma draw-node-dma :inline :offset 0)
@@ -104,6 +107,7 @@
:flag-assert #x9000038a0
)
(deftype background-area (structure)
((dma-area dma-area :inline :offset-assert 0)
(vis-list uint8 2048 :offset-assert 14496)
@@ -113,6 +117,7 @@
:flag-assert #x9000040a0
)
(deftype foreground-area (structure)
((generic-work generic-work :inline :offset-assert 0)
(foreground-work foreground-work :inline :offset 0)
@@ -125,34 +130,38 @@
:flag-assert #x900003fe0
)
(deftype region-prim-area (structure)
((region-prim-list region-prim-list :inline :offset-assert 0)
(pos vector :inline :offset-assert 1296)
(ray vector :inline :offset 1328)
(region-enter-count int32 :offset 1360)
(region-enter-list uint32 320 :offset-assert 1364)
(region-enter-prim-list uint32 320 :offset-assert 2644)
(region-exit-count int32 :offset-assert 3924)
(region-exit-list uint32 320 :offset-assert 3928)
(region-exit-prim-list uint32 320 :offset-assert 5208)
(region-inside-count int32 :offset-assert 6488)
(region-inside-list uint32 320 :offset-assert 6492)
(region-inside-prim-list uint32 320 :offset-assert 7772)
(region-start-count int32 :offset-assert 9052)
(region-start-list uint32 320 :offset-assert 9056)
(region-start-prim-list uint32 320 :offset-assert 10336)
((region-prim-list region-prim-list :inline :offset-assert 0)
(pos vector :inline :offset-assert 1296)
(unknown-vector-uiyb1 vector :inline :offset-assert 1312)
(ray vector :inline :offset 1328)
(unknown-vector-t3edh vector :inline :offset-assert 1344)
(region-enter-count int32 :offset 1360)
(region-enter-list region-prim-area 320 :offset-assert 1364)
(region-enter-prim-list drawable-region-sphere 320 :offset-assert 2644)
(region-exit-count int32 :offset-assert 3924)
(region-exit-list region-prim-area 320 :offset-assert 3928)
(region-exit-prim-list drawable-region-sphere 320 :offset-assert 5208)
(region-inside-count int32 :offset-assert 6488)
(region-inside-list region-prim-area 320 :offset-assert 6492)
(region-inside-prim-list drawable-region-sphere 320 :offset-assert 7772)
(region-start-count int32 :offset-assert 9052)
(region-start-list region-prim-area 320 :offset-assert 9056)
(region-start-prim-list drawable-region-sphere 320 :offset-assert 10336)
)
:method-count-assert 13
:size-assert #x2d60
:flag-assert #xd00002d60
(:methods
(region-prim-area-method-9 () none 9)
(region-prim-area-method-10 () none 10)
(region-prim-area-method-11 () none 11)
(region-prim-area-method-12 () none 12)
(track-entered-region! (_type_ drawable-region-sphere) none 9)
(track-exited-region! (_type_ drawable-region-sphere) none 10)
(track-inside-region! (_type_ drawable-region-sphere) none 11)
(track-start-region! (_type_ drawable-region-sphere) none 12)
)
)
(deftype sprite-area (structure)
((clock-data vector 13 :inline :offset-assert 0)
(buffer uint8 :dynamic :offset-assert 208)
@@ -162,6 +171,7 @@
:flag-assert #x9000000d0
)
(deftype work-area (structure)
((background background-area :inline :offset-assert 0)
(foreground foreground-area :inline :offset 0)
@@ -173,6 +183,7 @@
:flag-assert #x9000040a0
)
(deftype terrain-context (structure)
((work work-area :inline :offset-assert 0)
)
@@ -181,7 +192,7 @@
:flag-assert #x9000040a0
)
(define *terrain-stats* (new 'global 'terrain-stats))
(define *collide-stats* (new 'global 'collide-stats))
+16 -25
View File
@@ -5,6 +5,8 @@
;; name in dgo: region-h
;; dgos: ENGINE, GAME
(declare-type region-prim-area structure)
;; DECOMP BEGINS
(deftype region (structure)
@@ -17,10 +19,11 @@
:size-assert #x10
:flag-assert #xa00000010
(:methods
(region-method-9 () none 9)
(region-method-9 (_type_ vector) symbol 9)
)
)
(deftype region-array (inline-array-class)
((data region :inline :dynamic :offset-assert 16)
)
@@ -28,6 +31,8 @@
:size-assert #x10
:flag-assert #x900000010
)
(set! (-> region-array heap-base) (the-as uint 16))
(deftype drawable-region-prim (drawable)
@@ -38,11 +43,12 @@
:flag-assert #x1400000020
(:methods
(debug-draw-region (_type_ int) none 17)
(drawable-region-prim-method-18 () none 18)
(drawable-region-prim-method-19 () none 19)
(track-region (_type_ region-prim-area) symbol 18)
(within-area? (_type_ region-prim-area) symbol 19)
)
)
(deftype drawable-tree-region-prim (drawable-tree)
((name basic :offset 8)
(data2 drawable-inline-array :dynamic :offset 32)
@@ -51,27 +57,11 @@
:size-assert #x20
:flag-assert #x1300000020
(:methods
(drawable-tree-region-prim-method-17 () none 17)
(drawable-tree-region-prim-method-17 (_type_ vector) symbol 17)
(debug-print (_type_ vector object) none 18)
)
)
(defmethod inspect drawable-tree-region-prim ((obj drawable-tree-region-prim))
(when (not obj)
(return obj)
)
(format #t "[~8x] ~A~%" obj (-> obj type))
(format #t "~1Tid: ~D~%" (-> obj id))
(format #t "~1Tbsphere: ~`vector`P~%" (-> obj bsphere))
(format #t "~1Tlength: ~D~%" (-> obj length))
(format #t "~1Tdata[0] @ #x~X~%" (-> obj data))
(dotimes (s5-0 (-> obj length))
(format #t "~T [~D]~1Tdata: ~A~%" s5-0 (-> obj data s5-0))
)
(format #t "~1Tname: ~A~%" (-> obj name))
obj
)
(deftype drawable-inline-array-region-prim (drawable-inline-array)
((data drawable-region-prim 1 :inline :offset-assert 32)
@@ -89,6 +79,7 @@
:flag-assert #x1400000020
)
(deftype region-face-data (structure)
((normal vector :inline :offset-assert 0)
(normal-offset float :offset 12)
@@ -100,6 +91,7 @@
:flag-assert #x900000020
)
(deftype drawable-region-face (drawable-region-prim)
((data region-face-data :offset 12)
)
@@ -108,6 +100,7 @@
:flag-assert #x1400000020
)
(deftype region-face-array (inline-array-class)
((data region-face-data :dynamic :offset 20)
)
@@ -115,6 +108,8 @@
:size-assert #x14
:flag-assert #x900000014
)
(set! (-> region-face-array heap-base) (the-as uint 32))
(deftype drawable-region-volume (drawable-region-prim)
@@ -125,6 +120,7 @@
:flag-assert #x1400000020
)
(deftype region-prim-list (structure)
((num-items int32 :offset-assert 0)
(items drawable-region-prim 320 :offset-assert 4)
@@ -133,8 +129,3 @@
:size-assert #x504
:flag-assert #x900000504
)
(define-extern region-prim-lookup-by-id (function int drawable-region-prim))
(define-extern region-lookup-by-id (function int region))
+703
View File
@@ -7,3 +7,706 @@
;; DECOMP BEGINS
;; WARN: Return type mismatch int vs drawable-region-prim.
(defmethod mem-usage drawable-region-prim ((obj drawable-region-prim) (arg0 memory-usage-block) (arg1 int))
(set! (-> arg0 length) (max 50 (-> arg0 length)))
(set! (-> arg0 data 49 name) "region")
(+! (-> arg0 data 49 count) 1)
(let ((v1-6 (asize-of obj)))
(+! (-> arg0 data 49 used) v1-6)
(+! (-> arg0 data 49 total) (logand -16 (+ v1-6 15)))
)
(mem-usage (-> obj region) arg0 (logior arg1 128))
(the-as drawable-region-prim 0)
)
;; WARN: Return type mismatch int vs drawable-inline-array-region-prim.
(defmethod mem-usage drawable-inline-array-region-prim ((obj drawable-inline-array-region-prim) (arg0 memory-usage-block) (arg1 int))
(set! (-> arg0 length) (max 1 (-> arg0 length)))
(set! (-> arg0 data 0 name) (symbol->string 'drawable-group))
(+! (-> arg0 data 0 count) 1)
(let ((v1-7 32))
(+! (-> arg0 data 0 used) v1-7)
(+! (-> arg0 data 0 total) (logand -16 (+ v1-7 15)))
)
(dotimes (s3-0 (-> obj length))
(mem-usage (-> obj data s3-0) arg0 arg1)
)
(the-as drawable-inline-array-region-prim 0)
)
(defmethod draw drawable-tree-region-prim ((obj drawable-tree-region-prim) (arg0 drawable-tree-region-prim) (arg1 display-frame))
0
(none)
)
(defmethod unpack-vis drawable-tree-region-prim ((obj drawable-tree-region-prim) (arg0 (pointer int8)) (arg1 (pointer int8)))
arg1
)
(defmethod collect-regions drawable-region-prim ((obj drawable-region-prim) (area-of-interest sphere) (_count int) (region-list region-prim-list))
"Determines the number of [[drawable]]s in the `obj` that overlap the given `area-of-interest` this number is stored in the `region-list`'s item count
@param area-of-interest The area defined by a sphere that we care about overlaps
@param _count The amount of [[drawable]]s in the object to enumerate through
@param! region-list Stores the overlapping regions and a count for how many were found
@returns none"
(dotimes (count _count)
(when (spheres-overlap? area-of-interest (the-as sphere (-> obj bsphere)))
(set! (-> region-list items (-> region-list num-items)) obj)
(+! (-> region-list num-items) 1)
)
(&+! obj 32)
)
0
(none)
)
(defmethod collect-regions drawable-inline-array-region-prim ((obj drawable-inline-array-region-prim) (arg0 sphere) (arg1 int) (arg2 region-prim-list))
"Determines the number of [[drawable]]s in the `obj` that overlap the given `area-of-interest` this number is stored in the `region-list`'s item count
@param area-of-interest The area defined by a sphere that we care about overlaps
@param _count The amount of [[drawable]]s in the object to enumerate through
@param! region-list Stores the overlapping regions and a count for how many were found
@returns none"
(collect-regions (the-as drawable-region-prim (-> obj data)) arg0 (-> obj length) arg2)
0
(none)
)
(defmethod collect-regions drawable-tree-region-prim ((obj drawable-tree-region-prim) (arg0 sphere) (arg1 int) (arg2 region-prim-list))
"Determines the number of [[drawable]]s in the `obj` that overlap the given `area-of-interest` this number is stored in the `region-list`'s item count
@param area-of-interest The area defined by a sphere that we care about overlaps
@param _count The amount of [[drawable]]s in the object to enumerate through
@param! region-list Stores the overlapping regions and a count for how many were found
@returns none"
(collect-regions (-> obj data2 0) arg0 (-> obj length) arg2)
0
(none)
)
(defmethod debug-draw-region drawable-region-prim ((obj drawable-region-prim) (arg0 int))
(local-vars (sv-32 vector2h) (sv-36 vector))
(set! sv-32 (new 'stack 'vector2h))
(set! sv-36 (-> obj bsphere))
(add-debug-x #t (bucket-id debug-no-zbuf1) sv-36 (new 'static 'rgba :r #xff :g #xff :a #x80))
(when (nonzero? (-> obj region))
(let ((s5-0 add-debug-text-3d)
(s4-0 #t)
(s3-0 318)
)
(format (clear *temp-string*) "region-~D~%" (-> obj region id))
(s5-0 s4-0 (the-as bucket-id s3-0) *temp-string* sv-36 (font-color #dadada) sv-32)
)
(set! (-> sv-32 y) (the-as int (+ (-> sv-32 y) 8)))
(let ((s5-1 (-> obj region on-enter)))
(when s5-1
(let ((s4-1 add-debug-text-3d)
(s3-1 #t)
(s2-1 318)
)
(format (clear *temp-string*) "(on-enter ~S)" s5-1)
(s4-1 s3-1 (the-as bucket-id s2-1) *temp-string* sv-36 (font-color #dadada) sv-32)
)
(set! (-> sv-32 y) (the-as int (+ (-> sv-32 y) 8)))
)
)
(let ((s5-2 (-> obj region on-inside)))
(when s5-2
(let ((s4-2 add-debug-text-3d)
(s3-2 #t)
(s2-2 318)
)
(format (clear *temp-string*) "(on-inside ~S)" s5-2)
(s4-2 s3-2 (the-as bucket-id s2-2) *temp-string* sv-36 (font-color #dadada) sv-32)
)
(set! (-> sv-32 y) (the-as int (+ (-> sv-32 y) 8)))
)
)
(let ((gp-1 (-> obj region on-exit)))
(when gp-1
(let ((s5-3 add-debug-text-3d)
(s4-3 #t)
(s3-3 318)
)
(format (clear *temp-string*) "(on-exit ~S)" gp-1)
(s5-3 s4-3 (the-as bucket-id s3-3) *temp-string* sv-36 (font-color #dadada) sv-32)
)
(set! (-> sv-32 y) (the-as int (+ (-> sv-32 y) 8)))
)
)
)
0
(none)
)
(defmethod track-region drawable-region-prim ((obj drawable-region-prim) (arg0 region-prim-area))
"TODO"
#f
)
(defmethod within-area? drawable-region-prim ((obj drawable-region-prim) (arg0 region-prim-area))
"@returns Whether or not the object overlaps with the provided [[region-prim-area]]'s extent"
#f
)
;; WARN: Function (method 9 region-prim-area) has a return type of none, but the expression builder found a return statement.
(defmethod track-entered-region! region-prim-area ((obj region-prim-area) (region-sphere drawable-region-sphere))
"Enumerates through the objects `region-enter-list`, if we find the provided `region`, do nothing and exit
otherwise, add the [[drawable-region-sphere]] to `region-enter-prim-list` and increment `region-enter-count`
@param region-sphere Defines the region in question
@returns nothing"
(let ((regions-entered (-> obj region-enter-count)))
(let ((region (-> region-sphere region)))
(countdown (idx regions-entered)
(if (= (-> obj region-enter-list idx) region)
(return #f)
)
)
(set! (-> obj region-enter-list regions-entered) (the-as region-prim-area region))
)
(set! (-> obj region-enter-prim-list regions-entered) region-sphere)
(set! (-> obj region-enter-count) (+ regions-entered 1))
)
0
(none)
)
;; WARN: Function (method 10 region-prim-area) has a return type of none, but the expression builder found a return statement.
(defmethod track-exited-region! region-prim-area ((obj region-prim-area) (arg0 drawable-region-sphere))
"Enumerates through the objects `region-exit-list`, if we find the provided `region`, do nothing and exit
otherwise, add the [[drawable-region-sphere]] to `region-exit-prim-list` and increment `region-exit-count`
@param region-sphere Defines the region in question
@returns nothing"
(let ((regions-exited (-> obj region-exit-count)))
(let ((region (-> arg0 region)))
(countdown (idx regions-exited)
(if (= (-> obj region-exit-list idx) region)
(return #f)
)
)
(set! (-> obj region-exit-list regions-exited) (the-as region-prim-area region))
)
(set! (-> obj region-exit-prim-list regions-exited) arg0)
(set! (-> obj region-exit-count) (+ regions-exited 1))
)
0
(none)
)
;; WARN: Function (method 11 region-prim-area) has a return type of none, but the expression builder found a return statement.
(defmethod track-inside-region! region-prim-area ((obj region-prim-area) (arg0 drawable-region-sphere))
"Enumerates through the objects `region-inside-list`, if we find the provided `region`, do nothing and exit
otherwise, add the [[drawable-region-sphere]] to `region-inside-prim-list` and increment `region-inside-count`
@param region-sphere Defines the region in question
@returns nothing"
(let ((regions-inside (-> obj region-inside-count)))
(let ((region (-> arg0 region)))
(countdown (idx regions-inside)
(if (= (-> obj region-inside-list idx) region)
(return #f)
)
)
(set! (-> obj region-inside-list regions-inside) (the-as region-prim-area region))
)
(set! (-> obj region-inside-prim-list regions-inside) arg0)
(set! (-> obj region-inside-count) (+ regions-inside 1))
)
0
(none)
)
;; WARN: Function (method 12 region-prim-area) has a return type of none, but the expression builder found a return statement.
(defmethod track-start-region! region-prim-area ((obj region-prim-area) (arg0 drawable-region-sphere))
"Enumerates through the objects `region-start-list`, if we find the provided `region`, do nothing and exit
otherwise, add the [[drawable-region-sphere]] to `region-start-prim-list` and increment `region-start-count`
@param region-sphere Defines the region in question
@returns nothing"
(let ((regions-started (-> obj region-start-count)))
(let ((region (-> arg0 region)))
(countdown (idx regions-started)
(if (= (-> obj region-start-list idx) region)
(return #f)
)
)
(set! (-> obj region-start-list regions-started) (the-as region-prim-area region))
)
(set! (-> obj region-start-prim-list regions-started) arg0)
(set! (-> obj region-start-count) (+ regions-started 1))
)
0
(none)
)
(defmethod debug-draw-region drawable-region-sphere ((obj drawable-region-sphere) (arg0 int))
(let ((t9-0 (method-of-type drawable-region-prim debug-draw-region)))
(t9-0 obj arg0)
)
(let ((a2-0 (-> obj bsphere)))
(add-debug-sphere #t (bucket-id debug2) a2-0 (-> obj bsphere w) (new 'static 'rgba :r #xff :a #x80))
)
0
(none)
)
(defmethod track-region drawable-region-sphere ((obj drawable-region-sphere) (area region-prim-area))
"TODO"
(-> obj region)
(let ((area-of-interest (-> obj bsphere)))
(if (< 0.0 (ray-sphere-intersect (-> area pos) (-> area ray) area-of-interest (-> area-of-interest w)))
(track-entered-region! area obj)
)
(if (< 0.0 (ray-sphere-intersect
(-> area unknown-vector-uiyb1)
(-> area unknown-vector-t3edh)
area-of-interest
(-> area-of-interest w)
)
)
(track-exited-region! area obj)
)
(if (spheres-overlap? (the-as sphere (-> area pos)) (the-as sphere area-of-interest))
(track-start-region! area obj)
)
(when (spheres-overlap? (the-as sphere (-> area unknown-vector-uiyb1)) (the-as sphere area-of-interest))
(track-inside-region! area obj)
#t
)
)
)
(defmethod within-area? drawable-region-sphere ((obj drawable-region-sphere) (area region-prim-area))
"@returns Whether or not the object overlaps with the provided [[region-prim-area]]'s extent"
(spheres-overlap? (the-as sphere (-> area pos)) (the-as sphere (-> obj bsphere)))
)
(defmethod debug-draw-region drawable-region-face ((obj drawable-region-face) (arg0 int))
(when (zero? arg0)
(let ((t9-0 (method-of-type drawable-region-prim debug-draw-region)))
(t9-0 obj arg0)
)
)
(let ((s5-0 (-> obj bsphere)))
(add-debug-vector
#t
(bucket-id debug-no-zbuf1)
s5-0
(-> obj data normal)
(meters 2)
(new 'static 'rgba :r #xff :g #xff :a #x80)
)
(add-debug-sphere #t (bucket-id debug2) s5-0 (-> obj bsphere w) (new 'static 'rgba :r #xff :a #x30))
)
(add-debug-bound
324
(the-as transform (-> obj data points))
(the-as int (-> obj data num-points))
(new 'static 'rgba :r #xff :g #xff :a #x80)
(new 'static 'rgba :r #xff :a #x80)
0
)
0
(none)
)
(defmethod track-region drawable-region-face ((obj drawable-region-face) (arg0 region-prim-area))
"TODO"
(local-vars (sv-48 vector) (sv-52 vector) (sv-56 object))
(-> obj region)
(let* ((s4-0 (-> obj data))
(v1-1 (-> s4-0 normal))
(a0-3 (>= 0.0 (- (vector-dot (-> arg0 pos) v1-1) (-> v1-1 w))))
(s3-0 (>= 0.0 (- (vector-dot (-> arg0 unknown-vector-uiyb1) v1-1) (-> v1-1 w))))
)
(when (!= a0-3 s3-0)
(when (nonzero? (-> s4-0 num-points))
(set! sv-48 (new 'stack-no-clear 'vector))
(set! sv-52 (new 'stack-no-clear 'vector))
(set! sv-56 (the-as (inline-array vector) (-> s4-0 points)))
(ray-plane-intersect
sv-48
sv-52
(-> arg0 pos)
(-> arg0 ray)
(-> (the-as (inline-array vector) sv-56) 0)
(-> (the-as (inline-array vector) sv-56) 1)
(-> (the-as (inline-array vector) sv-56) 2)
)
(let ((s4-1 (-> s4-0 num-points))
(s2-0 0)
(s1-0 (vector-negate! (new 'stack-no-clear 'vector) sv-52))
)
(while (< (+ s2-0 2) (the-as int s4-1))
(if (the-as
(inline-array vector)
(or (point-in-triangle-cross
sv-48
sv-52
(-> (the-as (inline-array vector) sv-56) 0)
(-> (the-as (inline-array vector) sv-56) 1)
(-> (the-as (inline-array vector) sv-56) 2)
)
(the-as (inline-array vector) (point-in-triangle-cross
sv-48
s1-0
(-> (the-as (inline-array vector) sv-56) 0)
(-> (the-as (inline-array vector) sv-56) 1)
(-> (the-as (inline-array vector) sv-56) 2)
)
)
)
)
(goto cfg-17)
)
(+! s2-0 1)
(set! sv-56 (-> (the-as (inline-array vector) sv-56) 1))
)
)
(set! s3-0 s3-0)
(goto cfg-20)
)
(label cfg-17)
(if s3-0
(track-entered-region! arg0 (the-as drawable-region-sphere obj))
(track-exited-region! arg0 (the-as drawable-region-sphere obj))
)
)
(label cfg-20)
s3-0
)
)
(defmethod debug-draw-region drawable-region-volume ((obj drawable-region-volume) (arg0 int))
(let ((t9-0 (method-of-type drawable-region-prim debug-draw-region)))
(t9-0 obj arg0)
)
(let* ((s5-0 (-> obj faces length))
(s4-0 0)
(a0-3 (the-as object (+ (+ (* s4-0 32) 16) (the-as int (-> obj faces)))))
)
(while (< s4-0 s5-0)
(debug-draw-region (the-as drawable-region-face a0-3) 1)
(+! s4-0 1)
(set! a0-3 (+ (+ (* s4-0 32) 16) (the-as int (-> obj faces))))
)
)
0
(none)
)
(defmethod track-region drawable-region-volume ((obj drawable-region-volume) (area region-prim-area))
"TODO"
(if (within-area? obj area)
(track-start-region! area (the-as drawable-region-sphere obj))
)
(let* ((s4-0 (-> obj faces length))
(s3-0 0)
(a0-4 (the-as object (+ (+ (* s3-0 32) 16) (the-as int (-> obj faces)))))
)
(while (< s3-0 s4-0)
(if (not (track-region (the-as drawable-region-face a0-4) area))
(return #f)
)
(+! s3-0 1)
(set! a0-4 (+ (+ (* s3-0 32) 16) (the-as int (-> obj faces))))
)
)
(track-inside-region! area (the-as drawable-region-sphere obj))
#t
)
(defmethod within-area? drawable-region-volume ((obj drawable-region-volume) (arg0 region-prim-area))
"@returns Whether or not the object overlaps with the provided [[region-prim-area]]'s extent"
(let* ((v1-1 (-> obj faces length))
(a2-0 0)
(a3-2 (the-as object (+ (+ (* a2-0 32) 16) (the-as int (-> obj faces)))))
)
(while (< a2-0 v1-1)
(let ((a3-4 (-> (the-as drawable-region-face a3-2) data normal)))
(if (< 0.0 (- (vector-dot (-> arg0 pos) a3-4) (-> a3-4 w)))
(return #f)
)
)
(+! a2-0 1)
(set! a3-2 (+ (+ (* a2-0 32) 16) (the-as int (-> obj faces))))
)
)
#t
)
(defmethod drawable-tree-region-prim-method-17 drawable-tree-region-prim ((obj drawable-tree-region-prim) (arg0 vector))
(sphere<-vector+r! (the-as sphere (-> (the-as region-prim-area #x70000000) pos)) arg0 0.0)
(let* ((s5-0 (-> obj data2 (+ (-> obj length) -1) length))
(s4-0 0)
(a0-8 (the-as object (+ (+ (* s4-0 32) 32) (the-as int (-> obj data2 (+ (-> obj length) -1))))))
)
(while (< s4-0 s5-0)
(if (within-area? (the-as drawable-region-prim a0-8) (the-as region-prim-area (+ #x70000000 0)))
(return #t)
)
(+! s4-0 1)
(set! a0-8 (+ (+ (* s4-0 32) 32) (the-as int (-> obj data2 (+ (-> obj length) -1)))))
)
)
#f
)
;; WARN: Return type mismatch int vs symbol.
(defmethod region-method-9 region ((obj region) (arg0 vector))
(local-vars (sv-16 int) (sv-32 int))
(sphere<-vector+r! (the-as sphere (-> (the-as region-prim-area #x70000000) pos)) arg0 0.0)
(dotimes (s5-0 (-> *level* length))
(let ((s4-0 (-> *level* level s5-0)))
(when (= (-> s4-0 status) 'active)
(when (nonzero? (-> s4-0 bsp region-trees))
(let* ((s3-0 (-> s4-0 bsp region-trees length))
(s2-0 0)
(s1-0 (-> s4-0 bsp region-trees s2-0))
)
(while (< s2-0 s3-0)
(let ((s0-0 (-> s1-0 data2 (+ (-> s1-0 length) -1) length)))
(set! sv-16 0)
(set! sv-32 (+ (+ (* sv-16 32) 32) (the-as int (-> s1-0 data2 (+ (-> s1-0 length) -1)))))
(while (< sv-16 s0-0)
(if (and (= (-> (the-as drawable-region-prim sv-32) region) obj)
(within-area?
(the-as drawable-region-prim sv-32)
(the-as region-prim-area (-> (the-as region-prim-area #x70000000) region-prim-list))
)
)
(return (the-as symbol sv-32))
)
(set! sv-16 (+ sv-16 1))
(set! sv-32 (+ (+ (* sv-16 32) 32) (the-as int (-> s1-0 data2 (+ (-> s1-0 length) -1)))))
)
)
(+! s2-0 1)
(set! s1-0 (-> s4-0 bsp region-trees s2-0))
)
)
)
)
)
)
(the-as symbol #f)
)
(defmethod debug-print drawable-tree-region-prim ((obj drawable-tree-region-prim) (arg0 vector) (arg1 object))
(sphere<-vector+r! (the-as sphere (+ 1296 #x70000000)) arg0 0.0)
(let* ((s4-0 (-> obj data2 (+ (-> obj length) -1) length))
(s3-0 0)
(s2-0 (the-as object (+ (+ (* s3-0 32) 32) (the-as int (-> obj data2 (+ (-> obj length) -1))))))
)
(while (< s3-0 s4-0)
(if (within-area? (the-as drawable-region-prim s2-0) (the-as region-prim-area (+ #x70000000 0)))
(format
arg1
" splitbox-~D ~A~%"
(-> (the-as drawable-region-prim s2-0) id)
(the-as drawable-region-prim s2-0)
)
)
(+! s3-0 1)
(set! s2-0 (+ (+ (* s3-0 32) 32) (the-as int (-> obj data2 (+ (-> obj length) -1)))))
)
)
0
(none)
)
(defun region-tree-execute ((arg0 symbol) (arg1 vector) (arg2 vector))
(local-vars (sv-32 vector))
(with-pp
(set! sv-32 (vector-average! (new 'stack-no-clear 'vector) arg1 arg2))
(set! (-> sv-32 w) (* 0.5 (vector-vector-distance arg1 arg2)))
(set! (-> (the-as region-prim-area #x70000000) region-prim-list num-items) 0)
(set! (-> (the-as region-prim-area #x70000000) region-enter-count) 0)
(set! (-> (the-as region-prim-area #x70000000) region-exit-count) 0)
(set! (-> (the-as region-prim-area #x70000000) region-inside-count) 0)
(set! (-> (the-as region-prim-area #x70000000) region-start-count) 0)
(sphere<-vector+r! (the-as sphere (+ 1296 #x70000000)) arg1 0.0)
(sphere<-vector+r! (the-as sphere (+ 1312 #x70000000)) arg2 0.0)
(vector-! (the-as vector (+ 1328 #x70000000)) arg2 arg1)
(vector-! (the-as vector (+ 1344 #x70000000)) arg1 arg2)
(dotimes (s5-1 (-> *level* length))
(let ((v1-17 (-> *level* level s5-1)))
(when (= (-> v1-17 status) 'active)
(let ((s4-1 (-> v1-17 bsp region-trees)))
(when (nonzero? s4-1)
(let* ((s3-0 (-> s4-1 length))
(s2-0 0)
(a0-14 (-> s4-1 s2-0))
)
(while (< s2-0 s3-0)
(if (= (-> a0-14 name) arg0)
(collect-regions a0-14 (the-as sphere sv-32) 0 (the-as region-prim-list (+ #x70000000 0)))
)
(+! s2-0 1)
(set! a0-14 (-> s4-1 s2-0))
)
)
)
)
)
)
)
(countdown (gp-1 (-> (the-as region-prim-area #x70000000) region-prim-list num-items))
(track-region
(-> (the-as region-prim-area (+ (* gp-1 4) #x70000000)) region-prim-list items 0)
(the-as region-prim-area (-> (the-as region-prim-area #x70000000) region-prim-list))
)
)
(let ((gp-2 (-> (the-as region-prim-area #x70000000) region-enter-count)))
(while (begin (label cfg-22) (nonzero? gp-2))
(+! gp-2 -1)
(let* ((a2-5 (-> (the-as region-prim-area (+ (* gp-2 4) #x70000000)) region-enter-list 0))
(s5-2 (-> a2-5 region-prim-list items 0))
)
(when s5-2
(countdown (v1-47 (-> (the-as region-prim-area #x70000000) region-start-count))
(if (= a2-5 (-> (the-as region-prim-area #x70000000) region-start-list v1-47))
(goto cfg-22)
)
)
(eval!
(new
'stack
'script-context
(the-as basic a2-5)
pp
(-> (the-as region-prim-area (+ (* gp-2 4) #x70000000)) region-enter-prim-list 0 bsphere)
)
(the-as pair s5-2)
)
)
)
)
)
(let ((gp-3 (-> (the-as region-prim-area #x70000000) region-exit-count)))
(while (begin (label cfg-31) (nonzero? gp-3))
(+! gp-3 -1)
(let* ((a2-6 (-> (the-as region-prim-area (+ (* gp-3 4) #x70000000)) region-exit-list 0))
(s5-3 (-> a2-6 region-prim-list items 2))
)
(when s5-3
(countdown (v1-64 (-> (the-as region-prim-area #x70000000) region-inside-count))
(if (= a2-6 (-> (the-as region-prim-area (+ (* v1-64 4) #x70000000)) region-inside-list 0))
(goto cfg-31)
)
)
(eval!
(new
'stack
'script-context
(the-as basic a2-6)
pp
(-> (the-as region-prim-area (+ (* gp-3 4) #x70000000)) region-exit-prim-list 0 bsphere)
)
(the-as pair s5-3)
)
)
)
)
)
(countdown (gp-4 (-> (the-as region-prim-area #x70000000) region-inside-count))
(let* ((a2-7 (-> (the-as region-prim-area (+ (* gp-4 4) #x70000000)) region-inside-list 0))
(s5-4 (-> a2-7 region-prim-list items 1))
)
(if s5-4
(eval!
(new
'stack
'script-context
(the-as basic a2-7)
pp
(-> (the-as region-prim-area (+ (* gp-4 4) #x70000000)) region-inside-prim-list 0 bsphere)
)
(the-as pair s5-4)
)
)
)
)
0
(none)
)
)
(defun region-execute ()
(set! (-> *level* camera-pos 1 quad) (-> *level* camera-pos 0 quad))
(set! (-> *level* camera-pos 0 quad) (-> (camera-pos) quad))
(set! (-> *level* target-pos 1 quad) (-> *level* target-pos 0 quad))
(set! (-> *level* target-pos 0 quad) (-> (target-pos 0) quad))
(when (and *execute-regions* (-> *setting-control* user-current region-mode) (not (paused?)))
(region-tree-execute 'camera (-> *level* camera-pos 1) (the-as vector (-> *level* camera-pos)))
(region-tree-execute 'target (-> *level* target-pos 1) (the-as vector (-> *level* target-pos)))
)
0
(none)
)
;; WARN: Return type mismatch int vs drawable-region-prim.
(defun region-prim-lookup-by-id ((arg0 int) (arg1 symbol) (arg2 symbol))
(let ((v1-0 -1))
(dotimes (a3-0 (-> *level* length))
(let ((t0-3 (-> *level* level a3-0)))
(when (= (-> t0-3 status) 'active)
(when (nonzero? (-> t0-3 bsp region-trees))
(let* ((t1-8 (-> t0-3 bsp region-trees length))
(t2-1 0)
(t3-2 (-> t0-3 bsp region-trees t2-1))
)
(while (< t2-1 t1-8)
(when (or (not arg1) (= (-> t3-2 name) arg1))
(let* ((t4-10 (-> t3-2 data2 (+ (-> t3-2 length) -1) length))
(t5-0 0)
(t6-2 (the-as object (+ (+ (* t5-0 32) 32) (the-as int (-> t3-2 data2 (+ (-> t3-2 length) -1))))))
)
(while (< t5-0 t4-10)
(when (= (-> (the-as drawable-region-prim t6-2) region id) arg0)
(+! v1-0 1)
(if (= v1-0 arg2)
(return (the-as drawable-region-prim t6-2))
)
)
(+! t5-0 1)
(set! t6-2 (+ (+ (* t5-0 32) 32) (the-as int (-> t3-2 data2 (+ (-> t3-2 length) -1)))))
)
)
)
(+! t2-1 1)
(set! t3-2 (-> t0-3 bsp region-trees t2-1))
)
)
)
)
)
)
)
(the-as drawable-region-prim #f)
)
(defun region-lookup-by-id ((arg0 int))
(dotimes (v1-0 (-> *level* length))
(let ((a1-3 (-> *level* level v1-0)))
(when (= (-> a1-3 status) 'active)
(when (nonzero? (-> a1-3 bsp region-array))
(let* ((a2-8 (-> a1-3 bsp region-array length))
(a3-1 0)
(t0-2 (-> a1-3 bsp region-array data a3-1))
)
(while (< a3-1 a2-8)
(if (= (-> t0-2 id) arg0)
(return t0-2)
)
(+! a3-1 1)
(set! t0-2 (-> a1-3 bsp region-array data a3-1))
)
)
)
)
)
)
(the-as region #f)
)
+1 -8
View File
@@ -203,7 +203,7 @@
(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)
(bounds vector :inline :offset-assert 48)
(origin vector :inline :offset 48)
(entity entity :offset-assert 64)
(link-array (array nav-mesh-link) :offset-assert 68)
@@ -329,7 +329,6 @@
#f
)
;; WARN: Return type mismatch int vs none.
(defun init-ray ((arg0 nav-ray))
(rlet ((acc :class vf)
(Q :class vf)
@@ -532,7 +531,6 @@
;; 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))
(local-vars
(next-poly-idx int)
@@ -617,7 +615,6 @@
(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))
@@ -625,7 +622,3 @@
0
(none)
)
@@ -5,5 +5,390 @@
;; name in dgo: rigid-body-h
;; dgos: GAME, COMMON
;; +++rigid-body-flag
(defenum rigid-body-flag
:bitfield #t
:type uint32
(display-marks 0)
(enable-physics 1)
(enable-collision 2)
(active 3)
(debug 4)
(blocker 5)
)
;; ---rigid-body-flag
;; +++rigid-body-object-flag
(defenum rigid-body-object-flag
:bitfield #t
:type uint64
(enable-collision 0)
(disturbed 1)
(damaged 2)
(dead 3)
(player-touching 4)
(player-edge-grabbing 5)
(player-standing-on 6)
(player-impulse-force 7)
(player-contact-force 8)
(persistent 9)
(in-air 10)
(on-ground 11)
(on-flight-level 12)
(riding 13)
(player-driving 14)
(waiting-for-player 15)
(ignition 16)
(turbo-boost 17)
(reverse-gear 18)
(slide 19)
(hard-turn 20)
(jump 21)
(jump-sound 22)
(ai-driving 23)
(traffic-managed 24)
(flight-level-transition 25)
(flight-level-transition-ending 26)
(camera-bike-mode 27)
(camera-rapid-track-mode 28)
(camera 29)
(alert 30)
(in-pursuit 31)
(target-in-sight 32)
(rammed-target 33)
(draw-marks 34)
(hack-edit-graph-mode 35)
(measure-control-parameters 36)
(lights-on 37)
(lights-update 38)
(lights-dead 39)
(no-hijack 40)
(player-grabbed 41)
(nav-spheres 42)
(idle-sound 43)
)
;; ---rigid-body-object-flag
;; DECOMP BEGINS
(deftype rigid-body-info (structure)
((mass float :offset-assert 0)
(inv-mass float :offset-assert 4)
(linear-damping float :offset-assert 8)
(angular-damping float :offset-assert 12)
(bounce-factor float :offset-assert 16)
(friction-factor float :offset-assert 20)
(bounce-mult-factor float :offset-assert 24)
(cm-offset-joint vector :inline :offset-assert 32)
(inv-inertial-tensor matrix :inline :offset-assert 48)
(inertial-tensor matrix :inline :offset-assert 112)
(inertial-tensor-box meters 3 :offset-assert 176)
)
:method-count-assert 10
:size-assert #xbc
:flag-assert #xa000000bc
(:methods
(rigid-body-info-method-9 (_type_) none 9)
)
)
(deftype rigid-body-object-extra-info (structure)
((max-time-step float :offset-assert 0)
(gravity meters :offset-assert 4)
(idle-distance meters :offset-assert 8)
(attack-force-scale float :offset-assert 12)
)
:pack-me
:method-count-assert 9
:size-assert #x10
:flag-assert #x900000010
)
(deftype rigid-body-object-constants (structure)
((info rigid-body-info :inline :offset-assert 0)
(mass float :offset 0)
(inv-mass float :offset 4)
(cm-joint-x meters :offset 32)
(cm-joint-y meters :offset 36)
(cm-joint-z meters :offset 40)
(linear-damping float :offset 8)
(angular-damping float :offset 12)
(bounce-factor float :offset 16)
(friction-factor float :offset 20)
(inertial-tensor-x meters :offset 176)
(inertial-tensor-y meters :offset 180)
(inertial-tensor-z meters :offset 184)
(extra rigid-body-object-extra-info :inline :offset-assert 188)
(max-time-step float :offset 188)
(gravity meters :offset 192)
(idle-distance meters :offset 196)
(attack-force-scale float :offset 200)
(name basic :offset-assert 204)
)
:method-count-assert 9
:size-assert #xd0
:flag-assert #x9000000d0
)
(deftype rigid-body-impact (structure)
((point vector :inline :offset-assert 0)
(normal vector :inline :offset-assert 16)
(velocity vector :inline :offset-assert 32)
(impulse float :offset-assert 48)
(pat uint32 :offset-assert 52)
(rbody basic :offset-assert 56)
(prim-id uint32 :offset-assert 60)
)
:method-count-assert 9
:size-assert #x40
:flag-assert #x900000040
)
(deftype rigid-body (structure)
((work basic :offset-assert 0)
(info rigid-body-info :offset-assert 4)
(flags rigid-body-flag :offset-assert 8)
(force-callback basic :offset-assert 12)
(blocked-by basic :offset-assert 16)
(time-remaining float :offset-assert 20)
(step-count int16 :offset-assert 24)
(position vector :inline :offset-assert 32)
(rot vector :inline :offset-assert 48)
(rotation quaternion :inline :offset 48)
(lin-momentum vector :inline :offset-assert 64)
(ang-momentum vector :inline :offset-assert 80)
(force vector :inline :offset-assert 96)
(torque vector :inline :offset-assert 112)
(lin-velocity vector :inline :offset-assert 128)
(ang-velocity vector :inline :offset-assert 144)
(matrix matrix :inline :offset-assert 160)
(inv-i-world matrix :inline :offset-assert 224)
)
:method-count-assert 32
:size-assert #x120
:flag-assert #x2000000120
(:methods
(rigid-body-method-9 (_type_) none 9)
(rigid-body-method-10 (_type_) none 10)
(rigid-body-method-11 (_type_) none 11)
(rigid-body-method-12 (_type_ float) none 12)
(rigid-body-method-13 (_type_) none 13)
(rigid-body-method-14 (_type_ float) none 14)
(rigid-body-method-15 () none 15)
(clear-force-torque! (_type_) none 16)
(clear-momentum! (_type_) none 17)
(rigid-body-method-18 (_type_ vector vector) none 18)
(rigid-body-method-19 (_type_ vector vector) none 19)
(rigid-body-method-20 (_type_ vector) none 20)
(rigid-body-method-21 (_type_ vector vector float) none 21)
(rigid-body-method-22 (_type_ vector vector) vector 22)
(rigid-body-method-23 (_type_ vector) vector 23)
(rigid-body-method-24 (_type_) none 24)
(rigid-body-method-25 (_type_ rigid-body-info vector quaternion basic) none 25)
(rigid-body-method-26 (_type_ vector quaternion) none 26)
(print-physics (_type_ object) none 27)
(print-force-torque (_type_ object) none 28)
(print-position-rotation (_type_ object) none 29)
(print-momentum (_type_ object) none 30)
(print-velocity (_type_ object) none 31)
)
)
(deftype rigid-body-control (basic)
((process process :offset-assert 4)
(state rigid-body :inline :offset-assert 16)
(work basic :offset 16)
(info rigid-body-info :offset 20)
(flags rigid-body-flag :offset 24)
(force-callback basic :offset 28)
(blocked-by basic :offset 32)
(time-remaining float :offset 36)
(step-count int16 :offset 40)
(position vector :inline :offset 48)
(rot vector :inline :offset 64)
(rotation quaternion :inline :offset 64)
(lin-momentum vector :inline :offset 80)
(ang-momentum vector :inline :offset 96)
(force vector :inline :offset 112)
(torque vector :inline :offset 128)
(lin-velocity vector :inline :offset 144)
(ang-velocity vector :inline :offset 160)
(matrix matrix :inline :offset 176)
(inv-i-world matrix :inline :offset 240)
)
:method-count-assert 26
:size-assert #x130
:flag-assert #x1a00000130
(:methods
(rigid-body-control-method-9 (_type_) none 9)
(rigid-body-control-method-10 (_type_) none 10)
(rigid-body-control-method-11 (_type_) none 11)
(rigid-body-control-method-12 (_type_ float) none 12)
(rigid-body-control-method-13 (_type_) none 13)
(rigid-body-control-method-14 (_type_ float) none 14)
(clear-force-torque! (_type_) none 15)
(clear-momentum! (_type_) none 16)
(rigid-body-control-method-17 (_type_ vector vector) none 17)
(rigid-body-control-method-18 (_type_ vector vector) none 18)
(rigid-body-control-method-19 (_type_ vector) none 19)
(rigid-body-control-method-20 (_type_ vector vector float) none 20)
(rigid-body-control-method-21 (_type_ vector vector) vector 21)
(rigid-body-control-method-22 (_type_ vector) vector 22)
(rigid-body-control-method-23 (_type_) none 23)
(rigid-body-control-method-24 (_type_ rigid-body-info vector quaternion basic) none 24)
(rigid-body-control-method-25 (_type_ vector quaternion) none 25)
)
)
(defmethod rigid-body-control-method-9 rigid-body-control ((obj rigid-body-control))
(rigid-body-method-9 (-> obj state))
(none)
)
(defmethod rigid-body-control-method-10 rigid-body-control ((obj rigid-body-control))
(rigid-body-method-10 (-> obj state))
(none)
)
(defmethod rigid-body-control-method-11 rigid-body-control ((obj rigid-body-control))
(rigid-body-method-11 (-> obj state))
(none)
)
(defmethod rigid-body-control-method-12 rigid-body-control ((obj rigid-body-control) (arg0 float))
(rigid-body-method-12 (-> obj state) arg0)
(none)
)
(defmethod rigid-body-control-method-13 rigid-body-control ((obj rigid-body-control))
(rigid-body-method-13 (-> obj state))
(none)
)
(defmethod rigid-body-control-method-14 rigid-body-control ((obj rigid-body-control) (arg0 float))
(rigid-body-method-14 (-> obj state) arg0)
(none)
)
(defmethod clear-force-torque! rigid-body-control ((obj rigid-body-control))
(clear-force-torque! (-> obj state))
(none)
)
(defmethod clear-momentum! rigid-body-control ((obj rigid-body-control))
(clear-momentum! (-> obj state))
(none)
)
(defmethod rigid-body-control-method-17 rigid-body-control ((obj rigid-body-control) (arg0 vector) (arg1 vector))
(rigid-body-method-18 (-> obj state) arg0 arg1)
(none)
)
(defmethod rigid-body-control-method-18 rigid-body-control ((obj rigid-body-control) (arg0 vector) (arg1 vector))
(rigid-body-method-19 (-> obj state) arg0 arg1)
(none)
)
(defmethod rigid-body-control-method-19 rigid-body-control ((obj rigid-body-control) (arg0 vector))
(rigid-body-method-20 (-> obj state) arg0)
(none)
)
(defmethod rigid-body-control-method-20 rigid-body-control ((obj rigid-body-control) (arg0 vector) (arg1 vector) (arg2 float))
(rigid-body-method-21 (-> obj state) arg0 arg1 arg2)
(none)
)
(defmethod rigid-body-control-method-21 rigid-body-control ((obj rigid-body-control) (arg0 vector) (arg1 vector))
(rigid-body-method-22 (-> obj state) arg0 arg1)
)
(defmethod rigid-body-control-method-22 rigid-body-control ((obj rigid-body-control) (arg0 vector))
(rigid-body-method-23 (-> obj state) arg0)
)
(defmethod rigid-body-control-method-23 rigid-body-control ((obj rigid-body-control))
(rigid-body-method-24 (-> obj state))
(none)
)
(defmethod rigid-body-control-method-24 rigid-body-control ((obj rigid-body-control) (arg0 rigid-body-info) (arg1 vector) (arg2 quaternion) (arg3 basic))
(rigid-body-method-25 (-> obj state) arg0 arg1 arg2 arg3)
(none)
)
(defmethod rigid-body-control-method-25 rigid-body-control ((obj rigid-body-control) (arg0 vector) (arg1 quaternion))
(rigid-body-method-26 (-> obj state) arg0 arg1)
(none)
)
(deftype rigid-body-object (process-focusable)
((info rigid-body-object-constants :offset-assert 204)
(flags rigid-body-object-flag :offset-assert 208)
(max-time-step float :offset-assert 216)
(incoming-attack-id uint32 :offset-assert 220)
(player-touch-time time-frame :offset-assert 224)
(disturbed-time time-frame :offset-assert 232)
(player-force-position vector :inline :offset-assert 240)
(player-force vector :inline :offset-assert 256)
)
:heap-base #x90
:method-count-assert 53
:size-assert #x110
:flag-assert #x3500900110
(:methods
(rigid-body-object-method-27 () none 27)
(rigid-body-object-method-28 () none 28)
(rigid-body-object-method-29 () none 29)
(rigid-body-object-method-30 () none 30)
(rigid-body-object-method-31 () none 31)
(rigid-body-object-method-32 () none 32)
(rigid-body-object-method-33 () none 33)
(rigid-body-object-method-34 () none 34)
(rigid-body-object-method-35 () none 35)
(rigid-body-object-method-36 () none 36)
(rigid-body-object-method-37 () none 37)
(rigid-body-object-method-38 () none 38)
(rigid-body-object-method-39 () none 39)
(rigid-body-object-method-40 () none 40)
(rigid-body-object-method-41 () none 41)
(rigid-body-object-method-42 () none 42)
(rigid-body-object-method-43 () none 43)
(rigid-body-object-method-44 () none 44)
(rigid-body-object-method-45 () none 45)
(rigid-body-object-method-46 () none 46)
(rigid-body-object-method-47 () none 47)
(rigid-body-object-method-48 () none 48)
(rigid-body-object-method-49 () none 49)
(rigid-body-object-method-50 () none 50)
(rigid-body-object-method-51 () none 51)
(rigid-body-object-method-52 () none 52)
)
)
(deftype rigid-body-queue (structure)
((count int8 :offset-assert 0)
(array uint64 128 :offset 8)
)
:method-count-assert 17
:size-assert #x408
:flag-assert #x1100000408
(:methods
(rigid-body-queue-method-9 () none 9)
(rigid-body-queue-method-10 () none 10)
(rigid-body-queue-method-11 () none 11)
(rigid-body-queue-method-12 () none 12)
(rigid-body-queue-method-13 () none 13)
(rigid-body-queue-method-14 () none 14)
(rigid-body-queue-method-15 () none 15)
(rigid-body-queue-method-16 () none 16)
)
)
+63 -62
View File
@@ -12,12 +12,12 @@
;; DECOMP BEGINS
(deftype scene-actor (basic)
((name basic :offset-assert 4)
((name string :offset-assert 4)
(level basic :offset-assert 8)
(art-group basic :offset-assert 12)
(prefix basic :offset-assert 16)
(draw-frames basic :offset-assert 20)
(scissor-frames basic :offset-assert 24)
(art-group string :offset-assert 12)
(prefix string :offset-assert 16)
(draw-frames pair :offset-assert 20)
(scissor-frames pair :offset-assert 24)
(camera int16 :offset-assert 28)
(light-index uint8 :offset-assert 30)
(shadow-mask uint8 :offset-assert 31)
@@ -28,89 +28,90 @@
(shadow-volume-joint basic :offset-assert 48)
(draw-seg uint64 :offset-assert 56)
(no-draw-seg uint64 :offset-assert 64)
(process uint64 :offset-assert 72)
(process handle :offset-assert 72)
)
:method-count-assert 10
:size-assert #x50
:flag-assert #xa00000050
(:methods
(scene-actor-method-9 () none 9)
(scene-actor-method-9 (_type_ scene-player) (pointer process) 9)
)
)
(deftype scene (art-group)
((mask-to-clear uint32 :offset-assert 32)
(entity basic :offset-assert 36)
(art-group basic :offset-assert 40)
(anim basic :offset-assert 44)
(parts int32 :offset-assert 48)
(command-list basic :offset-assert 52)
(cut-list basic :offset-assert 56)
(wait-max-time time-frame :offset-assert 64)
(wait-air-time time-frame :offset-assert 72)
(wait-ground-time time-frame :offset-assert 80)
(draw-target basic :offset-assert 88)
(abort basic :offset-assert 92)
(actor basic :offset-assert 96)
(load-point basic :offset-assert 100)
(end-point basic :offset-assert 104)
(borrow basic :offset-assert 108)
(sfx-volume float :offset-assert 112)
(ambient-volume float :offset-assert 116)
(music-volume float :offset-assert 120)
(blackout-end basic :offset-assert 124)
(peaceful basic :offset-assert 128)
(music-delay float :offset-assert 132)
(save basic :offset-assert 136)
(scene-task uint16 :offset-assert 140)
((mask-to-clear uint32 :offset-assert 32)
(entity string :offset-assert 36)
(art-group string :offset-assert 40)
(anim string :offset-assert 44)
(parts int32 :offset-assert 48)
(command-list basic :offset-assert 52)
(cut-list pair :offset-assert 56)
(wait-max-time time-frame :offset-assert 64)
(wait-air-time time-frame :offset-assert 72)
(wait-ground-time time-frame :offset-assert 80)
(draw-target level-load-info :offset-assert 88)
(abort basic :offset-assert 92)
(actor (array scene-actor) :offset-assert 96)
(load-point string :offset-assert 100)
(end-point string :offset-assert 104)
(borrow basic :offset-assert 108)
(sfx-volume float :offset-assert 112)
(ambient-volume float :offset-assert 116)
(music-volume float :offset-assert 120)
(blackout-end basic :offset-assert 124)
(peaceful basic :offset-assert 128)
(music-delay float :offset-assert 132)
(save basic :offset-assert 136)
(scene-task uint16 :offset-assert 140)
)
:method-count-assert 17
:size-assert #x8e
:flag-assert #x110000008e
(:methods
(scene-method-15 () none 15)
(scene-method-16 () none 16)
(scene-method-15 (_type_ spool-anim) none 15)
(scene-method-16 (_type_) _type_ 16)
)
)
(deftype scene-player (process-drawable)
((scene-list basic :offset-assert 200)
(scene basic :offset-assert 204)
(scene-index int32 :offset-assert 208)
(anim basic :offset-assert 212)
(next-anim basic :offset-assert 216)
(camera uint64 :offset-assert 224)
(main-entity basic :offset-assert 232)
(wait basic :offset-assert 236)
(old-target-pos transformq :inline :offset-assert 240)
(pre-cut-frame basic :offset-assert 288)
(preload-continue basic :offset-assert 292)
(dma-max uint32 :offset-assert 296)
(gui-id uint32 :offset-assert 300)
(aborted? basic :offset-assert 304)
(scene-start-time time-frame :offset-assert 312)
(targ-speed float :offset-assert 320)
(cur-speed float :offset-assert 324)
(speed-change-time time-frame :offset-assert 328)
(speed-press-time time-frame :offset-assert 336)
(speed-change-speed float :offset-assert 344)
(subtitle-change-time time-frame :offset-assert 352)
(user-sound uint32 4 :offset-assert 360)
((scene-list (pointer symbol) :offset-assert 200)
(scene scene :offset-assert 204)
(scene-index int32 :offset-assert 208)
(anim spool-anim :offset-assert 212)
(next-anim spool-anim :offset-assert 216)
(camera handle :offset-assert 224)
(main-entity entity-actor :offset-assert 232)
(wait basic :offset-assert 236)
(old-target-pos transformq :inline :offset-assert 240)
(pre-cut-frame basic :offset-assert 288)
(preload-continue string :offset-assert 292)
(dma-max uint32 :offset-assert 296)
(gui-id uint32 :offset-assert 300)
(aborted? symbol :offset-assert 304)
(scene-start-time time-frame :offset-assert 312)
(targ-speed float :offset-assert 320)
(cur-speed float :offset-assert 324)
(speed-change-time time-frame :offset-assert 328)
(speed-press-time time-frame :offset-assert 336)
(speed-change-speed float :offset-assert 344)
(subtitle-change-time time-frame :offset-assert 352)
(user-sound uint32 4 :offset-assert 360)
)
:heap-base #x100
:method-count-assert 26
:size-assert #x178
:flag-assert #x1a01000178
(:methods
(scene-player-method-20 () none 20)
(scene-player-method-21 () none 21)
(scene-player-method-22 () none 22)
(scene-player-method-23 () none 23)
(scene-player-method-24 () none 24)
(scene-player-method-25 () none 25)
(wait (symbol) _type_ :state 20)
(release () _type_ :state 21)
(play-anim () _type_ :state 22)
(scene-player-method-23 (_type_ string symbol) none 23)
(scene-player-method-24 (_type_ basic symbol) scene 24)
(scene-player-method-25 (_type_ float) none 25)
)
)
(define *scene-player* (the-as scene-player #f))
(define *scene-player* (the-as scene-player #f))
+9 -12
View File
@@ -5,10 +5,13 @@
;; name in dgo: script
;; dgos: ENGINE, GAME
;; DECOMP BEGINS
(declare-type script-form structure)
(define-extern *script-form* (inline-array script-form))
(with-pp
;; DECOMP BEGINS
(defun command-get-int ((arg0 object) (arg1 int))
(cond
((null? arg0)
@@ -570,8 +573,6 @@
(not sv-16)
)
(define-extern *script-form* (inline-array script-form))
;; WARN: Using new Jak 2 rtype-of
(defmethod eval! script-context ((obj script-context) (arg0 pair))
(let ((s4-0 (the-as object #f)))
@@ -1959,15 +1960,11 @@
(set! (-> v1-109 spec)
'((return macro (drawable-region-prim)) (function macro (symbol)) (id eval (binteger)))
)
(set! (-> v1-109 func) (lambda ((arg0 script-context))
"lookup a region by number and return the region-prim."
(let ((gp-0 region-prim-lookup-by-id)
(a0-2 (command-get-int (-> arg0 param 1) 0))
)
0
(gp-0 a0-2)
)
)
(set! (-> v1-109 func)
(lambda ((arg0 script-context))
"lookup a region by number and return the region-prim."
(region-prim-lookup-by-id (command-get-int (-> arg0 param 1) 0) #f (the-as symbol 0))
)
)
)
+2 -2
View File
@@ -287,7 +287,7 @@
(allocated-length int32 :offset-assert 84)
;; ??
(pad0 uint32 2)
(pad-unknown-0 uint32 2) ;; had to rename this unfortunately, there is a type that uses this same name "vehicle"
;; process heap
(heap-base pointer :offset-assert 96)
@@ -728,4 +728,4 @@
(defmacro scratchpad-ptr (type &key (offset 0))
"Create a pointer to an object on the scratchpad."
`(the-as (pointer ,type) (&+ *fake-scratchpad-data* ,offset))
)
)
@@ -7,3 +7,39 @@
;; DECOMP BEGINS
(deftype city-race-ring-info (structure)
((pos vector :inline :offset-assert 0)
(angle float :offset 12)
(boost float :offset-assert 16)
(dist float :offset-assert 20)
)
:method-count-assert 10
:size-assert #x18
:flag-assert #xa00000018
(:methods
(city-race-ring-info-method-9 () none 9)
)
)
(deftype city-ambush-spot (structure)
((pos vector :inline :offset-assert 0)
(obj-type uint8 :offset-assert 16)
)
:method-count-assert 9
:size-assert #x11
:flag-assert #x900000011
)
(deftype city-ambush-info (structure)
((count int16 :offset-assert 0)
(array uint32 :offset-assert 4)
)
:method-count-assert 10
:size-assert #x8
:flag-assert #xa00000008
(:methods
(city-ambush-info-method-9 () none 9)
)
)
+78 -83
View File
@@ -23,7 +23,7 @@
;; DECOMP BEGINS
(deftype nav-branch (structure)
((node nav-node 2 :offset-assert 0)
((node int32 2 :offset-assert 0)
(src-node nav-node :offset 0)
(dest-node nav-node :offset 4)
(temp-dest-node-id int32 :offset 4)
@@ -40,51 +40,51 @@
:size-assert #x10
:flag-assert #x1500000010
(:methods
(nav-branch-method-9 () none 9)
(nav-branch-method-10 () none 10)
(nav-branch-method-9 (_type_) none 9)
(nav-branch-method-10 (_type_ object int) none 10)
(nav-branch-method-11 (_type_) float 11)
(nav-branch-method-12 (_type_) float 12)
(nav-branch-method-13 (_type_) float 13)
(user-limit-reached? (_type_) symbol 14)
(nav-branch-method-15 (_type_) symbol 15)
(nav-branch-method-16 () none 16)
(nav-branch-method-17 () none 17)
(nav-branch-method-18 () none 18)
(nav-branch-method-19 () none 19)
(nav-branch-method-20 () none 20)
(nav-branch-method-16 (_type_ float) none 16)
(nav-branch-method-17 (_type_ float) none 17)
(nav-branch-method-18 (_type_ float) none 18)
(nav-branch-method-19 (_type_ nav-node) none 19)
(nav-branch-method-20 (_type_ nav-node) none 20)
)
)
(deftype nav-node (structure)
((data uint32 8 :offset-assert 0)
(position vector :inline :offset 0)
(pos-x float :offset 0)
(pos-y float :offset 4)
(pos-z float :offset 8)
(angle uint16 :offset 12)
(id uint16 :offset 14)
(radius uint8 :offset 16)
(branch-count int8 :offset 17)
(flags nav-node-flag-byte :offset 18)
(pad0 int8 1 :offset 19)
(branch-array uint32 :offset 20)
(nav-mesh-id uint32 :offset 24)
(level level :offset 28)
((data uint32 8 :offset-assert 0)
(position vector :inline :offset 0)
(pos-x float :offset 0)
(pos-y float :offset 4)
(pos-z float :offset 8)
(angle uint16 :offset 12)
(id uint16 :offset 14)
(radius uint8 :offset 16)
(branch-count int8 :offset 17)
(flags nav-node-flag-byte :offset 18)
(pad0 int8 1 :offset 19)
(branch-array (inline-array nav-branch) :offset 20)
(nav-mesh-id uint32 :offset 24)
(level symbol :offset 28)
)
:method-count-assert 22
:size-assert #x20
:flag-assert #x1600000020
(:methods
(nav-node-method-9 () none 9)
(nav-node-method-10 () none 10)
(nav-node-method-11 () none 11)
(nav-node-method-12 () none 12)
(nav-node-method-13 () none 13)
(nav-node-method-14 () none 14)
(nav-node-method-15 () none 15)
(nav-node-method-16 () none 16)
(nav-node-method-17 () none 17)
(nav-node-method-9 (_type_) none 9)
(nav-node-method-10 (_type_ symbol string) none 10)
(nav-node-method-11 (_type_ int) none 11)
(nav-node-method-12 (_type_ vector nav-node) none 12)
(nav-node-method-13 (_type_ vector) none 13)
(nav-node-method-14 (_type_ nav-node) none 14)
(nav-node-method-15 (_type_ uint) none 15)
(nav-node-method-16 (_type_ float) none 16)
(nav-node-method-17 (_type_ float) none 17)
(get-position (_type_ vector) vector 18)
(calc-sine-and-cosine! (_type_ vector) vector 19)
(get-angle (_type_) float 20)
@@ -169,59 +169,60 @@
(deftype nav-graph (basic)
((node-count int16 :offset-assert 4)
(branch-count int16 :offset-assert 6)
(node-array (inline-array nav-node) :offset-assert 8)
(branch-array uint32 :offset-assert 12)
(link-count int16 :offset-assert 16)
(pad2 uint16 :offset-assert 18)
(link-array uint32 :offset-assert 20)
(first-node int16 :offset-assert 24)
(pad0 uint16 :offset-assert 26)
(patched basic :offset-assert 28)
(id uint32 :offset-assert 32)
(pad1 uint32 6 :offset-assert 36)
((node-count int16 :offset-assert 4)
(branch-count int16 :offset-assert 6)
(node-array (inline-array nav-node) :offset-assert 8)
(branch-array (inline-array nav-branch) :offset-assert 12)
(link-count int16 :offset-assert 16)
(pad2 uint16 :offset-assert 18)
(link-array (inline-array nav-graph-link) :offset-assert 20)
(first-node int16 :offset-assert 24)
(pad0 uint16 :offset-assert 26)
(patched symbol :offset-assert 28)
(id uint32 :offset-assert 32)
(pad1 uint32 6 :offset-assert 36)
)
:method-count-assert 45
:size-assert #x3c
:flag-assert #x2d0000003c
(:methods
(nav-graph-method-9 () none 9)
(nav-graph-method-10 () none 10)
(nav-graph-method-11 () none 11)
(nav-graph-method-12 () none 12)
(nav-graph-method-13 () none 13)
(nav-graph-method-14 () none 14)
(nav-graph-method-15 () none 15)
(nav-graph-method-16 () none 16)
(nav-graph-method-17 () none 17)
(nav-graph-method-18 () none 18)
(nav-graph-method-19 () none 19)
(nav-graph-method-20 () none 20)
(nav-graph-method-21 () none 21)
(nav-graph-method-22 () none 22)
(nav-graph-method-23 () none 23)
(nav-graph-method-24 () none 24)
(nav-graph-method-25 () none 25)
(nav-graph-method-26 () none 26)
(nav-graph-method-27 () none 27)
(nav-graph-method-28 () none 28)
(nav-graph-method-29 () none 29)
(nav-graph-method-30 () none 30)
(nav-graph-method-31 () none 31)
(nav-graph-method-32 () none 32)
(nav-graph-method-33 () none 33)
(nav-graph-method-34 () none 34)
(nav-graph-method-35 () none 35)
(nav-graph-method-36 () none 36)
(nav-graph-method-37 () none 37)
(new (symbol type int int int uint) _type_ 0)
(nav-graph-method-9 (_type_) none 9)
(nav-graph-method-10 (_type_ vector int) none 10)
(nav-graph-method-11 (_type_) none 11)
(nav-graph-method-12 (_type_) none 12)
(nav-graph-method-13 (_type_ int int) none 13)
(nav-graph-method-14 (_type_ int int) none 14)
(nav-graph-method-15 (_type_) none 15)
(nav-graph-method-16 (_type_ int) nav-node 16)
(nav-graph-method-17 (_type_ nav-node) none 17)
(nav-graph-method-18 (_type_ nav-node int) none 18)
(nav-graph-method-19 (_type_ int int int int int int) none 19)
(nav-graph-method-20 (_type_ int int) none 20)
(nav-graph-method-21 (_type_) none 21)
(nav-graph-method-22 (_type_ int int) none 22)
(nav-graph-method-23 (_type_ int int) none 23)
(nav-graph-method-24 (_type_ int int) none 24)
(nav-graph-method-25 (_type_ symbol symbol) none 25)
(nav-graph-method-26 (_type_ symbol symbol) none 26)
(nav-graph-method-27 (_type_) none 27)
(nav-graph-method-28 (_type_) none 28)
(nav-graph-method-29 (_type_ symbol) none 29)
(nav-graph-method-30 (_type_ uint) none 30)
(nav-graph-method-31 (_type_ float) none 31)
(nav-graph-method-32 (_type_ float) none 32)
(nav-graph-method-33 (_type_ float) none 33)
(nav-graph-method-34 (_type_ float) none 34)
(nav-graph-method-35 (_type_ int) none 35)
(nav-graph-method-36 (_type_ int) none 36)
(nav-graph-method-37 (_type_ vector) none 37)
(nav-graph-method-38 () none 38)
(nav-graph-method-39 () none 39)
(nav-graph-method-40 () none 40)
(nav-graph-method-39 (_type_) none 39)
(nav-graph-method-40 (_type_ int) int 40)
(node-at-idx (_type_ int) nav-node 41)
(nav-graph-method-42 () none 42)
(nav-graph-method-43 () none 43)
(nav-graph-method-44 () none 44)
(nav-graph-method-42 (_type_) none 42)
(nav-graph-method-43 (_type_ nav-graph-link string) none 43)
(from-editor () none 44)
)
)
@@ -237,9 +238,3 @@
v0-0
)
)
0
@@ -5,5 +5,434 @@
;; name in dgo: vehicle-h
;; dgos: CWI
;; +++vehicle-controller-flag
(defenum vehicle-controller-flag
:type uint32
:bitfield #t
(debug)
(draw-marks)
(left-turn)
(on-straightaway)
(do-turn)
(blocking-dest-node)
(attached)
(off-path)
(ignore-others)
(direct-mode)
(recovery-mode)
(no-slowing-for-turns))
;; ---vehicle-controller-flag
;; DECOMP BEGINS
(deftype vehicle-lookup-info (structure)
((turn-radius meters :offset-assert 0)
(throttle-turning float :offset-assert 4)
(throttle-straight float :offset-assert 8)
)
:method-count-assert 9
:size-assert #xc
:flag-assert #x90000000c
)
(deftype vehicle-control-point (structure)
((local-pos vector :inline :offset-assert 0)
(normal vector :inline :offset-assert 16)
)
:method-count-assert 9
:size-assert #x20
:flag-assert #x900000020
)
(deftype vehicle-section-info (structure)
((damage-seg-array uint64 3 :offset-assert 0)
(damage-seg-count int8 :offset-assert 24)
)
:method-count-assert 9
:size-assert #x19
:flag-assert #x900000019
)
(deftype vehicle-seat-info (structure)
((data uint8 16 :offset-assert 0)
(position vector :inline :offset 0)
(pos-x float :offset 0)
(pos-y float :offset 4)
(pos-z float :offset 8)
(angle int16 :offset 12)
(flags uint8 :offset 14)
)
:method-count-assert 9
:size-assert #x10
:flag-assert #x900000010
)
(deftype vehicle-explosion-info (joint-exploder-static-params)
((skel basic :offset-assert 16)
(skel-name basic :offset-assert 20)
(anim int32 :offset-assert 24)
)
:method-count-assert 9
:size-assert #x1c
:flag-assert #x90000001c
)
(deftype vehicle-grab-rail-info (structure)
((local-pos vector 2 :inline :offset-assert 0)
(normal vector :inline :offset-assert 32)
)
:method-count-assert 9
:size-assert #x30
:flag-assert #x900000030
)
(deftype rigid-body-vehicle-constants (rigid-body-object-constants)
((flags uint32 :offset-assert 208)
(object-type uint8 :offset-assert 212)
(guard-type uint8 :offset-assert 213)
(max-engine-thrust meters :offset-assert 216)
(inv-max-engine-thrust float :offset-assert 220)
(engine-response-rate float :offset-assert 224)
(engine-intake-factor float :offset-assert 228)
(brake-factor float :offset-assert 232)
(turbo-boost-factor float :offset-assert 236)
(max-xz-speed meters :offset-assert 240)
(ground-probe-distance meters :offset-assert 244)
(ground-probe-offset meters :offset-assert 248)
(cos-ground-effect-angle float :offset-assert 252)
(spring-lift-factor float :offset-assert 256)
(air-steering-factor float :offset-assert 260)
(air-drag-factor float :offset-assert 264)
(steering-fin-angle float :offset-assert 268)
(steering-thruster-factor float :offset-assert 272)
(steering-thruster-max-gain float :offset-assert 276)
(steering-thruster-half-gain-speed meters :offset-assert 280)
(tire-steering-angle float :offset-assert 284)
(tire-friction-factor float :offset-assert 288)
(tire-static-friction float :offset-assert 292)
(tire-static-friction-speed meters :offset-assert 296)
(tire-dynamic-friction float :offset-assert 300)
(tire-dynamic-friction-speed meters :offset-assert 304)
(tire-inv-max-friction-speed float :offset-assert 308)
(airfoil-factor float :offset-assert 312)
(drag-force-factor float :offset-assert 316)
(speed-scrubbing-drag float :offset-assert 320)
(speed-limiting-drag float :offset-assert 324)
(pitch-control-factor float :offset-assert 328)
(roll-control-factor float :offset-assert 332)
(roll-angle float :offset-assert 336)
(jump-thrust-factor float :offset-assert 340)
(buoyancy-factor float :offset-assert 344)
(player-weight float :offset-assert 348)
(player-shift-x meters :offset-assert 352)
(player-shift-z meters :offset-assert 356)
(target-speed-offset meters :offset-assert 360)
(turning-accel meters :offset-assert 364)
(toughness-factor float :offset-assert 368)
(damage-factor float :offset-assert 372)
(camera-string-min-height meters :offset-assert 376)
(camera-string-max-height meters :offset-assert 380)
(camera-string-min-length meters :offset-assert 384)
(camera-string-max-length meters :offset-assert 388)
(camera-min-fov float :offset-assert 392)
(camera-max-fov float :offset-assert 396)
(camera-head-offset float :offset-assert 400)
(camera-foot-offset float :offset-assert 404)
(camera-normal-max-angle-offset float :offset-assert 408)
(camera-air-max-angle-offset float :offset-assert 412)
(camera-max-lookaround-speed float :offset-assert 416)
(seat-count int8 :offset-assert 420)
(section-count int8 :offset-assert 421)
(rider-stance uint8 :offset-assert 422)
(grab-rail-count int8 :offset-assert 423)
(grab-rail-array uint32 :offset-assert 424)
(seat-array vehicle-seat-info 4 :inline :offset-assert 432)
(rider-hand-offset vector 2 :inline :offset-assert 496)
(section-array vehicle-section-info 4 :inline :offset-assert 528)
(section-bike-front vehicle-section-info :inline :offset 528)
(section-bike-rear vehicle-section-info :inline :offset 560)
(section-car-front-left vehicle-section-info :inline :offset 528)
(section-car-rear-left vehicle-section-info :inline :offset 560)
(section-car-front-right vehicle-section-info :inline :offset 592)
(section-car-rear-right vehicle-section-info :inline :offset 624)
(explosion basic :offset-assert 656)
(engine-pitch-scale float :offset-assert 660)
(engine-pitch-offset float :offset-assert 664)
(engine-pitch-mod-amp float :offset-assert 668)
(engine-sound-select int8 :offset-assert 672)
(engine-sound uint128 :offset-assert 688)
(thrust-sound uint128 :offset-assert 704)
(scrape-sound uint128 :offset-assert 720)
(glance-sound uint128 :offset-assert 736)
(impact-sound uint128 :offset-assert 752)
(extra-sound uint128 :offset-assert 768)
(explosion-part int32 :offset-assert 784)
(headlight-count int8 :offset-assert 788)
(taillight-count int8 :offset-assert 789)
(thruster-flame-width meters :offset-assert 792)
(thruster-flame-length meters :offset-assert 796)
(thruster-local-pos vector 2 :inline :offset-assert 800)
(exhaust-local-pos vector 2 :inline :offset-assert 832)
(exhaust-local-dir vector 2 :inline :offset-assert 864)
(smoke-local-pos vector 2 :inline :offset-assert 896)
(smoke-local-vel vector 2 :inline :offset-assert 928)
(headlight-local-pos vector 3 :inline :offset-assert 960)
(taillight-local-pos vector 2 :inline :offset-assert 1008)
(lift-thruster-count int8 :offset-assert 1040)
(roll-thruster-count int8 :offset-assert 1041)
(steering-thruster-count int8 :offset-assert 1042)
(stabilizer-count int8 :offset-assert 1043)
(inv-lift-thruster-count float :offset-assert 1044)
(pad int8 8 :offset-assert 1048)
(lift-thruster-array vector4w-2 2 :inline :offset-assert 1056)
(roll-thruster-array vector4w-2 2 :inline :offset-assert 1120)
(steering-thruster-array vector4w-2 2 :inline :offset-assert 1184)
(stabilizer-array vector4w-2 6 :inline :offset-assert 1248)
(engine-thrust-local-pos vector :inline :offset-assert 1440)
(brake-local-pos vector :inline :offset-assert 1456)
(particle-system-2d basic :offset-assert 1472)
(particle-system-3d basic :offset-assert 1476)
(part-thruster basic :offset-assert 1480)
(part-thruster-scale-x sp-field-init-spec :offset-assert 1484)
(part-thruster-scale-y sp-field-init-spec :offset-assert 1488)
(part-quat quaternion :offset-assert 1492)
(part-vel vector :offset-assert 1496)
(color-option-count int8 :offset-assert 1500)
(color-option-select int8 :offset-assert 1501)
(color-option-array uint32 :offset-assert 1504)
(sample-dir vector :inline :offset-assert 1520)
(sample-time time-frame :offset-assert 1536)
(sample-index int32 :offset-assert 1544)
)
:method-count-assert 11
:size-assert #x60c
:flag-assert #xb0000060c
(:methods
(rigid-body-vehicle-constants-method-9 () none 9)
(rigid-body-vehicle-constants-method-10 () none 10)
)
)
(deftype vehicle-controller (structure)
((flags vehicle-controller-flag :offset-assert 0)
(traffic symbol :offset-assert 4)
(branch nav-branch :offset-assert 8)
(target-speed-offset meters :offset-assert 12)
(target-speed meters :offset-assert 16)
(choose-branch-callback symbol :offset-assert 20)
(turn-accel meters :offset-assert 24)
(max-turn-speed meters :offset-assert 28)
(path-prev-point vector :inline :offset-assert 32)
(turn-enter-point vector :inline :offset-assert 48)
(turn-exit-point vector :inline :offset-assert 64)
(path-dest-point vector :inline :offset 64)
(turn-enter-dir vector :inline :offset-assert 80)
(turn-exit-dir vector :inline :offset-assert 96)
(dest-circle vector :inline :offset-assert 112)
(target-point vector :inline :offset-assert 128)
)
:method-count-assert 22
:size-assert #x90
:flag-assert #x1600000090
(:methods
(vehicle-controller-method-9 () none 9)
(vehicle-controller-method-10 () none 10)
(vehicle-controller-method-11 () none 11)
(vehicle-controller-method-12 () none 12)
(vehicle-controller-method-13 () none 13)
(vehicle-controller-method-14 () none 14)
(vehicle-controller-method-15 () none 15)
(vehicle-controller-method-16 () none 16)
(vehicle-controller-method-17 () none 17)
(vehicle-controller-method-18 () none 18)
(vehicle-controller-method-19 () none 19)
(vehicle-controller-method-20 () none 20)
(vehicle-controller-method-21 () none 21)
)
)
(deftype vehicle-section (structure)
((damage float :offset-assert 0)
)
:method-count-assert 9
:size-assert #x4
:flag-assert #x900000004
)
(deftype vehicle (rigid-body-object)
((pad uint32 4 :offset-assert 272)
(controls vehicle-controls :inline :offset-assert 288)
(prev-controls vehicle-controls :inline :offset-assert 304)
(up-dir vector :inline :offset-assert 320)
(jump-time float :offset-assert 336)
(jump-thrust float :offset-assert 340)
(engine-thrust float :offset-assert 344)
(engine-power-factor float :offset-assert 348)
(force-scale float :offset-assert 352)
(target-distance2 meters :offset-assert 356)
(pad0 uint32 :offset-assert 360)
(target-acceleration vector :inline :offset-assert 368)
(impact-pos vector :inline :offset-assert 384)
(lin-acceleration vector :inline :offset-assert 400)
(hit-points float :offset-assert 416)
(damage-factor float :offset-assert 420)
(crash-level int8 :offset-assert 424)
(force-level int8 :offset-assert 425)
(traffic-hash-id int8 :offset-assert 426)
(traffic-priority-id int8 :offset-assert 427)
(power-fluctuation-factor float :offset-assert 428)
(power-level float :offset-assert 432)
(flight-level-index int8 :offset-assert 436)
(flight-level-index-prev int8 :offset-assert 437)
(overlap-player-counter uint8 :offset-assert 438)
(physics-counter uint8 :offset-assert 439)
(flight-level float :offset-assert 440)
(brake-factor float :offset-assert 444)
(cam-speed-interp float :offset-assert 448)
(camera-dist2 float :offset-assert 452)
(player-dist2 float :offset-assert 456)
(bound-radius float :offset-assert 460)
(rider-array int64 4 :offset-assert 464)
(lift-thrust float 2 :offset-assert 496)
(roll-thrust float 2 :offset-assert 504)
(sent-attack-time time-frame :offset-assert 512)
(air-time time-frame :offset-assert 520)
(turn-time time-frame :offset-assert 528)
(crash-time time-frame :offset-assert 536)
(transition-time time-frame :offset-assert 544)
(transition-end-time time-frame :offset-assert 552)
(turbo-boost-time time-frame :offset-assert 560)
(crash-duration uint16 :offset-assert 568)
(turbo-boost-duration uint16 :offset-assert 570)
(turbo-boost-factor float :offset-assert 572)
(crash-impulse float :offset-assert 576)
(water-height float :offset-assert 580)
(lights-factor float :offset-assert 584)
(outgoing-attack-id uint32 :offset-assert 588)
(scrape-sound-id sound-id :offset-assert 592)
(engine-sound-id sound-id :offset-assert 596)
(thrust-sound-id sound-id :offset-assert 600)
(roll-sound-id sound-id :offset-assert 604)
(damage-pop-sound-id sound-id :offset-assert 608)
(damage-zap-sound-id sound-id :offset-assert 612)
(extra-sound-id sound-id :offset-assert 616)
(fog-fade float :offset-assert 620)
(scrape-sound-envelope float :offset-assert 624)
(engine-sound-envelope float :offset-assert 628)
(engine-sound-factor float :offset-assert 632)
(sputter-sound-envelope float :offset-assert 636)
(rudder-sound-envelope float :offset-assert 640)
(fins-sound-envelope float :offset-assert 644)
(exhaust-part-accum basic 2 :offset-assert 648)
(smoke-part-accum basic 2 :offset-assert 656)
(controller vehicle-controller :inline :offset-assert 672)
(section-array vehicle-section 4 :inline :offset-assert 816)
)
:heap-base #x2f0
:method-count-assert 144
:size-assert #x370
:flag-assert #x9002f00370
(:methods
(vehicle-method-53 () none 53)
(vehicle-method-54 () none 54)
(vehicle-method-55 () none 55)
(vehicle-method-56 () none 56)
(vehicle-method-57 () none 57)
(vehicle-method-58 () none 58)
(vehicle-method-59 () none 59)
(vehicle-method-60 () none 60)
(vehicle-method-61 () none 61)
(vehicle-method-62 () none 62)
(vehicle-method-63 () none 63)
(vehicle-method-64 () none 64)
(vehicle-method-65 () none 65)
(vehicle-method-66 () none 66)
(vehicle-method-67 () none 67)
(vehicle-method-68 () none 68)
(vehicle-method-69 () none 69)
(vehicle-method-70 () none 70)
(vehicle-method-71 () none 71)
(vehicle-method-72 () none 72)
(vehicle-method-73 () none 73)
(vehicle-method-74 () none 74)
(vehicle-method-75 () none 75)
(vehicle-method-76 () none 76)
(vehicle-method-77 () none 77)
(vehicle-method-78 () none 78)
(vehicle-method-79 () none 79)
(vehicle-method-80 () none 80)
(vehicle-method-81 () none 81)
(vehicle-method-82 () none 82)
(vehicle-method-83 () none 83)
(vehicle-method-84 () none 84)
(vehicle-method-85 () none 85)
(vehicle-method-86 () none 86)
(vehicle-method-87 () none 87)
(vehicle-method-88 () none 88)
(vehicle-method-89 () none 89)
(vehicle-method-90 () none 90)
(vehicle-method-91 () none 91)
(vehicle-method-92 () none 92)
(vehicle-method-93 () none 93)
(vehicle-method-94 () none 94)
(vehicle-method-95 () none 95)
(vehicle-method-96 () none 96)
(vehicle-method-97 () none 97)
(vehicle-method-98 () none 98)
(vehicle-method-99 () none 99)
(vehicle-method-100 () none 100)
(vehicle-method-101 () none 101)
(vehicle-method-102 () none 102)
(vehicle-method-103 () none 103)
(vehicle-method-104 () none 104)
(vehicle-method-105 () none 105)
(vehicle-method-106 () none 106)
(vehicle-method-107 () none 107)
(vehicle-method-108 () none 108)
(vehicle-method-109 () none 109)
(vehicle-method-110 () none 110)
(vehicle-method-111 () none 111)
(vehicle-method-112 () none 112)
(vehicle-method-113 () none 113)
(vehicle-method-114 () none 114)
(vehicle-method-115 () none 115)
(vehicle-method-116 () none 116)
(vehicle-method-117 () none 117)
(vehicle-method-118 () none 118)
(vehicle-method-119 () none 119)
(vehicle-method-120 () none 120)
(vehicle-method-121 () none 121)
(vehicle-method-122 () none 122)
(vehicle-method-123 () none 123)
(vehicle-method-124 () none 124)
(vehicle-method-125 () none 125)
(vehicle-method-126 () none 126)
(vehicle-method-127 () none 127)
(vehicle-method-128 () none 128)
(vehicle-method-129 () none 129)
(vehicle-method-130 () none 130)
(vehicle-method-131 () none 131)
(vehicle-method-132 () none 132)
(vehicle-method-133 () none 133)
(vehicle-method-134 () none 134)
(vehicle-method-135 () none 135)
(vehicle-method-136 () none 136)
(vehicle-method-137 () none 137)
(vehicle-method-138 () none 138)
(vehicle-method-139 () none 139)
(vehicle-method-140 () none 140)
(vehicle-method-141 () none 141)
(vehicle-method-142 () none 142)
(vehicle-method-143 () none 143)
)
)
-1
View File
@@ -185,7 +185,6 @@ if args.preserve:
lines_to_ignore = 0
i = len(final_lines) - 1
while i > 0 and (final_lines[i] == "\n" or final_lines[i] == "0\n"):
print(final_lines[i])
lines_to_ignore = lines_to_ignore + 1
i = i - 1
-1
View File
@@ -1,6 +1,5 @@
# Updates files in gsrc if they are modified in the reference test folder
# Uses git
# TODO - get new untracked files as well
import subprocess
from git import Repo
-2
View File
@@ -2625,7 +2625,6 @@
)
;; definition (debug) for function entity-speed-test
;; WARN: Return type mismatch entity vs none.
;; ERROR: Unsupported inline assembly instruction kind - [mtc0 Count, r0]
;; ERROR: Unsupported inline assembly instruction kind - [sync.p]
;; ERROR: Unsupported inline assembly instruction kind - [mfc0 s4, Count]
@@ -2646,7 +2645,6 @@
(kill! gp-0)
)
)
(none)
)
;; definition (debug) for function dump-entity-remap
+21 -23
View File
@@ -239,30 +239,32 @@
;; definition of type region-prim-area
(deftype region-prim-area (structure)
((region-prim-list region-prim-list :inline :offset-assert 0)
(pos vector :inline :offset-assert 1296)
(ray vector :inline :offset 1328)
(region-enter-count int32 :offset 1360)
(region-enter-list uint32 320 :offset-assert 1364)
(region-enter-prim-list uint32 320 :offset-assert 2644)
(region-exit-count int32 :offset-assert 3924)
(region-exit-list uint32 320 :offset-assert 3928)
(region-exit-prim-list uint32 320 :offset-assert 5208)
(region-inside-count int32 :offset-assert 6488)
(region-inside-list uint32 320 :offset-assert 6492)
(region-inside-prim-list uint32 320 :offset-assert 7772)
(region-start-count int32 :offset-assert 9052)
(region-start-list uint32 320 :offset-assert 9056)
(region-start-prim-list uint32 320 :offset-assert 10336)
((region-prim-list region-prim-list :inline :offset-assert 0)
(pos vector :inline :offset-assert 1296)
(unknown-vector-uiyb1 vector :inline :offset-assert 1312)
(ray vector :inline :offset 1328)
(unknown-vector-t3edh vector :inline :offset-assert 1344)
(region-enter-count int32 :offset 1360)
(region-enter-list region-prim-area 320 :offset-assert 1364)
(region-enter-prim-list drawable-region-sphere 320 :offset-assert 2644)
(region-exit-count int32 :offset-assert 3924)
(region-exit-list region-prim-area 320 :offset-assert 3928)
(region-exit-prim-list drawable-region-sphere 320 :offset-assert 5208)
(region-inside-count int32 :offset-assert 6488)
(region-inside-list region-prim-area 320 :offset-assert 6492)
(region-inside-prim-list drawable-region-sphere 320 :offset-assert 7772)
(region-start-count int32 :offset-assert 9052)
(region-start-list region-prim-area 320 :offset-assert 9056)
(region-start-prim-list drawable-region-sphere 320 :offset-assert 10336)
)
:method-count-assert 13
:size-assert #x2d60
:flag-assert #xd00002d60
(:methods
(region-prim-area-method-9 () none 9)
(region-prim-area-method-10 () none 10)
(region-prim-area-method-11 () none 11)
(region-prim-area-method-12 () none 12)
(track-entered-region! (_type_ drawable-region-sphere) none 9)
(track-exited-region! (_type_ drawable-region-sphere) none 10)
(track-inside-region! (_type_ drawable-region-sphere) none 11)
(track-start-region! (_type_ drawable-region-sphere) none 12)
)
)
@@ -371,7 +373,3 @@
;; failed to figure out what this is:
0
+5
View File
@@ -494,6 +494,11 @@
;; definition for method 16 of type bsp-header
;; WARN: Return type mismatch int vs none.
(defmethod collect-regions bsp-header ((obj bsp-header) (arg0 sphere) (arg1 int) (arg2 region-prim-list))
"Determines the number of [[drawable]]s in the `obj` that overlap the given `area-of-interest` this number is stored in the `region-list`'s item count
@param area-of-interest The area defined by a sphere that we care about overlaps
@param _count The amount of [[drawable]]s in the object to enumerate through
@param! region-list Stores the overlapping regions and a count for how many were found
@returns none"
(let ((s3-0 (-> obj region-trees)))
(dotimes (s2-0 (-> s3-0 length))
(collect-regions (-> s3-0 s2-0) arg0 arg1 arg2)
+4 -4
View File
@@ -12,7 +12,7 @@
:size-assert #x10
:flag-assert #xa00000010
(:methods
(region-method-9 () none 9)
(region-method-9 (_type_ vector) symbol 9)
)
)
@@ -66,8 +66,8 @@
:flag-assert #x1400000020
(:methods
(debug-draw-region (_type_ int) none 17)
(drawable-region-prim-method-18 () none 18)
(drawable-region-prim-method-19 () none 19)
(track-region (_type_ region-prim-area) symbol 18)
(within-area? (_type_ region-prim-area) symbol 19)
)
)
@@ -94,7 +94,7 @@
:size-assert #x20
:flag-assert #x1300000020
(:methods
(drawable-tree-region-prim-method-17 () none 17)
(drawable-tree-region-prim-method-17 (_type_ vector) symbol 17)
(debug-print (_type_ vector object) none 18)
)
)
+752
View File
@@ -0,0 +1,752 @@
;;-*-Lisp-*-
(in-package goal)
;; definition for method 8 of type drawable-region-prim
;; WARN: Return type mismatch int vs drawable-region-prim.
(defmethod mem-usage drawable-region-prim ((obj drawable-region-prim) (arg0 memory-usage-block) (arg1 int))
(set! (-> arg0 length) (max 50 (-> arg0 length)))
(set! (-> arg0 data 49 name) "region")
(+! (-> arg0 data 49 count) 1)
(let ((v1-6 (asize-of obj)))
(+! (-> arg0 data 49 used) v1-6)
(+! (-> arg0 data 49 total) (logand -16 (+ v1-6 15)))
)
(mem-usage (-> obj region) arg0 (logior arg1 128))
(the-as drawable-region-prim 0)
)
;; definition for method 8 of type drawable-inline-array-region-prim
;; WARN: Return type mismatch int vs drawable-inline-array-region-prim.
(defmethod mem-usage drawable-inline-array-region-prim ((obj drawable-inline-array-region-prim) (arg0 memory-usage-block) (arg1 int))
(set! (-> arg0 length) (max 1 (-> arg0 length)))
(set! (-> arg0 data 0 name) (symbol->string 'drawable-group))
(+! (-> arg0 data 0 count) 1)
(let ((v1-7 32))
(+! (-> arg0 data 0 used) v1-7)
(+! (-> arg0 data 0 total) (logand -16 (+ v1-7 15)))
)
(dotimes (s3-0 (-> obj length))
(mem-usage (-> obj data s3-0) arg0 arg1)
)
(the-as drawable-inline-array-region-prim 0)
)
;; definition for method 10 of type drawable-tree-region-prim
;; WARN: Return type mismatch int vs none.
(defmethod draw drawable-tree-region-prim ((obj drawable-tree-region-prim) (arg0 drawable-tree-region-prim) (arg1 display-frame))
0
(none)
)
;; definition for method 15 of type drawable-tree-region-prim
(defmethod unpack-vis drawable-tree-region-prim ((obj drawable-tree-region-prim) (arg0 (pointer int8)) (arg1 (pointer int8)))
arg1
)
;; definition for method 16 of type drawable-region-prim
;; WARN: Return type mismatch int vs none.
(defmethod collect-regions drawable-region-prim ((obj drawable-region-prim) (area-of-interest sphere) (_count int) (region-list region-prim-list))
"Determines the number of [[drawable]]s in the `obj` that overlap the given `area-of-interest` this number is stored in the `region-list`'s item count
@param area-of-interest The area defined by a sphere that we care about overlaps
@param _count The amount of [[drawable]]s in the object to enumerate through
@param! region-list Stores the overlapping regions and a count for how many were found
@returns none"
(dotimes (count _count)
(when (spheres-overlap? area-of-interest (the-as sphere (-> obj bsphere)))
(set! (-> region-list items (-> region-list num-items)) obj)
(+! (-> region-list num-items) 1)
)
(&+! obj 32)
)
0
(none)
)
;; definition for method 16 of type drawable-inline-array-region-prim
;; WARN: Return type mismatch int vs none.
(defmethod collect-regions drawable-inline-array-region-prim ((obj drawable-inline-array-region-prim) (arg0 sphere) (arg1 int) (arg2 region-prim-list))
"Determines the number of [[drawable]]s in the `obj` that overlap the given `area-of-interest` this number is stored in the `region-list`'s item count
@param area-of-interest The area defined by a sphere that we care about overlaps
@param _count The amount of [[drawable]]s in the object to enumerate through
@param! region-list Stores the overlapping regions and a count for how many were found
@returns none"
(collect-regions (the-as drawable-region-prim (-> obj data)) arg0 (-> obj length) arg2)
0
(none)
)
;; definition for method 16 of type drawable-tree-region-prim
;; WARN: Return type mismatch int vs none.
(defmethod collect-regions drawable-tree-region-prim ((obj drawable-tree-region-prim) (arg0 sphere) (arg1 int) (arg2 region-prim-list))
"Determines the number of [[drawable]]s in the `obj` that overlap the given `area-of-interest` this number is stored in the `region-list`'s item count
@param area-of-interest The area defined by a sphere that we care about overlaps
@param _count The amount of [[drawable]]s in the object to enumerate through
@param! region-list Stores the overlapping regions and a count for how many were found
@returns none"
(collect-regions (-> obj data2 0) arg0 (-> obj length) arg2)
0
(none)
)
;; definition for method 17 of type drawable-region-prim
;; WARN: Return type mismatch int vs none.
(defmethod debug-draw-region drawable-region-prim ((obj drawable-region-prim) (arg0 int))
(local-vars (sv-32 vector2h) (sv-36 vector))
(set! sv-32 (new 'stack 'vector2h))
(set! sv-36 (-> obj bsphere))
(add-debug-x #t (bucket-id debug-no-zbuf1) sv-36 (new 'static 'rgba :r #xff :g #xff :a #x80))
(when (nonzero? (-> obj region))
(let ((s5-0 add-debug-text-3d)
(s4-0 #t)
(s3-0 318)
)
(format (clear *temp-string*) "region-~D~%" (-> obj region id))
(s5-0 s4-0 (the-as bucket-id s3-0) *temp-string* sv-36 (font-color #dadada) sv-32)
)
(set! (-> sv-32 y) (the-as int (+ (-> sv-32 y) 8)))
(let ((s5-1 (-> obj region on-enter)))
(when s5-1
(let ((s4-1 add-debug-text-3d)
(s3-1 #t)
(s2-1 318)
)
(format (clear *temp-string*) "(on-enter ~S)" s5-1)
(s4-1 s3-1 (the-as bucket-id s2-1) *temp-string* sv-36 (font-color #dadada) sv-32)
)
(set! (-> sv-32 y) (the-as int (+ (-> sv-32 y) 8)))
)
)
(let ((s5-2 (-> obj region on-inside)))
(when s5-2
(let ((s4-2 add-debug-text-3d)
(s3-2 #t)
(s2-2 318)
)
(format (clear *temp-string*) "(on-inside ~S)" s5-2)
(s4-2 s3-2 (the-as bucket-id s2-2) *temp-string* sv-36 (font-color #dadada) sv-32)
)
(set! (-> sv-32 y) (the-as int (+ (-> sv-32 y) 8)))
)
)
(let ((gp-1 (-> obj region on-exit)))
(when gp-1
(let ((s5-3 add-debug-text-3d)
(s4-3 #t)
(s3-3 318)
)
(format (clear *temp-string*) "(on-exit ~S)" gp-1)
(s5-3 s4-3 (the-as bucket-id s3-3) *temp-string* sv-36 (font-color #dadada) sv-32)
)
(set! (-> sv-32 y) (the-as int (+ (-> sv-32 y) 8)))
)
)
)
0
(none)
)
;; definition for method 18 of type drawable-region-prim
(defmethod track-region drawable-region-prim ((obj drawable-region-prim) (arg0 region-prim-area))
"TODO"
#f
)
;; definition for method 19 of type drawable-region-prim
(defmethod within-area? drawable-region-prim ((obj drawable-region-prim) (arg0 region-prim-area))
"@returns Whether or not the object overlaps with the provided [[region-prim-area]]'s extent"
#f
)
;; definition for method 9 of type region-prim-area
;; WARN: Return type mismatch int vs none.
;; WARN: Function (method 9 region-prim-area) has a return type of none, but the expression builder found a return statement.
(defmethod track-entered-region! region-prim-area ((obj region-prim-area) (region-sphere drawable-region-sphere))
"Enumerates through the objects `region-enter-list`, if we find the provided `region`, do nothing and exit
otherwise, add the [[drawable-region-sphere]] to `region-enter-prim-list` and increment `region-enter-count`
@param region-sphere Defines the region in question
@returns nothing"
(let ((regions-entered (-> obj region-enter-count)))
(let ((region (-> region-sphere region)))
(countdown (idx regions-entered)
(if (= (-> obj region-enter-list idx) region)
(return #f)
)
)
(set! (-> obj region-enter-list regions-entered) (the-as region-prim-area region))
)
(set! (-> obj region-enter-prim-list regions-entered) region-sphere)
(set! (-> obj region-enter-count) (+ regions-entered 1))
)
0
(none)
)
;; definition for method 10 of type region-prim-area
;; WARN: Return type mismatch int vs none.
;; WARN: Function (method 10 region-prim-area) has a return type of none, but the expression builder found a return statement.
(defmethod track-exited-region! region-prim-area ((obj region-prim-area) (arg0 drawable-region-sphere))
"Enumerates through the objects `region-exit-list`, if we find the provided `region`, do nothing and exit
otherwise, add the [[drawable-region-sphere]] to `region-exit-prim-list` and increment `region-exit-count`
@param region-sphere Defines the region in question
@returns nothing"
(let ((regions-exited (-> obj region-exit-count)))
(let ((region (-> arg0 region)))
(countdown (idx regions-exited)
(if (= (-> obj region-exit-list idx) region)
(return #f)
)
)
(set! (-> obj region-exit-list regions-exited) (the-as region-prim-area region))
)
(set! (-> obj region-exit-prim-list regions-exited) arg0)
(set! (-> obj region-exit-count) (+ regions-exited 1))
)
0
(none)
)
;; definition for method 11 of type region-prim-area
;; WARN: Return type mismatch int vs none.
;; WARN: Function (method 11 region-prim-area) has a return type of none, but the expression builder found a return statement.
(defmethod track-inside-region! region-prim-area ((obj region-prim-area) (arg0 drawable-region-sphere))
"Enumerates through the objects `region-inside-list`, if we find the provided `region`, do nothing and exit
otherwise, add the [[drawable-region-sphere]] to `region-inside-prim-list` and increment `region-inside-count`
@param region-sphere Defines the region in question
@returns nothing"
(let ((regions-inside (-> obj region-inside-count)))
(let ((region (-> arg0 region)))
(countdown (idx regions-inside)
(if (= (-> obj region-inside-list idx) region)
(return #f)
)
)
(set! (-> obj region-inside-list regions-inside) (the-as region-prim-area region))
)
(set! (-> obj region-inside-prim-list regions-inside) arg0)
(set! (-> obj region-inside-count) (+ regions-inside 1))
)
0
(none)
)
;; definition for method 12 of type region-prim-area
;; WARN: Return type mismatch int vs none.
;; WARN: Function (method 12 region-prim-area) has a return type of none, but the expression builder found a return statement.
(defmethod track-start-region! region-prim-area ((obj region-prim-area) (arg0 drawable-region-sphere))
"Enumerates through the objects `region-start-list`, if we find the provided `region`, do nothing and exit
otherwise, add the [[drawable-region-sphere]] to `region-start-prim-list` and increment `region-start-count`
@param region-sphere Defines the region in question
@returns nothing"
(let ((regions-started (-> obj region-start-count)))
(let ((region (-> arg0 region)))
(countdown (idx regions-started)
(if (= (-> obj region-start-list idx) region)
(return #f)
)
)
(set! (-> obj region-start-list regions-started) (the-as region-prim-area region))
)
(set! (-> obj region-start-prim-list regions-started) arg0)
(set! (-> obj region-start-count) (+ regions-started 1))
)
0
(none)
)
;; definition for method 17 of type drawable-region-sphere
;; WARN: Return type mismatch int vs none.
(defmethod debug-draw-region drawable-region-sphere ((obj drawable-region-sphere) (arg0 int))
(let ((t9-0 (method-of-type drawable-region-prim debug-draw-region)))
(t9-0 obj arg0)
)
(let ((a2-0 (-> obj bsphere)))
(add-debug-sphere #t (bucket-id debug2) a2-0 (-> obj bsphere w) (new 'static 'rgba :r #xff :a #x80))
)
0
(none)
)
;; definition for method 18 of type drawable-region-sphere
(defmethod track-region drawable-region-sphere ((obj drawable-region-sphere) (area region-prim-area))
"TODO"
(-> obj region)
(let ((area-of-interest (-> obj bsphere)))
(if (< 0.0 (ray-sphere-intersect (-> area pos) (-> area ray) area-of-interest (-> area-of-interest w)))
(track-entered-region! area obj)
)
(if (< 0.0 (ray-sphere-intersect
(-> area unknown-vector-uiyb1)
(-> area unknown-vector-t3edh)
area-of-interest
(-> area-of-interest w)
)
)
(track-exited-region! area obj)
)
(if (spheres-overlap? (the-as sphere (-> area pos)) (the-as sphere area-of-interest))
(track-start-region! area obj)
)
(when (spheres-overlap? (the-as sphere (-> area unknown-vector-uiyb1)) (the-as sphere area-of-interest))
(track-inside-region! area obj)
#t
)
)
)
;; definition for method 19 of type drawable-region-sphere
(defmethod within-area? drawable-region-sphere ((obj drawable-region-sphere) (area region-prim-area))
"@returns Whether or not the object overlaps with the provided [[region-prim-area]]'s extent"
(spheres-overlap? (the-as sphere (-> area pos)) (the-as sphere (-> obj bsphere)))
)
;; definition for method 17 of type drawable-region-face
;; WARN: Return type mismatch int vs none.
(defmethod debug-draw-region drawable-region-face ((obj drawable-region-face) (arg0 int))
(when (zero? arg0)
(let ((t9-0 (method-of-type drawable-region-prim debug-draw-region)))
(t9-0 obj arg0)
)
)
(let ((s5-0 (-> obj bsphere)))
(add-debug-vector
#t
(bucket-id debug-no-zbuf1)
s5-0
(-> obj data normal)
(meters 2)
(new 'static 'rgba :r #xff :g #xff :a #x80)
)
(add-debug-sphere #t (bucket-id debug2) s5-0 (-> obj bsphere w) (new 'static 'rgba :r #xff :a #x30))
)
(add-debug-bound
324
(the-as transform (-> obj data points))
(the-as int (-> obj data num-points))
(new 'static 'rgba :r #xff :g #xff :a #x80)
(new 'static 'rgba :r #xff :a #x80)
0
)
0
(none)
)
;; definition for method 18 of type drawable-region-face
(defmethod track-region drawable-region-face ((obj drawable-region-face) (arg0 region-prim-area))
"TODO"
(local-vars (sv-48 vector) (sv-52 vector) (sv-56 object))
(-> obj region)
(let* ((s4-0 (-> obj data))
(v1-1 (-> s4-0 normal))
(a0-3 (>= 0.0 (- (vector-dot (-> arg0 pos) v1-1) (-> v1-1 w))))
(s3-0 (>= 0.0 (- (vector-dot (-> arg0 unknown-vector-uiyb1) v1-1) (-> v1-1 w))))
)
(when (!= a0-3 s3-0)
(when (nonzero? (-> s4-0 num-points))
(set! sv-48 (new 'stack-no-clear 'vector))
(set! sv-52 (new 'stack-no-clear 'vector))
(set! sv-56 (the-as (inline-array vector) (-> s4-0 points)))
(ray-plane-intersect
sv-48
sv-52
(-> arg0 pos)
(-> arg0 ray)
(-> (the-as (inline-array vector) sv-56) 0)
(-> (the-as (inline-array vector) sv-56) 1)
(-> (the-as (inline-array vector) sv-56) 2)
)
(let ((s4-1 (-> s4-0 num-points))
(s2-0 0)
(s1-0 (vector-negate! (new 'stack-no-clear 'vector) sv-52))
)
(while (< (+ s2-0 2) (the-as int s4-1))
(if (the-as
(inline-array vector)
(or (point-in-triangle-cross
sv-48
sv-52
(-> (the-as (inline-array vector) sv-56) 0)
(-> (the-as (inline-array vector) sv-56) 1)
(-> (the-as (inline-array vector) sv-56) 2)
)
(the-as (inline-array vector) (point-in-triangle-cross
sv-48
s1-0
(-> (the-as (inline-array vector) sv-56) 0)
(-> (the-as (inline-array vector) sv-56) 1)
(-> (the-as (inline-array vector) sv-56) 2)
)
)
)
)
(goto cfg-17)
)
(+! s2-0 1)
(set! sv-56 (-> (the-as (inline-array vector) sv-56) 1))
)
)
(set! s3-0 s3-0)
(goto cfg-20)
)
(label cfg-17)
(if s3-0
(track-entered-region! arg0 (the-as drawable-region-sphere obj))
(track-exited-region! arg0 (the-as drawable-region-sphere obj))
)
)
(label cfg-20)
s3-0
)
)
;; definition for method 17 of type drawable-region-volume
;; WARN: Return type mismatch int vs none.
(defmethod debug-draw-region drawable-region-volume ((obj drawable-region-volume) (arg0 int))
(let ((t9-0 (method-of-type drawable-region-prim debug-draw-region)))
(t9-0 obj arg0)
)
(let* ((s5-0 (-> obj faces length))
(s4-0 0)
(a0-3 (the-as object (+ (+ (* s4-0 32) 16) (the-as int (-> obj faces)))))
)
(while (< s4-0 s5-0)
(debug-draw-region (the-as drawable-region-face a0-3) 1)
(+! s4-0 1)
(set! a0-3 (+ (+ (* s4-0 32) 16) (the-as int (-> obj faces))))
)
)
0
(none)
)
;; definition for method 18 of type drawable-region-volume
(defmethod track-region drawable-region-volume ((obj drawable-region-volume) (area region-prim-area))
"TODO"
(if (within-area? obj area)
(track-start-region! area (the-as drawable-region-sphere obj))
)
(let* ((s4-0 (-> obj faces length))
(s3-0 0)
(a0-4 (the-as object (+ (+ (* s3-0 32) 16) (the-as int (-> obj faces)))))
)
(while (< s3-0 s4-0)
(if (not (track-region (the-as drawable-region-face a0-4) area))
(return #f)
)
(+! s3-0 1)
(set! a0-4 (+ (+ (* s3-0 32) 16) (the-as int (-> obj faces))))
)
)
(track-inside-region! area (the-as drawable-region-sphere obj))
#t
)
;; definition for method 19 of type drawable-region-volume
(defmethod within-area? drawable-region-volume ((obj drawable-region-volume) (arg0 region-prim-area))
"@returns Whether or not the object overlaps with the provided [[region-prim-area]]'s extent"
(let* ((v1-1 (-> obj faces length))
(a2-0 0)
(a3-2 (the-as object (+ (+ (* a2-0 32) 16) (the-as int (-> obj faces)))))
)
(while (< a2-0 v1-1)
(let ((a3-4 (-> (the-as drawable-region-face a3-2) data normal)))
(if (< 0.0 (- (vector-dot (-> arg0 pos) a3-4) (-> a3-4 w)))
(return #f)
)
)
(+! a2-0 1)
(set! a3-2 (+ (+ (* a2-0 32) 16) (the-as int (-> obj faces))))
)
)
#t
)
;; definition for method 17 of type drawable-tree-region-prim
(defmethod drawable-tree-region-prim-method-17 drawable-tree-region-prim ((obj drawable-tree-region-prim) (arg0 vector))
(sphere<-vector+r! (the-as sphere (-> (the-as region-prim-area #x70000000) pos)) arg0 0.0)
(let* ((s5-0 (-> obj data2 (+ (-> obj length) -1) length))
(s4-0 0)
(a0-8 (the-as object (+ (+ (* s4-0 32) 32) (the-as int (-> obj data2 (+ (-> obj length) -1))))))
)
(while (< s4-0 s5-0)
(if (within-area? (the-as drawable-region-prim a0-8) (the-as region-prim-area (+ #x70000000 0)))
(return #t)
)
(+! s4-0 1)
(set! a0-8 (+ (+ (* s4-0 32) 32) (the-as int (-> obj data2 (+ (-> obj length) -1)))))
)
)
#f
)
;; definition for method 9 of type region
;; INFO: Used lq/sq
;; WARN: Return type mismatch int vs symbol.
(defmethod region-method-9 region ((obj region) (arg0 vector))
(local-vars (sv-16 int) (sv-32 int))
(sphere<-vector+r! (the-as sphere (-> (the-as region-prim-area #x70000000) pos)) arg0 0.0)
(dotimes (s5-0 (-> *level* length))
(let ((s4-0 (-> *level* level s5-0)))
(when (= (-> s4-0 status) 'active)
(when (nonzero? (-> s4-0 bsp region-trees))
(let* ((s3-0 (-> s4-0 bsp region-trees length))
(s2-0 0)
(s1-0 (-> s4-0 bsp region-trees s2-0))
)
(while (< s2-0 s3-0)
(let ((s0-0 (-> s1-0 data2 (+ (-> s1-0 length) -1) length)))
(set! sv-16 0)
(set! sv-32 (+ (+ (* sv-16 32) 32) (the-as int (-> s1-0 data2 (+ (-> s1-0 length) -1)))))
(while (< sv-16 s0-0)
(if (and (= (-> (the-as drawable-region-prim sv-32) region) obj)
(within-area?
(the-as drawable-region-prim sv-32)
(the-as region-prim-area (-> (the-as region-prim-area #x70000000) region-prim-list))
)
)
(return (the-as symbol sv-32))
)
(set! sv-16 (+ sv-16 1))
(set! sv-32 (+ (+ (* sv-16 32) 32) (the-as int (-> s1-0 data2 (+ (-> s1-0 length) -1)))))
)
)
(+! s2-0 1)
(set! s1-0 (-> s4-0 bsp region-trees s2-0))
)
)
)
)
)
)
(the-as symbol #f)
)
;; definition for method 18 of type drawable-tree-region-prim
;; WARN: Return type mismatch int vs none.
(defmethod debug-print drawable-tree-region-prim ((obj drawable-tree-region-prim) (arg0 vector) (arg1 object))
(sphere<-vector+r! (the-as sphere (+ 1296 #x70000000)) arg0 0.0)
(let* ((s4-0 (-> obj data2 (+ (-> obj length) -1) length))
(s3-0 0)
(s2-0 (the-as object (+ (+ (* s3-0 32) 32) (the-as int (-> obj data2 (+ (-> obj length) -1))))))
)
(while (< s3-0 s4-0)
(if (within-area? (the-as drawable-region-prim s2-0) (the-as region-prim-area (+ #x70000000 0)))
(format
arg1
" splitbox-~D ~A~%"
(-> (the-as drawable-region-prim s2-0) id)
(the-as drawable-region-prim s2-0)
)
)
(+! s3-0 1)
(set! s2-0 (+ (+ (* s3-0 32) 32) (the-as int (-> obj data2 (+ (-> obj length) -1)))))
)
)
0
(none)
)
;; definition for function region-tree-execute
;; WARN: Return type mismatch int vs none.
(defun region-tree-execute ((arg0 symbol) (arg1 vector) (arg2 vector))
(local-vars (sv-32 vector))
(with-pp
(set! sv-32 (vector-average! (new 'stack-no-clear 'vector) arg1 arg2))
(set! (-> sv-32 w) (* 0.5 (vector-vector-distance arg1 arg2)))
(set! (-> (the-as region-prim-area #x70000000) region-prim-list num-items) 0)
(set! (-> (the-as region-prim-area #x70000000) region-enter-count) 0)
(set! (-> (the-as region-prim-area #x70000000) region-exit-count) 0)
(set! (-> (the-as region-prim-area #x70000000) region-inside-count) 0)
(set! (-> (the-as region-prim-area #x70000000) region-start-count) 0)
(sphere<-vector+r! (the-as sphere (+ 1296 #x70000000)) arg1 0.0)
(sphere<-vector+r! (the-as sphere (+ 1312 #x70000000)) arg2 0.0)
(vector-! (the-as vector (+ 1328 #x70000000)) arg2 arg1)
(vector-! (the-as vector (+ 1344 #x70000000)) arg1 arg2)
(dotimes (s5-1 (-> *level* length))
(let ((v1-17 (-> *level* level s5-1)))
(when (= (-> v1-17 status) 'active)
(let ((s4-1 (-> v1-17 bsp region-trees)))
(when (nonzero? s4-1)
(let* ((s3-0 (-> s4-1 length))
(s2-0 0)
(a0-14 (-> s4-1 s2-0))
)
(while (< s2-0 s3-0)
(if (= (-> a0-14 name) arg0)
(collect-regions a0-14 (the-as sphere sv-32) 0 (the-as region-prim-list (+ #x70000000 0)))
)
(+! s2-0 1)
(set! a0-14 (-> s4-1 s2-0))
)
)
)
)
)
)
)
(countdown (gp-1 (-> (the-as region-prim-area #x70000000) region-prim-list num-items))
(track-region
(-> (the-as region-prim-area (+ (* gp-1 4) #x70000000)) region-prim-list items 0)
(the-as region-prim-area (-> (the-as region-prim-area #x70000000) region-prim-list))
)
)
(let ((gp-2 (-> (the-as region-prim-area #x70000000) region-enter-count)))
(while (begin (label cfg-22) (nonzero? gp-2))
(+! gp-2 -1)
(let* ((a2-5 (-> (the-as region-prim-area (+ (* gp-2 4) #x70000000)) region-enter-list 0))
(s5-2 (-> a2-5 region-prim-list items 0))
)
(when s5-2
(countdown (v1-47 (-> (the-as region-prim-area #x70000000) region-start-count))
(if (= a2-5 (-> (the-as region-prim-area #x70000000) region-start-list v1-47))
(goto cfg-22)
)
)
(eval!
(new
'stack
'script-context
(the-as basic a2-5)
pp
(-> (the-as region-prim-area (+ (* gp-2 4) #x70000000)) region-enter-prim-list 0 bsphere)
)
(the-as pair s5-2)
)
)
)
)
)
(let ((gp-3 (-> (the-as region-prim-area #x70000000) region-exit-count)))
(while (begin (label cfg-31) (nonzero? gp-3))
(+! gp-3 -1)
(let* ((a2-6 (-> (the-as region-prim-area (+ (* gp-3 4) #x70000000)) region-exit-list 0))
(s5-3 (-> a2-6 region-prim-list items 2))
)
(when s5-3
(countdown (v1-64 (-> (the-as region-prim-area #x70000000) region-inside-count))
(if (= a2-6 (-> (the-as region-prim-area (+ (* v1-64 4) #x70000000)) region-inside-list 0))
(goto cfg-31)
)
)
(eval!
(new
'stack
'script-context
(the-as basic a2-6)
pp
(-> (the-as region-prim-area (+ (* gp-3 4) #x70000000)) region-exit-prim-list 0 bsphere)
)
(the-as pair s5-3)
)
)
)
)
)
(countdown (gp-4 (-> (the-as region-prim-area #x70000000) region-inside-count))
(let* ((a2-7 (-> (the-as region-prim-area (+ (* gp-4 4) #x70000000)) region-inside-list 0))
(s5-4 (-> a2-7 region-prim-list items 1))
)
(if s5-4
(eval!
(new
'stack
'script-context
(the-as basic a2-7)
pp
(-> (the-as region-prim-area (+ (* gp-4 4) #x70000000)) region-inside-prim-list 0 bsphere)
)
(the-as pair s5-4)
)
)
)
)
0
(none)
)
)
;; definition for function region-execute
;; INFO: Used lq/sq
;; WARN: Return type mismatch int vs none.
(defun region-execute ()
(set! (-> *level* camera-pos 1 quad) (-> *level* camera-pos 0 quad))
(set! (-> *level* camera-pos 0 quad) (-> (camera-pos) quad))
(set! (-> *level* target-pos 1 quad) (-> *level* target-pos 0 quad))
(set! (-> *level* target-pos 0 quad) (-> (target-pos 0) quad))
(when (and *execute-regions* (-> *setting-control* user-current region-mode) (not (paused?)))
(region-tree-execute 'camera (-> *level* camera-pos 1) (the-as vector (-> *level* camera-pos)))
(region-tree-execute 'target (-> *level* target-pos 1) (the-as vector (-> *level* target-pos)))
)
0
(none)
)
;; definition for function region-prim-lookup-by-id
;; WARN: Return type mismatch int vs drawable-region-prim.
(defun region-prim-lookup-by-id ((arg0 int) (arg1 symbol) (arg2 symbol))
(let ((v1-0 -1))
(dotimes (a3-0 (-> *level* length))
(let ((t0-3 (-> *level* level a3-0)))
(when (= (-> t0-3 status) 'active)
(when (nonzero? (-> t0-3 bsp region-trees))
(let* ((t1-8 (-> t0-3 bsp region-trees length))
(t2-1 0)
(t3-2 (-> t0-3 bsp region-trees t2-1))
)
(while (< t2-1 t1-8)
(when (or (not arg1) (= (-> t3-2 name) arg1))
(let* ((t4-10 (-> t3-2 data2 (+ (-> t3-2 length) -1) length))
(t5-0 0)
(t6-2 (the-as object (+ (+ (* t5-0 32) 32) (the-as int (-> t3-2 data2 (+ (-> t3-2 length) -1))))))
)
(while (< t5-0 t4-10)
(when (= (-> (the-as drawable-region-prim t6-2) region id) arg0)
(+! v1-0 1)
(if (= v1-0 arg2)
(return (the-as drawable-region-prim t6-2))
)
)
(+! t5-0 1)
(set! t6-2 (+ (+ (* t5-0 32) 32) (the-as int (-> t3-2 data2 (+ (-> t3-2 length) -1)))))
)
)
)
(+! t2-1 1)
(set! t3-2 (-> t0-3 bsp region-trees t2-1))
)
)
)
)
)
)
)
(the-as drawable-region-prim #f)
)
;; definition for function region-lookup-by-id
(defun region-lookup-by-id ((arg0 int))
(dotimes (v1-0 (-> *level* length))
(let ((a1-3 (-> *level* level v1-0)))
(when (= (-> a1-3 status) 'active)
(when (nonzero? (-> a1-3 bsp region-array))
(let* ((a2-8 (-> a1-3 bsp region-array length))
(a3-1 0)
(t0-2 (-> a1-3 bsp region-array data a3-1))
)
(while (< a3-1 a2-8)
(if (= (-> t0-2 id) arg0)
(return t0-2)
)
(+! a3-1 1)
(set! t0-2 (-> a1-3 bsp region-array data a3-1))
)
)
)
)
)
)
(the-as region #f)
)
+1 -1
View File
@@ -396,7 +396,7 @@
(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)
(bounds vector :inline :offset-assert 48)
(origin vector :inline :offset 48)
(entity entity :offset-assert 64)
(link-array (array nav-mesh-link) :offset-assert 68)
+600
View File
@@ -0,0 +1,600 @@
;;-*-Lisp-*-
(in-package goal)
;; definition of type rigid-body-info
(deftype rigid-body-info (structure)
((mass float :offset-assert 0)
(inv-mass float :offset-assert 4)
(linear-damping float :offset-assert 8)
(angular-damping float :offset-assert 12)
(bounce-factor float :offset-assert 16)
(friction-factor float :offset-assert 20)
(bounce-mult-factor float :offset-assert 24)
(cm-offset-joint vector :inline :offset-assert 32)
(inv-inertial-tensor matrix :inline :offset-assert 48)
(inertial-tensor matrix :inline :offset-assert 112)
(inertial-tensor-box meters 3 :offset-assert 176)
)
:method-count-assert 10
:size-assert #xbc
:flag-assert #xa000000bc
(:methods
(rigid-body-info-method-9 (_type_) none 9)
)
)
;; definition for method 3 of type rigid-body-info
(defmethod inspect rigid-body-info ((obj rigid-body-info))
(when (not obj)
(set! obj obj)
(goto cfg-4)
)
(format #t "[~8x] ~A~%" obj 'rigid-body-info)
(format #t "~1Tmass: ~f~%" (-> obj mass))
(format #t "~1Tinv-mass: ~f~%" (-> obj inv-mass))
(format #t "~1Tlinear-damping: ~f~%" (-> obj linear-damping))
(format #t "~1Tangular-damping: ~f~%" (-> obj angular-damping))
(format #t "~1Tbounce-factor: ~f~%" (-> obj bounce-factor))
(format #t "~1Tfriction-factor: ~f~%" (-> obj friction-factor))
(format #t "~1Tbounce-mult-factor: ~f~%" (-> obj bounce-mult-factor))
(format #t "~1Tcm-offset-joint: ~`vector`P~%" (-> obj cm-offset-joint))
(format #t "~1Tinv-inertial-tensor: #<matrix @ #x~X>~%" (-> obj inv-inertial-tensor))
(format #t "~1Tinertial-tensor: #<matrix @ #x~X>~%" (-> obj inertial-tensor))
(format #t "~1Tinertial-tensor-box[3] @ #x~X~%" (-> obj inertial-tensor-box))
(label cfg-4)
obj
)
;; definition of type rigid-body-object-extra-info
(deftype rigid-body-object-extra-info (structure)
((max-time-step float :offset-assert 0)
(gravity meters :offset-assert 4)
(idle-distance meters :offset-assert 8)
(attack-force-scale float :offset-assert 12)
)
:pack-me
:method-count-assert 9
:size-assert #x10
:flag-assert #x900000010
)
;; definition for method 3 of type rigid-body-object-extra-info
(defmethod inspect rigid-body-object-extra-info ((obj rigid-body-object-extra-info))
(when (not obj)
(set! obj obj)
(goto cfg-4)
)
(format #t "[~8x] ~A~%" obj 'rigid-body-object-extra-info)
(format #t "~1Tmax-time-step: ~f~%" (-> obj max-time-step))
(format #t "~1Tgravity: (meters ~m)~%" (-> obj gravity))
(format #t "~1Tidle-distance: (meters ~m)~%" (-> obj idle-distance))
(format #t "~1Tattack-force-scale: ~f~%" (-> obj attack-force-scale))
(label cfg-4)
obj
)
;; definition of type rigid-body-object-constants
(deftype rigid-body-object-constants (structure)
((info rigid-body-info :inline :offset-assert 0)
(mass float :offset 0)
(inv-mass float :offset 4)
(cm-joint-x meters :offset 32)
(cm-joint-y meters :offset 36)
(cm-joint-z meters :offset 40)
(linear-damping float :offset 8)
(angular-damping float :offset 12)
(bounce-factor float :offset 16)
(friction-factor float :offset 20)
(inertial-tensor-x meters :offset 176)
(inertial-tensor-y meters :offset 180)
(inertial-tensor-z meters :offset 184)
(extra rigid-body-object-extra-info :inline :offset-assert 188)
(max-time-step float :offset 188)
(gravity meters :offset 192)
(idle-distance meters :offset 196)
(attack-force-scale float :offset 200)
(name basic :offset-assert 204)
)
:method-count-assert 9
:size-assert #xd0
:flag-assert #x9000000d0
)
;; definition for method 3 of type rigid-body-object-constants
(defmethod inspect rigid-body-object-constants ((obj rigid-body-object-constants))
(when (not obj)
(set! obj obj)
(goto cfg-4)
)
(format #t "[~8x] ~A~%" obj 'rigid-body-object-constants)
(format #t "~1Tinfo: #<rigid-body-info @ #x~X>~%" (&-> obj mass))
(format #t "~1Tmass: ~f~%" (-> obj mass))
(format #t "~1Tinv-mass: ~f~%" (-> obj inv-mass))
(format #t "~1Tcm-joint-x: (meters ~m)~%" (-> obj cm-joint-x))
(format #t "~1Tcm-joint-y: (meters ~m)~%" (-> obj cm-joint-y))
(format #t "~1Tcm-joint-z: (meters ~m)~%" (-> obj cm-joint-z))
(format #t "~1Tlinear-damping: ~f~%" (-> obj linear-damping))
(format #t "~1Tangular-damping: ~f~%" (-> obj angular-damping))
(format #t "~1Tbounce-factor: ~f~%" (-> obj bounce-factor))
(format #t "~1Tfriction-factor: ~f~%" (-> obj friction-factor))
(format #t "~1Tinertial-tensor-x: (meters ~m)~%" (-> obj inertial-tensor-x))
(format #t "~1Tinertial-tensor-y: (meters ~m)~%" (-> obj inertial-tensor-y))
(format #t "~1Tinertial-tensor-z: (meters ~m)~%" (-> obj inertial-tensor-z))
(format #t "~1Textra: #<rigid-body-object-extra-info @ #x~X>~%" (&-> obj max-time-step))
(format #t "~1Tmax-time-step: ~f~%" (-> obj max-time-step))
(format #t "~1Tgravity: (meters ~m)~%" (-> obj gravity))
(format #t "~1Tidle-distance: (meters ~m)~%" (-> obj idle-distance))
(format #t "~1Tattack-force-scale: ~f~%" (-> obj attack-force-scale))
(format #t "~1Tname: ~A~%" (-> obj name))
(label cfg-4)
obj
)
;; definition of type rigid-body-impact
(deftype rigid-body-impact (structure)
((point vector :inline :offset-assert 0)
(normal vector :inline :offset-assert 16)
(velocity vector :inline :offset-assert 32)
(impulse float :offset-assert 48)
(pat uint32 :offset-assert 52)
(rbody basic :offset-assert 56)
(prim-id uint32 :offset-assert 60)
)
:method-count-assert 9
:size-assert #x40
:flag-assert #x900000040
)
;; definition for method 3 of type rigid-body-impact
(defmethod inspect rigid-body-impact ((obj rigid-body-impact))
(when (not obj)
(set! obj obj)
(goto cfg-4)
)
(format #t "[~8x] ~A~%" obj 'rigid-body-impact)
(format #t "~1Tpoint: ~`vector`P~%" (-> obj point))
(format #t "~1Tnormal: ~`vector`P~%" (-> obj normal))
(format #t "~1Tvelocity: ~`vector`P~%" (-> obj velocity))
(format #t "~1Timpulse: ~f~%" (-> obj impulse))
(format #t "~1Tpat: ~D~%" (-> obj pat))
(format #t "~1Trbody: ~A~%" (-> obj rbody))
(format #t "~1Tprim-id: ~D~%" (-> obj prim-id))
(label cfg-4)
obj
)
;; definition of type rigid-body
(deftype rigid-body (structure)
((work basic :offset-assert 0)
(info rigid-body-info :offset-assert 4)
(flags rigid-body-flag :offset-assert 8)
(force-callback basic :offset-assert 12)
(blocked-by basic :offset-assert 16)
(time-remaining float :offset-assert 20)
(step-count int16 :offset-assert 24)
(position vector :inline :offset-assert 32)
(rot vector :inline :offset-assert 48)
(rotation quaternion :inline :offset 48)
(lin-momentum vector :inline :offset-assert 64)
(ang-momentum vector :inline :offset-assert 80)
(force vector :inline :offset-assert 96)
(torque vector :inline :offset-assert 112)
(lin-velocity vector :inline :offset-assert 128)
(ang-velocity vector :inline :offset-assert 144)
(matrix matrix :inline :offset-assert 160)
(inv-i-world matrix :inline :offset-assert 224)
)
:method-count-assert 32
:size-assert #x120
:flag-assert #x2000000120
(:methods
(rigid-body-method-9 (_type_) none 9)
(rigid-body-method-10 (_type_) none 10)
(rigid-body-method-11 (_type_) none 11)
(rigid-body-method-12 (_type_ float) none 12)
(rigid-body-method-13 (_type_) none 13)
(rigid-body-method-14 (_type_ float) none 14)
(rigid-body-method-15 () none 15)
(clear-force-torque! (_type_) none 16)
(clear-momentum! (_type_) none 17)
(rigid-body-method-18 (_type_ vector vector) none 18)
(rigid-body-method-19 (_type_ vector vector) none 19)
(rigid-body-method-20 (_type_ vector) none 20)
(rigid-body-method-21 (_type_ vector vector float) none 21)
(rigid-body-method-22 (_type_ vector vector) vector 22)
(rigid-body-method-23 (_type_ vector) vector 23)
(rigid-body-method-24 (_type_) none 24)
(rigid-body-method-25 (_type_ rigid-body-info vector quaternion basic) none 25)
(rigid-body-method-26 (_type_ vector quaternion) none 26)
(print-physics (_type_ object) none 27)
(print-force-torque (_type_ object) none 28)
(print-position-rotation (_type_ object) none 29)
(print-momentum (_type_ object) none 30)
(print-velocity (_type_ object) none 31)
)
)
;; definition for method 3 of type rigid-body
(defmethod inspect rigid-body ((obj rigid-body))
(when (not obj)
(set! obj obj)
(goto cfg-16)
)
(format #t "[~8x] ~A~%" obj 'rigid-body)
(format #t "~1Twork: ~A~%" (-> obj work))
(format #t "~1Tinfo: #<rigid-body-info @ #x~X>~%" (-> obj info))
(format #t "~1Tflags: #x~X : (rigid-body-flag " (-> obj flags))
(let ((s5-0 (-> obj flags)))
(if (= (logand s5-0 (rigid-body-flag active)) (rigid-body-flag active))
(format #t "active ")
)
(if (= (logand s5-0 (rigid-body-flag blocker)) (rigid-body-flag blocker))
(format #t "blocker ")
)
(if (= (logand s5-0 (rigid-body-flag enable-physics)) (rigid-body-flag enable-physics))
(format #t "enable-physics ")
)
(if (= (logand s5-0 (rigid-body-flag display-marks)) (rigid-body-flag display-marks))
(format #t "display-marks ")
)
(if (= (logand s5-0 (rigid-body-flag enable-collision)) (rigid-body-flag enable-collision))
(format #t "enable-collision ")
)
(if (= (logand s5-0 (rigid-body-flag debug)) (rigid-body-flag debug))
(format #t "debug ")
)
)
(format #t ")~%")
(format #t "~1Tforce-callback: ~A~%" (-> obj force-callback))
(format #t "~1Tblocked-by: ~A~%" (-> obj blocked-by))
(format #t "~1Ttime-remaining: ~f~%" (-> obj time-remaining))
(format #t "~1Tstep-count: ~D~%" (-> obj step-count))
(format #t "~1Tposition: ~`vector`P~%" (-> obj position))
(format #t "~1Trot: ~`vector`P~%" (-> obj rotation))
(format #t "~1Trotation: #<quaternion @ #x~X>~%" (-> obj rotation))
(format #t "~1Tlin-momentum: ~`vector`P~%" (-> obj lin-momentum))
(format #t "~1Tang-momentum: ~`vector`P~%" (-> obj ang-momentum))
(format #t "~1Tforce: ~`vector`P~%" (-> obj force))
(format #t "~1Ttorque: ~`vector`P~%" (-> obj torque))
(format #t "~1Tlin-velocity: ~`vector`P~%" (-> obj lin-velocity))
(format #t "~1Tang-velocity: ~`vector`P~%" (-> obj ang-velocity))
(format #t "~1Tmatrix: #<matrix @ #x~X>~%" (-> obj matrix))
(format #t "~1Tinv-i-world: #<matrix @ #x~X>~%" (-> obj inv-i-world))
(label cfg-16)
obj
)
;; definition of type rigid-body-control
(deftype rigid-body-control (basic)
((process process :offset-assert 4)
(state rigid-body :inline :offset-assert 16)
(work basic :offset 16)
(info rigid-body-info :offset 20)
(flags rigid-body-flag :offset 24)
(force-callback basic :offset 28)
(blocked-by basic :offset 32)
(time-remaining float :offset 36)
(step-count int16 :offset 40)
(position vector :inline :offset 48)
(rot vector :inline :offset 64)
(rotation quaternion :inline :offset 64)
(lin-momentum vector :inline :offset 80)
(ang-momentum vector :inline :offset 96)
(force vector :inline :offset 112)
(torque vector :inline :offset 128)
(lin-velocity vector :inline :offset 144)
(ang-velocity vector :inline :offset 160)
(matrix matrix :inline :offset 176)
(inv-i-world matrix :inline :offset 240)
)
:method-count-assert 26
:size-assert #x130
:flag-assert #x1a00000130
(:methods
(rigid-body-control-method-9 (_type_) none 9)
(rigid-body-control-method-10 (_type_) none 10)
(rigid-body-control-method-11 (_type_) none 11)
(rigid-body-control-method-12 (_type_ float) none 12)
(rigid-body-control-method-13 (_type_) none 13)
(rigid-body-control-method-14 (_type_ float) none 14)
(clear-force-torque! (_type_) none 15)
(clear-momentum! (_type_) none 16)
(rigid-body-control-method-17 (_type_ vector vector) none 17)
(rigid-body-control-method-18 (_type_ vector vector) none 18)
(rigid-body-control-method-19 (_type_ vector) none 19)
(rigid-body-control-method-20 (_type_ vector vector float) none 20)
(rigid-body-control-method-21 (_type_ vector vector) vector 21)
(rigid-body-control-method-22 (_type_ vector) vector 22)
(rigid-body-control-method-23 (_type_) none 23)
(rigid-body-control-method-24 (_type_ rigid-body-info vector quaternion basic) none 24)
(rigid-body-control-method-25 (_type_ vector quaternion) none 25)
)
)
;; definition for method 3 of type rigid-body-control
(defmethod inspect rigid-body-control ((obj rigid-body-control))
(when (not obj)
(set! obj obj)
(goto cfg-16)
)
(format #t "[~8x] ~A~%" obj (-> obj type))
(format #t "~1Tprocess: ~A~%" (-> obj process))
(format #t "~1Tstate: #<rigid-body @ #x~X>~%" (-> obj state))
(format #t "~1Twork: ~A~%" (-> obj state work))
(format #t "~1Tinfo: #<rigid-body-info @ #x~X>~%" (-> obj state info))
(format #t "~1Tflags: #x~X : (rigid-body-flag " (-> obj state flags))
(let ((s5-0 (-> obj state flags)))
(if (= (logand s5-0 (rigid-body-flag active)) (rigid-body-flag active))
(format #t "active ")
)
(if (= (logand s5-0 (rigid-body-flag blocker)) (rigid-body-flag blocker))
(format #t "blocker ")
)
(if (= (logand s5-0 (rigid-body-flag enable-physics)) (rigid-body-flag enable-physics))
(format #t "enable-physics ")
)
(if (= (logand s5-0 (rigid-body-flag display-marks)) (rigid-body-flag display-marks))
(format #t "display-marks ")
)
(if (= (logand s5-0 (rigid-body-flag enable-collision)) (rigid-body-flag enable-collision))
(format #t "enable-collision ")
)
(if (= (logand s5-0 (rigid-body-flag debug)) (rigid-body-flag debug))
(format #t "debug ")
)
)
(format #t ")~%")
(format #t "~1Tforce-callback: ~A~%" (-> obj state force-callback))
(format #t "~1Tblocked-by: ~A~%" (-> obj state blocked-by))
(format #t "~1Ttime-remaining: ~f~%" (-> obj state time-remaining))
(format #t "~1Tstep-count: ~D~%" (-> obj state step-count))
(format #t "~1Tposition: ~`vector`P~%" (-> obj state position))
(format #t "~1Trot: ~`vector`P~%" (-> obj state rotation))
(format #t "~1Trotation: #<quaternion @ #x~X>~%" (-> obj state rotation))
(format #t "~1Tlin-momentum: ~`vector`P~%" (-> obj state lin-momentum))
(format #t "~1Tang-momentum: ~`vector`P~%" (-> obj state ang-momentum))
(format #t "~1Tforce: ~`vector`P~%" (-> obj state force))
(format #t "~1Ttorque: ~`vector`P~%" (-> obj state torque))
(format #t "~1Tlin-velocity: ~`vector`P~%" (-> obj state lin-velocity))
(format #t "~1Tang-velocity: ~`vector`P~%" (-> obj state ang-velocity))
(format #t "~1Tmatrix: #<matrix @ #x~X>~%" (-> obj state matrix))
(format #t "~1Tinv-i-world: #<matrix @ #x~X>~%" (-> obj state inv-i-world))
(label cfg-16)
obj
)
;; definition for method 9 of type rigid-body-control
(defmethod rigid-body-control-method-9 rigid-body-control ((obj rigid-body-control))
(rigid-body-method-9 (-> obj state))
(none)
)
;; definition for method 10 of type rigid-body-control
(defmethod rigid-body-control-method-10 rigid-body-control ((obj rigid-body-control))
(rigid-body-method-10 (-> obj state))
(none)
)
;; definition for method 11 of type rigid-body-control
(defmethod rigid-body-control-method-11 rigid-body-control ((obj rigid-body-control))
(rigid-body-method-11 (-> obj state))
(none)
)
;; definition for method 12 of type rigid-body-control
(defmethod rigid-body-control-method-12 rigid-body-control ((obj rigid-body-control) (arg0 float))
(rigid-body-method-12 (-> obj state) arg0)
(none)
)
;; definition for method 13 of type rigid-body-control
(defmethod rigid-body-control-method-13 rigid-body-control ((obj rigid-body-control))
(rigid-body-method-13 (-> obj state))
(none)
)
;; definition for method 14 of type rigid-body-control
(defmethod rigid-body-control-method-14 rigid-body-control ((obj rigid-body-control) (arg0 float))
(rigid-body-method-14 (-> obj state) arg0)
(none)
)
;; definition for method 15 of type rigid-body-control
(defmethod clear-force-torque! rigid-body-control ((obj rigid-body-control))
(clear-force-torque! (-> obj state))
(none)
)
;; definition for method 16 of type rigid-body-control
(defmethod clear-momentum! rigid-body-control ((obj rigid-body-control))
(clear-momentum! (-> obj state))
(none)
)
;; definition for method 17 of type rigid-body-control
(defmethod rigid-body-control-method-17 rigid-body-control ((obj rigid-body-control) (arg0 vector) (arg1 vector))
(rigid-body-method-18 (-> obj state) arg0 arg1)
(none)
)
;; definition for method 18 of type rigid-body-control
(defmethod rigid-body-control-method-18 rigid-body-control ((obj rigid-body-control) (arg0 vector) (arg1 vector))
(rigid-body-method-19 (-> obj state) arg0 arg1)
(none)
)
;; definition for method 19 of type rigid-body-control
(defmethod rigid-body-control-method-19 rigid-body-control ((obj rigid-body-control) (arg0 vector))
(rigid-body-method-20 (-> obj state) arg0)
(none)
)
;; definition for method 20 of type rigid-body-control
(defmethod rigid-body-control-method-20 rigid-body-control ((obj rigid-body-control) (arg0 vector) (arg1 vector) (arg2 float))
(rigid-body-method-21 (-> obj state) arg0 arg1 arg2)
(none)
)
;; definition for method 21 of type rigid-body-control
(defmethod rigid-body-control-method-21 rigid-body-control ((obj rigid-body-control) (arg0 vector) (arg1 vector))
(rigid-body-method-22 (-> obj state) arg0 arg1)
)
;; definition for method 22 of type rigid-body-control
(defmethod rigid-body-control-method-22 rigid-body-control ((obj rigid-body-control) (arg0 vector))
(rigid-body-method-23 (-> obj state) arg0)
)
;; definition for method 23 of type rigid-body-control
(defmethod rigid-body-control-method-23 rigid-body-control ((obj rigid-body-control))
(rigid-body-method-24 (-> obj state))
(none)
)
;; definition for method 24 of type rigid-body-control
(defmethod rigid-body-control-method-24 rigid-body-control ((obj rigid-body-control) (arg0 rigid-body-info) (arg1 vector) (arg2 quaternion) (arg3 basic))
(rigid-body-method-25 (-> obj state) arg0 arg1 arg2 arg3)
(none)
)
;; definition for method 25 of type rigid-body-control
(defmethod rigid-body-control-method-25 rigid-body-control ((obj rigid-body-control) (arg0 vector) (arg1 quaternion))
(rigid-body-method-26 (-> obj state) arg0 arg1)
(none)
)
;; definition of type rigid-body-object
(deftype rigid-body-object (process-focusable)
((info rigid-body-object-constants :offset-assert 204)
(flags rigid-body-object-flag :offset-assert 208)
(max-time-step float :offset-assert 216)
(incoming-attack-id uint32 :offset-assert 220)
(player-touch-time time-frame :offset-assert 224)
(disturbed-time time-frame :offset-assert 232)
(player-force-position vector :inline :offset-assert 240)
(player-force vector :inline :offset-assert 256)
)
:heap-base #x90
:method-count-assert 53
:size-assert #x110
:flag-assert #x3500900110
(:methods
(rigid-body-object-method-27 () none 27)
(rigid-body-object-method-28 () none 28)
(rigid-body-object-method-29 () none 29)
(rigid-body-object-method-30 () none 30)
(rigid-body-object-method-31 () none 31)
(rigid-body-object-method-32 () none 32)
(rigid-body-object-method-33 () none 33)
(rigid-body-object-method-34 () none 34)
(rigid-body-object-method-35 () none 35)
(rigid-body-object-method-36 () none 36)
(rigid-body-object-method-37 () none 37)
(rigid-body-object-method-38 () none 38)
(rigid-body-object-method-39 () none 39)
(rigid-body-object-method-40 () none 40)
(rigid-body-object-method-41 () none 41)
(rigid-body-object-method-42 () none 42)
(rigid-body-object-method-43 () none 43)
(rigid-body-object-method-44 () none 44)
(rigid-body-object-method-45 () none 45)
(rigid-body-object-method-46 () none 46)
(rigid-body-object-method-47 () none 47)
(rigid-body-object-method-48 () none 48)
(rigid-body-object-method-49 () none 49)
(rigid-body-object-method-50 () none 50)
(rigid-body-object-method-51 () none 51)
(rigid-body-object-method-52 () none 52)
)
)
;; definition for method 3 of type rigid-body-object
(defmethod inspect rigid-body-object ((obj rigid-body-object))
(when (not obj)
(set! obj obj)
(goto cfg-22)
)
(let ((t9-0 (method-of-type process-focusable inspect)))
(t9-0 obj)
)
(format #t "~2Tinfo: #<rigid-body-object-constants @ #x~X>~%" (-> obj info))
(format #t "~2Tflags: #x~X : (rigid-body-object-flag " (-> obj flags))
(let ((s5-0 (-> obj flags)))
(if (= (logand s5-0 (rigid-body-object-flag dead)) (rigid-body-object-flag dead))
(format #t "dead ")
)
(if (= (logand s5-0 (rigid-body-object-flag damaged)) (rigid-body-object-flag damaged))
(format #t "damaged ")
)
(if (= (logand s5-0 (rigid-body-object-flag player-contact-force)) (rigid-body-object-flag player-contact-force))
(format #t "player-contact-force ")
)
(if (= (logand s5-0 (rigid-body-object-flag disturbed)) (rigid-body-object-flag disturbed))
(format #t "disturbed ")
)
(if (= (logand s5-0 (rigid-body-object-flag enable-collision)) (rigid-body-object-flag enable-collision))
(format #t "enable-collision ")
)
(if (= (logand s5-0 (rigid-body-object-flag player-edge-grabbing)) (rigid-body-object-flag player-edge-grabbing))
(format #t "player-edge-grabbing ")
)
(if (= (logand s5-0 (rigid-body-object-flag player-touching)) (rigid-body-object-flag player-touching))
(format #t "player-touching ")
)
(if (= (logand s5-0 (rigid-body-object-flag player-standing-on)) (rigid-body-object-flag player-standing-on))
(format #t "player-standing-on ")
)
(if (= (logand s5-0 (rigid-body-object-flag player-impulse-force)) (rigid-body-object-flag player-impulse-force))
(format #t "player-impulse-force ")
)
)
(format #t ")~%")
(format #t "~2Tmax-time-step: ~f~%" (-> obj max-time-step))
(format #t "~2Tincoming-attack-id: ~D~%" (-> obj incoming-attack-id))
(format #t "~2Tplayer-touch-time: ~D~%" (-> obj player-touch-time))
(format #t "~2Tdisturbed-time: ~D~%" (-> obj disturbed-time))
(format #t "~2Tplayer-force-position: #<vector @ #x~X>~%" (-> obj player-force-position))
(format #t "~2Tplayer-force: #<vector @ #x~X>~%" (-> obj player-force))
(label cfg-22)
obj
)
;; definition of type rigid-body-queue
(deftype rigid-body-queue (structure)
((count int8 :offset-assert 0)
(array uint64 128 :offset 8)
)
:method-count-assert 17
:size-assert #x408
:flag-assert #x1100000408
(:methods
(rigid-body-queue-method-9 () none 9)
(rigid-body-queue-method-10 () none 10)
(rigid-body-queue-method-11 () none 11)
(rigid-body-queue-method-12 () none 12)
(rigid-body-queue-method-13 () none 13)
(rigid-body-queue-method-14 () none 14)
(rigid-body-queue-method-15 () none 15)
(rigid-body-queue-method-16 () none 16)
)
)
;; definition for method 3 of type rigid-body-queue
(defmethod inspect rigid-body-queue ((obj rigid-body-queue))
(when (not obj)
(set! obj obj)
(goto cfg-4)
)
(format #t "[~8x] ~A~%" obj 'rigid-body-queue)
(format #t "~1Tcount: ~D~%" (-> obj count))
(format #t "~1Tarray[128] @ #x~X~%" (-> obj array))
(label cfg-4)
obj
)
;; failed to figure out what this is:
0
+61 -61
View File
@@ -3,12 +3,12 @@
;; definition of type scene-actor
(deftype scene-actor (basic)
((name basic :offset-assert 4)
((name string :offset-assert 4)
(level basic :offset-assert 8)
(art-group basic :offset-assert 12)
(prefix basic :offset-assert 16)
(draw-frames basic :offset-assert 20)
(scissor-frames basic :offset-assert 24)
(art-group string :offset-assert 12)
(prefix string :offset-assert 16)
(draw-frames pair :offset-assert 20)
(scissor-frames pair :offset-assert 24)
(camera int16 :offset-assert 28)
(light-index uint8 :offset-assert 30)
(shadow-mask uint8 :offset-assert 31)
@@ -19,13 +19,13 @@
(shadow-volume-joint basic :offset-assert 48)
(draw-seg uint64 :offset-assert 56)
(no-draw-seg uint64 :offset-assert 64)
(process uint64 :offset-assert 72)
(process handle :offset-assert 72)
)
:method-count-assert 10
:size-assert #x50
:flag-assert #xa00000050
(:methods
(scene-actor-method-9 () none 9)
(scene-actor-method-9 (_type_ scene-player) (pointer process) 9)
)
)
@@ -59,37 +59,37 @@
;; definition of type scene
(deftype scene (art-group)
((mask-to-clear uint32 :offset-assert 32)
(entity basic :offset-assert 36)
(art-group basic :offset-assert 40)
(anim basic :offset-assert 44)
(parts int32 :offset-assert 48)
(command-list basic :offset-assert 52)
(cut-list basic :offset-assert 56)
(wait-max-time time-frame :offset-assert 64)
(wait-air-time time-frame :offset-assert 72)
(wait-ground-time time-frame :offset-assert 80)
(draw-target basic :offset-assert 88)
(abort basic :offset-assert 92)
(actor basic :offset-assert 96)
(load-point basic :offset-assert 100)
(end-point basic :offset-assert 104)
(borrow basic :offset-assert 108)
(sfx-volume float :offset-assert 112)
(ambient-volume float :offset-assert 116)
(music-volume float :offset-assert 120)
(blackout-end basic :offset-assert 124)
(peaceful basic :offset-assert 128)
(music-delay float :offset-assert 132)
(save basic :offset-assert 136)
(scene-task uint16 :offset-assert 140)
((mask-to-clear uint32 :offset-assert 32)
(entity string :offset-assert 36)
(art-group string :offset-assert 40)
(anim string :offset-assert 44)
(parts int32 :offset-assert 48)
(command-list basic :offset-assert 52)
(cut-list pair :offset-assert 56)
(wait-max-time time-frame :offset-assert 64)
(wait-air-time time-frame :offset-assert 72)
(wait-ground-time time-frame :offset-assert 80)
(draw-target level-load-info :offset-assert 88)
(abort basic :offset-assert 92)
(actor (array scene-actor) :offset-assert 96)
(load-point string :offset-assert 100)
(end-point string :offset-assert 104)
(borrow basic :offset-assert 108)
(sfx-volume float :offset-assert 112)
(ambient-volume float :offset-assert 116)
(music-volume float :offset-assert 120)
(blackout-end basic :offset-assert 124)
(peaceful basic :offset-assert 128)
(music-delay float :offset-assert 132)
(save basic :offset-assert 136)
(scene-task uint16 :offset-assert 140)
)
:method-count-assert 17
:size-assert #x8e
:flag-assert #x110000008e
(:methods
(scene-method-15 () none 15)
(scene-method-16 () none 16)
(scene-method-15 (_type_ spool-anim) none 15)
(scene-method-16 (_type_) _type_ 16)
)
)
@@ -135,40 +135,40 @@
;; definition of type scene-player
(deftype scene-player (process-drawable)
((scene-list basic :offset-assert 200)
(scene basic :offset-assert 204)
(scene-index int32 :offset-assert 208)
(anim basic :offset-assert 212)
(next-anim basic :offset-assert 216)
(camera uint64 :offset-assert 224)
(main-entity basic :offset-assert 232)
(wait basic :offset-assert 236)
(old-target-pos transformq :inline :offset-assert 240)
(pre-cut-frame basic :offset-assert 288)
(preload-continue basic :offset-assert 292)
(dma-max uint32 :offset-assert 296)
(gui-id uint32 :offset-assert 300)
(aborted? basic :offset-assert 304)
(scene-start-time time-frame :offset-assert 312)
(targ-speed float :offset-assert 320)
(cur-speed float :offset-assert 324)
(speed-change-time time-frame :offset-assert 328)
(speed-press-time time-frame :offset-assert 336)
(speed-change-speed float :offset-assert 344)
(subtitle-change-time time-frame :offset-assert 352)
(user-sound uint32 4 :offset-assert 360)
((scene-list (pointer symbol) :offset-assert 200)
(scene scene :offset-assert 204)
(scene-index int32 :offset-assert 208)
(anim spool-anim :offset-assert 212)
(next-anim spool-anim :offset-assert 216)
(camera handle :offset-assert 224)
(main-entity entity-actor :offset-assert 232)
(wait basic :offset-assert 236)
(old-target-pos transformq :inline :offset-assert 240)
(pre-cut-frame basic :offset-assert 288)
(preload-continue string :offset-assert 292)
(dma-max uint32 :offset-assert 296)
(gui-id uint32 :offset-assert 300)
(aborted? symbol :offset-assert 304)
(scene-start-time time-frame :offset-assert 312)
(targ-speed float :offset-assert 320)
(cur-speed float :offset-assert 324)
(speed-change-time time-frame :offset-assert 328)
(speed-press-time time-frame :offset-assert 336)
(speed-change-speed float :offset-assert 344)
(subtitle-change-time time-frame :offset-assert 352)
(user-sound uint32 4 :offset-assert 360)
)
:heap-base #x100
:method-count-assert 26
:size-assert #x178
:flag-assert #x1a01000178
(:methods
(scene-player-method-20 () none 20)
(scene-player-method-21 () none 21)
(scene-player-method-22 () none 22)
(scene-player-method-23 () none 23)
(scene-player-method-24 () none 24)
(scene-player-method-25 () none 25)
(wait (symbol) _type_ :state 20)
(release () _type_ :state 21)
(play-anim () _type_ :state 22)
(scene-player-method-23 (_type_ string symbol) none 23)
(scene-player-method-24 (_type_ basic symbol) scene 24)
(scene-player-method-25 (_type_ float) none 25)
)
)
+88
View File
@@ -0,0 +1,88 @@
;;-*-Lisp-*-
(in-package goal)
;; definition of type city-race-ring-info
(deftype city-race-ring-info (structure)
((pos vector :inline :offset-assert 0)
(angle float :offset 12)
(boost float :offset-assert 16)
(dist float :offset-assert 20)
)
:method-count-assert 10
:size-assert #x18
:flag-assert #xa00000018
(:methods
(city-race-ring-info-method-9 () none 9)
)
)
;; definition for method 3 of type city-race-ring-info
(defmethod inspect city-race-ring-info ((obj city-race-ring-info))
(when (not obj)
(set! obj obj)
(goto cfg-4)
)
(format #t "[~8x] ~A~%" obj 'city-race-ring-info)
(format #t "~1Tpos: #<vector @ #x~X>~%" (-> obj pos))
(format #t "~1Tangle: ~f~%" (-> obj pos w))
(format #t "~1Tboost: ~f~%" (-> obj boost))
(format #t "~1Tdist: ~f~%" (-> obj dist))
(label cfg-4)
obj
)
;; definition of type city-ambush-spot
(deftype city-ambush-spot (structure)
((pos vector :inline :offset-assert 0)
(obj-type uint8 :offset-assert 16)
)
:method-count-assert 9
:size-assert #x11
:flag-assert #x900000011
)
;; definition for method 3 of type city-ambush-spot
(defmethod inspect city-ambush-spot ((obj city-ambush-spot))
(when (not obj)
(set! obj obj)
(goto cfg-4)
)
(format #t "[~8x] ~A~%" obj 'city-ambush-spot)
(format #t "~1Tpos: #<vector @ #x~X>~%" (-> obj pos))
(format #t "~1Tobj-type: ~D~%" (-> obj obj-type))
(label cfg-4)
obj
)
;; definition of type city-ambush-info
(deftype city-ambush-info (structure)
((count int16 :offset-assert 0)
(array uint32 :offset-assert 4)
)
:method-count-assert 10
:size-assert #x8
:flag-assert #xa00000008
(:methods
(city-ambush-info-method-9 () none 9)
)
)
;; definition for method 3 of type city-ambush-info
(defmethod inspect city-ambush-info ((obj city-ambush-info))
(when (not obj)
(set! obj obj)
(goto cfg-4)
)
(format #t "[~8x] ~A~%" obj 'city-ambush-info)
(format #t "~1Tcount: ~D~%" (-> obj count))
(format #t "~1Tarray: #x~X~%" (-> obj array))
(label cfg-4)
obj
)
;; failed to figure out what this is:
0
+78 -77
View File
@@ -3,7 +3,7 @@
;; definition of type nav-branch
(deftype nav-branch (structure)
((node nav-node 2 :offset-assert 0)
((node int32 2 :offset-assert 0)
(src-node nav-node :offset 0)
(dest-node nav-node :offset 4)
(temp-dest-node-id int32 :offset 4)
@@ -20,18 +20,18 @@
:size-assert #x10
:flag-assert #x1500000010
(:methods
(nav-branch-method-9 () none 9)
(nav-branch-method-10 () none 10)
(nav-branch-method-9 (_type_) none 9)
(nav-branch-method-10 (_type_ object int) none 10)
(nav-branch-method-11 (_type_) float 11)
(nav-branch-method-12 (_type_) float 12)
(nav-branch-method-13 (_type_) float 13)
(user-limit-reached? (_type_) symbol 14)
(nav-branch-method-15 (_type_) symbol 15)
(nav-branch-method-16 () none 16)
(nav-branch-method-17 () none 17)
(nav-branch-method-18 () none 18)
(nav-branch-method-19 () none 19)
(nav-branch-method-20 () none 20)
(nav-branch-method-16 (_type_ float) none 16)
(nav-branch-method-17 (_type_ float) none 17)
(nav-branch-method-18 (_type_ float) none 18)
(nav-branch-method-19 (_type_ nav-node) none 19)
(nav-branch-method-20 (_type_ nav-node) none 20)
)
)
@@ -60,34 +60,34 @@
;; definition of type nav-node
(deftype nav-node (structure)
((data uint32 8 :offset-assert 0)
(position vector :inline :offset 0)
(pos-x float :offset 0)
(pos-y float :offset 4)
(pos-z float :offset 8)
(angle uint16 :offset 12)
(id uint16 :offset 14)
(radius uint8 :offset 16)
(branch-count int8 :offset 17)
(flags nav-node-flag-byte :offset 18)
(pad0 int8 1 :offset 19)
(branch-array uint32 :offset 20)
(nav-mesh-id uint32 :offset 24)
(level level :offset 28)
((data uint32 8 :offset-assert 0)
(position vector :inline :offset 0)
(pos-x float :offset 0)
(pos-y float :offset 4)
(pos-z float :offset 8)
(angle uint16 :offset 12)
(id uint16 :offset 14)
(radius uint8 :offset 16)
(branch-count int8 :offset 17)
(flags nav-node-flag-byte :offset 18)
(pad0 int8 1 :offset 19)
(branch-array (inline-array nav-branch) :offset 20)
(nav-mesh-id uint32 :offset 24)
(level symbol :offset 28)
)
:method-count-assert 22
:size-assert #x20
:flag-assert #x1600000020
(:methods
(nav-node-method-9 () none 9)
(nav-node-method-10 () none 10)
(nav-node-method-11 () none 11)
(nav-node-method-12 () none 12)
(nav-node-method-13 () none 13)
(nav-node-method-14 () none 14)
(nav-node-method-15 () none 15)
(nav-node-method-16 () none 16)
(nav-node-method-17 () none 17)
(nav-node-method-9 (_type_) none 9)
(nav-node-method-10 (_type_ symbol string) none 10)
(nav-node-method-11 (_type_ int) none 11)
(nav-node-method-12 (_type_ vector nav-node) none 12)
(nav-node-method-13 (_type_ vector) none 13)
(nav-node-method-14 (_type_ nav-node) none 14)
(nav-node-method-15 (_type_ uint) none 15)
(nav-node-method-16 (_type_ float) none 16)
(nav-node-method-17 (_type_ float) none 17)
(get-position (_type_ vector) vector 18)
(calc-sine-and-cosine! (_type_ vector) vector 19)
(get-angle (_type_) float 20)
@@ -242,59 +242,60 @@
;; definition of type nav-graph
(deftype nav-graph (basic)
((node-count int16 :offset-assert 4)
(branch-count int16 :offset-assert 6)
(node-array (inline-array nav-node) :offset-assert 8)
(branch-array uint32 :offset-assert 12)
(link-count int16 :offset-assert 16)
(pad2 uint16 :offset-assert 18)
(link-array uint32 :offset-assert 20)
(first-node int16 :offset-assert 24)
(pad0 uint16 :offset-assert 26)
(patched basic :offset-assert 28)
(id uint32 :offset-assert 32)
(pad1 uint32 6 :offset-assert 36)
((node-count int16 :offset-assert 4)
(branch-count int16 :offset-assert 6)
(node-array (inline-array nav-node) :offset-assert 8)
(branch-array (inline-array nav-branch) :offset-assert 12)
(link-count int16 :offset-assert 16)
(pad2 uint16 :offset-assert 18)
(link-array (inline-array nav-graph-link) :offset-assert 20)
(first-node int16 :offset-assert 24)
(pad0 uint16 :offset-assert 26)
(patched symbol :offset-assert 28)
(id uint32 :offset-assert 32)
(pad1 uint32 6 :offset-assert 36)
)
:method-count-assert 45
:size-assert #x3c
:flag-assert #x2d0000003c
(:methods
(nav-graph-method-9 () none 9)
(nav-graph-method-10 () none 10)
(nav-graph-method-11 () none 11)
(nav-graph-method-12 () none 12)
(nav-graph-method-13 () none 13)
(nav-graph-method-14 () none 14)
(nav-graph-method-15 () none 15)
(nav-graph-method-16 () none 16)
(nav-graph-method-17 () none 17)
(nav-graph-method-18 () none 18)
(nav-graph-method-19 () none 19)
(nav-graph-method-20 () none 20)
(nav-graph-method-21 () none 21)
(nav-graph-method-22 () none 22)
(nav-graph-method-23 () none 23)
(nav-graph-method-24 () none 24)
(nav-graph-method-25 () none 25)
(nav-graph-method-26 () none 26)
(nav-graph-method-27 () none 27)
(nav-graph-method-28 () none 28)
(nav-graph-method-29 () none 29)
(nav-graph-method-30 () none 30)
(nav-graph-method-31 () none 31)
(nav-graph-method-32 () none 32)
(nav-graph-method-33 () none 33)
(nav-graph-method-34 () none 34)
(nav-graph-method-35 () none 35)
(nav-graph-method-36 () none 36)
(nav-graph-method-37 () none 37)
(new (symbol type int int int uint) _type_ 0)
(nav-graph-method-9 (_type_) none 9)
(nav-graph-method-10 (_type_ vector int) none 10)
(nav-graph-method-11 (_type_) none 11)
(nav-graph-method-12 (_type_) none 12)
(nav-graph-method-13 (_type_ int int) none 13)
(nav-graph-method-14 (_type_ int int) none 14)
(nav-graph-method-15 (_type_) none 15)
(nav-graph-method-16 (_type_ int) nav-node 16)
(nav-graph-method-17 (_type_ nav-node) none 17)
(nav-graph-method-18 (_type_ nav-node int) none 18)
(nav-graph-method-19 (_type_ int int int int int int) none 19)
(nav-graph-method-20 (_type_ int int) none 20)
(nav-graph-method-21 (_type_) none 21)
(nav-graph-method-22 (_type_ int int) none 22)
(nav-graph-method-23 (_type_ int int) none 23)
(nav-graph-method-24 (_type_ int int) none 24)
(nav-graph-method-25 (_type_ symbol symbol) none 25)
(nav-graph-method-26 (_type_ symbol symbol) none 26)
(nav-graph-method-27 (_type_) none 27)
(nav-graph-method-28 (_type_) none 28)
(nav-graph-method-29 (_type_ symbol) none 29)
(nav-graph-method-30 (_type_ uint) none 30)
(nav-graph-method-31 (_type_ float) none 31)
(nav-graph-method-32 (_type_ float) none 32)
(nav-graph-method-33 (_type_ float) none 33)
(nav-graph-method-34 (_type_ float) none 34)
(nav-graph-method-35 (_type_ int) none 35)
(nav-graph-method-36 (_type_ int) none 36)
(nav-graph-method-37 (_type_ vector) none 37)
(nav-graph-method-38 () none 38)
(nav-graph-method-39 () none 39)
(nav-graph-method-40 () none 40)
(nav-graph-method-39 (_type_) none 39)
(nav-graph-method-40 (_type_ int) int 40)
(node-at-idx (_type_ int) nav-node 41)
(nav-graph-method-42 () none 42)
(nav-graph-method-43 () none 43)
(nav-graph-method-44 () none 44)
(nav-graph-method-42 (_type_) none 42)
(nav-graph-method-43 (_type_ nav-graph-link string) none 43)
(from-editor () none 44)
)
)
+952
View File
@@ -0,0 +1,952 @@
;;-*-Lisp-*-
(in-package goal)
;; definition of type vehicle-lookup-info
(deftype vehicle-lookup-info (structure)
((turn-radius meters :offset-assert 0)
(throttle-turning float :offset-assert 4)
(throttle-straight float :offset-assert 8)
)
:method-count-assert 9
:size-assert #xc
:flag-assert #x90000000c
)
;; definition for method 3 of type vehicle-lookup-info
(defmethod inspect vehicle-lookup-info ((obj vehicle-lookup-info))
(when (not obj)
(set! obj obj)
(goto cfg-4)
)
(format #t "[~8x] ~A~%" obj 'vehicle-lookup-info)
(format #t "~1Tturn-radius: (meters ~m)~%" (-> obj turn-radius))
(format #t "~1Tthrottle-turning: ~f~%" (-> obj throttle-turning))
(format #t "~1Tthrottle-straight: ~f~%" (-> obj throttle-straight))
(label cfg-4)
obj
)
;; definition of type vehicle-control-point
(deftype vehicle-control-point (structure)
((local-pos vector :inline :offset-assert 0)
(normal vector :inline :offset-assert 16)
)
:method-count-assert 9
:size-assert #x20
:flag-assert #x900000020
)
;; definition for method 3 of type vehicle-control-point
(defmethod inspect vehicle-control-point ((obj vehicle-control-point))
(when (not obj)
(set! obj obj)
(goto cfg-4)
)
(format #t "[~8x] ~A~%" obj 'vehicle-control-point)
(format #t "~1Tlocal-pos: #<vector @ #x~X>~%" (-> obj local-pos))
(format #t "~1Tnormal: #<vector @ #x~X>~%" (-> obj normal))
(label cfg-4)
obj
)
;; definition of type vehicle-section-info
(deftype vehicle-section-info (structure)
((damage-seg-array uint64 3 :offset-assert 0)
(damage-seg-count int8 :offset-assert 24)
)
:method-count-assert 9
:size-assert #x19
:flag-assert #x900000019
)
;; definition for method 3 of type vehicle-section-info
(defmethod inspect vehicle-section-info ((obj vehicle-section-info))
(when (not obj)
(set! obj obj)
(goto cfg-4)
)
(format #t "[~8x] ~A~%" obj 'vehicle-section-info)
(format #t "~1Tdamage-seg-array[3] @ #x~X~%" (-> obj damage-seg-array))
(format #t "~1Tdamage-seg-count: ~D~%" (-> obj damage-seg-count))
(label cfg-4)
obj
)
;; definition of type vehicle-seat-info
(deftype vehicle-seat-info (structure)
((data uint8 16 :offset-assert 0)
(position vector :inline :offset 0)
(pos-x float :offset 0)
(pos-y float :offset 4)
(pos-z float :offset 8)
(angle int16 :offset 12)
(flags uint8 :offset 14)
)
:method-count-assert 9
:size-assert #x10
:flag-assert #x900000010
)
;; definition for method 3 of type vehicle-seat-info
(defmethod inspect vehicle-seat-info ((obj vehicle-seat-info))
(when (not obj)
(set! obj obj)
(goto cfg-4)
)
(format #t "[~8x] ~A~%" obj 'vehicle-seat-info)
(format #t "~1Tdata[16] @ #x~X~%" (-> obj position))
(format #t "~1Tposition: #<vector @ #x~X>~%" (-> obj position))
(format #t "~1Tpos-x: ~f~%" (-> obj position x))
(format #t "~1Tpos-y: ~f~%" (-> obj position y))
(format #t "~1Tpos-z: ~f~%" (-> obj position z))
(format #t "~1Tangle: ~D~%" (-> obj angle))
(format #t "~1Tflags: ~D~%" (-> obj flags))
(label cfg-4)
obj
)
;; definition of type vehicle-explosion-info
(deftype vehicle-explosion-info (joint-exploder-static-params)
((skel basic :offset-assert 16)
(skel-name basic :offset-assert 20)
(anim int32 :offset-assert 24)
)
:method-count-assert 9
:size-assert #x1c
:flag-assert #x90000001c
)
;; definition for method 3 of type vehicle-explosion-info
(defmethod inspect vehicle-explosion-info ((obj vehicle-explosion-info))
(when (not obj)
(set! obj obj)
(goto cfg-4)
)
(format #t "[~8x] ~A~%" obj (-> obj type))
(format #t "~1Tjoints: ~A~%" (-> obj joints))
(format #t "~1Tcollide-spec: ~D~%" (-> obj collide-spec))
(format #t "~1Tart-level: ~A~%" (-> obj art-level))
(format #t "~1Tskel: ~A~%" (-> obj skel))
(format #t "~1Tskel-name: ~A~%" (-> obj skel-name))
(format #t "~1Tanim: ~D~%" (-> obj anim))
(label cfg-4)
obj
)
;; definition of type vehicle-grab-rail-info
(deftype vehicle-grab-rail-info (structure)
((local-pos vector 2 :inline :offset-assert 0)
(normal vector :inline :offset-assert 32)
)
:method-count-assert 9
:size-assert #x30
:flag-assert #x900000030
)
;; definition for method 3 of type vehicle-grab-rail-info
(defmethod inspect vehicle-grab-rail-info ((obj vehicle-grab-rail-info))
(when (not obj)
(set! obj obj)
(goto cfg-4)
)
(format #t "[~8x] ~A~%" obj 'vehicle-grab-rail-info)
(format #t "~1Tlocal-pos[2] @ #x~X~%" (-> obj local-pos))
(format #t "~1Tnormal: #<vector @ #x~X>~%" (-> obj normal))
(label cfg-4)
obj
)
;; definition of type rigid-body-vehicle-constants
(deftype rigid-body-vehicle-constants (rigid-body-object-constants)
((flags uint32 :offset-assert 208)
(object-type uint8 :offset-assert 212)
(guard-type uint8 :offset-assert 213)
(max-engine-thrust meters :offset-assert 216)
(inv-max-engine-thrust float :offset-assert 220)
(engine-response-rate float :offset-assert 224)
(engine-intake-factor float :offset-assert 228)
(brake-factor float :offset-assert 232)
(turbo-boost-factor float :offset-assert 236)
(max-xz-speed meters :offset-assert 240)
(ground-probe-distance meters :offset-assert 244)
(ground-probe-offset meters :offset-assert 248)
(cos-ground-effect-angle float :offset-assert 252)
(spring-lift-factor float :offset-assert 256)
(air-steering-factor float :offset-assert 260)
(air-drag-factor float :offset-assert 264)
(steering-fin-angle float :offset-assert 268)
(steering-thruster-factor float :offset-assert 272)
(steering-thruster-max-gain float :offset-assert 276)
(steering-thruster-half-gain-speed meters :offset-assert 280)
(tire-steering-angle float :offset-assert 284)
(tire-friction-factor float :offset-assert 288)
(tire-static-friction float :offset-assert 292)
(tire-static-friction-speed meters :offset-assert 296)
(tire-dynamic-friction float :offset-assert 300)
(tire-dynamic-friction-speed meters :offset-assert 304)
(tire-inv-max-friction-speed float :offset-assert 308)
(airfoil-factor float :offset-assert 312)
(drag-force-factor float :offset-assert 316)
(speed-scrubbing-drag float :offset-assert 320)
(speed-limiting-drag float :offset-assert 324)
(pitch-control-factor float :offset-assert 328)
(roll-control-factor float :offset-assert 332)
(roll-angle float :offset-assert 336)
(jump-thrust-factor float :offset-assert 340)
(buoyancy-factor float :offset-assert 344)
(player-weight float :offset-assert 348)
(player-shift-x meters :offset-assert 352)
(player-shift-z meters :offset-assert 356)
(target-speed-offset meters :offset-assert 360)
(turning-accel meters :offset-assert 364)
(toughness-factor float :offset-assert 368)
(damage-factor float :offset-assert 372)
(camera-string-min-height meters :offset-assert 376)
(camera-string-max-height meters :offset-assert 380)
(camera-string-min-length meters :offset-assert 384)
(camera-string-max-length meters :offset-assert 388)
(camera-min-fov float :offset-assert 392)
(camera-max-fov float :offset-assert 396)
(camera-head-offset float :offset-assert 400)
(camera-foot-offset float :offset-assert 404)
(camera-normal-max-angle-offset float :offset-assert 408)
(camera-air-max-angle-offset float :offset-assert 412)
(camera-max-lookaround-speed float :offset-assert 416)
(seat-count int8 :offset-assert 420)
(section-count int8 :offset-assert 421)
(rider-stance uint8 :offset-assert 422)
(grab-rail-count int8 :offset-assert 423)
(grab-rail-array uint32 :offset-assert 424)
(seat-array vehicle-seat-info 4 :inline :offset-assert 432)
(rider-hand-offset vector 2 :inline :offset-assert 496)
(section-array vehicle-section-info 4 :inline :offset-assert 528)
(section-bike-front vehicle-section-info :inline :offset 528)
(section-bike-rear vehicle-section-info :inline :offset 560)
(section-car-front-left vehicle-section-info :inline :offset 528)
(section-car-rear-left vehicle-section-info :inline :offset 560)
(section-car-front-right vehicle-section-info :inline :offset 592)
(section-car-rear-right vehicle-section-info :inline :offset 624)
(explosion basic :offset-assert 656)
(engine-pitch-scale float :offset-assert 660)
(engine-pitch-offset float :offset-assert 664)
(engine-pitch-mod-amp float :offset-assert 668)
(engine-sound-select int8 :offset-assert 672)
(engine-sound uint128 :offset-assert 688)
(thrust-sound uint128 :offset-assert 704)
(scrape-sound uint128 :offset-assert 720)
(glance-sound uint128 :offset-assert 736)
(impact-sound uint128 :offset-assert 752)
(extra-sound uint128 :offset-assert 768)
(explosion-part int32 :offset-assert 784)
(headlight-count int8 :offset-assert 788)
(taillight-count int8 :offset-assert 789)
(thruster-flame-width meters :offset-assert 792)
(thruster-flame-length meters :offset-assert 796)
(thruster-local-pos vector 2 :inline :offset-assert 800)
(exhaust-local-pos vector 2 :inline :offset-assert 832)
(exhaust-local-dir vector 2 :inline :offset-assert 864)
(smoke-local-pos vector 2 :inline :offset-assert 896)
(smoke-local-vel vector 2 :inline :offset-assert 928)
(headlight-local-pos vector 3 :inline :offset-assert 960)
(taillight-local-pos vector 2 :inline :offset-assert 1008)
(lift-thruster-count int8 :offset-assert 1040)
(roll-thruster-count int8 :offset-assert 1041)
(steering-thruster-count int8 :offset-assert 1042)
(stabilizer-count int8 :offset-assert 1043)
(inv-lift-thruster-count float :offset-assert 1044)
(pad int8 8 :offset-assert 1048)
(lift-thruster-array vector4w-2 2 :inline :offset-assert 1056)
(roll-thruster-array vector4w-2 2 :inline :offset-assert 1120)
(steering-thruster-array vector4w-2 2 :inline :offset-assert 1184)
(stabilizer-array vector4w-2 6 :inline :offset-assert 1248)
(engine-thrust-local-pos vector :inline :offset-assert 1440)
(brake-local-pos vector :inline :offset-assert 1456)
(particle-system-2d basic :offset-assert 1472)
(particle-system-3d basic :offset-assert 1476)
(part-thruster basic :offset-assert 1480)
(part-thruster-scale-x sp-field-init-spec :offset-assert 1484)
(part-thruster-scale-y sp-field-init-spec :offset-assert 1488)
(part-quat quaternion :offset-assert 1492)
(part-vel vector :offset-assert 1496)
(color-option-count int8 :offset-assert 1500)
(color-option-select int8 :offset-assert 1501)
(color-option-array uint32 :offset-assert 1504)
(sample-dir vector :inline :offset-assert 1520)
(sample-time time-frame :offset-assert 1536)
(sample-index int32 :offset-assert 1544)
)
:method-count-assert 11
:size-assert #x60c
:flag-assert #xb0000060c
(:methods
(rigid-body-vehicle-constants-method-9 () none 9)
(rigid-body-vehicle-constants-method-10 () none 10)
)
)
;; definition for method 3 of type rigid-body-vehicle-constants
;; INFO: Used lq/sq
(defmethod inspect rigid-body-vehicle-constants ((obj rigid-body-vehicle-constants))
(when (not obj)
(set! obj obj)
(goto cfg-4)
)
(format #t "[~8x] ~A~%" obj 'rigid-body-vehicle-constants)
(format #t "~1Tinfo: #<rigid-body-info @ #x~X>~%" (&-> obj mass))
(format #t "~1Tmass: ~f~%" (-> obj mass))
(format #t "~1Tinv-mass: ~f~%" (-> obj inv-mass))
(format #t "~1Tcm-joint-x: (meters ~m)~%" (-> obj cm-joint-x))
(format #t "~1Tcm-joint-y: (meters ~m)~%" (-> obj cm-joint-y))
(format #t "~1Tcm-joint-z: (meters ~m)~%" (-> obj cm-joint-z))
(format #t "~1Tlinear-damping: ~f~%" (-> obj linear-damping))
(format #t "~1Tangular-damping: ~f~%" (-> obj angular-damping))
(format #t "~1Tbounce-factor: ~f~%" (-> obj bounce-factor))
(format #t "~1Tfriction-factor: ~f~%" (-> obj friction-factor))
(format #t "~1Tinertial-tensor-x: (meters ~m)~%" (-> obj inertial-tensor-x))
(format #t "~1Tinertial-tensor-y: (meters ~m)~%" (-> obj inertial-tensor-y))
(format #t "~1Tinertial-tensor-z: (meters ~m)~%" (-> obj inertial-tensor-z))
(format #t "~1Textra: #<rigid-body-object-extra-info @ #x~X>~%" (&-> obj max-time-step))
(format #t "~1Tmax-time-step: ~f~%" (-> obj max-time-step))
(format #t "~1Tgravity: (meters ~m)~%" (-> obj gravity))
(format #t "~1Tidle-distance: (meters ~m)~%" (-> obj idle-distance))
(format #t "~1Tattack-force-scale: ~f~%" (-> obj attack-force-scale))
(format #t "~1Tname: ~A~%" (-> obj name))
(format #t "~1Tflags: ~D~%" (-> obj flags))
(format #t "~1Tobject-type: ~D~%" (-> obj object-type))
(format #t "~1Tguard-type: ~D~%" (-> obj guard-type))
(format #t "~1Tmax-engine-thrust: (meters ~m)~%" (-> obj max-engine-thrust))
(format #t "~1Tinv-max-engine-thrust: ~f~%" (-> obj inv-max-engine-thrust))
(format #t "~1Tengine-response-rate: ~f~%" (-> obj engine-response-rate))
(format #t "~1Tengine-intake-factor: ~f~%" (-> obj engine-intake-factor))
(format #t "~1Tbrake-factor: ~f~%" (-> obj brake-factor))
(format #t "~1Tturbo-boost-factor: ~f~%" (-> obj turbo-boost-factor))
(format #t "~1Tmax-xz-speed: (meters ~m)~%" (-> obj max-xz-speed))
(format #t "~1Tground-probe-distance: (meters ~m)~%" (-> obj ground-probe-distance))
(format #t "~1Tground-probe-offset: (meters ~m)~%" (-> obj ground-probe-offset))
(format #t "~1Tcos-ground-effect-angle: ~f~%" (-> obj cos-ground-effect-angle))
(format #t "~1Tspring-lift-factor: ~f~%" (-> obj spring-lift-factor))
(format #t "~1Tair-steering-factor: ~f~%" (-> obj air-steering-factor))
(format #t "~1Tair-drag-factor: ~f~%" (-> obj air-drag-factor))
(format #t "~1Tsteering-fin-angle: ~f~%" (-> obj steering-fin-angle))
(format #t "~1Tsteering-thruster-factor: ~f~%" (-> obj steering-thruster-factor))
(format #t "~1Tsteering-thruster-max-gain: ~f~%" (-> obj steering-thruster-max-gain))
(format #t "~1Tsteering-thruster-half-gain-speed: (meters ~m)~%" (-> obj steering-thruster-half-gain-speed))
(format #t "~1Ttire-steering-angle: ~f~%" (-> obj tire-steering-angle))
(format #t "~1Ttire-friction-factor: ~f~%" (-> obj tire-friction-factor))
(format #t "~1Ttire-static-friction: ~f~%" (-> obj tire-static-friction))
(format #t "~1Ttire-static-friction-speed: (meters ~m)~%" (-> obj tire-static-friction-speed))
(format #t "~1Ttire-dynamic-friction: ~f~%" (-> obj tire-dynamic-friction))
(format #t "~1Ttire-dynamic-friction-speed: (meters ~m)~%" (-> obj tire-dynamic-friction-speed))
(format #t "~1Ttire-inv-max-friction-speed: ~f~%" (-> obj tire-inv-max-friction-speed))
(format #t "~1Tairfoil-factor: ~f~%" (-> obj airfoil-factor))
(format #t "~1Tdrag-force-factor: ~f~%" (-> obj drag-force-factor))
(format #t "~1Tspeed-scrubbing-drag: ~f~%" (-> obj speed-scrubbing-drag))
(format #t "~1Tspeed-limiting-drag: ~f~%" (-> obj speed-limiting-drag))
(format #t "~1Tpitch-control-factor: ~f~%" (-> obj pitch-control-factor))
(format #t "~1Troll-control-factor: ~f~%" (-> obj roll-control-factor))
(format #t "~1Troll-angle: ~f~%" (-> obj roll-angle))
(format #t "~1Tjump-thrust-factor: ~f~%" (-> obj jump-thrust-factor))
(format #t "~1Tbuoyancy-factor: ~f~%" (-> obj buoyancy-factor))
(format #t "~1Tplayer-weight: ~f~%" (-> obj player-weight))
(format #t "~1Tplayer-shift-x: (meters ~m)~%" (-> obj player-shift-x))
(format #t "~1Tplayer-shift-z: (meters ~m)~%" (-> obj player-shift-z))
(format #t "~1Ttarget-speed-offset: (meters ~m)~%" (-> obj target-speed-offset))
(format #t "~1Tturning-accel: (meters ~m)~%" (-> obj turning-accel))
(format #t "~1Ttoughness-factor: ~f~%" (-> obj toughness-factor))
(format #t "~1Tdamage-factor: ~f~%" (-> obj damage-factor))
(format #t "~1Tcamera-string-min-height: (meters ~m)~%" (-> obj camera-string-min-height))
(format #t "~1Tcamera-string-max-height: (meters ~m)~%" (-> obj camera-string-max-height))
(format #t "~1Tcamera-string-min-length: (meters ~m)~%" (-> obj camera-string-min-length))
(format #t "~1Tcamera-string-max-length: (meters ~m)~%" (-> obj camera-string-max-length))
(format #t "~1Tcamera-min-fov: ~f~%" (-> obj camera-min-fov))
(format #t "~1Tcamera-max-fov: ~f~%" (-> obj camera-max-fov))
(format #t "~1Tcamera-head-offset: ~f~%" (-> obj camera-head-offset))
(format #t "~1Tcamera-foot-offset: ~f~%" (-> obj camera-foot-offset))
(format #t "~1Tcamera-normal-max-angle-offset: ~f~%" (-> obj camera-normal-max-angle-offset))
(format #t "~1Tcamera-air-max-angle-offset: ~f~%" (-> obj camera-air-max-angle-offset))
(format #t "~1Tcamera-max-lookaround-speed: ~f~%" (-> obj camera-max-lookaround-speed))
(format #t "~1Tseat-count: ~D~%" (-> obj seat-count))
(format #t "~1Tsection-count: ~D~%" (-> obj section-count))
(format #t "~1Trider-stance: ~D~%" (-> obj rider-stance))
(format #t "~1Tgrab-rail-count: ~D~%" (-> obj grab-rail-count))
(format #t "~1Tgrab-rail-array: #x~X~%" (-> obj grab-rail-array))
(format #t "~1Tseat-array[4] @ #x~X~%" (-> obj seat-array))
(format #t "~1Trider-hand-offset[2] @ #x~X~%" (-> obj rider-hand-offset))
(format #t "~1Tsection-array[4] @ #x~X~%" (-> obj section-bike-front))
(format #t "~1Tsection-bike-front: #<vehicle-section-info @ #x~X>~%" (-> obj section-bike-front))
(format #t "~1Tsection-bike-rear: #<vehicle-section-info @ #x~X>~%" (-> obj section-bike-rear))
(format #t "~1Tsection-car-front-left: #<vehicle-section-info @ #x~X>~%" (-> obj section-bike-front))
(format #t "~1Tsection-car-rear-left: #<vehicle-section-info @ #x~X>~%" (-> obj section-bike-rear))
(format #t "~1Tsection-car-front-right: #<vehicle-section-info @ #x~X>~%" (-> obj section-car-front-right))
(format #t "~1Tsection-car-rear-right: #<vehicle-section-info @ #x~X>~%" (-> obj section-car-rear-right))
(format #t "~1Texplosion: ~A~%" (-> obj explosion))
(format #t "~1Tengine-pitch-scale: ~f~%" (-> obj engine-pitch-scale))
(format #t "~1Tengine-pitch-offset: ~f~%" (-> obj engine-pitch-offset))
(format #t "~1Tengine-pitch-mod-amp: ~f~%" (-> obj engine-pitch-mod-amp))
(format #t "~1Tengine-sound-select: ~D~%" (-> obj engine-sound-select))
(format #t "~1Tengine-sound: ~D~%" (-> obj engine-sound))
(format #t "~1Tthrust-sound: ~D~%" (-> obj thrust-sound))
(format #t "~1Tscrape-sound: ~D~%" (-> obj scrape-sound))
(format #t "~1Tglance-sound: ~D~%" (-> obj glance-sound))
(format #t "~1Timpact-sound: ~D~%" (-> obj impact-sound))
(format #t "~1Textra-sound: ~D~%" (-> obj extra-sound))
(format #t "~1Texplosion-part: ~D~%" (-> obj explosion-part))
(format #t "~1Theadlight-count: ~D~%" (-> obj headlight-count))
(format #t "~1Ttaillight-count: ~D~%" (-> obj taillight-count))
(format #t "~1Tthruster-flame-width: (meters ~m)~%" (-> obj thruster-flame-width))
(format #t "~1Tthruster-flame-length: (meters ~m)~%" (-> obj thruster-flame-length))
(format #t "~1Tthruster-local-pos[2] @ #x~X~%" (-> obj thruster-local-pos))
(format #t "~1Texhaust-local-pos[2] @ #x~X~%" (-> obj exhaust-local-pos))
(format #t "~1Texhaust-local-dir[2] @ #x~X~%" (-> obj exhaust-local-dir))
(format #t "~1Tsmoke-local-pos[2] @ #x~X~%" (-> obj smoke-local-pos))
(format #t "~1Tsmoke-local-vel[2] @ #x~X~%" (-> obj smoke-local-vel))
(format #t "~1Theadlight-local-pos[3] @ #x~X~%" (-> obj headlight-local-pos))
(format #t "~1Ttaillight-local-pos[2] @ #x~X~%" (-> obj taillight-local-pos))
(format #t "~1Tlift-thruster-count: ~D~%" (-> obj lift-thruster-count))
(format #t "~1Troll-thruster-count: ~D~%" (-> obj roll-thruster-count))
(format #t "~1Tsteering-thruster-count: ~D~%" (-> obj steering-thruster-count))
(format #t "~1Tstabilizer-count: ~D~%" (-> obj stabilizer-count))
(format #t "~1Tinv-lift-thruster-count: ~f~%" (-> obj inv-lift-thruster-count))
(format #t "~1Tlift-thruster-array[2] @ #x~X~%" (-> obj lift-thruster-array))
(format #t "~1Troll-thruster-array[2] @ #x~X~%" (-> obj roll-thruster-array))
(format #t "~1Tsteering-thruster-array[2] @ #x~X~%" (-> obj steering-thruster-array))
(format #t "~1Tstabilizer-array[6] @ #x~X~%" (-> obj stabilizer-array))
(format #t "~1Tengine-thrust-local-pos: #<vector @ #x~X>~%" (-> obj engine-thrust-local-pos))
(format #t "~1Tbrake-local-pos: #<vector @ #x~X>~%" (-> obj brake-local-pos))
(format #t "~1Tparticle-system-2d: ~A~%" (-> obj particle-system-2d))
(format #t "~1Tparticle-system-3d: ~A~%" (-> obj particle-system-3d))
(format #t "~1Tpart-thruster: ~A~%" (-> obj part-thruster))
(format #t "~1Tpart-thruster-scale-x: #<sp-field-init-spec @ #x~X>~%" (-> obj part-thruster-scale-x))
(format #t "~1Tpart-thruster-scale-y: #<sp-field-init-spec @ #x~X>~%" (-> obj part-thruster-scale-y))
(format #t "~1Tpart-quat: #<quaternion @ #x~X>~%" (-> obj part-quat))
(format #t "~1Tpart-vel: #<vector @ #x~X>~%" (-> obj part-vel))
(format #t "~1Tcolor-option-count: ~D~%" (-> obj color-option-count))
(format #t "~1Tcolor-option-select: ~D~%" (-> obj color-option-select))
(format #t "~1Tcolor-option-array: #x~X~%" (-> obj color-option-array))
(format #t "~1Tsample-dir: #<vector @ #x~X>~%" (-> obj sample-dir))
(format #t "~1Tsample-time: ~D~%" (-> obj sample-time))
(format #t "~1Tsample-index: ~D~%" (-> obj sample-index))
(label cfg-4)
obj
)
;; definition of type vehicle-controller
(deftype vehicle-controller (structure)
((flags vehicle-controller-flag :offset-assert 0)
(traffic symbol :offset-assert 4)
(branch nav-branch :offset-assert 8)
(target-speed-offset meters :offset-assert 12)
(target-speed meters :offset-assert 16)
(choose-branch-callback symbol :offset-assert 20)
(turn-accel meters :offset-assert 24)
(max-turn-speed meters :offset-assert 28)
(path-prev-point vector :inline :offset-assert 32)
(turn-enter-point vector :inline :offset-assert 48)
(turn-exit-point vector :inline :offset-assert 64)
(path-dest-point vector :inline :offset 64)
(turn-enter-dir vector :inline :offset-assert 80)
(turn-exit-dir vector :inline :offset-assert 96)
(dest-circle vector :inline :offset-assert 112)
(target-point vector :inline :offset-assert 128)
)
:method-count-assert 22
:size-assert #x90
:flag-assert #x1600000090
(:methods
(vehicle-controller-method-9 () none 9)
(vehicle-controller-method-10 () none 10)
(vehicle-controller-method-11 () none 11)
(vehicle-controller-method-12 () none 12)
(vehicle-controller-method-13 () none 13)
(vehicle-controller-method-14 () none 14)
(vehicle-controller-method-15 () none 15)
(vehicle-controller-method-16 () none 16)
(vehicle-controller-method-17 () none 17)
(vehicle-controller-method-18 () none 18)
(vehicle-controller-method-19 () none 19)
(vehicle-controller-method-20 () none 20)
(vehicle-controller-method-21 () none 21)
)
)
;; definition for method 3 of type vehicle-controller
(defmethod inspect vehicle-controller ((obj vehicle-controller))
(when (not obj)
(set! obj obj)
(goto cfg-28)
)
(format #t "[~8x] ~A~%" obj 'vehicle-controller)
(format #t "~1Tflags: #x~X : (vehicle-controller-flag " (-> obj flags))
(let ((s5-0 (-> obj flags)))
(if (= (logand s5-0 (vehicle-controller-flag do-turn)) (vehicle-controller-flag do-turn))
(format #t "do-turn ")
)
(if (= (logand s5-0 (vehicle-controller-flag off-path)) (vehicle-controller-flag off-path))
(format #t "off-path ")
)
(if (= (logand s5-0 (vehicle-controller-flag attached)) (vehicle-controller-flag attached))
(format #t "attached ")
)
(if (= (logand s5-0 (vehicle-controller-flag no-slowing-for-turns))
(vehicle-controller-flag no-slowing-for-turns)
)
(format #t "no-slowing-for-turns ")
)
(if (= (logand s5-0 (vehicle-controller-flag recovery-mode)) (vehicle-controller-flag recovery-mode))
(format #t "recovery-mode ")
)
(if (= (logand s5-0 (vehicle-controller-flag blocking-dest-node)) (vehicle-controller-flag blocking-dest-node))
(format #t "blocking-dest-node ")
)
(if (= (logand s5-0 (vehicle-controller-flag direct-mode)) (vehicle-controller-flag direct-mode))
(format #t "direct-mode ")
)
(if (= (logand s5-0 (vehicle-controller-flag ignore-others)) (vehicle-controller-flag ignore-others))
(format #t "ignore-others ")
)
(if (= (logand s5-0 (vehicle-controller-flag debug)) (vehicle-controller-flag debug))
(format #t "debug ")
)
(if (= (logand s5-0 (vehicle-controller-flag on-straightaway)) (vehicle-controller-flag on-straightaway))
(format #t "on-straightaway ")
)
(if (= (logand s5-0 (vehicle-controller-flag draw-marks)) (vehicle-controller-flag draw-marks))
(format #t "draw-marks ")
)
(if (= (logand s5-0 (vehicle-controller-flag left-turn)) (vehicle-controller-flag left-turn))
(format #t "left-turn ")
)
)
(format #t ")~%")
(format #t "~1Ttraffic: ~A~%" (-> obj traffic))
(format #t "~1Tbranch: #<nav-branch @ #x~X>~%" (-> obj branch))
(format #t "~1Ttarget-speed-offset: (meters ~m)~%" (-> obj target-speed-offset))
(format #t "~1Ttarget-speed: (meters ~m)~%" (-> obj target-speed))
(format #t "~1Tchoose-branch-callback: ~A~%" (-> obj choose-branch-callback))
(format #t "~1Tturn-accel: (meters ~m)~%" (-> obj turn-accel))
(format #t "~1Tmax-turn-speed: (meters ~m)~%" (-> obj max-turn-speed))
(format #t "~1Tpath-prev-point: ~`vector`P~%" (-> obj path-prev-point))
(format #t "~1Tturn-enter-point: ~`vector`P~%" (-> obj turn-enter-point))
(format #t "~1Tturn-exit-point: ~`vector`P~%" (-> obj turn-exit-point))
(format #t "~1Tpath-dest-point: #<vector @ #x~X>~%" (-> obj turn-exit-point))
(format #t "~1Tturn-enter-dir: ~`vector`P~%" (-> obj turn-enter-dir))
(format #t "~1Tturn-exit-dir: ~`vector`P~%" (-> obj turn-exit-dir))
(format #t "~1Tdest-circle: ~`vector`P~%" (-> obj dest-circle))
(format #t "~1Ttarget-point: ~`vector`P~%" (-> obj target-point))
(label cfg-28)
obj
)
;; definition of type vehicle-section
(deftype vehicle-section (structure)
((damage float :offset-assert 0)
)
:method-count-assert 9
:size-assert #x4
:flag-assert #x900000004
)
;; definition for method 3 of type vehicle-section
(defmethod inspect vehicle-section ((obj vehicle-section))
(when (not obj)
(set! obj obj)
(goto cfg-4)
)
(format #t "[~8x] ~A~%" obj 'vehicle-section)
(format #t "~1Tdamage: ~f~%" (-> obj damage))
(label cfg-4)
obj
)
;; definition of type vehicle
(deftype vehicle (rigid-body-object)
((pad uint32 4 :offset-assert 272)
(controls vehicle-controls :inline :offset-assert 288)
(prev-controls vehicle-controls :inline :offset-assert 304)
(up-dir vector :inline :offset-assert 320)
(jump-time float :offset-assert 336)
(jump-thrust float :offset-assert 340)
(engine-thrust float :offset-assert 344)
(engine-power-factor float :offset-assert 348)
(force-scale float :offset-assert 352)
(target-distance2 meters :offset-assert 356)
(pad0 uint32 :offset-assert 360)
(target-acceleration vector :inline :offset-assert 368)
(impact-pos vector :inline :offset-assert 384)
(lin-acceleration vector :inline :offset-assert 400)
(hit-points float :offset-assert 416)
(damage-factor float :offset-assert 420)
(crash-level int8 :offset-assert 424)
(force-level int8 :offset-assert 425)
(traffic-hash-id int8 :offset-assert 426)
(traffic-priority-id int8 :offset-assert 427)
(power-fluctuation-factor float :offset-assert 428)
(power-level float :offset-assert 432)
(flight-level-index int8 :offset-assert 436)
(flight-level-index-prev int8 :offset-assert 437)
(overlap-player-counter uint8 :offset-assert 438)
(physics-counter uint8 :offset-assert 439)
(flight-level float :offset-assert 440)
(brake-factor float :offset-assert 444)
(cam-speed-interp float :offset-assert 448)
(camera-dist2 float :offset-assert 452)
(player-dist2 float :offset-assert 456)
(bound-radius float :offset-assert 460)
(rider-array int64 4 :offset-assert 464)
(lift-thrust float 2 :offset-assert 496)
(roll-thrust float 2 :offset-assert 504)
(sent-attack-time time-frame :offset-assert 512)
(air-time time-frame :offset-assert 520)
(turn-time time-frame :offset-assert 528)
(crash-time time-frame :offset-assert 536)
(transition-time time-frame :offset-assert 544)
(transition-end-time time-frame :offset-assert 552)
(turbo-boost-time time-frame :offset-assert 560)
(crash-duration uint16 :offset-assert 568)
(turbo-boost-duration uint16 :offset-assert 570)
(turbo-boost-factor float :offset-assert 572)
(crash-impulse float :offset-assert 576)
(water-height float :offset-assert 580)
(lights-factor float :offset-assert 584)
(outgoing-attack-id uint32 :offset-assert 588)
(scrape-sound-id sound-id :offset-assert 592)
(engine-sound-id sound-id :offset-assert 596)
(thrust-sound-id sound-id :offset-assert 600)
(roll-sound-id sound-id :offset-assert 604)
(damage-pop-sound-id sound-id :offset-assert 608)
(damage-zap-sound-id sound-id :offset-assert 612)
(extra-sound-id sound-id :offset-assert 616)
(fog-fade float :offset-assert 620)
(scrape-sound-envelope float :offset-assert 624)
(engine-sound-envelope float :offset-assert 628)
(engine-sound-factor float :offset-assert 632)
(sputter-sound-envelope float :offset-assert 636)
(rudder-sound-envelope float :offset-assert 640)
(fins-sound-envelope float :offset-assert 644)
(exhaust-part-accum basic 2 :offset-assert 648)
(smoke-part-accum basic 2 :offset-assert 656)
(controller vehicle-controller :inline :offset-assert 672)
(section-array vehicle-section 4 :inline :offset-assert 816)
)
:heap-base #x2f0
:method-count-assert 144
:size-assert #x370
:flag-assert #x9002f00370
(:methods
(vehicle-method-53 () none 53)
(vehicle-method-54 () none 54)
(vehicle-method-55 () none 55)
(vehicle-method-56 () none 56)
(vehicle-method-57 () none 57)
(vehicle-method-58 () none 58)
(vehicle-method-59 () none 59)
(vehicle-method-60 () none 60)
(vehicle-method-61 () none 61)
(vehicle-method-62 () none 62)
(vehicle-method-63 () none 63)
(vehicle-method-64 () none 64)
(vehicle-method-65 () none 65)
(vehicle-method-66 () none 66)
(vehicle-method-67 () none 67)
(vehicle-method-68 () none 68)
(vehicle-method-69 () none 69)
(vehicle-method-70 () none 70)
(vehicle-method-71 () none 71)
(vehicle-method-72 () none 72)
(vehicle-method-73 () none 73)
(vehicle-method-74 () none 74)
(vehicle-method-75 () none 75)
(vehicle-method-76 () none 76)
(vehicle-method-77 () none 77)
(vehicle-method-78 () none 78)
(vehicle-method-79 () none 79)
(vehicle-method-80 () none 80)
(vehicle-method-81 () none 81)
(vehicle-method-82 () none 82)
(vehicle-method-83 () none 83)
(vehicle-method-84 () none 84)
(vehicle-method-85 () none 85)
(vehicle-method-86 () none 86)
(vehicle-method-87 () none 87)
(vehicle-method-88 () none 88)
(vehicle-method-89 () none 89)
(vehicle-method-90 () none 90)
(vehicle-method-91 () none 91)
(vehicle-method-92 () none 92)
(vehicle-method-93 () none 93)
(vehicle-method-94 () none 94)
(vehicle-method-95 () none 95)
(vehicle-method-96 () none 96)
(vehicle-method-97 () none 97)
(vehicle-method-98 () none 98)
(vehicle-method-99 () none 99)
(vehicle-method-100 () none 100)
(vehicle-method-101 () none 101)
(vehicle-method-102 () none 102)
(vehicle-method-103 () none 103)
(vehicle-method-104 () none 104)
(vehicle-method-105 () none 105)
(vehicle-method-106 () none 106)
(vehicle-method-107 () none 107)
(vehicle-method-108 () none 108)
(vehicle-method-109 () none 109)
(vehicle-method-110 () none 110)
(vehicle-method-111 () none 111)
(vehicle-method-112 () none 112)
(vehicle-method-113 () none 113)
(vehicle-method-114 () none 114)
(vehicle-method-115 () none 115)
(vehicle-method-116 () none 116)
(vehicle-method-117 () none 117)
(vehicle-method-118 () none 118)
(vehicle-method-119 () none 119)
(vehicle-method-120 () none 120)
(vehicle-method-121 () none 121)
(vehicle-method-122 () none 122)
(vehicle-method-123 () none 123)
(vehicle-method-124 () none 124)
(vehicle-method-125 () none 125)
(vehicle-method-126 () none 126)
(vehicle-method-127 () none 127)
(vehicle-method-128 () none 128)
(vehicle-method-129 () none 129)
(vehicle-method-130 () none 130)
(vehicle-method-131 () none 131)
(vehicle-method-132 () none 132)
(vehicle-method-133 () none 133)
(vehicle-method-134 () none 134)
(vehicle-method-135 () none 135)
(vehicle-method-136 () none 136)
(vehicle-method-137 () none 137)
(vehicle-method-138 () none 138)
(vehicle-method-139 () none 139)
(vehicle-method-140 () none 140)
(vehicle-method-141 () none 141)
(vehicle-method-142 () none 142)
(vehicle-method-143 () none 143)
)
)
;; definition for method 3 of type vehicle
(defmethod inspect vehicle ((obj vehicle))
(when (not obj)
(set! obj obj)
(goto cfg-92)
)
(let ((t9-0 (method-of-type rigid-body-object inspect)))
(t9-0 obj)
)
(format #t "~2Tflags: #x~X : (vehicle-flag " (-> obj flags))
(let ((s5-0 (-> obj flags)))
(if (= (logand (rigid-body-object-flag lights-update) s5-0) (shl 64 32))
(format #t "lights-update ")
)
(if (= (logand (rigid-body-object-flag camera-bike-mode) s5-0) (rigid-body-object-flag camera-bike-mode))
(format #t "camera-bike-mode ")
)
(if (= (logand (rigid-body-object-flag jump-sound) s5-0) (rigid-body-object-flag jump-sound))
(format #t "jump-sound ")
)
(if (= (logand s5-0 (rigid-body-object-flag dead)) (rigid-body-object-flag dead))
(format #t "dead ")
)
(if (= (logand s5-0 (rigid-body-object-flag waiting-for-player)) (rigid-body-object-flag waiting-for-player))
(format #t "waiting-for-player ")
)
(if (= (logand (rigid-body-object-flag no-hijack) s5-0) (shl 256 32))
(format #t "no-hijack ")
)
(if (= (logand (rigid-body-object-flag hard-turn) s5-0) (rigid-body-object-flag hard-turn))
(format #t "hard-turn ")
)
(if (= (logand (rigid-body-object-flag turbo-boost) s5-0) (rigid-body-object-flag turbo-boost))
(format #t "turbo-boost ")
)
(if (= (logand (rigid-body-object-flag in-pursuit) s5-0) (shl #x8000 16))
(format #t "in-pursuit ")
)
(if (= (logand (rigid-body-object-flag traffic-managed) s5-0) (rigid-body-object-flag traffic-managed))
(format #t "traffic-managed ")
)
(if (= (logand s5-0 (rigid-body-object-flag damaged)) (rigid-body-object-flag damaged))
(format #t "damaged ")
)
(if (= (logand s5-0 (rigid-body-object-flag player-contact-force)) (rigid-body-object-flag player-contact-force))
(format #t "player-contact-force ")
)
(if (= (logand (rigid-body-object-flag player-grabbed) s5-0) (shl 512 32))
(format #t "player-grabbed ")
)
(if (= (logand (rigid-body-object-flag flight-level-transition-ending) s5-0)
(rigid-body-object-flag flight-level-transition-ending)
)
(format #t "flight-level-transition-ending ")
)
(if (= (logand (rigid-body-object-flag alert) s5-0) (rigid-body-object-flag alert))
(format #t "alert ")
)
(if (= (logand s5-0 (rigid-body-object-flag disturbed)) (rigid-body-object-flag disturbed))
(format #t "disturbed ")
)
(if (= (logand s5-0 (rigid-body-object-flag enable-collision)) (rigid-body-object-flag enable-collision))
(format #t "enable-collision ")
)
(if (= (logand s5-0 (rigid-body-object-flag player-edge-grabbing)) (rigid-body-object-flag player-edge-grabbing))
(format #t "player-edge-grabbing ")
)
(if (= (logand (rigid-body-object-flag lights-on) s5-0) (shl 32 32))
(format #t "lights-on ")
)
(if (= (logand (rigid-body-object-flag reverse-gear) s5-0) (rigid-body-object-flag reverse-gear))
(format #t "reverse-gear ")
)
(if (= (logand (rigid-body-object-flag ai-driving) s5-0) (rigid-body-object-flag ai-driving))
(format #t "ai-driving ")
)
(if (= (logand s5-0 (rigid-body-object-flag persistent)) (rigid-body-object-flag persistent))
(format #t "persistent ")
)
(if (= (logand (rigid-body-object-flag jump) s5-0) (rigid-body-object-flag jump))
(format #t "jump ")
)
(if (= (logand s5-0 (rigid-body-object-flag riding)) (rigid-body-object-flag riding))
(format #t "riding ")
)
(if (= (logand s5-0 (rigid-body-object-flag on-flight-level)) (rigid-body-object-flag on-flight-level))
(format #t "on-flight-level ")
)
(if (= (logand (rigid-body-object-flag nav-spheres) s5-0) (shl 1024 32))
(format #t "nav-spheres ")
)
(if (= (logand s5-0 (rigid-body-object-flag player-driving)) (rigid-body-object-flag player-driving))
(format #t "player-driving ")
)
(if (= (logand (rigid-body-object-flag hack-edit-graph-mode) s5-0) (shl 8 32))
(format #t "hack-edit-graph-mode ")
)
(if (= (logand (rigid-body-object-flag camera-rapid-track-mode) s5-0)
(rigid-body-object-flag camera-rapid-track-mode)
)
(format #t "camera-rapid-tracking-mode ")
)
(if (= (logand (rigid-body-object-flag ignition) s5-0) (rigid-body-object-flag ignition))
(format #t "ignition ")
)
(if (= (logand (rigid-body-object-flag slide) s5-0) (rigid-body-object-flag slide))
(format #t "slide ")
)
(if (= (logand s5-0 (rigid-body-object-flag on-ground)) (rigid-body-object-flag on-ground))
(format #t "on-ground ")
)
(if (= (logand (rigid-body-object-flag flight-level-transition) s5-0)
(rigid-body-object-flag flight-level-transition)
)
(format #t "flight-level-transition ")
)
(if (= (logand (rigid-body-object-flag lights-dead) s5-0) (shl 128 32))
(format #t "lights-dead ")
)
(if (= (logand s5-0 (rigid-body-object-flag player-touching)) (rigid-body-object-flag player-touching))
(format #t "player-touching ")
)
(if (= (logand (rigid-body-object-flag target-in-sight) s5-0) (shl 1 32))
(format #t "target-in-sight ")
)
(if (= (logand (rigid-body-object-flag idle-sound) s5-0) (shl 2048 32))
(format #t "idle-sound ")
)
(if (= (logand s5-0 (rigid-body-object-flag in-air)) (rigid-body-object-flag in-air))
(format #t "in-air ")
)
(if (= (logand (rigid-body-object-flag draw-marks) s5-0) (shl 4 32))
(format #t "draw-marks ")
)
(if (= (logand (rigid-body-object-flag camera) s5-0) (rigid-body-object-flag camera))
(format #t "camera ")
)
(if (= (logand s5-0 (rigid-body-object-flag player-standing-on)) (rigid-body-object-flag player-standing-on))
(format #t "player-standing-on ")
)
(if (= (logand (rigid-body-object-flag measure-control-parameters) s5-0) (shl 16 32))
(format #t "measure-control-parameters ")
)
(if (= (logand s5-0 (rigid-body-object-flag player-impulse-force)) (rigid-body-object-flag player-impulse-force))
(format #t "player-impulse-force ")
)
(if (= (logand (rigid-body-object-flag rammed-target) s5-0) (shl 2 32))
(format #t "rammed-target ")
)
)
(format #t ")~%")
(format #t "~2Tcontrols: #<vehicle-controls @ #x~X>~%" (-> obj controls))
(format #t "~2Tprev-controls: #<vehicle-controls @ #x~X>~%" (-> obj prev-controls))
(format #t "~2Tup-dir: #<vector @ #x~X>~%" (-> obj up-dir))
(format #t "~2Tjump-time: ~f~%" (-> obj jump-time))
(format #t "~2Tjump-thrust: ~f~%" (-> obj jump-thrust))
(format #t "~2Tengine-thrust: ~f~%" (-> obj engine-thrust))
(format #t "~2Tengine-power-factor: ~f~%" (-> obj engine-power-factor))
(format #t "~2Tforce-scale: ~f~%" (-> obj force-scale))
(format #t "~2Ttarget-distance2: (meters ~m)~%" (-> obj target-distance2))
(format #t "~2Tpad0: ~D~%" (-> obj pad0))
(format #t "~2Ttarget-acceleration: #<vector @ #x~X>~%" (-> obj target-acceleration))
(format #t "~2Timpact-pos: #<vector @ #x~X>~%" (-> obj impact-pos))
(format #t "~2Tlin-acceleration: #<vector @ #x~X>~%" (-> obj lin-acceleration))
(format #t "~2Thit-points: ~f~%" (-> obj hit-points))
(format #t "~2Tdamage-factor: ~f~%" (-> obj damage-factor))
(format #t "~2Tcrash-level: ~D~%" (-> obj crash-level))
(format #t "~2Tforce-level: ~D~%" (-> obj force-level))
(format #t "~2Ttraffic-hash-id: ~D~%" (-> obj traffic-hash-id))
(format #t "~2Ttraffic-priority-id: ~D~%" (-> obj traffic-priority-id))
(format #t "~2Tpower-fluctuation-factor: ~f~%" (-> obj power-fluctuation-factor))
(format #t "~2Tpower-level: ~f~%" (-> obj power-level))
(format #t "~2Tflight-level-index: ~D~%" (-> obj flight-level-index))
(format #t "~2Tflight-level-index-prev: ~D~%" (-> obj flight-level-index-prev))
(format #t "~2Toverlap-player-counter: ~D~%" (-> obj overlap-player-counter))
(format #t "~2Tphysics-counter: ~D~%" (-> obj physics-counter))
(format #t "~2Tflight-level: ~f~%" (-> obj flight-level))
(format #t "~2Tbrake-factor: ~f~%" (-> obj brake-factor))
(format #t "~2Tcam-speed-interp: ~f~%" (-> obj cam-speed-interp))
(format #t "~2Tcamera-dist2: ~f~%" (-> obj camera-dist2))
(format #t "~2Tplayer-dist2: ~f~%" (-> obj player-dist2))
(format #t "~2Tbound-radius: ~f~%" (-> obj bound-radius))
(format #t "~2Trider-array[4] @ #x~X~%" (-> obj rider-array))
(format #t "~2Tlift-thrust[2] @ #x~X~%" (-> obj lift-thrust))
(format #t "~2Troll-thrust[2] @ #x~X~%" (-> obj roll-thrust))
(format #t "~2Tsent-attack-time: ~D~%" (-> obj sent-attack-time))
(format #t "~2Tair-time: ~D~%" (-> obj air-time))
(format #t "~2Tturn-time: ~D~%" (-> obj turn-time))
(format #t "~2Tcrash-time: ~D~%" (-> obj crash-time))
(format #t "~2Ttransition-time: ~D~%" (-> obj transition-time))
(format #t "~2Ttransition-end-time: ~D~%" (-> obj transition-end-time))
(format #t "~2Tturbo-boost-time: ~D~%" (-> obj turbo-boost-time))
(format #t "~2Tcrash-duration: ~D~%" (-> obj crash-duration))
(format #t "~2Tturbo-boost-duration: ~D~%" (-> obj turbo-boost-duration))
(format #t "~2Tturbo-boost-factor: ~f~%" (-> obj turbo-boost-factor))
(format #t "~2Tcrash-impulse: ~f~%" (-> obj crash-impulse))
(format #t "~2Twater-height: ~f~%" (-> obj water-height))
(format #t "~2Tlights-factor: ~f~%" (-> obj lights-factor))
(format #t "~2Toutgoing-attack-id: ~D~%" (-> obj outgoing-attack-id))
(format #t "~2Tscrape-sound-id: ~D~%" (-> obj scrape-sound-id))
(format #t "~2Tengine-sound-id: ~D~%" (-> obj engine-sound-id))
(format #t "~2Tthrust-sound-id: ~D~%" (-> obj thrust-sound-id))
(format #t "~2Troll-sound-id: ~D~%" (-> obj roll-sound-id))
(format #t "~2Tdamage-pop-sound-id: ~D~%" (-> obj damage-pop-sound-id))
(format #t "~2Tdamage-zap-sound-id: ~D~%" (-> obj damage-zap-sound-id))
(format #t "~2Textra-sound-id: ~D~%" (-> obj extra-sound-id))
(format #t "~2Tfog-fade: ~f~%" (-> obj fog-fade))
(format #t "~2Tscrape-sound-envelope: ~f~%" (-> obj scrape-sound-envelope))
(format #t "~2Tengine-sound-envelope: ~f~%" (-> obj engine-sound-envelope))
(format #t "~2Tengine-sound-factor: ~f~%" (-> obj engine-sound-factor))
(format #t "~2Tsputter-sound-envelope: ~f~%" (-> obj sputter-sound-envelope))
(format #t "~2Trudder-sound-envelope: ~f~%" (-> obj rudder-sound-envelope))
(format #t "~2Tfins-sound-envelope: ~f~%" (-> obj fins-sound-envelope))
(format #t "~2Texhaust-part-accum[2] @ #x~X~%" (-> obj exhaust-part-accum))
(format #t "~2Tsmoke-part-accum[2] @ #x~X~%" (-> obj smoke-part-accum))
(format #t "~2Tcontroller: #<vehicle-controller @ #x~X>~%" (-> obj controller))
(format #t "~2Tsection-array[4] @ #x~X~%" (-> obj section-array))
(label cfg-92)
obj
)
;; failed to figure out what this is:
0