decomp: weather-part (#798)

* stash

* decomp: finish what is currently possible in `time-of-day`

* need to know how sp-field-init-spec's functions are called

* solved some issues, but going to be blocked by the sparticle-group-item

* decompiler: Add support for `sparticle-launch-group` from static data

* decomp: finish `weather-part`
This commit is contained in:
Tyler Wilding
2021-08-31 21:36:19 -04:00
committed by GitHub
parent 091731f1ca
commit 1c7c2132eb
19 changed files with 5440 additions and 230 deletions
+41 -37
View File
@@ -7387,11 +7387,12 @@
:size-assert #x110
:flag-assert #xb00000110
(:methods
(dummy-9 () none 9)
(dummy-10 () none 10)
(reset! (_type_) symbol 9)
(TODO-RENAME-10 (_type_ int float float vector) object 10) ; returns float or error string
)
)
(declare-type sparticle-launch-control basic)
(deftype time-of-day-proc (process)
((year int32 :offset-assert 112)
(month int32 :offset-assert 116)
@@ -7404,13 +7405,13 @@
(time-of-day float :offset-assert 144)
(time-ratio float :offset-assert 148)
(star-count int32 :offset-assert 152)
(stars basic :offset-assert 156)
(stars sparticle-launch-control :offset-assert 156)
(sun-count int32 :offset-assert 160)
(sun basic :offset-assert 164)
(sun sparticle-launch-control :offset-assert 164)
(green-sun-count int32 :offset-assert 168)
(green-sun basic :offset-assert 172)
(green-sun sparticle-launch-control :offset-assert 172)
(moon-count int32 :offset-assert 176)
(moon basic :offset-assert 180)
(moon sparticle-launch-control :offset-assert 180)
)
:heap-base #x50
:method-count-assert 14
@@ -7449,7 +7450,7 @@
(light-masks-0 uint8 2 :offset-assert 2096)
(light-masks-1 uint8 2 :offset-assert 2098)
(light-interp uint32 2 :offset-assert 2100)
(sky basic :offset-assert 2108)
(sky symbol :offset-assert 2108)
(sun-fade float :offset-assert 2112)
(title-updated symbol :offset-assert 2116)
)
@@ -13377,7 +13378,7 @@
(initial-valuef float :offset 4) ;; TODO - floats suck - some of these values end up being NaN - these should come before the int32 fields
(random-rangef float :offset 8) ;; TODO - floats suck - some of these values end up being NaN - these should come before the int32 fields
(random-multf float :offset 12) ;; TODO - floats suck - some of these values end up being NaN - these should come before the int32 fields
(func basic :offset 4)
(func symbol :offset 4)
(tex uint32 :offset 4)
(pntr uint32 :offset 4)
(sym basic :offset 4)
@@ -13441,7 +13442,7 @@
(linger-duration uint16 :offset-assert 8)
(flags uint16 :offset-assert 10)
(name basic :offset-assert 12)
(launcher sparticle-group-item :offset-assert 16)
(launcher (inline-array sparticle-group-item) :offset-assert 16)
(bounds sphere :inline :offset-assert 32)
)
:method-count-assert 10
@@ -13507,7 +13508,7 @@
(flags uint32 :offset-assert 104)
(user-int32 int32 :offset-assert 108)
(user-uint32 uint32 :offset 108)
(user-float float :offset 108)
(user-float float :score 100 :offset 108)
(user-pntr uint32 :offset 108)
(user-sprite sprite-vec-data-2d :offset 108)
(func basic :offset-assert 112)
@@ -13540,13 +13541,13 @@
)
(deftype sparticle-system (basic)
((blocks uint32 2 :offset-assert 4)
((blocks int32 2 :offset-assert 4)
(length uint32 2 :offset-assert 12)
(num-alloc uint32 2 :offset-assert 20)
(is-3d basic :offset-assert 28)
(flags uint32 :offset-assert 32)
(alloc-table uint32 :offset-assert 36)
(cpuinfo-table uint32 :offset-assert 40)
(cpuinfo-table sparticle-cpuinfo :offset-assert 40)
(vecdata-table uint32 :offset-assert 44)
(adgifdata-table uint32 :offset-assert 48)
)
@@ -13893,7 +13894,7 @@
(outro-t-step float :offset-assert 2376)
(outro-exit-value float :offset-assert 2380)
(water-drip-time uint64 :offset-assert 2384)
(water-drip basic :offset-assert 2392)
(water-drip sparticle-launch-control :offset-assert 2392)
(water-drip-mult float :offset-assert 2396)
(water-drip-speed float :offset-assert 2400)
)
@@ -16344,7 +16345,7 @@
;; - Unknowns
;;(define-extern *global-toggle* object) ;; unknown type
(define-extern *part-id-table* (array sparticle-launcher)) ;; unknown type
(define-extern *part-id-table* (array sparticle-launcher))
;;(define-extern *particle-300hz-timer* object) ;; unknown type
;;(define-extern *sp-launch-queue* object) ;; unknown type
;;(define-extern *death-adgif* object) ;; unknown type
@@ -16371,9 +16372,9 @@
(define-extern forall-particles function)
(define-extern sparticle-kill-it-level0 function)
(define-extern sparticle-kill-it-level1 function)
(define-extern forall-particles-with-key function)
(define-extern sparticle-kill-it function)
(define-extern forall-particles-with-key-runner function)
(define-extern forall-particles-with-key (function sparticle-launch-control function symbol symbol none))
(define-extern sparticle-kill-it (function sparticle-system sparticle-cpuinfo none))
(define-extern forall-particles-with-key-runner (function sparticle-launch-control function sparticle-system none)) ;; TODO - not complete!
(define-extern sp-get-approx-alloc-size function)
(define-extern sp-process-block function)
(define-extern sp-copy-to-spr function)
@@ -16383,7 +16384,7 @@
(define-extern sp-free-particle function)
(define-extern sp-particle-copy! function)
(define-extern sp-get-block-size function)
(define-extern sp-kill-particle (function process sparticle-cpuinfo none)) ;; TODO - not confirmed
(define-extern sp-kill-particle (function sparticle-system sparticle-cpuinfo none))
(define-extern sp-orbiter function)
(define-extern memcpy function)
(define-extern kill-all-particles-in-level (function int))
@@ -16393,7 +16394,7 @@
;; - Unknowns
;;(define-extern *particles-flag* object) ;; unknown type
(define-extern *sp-particle-system-2d* sparticle-system) ;; unknown type
(define-extern *sp-particle-system-2d* sparticle-system)
(define-extern *sp-particle-system-3d* sparticle-system) ;; unknown type
@@ -17205,15 +17206,15 @@
;; - Functions
(define-extern matrix-local->world (function symbol symbol matrix))
(define-extern update-snow function)
(define-extern check-drop-level-rain function)
(define-extern update-rain function)
(define-extern cam-master-effect function)
(define-extern sparticle-track-sun function)
(define-extern update-snow (function target none))
(define-extern check-drop-level-rain (function int sparticle-cpuinfo vector none)) ;; second arg is a guess, it's passed as `a1` to `sp-kill-particle`
(define-extern update-rain (function target none))
(define-extern cam-master-effect (function none :behavior camera-master))
(define-extern sparticle-track-sun (function int sparticle-cpuinfo matrix none)) ;; TODO - unused / first arg is unknown / matrix is probably wrong
;; - Unknowns
;; - Symbols
(define-extern group-rain-screend-drop sparticle-launch-group) ;; not confirmed
(define-extern group-rain-screend-drop sparticle-launch-group)
;; ----------------------
@@ -17225,20 +17226,23 @@
;; - Functions
(define-extern make-sky-textures function)
(define-extern init-time-of-day function)
(define-extern update-sky-tng-data function)
(define-extern time-of-day-update function)
(define-extern init-time-of-day (function none))
(define-extern update-sky-tng-data (function float none))
(define-extern time-of-day-update (function none))
(define-extern start-time-of-day (function int))
(define-extern time-of-day-setup (function symbol none)) ;; not confirmed
(define-extern set-time-of-day function)
(define-extern init-time-of-day-context (function time-of-day-context none))
(define-extern time-of-day-setup (function symbol none))
(define-extern set-time-of-day (function float none))
(define-extern init-time-of-day-context (function time-of-day-context float))
(define-extern update-time-of-day (function time-of-day-context none))
;; - Symbols
(define-extern time-of-day-tick state)
(define-extern time-of-day-effect (function none)) ;; only 'nothing' is stored here, looks like dead code
;; - Unknowns
;;(define-extern sky-base-polygons object) ;; unknown type
;;(define-extern time-of-day-tick object) ;; unknown type
;;(define-extern time-of-day-effect object) ;; unknown type
;; ----------------------
@@ -17290,8 +17294,8 @@
;; - Functions
(define-extern sky-add-frame-data function)
(define-extern sky-make-sun-data function)
(define-extern sky-make-moon-data function)
(define-extern sky-make-sun-data (function sky-parms int float none))
(define-extern sky-make-moon-data (function sky-parms float none))
(define-extern sky-make-light function)
(define-extern sky-init-upload-data function)
(define-extern sky-upload function)
@@ -17329,7 +17333,7 @@
;; - Unknowns
;;(define-extern *sky-work* object) ;; unknown type
;;(define-extern *sky-tng-data* object) ;; unknown type
(define-extern *sky-tng-data* sky-tng-data) ;; unknown type
;;(define-extern sky-roof-polygons object) ;; unknown type
;;(define-extern sky-cloud-polygons object) ;; unknown type
;;(define-extern sky-cloud-polygon-indices object) ;; unknown type
@@ -675,6 +675,11 @@
"miners": [
[1, "(function none :behavior minershort)"]
],
"time-of-day": [
[10, "(function none)"],
[12, "(function sparticle-system sparticle-cpuinfo int none)"]
],
"basebutton": [
[1, "(function symbol :behavior target)"]
@@ -1177,6 +1177,24 @@
"(code done auto-save)": [
[16, "event-message-block"]
],
"update-time-of-day": [
[16, "(array float)"] // TODO - broken!
],
"check-drop-level-rain": [
[16, "vector"]
],
"update-rain": [
[16, "vector"],
[32, "vector"],
[48, "event-message-block"]
],
"sparticle-track-sun": [
[16, "vector"]
],
"draw-joint-spheres": [[16, "vector"]],
"(method 16 process-drawable)": [[16, "matrix"], [80, "matrix"], [144, "vector"], [160, "vector"]],
@@ -2541,5 +2541,26 @@
[79, "v1", "int"]
],
"time-of-day-update": [
[[0, 999], "s6", "time-of-day-proc"]
],
"(anon-function 10 time-of-day)": [
[[0, 999], "s6", "time-of-day-proc"]
],
"init-time-of-day": [
[[0, 999], "s6", "time-of-day-proc"],
[[51, 54], "t9", "(function object object object)"]
],
"start-time-of-day": [
[[20, 23], "t9", "(function process function object)"]
],
"cam-master-effect": [
[[0, 999], "s6", "camera-master"]
],
"placeholder-do-not-add-below": []
}
+17
View File
@@ -447,6 +447,19 @@ goos::Object sp_field_init_spec_decompile(const std::vector<LinkedWord>& words,
TypeSpec("sp-field-init-spec"), 16);
}
goos::Object sp_launch_grp_launcher_decompile(const std::vector<LinkedWord>& words,
const std::vector<DecompilerLabel>& labels,
int my_seg,
int field_location,
const TypeSystem& ts,
const Field& data_field,
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,
data_field, all_words, file,
TypeSpec("sparticle-group-item"), 32);
}
} // namespace
goos::Object decompile_structure(const TypeSpec& type,
@@ -634,6 +647,10 @@ goos::Object decompile_structure(const TypeSpec& type,
field_defs_out.emplace_back(
field.name(), sp_field_init_spec_decompile(obj_words, labels, label.target_segment,
field_start, ts, field, words, file));
} else if (field.name() == "launcher" && type.print() == "sparticle-launch-group") {
field_defs_out.emplace_back(field.name(), sp_launch_grp_launcher_decompile(
obj_words, labels, label.target_segment,
field_start, ts, field, words, file));
} else {
if (obj_words.at(field_start / 4).kind != LinkedWord::PLAIN_DATA) {
continue;
File diff suppressed because it is too large Load Diff
+4 -1
View File
@@ -17,4 +17,7 @@
(define-perm *camera-combiner* camera-combiner #f)
(define-perm *camera-orbit-target* (pointer process-drawable) #f)
(define-extern position-in-front-of-camera! (function vector float float vector))
(define-extern position-in-front-of-camera! (function vector float float vector))
;; TODO - forward declaration for weather-part
(define-extern matrix-local->world (function symbol symbol matrix))
+1 -1
View File
@@ -421,7 +421,7 @@
(outro-t-step float :offset-assert 2376)
(outro-exit-value float :offset-assert 2380)
(water-drip-time uint64 :offset-assert 2384)
(water-drip basic :offset-assert 2392)
(water-drip sparticle-launch-control :offset-assert 2392)
(water-drip-mult float :offset-assert 2396)
(water-drip-speed float :offset-assert 2400)
)
+78 -74
View File
@@ -1612,81 +1612,85 @@
;; used for the flashing auto-save icon, I think.
(set! (-> *part-group-id-table* 656)
(new 'static 'sparticle-launch-group
:length 1
:duration #xbb8
:linger-duration #x5dc
:flags #x4
:name "group-part-save-icon"
:launcher
(new 'static 'sparticle-group-item :launcher #xa66)
:bounds (new 'static 'sphere :w 409600.0)
)
)
(set!
(-> *part-group-id-table* 656)
(new 'static 'sparticle-launch-group
:length 1
:duration #xbb8
:linger-duration #x5dc
:flags #x4
:name "group-part-save-icon"
:launcher
(new 'static 'inline-array sparticle-group-item 1
(new 'static 'sparticle-group-item :launcher #xa66)
)
:bounds (new 'static 'sphere :w 409600.0)
)
)
;; todo floats/ints for these values.
(set! (-> *part-id-table* 2662)
(new 'static 'sparticle-launcher
:init-specs
(new 'static 'inline-array sp-field-init-spec 11
(new 'static 'sp-field-init-spec :field #x1 :initial-value #x1cf06b00)
(new 'static 'sp-field-init-spec
:field #x6
:flags #x1
:initial-value #x3f800000
:random-mult #x3f800000
)
(new 'static 'sp-field-init-spec
:field #xd
:flags #x1
:initial-value #x45c00000
:random-mult #x3f800000
)
(new 'static 'sp-field-init-spec
:field #x11
:flags #x3
:initial-value -4
:random-mult 1
)
(new 'static 'sp-field-init-spec
:field #x12
:flags #x1
:initial-value #x43000000
:random-mult #x3f800000
)
(new 'static 'sp-field-init-spec
:field #x13
:flags #x1
:initial-value #x43000000
:random-mult #x3f800000
)
(new 'static 'sp-field-init-spec
:field #x14
:flags #x1
:initial-value #x43000000
:random-mult #x3f800000
)
(new 'static 'sp-field-init-spec
:field #x15
:flags #x1
:initial-value #x43000000
:random-mult #x3f800000
)
(new 'static 'sp-field-init-spec
:field #x2e
:initial-value 5
:random-mult 1
)
(new 'static 'sp-field-init-spec
:field #x2f
:initial-value #x2204
:random-mult 1
)
(new 'static 'sp-field-init-spec :field #x43)
)
)
)
;; failed to figure out what this is:
(set!
(-> *part-id-table* 2662)
(new 'static 'sparticle-launcher
:init-specs
(new 'static 'inline-array sp-field-init-spec 11
(new 'static 'sp-field-init-spec :field #x1 :initial-value #x1cf06b00)
(new 'static 'sp-field-init-spec
:field #x6
:flags #x1
:initial-value #x3f800000
:random-mult #x3f800000
)
(new 'static 'sp-field-init-spec
:field #xd
:flags #x1
:initial-value #x45c00000
:random-mult #x3f800000
)
(new 'static 'sp-field-init-spec
:field #x11
:flags #x3
:initial-value -4
:random-mult 1
)
(new 'static 'sp-field-init-spec
:field #x12
:flags #x1
:initial-value #x43000000
:random-mult #x3f800000
)
(new 'static 'sp-field-init-spec
:field #x13
:flags #x1
:initial-value #x43000000
:random-mult #x3f800000
)
(new 'static 'sp-field-init-spec
:field #x14
:flags #x1
:initial-value #x43000000
:random-mult #x3f800000
)
(new 'static 'sp-field-init-spec
:field #x15
:flags #x1
:initial-value #x43000000
:random-mult #x3f800000
)
(new 'static 'sp-field-init-spec
:field #x2e
:initial-value 5
:random-mult 1
)
(new 'static 'sp-field-init-spec
:field #x2f
:initial-value #x2204
:random-mult 1
)
(new 'static 'sp-field-init-spec :field #x43)
)
)
)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; auto-save process
+8 -7
View File
@@ -23,8 +23,8 @@
:size-assert #x110
:flag-assert #xb00000110
(:methods
(dummy-9 () none 9)
(dummy-10 () none 10)
(reset! (_type_) symbol 9)
(TODO-RENAME-10 (_type_ int float float vector) object 10) ; returns float or error string
)
)
@@ -32,6 +32,7 @@
(new 'global 'palette-fade-controls)
)
(declare-type sparticle-launch-control basic)
(deftype time-of-day-proc (process)
((year int32 :offset-assert 112)
(month int32 :offset-assert 116)
@@ -44,13 +45,13 @@
(time-of-day float :offset-assert 144)
(time-ratio float :offset-assert 148)
(star-count int32 :offset-assert 152)
(stars basic :offset-assert 156)
(stars sparticle-launch-control :offset-assert 156)
(sun-count int32 :offset-assert 160)
(sun basic :offset-assert 164)
(sun sparticle-launch-control :offset-assert 164)
(green-sun-count int32 :offset-assert 168)
(green-sun basic :offset-assert 172)
(green-sun sparticle-launch-control :offset-assert 172)
(moon-count int32 :offset-assert 176)
(moon basic :offset-assert 180)
(moon sparticle-launch-control :offset-assert 180)
)
:heap-base #x50
:method-count-assert 14
@@ -88,7 +89,7 @@
(light-masks-0 uint8 2 :offset-assert 2096)
(light-masks-1 uint8 2 :offset-assert 2098)
(light-interp uint32 2 :offset-assert 2100)
(sky basic :offset-assert 2108)
(sky symbol :offset-assert 2108)
(sun-fade float :offset-assert 2112)
(title-updated symbol :offset-assert 2116)
)
+11 -7
View File
@@ -68,15 +68,15 @@
)
(deftype sparticle-system (basic)
((blocks uint32 2 :offset-assert 4)
((blocks int32 2 :offset-assert 4)
(length uint32 2 :offset-assert 12)
(num-alloc uint32 2 :offset-assert 20)
(is-3d basic :offset-assert 28)
(flags uint32 :offset-assert 32)
(alloc-table uint32 :offset-assert 36)
(cpuinfo-table uint32 :offset-assert 40)
(vecdata-table uint32 :offset-assert 44)
(adgifdata-table uint32 :offset-assert 48)
(is-3d basic :offset-assert 28)
(flags uint32 :offset-assert 32)
(alloc-table uint32 :offset-assert 36)
(cpuinfo-table sparticle-cpuinfo :offset-assert 40)
(vecdata-table uint32 :offset-assert 44)
(adgifdata-table uint32 :offset-assert 48)
)
:method-count-assert 9
:size-assert #x34
@@ -88,3 +88,7 @@
;; TODO - for shadow
(define-extern *part-id-table* (array sparticle-launcher))
(define-extern *part-group-id-table* (array sparticle-launch-group))
;; TODO - for basically everything particle related
(define-extern *sp-particle-system-2d* sparticle-system)
(define-extern *sp-particle-system-3d* sparticle-system)
@@ -14,7 +14,7 @@
(initial-valuef float :offset 4) ;; TODO - floats suck - some of these values end up being NaN - these should come before the int32 fields
(random-rangef float :offset 8) ;; TODO - floats suck - some of these values end up being NaN - these should come before the int32 fields
(random-multf float :offset 12) ;; TODO - floats suck - some of these values end up being NaN - these should come before the int32 fields
(func basic :offset 4)
(func symbol :offset 4)
(tex uint32 :offset 4)
(pntr uint32 :offset 4)
(sym basic :offset 4)
@@ -78,7 +78,7 @@
(linger-duration uint16 :offset-assert 8)
(flags uint16 :offset-assert 10)
(name basic :offset-assert 12)
(launcher sparticle-group-item :offset-assert 16)
(launcher (inline-array sparticle-group-item) :offset-assert 16)
(bounds sphere :inline :offset-assert 32)
)
:method-count-assert 10
@@ -8,3 +8,6 @@
;; TODO - for shadow
(define *part-id-table* (new 'global 'boxed-array sparticle-launcher 3584))
(define *part-group-id-table* (new 'global 'boxed-array sparticle-launch-group 1024))
;; TODO - for particle related code
(define-extern sp-launch-particles-var (function sparticle-system sparticle-launcher vector symbol symbol float none))
+4 -1
View File
@@ -5,6 +5,9 @@
;; name in dgo: sparticle
;; dgos: GAME, ENGINE
;; TODO - for particle code
(define-extern sp-kill-particle (function sparticle-system sparticle-cpuinfo none))
(defun set-particle-frame-time ((arg0 int))
(cond
((= arg0 5)
@@ -46,4 +49,4 @@
)
0
(none)
)
)
File diff suppressed because it is too large Load Diff
+53 -57
View File
@@ -609,59 +609,59 @@
;; definition of type camera-master
(deftype camera-master (process)
((master-options uint32 :offset-assert 112)
(num-slaves int32 :offset-assert 116)
(slave (pointer camera-slave) 2 :offset-assert 120)
(slave-options uint32 :offset-assert 128)
(view-off-param-save float :offset-assert 132)
(changer uint32 :offset-assert 136)
(cam-entity entity :offset-assert 140)
(stringMinLength float :offset-assert 144)
(stringMaxLength float :offset-assert 148)
(stringMinHeight float :offset-assert 152)
(stringMaxHeight float :offset-assert 156)
(string-min cam-vector-seeker :inline :offset-assert 160)
(string-max cam-vector-seeker :inline :offset-assert 224)
(string-push-z float :offset-assert 284)
(stringCliffHeight float :offset-assert 288)
(no-intro uint32 :offset-assert 292)
(force-blend uint32 :offset-assert 296)
(force-blend-time uint32 :offset-assert 300)
(local-down vector :inline :offset-assert 304)
(drawable-target uint64 :offset-assert 320)
(which-bone int32 :offset-assert 328)
(pov-handle uint64 :offset-assert 336)
(pov-bone int32 :offset-assert 344)
(being-attacked basic :offset-assert 348)
(attack-start uint64 :offset-assert 352)
(on-ground basic :offset-assert 360)
(under-water int32 :offset-assert 364)
(on-pole basic :offset-assert 368)
(tgt-rot-mat matrix :inline :offset-assert 384)
(tgt-face-mat matrix :inline :offset-assert 448)
(tpos-old vector :inline :offset-assert 512)
(tpos-curr vector :inline :offset-assert 528)
(target-height float :offset-assert 544)
(tpos-old-adj vector :inline :offset-assert 560)
(tpos-curr-adj vector :inline :offset-assert 576)
(tpos-tgt vector :inline :offset-assert 592)
(upspeed float :offset-assert 608)
(pitch-off vector :inline :offset-assert 624)
(foot-offset float :offset-assert 640)
(head-offset float :offset-assert 644)
(target-spline tracking-spline :inline :offset-assert 656)
(ease-from vector :inline :offset-assert 2304)
(ease-t float :offset-assert 2320)
(ease-step float :offset-assert 2324)
(ease-to vector :inline :offset-assert 2336)
(outro-curve curve :inline :offset-assert 2352)
(outro-t float :offset-assert 2372)
(outro-t-step float :offset-assert 2376)
(outro-exit-value float :offset-assert 2380)
(water-drip-time uint64 :offset-assert 2384)
(water-drip basic :offset-assert 2392)
(water-drip-mult float :offset-assert 2396)
(water-drip-speed float :offset-assert 2400)
((master-options uint32 :offset-assert 112)
(num-slaves int32 :offset-assert 116)
(slave (pointer camera-slave) 2 :offset-assert 120)
(slave-options uint32 :offset-assert 128)
(view-off-param-save float :offset-assert 132)
(changer uint32 :offset-assert 136)
(cam-entity entity :offset-assert 140)
(stringMinLength float :offset-assert 144)
(stringMaxLength float :offset-assert 148)
(stringMinHeight float :offset-assert 152)
(stringMaxHeight float :offset-assert 156)
(string-min cam-vector-seeker :inline :offset-assert 160)
(string-max cam-vector-seeker :inline :offset-assert 224)
(string-push-z float :offset-assert 284)
(stringCliffHeight float :offset-assert 288)
(no-intro uint32 :offset-assert 292)
(force-blend uint32 :offset-assert 296)
(force-blend-time uint32 :offset-assert 300)
(local-down vector :inline :offset-assert 304)
(drawable-target uint64 :offset-assert 320)
(which-bone int32 :offset-assert 328)
(pov-handle uint64 :offset-assert 336)
(pov-bone int32 :offset-assert 344)
(being-attacked basic :offset-assert 348)
(attack-start uint64 :offset-assert 352)
(on-ground basic :offset-assert 360)
(under-water int32 :offset-assert 364)
(on-pole basic :offset-assert 368)
(tgt-rot-mat matrix :inline :offset-assert 384)
(tgt-face-mat matrix :inline :offset-assert 448)
(tpos-old vector :inline :offset-assert 512)
(tpos-curr vector :inline :offset-assert 528)
(target-height float :offset-assert 544)
(tpos-old-adj vector :inline :offset-assert 560)
(tpos-curr-adj vector :inline :offset-assert 576)
(tpos-tgt vector :inline :offset-assert 592)
(upspeed float :offset-assert 608)
(pitch-off vector :inline :offset-assert 624)
(foot-offset float :offset-assert 640)
(head-offset float :offset-assert 644)
(target-spline tracking-spline :inline :offset-assert 656)
(ease-from vector :inline :offset-assert 2304)
(ease-t float :offset-assert 2320)
(ease-step float :offset-assert 2324)
(ease-to vector :inline :offset-assert 2336)
(outro-curve curve :inline :offset-assert 2352)
(outro-t float :offset-assert 2372)
(outro-t-step float :offset-assert 2376)
(outro-exit-value float :offset-assert 2380)
(water-drip-time uint64 :offset-assert 2384)
(water-drip sparticle-launch-control :offset-assert 2392)
(water-drip-mult float :offset-assert 2396)
(water-drip-speed float :offset-assert 2400)
)
:heap-base #x900
:method-count-assert 14
@@ -744,7 +744,3 @@
;; failed to figure out what this is:
0
@@ -74,14 +74,14 @@
(format #t "~Tfriction: ~f~%" (-> obj friction))
(format #t "~Ttimer: ~D~%" (-> obj timer))
(format #t "~Tflags: ~D~%" (-> obj flags))
(format #t "~Tuser-int32: ~D~%" (-> obj user-int32))
(format #t "~Tuser-uint32: ~D~%" (-> obj user-uint32))
(format #t "~Tuser-float: ~f~%" (the-as float (-> obj user-uint32)))
(format #t "~Tuser-pntr: #x~X~%" (-> obj user-uint32))
(format #t "~Tuser-int32: ~D~%" (-> obj user-float))
(format #t "~Tuser-uint32: ~D~%" (-> obj user-float))
(format #t "~Tuser-float: ~f~%" (the-as float (-> obj user-float)))
(format #t "~Tuser-pntr: #x~X~%" (-> obj user-float))
(format
#t
"~Tuser-sprite: #<sprite-vec-data-2d @ #x~X>~%"
(-> obj user-uint32)
(-> obj user-float)
)
(format #t "~Tfunc: ~A~%" (-> obj func))
(format #t "~Tnext-time: ~D~%" (-> obj next-time))
@@ -122,15 +122,15 @@
;; definition of type sparticle-system
(deftype sparticle-system (basic)
((blocks uint32 2 :offset-assert 4)
(length uint32 2 :offset-assert 12)
(num-alloc uint32 2 :offset-assert 20)
(is-3d basic :offset-assert 28)
(flags uint32 :offset-assert 32)
(alloc-table uint32 :offset-assert 36)
(cpuinfo-table uint32 :offset-assert 40)
(vecdata-table uint32 :offset-assert 44)
(adgifdata-table uint32 :offset-assert 48)
((blocks int32 2 :offset-assert 4)
(length uint32 2 :offset-assert 12)
(num-alloc uint32 2 :offset-assert 20)
(is-3d basic :offset-assert 28)
(flags uint32 :offset-assert 32)
(alloc-table uint32 :offset-assert 36)
(cpuinfo-table sparticle-cpuinfo :offset-assert 40)
(vecdata-table uint32 :offset-assert 44)
(adgifdata-table uint32 :offset-assert 48)
)
:method-count-assert 9
:size-assert #x34
@@ -11,7 +11,7 @@
(initial-valuef float :offset 4)
(random-rangef float :offset 8)
(random-multf float :offset 12)
(func basic :offset 4)
(func symbol :offset 4)
(tex uint32 :offset 4)
(pntr uint32 :offset 4)
(sym basic :offset 4)
@@ -141,13 +141,13 @@
;; definition of type sparticle-launch-group
(deftype sparticle-launch-group (basic)
((length int16 :offset-assert 4)
(duration uint16 :offset-assert 6)
(linger-duration uint16 :offset-assert 8)
(flags uint16 :offset-assert 10)
(name basic :offset-assert 12)
(launcher sparticle-group-item :offset-assert 16)
(bounds sphere :inline :offset-assert 32)
((length int16 :offset-assert 4)
(duration uint16 :offset-assert 6)
(linger-duration uint16 :offset-assert 8)
(flags uint16 :offset-assert 10)
(name basic :offset-assert 12)
(launcher (inline-array sparticle-group-item) :offset-assert 16)
(bounds sphere :inline :offset-assert 32)
)
:method-count-assert 10
:size-assert #x30
+21 -21
View File
@@ -29,8 +29,8 @@
:size-assert #x110
:flag-assert #xb00000110
(:methods
(dummy-9 () none 9)
(dummy-10 () none 10)
(reset! (_type_) symbol 9)
(TODO-RENAME-10 (_type_ int float float vector) object 10)
)
)
@@ -48,24 +48,24 @@
;; definition of type time-of-day-proc
(deftype time-of-day-proc (process)
((year int32 :offset-assert 112)
(month int32 :offset-assert 116)
(week int32 :offset-assert 120)
(day int32 :offset-assert 124)
(hour int32 :offset-assert 128)
(minute int32 :offset-assert 132)
(second int32 :offset-assert 136)
(frame int32 :offset-assert 140)
(time-of-day float :offset-assert 144)
(time-ratio float :offset-assert 148)
(star-count int32 :offset-assert 152)
(stars basic :offset-assert 156)
(sun-count int32 :offset-assert 160)
(sun basic :offset-assert 164)
(green-sun-count int32 :offset-assert 168)
(green-sun basic :offset-assert 172)
(moon-count int32 :offset-assert 176)
(moon basic :offset-assert 180)
((year int32 :offset-assert 112)
(month int32 :offset-assert 116)
(week int32 :offset-assert 120)
(day int32 :offset-assert 124)
(hour int32 :offset-assert 128)
(minute int32 :offset-assert 132)
(second int32 :offset-assert 136)
(frame int32 :offset-assert 140)
(time-of-day float :offset-assert 144)
(time-ratio float :offset-assert 148)
(star-count int32 :offset-assert 152)
(stars sparticle-launch-control :offset-assert 156)
(sun-count int32 :offset-assert 160)
(sun sparticle-launch-control :offset-assert 164)
(green-sun-count int32 :offset-assert 168)
(green-sun sparticle-launch-control :offset-assert 172)
(moon-count int32 :offset-assert 176)
(moon sparticle-launch-control :offset-assert 180)
)
:heap-base #x50
:method-count-assert 14
@@ -141,7 +141,7 @@
(light-masks-0 uint8 2 :offset-assert 2096)
(light-masks-1 uint8 2 :offset-assert 2098)
(light-interp uint32 2 :offset-assert 2100)
(sky basic :offset-assert 2108)
(sky symbol :offset-assert 2108)
(sun-fade float :offset-assert 2112)
(title-updated symbol :offset-assert 2116)
)