From 7170db51ea0c30481e83f6517c0a54546c23e8de Mon Sep 17 00:00:00 2001 From: ManDude <7569514+ManDude@users.noreply.github.com> Date: Sun, 26 Mar 2023 05:13:54 +0100 Subject: [PATCH] fix bad `defpartgroup` decomp and improve entity debug display a bit (#2423) - Makes very nasty bugs fixed in #2402 print onscreen when detected instead of to the console. ![image](https://user-images.githubusercontent.com/7569514/227754516-d508376e-8b23-4af6-bc44-e4d33d586e17.png) - Fixes `valid?` decomp - Moves `entity-debug.gc` to the end of `COMMON.CGO` so we can check for keys in a few more commonly-used actor types. - Entity debug display (jak 2) now properly parses the `art-name` tag of part spawners, which gets overwritten at runtime. - Fixes #2422 . Decompiler was writing out part group rotation for the scale part, so all of those part groups had a zero in one (or all) of the axes. This "only" affected 38 groups, including all of the flame pots in tomb, jetpack guard, wasp, onin tent seal of mar, dark eco pill and a few other things. ![image](https://cdn.discordapp.com/attachments/995787558816595968/1089395776880390174/image.png) ![image](https://cdn.discordapp.com/attachments/995787558816595968/1089395777253671013/image.png) --- .vs/launch.vs.json | 2 +- decompiler/IR2/Form.cpp | 4 +- decompiler/config/jak2/all-types.gc | 2 +- decompiler/config/jak2/jak2_config.jsonc | 2 +- goal_src/jak2/dgos/common.gd | 1 + goal_src/jak2/dgos/engine.gd | 1 - goal_src/jak2/dgos/game.gd | 2 +- .../engine/common_objs/collectables-part.gc | 2 +- goal_src/jak2/engine/debug/default-menu.gc | 44 +++++++++---------- goal_src/jak2/engine/debug/viewer.gc | 2 +- goal_src/jak2/engine/dma/dma-disasm.gc | 4 +- goal_src/jak2/engine/entity/entity.gc | 10 ++--- goal_src/jak2/engine/level/level.gc | 4 +- .../process-drawable/process-drawable.gc | 6 +-- .../jak2/engine/spatial-hash/spatial-hash.gc | 2 +- goal_src/jak2/engine/target/target-turret.gc | 2 +- goal_src/jak2/kernel/gcommon.gc | 6 +-- .../jak2/levels/castle/boss/casboss-part.gc | 2 +- .../levels/city/onin_tent/onintent-scenes.gc | 2 +- .../jak2/levels/city/port/ctyport-part.gc | 2 +- goal_src/jak2/levels/common/battle.gc | 2 +- .../common/enemy/hover/crimson-guard-hover.gc | 4 +- .../jak2/levels/common/enemy/hover/wasp.gc | 2 +- .../jak2/levels/drill_platform/drill-part.gc | 6 +-- goal_src/jak2/levels/forest/forest-obs.gc | 2 +- .../levels/fortress/rescue/forrescb-part.gc | 20 ++++----- goal_src/jak2/levels/gungame/gun-dummy.gc | 20 ++++----- goal_src/jak2/levels/mars_tomb/tomb-part.gc | 14 +++--- goal_src/jak2/levels/stadium/stadium-obs.gc | 2 +- goal_src/jak2/levels/underport/under-part.gc | 2 +- goal_src/jak2/pc/debug/entity-debug.gc | 44 +++++++++++++------ .../common_objs/collectables-part_REF.gc | 6 +-- .../jak2/engine/debug/default-menu_REF.gc | 4 +- .../reference/jak2/engine/debug/viewer_REF.gc | 2 +- .../jak2/engine/dma/dma-disasm_REF.gc | 4 +- .../jak2/engine/entity/entity_REF.gc | 9 +++- .../reference/jak2/engine/level/level_REF.gc | 4 +- .../process-drawable/process-drawable_REF.gc | 6 +-- .../engine/spatial-hash/spatial-hash_REF.gc | 2 +- .../jak2/engine/target/target-turret_REF.gc | 2 +- .../reference/jak2/kernel/gcommon_REF.gc | 4 +- .../levels/castle/boss/casboss-part_REF.gc | 2 +- .../city/onin_tent/onintent-scenes_REF.gc | 2 +- .../jak2/levels/city/port/ctyport-part_REF.gc | 2 +- .../enemy/hover/crimson-guard-hover_REF.gc | 4 +- .../levels/common/enemy/hover/wasp_REF.gc | 2 +- .../levels/drill_platform/drill-part_REF.gc | 6 +-- .../jak2/levels/forest/forest-obs_REF.gc | 2 +- .../fortress/rescue/forrescb-part_REF.gc | 20 ++++----- .../jak2/levels/gungame/gun-dummy_REF.gc | 20 ++++----- .../jak2/levels/mars_tomb/tomb-part_REF.gc | 14 +++--- .../jak2/levels/stadium/stadium-obs_REF.gc | 2 +- .../jak2/levels/underport/under-part_REF.gc | 2 +- 53 files changed, 179 insertions(+), 162 deletions(-) diff --git a/.vs/launch.vs.json b/.vs/launch.vs.json index 28f29df1e..454350fbe 100644 --- a/.vs/launch.vs.json +++ b/.vs/launch.vs.json @@ -195,7 +195,7 @@ "${workspaceRoot}/decompiler_out", "--version", "ntsc_v1", - "--config-override \"{\\\"decompile_code\\\": false}\"" + "--config-override \"{\\\"decompile_code\\\": false, \\\"levels_extract\\\": true, \\\"allowed_objects\\\": []}\"" ] }, { diff --git a/decompiler/IR2/Form.cpp b/decompiler/IR2/Form.cpp index 97b89c3e5..97117e3aa 100644 --- a/decompiler/IR2/Form.cpp +++ b/decompiler/IR2/Form.cpp @@ -3215,8 +3215,8 @@ goos::Object DefpartgroupElement::to_form_internal(const Env& env) const { } if (m_static_info.scale != 1) { forms.push_back(pretty_print::to_symbol(fmt::format( - ":scale ({} {} {})", float_to_string(m_static_info.rot.x()), - float_to_string(m_static_info.rot.y()), float_to_string(m_static_info.rot.z())))); + ":scale ({} {} {})", float_to_string(m_static_info.scale.x()), + float_to_string(m_static_info.scale.y()), float_to_string(m_static_info.scale.z())))); } } diff --git a/decompiler/config/jak2/all-types.gc b/decompiler/config/jak2/all-types.gc index 879a66def..e473345fb 100644 --- a/decompiler/config/jak2/all-types.gc +++ b/decompiler/config/jak2/all-types.gc @@ -227,7 +227,7 @@ (define-extern *trace-list* pair) (define-extern print-tree-bitmask (function int int symbol)) (define-extern breakpoint-range-set! (function uint uint uint int)) -(define-extern valid? (function object type symbol symbol object symbol)) +(define-extern valid? (function object type string symbol object symbol)) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; gstring-h ;; diff --git a/decompiler/config/jak2/jak2_config.jsonc b/decompiler/config/jak2/jak2_config.jsonc index 99f4550f7..7e350e23d 100644 --- a/decompiler/config/jak2/jak2_config.jsonc +++ b/decompiler/config/jak2/jak2_config.jsonc @@ -81,7 +81,7 @@ "is_pal": false, // jak 1's all-types, used to generate "hints" - // "old_all_types_file": "decompiler/config/jak1/all-types.gc", + "old_all_types_file": "decompiler/config/jak1/all-types.gc", //////////////////////////// // CONFIG FILES diff --git a/goal_src/jak2/dgos/common.gd b/goal_src/jak2/dgos/common.gd index 387bdba55..99285ca81 100644 --- a/goal_src/jak2/dgos/common.gd +++ b/goal_src/jak2/dgos/common.gd @@ -34,4 +34,5 @@ "battle.o" "elec-gate.o" "cty-guard-turret-button.o" + "entity-debug.o" ;; added )) diff --git a/goal_src/jak2/dgos/engine.gd b/goal_src/jak2/dgos/engine.gd index 12a79059c..b3171382a 100644 --- a/goal_src/jak2/dgos/engine.gd +++ b/goal_src/jak2/dgos/engine.gd @@ -376,6 +376,5 @@ "sampler.o" "default-menu.o" "anim-tester-x.o" ;; added - "entity-debug.o" ;; added "default-menu-pc.o" ;; added )) diff --git a/goal_src/jak2/dgos/game.gd b/goal_src/jak2/dgos/game.gd index e5d648e5c..2e2f7fdab 100644 --- a/goal_src/jak2/dgos/game.gd +++ b/goal_src/jak2/dgos/game.gd @@ -376,7 +376,6 @@ "sampler.o" "default-menu.o" "anim-tester-x.o" ;; added - "entity-debug.o" ;; added "default-menu-pc.o" ;; added "dir-tpages.go" "tpage-11.go" @@ -444,4 +443,5 @@ "battle.o" "elec-gate.o" "cty-guard-turret-button.o" + "entity-debug.o" ;; added )) diff --git a/goal_src/jak2/engine/common_objs/collectables-part.gc b/goal_src/jak2/engine/common_objs/collectables-part.gc index 89b95603f..837fe911a 100644 --- a/goal_src/jak2/engine/common_objs/collectables-part.gc +++ b/goal_src/jak2/engine/common_objs/collectables-part.gc @@ -396,7 +396,7 @@ :id 82 :flags (unk-7) :bounds (static-bspherem 0 0 0 4) - :scale (0.0 0.0 0.0) + :scale (1.0 10.0 1.0) :parts ((sp-item 290 :period 25 :length 5 :binding 288) (sp-item 288 :flags (bit1 start-dead launch-asap)) (sp-item 288 :flags (bit1 start-dead launch-asap)) diff --git a/goal_src/jak2/engine/debug/default-menu.gc b/goal_src/jak2/engine/debug/default-menu.gc index 9411c1cc5..d22df3481 100644 --- a/goal_src/jak2/engine/debug/default-menu.gc +++ b/goal_src/jak2/engine/debug/default-menu.gc @@ -1145,7 +1145,7 @@ (let ((s3-0 (-> (the-as drawable-tree-instance-shrub v1-7) info prototype-inline-array-shrub))) (dotimes (s2-0 (-> s3-0 length)) (let ((a1-4 - (new 'global 'debug-menu-item-flag (-> s3-0 data s2-0 name) (-> s3-0 data s2-0 name) dm-instance-pick-func) + (new 'debug 'debug-menu-item-flag (-> s3-0 data s2-0 name) (-> s3-0 data s2-0 name) dm-instance-pick-func) ) ) (debug-menu-append-item *instance-shrub-menu* a1-4) @@ -2699,22 +2699,22 @@ #t ) (let ((s2-0 (method-of-type pair new)) - (s1-0 'global) + (s1-0 'debug) (s0-0 pair) ) (set! sv-16 (method-of-type pair new)) - (set! sv-32 'global) + (set! sv-32 'debug) (set! sv-48 pair) (set! sv-64 'flag) (set! sv-80 (method-of-type pair new)) - (set! sv-96 'global) + (set! sv-96 'debug) (set! sv-112 pair) (set! sv-128 (-> (the-as continue-point v1-2) name)) (set! sv-144 (method-of-type pair new)) - (set! sv-160 'global) + (set! sv-160 'debug) (set! sv-176 pair) (set! sv-192 (-> (the-as continue-point v1-2) name)) - (let* ((a3-1 (cons 'dm-current-continue '())) + (let* ((a3-1 (dcons 'dm-current-continue '())) (a3-2 (sv-144 sv-160 sv-176 sv-192 a3-1)) (a3-3 (sv-80 sv-96 sv-112 sv-128 a3-2)) ) @@ -2733,12 +2733,12 @@ (let ((a3-5 '())) (let ((a2-6 (car s5-0))) (while (not (null? s5-0)) - (set! a3-5 (cons a2-6 a3-5)) + (set! a3-5 (dcons a2-6 a3-5)) (set! s5-0 (cdr s5-0)) (set! a2-6 (car s5-0)) ) ) - (cons 'menu (cons (symbol->string arg1) a3-5)) + (dcons 'menu (dcons (symbol->string arg1) a3-5)) ) ) ) @@ -2766,22 +2766,22 @@ (let ((v1-4 (-> s4-0 s3-0))) (when (= (-> v1-4 level) arg0) (let ((s2-0 (method-of-type pair new)) - (s1-0 'global) + (s1-0 'debug) (s0-0 pair) ) (set! sv-16 (method-of-type pair new)) - (set! sv-32 'global) + (set! sv-32 'debug) (set! sv-48 pair) (set! sv-64 'flag) (set! sv-80 (method-of-type pair new)) - (set! sv-96 'global) + (set! sv-96 'debug) (set! sv-112 pair) (set! sv-128 (-> v1-4 name)) (set! sv-144 (method-of-type pair new)) - (set! sv-160 'global) + (set! sv-160 'debug) (set! sv-176 pair) (set! sv-192 (* s3-0 8)) - (let* ((a3-1 (cons 'dm-task-menu-pick-func '())) + (let* ((a3-1 (dcons 'dm-task-menu-pick-func '())) (a3-2 (sv-144 sv-160 sv-176 sv-192 a3-1)) (a3-3 (sv-80 sv-96 sv-112 sv-128 a3-2)) ) @@ -2793,7 +2793,7 @@ ) ) ) - (cons 'menu (cons (symbol->string arg0) gp-0)) + (dcons 'menu (dcons (symbol->string arg0) gp-0)) ) ) @@ -2957,22 +2957,22 @@ (let ((v1-4 (-> *game-info* play-list s4-0))) (when (-> v1-4 play-continue) (let ((s3-0 (method-of-type pair new)) - (s2-0 'global) + (s2-0 'debug) (s1-0 pair) (s0-0 (method-of-type pair new)) ) - (set! sv-16 'global) + (set! sv-16 'debug) (set! sv-32 pair) (set! sv-48 'function) (set! sv-64 (method-of-type pair new)) - (set! sv-80 'global) + (set! sv-80 'debug) (set! sv-96 pair) (set! sv-112 (-> v1-4 name)) (set! sv-128 (method-of-type pair new)) - (set! sv-144 'global) + (set! sv-144 'debug) (set! sv-160 pair) (set! sv-176 (* s4-0 8)) - (let* ((a3-1 (cons 'dm-play-task '())) + (let* ((a3-1 (dcons 'dm-play-task '())) (a3-2 (sv-128 sv-144 sv-160 sv-176 a3-1)) (a3-3 (sv-64 sv-80 sv-96 sv-112 a3-2)) ) @@ -2982,7 +2982,7 @@ ) ) ) - (debug-menu-make-from-template arg0 (cons 'menu (cons "Play" gp-0))) + (debug-menu-make-from-template arg0 (dcons 'menu (dcons "Play" gp-0))) ) ) @@ -3756,7 +3756,7 @@ (function "Reset Actors" #f ,(lambda () (reset-actors 'debug) (none))) (function "Traffic Start" #f ,(lambda () (let ((gp-0 traffic-start)) - (if (valid? gp-0 function (the-as symbol "") #t 0) + (if (valid? gp-0 function "" #t 0) (gp-0) ) ) @@ -3765,7 +3765,7 @@ ) (function "Traffic Kill" #f ,(lambda () (let ((gp-0 traffic-kill)) - (if (valid? gp-0 function (the-as symbol "") #t 0) + (if (valid? gp-0 function "" #t 0) (gp-0) ) ) diff --git a/goal_src/jak2/engine/debug/viewer.gc b/goal_src/jak2/engine/debug/viewer.gc index daefe588d..9166d18b7 100644 --- a/goal_src/jak2/engine/debug/viewer.gc +++ b/goal_src/jak2/engine/debug/viewer.gc @@ -217,7 +217,7 @@ This commonly includes things such as: (set! (-> obj root) (new 'process 'trsqv)) (process-drawable-from-entity! obj arg0) (let ((s4-0 (-> arg0 etype))) - (if (valid? s4-0 type #f #f 0) + (if (valid? s4-0 type (the-as string #f) #f 0) (init-viewer (symbol->string (-> s4-0 symbol)) (res-lump-struct arg0 'name string)) (go process-drawable-art-error "unknown") ) diff --git a/goal_src/jak2/engine/dma/dma-disasm.gc b/goal_src/jak2/engine/dma/dma-disasm.gc index f3ee69f91..2a8ea5e7f 100644 --- a/goal_src/jak2/engine/dma/dma-disasm.gc +++ b/goal_src/jak2/engine/dma/dma-disasm.gc @@ -403,7 +403,7 @@ Debug tool to print out a DMA list. (a2-2 "dma-list tag pointer") ) (cond - ((not (t9-1 a0-2 (the-as type a1-2) (the-as symbol a2-2) #t gp-0)) + ((not (t9-1 a0-2 (the-as type a1-2) a2-2 #t gp-0)) (format gp-0 "ERROR: dma-list tag pointer invalid~%") (set! s0-0 'error) ) @@ -414,7 +414,7 @@ Debug tool to print out a DMA list. (a1-4 #f) ) (set! a2-2 "dma-list data pointer") - (t9-3 a0-4 (the-as type a1-4) (the-as symbol a2-2) #t gp-0) + (t9-3 a0-4 (the-as type a1-4) a2-2 #t gp-0) ) ) ) diff --git a/goal_src/jak2/engine/entity/entity.gc b/goal_src/jak2/engine/entity/entity.gc index 1f77fb5c5..642748d26 100644 --- a/goal_src/jak2/engine/entity/entity.gc +++ b/goal_src/jak2/engine/entity/entity.gc @@ -539,7 +539,7 @@ ;; WARN: Return type mismatch entity-actor vs none. (defmethod debug-print entity-actor ((obj entity-actor) (arg0 symbol) (arg1 type)) (let ((s4-0 (-> obj etype))) - (when (or (not arg1) (and s4-0 (valid? s4-0 type #f #f 0) (type-type? s4-0 arg1))) + (when (or (not arg1) (and s4-0 (valid? s4-0 type (the-as string #f) #f 0) (type-type? s4-0 arg1))) (format #t "~5D #x~8X ~-26S" (-> obj extra vis-id) obj (res-lump-struct obj 'name structure)) (let ((t9-4 format) (a0-5 #t) @@ -1605,7 +1605,7 @@ ) ((begin (set! (-> s4-0 type) s5-0) - (and s5-0 (valid? s5-0 type #f #f 0) (valid? (method-of-object s4-0 init-from-entity!) function #f #f 0)) + (and s5-0 (valid? s5-0 type (the-as string #f) #f 0) (valid? (method-of-object s4-0 init-from-entity!) function (the-as string #f) #f 0)) ) (init-entity s4-0 obj (the-as process s5-0)) ) @@ -2243,9 +2243,9 @@ (or (-> s4-1 vis-info 0) (< (vector-vector-distance (-> sv-48 trans) sv-16) (-> sv-48 vis-dist))) ;; PC port note : added this extra check to fix level types being used after deloaded because of bad entity placement (#if PC_PORT - (or (not (type-type? (-> sv-48 entity type) entity-actor)) (and (valid? (-> (the-as entity-actor (-> sv-48 entity)) etype) type 'entity-type-check1 #f 0) - (valid? (-> (the-as entity-actor (-> sv-48 entity)) etype symbol) symbol 'entity-type-check2 #f 0) - (valid? (-> (the-as entity-actor (-> sv-48 entity)) etype symbol value) type 'entity-type-check3 #f 0) + (or (not (type-type? (-> sv-48 entity type) entity-actor)) (and (valid? (-> (the-as entity-actor (-> sv-48 entity)) etype) type "entity-type-check etype" #f *stdcon*) + (valid? (-> (the-as entity-actor (-> sv-48 entity)) etype symbol) symbol "entity-type-check symbol" #f *stdcon*) + (valid? (-> (the-as entity-actor (-> sv-48 entity)) etype symbol value) type "entity-type-check value" #f *stdcon*) (= (-> (the-as entity-actor (-> sv-48 entity)) etype) (-> (the-as entity-actor (-> sv-48 entity)) etype symbol value)) )) #f) diff --git a/goal_src/jak2/engine/level/level.gc b/goal_src/jak2/engine/level/level.gc index 7557f93b5..510b32cc8 100644 --- a/goal_src/jak2/engine/level/level.gc +++ b/goal_src/jak2/engine/level/level.gc @@ -280,7 +280,7 @@ into 7 sections, which might explain the weird sizes in the center. (dotimes (s5-0 8) (let ((s4-0 (-> obj bsp vis-info s5-0))) (cond - ((and s4-0 (nonzero? s4-0) (valid? s4-0 level-vis-info #f #f 0)) + ((and s4-0 (nonzero? s4-0) (valid? s4-0 level-vis-info (the-as string #f) #f 0)) ;; looks good ;; level -> vis info @@ -1465,7 +1465,7 @@ into 7 sections, which might explain the weird sizes in the center. (set! (-> *level* loading-level) obj) (set! *level-type-list* (the-as type (&-> obj level-type))) (cond - ((valid? (-> obj bsp light-hash) light-hash #f #t 0) + ((valid? (-> obj bsp light-hash) light-hash (the-as string #f) #t 0) (set! (-> obj light-hash) (-> obj bsp light-hash)) ) (else diff --git a/goal_src/jak2/engine/process-drawable/process-drawable.gc b/goal_src/jak2/engine/process-drawable/process-drawable.gc index 312520e26..9e0950005 100644 --- a/goal_src/jak2/engine/process-drawable/process-drawable.gc +++ b/goal_src/jak2/engine/process-drawable/process-drawable.gc @@ -838,7 +838,7 @@ ) (format (clear *temp-string*) "skel-~S" arg0) (let ((s4-1 (s3-0 s4-0 *temp-string* (the-as (pointer uint32) #f)))) - (if (and (nonzero? s4-1) (valid? s4-1 skeleton-group #f #f 0)) + (if (and (nonzero? s4-1) (valid? s4-1 skeleton-group (the-as string #f) #f 0)) (initialize-skeleton obj (the-as skeleton-group s4-1) (the-as pair 0)) (go process-drawable-art-error arg0) ) @@ -1914,7 +1914,7 @@ (let ((s3-0 (-> arg0 node-list data s4-0))) (when (-> s3-0 geo) (cond - ((valid? (-> s3-0 geo) drawable (the-as symbol "cspace geo") #t *valid-con*) + ((valid? (-> s3-0 geo) drawable "cspace geo" #t *valid-con*) ) (else (format *valid-con* "ERROR: ~A has an invalid geo ~A~%" s3-0 (-> s3-0 geo)) @@ -1940,7 +1940,7 @@ (cond ((logtest? (-> s2-0 command) (joint-control-command joint-control-command-4)) ) - ((valid? (-> s2-0 frame-group) art-joint-anim (the-as symbol "joint-control frame-group") #t *valid-con*) + ((valid? (-> s2-0 frame-group) art-joint-anim "joint-control frame-group" #t *valid-con*) (when (not (and (>= (the int (-> s2-0 frame-num)) 0) (< (the int (-> s2-0 frame-num)) (the-as int (-> s2-0 frame-group frames num-frames))) ) diff --git a/goal_src/jak2/engine/spatial-hash/spatial-hash.gc b/goal_src/jak2/engine/spatial-hash/spatial-hash.gc index 8aec16408..211545ce9 100644 --- a/goal_src/jak2/engine/spatial-hash/spatial-hash.gc +++ b/goal_src/jak2/engine/spatial-hash/spatial-hash.gc @@ -894,7 +894,7 @@ (defmethod validate-objects spatial-hash ((obj spatial-hash)) (dotimes (s5-0 (-> obj object-count)) (let ((a0-2 (-> obj object-array s5-0 object))) - (when (not (valid? a0-2 basic (the-as symbol "") #t 0)) + (when (not (valid? a0-2 basic "" #t 0)) (break!) 0 ) diff --git a/goal_src/jak2/engine/target/target-turret.gc b/goal_src/jak2/engine/target/target-turret.gc index 215830b71..6617a10af 100644 --- a/goal_src/jak2/engine/target/target-turret.gc +++ b/goal_src/jak2/engine/target/target-turret.gc @@ -2120,7 +2120,7 @@ ) (defmethod deactivate base-turret ((obj base-turret)) - (if (valid? (-> obj hud) (the-as type #f) (the-as symbol "") #t 0) + (if (valid? (-> obj hud) (the-as type #f) "" #t 0) (send-event (handle->process (-> obj hud)) 'hide-and-die) ) (sound-stop (-> obj sound-id 0)) diff --git a/goal_src/jak2/kernel/gcommon.gc b/goal_src/jak2/kernel/gcommon.gc index 13a6781a5..372f0b64c 100644 --- a/goal_src/jak2/kernel/gcommon.gc +++ b/goal_src/jak2/kernel/gcommon.gc @@ -1087,9 +1087,9 @@ ) (define-extern boolean type) ;; not really... but they use it here as if it was one. -(define-extern valid? (function object type symbol symbol object symbol)) +(define-extern valid? (function object type string symbol object symbol)) -(defun valid? ((obj object) (expected-type type) (name symbol) (allow-false symbol) (print-dest object)) +(defun valid? ((obj object) (expected-type type) (name string) (allow-false symbol) (print-dest object)) "Check if the given object is valid. This will work for structures, pairs, basics, bintegers, symbols, and types. If you set expected-type to #f, it just checks for a 4-byte aligned address that's in GOAL memory. If you're checking a structure, set expected-type to structure. This requires 16-byte alignment @@ -1224,7 +1224,7 @@ ) #f ) - ((and (!= expected-type type) (not (valid? (rtype-of obj) type #f #t 0))) + ((and (!= expected-type type) (not (valid? (rtype-of obj) type (the-as string #f) #t 0))) (if name (format print-dest diff --git a/goal_src/jak2/levels/castle/boss/casboss-part.gc b/goal_src/jak2/levels/castle/boss/casboss-part.gc index e24e0c058..64258063d 100644 --- a/goal_src/jak2/levels/castle/boss/casboss-part.gc +++ b/goal_src/jak2/levels/castle/boss/casboss-part.gc @@ -114,7 +114,7 @@ :flags (unk-4 unk-6 unk-7) :bounds (static-bspherem 0 -2 2 6) :rotate ((degrees 0) (degrees -90) (degrees 0)) - :scale (0.0 -16384.0 0.0) + :scale (1.5 0.6 1.5) :parts ((sp-item 5203 :fade-after (meters 300) :falloff-to (meters 300) :flags (bit7))) ) diff --git a/goal_src/jak2/levels/city/onin_tent/onintent-scenes.gc b/goal_src/jak2/levels/city/onin_tent/onintent-scenes.gc index c789fea70..fabf786ff 100644 --- a/goal_src/jak2/levels/city/onin_tent/onintent-scenes.gc +++ b/goal_src/jak2/levels/city/onin_tent/onintent-scenes.gc @@ -399,7 +399,7 @@ :flags (unk-6 unk-7) :bounds (static-bspherem 0 0 0 4) :rotate ((degrees 90) (degrees 0) (degrees 0)) - :scale (16384.0 0.0 0.0) + :scale (0.5 0.5 0.5) :parts ((sp-item 3478 :flags (is-3d bit6 bit7)) (sp-item 3481 :flags (bit6))) ) diff --git a/goal_src/jak2/levels/city/port/ctyport-part.gc b/goal_src/jak2/levels/city/port/ctyport-part.gc index 34e05de3c..50f9d5075 100644 --- a/goal_src/jak2/levels/city/port/ctyport-part.gc +++ b/goal_src/jak2/levels/city/port/ctyport-part.gc @@ -27,7 +27,7 @@ :id 930 :flags (unk-4 unk-7) :bounds (static-bspherem 0 0 0 12) - :scale (0.0 0.0 0.0) + :scale (0.625 0.625 0.625) :parts ((sp-item 4148 :fade-after (meters 250) :falloff-to (meters 150) :flags (bit7))) ) diff --git a/goal_src/jak2/levels/common/battle.gc b/goal_src/jak2/levels/common/battle.gc index f0bf87ac4..5e2eea9de 100644 --- a/goal_src/jak2/levels/common/battle.gc +++ b/goal_src/jak2/levels/common/battle.gc @@ -1424,7 +1424,7 @@ (#when PC_PORT ;; added. a battle may have enemies from an unloaded level in its ally list (e.g. atoll battle has atollext enemies). (dotimes (i gp-0) - (if (not (valid? (-> v1-0 data i entity) entity-actor 'battle-ally-check #f #t)) + (if (not (valid? (-> v1-0 data i entity) entity-actor "battle allies" #f *stdcon*)) (deactivate self))) ) (when (> gp-0 0) diff --git a/goal_src/jak2/levels/common/enemy/hover/crimson-guard-hover.gc b/goal_src/jak2/levels/common/enemy/hover/crimson-guard-hover.gc index 63d896ad6..8bbc82b78 100644 --- a/goal_src/jak2/levels/common/enemy/hover/crimson-guard-hover.gc +++ b/goal_src/jak2/levels/common/enemy/hover/crimson-guard-hover.gc @@ -14,7 +14,7 @@ :flags (use-local-clock unk-5 unk-6 unk-7) :bounds (static-bspherem 0 0 0 15) :rotate ((degrees 0) (degrees 90) (degrees 0)) - :scale (0.0 16384.0 0.0) + :scale (0.75 0.75 0.75) :parts ((sp-item 744 :flags (bit6) :period 900 :length 5) (sp-item 745 :flags (bit6) :period 900 :length 5) (sp-item 746 :period 900 :length 15) @@ -32,7 +32,7 @@ :flags (use-local-clock unk-5 unk-6 unk-7) :bounds (static-bspherem 0 0 0 15) :rotate ((degrees 0) (degrees 90) (degrees 0)) - :scale (0.0 16384.0 0.0) + :scale (0.3 0.3 0.3) :parts ((sp-item 744 :flags (bit6) :period 900 :length 5) (sp-item 745 :flags (bit6) :period 900 :length 5) (sp-item 746 :period 900 :length 15) diff --git a/goal_src/jak2/levels/common/enemy/hover/wasp.gc b/goal_src/jak2/levels/common/enemy/hover/wasp.gc index caaceb733..4f10494e5 100644 --- a/goal_src/jak2/levels/common/enemy/hover/wasp.gc +++ b/goal_src/jak2/levels/common/enemy/hover/wasp.gc @@ -14,7 +14,7 @@ :flags (use-local-clock unk-5 unk-6 unk-7) :bounds (static-bspherem 0 0 0 15) :rotate ((degrees 0) (degrees 90) (degrees 0)) - :scale (0.0 16384.0 0.0) + :scale (0.25 0.25 0.25) :parts ((sp-item 726 :flags (bit6) :period 900 :length 5) (sp-item 727 :flags (bit6) :period 900 :length 5) (sp-item 728 :period 900 :length 15) diff --git a/goal_src/jak2/levels/drill_platform/drill-part.gc b/goal_src/jak2/levels/drill_platform/drill-part.gc index 736aa1d56..8540bfbd3 100644 --- a/goal_src/jak2/levels/drill_platform/drill-part.gc +++ b/goal_src/jak2/levels/drill_platform/drill-part.gc @@ -435,7 +435,7 @@ :id 404 :flags (unk-4 unk-7) :bounds (static-bspherem 0 0 0 7) - :scale (0.0 0.0 0.0) + :scale (0.6 0.6 0.6) :parts ((sp-item 1687 :fade-after (meters 200) :flags (bit6 bit7)) (sp-item 1688 :fade-after (meters 200) :flags (bit6 bit7)) (sp-item 1689 :fade-after (meters 200) :flags (bit6 bit7)) @@ -446,7 +446,7 @@ :id 405 :flags (unk-4 unk-7) :bounds (static-bspherem 0 0 0 5) - :scale (0.0 0.0 0.0) + :scale (0.7 0.7 0.7) :parts ((sp-item 1687 :fade-after (meters 200) :flags (bit6 bit7)) (sp-item 1688 :fade-after (meters 200) :flags (bit6 bit7)) (sp-item 1689 :fade-after (meters 200) :flags (bit6 bit7)) @@ -2032,7 +2032,7 @@ :flags (unk-4 unk-6 unk-7) :bounds (static-bspherem 0 -2 2 6) :rotate ((degrees 0) (degrees -90) (degrees 0)) - :scale (0.0 -16384.0 0.0) + :scale (0.6 0.6 0.6) :parts ((sp-item 1752 :fade-after (meters 100) :falloff-to (meters 100) :flags (bit7)) (sp-item 1753 :fade-after (meters 200) :falloff-to (meters 240) :flags (bit7)) ) diff --git a/goal_src/jak2/levels/forest/forest-obs.gc b/goal_src/jak2/levels/forest/forest-obs.gc index 012c6e715..89dec5e8f 100644 --- a/goal_src/jak2/levels/forest/forest-obs.gc +++ b/goal_src/jak2/levels/forest/forest-obs.gc @@ -428,7 +428,7 @@ This commonly includes things such as: ) (defmethod deactivate forest-youngsamos ((obj forest-youngsamos)) - (if (valid? (-> obj hud) (the-as type #f) (the-as symbol "") #t 0) + (if (valid? (-> obj hud) (the-as type #f) "" #t 0) (send-event (handle->process (-> obj hud)) 'hide-and-die) ) (sound-stop (the-as sound-id (-> obj sound-id))) diff --git a/goal_src/jak2/levels/fortress/rescue/forrescb-part.gc b/goal_src/jak2/levels/fortress/rescue/forrescb-part.gc index 11738eff8..dd4c01449 100644 --- a/goal_src/jak2/levels/fortress/rescue/forrescb-part.gc +++ b/goal_src/jak2/levels/fortress/rescue/forrescb-part.gc @@ -249,7 +249,7 @@ :id 664 :flags (unk-4 unk-7) :bounds (static-bspherem 0 0 0 5) - :scale (0.0 0.0 0.0) + :scale (0.8 0.8 0.8) :parts ((sp-item 2904 :fade-after (meters 80) :flags (bit6 bit7) :period 200 :length 100) (sp-item 2905 :fade-after (meters 80) :flags (bit6 bit7) :period 400 :length 100) (sp-item 2906 :fade-after (meters 60) :flags (bit6 bit7) :period 600 :length 300) @@ -345,7 +345,7 @@ :id 665 :flags (unk-4 unk-7) :bounds (static-bspherem 0 0 0 5) - :scale (0.0 0.0 0.0) + :scale (0.85 0.85 0.85) :parts ((sp-item 2908 :fade-after (meters 80) :flags (bit6 bit7) :period 300 :length 150) (sp-item 2909 :fade-after (meters 60) :flags (bit6 bit7) :period 150 :length 50) (sp-item 2910 :fade-after (meters 40) :flags (bit6 bit7) :period 600 :length 300) @@ -438,7 +438,7 @@ :id 667 :flags (unk-4 unk-7) :bounds (static-bspherem 0 0 0 5) - :scale (0.0 0.0 0.0) + :scale (0.8 0.8 0.8) :parts ((sp-item 2911 :fade-after (meters 40) :flags (bit6 bit7) :period 150 :length 75) (sp-item 2912 :fade-after (meters 60) :flags (bit6 bit7) :period 450 :length 50) (sp-item 2913 :fade-after (meters 80) :flags (bit6 bit7) :period 300 :length 225) @@ -738,7 +738,7 @@ :id 669 :flags (unk-4 unk-7) :bounds (static-bspherem 0 0 0 5) - :scale (0.0 0.0 0.0) + :scale (0.8 0.8 0.8) :parts ((sp-item 2923 :fade-after (meters 40) :flags (bit6 bit7) :period 300 :length 150 :offset 150) (sp-item 2924 :fade-after (meters 60) :flags (bit6 bit7) :period 450 :length 150 :offset 150) (sp-item 2925 :fade-after (meters 80) :flags (bit6 bit7) :period 600 :length 150 :offset 300) @@ -1410,7 +1410,7 @@ :id 673 :flags (unk-4 unk-7) :bounds (static-bspherem 0 0 0 5) - :scale (0.0 0.0 0.0) + :scale (0.8 0.8 0.8) :parts ((sp-item 2954 :fade-after (meters 80) :flags (bit6 bit7) :period 200 :length 100) (sp-item 2955 :fade-after (meters 60) :flags (bit6 bit7) :period 400 :length 100) (sp-item 2956 :fade-after (meters 40) :flags (bit6 bit7) :period 600 :length 300) @@ -1528,7 +1528,7 @@ :id 674 :flags (unk-4 unk-7) :bounds (static-bspherem 0 0 0 5) - :scale (0.0 0.0 0.0) + :scale (0.8 0.8 0.8) :parts ((sp-item 2959 :fade-after (meters 80) :flags (bit6 bit7) :period 200 :length 100 :offset 50) (sp-item 2960 :fade-after (meters 60) :flags (bit6 bit7) :period 200 :length 100) (sp-item 2961 :fade-after (meters 40) :flags (bit6 bit7) :period 300 :length 100) @@ -1756,7 +1756,7 @@ :id 675 :flags (unk-4 unk-7) :bounds (static-bspherem 0 0 0 5) - :scale (0.0 0.0 0.0) + :scale (0.8 0.8 0.8) :parts ((sp-item 2969 :fade-after (meters 80) :flags (bit6 bit7) :period 200 :length 100 :offset 100) (sp-item 2970 :fade-after (meters 60) :flags (bit6 bit7) :period 400 :length 150) (sp-item 2971 :fade-after (meters 40) :flags (bit6 bit7) :period 450 :length 125 :offset 85) @@ -2028,7 +2028,7 @@ :id 676 :flags (unk-4 unk-7) :bounds (static-bspherem 0 0 0 5) - :scale (0.0 0.0 0.0) + :scale (0.8 0.8 0.8) :parts ((sp-item 2981 :fade-after (meters 80) :flags (bit6 bit7) :period 200 :length 100 :offset 50) (sp-item 2982 :fade-after (meters 60) :flags (bit6 bit7) :period 300 :length 75 :offset 150) (sp-item 2983 :fade-after (meters 40) :flags (bit6 bit7) :period 350 :length 150 :offset 80) @@ -2168,7 +2168,7 @@ :id 677 :flags (unk-4 unk-7) :bounds (static-bspherem 0 0 0 5) - :scale (0.0 0.0 0.0) + :scale (0.8 0.8 0.8) :parts ((sp-item 2987 :fade-after (meters 80) :flags (bit6 bit7) :period 200 :length 100 :offset 50) (sp-item 2988 :fade-after (meters 60) :flags (bit6 bit7) :period 300 :length 75) (sp-item 2989 :fade-after (meters 40) :flags (bit6 bit7) :period 350 :length 150 :offset 125) @@ -2352,7 +2352,7 @@ :id 678 :flags (unk-4 unk-7) :bounds (static-bspherem 0 0 0 5) - :scale (0.0 0.0 0.0) + :scale (0.8 0.8 0.8) :parts ((sp-item 2995 :fade-after (meters 80) :flags (bit6 bit7) :period 200 :length 100 :offset 50) (sp-item 2996 :fade-after (meters 60) :flags (bit6 bit7) :period 300 :length 75 :offset 150) (sp-item 2997 :fade-after (meters 40) :flags (bit6 bit7) :period 350 :length 150 :offset 80) diff --git a/goal_src/jak2/levels/gungame/gun-dummy.gc b/goal_src/jak2/levels/gungame/gun-dummy.gc index ac4390d2a..034d71017 100644 --- a/goal_src/jak2/levels/gungame/gun-dummy.gc +++ b/goal_src/jak2/levels/gungame/gun-dummy.gc @@ -96,7 +96,7 @@ :flags (use-local-clock unk-6 unk-7) :bounds (static-bspherem 0 0 0 15) :rotate ((degrees 0) (degrees 90) (degrees 0)) - :scale (0.0 16384.0 0.0) + :scale (1.0 0.83 1.2) :parts ((sp-item 2297 :flags (is-3d bit7) :period 1200 :length 10) (sp-item 2298 :flags (is-3d bit7) :period 1200 :length 15) (sp-item 2299 :flags (bit7) :period 1200 :length 15) @@ -264,7 +264,7 @@ :flags (use-local-clock unk-6 unk-7) :bounds (static-bspherem 0 0 0 15) :rotate ((degrees 0) (degrees 90) (degrees 0)) - :scale (0.0 16384.0 0.0) + :scale (1.0 0.97 0.87) :parts ((sp-item 2304 :flags (is-3d bit7) :period 1200 :length 10) (sp-item 2305 :flags (is-3d bit7) :period 1200 :length 15) (sp-item 2299 :flags (bit7) :period 1200 :length 15) @@ -383,7 +383,7 @@ :flags (use-local-clock unk-6 unk-7) :bounds (static-bspherem 0 0 0 15) :rotate ((degrees 0) (degrees 90) (degrees 0)) - :scale (0.0 16384.0 0.0) + :scale (1.0 0.97 1.27) :parts ((sp-item 2306 :flags (is-3d bit7) :period 1200 :length 10) (sp-item 2307 :flags (is-3d bit7) :period 1200 :length 15) (sp-item 2299 :flags (bit7) :period 1200 :length 15) @@ -502,7 +502,7 @@ :flags (use-local-clock unk-6 unk-7) :bounds (static-bspherem 0 0 0 15) :rotate ((degrees 0) (degrees 90) (degrees 0)) - :scale (0.0 16384.0 0.0) + :scale (1.0 1.13 1.3) :parts ((sp-item 2308 :flags (is-3d bit7) :period 1200 :length 10) (sp-item 2309 :flags (is-3d bit7) :period 1200 :length 15) (sp-item 2299 :flags (bit7) :period 1200 :length 15) @@ -621,7 +621,7 @@ :flags (use-local-clock unk-6 unk-7) :bounds (static-bspherem 0 0 0 15) :rotate ((degrees 0) (degrees 90) (degrees 0)) - :scale (0.0 16384.0 0.0) + :scale (1.0 0.83 1.2) :parts ((sp-item 2310 :flags (is-3d bit7) :period 1200 :length 10) (sp-item 2311 :flags (is-3d bit7) :period 1200 :length 15) (sp-item 2312 :flags (bit7) :period 1200 :length 15) @@ -789,7 +789,7 @@ :flags (use-local-clock unk-6 unk-7) :bounds (static-bspherem 0 0 0 15) :rotate ((degrees 0) (degrees 90) (degrees 0)) - :scale (0.0 16384.0 0.0) + :scale (1.0 0.83 1.2) :parts ((sp-item 2314 :flags (is-3d bit7) :period 1200 :length 10) (sp-item 2315 :flags (is-3d bit7) :period 1200 :length 15) (sp-item 2316 :flags (bit7) :period 1200 :length 15) @@ -957,7 +957,7 @@ :flags (use-local-clock unk-6 unk-7) :bounds (static-bspherem 0 0 0 15) :rotate ((degrees 0) (degrees 90) (degrees 0)) - :scale (0.0 16384.0 0.0) + :scale (1.0 0.73 0.97) :parts ((sp-item 2318 :flags (is-3d bit7) :period 1200 :length 10) (sp-item 2319 :flags (is-3d bit7) :period 1200 :length 15) (sp-item 2320 :flags (bit7) :period 1200 :length 15) @@ -1209,7 +1209,7 @@ :flags (use-local-clock unk-6 unk-7) :bounds (static-bspherem 0 0 0 15) :rotate ((degrees 0) (degrees 90) (degrees 0)) - :scale (0.0 16384.0 0.0) + :scale (1.0 0.6 0.43) :parts ((sp-item 2323 :flags (is-3d bit7) :period 1200 :length 10) (sp-item 2324 :flags (is-3d bit7) :period 1200 :length 15) (sp-item 2320 :flags (bit7) :period 1200 :length 15) @@ -1328,7 +1328,7 @@ :flags (use-local-clock unk-6 unk-7) :bounds (static-bspherem 0 0 0 15) :rotate ((degrees 0) (degrees 90) (degrees 0)) - :scale (0.0 16384.0 0.0) + :scale (1.0 0.9 0.67) :parts ((sp-item 2325 :flags (is-3d bit7) :period 1200 :length 10) (sp-item 2326 :flags (is-3d bit7) :period 1200 :length 15) (sp-item 2320 :flags (bit7) :period 1200 :length 15) @@ -1447,7 +1447,7 @@ :flags (use-local-clock unk-6 unk-7) :bounds (static-bspherem 0 0 0 15) :rotate ((degrees 0) (degrees 90) (degrees 0)) - :scale (0.0 16384.0 0.0) + :scale (1.0 1.07 0.6) :parts ((sp-item 2327 :flags (is-3d bit7) :period 1200 :length 10) (sp-item 2328 :flags (is-3d bit7) :period 1200 :length 15) (sp-item 2320 :flags (bit7) :period 1200 :length 15) diff --git a/goal_src/jak2/levels/mars_tomb/tomb-part.gc b/goal_src/jak2/levels/mars_tomb/tomb-part.gc index 8d02a37ad..61629dbee 100644 --- a/goal_src/jak2/levels/mars_tomb/tomb-part.gc +++ b/goal_src/jak2/levels/mars_tomb/tomb-part.gc @@ -57,7 +57,7 @@ :id 687 :flags (unk-7) :bounds (static-bspherem 0 3 0 16) - :scale (0.0 0.0 0.0) + :scale (1.4 2.0 1.4) :parts ((sp-item 3069 :fade-after (meters 200) :falloff-to (meters 200) :flags (bit7)) (sp-item 3070 :fade-after (meters 250) :falloff-to (meters 250) :flags (bit7) :period 105 :length 45) (sp-item 3071 :fade-after (meters 250) :falloff-to (meters 250) :flags (bit7) :period 130 :length 35 :offset 20) @@ -174,7 +174,7 @@ :flags (unk-6 unk-7) :bounds (static-bspherem 0 3 0 16) :rotate ((degrees 0) (degrees 87) (degrees 0)) - :scale (0.0 15837.866 0.0) + :scale (0.9 0.7 1.2) :parts ((sp-item 3069 :fade-after (meters 200) :falloff-to (meters 200) :flags (bit7)) (sp-item 3070 :fade-after (meters 250) :falloff-to (meters 250) :flags (bit7) :period 115 :length 40) (sp-item 3071 :fade-after (meters 250) :falloff-to (meters 250) :flags (bit7) :period 175 :length 45 :offset 20) @@ -195,7 +195,7 @@ :flags (unk-6 unk-7) :bounds (static-bspherem 0 3 0 16) :rotate ((degrees 0) (degrees 223) (degrees 0)) - :scale (0.0 40595.91 0.0) + :scale (1.0 1.25 0.8) :parts ((sp-item 3069 :fade-after (meters 200) :falloff-to (meters 200) :flags (bit7)) (sp-item 3070 :fade-after (meters 250) :falloff-to (meters 250) :flags (bit7) :period 125 :length 40) (sp-item 3071 :fade-after (meters 250) :falloff-to (meters 250) :flags (bit7) :period 190 :length 45 :offset 20) @@ -215,7 +215,7 @@ :id 691 :flags (unk-7) :bounds (static-bspherem 0 3 0 16) - :scale (0.0 0.0 0.0) + :scale (0.5 0.5 0.5) :parts ((sp-item 3069 :fade-after (meters 50) :falloff-to (meters 200) :flags (bit7)) (sp-item 3070 :fade-after (meters 100) :falloff-to (meters 250) :flags (bit7) :period 125 :length 40) (sp-item 3071 :fade-after (meters 100) :falloff-to (meters 250) :flags (bit7) :period 190 :length 45 :offset 20) @@ -440,7 +440,7 @@ :id 692 :flags (unk-7) :bounds (static-bspherem 0 2 0 6) - :scale (0.0 0.0 0.0) + :scale (0.3 0.5 0.3) :parts ((sp-item 3083 :fade-after (meters 100) :falloff-to (meters 100) :flags (bit7)) (sp-item 3084 :fade-after (meters 250) :falloff-to (meters 250) :flags (bit7) :period 100 :length 50) (sp-item 3085 :fade-after (meters 150) :falloff-to (meters 150) :flags (bit7) :period 120 :length 55 :offset 20) @@ -463,7 +463,7 @@ :flags (unk-6 unk-7) :bounds (static-bspherem 0 2 0 6) :rotate ((degrees 0) (degrees 63) (degrees 0)) - :scale (0.0 11468.8 0.0) + :scale (0.25 0.6 0.35) :parts ((sp-item 3083 :fade-after (meters 100) :falloff-to (meters 100) :flags (bit7)) (sp-item 3084 :fade-after (meters 250) :falloff-to (meters 250) :flags (bit7) :period 90 :length 50) (sp-item 3085 :fade-after (meters 150) :falloff-to (meters 150) :flags (bit7) :period 160 :length 55 :offset 20) @@ -486,7 +486,7 @@ :flags (unk-6 unk-7) :bounds (static-bspherem 0 2 0 6) :rotate ((degrees 0) (degrees 173) (degrees 0)) - :scale (0.0 31493.69 0.0) + :scale (0.325 0.4 0.275) :parts ((sp-item 3083 :fade-after (meters 100) :falloff-to (meters 100) :flags (bit7)) (sp-item 3084 :fade-after (meters 250) :falloff-to (meters 250) :flags (bit7) :period 125 :length 50) (sp-item 3085 :fade-after (meters 150) :falloff-to (meters 150) :flags (bit7) :period 145 :length 55 :offset 20) diff --git a/goal_src/jak2/levels/stadium/stadium-obs.gc b/goal_src/jak2/levels/stadium/stadium-obs.gc index 576ec6397..6b0c05b06 100644 --- a/goal_src/jak2/levels/stadium/stadium-obs.gc +++ b/goal_src/jak2/levels/stadium/stadium-obs.gc @@ -2086,7 +2086,7 @@ This commonly includes things such as: ) (defmethod deactivate stad-samos ((obj stad-samos)) - (if (valid? (-> obj hud) (the-as type #f) (the-as symbol "") #t 0) + (if (valid? (-> obj hud) (the-as type #f) "" #t 0) (send-event (handle->process (-> obj hud)) 'hide-and-die) ) (kill-lightning obj) diff --git a/goal_src/jak2/levels/underport/under-part.gc b/goal_src/jak2/levels/underport/under-part.gc index 5c0aadd82..660bf7973 100644 --- a/goal_src/jak2/levels/underport/under-part.gc +++ b/goal_src/jak2/levels/underport/under-part.gc @@ -603,7 +603,7 @@ :id 507 :flags (unk-7) :bounds (static-bspherem 0 2 0 6) - :scale (0.0 0.0 0.0) + :scale (0.3 0.5 0.3) :parts ((sp-item 2234 :fade-after (meters 100) :falloff-to (meters 100) :flags (bit7)) (sp-item 2235 :fade-after (meters 250) :falloff-to (meters 250) :flags (bit7) :period 100 :length 50) (sp-item 2236 :fade-after (meters 150) :falloff-to (meters 150) :flags (bit7) :period 120 :length 55 :offset 20) diff --git a/goal_src/jak2/pc/debug/entity-debug.gc b/goal_src/jak2/pc/debug/entity-debug.gc index c0c1c687d..cabc6147e 100644 --- a/goal_src/jak2/pc/debug/entity-debug.gc +++ b/goal_src/jak2/pc/debug/entity-debug.gc @@ -56,14 +56,14 @@ (let ((data (get-tag-index-data e i))) ;; tag info - (format (clear *debug-temp-string*) "~3L~2D)~0L ~20L~A~0L:" i (-> e tag i name) (-> e tag i elt-type)) + (format (clear *debug-temp-string*) "~3L~2D)~0L ~20L~A~0L: " i (-> e tag i name) (-> e tag i elt-type)) ;; tag data - special cases first (cond ;; some water-height info ((and (= (-> e tag i name) 'water-height) (= (-> e tag i elt-count) 4) (= (-> e tag i elt-type) float)) (+! y-adv (* 14 1)) - (format *debug-temp-string* " ~mm ~mm ~mm~%(~S)" + (format *debug-temp-string* "~mm ~mm ~mm~%(~S)" (-> (the (pointer float) data) 0) (-> (the (pointer float) data) 1) (-> (the (pointer float) data) 2) @@ -73,7 +73,7 @@ ;; some water-height info but with 5 elts ((and (= (-> e tag i name) 'water-height) (= (-> e tag i elt-count) 4) (= (-> e tag i elt-type) float)) (+! y-adv (* 14 3)) - (format *debug-temp-string* " ~mm ~mm ~mm~%(~S)~%~mm" + (format *debug-temp-string* "~mm ~mm ~mm~%(~S)~%~mm" (-> (the (pointer float) data) 0) (-> (the (pointer float) data) 1) (-> (the (pointer float) data) 2) @@ -83,17 +83,17 @@ ) ;; text id (can be hint ambient) ;; ((and (= (-> e tag i name) 'text-id) (= (-> e tag i elt-count) 1) (= (-> e tag i elt-type) int32)) - ;; (format *debug-temp-string* " (game-text-id ~S)" (game-text-id->string (-> (the (pointer game-text-id) data) 0))) + ;; (format *debug-temp-string* "(game-text-id ~S)" (game-text-id->string (-> (the (pointer game-text-id) data) 0))) ;; ) ;; eco-info, like in vents, crates, or collectables in general ((and (= (-> e tag i name) 'eco-info) (= (-> e tag i elt-count) 2) (= (-> e tag i elt-type) int32)) - (format *debug-temp-string* " ~S " (pickup-type->string (the-as pickup-type (-> (the (pointer int32) data) 0)))) + (format *debug-temp-string* "~S " (pickup-type->string (the-as pickup-type (-> (the (pointer int32) data) 0)))) (if (= (pickup-type fuel-cell) (-> (the (pointer int32) data) 0)) (format *debug-temp-string* "~S" (game-task->string (the-as game-task (-> (the (pointer int32) data) 1)))) (format *debug-temp-string* "~D" (-> (the (pointer int32) data) 1)) ) (if (= (pickup-type buzzer) (-> (the (pointer int32) data) 0)) - (format *debug-temp-string* " ~S" (game-task->string (the-as game-task (logand #xffff (-> (the (pointer int32) data) 1))))) + (format *debug-temp-string* "~S" (game-task->string (the-as game-task (logand #xffff (-> (the (pointer int32) data) 1))))) ) ) ;; fact options, usually enemies or crates @@ -104,18 +104,33 @@ ;; ) ;; these can be displayed visually with other tools. ((and (= (-> e tag i name) 'visvol) (= (-> e tag i elt-count) 2) (= (-> e tag i elt-type) vector)) - (format *debug-temp-string* " display actor-vis!") + (format *debug-temp-string* "display actor-vis!") ) ((and (= (-> e tag i name) 'path) (= (-> e tag i elt-type) vector)) - (format *debug-temp-string* " display path marks!") + (format *debug-temp-string* "display path marks!") ) ((and (= (-> e tag i name) 'vol) (= (-> e tag i elt-type) vector)) - (format *debug-temp-string* " display vol marks!") + (format *debug-temp-string* "display vol marks!") + ) + ((and (= (-> e tag i name) 'art-name) (= (-> e tag i elt-count) 1) (type-type? (-> e type) entity-actor) (type-type? (-> (the-as entity-actor e) etype) part-spawner)) + (let* ((as-launch-group-ptr (-> (the (pointer (pointer sparticle-launch-group)) data))) + (as-string (the string as-launch-group-ptr))) + (cond + ((part-group-pointer? as-launch-group-ptr) + (format *debug-temp-string* "(group) ~A" (-> as-launch-group-ptr 0 name)) + ) + ((= (-> as-string type) string) + (format *debug-temp-string* "(string) ~A" as-string) + ) + (else + (format *debug-temp-string* "" as-launch-group-ptr) + ) + ) + ) ) (else ;; more generic tag info (dotimes (ii (-> e tag i elt-count)) - (format *debug-temp-string* " ") (case (-> e tag i elt-type) ((string symbol type) (format *debug-temp-string* "~A" (-> (the (pointer basic) data) ii))) @@ -198,10 +213,10 @@ (format *debug-temp-string* "~%(~S)" (begin (bit-enum->string task-mask (-> (the (pointer uint32) data) ii) (clear *temp-string*)) *temp-string*)) (+! y-adv 14) ) - ;; (('elevator-flags) - ;; (format *debug-temp-string* "~%(~S)" (begin (bit-enum->string elevator-flags (-> (the (pointer uint32) data) ii) (clear *temp-string*)) *temp-string*)) - ;; (+! y-adv 14) - ;; ) + (('elevator-flags) + (format *debug-temp-string* "~%(~S)" (begin (bit-enum->string elevator-flags (-> (the (pointer uint32) data) ii) (clear *temp-string*)) *temp-string*)) + (+! y-adv 14) + ) (else (format *debug-temp-string* "#x~x" (-> (the (pointer uint32) data) ii)) ) @@ -267,6 +282,7 @@ (set! ii (the int (-> e tag i elt-count))) ) ) + (format *debug-temp-string* " ") ) ) ) diff --git a/test/decompiler/reference/jak2/engine/common_objs/collectables-part_REF.gc b/test/decompiler/reference/jak2/engine/common_objs/collectables-part_REF.gc index 58ab30b81..fba007b64 100644 --- a/test/decompiler/reference/jak2/engine/common_objs/collectables-part_REF.gc +++ b/test/decompiler/reference/jak2/engine/common_objs/collectables-part_REF.gc @@ -417,7 +417,7 @@ :id 82 :flags (unk-7) :bounds (static-bspherem 0 0 0 4) - :scale (0.0 0.0 0.0) + :scale (1.0 10.0 1.0) :parts ((sp-item 290 :period 25 :length 5 :binding 288) (sp-item 288 :flags (bit1 start-dead launch-asap)) (sp-item 288 :flags (bit1 start-dead launch-asap)) @@ -1461,7 +1461,3 @@ (sp-flt spt-rotate-y (degrees 0.0)) ) ) - - - - diff --git a/test/decompiler/reference/jak2/engine/debug/default-menu_REF.gc b/test/decompiler/reference/jak2/engine/debug/default-menu_REF.gc index 65461db75..f10a8b75b 100644 --- a/test/decompiler/reference/jak2/engine/debug/default-menu_REF.gc +++ b/test/decompiler/reference/jak2/engine/debug/default-menu_REF.gc @@ -3839,7 +3839,7 @@ (function "Reset Actors" #f ,(lambda () (reset-actors 'debug) (none))) (function "Traffic Start" #f ,(lambda () (let ((gp-0 traffic-start)) - (if (valid? gp-0 function (the-as symbol "") #t 0) + (if (valid? gp-0 function "" #t 0) (gp-0) ) ) @@ -3848,7 +3848,7 @@ ) (function "Traffic Kill" #f ,(lambda () (let ((gp-0 traffic-kill)) - (if (valid? gp-0 function (the-as symbol "") #t 0) + (if (valid? gp-0 function "" #t 0) (gp-0) ) ) diff --git a/test/decompiler/reference/jak2/engine/debug/viewer_REF.gc b/test/decompiler/reference/jak2/engine/debug/viewer_REF.gc index f45e2962c..c36b716a9 100644 --- a/test/decompiler/reference/jak2/engine/debug/viewer_REF.gc +++ b/test/decompiler/reference/jak2/engine/debug/viewer_REF.gc @@ -231,7 +231,7 @@ This commonly includes things such as: (set! (-> obj root) (new 'process 'trsqv)) (process-drawable-from-entity! obj arg0) (let ((s4-0 (-> arg0 etype))) - (if (valid? s4-0 type #f #f 0) + (if (valid? s4-0 type (the-as string #f) #f 0) (init-viewer (symbol->string (-> s4-0 symbol)) (res-lump-struct arg0 'name string)) (go process-drawable-art-error "unknown") ) diff --git a/test/decompiler/reference/jak2/engine/dma/dma-disasm_REF.gc b/test/decompiler/reference/jak2/engine/dma/dma-disasm_REF.gc index 8d7704a57..0fcb04418 100644 --- a/test/decompiler/reference/jak2/engine/dma/dma-disasm_REF.gc +++ b/test/decompiler/reference/jak2/engine/dma/dma-disasm_REF.gc @@ -547,7 +547,7 @@ (a2-2 "dma-list tag pointer") ) (cond - ((not (t9-1 a0-2 (the-as type a1-2) (the-as symbol a2-2) #t gp-0)) + ((not (t9-1 a0-2 (the-as type a1-2) a2-2 #t gp-0)) (format gp-0 "ERROR: dma-list tag pointer invalid~%") (set! s0-0 'error) ) @@ -558,7 +558,7 @@ (a1-4 #f) ) (set! a2-2 "dma-list data pointer") - (t9-3 a0-4 (the-as type a1-4) (the-as symbol a2-2) #t gp-0) + (t9-3 a0-4 (the-as type a1-4) a2-2 #t gp-0) ) ) ) diff --git a/test/decompiler/reference/jak2/engine/entity/entity_REF.gc b/test/decompiler/reference/jak2/engine/entity/entity_REF.gc index ffad1409e..92a6d9cff 100644 --- a/test/decompiler/reference/jak2/engine/entity/entity_REF.gc +++ b/test/decompiler/reference/jak2/engine/entity/entity_REF.gc @@ -71,6 +71,7 @@ ) ;; definition for method 3 of type actor-group +;; INFO: this function exists in multiple non-identical object files (defmethod inspect actor-group ((obj actor-group)) (format #t "[~8x] ~A~%" obj (-> obj type)) (format #t "~Tlength: ~D~%" (-> obj length)) @@ -530,6 +531,7 @@ ) ;; definition for method 2 of type process +;; INFO: this function exists in multiple non-identical object files (defmethod print process ((obj process)) (cond ((and (-> obj top-thread) (!= (-> obj status) 'dead)) @@ -658,7 +660,7 @@ ;; WARN: Return type mismatch entity-actor vs none. (defmethod debug-print entity-actor ((obj entity-actor) (arg0 symbol) (arg1 type)) (let ((s4-0 (-> obj etype))) - (when (or (not arg1) (and s4-0 (valid? s4-0 type #f #f 0) (type-type? s4-0 arg1))) + (when (or (not arg1) (and s4-0 (valid? s4-0 type (the-as string #f) #f 0) (type-type? s4-0 arg1))) (format #t "~5D #x~8X ~-26S" (-> obj extra vis-id) obj (res-lump-struct obj 'name structure)) (let ((t9-4 format) (a0-5 #t) @@ -1813,7 +1815,10 @@ ) ((begin (set! (-> s4-0 type) s5-0) - (and s5-0 (valid? s5-0 type #f #f 0) (valid? (method-of-object s4-0 init-from-entity!) function #f #f 0)) + (and s5-0 + (valid? s5-0 type (the-as string #f) #f 0) + (valid? (method-of-object s4-0 init-from-entity!) function (the-as string #f) #f 0) + ) ) (init-entity s4-0 obj (the-as process s5-0)) ) diff --git a/test/decompiler/reference/jak2/engine/level/level_REF.gc b/test/decompiler/reference/jak2/engine/level/level_REF.gc index 4e23a2f26..81ee77fe8 100644 --- a/test/decompiler/reference/jak2/engine/level/level_REF.gc +++ b/test/decompiler/reference/jak2/engine/level/level_REF.gc @@ -186,7 +186,7 @@ (dotimes (s5-0 8) (let ((s4-0 (-> obj bsp vis-info s5-0))) (cond - ((and s4-0 (nonzero? s4-0) (valid? s4-0 level-vis-info #f #f 0)) + ((and s4-0 (nonzero? s4-0) (valid? s4-0 level-vis-info (the-as string #f) #f 0)) (set! (-> obj vis-info s5-0) s4-0) (set! (-> s4-0 current-vis-string) (the-as uint -1)) (if (= (-> s4-0 from-level) (-> obj load-name)) @@ -1110,7 +1110,7 @@ (set! (-> *level* loading-level) obj) (set! *level-type-list* (the-as type (&-> obj level-type))) (cond - ((valid? (-> obj bsp light-hash) light-hash #f #t 0) + ((valid? (-> obj bsp light-hash) light-hash (the-as string #f) #t 0) (set! (-> obj light-hash) (-> obj bsp light-hash)) ) (else diff --git a/test/decompiler/reference/jak2/engine/process-drawable/process-drawable_REF.gc b/test/decompiler/reference/jak2/engine/process-drawable/process-drawable_REF.gc index fcd5f1052..91228a4fd 100644 --- a/test/decompiler/reference/jak2/engine/process-drawable/process-drawable_REF.gc +++ b/test/decompiler/reference/jak2/engine/process-drawable/process-drawable_REF.gc @@ -813,7 +813,7 @@ ) (format (clear *temp-string*) "skel-~S" arg0) (let ((s4-1 (s3-0 s4-0 *temp-string* (the-as (pointer uint32) #f)))) - (if (and (nonzero? s4-1) (valid? s4-1 skeleton-group #f #f 0)) + (if (and (nonzero? s4-1) (valid? s4-1 skeleton-group (the-as string #f) #f 0)) (initialize-skeleton obj (the-as skeleton-group s4-1) (the-as pair 0)) (go process-drawable-art-error arg0) ) @@ -1948,7 +1948,7 @@ (let ((s3-0 (-> arg0 node-list data s4-0))) (when (-> s3-0 geo) (cond - ((valid? (-> s3-0 geo) drawable (the-as symbol "cspace geo") #t *valid-con*) + ((valid? (-> s3-0 geo) drawable "cspace geo" #t *valid-con*) ) (else (format *valid-con* "ERROR: ~A has an invalid geo ~A~%" s3-0 (-> s3-0 geo)) @@ -1974,7 +1974,7 @@ (cond ((logtest? (-> s2-0 command) (joint-control-command joint-control-command-4)) ) - ((valid? (-> s2-0 frame-group) art-joint-anim (the-as symbol "joint-control frame-group") #t *valid-con*) + ((valid? (-> s2-0 frame-group) art-joint-anim "joint-control frame-group" #t *valid-con*) (when (not (and (>= (the int (-> s2-0 frame-num)) 0) (< (the int (-> s2-0 frame-num)) (the-as int (-> s2-0 frame-group frames num-frames))) ) diff --git a/test/decompiler/reference/jak2/engine/spatial-hash/spatial-hash_REF.gc b/test/decompiler/reference/jak2/engine/spatial-hash/spatial-hash_REF.gc index 9e479b6c7..a1d83cb2e 100644 --- a/test/decompiler/reference/jak2/engine/spatial-hash/spatial-hash_REF.gc +++ b/test/decompiler/reference/jak2/engine/spatial-hash/spatial-hash_REF.gc @@ -949,7 +949,7 @@ (defmethod validate-objects spatial-hash ((obj spatial-hash)) (dotimes (s5-0 (-> obj object-count)) (let ((a0-2 (-> obj object-array s5-0 object))) - (when (not (valid? a0-2 basic (the-as symbol "") #t 0)) + (when (not (valid? a0-2 basic "" #t 0)) (break!) 0 ) diff --git a/test/decompiler/reference/jak2/engine/target/target-turret_REF.gc b/test/decompiler/reference/jak2/engine/target/target-turret_REF.gc index ca1aa90f4..dd6b31bb6 100644 --- a/test/decompiler/reference/jak2/engine/target/target-turret_REF.gc +++ b/test/decompiler/reference/jak2/engine/target/target-turret_REF.gc @@ -2336,7 +2336,7 @@ ;; definition for method 10 of type base-turret (defmethod deactivate base-turret ((obj base-turret)) - (if (valid? (-> obj hud) (the-as type #f) (the-as symbol "") #t 0) + (if (valid? (-> obj hud) (the-as type #f) "" #t 0) (send-event (handle->process (-> obj hud)) 'hide-and-die) ) (sound-stop (-> obj sound-id 0)) diff --git a/test/decompiler/reference/jak2/kernel/gcommon_REF.gc b/test/decompiler/reference/jak2/kernel/gcommon_REF.gc index 1ae7fc0f3..cf1a5342c 100644 --- a/test/decompiler/reference/jak2/kernel/gcommon_REF.gc +++ b/test/decompiler/reference/jak2/kernel/gcommon_REF.gc @@ -974,7 +974,7 @@ ;; ERROR: Unsupported inline assembly instruction kind - [daddu v1, v1, s7] ;; ERROR: Unsupported inline assembly instruction kind - [daddu v1, v1, s7] ;; ERROR: Unsupported inline assembly instruction kind - [daddu v1, v1, s7] -(defun valid? ((arg0 object) (arg1 type) (arg2 symbol) (arg3 symbol) (arg4 object)) +(defun valid? ((arg0 object) (arg1 type) (arg2 string) (arg3 symbol) (arg4 object)) (local-vars (v1-11 int) (v1-26 int) (v1-56 int) (v1-60 int) (s7-0 none)) (let ((v1-1 (and (>= (the-as uint arg0) (the-as uint __START-OF-TABLE__)) (< (the-as uint arg0) (the-as uint #x8000000))) @@ -1110,7 +1110,7 @@ ) #f ) - ((and (!= arg1 type) (not (valid? (rtype-of arg0) type #f #t 0))) + ((and (!= arg1 type) (not (valid? (rtype-of arg0) type (the-as string #f) #t 0))) (if arg2 (format arg4 diff --git a/test/decompiler/reference/jak2/levels/castle/boss/casboss-part_REF.gc b/test/decompiler/reference/jak2/levels/castle/boss/casboss-part_REF.gc index 96ca44dae..dce795b8e 100644 --- a/test/decompiler/reference/jak2/levels/castle/boss/casboss-part_REF.gc +++ b/test/decompiler/reference/jak2/levels/castle/boss/casboss-part_REF.gc @@ -141,7 +141,7 @@ :flags (unk-4 unk-6 unk-7) :bounds (static-bspherem 0 -2 2 6) :rotate ((degrees 0) (degrees -90) (degrees 0)) - :scale (0.0 -16384.0 0.0) + :scale (1.5 0.6 1.5) :parts ((sp-item 5203 :fade-after (meters 300) :falloff-to (meters 300) :flags (bit7))) ) diff --git a/test/decompiler/reference/jak2/levels/city/onin_tent/onintent-scenes_REF.gc b/test/decompiler/reference/jak2/levels/city/onin_tent/onintent-scenes_REF.gc index 11420cf8f..0b4eaed4d 100644 --- a/test/decompiler/reference/jak2/levels/city/onin_tent/onintent-scenes_REF.gc +++ b/test/decompiler/reference/jak2/levels/city/onin_tent/onintent-scenes_REF.gc @@ -417,7 +417,7 @@ :flags (unk-6 unk-7) :bounds (static-bspherem 0 0 0 4) :rotate ((degrees 90) (degrees 0) (degrees 0)) - :scale (16384.0 0.0 0.0) + :scale (0.5 0.5 0.5) :parts ((sp-item 3478 :flags (is-3d bit6 bit7)) (sp-item 3481 :flags (bit6))) ) diff --git a/test/decompiler/reference/jak2/levels/city/port/ctyport-part_REF.gc b/test/decompiler/reference/jak2/levels/city/port/ctyport-part_REF.gc index be34df110..2c8423486 100644 --- a/test/decompiler/reference/jak2/levels/city/port/ctyport-part_REF.gc +++ b/test/decompiler/reference/jak2/levels/city/port/ctyport-part_REF.gc @@ -36,7 +36,7 @@ :id 930 :flags (unk-4 unk-7) :bounds (static-bspherem 0 0 0 12) - :scale (0.0 0.0 0.0) + :scale (0.625 0.625 0.625) :parts ((sp-item 4148 :fade-after (meters 250) :falloff-to (meters 150) :flags (bit7))) ) diff --git a/test/decompiler/reference/jak2/levels/common/enemy/hover/crimson-guard-hover_REF.gc b/test/decompiler/reference/jak2/levels/common/enemy/hover/crimson-guard-hover_REF.gc index 972fcb695..4ea40b04f 100644 --- a/test/decompiler/reference/jak2/levels/common/enemy/hover/crimson-guard-hover_REF.gc +++ b/test/decompiler/reference/jak2/levels/common/enemy/hover/crimson-guard-hover_REF.gc @@ -9,7 +9,7 @@ :flags (use-local-clock unk-5 unk-6 unk-7) :bounds (static-bspherem 0 0 0 15) :rotate ((degrees 0) (degrees 90) (degrees 0)) - :scale (0.0 16384.0 0.0) + :scale (0.75 0.75 0.75) :parts ((sp-item 744 :flags (bit6) :period 900 :length 5) (sp-item 745 :flags (bit6) :period 900 :length 5) (sp-item 746 :period 900 :length 15) @@ -28,7 +28,7 @@ :flags (use-local-clock unk-5 unk-6 unk-7) :bounds (static-bspherem 0 0 0 15) :rotate ((degrees 0) (degrees 90) (degrees 0)) - :scale (0.0 16384.0 0.0) + :scale (0.3 0.3 0.3) :parts ((sp-item 744 :flags (bit6) :period 900 :length 5) (sp-item 745 :flags (bit6) :period 900 :length 5) (sp-item 746 :period 900 :length 15) diff --git a/test/decompiler/reference/jak2/levels/common/enemy/hover/wasp_REF.gc b/test/decompiler/reference/jak2/levels/common/enemy/hover/wasp_REF.gc index cb0a5ee14..54565b171 100644 --- a/test/decompiler/reference/jak2/levels/common/enemy/hover/wasp_REF.gc +++ b/test/decompiler/reference/jak2/levels/common/enemy/hover/wasp_REF.gc @@ -9,7 +9,7 @@ :flags (use-local-clock unk-5 unk-6 unk-7) :bounds (static-bspherem 0 0 0 15) :rotate ((degrees 0) (degrees 90) (degrees 0)) - :scale (0.0 16384.0 0.0) + :scale (0.25 0.25 0.25) :parts ((sp-item 726 :flags (bit6) :period 900 :length 5) (sp-item 727 :flags (bit6) :period 900 :length 5) (sp-item 728 :period 900 :length 15) diff --git a/test/decompiler/reference/jak2/levels/drill_platform/drill-part_REF.gc b/test/decompiler/reference/jak2/levels/drill_platform/drill-part_REF.gc index d24d1b225..06f9b4934 100644 --- a/test/decompiler/reference/jak2/levels/drill_platform/drill-part_REF.gc +++ b/test/decompiler/reference/jak2/levels/drill_platform/drill-part_REF.gc @@ -466,7 +466,7 @@ :id 404 :flags (unk-4 unk-7) :bounds (static-bspherem 0 0 0 7) - :scale (0.0 0.0 0.0) + :scale (0.6 0.6 0.6) :parts ((sp-item 1687 :fade-after (meters 200) :flags (bit6 bit7)) (sp-item 1688 :fade-after (meters 200) :flags (bit6 bit7)) (sp-item 1689 :fade-after (meters 200) :flags (bit6 bit7)) @@ -478,7 +478,7 @@ :id 405 :flags (unk-4 unk-7) :bounds (static-bspherem 0 0 0 5) - :scale (0.0 0.0 0.0) + :scale (0.7 0.7 0.7) :parts ((sp-item 1687 :fade-after (meters 200) :flags (bit6 bit7)) (sp-item 1688 :fade-after (meters 200) :flags (bit6 bit7)) (sp-item 1689 :fade-after (meters 200) :flags (bit6 bit7)) @@ -2138,7 +2138,7 @@ :flags (unk-4 unk-6 unk-7) :bounds (static-bspherem 0 -2 2 6) :rotate ((degrees 0) (degrees -90) (degrees 0)) - :scale (0.0 -16384.0 0.0) + :scale (0.6 0.6 0.6) :parts ((sp-item 1752 :fade-after (meters 100) :falloff-to (meters 100) :flags (bit7)) (sp-item 1753 :fade-after (meters 200) :falloff-to (meters 240) :flags (bit7)) ) diff --git a/test/decompiler/reference/jak2/levels/forest/forest-obs_REF.gc b/test/decompiler/reference/jak2/levels/forest/forest-obs_REF.gc index c45bc9730..90039bfed 100644 --- a/test/decompiler/reference/jak2/levels/forest/forest-obs_REF.gc +++ b/test/decompiler/reference/jak2/levels/forest/forest-obs_REF.gc @@ -471,7 +471,7 @@ This commonly includes things such as: ;; definition for method 10 of type forest-youngsamos (defmethod deactivate forest-youngsamos ((obj forest-youngsamos)) - (if (valid? (-> obj hud) (the-as type #f) (the-as symbol "") #t 0) + (if (valid? (-> obj hud) (the-as type #f) "" #t 0) (send-event (handle->process (-> obj hud)) 'hide-and-die) ) (sound-stop (the-as sound-id (-> obj sound-id))) diff --git a/test/decompiler/reference/jak2/levels/fortress/rescue/forrescb-part_REF.gc b/test/decompiler/reference/jak2/levels/fortress/rescue/forrescb-part_REF.gc index 50a7e12ab..2a48875b0 100644 --- a/test/decompiler/reference/jak2/levels/fortress/rescue/forrescb-part_REF.gc +++ b/test/decompiler/reference/jak2/levels/fortress/rescue/forrescb-part_REF.gc @@ -275,7 +275,7 @@ :id 664 :flags (unk-4 unk-7) :bounds (static-bspherem 0 0 0 5) - :scale (0.0 0.0 0.0) + :scale (0.8 0.8 0.8) :parts ((sp-item 2904 :fade-after (meters 80) :flags (bit6 bit7) :period 200 :length 100) (sp-item 2905 :fade-after (meters 80) :flags (bit6 bit7) :period 400 :length 100) (sp-item 2906 :fade-after (meters 60) :flags (bit6 bit7) :period 600 :length 300) @@ -376,7 +376,7 @@ :id 665 :flags (unk-4 unk-7) :bounds (static-bspherem 0 0 0 5) - :scale (0.0 0.0 0.0) + :scale (0.85 0.85 0.85) :parts ((sp-item 2908 :fade-after (meters 80) :flags (bit6 bit7) :period 300 :length 150) (sp-item 2909 :fade-after (meters 60) :flags (bit6 bit7) :period 150 :length 50) (sp-item 2910 :fade-after (meters 40) :flags (bit6 bit7) :period 600 :length 300) @@ -474,7 +474,7 @@ :id 667 :flags (unk-4 unk-7) :bounds (static-bspherem 0 0 0 5) - :scale (0.0 0.0 0.0) + :scale (0.8 0.8 0.8) :parts ((sp-item 2911 :fade-after (meters 40) :flags (bit6 bit7) :period 150 :length 75) (sp-item 2912 :fade-after (meters 60) :flags (bit6 bit7) :period 450 :length 50) (sp-item 2913 :fade-after (meters 80) :flags (bit6 bit7) :period 300 :length 225) @@ -788,7 +788,7 @@ :id 669 :flags (unk-4 unk-7) :bounds (static-bspherem 0 0 0 5) - :scale (0.0 0.0 0.0) + :scale (0.8 0.8 0.8) :parts ((sp-item 2923 :fade-after (meters 40) :flags (bit6 bit7) :period 300 :length 150 :offset 150) (sp-item 2924 :fade-after (meters 60) :flags (bit6 bit7) :period 450 :length 150 :offset 150) (sp-item 2925 :fade-after (meters 80) :flags (bit6 bit7) :period 600 :length 150 :offset 300) @@ -1495,7 +1495,7 @@ :id 673 :flags (unk-4 unk-7) :bounds (static-bspherem 0 0 0 5) - :scale (0.0 0.0 0.0) + :scale (0.8 0.8 0.8) :parts ((sp-item 2954 :fade-after (meters 80) :flags (bit6 bit7) :period 200 :length 100) (sp-item 2955 :fade-after (meters 60) :flags (bit6 bit7) :period 400 :length 100) (sp-item 2956 :fade-after (meters 40) :flags (bit6 bit7) :period 600 :length 300) @@ -1619,7 +1619,7 @@ :id 674 :flags (unk-4 unk-7) :bounds (static-bspherem 0 0 0 5) - :scale (0.0 0.0 0.0) + :scale (0.8 0.8 0.8) :parts ((sp-item 2959 :fade-after (meters 80) :flags (bit6 bit7) :period 200 :length 100 :offset 50) (sp-item 2960 :fade-after (meters 60) :flags (bit6 bit7) :period 200 :length 100) (sp-item 2961 :fade-after (meters 40) :flags (bit6 bit7) :period 300 :length 100) @@ -1858,7 +1858,7 @@ :id 675 :flags (unk-4 unk-7) :bounds (static-bspherem 0 0 0 5) - :scale (0.0 0.0 0.0) + :scale (0.8 0.8 0.8) :parts ((sp-item 2969 :fade-after (meters 80) :flags (bit6 bit7) :period 200 :length 100 :offset 100) (sp-item 2970 :fade-after (meters 60) :flags (bit6 bit7) :period 400 :length 150) (sp-item 2971 :fade-after (meters 40) :flags (bit6 bit7) :period 450 :length 125 :offset 85) @@ -2143,7 +2143,7 @@ :id 676 :flags (unk-4 unk-7) :bounds (static-bspherem 0 0 0 5) - :scale (0.0 0.0 0.0) + :scale (0.8 0.8 0.8) :parts ((sp-item 2981 :fade-after (meters 80) :flags (bit6 bit7) :period 200 :length 100 :offset 50) (sp-item 2982 :fade-after (meters 60) :flags (bit6 bit7) :period 300 :length 75 :offset 150) (sp-item 2983 :fade-after (meters 40) :flags (bit6 bit7) :period 350 :length 150 :offset 80) @@ -2290,7 +2290,7 @@ :id 677 :flags (unk-4 unk-7) :bounds (static-bspherem 0 0 0 5) - :scale (0.0 0.0 0.0) + :scale (0.8 0.8 0.8) :parts ((sp-item 2987 :fade-after (meters 80) :flags (bit6 bit7) :period 200 :length 100 :offset 50) (sp-item 2988 :fade-after (meters 60) :flags (bit6 bit7) :period 300 :length 75) (sp-item 2989 :fade-after (meters 40) :flags (bit6 bit7) :period 350 :length 150 :offset 125) @@ -2483,7 +2483,7 @@ :id 678 :flags (unk-4 unk-7) :bounds (static-bspherem 0 0 0 5) - :scale (0.0 0.0 0.0) + :scale (0.8 0.8 0.8) :parts ((sp-item 2995 :fade-after (meters 80) :flags (bit6 bit7) :period 200 :length 100 :offset 50) (sp-item 2996 :fade-after (meters 60) :flags (bit6 bit7) :period 300 :length 75 :offset 150) (sp-item 2997 :fade-after (meters 40) :flags (bit6 bit7) :period 350 :length 150 :offset 80) diff --git a/test/decompiler/reference/jak2/levels/gungame/gun-dummy_REF.gc b/test/decompiler/reference/jak2/levels/gungame/gun-dummy_REF.gc index 77c29c1eb..4f3bb0a97 100644 --- a/test/decompiler/reference/jak2/levels/gungame/gun-dummy_REF.gc +++ b/test/decompiler/reference/jak2/levels/gungame/gun-dummy_REF.gc @@ -63,7 +63,7 @@ :flags (use-local-clock unk-6 unk-7) :bounds (static-bspherem 0 0 0 15) :rotate ((degrees 0) (degrees 90) (degrees 0)) - :scale (0.0 16384.0 0.0) + :scale (1.0 0.83 1.2) :parts ((sp-item 2297 :flags (is-3d bit7) :period 1200 :length 10) (sp-item 2298 :flags (is-3d bit7) :period 1200 :length 15) (sp-item 2299 :flags (bit7) :period 1200 :length 15) @@ -236,7 +236,7 @@ :flags (use-local-clock unk-6 unk-7) :bounds (static-bspherem 0 0 0 15) :rotate ((degrees 0) (degrees 90) (degrees 0)) - :scale (0.0 16384.0 0.0) + :scale (1.0 0.97 0.87) :parts ((sp-item 2304 :flags (is-3d bit7) :period 1200 :length 10) (sp-item 2305 :flags (is-3d bit7) :period 1200 :length 15) (sp-item 2299 :flags (bit7) :period 1200 :length 15) @@ -358,7 +358,7 @@ :flags (use-local-clock unk-6 unk-7) :bounds (static-bspherem 0 0 0 15) :rotate ((degrees 0) (degrees 90) (degrees 0)) - :scale (0.0 16384.0 0.0) + :scale (1.0 0.97 1.27) :parts ((sp-item 2306 :flags (is-3d bit7) :period 1200 :length 10) (sp-item 2307 :flags (is-3d bit7) :period 1200 :length 15) (sp-item 2299 :flags (bit7) :period 1200 :length 15) @@ -480,7 +480,7 @@ :flags (use-local-clock unk-6 unk-7) :bounds (static-bspherem 0 0 0 15) :rotate ((degrees 0) (degrees 90) (degrees 0)) - :scale (0.0 16384.0 0.0) + :scale (1.0 1.13 1.3) :parts ((sp-item 2308 :flags (is-3d bit7) :period 1200 :length 10) (sp-item 2309 :flags (is-3d bit7) :period 1200 :length 15) (sp-item 2299 :flags (bit7) :period 1200 :length 15) @@ -602,7 +602,7 @@ :flags (use-local-clock unk-6 unk-7) :bounds (static-bspherem 0 0 0 15) :rotate ((degrees 0) (degrees 90) (degrees 0)) - :scale (0.0 16384.0 0.0) + :scale (1.0 0.83 1.2) :parts ((sp-item 2310 :flags (is-3d bit7) :period 1200 :length 10) (sp-item 2311 :flags (is-3d bit7) :period 1200 :length 15) (sp-item 2312 :flags (bit7) :period 1200 :length 15) @@ -775,7 +775,7 @@ :flags (use-local-clock unk-6 unk-7) :bounds (static-bspherem 0 0 0 15) :rotate ((degrees 0) (degrees 90) (degrees 0)) - :scale (0.0 16384.0 0.0) + :scale (1.0 0.83 1.2) :parts ((sp-item 2314 :flags (is-3d bit7) :period 1200 :length 10) (sp-item 2315 :flags (is-3d bit7) :period 1200 :length 15) (sp-item 2316 :flags (bit7) :period 1200 :length 15) @@ -948,7 +948,7 @@ :flags (use-local-clock unk-6 unk-7) :bounds (static-bspherem 0 0 0 15) :rotate ((degrees 0) (degrees 90) (degrees 0)) - :scale (0.0 16384.0 0.0) + :scale (1.0 0.73 0.97) :parts ((sp-item 2318 :flags (is-3d bit7) :period 1200 :length 10) (sp-item 2319 :flags (is-3d bit7) :period 1200 :length 15) (sp-item 2320 :flags (bit7) :period 1200 :length 15) @@ -1210,7 +1210,7 @@ :flags (use-local-clock unk-6 unk-7) :bounds (static-bspherem 0 0 0 15) :rotate ((degrees 0) (degrees 90) (degrees 0)) - :scale (0.0 16384.0 0.0) + :scale (1.0 0.6 0.43) :parts ((sp-item 2323 :flags (is-3d bit7) :period 1200 :length 10) (sp-item 2324 :flags (is-3d bit7) :period 1200 :length 15) (sp-item 2320 :flags (bit7) :period 1200 :length 15) @@ -1332,7 +1332,7 @@ :flags (use-local-clock unk-6 unk-7) :bounds (static-bspherem 0 0 0 15) :rotate ((degrees 0) (degrees 90) (degrees 0)) - :scale (0.0 16384.0 0.0) + :scale (1.0 0.9 0.67) :parts ((sp-item 2325 :flags (is-3d bit7) :period 1200 :length 10) (sp-item 2326 :flags (is-3d bit7) :period 1200 :length 15) (sp-item 2320 :flags (bit7) :period 1200 :length 15) @@ -1454,7 +1454,7 @@ :flags (use-local-clock unk-6 unk-7) :bounds (static-bspherem 0 0 0 15) :rotate ((degrees 0) (degrees 90) (degrees 0)) - :scale (0.0 16384.0 0.0) + :scale (1.0 1.07 0.6) :parts ((sp-item 2327 :flags (is-3d bit7) :period 1200 :length 10) (sp-item 2328 :flags (is-3d bit7) :period 1200 :length 15) (sp-item 2320 :flags (bit7) :period 1200 :length 15) diff --git a/test/decompiler/reference/jak2/levels/mars_tomb/tomb-part_REF.gc b/test/decompiler/reference/jak2/levels/mars_tomb/tomb-part_REF.gc index d2cdef0ae..998650d7a 100644 --- a/test/decompiler/reference/jak2/levels/mars_tomb/tomb-part_REF.gc +++ b/test/decompiler/reference/jak2/levels/mars_tomb/tomb-part_REF.gc @@ -67,7 +67,7 @@ :id 687 :flags (unk-7) :bounds (static-bspherem 0 3 0 16) - :scale (0.0 0.0 0.0) + :scale (1.4 2.0 1.4) :parts ((sp-item 3069 :fade-after (meters 200) :falloff-to (meters 200) :flags (bit7)) (sp-item 3070 :fade-after (meters 250) :falloff-to (meters 250) :flags (bit7) :period 105 :length 45) (sp-item 3071 :fade-after (meters 250) :falloff-to (meters 250) :flags (bit7) :period 130 :length 35 :offset 20) @@ -190,7 +190,7 @@ :flags (unk-6 unk-7) :bounds (static-bspherem 0 3 0 16) :rotate ((degrees 0) (degrees 87) (degrees 0)) - :scale (0.0 15837.866 0.0) + :scale (0.9 0.7 1.2) :parts ((sp-item 3069 :fade-after (meters 200) :falloff-to (meters 200) :flags (bit7)) (sp-item 3070 :fade-after (meters 250) :falloff-to (meters 250) :flags (bit7) :period 115 :length 40) (sp-item 3071 :fade-after (meters 250) :falloff-to (meters 250) :flags (bit7) :period 175 :length 45 :offset 20) @@ -212,7 +212,7 @@ :flags (unk-6 unk-7) :bounds (static-bspherem 0 3 0 16) :rotate ((degrees 0) (degrees 223) (degrees 0)) - :scale (0.0 40595.91 0.0) + :scale (1.0 1.25 0.8) :parts ((sp-item 3069 :fade-after (meters 200) :falloff-to (meters 200) :flags (bit7)) (sp-item 3070 :fade-after (meters 250) :falloff-to (meters 250) :flags (bit7) :period 125 :length 40) (sp-item 3071 :fade-after (meters 250) :falloff-to (meters 250) :flags (bit7) :period 190 :length 45 :offset 20) @@ -233,7 +233,7 @@ :id 691 :flags (unk-7) :bounds (static-bspherem 0 3 0 16) - :scale (0.0 0.0 0.0) + :scale (0.5 0.5 0.5) :parts ((sp-item 3069 :fade-after (meters 50) :falloff-to (meters 200) :flags (bit7)) (sp-item 3070 :fade-after (meters 100) :falloff-to (meters 250) :flags (bit7) :period 125 :length 40) (sp-item 3071 :fade-after (meters 100) :falloff-to (meters 250) :flags (bit7) :period 190 :length 45 :offset 20) @@ -468,7 +468,7 @@ :id 692 :flags (unk-7) :bounds (static-bspherem 0 2 0 6) - :scale (0.0 0.0 0.0) + :scale (0.3 0.5 0.3) :parts ((sp-item 3083 :fade-after (meters 100) :falloff-to (meters 100) :flags (bit7)) (sp-item 3084 :fade-after (meters 250) :falloff-to (meters 250) :flags (bit7) :period 100 :length 50) (sp-item 3085 :fade-after (meters 150) :falloff-to (meters 150) :flags (bit7) :period 120 :length 55 :offset 20) @@ -492,7 +492,7 @@ :flags (unk-6 unk-7) :bounds (static-bspherem 0 2 0 6) :rotate ((degrees 0) (degrees 63) (degrees 0)) - :scale (0.0 11468.8 0.0) + :scale (0.25 0.6 0.35) :parts ((sp-item 3083 :fade-after (meters 100) :falloff-to (meters 100) :flags (bit7)) (sp-item 3084 :fade-after (meters 250) :falloff-to (meters 250) :flags (bit7) :period 90 :length 50) (sp-item 3085 :fade-after (meters 150) :falloff-to (meters 150) :flags (bit7) :period 160 :length 55 :offset 20) @@ -516,7 +516,7 @@ :flags (unk-6 unk-7) :bounds (static-bspherem 0 2 0 6) :rotate ((degrees 0) (degrees 173) (degrees 0)) - :scale (0.0 31493.69 0.0) + :scale (0.325 0.4 0.275) :parts ((sp-item 3083 :fade-after (meters 100) :falloff-to (meters 100) :flags (bit7)) (sp-item 3084 :fade-after (meters 250) :falloff-to (meters 250) :flags (bit7) :period 125 :length 50) (sp-item 3085 :fade-after (meters 150) :falloff-to (meters 150) :flags (bit7) :period 145 :length 55 :offset 20) diff --git a/test/decompiler/reference/jak2/levels/stadium/stadium-obs_REF.gc b/test/decompiler/reference/jak2/levels/stadium/stadium-obs_REF.gc index 47b2b2522..4a2317025 100644 --- a/test/decompiler/reference/jak2/levels/stadium/stadium-obs_REF.gc +++ b/test/decompiler/reference/jak2/levels/stadium/stadium-obs_REF.gc @@ -2280,7 +2280,7 @@ This commonly includes things such as: ;; definition for method 10 of type stad-samos (defmethod deactivate stad-samos ((obj stad-samos)) - (if (valid? (-> obj hud) (the-as type #f) (the-as symbol "") #t 0) + (if (valid? (-> obj hud) (the-as type #f) "" #t 0) (send-event (handle->process (-> obj hud)) 'hide-and-die) ) (kill-lightning obj) diff --git a/test/decompiler/reference/jak2/levels/underport/under-part_REF.gc b/test/decompiler/reference/jak2/levels/underport/under-part_REF.gc index a29e8a5b0..fa11a9ef7 100644 --- a/test/decompiler/reference/jak2/levels/underport/under-part_REF.gc +++ b/test/decompiler/reference/jak2/levels/underport/under-part_REF.gc @@ -642,7 +642,7 @@ :id 507 :flags (unk-7) :bounds (static-bspherem 0 2 0 6) - :scale (0.0 0.0 0.0) + :scale (0.3 0.5 0.3) :parts ((sp-item 2234 :fade-after (meters 100) :falloff-to (meters 100) :flags (bit7)) (sp-item 2235 :fade-after (meters 250) :falloff-to (meters 250) :flags (bit7) :period 100 :length 50) (sp-item 2236 :fade-after (meters 150) :falloff-to (meters 150) :flags (bit7) :period 120 :length 55 :offset 20)