Merge remote-tracking branch 'water111/master' into decomp/sunken-elevator

This commit is contained in:
Tyler Wilding
2021-08-12 19:23:19 -04:00
101 changed files with 11708 additions and 1181 deletions
+3 -3
View File
@@ -110,15 +110,15 @@
(dummy-9 () none 9)
(dummy-10 () none 10)
(dummy-11 () none 11)
(dummy-12 () none 12)
(dummy-12 (_type_ vector float uint process bone uint) float 12) ;; TODO - bone not confirmed
(dummy-13 () none 13)
(dummy-14 () none 14)
(dummy-15 () none 15)
(dummy-16 () none 16)
(dummy-16 (_type_ vector float uint process uint) none 16)
(dummy-17 () none 17)
(dummy-18 () none 18)
(dummy-19 () none 19)
(dummy-20 () none 20)
(dummy-20 (_type_ vector float uint bone uint) none 20) ;; TODO - bone not confirmed
(dummy-21 () none 21)
(dummy-22 () none 22)
(dummy-23 () none 23)
+10 -8
View File
@@ -62,33 +62,35 @@
:flag-assert #x900000020
)
(declare-type collide-shape-prim basic)
(deftype collide-shape-intersect (basic)
((move-vec vector :inline :offset-assert 16)
(best-u float :offset-assert 32)
(best-tri collide-tri-result :inline :offset-assert 48)
(best-from-prim basic :offset-assert 132)
(best-to-prim basic :offset-assert 136)
(best-from-prim collide-shape-prim :offset-assert 132)
(best-to-prim collide-shape-prim :offset-assert 136)
)
:method-count-assert 10
:size-assert #x8c
:flag-assert #xa0000008c
(:methods
(dummy-9 () none 9)
)
(dummy-9 () none 9)
)
)
(declare-type collide-shape-prim basic)
(deftype collide-overlap-result (structure)
((best-dist float :offset-assert 0)
(best-from-prim basic :offset-assert 4)
(best-to-prim basic :offset-assert 8)
(best-from-prim collide-shape-prim :offset-assert 4)
(best-to-prim collide-shape-prim :offset-assert 8)
(best-from-tri collide-tri-result :inline :offset-assert 16)
)
:method-count-assert 10
:size-assert #x64
:flag-assert #xa00000064
(:methods
(reset! (_type_) none 9)
)
(reset! (_type_) none 9)
)
)
(defmethod reset! collide-overlap-result ((obj collide-overlap-result))
+2
View File
@@ -5,3 +5,5 @@
;; name in dgo: collide-shape
;; dgos: GAME, ENGINE
;; TODO - for misty-teetertotter | rigid-body
(define-extern default-collision-reaction (function collide-shape-moving collide-shape-intersect vector vector none)) ;; TODO - not completely confirmed
+1 -37
View File
@@ -343,43 +343,7 @@
(defun disasm-dma-tag ((arg0 dma-tag) (arg1 symbol))
(format arg1 "(dma-tag ")
;; this is a case statement.
(let ((t9-1 format)
(a0-2 arg1)
(a1-2 "~s")
(v1-1 (-> arg0 id))
)
(t9-1 a0-2 a1-2 (cond
((= v1-1 (dma-tag-id end))
"end"
)
((= v1-1 (dma-tag-id ret))
"ret"
)
((= v1-1 (dma-tag-id call))
"call"
)
((= v1-1 (dma-tag-id refs))
"refs"
)
((= v1-1 (dma-tag-id ref))
"ref"
)
((= v1-1 (dma-tag-id next))
"next"
)
((= v1-1 (dma-tag-id cnt))
"cnt"
)
((zero? v1-1)
"refe"
)
(else
"*unknown*"
)
)
)
)
(format arg1 "~s" (enum->string dma-tag-id (-> arg0 id)))
(if (> (the-as uint (-> arg0 addr)) 0)
(format arg1 " :addr #x~8x" (-> arg0 addr))
)
+9 -1
View File
@@ -5,5 +5,13 @@
;; name in dgo: process-drawable
;; dgos: GAME, ENGINE
;; TODO - for sunken-elevator
;; TODO - for water-anim | sunken-elevator
(define-extern ja-post (function int))
;; TODO - for rigid-body
(define-extern rider-post (function int))
(define-extern transform-post (function int))
;; TODO - for misty-teetertotter
(define-extern transform-post (function int))
(define-extern ja-done? (function int symbol))
;; TODO - for misty-warehouse
(define-extern rider-trans (function int))
+5
View File
@@ -117,3 +117,8 @@
)
(the-as entity-actor #f)
)
;; TODO - for misty-teetertotter | rigid-body
(define-extern process-drawable-from-entity! (function process-drawable object none))
;; TODO - for misty-warehouse
(define-extern process-entity-status! (function process entity-perm-status symbol int))
+1 -13
View File
@@ -62,19 +62,7 @@
)
(defun pickup-type->string ((arg0 pickup-type))
(case arg0
(((pickup-type eco-pill-random)) "eco-pill-random")
(((pickup-type buzzer)) "buzzer")
(((pickup-type eco-pill)) "eco-pill")
(((pickup-type fuel-cell)) "fuel-cell")
(((pickup-type money)) "money")
(((pickup-type eco-green)) "eco-green")
(((pickup-type eco-blue)) "eco-blue")
(((pickup-type eco-red)) "eco-red")
(((pickup-type eco-yellow)) "eco-yellow")
(((pickup-type none)) "none")
(else "*unknown*")
)
(enum->string pickup-type arg0)
)
;; Each individual enemy and pickup process will allocate a fact-info on its process heap
+15 -15
View File
@@ -110,21 +110,21 @@
)
(deftype attack-info (structure)
((trans vector :inline :offset-assert 0)
(vector vector :inline :offset-assert 16)
(intersection vector :inline :offset-assert 32)
(attacker uint64 :offset-assert 48) ;; handle
(invinc-time uint64 :offset-assert 56)
(mask uint32 :offset-assert 64)
(mode basic :offset-assert 68)
(shove-back meters :offset-assert 72)
(shove-up meters :offset-assert 76)
(speed meters :offset-assert 80)
(dist meters :offset-assert 84)
(control float :offset-assert 88)
(angle basic :offset-assert 92)
(rotate-to degrees :offset-assert 96)
(prev-state basic :offset-assert 100)
((trans vector :inline :offset-assert 0)
(vector vector :inline :offset-assert 16)
(intersection vector :inline :offset-assert 32)
(attacker uint64 :offset-assert 48) ;; handle
(invinc-time uint64 :offset-assert 56)
(mask uint32 :offset-assert 64)
(mode symbol :offset-assert 68)
(shove-back meters :offset-assert 72)
(shove-up meters :offset-assert 76)
(speed meters :offset-assert 80)
(dist meters :offset-assert 84)
(control float :offset-assert 88)
(angle symbol :offset-assert 92)
(rotate-to degrees :offset-assert 96)
(prev-state state :offset-assert 100)
)
:method-count-assert 10
:size-assert #x68
+7 -7
View File
@@ -126,11 +126,11 @@
(leaving-misty 114)
(assistant-village3 115)
(max 116)
(*unknown* 255))
)
;; Game parameters.
(deftype game-bank (basic)
((life-max-default float :offset-assert 4)
((life-max-default float :offset-assert 4) ;; yes this life system works, but does nothing
(life-start-default float :offset-assert 8)
(life-single-inc float :offset-assert 12)
(money-task-inc float :offset-assert 16)
@@ -142,11 +142,11 @@
)
(define *GAME-bank* (new 'static 'game-bank
:life-max-default 99.000000
:life-start-default 5.000000
:life-single-inc 1.000000
:money-task-inc 90.000000
:money-oracle-inc 120.000000
:life-max-default 99.0
:life-start-default 5.0
:life-single-inc 1.0
:money-task-inc 90.0
:money-oracle-inc 120.0
)
)
+1 -120
View File
@@ -708,126 +708,7 @@
)
(defun-debug game-task->string ((arg0 game-task))
(case arg0
(((game-task max)) "max")
(((game-task assistant-village3)) "assistant-village3")
(((game-task leaving-misty)) "leaving-misty")
(((game-task plunger-lurker-hit)) "plunger-lurker-hit")
(((game-task finalboss-movies)) "finalboss-movies")
(((game-task village4-button)) "village4-button")
(((game-task ogre-secret)) "ogre-secret")
(((game-task intro)) "intro")
(((game-task lavatube-start)) "lavatube-start")
(((game-task lavatube-balls)) "lavatube-balls")
(((game-task red-eggtop)) "red-eggtop")
(((game-task village3-button)) "village3-button")
(((game-task swamp-arm)) "swamp-arm")
(((game-task village2-levitator)) "village2-levitator")
(((game-task firecanyon-assistant)) "firecanyon-assistant")
(((game-task village3-oracle-money2)) "village3-oracle-money2")
(((game-task village3-oracle-money1)) "village3-oracle-money1")
(((game-task village3-miner-money4)) "village3-miner-money4")
(((game-task village3-miner-money3)) "village3-miner-money3")
(((game-task village3-miner-money2)) "village3-miner-money2")
(((game-task village3-miner-money1)) "village3-miner-money1")
(((game-task training-buzzer)) "training-buzzer")
(((game-task training-climb)) "training-climb")
(((game-task training-door)) "training-door")
(((game-task training-gimmie)) "training-gimmie")
(((game-task citadel-buzzer)) "citadel-buzzer")
(((game-task lavatube-buzzer)) "lavatube-buzzer")
(((game-task lavatube-end)) "lavatube-end")
(((game-task ogre-buzzer)) "ogre-buzzer")
(((game-task ogre-end)) "ogre-end")
(((game-task ogre-boss)) "ogre-boss")
(((game-task cave-buzzer)) "cave-buzzer")
(((game-task cave-platforms)) "cave-platforms")
(((game-task cave-spider-tunnel)) "cave-spider-tunnel")
(((game-task cave-swing-poles)) "cave-swing-poles")
(((game-task cave-robot-climb)) "cave-robot-climb")
(((game-task cave-dark-climb)) "cave-dark-climb")
(((game-task cave-dark-crystals)) "cave-dark-crystals")
(((game-task cave-gnawers)) "cave-gnawers")
(((game-task village3-buzzer)) "village3-buzzer")
(((game-task village2-buzzer)) "village2-buzzer")
(((game-task village1-buzzer)) "village1-buzzer")
(((game-task village3-extra1)) "village3-extra1")
(((game-task citadel-sage-yellow)) "citadel-sage-yellow")
(((game-task citadel-sage-red)) "citadel-sage-red")
(((game-task citadel-sage-blue)) "citadel-sage-blue")
(((game-task citadel-sage-green)) "citadel-sage-green")
(((game-task firecanyon-end)) "firecanyon-end")
(((game-task firecanyon-buzzer)) "firecanyon-buzzer")
(((game-task snow-cage)) "snow-cage")
(((game-task snow-bumpers)) "snow-bumpers")
(((game-task snow-buzzer)) "snow-buzzer")
(((game-task snow-bunnies)) "snow-bunnies")
(((game-task snow-ball)) "snow-ball")
(((game-task snow-fort)) "snow-fort")
(((game-task snow-ram)) "snow-ram")
(((game-task snow-eggtop)) "snow-eggtop")
(((game-task rolling-ring-chase-2)) "rolling-ring-chase-2")
(((game-task rolling-ring-chase-1)) "rolling-ring-chase-1")
(((game-task rolling-buzzer)) "rolling-buzzer")
(((game-task rolling-lake)) "rolling-lake")
(((game-task rolling-plants)) "rolling-plants")
(((game-task rolling-moles)) "rolling-moles")
(((game-task rolling-robbers)) "rolling-robbers")
(((game-task rolling-race)) "rolling-race")
(((game-task sunken-spinning-room)) "sunken-spinning-room")
(((game-task sunken-top-of-helix)) "sunken-top-of-helix")
(((game-task sunken-buzzer)) "sunken-buzzer")
(((game-task sunken-sharks)) "sunken-sharks")
(((game-task sunken-room)) "sunken-room")
(((game-task sunken-slide)) "sunken-slide")
(((game-task sunken-pipe)) "sunken-pipe")
(((game-task sunken-platforms)) "sunken-platforms")
(((game-task swamp-buzzer)) "swamp-buzzer")
(((game-task swamp-tether-4)) "swamp-tether-4")
(((game-task swamp-tether-3)) "swamp-tether-3")
(((game-task swamp-tether-2)) "swamp-tether-2")
(((game-task swamp-tether-1)) "swamp-tether-1")
(((game-task swamp-battle)) "swamp-battle")
(((game-task swamp-flutflut)) "swamp-flutflut")
(((game-task swamp-billy)) "swamp-billy")
(((game-task village2-oracle-money2)) "village2-oracle-money2")
(((game-task village2-oracle-money1)) "village2-oracle-money1")
(((game-task village2-warrior-money)) "village2-warrior-money")
(((game-task village2-geologist-money)) "village2-geologist-money")
(((game-task village2-gambler-money)) "village2-gambler-money")
(((game-task misty-eco-challenge)) "misty-eco-challenge")
(((game-task misty-bike-jump)) "misty-bike-jump")
(((game-task misty-buzzer)) "misty-buzzer")
(((game-task misty-bike)) "misty-bike")
(((game-task misty-cannon)) "misty-cannon")
(((game-task misty-warehouse)) "misty-warehouse")
(((game-task misty-boat)) "misty-boat")
(((game-task misty-muse)) "misty-muse")
(((game-task beach-sentinel)) "beach-sentinel")
(((game-task beach-gimmie)) "beach-gimmie")
(((game-task beach-buzzer)) "beach-buzzer")
(((game-task beach-cannon)) "beach-cannon")
(((game-task beach-seagull)) "beach-seagull")
(((game-task beach-flutflut)) "beach-flutflut")
(((game-task beach-pelican)) "beach-pelican")
(((game-task beach-ecorocks)) "beach-ecorocks")
(((game-task village1-oracle-money2)) "village1-oracle-money2")
(((game-task village1-oracle-money1)) "village1-oracle-money1")
(((game-task village1-uncle-money)) "village1-uncle-money")
(((game-task village1-mayor-money)) "village1-mayor-money")
(((game-task village1-yakow)) "village1-yakow")
(((game-task jungle-temple-door)) "jungle-temple-door")
(((game-task jungle-canyon-end)) "jungle-canyon-end")
(((game-task jungle-buzzer)) "jungle-buzzer")
(((game-task jungle-plant)) "jungle-plant")
(((game-task jungle-fishgame)) "jungle-fishgame")
(((game-task jungle-tower)) "jungle-tower")
(((game-task jungle-lurkerm)) "jungle-lurkerm")
(((game-task jungle-eggtop)) "jungle-eggtop")
(((game-task complete)) "complete")
(((game-task none)) "none")
(else "*unknown*")
)
(enum->string game-task arg0)
)
(defmethod debug-print game-info ((obj game-info) (arg0 symbol))
+1 -49
View File
@@ -131,55 +131,7 @@
)
(defun-debug game-save-elt->string ((arg0 game-save-elt))
"Convert a game-save-elt to a string"
(let ((v1-0 arg0))
(cond
((= v1-0 (game-save-elt aspect-ratio)) "aspect-ratio")
((= v1-0 (game-save-elt video-mode)) "video-mode")
((= v1-0 (game-save-elt play-hints)) "play-hints")
((= v1-0 (game-save-elt vibration)) "vibration")
((= v1-0 (game-save-elt screeny)) "screeny")
((= v1-0 (game-save-elt screenx)) "screenx")
((= v1-0 (game-save-elt language)) "language")
((= v1-0 (game-save-elt dialog-volume)) "dialog-volume")
((= v1-0 (game-save-elt music-volume)) "music-volume")
((= v1-0 (game-save-elt sfx-volume)) "sfx-volume")
((= v1-0 (game-save-elt in-level-time)) "in-level-time")
((= v1-0 (game-save-elt auto-save-count)) "auto-save-count")
((= v1-0 (game-save-elt death-pos)) "death-pos")
((= v1-0 (game-save-elt deaths-per-level)) "deaths-per-level")
((= v1-0 (game-save-elt enter-level-time)) "enter-level-time")
((= v1-0 (game-save-elt fuel-cell-time)) "fuel-cell-time")
((= v1-0 (game-save-elt continue-time)) "continue-time")
((= v1-0 (game-save-elt fuel-cell-pickup-time)) "fuel-cell-pickup-time")
((= v1-0 (game-save-elt hit-time)) "hit-time")
((= v1-0 (game-save-elt death-time)) "death-time")
((= v1-0 (game-save-elt continue-timke)) "continue-timke")
((= v1-0 (game-save-elt game-start-time)) "game-start-time")
((= v1-0 (game-save-elt fuel-cell-deaths)) "fuel-cell-deaths")
((= v1-0 (game-save-elt continue-deaths)) "continue-deaths")
((= v1-0 (game-save-elt total-deaths)) "total-deaths")
((= v1-0 (game-save-elt level-open-list)) "level-open-list")
((= v1-0 (game-save-elt text-list)) "text-list")
((= v1-0 (game-save-elt hint-list)) "hint-list")
((= v1-0 (game-save-elt perm-list)) "perm-list")
((= v1-0 (game-save-elt task-list)) "task-list")
((= v1-0 (game-save-elt death-movie-tick)) "death-movie-tick")
((= v1-0 (game-save-elt fuel-cell)) "fuel-cell")
((= v1-0 (game-save-elt buzzer-total)) "buzzer-total")
((= v1-0 (game-save-elt moeny-per-level)) "money-per-level")
((= v1-0 (game-save-elt money-total)) "money-total")
((= v1-0 (game-save-elt money)) "money")
((= v1-0 (game-save-elt life)) "life")
((= v1-0 (game-save-elt continue)) "continue")
((= v1-0 (game-save-elt integral-time)) "integral-time")
((= v1-0 (game-save-elt game-time)) "game-time")
((= v1-0 (game-save-elt real-time)) "real-time")
((= v1-0 (game-save-elt base-time)) "base-time")
((= v1-0 (game-save-elt name)) "name")
(else "*unknown*")
)
)
(enum->string game-save-elt arg0)
)
(defun progress-level-index->string ((arg0 int))
+1 -3
View File
@@ -71,9 +71,7 @@
)
(deftype camera-tracker (process)
(
;(name basic :offset-assert 4)
(grab-target uint64 :offset 120)
((grab-target handle :offset 120)
(grab-event basic :offset-assert 128)
(release-event basic :offset-assert 132)
(old-global-mask uint32 :offset-assert 136)
+7 -1
View File
@@ -11,4 +11,10 @@
:method-count-assert 15
:size-assert #x70
:flag-assert #xf00000070
)
)
;; TODO - for misty-warehouse
(define-extern camera-tracker-init (function function none)) ;; TODO - not confirmed, see misty-warehouse::camera-view
(define-extern process-grab? (function process symbol))
(define-extern camera-change-to (function string int symbol none)) ;; TODO - not confirmed yet
(define-extern process-release? (function process symbol))
+23 -23
View File
@@ -6,28 +6,28 @@
;; dgos: GAME, ENGINE
(deftype projectile (process-drawable)
((base-trans vector :inline :offset-assert 176)
(target vector :inline :offset-assert 192)
(target-base vector :inline :offset-assert 208)
(parent-base vector :inline :offset-assert 224)
(parent-quat vector :inline :offset-assert 240)
(base-vector vector :inline :offset-assert 256)
(timeout uint64 :offset-assert 272)
(options uint64 :offset-assert 280)
(last-target uint64 :offset-assert 288)
(notify-handle uint64 :offset-assert 296)
(max-speed float :offset-assert 304)
(max-turn float :offset-assert 308)
(old-dist float 16 :offset-assert 312)
(old-dist-count int32 :offset-assert 376)
(hits int32 :offset-assert 380)
(max-hits int32 :offset-assert 384)
(tween float :offset-assert 388)
(attack-mode basic :offset-assert 392)
(update-velocity basic :offset-assert 396)
(counter int32 :offset-assert 400)
(target-count int32 :offset-assert 404)
(sound-id sound-id :offset-assert 408)
((base-trans vector :inline :offset-assert 176)
(target vector :inline :offset-assert 192)
(target-base vector :inline :offset-assert 208)
(parent-base vector :inline :offset-assert 224)
(parent-quat vector :inline :offset-assert 240)
(base-vector vector :inline :offset-assert 256)
(timeout uint64 :offset-assert 272)
(options uint64 :offset-assert 280)
(last-target uint64 :offset-assert 288)
(notify-handle uint64 :offset-assert 296)
(max-speed float :offset-assert 304)
(max-turn float :offset-assert 308)
(old-dist float 16 :offset-assert 312)
(old-dist-count int32 :offset-assert 376)
(hits int32 :offset-assert 380)
(max-hits int32 :offset-assert 384)
(tween float :offset-assert 388)
(attack-mode basic :offset-assert 392)
(update-velocity basic :offset-assert 396)
(counter int32 :offset-assert 400)
(target-count int32 :offset-assert 404)
(sound-id sound-id :offset-assert 408)
)
:heap-base #x130
:method-count-assert 29
@@ -38,7 +38,7 @@
(projectile-dissipate () none 21) ;; state
(projectile-impact () none 22) ;; state
(dummy-23 () none 23)
(dummy-24 () none 24)
(dummy-24 (_type_) none 24)
(dummy-25 () none 25)
(dummy-26 () none 26)
(dummy-27 () none 27)
+1 -11
View File
@@ -6,17 +6,7 @@
;; dgos: GAME, ENGINE
(defun-debug task-status->string ((arg0 task-status))
(case arg0
(((task-status need-resolution)) "need-resolution")
(((task-status need-reward-speech)) "need-reward-speech")
(((task-status need-reminder)) "need-reminder")
(((task-status need-reminder-a)) "need-reminder-a")
(((task-status need-introduction)) "need-introduction")
(((task-status need-hint)) "need-hint")
(((task-status unknown)) "unknown")
(((task-status invalid)) "invalid")
(else "*unknown*")
)
(enum->string task-status arg0)
)
(defmethod get-game-task task-cstage ((obj task-cstage))
+1 -16
View File
@@ -98,22 +98,7 @@
(defun psm->string ((arg0 gs-psm))
"Get the name of a texture format."
(case arg0
(((gs-psm mz16s)) "mz16s")
(((gs-psm mz16)) "mz16")
(((gs-psm mz24)) "mz24")
(((gs-psm mz32)) "mz32")
(((gs-psm mt4hh)) "mt4hh")
(((gs-psm mt4hl)) "mt4hl")
(((gs-psm mt8h)) "mt8h")
(((gs-psm mt4)) "mt4")
(((gs-psm mt8)) "mt8")
(((gs-psm ct16s)) "ct16s")
(((gs-psm ct16)) "ct16")
(((gs-psm ct24)) "ct24")
(((gs-psm ct32)) "ct32")
(else "*unknown*")
)
(enum->string gs-psm arg0)
)
+2
View File
@@ -7,3 +7,5 @@
;; TODO - for ocean-transition
(define-extern *ocean-map* ocean-map)
;; TODO - for rigid-body
(define-extern ocean-get-height (function vector float))
+1 -1
View File
@@ -149,7 +149,7 @@
)
;; definition for function ripple-find-height
(defun ripple-find-height ((arg0 process-drawable) (arg1 basic) (arg2 vector))
(defun ripple-find-height ((arg0 process-drawable) (arg1 int) (arg2 vector))
(local-vars (sv-16 float) (sv-32 float))
(let* ((f30-0 (-> arg0 root trans y))
(v1-1 (-> arg0 draw))
+336
View File
@@ -5,3 +5,339 @@
;; name in dgo: shadow
;; dgos: GAME, ENGINE
;; definition for function add-fake-shadow-to-buffer
;; INFO: Return type mismatch int vs none.
(defun
add-fake-shadow-to-buffer
((arg0 vector) (arg1 vector) (arg2 float) (arg3 int))
(let ((v1-0 *fake-shadow-buffer*))
(when (< (-> v1-0 num-shadows) 32)
(let ((t0-5 (-> v1-0 data (-> v1-0 num-shadows))))
(set! (-> t0-5 px) (-> arg0 x))
(set! (-> t0-5 py) (-> arg0 y))
(set! (-> t0-5 pz) (-> arg0 z))
(set! (-> t0-5 scale) arg2)
(set! (-> t0-5 qx) (-> arg1 x))
(set! (-> t0-5 qy) (-> arg1 y))
(set! (-> t0-5 qz) (-> arg1 z))
(set! (-> t0-5 flags) arg3)
)
(+! (-> v1-0 num-shadows) 1)
)
)
0
(none)
)
;; definition for function swap-fake-shadow-buffers
;; INFO: Return type mismatch int vs none.
(defun swap-fake-shadow-buffers ()
(set! *fake-shadow-buffer* (if (= *fake-shadow-buffer* *fake-shadow-buffer-1*)
*fake-shadow-buffer-2*
*fake-shadow-buffer-1*
)
)
(set! (-> *fake-shadow-buffer* num-shadows) 0)
0
(none)
)
;; definition for function draw-shadow
;; INFO: Return type mismatch int vs none.
(defun
draw-shadow
((arg0 vector)
(arg1 vector)
(arg2 vector)
(arg3 float)
(arg4 float)
(arg5 float)
)
(let ((f0-1 (- (-> arg0 y) (-> arg1 y))))
(if (< f0-1 arg4)
(add-fake-shadow-to-buffer
arg1
arg2
(* (- 1.0 (/ f0-1 arg4)) arg3)
(the-as int arg5)
)
)
)
0
(none)
)
;; definition for function compute-and-draw-shadow
;; INFO: Return type mismatch int vs none.
;; Used lq/sq
(defun
compute-and-draw-shadow
((arg0 vector)
(arg1 vector)
(arg2 vector)
(arg3 vector)
(arg4 float)
(arg5 float)
)
(local-vars
(v1-10 float)
(v1-11 float)
(sv-96 vector)
(sv-112 (function quaternion vector float quaternion))
(sv-128 vector)
(sv-144 vector)
)
(rlet ((vf0 :class vf)
(vf1 :class vf)
(vf2 :class vf)
)
(init-vf0-vector)
(set! sv-96 arg2)
(let ((s4-0 arg3)
(s3-0 arg4)
(s2-0 arg5)
)
(when (< (- (-> arg0 y) (-> arg1 y)) s3-0)
(set! sv-144 (new 'stack-no-clear 'vector))
(let ((s0-0 (new 'stack-no-clear 'vector))
(s1-0 (new 'stack-no-clear 'sparticle-cpuinfo))
)
(set! (-> arg1 y) (+ 40.96 (-> arg1 y)))
(set! (-> sv-144 x) (-> sv-96 z))
(set! (-> sv-144 y) 0.0)
(set! (-> sv-144 z) (- (-> sv-96 x)))
(vector-normalize! sv-144 1.0)
(set! sv-112 quaternion-vector-angle!)
(set! sv-128 s0-0)
(let ((a2-1 (acos (-> sv-96 y))))
(sv-112 (the-as quaternion sv-128) sv-144 a2-1)
)
(let ((v1-9 s1-0))
(cond
((< (-> s0-0 w) 0.0)
(.lvf vf1 (&-> v1-9 vel-sxvel quad))
(.lvf vf2 (&-> s0-0 quad))
(.sub.vf vf1 vf0 vf2 :mask #b111)
(.svf (&-> v1-9 vel-sxvel quad) vf1)
(.mov v1-10 vf1)
)
(else
(.lvf vf1 (&-> v1-9 vel-sxvel quad))
(.lvf vf2 (&-> s0-0 quad))
(.add.vf vf1 vf0 vf2 :mask #b111)
(.svf (&-> v1-9 vel-sxvel quad) vf1)
(.mov v1-11 vf1)
)
)
)
(draw-shadow arg0 arg1 (-> s1-0 vel-sxvel) (the-as float s4-0) s3-0 s2-0)
)
)
)
0
(none)
)
)
;; definition for function find-ground-and-draw-shadow
;; INFO: Return type mismatch int vs none.
;; Used lq/sq
(defun
find-ground-and-draw-shadow
((arg0 vector)
(arg1 vector)
(arg2 float)
(arg3 uint)
(arg4 process)
(arg5 float)
(arg6 float)
)
(let ((s2-0 (new 'stack-no-clear 'vector)))
(set! (-> s2-0 quad) (-> arg0 quad))
(new 'stack-no-clear 'vector)
(+! (-> s2-0 y) arg5)
(let ((s4-0 (new 'stack-no-clear 'bone)))
(cond
((>=
(dummy-12 *collide-cache* s2-0 arg6 arg3 arg4 s4-0 (the-as uint 1))
0.0
)
(if (!= arg2 0.0)
(compute-and-draw-shadow
s2-0
(-> s4-0 position)
(-> s4-0 scale)
(the-as vector arg2)
arg6
(the-as float 0)
)
)
(if (and arg1 (!= (shr (shl (-> s4-0 cache bone-matrix) 52) 58) 3))
(set! (-> arg1 quad) (-> s4-0 position quad))
)
)
(else
(if arg1
(vector+float*!
arg1
arg0
(-> *standard-dynamics* gravity-normal)
(- arg6)
)
)
)
)
)
)
0
(none)
)
;; definition for function do-target-shadow
;; INFO: Return type mismatch int vs none.
;; Used lq/sq
(defbehavior do-target-shadow target ()
(if
(and
(logtest? (-> self control status) 1)
(!= (-> self control unknown-surface mode) 'swim)
(!= (-> self control unknown-surface mode) 'dive)
(!= (-> self next-state name) 'target-flop)
(zero? (logand (-> self draw status) 38))
)
(set! (-> self control shadow-pos quad) (-> self control trans quad))
(find-ground-and-draw-shadow
(-> self control trans)
(-> self control shadow-pos)
0.0
(-> (the-as collide-shape-prim (-> self control root-prim)) collide-with)
self
0.0
81920.0
)
)
0
(none)
)
;; failed to figure out what this is:
(set!
(-> *part-id-table* 362)
(new 'static 'sparticle-launcher
:init-specs
(new 'static 'inline-array sp-field-init-spec 20
(new 'static 'sp-field-init-spec :field #x1 :initial-value #x200000)
(new 'static 'sp-field-init-spec
:field #x6
:flags #x1
:initial-value #x41000000
:random-mult #x3f800000
)
(new 'static 'sp-field-init-spec
:field #xd
:flags #x1
:initial-value #x4499999a
:random-mult #x3f800000
)
(new 'static 'sp-field-init-spec
:field #x10
:flags #x1
:initial-value -956301312
:random-range #x47800000
: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 #x42b40000
:random-mult #x3f800000
)
(new 'static 'sp-field-init-spec
:field #x13
:flags #x1
:initial-value #x42b40000
:random-mult #x3f800000
)
(new 'static 'sp-field-init-spec
:field #x14
:flags #x1
:initial-value #x42b40000
:random-mult #x3f800000
)
(new 'static 'sp-field-init-spec
:field #x15
:flags #x1
:initial-value #x41a00000
:random-range #x41a00000
:random-mult #x3f800000
)
(new 'static 'sp-field-init-spec
:field #x1a
:flags #x1
:initial-value #x4103126f
:random-mult #x3f800000
)
(new 'static 'sp-field-init-spec
:field #x1c
:flags #x1
:initial-value #x41888889
:random-mult #x3f800000
)
(new 'static 'sp-field-init-spec
:field #x20
:flags #x3
:initial-value -4
:random-mult 1
)
(new 'static 'sp-field-init-spec
:field #x24
:flags #x1
:initial-value -1097229926
:random-mult #x3f800000
)
(new 'static 'sp-field-init-spec
:field #x2e
:initial-value #x138c
:random-mult 1
)
(new 'static 'sp-field-init-spec
:field #x2f
:initial-value 12
:random-mult 1
)
(new 'static 'sp-field-init-spec
:field #x36
:flags #x1
:initial-value -983331271
:random-range #x452aaaab
:random-mult #x3f800000
)
(new 'static 'sp-field-init-spec
:field #x3a
:flags #x1
:initial-value #x46800000
:random-mult #x3f800000
)
(new 'static 'sp-field-init-spec
:field #x3b
:flags #x1
:initial-value -956301312
:random-range #x47800000
:random-mult #x3f800000
)
(new 'static 'sp-field-init-spec
:field #x3e
:flags #x1
:initial-value #x444ccccd
:random-mult #x3f800000
)
(new 'static 'sp-field-init-spec :field #x43)
)
)
)
+1 -20
View File
@@ -224,26 +224,7 @@
(camera 16))
(defun-debug perf-stat-bucket->string ((arg0 perf-stat-bucket))
(case arg0
(((perf-stat-bucket camera)) "camera")
(((perf-stat-bucket collide)) "collide")
(((perf-stat-bucket nav)) "nav")
(((perf-stat-bucket bones)) "bones")
(((perf-stat-bucket proto-tie-n)) "proto-tie-n")
(((perf-stat-bucket proto-tie)) "proto-tie")
(((perf-stat-bucket proto-tie-g)) "proto-tie-g")
(((perf-stat-bucket inst-tie)) "inst-tie")
(((perf-stat-bucket proto-shrub)) "proto-shrub")
(((perf-stat-bucket inst-shrub)) "inst-shrub")
(((perf-stat-bucket tfrag-near)) "tfrag-near")
(((perf-stat-bucket tfrag)) "tfrag")
(((perf-stat-bucket drawable)) "drawable")
(((perf-stat-bucket background)) "background")
(((perf-stat-bucket tie-generic)) "tie-generic")
(((perf-stat-bucket mercneric)) "mercneric")
(((perf-stat-bucket all-code)) "all-code")
(else "*unknown*")
)
(enum->string perf-stat-bucket arg0)
)
+54 -3
View File
@@ -97,16 +97,67 @@
:method-count-assert 30
:size-assert #xd4
:flag-assert #x1e007000d4
;; inherited inspect of process-drawable
(:methods
(water-vol-idle () none 20) ;; state
(water-vol-startup () none 21) ;; state
(dummy-22 () none 22)
(TODO-RENAME-22 (_type_) ripple-wave-set 22)
(dummy-23 () none 23)
(dummy-24 () none 24)
(dummy-25 () none 25)
(TODO-RENAME-25 (_type_) quaternion 25)
(dummy-26 () none 26)
(dummy-27 () none 27)
(dummy-28 () none 28)
(get-ripple-height (_type_ vector) float 28)
(dummy-29 () none 29)
)
)
;; Manually Added
(define-extern *water-anim-sunken-dark-eco-qbert-sg* skeleton-group)
(define-extern *water-anim-sunken-dark-eco-platform-room-sg* skeleton-group)
(define-extern *water-anim-sunken-dark-eco-helix-room-sg* skeleton-group)
(define-extern *water-anim-sunken-big-room-sg* skeleton-group)
(define-extern *water-anim-sunken-first-room-from-entrance-sg* skeleton-group)
(define-extern *water-anim-sunken-qbert-room-sg* skeleton-group)
(define-extern *water-anim-sunken-first-right-branch-sg* skeleton-group)
(define-extern *water-anim-sunken-circular-with-bullys-sg* skeleton-group)
(define-extern *water-anim-sunken-hall-with-one-whirlpool-sg* skeleton-group)
(define-extern *water-anim-sunken-hall-with-three-whirlpools-sg* skeleton-group)
(define-extern *water-anim-sunken-start-of-helix-slide-sg* skeleton-group)
(define-extern *water-anim-sunken-room-above-exit-chamber-sg* skeleton-group)
(define-extern *water-anim-sunken-hall-before-big-room-sg* skeleton-group)
(define-extern *water-anim-sunken-short-piece-sg* skeleton-group)
(define-extern *water-anim-sunken-big-room-upper-water-sg* skeleton-group)
(define-extern *water-anim-maincave-center-pool-sg* skeleton-group)
(define-extern *water-anim-maincave-lower-right-pool-sg* skeleton-group)
(define-extern *water-anim-maincave-mid-right-pool-sg* skeleton-group)
(define-extern *water-anim-maincave-lower-left-pool-sg* skeleton-group)
(define-extern *water-anim-maincave-mid-left-pool-sg* skeleton-group)
(define-extern *water-anim-maincave-water-with-crystal-sg* skeleton-group)
(define-extern *water-anim-robocave-main-pool-sg* skeleton-group)
(define-extern *water-anim-misty-mud-by-arena-sg* skeleton-group)
(define-extern *water-anim-misty-mud-above-skeleton-sg* skeleton-group)
(define-extern *water-anim-misty-mud-behind-skeleton-sg* skeleton-group)
(define-extern *water-anim-misty-mud-above-skull-back-sg* skeleton-group)
(define-extern *water-anim-misty-mud-above-skull-front-sg* skeleton-group)
(define-extern *water-anim-misty-mud-other-near-skull-sg* skeleton-group)
(define-extern *water-anim-misty-mud-near-skull-sg* skeleton-group)
(define-extern *water-anim-misty-mud-under-spine-sg* skeleton-group)
(define-extern *water-anim-misty-mud-by-dock-sg* skeleton-group)
(define-extern *water-anim-misty-mud-island-near-dock-sg* skeleton-group)
(define-extern *water-anim-misty-mud-lonely-island-sg* skeleton-group)
(define-extern *water-anim-misty-dark-eco-pool-sg* skeleton-group)
(define-extern *water-anim-ogre-lava-sg* skeleton-group)
(define-extern *water-anim-jungle-river-sg* skeleton-group)
(define-extern *water-anim-village3-lava-sg* skeleton-group)
(define-extern *water-anim-training-lake-sg* skeleton-group)
(define-extern *water-anim-darkcave-water-with-crystal-sg* skeleton-group)
(define-extern *water-anim-rolling-water-back-sg* skeleton-group)
(define-extern *water-anim-rolling-water-front-sg* skeleton-group)
(define-extern *water-anim-finalboss-dark-eco-pool-sg* skeleton-group)
(define-extern *water-anim-lavatube-energy-lava-sg* skeleton-group)
(define-extern *water-anim-village1-rice-paddy-sg* skeleton-group)
(define-extern *water-anim-village1-fountain-sg* skeleton-group)
(define-extern *water-anim-village1-rice-paddy-mid-sg* skeleton-group)
(define-extern *water-anim-village1-rice-paddy-top-sg* skeleton-group)
(define-extern *water-anim-village2-bucket-sg* skeleton-group)
+1 -26
View File
@@ -182,32 +182,7 @@
)
(defun-debug sound-command->string ((cmd sound-command))
(case cmd
(((sound-command unload-music)) "unload-music")
(((sound-command list-sounds)) "list-sounds")
(((sound-command shutdown)) "shutdown")
(((sound-command set-ear-trans)) "set-ear-trans")
(((sound-command set-reverb)) "set-reverb")
(((sound-command set-flava)) "set-flava")
(((sound-command set-language)) "set-language")
(((sound-command reload-info)) "reload-info")
(((sound-command set-sound-falloff)) "set-sound-falloff")
(((sound-command set-falloff-curve)) "set-falloff-curve")
(((sound-command get-irx-version)) "get-irx-version")
(((sound-command continue-group)) "continue-group")
(((sound-command stop-group)) "stop-group")
(((sound-command pause-group)) "pause-group")
(((sound-command set-master-volume)) "set-master-volume")
(((sound-command set-param)) "set-param")
(((sound-command continue-sound)) "continue-sound")
(((sound-command stop-sound)) "stop-sound")
(((sound-command pause-sound)) "pause-sound")
(((sound-command play)) "play")
(((sound-command unload-bank)) "unload-bank")
(((sound-command load-music)) "load-music")
(((sound-command load-bank)) "load-bank")
(else "*unknown*")
)
(enum->string sound-command cmd)
)
(defun sound-buffer-dump ()
+4
View File
@@ -84,3 +84,7 @@
)
(define-extern part-group-pointer? (function pointer symbol))
;; TODO - for shadow
(define-extern *part-id-table* (array sparticle-launcher))
(define-extern *part-group-id-table* (array sparticle-launch-group))
@@ -6,19 +6,19 @@
;; dgos: GAME, ENGINE
(deftype sp-field-init-spec (structure)
((field uint16 :offset-assert 0)
(flags uint16 :offset-assert 2)
(initial-valuef float :offset-assert 4)
(random-rangef float :offset-assert 8)
(random-multf float :offset-assert 12)
(initial-value int32 :offset 4)
(random-range int32 :offset 8)
(random-mult int32 :offset 12)
(func basic :offset 4)
(tex uint32 :offset 4)
(pntr uint32 :offset 4)
(sym basic :offset 4)
(sound basic :offset 4)
((field uint16 :offset-assert 0)
(flags uint16 :offset-assert 2)
(initial-value int32 :offset-assert 4)
(random-range int32 :offset-assert 8)
(random-mult int32 :offset-assert 12)
(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)
(tex uint32 :offset 4)
(pntr uint32 :offset 4)
(sym basic :offset 4)
(sound basic :offset 4)
)
:method-count-assert 9
:size-assert #x10
@@ -28,7 +28,7 @@
(deftype sparticle-launcher (basic)
((birthaccum float :offset-assert 4)
(soundaccum float :offset-assert 8)
(init-specs uint32 :offset-assert 12)
(init-specs (inline-array sp-field-init-spec) :offset-assert 12)
)
:method-count-assert 9
:size-assert #x10
@@ -5,3 +5,6 @@
;; name in dgo: sparticle-launcher
;; dgos: GAME, ENGINE
;; 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))
+3 -42
View File
@@ -70,54 +70,15 @@
)
(defun-debug pat-material->string ((pat pat-surface))
(case (-> pat material)
(((pat-material neutral)) "neutral")
(((pat-material rotate)) "rotate")
(((pat-material stopproj)) "stopproj")
(((pat-material swamp)) "swamp")
(((pat-material tube)) "tube")
(((pat-material straw)) "straw")
(((pat-material metal)) "metal")
(((pat-material dirt)) "dirt")
(((pat-material gravel)) "gravel")
(((pat-material crwood)) "crwood")
(((pat-material lava)) "lava")
(((pat-material hotcoals)) "hotcoals")
(((pat-material deepsnow)) "deepsnow")
(((pat-material snow)) "snow")
(((pat-material pcmetal)) "pcmetal")
(((pat-material grass)) "grass")
(((pat-material wood)) "wood")
(((pat-material sand)) "sand")
(((pat-material tar)) "tar")
(((pat-material waterbottom)) "waterbottom")
(((pat-material quicksand)) "quicksand")
(((pat-material ice)) "ice")
(((pat-material stone)) "stone")
(else "*unknown*")
)
(enum->string pat-material (-> pat material))
)
(defun-debug pat-mode->string ((pat pat-surface))
(case (-> pat mode)
(((pat-mode obstacle)) "obstacle")
(((pat-mode wall)) "wall")
(((pat-mode ground)) "ground")
(else "*unknown*")
)
(enum->string pat-mode (-> pat mode))
)
(defun-debug pat-event->string ((pat pat-surface))
(case (-> pat event)
(((pat-event melt)) "melt")
(((pat-event burnup)) "burnup")
(((pat-event deadlyup)) "deadlyup")
(((pat-event burn)) "burn")
(((pat-event endlessfall)) "endlessfall")
(((pat-event deadly)) "deadly")
(((pat-event none)) "none")
(else "*unknown*")
)
(enum->string pat-event (-> pat event))
)
(deftype pat-mode-info (structure)
+2
View File
@@ -88,6 +88,8 @@
(jungle-temple-door #x265)
(misty-bike-jump #x266)
(misty-eco-challenge #x267)
(misty-teetertotter-bonk-dax-tutorial #x2a4)
(village2-gambler-money #x300)
(village2-geologist-money #x301)