mirror of
https://github.com/open-goal/jak-project
synced 2026-07-07 14:13:45 -04:00
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:
@@ -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": []
|
||||
}
|
||||
|
||||
@@ -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
@@ -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))
|
||||
|
||||
@@ -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)
|
||||
)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
)
|
||||
|
||||
@@ -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))
|
||||
|
||||
@@ -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
@@ -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
@@ -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)
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user