decomp: finish mud

This commit is contained in:
Tyler Wilding
2021-08-08 16:07:21 -04:00
parent 924abfb329
commit f29e9cb8ce
10 changed files with 236 additions and 42 deletions
+10 -33
View File
@@ -17741,7 +17741,7 @@
(:methods
(water-vol-idle () none 20) ;; state
(water-vol-startup () none 21) ;; state
(TODO-RENAME-22 (_type_) none 22)
(TODO-RENAME-22 (_type_) ripple-wave-set 22)
(dummy-23 () none 23)
(dummy-24 () none 24)
(TODO-RENAME-25 (_type_) quaternion 25)
@@ -33250,41 +33250,18 @@
;; - Types
; (deftype mud (water-anim)
; ()
; :method-count-assert 30
; :size-assert #xdc
; :flag-assert #x1e007000dc
; ;; not enough basic ops
; (:methods
; (dummy-9 () none 9)
; (dummy-10 () none 10)
; (dummy-11 () none 11)
; (dummy-12 () none 12)
; (dummy-13 () none 13)
; (dummy-14 () none 14)
; (dummy-15 () none 15)
; (dummy-16 () none 16)
; (dummy-17 () none 17)
; (dummy-18 () none 18)
; (dummy-19 () none 19)
; (dummy-20 () none 20)
; (dummy-21 () none 21)
; (dummy-22 () none 22)
; (dummy-23 () none 23)
; (dummy-24 () none 24)
; (dummy-25 () none 25)
; (dummy-26 () none 26)
; (dummy-27 () none 27)
; (dummy-28 () none 28)
; (dummy-29 () none 29)
; )
; )
(deftype mud (water-anim)
()
:method-count-assert 30
:heap-base #x70
:size-assert #xdc
:flag-assert #x1e007000dc
)
;; - Unknowns
;;(define-extern ripple-for-mud object) ;; unknown type
;;(define-extern ripple-for-small-mud object) ;; unknown type
(define-extern ripple-for-mud ripple-wave-set) ;; unknown type
(define-extern ripple-for-small-mud ripple-wave-set) ;; unknown type
;; ----------------------
@@ -1486,6 +1486,12 @@
["L165", "float", true]
],
"mud": [
["L8", "ripple-wave-set", true],
["L9", "ripple-wave-set", true],
["L10", "float", true]
],
// please do not add things after this entry! git is dumb.
"object-file-that-doesnt-actually-exist-and-i-just-put-this-here-to-prevent-merge-conflicts-with-this-file": []
}
@@ -1851,5 +1851,9 @@
[5, "v1", "process-mask"]
],
"(method 22 mud)": [
[[37, 41], "v1", "ripple-control"]
],
"placeholder-do-not-add-below": []
}
+1 -1
View File
@@ -101,7 +101,7 @@
(:methods
(water-vol-idle () none 20) ;; state
(water-vol-startup () none 21) ;; state
(TODO-RENAME-22 (_type_) none 22)
(TODO-RENAME-22 (_type_) ripple-wave-set 22)
(dummy-23 () none 23)
(dummy-24 () none 24)
(TODO-RENAME-25 (_type_) quaternion 25)
+2 -3
View File
@@ -1926,7 +1926,7 @@
)
;; definition for method 22 of type water-anim
;; INFO: Return type mismatch int vs none.
;; INFO: Return type mismatch int vs ripple-wave-set.
(defmethod TODO-RENAME-22 water-anim ((obj water-anim))
(with-pp
(let ((s5-0 (-> obj look)))
@@ -1980,7 +1980,6 @@
)
)
)
(ja-post)
(none)
(the-as ripple-wave-set (ja-post))
)
)
+97
View File
@@ -5,3 +5,100 @@
;; name in dgo: mud
;; dgos: L1, MIS
;; definition of type mud
(deftype mud (water-anim)
()
:heap-base #x70
:method-count-assert 30
:size-assert #xdc
:flag-assert #x1e007000dc
)
;; definition for symbol ripple-for-mud, type ripple-wave-set
(define
ripple-for-mud
(new 'static 'ripple-wave-set
:count 3
:converted #f
:normal-scale 1.0
:wave
(new 'static 'inline-array ripple-wave 4
(new 'static 'ripple-wave :scale 40.0 :xdiv 1 :speed 1.5)
(new 'static 'ripple-wave :scale 40.0 :xdiv -1 :zdiv 1 :speed 1.5)
(new 'static 'ripple-wave :scale 20.0 :xdiv 5 :zdiv 3 :speed 0.75)
(new 'static 'ripple-wave)
)
)
)
;; definition for symbol ripple-for-small-mud, type ripple-wave-set
(define
ripple-for-small-mud
(new 'static 'ripple-wave-set
:count 3
:converted #f
:normal-scale 1.0
:wave
(new 'static 'inline-array ripple-wave 4
(new 'static 'ripple-wave :scale 20.0 :xdiv 2 :speed 0.5)
(new 'static 'ripple-wave :scale 20.0 :xdiv -2 :zdiv 2 :speed 0.5)
(new 'static 'ripple-wave :scale 20.0 :xdiv 5 :zdiv 3 :speed 0.75)
(new 'static 'ripple-wave)
)
)
)
;; definition for method 22 of type mud
(defmethod TODO-RENAME-22 mud ((obj mud))
(let ((t9-0 (method-of-type water-anim TODO-RENAME-22)))
(t9-0 obj)
)
(set! (-> obj flags) (logand -8388609 (-> obj flags)))
(set! (-> obj flags) (logior #x40000 (-> obj flags)))
(let ((gp-0 (new 'process 'ripple-control)))
(set! (-> obj draw ripple) gp-0)
(set! (-> gp-0 global-scale) 3072.0)
(set! (-> gp-0 waveform) ripple-for-mud)
(let
((v1-9
(the-as
object
((method-of-type res-lump get-property-data)
(-> obj entity)
'water-anim-fade-dist
'interp
-1000000000.0
(the-as pointer #f)
(the-as (pointer res-tag) #f)
*res-static-buf*
)
)
)
)
(when (the-as pointer v1-9)
(set!
(-> gp-0 close-fade-dist)
(-> (the-as ripple-control v1-9) global-scale)
)
(set!
(-> gp-0 far-fade-dist)
(-> (the-as ripple-control v1-9) last-frame-scale)
)
)
)
(case (-> obj look)
((21 25 29)
(set! (-> gp-0 close-fade-dist) 4096000000.0)
(set! (-> gp-0 far-fade-dist) 8192000000.0)
)
)
(case (-> obj look)
((22 25 24 27 26 31)
(let ((v0-3 ripple-for-small-mud))
(set! (-> gp-0 waveform) v0-3)
v0-3
)
)
)
)
)
@@ -151,7 +151,7 @@
(:methods
(water-vol-idle () none 20)
(water-vol-startup () none 21)
(TODO-RENAME-22 (_type_) none 22)
(TODO-RENAME-22 (_type_) ripple-wave-set 22)
(dummy-23 () none 23)
(dummy-24 () none 24)
(TODO-RENAME-25 (_type_) quaternion 25)
@@ -1941,7 +1941,7 @@
)
;; definition for method 22 of type water-anim
;; INFO: Return type mismatch int vs none.
;; INFO: Return type mismatch int vs ripple-wave-set.
(defmethod TODO-RENAME-22 water-anim ((obj water-anim))
(with-pp
(let ((s5-0 (-> obj look)))
@@ -1995,7 +1995,6 @@
)
)
)
(ja-post)
(none)
(the-as ripple-wave-set (ja-post))
)
)
@@ -0,0 +1,112 @@
;;-*-Lisp-*-
(in-package goal)
;; definition of type mud
(deftype mud (water-anim)
()
:heap-base #x70
:method-count-assert 30
:size-assert #xdc
:flag-assert #x1e007000dc
)
;; definition for method 3 of type mud
(defmethod inspect mud ((obj mud))
(let ((t9-0 (method-of-type water-anim inspect)))
(t9-0 obj)
)
obj
)
;; definition for symbol ripple-for-mud, type ripple-wave-set
(define
ripple-for-mud
(new 'static 'ripple-wave-set
:count 3
:converted #f
:normal-scale 1.0
:wave
(new 'static 'inline-array ripple-wave 4
(new 'static 'ripple-wave :scale 40.0 :xdiv 1 :speed 1.5)
(new 'static 'ripple-wave :scale 40.0 :xdiv -1 :zdiv 1 :speed 1.5)
(new 'static 'ripple-wave :scale 20.0 :xdiv 5 :zdiv 3 :speed 0.75)
(new 'static 'ripple-wave)
)
)
)
;; definition for symbol ripple-for-small-mud, type ripple-wave-set
(define
ripple-for-small-mud
(new 'static 'ripple-wave-set
:count 3
:converted #f
:normal-scale 1.0
:wave
(new 'static 'inline-array ripple-wave 4
(new 'static 'ripple-wave :scale 20.0 :xdiv 2 :speed 0.5)
(new 'static 'ripple-wave :scale 20.0 :xdiv -2 :zdiv 2 :speed 0.5)
(new 'static 'ripple-wave :scale 20.0 :xdiv 5 :zdiv 3 :speed 0.75)
(new 'static 'ripple-wave)
)
)
)
;; definition for method 22 of type mud
(defmethod TODO-RENAME-22 mud ((obj mud))
(let ((t9-0 (method-of-type water-anim TODO-RENAME-22)))
(t9-0 obj)
)
(set! (-> obj flags) (logand -8388609 (-> obj flags)))
(set! (-> obj flags) (logior #x40000 (-> obj flags)))
(let ((gp-0 (new 'process 'ripple-control)))
(set! (-> obj draw ripple) gp-0)
(set! (-> gp-0 global-scale) 3072.0)
(set! (-> gp-0 waveform) ripple-for-mud)
(let
((v1-9
(the-as
object
((method-of-type res-lump get-property-data)
(-> obj entity)
'water-anim-fade-dist
'interp
-1000000000.0
(the-as pointer #f)
(the-as (pointer res-tag) #f)
*res-static-buf*
)
)
)
)
(when (the-as pointer v1-9)
(set!
(-> gp-0 close-fade-dist)
(-> (the-as ripple-control v1-9) global-scale)
)
(set!
(-> gp-0 far-fade-dist)
(-> (the-as ripple-control v1-9) last-frame-scale)
)
)
)
(case (-> obj look)
((21 25 29)
(set! (-> gp-0 close-fade-dist) 4096000000.0)
(set! (-> gp-0 far-fade-dist) 8192000000.0)
)
)
(case (-> obj look)
((22 25 24 27 26 31)
(let ((v0-3 ripple-for-small-mud))
(set! (-> gp-0 waveform) v0-3)
v0-3
)
)
)
)
)
+1 -1
View File
@@ -268,7 +268,7 @@ class OfflineDecompilation : public ::testing::Test {
config->generate_symbol_definition_map = false;
std::vector<std::string> dgos = {"CGO/KERNEL.CGO", "CGO/ENGINE.CGO", "CGO/GAME.CGO",
"DGO/BEA.DGO"};
"DGO/BEA.DGO", "CGO/L1.CGO"};
std::vector<std::string> dgo_paths;
if (g_iso_data_path.empty()) {
for (auto& x : dgos) {