decomp: finish merc-death and some progress on ocean / powerups (#940)

* blocked: `powerups` finicky handle casts

* stuck: decompiled `ocean-texture` but `ocean-verts` is a mystery to me

* decomp: finish `merc-death`

* fix some issues, add a way to remind us for files we've manually touched

* tests: add `ambient` to ref tests, uncover compiler error

* tests: add `main` and `font` to ref tests
This commit is contained in:
Tyler Wilding
2021-10-26 19:16:16 -04:00
committed by GitHub
parent 42cf04d8fe
commit 5f040792e9
26 changed files with 4723 additions and 236 deletions
+44 -40
View File
@@ -496,10 +496,11 @@
(defenum bucket-id
:type int32
:bitfield #f
(bucket-1 1)
(bucket-2 2)
(sky-draw 3)
(bucket-4 4) ;; ocean
(tfrag-tex0 5)
;; merc0 10
;; generic0 11
@@ -549,6 +550,7 @@
(water-tex1 60)
(bucket-61 61)
(bucket-62 62)
(bucket-63 63) ; ocean
;; merc1 61
;; generic1 62
(depth-cue 64)
@@ -7179,8 +7181,8 @@
(define-extern *ocean-off* symbol)
(define-extern *ocean-mid-off* symbol)
(define-extern *ocean-near-off* symbol)
(define-extern *ocean-heights* symbol)
(define-extern *ocean-verts* symbol)
(define-extern *ocean-heights* ocean-wave-info) ;; guess
(define-extern *ocean-verts* (pointer vector)) ;; ret from ocean-generate-verts
;; ----------------------
@@ -11302,10 +11304,10 @@
(unknown-smush00 smush-control :inline :offset 2288) ;; from (event target-fishing)
(unknown-vector110 vector :inline :offset 2320) ;; from logic-target::flag-setup
(unknown-vector111 vector :inline :offset 2336) ;; from logic-target::flag-setup
(unknown-int30 int32 :offset 2384) ;; from target-util::target-danger-set!
(unknown-symbol30 symbol :offset 2384) ;; from target-util::target-danger-set!
(unknown-dword50 int64 :offset 2392) ;; from target-util::target-start-attack
(unknown-dword51 int64 :offset 2400) ;; from target-util::target-start-attack
(unknown-symbol10 symbol :offset 2428) ;; from logic-target::post-flag-setup
(unknown-symbol40 symbol :offset 2428) ;; from logic-target::post-flag-setup
(unknown-halfword00 int16 :offset 2488) ;; from logic-target::target-move-dist
;; these were determined from racer-collision-reaction.
(history-length int16 :offset 2490)
@@ -11315,7 +11317,9 @@
(unknown-dword70 int64 :offset 18888) ;; from logic-target::post-flag-setup
(unknown-dword71 int64 :offset 18896) ;; from logic-target::post-flag-setup
(unknown-dword72 int64 :offset 18912) ;; from logic-target::reset-target-state
(pad uint32 7)
(unknown-int50 uint32 :offset 18976) ;; from logic-target::print-target-stats
(unknown-soundid00 sound-id :offset 18980) ;; from powerups::target-powerup-process
(unknown-float130 float :offset 18984) ;; from powerups::target-powerup-process
)
:size-assert #x4a2c
:method-count-assert 65
@@ -16738,7 +16742,7 @@
(define-extern sp-adjust-launch (function sparticle-launchinfo sparticle-cpuinfo (inline-array sp-field-init-spec) none))
(define-extern sp-euler-convert (function sparticle-launchinfo sparticle-cpuinfo none))
(define-extern sp-rotate-system (function sparticle-launchinfo sparticle-cpuinfo transformq none))
(define-extern sp-launch-particles-death (function sparticle-system sparticle-launcher sparticle-launchinfo none))
(define-extern sp-launch-particles-death (function sparticle-system sparticle-launcher vector none))
(define-extern sp-clear-queue (function none))
(define-extern sp-relaunch-particle-2d (function object sparticle-launcher sparticle-cpuinfo sprite-vec-data-3d none))
(define-extern sp-relaunch-particle-3d (function object sparticle-launcher sparticle-cpuinfo sprite-vec-data-3d none))
@@ -18245,17 +18249,17 @@
;; - Functions
(define-extern birth-func-death-sparks function)
(define-extern merc-death-spawn function)
(define-extern birth-func-death-sparks (function none)) ;; does absolutely nothing
(define-extern merc-death-spawn (function int vector vector none)) ;; i think the int is the id for the particle table
;; - Unknowns
;;(define-extern *merc-death-globals* object) ;; unknown type
;;(define-extern death-beach-puppy object) ;; unknown type
;;(define-extern death-jungle-snake object) ;; unknown type
;;(define-extern death-default object) ;; unknown type
;;(define-extern death-warp-in object) ;; unknown type
;;(define-extern death-warp-out object) ;; unknown type
(define-extern *merc-death-globals* vector) ;; unknown type
(define-extern death-beach-puppy death-info) ;; unknown type
(define-extern death-jungle-snake death-info) ;; unknown type
(define-extern death-default death-info) ;; unknown type
(define-extern death-warp-in death-info) ;; unknown type
(define-extern death-warp-out death-info) ;; unknown type
;; ----------------------
@@ -19383,7 +19387,7 @@
(define-extern cam-launcher-joystick function)
(define-extern launcher-init-by-other function)
(define-extern touch-tracker-init (function object object object none))
(define-extern process-drawable-pair-random-point! function)
(define-extern process-drawable-pair-random-point! (function process-drawable process-drawable vector float vector))
(define-extern birth-func-set-quat function)
(define-extern draw-eco-beam (function vector vector none))
@@ -19591,7 +19595,7 @@
(define-extern target-exit (function none))
(define-extern target-calc-camera-pos (function none :behavior target))
(define-extern do-target-shadow (function none :behavior target))
(define-extern target-powerup-process (function none))
(define-extern target-powerup-process (function none :behavior target))
(define-extern flag-setup (function none :behavior target))
(define-extern build-conversions (function vector vector :behavior target))
(define-extern do-rotations1 (function quaternion :behavior target))
@@ -19707,7 +19711,7 @@
(define-extern target-attacked (function symbol uint uint process (state target) object :behavior target)) ;; unconfirmed, target-tube::(event target-tube-start)
(define-extern target-apply-tongue function)
(define-extern get-intersect-point function)
(define-extern target-powerup-effect function)
(define-extern target-powerup-effect (function symbol none :behavior target))
(define-extern target-shoved function)
(define-extern target-dangerous-event-handler function)
(define-extern target-jump-event-handler function)
@@ -20845,7 +20849,7 @@
;; - Functions
(define-extern eco-blue-glow (function collide-shape-prim none))
(define-extern cloud-track (function none))
(define-extern cloud-track (function process-tree process-tree (function vector none) int int int symbol))
;; ----------------------
@@ -21263,18 +21267,18 @@
;; - Functions
(define-extern ocean-interp-wave function)
(define-extern ocean-generate-verts function)
(define-extern draw-ocean-texture function)
(define-extern ocean-init-buffer (function dma-buffer none)) ; not confirmed
(define-extern draw-ocean-far (function dma-buffer none)) ; not confirmed
(define-extern ocean-interp-wave (function ocean-wave-info uint none)) ;; unconfirmed
(define-extern ocean-generate-verts (function (pointer vector) ocean-wave-info none)) ;; unconfirmed - pointer is *ocean-verts*
(define-extern draw-ocean-texture (function dma-buffer (pointer vector) symbol none)) ;; unconfirmed - pointer is *ocean-verts*
(define-extern ocean-init-buffer (function dma-buffer pointer))
(define-extern draw-ocean-far (function dma-buffer profile-frame))
(define-extern draw-ocean-mid (function dma-buffer none)) ; not confirmed
(define-extern ocean-end-buffer (function dma-buffer none)) ; not confirmed
(define-extern draw-ocean-near function)
(define-extern init-ocean-far-regs function)
(define-extern render-ocean-far function)
(define-extern render-ocean-quad function)
(define-extern draw-large-polygon-ocean function)
(define-extern ocean-end-buffer (function dma-buffer pointer))
(define-extern draw-ocean-near (function dma-buffer none)) ; not confirmed
(define-extern init-ocean-far-regs (function none))
(define-extern render-ocean-far (function dma-buffer int none))
(define-extern render-ocean-quad (function ocean-mid-upload2 none))
(define-extern draw-large-polygon-ocean (function none))
(define-extern draw-ocean (function none))
(define-extern update-ocean (function none))
@@ -21284,7 +21288,7 @@
;; - Unknowns
;;(define-extern *swamp-low-ocean-marker* object) ;; unknown type
(define-extern *swamp-low-ocean-marker* vector) ;; unknown type
;; ----------------------
@@ -21307,19 +21311,19 @@
;; - Functions
(define-extern ocean-texture-add-constants function)
(define-extern ocean-texture-add-envmap function)
(define-extern ocean-texture-add-verts function)
(define-extern ocean-texture-add-call-start function)
(define-extern ocean-texture-add-call-rest function)
(define-extern ocean-texture-add-verts-last function)
(define-extern ocean-texture-add-call-done function)
(define-extern ocean-texture-setup-constants function)
(define-extern ocean-texture-add-constants (function dma-buffer pointer))
(define-extern ocean-texture-add-envmap (function dma-buffer pointer))
(define-extern ocean-texture-add-verts (function dma-buffer (pointer vector) pointer)) ;; pointer is *ocean-verts*
(define-extern ocean-texture-add-call-start (function dma-buffer none)) ;; unconfirmed
(define-extern ocean-texture-add-call-rest (function dma-buffer none)) ;; unconfirmed
(define-extern ocean-texture-add-verts-last (function dma-buffer (pointer vector) (pointer vector) pointer)) ;; pointer is *ocean-verts* and unconfirmed
(define-extern ocean-texture-add-call-done (function dma-buffer none)) ;; unconfirmed
(define-extern ocean-texture-setup-constants (function ocean-texture-constants none))
;; - Unknowns
(define-extern ocean-texture-vu1-block vu-function)
;;(define-extern *ocean-texture-work* object) ;; unknown type
(define-extern *ocean-texture-work* ocean-texture-work) ;; unknown type
;; ----------------------
@@ -157,7 +157,7 @@
// generic-merc
"generic-merc-execute-all",
"generic-merc-execute-asm",
"generic-merc-execute-asm", // CFG
"high-speed-reject",
"mercneric-convert",
"mercneric-bittable-asm",
@@ -331,10 +331,10 @@
"add-blue-motion",
// ocean
"draw-large-polygon-ocean",
"draw-large-polygon-ocean", // CFG
// ocean-vu0
"ocean-generate-verts",
"ocean-generate-verts", // crash
"ocean-interp-wave",
// nav-enemy BUG
@@ -968,8 +968,6 @@
["L100", "vector"]
],
"part-tester": [["L32", "uint64", true]],
"anim-tester": [
["L509", "(inline-array list-field)", 12],
["L523", "vector"],
@@ -1150,6 +1148,11 @@
["L32", "uint64", true]
],
"ocean-texture": [
["L14", "vu-function"],
["L15", "ocean-texture-work"]
],
// 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": []
@@ -2747,5 +2747,42 @@
[16, "event-message-block"]
],
"cloud-track": [
[16, "vector"],
[32, "vector"]
],
"target-powerup-effect": [
[16, "vector"]
],
"target-powerup-process": [
[16, "vector"],
[32, "vector"],
[48, "vector"],
[64, "vector"],
[80, "event-message-block"],
[160, "vector"],
[176, "vector"],
[192, "touching-shapes-entry"],
[208, "vector"],
[224, "vector"],
[240, "vector"],
[256, "vector"],
[272, "vector"],
[288, "vector"],
[304, "vector"],
[320, "vector"]
],
"process-drawable-pair-random-point!": [
[16, "vector"],
[32, "vector"]
],
"update-ocean": [
[16, "vector"]
],
"placeholder-do-not-add-below!": []
}
@@ -4121,5 +4121,13 @@
[[8, 56], "v1", "cam-collision-record"]
],
"cloud-track": [
[26, "s1", "handle"],
[39, "s2", "handle"],
[74, "s1", "handle"],
[76, "s2", "handle"],
[101, "s2", "handle"]
],
"placeholder-do-not-add-below": []
}
@@ -3649,5 +3649,11 @@
}
},
"execute-math-engine": {
"vars": {
"a0-1": ["a0-1", "process-drawable"]
}
},
"aaaaaaaaaaaaaaaaaaaaaaa": {}
}
+71 -111
View File
@@ -5,11 +5,17 @@
;; name in dgo: ambient
;; dgos: GAME, ENGINE
;; decomp begins
(define-extern level-hint-init-by-other (function game-text-id string entity none :behavior level-hint))
(define-extern ambient-hint-init-by-other (function string vector symbol none :behavior level-hint))
(define-extern level-hint-sidekick (state string level-hint))
(define-extern level-hint-normal (state level-hint))
(define-extern level-hint-exit (state level-hint))
(define-extern level-hint-error (state string string level-hint))
(define-extern level-hint-ambient-sound (state string level-hint))
;; DECOMP BEGINS
;; definition for method 8 of type drawable-ambient
;; INFO: Return type mismatch int vs drawable-ambient.
(defmethod
mem-usage
drawable-ambient
@@ -25,8 +31,6 @@
(the-as drawable-ambient 0)
)
;; definition for method 8 of type drawable-inline-array-ambient
;; INFO: Return type mismatch int vs drawable-inline-array-ambient.
(defmethod
mem-usage
drawable-inline-array-ambient
@@ -44,10 +48,8 @@
(the-as drawable-inline-array-ambient 0)
)
;; definition for symbol *hint-semaphore*, type (pointer level-hint)
(define *hint-semaphore* (the-as (pointer level-hint) #f))
;; definition for function level-hint-process-cmd
(defun level-hint-process-cmd ((arg0 (pointer int32)) (arg1 int) (arg2 int))
(let ((v1-2 (-> arg0 arg1))
(gp-0 (+ arg1 1))
@@ -210,8 +212,6 @@
)
)
;; definition for function level-hint-task-process
;; Used lq/sq
(defun level-hint-task-process ((arg0 entity) (arg1 uint128) (arg2 string))
(local-vars (sv-16 res-tag))
(let ((gp-0 (res-lump-value arg0 'text-id int :default arg1))
@@ -267,15 +267,12 @@
)
)
;; definition for function level-hint-surpress!
;; INFO: Return type mismatch int vs none.
(defun level-hint-surpress! ()
(set! (-> *game-info* hint-play-time) (-> *display* base-frame-counter))
0
(none)
)
;; definition for function can-grab-display?
(defun can-grab-display? ((arg0 process-taskable))
(let ((v1-2 (handle->process (-> *game-info* display-text-handle))))
(when
@@ -317,9 +314,6 @@
)
)
;; definition for function level-hint-spawn
;; INFO: Return type mismatch int vs none.
(define-extern level-hint-init-by-other (function game-text-id string entity none :behavior level-hint))
(defun
level-hint-spawn
((arg0 game-text-id)
@@ -354,9 +348,6 @@
(none)
)
;; definition for function ambient-hint-spawn
;; INFO: Return type mismatch (pointer process) vs object.
(define-extern ambient-hint-init-by-other (function string vector symbol none :behavior level-hint))
(defun
ambient-hint-spawn
((arg0 string) (arg1 vector) (arg2 process-tree) (arg3 symbol))
@@ -387,35 +378,22 @@
)
)
;; definition for function kill-current-level-hint
;; INFO: Return type mismatch int vs none.
(defun kill-current-level-hint ((arg0 pair) (arg1 pair) (arg2 symbol))
(with-pp
(when *hint-semaphore*
(let ((s4-0 (ppointer->process *hint-semaphore*)))
(when
(and
(or (null? arg0) (member (-> (the-as level-hint s4-0) mode) arg0))
(not (member (-> (the-as level-hint s4-0) mode) arg1))
)
(let ((a1-4 (new 'stack-no-clear 'event-message-block)))
(set! (-> a1-4 from) pp)
(set! (-> a1-4 num-params) 0)
(set! (-> a1-4 message) arg2)
(send-event-function (the-as process s4-0) a1-4)
)
(when *hint-semaphore*
(let ((s4-0 (ppointer->process *hint-semaphore*)))
(if
(and
(or (null? arg0) (member (-> (the-as level-hint s4-0) mode) arg0))
(not (member (-> (the-as level-hint s4-0) mode) arg1))
)
(send-event (the-as level-hint s4-0) arg2)
)
)
0
(none)
)
0
(none)
)
;; definition for function level-hint-init-by-other
;; INFO: Return type mismatch int vs none.
(define-extern level-hint-sidekick (state string level-hint))
(define-extern level-hint-normal (state level-hint))
(defbehavior
level-hint-init-by-other level-hint
((arg0 game-text-id) (arg1 string) (arg2 entity))
@@ -467,9 +445,6 @@
(none)
)
;; definition for function ambient-hint-init-by-other
;; INFO: Return type mismatch int vs none.
(define-extern level-hint-ambient-sound (state string level-hint))
(defbehavior
ambient-hint-init-by-other level-hint
((arg0 string) (arg1 vector) (arg2 symbol))
@@ -482,7 +457,14 @@
(push-setting! *setting-control* self 'hint (process->ppointer self) 0.0 0)
(set! (-> self mode) arg2)
(if (or (= arg2 'camera) (= arg2 'ambient) (= arg2 'stinger))
(push-setting! *setting-control* self 'ambient (process->ppointer self) 0.0 0)
(push-setting!
*setting-control*
self
'ambient
(process->ppointer self)
0.0
0
)
)
(copy-settings-from-target! *setting-control*)
(set!
@@ -505,8 +487,6 @@
(none)
)
;; definition for method 14 of type level-hint
;; INFO: Return type mismatch int vs none.
(defmethod print-text level-hint ((obj level-hint))
(when (!= *common-text* #f)
(let
@@ -543,7 +523,6 @@
(none)
)
;; definition for method 15 of type level-hint
(defmethod dummy-15 level-hint ((obj level-hint))
(and
(!= (-> obj next-state name) 'level-hint-sidekick)
@@ -551,9 +530,6 @@
)
)
;; failed to figure out what this is:
(define-extern level-hint-exit (state level-hint))
(define-extern level-hint-error (state string string level-hint))
(defstate level-hint-normal (level-hint)
:event
(behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
@@ -623,7 +599,6 @@
)
)
;; failed to figure out what this is:
(defstate level-hint-sidekick (level-hint)
:event
(behavior ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block))
@@ -655,12 +630,7 @@
(if (= (ppointer->process *hint-semaphore*) self)
(set! *hint-semaphore* (the-as (pointer level-hint) #f))
)
(let ((a1-3 (new 'stack-no-clear 'event-message-block)))
(set! (-> a1-3 from) self)
(set! (-> a1-3 num-params) 0)
(set! (-> a1-3 message) 'die)
(send-event-function (handle->process (-> self voicebox)) a1-3)
)
(send-event (handle->process (-> self voicebox)) 'die)
(none)
)
:code
@@ -715,9 +685,30 @@
)
(cond
((= (current-str-id) s5-2)
(push-setting! *setting-control* self 'music-volume 'rel (-> *setting-control* current music-volume-movie) 0)
(push-setting! *setting-control* self 'sfx-volume 'rel (-> *setting-control* current sfx-volume-movie) 0)
(push-setting! *setting-control* self 'dialog-volume 'rel (-> *setting-control* current dialog-volume-hint) 0)
(push-setting!
*setting-control*
self
'music-volume
'rel
(-> *setting-control* current music-volume-movie)
0
)
(push-setting!
*setting-control*
self
'sfx-volume
'rel
(-> *setting-control* current sfx-volume-movie)
0
)
(push-setting!
*setting-control*
self
'dialog-volume
'rel
(-> *setting-control* current dialog-volume-hint)
0
)
(while (= (current-str-id) s5-2)
(suspend)
)
@@ -734,7 +725,6 @@
)
)
;; failed to figure out what this is:
(defstate level-hint-ambient-sound (level-hint)
:event
(-> level-hint-sidekick event)
@@ -807,8 +797,22 @@
(cond
((= (current-str-id) (-> self sound-id))
(when (or (= (-> self mode) 'stinger) (= (-> self mode) 'camera))
(push-setting! *setting-control* self 'music-volume 'rel (-> *setting-control* current music-volume-movie) 0)
(push-setting! *setting-control* self 'sfx-volume 'rel (-> *setting-control* current sfx-volume-movie) 0)
(push-setting!
*setting-control*
self
'music-volume
'rel
(-> *setting-control* current music-volume-movie)
0
)
(push-setting!
*setting-control*
self
'sfx-volume
'rel
(-> *setting-control* current sfx-volume-movie)
0
)
)
(while (= (current-str-id) (-> self sound-id))
(suspend)
@@ -823,7 +827,6 @@
)
)
;; failed to figure out what this is:
(defstate level-hint-error (level-hint)
:event
(-> level-hint-normal event)
@@ -874,7 +877,6 @@
)
)
;; failed to figure out what this is:
(defstate level-hint-exit (level-hint)
:code
(behavior ()
@@ -885,8 +887,6 @@
)
)
;; definition for function ambient-type-error
;; INFO: Return type mismatch int vs none.
(defun ambient-type-error ((arg0 drawable-ambient) (arg1 vector))
(when *display-entity-errors*
(let ((s2-0 (-> arg0 ambient)))
@@ -912,15 +912,11 @@
(none)
)
;; definition for function ambient-type-poi
;; INFO: Return type mismatch int vs none.
(defun ambient-type-poi ((arg0 drawable-ambient) (arg1 vector))
0
(none)
)
;; definition for function ambient-type-hint
;; INFO: Return type mismatch int vs none.
(defun ambient-type-hint ((arg0 drawable-ambient) (arg1 vector))
(with-pp
(let
@@ -996,9 +992,6 @@
)
)
;; definition for function ambient-type-sound
;; INFO: Return type mismatch int vs none.
;; Used lq/sq
(defun ambient-type-sound ((arg0 drawable-ambient) (arg1 vector))
(local-vars (sv-16 string) (sv-112 res-tag))
(let* ((s5-0 (-> arg0 ambient))
@@ -1093,9 +1086,6 @@
(none)
)
;; definition for function ambient-type-sound-loop
;; INFO: Return type mismatch int vs none.
;; Used lq/sq
(defun ambient-type-sound-loop ((arg0 drawable-ambient) (arg1 vector))
(let* ((s5-0 (-> arg0 ambient))
(s2-0
@@ -1130,9 +1120,6 @@
(none)
)
;; definition for function ambient-type-light
;; INFO: Return type mismatch int vs none.
;; Used lq/sq
(defun ambient-type-light ((arg0 drawable-ambient) (arg1 vector))
(when *target*
(let ((s4-0 (-> arg0 ambient))
@@ -1196,9 +1183,6 @@
(none)
)
;; definition for function ambient-type-dark
;; INFO: Return type mismatch int vs none.
;; Used lq/sq
(defun ambient-type-dark ((arg0 drawable-ambient) (arg1 vector))
(when *target*
(let ((s4-0 (-> arg0 ambient))
@@ -1263,9 +1247,6 @@
(none)
)
;; definition for function ambient-type-weather-off
;; INFO: Return type mismatch int vs none.
;; Used lq/sq
(defun ambient-type-weather-off ((arg0 drawable-ambient) (arg1 vector))
(when *target*
(let ((s4-0 (-> arg0 ambient))
@@ -1330,37 +1311,32 @@
(none)
)
;; definition for function ambient-type-ocean-off
;; INFO: Return type mismatch int vs none.
(defun ambient-type-ocean-off ((arg0 drawable-ambient) (arg1 vector))
(set! *ocean-off* #t)
0
(none)
)
;; definition for function ambient-type-ocean-near-off
;; INFO: Return type mismatch int vs none.
(defun ambient-type-ocean-near-off ((arg0 drawable-ambient) (arg1 vector))
(set! *ocean-near-off* #t)
0
(none)
)
;; definition for function ambient-type-music
;; INFO: Return type mismatch int vs none.
(defun ambient-type-music ((arg0 drawable-ambient) (arg1 vector))
(let ((gp-0 (-> arg0 ambient)))
(if (-> gp-0 ambient-data user-object 0)
(if (-> gp-0 ambient-data user-float 0)
(set!
(-> *setting-control* default music)
(the-as symbol (-> gp-0 ambient-data user-object 0))
(the-as symbol (-> gp-0 ambient-data user-float 0))
)
)
(when (nonzero? (-> gp-0 ambient-data user-int32 1))
(when (nonzero? (-> gp-0 ambient-data user-float 1))
(let ((f0-0 (res-lump-float gp-0 'priority :default 10.0)))
(when (>= f0-0 (-> *setting-control* default sound-flava-priority))
(set!
(-> *setting-control* default sound-flava)
;; TODO this following form has been manually modified to work
(the-as uint (-> gp-0 ambient-data user-int32 1))
)
(set! (-> *setting-control* default sound-flava-priority) f0-0)
@@ -1372,8 +1348,6 @@
(none)
)
;; definition for method 17 of type drawable-ambient
;; INFO: Return type mismatch int vs none.
(defmethod
collect-ambients
drawable-ambient
@@ -1389,8 +1363,6 @@
(none)
)
;; definition for method 17 of type drawable-inline-array-ambient
;; INFO: Return type mismatch int vs none.
(defmethod
collect-ambients
drawable-inline-array-ambient
@@ -1409,8 +1381,6 @@
(none)
)
;; definition for method 17 of type drawable-tree-ambient
;; INFO: Return type mismatch int vs none.
(defmethod
collect-ambients
drawable-tree-ambient
@@ -1420,9 +1390,6 @@
(none)
)
;; definition for method 28 of type entity-ambient
;; INFO: Return type mismatch entity-ambient vs none.
;; Used lq/sq
(defmethod birth-ambient! entity-ambient ((obj entity-ambient))
(set! (-> obj ambient-data quad) (the-as uint128 0))
(set! (-> obj ambient-data function) ambient-type-error)
@@ -1567,23 +1534,16 @@
(none)
)
;; definition for symbol *execute-ambients*, type symbol
(define *execute-ambients* #t)
;; definition for method 18 of type drawable-ambient
;; INFO: Return type mismatch int vs none.
(defmethod dummy-18 drawable-ambient ((obj drawable-ambient) (arg0 vector))
((-> obj ambient ambient-data function) obj arg0)
0
(none)
)
;; definition (debug) for function ambient-inspect
;; ERROR: function was not converted to expressions. Cannot decompile.
;; definition for method 27 of type entity-ambient
;; INFO: Return type mismatch int vs none.
;; Used lq/sq
(defmethod draw-debug entity-ambient ((obj entity-ambient))
(local-vars (sv-16 uint128))
(let ((gp-0 (-> obj trans))
+5 -3
View File
@@ -133,10 +133,10 @@
(unknown-smush00 smush-control :inline :offset 2288) ;; from (event target-fishing)
(unknown-vector110 vector :inline :offset 2320) ;; from logic-target::flag-setup
(unknown-vector111 vector :inline :offset 2336) ;; from logic-target::flag-setup
(unknown-int30 int32 :offset 2384) ;; from target-util::target-danger-set!
(unknown-symbol30 symbol :offset 2384) ;; from target-util::target-danger-set!
(unknown-dword50 int64 :offset 2392) ;; from target-util::target-start-attack
(unknown-dword51 int64 :offset 2400) ;; from target-util::target-start-attack
(unknown-symbol10 symbol :offset 2428) ;; from logic-target::post-flag-setup
(unknown-symbol40 symbol :offset 2428) ;; from logic-target::post-flag-setup
(unknown-halfword00 int16 :offset 2488) ;; from logic-target::target-move-dist
;; these were determined from racer-collision-reaction.
(history-length int16 :offset 2490)
@@ -146,7 +146,9 @@
(unknown-dword70 int64 :offset 18888) ;; from logic-target::post-flag-setup
(unknown-dword71 int64 :offset 18896) ;; from logic-target::post-flag-setup
(unknown-dword72 int64 :offset 18912) ;; from logic-target::reset-target-state
(pad uint32 7)
(unknown-int50 uint32 :offset 18976) ;; from logic-target::print-target-stats
(unknown-soundid00 sound-id :offset 18980) ;; from powerups::target-powerup-process
(unknown-float130 float :offset 18984) ;; from powerups::target-powerup-process
)
:size-assert #x4a2c
:method-count-assert 65
+4 -2
View File
@@ -212,10 +212,11 @@
(defenum bucket-id
:type int32
:bitfield #f
(bucket-1 1)
(bucket-2 2)
(sky-draw 3)
(bucket-4 4) ;; ocean
(tfrag-tex0 5)
;; merc0 10
;; generic0 11
@@ -265,10 +266,11 @@
(water-tex1 60)
(bucket-61 61)
(bucket-62 62)
(bucket-63 63) ; ocean
;; merc1 61
;; generic1 62
(depth-cue 64)
(pre-sprite-textures 65) ;; always common
(pre-sprite-textures 65) ;; common
(sprite 66)
;; debug spheres? 67
(debug-draw0 67)
+133 -6
View File
@@ -5,15 +5,142 @@
;; name in dgo: merc-death
;; dgos: GAME, ENGINE
;; TODO - for effect-control
;; DECOMP BEGINS
(define *merc-death-globals* (new 'global 'vector))
(deftype death-info (basic)
((vertex-skip uint16 :offset-assert 4)
(timer uint8 :offset-assert 6)
(overlap uint8 :offset-assert 7)
(effect uint32 :offset-assert 8)
(sound basic :offset-assert 12)
((vertex-skip uint16 :offset-assert 4)
(timer uint8 :offset-assert 6)
(overlap uint8 :offset-assert 7)
(effect uint32 :offset-assert 8)
(sound basic :offset-assert 12)
)
:method-count-assert 9
:size-assert #x10
:flag-assert #x900000010
)
(defun birth-func-death-sparks ()
0
(none)
)
(define
death-beach-puppy
(new 'static 'death-info
:vertex-skip #x82
:timer #x4b
:overlap #x4
:effect #x29
:sound 'temp-enemy-die
)
)
(define
death-jungle-snake
(new 'static 'death-info
:vertex-skip #xa
:timer #x4b
:overlap #x4
:effect #x29
:sound 'temp-enemy-die
)
)
(define
death-default
(new 'static 'death-info
:vertex-skip #x50
:timer #x4b
:overlap #x4
:effect #x29
:sound 'temp-enemy-die
)
)
(define
death-warp-in
(new 'static 'death-info
:vertex-skip #x96
:timer #x4b
:effect #x29
:sound 'warpgate-tele
)
)
(define
death-warp-out
(new 'static 'death-info
:vertex-skip #x96
:timer #x96
:effect #x29
:sound 'warpgate-tele
)
)
(set!
(-> *part-id-table* 41)
(new 'static 'sparticle-launcher
:init-specs
(new 'static 'inline-array sp-field-init-spec 15
(sp-flt spt-scale-x (meters 0.5))
(sp-copy-from-other spt-scale-y -4)
(sp-rnd-flt spt-r 64.0 32.0 1.0)
(sp-rnd-flt spt-g 16.0 32.0 1.0)
(sp-rnd-flt spt-b 48.0 32.0 1.0)
(sp-rnd-flt spt-a 48.0 48.0 1.0)
(sp-rnd-flt spt-vel-y (meters 0.0) (meters 0.006666667) 1.0)
(sp-flt spt-scalevel-x (meters -0.0016666667))
(sp-flt spt-scalevel-y (meters 0.02))
(sp-flt spt-accel-y -2.7306666)
(sp-int spt-timer 120)
(sp-cpuinfo-flags bit2 bit3 bit12)
(sp-int-plain-rnd spt-next-time 15 59 1)
(sp-launcher-by-id spt-next-launcher 42)
(sp-end)
)
)
)
(set!
(-> *part-id-table* 42)
(new 'static 'sparticle-launcher
:init-specs
(new 'static 'inline-array sp-field-init-spec 5
(sp-flt spt-fade-a -1.4222223)
(sp-int spt-timer 45)
(sp-int spt-next-time 42)
(sp-launcher-by-id spt-next-launcher 43)
(sp-end)
)
)
)
(set!
(-> *part-id-table* 43)
(new 'static 'sparticle-launcher
:init-specs
(new 'static 'inline-array sp-field-init-spec 4
(sp-flt spt-scalevel-x (meters 0.0))
(sp-flt spt-fade-a -0.21333334)
(sp-int-plain-rnd spt-timer 0 296 1)
(sp-end)
)
)
)
(defun merc-death-spawn ((arg0 int) (arg1 vector) (arg2 vector))
(let ((v1-2 (-> *part-id-table* arg0)))
(if (and (nonzero? v1-2) (= (-> v1-2 type) sparticle-launcher))
(sp-launch-particles-death *sp-particle-system-2d* v1-2 arg1)
)
)
0
(none)
)
+2 -2
View File
@@ -227,8 +227,8 @@
(define *ocean-off* #f)
(define *ocean-mid-off* #f)
(define *ocean-near-off* #f)
(define *ocean-heights* #f)
(define *ocean-verts* #f)
(define *ocean-heights* (new 'static 'ocean-wave-info))
(define *ocean-verts* (the-as (pointer vector) #f))
(deftype ocean-vu0-work (structure)
((scales vector :inline :offset-assert 0)
@@ -439,7 +439,7 @@
(define *death-adgif* (the-as adgif-shader #f))
(defun sp-launch-particles-death ((arg0 sparticle-system) (arg1 sparticle-launcher) (arg2 sparticle-launchinfo))
(defun sp-launch-particles-death ((arg0 sparticle-system) (arg1 sparticle-launcher) (arg2 vector))
(rlet ((vf0 :class vf)
(vf1 :class vf)
(vf2 :class vf)
@@ -451,7 +451,7 @@
(vf6 :class vf)
)
(init-vf0-vector)
(.lvf vf30 (&-> arg2 launchrot quad))
(.lvf vf30 (&-> arg2 quad))
(let ((v1-0 #x437f0000))
(.mov vf31 v1-0)
)
@@ -1279,4 +1279,4 @@
(set! (-> arg1 next-time) (the-as uint (the int (rand-vu-float-range 0.0 (-> arg1 user-float)))))
0
(none)
)
)
+13 -6
View File
@@ -367,15 +367,22 @@
(let ((s4-2 format)
(s3-2 arg1)
(s2-2 "~0kwall:~6X mode:~-8S material:~-10S event:~S~%")
(s1-2 (-> arg0 control pad 4))
(s0-2 (pat-mode->string (the-as pat-surface (-> arg0 control pad 4))))
(s1-2 (-> arg0 control unknown-int50))
(s0-2
(pat-mode->string
(the-as pat-surface (-> arg0 control unknown-int50))
)
)
)
(set!
sv-96
(pat-material->string (the-as pat-surface (-> arg0 control pad 4)))
(pat-material->string (the-as pat-surface (-> arg0 control unknown-int50)))
)
(let
((t1-2 (pat-event->string (the-as pat-surface (-> arg0 control pad 4)))))
((t1-2
(pat-event->string (the-as pat-surface (-> arg0 control unknown-int50)))
)
)
(s4-2 s3-2 s2-2 s1-2 s0-2 sv-96 t1-2)
)
)
@@ -1628,7 +1635,7 @@
(target-timed-invulnerable-off self)
)
)
(set! (-> self control unknown-symbol10) #f)
(set! (-> self control unknown-symbol40) #f)
0
(none)
)
@@ -2776,7 +2783,7 @@
(-> self sound)
(new 'process 'ambient-sound 'none (-> self control trans))
)
(set! (-> self control pad 5) (the-as uint (new-sound-id)))
(set! (-> self control unknown-soundid00) (new-sound-id))
(if *debug-segment*
(add-connection *debug-engine* self target-print-stats self *stdcon0* #f)
)
+2 -21
View File
@@ -17,7 +17,7 @@
;; TODO - for logic-target - defined in shadow
(define-extern do-target-shadow (function none :behavior target))
;; TODO - for logic-target - defined in powerups
(define-extern target-powerup-process (function none))
(define-extern target-powerup-process (function none :behavior target))
;; TODO - for logic-target - defined in target-handler
(define-extern target-exit (function none))
(define-extern target-generic-event-handler (function process int symbol event-message-block object))
@@ -36,25 +36,6 @@
(declare-type tube-info basic)
(declare-type racer-info basic)
;; TODO - for mood
(define-extern target-joint-pos (function vector)) ;; TODO - unconfirmed
;; TODO - for target-util
(define-extern target-falling (state symbol none))
(define-extern target-slide-down (state none))
;; TODO - for logic-target - defined in shadow
(define-extern do-target-shadow (function none :behavior target))
;; TODO - for logic-target - defined in powerups
(define-extern target-powerup-process (function none))
;; TODO - for logic-target - defined in target-handler
(define-extern target-exit (function none))
(define-extern target-generic-event-handler (function process int symbol event-message-block object))
;; TODO - for logic-target - defined in sidekick
(define-extern init-sidekick (function none)) ;; TODO - not finished
;; TODO - for logic-target - defined in target-death
(define-extern target-continue (state continue-point none))
;; decomp begins
;; definition of type target
@@ -127,4 +108,4 @@
)
(define-perm *sidekick* sidekick #f)
(define-extern target-attacked (function symbol uint uint process (state target) object :behavior target)) ;; unconfirmed, target-tube::(event target-tube-start)
(define-extern target-attacked (function symbol uint uint process (state target) object :behavior target)) ;; unconfirmed, target-tube::(event target-tube-start)
+13 -13
View File
@@ -251,7 +251,7 @@
(-> *TARGET-bank* root-offset)
(-> *TARGET-bank* root-radius)
)
(set! (-> self control unknown-int30) (the-as int arg0))
(set! (-> self control unknown-symbol30) arg0)
(set! (-> self state-flags) (logand -3 (-> self state-flags)))
(set! (-> s4-0 transform-index) -2)
(set! (-> s4-0 prim-core collide-as) (the-as uint 0))
@@ -270,7 +270,7 @@
(set! (-> gp-0 prim-core offense) 0)
(case arg0
(('harmless #f)
(set! (-> self control unknown-int30) (the-as int #f))
(set! (-> self control unknown-symbol30) #f)
(target-collide-set!
(-> self control unknown-symbol00)
(-> self control unknown-float90)
@@ -352,7 +352,7 @@
(-> *TARGET-bank* duck-spin-radius)
)
(set! (-> s5-0 transform-index) 7)
(set! (-> self control unknown-int30) (the-as int 'roll))
(set! (-> self control unknown-symbol30) 'roll)
)
(('flip)
(logior! (-> self state-flags) 2)
@@ -374,7 +374,7 @@
(-> *TARGET-bank* duck-spin-radius)
)
(set! (-> s5-0 transform-index) 7)
(set! (-> self control unknown-int30) (the-as int 'flip))
(set! (-> self control unknown-symbol30) 'flip)
)
(('punch)
(sphere<-vector+r!
@@ -442,7 +442,7 @@
(-> *TARGET-bank* flop-radius)
)
(set! f30-0 1.0)
(set! (-> self control unknown-int30) (the-as int 'flop))
(set! (-> self control unknown-symbol30) 'flop)
)
(('flop-down)
(logior! (-> self state-flags) 2)
@@ -466,7 +466,7 @@
(if (!= f30-0 1.0)
(set! f30-0 2.1)
)
(set! (-> self control unknown-int30) (the-as int 'flop))
(set! (-> self control unknown-symbol30) 'flop)
)
(('flut-attack)
(sphere<-vector+r!
@@ -1484,14 +1484,14 @@
(return (new 'static 'vector))
)
(let ((v1-0 *target*))
(if v1-0
(vector<-cspace!
(new 'static 'vector)
(-> v1-0 node-list data (-> v1-0 draw origin-joint-index))
)
(camera-pos)
)
(if v1-0
(vector<-cspace!
(new 'static 'vector)
(-> v1-0 node-list data (-> v1-0 draw origin-joint-index))
)
(camera-pos)
)
)
)
(defun target-rot ()
+17
View File
@@ -13,7 +13,24 @@ files = args.files.split(",")
throw_error = False
# files in this list have manual modifications in in code block
# sometimes these modifications don't prevent a compiler error
# and are easy to commit
#
# if you know of / add such a modification, you should append to this
# list, it will remind you such a file was touched by making a root file
# that will be picked up by git to shame you
files_with_modifications = [
"target-util",
"ambient"
]
for file in files:
if file in files_with_modifications:
file_name = "{}.manual_restore_reminder".format(file)
with open(file_name, 'w') as fp:
pass
disasm_path = "./decompiler_out/jak1/{}_disasm.gc".format(file)
if not os.path.exists(disasm_path):
print("{} doesn't exist!".format(disasm_path))
File diff suppressed because it is too large Load Diff
@@ -140,10 +140,10 @@
(unknown-smush00 smush-control :inline :offset 2288)
(unknown-vector110 vector :inline :offset 2320)
(unknown-vector111 vector :inline :offset 2336)
(unknown-int30 int32 :offset 2384)
(unknown-symbol30 symbol :offset 2384)
(unknown-dword50 int64 :offset 2392)
(unknown-dword51 int64 :offset 2400)
(unknown-symbol10 symbol :offset 2428)
(unknown-symbol40 symbol :offset 2428)
(unknown-halfword00 int16 :offset 2488)
(history-length int16 :offset 2490)
(history-data collide-history 128 :inline :offset-assert 2496)
@@ -152,7 +152,9 @@
(unknown-dword70 int64 :offset 18888)
(unknown-dword71 int64 :offset 18896)
(unknown-dword72 int64 :offset 18912)
(pad uint32 7 :offset-assert 18960)
(unknown-int50 uint32 :offset 18976)
(unknown-soundid00 sound-id :offset 18980)
(unknown-float130 float :offset 18984)
)
:method-count-assert 65
:size-assert #x4a2c
File diff suppressed because it is too large Load Diff
+593
View File
@@ -0,0 +1,593 @@
;;-*-Lisp-*-
(in-package goal)
;; definition for symbol *font12-table*, type (inline-array vector)
(define
*font12-table*
(new 'static 'inline-array vector 250
(new 'static 'vector :x 0.0039 :y 0.0019 :z 1.0 :w 15.0)
(new 'static 'vector :x 0.0976 :y 0.0019 :z 1.0 :w 15.0)
(new 'static 'vector :x 0.1914 :y 0.0019 :z 1.0 :w 15.0)
(new 'static 'vector :x 0.2851 :y 0.0019 :z 1.0 :w 15.0)
(new 'static 'vector :x 0.3789 :y 0.0019 :z 1.0 :w 15.0)
(new 'static 'vector :x 0.4726 :y 0.0019 :z 1.0 :w 15.0)
(new 'static 'vector :x 0.5664 :y 0.0019 :z 1.0 :w 15.0)
(new 'static 'vector :x 0.6601 :y 0.0019 :z 1.0 :w 12.0)
(new 'static 'vector :x 0.7539 :y 0.0019 :z 1.0 :w 13.5)
(new 'static 'vector :x 0.8476 :y 0.0019 :z 1.0 :w 15.0)
(new 'static 'vector :x 0.0039 :y 0.0644 :z 1.0 :w 15.0)
(new 'static 'vector :x 0.0976 :y 0.0644 :z 1.0 :w 22.5)
(new 'static 'vector :x 0.1914 :y 0.0644 :z 1.0 :w 19.5)
(new 'static 'vector :x 0.2851 :y 0.0644 :z 1.0 :w 13.5)
(new 'static 'vector :x 0.3789 :y 0.0644 :z 1.0 :w 12.0)
(new 'static 'vector :x 0.4726 :y 0.0644 :z 1.0 :w 15.0)
(new 'static 'vector :x 0.5664 :y 0.0644 :z 1.0 :w 10.5)
(new 'static 'vector :x 0.6601 :y 0.0644 :z 1.0 :w 12.0)
(new 'static 'vector :x 0.7539 :y 0.0644 :z 1.0 :w 10.5)
(new 'static 'vector :x 0.8476 :y 0.0644 :z 1.0 :w 15.0)
(new 'static 'vector :x 0.0039 :y 0.1269 :z 1.0 :w 16.5)
(new 'static 'vector :x 0.0976 :y 0.1269 :z 1.0 :w 18.0)
(new 'static 'vector :x 0.1914 :y 0.1269 :z 1.0 :w 10.5)
(new 'static 'vector :x 0.2851 :y 0.1269 :z 1.0 :w 7.5)
(new 'static 'vector :x 0.3789 :y 0.1269 :z 1.0 :w 12.0)
(new 'static 'vector :x 0.4726 :y 0.1269 :z 1.0 :w 12.0)
(new 'static 'vector :x 0.5664 :y 0.1269 :z 1.0 :w 12.0)
(new 'static 'vector :x 0.6601 :y 0.1269 :z 1.0 :w 13.5)
(new 'static 'vector :x 0.7539 :y 0.1269 :z 1.0 :w 7.5)
(new 'static 'vector :x 0.8476 :y 0.1269 :z 1.0 :w 13.5)
(new 'static 'vector :x 0.0039 :y 0.1894 :z 1.0 :w 7.5)
(new 'static 'vector :x 0.0976 :y 0.1894 :z 1.0 :w 13.5)
(new 'static 'vector :x 0.1914 :y 0.1894 :z 1.0 :w 16.5)
(new 'static 'vector :x 0.2851 :y 0.1894 :z 1.0 :w 11.25)
(new 'static 'vector :x 0.3789 :y 0.1894 :z 1.0 :w 16.5)
(new 'static 'vector :x 0.4726 :y 0.1894 :z 1.0 :w 16.5)
(new 'static 'vector :x 0.5664 :y 0.1894 :z 1.0 :w 16.5)
(new 'static 'vector :x 0.6601 :y 0.1894 :z 1.0 :w 16.5)
(new 'static 'vector :x 0.7539 :y 0.1894 :z 1.0 :w 16.5)
(new 'static 'vector :x 0.8476 :y 0.1894 :z 1.0 :w 18.0)
(new 'static 'vector :x 0.0039 :y 0.2519 :z 1.0 :w 18.0)
(new 'static 'vector :x 0.0976 :y 0.2519 :z 1.0 :w 15.0)
(new 'static 'vector :x 0.1914 :y 0.2519 :z 1.0 :w 7.5)
(new 'static 'vector :x 0.2851 :y 0.2519 :z 1.0 :w 7.5)
(new 'static 'vector :x 0.3789 :y 0.2519 :z 1.0 :w 12.0)
(new 'static 'vector :x 0.4726 :y 0.2519 :z 1.0 :w 13.5)
(new 'static 'vector :x 0.5664 :y 0.2519 :z 1.0 :w 12.0)
(new 'static 'vector :x 0.6601 :y 0.2519 :z 1.0 :w 13.5)
(new 'static 'vector :x 0.7539 :y 0.2519 :z 1.0 :w 18.0)
(new 'static 'vector :x 0.8476 :y 0.2519 :z 1.0 :w 17.25)
(new 'static 'vector :x 0.0039 :y 0.3144 :z 1.0 :w 15.0)
(new 'static 'vector :x 0.0976 :y 0.3144 :z 1.0 :w 13.5)
(new 'static 'vector :x 0.1914 :y 0.3144 :z 1.0 :w 15.75)
(new 'static 'vector :x 0.2851 :y 0.3144 :z 1.0 :w 13.5)
(new 'static 'vector :x 0.3789 :y 0.3144 :z 1.0 :w 14.25)
(new 'static 'vector :x 0.4726 :y 0.3144 :z 1.0 :w 15.0)
(new 'static 'vector :x 0.5664 :y 0.3144 :z 1.0 :w 13.5)
(new 'static 'vector :x 0.6601 :y 0.3144 :z 1.0 :w 7.5)
(new 'static 'vector :x 0.7539 :y 0.3144 :z 1.0 :w 15.0)
(new 'static 'vector :x 0.8476 :y 0.3144 :z 1.0 :w 15.0)
(new 'static 'vector :x 0.0039 :y 0.3769 :z 1.0 :w 15.75)
(new 'static 'vector :x 0.0976 :y 0.3769 :z 1.0 :w 19.5)
(new 'static 'vector :x 0.1914 :y 0.3769 :z 1.0 :w 15.0)
(new 'static 'vector :x 0.2851 :y 0.3769 :z 1.0 :w 15.0)
(new 'static 'vector :x 0.3789 :y 0.3769 :z 1.0 :w 13.5)
(new 'static 'vector :x 0.4726 :y 0.3769 :z 1.0 :w 15.0)
(new 'static 'vector :x 0.5664 :y 0.3769 :z 1.0 :w 15.75)
(new 'static 'vector :x 0.6601 :y 0.3769 :z 1.0 :w 12.75)
(new 'static 'vector :x 0.7539 :y 0.3769 :z 1.0 :w 13.5)
(new 'static 'vector :x 0.8476 :y 0.3769 :z 1.0 :w 15.0)
(new 'static 'vector :x 0.0039 :y 0.4394 :z 1.0 :w 15.0)
(new 'static 'vector :x 0.0976 :y 0.4394 :z 1.0 :w 18.0)
(new 'static 'vector :x 0.1914 :y 0.4394 :z 1.0 :w 17.25)
(new 'static 'vector :x 0.2851 :y 0.4394 :z 1.0 :w 13.5)
(new 'static 'vector :x 0.3789 :y 0.4394 :z 1.0 :w 13.5)
(new 'static 'vector :x 0.4726 :y 0.4394 :z 1.0 :w 9.0)
(new 'static 'vector :x 0.5664 :y 0.4394 :z 1.0 :w 13.5)
(new 'static 'vector :x 0.6601 :y 0.4394 :z 1.0 :w 10.5)
(new 'static 'vector :x 0.7539 :y 0.4394 :z 1.0 :w 19.5)
(new 'static 'vector :x 0.8476 :y 0.4394 :z 1.0 :w 13.5)
(new 'static 'vector :x 0.0039 :y 0.5019 :z 1.0 :w 6.0)
(new 'static 'vector :x 0.0976 :y 0.5019 :z 1.0 :w 14.25)
(new 'static 'vector :x 0.1914 :y 0.5019 :z 1.0 :w 13.5)
(new 'static 'vector :x 0.2851 :y 0.5019 :z 1.0 :w 12.0)
(new 'static 'vector :x 0.3789 :y 0.5019 :z 1.0 :w 13.5)
(new 'static 'vector :x 0.4726 :y 0.5019 :z 1.0 :w 12.75)
(new 'static 'vector :x 0.5664 :y 0.5019 :z 1.0 :w 12.75)
(new 'static 'vector :x 0.6601 :y 0.5019 :z 1.0 :w 17.25)
(new 'static 'vector :x 0.7539 :y 0.5019 :z 1.0 :w 13.5)
(new 'static 'vector :x 0.8476 :y 0.5019 :z 1.0 :w 9.0)
(new 'static 'vector :x 0.0039 :y 0.5644 :z 1.0 :w 13.5)
(new 'static 'vector :x 0.0976 :y 0.5644 :z 1.0 :w 14.25)
(new 'static 'vector :x 0.1914 :y 0.5644 :z 1.0 :w 9.75)
(new 'static 'vector :x 0.2851 :y 0.5644 :z 1.0 :w 18.5)
(new 'static 'vector :x 0.3789 :y 0.5644 :z 1.0 :w 14.25)
(new 'static 'vector :x 0.4726 :y 0.5644 :z 1.0 :w 12.0)
(new 'static 'vector :x 0.5664 :y 0.5644 :z 1.0 :w 13.5)
(new 'static 'vector :x 0.6601 :y 0.5644 :z 1.0 :w 15.0)
(new 'static 'vector :x 0.7539 :y 0.5644 :z 1.0 :w 12.0)
(new 'static 'vector :x 0.8476 :y 0.5644 :z 1.0 :w 10.5)
(new 'static 'vector :x 0.0039 :y 0.6269 :z 1.0 :w 12.0)
(new 'static 'vector :x 0.0976 :y 0.6269 :z 1.0 :w 12.75)
(new 'static 'vector :x 0.1914 :y 0.6269 :z 1.0 :w 13.5)
(new 'static 'vector :x 0.2851 :y 0.6269 :z 1.0 :w 18.0)
(new 'static 'vector :x 0.3789 :y 0.6269 :z 1.0 :w 13.5)
(new 'static 'vector :x 0.4726 :y 0.6269 :z 1.0 :w 16.5)
(new 'static 'vector :x 0.5664 :y 0.6269 :z 1.0 :w 12.0)
(new 'static 'vector :x 0.6601 :y 0.6269 :z 1.0 :w 10.5)
(new 'static 'vector :x 0.7539 :y 0.6269 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.8476 :y 0.6269 :z 1.0 :w 12.0)
(new 'static 'vector :x 0.0039 :y 0.6894 :z 1.0 :w 13.5)
(new 'static 'vector :x 0.0976 :y 0.6894 :z 1.0 :w 13.5)
(new 'static 'vector :x 0.0039 :y 0.7519 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.0976 :y 0.7519 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.1914 :y 0.7519 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.2851 :y 0.7519 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.3789 :y 0.7519 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.0039 :y 0.8769 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.0976 :y 0.8769 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.1914 :y 0.8769 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.2851 :y 0.8769 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.3789 :y 0.8769 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.1914 :y 0.7519 :z 1.0 :w 16.0)
(new 'static 'vector :x 0.2851 :y 0.7519 :z 1.0 :w 16.0)
(new 'static 'vector :x 0.3789 :y 0.7519 :z 1.0 :w 16.0)
(new 'static 'vector :x 0.4726 :y 0.7519 :z 1.0 :w 16.0)
(new 'static 'vector :x 0.5664 :y 0.7519 :z 1.0 :w 16.0)
(new 'static 'vector :x 0.6601 :y 0.7519 :z 1.0 :w 16.0)
(new 'static 'vector :x 0.0039 :y 0.0019 :z 1.0 :w 15.0)
(new 'static 'vector :x 0.0976 :y 0.0019 :z 1.0 :w 15.0)
(new 'static 'vector :x 0.1914 :y 0.0019 :z 1.0 :w 15.0)
(new 'static 'vector :x 0.2851 :y 0.0019 :z 1.0 :w 15.0)
(new 'static 'vector :x 0.3789 :y 0.0019 :z 1.0 :w 15.0)
(new 'static 'vector :x 0.4726 :y 0.0019 :z 1.0 :w 15.0)
(new 'static 'vector :x 0.5664 :y 0.0019 :z 1.0 :w 15.0)
(new 'static 'vector :x 0.6601 :y 0.0019 :z 1.0 :w 15.0)
(new 'static 'vector :x 0.7539 :y 0.0019 :z 1.0 :w 15.0)
(new 'static 'vector :x 0.8476 :y 0.0019 :z 1.0 :w 15.0)
(new 'static 'vector :x 0.0039 :y 0.0644 :z 1.0 :w 15.0)
(new 'static 'vector :x 0.0976 :y 0.0644 :z 1.0 :w 15.0)
(new 'static 'vector :x 0.1914 :y 0.0644 :z 1.0 :w 15.0)
(new 'static 'vector :x 0.2851 :y 0.0644 :z 1.0 :w 15.0)
(new 'static 'vector :x 0.3789 :y 0.0644 :z 1.0 :w 15.0)
(new 'static 'vector :x 0.4726 :y 0.0644 :z 1.0 :w 15.0)
(new 'static 'vector :x 0.5664 :y 0.0644 :z 1.0 :w 15.0)
(new 'static 'vector :x 0.6601 :y 0.0644 :z 1.0 :w 15.0)
(new 'static 'vector :x 0.7539 :y 0.0644 :z 1.0 :w 15.0)
(new 'static 'vector :x 0.8476 :y 0.0644 :z 1.0 :w 15.0)
(new 'static 'vector :x 0.0039 :y 0.1269 :z 1.0 :w 15.0)
(new 'static 'vector :x 0.0976 :y 0.1269 :z 1.0 :w 15.0)
(new 'static 'vector :x 0.1914 :y 0.1269 :z 1.0 :w 15.0)
(new 'static 'vector :x 0.2851 :y 0.1269 :z 1.0 :w 15.0)
(new 'static 'vector :x 0.3789 :y 0.1269 :z 1.0 :w 15.0)
(new 'static 'vector :x 0.4726 :y 0.1269 :z 1.0 :w 15.0)
(new 'static 'vector :x 0.5664 :y 0.1269 :z 1.0 :w 15.0)
(new 'static 'vector :x 0.6601 :y 0.1269 :z 1.0 :w 15.0)
(new 'static 'vector :x 0.7539 :y 0.1269 :z 1.0 :w 15.0)
(new 'static 'vector :x 0.8476 :y 0.1269 :z 1.0 :w 15.0)
(new 'static 'vector :x 0.0039 :y 0.1894 :z 1.0 :w 15.0)
(new 'static 'vector :x 0.0976 :y 0.1894 :z 1.0 :w 15.0)
(new 'static 'vector :x 0.1914 :y 0.1894 :z 1.0 :w 15.0)
(new 'static 'vector :x 0.2851 :y 0.1894 :z 1.0 :w 15.0)
(new 'static 'vector :x 0.3789 :y 0.1894 :z 1.0 :w 15.0)
(new 'static 'vector :x 0.4726 :y 0.1894 :z 1.0 :w 15.0)
(new 'static 'vector :x 0.5664 :y 0.1894 :z 1.0 :w 15.0)
(new 'static 'vector :x 0.6601 :y 0.1894 :z 1.0 :w 15.0)
(new 'static 'vector :x 0.7539 :y 0.1894 :z 1.0 :w 15.0)
(new 'static 'vector :x 0.8476 :y 0.1894 :z 1.0 :w 15.0)
(new 'static 'vector :x 0.0039 :y 0.2519 :z 1.0 :w 15.0)
(new 'static 'vector :x 0.0976 :y 0.2519 :z 1.0 :w 15.0)
(new 'static 'vector :x 0.1914 :y 0.2519 :z 1.0 :w 15.0)
(new 'static 'vector :x 0.2851 :y 0.2519 :z 1.0 :w 15.0)
(new 'static 'vector :x 0.3789 :y 0.2519 :z 1.0 :w 15.0)
(new 'static 'vector :x 0.4726 :y 0.2519 :z 1.0 :w 15.0)
(new 'static 'vector :x 0.5664 :y 0.2519 :z 1.0 :w 15.0)
(new 'static 'vector :x 0.6601 :y 0.2519 :z 1.0 :w 15.0)
(new 'static 'vector :x 0.7539 :y 0.2519 :z 1.0 :w 15.0)
(new 'static 'vector :x 0.8476 :y 0.2519 :z 1.0 :w 15.0)
(new 'static 'vector :x 0.0039 :y 0.3144 :z 1.0 :w 15.0)
(new 'static 'vector :x 0.0976 :y 0.3144 :z 1.0 :w 15.0)
(new 'static 'vector :x 0.1914 :y 0.3144 :z 1.0 :w 15.0)
(new 'static 'vector :x 0.2851 :y 0.3144 :z 1.0 :w 15.0)
(new 'static 'vector :x 0.3789 :y 0.3144 :z 1.0 :w 15.0)
(new 'static 'vector :x 0.4726 :y 0.3144 :z 1.0 :w 15.0)
(new 'static 'vector :x 0.5664 :y 0.3144 :z 1.0 :w 15.0)
(new 'static 'vector :x 0.6601 :y 0.3144 :z 1.0 :w 15.0)
(new 'static 'vector :x 0.7539 :y 0.3144 :z 1.0 :w 15.0)
(new 'static 'vector :x 0.8476 :y 0.3144 :z 1.0 :w 15.0)
(new 'static 'vector :x 0.0039 :y 0.3769 :z 1.0 :w 15.0)
(new 'static 'vector :x 0.0976 :y 0.3769 :z 1.0 :w 15.0)
(new 'static 'vector :x 0.1914 :y 0.3769 :z 1.0 :w 15.0)
(new 'static 'vector :x 0.2851 :y 0.3769 :z 1.0 :w 15.0)
(new 'static 'vector :x 0.3789 :y 0.3769 :z 1.0 :w 15.0)
(new 'static 'vector :x 0.4726 :y 0.3769 :z 1.0 :w 15.0)
(new 'static 'vector :x 0.5664 :y 0.3769 :z 1.0 :w 15.0)
(new 'static 'vector :x 0.6601 :y 0.3769 :z 1.0 :w 15.0)
(new 'static 'vector :x 0.7539 :y 0.3769 :z 1.0 :w 15.0)
(new 'static 'vector :x 0.8476 :y 0.3769 :z 1.0 :w 15.0)
(new 'static 'vector :x 0.0039 :y 0.4394 :z 1.0 :w 15.0)
(new 'static 'vector :x 0.0976 :y 0.4394 :z 1.0 :w 15.0)
(new 'static 'vector :x 0.1914 :y 0.4394 :z 1.0 :w 15.0)
(new 'static 'vector :x 0.2851 :y 0.4394 :z 1.0 :w 15.0)
(new 'static 'vector :x 0.3789 :y 0.4394 :z 1.0 :w 15.0)
(new 'static 'vector :x 0.4726 :y 0.4394 :z 1.0 :w 15.0)
(new 'static 'vector :x 0.5664 :y 0.4394 :z 1.0 :w 15.0)
(new 'static 'vector :x 0.6601 :y 0.4394 :z 1.0 :w 15.0)
(new 'static 'vector :x 0.7539 :y 0.4394 :z 1.0 :w 15.0)
(new 'static 'vector :x 0.8476 :y 0.4394 :z 1.0 :w 15.0)
(new 'static 'vector :x 0.0039 :y 0.5019 :z 1.0 :w 15.0)
(new 'static 'vector :x 0.0976 :y 0.5019 :z 1.0 :w 15.0)
(new 'static 'vector :x 0.1914 :y 0.5019 :z 1.0 :w 15.0)
(new 'static 'vector :x 0.2851 :y 0.5019 :z 1.0 :w 15.0)
(new 'static 'vector :x 0.3789 :y 0.5019 :z 1.0 :w 15.0)
(new 'static 'vector :x 0.4726 :y 0.5019 :z 1.0 :w 15.0)
(new 'static 'vector :x 0.5664 :y 0.5019 :z 1.0 :w 15.0)
(new 'static 'vector :x 0.6601 :y 0.5019 :z 1.0 :w 15.0)
(new 'static 'vector :x 0.7539 :y 0.5019 :z 1.0 :w 15.0)
(new 'static 'vector :x 0.8476 :y 0.5019 :z 1.0 :w 15.0)
(new 'static 'vector :x 0.0039 :y 0.5644 :z 1.0 :w 15.0)
(new 'static 'vector :x 0.0976 :y 0.5644 :z 1.0 :w 15.0)
(new 'static 'vector :x 0.1914 :y 0.5644 :z 1.0 :w 15.0)
(new 'static 'vector :x 0.2851 :y 0.5644 :z 1.0 :w 15.0)
(new 'static 'vector :x 0.3789 :y 0.5644 :z 1.0 :w 15.0)
(new 'static 'vector :x 0.4726 :y 0.5644 :z 1.0 :w 15.0)
(new 'static 'vector :x 0.5664 :y 0.5644 :z 1.0 :w 15.0)
(new 'static 'vector :x 0.6601 :y 0.5644 :z 1.0 :w 15.0)
(new 'static 'vector :x 0.7539 :y 0.5644 :z 1.0 :w 15.0)
(new 'static 'vector :x 0.8476 :y 0.5644 :z 1.0 :w 15.0)
(new 'static 'vector :x 0.0039 :y 0.6269 :z 1.0 :w 15.0)
(new 'static 'vector :x 0.0976 :y 0.6269 :z 1.0 :w 15.0)
(new 'static 'vector :x 0.1914 :y 0.6269 :z 1.0 :w 15.0)
(new 'static 'vector :x 0.2851 :y 0.6269 :z 1.0 :w 15.0)
(new 'static 'vector :x 0.3789 :y 0.6269 :z 1.0 :w 15.0)
(new 'static 'vector :x 0.4726 :y 0.6269 :z 1.0 :w 15.0)
(new 'static 'vector :x 0.5664 :y 0.6269 :z 1.0 :w 15.0)
(new 'static 'vector :x 0.6601 :y 0.6269 :z 1.0 :w 15.0)
(new 'static 'vector :x 0.7539 :y 0.6269 :z 1.0 :w 15.0)
(new 'static 'vector :x 0.8476 :y 0.6269 :z 1.0 :w 15.0)
(new 'static 'vector :x 0.0039 :y 0.6894 :z 1.0 :w 15.0)
(new 'static 'vector :x 0.0976 :y 0.6894 :z 1.0 :w 15.0)
(new 'static 'vector :x 0.0039 :y 0.7519 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.0976 :y 0.7519 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.1914 :y 0.7519 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.2851 :y 0.7519 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.3789 :y 0.7519 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.0039 :y 0.8769 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.0976 :y 0.8769 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.1914 :y 0.8769 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.2851 :y 0.8769 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.3789 :y 0.8769 :z 1.0 :w 24.0)
)
)
;; definition for symbol *font24-table*, type (inline-array vector)
(define
*font24-table*
(new 'static 'inline-array vector 289
(new 'static 'vector :x 0.0039 :y 0.0019 :z 1.0 :w 12.0)
(new 'static 'vector :x 0.0976 :y 0.0019 :z 1.0 :w 12.0)
(new 'static 'vector :x 0.1914 :y 0.0019 :z 1.0 :w 19.5)
(new 'static 'vector :x 0.2851 :y 0.0019 :z 1.0 :w 15.0)
(new 'static 'vector :x 0.3789 :y 0.0019 :z 1.0 :w 12.0)
(new 'static 'vector :x 0.4726 :y 0.0019 :z 1.0 :w 12.0)
(new 'static 'vector :x 0.5664 :y 0.0019 :z 1.0 :w 12.0)
(new 'static 'vector :x 0.6601 :y 0.0019 :z 1.0 :w 9.0)
(new 'static 'vector :x 0.7539 :y 0.0019 :z 1.0 :w 19.0)
(new 'static 'vector :x 0.8476 :y 0.0019 :z 1.0 :w 12.0)
(new 'static 'vector :x 0.0039 :y 0.0644 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.0976 :y 0.0644 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.1914 :y 0.0644 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.2851 :y 0.0644 :z 1.0 :w 20.0)
(new 'static 'vector :x 0.3789 :y 0.0644 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.4726 :y 0.0644 :z 1.0 :w 20.0)
(new 'static 'vector :x 0.5664 :y 0.0644 :z 1.0 :w 15.0)
(new 'static 'vector :x 0.6601 :y 0.0644 :z 1.0 :w 8.0)
(new 'static 'vector :x 0.7539 :y 0.0644 :z 1.0 :w 10.0)
(new 'static 'vector :x 0.8476 :y 0.0644 :z 1.0 :w 22.5)
(new 'static 'vector :x 0.0039 :y 0.1269 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.0976 :y 0.1269 :z 1.0 :w 20.0)
(new 'static 'vector :x 0.1914 :y 0.1269 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.2851 :y 0.1269 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.3789 :y 0.1269 :z 1.0 :w 10.0)
(new 'static 'vector :x 0.4726 :y 0.1269 :z 1.0 :w 9.0)
(new 'static 'vector :x 0.5664 :y 0.1269 :z 1.0 :w 22.5)
(new 'static 'vector :x 0.6601 :y 0.1269 :z 1.0 :w 16.0)
(new 'static 'vector :x 0.7539 :y 0.1269 :z 1.0 :w 7.0)
(new 'static 'vector :x 0.8476 :y 0.1269 :z 1.0 :w 16.0)
(new 'static 'vector :x 0.0039 :y 0.1894 :z 1.0 :w 9.0)
(new 'static 'vector :x 0.0976 :y 0.1894 :z 1.0 :w 15.0)
(new 'static 'vector :x 0.1914 :y 0.1894 :z 1.0 :w 22.0)
(new 'static 'vector :x 0.2851 :y 0.1894 :z 1.0 :w 10.0)
(new 'static 'vector :x 0.3789 :y 0.1894 :z 1.0 :w 16.0)
(new 'static 'vector :x 0.4726 :y 0.1894 :z 1.0 :w 15.0)
(new 'static 'vector :x 0.5664 :y 0.1894 :z 1.0 :w 19.0)
(new 'static 'vector :x 0.6601 :y 0.1894 :z 1.0 :w 19.0)
(new 'static 'vector :x 0.7539 :y 0.1894 :z 1.0 :w 18.0)
(new 'static 'vector :x 0.8476 :y 0.1894 :z 1.0 :w 17.0)
(new 'static 'vector :x 0.0039 :y 0.2519 :z 1.0 :w 17.0)
(new 'static 'vector :x 0.0976 :y 0.2519 :z 1.0 :w 16.0)
(new 'static 'vector :x 0.1914 :y 0.2519 :z 1.0 :w 8.0)
(new 'static 'vector :x 0.2851 :y 0.2519 :z 1.0 :w 22.5)
(new 'static 'vector :x 0.3789 :y 0.2519 :z 1.0 :w 9.0)
(new 'static 'vector :x 0.4726 :y 0.2519 :z 1.0 :w 20.0)
(new 'static 'vector :x 0.5664 :y 0.2519 :z 1.0 :w 9.0)
(new 'static 'vector :x 0.6601 :y 0.2519 :z 1.0 :w 18.0)
(new 'static 'vector :x 0.7539 :y 0.2519 :z 1.0 :w 22.5)
(new 'static 'vector :x 0.8476 :y 0.2519 :z 1.0 :w 19.0)
(new 'static 'vector :x 0.0039 :y 0.3144 :z 1.0 :w 19.0)
(new 'static 'vector :x 0.0976 :y 0.3144 :z 1.0 :w 19.0)
(new 'static 'vector :x 0.1914 :y 0.3144 :z 1.0 :w 21.0)
(new 'static 'vector :x 0.2851 :y 0.3144 :z 1.0 :w 19.0)
(new 'static 'vector :x 0.3789 :y 0.3144 :z 1.0 :w 18.0)
(new 'static 'vector :x 0.4726 :y 0.3144 :z 1.0 :w 20.0)
(new 'static 'vector :x 0.5664 :y 0.3144 :z 1.0 :w 20.0)
(new 'static 'vector :x 0.6601 :y 0.3144 :z 1.0 :w 11.0)
(new 'static 'vector :x 0.7539 :y 0.3144 :z 1.0 :w 16.0)
(new 'static 'vector :x 0.8476 :y 0.3144 :z 1.0 :w 21.0)
(new 'static 'vector :x 0.0039 :y 0.3769 :z 1.0 :w 17.0)
(new 'static 'vector :x 0.0976 :y 0.3769 :z 1.0 :w 23.0)
(new 'static 'vector :x 0.1914 :y 0.3769 :z 1.0 :w 18.0)
(new 'static 'vector :x 0.2851 :y 0.3769 :z 1.0 :w 21.0)
(new 'static 'vector :x 0.3789 :y 0.3769 :z 1.0 :w 19.0)
(new 'static 'vector :x 0.4726 :y 0.3769 :z 1.0 :w 22.0)
(new 'static 'vector :x 0.5664 :y 0.3769 :z 1.0 :w 20.0)
(new 'static 'vector :x 0.6601 :y 0.3769 :z 1.0 :w 20.0)
(new 'static 'vector :x 0.7539 :y 0.3769 :z 1.0 :w 20.0)
(new 'static 'vector :x 0.8476 :y 0.3769 :z 1.0 :w 22.0)
(new 'static 'vector :x 0.0039 :y 0.4394 :z 1.0 :w 23.0)
(new 'static 'vector :x 0.0976 :y 0.4394 :z 1.0 :w 23.0)
(new 'static 'vector :x 0.1914 :y 0.4394 :z 1.0 :w 23.0)
(new 'static 'vector :x 0.2851 :y 0.4394 :z 1.0 :w 23.0)
(new 'static 'vector :x 0.3789 :y 0.4394 :z 1.0 :w 20.0)
(new 'static 'vector :x 0.4726 :y 0.4394 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.5664 :y 0.4394 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.6601 :y 0.4394 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.7539 :y 0.4394 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.8476 :y 0.4394 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.0039 :y 0.5019 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.0976 :y 0.5019 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.1914 :y 0.5019 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.2851 :y 0.5019 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.3789 :y 0.5019 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.4726 :y 0.5019 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.5664 :y 0.5019 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.6601 :y 0.5019 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.7539 :y 0.5019 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.8476 :y 0.5019 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.0039 :y 0.5644 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.0976 :y 0.5644 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.1914 :y 0.5644 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.2851 :y 0.5644 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.3789 :y 0.5644 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.4726 :y 0.5644 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.5664 :y 0.5644 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.6601 :y 0.5644 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.7539 :y 0.5644 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.8476 :y 0.5644 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.0039 :y 0.6269 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.0976 :y 0.6269 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.1914 :y 0.6269 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.2851 :y 0.6269 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.3789 :y 0.6269 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.4726 :y 0.6269 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.5664 :y 0.6269 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.6601 :y 0.6269 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.7539 :y 0.6269 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.8476 :y 0.6269 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.0039 :y 0.6894 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.0976 :y 0.6894 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.1914 :y 0.6894 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.2851 :y 0.6894 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.3789 :y 0.6894 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.4726 :y 0.6894 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.5664 :y 0.6894 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.6601 :y 0.6894 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.7539 :y 0.6894 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.8476 :y 0.6894 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.0039 :y 0.7505 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.0976 :y 0.7505 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.1914 :y 0.7505 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.2851 :y 0.7505 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.3789 :y 0.7505 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.4726 :y 0.7505 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.5664 :y 0.7505 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.6601 :y 0.7505 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.0039 :y 0.0019 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.0976 :y 0.0019 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.1914 :y 0.0019 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.2851 :y 0.0019 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.3789 :y 0.0019 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.4726 :y 0.0019 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.5664 :y 0.0019 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.6601 :y 0.0019 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.7539 :y 0.0019 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.8476 :y 0.0019 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.0039 :y 0.0644 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.0976 :y 0.0644 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.1914 :y 0.0644 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.2851 :y 0.0644 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.3789 :y 0.0644 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.4726 :y 0.0644 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.5664 :y 0.0644 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.6601 :y 0.0644 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.7539 :y 0.0644 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.8476 :y 0.0644 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.0039 :y 0.1269 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.0976 :y 0.1269 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.1914 :y 0.1269 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.2851 :y 0.1269 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.3789 :y 0.1269 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.4726 :y 0.1269 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.5664 :y 0.1269 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.6601 :y 0.1269 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.7539 :y 0.1269 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.8476 :y 0.1269 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.0039 :y 0.1894 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.0976 :y 0.1894 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.1914 :y 0.1894 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.2851 :y 0.1894 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.3789 :y 0.1894 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.4726 :y 0.1894 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.5664 :y 0.1894 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.6601 :y 0.1894 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.7539 :y 0.1894 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.8476 :y 0.1894 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.0039 :y 0.2519 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.0976 :y 0.2519 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.1914 :y 0.2519 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.2851 :y 0.2519 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.3789 :y 0.2519 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.4726 :y 0.2519 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.5664 :y 0.2519 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.6601 :y 0.2519 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.7539 :y 0.2519 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.8476 :y 0.2519 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.0039 :y 0.3144 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.0976 :y 0.3144 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.1914 :y 0.3144 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.2851 :y 0.3144 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.3789 :y 0.3144 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.4726 :y 0.3144 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.5664 :y 0.3144 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.6601 :y 0.3144 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.7539 :y 0.3144 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.8476 :y 0.3144 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.0039 :y 0.3769 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.0976 :y 0.3769 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.1914 :y 0.3769 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.2851 :y 0.3769 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.3789 :y 0.3769 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.4726 :y 0.3769 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.5664 :y 0.3769 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.6601 :y 0.3769 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.7539 :y 0.3769 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.8476 :y 0.3769 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.0039 :y 0.4394 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.0976 :y 0.4394 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.1914 :y 0.4394 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.2851 :y 0.4394 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.3789 :y 0.4394 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.4726 :y 0.4394 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.5664 :y 0.4394 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.6601 :y 0.4394 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.7539 :y 0.4394 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.8476 :y 0.4394 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.0039 :y 0.5019 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.0976 :y 0.5019 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.1914 :y 0.5019 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.2851 :y 0.5019 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.3789 :y 0.5019 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.4726 :y 0.5019 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.5664 :y 0.5019 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.6601 :y 0.5019 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.7539 :y 0.5019 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.8476 :y 0.5019 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.0039 :y 0.5644 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.0976 :y 0.5644 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.1914 :y 0.5644 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.2851 :y 0.5644 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.3789 :y 0.5644 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.4726 :y 0.5644 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.5664 :y 0.5644 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.6601 :y 0.5644 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.7539 :y 0.5644 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.8476 :y 0.5644 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.0039 :y 0.6269 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.0976 :y 0.6269 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.1914 :y 0.6269 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.2851 :y 0.6269 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.3789 :y 0.6269 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.4726 :y 0.6269 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.5664 :y 0.6269 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.6601 :y 0.6269 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.7539 :y 0.6269 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.8476 :y 0.6269 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.0039 :y 0.6894 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.0976 :y 0.6894 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.7539 :y 0.7505 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.8476 :y 0.7505 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.8476 :y 0.7505 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.8476 :y 0.7505 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.8476 :y 0.7505 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.8476 :y 0.7505 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.8476 :y 0.7505 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.8476 :y 0.7505 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.8476 :y 0.7505 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.8476 :y 0.7505 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.8476 :y 0.7505 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.8476 :y 0.7505 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.8476 :y 0.7505 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.8476 :y 0.7505 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.8476 :y 0.7505 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.1914 :y 0.6894 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.2851 :y 0.6894 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.3789 :y 0.6894 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.4726 :y 0.6894 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.5664 :y 0.6894 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.6601 :y 0.6894 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.7539 :y 0.6894 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.8476 :y 0.6894 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.0039 :y 0.7512 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.0976 :y 0.7512 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.1914 :y 0.7512 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.2851 :y 0.7512 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.3789 :y 0.7512 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.4726 :y 0.7512 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.5664 :y 0.7512 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.6601 :y 0.7512 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.1914 :y 0.6894 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.2851 :y 0.6894 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.3789 :y 0.6894 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.4726 :y 0.6894 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.5664 :y 0.6894 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.6601 :y 0.6894 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.7539 :y 0.6894 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.8476 :y 0.6894 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.0039 :y 0.7512 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.0976 :y 0.7512 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.1914 :y 0.7512 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.2851 :y 0.7512 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.3789 :y 0.7512 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.4726 :y 0.7512 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.5664 :y 0.7512 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.6601 :y 0.7512 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.7539 :y 0.7512 :z 1.0 :w 24.0)
(new 'static 'vector :x 0.8476 :y 0.7512 :z 1.0 :w 5.0)
)
)
;; definition for function draw-string
;; ERROR: function was not converted to expressions. Cannot decompile.
;; definition for function get-string-length
;; ERROR: function was not converted to expressions. Cannot decompile.
;; definition for function draw-string-xy
;; INFO: Return type mismatch float vs none.
(defun
draw-string-xy
((arg0 string)
(arg1 dma-buffer)
(arg2 int)
(arg3 int)
(arg4 font-color)
(arg5 font-flags)
)
(let
((a2-2
(new 'stack 'font-context *font-default-matrix* arg2 arg3 0.0 arg4 arg5)
)
)
(draw-string arg0 arg1 a2-2)
)
(none)
)
;; definition for function draw-string-adv
;; INFO: Return type mismatch float vs none.
(defun draw-string-adv ((arg0 string) (arg1 dma-buffer) (arg2 font-context))
(+! (-> arg2 origin x) (draw-string arg0 arg1 arg2))
(none)
)
@@ -0,0 +1,160 @@
;;-*-Lisp-*-
(in-package goal)
;; definition for symbol *merc-death-globals*, type vector
(define *merc-death-globals* (new 'global 'vector))
;; definition of type death-info
(deftype death-info (basic)
((vertex-skip uint16 :offset-assert 4)
(timer uint8 :offset-assert 6)
(overlap uint8 :offset-assert 7)
(effect uint32 :offset-assert 8)
(sound basic :offset-assert 12)
)
:method-count-assert 9
:size-assert #x10
:flag-assert #x900000010
)
;; definition for method 3 of type death-info
(defmethod inspect death-info ((obj death-info))
(format #t "[~8x] ~A~%" obj (-> obj type))
(format #t "~Tvertex-skip: ~D~%" (-> obj vertex-skip))
(format #t "~Ttimer: ~D~%" (-> obj timer))
(format #t "~Toverlap: ~D~%" (-> obj overlap))
(format #t "~Teffect: ~D~%" (-> obj effect))
(format #t "~Tsound: ~A~%" (-> obj sound))
obj
)
;; definition for function birth-func-death-sparks
;; INFO: Return type mismatch int vs none.
(defun birth-func-death-sparks ()
0
(none)
)
;; definition for symbol death-beach-puppy, type death-info
(define
death-beach-puppy
(new 'static 'death-info
:vertex-skip #x82
:timer #x4b
:overlap #x4
:effect #x29
:sound 'temp-enemy-die
)
)
;; definition for symbol death-jungle-snake, type death-info
(define
death-jungle-snake
(new 'static 'death-info
:vertex-skip #xa
:timer #x4b
:overlap #x4
:effect #x29
:sound 'temp-enemy-die
)
)
;; definition for symbol death-default, type death-info
(define
death-default
(new 'static 'death-info
:vertex-skip #x50
:timer #x4b
:overlap #x4
:effect #x29
:sound 'temp-enemy-die
)
)
;; definition for symbol death-warp-in, type death-info
(define
death-warp-in
(new 'static 'death-info
:vertex-skip #x96
:timer #x4b
:effect #x29
:sound 'warpgate-tele
)
)
;; definition for symbol death-warp-out, type death-info
(define
death-warp-out
(new 'static 'death-info
:vertex-skip #x96
:timer #x96
:effect #x29
:sound 'warpgate-tele
)
)
;; failed to figure out what this is:
(set!
(-> *part-id-table* 41)
(new 'static 'sparticle-launcher
:init-specs
(new 'static 'inline-array sp-field-init-spec 15
(sp-flt spt-scale-x (meters 0.5))
(sp-copy-from-other spt-scale-y -4)
(sp-rnd-flt spt-r 64.0 32.0 1.0)
(sp-rnd-flt spt-g 16.0 32.0 1.0)
(sp-rnd-flt spt-b 48.0 32.0 1.0)
(sp-rnd-flt spt-a 48.0 48.0 1.0)
(sp-rnd-flt spt-vel-y (meters 0.0) (meters 0.006666667) 1.0)
(sp-flt spt-scalevel-x (meters -0.0016666667))
(sp-flt spt-scalevel-y (meters 0.02))
(sp-flt spt-accel-y -2.7306666)
(sp-int spt-timer 120)
(sp-cpuinfo-flags bit2 bit3 bit12)
(sp-int-plain-rnd spt-next-time 15 59 1)
(sp-launcher-by-id spt-next-launcher 42)
(sp-end)
)
)
)
;; failed to figure out what this is:
(set!
(-> *part-id-table* 42)
(new 'static 'sparticle-launcher
:init-specs
(new 'static 'inline-array sp-field-init-spec 5
(sp-flt spt-fade-a -1.4222223)
(sp-int spt-timer 45)
(sp-int spt-next-time 42)
(sp-launcher-by-id spt-next-launcher 43)
(sp-end)
)
)
)
;; failed to figure out what this is:
(set!
(-> *part-id-table* 43)
(new 'static 'sparticle-launcher
:init-specs
(new 'static 'inline-array sp-field-init-spec 4
(sp-flt spt-scalevel-x (meters 0.0))
(sp-flt spt-fade-a -0.21333334)
(sp-int-plain-rnd spt-timer 0 296 1)
(sp-end)
)
)
)
;; definition for function merc-death-spawn
;; INFO: Return type mismatch int vs none.
(defun merc-death-spawn ((arg0 int) (arg1 vector) (arg2 vector))
(let ((v1-2 (-> *part-id-table* arg0)))
(if (and (nonzero? v1-2) (= (-> v1-2 type) sparticle-launcher))
(sp-launch-particles-death *sp-particle-system-2d* v1-2 arg1)
)
)
0
(none)
)
+4 -4
View File
@@ -444,11 +444,11 @@
;; definition for symbol *ocean-near-off*, type symbol
(define *ocean-near-off* #f)
;; definition for symbol *ocean-heights*, type symbol
(define *ocean-heights* #f)
;; definition for symbol *ocean-heights*, type ocean-wave-info
(define *ocean-heights* (the-as ocean-wave-info #f))
;; definition for symbol *ocean-verts*, type symbol
(define *ocean-verts* #f)
;; definition for symbol *ocean-verts*, type (pointer vector)
(define *ocean-verts* (the-as (pointer vector) #f))
;; definition of type ocean-vu0-work
(deftype ocean-vu0-work (structure)
@@ -661,10 +661,7 @@
;; Used lq/sq
(defun
sp-launch-particles-death
((arg0 sparticle-system)
(arg1 sparticle-launcher)
(arg2 sparticle-launchinfo)
)
((arg0 sparticle-system) (arg1 sparticle-launcher) (arg2 vector))
(local-vars (v1-25 float) (v1-27 float))
(rlet ((vf0 :class vf)
(vf1 :class vf)
@@ -677,7 +674,7 @@
(vf6 :class vf)
)
(init-vf0-vector)
(.lvf vf30 (&-> arg2 launchrot quad))
(.lvf vf30 (&-> arg2 quad))
(let ((v1-0 #x437f0000))
(.mov vf31 v1-0)
)
+13 -6
View File
@@ -371,15 +371,22 @@
(let ((s4-2 format)
(s3-2 arg1)
(s2-2 "~0kwall:~6X mode:~-8S material:~-10S event:~S~%")
(s1-2 (-> arg0 control pad 4))
(s0-2 (pat-mode->string (the-as pat-surface (-> arg0 control pad 4))))
(s1-2 (-> arg0 control unknown-int50))
(s0-2
(pat-mode->string
(the-as pat-surface (-> arg0 control unknown-int50))
)
)
)
(set!
sv-96
(pat-material->string (the-as pat-surface (-> arg0 control pad 4)))
(pat-material->string (the-as pat-surface (-> arg0 control unknown-int50)))
)
(let
((t1-2 (pat-event->string (the-as pat-surface (-> arg0 control pad 4)))))
((t1-2
(pat-event->string (the-as pat-surface (-> arg0 control unknown-int50)))
)
)
(s4-2 s3-2 s2-2 s1-2 s0-2 sv-96 t1-2)
)
)
@@ -1662,7 +1669,7 @@
(target-timed-invulnerable-off self)
)
)
(set! (-> self control unknown-symbol10) #f)
(set! (-> self control unknown-symbol40) #f)
0
(none)
)
@@ -2840,7 +2847,7 @@
(-> self sound)
(new 'process 'ambient-sound 'none (-> self control trans))
)
(set! (-> self control pad 5) (the-as uint (new-sound-id)))
(set! (-> self control unknown-soundid00) (new-sound-id))
(if *debug-segment*
(add-connection *debug-engine* self target-print-stats self *stdcon0* #f)
)
+6 -6
View File
@@ -461,7 +461,7 @@
(-> *TARGET-bank* root-offset)
(-> *TARGET-bank* root-radius)
)
(set! (-> self control unknown-int30) (the-as int arg0))
(set! (-> self control unknown-symbol30) arg0)
(set! (-> self state-flags) (logand -3 (-> self state-flags)))
(set! (-> s4-0 transform-index) -2)
(set! (-> s4-0 prim-core collide-as) (the-as uint 0))
@@ -480,7 +480,7 @@
(set! (-> gp-0 prim-core offense) 0)
(case arg0
(('harmless #f)
(set! (-> self control unknown-int30) (the-as int #f))
(set! (-> self control unknown-symbol30) #f)
(target-collide-set!
(-> self control unknown-symbol00)
(-> self control unknown-float90)
@@ -562,7 +562,7 @@
(-> *TARGET-bank* duck-spin-radius)
)
(set! (-> s5-0 transform-index) 7)
(set! (-> self control unknown-int30) (the-as int 'roll))
(set! (-> self control unknown-symbol30) 'roll)
)
(('flip)
(logior! (-> self state-flags) 2)
@@ -584,7 +584,7 @@
(-> *TARGET-bank* duck-spin-radius)
)
(set! (-> s5-0 transform-index) 7)
(set! (-> self control unknown-int30) (the-as int 'flip))
(set! (-> self control unknown-symbol30) 'flip)
)
(('punch)
(sphere<-vector+r!
@@ -652,7 +652,7 @@
(-> *TARGET-bank* flop-radius)
)
(set! f30-0 1.0)
(set! (-> self control unknown-int30) (the-as int 'flop))
(set! (-> self control unknown-symbol30) 'flop)
)
(('flop-down)
(logior! (-> self state-flags) 2)
@@ -676,7 +676,7 @@
(if (!= f30-0 1.0)
(set! f30-0 2.1)
)
(set! (-> self control unknown-int30) (the-as int 'flop))
(set! (-> self control unknown-symbol30) 'flop)
)
(('flut-attack)
(sphere<-vector+r!
+8
View File
@@ -130,6 +130,14 @@
"all-texture-tweak-adjust", // dynamic-field access placeholder case TODO
"debug-menu-make-instance-menu", // also disabled
// ambient
"ambient-type-music", // IR_StoreConstOffset::do_codegen can't handle this (c {} sz {})
// main
"display-loop",
"on",
// sage-finalboss
"(method 7 sage-finalboss)" // inline-array stuff
],