From e3473c1902ded5d5e98b243d68b782f7b35e01c7 Mon Sep 17 00:00:00 2001 From: Tyler Wilding Date: Tue, 11 Oct 2022 23:20:36 -0400 Subject: [PATCH] d/jak2: finish `cty-guard-turret-button` | `race-h` | `height-map-h` and a lot of `rigid-body` (#1957) Also cleaned up `data_decompiler.cpp` to make it a lot less verbose to add a special case for an array field. --- .gitignore | 1 + decompiler/config/jak2/all-types.gc | 289 +- decompiler/config/jak2/hacks.jsonc | 1 + decompiler/config/jak2/inputs.jsonc | 2 +- decompiler/config/jak2/stack_structures.jsonc | 4 +- decompiler/config/jak2/type_casts.jsonc | 23 +- decompiler/util/data_decompile.cpp | 284 +- decompiler/util/data_decompile.h | 18 + goal_src/jak2/dgos/art.gd | 33 + goal_src/jak2/dgos/ate.gd | 47 + goal_src/jak2/dgos/ato.gd | 24 + goal_src/jak2/dgos/cab.gd | 19 + goal_src/jak2/dgos/cap.gd | 16 + goal_src/jak2/dgos/cas.gd | 30 + goal_src/jak2/dgos/cascity.gd | 8 + goal_src/jak2/dgos/casext.gd | 13 + goal_src/jak2/dgos/cfa.gd | 22 + goal_src/jak2/dgos/cfb.gd | 21 + goal_src/jak2/dgos/cga.gd | 10 + goal_src/jak2/dgos/cgb.gd | 11 + goal_src/jak2/dgos/cgc.gd | 9 + goal_src/jak2/dgos/cia.gd | 10 + goal_src/jak2/dgos/cib.gd | 11 + goal_src/jak2/dgos/cma.gd | 19 + goal_src/jak2/dgos/cmb.gd | 19 + goal_src/jak2/dgos/coa.gd | 25 + goal_src/jak2/dgos/cob.gd | 15 + goal_src/jak2/dgos/common.gd | 2 +- goal_src/jak2/dgos/cpa.gd | 16 + goal_src/jak2/dgos/cpo.gd | 14 + goal_src/jak2/dgos/cta.gd | 2 +- goal_src/jak2/dgos/ctb.gd | 12 + goal_src/jak2/dgos/ctc.gd | 11 + goal_src/jak2/dgos/ctyasha.gd | 33 + goal_src/jak2/dgos/ctykora.gd | 35 + goal_src/jak2/dgos/cwi.gd | 2 +- goal_src/jak2/dgos/d3a.gd | 49 + goal_src/jak2/dgos/d3b.gd | 9 + goal_src/jak2/dgos/demo.gd | 10 + goal_src/jak2/dgos/dg1.gd | 33 + goal_src/jak2/dgos/dmi.gd | 43 + goal_src/jak2/dgos/drb.gd | 12 + goal_src/jak2/dgos/dri.gd | 23 + goal_src/jak2/dgos/drillmtn.gd | 34 + goal_src/jak2/dgos/fda.gd | 23 + goal_src/jak2/dgos/fdb.gd | 20 + goal_src/jak2/dgos/fea.gd | 14 + goal_src/jak2/dgos/feb.gd | 15 + goal_src/jak2/dgos/fob.gd | 16 + goal_src/jak2/dgos/for.gd | 42 + goal_src/jak2/dgos/fordumpc.gd | 25 + goal_src/jak2/dgos/fordumpd.gd | 8 + goal_src/jak2/dgos/fra.gd | 29 + goal_src/jak2/dgos/frb.gd | 17 + goal_src/jak2/dgos/game.gd | 2 +- goal_src/jak2/dgos/garage.gd | 20 + goal_src/jak2/dgos/gga.gd | 27 + goal_src/jak2/dgos/halfpipe.gd | 8 + goal_src/jak2/dgos/hideout.gd | 18 + goal_src/jak2/dgos/hiphog.gd | 24 + goal_src/jak2/dgos/introcst.gd | 25 + goal_src/jak2/dgos/kernel.gd | 2 +- goal_src/jak2/dgos/kiosk.gd | 15 + goal_src/jak2/dgos/lashgrd.gd | 8 + goal_src/jak2/dgos/lashthrn.gd | 7 + goal_src/jak2/dgos/lbbush.gd | 8 + goal_src/jak2/dgos/lbombbot.gd | 8 + goal_src/jak2/dgos/lbrnermk.gd | 10 + goal_src/jak2/dgos/lcguard.gd | 5 + goal_src/jak2/dgos/lcitylow.gd | 9 + goal_src/jak2/dgos/ldjakbrn.gd | 10 + goal_src/jak2/dgos/lerbrngd.gd | 9 + goal_src/jak2/dgos/lerlchal.gd | 17 + goal_src/jak2/dgos/lerltess.gd | 9 + goal_src/jak2/dgos/lerrol.gd | 5 + goal_src/jak2/dgos/lgarcsta.gd | 11 + goal_src/jak2/dgos/lguard.gd | 13 + goal_src/jak2/dgos/lhelldog.gd | 7 + goal_src/jak2/dgos/lhipout.gd | 18 + goal_src/jak2/dgos/lintcstb.gd | 10 + goal_src/jak2/dgos/ljakdax.gd | 6 + goal_src/jak2/dgos/ljkdxash.gd | 8 + goal_src/jak2/dgos/lkeirift.gd | 8 + goal_src/jak2/dgos/lkiddoge.gd | 24 + goal_src/jak2/dgos/lmeetbrt.gd | 7 + goal_src/jak2/dgos/loutcstb.gd | 16 + goal_src/jak2/dgos/lpackage.gd | 6 + goal_src/jak2/dgos/lportrun.gd | 10 + goal_src/jak2/dgos/lpower.gd | 6 + goal_src/jak2/dgos/lprotect.gd | 10 + goal_src/jak2/dgos/lprsncst.gd | 9 + goal_src/jak2/dgos/lprtrace.gd | 15 + goal_src/jak2/dgos/lracebb.gd | 3 + goal_src/jak2/dgos/lracebf.gd | 3 + goal_src/jak2/dgos/lracecb.gd | 4 + goal_src/jak2/dgos/lracecf.gd | 4 + goal_src/jak2/dgos/lracedb.gd | 3 + goal_src/jak2/dgos/lracedf.gd | 3 + goal_src/jak2/dgos/lracelit.gd | 8 + goal_src/jak2/dgos/lsack.gd | 6 + goal_src/jak2/dgos/lsamergd.gd | 10 + goal_src/jak2/dgos/lshuttle.gd | 7 + goal_src/jak2/dgos/lsmysbrt.gd | 8 + goal_src/jak2/dgos/ltentob.gd | 8 + goal_src/jak2/dgos/ltentout.gd | 7 + goal_src/jak2/dgos/ltess.gd | 13 + goal_src/jak2/dgos/lthrnout.gd | 8 + goal_src/jak2/dgos/ltrnkrkd.gd | 9 + goal_src/jak2/dgos/ltrntess.gd | 11 + goal_src/jak2/dgos/ltrnysam.gd | 8 + goal_src/jak2/dgos/lwhack.gd | 14 + goal_src/jak2/dgos/lwidea.gd | 2 +- goal_src/jak2/dgos/lwideb.gd | 13 + goal_src/jak2/dgos/lwidec.gd | 17 + goal_src/jak2/dgos/lwidesta.gd | 13 + goal_src/jak2/dgos/lysamsam.gd | 7 + goal_src/jak2/dgos/lyskdcd.gd | 13 + goal_src/jak2/dgos/mcn.gd | 22 + goal_src/jak2/dgos/mtn.gd | 35 + goal_src/jak2/dgos/mtx.gd | 31 + goal_src/jak2/dgos/neb.gd | 58 + goal_src/jak2/dgos/nes.gd | 26 + goal_src/jak2/dgos/nestt.gd | 26 + goal_src/jak2/dgos/onintent.gd | 19 + goal_src/jak2/dgos/oracle.gd | 17 + goal_src/jak2/dgos/outrocst.gd | 23 + goal_src/jak2/dgos/pac.gd | 24 + goal_src/jak2/dgos/pae.gd | 24 + goal_src/jak2/dgos/palboss.gd | 19 + goal_src/jak2/dgos/palout.gd | 6 + goal_src/jak2/dgos/par.gd | 18 + goal_src/jak2/dgos/pas.gd | 11 + goal_src/jak2/dgos/portwall.gd | 6 + goal_src/jak2/dgos/pri.gd | 2 - goal_src/jak2/dgos/rui.gd | 50 + goal_src/jak2/dgos/sag.gd | 18 + goal_src/jak2/dgos/seb.gd | 45 + goal_src/jak2/dgos/sew.gd | 27 + goal_src/jak2/dgos/ska.gd | 13 + goal_src/jak2/dgos/sta.gd | 18 + goal_src/jak2/dgos/stadblmp.gd | 20 + goal_src/jak2/dgos/stb.gd | 25 + goal_src/jak2/dgos/stc.gd | 25 + goal_src/jak2/dgos/std.gd | 25 + goal_src/jak2/dgos/str.gd | 52 + goal_src/jak2/dgos/swb.gd | 44 + goal_src/jak2/dgos/swe.gd | 26 + goal_src/jak2/dgos/tbo.gd | 21 + goal_src/jak2/dgos/thr.gd | 13 + goal_src/jak2/dgos/title.gd | 9 + goal_src/jak2/dgos/toa.gd | 30 + goal_src/jak2/dgos/tob.gd | 15 + goal_src/jak2/dgos/toc.gd | 16 + goal_src/jak2/dgos/tod.gd | 18 + goal_src/jak2/dgos/toe.gd | 14 + goal_src/jak2/dgos/tombext.gd | 7 + goal_src/jak2/dgos/unb.gd | 93 + goal_src/jak2/dgos/und.gd | 23 + goal_src/jak2/dgos/vin.gd | 28 + goal_src/jak2/engine/ai/enemy-h.gc | 2 + .../jak2/engine/collide/collide-shape-h.gc | 57 +- .../jak2/engine/collide/collide-touch-h.gc | 10 +- .../jak2/engine/common_objs/basebutton.gc | 2 +- goal_src/jak2/engine/common_objs/plat.gc | 2 +- goal_src/jak2/engine/game/game-h.gc | 10 +- goal_src/jak2/engine/physics/rigid-body-h.gc | 138 +- goal_src/jak2/engine/physics/rigid-body.gc | 1005 ++ .../process-drawable/process-focusable.gc | 5 +- goal_src/jak2/engine/sound/speech-h.gc | 11 +- goal_src/jak2/game.gp | 6 + .../jak2/levels/city/common/height-map-h.gc | 35 + .../jak2/levels/city/common/nav-graph-h.gc | 6 +- .../levels/city/common/traffic-height-map.gc | 8972 ++++++++++++++++ goal_src/jak2/levels/city/common/vehicle-h.gc | 4 +- goal_src/jak2/levels/common/races/race-h.gc | 182 + .../jak2/levels/common/races/race-info.gc | 1 - goalc/compiler/compilation/Static.cpp | 22 +- .../skeleton_creation/generated-dgo-files.py | 38 + test/CMakeLists.txt | 2 +- .../engine/collide/collide-shape-h_REF.gc | 54 +- .../engine/collide/collide-touch-h_REF.gc | 6 +- .../jak2/engine/common_objs/basebutton_REF.gc | 2 +- .../jak2/engine/common_objs/plat_REF.gc | 2 +- .../reference/jak2/engine/game/game-h_REF.gc | 2 +- .../jak2/engine/math/quaternion-h_REF.gc | 4 - .../jak2/engine/physics/rigid-body-h_REF.gc | 140 +- .../jak2/engine/physics/rigid-body_REF.gc | 1131 +++ .../process-drawable/process-focusable_REF.gc | 6 +- .../jak2/engine/sound/speech-h_REF.gc | 8 +- .../levels/city/common/height-map-h_REF.gc | 62 + .../levels/city/common/nav-graph-h_REF.gc | 6 +- .../city/common/traffic-height-map_REF.gc | 8978 +++++++++++++++++ .../jak2/levels/city/common/vehicle-h_REF.gc | 4 +- .../common/cty-guard-turret-button_REF.gc | 189 + .../jak2/levels/common/races/race-h_REF.gc | 357 + test/decompiler/test_FormExpressionBuild.cpp | 2 +- test/offline/config/jak2/config.jsonc | 9 +- 197 files changed, 24065 insertions(+), 614 deletions(-) create mode 100644 goal_src/jak2/dgos/art.gd create mode 100644 goal_src/jak2/dgos/ate.gd create mode 100644 goal_src/jak2/dgos/ato.gd create mode 100644 goal_src/jak2/dgos/cab.gd create mode 100644 goal_src/jak2/dgos/cap.gd create mode 100644 goal_src/jak2/dgos/cas.gd create mode 100644 goal_src/jak2/dgos/cascity.gd create mode 100644 goal_src/jak2/dgos/casext.gd create mode 100644 goal_src/jak2/dgos/cfa.gd create mode 100644 goal_src/jak2/dgos/cfb.gd create mode 100644 goal_src/jak2/dgos/cga.gd create mode 100644 goal_src/jak2/dgos/cgb.gd create mode 100644 goal_src/jak2/dgos/cgc.gd create mode 100644 goal_src/jak2/dgos/cia.gd create mode 100644 goal_src/jak2/dgos/cib.gd create mode 100644 goal_src/jak2/dgos/cma.gd create mode 100644 goal_src/jak2/dgos/cmb.gd create mode 100644 goal_src/jak2/dgos/coa.gd create mode 100644 goal_src/jak2/dgos/cob.gd create mode 100644 goal_src/jak2/dgos/cpa.gd create mode 100644 goal_src/jak2/dgos/cpo.gd create mode 100644 goal_src/jak2/dgos/ctb.gd create mode 100644 goal_src/jak2/dgos/ctc.gd create mode 100644 goal_src/jak2/dgos/ctyasha.gd create mode 100644 goal_src/jak2/dgos/ctykora.gd create mode 100644 goal_src/jak2/dgos/d3a.gd create mode 100644 goal_src/jak2/dgos/d3b.gd create mode 100644 goal_src/jak2/dgos/demo.gd create mode 100644 goal_src/jak2/dgos/dg1.gd create mode 100644 goal_src/jak2/dgos/dmi.gd create mode 100644 goal_src/jak2/dgos/drb.gd create mode 100644 goal_src/jak2/dgos/dri.gd create mode 100644 goal_src/jak2/dgos/drillmtn.gd create mode 100644 goal_src/jak2/dgos/fda.gd create mode 100644 goal_src/jak2/dgos/fdb.gd create mode 100644 goal_src/jak2/dgos/fea.gd create mode 100644 goal_src/jak2/dgos/feb.gd create mode 100644 goal_src/jak2/dgos/fob.gd create mode 100644 goal_src/jak2/dgos/for.gd create mode 100644 goal_src/jak2/dgos/fordumpc.gd create mode 100644 goal_src/jak2/dgos/fordumpd.gd create mode 100644 goal_src/jak2/dgos/fra.gd create mode 100644 goal_src/jak2/dgos/frb.gd create mode 100644 goal_src/jak2/dgos/garage.gd create mode 100644 goal_src/jak2/dgos/gga.gd create mode 100644 goal_src/jak2/dgos/halfpipe.gd create mode 100644 goal_src/jak2/dgos/hideout.gd create mode 100644 goal_src/jak2/dgos/hiphog.gd create mode 100644 goal_src/jak2/dgos/introcst.gd create mode 100644 goal_src/jak2/dgos/kiosk.gd create mode 100644 goal_src/jak2/dgos/lashgrd.gd create mode 100644 goal_src/jak2/dgos/lashthrn.gd create mode 100644 goal_src/jak2/dgos/lbbush.gd create mode 100644 goal_src/jak2/dgos/lbombbot.gd create mode 100644 goal_src/jak2/dgos/lbrnermk.gd create mode 100644 goal_src/jak2/dgos/lcguard.gd create mode 100644 goal_src/jak2/dgos/lcitylow.gd create mode 100644 goal_src/jak2/dgos/ldjakbrn.gd create mode 100644 goal_src/jak2/dgos/lerbrngd.gd create mode 100644 goal_src/jak2/dgos/lerlchal.gd create mode 100644 goal_src/jak2/dgos/lerltess.gd create mode 100644 goal_src/jak2/dgos/lerrol.gd create mode 100644 goal_src/jak2/dgos/lgarcsta.gd create mode 100644 goal_src/jak2/dgos/lguard.gd create mode 100644 goal_src/jak2/dgos/lhelldog.gd create mode 100644 goal_src/jak2/dgos/lhipout.gd create mode 100644 goal_src/jak2/dgos/lintcstb.gd create mode 100644 goal_src/jak2/dgos/ljakdax.gd create mode 100644 goal_src/jak2/dgos/ljkdxash.gd create mode 100644 goal_src/jak2/dgos/lkeirift.gd create mode 100644 goal_src/jak2/dgos/lkiddoge.gd create mode 100644 goal_src/jak2/dgos/lmeetbrt.gd create mode 100644 goal_src/jak2/dgos/loutcstb.gd create mode 100644 goal_src/jak2/dgos/lpackage.gd create mode 100644 goal_src/jak2/dgos/lportrun.gd create mode 100644 goal_src/jak2/dgos/lpower.gd create mode 100644 goal_src/jak2/dgos/lprotect.gd create mode 100644 goal_src/jak2/dgos/lprsncst.gd create mode 100644 goal_src/jak2/dgos/lprtrace.gd create mode 100644 goal_src/jak2/dgos/lracebb.gd create mode 100644 goal_src/jak2/dgos/lracebf.gd create mode 100644 goal_src/jak2/dgos/lracecb.gd create mode 100644 goal_src/jak2/dgos/lracecf.gd create mode 100644 goal_src/jak2/dgos/lracedb.gd create mode 100644 goal_src/jak2/dgos/lracedf.gd create mode 100644 goal_src/jak2/dgos/lracelit.gd create mode 100644 goal_src/jak2/dgos/lsack.gd create mode 100644 goal_src/jak2/dgos/lsamergd.gd create mode 100644 goal_src/jak2/dgos/lshuttle.gd create mode 100644 goal_src/jak2/dgos/lsmysbrt.gd create mode 100644 goal_src/jak2/dgos/ltentob.gd create mode 100644 goal_src/jak2/dgos/ltentout.gd create mode 100644 goal_src/jak2/dgos/ltess.gd create mode 100644 goal_src/jak2/dgos/lthrnout.gd create mode 100644 goal_src/jak2/dgos/ltrnkrkd.gd create mode 100644 goal_src/jak2/dgos/ltrntess.gd create mode 100644 goal_src/jak2/dgos/ltrnysam.gd create mode 100644 goal_src/jak2/dgos/lwhack.gd create mode 100644 goal_src/jak2/dgos/lwideb.gd create mode 100644 goal_src/jak2/dgos/lwidec.gd create mode 100644 goal_src/jak2/dgos/lwidesta.gd create mode 100644 goal_src/jak2/dgos/lysamsam.gd create mode 100644 goal_src/jak2/dgos/lyskdcd.gd create mode 100644 goal_src/jak2/dgos/mcn.gd create mode 100644 goal_src/jak2/dgos/mtn.gd create mode 100644 goal_src/jak2/dgos/mtx.gd create mode 100644 goal_src/jak2/dgos/neb.gd create mode 100644 goal_src/jak2/dgos/nes.gd create mode 100644 goal_src/jak2/dgos/nestt.gd create mode 100644 goal_src/jak2/dgos/onintent.gd create mode 100644 goal_src/jak2/dgos/oracle.gd create mode 100644 goal_src/jak2/dgos/outrocst.gd create mode 100644 goal_src/jak2/dgos/pac.gd create mode 100644 goal_src/jak2/dgos/pae.gd create mode 100644 goal_src/jak2/dgos/palboss.gd create mode 100644 goal_src/jak2/dgos/palout.gd create mode 100644 goal_src/jak2/dgos/par.gd create mode 100644 goal_src/jak2/dgos/pas.gd create mode 100644 goal_src/jak2/dgos/portwall.gd create mode 100644 goal_src/jak2/dgos/rui.gd create mode 100644 goal_src/jak2/dgos/sag.gd create mode 100644 goal_src/jak2/dgos/seb.gd create mode 100644 goal_src/jak2/dgos/sew.gd create mode 100644 goal_src/jak2/dgos/ska.gd create mode 100644 goal_src/jak2/dgos/sta.gd create mode 100644 goal_src/jak2/dgos/stadblmp.gd create mode 100644 goal_src/jak2/dgos/stb.gd create mode 100644 goal_src/jak2/dgos/stc.gd create mode 100644 goal_src/jak2/dgos/std.gd create mode 100644 goal_src/jak2/dgos/str.gd create mode 100644 goal_src/jak2/dgos/swb.gd create mode 100644 goal_src/jak2/dgos/swe.gd create mode 100644 goal_src/jak2/dgos/tbo.gd create mode 100644 goal_src/jak2/dgos/thr.gd create mode 100644 goal_src/jak2/dgos/title.gd create mode 100644 goal_src/jak2/dgos/toa.gd create mode 100644 goal_src/jak2/dgos/tob.gd create mode 100644 goal_src/jak2/dgos/toc.gd create mode 100644 goal_src/jak2/dgos/tod.gd create mode 100644 goal_src/jak2/dgos/toe.gd create mode 100644 goal_src/jak2/dgos/tombext.gd create mode 100644 goal_src/jak2/dgos/unb.gd create mode 100644 goal_src/jak2/dgos/und.gd create mode 100644 goal_src/jak2/dgos/vin.gd create mode 100644 scripts/gsrc/skeleton_creation/generated-dgo-files.py create mode 100644 test/decompiler/reference/jak2/engine/physics/rigid-body_REF.gc create mode 100644 test/decompiler/reference/jak2/levels/city/common/height-map-h_REF.gc create mode 100644 test/decompiler/reference/jak2/levels/city/common/traffic-height-map_REF.gc create mode 100644 test/decompiler/reference/jak2/levels/common/cty-guard-turret-button_REF.gc create mode 100644 test/decompiler/reference/jak2/levels/common/races/race-h_REF.gc diff --git a/.gitignore b/.gitignore index 9b86280e0..906aec345 100644 --- a/.gitignore +++ b/.gitignore @@ -28,6 +28,7 @@ savestate_out/ failures/ ee-results*.json .env +/search-results.json # graphics debug debug_out/* diff --git a/decompiler/config/jak2/all-types.gc b/decompiler/config/jak2/all-types.gc index 38513e68e..9a8375696 100644 --- a/decompiler/config/jak2/all-types.gc +++ b/decompiler/config/jak2/all-types.gc @@ -13001,7 +13001,7 @@ (max-delay uint16) (delay uint16) (play-index int16) - (list basic) + (list (array string)) ) :method-count-assert 9 :size-assert #x14 @@ -13043,7 +13043,6 @@ :method-count-assert 14 :size-assert #x64 :flag-assert #xe00000064 - ;; Failed to read fields. (:methods (speech-channel-method-9 () none 9) (speech-channel-method-10 () none 10) @@ -13056,14 +13055,14 @@ (deftype speech-control (structure) ((channel-array speech-channel 2 :inline :offset-assert 0) - (speech-table uint32 57 :offset-assert 224) ;; guess + (speech-table speech-type-info 57 :offset-assert 224) ;; guess ) :method-count-assert 17 :size-assert #x1c4 :flag-assert #x11000001c4 (:methods (speech-control-method-9 () none 9) - (speech-control-method-10 () none 10) + (speech-control-method-10 (_type_ int speech-type-info) none 10) (speech-control-method-11 (_type_) none 11) (speech-control-method-12 () none 12) (speech-control-method-13 () none 13) @@ -14667,6 +14666,7 @@ (sf31 31) ) +(declare-type rigid-body-control basic) (deftype process-drawable (process) ((root trsqv :offset-assert 128) ;; guessed by decompiler (node-list cspace-array :offset-assert 132) ;; guessed by decompiler @@ -14682,7 +14682,7 @@ (water water-control :offset-assert 172) ;; guessed by decompiler (sound ambient-sound :offset-assert 176) ;; guessed by decompiler (carry basic :offset-assert 180) - (rbody basic :offset-assert 184) + (rbody rigid-body-control :offset-assert 184) (state-flags state-flags :offset-assert 188) ;; guessed by decompiler (state-time time-frame :offset-assert 192) ;; time-frame ) @@ -16063,25 +16063,24 @@ ;; ---collide-shape-h:nav-flags (declare-type collide-query structure) - (deftype collide-shape (trsqv) - ((actor-hash-index int16 :offset 12) - (process process-drawable :offset-assert 140) - (max-iteration-count uint8) - (nav-flags nav-flags) - (total-prims uint8) - (num-riders uint8) - (pat-ignore-mask pat-surface) - (event-self symbol) - (event-other symbol) - (root-prim collide-shape-prim) - (riders pointer) ;; no - (penetrate-using penetrate) - (penetrated-by penetrate) - (backup-collide-as collide-spec) - (backup-collide-with collide-spec) - (event-priority uint8) - (rider-max-momentum float) + ((actor-hash-index int16 :offset 12) + (process process-drawable :offset-assert 140) + (max-iteration-count uint8 :offset-assert 144) + (nav-flags nav-flags :offset-assert 145) + (total-prims uint8 :offset-assert 146) + (num-riders uint8 :offset-assert 147) + (pat-ignore-mask pat-surface :offset-assert 148) + (event-self symbol :offset-assert 152) + (event-other symbol :offset-assert 156) + (root-prim collide-shape-prim :offset-assert 160) + (riders pointer :offset-assert 164) ;; no + (penetrate-using penetrate :offset-assert 168) + (penetrated-by penetrate :offset-assert 176) + (backup-collide-as collide-spec :offset-assert 184) + (backup-collide-with collide-spec :offset-assert 188) + (event-priority uint8 :offset-assert 192) + (rider-max-momentum float :offset-assert 196) ) :method-count-assert 55 :size-assert #xc8 @@ -16115,7 +16114,7 @@ (collide-shape-method-51 () none 51) ;; (set-root-prim-collide-with! (_type_ collide-kind) none 51) (collide-shape-method-52 () none 52) ;; (set-root-prim-collide-as! (_type_ collide-kind) none 52) (collide-shape-method-53 () none 53) ;; (set-collide-kinds (_type_ int collide-kind collide-kind) none 53) - (collide-shape-method-54 () none 54) ;; (set-collide-offense (_type_ int collide-offense) none 54) + (collide-shape-method-54 (_type_) none 54) ;; (set-collide-offense (_type_ int collide-offense) none 54) ) ) @@ -16192,7 +16191,7 @@ ) (declare-type collide-query structure) - +(declare-type control-info basic) (deftype collide-shape-moving (collide-shape) ((rider-time time-frame :offset-assert 200) (rider-last-move vector :inline) @@ -16204,7 +16203,7 @@ (old-status cshape-moving-flags) (prev-status cshape-moving-flags :offset-assert 304) (reaction-flag cshape-reaction-flags) - (reaction function) ;; function types... + (reaction (function control-info collide-query vector vector cshape-moving-flags)) ;; function types... (no-reaction function) (local-normal vector :inline) (surface-normal vector :inline) @@ -16802,6 +16801,7 @@ :flag-assert #x900000068 ) +(declare-type touching-shapes-entry structure) (deftype touching-prims-entry (structure) ((next touching-prims-entry :offset-assert 0) (prev touching-prims-entry :offset-assert 4) @@ -16814,9 +16814,9 @@ :size-assert #xe8 :flag-assert #xc000000e8 (:methods - (touching-prims-entry-method-9 () none 9) ;; (get-touched-prim (_type_ trsqv touching-shapes-entry) collide-shape-prim 9) - (touching-prims-entry-method-10 () none 10) ;; (dummy-10 () none 10) - (touching-prims-entry-method-11 () none 11) ;; (get-middle-of-bsphere-overlap (_type_ vector) vector 11) + (touching-prims-entry-method-9 (_type_ vector) vector 9) ;; (get-touched-prim (_type_ trsqv touching-shapes-entry) collide-shape-prim 9) + (touching-prims-entry-method-10 (_type_ collide-shape touching-shapes-entry) collide-shape-prim 10) ;; (dummy-10 () none 10) + (touching-prims-entry-method-11 (_type_ collide-shape touching-shapes-entry) collide-tri-result 11) ;; (get-middle-of-bsphere-overlap (_type_ vector) vector 11) ) ) @@ -17119,7 +17119,7 @@ (process-focusable-method-23 (_type_) none 23) (process-focusable-method-24 (_type_) float 24) (process-focusable-method-25 (_type_) time-frame 25) - (process-focusable-method-26 (_type_) none 26) + (process-focusable-method-26 (_type_) float 26) ) ) @@ -26121,7 +26121,7 @@ ) |# -;; (define-extern get-intersect-point function) ;; (function vector touching-prims-entry control-info process vector) +(define-extern get-intersect-point (function vector touching-prims-entry collide-shape touching-shapes-entry vector)) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; collide-edge-grab ;; @@ -26165,7 +26165,7 @@ ;; (define-extern target-attack-up function) ;; (function target symbol symbol none) ;; (define-extern collide-shape-moving-angle-set! function) ;; (function collide-shape-moving vector vector none) ;; (define-extern cshape-reaction-update-state function) -;; (define-extern cshape-reaction-default function) +(define-extern cshape-reaction-default (function control-info collide-query vector vector cshape-moving-flags)) ;; (define-extern cshape-reaction-just-move function) (define-extern collide-shape-draw-debug-marks (function none)) ;; (define-extern *col-timer* object) ;; stopwatch @@ -32402,6 +32402,7 @@ (cm-joint-x meters :offset 32) (cm-joint-y meters :offset 36) (cm-joint-z meters :offset 40) + (cm-joint-w float :offset 44) ;; added to make data decompilation happy (linear-damping float :offset 8) (angular-damping float :offset 12) (bounce-factor float :offset 16) @@ -32414,7 +32415,7 @@ (gravity meters :offset 192) (idle-distance meters :offset 196) (attack-force-scale float :offset 200) - (name basic :offset-assert 204) + (name symbol :offset-assert 204) ) :method-count-assert 9 :size-assert #xd0 @@ -32448,11 +32449,12 @@ ) ;; ---rigid-body-h:rigid-body-flag +(declare-type rigid-body-work structure) (deftype rigid-body (structure) - ((work basic :offset-assert 0) + ((work rigid-body-work :offset-assert 0) (info rigid-body-info :offset-assert 4) (flags rigid-body-flag :offset-assert 8) - (force-callback basic :offset-assert 12) + (force-callback (function object float none) :offset-assert 12) ;; TODO - type! (blocked-by basic :offset-assert 16) (time-remaining float :offset-assert 20) (step-count int16 :offset-assert 24) @@ -32472,9 +32474,9 @@ :size-assert #x120 :flag-assert #x2000000120 (:methods - (rigid-body-method-9 (_type_) none 9) + (rigid-body-method-9 (_type_ collide-shape-moving float) none 9) (rigid-body-method-10 (_type_) none 10) - (rigid-body-method-11 (_type_) none 11) + (rigid-body-method-11 (_type_ collide-shape-moving) none 11) (rigid-body-method-12 (_type_ float) none 12) (rigid-body-method-13 (_type_) none 13) (rigid-body-method-14 (_type_ float) none 14) @@ -32488,7 +32490,7 @@ (rigid-body-method-22 (_type_ vector vector) vector 22) (rigid-body-method-23 (_type_ vector) vector 23) (rigid-body-method-24 (_type_) none 24) - (rigid-body-method-25 (_type_ rigid-body-info vector quaternion basic) none 25) + (rigid-body-method-25 (_type_ rigid-body-info vector quaternion function) none 25) (rigid-body-method-26 (_type_ vector quaternion) none 26) ;; TODO: stack (print-physics (_type_ object) none 27) ;; probably a better name for this (print-force-torque (_type_ object) none 28) @@ -32498,6 +32500,7 @@ ) ) +(declare-type rigid-body-object process-focusable) (deftype rigid-body-control (basic) ((process process :offset-assert 4) (state rigid-body :inline :offset-assert 16) @@ -32524,9 +32527,10 @@ :size-assert #x130 :flag-assert #x1a00000130 (:methods - (rigid-body-control-method-9 (_type_) none 9) - (rigid-body-control-method-10 (_type_) none 10) - (rigid-body-control-method-11 (_type_) none 11) + (new (symbol type process) _type_ 0) + (rigid-body-control-method-9 (_type_ collide-shape-moving float) none 9) + (rigid-body-control-method-10 (_type_ rigid-body-object float float) object 10) + (rigid-body-control-method-11 (_type_ collide-shape-moving) none 11) (rigid-body-control-method-12 (_type_ float) none 12) (rigid-body-control-method-13 (_type_) none 13) (rigid-body-control-method-14 (_type_ float) none 14) @@ -32596,7 +32600,8 @@ ;; ---rigid-body-h:rigid-body-object-flag (deftype rigid-body-object (process-focusable) - ((info rigid-body-object-constants :offset-assert 204) + ((root-override collide-shape-moving :offset 128 :score 999) + (info rigid-body-object-constants :offset-assert 204) (flags rigid-body-object-flag :offset-assert 208) (max-time-step float :offset-assert 216) (incoming-attack-id uint32 :offset-assert 220) @@ -32609,32 +32614,32 @@ :size-assert #x110 :flag-assert #x3500900110 (:methods - (rigid-body-object-method-27 () none 27) - (rigid-body-object-method-28 () none 28) - (rigid-body-object-method-29 () none 29) - (rigid-body-object-method-30 () none 30) - (rigid-body-object-method-31 () none 31) - (rigid-body-object-method-32 () none 32) - (rigid-body-object-method-33 () none 33) - (rigid-body-object-method-34 () none 34) - (rigid-body-object-method-35 () none 35) + (idle () _type_ :state 27) + (active () _type_ :state 28) + (rigid-body-object-method-29 (_type_) none 29) + (rigid-body-object-method-30 (_type_) none 30) + (rigid-body-object-method-31 (_type_ rigid-body-object-constants) none 31) + (rigid-body-object-method-32 (_type_) none 32) + (rigid-body-object-method-33 (_type_) none 33) + (rigid-body-object-method-34 (_type_) none 34) + (rigid-body-object-method-35 (_type_) none 35) (rigid-body-object-method-36 () none 36) - (rigid-body-object-method-37 () none 37) - (rigid-body-object-method-38 () none 38) - (rigid-body-object-method-39 () none 39) - (rigid-body-object-method-40 () none 40) - (rigid-body-object-method-41 () none 41) - (rigid-body-object-method-42 () none 42) - (rigid-body-object-method-43 () none 43) - (rigid-body-object-method-44 () none 44) + (rigid-body-object-method-37 (_type_) none 37) + (rigid-body-object-method-38 (_type_) none 38) + (rigid-body-object-method-39 (_type_) none 39) + (rigid-body-object-method-40 (_type_) none 40) + (rigid-body-object-method-41 (_type_) none 41) + (rigid-body-object-method-42 (_type_) none :behavior rigid-body-object 42) + (rigid-body-object-method-43 (_type_) none 43) + (rigid-body-object-method-44 (_type_ float) none 44) (rigid-body-object-method-45 () none 45) - (rigid-body-object-method-46 () none 46) - (rigid-body-object-method-47 () none 47) - (rigid-body-object-method-48 () none 48) - (rigid-body-object-method-49 () none 49) - (rigid-body-object-method-50 () none 50) - (rigid-body-object-method-51 () none 51) - (rigid-body-object-method-52 () none 52) + (rigid-body-object-method-46 (_type_ process-drawable int symbol event-message-block) none :behavior rigid-body-object 46) + (rigid-body-object-method-47 (_type_ process-drawable attack-info object penetrate) symbol 47) + (rigid-body-object-method-48 (_type_ object object) none 48) + (rigid-body-object-method-49 (_type_ matrix touching-shapes-entry) none 49) + (rigid-body-object-method-50 (_type_ float) none 50) + (rigid-body-object-method-51 (_type_) none 51) + (rigid-body-object-method-52 (_type_) none 52) ) ) @@ -32646,14 +32651,14 @@ :size-assert #x408 :flag-assert #x1100000408 (:methods - (rigid-body-queue-method-9 () none 9) - (rigid-body-queue-method-10 () none 10) - (rigid-body-queue-method-11 () none 11) - (rigid-body-queue-method-12 () none 12) - (rigid-body-queue-method-13 () none 13) - (rigid-body-queue-method-14 () none 14) - (rigid-body-queue-method-15 () none 15) - (rigid-body-queue-method-16 () none 16) + (rigid-body-queue-method-9 (_type_) none 9) + (rigid-body-queue-method-10 (_type_) none 10) + (rigid-body-queue-method-11 (_type_) none 11) + (rigid-body-queue-method-12 (_type_ int int) none 12) + (rigid-body-queue-method-13 (_type_) none 13) + (rigid-body-queue-method-14 (_type_ int) none 14) + (rigid-body-queue-method-15 (_type_) none 15) + (validate (_type_) symbol 16) ) ) @@ -32663,7 +32668,7 @@ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; (define-extern *enemy-dummy-shadow-control* shadow-control) -;; (define-extern get-penetrate-using-from-attack-event function) +(define-extern get-penetrate-using-from-attack-event (function process-drawable event-message-block penetrate)) ;; (define-extern enemy-init-by-other function) ;; (define-extern enemy-event-handler function) ;; (define-extern enemy-simple-post function) @@ -33151,34 +33156,27 @@ (define-extern *rigid-body-work* rigid-body-work) (define-extern matrix-3x3-triple-transpose-product (function matrix matrix matrix matrix)) (define-extern damping-time-adjust (function float float float)) -;; (define-extern transform-rigid-body-prims (function object matrix none)) ;; TODO: first param +(define-extern transform-rigid-body-prims (function collide-shape-prim matrix symbol)) (define-extern *rigid-body-object-constants* rigid-body-object-constants) -;; (define-extern rigid-body-object-event-handler function) +(define-extern rigid-body-object-event-handler (function process int symbol event-message-block none :behavior rigid-body-object)) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; rigid-body-queue ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -#| (deftype rigid-body-queue-manager (process) - ((queue rigid-body-queue :offset-assert 124) + ((queue rigid-body-queue :offset-assert 128) ) :method-count-assert 15 :size-assert #x84 :flag-assert #xf00100084 (:methods - (rigid-body-queue-manager-method-9 () none 9) - (rigid-body-queue-manager-method-10 () none 10) - (rigid-body-queue-manager-method-11 () none 11) - (rigid-body-queue-manager-method-12 () none 12) - (rigid-body-queue-manager-method-13 () none 13) (idle () _type_ :state 14) ) ) -|# -;; (define-extern rigid-body-queue-manager-init-by-other function) -;; (define-extern rigid-body-queue-manager-spawn function) +(define-extern rigid-body-queue-manager-init-by-other (function rigid-body-queue object :behavior rigid-body-queue-manager)) +(define-extern rigid-body-queue-manager-spawn (function rigid-body-queue process-tree process)) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; rigid-body-plat ;; @@ -33222,28 +33220,26 @@ :flag-assert #x900000010 ) -#| +(declare-type water-anim process-drawable) ;; TODO - not decompiled yet (deftype rigid-body-platform (rigid-body-object) - ((control-point-array rigid-body-control-point-inline-array :offset-assert 268) ;; guessed by decompiler - (player-velocity vector :inline :offset-assert 284) - (player-velocity-prev vector :inline :offset-assert 300) - (player-force-position vector :inline :offset-assert 236) - (player-force vector :inline :offset-assert 252) - (float-height-offset float :offset-assert 348) - (player-bonk-timeout uint64 :offset-assert 356) ;; time-frame - (water-anim water-anim :offset-assert 364) ;; guessed by decompiler + ((control-point-array rigid-body-control-point-inline-array :offset-assert 272) ;; guessed by decompiler + (player-velocity vector :inline :offset-assert 288) + (player-velocity-prev vector :inline :offset-assert 304) + (unknown-pad uint32 8 :offset-assert 320) + (float-height-offset float :offset-assert 352) + (player-bonk-timeout uint64 :offset-assert 360) ;; time-frame + (water-anim water-anim :offset-assert 368) ;; guessed by decompiler ) :method-count-assert 57 :size-assert #x174 :flag-assert #x3901000174 (:methods - (rigid-body-platform-method-53 () none 53) + (rigid-body-platform-method-53 (_type_) none 53) (rigid-body-platform-method-54 () none 54) (rigid-body-platform-method-55 () none 55) (rigid-body-platform-method-56 () none 56) ) ) -|# (define-extern *rigid-body-platform-constants* rigid-body-platform-constants) @@ -34145,7 +34141,6 @@ ;; cty-guard-turret-button ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -#| (deftype cty-guard-turret-button (basebutton) () :method-count-assert 40 @@ -34155,8 +34150,6 @@ (pop-up () _type_ :state 39) ) ) -|# - ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; meet-brutter ;; @@ -34294,7 +34287,6 @@ ;; race-h ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -#| (deftype race-turbo-pad (structure) ((position vector :inline :offset-assert 0) (handle uint64 :offset-assert 16) @@ -34303,9 +34295,7 @@ :size-assert #x18 :flag-assert #x900000018 ) -|# -#| (deftype race-decision-point (structure) ((pos float :offset-assert 0) (decision-type uint8 :offset-assert 4) @@ -34316,9 +34306,7 @@ :size-assert #x7 :flag-assert #x900000007 ) -|# -#| (deftype race-racer-info (structure) ((rider uint8 :offset-assert 0) (vehicle uint8 :offset-assert 1) @@ -34329,12 +34317,10 @@ :size-assert #x4 :flag-assert #x900000004 ) -|# -#| (deftype race-info (basic) - ((race-mesh-name basic :offset-assert 4) - (path-group-name basic :offset-assert 8) + ((race-mesh-name string :offset-assert 4) + (path-group-name string :offset-assert 8) (task-node uint16 :offset-assert 12) (mesh basic :offset-assert 16) (ai-min-speed-factor float :offset-assert 20) @@ -34353,31 +34339,28 @@ (map-index int8 :offset-assert 117) (decision-point-count int8 :offset-assert 118) (safe-paths uint8 :offset-assert 119) - (turbo-pad-array uint32 :offset-assert 120) - (racer-array uint32 :offset-assert 124) - (decision-point-array uint32 :offset-assert 128) - (level basic :offset-assert 132) - (borrow-level basic :offset-assert 136) - (borrow basic :offset-assert 140) + (turbo-pad-array (inline-array race-turbo-pad) :offset-assert 120) + (racer-array (inline-array race-racer-info) :offset-assert 124) + (decision-point-array (inline-array race-decision-point) :offset-assert 128) + (level symbol :offset-assert 132) + (borrow-level symbol :offset-assert 136) + (borrow pair :offset-assert 140) (manager uint64 :offset-assert 144) - (manager-handle-init-hack basic :offset-assert 144) - (hatch-actor-name basic :offset-assert 152) + (manager-handle-init-hack basic :offset 144) + (hatch-actor-name string :offset-assert 152) (countdown-scene basic :offset-assert 156) (complete-continue basic :offset-assert 160) - (start-camera basic :offset-assert 164) + (start-camera string :offset-assert 164) (go-speech uint16 :offset-assert 168) ) :method-count-assert 10 :size-assert #xaa :flag-assert #xa000000aa - ;; field borrow uses ~A with a signed load (:methods - (race-info-method-9 () none 9) + (race-info-method-9 (_type_) none 9) ) ) -|# -#| (deftype racer-state (structure) ((position vector :inline :offset-assert 0) (racer uint64 :offset-assert 16) @@ -34395,7 +34378,7 @@ (finish-time uint32 :offset-assert 52) (lap-start uint32 :offset-assert 56) (best-lap-time uint32 :offset-assert 60) - (lap-time-array UNKNOWN 5 :offset-assert 64) + (lap-time-array float 5 :offset-assert 64) ;; kinda a guess, too small to be time-frames (start-position vector :inline :offset-assert 96) ) :method-count-assert 14 @@ -34409,9 +34392,7 @@ (racer-state-method-13 () none 13) ) ) -|# -#| (deftype race-state (structure) ((info basic :offset-assert 0) (flags uint8 :offset-assert 4) @@ -34431,10 +34412,10 @@ (current-time uint32 :offset-assert 80) (countdown-start-time uint32 :offset-assert 84) (race-start-time uint32 :offset-assert 88) - (rankings UNKNOWN 10 :offset-assert 92) + (rankings int8 10 :offset-assert 92) ;; weird size (target-pos float :offset-assert 104) (suck-factor float :offset-assert 108) - (racer-array UNKNOWN 10 :offset-assert 112) + (racer-array racer-state 10 :inline :offset-assert 112) (player-intro-curve cubic-curve :inline :offset-assert 1232) ) :method-count-assert 19 @@ -34453,31 +34434,24 @@ (race-state-method-18 () none 18) ) ) -|# -#| (deftype race-manager (process) - ((race-state race-state :offset-assert 124) - (state-time time-frame :offset-assert 132) - (player-on-track-time time-frame :offset-assert 140) - (message-id uint32 :offset-assert 148) - (finish-sound-id uint32 :offset-assert 152) + ((race-state race-state :offset-assert 128) + (state-time time-frame :offset-assert 136) + (player-on-track-time time-frame :offset-assert 144) + (message-id uint32 :offset-assert 152) + (finish-sound-id uint32 :offset-assert 156) ) :method-count-assert 28 :size-assert #xa0 :flag-assert #x1c002000a0 (:methods - (race-manager-method-9 () none 9) - (race-manager-method-10 () none 10) - (race-manager-method-11 () none 11) - (race-manager-method-12 () none 12) - (race-manager-method-13 () none 13) - (race-manager-method-14 () none 14) - (race-manager-method-15 () none 15) - (race-manager-method-16 () none 16) - (race-manager-method-17 () none 17) - (race-manager-method-18 () none 18) - (race-manager-method-19 () none 19) + (idle () _type_ :state 14) + (active () _type_ :state 15) + (fail () _type_ :state 16) + (win () _type_ :state 17) + (lose () _type_ :state 18) + (die () _type_ :state 19) (race-manager-method-20 () none 20) (race-manager-method-21 () none 21) (race-manager-method-22 () none 22) @@ -34488,7 +34462,6 @@ (race-manager-method-27 () none 27) ) ) -|# ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; @@ -34829,17 +34802,17 @@ ;; race-info ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; (define-extern *race-info-array* array) +(define-extern *race-info-array* (array race-info)) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; race-manager ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; (define-extern race-find-ground function) -;; (define-extern *race-state* object) -;; (define-extern *race-rigid-body-queue* object) +(define-extern race-find-ground (function object none)) +(define-extern *race-state* race-state) +(define-extern *race-rigid-body-queue* rigid-body-queue) ;; (define-extern race-manager-event-handler function) -;; (define-extern *race-manager* object) +(define-extern *race-manager* race-manager) ;; (define-extern race-manager-init-by-other function) ;; (define-extern race-start function) ;; (define-extern race-kill function) @@ -48814,7 +48787,7 @@ (nav-node-method-11 (_type_ int) none 11) (nav-node-method-12 (_type_ vector nav-node) none 12) (nav-node-method-13 (_type_ vector) none 13) - (nav-node-method-14 (_type_ nav-node) none 14) + (nav-node-method-14 (_type_ vector) none 14) (nav-node-method-15 (_type_ uint) none 15) (nav-node-method-16 (_type_ float) none 16) (nav-node-method-17 (_type_ float) none 17) @@ -48885,7 +48858,7 @@ (nav-graph-method-24 (_type_ int int) none 24) (nav-graph-method-25 (_type_ symbol symbol) none 25) (nav-graph-method-26 (_type_ symbol symbol) none 26) - (nav-graph-method-27 (_type_) none 27) + (nav-graph-method-27 (_type_ nav-node-flag-byte nav-node-flag-byte symbol) none 27) (nav-graph-method-28 (_type_) none 28) (nav-graph-method-29 (_type_ symbol) none 29) (nav-graph-method-30 (_type_ uint) none 30) @@ -48896,7 +48869,7 @@ (nav-graph-method-35 (_type_ int) none 35) (nav-graph-method-36 (_type_ int) none 36) (nav-graph-method-37 (_type_ vector) none 37) - (nav-graph-method-38 () none 38) + (nav-graph-method-38 (_type_) none 38) (nav-graph-method-39 (_type_) none 39) (nav-graph-method-40 (_type_ int) int 40) (node-at-idx @@ -49577,9 +49550,9 @@ (:methods (vehicle-controller-method-9 () none 9) ;; (init! (_type_ vehicle-path (pointer float) (pointer float) int float) none 9) (vehicle-controller-method-10 () none 10) ;; (TODO-RENAME-10 (_type_ vector float int) none 10) - (vehicle-controller-method-11 () none 11) ;; (dummy-11 (_type_) none 11) + (vehicle-controller-method-11 (_type_) none 11) ;; (dummy-11 (_type_) none 11) (vehicle-controller-method-12 () none 12) ;; (TODO-RENAME-12 (_type_ int vector) none 12) - (vehicle-controller-method-13 () none 13) ;; (move-to-next-point (_type_ vector) none 13) + (vehicle-controller-method-13 (_type_ nav-branch vector) none 13) ;; (move-to-next-point (_type_ vector) none 13) (vehicle-controller-method-14 () none 14) ;; (TODO-RENAME-14 (_type_ vector vector) none 14) (vehicle-controller-method-15 () none 15) ;; (dummy-15 (_type_ collide-shape-moving) none 15) (vehicle-controller-method-16 () none 16) ;; (dummy-16 (_type_) none 16) @@ -49822,7 +49795,7 @@ (dim int16 2 :offset-assert 24) (x-dim int16 :offset 24) (z-dim int16 :offset 26) - (data (pointer int8) :offset-assert 28) ;; 2240 words for the traffic-height-map - this could be so many things, but its something with an `int8` at offset 0 + (data (pointer int8) :offset-assert 28) ) :method-count-assert 15 :size-assert #x20 diff --git a/decompiler/config/jak2/hacks.jsonc b/decompiler/config/jak2/hacks.jsonc index 62d612ea0..9c69ef971 100644 --- a/decompiler/config/jak2/hacks.jsonc +++ b/decompiler/config/jak2/hacks.jsonc @@ -344,6 +344,7 @@ "(method 11 sparticle-launch-control)": [ 18, 24, 25, 28, 29, 32, 33, 34, 36, 41, 55, 58, 93, 95 ] + // "(method 67 collide-shape-moving)": [1, 7, 9, 10, 11, 12] - TODO }, // Sometimes the game might use format strings that are fetched dynamically, diff --git a/decompiler/config/jak2/inputs.jsonc b/decompiler/config/jak2/inputs.jsonc index c53a7a135..8fcade145 100644 --- a/decompiler/config/jak2/inputs.jsonc +++ b/decompiler/config/jak2/inputs.jsonc @@ -17,7 +17,7 @@ // "DGO/LMEETBRT.DGO", "DGO/CTA.DGO", // "DGO/PALOUT.DGO", - // "DGO/STD.DGO", + "DGO/STD.DGO", // "DGO/FOR.DGO", // "DGO/CASEXT.DGO", // "DGO/HIDEOUT.DGO", diff --git a/decompiler/config/jak2/stack_structures.jsonc b/decompiler/config/jak2/stack_structures.jsonc index 822e68492..932f2d353 100644 --- a/decompiler/config/jak2/stack_structures.jsonc +++ b/decompiler/config/jak2/stack_structures.jsonc @@ -938,5 +938,7 @@ "(method 10 menu-highscores-option)": [[16, "hud-box"]], "master-track-target": [[16, "vector"]], "cam-string-line-of-sight": [[192, "collide-query"]], - "(enter cam-circular)": [[32, "collide-query"]] + "(enter cam-circular)": [[32, "collide-query"]], + "(method 26 rigid-body)": [[16, ["inline-array", "vector", 8]]], + "(method 47 rigid-body-object)": [[16, "matrix"]] } diff --git a/decompiler/config/jak2/type_casts.jsonc b/decompiler/config/jak2/type_casts.jsonc index 281471b8a..985a80faf 100644 --- a/decompiler/config/jak2/type_casts.jsonc +++ b/decompiler/config/jak2/type_casts.jsonc @@ -3068,5 +3068,26 @@ ["_stack_", 96, "res-tag"], [[87, 247], "s3", "(pointer camera-slave)"] ], - "cam-string-joystick": [[785, "v1", "process-drawable"]] + "cam-string-joystick": [[785, "v1", "process-drawable"]], + "transform-rigid-body-prims": [ + [[5, 8], "a0", "collide-shape-prim-group"], + [[11, 22], "v1", "collide-shape-prim"] + ], + "(method 46 rigid-body-object)": [ + [[78, 95], "s3", "attack-info"], + [113, "s4", "process-focusable"], + [127, "s5", "attack-info"], + [146, "v1", "focus"], + [162, "s5", "process-focusable"], + [213, "s4", "process-focusable"], + [226, "v1", "float"] + ], + "(method 33 cty-guard-turret-button)": [[35, "v1", "art-joint-anim"]], + "(code pop-up cty-guard-turret-button)": [[10, "v1", "art-joint-anim"]], + "(method 9 race-info)": [[6, "v1", "entity-race-mesh"]], + "(method 14 rigid-body)": [[18, "v1", "vector"]], + "get-penetrate-using-from-attack-event": [ + [[0, 6], "v1", "attack-info"], + [23, "gp", "collide-shape"] + ] } diff --git a/decompiler/util/data_decompile.cpp b/decompiler/util/data_decompile.cpp index 3be8d7530..a0142f5df 100644 --- a/decompiler/util/data_decompile.cpp +++ b/decompiler/util/data_decompile.cpp @@ -456,6 +456,17 @@ goos::Object decomp_ref_to_inline_array_guess_size( // we expect that to be a label: ASSERT((field_location % 4) == 0); auto pointer_to_data = words.at(field_location / 4); + + // inline-arrays can also be initialized as #f + if (pointer_to_data.kind() == LinkedWord::SYM_PTR) { + ASSERT_MSG( + pointer_to_data.symbol_name() == "#f", + fmt::format( + "attempted to decompile an inline-array of '{}', but encounted a non `#f` symbol", + array_elt_type.base_type())); + return pretty_print::to_symbol("#f"); + } + ASSERT(pointer_to_data.kind() == LinkedWord::PTR); // the data shouldn't have any labels in the middle of it, so we can find the end of the array @@ -522,146 +533,6 @@ goos::Object decomp_ref_to_inline_array_guess_size( return pretty_print::build_list(array_def); } -/*! - * Decompile the data field of ocean-near-indices, which is an (inline-array ocean-near-index). - * This is like a C++ ocean_near_index*, meaning we don't know how long the array is. - * We know all the data in a ocean_near_index is just integers, so we can guess that the end - * of the array is just the location of the next label. - * There's a chance that this will include some padding in the array and make it too long, - * but there is no harm in that. - */ -goos::Object ocean_near_indices_decompile(const std::vector& words, - const std::vector& labels, - int my_seg, - int field_location, - const TypeSystem& ts, - const std::vector>& all_words, - const LinkedObjectFile* file, - GameVersion version) { - return decomp_ref_to_inline_array_guess_size(words, labels, my_seg, field_location, ts, all_words, - file, TypeSpec("ocean-near-index"), 32, version); -} - -goos::Object ocean_mid_masks_decompile(const std::vector& words, - const std::vector& labels, - int my_seg, - int field_location, - const TypeSystem& ts, - const std::vector>& all_words, - const LinkedObjectFile* file, - GameVersion version) { - return decomp_ref_to_inline_array_guess_size(words, labels, my_seg, field_location, ts, all_words, - file, TypeSpec("ocean-mid-mask"), 8, version); -} - -goos::Object sp_field_init_spec_decompile(const std::vector& words, - const std::vector& labels, - int my_seg, - int field_location, - const TypeSystem& ts, - const std::vector>& all_words, - const LinkedObjectFile* file, - GameVersion version) { - return decomp_ref_to_inline_array_guess_size(words, labels, my_seg, field_location, ts, all_words, - file, TypeSpec("sp-field-init-spec"), 16, version); -} - -goos::Object nav_mesh_vertex_arr_decompile(const std::vector& words, - const std::vector& labels, - int my_seg, - int field_location, - const TypeSystem& ts, - const std::vector>& all_words, - const LinkedObjectFile* file, - GameVersion version) { - return decomp_ref_to_inline_array_guess_size(words, labels, my_seg, field_location, ts, all_words, - file, TypeSpec("nav-vertex"), 16, version); -} - -goos::Object nav_mesh_poly_arr_decompile(const std::vector& words, - const std::vector& labels, - int my_seg, - int field_location, - const TypeSystem& ts, - const std::vector>& all_words, - const LinkedObjectFile* file, - GameVersion version) { - return decomp_ref_to_inline_array_guess_size(words, labels, my_seg, field_location, ts, all_words, - file, TypeSpec("nav-poly"), 8, version); -} - -goos::Object nav_mesh_poly_arr_jak2_decompile(const std::vector& words, - const std::vector& labels, - int my_seg, - int field_location, - const TypeSystem& ts, - const std::vector>& all_words, - const LinkedObjectFile* file, - GameVersion version) { - return decomp_ref_to_inline_array_guess_size(words, labels, my_seg, field_location, ts, all_words, - file, TypeSpec("nav-poly"), 64, version); -} - -goos::Object nav_mesh_nav_control_arr_decompile( - const std::vector& words, - const std::vector& labels, - int my_seg, - int field_location, - const TypeSystem& ts, - const std::vector>& all_words, - const LinkedObjectFile* file, - GameVersion version) { - return decomp_ref_to_inline_array_guess_size(words, labels, my_seg, field_location, ts, all_words, - file, TypeSpec("nav-control"), 288, version); -} - -goos::Object xz_height_map_data_arr_decompile(const std::vector& words, - const std::vector& labels, - int my_seg, - int field_location, - const TypeSystem& ts, - const std::vector>& all_words, - const LinkedObjectFile* file, - GameVersion version) { - return decomp_ref_to_inline_array_guess_size(words, labels, my_seg, field_location, ts, all_words, - file, TypeSpec("vector4b"), 4, version); -} - -goos::Object nav_mesh_route_arr_decompile(const std::vector& words, - const std::vector& labels, - int my_seg, - int field_location, - const TypeSystem& ts, - const std::vector>& all_words, - const LinkedObjectFile* file, - GameVersion version) { - return decomp_ref_to_inline_array_guess_size(words, labels, my_seg, field_location, ts, all_words, - file, TypeSpec("vector4ub"), 4, version); -} - -goos::Object sp_launch_grp_launcher_decompile(const std::vector& words, - const std::vector& labels, - int my_seg, - int field_location, - const TypeSystem& ts, - const std::vector>& all_words, - const LinkedObjectFile* file, - GameVersion version) { - return decomp_ref_to_inline_array_guess_size(words, labels, my_seg, field_location, ts, all_words, - file, TypeSpec("sparticle-group-item"), 32, version); -} -goos::Object probe_dir_decompile(const std::vector& words, - const std::vector& labels, - int my_seg, - int field_location, - const TypeSystem& ts, - const std::vector>& all_words, - const LinkedObjectFile* file, - GameVersion version) { - return decomp_ref_to_inline_array_guess_size(words, labels, my_seg, field_location, ts, all_words, - file, TypeSpec("vector"), 16, version); -} - goos::Object decompile_sound_spec(const TypeSpec& type, const DecompilerLabel& label, const std::vector& labels, @@ -811,6 +682,58 @@ goos::Object decompile_sound_spec(const TypeSpec& type, } // namespace +// TODO - add a common game version +const std::unordered_map< + GameVersion, + std::unordered_map>> + array_field_decomp_special_cases = { + {GameVersion::Jak1, + /*! + * Decompile the data field of ocean-near-indices, which is an (inline-array + * ocean-near-index). This is like a C++ ocean_near_index*, meaning we don't know how long + * the array is. We know all the data in a ocean_near_index is just integers, so we can + * guess that the end of the array is just the location of the next label. There's a chance + * that this will include some padding in the array and make it too long, but there is no + * harm in that. + */ + {{"ocean-near-indices", + {{"data", ArrayFieldDecompMeta(TypeSpec("ocean-near-index"), 32)}}}, + {"ocean-mid-masks", {{"data", ArrayFieldDecompMeta(TypeSpec("ocean-mid-mask"), 8)}}}, + {"sparticle-launcher", + {{"init-specs", ArrayFieldDecompMeta(TypeSpec("sp-field-init-spec"), 16)}}}, + {"sparticle-launch-group", + {{"launcher", ArrayFieldDecompMeta(TypeSpec("sparticle-group-item"), 32)}}}, + {"nav-mesh", + {{"vertex", ArrayFieldDecompMeta(TypeSpec("nav-vertex"), 16)}, + {"poly", ArrayFieldDecompMeta(TypeSpec("nav-poly"), 8)}, + {"route", ArrayFieldDecompMeta(TypeSpec("vector4ub"), 4)}}}, + {"lightning-probe-vars", {{"probe-dirs", ArrayFieldDecompMeta(TypeSpec("vector"), 16)}}}, + {"ropebridge-tuning", + {{"col-mesh-indexes", + ArrayFieldDecompMeta(TypeSpec("uint8"), + 1, + ArrayFieldDecompMeta::Kind::REF_TO_INTEGER_ARR)}}}}}, + {GameVersion::Jak2, + {{"ocean-near-indices", + {{"data", ArrayFieldDecompMeta(TypeSpec("ocean-near-index"), 32)}}}, + {"ocean-mid-masks", {{"data", ArrayFieldDecompMeta(TypeSpec("ocean-mid-mask"), 8)}}}, + {"sparticle-launcher", + {{"init-specs", ArrayFieldDecompMeta(TypeSpec("sp-field-init-spec"), 16)}}}, + {"sparticle-launch-group", + {{"launcher", ArrayFieldDecompMeta(TypeSpec("sparticle-group-item"), 32)}}}, + {"race-info", + {{"turbo-pad-array", ArrayFieldDecompMeta(TypeSpec("race-turbo-pad"), 32)}, + {"racer-array", ArrayFieldDecompMeta(TypeSpec("race-racer-info"), 16)}, + {"decision-point-array", ArrayFieldDecompMeta(TypeSpec("race-decision-point"), 16)}}}, + {"xz-height-map", + {{"data", ArrayFieldDecompMeta(TypeSpec("int8"), + 1, + ArrayFieldDecompMeta::Kind::REF_TO_INTEGER_ARR)}}}, + {"lightning-probe-vars", {{"probe-dirs", ArrayFieldDecompMeta(TypeSpec("vector"), 16)}}}, + {"nav-mesh", + {{"poly-array", ArrayFieldDecompMeta(TypeSpec("nav-poly"), 64)}, + {"nav-control-array", ArrayFieldDecompMeta(TypeSpec("nav-control"), 288)}}}}}}; + goos::Object decompile_structure(const TypeSpec& type, const DecompilerLabel& label, const std::vector& labels, @@ -1029,64 +952,29 @@ goos::Object decompile_structure(const TypeSpec& type, fmt::format("Dynamic value field {} in static data type {} not yet implemented", field.name(), actual_type.print())); } else { - // TODO - this is getting a little unwieldly -- refactor this at some point - if (field.name() == "data" && type.print() == "ocean-near-indices") { - // first, get the label: - field_defs_out.emplace_back( - field.name(), ocean_near_indices_decompile(obj_words, labels, label.target_segment, - field_start, ts, words, file, version)); - } else if (field.name() == "data" && type.print() == "ocean-mid-masks") { - field_defs_out.emplace_back( - field.name(), ocean_mid_masks_decompile(obj_words, labels, label.target_segment, - field_start, ts, words, file, version)); - } else if (field.name() == "init-specs" && type.print() == "sparticle-launcher") { - field_defs_out.emplace_back( - field.name(), sp_field_init_spec_decompile(obj_words, labels, label.target_segment, - field_start, ts, words, file, version)); - } else if (field.name() == "vertex" && type.print() == "nav-mesh" && - file->version == GameVersion::Jak1) { - field_defs_out.emplace_back( - field.name(), nav_mesh_vertex_arr_decompile(obj_words, labels, label.target_segment, - field_start, ts, words, file, version)); - } else if (field.name() == "poly" && type.print() == "nav-mesh" && - file->version == GameVersion::Jak1) { - field_defs_out.emplace_back( - field.name(), nav_mesh_poly_arr_decompile(obj_words, labels, label.target_segment, - field_start, ts, words, file, version)); - } else if (field.name() == "poly-array" && type.print() == "nav-mesh" && - file->version == GameVersion::Jak2) { - field_defs_out.emplace_back(field.name(), nav_mesh_poly_arr_jak2_decompile( - obj_words, labels, label.target_segment, - field_start, ts, words, file, version)); - } else if (field.name() == "nav-control-array" && type.print() == "nav-mesh" && - file->version == GameVersion::Jak2) { - field_defs_out.emplace_back(field.name(), nav_mesh_nav_control_arr_decompile( - obj_words, labels, label.target_segment, - field_start, ts, words, file, version)); - } else if (field.name() == "data" && type.print() == "xz-height-map" && - file->version == GameVersion::Jak2) { - field_defs_out.emplace_back(field.name(), xz_height_map_data_arr_decompile( - obj_words, labels, label.target_segment, - field_start, ts, words, file, version)); - } else if (field.name() == "route" && type.print() == "nav-mesh" && - file->version == GameVersion::Jak1) { - field_defs_out.emplace_back( - field.name(), nav_mesh_route_arr_decompile(obj_words, labels, label.target_segment, - field_start, ts, words, file, version)); - } else if (field.name() == "launcher" && type.print() == "sparticle-launch-group") { - field_defs_out.emplace_back(field.name(), sp_launch_grp_launcher_decompile( - obj_words, labels, label.target_segment, - field_start, ts, words, file, version)); - } else if (field.name() == "col-mesh-indexes" && type.print() == "ropebridge-tuning") { - field_defs_out.emplace_back( - field.name(), decomp_ref_to_integer_array_guess_size( - obj_words, labels, label.target_segment, field_start, ts, words, - file, TypeSpec("uint8"), 1)); - } else if (field.name() == "probe-dirs" && type.print() == "lightning-probe-vars") { - field_defs_out.emplace_back(field.name(), - probe_dir_decompile(obj_words, labels, label.target_segment, - field_start, ts, words, file, version)); - } else { + // array field special cases, uses the map initialized above! + // check if there is a special case for this type+field+version combination + if (file && array_field_decomp_special_cases.count(file->version) > 0 && + array_field_decomp_special_cases.at(file->version).count(type.print()) > 0 && + array_field_decomp_special_cases.at(file->version) + .at(type.print()) + .count(field.name()) > 0) { + // We have a special case, do the things + const auto& metadata = + array_field_decomp_special_cases.at(file->version).at(type.print()).at(field.name()); + if (metadata.kind == ArrayFieldDecompMeta::Kind::REF_TO_INLINE_ARR) { + field_defs_out.emplace_back( + field.name(), + decomp_ref_to_inline_array_guess_size( + obj_words, labels, label.target_segment, field_start, ts, words, file, + metadata.element_type, metadata.bytes_per_element, file->version)); + } else if (metadata.kind == ArrayFieldDecompMeta::Kind::REF_TO_INTEGER_ARR) { + field_defs_out.emplace_back( + field.name(), decomp_ref_to_integer_array_guess_size( + obj_words, labels, label.target_segment, field_start, ts, words, + file, metadata.element_type, metadata.bytes_per_element)); + } + } else { // otherwise, it's a pointer array or plain data if (field.type().base_type() == "pointer") { if (obj_words.at(field_start / 4).kind() != LinkedWord::SYM_PTR) { continue; diff --git a/decompiler/util/data_decompile.h b/decompiler/util/data_decompile.h index 13a788354..cc68bf08b 100644 --- a/decompiler/util/data_decompile.h +++ b/decompiler/util/data_decompile.h @@ -118,4 +118,22 @@ std::vector decompile_bitfield_enum_from_int(const TypeSpec& type, std::string decompile_int_enum_from_int(const TypeSpec& type, const TypeSystem& ts, u64 value); goos::Object bitfield_defs_print(const TypeSpec& type, const std::vector& defs); + +struct ArrayFieldDecompMeta { + enum class Kind { REF_TO_INLINE_ARR, REF_TO_INTEGER_ARR }; + + TypeSpec element_type; + int bytes_per_element; // aka stride + Kind kind; + + ArrayFieldDecompMeta(TypeSpec _element_type, + int _bytes_per_element, + Kind _kind = Kind::REF_TO_INLINE_ARR) + : element_type(_element_type), bytes_per_element(_bytes_per_element), kind(_kind){}; +}; + +extern const std::unordered_map< + GameVersion, + std::unordered_map>> + array_field_decomp_special_cases; } // namespace decompiler diff --git a/goal_src/jak2/dgos/art.gd b/goal_src/jak2/dgos/art.gd new file mode 100644 index 000000000..93fbbf018 --- /dev/null +++ b/goal_src/jak2/dgos/art.gd @@ -0,0 +1,33 @@ +("ART.CGO" + ("dir-tpages-ART.go" "dir-tpages") + ("tpage-11.go" "tpage-11") + ("tpage-31.go" "tpage-31") + ("tpage-1804.go" "tpage-1804") + ("texture-upload.o" "texture-upload") + ("tpage-12.go" "tpage-12") + ("tpage-917.go" "tpage-917") + ("tpage-918.go" "tpage-918") + ("tpage-1106.go" "tpage-1106") + ("tpage-1141.go" "tpage-1141") + ("tpage-1658.go" "tpage-1658") + ("tpage-2841.go" "tpage-2841") + ("tpage-2932.go" "tpage-2932") + ("tpage-3076.go" "tpage-3076") + ("texture-finish.o" "texture-finish") + ("collectables-ag.go" "collectables") + ("ctywide-arrow-ag.go" "ctywide-arrow") + ("crate-ag.go" "crate") + ("talk-box-ag.go" "talk-box") + ("scenecamera-ag.go" "scenecamera") + ("eco-canister-ag.go" "eco-canister") + ("hud-ring-ag.go" "hud-ring") + ("jakb-ag.go" "jakb") + ("daxter-ag.go" "daxter") + ("board-ag.go" "board") + ("gun-ag.go" "gun") + ("jak-gun+0-ag.go" "jak-gun+0") + ("jak-board+0-ag.go" "jak-board+0") + ("jak-dark+0-ag.go" "jak-dark+0") + ("jak-swim+0-ag.go" "jak-swim+0") + ("blocking-plane-ag.go" "blocking-plane") + ) diff --git a/goal_src/jak2/dgos/ate.gd b/goal_src/jak2/dgos/ate.gd new file mode 100644 index 000000000..9a319c389 --- /dev/null +++ b/goal_src/jak2/dgos/ate.gd @@ -0,0 +1,47 @@ +("ATE.DGO" + ("ai-task-h.o" "ai-task-h") + ("bot-h.o" "bot-h") + ("bot.o" "bot") + ("bot-states.o" "bot-states") + ("sig-h.o" "sig-h") + ("sig-task.o" "sig-task") + ("sig-shot.o" "sig-shot") + ("sig-plasma.o" "sig-plasma") + ("sig.o" "sig") + ("sig-states.o" "sig-states") + ("ash-h.o" "ash-h") + ("ash-task.o" "ash-task") + ("ash-shot.o" "ash-shot") + ("ash.o" "ash") + ("ash-states.o" "ash-states") + ("spyder.o" "spyder") + ("sig0-course.o" "sig0-course") + ("ash1-course.o" "ash1-course") + ("atoll-tank.o" "atoll-tank") + ("atoll-scenes.o" "atoll-scenes") + ("sniper.o" "sniper") + ("amphibian.o" "amphibian") + ("juicer.o" "juicer") + ("metalmonk.o" "metalmonk") + ("tpage-1606.go" "tpage-1606") + ("tpage-1607.go" "tpage-1607") + ("tpage-2461.go" "tpage-2461") + ("tpage-3237.go" "tpage-3237") + ("tpage-3412.go" "tpage-3412") + ("sig-ag.go" "sig") + ("daxter-highres-ag.go" "daxter-highres") + ("jak-highres-ag.go" "jak-highres") + ("atoll-tank-ag.go" "atoll-tank") + ("sig-highres-ag.go" "sig-highres") + ("juicer-ag.go" "juicer") + ("ashelin-highres-ag.go" "ashelin-highres") + ("atoll-hellcat-ag.go" "atoll-hellcat") + ("ashelin-ag.go" "ashelin") + ("metalmonk-ag.go" "metalmonk") + ("amphibian-ag.go" "amphibian") + ("spyder-ag.go" "spyder") + ("com-airlock-inner-ag.go" "com-airlock-inner") + ("palmpilot-ag.go" "palmpilot") + ("particleman-ag.go" "particleman") + ("atollext-vis.go" "atollext-vis") + ) diff --git a/goal_src/jak2/dgos/ato.gd b/goal_src/jak2/dgos/ato.gd new file mode 100644 index 000000000..d676f5c43 --- /dev/null +++ b/goal_src/jak2/dgos/ato.gd @@ -0,0 +1,24 @@ +("ATO.DGO" + ("gun-buoy.o" "gun-buoy") + ("atoll-part.o" "atoll-part") + ("atoll-obs.o" "atoll-obs") + ("fodder.o" "fodder") + ("tpage-856.go" "tpage-856") + ("tpage-858.go" "tpage-858") + ("tpage-857.go" "tpage-857") + ("tpage-855.go" "tpage-855") + ("tpage-1083.go" "tpage-1083") + ("fodder-ag.go" "fodder") + ("liftcat-ag.go" "liftcat") + ("com-airlock-outer-ag.go" "com-airlock-outer") + ("atoll-windmill-ag.go" "atoll-windmill") + ("turbine-ag.go" "turbine") + ("slider-ag.go" "slider") + ("gun-buoy-ag.go" "gun-buoy") + ("atoll-hatch-ag.go" "atoll-hatch") + ("atoll-valve-ag.go" "atoll-valve") + ("piston-ag.go" "piston") + ("atollrotpipe-ag.go" "atollrotpipe") + ("atoll-mar-symbol-ag.go" "atoll-mar-symbol") + ("atoll-vis.go" "atoll-vis") + ) diff --git a/goal_src/jak2/dgos/cab.gd b/goal_src/jak2/dgos/cab.gd new file mode 100644 index 000000000..bdca16a85 --- /dev/null +++ b/goal_src/jak2/dgos/cab.gd @@ -0,0 +1,19 @@ +("CAB.DGO" + ("casboss-texture.o" "casboss-texture") + ("castle-baron.o" "castle-baron") + ("castle-scenes.o" "castle-scenes") + ("casboss-part.o" "casboss-part") + ("tpage-2996.go" "tpage-2996") + ("tpage-2997.go" "tpage-2997") + ("tpage-3435.go" "tpage-3435") + ("tpage-3458.go" "tpage-3458") + ("tpage-3429.go" "tpage-3429") + ("krew-highres-ag.go" "krew-highres") + ("krew-lowres-ag.go" "krew-lowres") + ("cboss-tractor-ag.go" "cboss-tractor") + ("krew-clone-ag.go" "krew-clone") + ("com-airlock-outer-ag.go" "com-airlock-outer") + ("cboss-bomb-ag.go" "cboss-bomb") + ("cboss-elevator-ag.go" "cboss-elevator") + ("casboss-vis.go" "casboss-vis") + ) diff --git a/goal_src/jak2/dgos/cap.gd b/goal_src/jak2/dgos/cap.gd new file mode 100644 index 000000000..4d64d7527 --- /dev/null +++ b/goal_src/jak2/dgos/cap.gd @@ -0,0 +1,16 @@ +("CAP.DGO" + ("caspad-obs.o" "caspad-obs") + ("caspad-part.o" "caspad-part") + ("castle-tasks.o" "castle-tasks") + ("tpage-2537.go" "tpage-2537") + ("tpage-2539.go" "tpage-2539") + ("tpage-2538.go" "tpage-2538") + ("tpage-3498.go" "tpage-3498") + ("daxter-highres-ag.go" "daxter-highres") + ("jak-highres-ag.go" "jak-highres") + ("com-airlock-outer-ag.go" "com-airlock-outer") + ("air-train-ag.go" "air-train") + ("cpad-elevator-ag.go" "cpad-elevator") + ("particleman-ag.go" "particleman") + ("caspad-vis.go" "caspad-vis") + ) diff --git a/goal_src/jak2/dgos/cas.gd b/goal_src/jak2/dgos/cas.gd new file mode 100644 index 000000000..64c63c7f4 --- /dev/null +++ b/goal_src/jak2/dgos/cas.gd @@ -0,0 +1,30 @@ +("CAS.DGO" + ("crimson-guard-level.o" "crimson-guard-level") + ("guard-conversation.o" "guard-conversation") + ("transport-level.o" "transport-level") + ("roboguard-level.o" "roboguard-level") + ("castle-texture.o" "castle-texture") + ("castle-obs.o" "castle-obs") + ("castle-part.o" "castle-part") + ("tpage-2865.go" "tpage-2865") + ("tpage-2867.go" "tpage-2867") + ("tpage-2866.go" "tpage-2866") + ("tpage-3124.go" "tpage-3124") + ("tpage-2970.go" "tpage-2970") + ("roboguard-ag.go" "roboguard") + ("crimson-guard-ag.go" "crimson-guard") + ("com-airlock-outer-ag.go" "com-airlock-outer") + ("cas-rot-bridge-ag.go" "cas-rot-bridge") + ("cas-electric-fence-ag.go" "cas-electric-fence") + ("cas-rot-blade-ag.go" "cas-rot-blade") + ("switch-ag.go" "cas-switch") + ("cas-conveyor-switch-ag.go" "cas-conveyor-switch") + ("cas-robot-door-ag.go" "cas-robot-door") + ("cas-trapdoor-ag.go" "cas-trapdoor") + ("cas-chain-plat-ag.go" "cas-chain-plat") + ("cas-elevator-ag.go" "cas-elevator") + ("cas-button-ag.go" "cas-button") + ("cas-flag-a-ag.go" "cas-flag-a") + ("cas-flag-b-ag.go" "cas-flag-b") + ("castle-vis.go" "castle-vis") + ) diff --git a/goal_src/jak2/dgos/cascity.gd b/goal_src/jak2/dgos/cascity.gd new file mode 100644 index 000000000..f0252ddb0 --- /dev/null +++ b/goal_src/jak2/dgos/cascity.gd @@ -0,0 +1,8 @@ +("CASCITY.DGO" + ("tpage-3221.go" "tpage-3221") + ("tpage-3222.go" "tpage-3222") + ("tpage-3425.go" "tpage-3425") + ("searchlight-ag.go" "searchlight") + ("pal-windmill-ag.go" "pal-windmill") + ("cascity.go" "cascity") + ) diff --git a/goal_src/jak2/dgos/casext.gd b/goal_src/jak2/dgos/casext.gd new file mode 100644 index 000000000..ccbbd646b --- /dev/null +++ b/goal_src/jak2/dgos/casext.gd @@ -0,0 +1,13 @@ +("CASEXT.DGO" + ("tpage-2597.go" "tpage-2597") + ("tpage-3424.go" "tpage-3424") + ("tpage-3315.go" "tpage-3315") + ("daxter-highres-ag.go" "daxter-highres") + ("jak-highres-ag.go" "jak-highres") + ("ashelin-highres-ag.go" "ashelin-highres") + ("hellcat-ag.go" "hellcat") + ("heart-of-mar-ag.go" "heart-of-mar") + ("gun-upgrade-a-ag.go" "gun-upgrade-a") + ("particleman-ag.go" "particleman") + ("casext.go" "casext") + ) diff --git a/goal_src/jak2/dgos/cfa.gd b/goal_src/jak2/dgos/cfa.gd new file mode 100644 index 000000000..7f27691c7 --- /dev/null +++ b/goal_src/jak2/dgos/cfa.gd @@ -0,0 +1,22 @@ +("CFA.DGO" + ("ctyfarm-obs.o" "ctyfarm-obs") + ("ctyfarma-part.o" "ctyfarma-part") + ("ctyfarmb-part.o" "ctyfarmb-part") + ("yakow.o" "yakow") + ("tpage-2444.go" "tpage-2444") + ("tpage-2445.go" "tpage-2445") + ("tpage-2645.go" "tpage-2645") + ("tpage-2644.go" "tpage-2644") + ("tpage-2744.go" "tpage-2744") + ("tpage-2791.go" "tpage-2791") + ("tpage-2441.go" "tpage-2441") + ("com-airlock-outer-ag.go" "com-airlock-outer") + ("com-airlock-inner-ag.go" "com-airlock-inner") + ("farm-chilirots-ag.go" "farm-chilirots") + ("farm-cabbage-ag.go" "farm-cabbage") + ("farm-marrow-ag.go" "farm-marrow") + ("farm-beetree-ag.go" "farm-beetree") + ("farm-small-cabbage-ag.go" "farm-small-cabbage") + ("farm-sprinkler-barrels-ag.go" "farm-sprinkler-barrels") + ("ctyfarma-vis.go" "ctyfarma-vis") + ) diff --git a/goal_src/jak2/dgos/cfb.gd b/goal_src/jak2/dgos/cfb.gd new file mode 100644 index 000000000..9cac0bef5 --- /dev/null +++ b/goal_src/jak2/dgos/cfb.gd @@ -0,0 +1,21 @@ +("CFB.DGO" + ("ctyfarm-obs.o" "ctyfarm-obs") + ("ctyfarma-part.o" "ctyfarma-part") + ("ctyfarmb-part.o" "ctyfarmb-part") + ("yakow.o" "yakow") + ("tpage-3005.go" "tpage-3005") + ("tpage-3009.go" "tpage-3009") + ("tpage-3007.go" "tpage-3007") + ("tpage-3008.go" "tpage-3008") + ("tpage-3006.go" "tpage-3006") + ("tpage-3004.go" "tpage-3004") + ("tpage-2442.go" "tpage-2442") + ("yakow-ag.go" "yakow") + ("farm-chilirots-ag.go" "farm-chilirots") + ("farm-cabbage-ag.go" "farm-cabbage") + ("farm-marrow-ag.go" "farm-marrow") + ("farm-beetree-ag.go" "farm-beetree") + ("farm-small-cabbage-ag.go" "farm-small-cabbage") + ("farm-sprinkler-barrels-ag.go" "farm-sprinkler-barrels") + ("ctyfarmb-vis.go" "ctyfarmb-vis") + ) diff --git a/goal_src/jak2/dgos/cga.gd b/goal_src/jak2/dgos/cga.gd new file mode 100644 index 000000000..bc226a712 --- /dev/null +++ b/goal_src/jak2/dgos/cga.gd @@ -0,0 +1,10 @@ +("CGA.DGO" + ("ctygena-part.o" "ctygena-part") + ("neon-praxis-part.o" "neon-praxis-part") + ("tpage-1137.go" "tpage-1137") + ("tpage-1138.go" "tpage-1138") + ("tpage-1117.go" "tpage-1117") + ("tpage-1637.go" "tpage-1637") + ("ctyn-lamp-ag.go" "ctyn-lamp") + ("ctygena-vis.go" "ctygena-vis") + ) diff --git a/goal_src/jak2/dgos/cgb.gd b/goal_src/jak2/dgos/cgb.gd new file mode 100644 index 000000000..a6733d231 --- /dev/null +++ b/goal_src/jak2/dgos/cgb.gd @@ -0,0 +1,11 @@ +("CGB.DGO" + ("ctygenb-part.o" "ctygenb-part") + ("tpage-955.go" "tpage-955") + ("tpage-957.go" "tpage-957") + ("tpage-956.go" "tpage-956") + ("tpage-958.go" "tpage-958") + ("tpage-1019.go" "tpage-1019") + ("tpage-1638.go" "tpage-1638") + ("com-airlock-outer-ag.go" "com-airlock-outer") + ("ctygenb-vis.go" "ctygenb-vis") + ) diff --git a/goal_src/jak2/dgos/cgc.gd b/goal_src/jak2/dgos/cgc.gd new file mode 100644 index 000000000..bfca76cf4 --- /dev/null +++ b/goal_src/jak2/dgos/cgc.gd @@ -0,0 +1,9 @@ +("CGC.DGO" + ("ctygenc-part.o" "ctygenc-part") + ("tpage-1605.go" "tpage-1605") + ("tpage-2285.go" "tpage-2285") + ("tpage-1612.go" "tpage-1612") + ("tpage-1639.go" "tpage-1639") + ("ctyn-lamp-ag.go" "ctyn-lamp") + ("ctygenc-vis.go" "ctygenc-vis") + ) diff --git a/goal_src/jak2/dgos/cia.gd b/goal_src/jak2/dgos/cia.gd new file mode 100644 index 000000000..27f663f1a --- /dev/null +++ b/goal_src/jak2/dgos/cia.gd @@ -0,0 +1,10 @@ +("CIA.DGO" + ("ctyinda-part.o" "ctyinda-part") + ("ctyinda-obs.o" "ctyinda-obs") + ("tpage-1561.go" "tpage-1561") + ("tpage-1562.go" "tpage-1562") + ("tpage-1361.go" "tpage-1361") + ("tpage-1640.go" "tpage-1640") + ("door-ctyinda-ag.go" "vin-door-ctyinda") + ("ctyinda-vis.go" "ctyinda-vis") + ) diff --git a/goal_src/jak2/dgos/cib.gd b/goal_src/jak2/dgos/cib.gd new file mode 100644 index 000000000..f7840a8f8 --- /dev/null +++ b/goal_src/jak2/dgos/cib.gd @@ -0,0 +1,11 @@ +("CIB.DGO" + ("ctyindb-part.o" "ctyindb-part") + ("ctyindb-obs.o" "ctyindb-obs") + ("tpage-1565.go" "tpage-1565") + ("tpage-1577.go" "tpage-1577") + ("tpage-1601.go" "tpage-1601") + ("tpage-1614.go" "tpage-1614") + ("tpage-1642.go" "tpage-1642") + ("com-airlock-outer-ag.go" "com-airlock-outer") + ("ctyindb-vis.go" "ctyindb-vis") + ) diff --git a/goal_src/jak2/dgos/cma.gd b/goal_src/jak2/dgos/cma.gd new file mode 100644 index 000000000..d005bb3b8 --- /dev/null +++ b/goal_src/jak2/dgos/cma.gd @@ -0,0 +1,19 @@ +("CMA.DGO" + ("ctymark-obs.o" "ctymark-obs") + ("ctymarka-part.o" "ctymarka-part") + ("ctymarkb-part.o" "ctymarkb-part") + ("tpage-2739.go" "tpage-2739") + ("tpage-2743.go" "tpage-2743") + ("tpage-2740.go" "tpage-2740") + ("tpage-2741.go" "tpage-2741") + ("tpage-2742.go" "tpage-2742") + ("tpage-1615.go" "tpage-1615") + ("tpage-1643.go" "tpage-1643") + ("market-sack-b-ag.go" "market-sack-b") + ("market-sack-a-ag.go" "market-sack-a") + ("market-crate-ag.go" "market-crate") + ("market-basket-b-ag.go" "market-basket-b") + ("market-basket-a-ag.go" "market-basket-a") + ("cty-fruit-stand-ag.go" "cty-fruit-stand") + ("ctymarka-vis.go" "ctymarka-vis") + ) diff --git a/goal_src/jak2/dgos/cmb.gd b/goal_src/jak2/dgos/cmb.gd new file mode 100644 index 000000000..30d870797 --- /dev/null +++ b/goal_src/jak2/dgos/cmb.gd @@ -0,0 +1,19 @@ +("CMB.DGO" + ("ctymark-obs.o" "ctymark-obs") + ("ctymarka-part.o" "ctymarka-part") + ("ctymarkb-part.o" "ctymarkb-part") + ("tpage-2734.go" "tpage-2734") + ("tpage-2738.go" "tpage-2738") + ("tpage-2735.go" "tpage-2735") + ("tpage-2737.go" "tpage-2737") + ("tpage-2736.go" "tpage-2736") + ("tpage-1616.go" "tpage-1616") + ("tpage-1644.go" "tpage-1644") + ("market-sack-b-ag.go" "market-sack-b") + ("market-sack-a-ag.go" "market-sack-a") + ("market-crate-ag.go" "market-crate") + ("market-basket-b-ag.go" "market-basket-b") + ("market-basket-a-ag.go" "market-basket-a") + ("cty-fruit-stand-ag.go" "cty-fruit-stand") + ("ctymarkb-vis.go" "ctymarkb-vis") + ) diff --git a/goal_src/jak2/dgos/coa.gd b/goal_src/jak2/dgos/coa.gd new file mode 100644 index 000000000..688347e5e --- /dev/null +++ b/goal_src/jak2/dgos/coa.gd @@ -0,0 +1,25 @@ +("COA.DGO" + ("jak-pole+0-ag.go" "jak-pole+0") + ("consite-texture.o" "consite-texture") + ("consite-part.o" "consite-part") + ("consite-scenes.o" "consite-scenes") + ("consite-obs.o" "consite-obs") + ("baron-consite+0-ag.go" "baron-consite+0") + ("tpage-3030.go" "tpage-3030") + ("tpage-3031.go" "tpage-3031") + ("tpage-3029.go" "tpage-3029") + ("tpage-3141.go" "tpage-3141") + ("consite-break-scaffold-a-ag.go" "consite-break-scaffold-a") + ("consite-break-scaffold-ag.go" "consite-break-scaffold") + ("daxter-highres-ag.go" "daxter-highres") + ("jak-highres-ag.go" "jak-highres") + ("baron-highres-ag.go" "baron-highres") + ("crimson-guard-highres-ag.go" "crimson-guard-highres") + ("consite-bomb-elevator-ag.go" "consite-bomb-elevator") + ("crimson-guard-lowres-ag.go" "crimson-guard-lowres") + ("com-airlock-outer-ag.go" "com-airlock-outer") + ("consite-silo-doors-ag.go" "consite-silo-doors") + ("precursor-stone-ag.go" "precursor-stone") + ("bomb-trigger-ag.go" "bomb-trigger") + ("consite-vis.go" "consite-vis") + ) diff --git a/goal_src/jak2/dgos/cob.gd b/goal_src/jak2/dgos/cob.gd new file mode 100644 index 000000000..8b5061470 --- /dev/null +++ b/goal_src/jak2/dgos/cob.gd @@ -0,0 +1,15 @@ +("COB.DGO" + ("consiteb-part.o" "consiteb-part") + ("tpage-3032.go" "tpage-3032") + ("tpage-3033.go" "tpage-3033") + ("tpage-3142.go" "tpage-3142") + ("tpage-3180.go" "tpage-3180") + ("tpage-3239.go" "tpage-3239") + ("kor-transform-ag.go" "kor-transform") + ("kor-break-ag.go" "kor-break") + ("metalkor-highres-ag.go" "metalkor-highres") + ("com-airlock-inner-ag.go" "com-airlock-inner") + ("door-ctyinda-ag.go" "vin-door-ctyinda") + ("kor-break-ray-ag.go" "kor-break-ray") + ("consiteb-vis.go" "consiteb-vis") + ) diff --git a/goal_src/jak2/dgos/common.gd b/goal_src/jak2/dgos/common.gd index 64f4e71dd..42f3db7aa 100644 --- a/goal_src/jak2/dgos/common.gd +++ b/goal_src/jak2/dgos/common.gd @@ -34,4 +34,4 @@ ("battle.o" "battle") ("elec-gate.o" "elec-gate") ("cty-guard-turret-button.o" "cty-guard-turret-button") - ) \ No newline at end of file + ) diff --git a/goal_src/jak2/dgos/cpa.gd b/goal_src/jak2/dgos/cpa.gd new file mode 100644 index 000000000..850691765 --- /dev/null +++ b/goal_src/jak2/dgos/cpa.gd @@ -0,0 +1,16 @@ +("CPA.DGO" + ("ctypal-part.o" "ctypal-part") + ("ctypal-obs.o" "ctypal-obs") + ("tpage-2526.go" "tpage-2526") + ("tpage-2527.go" "tpage-2527") + ("tpage-3423.go" "tpage-3423") + ("tpage-2528.go" "tpage-2528") + ("tpage-1636.go" "tpage-1636") + ("ctypal-baron-statue-broken-ag.go" "ctypal-baron-statue-broken") + ("com-airlock-outer-ag.go" "com-airlock-outer") + ("com-airlock-inner-ag.go" "com-airlock-inner") + ("water-anim-ctypal-ag.go" "water-anim-ctypal") + ("palace-door-ag.go" "palace-door") + ("ctypal-broke-wall-ag.go" "ctypal-broke-wall") + ("ctypal-vis.go" "ctypal-vis") + ) diff --git a/goal_src/jak2/dgos/cpo.gd b/goal_src/jak2/dgos/cpo.gd new file mode 100644 index 000000000..2b25495d0 --- /dev/null +++ b/goal_src/jak2/dgos/cpo.gd @@ -0,0 +1,14 @@ +("CPO.DGO" + ("ctyport-part.o" "ctyport-part") + ("tpage-1557.go" "tpage-1557") + ("tpage-1560.go" "tpage-1560") + ("tpage-1558.go" "tpage-1558") + ("tpage-1325.go" "tpage-1325") + ("tpage-1645.go" "tpage-1645") + ("barge-ag.go" "barge") + ("mecha-daxter-ag.go" "mecha-daxter") + ("farthy-ag.go" "farthy") + ("air-train-ag.go" "air-train") + ("hip-door-a-ag.go" "hip-door-a") + ("ctyport-vis.go" "ctyport-vis") + ) diff --git a/goal_src/jak2/dgos/cta.gd b/goal_src/jak2/dgos/cta.gd index 49c7555b4..25590d4e0 100644 --- a/goal_src/jak2/dgos/cta.gd +++ b/goal_src/jak2/dgos/cta.gd @@ -10,4 +10,4 @@ ("cty-fruit-stand-ag.go" "cty-fruit-stand") ("hide-door-a-ag.go" "hide-door-a") ("ctysluma-vis.go" "ctysluma-vis") - ) \ No newline at end of file + ) diff --git a/goal_src/jak2/dgos/ctb.gd b/goal_src/jak2/dgos/ctb.gd new file mode 100644 index 000000000..bd3ea2448 --- /dev/null +++ b/goal_src/jak2/dgos/ctb.gd @@ -0,0 +1,12 @@ +("CTB.DGO" + ("ctyslumb-part.o" "ctyslumb-part") + ("tpage-977.go" "tpage-977") + ("tpage-1308.go" "tpage-1308") + ("tpage-978.go" "tpage-978") + ("tpage-1022.go" "tpage-1022") + ("tpage-1647.go" "tpage-1647") + ("com-airlock-outer-ag.go" "com-airlock-outer") + ("com-airlock-inner-ag.go" "com-airlock-inner") + ("fort-entry-gate-ag.go" "fort-entry-gate") + ("ctyslumb-vis.go" "ctyslumb-vis") + ) diff --git a/goal_src/jak2/dgos/ctc.gd b/goal_src/jak2/dgos/ctc.gd new file mode 100644 index 000000000..773ed23ce --- /dev/null +++ b/goal_src/jak2/dgos/ctc.gd @@ -0,0 +1,11 @@ +("CTC.DGO" + ("ctyslumc-part.o" "ctyslumc-part") + ("tpage-1268.go" "tpage-1268") + ("tpage-1303.go" "tpage-1303") + ("tpage-1269.go" "tpage-1269") + ("tpage-1023.go" "tpage-1023") + ("tpage-1648.go" "tpage-1648") + ("com-airlock-outer-ag.go" "com-airlock-outer") + ("door-ag.go" "oracle-door") + ("ctyslumc-vis.go" "ctyslumc-vis") + ) diff --git a/goal_src/jak2/dgos/ctyasha.gd b/goal_src/jak2/dgos/ctyasha.gd new file mode 100644 index 000000000..9dbeb3d41 --- /dev/null +++ b/goal_src/jak2/dgos/ctyasha.gd @@ -0,0 +1,33 @@ +("CTYASHA.DGO" + ("ai-task-h.o" "ai-task-h") + ("bot-h.o" "bot-h") + ("bot.o" "bot") + ("bot-states.o" "bot-states") + ("ash-h.o" "ash-h") + ("ash-task.o" "ash-task") + ("ash-shot.o" "ash-shot") + ("ash.o" "ash") + ("ash-states.o" "ash-states") + ("juicer.o" "juicer") + ("ctyasha-obs.o" "ctyasha-obs") + ("ash4-course.o" "ash4-course") + ("tpage-1496.go" "tpage-1496") + ("tpage-1409.go" "tpage-1409") + ("tpage-3240.go" "tpage-3240") + ("tpage-3416.go" "tpage-3416") + ("daxter-highres-ag.go" "daxter-highres") + ("grunt-ag.go" "grunt") + ("jak-highres-ag.go" "jak-highres") + ("juicer-ag.go" "juicer") + ("ashelin-highres-ag.go" "ashelin-highres") + ("ashelin-ag.go" "ashelin") + ("crimson-guard-highres-ag.go" "crimson-guard-highres") + ("tanker-ag.go" "tanker") + ("crimson-guard-lowres-ag.go" "crimson-guard-lowres") + ("tanker-roof-break-ag.go" "tanker-roof-break") + ("tanker-crash-ag.go" "tanker-crash") + ("tanker-barrels-ag.go" "tanker-barrels") + ("tanker-container-ag.go" "tanker-container") + ("tanker-one-barrel-ag.go" "tanker-one-barrel") + ("ctyasha.go" "ctyasha") + ) diff --git a/goal_src/jak2/dgos/ctykora.gd b/goal_src/jak2/dgos/ctykora.gd new file mode 100644 index 000000000..2cf34ca52 --- /dev/null +++ b/goal_src/jak2/dgos/ctykora.gd @@ -0,0 +1,35 @@ +("CTYKORA.DGO" + ("ai-task-h.o" "ai-task-h") + ("bot-h.o" "bot-h") + ("bot.o" "bot") + ("bot-states.o" "bot-states") + ("hal-h.o" "hal-h") + ("hal-task.o" "hal-task") + ("hal.o" "hal") + ("kid-h.o" "kid-h") + ("kor-h.o" "kor-h") + ("hal3-course.o" "hal3-course") + ("kid-task.o" "kid-task") + ("kid.o" "kid") + ("kid-states.o" "kid-states") + ("kor-task.o" "kor-task") + ("kor.o" "kor") + ("kor-states.o" "kor-states") + ("kid3-course.o" "kid3-course") + ("kor3-course.o" "kor3-course") + ("jak-dark-on+0-ag.go" "jak-dark-on+0") + ("tpage-1451.go" "tpage-1451") + ("tpage-2727.go" "tpage-2727") + ("tpage-3224.go" "tpage-3224") + ("daxter-highres-ag.go" "daxter-highres") + ("jak-highres-ag.go" "jak-highres") + ("kor-highres-ag.go" "kor-highres") + ("atoll-hellcat-ag.go" "atoll-hellcat") + ("kor-ag.go" "kor") + ("kid-highres-ag.go" "kid-highres") + ("crimson-guard-highres-ag.go" "crimson-guard-highres") + ("kid-ag.go" "kid") + ("crimson-guard-lowres-ag.go" "crimson-guard-lowres") + ("transport-ag.go" "transport") + ("ctykora.go" "ctykora") + ) diff --git a/goal_src/jak2/dgos/cwi.gd b/goal_src/jak2/dgos/cwi.gd index ec4c1147b..7fae950fd 100644 --- a/goal_src/jak2/dgos/cwi.gd +++ b/goal_src/jak2/dgos/cwi.gd @@ -65,4 +65,4 @@ ("stadium-barrier-ag.go" "stadium-barrier") ("security-wall-ag.go" "security-wall") ("ctywide-vis.go" "ctywide-vis") - ) \ No newline at end of file + ) diff --git a/goal_src/jak2/dgos/d3a.gd b/goal_src/jak2/dgos/d3a.gd new file mode 100644 index 000000000..4f050d5fc --- /dev/null +++ b/goal_src/jak2/dgos/d3a.gd @@ -0,0 +1,49 @@ +("D3A.DGO" + ("hover-formation-h.o" "hover-formation-h") + ("hover-nav-control-h.o" "hover-nav-control-h") + ("hover-enemy-h.o" "hover-enemy-h") + ("hover-nav-network.o" "hover-nav-network") + ("hover-nav-control.o" "hover-nav-control") + ("hover-enemy.o" "hover-enemy") + ("hover-enemy-battle.o" "hover-enemy-battle") + ("hover-formation.o" "hover-formation") + ("hover-nav-edit.o" "hover-nav-edit") + ("wasp-part.o" "wasp-part") + ("wasp.o" "wasp") + ("crimson-guard-hover.o" "crimson-guard-hover") + ("flamer.o" "flamer") + ("dig-digger.o" "dig-digger") + ("dig-obs.o" "dig-obs") + ("dig1-obs.o" "dig1-obs") + ("dig2-obs.o" "dig2-obs") + ("dig3-obs.o" "dig3-obs") + ("tomb-baby-spider.o" "tomb-baby-spider") + ("grenadier.o" "grenadier") + ("metalmonk.o" "metalmonk") + ("dig-texture.o" "dig-texture") + ("dig-scenes.o" "dig-scenes") + ("dig-part.o" "dig-part") + ("tpage-2290.go" "tpage-2290") + ("tpage-2292.go" "tpage-2292") + ("tpage-2291.go" "tpage-2291") + ("tpage-2782.go" "tpage-2782") + ("tpage-3361.go" "tpage-3361") + ("grenadier-ag.go" "grenadier") + ("metalmonk-ag.go" "metalmonk") + ("flitter-ag.go" "flitter") + ("dig-balloon-lurker-ag.go" "dig-balloon-lurker") + ("dig-spikey-sphere-ag.go" "dig-spikey-sphere") + ("dig-totem-ag.go" "dig-totem") + ("dig-wheel-step-ag.go" "dig-wheel-step") + ("warp-gate-ag.go" "warp-gate") + ("dig-spikey-step-ag.go" "dig-spikey-step") + ("dig-stomp-block-ag.go" "dig-stomp-block") + ("dig-totem-fish-ag.go" "dig-totem-fish") + ("seal-of-mar-base-ag.go" "seal-of-mar-base") + ("dig-tipping-rock-ag.go" "dig-tipping-rock") + ("dig-sinking-plat-ag.go" "dig-sinking-plat") + ("dig-log-ag.go" "dig-log") + ("dig-spikey-sphere-door-ag.go" "dig-spikey-sphere-door") + ("dig-button-ag.go" "dig-button") + ("dig3a-vis.go" "dig3a-vis") + ) diff --git a/goal_src/jak2/dgos/d3b.gd b/goal_src/jak2/dgos/d3b.gd new file mode 100644 index 000000000..bca6ffc56 --- /dev/null +++ b/goal_src/jak2/dgos/d3b.gd @@ -0,0 +1,9 @@ +("D3B.DGO" + ("jak-pole+0-ag.go" "jak-pole+0") + ("tpage-2406.go" "tpage-2406") + ("tpage-2407.go" "tpage-2407") + ("tpage-3548.go" "tpage-3548") + ("daxter-highres-ag.go" "daxter-highres") + ("jak-highres-ag.go" "jak-highres") + ("dig3b-vis.go" "dig3b-vis") + ) diff --git a/goal_src/jak2/dgos/demo.gd b/goal_src/jak2/dgos/demo.gd new file mode 100644 index 000000000..c3319765d --- /dev/null +++ b/goal_src/jak2/dgos/demo.gd @@ -0,0 +1,10 @@ +("DEMO.DGO" + ("demo-obs.o" "demo-obs") + ("tpage-1872.go" "tpage-1872") + ("tpage-1876.go" "tpage-1876") + ("tpage-1868.go" "tpage-1868") + ("daxter-highres-ag.go" "daxter-highres") + ("jak-logo-ag.go" "jak-logo") + ("jak-stand-ag.go" "jak-stand") + ("demo.go" "demo") + ) diff --git a/goal_src/jak2/dgos/dg1.gd b/goal_src/jak2/dgos/dg1.gd new file mode 100644 index 000000000..973c7695d --- /dev/null +++ b/goal_src/jak2/dgos/dg1.gd @@ -0,0 +1,33 @@ +("DG1.DGO" + ("crimson-guard-level.o" "crimson-guard-level") + ("guard-conversation.o" "guard-conversation") + ("transport-level.o" "transport-level") + ("dig-digger.o" "dig-digger") + ("dig-obs.o" "dig-obs") + ("dig1-obs.o" "dig1-obs") + ("dig2-obs.o" "dig2-obs") + ("dig3-obs.o" "dig3-obs") + ("tomb-baby-spider.o" "tomb-baby-spider") + ("grenadier.o" "grenadier") + ("metalmonk.o" "metalmonk") + ("dig-texture.o" "dig-texture") + ("dig-scenes.o" "dig-scenes") + ("dig-part.o" "dig-part") + ("tpage-2282.go" "tpage-2282") + ("tpage-2284.go" "tpage-2284") + ("tpage-2283.go" "tpage-2283") + ("tpage-2419.go" "tpage-2419") + ("tpage-2844.go" "tpage-2844") + ("dig-digger-ag.go" "dig-digger") + ("crimson-guard-ag.go" "crimson-guard") + ("dig-bomb-crate-ag.go" "dig-bomb-crate") + ("dig-conveyor-ag.go" "dig-conveyor") + ("dig-clasp-ag.go" "dig-clasp") + ("dig-tether-ag.go" "dig-tether") + ("dig-jump-pad-ag.go" "dig-jump-pad") + ("dig-breakable-door-ag.go" "dig-breakable-door") + ("dig-sinking-plat-ag.go" "dig-sinking-plat") + ("dig-clasp-b-ag.go" "dig-clasp-b") + ("dig-bomb-crate-cylinder-ag.go" "dig-bomb-crate-cylinder") + ("dig1-vis.go" "dig1-vis") + ) diff --git a/goal_src/jak2/dgos/dmi.gd b/goal_src/jak2/dgos/dmi.gd new file mode 100644 index 000000000..017b2637a --- /dev/null +++ b/goal_src/jak2/dgos/dmi.gd @@ -0,0 +1,43 @@ +("DMI.DGO" + ("jak-pole+0-ag.go" "jak-pole+0") + ("hover-formation-h.o" "hover-formation-h") + ("hover-nav-control-h.o" "hover-nav-control-h") + ("hover-enemy-h.o" "hover-enemy-h") + ("hover-nav-network.o" "hover-nav-network") + ("hover-nav-control.o" "hover-nav-control") + ("hover-enemy.o" "hover-enemy") + ("hover-enemy-battle.o" "hover-enemy-battle") + ("hover-formation.o" "hover-formation") + ("hover-nav-edit.o" "hover-nav-edit") + ("wasp-part.o" "wasp-part") + ("wasp.o" "wasp") + ("crimson-guard-hover.o" "crimson-guard-hover") + ("flamer.o" "flamer") + ("target-turret-shot.o" "target-turret-shot") + ("target-turret.o" "target-turret") + ("jak-turret+0-ag.go" "jak-turret+0") + ("drill-turret.o" "drill-turret") + ("drillmid-obs.o" "drillmid-obs") + ("drill-part.o" "drill-part") + ("drill-part2.o" "drill-part2") + ("drill-mech-master.o" "drill-mech-master") + ("drill-obs.o" "drill-obs") + ("drill-panel.o" "drill-panel") + ("drill-obs2.o" "drill-obs2") + ("drill-spool.o" "drill-spool") + ("drill-baron.o" "drill-baron") + ("drill-scenes.o" "drill-scenes") + ("centurion.o" "centurion") + ("ginsu.o" "ginsu") + ("tpage-2300.go" "tpage-2300") + ("tpage-2302.go" "tpage-2302") + ("tpage-2301.go" "tpage-2301") + ("tpage-2493.go" "tpage-2493") + ("tpage-2303.go" "tpage-2303") + ("tpage-2565.go" "tpage-2565") + ("tpage-2846.go" "tpage-2846") + ("mech-ag.go" "mech") + ("warp-gate-ag.go" "warp-gate") + ("drill-falling-door-ag.go" "drill-falling-door") + ("drillmid-vis.go" "drillmid-vis") + ) diff --git a/goal_src/jak2/dgos/drb.gd b/goal_src/jak2/dgos/drb.gd new file mode 100644 index 000000000..2ffa49b0d --- /dev/null +++ b/goal_src/jak2/dgos/drb.gd @@ -0,0 +1,12 @@ +("DRB.DGO" + ("tpage-2298.go" "tpage-2298") + ("tpage-2299.go" "tpage-2299") + ("tpage-2492.go" "tpage-2492") + ("drill-elevator-ag.go" "drill-elevator") + ("drill-flip-step-ag.go" "drill-flip-step") + ("drill-elevator-base-ag.go" "drill-elevator-base") + ("drill-falling-door-ag.go" "drill-falling-door") + ("drill-drop-plat-ag.go" "drill-drop-plat") + ("drill-switch-ag.go" "drill-switch") + ("drillb-vis.go" "drillb-vis") + ) diff --git a/goal_src/jak2/dgos/dri.gd b/goal_src/jak2/dgos/dri.gd new file mode 100644 index 000000000..b468401ca --- /dev/null +++ b/goal_src/jak2/dgos/dri.gd @@ -0,0 +1,23 @@ +("DRI.DGO" + ("tpage-1204.go" "tpage-1204") + ("tpage-1205.go" "tpage-1205") + ("tpage-1239.go" "tpage-1239") + ("tpage-1203.go" "tpage-1203") + ("tpage-1206.go" "tpage-1206") + ("centurion-ag.go" "centurion") + ("drill-turret-ext-ag.go" "drill-turret-ext") + ("mech-ag.go" "mech") + ("port-turret-ag.go" "port-turret") + ("ginsu-ag.go" "ginsu") + ("drill-elevator-ag.go" "drill-elevator") + ("drill-plat-falling-ag.go" "drill-plat-falling") + ("drill-bridge-shot-ag.go" "drill-bridge-shot") + ("warp-gate-ag.go" "warp-gate") + ("drill-elevator-base-ag.go" "drill-elevator-base") + ("drill-wall-ag.go" "drill-wall") + ("drill-metalhead-eggs-c-ag.go" "drill-metalhead-eggs-c") + ("drill-metalhead-eggs-b-ag.go" "drill-metalhead-eggs-b") + ("drill-metalhead-eggs-a-ag.go" "drill-metalhead-eggs-a") + ("drill-turret-int-ag.go" "drill-turret-int") + ("drill-vis.go" "drill-vis") + ) diff --git a/goal_src/jak2/dgos/drillmtn.gd b/goal_src/jak2/dgos/drillmtn.gd new file mode 100644 index 000000000..436b3e814 --- /dev/null +++ b/goal_src/jak2/dgos/drillmtn.gd @@ -0,0 +1,34 @@ +("DRILLMTN.DGO" + ("jak-mech+0-ag.go" "jak-mech+0") + ("grunt-mech-anims+0-ag.go" "grunt-mech-anims+0") + ("mech-part.o" "mech-part") + ("mech.o" "mech") + ("target-mech.o" "target-mech") + ("mech-states.o" "mech-states") + ("grunt-mech.o" "grunt-mech") + ("tpage-1877.go" "tpage-1877") + ("tpage-2535.go" "tpage-2535") + ("tpage-2624.go" "tpage-2624") + ("drill-top-break-ag.go" "drill-top-break") + ("drill-barons-ship-ag.go" "drill-barons-ship") + ("grunt-ag.go" "grunt") + ("drill-control-panel-ag.go" "drill-control-panel") + ("drill-crane-ag.go" "drill-crane") + ("crimson-guard-hover-ag.go" "crimson-guard-hover") + ("wasp-ag.go" "wasp") + ("drill-turret-ext-ag.go" "drill-turret-ext") + ("mech-ag.go" "mech") + ("drill-drill-ag.go" "drill-drill") + ("port-turret-ag.go" "port-turret") + ("drill-flip-step-ag.go" "drill-flip-step") + ("drill-lift-ag.go" "drill-lift") + ("drill-elevator-doors-ag.go" "drill-elevator-doors") + ("drill-wall-ag.go" "drill-wall") + ("drill-metalhead-eggs-c-ag.go" "drill-metalhead-eggs-c") + ("drill-metalhead-eggs-b-ag.go" "drill-metalhead-eggs-b") + ("drill-metalhead-eggs-a-ag.go" "drill-metalhead-eggs-a") + ("drill-switch-ag.go" "drill-switch") + ("drill-turret-int-ag.go" "drill-turret-int") + ("drill-moving-staircase-ag.go" "drill-moving-staircase") + ("drillmtn.go" "drillmtn") + ) diff --git a/goal_src/jak2/dgos/fda.gd b/goal_src/jak2/dgos/fda.gd new file mode 100644 index 000000000..6250dfaaa --- /dev/null +++ b/goal_src/jak2/dgos/fda.gd @@ -0,0 +1,23 @@ +("FDA.DGO" + ("jak-pole+0-ag.go" "jak-pole+0") + ("fordumpa-part.o" "fordumpa-part") + ("fordumpa-obs.o" "fordumpa-obs") + ("fordumpa-texture.o" "fordumpa-texture") + ("fort-robotank-turret.o" "fort-robotank-turret") + ("fort-robotank.o" "fort-robotank") + ("fort-turret.o" "fort-turret") + ("tpage-1589.go" "tpage-1589") + ("tpage-1588.go" "tpage-1588") + ("tpage-1590.go" "tpage-1590") + ("tpage-2490.go" "tpage-2490") + ("tpage-2909.go" "tpage-2909") + ("fort-fence-ag.go" "fort-fence") + ("fort-robotank-ag.go" "fort-robotank") + ("fort-turret-ag.go" "fort-turret") + ("fort-robotank-top-ag.go" "fort-robotank-top") + ("fort-elec-switch-ag.go" "fort-elec-switch") + ("fort-roboscreen-ag.go" "fort-roboscreen") + ("fort-entry-gate-ag.go" "fort-entry-gate") + ("fort-robotank-sight-ag.go" "fort-robotank-sight") + ("fordumpa-vis.go" "fordumpa-vis") + ) diff --git a/goal_src/jak2/dgos/fdb.gd b/goal_src/jak2/dgos/fdb.gd new file mode 100644 index 000000000..00e4067e8 --- /dev/null +++ b/goal_src/jak2/dgos/fdb.gd @@ -0,0 +1,20 @@ +("FDB.DGO" + ("crimson-guard-level.o" "crimson-guard-level") + ("guard-conversation.o" "guard-conversation") + ("transport-level.o" "transport-level") + ("fordumpb-obs.o" "fordumpb-obs") + ("fordumpb-part.o" "fordumpb-part") + ("fortress-obs.o" "fortress-obs") + ("fort-floor-spike.o" "fort-floor-spike") + ("tpage-1592.go" "tpage-1592") + ("tpage-1621.go" "tpage-1621") + ("tpage-1593.go" "tpage-1593") + ("fort-plat-orbit-ag.go" "fort-plat-orbit") + ("crimson-guard-ag.go" "crimson-guard") + ("fort-floor-spike-c-ag.go" "fort-floor-spike-c") + ("fort-floor-spike-b-ag.go" "fort-floor-spike-b") + ("fort-trap-door-ag.go" "fort-trap-door") + ("fort-plat-shuttle-ag.go" "fort-plat-shuttle") + ("fort-conveyor-ag.go" "fort-conveyor") + ("fordumpb-vis.go" "fordumpb-vis") + ) diff --git a/goal_src/jak2/dgos/fea.gd b/goal_src/jak2/dgos/fea.gd new file mode 100644 index 000000000..56f40c469 --- /dev/null +++ b/goal_src/jak2/dgos/fea.gd @@ -0,0 +1,14 @@ +("FEA.DGO" + ("crimson-guard-level.o" "crimson-guard-level") + ("guard-conversation.o" "guard-conversation") + ("transport-level.o" "transport-level") + ("jak-pole+0-ag.go" "jak-pole+0") + ("forexita-part.o" "forexita-part") + ("forexita-obs.o" "forexita-obs") + ("tpage-1580.go" "tpage-1580") + ("tpage-1583.go" "tpage-1583") + ("tpage-1581.go" "tpage-1581") + ("crimson-guard-ag.go" "crimson-guard") + ("fort-lift-plat-ag.go" "fort-lift-plat") + ("forexita-vis.go" "forexita-vis") + ) diff --git a/goal_src/jak2/dgos/feb.gd b/goal_src/jak2/dgos/feb.gd new file mode 100644 index 000000000..0265c2016 --- /dev/null +++ b/goal_src/jak2/dgos/feb.gd @@ -0,0 +1,15 @@ +("FEB.DGO" + ("target-tube.o" "target-tube") + ("jak-tube+0-ag.go" "jak-tube+0") + ("fortress-obs.o" "fortress-obs") + ("forexitb-part.o" "forexitb-part") + ("tpage-1584.go" "tpage-1584") + ("tpage-1587.go" "tpage-1587") + ("tpage-1585.go" "tpage-1585") + ("tpage-1586.go" "tpage-1586") + ("tpage-1712.go" "tpage-1712") + ("water-anim-fortress-ag.go" "water-anim-fortress") + ("fort-trap-door-ag.go" "fort-trap-door") + ("fort-entry-gate-ag.go" "fort-entry-gate") + ("forexitb-vis.go" "forexitb-vis") + ) diff --git a/goal_src/jak2/dgos/fob.gd b/goal_src/jak2/dgos/fob.gd new file mode 100644 index 000000000..a0ca4cddf --- /dev/null +++ b/goal_src/jak2/dgos/fob.gd @@ -0,0 +1,16 @@ +("FOB.DGO" + ("youngsamos-forestb+0-ag.go" "youngsamos-forestb+0") + ("tpage-2280.go" "tpage-2280") + ("tpage-2574.go" "tpage-2574") + ("tpage-2281.go" "tpage-2281") + ("tpage-3262.go" "tpage-3262") + ("tpage-3417.go" "tpage-3417") + ("daxter-highres-ag.go" "daxter-highres") + ("youngsamos-highres-ag.go" "youngsamos-highres") + ("jak-highres-ag.go" "jak-highres") + ("crimson-guard-ag.go" "crimson-guard") + ("crimson-guard-hover-ag.go" "crimson-guard-hover") + ("transport-ag.go" "transport") + ("life-seed-ag.go" "life-seed") + ("forestb-vis.go" "forestb-vis") + ) diff --git a/goal_src/jak2/dgos/for.gd b/goal_src/jak2/dgos/for.gd new file mode 100644 index 000000000..1e2782b56 --- /dev/null +++ b/goal_src/jak2/dgos/for.gd @@ -0,0 +1,42 @@ +("FOR.DGO" + ("spyder.o" "spyder") + ("crimson-guard-level.o" "crimson-guard-level") + ("guard-conversation.o" "guard-conversation") + ("transport-level.o" "transport-level") + ("hover-formation-h.o" "hover-formation-h") + ("hover-nav-control-h.o" "hover-nav-control-h") + ("hover-enemy-h.o" "hover-enemy-h") + ("hover-nav-network.o" "hover-nav-network") + ("hover-nav-control.o" "hover-nav-control") + ("hover-enemy.o" "hover-enemy") + ("hover-enemy-battle.o" "hover-enemy-battle") + ("hover-formation.o" "hover-formation") + ("hover-nav-edit.o" "hover-nav-edit") + ("wasp-part.o" "wasp-part") + ("wasp.o" "wasp") + ("crimson-guard-hover.o" "crimson-guard-hover") + ("flamer.o" "flamer") + ("forest-part.o" "forest-part") + ("forest-obs.o" "forest-obs") + ("jak-pegasus+0-ag.go" "jak-pegasus+0") + ("pegasus.o" "pegasus") + ("wren.o" "wren") + ("fish.o" "fish") + ("predator-h.o" "predator-h") + ("predator-graph.o" "predator-graph") + ("predator.o" "predator") + ("forest-scenes.o" "forest-scenes") + ("tpage-1414.go" "tpage-1414") + ("tpage-1416.go" "tpage-1416") + ("tpage-1415.go" "tpage-1415") + ("tpage-1413.go" "tpage-1413") + ("tpage-2335.go" "tpage-2335") + ("tpage-1411.go" "tpage-1411") + ("tpage-2845.go" "tpage-2845") + ("pegasus-ag.go" "pegasus") + ("predator-ag.go" "predator") + ("spyder-ag.go" "spyder") + ("wren-ag.go" "wren") + ("minnow-ag.go" "minnow") + ("forest-vis.go" "forest-vis") + ) diff --git a/goal_src/jak2/dgos/fordumpc.gd b/goal_src/jak2/dgos/fordumpc.gd new file mode 100644 index 000000000..dc7c6e169 --- /dev/null +++ b/goal_src/jak2/dgos/fordumpc.gd @@ -0,0 +1,25 @@ +("FORDUMPC.DGO" + ("fordumpa-texture.o" "fordumpa-texture") + ("fort-robotank-turret.o" "fort-robotank-turret") + ("fort-robotank.o" "fort-robotank") + ("fordumpc-part.o" "fordumpc-part") + ("fordumpc-obs.o" "fordumpc-obs") + ("fortress-scenes.o" "fortress-scenes") + ("tpage-1570.go" "tpage-1570") + ("tpage-1573.go" "tpage-1573") + ("tpage-1571.go" "tpage-1571") + ("tpage-2917.go" "tpage-2917") + ("tpage-2847.go" "tpage-2847") + ("daxter-highres-ag.go" "daxter-highres") + ("jak-highres-ag.go" "jak-highres") + ("fort-robotank-ag.go" "fort-robotank") + ("fort-missile-target-ag.go" "fort-missile-target") + ("fort-robotank-top-ag.go" "fort-robotank-top") + ("fort-roboscreen-ag.go" "fort-roboscreen") + ("fort-missile-ag.go" "fort-missile") + ("fort-entry-gate-ag.go" "fort-entry-gate") + ("fort-robotank-sight-ag.go" "fort-robotank-sight") + ("fort-dump-bomb-a-ag.go" "fort-dump-bomb-a") + ("particleman-ag.go" "particleman") + ("fordumpc.go" "fordumpc") + ) diff --git a/goal_src/jak2/dgos/fordumpd.gd b/goal_src/jak2/dgos/fordumpd.gd new file mode 100644 index 000000000..cc638e805 --- /dev/null +++ b/goal_src/jak2/dgos/fordumpd.gd @@ -0,0 +1,8 @@ +("FORDUMPD.DGO" + ("tpage-1574.go" "tpage-1574") + ("crimson-guard-highres-ag.go" "crimson-guard-highres") + ("crimson-guard-lowres-ag.go" "crimson-guard-lowres") + ("grunt-fma-ag.go" "grunt-fma") + ("palmpilot-ag.go" "palmpilot") + ("fordumpd.go" "fordumpd") + ) diff --git a/goal_src/jak2/dgos/fra.gd b/goal_src/jak2/dgos/fra.gd new file mode 100644 index 000000000..f54aa923f --- /dev/null +++ b/goal_src/jak2/dgos/fra.gd @@ -0,0 +1,29 @@ +("FRA.DGO" + ("hover-formation-h.o" "hover-formation-h") + ("hover-nav-control-h.o" "hover-nav-control-h") + ("hover-enemy-h.o" "hover-enemy-h") + ("hover-nav-network.o" "hover-nav-network") + ("hover-nav-control.o" "hover-nav-control") + ("hover-enemy.o" "hover-enemy") + ("hover-enemy-battle.o" "hover-enemy-battle") + ("hover-formation.o" "hover-formation") + ("hover-nav-edit.o" "hover-nav-edit") + ("wasp-part.o" "wasp-part") + ("wasp.o" "wasp") + ("crimson-guard-hover.o" "crimson-guard-hover") + ("flamer.o" "flamer") + ("crimson-guard-level.o" "crimson-guard-level") + ("guard-conversation.o" "guard-conversation") + ("transport-level.o" "transport-level") + ("forresca-part.o" "forresca-part") + ("forresca-obs.o" "forresca-obs") + ("tpage-3190.go" "tpage-3190") + ("tpage-3192.go" "tpage-3192") + ("tpage-3191.go" "tpage-3191") + ("crimson-guard-ag.go" "crimson-guard") + ("crimson-guard-hover-ag.go" "crimson-guard-hover") + ("fort-entry-gate-ag.go" "fort-entry-gate") + ("cty-guard-turret-button-ag.go" "cty-guard-turret-button") + ("fort-led-ag.go" "fort-led") + ("forresca-vis.go" "forresca-vis") + ) diff --git a/goal_src/jak2/dgos/frb.gd b/goal_src/jak2/dgos/frb.gd new file mode 100644 index 000000000..4f4ebd873 --- /dev/null +++ b/goal_src/jak2/dgos/frb.gd @@ -0,0 +1,17 @@ +("FRB.DGO" + ("fort-floor-spike.o" "fort-floor-spike") + ("forrescb-part.o" "forrescb-part") + ("forrescb-obs.o" "forrescb-obs") + ("fort-turret.o" "fort-turret") + ("spydroid.o" "spydroid") + ("tpage-3172.go" "tpage-3172") + ("tpage-3175.go" "tpage-3175") + ("tpage-3173.go" "tpage-3173") + ("tpage-3174.go" "tpage-3174") + ("spydroid-ag.go" "spydroid") + ("fort-turret-ag.go" "fort-turret") + ("fort-entry-gate-ag.go" "fort-entry-gate") + ("cty-guard-turret-button-ag.go" "cty-guard-turret-button") + ("fort-elec-belt-ag.go" "fort-elec-belt") + ("forrescb-vis.go" "forrescb-vis") + ) diff --git a/goal_src/jak2/dgos/game.gd b/goal_src/jak2/dgos/game.gd index 106af5dee..0dc2fc3b5 100644 --- a/goal_src/jak2/dgos/game.gd +++ b/goal_src/jak2/dgos/game.gd @@ -434,4 +434,4 @@ ("battle.o" "battle") ("elec-gate.o" "elec-gate") ("cty-guard-turret-button.o" "cty-guard-turret-button") - ) \ No newline at end of file + ) diff --git a/goal_src/jak2/dgos/garage.gd b/goal_src/jak2/dgos/garage.gd new file mode 100644 index 000000000..27b0513d0 --- /dev/null +++ b/goal_src/jak2/dgos/garage.gd @@ -0,0 +1,20 @@ +("GARAGE.DGO" + ("keira-garage+0-ag.go" "keira-garage+0") + ("tpage-1369.go" "tpage-1369") + ("tpage-1430.go" "tpage-1430") + ("tpage-1786.go" "tpage-1786") + ("tpage-1787.go" "tpage-1787") + ("tpage-3025.go" "tpage-3025") + ("keira-highres-ag.go" "keira-highres") + ("rift-rider-ag.go" "rift-rider") + ("gar-curtain-ag.go" "gar-curtain") + ("gar-trophy-ca-ag.go" "gar-trophy-ca") + ("gar-trophy-cb-ag.go" "gar-trophy-cb") + ("gar-trophy-cc-ag.go" "gar-trophy-cc") + ("garage-bikec-ag.go" "garage-bikec") + ("gar-weld-project-ag.go" "gar-weld-project") + ("garage-bikeb-ag.go" "garage-bikeb") + ("particleman-ag.go" "particleman") + ("spotlight-ag.go" "spotlight") + ("garage.go" "garage") + ) diff --git a/goal_src/jak2/dgos/gga.gd b/goal_src/jak2/dgos/gga.gd new file mode 100644 index 000000000..8c1bd4142 --- /dev/null +++ b/goal_src/jak2/dgos/gga.gd @@ -0,0 +1,27 @@ +("GGA.DGO" + ("gun-dummy.o" "gun-dummy") + ("gungame-data.o" "gungame-data") + ("gungame-obs.o" "gungame-obs") + ("gungame-part.o" "gungame-part") + ("tpage-1733.go" "tpage-1733") + ("tpage-1735.go" "tpage-1735") + ("tpage-1734.go" "tpage-1734") + ("tpage-2405.go" "tpage-2405") + ("daxter-highres-ag.go" "daxter-highres") + ("jak-highres-ag.go" "jak-highres") + ("gun-dummy-yellow-gun-ag.go" "gun-dummy-yellow-gun") + ("gun-cit-d-ag.go" "gun-cit-d") + ("gun-cit-a-ag.go" "gun-cit-a") + ("gun-cit-b-ag.go" "gun-cit-b") + ("gun-dummy-gold-ag.go" "gun-dummy-gold") + ("gun-dummy-a-ag.go" "gun-dummy-a") + ("gun-dummy-c-ag.go" "gun-dummy-c") + ("gun-dummy-b-ag.go" "gun-dummy-b") + ("gun-cit-c-ag.go" "gun-cit-c") + ("gun-dummy-big-ag.go" "gun-dummy-big") + ("fort-entry-gate-ag.go" "fort-entry-gate") + ("hip-door-a-ag.go" "hip-door-a") + ("yellow-barrel-ag.go" "yellow-barrel") + ("dark-barrel-ag.go" "dark-barrel") + ("gungame-vis.go" "gungame-vis") + ) diff --git a/goal_src/jak2/dgos/halfpipe.gd b/goal_src/jak2/dgos/halfpipe.gd new file mode 100644 index 000000000..0ab3e4869 --- /dev/null +++ b/goal_src/jak2/dgos/halfpipe.gd @@ -0,0 +1,8 @@ +("HALFPIPE.DGO" + ("jak-pole+0-ag.go" "jak-pole+0") + ("tpage-43.go" "tpage-43") + ("tpage-623.go" "tpage-623") + ("tpage-42.go" "tpage-42") + ("grunt-ag.go" "grunt") + ("halfpipe.go" "halfpipe") + ) diff --git a/goal_src/jak2/dgos/hideout.gd b/goal_src/jak2/dgos/hideout.gd new file mode 100644 index 000000000..9ebb7a9e6 --- /dev/null +++ b/goal_src/jak2/dgos/hideout.gd @@ -0,0 +1,18 @@ +("HIDEOUT.DGO" + ("hideout-scenes.o" "hideout-scenes") + ("hideout-part.o" "hideout-part") + ("hideout-obs.o" "hideout-obs") + ("tpage-932.go" "tpage-932") + ("tpage-933.go" "tpage-933") + ("tpage-2404.go" "tpage-2404") + ("tpage-999.go" "tpage-999") + ("daxter-highres-ag.go" "daxter-highres") + ("jak-highres-ag.go" "jak-highres") + ("hide-light-ag.go" "hide-light") + ("hide-bike-ag.go" "hide-bike") + ("hide-door-b-ag.go" "hide-door-b") + ("gun-barrel-ag.go" "gun-barrel") + ("hide-faucet-ag.go" "hide-faucet") + ("particleman-ag.go" "particleman") + ("hideout.go" "hideout") + ) diff --git a/goal_src/jak2/dgos/hiphog.gd b/goal_src/jak2/dgos/hiphog.gd new file mode 100644 index 000000000..e90b7db8c --- /dev/null +++ b/goal_src/jak2/dgos/hiphog.gd @@ -0,0 +1,24 @@ +("HIPHOG.DGO" + ("hiphog-obs.o" "hiphog-obs") + ("hiphog-part.o" "hiphog-part") + ("hiphog-scenes.o" "hiphog-scenes") + ("tpage-929.go" "tpage-929") + ("tpage-930.go" "tpage-930") + ("tpage-3042.go" "tpage-3042") + ("tpage-998.go" "tpage-998") + ("daxter-highres-ag.go" "daxter-highres") + ("jak-highres-ag.go" "jak-highres") + ("hip-whack-a-metal-ag.go" "hip-whack-a-metal") + ("hip-trophy-g-ag.go" "hip-trophy-g") + ("hip-trophy-d-ag.go" "hip-trophy-d") + ("hip-trophy-c-ag.go" "hip-trophy-c") + ("hip-trophy-a-ag.go" "hip-trophy-a") + ("hip-trophy-f-ag.go" "hip-trophy-f") + ("hip-trophy-i-ag.go" "hip-trophy-i") + ("hip-trophy-m-ag.go" "hip-trophy-m") + ("hip-door-a-ag.go" "hip-door-a") + ("hip-trophy-n-ag.go" "hip-trophy-n") + ("hip-trophy-j-ag.go" "hip-trophy-j") + ("hip-mirror-ag.go" "hip-mirror") + ("hiphog.go" "hiphog") + ) diff --git a/goal_src/jak2/dgos/introcst.gd b/goal_src/jak2/dgos/introcst.gd new file mode 100644 index 000000000..65d51dfec --- /dev/null +++ b/goal_src/jak2/dgos/introcst.gd @@ -0,0 +1,25 @@ +("INTROCST.DGO" + ("intro-ocean.o" "intro-ocean") + ("intro-scenes.o" "intro-scenes") + ("intro-obs.o" "intro-obs") + ("vortex-data.o" "vortex-data") + ("vortex.o" "vortex") + ("tpage-2568.go" "tpage-2568") + ("tpage-2570.go" "tpage-2570") + ("tpage-3264.go" "tpage-3264") + ("daxter-highres-ag.go" "daxter-highres") + ("jakone-highres-ag.go" "jakone-highres") + ("errol-highres-ag.go" "errol-highres") + ("crimson-guard-lowres-ag.go" "crimson-guard-lowres") + ("time-map-ag.go" "time-map") + ("rift-rider-heart-of-mar-ag.go" "rift-rider-heart-of-mar") + ("rift-rider-dash-ag.go" "rift-rider-dash") + ("meteor-ag.go" "meteor") + ("rift-rider-break-b-ag.go" "rift-rider-break-b") + ("vortex-light-ag.go" "vortex-light") + ("rift-rider-chunk-a-ag.go" "rift-rider-chunk-a") + ("rift-rider-break-c-ag.go" "rift-rider-break-c") + ("particleman-ag.go" "particleman") + ("rift-rider-bar-ag.go" "rift-rider-bar") + ("introcst.go" "introcst") + ) diff --git a/goal_src/jak2/dgos/kernel.gd b/goal_src/jak2/dgos/kernel.gd index 4df9a0e14..6e2648647 100644 --- a/goal_src/jak2/dgos/kernel.gd +++ b/goal_src/jak2/dgos/kernel.gd @@ -7,4 +7,4 @@ ("gstring.o" "gstring") ("dgo-h.o" "dgo-h") ("gstate.o" "gstate") - ) \ No newline at end of file + ) diff --git a/goal_src/jak2/dgos/kiosk.gd b/goal_src/jak2/dgos/kiosk.gd new file mode 100644 index 000000000..7e4a51ea0 --- /dev/null +++ b/goal_src/jak2/dgos/kiosk.gd @@ -0,0 +1,15 @@ +("KIOSK.DGO" + ("kiosk-part.o" "kiosk-part") + ("tpage-2192.go" "tpage-2192") + ("tpage-2212.go" "tpage-2212") + ("tpage-2225.go" "tpage-2225") + ("tpage-2911.go" "tpage-2911") + ("tpage-2334.go" "tpage-2334") + ("daxter-highres-ag.go" "daxter-highres") + ("brutter-highres-ag.go" "brutter-highres") + ("jak-highres-ag.go" "jak-highres") + ("kiosk-fish-sign-ag.go" "kiosk-fish-sign") + ("kiosk-banner-ag.go" "kiosk-banner") + ("particleman-ag.go" "particleman") + ("kiosk.go" "kiosk") + ) diff --git a/goal_src/jak2/dgos/lashgrd.gd b/goal_src/jak2/dgos/lashgrd.gd new file mode 100644 index 000000000..0ee029708 --- /dev/null +++ b/goal_src/jak2/dgos/lashgrd.gd @@ -0,0 +1,8 @@ +("LASHGRD.DGO" + ("tpage-2707.go" "tpage-2707") + ("tpage-3265.go" "tpage-3265") + ("ashelin-highres-ag.go" "ashelin-highres") + ("crimson-guard-highres-ag.go" "crimson-guard-highres") + ("crimson-guard-lowres-ag.go" "crimson-guard-lowres") + ("lashgrd.go" "lashgrd") + ) diff --git a/goal_src/jak2/dgos/lashthrn.gd b/goal_src/jak2/dgos/lashthrn.gd new file mode 100644 index 000000000..cae01a100 --- /dev/null +++ b/goal_src/jak2/dgos/lashthrn.gd @@ -0,0 +1,7 @@ +("LASHTHRN.DGO" + ("tpage-2953.go" "tpage-2953") + ("tpage-3266.go" "tpage-3266") + ("ashelin-highres-ag.go" "ashelin-highres") + ("palmpilot-ag.go" "palmpilot") + ("lashthrn.go" "lashthrn") + ) diff --git a/goal_src/jak2/dgos/lbbush.gd b/goal_src/jak2/dgos/lbbush.gd new file mode 100644 index 000000000..69d68a485 --- /dev/null +++ b/goal_src/jak2/dgos/lbbush.gd @@ -0,0 +1,8 @@ +("LBBUSH.DGO" + ("ctywide-bbush.o" "ctywide-bbush") + ("tpage-3336.go" "tpage-3336") + ("tpage-3465.go" "tpage-3465") + ("hovering-mine-ag.go" "hovering-mine") + ("homing-beacon-ag.go" "homing-beacon") + ("lbbush.go" "lbbush") + ) diff --git a/goal_src/jak2/dgos/lbombbot.gd b/goal_src/jak2/dgos/lbombbot.gd new file mode 100644 index 000000000..0962eca48 --- /dev/null +++ b/goal_src/jak2/dgos/lbombbot.gd @@ -0,0 +1,8 @@ +("LBOMBBOT.DGO" + ("bombbot-h.o" "bombbot-h") + ("bombbot-path.o" "bombbot-path") + ("bombbot.o" "bombbot") + ("tpage-2751.go" "tpage-2751") + ("bombbot-ag.go" "bombbot") + ("lbombbot.go" "lbombbot") + ) diff --git a/goal_src/jak2/dgos/lbrnermk.gd b/goal_src/jak2/dgos/lbrnermk.gd new file mode 100644 index 000000000..7064fc0f8 --- /dev/null +++ b/goal_src/jak2/dgos/lbrnermk.gd @@ -0,0 +1,10 @@ +("LBRNERMK.DGO" + ("metalkor-texture.o" "metalkor-texture") + ("tpage-2558.go" "tpage-2558") + ("tpage-2801.go" "tpage-2801") + ("tpage-3267.go" "tpage-3267") + ("errol-highres-ag.go" "errol-highres") + ("baron-highres-ag.go" "baron-highres") + ("metalkor-head-ag.go" "metalkor-head") + ("lbrnermk.go" "lbrnermk") + ) diff --git a/goal_src/jak2/dgos/lcguard.gd b/goal_src/jak2/dgos/lcguard.gd new file mode 100644 index 000000000..461c7dfbd --- /dev/null +++ b/goal_src/jak2/dgos/lcguard.gd @@ -0,0 +1,5 @@ +("LCGUARD.DGO" + ("tpage-2691.go" "tpage-2691") + ("crimson-guard-highres-ag.go" "crimson-guard-highres") + ("lcguard.go" "lcguard") + ) diff --git a/goal_src/jak2/dgos/lcitylow.gd b/goal_src/jak2/dgos/lcitylow.gd new file mode 100644 index 000000000..9d48ced9b --- /dev/null +++ b/goal_src/jak2/dgos/lcitylow.gd @@ -0,0 +1,9 @@ +("LCITYLOW.DGO" + ("tpage-2755.go" "tpage-2755") + ("tpage-2756.go" "tpage-2756") + ("tpage-3388.go" "tpage-3388") + ("barons-ship-lores-ag.go" "barons-ship-lores") + ("searchlight-ag.go" "searchlight") + ("pal-windmill-ag.go" "pal-windmill") + ("lcitylow.go" "lcitylow") + ) diff --git a/goal_src/jak2/dgos/ldjakbrn.gd b/goal_src/jak2/dgos/ldjakbrn.gd new file mode 100644 index 000000000..689dd2e0e --- /dev/null +++ b/goal_src/jak2/dgos/ldjakbrn.gd @@ -0,0 +1,10 @@ +("LDJAKBRN.DGO" + ("tpage-2662.go" "tpage-2662") + ("tpage-2657.go" "tpage-2657") + ("tpage-3094.go" "tpage-3094") + ("jak-highres-prison-ag.go" "jak-highres-prison") + ("baron-highres-ag.go" "baron-highres") + ("prsn-daxter-plat-ag.go" "prsn-daxter-plat") + ("jak-clothes-ag.go" "jak-clothes") + ("ldjakbrn.go" "ldjakbrn") + ) diff --git a/goal_src/jak2/dgos/lerbrngd.gd b/goal_src/jak2/dgos/lerbrngd.gd new file mode 100644 index 000000000..87c36fd6b --- /dev/null +++ b/goal_src/jak2/dgos/lerbrngd.gd @@ -0,0 +1,9 @@ +("LERBRNGD.DGO" + ("tpage-2703.go" "tpage-2703") + ("tpage-3268.go" "tpage-3268") + ("samos-highres-ag.go" "samos-highres") + ("baron-highres-ag.go" "baron-highres") + ("crimson-guard-highres-ag.go" "crimson-guard-highres") + ("crimson-guard-lowres-ag.go" "crimson-guard-lowres") + ("lerbrngd.go" "lerbrngd") + ) diff --git a/goal_src/jak2/dgos/lerlchal.gd b/goal_src/jak2/dgos/lerlchal.gd new file mode 100644 index 000000000..62125cc83 --- /dev/null +++ b/goal_src/jak2/dgos/lerlchal.gd @@ -0,0 +1,17 @@ +("LERLCHAL.DGO" + ("race-h.o" "race-h") + ("race-mesh.o" "race-mesh") + ("race-part.o" "race-part") + ("race-obs.o" "race-obs") + ("vehicle-racer.o" "vehicle-racer") + ("race-info.o" "race-info") + ("race-manager.o" "race-manager") + ("race-hud.o" "race-hud") + ("pilot-recorder.o" "pilot-recorder") + ("errol-chal-part.o" "errol-chal-part") + ("errol-chal.o" "errol-chal") + ("tpage-3159.go" "tpage-3159") + ("tpage-3337.go" "tpage-3337") + ("errol-racer-ag.go" "errol-racer") + ("lerlchal.go" "lerlchal") + ) diff --git a/goal_src/jak2/dgos/lerltess.gd b/goal_src/jak2/dgos/lerltess.gd new file mode 100644 index 000000000..dd8d08d7d --- /dev/null +++ b/goal_src/jak2/dgos/lerltess.gd @@ -0,0 +1,9 @@ +("LERLTESS.DGO" + ("tess-lhiphog+0-ag.go" "tess-lhiphog+0") + ("tpage-2949.go" "tpage-2949") + ("tpage-3269.go" "tpage-3269") + ("krew-highres-ag.go" "krew-highres") + ("errol-highres-ag.go" "errol-highres") + ("tess-highres-ag.go" "tess-highres") + ("lerltess.go" "lerltess") + ) diff --git a/goal_src/jak2/dgos/lerrol.gd b/goal_src/jak2/dgos/lerrol.gd new file mode 100644 index 000000000..2673de075 --- /dev/null +++ b/goal_src/jak2/dgos/lerrol.gd @@ -0,0 +1,5 @@ +("LERROL.DGO" + ("tpage-3270.go" "tpage-3270") + ("errol-highres-ag.go" "errol-highres") + ("lerrol.go" "lerrol") + ) diff --git a/goal_src/jak2/dgos/lgarcsta.gd b/goal_src/jak2/dgos/lgarcsta.gd new file mode 100644 index 000000000..9f1f15db0 --- /dev/null +++ b/goal_src/jak2/dgos/lgarcsta.gd @@ -0,0 +1,11 @@ +("LGARCSTA.DGO" + ("tpage-2699.go" "tpage-2699") + ("tpage-3512.go" "tpage-3512") + ("tpage-3271.go" "tpage-3271") + ("krew-highres-ag.go" "krew-highres") + ("samos-highres-ag.go" "samos-highres") + ("tess-highres-ag.go" "tess-highres") + ("ashelin-highres-ag.go" "ashelin-highres") + ("gold-key-ag.go" "sew-gold-key") + ("lgarcsta.go" "lgarcsta") + ) diff --git a/goal_src/jak2/dgos/lguard.gd b/goal_src/jak2/dgos/lguard.gd new file mode 100644 index 000000000..49839efed --- /dev/null +++ b/goal_src/jak2/dgos/lguard.gd @@ -0,0 +1,13 @@ +("LGUARD.DGO" + ("tpage-1753.go" "tpage-1753") + ("tpage-2883.go" "tpage-2883") + ("tpage-3272.go" "tpage-3272") + ("krew-highres-ag.go" "krew-highres") + ("sig-highres-ag.go" "sig-highres") + ("crimson-guard-highres-ag.go" "crimson-guard-highres") + ("gun-upgrade-a-ag.go" "gun-upgrade-a") + ("palmpilot-ag.go" "palmpilot") + ("hip-mug-ag.go" "hip-mug") + ("computerpaper-ag.go" "computerpaper") + ("lguard.go" "lguard") + ) diff --git a/goal_src/jak2/dgos/lhelldog.gd b/goal_src/jak2/dgos/lhelldog.gd new file mode 100644 index 000000000..338b4b871 --- /dev/null +++ b/goal_src/jak2/dgos/lhelldog.gd @@ -0,0 +1,7 @@ +("LHELLDOG.DGO" + ("helldog.o" "helldog") + ("tpage-2324.go" "tpage-2324") + ("tpage-3273.go" "tpage-3273") + ("helldog-ag.go" "helldog") + ("lhelldog.go" "lhelldog") + ) diff --git a/goal_src/jak2/dgos/lhipout.gd b/goal_src/jak2/dgos/lhipout.gd new file mode 100644 index 000000000..c1ccb329f --- /dev/null +++ b/goal_src/jak2/dgos/lhipout.gd @@ -0,0 +1,18 @@ +("LHIPOUT.DGO" + ("tpage-3440.go" "tpage-3440") + ("tpage-3199.go" "tpage-3199") + ("tpage-3200.go" "tpage-3200") + ("tpage-3486.go" "tpage-3486") + ("tpage-3242.go" "tpage-3242") + ("tpage-3544.go" "tpage-3544") + ("pecker-highres-ag.go" "pecker-highres") + ("crocadog-highres-ag.go" "crocadog-highres") + ("sig-highres-ag.go" "sig-highres") + ("metalkor-chopped-ag.go" "metalkor-chopped") + ("gold-key-ag.go" "sew-gold-key") + ("kid-medallion-ag.go" "kid-medallion") + ("hip-bottle-c-ag.go" "hip-bottle-c") + ("hip-mug-ag.go" "hip-mug") + ("particleman-ag.go" "particleman") + ("lhipout.go" "lhipout") + ) diff --git a/goal_src/jak2/dgos/lintcstb.gd b/goal_src/jak2/dgos/lintcstb.gd new file mode 100644 index 000000000..500563eb9 --- /dev/null +++ b/goal_src/jak2/dgos/lintcstb.gd @@ -0,0 +1,10 @@ +("LINTCSTB.DGO" + ("tpage-2752.go" "tpage-2752") + ("tpage-2754.go" "tpage-2754") + ("tpage-3243.go" "tpage-3243") + ("keira-highres-ag.go" "keira-highres") + ("samos-highres-ag.go" "samos-highres") + ("rift-rider-break-ag.go" "rift-rider-break") + ("rift-rider-ag.go" "rift-rider") + ("lintcstb.go" "lintcstb") + ) diff --git a/goal_src/jak2/dgos/ljakdax.gd b/goal_src/jak2/dgos/ljakdax.gd new file mode 100644 index 000000000..d4ed1eb39 --- /dev/null +++ b/goal_src/jak2/dgos/ljakdax.gd @@ -0,0 +1,6 @@ +("LJAKDAX.DGO" + ("tpage-1879.go" "tpage-1879") + ("daxter-highres-ag.go" "daxter-highres") + ("jak-highres-ag.go" "jak-highres") + ("ljakdax.go" "ljakdax") + ) diff --git a/goal_src/jak2/dgos/ljkdxash.gd b/goal_src/jak2/dgos/ljkdxash.gd new file mode 100644 index 000000000..25a5d4d6d --- /dev/null +++ b/goal_src/jak2/dgos/ljkdxash.gd @@ -0,0 +1,8 @@ +("LJKDXASH.DGO" + ("tpage-3188.go" "tpage-3188") + ("tpage-3244.go" "tpage-3244") + ("daxter-highres-ag.go" "daxter-highres") + ("jak-highres-ag.go" "jak-highres") + ("ashelin-highres-ag.go" "ashelin-highres") + ("ljkdxash.go" "ljkdxash") + ) diff --git a/goal_src/jak2/dgos/lkeirift.gd b/goal_src/jak2/dgos/lkeirift.gd new file mode 100644 index 000000000..bb82f1050 --- /dev/null +++ b/goal_src/jak2/dgos/lkeirift.gd @@ -0,0 +1,8 @@ +("LKEIRIFT.DGO" + ("keira-anim+0-ag.go" "keira-anim+0") + ("tpage-3023.go" "tpage-3023") + ("tpage-3024.go" "tpage-3024") + ("keira-highres-ag.go" "keira-highres") + ("rift-rider-ag.go" "rift-rider") + ("lkeirift.go" "lkeirift") + ) diff --git a/goal_src/jak2/dgos/lkiddoge.gd b/goal_src/jak2/dgos/lkiddoge.gd new file mode 100644 index 000000000..5c28bd0ef --- /dev/null +++ b/goal_src/jak2/dgos/lkiddoge.gd @@ -0,0 +1,24 @@ +("LKIDDOGE.DGO" + ("ai-task-h.o" "ai-task-h") + ("bot-h.o" "bot-h") + ("bot.o" "bot") + ("bot-states.o" "bot-states") + ("hal-h.o" "hal-h") + ("hal-task.o" "hal-task") + ("hal.o" "hal") + ("kidesc-h.o" "kidesc-h") + ("crocesc-h.o" "crocesc-h") + ("hal4-course.o" "hal4-course") + ("kidesc-task.o" "kidesc-task") + ("kidesc.o" "kidesc") + ("kidesc-states.o" "kidesc-states") + ("crocesc-task.o" "crocesc-task") + ("crocesc.o" "crocesc") + ("crocesc-states.o" "crocesc-states") + ("kidesc4-course.o" "kidesc4-course") + ("crocesc4-course.o" "crocesc4-course") + ("tpage-2209.go" "tpage-2209") + ("crocadog-escort-ag.go" "crocadog-escort") + ("kid-escort-ag.go" "kid-escort") + ("lkiddoge.go" "lkiddoge") + ) diff --git a/goal_src/jak2/dgos/lmeetbrt.gd b/goal_src/jak2/dgos/lmeetbrt.gd new file mode 100644 index 000000000..2a177747f --- /dev/null +++ b/goal_src/jak2/dgos/lmeetbrt.gd @@ -0,0 +1,7 @@ +("LMEETBRT.DGO" + ("meet-brutter.o" "meet-brutter") + ("tpage-2438.go" "tpage-2438") + ("babak-ag.go" "babak") + ("paddy-wagon-ag.go" "paddy-wagon") + ("lmeetbrt.go" "lmeetbrt") + ) diff --git a/goal_src/jak2/dgos/loutcstb.gd b/goal_src/jak2/dgos/loutcstb.gd new file mode 100644 index 000000000..8557ed5c9 --- /dev/null +++ b/goal_src/jak2/dgos/loutcstb.gd @@ -0,0 +1,16 @@ +("LOUTCSTB.DGO" + ("tpage-3186.go" "tpage-3186") + ("tpage-3185.go" "tpage-3185") + ("tpage-3187.go" "tpage-3187") + ("tpage-3245.go" "tpage-3245") + ("youngsamos-highres-ag.go" "youngsamos-highres") + ("brutter-highres-ag.go" "brutter-highres") + ("kid-highres-ag.go" "kid-highres") + ("rift-ring-ag.go" "rift-ring") + ("brutter-balloon-norift-ag.go" "brutter-balloon-norift") + ("metalkor-chopped-ag.go" "metalkor-chopped") + ("rift-rider-ag.go" "rift-rider") + ("precursor-stone-ag.go" "precursor-stone") + ("particleman-ag.go" "particleman") + ("loutcstb.go" "loutcstb") + ) diff --git a/goal_src/jak2/dgos/lpackage.gd b/goal_src/jak2/dgos/lpackage.gd new file mode 100644 index 000000000..4c5853faa --- /dev/null +++ b/goal_src/jak2/dgos/lpackage.gd @@ -0,0 +1,6 @@ +("LPACKAGE.DGO" + ("delivery-task.o" "delivery-task") + ("tpage-2459.go" "tpage-2459") + ("krew-package-ag.go" "krew-package") + ("lpackage.go" "lpackage") + ) diff --git a/goal_src/jak2/dgos/lportrun.gd b/goal_src/jak2/dgos/lportrun.gd new file mode 100644 index 000000000..9ef0da54d --- /dev/null +++ b/goal_src/jak2/dgos/lportrun.gd @@ -0,0 +1,10 @@ +("LPORTRUN.DGO" + ("portrun.o" "portrun") + ("tpage-2817.go" "tpage-2817") + ("tpage-2373.go" "tpage-2373") + ("ctyport-cargo-ag.go" "ctyport-cargo") + ("ctyport-spy-ag.go" "ctyport-spy") + ("mine-b-ag.go" "sew-mine-b") + ("ctyport-mine-ag.go" "ctyport-mine") + ("lportrun.go" "lportrun") + ) diff --git a/goal_src/jak2/dgos/lpower.gd b/goal_src/jak2/dgos/lpower.gd new file mode 100644 index 000000000..07db142d7 --- /dev/null +++ b/goal_src/jak2/dgos/lpower.gd @@ -0,0 +1,6 @@ +("LPOWER.DGO" + ("ctypower.o" "ctypower") + ("tpage-3348.go" "tpage-3348") + ("cty-guard-turret-button-ag.go" "cty-guard-turret-button") + ("lpower.go" "lpower") + ) diff --git a/goal_src/jak2/dgos/lprotect.gd b/goal_src/jak2/dgos/lprotect.gd new file mode 100644 index 000000000..5fe48e6ba --- /dev/null +++ b/goal_src/jak2/dgos/lprotect.gd @@ -0,0 +1,10 @@ +("LPROTECT.DGO" + ("gun-buoy.o" "gun-buoy") + ("protect.o" "protect") + ("tpage-2869.go" "tpage-2869") + ("gun-buoy-ag.go" "gun-buoy") + ("transport-ag.go" "transport") + ("seal-of-mar-ag.go" "seal-of-mar") + ("seal-of-mar-top-ag.go" "seal-of-mar-top") + ("lprotect.go" "lprotect") + ) diff --git a/goal_src/jak2/dgos/lprsncst.gd b/goal_src/jak2/dgos/lprsncst.gd new file mode 100644 index 000000000..778179e93 --- /dev/null +++ b/goal_src/jak2/dgos/lprsncst.gd @@ -0,0 +1,9 @@ +("LPRSNCST.DGO" + ("tpage-2658.go" "tpage-2658") + ("tpage-3246.go" "tpage-3246") + ("youngsamos-highres-ag.go" "youngsamos-highres") + ("jak-highres-ag.go" "jak-highres") + ("samos-highres-ag.go" "samos-highres") + ("tess-highres-ag.go" "tess-highres") + ("lprsncst.go" "lprsncst") + ) diff --git a/goal_src/jak2/dgos/lprtrace.gd b/goal_src/jak2/dgos/lprtrace.gd new file mode 100644 index 000000000..d18bf9dab --- /dev/null +++ b/goal_src/jak2/dgos/lprtrace.gd @@ -0,0 +1,15 @@ +("LPRTRACE.DGO" + ("race-h.o" "race-h") + ("race-mesh.o" "race-mesh") + ("race-part.o" "race-part") + ("race-obs.o" "race-obs") + ("vehicle-racer.o" "vehicle-racer") + ("race-info.o" "race-info") + ("race-manager.o" "race-manager") + ("race-hud.o" "race-hud") + ("pilot-recorder.o" "pilot-recorder") + ("errol-chal-part.o" "errol-chal-part") + ("errol-chal.o" "errol-chal") + ("tpage-3427.go" "tpage-3427") + ("lprtrace.go" "lprtrace") + ) diff --git a/goal_src/jak2/dgos/lracebb.gd b/goal_src/jak2/dgos/lracebb.gd new file mode 100644 index 000000000..b28659af5 --- /dev/null +++ b/goal_src/jak2/dgos/lracebb.gd @@ -0,0 +1,3 @@ +("LRACEBB.DGO" + ("lracebb.go" "lracebb") + ) diff --git a/goal_src/jak2/dgos/lracebf.gd b/goal_src/jak2/dgos/lracebf.gd new file mode 100644 index 000000000..a4a308e09 --- /dev/null +++ b/goal_src/jak2/dgos/lracebf.gd @@ -0,0 +1,3 @@ +("LRACEBF.DGO" + ("lracebf.go" "lracebf") + ) diff --git a/goal_src/jak2/dgos/lracecb.gd b/goal_src/jak2/dgos/lracecb.gd new file mode 100644 index 000000000..8395fa4f6 --- /dev/null +++ b/goal_src/jak2/dgos/lracecb.gd @@ -0,0 +1,4 @@ +("LRACECB.DGO" + ("tpage-3432.go" "tpage-3432") + ("lracecb.go" "lracecb") + ) diff --git a/goal_src/jak2/dgos/lracecf.gd b/goal_src/jak2/dgos/lracecf.gd new file mode 100644 index 000000000..ff07750a7 --- /dev/null +++ b/goal_src/jak2/dgos/lracecf.gd @@ -0,0 +1,4 @@ +("LRACECF.DGO" + ("tpage-3430.go" "tpage-3430") + ("lracecf.go" "lracecf") + ) diff --git a/goal_src/jak2/dgos/lracedb.gd b/goal_src/jak2/dgos/lracedb.gd new file mode 100644 index 000000000..ad62b07c9 --- /dev/null +++ b/goal_src/jak2/dgos/lracedb.gd @@ -0,0 +1,3 @@ +("LRACEDB.DGO" + ("lracedb.go" "lracedb") + ) diff --git a/goal_src/jak2/dgos/lracedf.gd b/goal_src/jak2/dgos/lracedf.gd new file mode 100644 index 000000000..fb4730443 --- /dev/null +++ b/goal_src/jak2/dgos/lracedf.gd @@ -0,0 +1,3 @@ +("LRACEDF.DGO" + ("lracedf.go" "lracedf") + ) diff --git a/goal_src/jak2/dgos/lracelit.gd b/goal_src/jak2/dgos/lracelit.gd new file mode 100644 index 000000000..e0f538152 --- /dev/null +++ b/goal_src/jak2/dgos/lracelit.gd @@ -0,0 +1,8 @@ +("LRACELIT.DGO" + ("tpage-3162.go" "tpage-3162") + ("tpage-3374.go" "tpage-3374") + ("stadium-racer-ag.go" "stadium-racer") + ("race-start-light-ag.go" "race-start-light") + ("race-start-light-banner-ag.go" "race-start-light-banner") + ("lracelit.go" "lracelit") + ) diff --git a/goal_src/jak2/dgos/lsack.gd b/goal_src/jak2/dgos/lsack.gd new file mode 100644 index 000000000..12dc10a95 --- /dev/null +++ b/goal_src/jak2/dgos/lsack.gd @@ -0,0 +1,6 @@ +("LSACK.DGO" + ("collection-task.o" "collection-task") + ("tpage-2605.go" "tpage-2605") + ("krew-moneybag-ag.go" "krew-moneybag") + ("lsack.go" "lsack") + ) diff --git a/goal_src/jak2/dgos/lsamergd.gd b/goal_src/jak2/dgos/lsamergd.gd new file mode 100644 index 000000000..470cac540 --- /dev/null +++ b/goal_src/jak2/dgos/lsamergd.gd @@ -0,0 +1,10 @@ +("LSAMERGD.DGO" + ("samos-lsamergd+0-ag.go" "samos-lsamergd+0") + ("tpage-2701.go" "tpage-2701") + ("tpage-3248.go" "tpage-3248") + ("samos-highres-ag.go" "samos-highres") + ("errol-highres-ag.go" "errol-highres") + ("crimson-guard-highres-ag.go" "crimson-guard-highres") + ("crimson-guard-lowres-ag.go" "crimson-guard-lowres") + ("lsamergd.go" "lsamergd") + ) diff --git a/goal_src/jak2/dgos/lshuttle.gd b/goal_src/jak2/dgos/lshuttle.gd new file mode 100644 index 000000000..52277d8cd --- /dev/null +++ b/goal_src/jak2/dgos/lshuttle.gd @@ -0,0 +1,7 @@ +("LSHUTTLE.DGO" + ("shuttle.o" "shuttle") + ("tpage-3214.go" "tpage-3214") + ("citizen-rebel-ag.go" "citizen-rebel") + ("krew-package-ag.go" "krew-package") + ("lshuttle.go" "lshuttle") + ) diff --git a/goal_src/jak2/dgos/lsmysbrt.gd b/goal_src/jak2/dgos/lsmysbrt.gd new file mode 100644 index 000000000..f623dbf57 --- /dev/null +++ b/goal_src/jak2/dgos/lsmysbrt.gd @@ -0,0 +1,8 @@ +("LSMYSBRT.DGO" + ("tpage-2705.go" "tpage-2705") + ("tpage-3249.go" "tpage-3249") + ("youngsamos-highres-ag.go" "youngsamos-highres") + ("brutter-highres-ag.go" "brutter-highres") + ("samos-highres-ag.go" "samos-highres") + ("lsmysbrt.go" "lsmysbrt") + ) diff --git a/goal_src/jak2/dgos/ltentob.gd b/goal_src/jak2/dgos/ltentob.gd new file mode 100644 index 000000000..88f2e259e --- /dev/null +++ b/goal_src/jak2/dgos/ltentob.gd @@ -0,0 +1,8 @@ +("LTENTOB.DGO" + ("tpage-3073.go" "tpage-3073") + ("tpage-3112.go" "tpage-3112") + ("tpage-3250.go" "tpage-3250") + ("kor-highres-ag.go" "kor-highres") + ("seal-of-mar-ag.go" "seal-of-mar") + ("ltentob.go" "ltentob") + ) diff --git a/goal_src/jak2/dgos/ltentout.gd b/goal_src/jak2/dgos/ltentout.gd new file mode 100644 index 000000000..7f1c45af1 --- /dev/null +++ b/goal_src/jak2/dgos/ltentout.gd @@ -0,0 +1,7 @@ +("LTENTOUT.DGO" + ("youngsamos-onintent+0-ag.go" "youngsamos-onintent+0") + ("tpage-2618.go" "tpage-2618") + ("tpage-3251.go" "tpage-3251") + ("youngsamos-highres-ag.go" "youngsamos-highres") + ("ltentout.go" "ltentout") + ) diff --git a/goal_src/jak2/dgos/ltess.gd b/goal_src/jak2/dgos/ltess.gd new file mode 100644 index 000000000..2def25207 --- /dev/null +++ b/goal_src/jak2/dgos/ltess.gd @@ -0,0 +1,13 @@ +("LTESS.DGO" + ("tess-lhiphog+0-ag.go" "tess-lhiphog+0") + ("tpage-1862.go" "tpage-1862") + ("tpage-1756.go" "tpage-1756") + ("tpage-2881.go" "tpage-2881") + ("tpage-3241.go" "tpage-3241") + ("krew-highres-ag.go" "krew-highres") + ("sig-highres-ag.go" "sig-highres") + ("tess-highres-ag.go" "tess-highres") + ("hip-bottle-c-ag.go" "hip-bottle-c") + ("hip-bottle-b-ag.go" "hip-bottle-b") + ("ltess.go" "ltess") + ) diff --git a/goal_src/jak2/dgos/lthrnout.gd b/goal_src/jak2/dgos/lthrnout.gd new file mode 100644 index 000000000..1f7792039 --- /dev/null +++ b/goal_src/jak2/dgos/lthrnout.gd @@ -0,0 +1,8 @@ +("LTHRNOUT.DGO" + ("tpage-3194.go" "tpage-3194") + ("tpage-3252.go" "tpage-3252") + ("torn-highres-ag.go" "torn-highres") + ("ashelin-highres-ag.go" "ashelin-highres") + ("palmpilot-ag.go" "palmpilot") + ("lthrnout.go" "lthrnout") + ) diff --git a/goal_src/jak2/dgos/ltrnkrkd.gd b/goal_src/jak2/dgos/ltrnkrkd.gd new file mode 100644 index 000000000..490059589 --- /dev/null +++ b/goal_src/jak2/dgos/ltrnkrkd.gd @@ -0,0 +1,9 @@ +("LTRNKRKD.DGO" + ("kid-ltrnkrkd+0-ag.go" "kid-ltrnkrkd+0") + ("tpage-1773.go" "tpage-1773") + ("tpage-3253.go" "tpage-3253") + ("kor-highres-ag.go" "kor-highres") + ("torn-highres-ag.go" "torn-highres") + ("kid-highres-ag.go" "kid-highres") + ("ltrnkrkd.go" "ltrnkrkd") + ) diff --git a/goal_src/jak2/dgos/ltrntess.gd b/goal_src/jak2/dgos/ltrntess.gd new file mode 100644 index 000000000..4572b0195 --- /dev/null +++ b/goal_src/jak2/dgos/ltrntess.gd @@ -0,0 +1,11 @@ +("LTRNTESS.DGO" + ("tess-ltrntess+0-ag.go" "tess-ltrntess+0") + ("tpage-1764.go" "tpage-1764") + ("tpage-3254.go" "tpage-3254") + ("daxter-highres-ag.go" "daxter-highres") + ("jak-highres-ag.go" "jak-highres") + ("torn-highres-ag.go" "torn-highres") + ("tess-highres-ag.go" "tess-highres") + ("particleman-ag.go" "particleman") + ("ltrntess.go" "ltrntess") + ) diff --git a/goal_src/jak2/dgos/ltrnysam.gd b/goal_src/jak2/dgos/ltrnysam.gd new file mode 100644 index 000000000..e29c2dd90 --- /dev/null +++ b/goal_src/jak2/dgos/ltrnysam.gd @@ -0,0 +1,8 @@ +("LTRNYSAM.DGO" + ("youngsamos-ltrnysam+0-ag.go" "youngsamos-ltrnysam+0") + ("tpage-1774.go" "tpage-1774") + ("tpage-3255.go" "tpage-3255") + ("youngsamos-highres-ag.go" "youngsamos-highres") + ("torn-highres-ag.go" "torn-highres") + ("ltrnysam.go" "ltrnysam") + ) diff --git a/goal_src/jak2/dgos/lwhack.gd b/goal_src/jak2/dgos/lwhack.gd new file mode 100644 index 000000000..78354d16e --- /dev/null +++ b/goal_src/jak2/dgos/lwhack.gd @@ -0,0 +1,14 @@ +("LWHACK.DGO" + ("daxter-mole+0-ag.go" "daxter-mole+0") + ("tess-lwhack+0-ag.go" "tess-lwhack+0") + ("whack.o" "whack") + ("tpage-2889.go" "tpage-2889") + ("tpage-3256.go" "tpage-3256") + ("tess-highres-ag.go" "tess-highres") + ("time-map-ag.go" "time-map") + ("grunt-fma-ag.go" "grunt-fma") + ("hip-mole-ag.go" "hip-mole") + ("big-bopper-ag.go" "big-bopper") + ("particleman-ag.go" "particleman") + ("lwhack.go" "lwhack") + ) diff --git a/goal_src/jak2/dgos/lwidea.gd b/goal_src/jak2/dgos/lwidea.gd index c19acfce9..11f625046 100644 --- a/goal_src/jak2/dgos/lwidea.gd +++ b/goal_src/jak2/dgos/lwidea.gd @@ -15,4 +15,4 @@ ("bikeb-ag.go" "bikeb") ("bikea-ag.go" "bikea") ("lwidea.go" "lwidea") - ) \ No newline at end of file + ) diff --git a/goal_src/jak2/dgos/lwideb.gd b/goal_src/jak2/dgos/lwideb.gd new file mode 100644 index 000000000..1db431497 --- /dev/null +++ b/goal_src/jak2/dgos/lwideb.gd @@ -0,0 +1,13 @@ +("LWIDEB.DGO" + ("tpage-2972.go" "tpage-2972") + ("grunt-ag.go" "grunt") + ("citizen-norm-ag.go" "citizen-norm") + ("crimson-guard-ag.go" "crimson-guard") + ("predator-ag.go" "predator") + ("flitter-ag.go" "flitter") + ("cara-ag.go" "cara") + ("citizen-norm-rider-ag.go" "citizen-norm-rider") + ("crimson-bike-ag.go" "crimson-bike") + ("bikea-ag.go" "bikea") + ("lwideb.go" "lwideb") + ) diff --git a/goal_src/jak2/dgos/lwidec.gd b/goal_src/jak2/dgos/lwidec.gd new file mode 100644 index 000000000..9b9953577 --- /dev/null +++ b/goal_src/jak2/dgos/lwidec.gd @@ -0,0 +1,17 @@ +("LWIDEC.DGO" + ("tpage-3039.go" "tpage-3039") + ("tpage-3041.go" "tpage-3041") + ("roboguard-ag.go" "roboguard") + ("citizen-norm-ag.go" "citizen-norm") + ("crimson-guard-ag.go" "crimson-guard") + ("citizen-chick-ag.go" "citizen-chick") + ("hellcat-ag.go" "hellcat") + ("carc-ag.go" "carc") + ("cara-ag.go" "cara") + ("carb-ag.go" "carb") + ("crimson-bike-ag.go" "crimson-bike") + ("bikec-ag.go" "bikec") + ("bikeb-ag.go" "bikeb") + ("bikea-ag.go" "bikea") + ("lwidec.go" "lwidec") + ) diff --git a/goal_src/jak2/dgos/lwidesta.gd b/goal_src/jak2/dgos/lwidesta.gd new file mode 100644 index 000000000..60583e970 --- /dev/null +++ b/goal_src/jak2/dgos/lwidesta.gd @@ -0,0 +1,13 @@ +("LWIDESTA.DGO" + ("tpage-2964.go" "tpage-2964") + ("tpage-3257.go" "tpage-3257") + ("errol-highres-ag.go" "errol-highres") + ("baron-highres-ag.go" "baron-highres") + ("crimson-guard-highres-ag.go" "crimson-guard-highres") + ("stdm-baron-box-ag.go" "stdm-baron-box") + ("crimson-guard-lowres-ag.go" "crimson-guard-lowres") + ("stdm-barrels-ag.go" "stdm-barrels") + ("palmpilot-ag.go" "palmpilot") + ("particleman-ag.go" "particleman") + ("lwidesta.go" "lwidesta") + ) diff --git a/goal_src/jak2/dgos/lysamsam.gd b/goal_src/jak2/dgos/lysamsam.gd new file mode 100644 index 000000000..0d22548dc --- /dev/null +++ b/goal_src/jak2/dgos/lysamsam.gd @@ -0,0 +1,7 @@ +("LYSAMSAM.DGO" + ("youngsamos-lysamsam+0-ag.go" "youngsamos-lysamsam+0") + ("tpage-3260.go" "tpage-3260") + ("youngsamos-highres-ag.go" "youngsamos-highres") + ("samos-highres-ag.go" "samos-highres") + ("lysamsam.go" "lysamsam") + ) diff --git a/goal_src/jak2/dgos/lyskdcd.gd b/goal_src/jak2/dgos/lyskdcd.gd new file mode 100644 index 000000000..cff6f8e36 --- /dev/null +++ b/goal_src/jak2/dgos/lyskdcd.gd @@ -0,0 +1,13 @@ +("LYSKDCD.DGO" + ("youngsamos-lyskdcd+0-ag.go" "youngsamos-lyskdcd+0") + ("kid-lyskdcd+0-ag.go" "kid-lyskdcd+0") + ("tpage-1772.go" "tpage-1772") + ("tpage-3261.go" "tpage-3261") + ("daxter-highres-ag.go" "daxter-highres") + ("youngsamos-highres-ag.go" "youngsamos-highres") + ("jak-highres-ag.go" "jak-highres") + ("crocadog-highres-ag.go" "crocadog-highres") + ("kid-highres-ag.go" "kid-highres") + ("particleman-ag.go" "particleman") + ("lyskdcd.go" "lyskdcd") + ) diff --git a/goal_src/jak2/dgos/mcn.gd b/goal_src/jak2/dgos/mcn.gd new file mode 100644 index 000000000..a5ee42c8e --- /dev/null +++ b/goal_src/jak2/dgos/mcn.gd @@ -0,0 +1,22 @@ +("MCN.DGO" + ("mincan-obs.o" "mincan-obs") + ("canyon-scenes.o" "canyon-scenes") + ("tpage-3341.go" "tpage-3341") + ("tpage-3343.go" "tpage-3343") + ("tpage-3342.go" "tpage-3342") + ("tpage-3344.go" "tpage-3344") + ("tpage-3471.go" "tpage-3471") + ("daxter-highres-ag.go" "daxter-highres") + ("jak-highres-ag.go" "jak-highres") + ("ctypal-baron-statue-break-ag.go" "ctypal-baron-statue-break") + ("mincan-cogs-ag.go" "mincan-cogs") + ("ctypal-break-wall-ag.go" "ctypal-break-wall") + ("mincan-lighthouse-ag.go" "mincan-lighthouse") + ("water-anim-mincan-ag.go" "water-anim-mincan") + ("mincan-lens-ag.go" "mincan-lens") + ("shard-ag.go" "mtn-shard") + ("gear-device-gear-ag.go" "mtn-gear-device-gear") + ("mtn-lens-ag.go" "mtn-lens") + ("particleman-ag.go" "particleman") + ("mincan-vis.go" "mincan-vis") + ) diff --git a/goal_src/jak2/dgos/mtn.gd b/goal_src/jak2/dgos/mtn.gd new file mode 100644 index 000000000..0020c0e0a --- /dev/null +++ b/goal_src/jak2/dgos/mtn.gd @@ -0,0 +1,35 @@ +("MTN.DGO" + ("rhino.o" "rhino") + ("rhino-wall.o" "rhino-wall") + ("mountain-ocean.o" "mountain-ocean") + ("mountain-obs.o" "mountain-obs") + ("mountain-obs2.o" "mountain-obs2") + ("mountain-scenes.o" "mountain-scenes") + ("mountain-part.o" "mountain-part") + ("centurion.o" "centurion") + ("hopper.o" "hopper") + ("metalmonk.o" "metalmonk") + ("tpage-1254.go" "tpage-1254") + ("tpage-1256.go" "tpage-1256") + ("tpage-1255.go" "tpage-1255") + ("tpage-1253.go" "tpage-1253") + ("tpage-1257.go" "tpage-1257") + ("tpage-3470.go" "tpage-3470") + ("tpage-1275.go" "tpage-1275") + ("com-airlock-outer-ag.go" "com-airlock-outer") + ("plat-buried-ag.go" "mtn-plat-buried") + ("plat-return-ag.go" "mtn-plat-return") + ("water-anim-mountain-ag.go" "water-anim-mountain") + ("shard-ag.go" "mtn-shard") + ("mtn-gate-ag.go" "mtn-gate") + ("mtn-lens-base-ag.go" "mtn-lens-base") + ("warp-gate-ag.go" "warp-gate") + ("mtn-plat-long-ag.go" "mtn-plat-long") + ("iris-door-ag.go" "mtn-iris-door") + ("mtn-plat-elevator-ag.go" "mtn-plat-elevator") + ("mtn-plat-shoot-ag.go" "mtn-plat-shoot") + ("mtn-lens-floor-ag.go" "mtn-lens-floor") + ("mtn-plat-updown-ag.go" "mtn-plat-updown") + ("pal-windmill-ag.go" "pal-windmill") + ("mountain-vis.go" "mountain-vis") + ) diff --git a/goal_src/jak2/dgos/mtx.gd b/goal_src/jak2/dgos/mtx.gd new file mode 100644 index 000000000..c06924346 --- /dev/null +++ b/goal_src/jak2/dgos/mtx.gd @@ -0,0 +1,31 @@ +("MTX.DGO" + ("tpage-1719.go" "tpage-1719") + ("tpage-1721.go" "tpage-1721") + ("tpage-1720.go" "tpage-1720") + ("tpage-1722.go" "tpage-1722") + ("tpage-3506.go" "tpage-3506") + ("daxter-highres-ag.go" "daxter-highres") + ("jak-highres-ag.go" "jak-highres") + ("mtn-gear-device-ag.go" "mtn-gear-device") + ("mtn-step-plat-rocks-ag.go" "mtn-step-plat-rocks") + ("metalmonk-ag.go" "metalmonk") + ("centurion-ag.go" "centurion") + ("rhino-ag.go" "rhino") + ("mtn-plat-buried-rocks-ag.go" "mtn-plat-buried-rocks") + ("rhino-wall-ag.go" "rhino-wall") + ("hopper-ag.go" "hopper") + ("water-anim-mountain-dark-eco-ag.go" "water-anim-mountain-dark-eco") + ("mtn-aval-rocks-ag.go" "mtn-aval-rocks") + ("mtn-dice-ag.go" "mtn-dice") + ("plat-buried-ag.go" "mtn-plat-buried") + ("plat-return-ag.go" "mtn-plat-return") + ("iris-door-ag.go" "mtn-iris-door") + ("seal-of-mar-ag.go" "seal-of-mar") + ("mtn-dice-button-ag.go" "mtn-dice-button") + ("mtn-plat-eject-ag.go" "mtn-plat-eject") + ("mtn-button-ag.go" "mtn-button") + ("gear-device-gear-ag.go" "mtn-gear-device-gear") + ("mtn-lens-ag.go" "mtn-lens") + ("particleman-ag.go" "particleman") + ("mtnext-vis.go" "mtnext-vis") + ) diff --git a/goal_src/jak2/dgos/neb.gd b/goal_src/jak2/dgos/neb.gd new file mode 100644 index 000000000..c0d3f7ce5 --- /dev/null +++ b/goal_src/jak2/dgos/neb.gd @@ -0,0 +1,58 @@ +("NEB.DGO" + ("hover-formation-h.o" "hover-formation-h") + ("hover-nav-control-h.o" "hover-nav-control-h") + ("hover-enemy-h.o" "hover-enemy-h") + ("hover-nav-network.o" "hover-nav-network") + ("hover-nav-control.o" "hover-nav-control") + ("hover-enemy.o" "hover-enemy") + ("hover-enemy-battle.o" "hover-enemy-battle") + ("hover-formation.o" "hover-formation") + ("hover-nav-edit.o" "hover-nav-edit") + ("wasp-part.o" "wasp-part") + ("wasp.o" "wasp") + ("crimson-guard-hover.o" "crimson-guard-hover") + ("flamer.o" "flamer") + ("nest-texture.o" "nest-texture") + ("metalkor-part.o" "metalkor-part") + ("metalkor-setup.o" "metalkor-setup") + ("metalkor-states.o" "metalkor-states") + ("metalkor-extras.o" "metalkor-extras") + ("nestb-scenes.o" "nestb-scenes") + ("nestb-part.o" "nestb-part") + ("kid-nestb+0-ag.go" "kid-nestb+0") + ("tpage-2985.go" "tpage-2985") + ("tpage-2986.go" "tpage-2986") + ("tpage-3122.go" "tpage-3122") + ("tpage-3121.go" "tpage-3121") + ("tpage-2987.go" "tpage-2987") + ("tpage-3092.go" "tpage-3092") + ("tpage-3378.go" "tpage-3378") + ("metalkor-ag.go" "metalkor") + ("daxter-highres-ag.go" "daxter-highres") + ("metalkor-lowtorso-ag.go" "metalkor-lowtorso") + ("metalkor-highres-ag.go" "metalkor-highres") + ("darkjak-highres-ag.go" "darkjak-highres") + ("metalkor-legs-ag.go" "metalkor-legs") + ("metalkor-explode-ag.go" "metalkor-explode") + ("kid-highres-ag.go" "kid-highres") + ("nest-gun-parts-ag.go" "nest-gun-parts") + ("wasp-ag.go" "wasp") + ("kid-ag.go" "kid") + ("flitter-ag.go" "flitter") + ("nest-break-precipice-ag.go" "nest-break-precipice") + ("metalkor-bomb-ag.go" "metalkor-bomb") + ("metalkor-wings-ag.go" "metalkor-wings") + ("metalkor-egg-ag.go" "metalkor-egg") + ("rift-ring-in-game-ag.go" "rift-ring-in-game") + ("nest-unbroken-rocks-ag.go" "nest-unbroken-rocks") + ("metalkor-distort-ag.go" "metalkor-distort") + ("metalkor-rays-ag.go" "metalkor-rays") + ("nest-gun-elevator-ag.go" "nest-gun-elevator") + ("precursor-stone-ag.go" "precursor-stone") + ("palmpilot-ag.go" "palmpilot") + ("metalkor-fma-spinner-ag.go" "metalkor-fma-spinner") + ("nestb-tail-bound-ag.go" "nestb-tail-bound") + ("particleman-ag.go" "particleman") + ("rift-occlude-ag.go" "rift-occlude") + ("nestb-vis.go" "nestb-vis") + ) diff --git a/goal_src/jak2/dgos/nes.gd b/goal_src/jak2/dgos/nes.gd new file mode 100644 index 000000000..358dc90d2 --- /dev/null +++ b/goal_src/jak2/dgos/nes.gd @@ -0,0 +1,26 @@ +("NES.DGO" + ("gun-buoy.o" "gun-buoy") + ("nest-obs.o" "nest-obs") + ("mantis.o" "mantis") + ("mammoth.o" "mammoth") + ("flying-spider.o" "flying-spider") + ("nest-ocean.o" "nest-ocean") + ("nest-scenes.o" "nest-scenes") + ("nest-part.o" "nest-part") + ("tpage-2988.go" "tpage-2988") + ("tpage-2990.go" "tpage-2990") + ("tpage-2989.go" "tpage-2989") + ("tpage-2991.go" "tpage-2991") + ("tpage-3349.go" "tpage-3349") + ("mammoth-ag.go" "mammoth") + ("flying-spider-ag.go" "flying-spider") + ("mantis-ag.go" "mantis") + ("nest-break-rocks-ag.go" "nest-break-rocks") + ("water-anim-nest-dark-eco-ag.go" "water-anim-nest-dark-eco") + ("gun-buoy-ag.go" "gun-buoy") + ("transport-ag.go" "transport") + ("switch-ag.go" "cas-switch") + ("air-train-ag.go" "air-train") + ("piston-ag.go" "piston") + ("nest-vis.go" "nest-vis") + ) diff --git a/goal_src/jak2/dgos/nestt.gd b/goal_src/jak2/dgos/nestt.gd new file mode 100644 index 000000000..cc41b2829 --- /dev/null +++ b/goal_src/jak2/dgos/nestt.gd @@ -0,0 +1,26 @@ +("NESTT.DGO" + ("gun-buoy.o" "gun-buoy") + ("nest-obs.o" "nest-obs") + ("mantis.o" "mantis") + ("mammoth.o" "mammoth") + ("flying-spider.o" "flying-spider") + ("nest-ocean.o" "nest-ocean") + ("nest-scenes.o" "nest-scenes") + ("nest-part.o" "nest-part") + ("tpage-2988.go" "tpage-2988") + ("tpage-2990.go" "tpage-2990") + ("tpage-2989.go" "tpage-2989") + ("tpage-2991.go" "tpage-2991") + ("tpage-3349.go" "tpage-3349") + ("mammoth-ag.go" "mammoth") + ("flying-spider-ag.go" "flying-spider") + ("mantis-ag.go" "mantis") + ("nest-break-rocks-ag.go" "nest-break-rocks") + ("water-anim-nest-dark-eco-ag.go" "water-anim-nest-dark-eco") + ("gun-buoy-ag.go" "gun-buoy") + ("transport-ag.go" "transport") + ("switch-ag.go" "cas-switch") + ("air-train-ag.go" "air-train") + ("piston-ag.go" "piston") + ("nestt.go" "nestt") + ) diff --git a/goal_src/jak2/dgos/onintent.gd b/goal_src/jak2/dgos/onintent.gd new file mode 100644 index 000000000..437924acf --- /dev/null +++ b/goal_src/jak2/dgos/onintent.gd @@ -0,0 +1,19 @@ +("ONINTENT.DGO" + ("onintent-part.o" "onintent-part") + ("onintent-scenes.o" "onintent-scenes") + ("onin-game.o" "onin-game") + ("onin-game+0-ag.go" "onin-game+0") + ("tpage-1031.go" "tpage-1031") + ("tpage-1183.go" "tpage-1183") + ("tpage-2676.go" "tpage-2676") + ("tpage-1035.go" "tpage-1035") + ("daxter-highres-ag.go" "daxter-highres") + ("pecker-highres-ag.go" "pecker-highres") + ("jak-highres-ag.go" "jak-highres") + ("onin-highres-ag.go" "onin-highres") + ("life-seed-ag.go" "life-seed") + ("onin-brain-ag.go" "onin-brain") + ("son-of-particleman-ag.go" "son-of-particleman") + ("particleman-ag.go" "particleman") + ("onintent.go" "onintent") + ) diff --git a/goal_src/jak2/dgos/oracle.gd b/goal_src/jak2/dgos/oracle.gd new file mode 100644 index 000000000..b4c3eaf7e --- /dev/null +++ b/goal_src/jak2/dgos/oracle.gd @@ -0,0 +1,17 @@ +("ORACLE.DGO" + ("oracle-texture.o" "oracle-texture") + ("oracle-part.o" "oracle-part") + ("oracle-scenes.o" "oracle-scenes") + ("oracle-training.o" "oracle-training") + ("tpage-2553.go" "tpage-2553") + ("tpage-2863.go" "tpage-2863") + ("tpage-2557.go" "tpage-2557") + ("daxter-highres-ag.go" "daxter-highres") + ("darkjak-highres-ag.go" "darkjak-highres") + ("oracle-roof-banner-b-ag.go" "oracle-roof-banner-b") + ("oracle-roof-banner-ag.go" "oracle-roof-banner") + ("door-ag.go" "oracle-door") + ("oracle-wall-banner-ag.go" "oracle-wall-banner") + ("particleman-ag.go" "particleman") + ("oracle.go" "oracle") + ) diff --git a/goal_src/jak2/dgos/outrocst.gd b/goal_src/jak2/dgos/outrocst.gd new file mode 100644 index 000000000..b90648d8d --- /dev/null +++ b/goal_src/jak2/dgos/outrocst.gd @@ -0,0 +1,23 @@ +("OUTROCST.DGO" + ("0credits-tx.go" "0credits-tx") + ("1credits-tx.go" "1credits-tx") + ("2credits-tx.go" "2credits-tx") + ("3credits-tx.go" "3credits-tx") + ("4credits-tx.go" "4credits-tx") + ("5credits-tx.go" "5credits-tx") + ("6credits-tx.go" "6credits-tx") + ("7credits-tx.go" "7credits-tx") + ("credits.o" "credits") + ("outro-scenes.o" "outro-scenes") + ("tpage-3182.go" "tpage-3182") + ("tpage-3183.go" "tpage-3183") + ("tpage-3263.go" "tpage-3263") + ("tpage-3513.go" "tpage-3513") + ("keira-highres-ag.go" "keira-highres") + ("samos-highres-ag.go" "samos-highres") + ("tess-highres-ag.go" "tess-highres") + ("onin-highres-ag.go" "onin-highres") + ("rift-break-ring-ag.go" "rift-break-ring") + ("precursor-ag.go" "precursor") + ("outrocst.go" "outrocst") + ) diff --git a/goal_src/jak2/dgos/pac.gd b/goal_src/jak2/dgos/pac.gd new file mode 100644 index 000000000..40a49d94c --- /dev/null +++ b/goal_src/jak2/dgos/pac.gd @@ -0,0 +1,24 @@ +("PAC.DGO" + ("jak-pole+0-ag.go" "jak-pole+0") + ("palcab-part.o" "palcab-part") + ("palcab-obs.o" "palcab-obs") + ("searchlight.o" "searchlight") + ("sew-gunturret.o" "sew-gunturret") + ("pal-obs.o" "pal-obs") + ("tpage-2354.go" "tpage-2354") + ("tpage-2357.go" "tpage-2357") + ("tpage-2355.go" "tpage-2355") + ("tpage-2356.go" "tpage-2356") + ("tpage-3371.go" "tpage-3371") + ("tpage-2619.go" "tpage-2619") + ("pal-gun-turret-ag.go" "pal-gun-turret") + ("com-airlock-outer-ag.go" "com-airlock-outer") + ("pal-electric-fan-ag.go" "pal-electric-fan") + ("pal-cable-nut-ag.go" "pal-cable-nut") + ("pal-flip-step-ag.go" "pal-flip-step") + ("pal-rot-gun-ag.go" "pal-rot-gun") + ("pal-falling-plat-ag.go" "pal-falling-plat") + ("searchlight-ag.go" "searchlight") + ("pal-windmill-ag.go" "pal-windmill") + ("palcab-vis.go" "palcab-vis") + ) diff --git a/goal_src/jak2/dgos/pae.gd b/goal_src/jak2/dgos/pae.gd new file mode 100644 index 000000000..1993fcd2e --- /dev/null +++ b/goal_src/jak2/dgos/pae.gd @@ -0,0 +1,24 @@ +("PAE.DGO" + ("jak-pole+0-ag.go" "jak-pole+0") + ("crimson-guard-level.o" "crimson-guard-level") + ("guard-conversation.o" "guard-conversation") + ("transport-level.o" "transport-level") + ("sew-gunturret.o" "sew-gunturret") + ("palent-part.o" "palent-part") + ("pal-obs.o" "pal-obs") + ("tpage-3169.go" "tpage-3169") + ("tpage-3171.go" "tpage-3171") + ("tpage-3170.go" "tpage-3170") + ("tpage-3168.go" "tpage-3168") + ("crimson-guard-ag.go" "crimson-guard") + ("palent-turret-ag.go" "palent-turret") + ("pal-breakable-window-ag.go" "pal-breakable-window") + ("com-airlock-outer-ag.go" "com-airlock-outer") + ("pal-grind-ring-ag.go" "pal-grind-ring") + ("pal-grind-ring-center-ag.go" "pal-grind-ring-center") + ("pal-throne-door-ag.go" "pal-throne-door") + ("pal-falling-plat-ag.go" "pal-falling-plat") + ("pal-ent-door-ag.go" "pal-ent-door") + ("pal-ent-glass-ag.go" "pal-ent-glass") + ("palent-vis.go" "palent-vis") + ) diff --git a/goal_src/jak2/dgos/palboss.gd b/goal_src/jak2/dgos/palboss.gd new file mode 100644 index 000000000..68fa90c91 --- /dev/null +++ b/goal_src/jak2/dgos/palboss.gd @@ -0,0 +1,19 @@ +("PALBOSS.DGO" + ("squid-part.o" "squid-part") + ("squid-setup.o" "squid-setup") + ("squid-extras.o" "squid-extras") + ("squid-states.o" "squid-states") + ("baron-squid+0-ag.go" "baron-squid+0") + ("tpage-2679.go" "tpage-2679") + ("tpage-2680.go" "tpage-2680") + ("tpage-2797.go" "tpage-2797") + ("tpage-3419.go" "tpage-3419") + ("daxter-highres-ag.go" "daxter-highres") + ("jak-highres-ag.go" "jak-highres") + ("squid-ag.go" "squid") + ("squid-break-ag.go" "squid-break") + ("baron-highres-ag.go" "baron-highres") + ("baron-ag.go" "baron") + ("squid-collision-ag.go" "squid-collision") + ("palboss.go" "palboss") + ) diff --git a/goal_src/jak2/dgos/palout.gd b/goal_src/jak2/dgos/palout.gd new file mode 100644 index 000000000..2c8973ccf --- /dev/null +++ b/goal_src/jak2/dgos/palout.gd @@ -0,0 +1,6 @@ +("PALOUT.DGO" + ("palace-ocean.o" "palace-ocean") + ("tpage-2572.go" "tpage-2572") + ("tpage-2573.go" "tpage-2573") + ("palout.go" "palout") + ) diff --git a/goal_src/jak2/dgos/par.gd b/goal_src/jak2/dgos/par.gd new file mode 100644 index 000000000..f954bfda9 --- /dev/null +++ b/goal_src/jak2/dgos/par.gd @@ -0,0 +1,18 @@ +("PAR.DGO" + ("palroof-part.o" "palroof-part") + ("palroof-obs.o" "palroof-obs") + ("palboss-texture.o" "palboss-texture") + ("palboss-part.o" "palboss-part") + ("palboss-scenes.o" "palboss-scenes") + ("tpage-2360.go" "tpage-2360") + ("tpage-2363.go" "tpage-2363") + ("tpage-2361.go" "tpage-2361") + ("tpage-2362.go" "tpage-2362") + ("tpage-2521.go" "tpage-2521") + ("tpage-2746.go" "tpage-2746") + ("com-airlock-outer-ag.go" "com-airlock-outer") + ("pal-prong-ag.go" "pal-prong") + ("pal-flip-step-ag.go" "pal-flip-step") + ("pal-lowrez-throne-ag.go" "pal-lowrez-throne") + ("palroof-vis.go" "palroof-vis") + ) diff --git a/goal_src/jak2/dgos/pas.gd b/goal_src/jak2/dgos/pas.gd new file mode 100644 index 000000000..b7bb7fdda --- /dev/null +++ b/goal_src/jak2/dgos/pas.gd @@ -0,0 +1,11 @@ +("PAS.DGO" + ("com-elevator.o" "com-elevator") + ("palshaft-part.o" "palshaft-part") + ("tpage-2371.go" "tpage-2371") + ("tpage-2372.go" "tpage-2372") + ("tpage-2692.go" "tpage-2692") + ("com-airlock-outer-ag.go" "com-airlock-outer") + ("com-airlock-inner-ag.go" "com-airlock-inner") + ("com-elevator-ag.go" "com-elevator") + ("palshaft-vis.go" "palshaft-vis") + ) diff --git a/goal_src/jak2/dgos/portwall.gd b/goal_src/jak2/dgos/portwall.gd new file mode 100644 index 000000000..64c44326d --- /dev/null +++ b/goal_src/jak2/dgos/portwall.gd @@ -0,0 +1,6 @@ +("PORTWALL.DGO" + ("tpage-3181.go" "tpage-3181") + ("tpage-3323.go" "tpage-3323") + ("mecha-daxter-ag.go" "mecha-daxter") + ("portwall.go" "portwall") + ) diff --git a/goal_src/jak2/dgos/pri.gd b/goal_src/jak2/dgos/pri.gd index e740ddc4a..cf8a64268 100644 --- a/goal_src/jak2/dgos/pri.gd +++ b/goal_src/jak2/dgos/pri.gd @@ -16,5 +16,3 @@ ("prsn-cell-door-ag.go" "prsn-cell-door") ("prison-vis.go" "prison-vis") ) - - diff --git a/goal_src/jak2/dgos/rui.gd b/goal_src/jak2/dgos/rui.gd new file mode 100644 index 000000000..a5a3eb67f --- /dev/null +++ b/goal_src/jak2/dgos/rui.gd @@ -0,0 +1,50 @@ +("RUI.DGO" + ("jak-pole+0-ag.go" "jak-pole+0") + ("jak-mech+0-ag.go" "jak-mech+0") + ("grunt-mech-anims+0-ag.go" "grunt-mech-anims+0") + ("mech-part.o" "mech-part") + ("mech.o" "mech") + ("target-mech.o" "target-mech") + ("mech-states.o" "mech-states") + ("grunt-mech.o" "grunt-mech") + ("ruins-ocean.o" "ruins-ocean") + ("ruins-scenes.o" "ruins-scenes") + ("mechtest-obs.o" "mechtest-obs") + ("ruins-part.o" "ruins-part") + ("breakable-wall.o" "breakable-wall") + ("pillar-collapse.o" "pillar-collapse") + ("ruins-obs.o" "ruins-obs") + ("rapid-gunner.o" "rapid-gunner") + ("amphibian.o" "amphibian") + ("fodder.o" "fodder") + ("grenadier.o" "grenadier") + ("tpage-851.go" "tpage-851") + ("tpage-853.go" "tpage-853") + ("tpage-852.go" "tpage-852") + ("tpage-2205.go" "tpage-2205") + ("tpage-1000.go" "tpage-1000") + ("grunt-ag.go" "grunt") + ("ruins-breakable-wall-ag.go" "ruins-breakable-wall") + ("grenadier-ag.go" "grenadier") + ("amphibian-ag.go" "amphibian") + ("ruins-drop-plat-ag.go" "ruins-drop-plat") + ("rapid-gunner-ag.go" "rapid-gunner") + ("flitter-ag.go" "flitter") + ("ruins-pillar-collapse-ag.go" "ruins-pillar-collapse") + ("mech-ag.go" "mech") + ("fodder-ag.go" "fodder") + ("ruins-bridge-ag.go" "ruins-bridge") + ("com-airlock-outer-ag.go" "com-airlock-outer") + ("shield-gunner-ag.go" "shield-gunner") + ("precipice-b-ag.go" "precipice-b") + ("ruins-precipice-ag.go" "ruins-precipice") + ("precipice-a-ag.go" "precipice-a") + ("pushblock-ag.go" "pushblock") + ("throwblock-ag.go" "throwblock") + ("zipline-ag.go" "zipline") + ("flag-ag.go" "flag") + ("sinking-plat-ag.go" "sinking-plat") + ("awning-ag.go" "awning") + ("beam-ag.go" "beam") + ("ruins-vis.go" "ruins-vis") + ) diff --git a/goal_src/jak2/dgos/sag.gd b/goal_src/jak2/dgos/sag.gd new file mode 100644 index 000000000..08f2c0304 --- /dev/null +++ b/goal_src/jak2/dgos/sag.gd @@ -0,0 +1,18 @@ +("SAG.DGO" + ("tpage-881.go" "tpage-881") + ("tpage-1131.go" "tpage-1131") + ("tpage-882.go" "tpage-882") + ("tpage-880.go" "tpage-880") + ("daxter-highres-ag.go" "daxter-highres") + ("jak-highres-ag.go" "jak-highres") + ("torn-highres-ag.go" "torn-highres") + ("ruins-tower-a-ag.go" "ruins-tower-a") + ("ruins-tower-c-ag.go" "ruins-tower-c") + ("ruins-tower-e-ag.go" "ruins-tower-e") + ("ruins-tower-b-ag.go" "ruins-tower-b") + ("ruins-tower-f-ag.go" "ruins-tower-f") + ("ruins-tower-d-ag.go" "ruins-tower-d") + ("life-seed-ag.go" "life-seed") + ("ruins-tower-rp-ag.go" "ruins-tower-rp") + ("sagehut-vis.go" "sagehut-vis") + ) diff --git a/goal_src/jak2/dgos/seb.gd b/goal_src/jak2/dgos/seb.gd new file mode 100644 index 000000000..2294f0d86 --- /dev/null +++ b/goal_src/jak2/dgos/seb.gd @@ -0,0 +1,45 @@ +("SEB.DGO" + ("ai-task-h.o" "ai-task-h") + ("bot-h.o" "bot-h") + ("bot.o" "bot") + ("bot-states.o" "bot-states") + ("hal-h.o" "hal-h") + ("hal-task.o" "hal-task") + ("hal.o" "hal") + ("ruf-h.o" "ruf-h") + ("ruf-task.o" "ruf-task") + ("ruf.o" "ruf") + ("ruf-states.o" "ruf-states") + ("jinx-h.o" "jinx-h") + ("jinx-shot.o" "jinx-shot") + ("jinx-bomb.o" "jinx-bomb") + ("jinx.o" "jinx") + ("jinx-states.o" "jinx-states") + ("mog-h.o" "mog-h") + ("mog.o" "mog") + ("grim-h.o" "grim-h") + ("grim.o" "grim") + ("sewer-part.o" "sewer-part") + ("sewer-ocean.o" "sewer-ocean") + ("sewer-obs.o" "sewer-obs") + ("sewer-obs2.o" "sewer-obs2") + ("hosehead.o" "hosehead") + ("hosehead-fake.o" "hosehead-fake") + ("amphibian.o" "amphibian") + ("gator.o" "gator") + ("fodder.o" "fodder") + ("hal2-course.o" "hal2-course") + ("mog2-course.o" "mog2-course") + ("jinx2-course.o" "jinx2-course") + ("grim2-course.o" "grim2-course") + ("sewer-scenes.o" "sewer-scenes") + ("sew-gunturret.o" "sew-gunturret") + ("tpage-1133.go" "tpage-1133") + ("tpage-1135.go" "tpage-1135") + ("tpage-1134.go" "tpage-1134") + ("tpage-3383.go" "tpage-3383") + ("com-airlock-outer-ag.go" "com-airlock-outer") + ("com-airlock-inner-ag.go" "com-airlock-inner") + ("sew-elevator-ag.go" "sew-elevator") + ("sewerb-vis.go" "sewerb-vis") + ) diff --git a/goal_src/jak2/dgos/sew.gd b/goal_src/jak2/dgos/sew.gd new file mode 100644 index 000000000..779259d3c --- /dev/null +++ b/goal_src/jak2/dgos/sew.gd @@ -0,0 +1,27 @@ +("SEW.DGO" + ("tpage-1059.go" "tpage-1059") + ("tpage-1060.go" "tpage-1060") + ("tpage-1066.go" "tpage-1066") + ("tpage-2270.go" "tpage-2270") + ("tpage-3479.go" "tpage-3479") + ("daxter-highres-ag.go" "daxter-highres") + ("grunt-ag.go" "grunt") + ("jak-highres-ag.go" "jak-highres") + ("amphibian-ag.go" "amphibian") + ("sew-catwalk-ag.go" "sew-catwalk") + ("sew-multi-blade-ag.go" "sew-multi-blade") + ("fodder-ag.go" "fodder") + ("sew-gunturret-ag.go" "sew-gunturret") + ("mar-statue-ag.go" "sew-mar-statue") + ("sew-twist-blade-ag.go" "sew-twist-blade") + ("sew-tri-blade-ag.go" "sew-tri-blade") + ("sew-single-blade-ag.go" "sew-single-blade") + ("mine-a-ag.go" "sew-mine-a") + ("sew-valve-ag.go" "sew-valve") + ("mine-b-ag.go" "sew-mine-b") + ("sew-arm-blade-ag.go" "sew-arm-blade") + ("gold-key-ag.go" "sew-gold-key") + ("light-switch-ag.go" "sew-light-switch") + ("grill-ag.go" "sew-grill") + ("sewer-vis.go" "sewer-vis") + ) diff --git a/goal_src/jak2/dgos/ska.gd b/goal_src/jak2/dgos/ska.gd new file mode 100644 index 000000000..1987722f0 --- /dev/null +++ b/goal_src/jak2/dgos/ska.gd @@ -0,0 +1,13 @@ +("SKA.DGO" + ("skatea-part.o" "skatea-part") + ("skatea-obs.o" "skatea-obs") + ("tpage-2992.go" "tpage-2992") + ("tpage-3131.go" "tpage-3131") + ("tpage-2995.go" "tpage-2995") + ("tpage-3573.go" "tpage-3573") + ("skate-training-ramp-ag.go" "skate-training-ramp") + ("skatea-jump-pad-ag.go" "skatea-jump-pad") + ("skatea-floating-ring-ag.go" "skatea-floating-ring") + ("skate-gate-ag.go" "skate-gate") + ("skatea-vis.go" "skatea-vis") + ) diff --git a/goal_src/jak2/dgos/sta.gd b/goal_src/jak2/dgos/sta.gd new file mode 100644 index 000000000..49e6e176e --- /dev/null +++ b/goal_src/jak2/dgos/sta.gd @@ -0,0 +1,18 @@ +("STA.DGO" + ("hopper.o" "hopper") + ("stadiumb-texture.o" "stadiumb-texture") + ("stadium-part.o" "stadium-part") + ("stadiumb-part.o" "stadiumb-part") + ("stadium-obs.o" "stadium-obs") + ("stadium-scenes.o" "stadium-scenes") + ("tpage-2423.go" "tpage-2423") + ("tpage-2426.go" "tpage-2426") + ("tpage-2424.go" "tpage-2424") + ("tpage-2575.go" "tpage-2575") + ("tpage-1641.go" "tpage-1641") + ("daxter-highres-ag.go" "daxter-highres") + ("jak-highres-ag.go" "jak-highres") + ("water-anim-stadium-ag.go" "water-anim-stadium") + ("gar-door-ag.go" "gar-door") + ("stadium-vis.go" "stadium-vis") + ) diff --git a/goal_src/jak2/dgos/stadblmp.gd b/goal_src/jak2/dgos/stadblmp.gd new file mode 100644 index 000000000..1177d2409 --- /dev/null +++ b/goal_src/jak2/dgos/stadblmp.gd @@ -0,0 +1,20 @@ +("STADBLMP.DGO" + ("tpage-2956.go" "tpage-2956") + ("tpage-2957.go" "tpage-2957") + ("tpage-2958.go" "tpage-2958") + ("tpage-3280.go" "tpage-3280") + ("tpage-3457.go" "tpage-3457") + ("tpage-3418.go" "tpage-3418") + ("youngsamos-highres-ag.go" "youngsamos-highres") + ("brutter-highres-ag.go" "brutter-highres") + ("grunt-ag.go" "grunt") + ("samos-highres-ag.go" "samos-highres") + ("samos-ag.go" "samos") + ("keira-ag.go" "keira") + ("brutter-balloon-ag.go" "brutter-balloon") + ("babak-ag.go" "babak") + ("flitter-ag.go" "flitter") + ("hopper-ag.go" "hopper") + ("brutter-low-ag.go" "brutter-low") + ("stadblmp.go" "stadblmp") + ) diff --git a/goal_src/jak2/dgos/stb.gd b/goal_src/jak2/dgos/stb.gd new file mode 100644 index 000000000..131124db1 --- /dev/null +++ b/goal_src/jak2/dgos/stb.gd @@ -0,0 +1,25 @@ +("STB.DGO" + ("race-h.o" "race-h") + ("race-mesh.o" "race-mesh") + ("race-part.o" "race-part") + ("race-obs.o" "race-obs") + ("vehicle-racer.o" "vehicle-racer") + ("race-info.o" "race-info") + ("race-manager.o" "race-manager") + ("race-hud.o" "race-hud") + ("pilot-recorder.o" "pilot-recorder") + ("racebike.o" "racebike") + ("stadium-race-obs.o" "stadium-race-obs") + ("jak-pidax+0-ag.go" "jak-pidax+0") + ("tpage-3451.go" "tpage-3451") + ("tpage-3454.go" "tpage-3454") + ("tpage-3452.go" "tpage-3452") + ("tpage-3453.go" "tpage-3453") + ("tpage-3109.go" "tpage-3109") + ("race-bike-c-ag.go" "race-bike-c") + ("race-bike-b-ag.go" "race-bike-b") + ("race-bike-a-ag.go" "race-bike-a") + ("stdmb-race-hatch-ag.go" "stdmb-race-hatch") + ("stad-force-field-ag.go" "stad-force-field") + ("stadiumb-vis.go" "stadiumb-vis") + ) diff --git a/goal_src/jak2/dgos/stc.gd b/goal_src/jak2/dgos/stc.gd new file mode 100644 index 000000000..1b5750949 --- /dev/null +++ b/goal_src/jak2/dgos/stc.gd @@ -0,0 +1,25 @@ +("STC.DGO" + ("race-h.o" "race-h") + ("race-mesh.o" "race-mesh") + ("race-part.o" "race-part") + ("race-obs.o" "race-obs") + ("vehicle-racer.o" "vehicle-racer") + ("race-info.o" "race-info") + ("race-manager.o" "race-manager") + ("race-hud.o" "race-hud") + ("pilot-recorder.o" "pilot-recorder") + ("racebike.o" "racebike") + ("stadium-race-obs.o" "stadium-race-obs") + ("jak-pidax+0-ag.go" "jak-pidax+0") + ("tpage-3442.go" "tpage-3442") + ("tpage-3445.go" "tpage-3445") + ("tpage-3443.go" "tpage-3443") + ("tpage-3444.go" "tpage-3444") + ("tpage-3351.go" "tpage-3351") + ("race-bike-c-ag.go" "race-bike-c") + ("race-bike-b-ag.go" "race-bike-b") + ("race-bike-a-ag.go" "race-bike-a") + ("stdmb-race-hatch-ag.go" "stdmb-race-hatch") + ("stad-c-force-field-ag.go" "stad-c-force-field") + ("stadiumc-vis.go" "stadiumc-vis") + ) diff --git a/goal_src/jak2/dgos/std.gd b/goal_src/jak2/dgos/std.gd new file mode 100644 index 000000000..194ede735 --- /dev/null +++ b/goal_src/jak2/dgos/std.gd @@ -0,0 +1,25 @@ +("STD.DGO" + ("race-h.o" "race-h") + ("race-mesh.o" "race-mesh") + ("race-part.o" "race-part") + ("race-obs.o" "race-obs") + ("vehicle-racer.o" "vehicle-racer") + ("race-info.o" "race-info") + ("race-manager.o" "race-manager") + ("race-hud.o" "race-hud") + ("pilot-recorder.o" "pilot-recorder") + ("racebike.o" "racebike") + ("stadium-race-obs.o" "stadium-race-obs") + ("jak-pidax+0-ag.go" "jak-pidax+0") + ("tpage-3447.go" "tpage-3447") + ("tpage-3450.go" "tpage-3450") + ("tpage-3448.go" "tpage-3448") + ("tpage-3449.go" "tpage-3449") + ("tpage-3352.go" "tpage-3352") + ("race-bike-c-ag.go" "race-bike-c") + ("race-bike-b-ag.go" "race-bike-b") + ("race-bike-a-ag.go" "race-bike-a") + ("stdmb-race-hatch-ag.go" "stdmb-race-hatch") + ("stad-d-force-field-ag.go" "stad-d-force-field") + ("stadiumd-vis.go" "stadiumd-vis") + ) diff --git a/goal_src/jak2/dgos/str.gd b/goal_src/jak2/dgos/str.gd new file mode 100644 index 000000000..1bff55de3 --- /dev/null +++ b/goal_src/jak2/dgos/str.gd @@ -0,0 +1,52 @@ +("STR.DGO" + ("hover-formation-h.o" "hover-formation-h") + ("hover-nav-control-h.o" "hover-nav-control-h") + ("hover-enemy-h.o" "hover-enemy-h") + ("hover-nav-network.o" "hover-nav-network") + ("hover-nav-control.o" "hover-nav-control") + ("hover-enemy.o" "hover-enemy") + ("hover-enemy-battle.o" "hover-enemy-battle") + ("hover-formation.o" "hover-formation") + ("hover-nav-edit.o" "hover-nav-edit") + ("wasp-part.o" "wasp-part") + ("wasp.o" "wasp") + ("crimson-guard-hover.o" "crimson-guard-hover") + ("flamer.o" "flamer") + ("strip-scenes.o" "strip-scenes") + ("strip-part.o" "strip-part") + ("strip-ocean.o" "strip-ocean") + ("strip-rescue.o" "strip-rescue") + ("strip-drop.o" "strip-drop") + ("strip-obs.o" "strip-obs") + ("chaincrate.o" "chaincrate") + ("tpage-787.go" "tpage-787") + ("tpage-789.go" "tpage-789") + ("tpage-788.go" "tpage-788") + ("tpage-786.go" "tpage-786") + ("tpage-1272.go" "tpage-1272") + ("tpage-2854.go" "tpage-2854") + ("grunt-ag.go" "grunt") + ("flitter-ag.go" "flitter") + ("flamer-ag.go" "flamer") + ("water-anim-strip-dark-eco-ag.go" "water-anim-strip-dark-eco") + ("cranecrate-ag.go" "cranecrate") + ("strip-game-crate-ag.go" "strip-game-crate") + ("drill-plat-ag.go" "drill-plat") + ("curtainsaw-ag.go" "curtainsaw") + ("fencespikes-ag.go" "fencespikes") + ("lgconveyor-ag.go" "lgconveyor") + ("pitspikes-ag.go" "pitspikes") + ("grunt-egg-b-ag.go" "grunt-egg-b") + ("warp-gate-ag.go" "warp-gate") + ("grunt-egg-a-ag.go" "grunt-egg-a") + ("grunt-egg-d-ag.go" "grunt-egg-d") + ("crane-ag.go" "crane") + ("strip-chain-crate-ag.go" "strip-chain-crate") + ("grunt-egg-c-ag.go" "grunt-egg-c") + ("cable-ag.go" "cable") + ("cntrlrm-door-ag.go" "cntrlrm-door") + ("plasmitebomb-ag.go" "plasmitebomb") + ("strip-conveyor-ag.go" "strip-conveyor") + ("cntrlrm-button-ag.go" "cntrlrm-button") + ("strip-vis.go" "strip-vis") + ) diff --git a/goal_src/jak2/dgos/swb.gd b/goal_src/jak2/dgos/swb.gd new file mode 100644 index 000000000..4cbfd50c7 --- /dev/null +++ b/goal_src/jak2/dgos/swb.gd @@ -0,0 +1,44 @@ +("SWB.DGO" + ("ai-task-h.o" "ai-task-h") + ("bot-h.o" "bot-h") + ("bot.o" "bot") + ("bot-states.o" "bot-states") + ("hal-h.o" "hal-h") + ("hal-task.o" "hal-task") + ("hal.o" "hal") + ("ruf-h.o" "ruf-h") + ("ruf-task.o" "ruf-task") + ("ruf.o" "ruf") + ("ruf-states.o" "ruf-states") + ("jinx-h.o" "jinx-h") + ("jinx-shot.o" "jinx-shot") + ("jinx-bomb.o" "jinx-bomb") + ("jinx.o" "jinx") + ("jinx-states.o" "jinx-states") + ("mog-h.o" "mog-h") + ("mog.o" "mog") + ("grim-h.o" "grim-h") + ("grim.o" "grim") + ("sewer-part.o" "sewer-part") + ("sewer-ocean.o" "sewer-ocean") + ("sewer-obs.o" "sewer-obs") + ("sewer-obs2.o" "sewer-obs2") + ("hosehead.o" "hosehead") + ("hosehead-fake.o" "hosehead-fake") + ("amphibian.o" "amphibian") + ("gator.o" "gator") + ("fodder.o" "fodder") + ("hal2-course.o" "hal2-course") + ("mog2-course.o" "mog2-course") + ("jinx2-course.o" "jinx2-course") + ("grim2-course.o" "grim2-course") + ("sewer-scenes.o" "sewer-scenes") + ("sew-gunturret.o" "sew-gunturret") + ("tpage-1372.go" "tpage-1372") + ("tpage-1373.go" "tpage-1373") + ("tpage-1458.go" "tpage-1458") + ("com-airlock-outer-ag.go" "com-airlock-outer") + ("com-airlock-inner-ag.go" "com-airlock-inner") + ("sew-elevator-ag.go" "sew-elevator") + ("sewescb-vis.go" "sewescb-vis") + ) diff --git a/goal_src/jak2/dgos/swe.gd b/goal_src/jak2/dgos/swe.gd new file mode 100644 index 000000000..209714060 --- /dev/null +++ b/goal_src/jak2/dgos/swe.gd @@ -0,0 +1,26 @@ +("SWE.DGO" + ("tpage-1370.go" "tpage-1370") + ("tpage-1387.go" "tpage-1387") + ("tpage-1371.go" "tpage-1371") + ("tpage-2293.go" "tpage-2293") + ("tpage-3478.go" "tpage-3478") + ("tpage-3415.go" "tpage-3415") + ("jinx-ag.go" "jinx") + ("daxter-highres-ag.go" "daxter-highres") + ("jak-highres-ag.go" "jak-highres") + ("hosehead-ag.go" "hosehead") + ("sew-wall-ag.go" "sew-wall") + ("sew-mar-statue-explode-ag.go" "sew-mar-statue-explode") + ("sew-multi-blade-ag.go" "sew-multi-blade") + ("mar-statue-ag.go" "sew-mar-statue") + ("sew-twist-blade-ag.go" "sew-twist-blade") + ("heart-of-mar-ag.go" "heart-of-mar") + ("mine-a-ag.go" "sew-mine-a") + ("mine-b-ag.go" "sew-mine-b") + ("sew-arm-blade-ag.go" "sew-arm-blade") + ("light-switch-ag.go" "sew-light-switch") + ("jinx-bomb-ag.go" "jinx-bomb") + ("grill-ag.go" "sew-grill") + ("particleman-ag.go" "particleman") + ("sewesc-vis.go" "sewesc-vis") + ) diff --git a/goal_src/jak2/dgos/tbo.gd b/goal_src/jak2/dgos/tbo.gd new file mode 100644 index 000000000..48a361491 --- /dev/null +++ b/goal_src/jak2/dgos/tbo.gd @@ -0,0 +1,21 @@ +("TBO.DGO" + ("baron-widow+0-ag.go" "baron-widow+0") + ("tpage-1628.go" "tpage-1628") + ("tpage-1629.go" "tpage-1629") + ("tpage-2229.go" "tpage-2229") + ("tpage-2247.go" "tpage-2247") + ("tomb-boss-catwalk-ag.go" "tomb-boss-catwalk") + ("tomb-boss-bridge-ag.go" "tomb-boss-bridge") + ("widow-ag.go" "widow") + ("tomb-boss-pillar-ag.go" "tomb-boss-pillar") + ("spydroid-ag.go" "spydroid") + ("baron-pod-ag.go" "baron-pod") + ("tomb-boss-firepot-ag.go" "tomb-boss-firepot") + ("baron-ag.go" "baron") + ("tomb-boss-debris-ag.go" "tomb-boss-debris") + ("heart-mar-ag.go" "heart-mar") + ("widow-bomb-ag.go" "widow-bomb") + ("tomb-wing-door-ag.go" "tomb-wing-door") + ("particleman-ag.go" "particleman") + ("tombboss-vis.go" "tombboss-vis") + ) diff --git a/goal_src/jak2/dgos/thr.gd b/goal_src/jak2/dgos/thr.gd new file mode 100644 index 000000000..f33d86040 --- /dev/null +++ b/goal_src/jak2/dgos/thr.gd @@ -0,0 +1,13 @@ +("THR.DGO" + ("throne-part.o" "throne-part") + ("palace-scenes.o" "palace-scenes") + ("tpage-2731.go" "tpage-2731") + ("tpage-2733.go" "tpage-2733") + ("tpage-3372.go" "tpage-3372") + ("daxter-highres-ag.go" "daxter-highres") + ("jak-highres-ag.go" "jak-highres") + ("throne-throne-ag.go" "throne-throne") + ("pal-throne-door-ag.go" "pal-throne-door") + ("particleman-ag.go" "particleman") + ("throne-vis.go" "throne-vis") + ) diff --git a/goal_src/jak2/dgos/title.gd b/goal_src/jak2/dgos/title.gd new file mode 100644 index 000000000..48c264aa0 --- /dev/null +++ b/goal_src/jak2/dgos/title.gd @@ -0,0 +1,9 @@ +("TITLE.DGO" + ("title-obs.o" "title-obs") + ("tpage-3091.go" "tpage-3091") + ("tpage-3090.go" "tpage-3090") + ("daxter-highres-ag.go" "daxter-highres") + ("jak-logo-ag.go" "jak-logo") + ("jak-stand-ag.go" "jak-stand") + ("title.go" "title") + ) diff --git a/goal_src/jak2/dgos/toa.gd b/goal_src/jak2/dgos/toa.gd new file mode 100644 index 000000000..7c2e1b4a8 --- /dev/null +++ b/goal_src/jak2/dgos/toa.gd @@ -0,0 +1,30 @@ +("TOA.DGO" + ("tomb-part.o" "tomb-part") + ("tomb-obs.o" "tomb-obs") + ("tomb-water.o" "tomb-water") + ("tomb-beetle.o" "tomb-beetle") + ("spydroid.o" "spydroid") + ("widow-part.o" "widow-part") + ("widow-baron.o" "widow-baron") + ("widow-extras.o" "widow-extras") + ("widow-more-extras.o" "widow-more-extras") + ("widow.o" "widow") + ("widow2.o" "widow2") + ("monster-frog.o" "monster-frog") + ("tomb-scenes.o" "tomb-scenes") + ("tomb-baby-spider.o" "tomb-baby-spider") + ("tpage-1594.go" "tpage-1594") + ("tpage-1595.go" "tpage-1595") + ("tpage-1831.go" "tpage-1831") + ("tpage-1467.go" "tpage-1467") + ("daxter-highres-ag.go" "daxter-highres") + ("jak-highres-ag.go" "jak-highres") + ("water-anim-tomb-ag.go" "water-anim-tomb") + ("monster-frog-ag.go" "monster-frog") + ("tomb-boss-door-ag.go" "tomb-boss-door") + ("tomb-mar-door-ag.go" "tomb-mar-door") + ("tomb-simon-button-ag.go" "tomb-simon-button") + ("tomb-wing-door-ag.go" "tomb-wing-door") + ("tomb-plat-return-ag.go" "tomb-plat-return") + ("tomba-vis.go" "tomba-vis") + ) diff --git a/goal_src/jak2/dgos/tob.gd b/goal_src/jak2/dgos/tob.gd new file mode 100644 index 000000000..d53989b25 --- /dev/null +++ b/goal_src/jak2/dgos/tob.gd @@ -0,0 +1,15 @@ +("TOB.DGO" + ("jak-pole+0-ag.go" "jak-pole+0") + ("tpage-1596.go" "tpage-1596") + ("tpage-1597.go" "tpage-1597") + ("tomb-stair-block-ag.go" "tomb-stair-block") + ("tomb-baby-spider-ag.go" "tomb-baby-spider") + ("water-anim-tomb-dark-eco-ag.go" "water-anim-tomb-dark-eco") + ("tomb-elevator-ag.go" "tomb-elevator") + ("tomb-plat-wall-ag.go" "tomb-plat-wall") + ("tomb-button-ag.go" "tomb-button") + ("tomb-stair-block-spikes-ag.go" "tomb-stair-block-spikes") + ("tomb-boulder-door-ag.go" "tomb-boulder-door") + ("tomb-move-swing-pole-ag.go" "tomb-move-swing-pole") + ("tombb-vis.go" "tombb-vis") + ) diff --git a/goal_src/jak2/dgos/toc.gd b/goal_src/jak2/dgos/toc.gd new file mode 100644 index 000000000..28ce437cc --- /dev/null +++ b/goal_src/jak2/dgos/toc.gd @@ -0,0 +1,16 @@ +("TOC.DGO" + ("tpage-1598.go" "tpage-1598") + ("tpage-1599.go" "tpage-1599") + ("tpage-1832.go" "tpage-1832") + ("water-anim-tomb-ag.go" "water-anim-tomb") + ("tomb-baby-spider-ag.go" "tomb-baby-spider") + ("tomb-beetle-ag.go" "tomb-beetle") + ("tomb-door-ag.go" "tomb-door") + ("tomb-vibe-ag.go" "tomb-vibe") + ("tomb-simon-button-ag.go" "tomb-simon-button") + ("tomb-plat-simon-ag.go" "tomb-plat-simon") + ("tomb-wing-door-ag.go" "tomb-wing-door") + ("tomb-button-ag.go" "tomb-button") + ("tomb-beetle-door-ag.go" "tomb-beetle-door") + ("tombc-vis.go" "tombc-vis") + ) diff --git a/goal_src/jak2/dgos/tod.gd b/goal_src/jak2/dgos/tod.gd new file mode 100644 index 000000000..722e734d5 --- /dev/null +++ b/goal_src/jak2/dgos/tod.gd @@ -0,0 +1,18 @@ +("TOD.DGO" + ("com-elevator.o" "com-elevator") + ("youngsamos-tombd+0-ag.go" "youngsamos-tombd+0") + ("kid-tombd+0-ag.go" "kid-tombd+0") + ("tpage-1626.go" "tpage-1626") + ("tpage-1627.go" "tpage-1627") + ("tpage-3275.go" "tpage-3275") + ("daxter-highres-ag.go" "daxter-highres") + ("youngsamos-highres-ag.go" "youngsamos-highres") + ("jak-highres-ag.go" "jak-highres") + ("crocadog-highres-ag.go" "crocadog-highres") + ("kor-highres-ag.go" "kor-highres") + ("kid-highres-ag.go" "kid-highres") + ("com-airlock-outer-ag.go" "com-airlock-outer") + ("tomb-mar-door-ag.go" "tomb-mar-door") + ("com-elevator-ag.go" "com-elevator") + ("tombd-vis.go" "tombd-vis") + ) diff --git a/goal_src/jak2/dgos/toe.gd b/goal_src/jak2/dgos/toe.gd new file mode 100644 index 000000000..53d5ca014 --- /dev/null +++ b/goal_src/jak2/dgos/toe.gd @@ -0,0 +1,14 @@ +("TOE.DGO" + ("target-indax.o" "target-indax") + ("jak-indax+0-ag.go" "jak-indax+0") + ("tomb-boulder.o" "tomb-boulder") + ("tpage-2374.go" "tpage-2374") + ("tpage-2375.go" "tpage-2375") + ("tpage-2376.go" "tpage-2376") + ("tomb-boulder-ag.go" "tomb-boulder") + ("tomb-baby-spider-ag.go" "tomb-baby-spider") + ("tomb-plat-pillar-ag.go" "tomb-plat-pillar") + ("spider-eyes-ag.go" "spider-eyes") + ("tomb-bounce-web-ag.go" "tomb-bounce-web") + ("tombe-vis.go" "tombe-vis") + ) diff --git a/goal_src/jak2/dgos/tombext.gd b/goal_src/jak2/dgos/tombext.gd new file mode 100644 index 000000000..2b68fbc6c --- /dev/null +++ b/goal_src/jak2/dgos/tombext.gd @@ -0,0 +1,7 @@ +("TOMBEXT.DGO" + ("tpage-2525.go" "tpage-2525") + ("daxter-highres-ag.go" "daxter-highres") + ("tomb-boss-explode-ag.go" "tomb-boss-explode") + ("baron-highres-ag.go" "baron-highres") + ("tombext.go" "tombext") + ) diff --git a/goal_src/jak2/dgos/unb.gd b/goal_src/jak2/dgos/unb.gd new file mode 100644 index 000000000..e26860c9e --- /dev/null +++ b/goal_src/jak2/dgos/unb.gd @@ -0,0 +1,93 @@ +("UNB.DGO" + ("hover-formation-h.o" "hover-formation-h") + ("hover-nav-control-h.o" "hover-nav-control-h") + ("hover-enemy-h.o" "hover-enemy-h") + ("hover-nav-network.o" "hover-nav-network") + ("hover-nav-control.o" "hover-nav-control") + ("hover-enemy.o" "hover-enemy") + ("hover-enemy-battle.o" "hover-enemy-battle") + ("hover-formation.o" "hover-formation") + ("hover-nav-edit.o" "hover-nav-edit") + ("wasp-part.o" "wasp-part") + ("wasp.o" "wasp") + ("crimson-guard-hover.o" "crimson-guard-hover") + ("flamer.o" "flamer") + ("ai-task-h.o" "ai-task-h") + ("bot-h.o" "bot-h") + ("bot.o" "bot") + ("bot-states.o" "bot-states") + ("hal-h.o" "hal-h") + ("hal-task.o" "hal-task") + ("hal.o" "hal") + ("ruf-h.o" "ruf-h") + ("ruf-task.o" "ruf-task") + ("ruf.o" "ruf") + ("ruf-states.o" "ruf-states") + ("jinx-h.o" "jinx-h") + ("jinx-shot.o" "jinx-shot") + ("jinx-bomb.o" "jinx-bomb") + ("jinx.o" "jinx") + ("jinx-states.o" "jinx-states") + ("mog-h.o" "mog-h") + ("mog.o" "mog") + ("grim-h.o" "grim-h") + ("grim.o" "grim") + ("sig-h.o" "sig-h") + ("sig-task.o" "sig-task") + ("sig-shot.o" "sig-shot") + ("sig-plasma.o" "sig-plasma") + ("sig.o" "sig") + ("sig-states.o" "sig-states") + ("jak-mech+0-ag.go" "jak-mech+0") + ("grunt-mech-anims+0-ag.go" "grunt-mech-anims+0") + ("mech-part.o" "mech-part") + ("mech.o" "mech") + ("target-mech.o" "target-mech") + ("mech-states.o" "mech-states") + ("grunt-mech.o" "grunt-mech") + ("under-shoot-block.o" "under-shoot-block") + ("underb-master.o" "underb-master") + ("under-obs.o" "under-obs") + ("under-sig-obs.o" "under-sig-obs") + ("under-laser.o" "under-laser") + ("pipe-grunt.o" "pipe-grunt") + ("jellyfish.o" "jellyfish") + ("under-part.o" "under-part") + ("centipede.o" "centipede") + ("sig5-cent1-path0.o" "sig5-cent1-path0") + ("sig5-cent2-path0.o" "sig5-cent2-path0") + ("sig5-course.o" "sig5-course") + ("under-scenes.o" "under-scenes") + ("sig-recorder.o" "sig-recorder") + ("grenadier.o" "grenadier") + ("tpage-3051.go" "tpage-3051") + ("tpage-3053.go" "tpage-3053") + ("tpage-3054.go" "tpage-3054") + ("tpage-3413.go" "tpage-3413") + ("sig-ag.go" "sig") + ("grunt-ag.go" "grunt") + ("under-mine-ag.go" "under-mine") + ("jellyfish-ag.go" "jellyfish") + ("mech-ag.go" "mech") + ("under-shoot-block-ag.go" "under-shoot-block") + ("under-break-floor-ag.go" "under-break-floor") + ("centipede-ag.go" "centipede") + ("com-airlock-inner-ag.go" "com-airlock-inner") + ("under-int-door-ag.go" "under-int-door") + ("under-break-wall-b-ag.go" "under-break-wall-b") + ("under-break-wall-ag.go" "under-break-wall") + ("under-rise-plat-ag.go" "under-rise-plat") + ("under-lift-ag.go" "under-lift") + ("under-buoy-base-ag.go" "under-buoy-base") + ("under-buoy-chain-ag.go" "under-buoy-chain") + ("under-buoy-plat-ag.go" "under-buoy-plat") + ("water-anim-under-ag.go" "water-anim-under") + ("under-plat-shoot-ag.go" "under-plat-shoot") + ("under-plat-wall-ag.go" "under-plat-wall") + ("under-plat-long-ag.go" "under-plat-long") + ("hip-door-a-ag.go" "hip-door-a") + ("under-warp-ag.go" "under-warp") + ("under-laser-ag.go" "under-laser") + ("under-laser-shadow-ag.go" "under-laser-shadow") + ("underb-vis.go" "underb-vis") + ) diff --git a/goal_src/jak2/dgos/und.gd b/goal_src/jak2/dgos/und.gd new file mode 100644 index 000000000..8f49d4da7 --- /dev/null +++ b/goal_src/jak2/dgos/und.gd @@ -0,0 +1,23 @@ +("UND.DGO" + ("tpage-3045.go" "tpage-3045") + ("tpage-3048.go" "tpage-3048") + ("tpage-3049.go" "tpage-3049") + ("tpage-3047.go" "tpage-3047") + ("tpage-3276.go" "tpage-3276") + ("daxter-highres-ag.go" "daxter-highres") + ("jak-highres-ag.go" "jak-highres") + ("sig-highres-ag.go" "sig-highres") + ("centipede-fma-ag.go" "centipede-fma") + ("under-break-bridge-b-ag.go" "under-break-bridge-b") + ("under-break-bridge-ag.go" "under-break-bridge") + ("com-airlock-inner-ag.go" "com-airlock-inner") + ("under-break-door-ag.go" "under-break-door") + ("grunt-fma-ag.go" "grunt-fma") + ("under-break-ceiling-ag.go" "under-break-ceiling") + ("under-seaweed-c-ag.go" "under-seaweed-c") + ("under-seaweed-b-ag.go" "under-seaweed-b") + ("under-seaweed-d-ag.go" "under-seaweed-d") + ("under-seaweed-a-ag.go" "under-seaweed-a") + ("particleman-ag.go" "particleman") + ("under-vis.go" "under-vis") + ) diff --git a/goal_src/jak2/dgos/vin.gd b/goal_src/jak2/dgos/vin.gd new file mode 100644 index 000000000..b8bbec29b --- /dev/null +++ b/goal_src/jak2/dgos/vin.gd @@ -0,0 +1,28 @@ +("VIN.DGO" + ("vinroom-part.o" "vinroom-part") + ("vinroom-scenes.o" "vinroom-scenes") + ("vinroom-obs.o" "vinroom-obs") + ("kid-tombd+0-ag.go" "kid-tombd+0") + ("tpage-778.go" "tpage-778") + ("tpage-779.go" "tpage-779") + ("tpage-3278.go" "tpage-3278") + ("tpage-979.go" "tpage-979") + ("daxter-highres-ag.go" "daxter-highres") + ("vin-ag.go" "vin") + ("jak-highres-ag.go" "jak-highres") + ("crocadog-highres-ag.go" "crocadog-highres") + ("kor-highres-ag.go" "kor-highres") + ("kid-highres-ag.go" "kid-highres") + ("ecowell-a-ag.go" "ecowell-a") + ("ecowell-b-ag.go" "ecowell-b") + ("ecowell-c-ag.go" "ecowell-c") + ("ecowell-d-ag.go" "ecowell-d") + ("plasmitebox-ag.go" "plasmitebox") + ("warp-gate-ag.go" "warp-gate") + ("vin-door-ag.go" "vin-door") + ("vin-turbine-ag.go" "vin-turbine") + ("pow-mov-plat-ag.go" "pow-mov-plat") + ("palmpilot-ag.go" "palmpilot") + ("particleman-ag.go" "particleman") + ("vinroom-vis.go" "vinroom-vis") + ) diff --git a/goal_src/jak2/engine/ai/enemy-h.gc b/goal_src/jak2/engine/ai/enemy-h.gc index 2b1a9292a..dcdf06562 100644 --- a/goal_src/jak2/engine/ai/enemy-h.gc +++ b/goal_src/jak2/engine/ai/enemy-h.gc @@ -5,6 +5,8 @@ ;; name in dgo: enemy-h ;; dgos: GAME, COMMON +(define-extern get-penetrate-using-from-attack-event (function process-drawable event-message-block penetrate)) + ;; DECOMP BEGINS (defenum enemy-flag diff --git a/goal_src/jak2/engine/collide/collide-shape-h.gc b/goal_src/jak2/engine/collide/collide-shape-h.gc index c2b93b4b9..ab6958893 100644 --- a/goal_src/jak2/engine/collide/collide-shape-h.gc +++ b/goal_src/jak2/engine/collide/collide-shape-h.gc @@ -9,6 +9,7 @@ (declare-type collide-shape-moving collide-shape) (declare-type touching-list structure) (declare-type collide-query structure) +(declare-type control-info basic) (defenum penetrate :bitfield #t @@ -248,6 +249,8 @@ ) ;; ---nav-flags +(define-extern cshape-reaction-default (function control-info collide-query vector vector cshape-moving-flags)) + ;; DECOMP BEGINS (deftype collide-rider (structure) @@ -480,38 +483,38 @@ (collide-shape-method-51 () none 51) (collide-shape-method-52 () none 52) (collide-shape-method-53 () none 53) - (collide-shape-method-54 () none 54) + (collide-shape-method-54 (_type_) none 54) ) ) (deftype collide-shape-moving (collide-shape) - ((rider-time time-frame :offset-assert 200) - (rider-last-move vector :inline :offset-assert 208) - (trans-old vector :inline :offset-assert 224) - (poly-pat pat-surface :offset 272) - (cur-pat pat-surface :offset-assert 276) - (ground-pat pat-surface :offset-assert 280) - (status cshape-moving-flags :offset-assert 288) - (old-status cshape-moving-flags :offset-assert 296) - (prev-status cshape-moving-flags :offset-assert 304) - (reaction-flag cshape-reaction-flags :offset-assert 312) - (reaction function :offset-assert 316) - (no-reaction function :offset-assert 320) - (local-normal vector :inline :offset-assert 336) - (surface-normal vector :inline :offset-assert 352) - (poly-normal vector :inline :offset-assert 368) - (ground-poly-normal vector :inline :offset-assert 384) - (gspot-pos vector :inline :offset-assert 400) - (gspot-normal vector :inline :offset-assert 416) - (grount-touch-point vector :inline :offset-assert 432) - (ground-impact-vel meters :offset-assert 448) - (surface-angle float :offset-assert 452) - (poly-angle float :offset-assert 456) - (touch-angle float :offset-assert 460) - (coverage float :offset-assert 464) - (dynam dynamics :offset-assert 468) - (surf surface :offset-assert 472) + ((rider-time time-frame :offset-assert 200) + (rider-last-move vector :inline :offset-assert 208) + (trans-old vector :inline :offset-assert 224) + (poly-pat pat-surface :offset 272) + (cur-pat pat-surface :offset-assert 276) + (ground-pat pat-surface :offset-assert 280) + (status cshape-moving-flags :offset-assert 288) + (old-status cshape-moving-flags :offset-assert 296) + (prev-status cshape-moving-flags :offset-assert 304) + (reaction-flag cshape-reaction-flags :offset-assert 312) + (reaction (function control-info collide-query vector vector cshape-moving-flags) :offset-assert 316) + (no-reaction function :offset-assert 320) + (local-normal vector :inline :offset-assert 336) + (surface-normal vector :inline :offset-assert 352) + (poly-normal vector :inline :offset-assert 368) + (ground-poly-normal vector :inline :offset-assert 384) + (gspot-pos vector :inline :offset-assert 400) + (gspot-normal vector :inline :offset-assert 416) + (grount-touch-point vector :inline :offset-assert 432) + (ground-impact-vel meters :offset-assert 448) + (surface-angle float :offset-assert 452) + (poly-angle float :offset-assert 456) + (touch-angle float :offset-assert 460) + (coverage float :offset-assert 464) + (dynam dynamics :offset-assert 468) + (surf surface :offset-assert 472) ) :method-count-assert 68 :size-assert #x1dc diff --git a/goal_src/jak2/engine/collide/collide-touch-h.gc b/goal_src/jak2/engine/collide/collide-touch-h.gc index 5f3468bff..31cc34e4f 100644 --- a/goal_src/jak2/engine/collide/collide-touch-h.gc +++ b/goal_src/jak2/engine/collide/collide-touch-h.gc @@ -5,6 +5,10 @@ ;; name in dgo: collide-touch-h ;; dgos: ENGINE, GAME +(declare-type touching-shapes-entry structure) +(declare-type touching-prims-entry structure) +(define-extern get-intersect-point (function vector touching-prims-entry collide-shape touching-shapes-entry vector)) + ;; DECOMP BEGINS (deftype touching-prim (structure) @@ -30,9 +34,9 @@ :size-assert #xe8 :flag-assert #xc000000e8 (:methods - (touching-prims-entry-method-9 () none 9) - (touching-prims-entry-method-10 () none 10) - (touching-prims-entry-method-11 () none 11) + (touching-prims-entry-method-9 (_type_ vector) vector 9) + (touching-prims-entry-method-10 (_type_ collide-shape touching-shapes-entry) collide-shape-prim 10) + (touching-prims-entry-method-11 (_type_ collide-shape touching-shapes-entry) collide-tri-result 11) ) ) diff --git a/goal_src/jak2/engine/common_objs/basebutton.gc b/goal_src/jak2/engine/common_objs/basebutton.gc index ac2d9c73a..ffd9b15c3 100644 --- a/goal_src/jak2/engine/common_objs/basebutton.gc +++ b/goal_src/jak2/engine/common_objs/basebutton.gc @@ -421,7 +421,7 @@ (set! (-> collision-shape total-prims) (the-as uint 1)) (set! (-> collision-shape root-prim) collision-mesh) ) - ((method-of-object collision-shape collide-shape-method-54)) + (collide-shape-method-54 collision-shape) (set! (-> collision-shape nav-radius) (* 0.75 (-> collision-shape root-prim local-sphere w))) (let ((prim (-> collision-shape root-prim))) (set! (-> collision-shape backup-collide-as) (-> prim prim-core collide-as)) diff --git a/goal_src/jak2/engine/common_objs/plat.gc b/goal_src/jak2/engine/common_objs/plat.gc index 98c7ca4c7..6a8fa4695 100644 --- a/goal_src/jak2/engine/common_objs/plat.gc +++ b/goal_src/jak2/engine/common_objs/plat.gc @@ -63,7 +63,7 @@ (set! (-> collision-shape total-prims) (the-as uint 1)) (set! (-> collision-shape root-prim) collision-mesh) ) - ((method-of-object collision-shape collide-shape-method-54)) + (collide-shape-method-54 collision-shape) (set! (-> collision-shape nav-radius) (* 0.75 (-> collision-shape root-prim local-sphere w))) (let ((prim (-> collision-shape root-prim))) (set! (-> collision-shape backup-collide-as) (-> prim prim-core collide-as)) diff --git a/goal_src/jak2/engine/game/game-h.gc b/goal_src/jak2/engine/game/game-h.gc index e6f4d4067..f10095f11 100644 --- a/goal_src/jak2/engine/game/game-h.gc +++ b/goal_src/jak2/engine/game/game-h.gc @@ -12,6 +12,7 @@ (declare-type water-control basic) (declare-type align-control basic) (declare-type fact-info basic) +(declare-type rigid-body-control basic) (define-extern vector<-cspace! (function vector cspace vector)) @@ -96,7 +97,7 @@ (water water-control :offset-assert 172) (sound ambient-sound :offset-assert 176) (carry basic :offset-assert 180) - (rbody basic :offset-assert 184) + (rbody rigid-body-control :offset-assert 184) (state-flags state-flags :offset-assert 188) (state-time time-frame :offset-assert 192) ) @@ -343,10 +344,3 @@ :size-assert #x24 :flag-assert #x900000024 ) - - -0 - - - - diff --git a/goal_src/jak2/engine/physics/rigid-body-h.gc b/goal_src/jak2/engine/physics/rigid-body-h.gc index b0a0d755d..e163dbd4a 100644 --- a/goal_src/jak2/engine/physics/rigid-body-h.gc +++ b/goal_src/jak2/engine/physics/rigid-body-h.gc @@ -69,6 +69,9 @@ ) ;; ---rigid-body-object-flag +(declare-type rigid-body-work structure) +(declare-type rigid-body-object process-focusable) + ;; DECOMP BEGINS (deftype rigid-body-info (structure) @@ -113,6 +116,7 @@ (cm-joint-x meters :offset 32) (cm-joint-y meters :offset 36) (cm-joint-z meters :offset 40) + (cm-joint-w float :offset 44) (linear-damping float :offset 8) (angular-damping float :offset 12) (bounce-factor float :offset 16) @@ -125,7 +129,7 @@ (gravity meters :offset 192) (idle-distance meters :offset 196) (attack-force-scale float :offset 200) - (name basic :offset-assert 204) + (name symbol :offset-assert 204) ) :method-count-assert 9 :size-assert #xd0 @@ -149,32 +153,32 @@ (deftype rigid-body (structure) - ((work basic :offset-assert 0) - (info rigid-body-info :offset-assert 4) - (flags rigid-body-flag :offset-assert 8) - (force-callback basic :offset-assert 12) - (blocked-by basic :offset-assert 16) - (time-remaining float :offset-assert 20) - (step-count int16 :offset-assert 24) - (position vector :inline :offset-assert 32) - (rot vector :inline :offset-assert 48) - (rotation quaternion :inline :offset 48) - (lin-momentum vector :inline :offset-assert 64) - (ang-momentum vector :inline :offset-assert 80) - (force vector :inline :offset-assert 96) - (torque vector :inline :offset-assert 112) - (lin-velocity vector :inline :offset-assert 128) - (ang-velocity vector :inline :offset-assert 144) - (matrix matrix :inline :offset-assert 160) - (inv-i-world matrix :inline :offset-assert 224) + ((work rigid-body-work :offset-assert 0) + (info rigid-body-info :offset-assert 4) + (flags rigid-body-flag :offset-assert 8) + (force-callback (function object float none) :offset-assert 12) + (blocked-by basic :offset-assert 16) + (time-remaining float :offset-assert 20) + (step-count int16 :offset-assert 24) + (position vector :inline :offset-assert 32) + (rot vector :inline :offset-assert 48) + (rotation quaternion :inline :offset 48) + (lin-momentum vector :inline :offset-assert 64) + (ang-momentum vector :inline :offset-assert 80) + (force vector :inline :offset-assert 96) + (torque vector :inline :offset-assert 112) + (lin-velocity vector :inline :offset-assert 128) + (ang-velocity vector :inline :offset-assert 144) + (matrix matrix :inline :offset-assert 160) + (inv-i-world matrix :inline :offset-assert 224) ) :method-count-assert 32 :size-assert #x120 :flag-assert #x2000000120 (:methods - (rigid-body-method-9 (_type_) none 9) + (rigid-body-method-9 (_type_ collide-shape-moving float) none 9) (rigid-body-method-10 (_type_) none 10) - (rigid-body-method-11 (_type_) none 11) + (rigid-body-method-11 (_type_ collide-shape-moving) none 11) (rigid-body-method-12 (_type_ float) none 12) (rigid-body-method-13 (_type_) none 13) (rigid-body-method-14 (_type_ float) none 14) @@ -188,7 +192,7 @@ (rigid-body-method-22 (_type_ vector vector) vector 22) (rigid-body-method-23 (_type_ vector) vector 23) (rigid-body-method-24 (_type_) none 24) - (rigid-body-method-25 (_type_ rigid-body-info vector quaternion basic) none 25) + (rigid-body-method-25 (_type_ rigid-body-info vector quaternion function) none 25) (rigid-body-method-26 (_type_ vector quaternion) none 26) (print-physics (_type_ object) none 27) (print-force-torque (_type_ object) none 28) @@ -225,9 +229,10 @@ :size-assert #x130 :flag-assert #x1a00000130 (:methods - (rigid-body-control-method-9 (_type_) none 9) - (rigid-body-control-method-10 (_type_) none 10) - (rigid-body-control-method-11 (_type_) none 11) + (new (symbol type process) _type_ 0) + (rigid-body-control-method-9 (_type_ collide-shape-moving float) none 9) + (rigid-body-control-method-10 (_type_ rigid-body-object float float) object 10) + (rigid-body-control-method-11 (_type_ collide-shape-moving) none 11) (rigid-body-control-method-12 (_type_ float) none 12) (rigid-body-control-method-13 (_type_) none 13) (rigid-body-control-method-14 (_type_ float) none 14) @@ -246,18 +251,18 @@ ) -(defmethod rigid-body-control-method-9 rigid-body-control ((obj rigid-body-control)) - (rigid-body-method-9 (-> obj state)) +(defmethod rigid-body-control-method-9 rigid-body-control ((obj rigid-body-control) (arg0 collide-shape-moving) (arg1 float)) + (rigid-body-method-9 (-> obj state) arg0 arg1) (none) ) -(defmethod rigid-body-control-method-10 rigid-body-control ((obj rigid-body-control)) - (rigid-body-method-10 (-> obj state)) - (none) +;; WARN: Return type mismatch none vs object. +(defmethod rigid-body-control-method-10 rigid-body-control ((obj rigid-body-control) (arg0 rigid-body-object) (arg1 float) (arg2 float)) + (the-as object (rigid-body-method-10 (-> obj state))) ) -(defmethod rigid-body-control-method-11 rigid-body-control ((obj rigid-body-control)) - (rigid-body-method-11 (-> obj state)) +(defmethod rigid-body-control-method-11 rigid-body-control ((obj rigid-body-control) (arg0 collide-shape-moving)) + (rigid-body-method-11 (-> obj state) arg0) (none) ) @@ -320,7 +325,7 @@ ) (defmethod rigid-body-control-method-24 rigid-body-control ((obj rigid-body-control) (arg0 rigid-body-info) (arg1 vector) (arg2 quaternion) (arg3 basic)) - (rigid-body-method-25 (-> obj state) arg0 arg1 arg2 arg3) + (rigid-body-method-25 (-> obj state) arg0 arg1 arg2 (the-as function arg3)) (none) ) @@ -330,7 +335,8 @@ ) (deftype rigid-body-object (process-focusable) - ((info rigid-body-object-constants :offset-assert 204) + ((root-override collide-shape-moving :offset 128) + (info rigid-body-object-constants :offset-assert 204) (flags rigid-body-object-flag :offset-assert 208) (max-time-step float :offset-assert 216) (incoming-attack-id uint32 :offset-assert 220) @@ -344,32 +350,32 @@ :size-assert #x110 :flag-assert #x3500900110 (:methods - (rigid-body-object-method-27 () none 27) - (rigid-body-object-method-28 () none 28) - (rigid-body-object-method-29 () none 29) - (rigid-body-object-method-30 () none 30) - (rigid-body-object-method-31 () none 31) - (rigid-body-object-method-32 () none 32) - (rigid-body-object-method-33 () none 33) - (rigid-body-object-method-34 () none 34) - (rigid-body-object-method-35 () none 35) + (idle () _type_ :state 27) + (active () _type_ :state 28) + (rigid-body-object-method-29 (_type_) none 29) + (rigid-body-object-method-30 (_type_) none 30) + (rigid-body-object-method-31 (_type_ rigid-body-object-constants) none 31) + (rigid-body-object-method-32 (_type_) none 32) + (rigid-body-object-method-33 (_type_) none 33) + (rigid-body-object-method-34 (_type_) none 34) + (rigid-body-object-method-35 (_type_) none 35) (rigid-body-object-method-36 () none 36) - (rigid-body-object-method-37 () none 37) - (rigid-body-object-method-38 () none 38) - (rigid-body-object-method-39 () none 39) - (rigid-body-object-method-40 () none 40) - (rigid-body-object-method-41 () none 41) - (rigid-body-object-method-42 () none 42) - (rigid-body-object-method-43 () none 43) - (rigid-body-object-method-44 () none 44) + (rigid-body-object-method-37 (_type_) none 37) + (rigid-body-object-method-38 (_type_) none 38) + (rigid-body-object-method-39 (_type_) none 39) + (rigid-body-object-method-40 (_type_) none 40) + (rigid-body-object-method-41 (_type_) none 41) + (rigid-body-object-method-42 (_type_) none :behavior rigid-body-object 42) + (rigid-body-object-method-43 (_type_) none 43) + (rigid-body-object-method-44 (_type_ float) none 44) (rigid-body-object-method-45 () none 45) - (rigid-body-object-method-46 () none 46) - (rigid-body-object-method-47 () none 47) - (rigid-body-object-method-48 () none 48) - (rigid-body-object-method-49 () none 49) - (rigid-body-object-method-50 () none 50) - (rigid-body-object-method-51 () none 51) - (rigid-body-object-method-52 () none 52) + (rigid-body-object-method-46 (_type_ process-drawable int symbol event-message-block) none :behavior rigid-body-object 46) + (rigid-body-object-method-47 (_type_ process-drawable attack-info object penetrate) symbol 47) + (rigid-body-object-method-48 (_type_ object object) none 48) + (rigid-body-object-method-49 (_type_ matrix touching-shapes-entry) none 49) + (rigid-body-object-method-50 (_type_ float) none 50) + (rigid-body-object-method-51 (_type_) none 51) + (rigid-body-object-method-52 (_type_) none 52) ) ) @@ -382,13 +388,13 @@ :size-assert #x408 :flag-assert #x1100000408 (:methods - (rigid-body-queue-method-9 () none 9) - (rigid-body-queue-method-10 () none 10) - (rigid-body-queue-method-11 () none 11) - (rigid-body-queue-method-12 () none 12) - (rigid-body-queue-method-13 () none 13) - (rigid-body-queue-method-14 () none 14) - (rigid-body-queue-method-15 () none 15) - (rigid-body-queue-method-16 () none 16) + (rigid-body-queue-method-9 (_type_) none 9) + (rigid-body-queue-method-10 (_type_) none 10) + (rigid-body-queue-method-11 (_type_) none 11) + (rigid-body-queue-method-12 (_type_ int int) none 12) + (rigid-body-queue-method-13 (_type_) none 13) + (rigid-body-queue-method-14 (_type_ int) none 14) + (rigid-body-queue-method-15 (_type_) none 15) + (validate (_type_) symbol 16) ) ) diff --git a/goal_src/jak2/engine/physics/rigid-body.gc b/goal_src/jak2/engine/physics/rigid-body.gc index 7cbae1936..845930593 100644 --- a/goal_src/jak2/engine/physics/rigid-body.gc +++ b/goal_src/jak2/engine/physics/rigid-body.gc @@ -5,5 +5,1010 @@ ;; name in dgo: rigid-body ;; dgos: GAME, COMMON +;; og:ignore-form:rigid-body-object-method-48 +;; og:ignore-form:rigid-body-method-15 +;; og:ignore-form:collide-shape-moving-method-63 +;; og:ignore-form:collide-shape-moving-method-67 + ;; DECOMP BEGINS +(deftype rigid-body-work (structure) + ((max-ang-momentum float :offset-assert 0) + (max-ang-velocity float :offset-assert 4) + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) + + +(define *rigid-body-work* (new 'static 'rigid-body-work)) + +(defmethod new rigid-body-control ((allocation symbol) (type-to-make type) (arg0 process)) + (let ((v0-0 (object-new allocation type-to-make (the-as int (-> type-to-make size))))) + (set! (-> v0-0 process) arg0) + v0-0 + ) + ) + +(defmethod relocate rigid-body-control ((obj rigid-body-control) (arg0 int)) + (&+! (-> obj process) arg0) + obj + ) + +(defmethod rigid-body-info-method-9 rigid-body-info ((obj rigid-body-info)) + (let ((f24-0 (-> obj mass)) + (f28-0 (-> obj inertial-tensor-box 0)) + (f30-0 (-> obj inertial-tensor-box 1)) + (f26-0 (-> obj inertial-tensor-box 2)) + ) + (let ((f0-0 f24-0)) + (set! (-> obj inv-mass) (/ 1.0 f0-0)) + ) + (matrix-identity! (-> obj inertial-tensor)) + (matrix-identity! (-> obj inv-inertial-tensor)) + (let ((f0-4 (* 0.083333336 f24-0))) + (let* ((f1-1 f30-0) + (f1-3 (* f1-1 f1-1)) + (f2-0 f26-0) + ) + (set! (-> obj inertial-tensor vector 0 x) (* f0-4 (+ f1-3 (* f2-0 f2-0)))) + ) + (let ((f1-6 f28-0)) + (set! (-> obj inertial-tensor vector 1 y) (* f0-4 (+ (* f1-6 f1-6) (* f26-0 f26-0)))) + ) + (set! (-> obj inertial-tensor vector 2 z) (* f0-4 (+ (* f28-0 f28-0) (* f30-0 f30-0)))) + ) + ) + (let ((f0-6 (-> obj inertial-tensor vector 0 x))) + (set! (-> obj inv-inertial-tensor vector 0 x) (/ 1.0 f0-6)) + ) + (let ((f0-9 (-> obj inertial-tensor vector 1 y))) + (set! (-> obj inv-inertial-tensor vector 1 y) (/ 1.0 f0-9)) + ) + (let ((f0-12 (-> obj inertial-tensor vector 2 z))) + (set! (-> obj inv-inertial-tensor vector 2 z) (/ 1.0 f0-12)) + ) + 0 + (none) + ) + +(defmethod clear-force-torque! rigid-body ((obj rigid-body)) + (set! (-> obj force quad) (the-as uint128 0)) + (set! (-> obj torque quad) (the-as uint128 0)) + 0 + (none) + ) + +(defmethod clear-momentum! rigid-body ((obj rigid-body)) + (set! (-> obj lin-momentum quad) (the-as uint128 0)) + (set! (-> obj ang-momentum quad) (the-as uint128 0)) + 0 + (none) + ) + +(defmethod rigid-body-method-24 rigid-body ((obj rigid-body)) + (when #t + (quaternion->matrix (-> obj matrix) (-> obj rotation)) + (let ((s5-0 (new 'stack-no-clear 'vector))) + (vector-rotate*! s5-0 (-> obj info cm-offset-joint) (-> obj matrix)) + (vector-! (-> obj matrix trans) (-> obj position) s5-0) + ) + ) + 0 + (none) + ) + +(defmethod rigid-body-method-26 rigid-body ((obj rigid-body) (arg0 vector) (arg1 quaternion)) + (let ((s3-0 (new 'stack-no-clear 'inline-array 'vector 8))) + (quaternion->matrix (the-as matrix (-> s3-0 1)) arg1) + (vector-rotate*! (-> s3-0 0) (-> obj info cm-offset-joint) (the-as matrix (-> s3-0 1))) + (vector+! (-> obj position) arg0 (-> s3-0 0)) + ) + (quaternion-copy! (-> obj rotation) arg1) + (quaternion-normalize! (-> obj rotation)) + (rigid-body-method-24 obj) + 0 + (none) + ) + +(defmethod rigid-body-method-25 rigid-body ((obj rigid-body) (arg0 rigid-body-info) (arg1 vector) (arg2 quaternion) (arg3 function)) + (set! (-> obj work) *rigid-body-work*) + (set! (-> obj info) arg0) + (set! (-> obj force-callback) (the-as (function object float none) arg3)) + (rigid-body-info-method-9 (-> obj info)) + (let ((v1-3 obj)) + (set! (-> v1-3 force quad) (the-as uint128 0)) + (set! (-> v1-3 torque quad) (the-as uint128 0)) + ) + 0 + (clear-momentum! obj) + (rigid-body-method-26 obj arg1 arg2) + (rigid-body-method-13 obj) + 0 + (none) + ) + +(defmethod rigid-body-method-22 rigid-body ((obj rigid-body) (arg0 vector) (arg1 vector)) + (let ((v1-1 (vector-! (new 'stack-no-clear 'vector) arg0 (-> obj position)))) + (vector-cross! arg1 (-> obj ang-velocity) v1-1) + ) + (vector+! arg1 arg1 (-> obj lin-velocity)) + arg1 + ) + +(defun matrix-3x3-triple-transpose-product ((arg0 matrix) (arg1 matrix) (arg2 matrix)) + (let ((s5-0 (new 'stack-no-clear 'inline-array 'matrix 3))) + (let* ((v1-0 (-> s5-0 0)) + (a3-0 arg1) + (a0-1 (-> a3-0 vector 0 quad)) + (a1-1 (-> a3-0 vector 1 quad)) + (a2-1 (-> a3-0 vector 2 quad)) + (a3-1 (-> a3-0 trans quad)) + ) + (set! (-> v1-0 vector 0 quad) a0-1) + (set! (-> v1-0 vector 1 quad) a1-1) + (set! (-> v1-0 vector 2 quad) a2-1) + (set! (-> v1-0 trans quad) a3-1) + ) + (vector-reset! (-> s5-0 0 trans)) + (matrix-transpose! (-> s5-0 1) (-> s5-0 0)) + (matrix*! (-> s5-0 2) arg2 (-> s5-0 0)) + (matrix*! arg0 (-> s5-0 1) (-> s5-0 2)) + ) + arg0 + ) + +(defmethod rigid-body-method-12 rigid-body ((obj rigid-body) (arg0 float)) + (local-vars (v1-6 float)) + (rlet ((acc :class vf) + (vf0 :class vf) + (vf1 :class vf) + (vf2 :class vf) + (vf4 :class vf) + (vf5 :class vf) + (vf6 :class vf) + (vf7 :class vf) + ) + (init-vf0-vector) + (let ((a2-0 (-> obj lin-momentum))) + (let ((v1-0 (-> obj lin-momentum))) + (let ((a0-1 (-> obj force))) + (let ((a3-0 arg0)) + (.mov vf7 a3-0) + ) + (.lvf vf5 (&-> a0-1 quad)) + ) + (.lvf vf4 (&-> v1-0 quad)) + ) + (.add.x.vf vf6 vf0 vf0 :mask #b1000) + (.mul.x.vf acc vf5 vf7 :mask #b111) + (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) + (.svf (&-> a2-0 quad) vf6) + ) + (let ((a2-1 (-> obj ang-momentum))) + (let ((v1-1 (-> obj ang-momentum))) + (let ((a0-2 (-> obj torque))) + (let ((a1-1 arg0)) + (.mov vf7 a1-1) + ) + (.lvf vf5 (&-> a0-2 quad)) + ) + (.lvf vf4 (&-> v1-1 quad)) + ) + (.add.x.vf vf6 vf0 vf0 :mask #b1000) + (.mul.x.vf acc vf5 vf7 :mask #b111) + (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) + (.svf (&-> a2-1 quad) vf6) + ) + (let* ((f0-3 (* 500000000.0 (-> obj info mass))) + (f1-1 f0-3) + (f1-3 (* f1-1 f1-1)) + ) + (.lvf vf1 (&-> (-> obj ang-momentum) quad)) + (.add.w.vf vf2 vf0 vf0 :mask #b1) + (.mul.vf vf1 vf1 vf1) + (.mul.x.vf acc vf2 vf1 :mask #b1) + (.add.mul.y.vf acc vf2 vf1 acc :mask #b1) + (.add.mul.z.vf vf1 vf2 vf1 acc :mask #b1) + (.mov v1-6 vf1) + (if (< f1-3 v1-6) + (vector-normalize! (-> obj ang-momentum) f0-3) + ) + ) + (set! (-> obj force quad) (the-as uint128 0)) + (set! (-> obj torque quad) (the-as uint128 0)) + 0 + 0 + (none) + ) + ) + +(defmethod rigid-body-method-13 rigid-body ((obj rigid-body)) + (let ((v1-0 (-> obj info))) + (vector-float*! (-> obj lin-velocity) (-> obj lin-momentum) (-> v1-0 inv-mass)) + (matrix-3x3-triple-transpose-product (-> obj inv-i-world) (-> obj matrix) (-> v1-0 inv-inertial-tensor)) + ) + (vector-rotate*! (-> obj ang-velocity) (-> obj ang-momentum) (-> obj inv-i-world)) + 0 + (none) + ) + +(defmethod rigid-body-method-14 rigid-body ((obj rigid-body) (arg0 float)) + (rlet ((acc :class vf) + (vf0 :class vf) + (vf4 :class vf) + (vf5 :class vf) + (vf6 :class vf) + (vf7 :class vf) + ) + (init-vf0-vector) + (let ((a1-1 (-> obj position))) + (let ((v1-0 (-> obj position))) + (let ((a0-1 (-> obj lin-velocity))) + (let ((a2-0 arg0)) + (.mov vf7 a2-0) + ) + (.lvf vf5 (&-> a0-1 quad)) + ) + (.lvf vf4 (&-> v1-0 quad)) + ) + (.add.x.vf vf6 vf0 vf0 :mask #b1000) + (.mul.x.vf acc vf5 vf7 :mask #b111) + (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) + (.svf (&-> a1-1 quad) vf6) + ) + (let ((s4-0 (new 'stack-no-clear 'quaternion))) + (set! (-> (the-as vector (&-> s4-0 x)) quad) (-> obj ang-velocity quad)) + (set! (-> s4-0 w) 0.0) + (quaternion*! s4-0 s4-0 (-> obj rotation)) + (quaternion-float*! s4-0 s4-0 0.5) + (+! (-> obj rotation x) (* (-> s4-0 x) arg0)) + (+! (-> obj rotation y) (* (-> s4-0 y) arg0)) + (+! (-> obj rotation z) (* (-> s4-0 z) arg0)) + (+! (-> obj rotation w) (* (-> s4-0 w) arg0)) + ) + (quaternion-normalize! (-> obj rotation)) + (rigid-body-method-24 obj) + 0 + (none) + ) + ) + +(defun damping-time-adjust ((arg0 float) (arg1 float)) + (let ((f0-0 0.0) + (f1-0 1.0) + (f2-2 (* (+ -1.0 arg0) arg1)) + (f3-2 0.016666668) + ) + (fmax f0-0 (+ f1-0 (* f2-2 (/ 1.0 f3-2)))) + ) + ) + +(defmethod rigid-body-method-9 rigid-body ((obj rigid-body) (arg0 collide-shape-moving) (arg1 float)) + (rigid-body-method-12 obj arg1) + (let ((v1-2 (-> obj info))) + (let* ((a0-2 (-> obj lin-momentum)) + (a1-2 (-> obj lin-momentum)) + (f3-0 (-> v1-2 linear-damping)) + (f2-0 arg1) + (f0-0 0.0) + (f1-0 1.0) + (f2-1 (* (+ -1.0 f3-0) f2-0)) + (f3-2 0.016666668) + ) + (vector-float*! a0-2 a1-2 (fmax f0-0 (+ f1-0 (* f2-1 (/ 1.0 f3-2))))) + ) + (let* ((a0-4 (-> obj ang-momentum)) + (a1-3 (-> obj ang-momentum)) + (f3-5 (-> v1-2 angular-damping)) + (f2-3 arg1) + (f0-3 0.0) + (f1-2 1.0) + (f2-4 (* (+ -1.0 f3-5) f2-3)) + (f3-7 0.016666668) + ) + (vector-float*! a0-4 a1-3 (fmax f0-3 (+ f1-2 (* f2-4 (/ 1.0 f3-7))))) + ) + ) + (rigid-body-method-13 obj) + (if (logtest? (-> obj flags) (rigid-body-flag enable-collision)) + ((method-of-object arg0 collide-shape-moving-method-63)) + (rigid-body-method-14 obj arg1) + ) + 0 + (none) + ) + +;; ERROR: function was not converted to expressions. Cannot decompile. + +(defun transform-rigid-body-prims ((arg0 collide-shape-prim) (arg1 matrix)) + (rlet ((acc :class vf) + (vf0 :class vf) + (vf1 :class vf) + (vf2 :class vf) + (vf3 :class vf) + (vf4 :class vf) + (vf5 :class vf) + ) + (init-vf0-vector) + (let ((v1-0 (the-as basic arg0)) + (a0-1 1) + ) + (when (= (-> (the-as collide-shape-prim v1-0) prim-core prim-type) (prim-type group)) + (let ((a0-2 (the-as collide-shape-prim-group v1-0))) + (set! v1-0 (-> a0-2 child 0)) + (set! a0-1 (the-as int (-> a0-2 num-children))) + ) + ) + (while (nonzero? a0-1) + (+! a0-1 -1) + (.lvf vf5 (&-> (the-as collide-shape-prim v1-0) local-sphere quad)) + (.lvf vf1 (&-> arg1 vector 0 quad)) + (.lvf vf2 (&-> arg1 vector 1 quad)) + (.lvf vf3 (&-> arg1 vector 2 quad)) + (.lvf vf4 (&-> arg1 trans quad)) + (.mul.x.vf acc vf1 vf5) + (.add.mul.y.vf acc vf2 vf5 acc) + (.add.mul.z.vf acc vf3 vf5 acc) + (.add.mul.w.vf vf5 vf4 vf0 acc :mask #b111) + (.svf (&-> (the-as collide-shape-prim v1-0) prim-core world-sphere quad) vf5) + (set! v1-0 (&+ (the-as collide-shape-prim v1-0) 80)) + ) + ) + #f + ) + ) + +;; ERROR: function was not converted to expressions. Cannot decompile. + +;; ERROR: function was not converted to expressions. Cannot decompile. + +(defmethod rigid-body-method-18 rigid-body ((obj rigid-body) (arg0 vector) (arg1 vector)) + (vector+! (-> obj force) (-> obj force) arg1) + (let ((a3-1 (new 'stack-no-clear 'vector)) + (v1-1 (new 'stack-no-clear 'vector)) + ) + (vector-! a3-1 arg0 (-> obj position)) + (vector-cross! v1-1 a3-1 arg1) + (vector+! (-> obj torque) (-> obj torque) v1-1) + ) + 0 + (none) + ) + +(defmethod rigid-body-method-21 rigid-body ((obj rigid-body) (arg0 vector) (arg1 vector) (arg2 float)) + (vector+! (-> obj force) (-> obj force) arg1) + (let* ((t0-2 (vector-! (new 'stack-no-clear 'vector) arg0 (-> obj position))) + (v1-3 (vector-cross! (new 'stack-no-clear 'vector) t0-2 arg1)) + ) + (let ((f0-0 (vector-length t0-2))) + (if (< arg2 f0-0) + (vector-float*! v1-3 v1-3 (/ arg2 f0-0)) + ) + ) + (vector+! (-> obj torque) (-> obj torque) v1-3) + ) + 0 + (none) + ) + +(defmethod rigid-body-method-19 rigid-body ((obj rigid-body) (arg0 vector) (arg1 vector)) + (let ((s5-0 (new 'stack-no-clear 'vector)) + (s4-0 (new 'stack-no-clear 'vector)) + ) + (-> obj work) + (vector-rotate*! s4-0 arg1 (-> obj matrix)) + (vector-rotate*! s5-0 arg0 (-> obj matrix)) + (vector+! s5-0 s5-0 (-> obj position)) + (rigid-body-method-18 obj s5-0 s4-0) + ) + 0 + (none) + ) + +(defmethod rigid-body-method-20 rigid-body ((obj rigid-body) (arg0 vector)) + (vector+! (-> obj force) (-> obj force) arg0) + 0 + (none) + ) + +(defmethod rigid-body-method-23 rigid-body ((obj rigid-body) (arg0 vector)) + (let ((gp-0 (new 'stack-no-clear 'vector))) + (vector-rotate*! gp-0 (-> obj info cm-offset-joint) (-> obj matrix)) + (vector-! arg0 (-> obj position) gp-0) + ) + arg0 + ) + +(defmethod print-force-torque rigid-body ((obj rigid-body) (arg0 object)) + (format arg0 " force ~M ~M ~M" (-> obj force x) (-> obj force y) (-> obj force z)) + (format arg0 " torque ~M ~M ~M~%" (-> obj torque x) (-> obj torque y) (-> obj torque z)) + 0 + (none) + ) + +(defmethod print-momentum rigid-body ((obj rigid-body) (arg0 object)) + (format arg0 " lin-mom ~M ~M ~M" (-> obj lin-momentum x) (-> obj lin-momentum y) (-> obj lin-momentum z)) + (format arg0 " ang-mom ~M ~M ~M~%" (-> obj ang-momentum x) (-> obj ang-momentum y) (-> obj ang-momentum z)) + 0 + (none) + ) + +(defmethod print-velocity rigid-body ((obj rigid-body) (arg0 object)) + (format arg0 " lin-vel ~M ~M ~M" (-> obj lin-velocity x) (-> obj lin-velocity y) (-> obj lin-velocity z)) + (format arg0 " ang-vel ~f ~f ~f~%" (-> obj ang-velocity x) (-> obj ang-velocity y) (-> obj ang-velocity z)) + 0 + (none) + ) + +(defmethod print-position-rotation rigid-body ((obj rigid-body) (arg0 object)) + (format arg0 " position ~M ~M ~M" (-> obj position x) (-> obj position y) (-> obj position z)) + (format + arg0 + " rotation ~f ~f ~f ~f~%" + (-> obj rotation x) + (-> obj rotation y) + (-> obj rotation z) + (-> obj rotation w) + ) + 0 + (none) + ) + +(defmethod print-physics rigid-body ((obj rigid-body) (arg0 object)) + (print-force-torque obj arg0) + (print-position-rotation obj arg0) + (print-momentum obj arg0) + (print-velocity obj arg0) + 0 + (none) + ) + +;; WARN: Return type mismatch int vs object. +(defmethod rigid-body-control-method-10 rigid-body-control ((obj rigid-body-control) (arg0 rigid-body-object) (arg1 float) (arg2 float)) + (let* ((s4-1 (max 1 (min 4 (+ (the int (* 0.9999 (/ arg1 arg2))) 1)))) + (f30-0 (/ arg1 (the float s4-1))) + (s3-0 (-> obj state force-callback)) + ) + (while (nonzero? s4-1) + (+! s4-1 -1) + (s3-0 arg0 f30-0) + (let ((v1-2 obj) + (a1-2 (-> arg0 root-override)) + (f0-4 f30-0) + ) + (rigid-body-method-9 (-> v1-2 state) a1-2 f0-4) + ) + ) + ) + (the-as object 0) + ) + +(defmethod rigid-body-method-11 rigid-body ((obj rigid-body) (arg0 collide-shape-moving)) + (quaternion-copy! (-> arg0 quat) (-> obj rotation)) + (rigid-body-method-23 obj (-> arg0 trans)) + (set! (-> arg0 transv quad) (-> obj lin-velocity quad)) + 0 + (none) + ) + +(defmethod process-focusable-method-26 rigid-body-object ((obj rigid-body-object)) + (-> obj info inv-mass) + ) + +(defmethod rigid-body-object-method-35 rigid-body-object ((obj rigid-body-object)) + (let ((a0-1 (-> obj info name))) + (when (nonzero? a0-1) + (set! (-> obj info) (the-as rigid-body-object-constants (-> a0-1 value))) + (set! (-> obj rbody state info) (the-as rigid-body-info (&-> (-> obj info) mass))) + ) + ) + ((method-of-type rigid-body-info rigid-body-info-method-9) (the-as rigid-body-info (&-> (-> obj info) mass))) + (set! (-> obj rbody state force-callback) + (the-as (function object float none) (method-of-object obj rigid-body-object-method-29)) + ) + 0 + (none) + ) + +(defmethod rigid-body-object-method-50 rigid-body-object ((obj rigid-body-object) (arg0 float)) + (when (logtest? (-> obj flags) (rigid-body-object-flag player-impulse-force player-contact-force)) + (when (logtest? (-> obj flags) (rigid-body-object-flag player-impulse-force)) + (logclear! (-> obj flags) (rigid-body-object-flag player-impulse-force)) + (vector-float*! (-> obj player-force) (-> obj player-force) (/ 1.0 arg0)) + ) + (let ((v1-10 (-> obj rbody)) + (a1-1 (-> obj player-force-position)) + (a2-2 (-> obj player-force)) + ) + (rigid-body-method-18 (-> v1-10 state) a1-1 a2-2) + ) + ) + 0 + (none) + ) + +(defmethod rigid-body-object-method-29 rigid-body-object ((obj rigid-body-object)) + (let ((a1-0 (new 'stack-no-clear 'vector))) + (vector-reset! a1-0) + (set! (-> a1-0 y) (* -1.0 (-> obj info gravity) (-> obj rbody state info mass))) + (rigid-body-method-20 (-> obj rbody state) a1-0) + ) + 0 + (none) + ) + +(defmethod rigid-body-object-method-30 rigid-body-object ((obj rigid-body-object)) + (with-pp + (rigid-body-control-method-10 (-> obj rbody) obj (-> pp clock seconds-per-frame) (-> obj max-time-step)) + (logclear! (-> obj flags) (rigid-body-object-flag player-impulse-force player-contact-force)) + 0 + (none) + ) + ) + +(defmethod rigid-body-object-method-51 rigid-body-object ((obj rigid-body-object)) + (rigid-body-control-method-10 (-> obj rbody) obj (-> obj rbody state time-remaining) (-> obj max-time-step)) + 0 + (none) + ) + +(defmethod rigid-body-object-method-52 rigid-body-object ((obj rigid-body-object)) + (logclear! (-> obj flags) (rigid-body-object-flag player-impulse-force player-contact-force)) + 0 + (none) + ) + +(defmethod rigid-body-object-method-34 rigid-body-object ((obj rigid-body-object)) + (go (method-of-object obj idle)) + 0 + (none) + ) + +(defmethod rigid-body-object-method-31 rigid-body-object ((obj rigid-body-object) (arg0 rigid-body-object-constants)) + (set! (-> obj info) arg0) + (set! (-> obj rbody) (new 'process 'rigid-body-control obj)) + (collide-shape-method-46 (-> obj root-override)) + (rigid-body-method-25 + (-> obj rbody state) + (the-as rigid-body-info (&-> (-> obj info) mass)) + (-> obj root-override trans) + (-> obj root-override quat) + (method-of-object obj rigid-body-object-method-29) + ) + (rigid-body-object-method-35 obj) + (set! (-> obj max-time-step) (-> arg0 max-time-step)) + (set! (-> obj root-override max-iteration-count) (the-as uint 4)) + (let ((v1-15 (-> obj skel root-channel 0))) + (set! (-> v1-15 num-func) num-func-identity) + (set! (-> v1-15 frame-num) 0.0) + ) + 0 + (none) + ) + +(defmethod rigid-body-object-method-32 rigid-body-object ((obj rigid-body-object)) + (let ((s5-0 (new 'process 'collide-shape-moving obj (collide-list-enum hit-by-player)))) + (set! (-> s5-0 dynam) (copy *standard-dynamics* 'process)) + (set! (-> s5-0 reaction) cshape-reaction-default) + (set! (-> s5-0 no-reaction) nothing) + (let ((s4-0 (new 'process 'collide-shape-prim-sphere s5-0 (the-as uint 0)))) + (set! (-> s4-0 prim-core collide-as) (collide-spec pusher)) + (set! (-> s4-0 prim-core collide-with) (collide-spec jak player-list)) + (set! (-> s4-0 prim-core action) (collide-action solid)) + (set! (-> s4-0 transform-index) 3) + (set-vector! (-> s4-0 local-sphere) 0.0 0.0 0.0 12288.0) + (set! (-> s5-0 total-prims) (the-as uint 1)) + (set! (-> s5-0 root-prim) s4-0) + ) + (collide-shape-method-54 s5-0) + (set! (-> s5-0 nav-radius) (* 0.75 (-> s5-0 root-prim local-sphere w))) + (let ((v1-16 (-> s5-0 root-prim))) + (set! (-> s5-0 backup-collide-as) (-> v1-16 prim-core collide-as)) + (set! (-> s5-0 backup-collide-with) (-> v1-16 prim-core collide-with)) + ) + (set! (-> obj root-override) s5-0) + ) + 0 + (none) + ) + +(define *rigid-body-object-constants* (new 'static 'rigid-body-object-constants + :mass 2.0 + :inv-mass 0.5 + :cm-joint-w 1.0 + :linear-damping 1.0 + :angular-damping 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :inertial-tensor-x (meters 4) + :inertial-tensor-y (meters 4) + :inertial-tensor-z (meters 4) + :max-time-step 0.033333335 + :gravity (meters 80) + :idle-distance (meters 50) + :attack-force-scale 1.0 + :name '*rigid-body-object-constants* + ) + ) + +(defmethod rigid-body-object-method-33 rigid-body-object ((obj rigid-body-object)) + (rigid-body-object-method-31 obj *rigid-body-object-constants*) + 0 + (none) + ) + +(defmethod init-from-entity! rigid-body-object ((obj rigid-body-object) (arg0 entity-actor)) + (rigid-body-object-method-32 obj) + (process-drawable-from-entity! obj arg0) + (rigid-body-object-method-33 obj) + (rigid-body-object-method-34 obj) + 0 + (none) + ) + +(defmethod rigid-body-object-method-36 rigid-body-object () + 0 + (none) + ) + +(defmethod rigid-body-object-method-37 rigid-body-object ((obj rigid-body-object)) + (rigid-body-object-method-30 obj) + ((method-of-object obj rigid-body-object-method-36)) + (let ((v1-4 (-> obj rbody)) + (a1-0 (-> obj root-override)) + ) + (rigid-body-method-11 (-> v1-4 state) a1-0) + ) + (transform-post) + 0 + (none) + ) + +(defmethod rigid-body-object-method-40 rigid-body-object ((obj rigid-body-object)) + (logior! (-> obj flags) (rigid-body-object-flag enable-collision)) + (let ((v1-3 (-> obj root-override root-prim))) + (set! (-> v1-3 prim-core collide-as) (-> obj root-override backup-collide-as)) + (set! (-> v1-3 prim-core collide-with) (-> obj root-override backup-collide-with)) + ) + 0 + (none) + ) + +(defmethod rigid-body-object-method-41 rigid-body-object ((obj rigid-body-object)) + (logclear! (-> obj flags) (rigid-body-object-flag enable-collision)) + (let ((v1-3 (-> obj root-override root-prim))) + (set! (-> v1-3 prim-core collide-as) (collide-spec)) + (set! (-> v1-3 prim-core collide-with) (collide-spec)) + ) + 0 + 0 + (none) + ) + +(defmethod rigid-body-object-method-38 rigid-body-object ((obj rigid-body-object)) + (when (not (logtest? (-> obj rbody state flags) (rigid-body-flag enable-physics))) + (logior! (-> obj rbody state flags) (rigid-body-flag enable-physics)) + (rigid-body-method-26 (-> obj rbody state) (-> obj root-override trans) (-> obj root-override quat)) + (vector-float*! (-> obj rbody state lin-momentum) (-> obj root-override transv) (-> obj info mass)) + (vector-reset! (-> obj rbody state ang-momentum)) + ) + 0 + (none) + ) + +(defmethod rigid-body-object-method-39 rigid-body-object ((obj rigid-body-object)) + (logclear! (-> obj rbody state flags) (rigid-body-flag enable-physics)) + 0 + (none) + ) + +(defmethod rigid-body-object-method-42 rigid-body-object ((obj rigid-body-object)) + (logior! (-> obj flags) (rigid-body-object-flag disturbed)) + (set! (-> obj disturbed-time) (-> self clock frame-counter)) + (if (not (logtest? (-> obj rbody state flags) (rigid-body-flag enable-physics))) + (rigid-body-object-method-38 obj) + ) + 0 + (none) + ) + +(defmethod rigid-body-object-method-43 rigid-body-object ((obj rigid-body-object)) + (go (method-of-object obj active)) + 0 + (none) + ) + +(defmethod rigid-body-object-method-44 rigid-body-object ((obj rigid-body-object) (arg0 float)) + 0 + (none) + ) + +(defmethod rigid-body-object-method-45 rigid-body-object () + 0 + (none) + ) + +(defmethod rigid-body-object-method-49 rigid-body-object ((obj rigid-body-object) (arg0 matrix) (arg1 touching-shapes-entry)) + (set! (-> arg0 trans z) (the-as float #f)) + (set! (-> arg0 trans w) 0.0) + (vector-reset! (-> arg0 vector 1)) + (vector-reset! (-> arg0 vector 2)) + (set! (-> arg0 vector 0 quad) (-> obj root-override trans quad)) + (when arg1 + (let ((s3-0 (-> arg1 head))) + (when s3-0 + (get-intersect-point (the-as vector (-> arg0 vector)) s3-0 (-> obj root-override) arg1) + (let ((s5-1 (touching-prims-entry-method-10 s3-0 (-> obj root-override) arg1))) + (when s5-1 + (set! (-> arg0 trans w) (the-as float (-> s5-1 prim-id))) + (vector-! (-> arg0 vector 1) (the-as vector (-> arg0 vector)) (the-as vector (-> s5-1 prim-core))) + (vector-normalize! (-> arg0 vector 1) 1.0) + (vector+float*! + (the-as vector (-> arg0 vector)) + (the-as vector (-> s5-1 prim-core)) + (-> arg0 vector 1) + (-> s5-1 prim-core world-sphere w) + ) + ) + ) + ) + ) + ) + 0 + (none) + ) + +(defmethod rigid-body-object-method-47 rigid-body-object ((obj rigid-body-object) (arg0 process-drawable) (arg1 attack-info) (arg2 object) (arg3 penetrate)) + (local-vars (f0-2 float)) + (when arg2 + (let ((s5-0 (new 'stack-no-clear 'matrix))) + (rigid-body-object-method-49 obj s5-0 (the-as touching-shapes-entry arg2)) + (if (logtest? (attack-info-mask attacker-velocity) (-> arg1 mask)) + (set! (-> s5-0 vector 2 quad) (-> arg1 attacker-velocity quad)) + (vector-! (-> s5-0 vector 2) (the-as vector (-> s5-0 vector)) (-> arg0 root trans)) + ) + 0.0 + 0.0 + (let ((f1-0 (cond + ((logtest? (penetrate enemy-yellow-shot) arg3) + (set! f0-2 8192.0) + 0.025 + ) + ((logtest? (penetrate jak-yellow-shot jak-blue-shot) arg3) + (set! f0-2 8192.0) + 0.05 + ) + ((logtest? (penetrate jak-red-shot) arg3) + (set! f0-2 16384.0) + 0.05 + ) + ((logtest? (penetrate explode jak-dark-shot enemy-dark-shot) arg3) + (set! f0-2 81920.0) + 1.5 + ) + ((logtest? arg3 (penetrate punch)) + (set! f0-2 40960.0) + 0.1 + ) + ((logtest? arg3 (penetrate flop spin)) + (set! f0-2 20480.0) + 0.05 + ) + (else + (set! f0-2 8192.0) + 0.01 + ) + ) + ) + ) + (set! (-> s5-0 trans x) (* f0-2 (-> obj info attack-force-scale))) + (rigid-body-object-method-44 obj (* 0.667 f1-0)) + ) + (rigid-body-object-method-42 obj) + (let ((s4-1 (new 'stack-no-clear 'vector))) + (set! (-> s4-1 quad) (-> s5-0 vector 2 quad)) + (vector-normalize! s4-1 1.0) + (vector-float*! s4-1 s4-1 (-> s5-0 trans x)) + (let ((v1-46 (-> obj rbody)) + (a1-6 (-> s5-0 vector)) + (a2-3 s4-1) + ) + (rigid-body-method-18 (-> v1-46 state) (the-as vector a1-6) a2-3) + ) + (let ((v1-49 (-> obj rbody)) + (f0-7 1.0) + ) + (rigid-body-method-12 (-> v1-49 state) f0-7) + ) + (rigid-body-method-13 (-> obj rbody state)) + (when #t + (add-debug-x #t (bucket-id debug-no-zbuf1) (the-as vector (-> s5-0 vector)) *color-blue*) + (add-debug-vector + #t + (bucket-id debug-no-zbuf1) + (the-as vector (-> s5-0 vector)) + s4-1 + (meters 0.00024414062) + *color-blue* + ) + ) + ) + ) + ((method-of-object obj rigid-body-object-method-45)) + (if (and (-> obj next-state) (= (-> obj next-state name) 'idle)) + (rigid-body-object-method-43 obj) + ) + #t + ) + ) + +;; ERROR: function was not converted to expressions. Cannot decompile. + +(defmethod rigid-body-object-method-46 rigid-body-object ((obj rigid-body-object) (arg0 process-drawable) (arg1 int) (arg2 symbol) (arg3 event-message-block)) + (case arg2 + (('impact-impulse) + (-> arg3 param 0) + (if (!= obj arg0) + (rigid-body-object-method-42 obj) + ) + ((method-of-object obj rigid-body-object-method-45)) + (if (and (-> obj next-state) (= (-> obj next-state name) 'idle)) + (rigid-body-object-method-43 obj) + ) + ) + (('touched) + (if (= obj *debug-actor*) + (format *stdcon* "rigid-body-object got touched~%") + ) + (when (zero? (-> arg0 rbody)) + (let ((s3-0 (if (type? arg0 process-focusable) + arg0 + ) + ) + ) + (when s3-0 + (when (logtest? (-> s3-0 mask) (process-mask target)) + (logior! (-> obj flags) (rigid-body-object-flag player-touching)) + (set! (-> obj player-touch-time) (-> self clock frame-counter)) + (rigid-body-object-method-42 obj) + ) + (if (not (logtest? (-> s3-0 mask) (process-mask target))) + (rigid-body-object-method-48 obj s3-0 (-> arg3 param 0)) + ) + ) + ) + ) + ) + (('attack) + (let ((s3-1 (the-as attack-info (-> arg3 param 1))) + (t0-1 (get-penetrate-using-from-attack-event arg0 arg3)) + ) + (when (!= (-> s3-1 id) (-> obj incoming-attack-id)) + (set! (-> obj incoming-attack-id) (-> s3-1 id)) + (rigid-body-object-method-47 obj arg0 s3-1 (-> arg3 param 0) t0-1) + ) + ) + ) + (('edge-grabbed 'pilot-edge-grab) + (let ((s5-2 (the-as object (-> arg3 param 0)))) + (when (not (logtest? (-> obj flags) (rigid-body-object-flag player-impulse-force))) + (let ((a0-25 (if (type? arg0 process-focusable) + (the-as process-focusable arg0) + ) + ) + ) + (when a0-25 + (let ((f0-1 (/ 163840.0 (process-focusable-method-26 a0-25)))) + (logior! (-> obj flags) (rigid-body-object-flag player-touching player-edge-grabbing player-contact-force)) + (set! (-> obj player-force-position quad) (-> (the-as attack-info s5-2) attacker-velocity quad)) + (vector-reset! (-> obj player-force)) + (set! (-> obj player-force y) (* -1.0 f0-1)) + ) + ) + ) + ) + ) + (zero? (logand (-> obj focus-status) (focus-status dead inactive))) + ) + (('ridden) + (let ((v1-45 (the-as object (-> arg3 param 0)))) + (when (the-as uint v1-45) + (let* ((s5-3 (handle->process (-> (the-as focus v1-45) handle))) + (a0-34 (if (type? s5-3 process-focusable) + (the-as process-focusable s5-3) + ) + ) + ) + (when (and a0-34 + (logtest? (-> a0-34 mask) (process-mask target)) + (zero? (logand (-> a0-34 focus-status) (focus-status on-water under-water))) + ) + (when (not (logtest? (-> obj flags) (rigid-body-object-flag player-impulse-force))) + (logior! (-> obj flags) (rigid-body-object-flag player-touching player-standing-on player-contact-force)) + (set! (-> obj player-force-position quad) (-> a0-34 root trans quad)) + (vector-reset! (-> obj player-force)) + (let ((f0-4 (/ 163840.0 (process-focusable-method-26 a0-34))) + (f1-1 1.0) + ) + (set! (-> obj player-force y) (* -1.0 f0-4 f1-1)) + ) + ) + ) + ) + ) + ) + ) + (('bonk) + (when #t + (let ((a0-38 (if (type? arg0 process-focusable) + (the-as process-focusable arg0) + ) + ) + ) + (when a0-38 + (logior! (-> obj flags) (rigid-body-object-flag player-touching player-impulse-force)) + (set! (-> obj player-force-position quad) (-> a0-38 root trans quad)) + (let ((f30-2 (* 0.00012207031 (the-as float (-> arg3 param 1)))) + (f0-9 (/ 163840.0 (process-focusable-method-26 a0-38))) + ) + (vector-reset! (-> obj player-force)) + (set! (-> obj player-force y) (* -0.1 f0-9 f30-2)) + ) + ) + ) + ) + ) + (('enable-physics) + (rigid-body-object-method-42 obj) + ) + ) + (none) + ) + +(defbehavior rigid-body-object-event-handler rigid-body-object ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) + (rigid-body-object-method-46 self (the-as process-drawable arg0) arg1 arg2 arg3) + (none) + ) + +(defstate idle (rigid-body-object) + :virtual #t + :trans (behavior () + (if (and *target* (and (>= (-> self info idle-distance) + (vector-vector-distance (-> self root-override trans) (-> *target* control trans)) + ) + (zero? (logand (focus-status teleporting) (-> *target* focus-status))) + ) + ) + (go-virtual active) + ) + (none) + ) + :code (the-as (function none :behavior rigid-body-object) sleep-code) + :post (the-as (function none :behavior rigid-body-object) ja-post) + ) + +(defstate active (rigid-body-object) + :virtual #t + :event (the-as + (function process int symbol event-message-block object :behavior rigid-body-object) + rigid-body-object-event-handler + ) + :trans (behavior () + (if (or (not *target*) (or (< (+ 4096.0 (-> self info idle-distance)) + (vector-vector-distance (-> self root-override trans) (-> *target* control trans)) + ) + (logtest? (focus-status teleporting) (-> *target* focus-status)) + ) + ) + (go-virtual idle) + ) + (none) + ) + :code (the-as (function none :behavior rigid-body-object) sleep-code) + :post (behavior () + (rigid-body-object-method-37 self) + (none) + ) + ) diff --git a/goal_src/jak2/engine/process-drawable/process-focusable.gc b/goal_src/jak2/engine/process-drawable/process-focusable.gc index d9a74019c..910d864b9 100644 --- a/goal_src/jak2/engine/process-drawable/process-focusable.gc +++ b/goal_src/jak2/engine/process-drawable/process-focusable.gc @@ -58,7 +58,7 @@ (process-focusable-method-23 (_type_) none 23) (process-focusable-method-24 (_type_) float 24) (process-focusable-method-25 (_type_) time-frame 25) - (process-focusable-method-26 (_type_) none 26) + (process-focusable-method-26 (_type_) float 26) ) ) @@ -103,8 +103,7 @@ ) (defmethod process-focusable-method-26 process-focusable ((obj process-focusable)) - 0 - (none) + 0.0 ) ;; WARN: Return type mismatch int vs time-frame. diff --git a/goal_src/jak2/engine/sound/speech-h.gc b/goal_src/jak2/engine/sound/speech-h.gc index 9c0b11629..7a298d834 100644 --- a/goal_src/jak2/engine/sound/speech-h.gc +++ b/goal_src/jak2/engine/sound/speech-h.gc @@ -33,13 +33,14 @@ (max-delay uint16 :offset-assert 8) (delay uint16 :offset-assert 10) (play-index int16 :offset-assert 12) - (list basic :offset-assert 16) + (list (array string) :offset-assert 16) ) :method-count-assert 9 :size-assert #x14 :flag-assert #x900000014 ) + (deftype speech-request (structure) ((handle uint64 :offset-assert 0) (time time-frame :offset-assert 8) @@ -52,6 +53,7 @@ :flag-assert #x900000015 ) + (deftype speech-channel (structure) ((flags speech-channel-flag :offset-assert 0) (gui-channel gui-channel :offset-assert 1) @@ -77,16 +79,17 @@ ) ) + (deftype speech-control (structure) - ((channel-array speech-channel 2 :inline :offset-assert 0) - (speech-table uint32 57 :offset-assert 224) + ((channel-array speech-channel 2 :inline :offset-assert 0) + (speech-table speech-type-info 57 :offset-assert 224) ) :method-count-assert 17 :size-assert #x1c4 :flag-assert #x11000001c4 (:methods (speech-control-method-9 () none 9) - (speech-control-method-10 () none 10) + (speech-control-method-10 (_type_ int speech-type-info) none 10) (speech-control-method-11 (_type_) none 11) (speech-control-method-12 () none 12) (speech-control-method-13 () none 13) diff --git a/goal_src/jak2/game.gp b/goal_src/jak2/game.gp index 159fd8a4b..540690a4b 100644 --- a/goal_src/jak2/game.gp +++ b/goal_src/jak2/game.gp @@ -858,6 +858,12 @@ "village1-vis" ) +;;;;;;;;;;;;;;;;;;;;; +;; STADIUM D +;;;;;;;;;;;;;;;;;;;;; + +;; TODO + ;;;;;;;;;;;;;;;;;;;;; ;; ISO Group ;;;;;;;;;;;;;;;;;;;;; diff --git a/goal_src/jak2/levels/city/common/height-map-h.gc b/goal_src/jak2/levels/city/common/height-map-h.gc index b1d28c1f2..11c043518 100644 --- a/goal_src/jak2/levels/city/common/height-map-h.gc +++ b/goal_src/jak2/levels/city/common/height-map-h.gc @@ -5,5 +5,40 @@ ;; name in dgo: height-map-h ;; dgos: CWI +(declare-type xz-height-map structure) +(define-extern *traffic-height-map* xz-height-map) + ;; DECOMP BEGINS +(deftype xz-height-map (structure) + ((offset float 3 :offset-assert 0) + (x-offset float :offset 0) + (y-offset float :offset 4) + (z-offset float :offset 8) + (x-inv-spacing float :offset-assert 12) + (z-inv-spacing float :offset-assert 16) + (y-scale float :offset-assert 20) + (dim int16 2 :offset-assert 24) + (x-dim int16 :offset 24) + (z-dim int16 :offset 26) + (data (pointer int8) :offset-assert 28) + ) + :method-count-assert 15 + :size-assert #x20 + :flag-assert #xf00000020 + (:methods + (xz-height-map-method-9 (_type_ vector) float 9) + (xz-height-map-method-10 (_type_ vector) none 10) + (xz-height-map-method-11 (_type_) none 11) + (xz-height-map-method-12 (_type_ vector) none 12) + (xz-height-map-method-13 (_type_ vector) none 13) + (xz-height-map-method-14 (_type_ vector int) none 14) + ) + ) + + +(defun get-traffic-height ((arg0 vector)) + "@returns The value of [[xz-height-map::9]] using [[*traffic-height-map*]] and the [[vector]] provided + @see [[xz-height-map::9]]" + (xz-height-map-method-9 *traffic-height-map* arg0) + ) diff --git a/goal_src/jak2/levels/city/common/nav-graph-h.gc b/goal_src/jak2/levels/city/common/nav-graph-h.gc index 4de3ba0b8..8f1235c6c 100644 --- a/goal_src/jak2/levels/city/common/nav-graph-h.gc +++ b/goal_src/jak2/levels/city/common/nav-graph-h.gc @@ -81,7 +81,7 @@ (nav-node-method-11 (_type_ int) none 11) (nav-node-method-12 (_type_ vector nav-node) none 12) (nav-node-method-13 (_type_ vector) none 13) - (nav-node-method-14 (_type_ nav-node) none 14) + (nav-node-method-14 (_type_ vector) none 14) (nav-node-method-15 (_type_ uint) none 15) (nav-node-method-16 (_type_ float) none 16) (nav-node-method-17 (_type_ float) none 17) @@ -205,7 +205,7 @@ (nav-graph-method-24 (_type_ int int) none 24) (nav-graph-method-25 (_type_ symbol symbol) none 25) (nav-graph-method-26 (_type_ symbol symbol) none 26) - (nav-graph-method-27 (_type_) none 27) + (nav-graph-method-27 (_type_ nav-node-flag-byte nav-node-flag-byte symbol) none 27) (nav-graph-method-28 (_type_) none 28) (nav-graph-method-29 (_type_ symbol) none 29) (nav-graph-method-30 (_type_ uint) none 30) @@ -216,7 +216,7 @@ (nav-graph-method-35 (_type_ int) none 35) (nav-graph-method-36 (_type_ int) none 36) (nav-graph-method-37 (_type_ vector) none 37) - (nav-graph-method-38 () none 38) + (nav-graph-method-38 (_type_) none 38) (nav-graph-method-39 (_type_) none 39) (nav-graph-method-40 (_type_ int) int 40) (node-at-idx (_type_ int) nav-node 41) diff --git a/goal_src/jak2/levels/city/common/traffic-height-map.gc b/goal_src/jak2/levels/city/common/traffic-height-map.gc index 6682ce4dc..fd7daf108 100644 --- a/goal_src/jak2/levels/city/common/traffic-height-map.gc +++ b/goal_src/jak2/levels/city/common/traffic-height-map.gc @@ -5,5 +5,8977 @@ ;; name in dgo: traffic-height-map ;; dgos: CWI +;; og:ignore-from-loc + ;; DECOMP BEGINS +(define *traffic-height-map* (new 'static 'xz-height-map + :offset (new 'static 'array float 3 -3178496.0 71680.0 -3178496.0) + :x-inv-spacing 0.000010172526 + :z-inv-spacing 0.000010172526 + :y-scale 4096.0 + :dim (new 'static 'array int16 2 80 #x70) + :data (new 'static 'array int8 8960 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 3 + 4 + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 3 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 3 + 4 + 2 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 0 + -3 + -2 + 0 + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 3 + 4 + 3 + 2 + 0 + 0 + 0 + 0 + 0 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 4 + 4 + 4 + 4 + 4 + 4 + 0 + 0 + -5 + -5 + -2 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 3 + 3 + 0 + 0 + 0 + 1 + 1 + 0 + 0 + 0 + 3 + 3 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 4 + 4 + 4 + 4 + 4 + 4 + 3 + -5 + -6 + -3 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 3 + 4 + 1 + 1 + 2 + 1 + 1 + 0 + 0 + 1 + 4 + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 4 + 4 + 4 + 4 + 4 + 4 + -5 + -5 + -4 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 3 + 2 + 1 + 0 + 1 + 2 + 2 + 2 + 4 + 3 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 4 + 4 + 4 + 4 + 4 + 4 + -4 + -5 + -4 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 4 + 4 + 2 + 2 + 2 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 4 + 4 + 4 + 4 + 4 + 4 + -1 + -5 + -4 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 4 + 3 + 2 + 0 + 0 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 4 + 4 + 4 + 4 + 4 + 4 + 1 + -5 + -5 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 1 + 0 + 2 + 4 + 5 + 4 + 4 + 0 + 0 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 4 + 4 + 4 + 4 + 4 + 4 + 1 + -5 + -6 + 0 + 0 + 0 + 1 + #x7 + #x6 + 3 + 0 + 3 + 4 + #x6 + #x6 + 5 + #x7 + 4 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 4 + 4 + 4 + 4 + 4 + 4 + 0 + -6 + -4 + 0 + 0 + 0 + 4 + #x9 + #x7 + 3 + 0 + 3 + 4 + 4 + 1 + 3 + 4 + 3 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 4 + 4 + 4 + 4 + 4 + 4 + 0 + -5 + -4 + 0 + 0 + 0 + 3 + 3 + 4 + 3 + 4 + 4 + 5 + 4 + 0 + 1 + 2 + 2 + 0 + 0 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 0 + -5 + -7 + -3 + 0 + 1 + 1 + 0 + 0 + 3 + 3 + 4 + 0 + 5 + 3 + 2 + 5 + #x8 + #x9 + 5 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 0 + 0 + -6 + -6 + -1 + 1 + 1 + 1 + 0 + 2 + 3 + 3 + #xa + #x6 + #x7 + 4 + 0 + #x6 + #xb + #xb + 4 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 0 + 0 + 0 + -5 + -5 + 0 + 1 + 1 + 4 + 3 + 4 + 2 + 0 + 5 + #x7 + #x6 + 3 + 0 + 3 + #x7 + #x8 + 5 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 3 + 2 + 3 + 5 + #x6 + 4 + 4 + 2 + 0 + 0 + 0 + 0 + 1 + 1 + 0 + #x9 + #x9 + 4 + 1 + 0 + 4 + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 5 + 5 + 5 + 4 + 4 + 4 + 4 + 0 + 1 + 0 + 0 + #x9 + #x8 + 4 + 3 + 2 + 2 + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 3 + 4 + 2 + 0 + 1 + 0 + 0 + 0 + 0 + 2 + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 0 + 1 + 2 + 1 + 0 + 0 + 3 + 5 + 5 + 1 + 0 + 0 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 0 + 0 + 0 + 0 + 0 + 3 + #x8 + #x9 + #xa + 4 + 0 + 0 + 4 + #x7 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 0 + 0 + 0 + 0 + 0 + 4 + #x8 + #xb + #xb + #x7 + 3 + 3 + #x8 + #xa + #x6 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 0 + 0 + 0 + 0 + 0 + 2 + #x7 + #xb + #xb + 3 + 3 + 3 + #x8 + #x9 + 4 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 5 + 5 + 4 + 3 + 0 + 2 + 4 + 4 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 4 + 5 + 3 + 0 + 0 + 1 + 4 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 3 + 3 + 2 + 0 + 0 + 1 + 3 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 3 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 4 + 5 + #x6 + 1 + 1 + 1 + 0 + #x7 + 5 + 0 + 0 + 2 + 0 + 0 + 0 + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + -4 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 5 + 5 + 4 + 2 + 0 + 4 + #xa + #x8 + 0 + 0 + 4 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + -4 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + #x6 + 5 + 4 + 0 + 0 + 5 + #x9 + #x6 + 0 + 2 + 4 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + -4 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + #x6 + #xa + 0 + 0 + 3 + 3 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 5 + 0 + 0 + 0 + 3 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 0 + 0 + 0 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 3 + 3 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 3 + 3 + 3 + 3 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 4 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 4 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 4 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + 0 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + 3 + 1 + 1 + 3 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + 3 + 0 + 0 + 3 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + 3 + 0 + 0 + 3 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + -3 + -3 + -3 + -4 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + -4 + -4 + -4 + -4 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + -3 + -4 + -4 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + -4 + -4 + -4 + -4 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + -3 + -3 + -3 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + -4 + -4 + -4 + -4 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + -3 + -3 + -3 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + -4 + -3 + -3 + -3 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + -3 + -3 + -3 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + -3 + -3 + -3 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + -1 + -3 + -3 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + -3 + -3 + 0 + 0 + 0 + 0 + -3 + -2 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + -2 + -3 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + -3 + -3 + 0 + 0 + 0 + 0 + -3 + -2 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + -1 + -3 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 4 + 4 + 4 + 4 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + -1 + -1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 2 + 4 + 4 + 0 + 0 + 0 + 0 + 0 + 0 + -1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 4 + #x8 + #x8 + 4 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 5 + #x6 + 3 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 4 + #x8 + #x8 + 4 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 4 + #x6 + 5 + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 4 + 4 + 4 + 4 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 0 + -1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + -2 + -2 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 3 + 4 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 4 + #x7 + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 5 + #x7 + #x7 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 5 + #x6 + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + #x6 + #x6 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 4 + 5 + #x6 + #x6 + #x6 + #x6 + 5 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 4 + #x8 + #xa + #xa + #xa + #xa + #x6 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 5 + #x7 + #x9 + #x9 + #x9 + #x9 + #x6 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 2 + 2 + 2 + 2 + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ) + ) + ) diff --git a/goal_src/jak2/levels/city/common/vehicle-h.gc b/goal_src/jak2/levels/city/common/vehicle-h.gc index fa8c8cb80..cbad9b67e 100644 --- a/goal_src/jak2/levels/city/common/vehicle-h.gc +++ b/goal_src/jak2/levels/city/common/vehicle-h.gc @@ -245,9 +245,9 @@ (:methods (vehicle-controller-method-9 () none 9) (vehicle-controller-method-10 () none 10) - (vehicle-controller-method-11 () none 11) + (vehicle-controller-method-11 (_type_) none 11) (vehicle-controller-method-12 () none 12) - (vehicle-controller-method-13 () none 13) + (vehicle-controller-method-13 (_type_ nav-branch vector) none 13) (vehicle-controller-method-14 () none 14) (vehicle-controller-method-15 () none 15) (vehicle-controller-method-16 () none 16) diff --git a/goal_src/jak2/levels/common/races/race-h.gc b/goal_src/jak2/levels/common/races/race-h.gc index ebbaf66d9..84418dd42 100644 --- a/goal_src/jak2/levels/common/races/race-h.gc +++ b/goal_src/jak2/levels/common/races/race-h.gc @@ -7,3 +7,185 @@ ;; DECOMP BEGINS +(deftype race-turbo-pad (structure) + ((position vector :inline :offset-assert 0) + (handle uint64 :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x18 + :flag-assert #x900000018 + ) + + +(deftype race-decision-point (structure) + ((pos float :offset-assert 0) + (decision-type uint8 :offset-assert 4) + (shortcuts uint8 :offset-assert 5) + (safe-paths uint8 :offset-assert 6) + ) + :method-count-assert 9 + :size-assert #x7 + :flag-assert #x900000007 + ) + + +(deftype race-racer-info (structure) + ((rider uint8 :offset-assert 0) + (vehicle uint8 :offset-assert 1) + (flags uint8 :offset-assert 2) + (seek-offset int8 :offset-assert 3) + ) + :method-count-assert 9 + :size-assert #x4 + :flag-assert #x900000004 + ) + + +(deftype race-info (basic) + ((race-mesh-name basic :offset-assert 4) + (path-group-name basic :offset-assert 8) + (task-node uint16 :offset-assert 12) + (mesh basic :offset-assert 16) + (ai-min-speed-factor float :offset-assert 20) + (ai-max-speed-factor float :offset-assert 24) + (ai-spread-factor float :offset-assert 28) + (start-sphere sphere :inline :offset-assert 32) + (start-dir vector :inline :offset-assert 48) + (finish-sphere sphere :inline :offset-assert 64) + (finish-dir vector :inline :offset-assert 80) + (player-intro-pos vector :inline :offset-assert 96) + (flags uint8 :offset-assert 112) + (score uint8 :offset-assert 113) + (lap-count int8 :offset-assert 114) + (racer-count int8 :offset-assert 115) + (turbo-pad-count int8 :offset-assert 116) + (map-index int8 :offset-assert 117) + (decision-point-count int8 :offset-assert 118) + (safe-paths uint8 :offset-assert 119) + (turbo-pad-array uint32 :offset-assert 120) + (racer-array uint32 :offset-assert 124) + (decision-point-array uint32 :offset-assert 128) + (level basic :offset-assert 132) + (borrow-level basic :offset-assert 136) + (borrow basic :offset-assert 140) + (manager uint64 :offset-assert 144) + (manager-handle-init-hack basic :offset 144) + (hatch-actor-name basic :offset-assert 152) + (countdown-scene basic :offset-assert 156) + (complete-continue basic :offset-assert 160) + (start-camera basic :offset-assert 164) + (go-speech uint16 :offset-assert 168) + ) + :method-count-assert 10 + :size-assert #xaa + :flag-assert #xa000000aa + (:methods + (race-info-method-9 () none 9) + ) + ) + + +(deftype racer-state (structure) + ((position vector :inline :offset-assert 0) + (racer uint64 :offset-assert 16) + (flags uint8 :offset-assert 24) + (rank int8 :offset-assert 25) + (finish-count int8 :offset-assert 26) + (lap-count int8 :offset-assert 27) + (lap-quadrant int8 :offset-assert 28) + (rider uint8 :offset-assert 29) + (lap-distance float :offset-assert 32) + (lap-distance-prev float :offset-assert 36) + (pos float :offset-assert 40) + (target-pos-offset float :offset-assert 44) + (speed-factor float :offset-assert 48) + (finish-time uint32 :offset-assert 52) + (lap-start uint32 :offset-assert 56) + (best-lap-time uint32 :offset-assert 60) + (lap-time-array float 5 :offset-assert 64) + (start-position vector :inline :offset-assert 96) + ) + :method-count-assert 14 + :size-assert #x70 + :flag-assert #xe00000070 + (:methods + (racer-state-method-9 () none 9) + (racer-state-method-10 () none 10) + (racer-state-method-11 () none 11) + (racer-state-method-12 () none 12) + (racer-state-method-13 () none 13) + ) + ) + + +(deftype race-state (structure) + ((info basic :offset-assert 0) + (flags uint8 :offset-assert 4) + (state uint8 :offset-assert 5) + (racer-count int8 :offset-assert 6) + (finished-count int8 :offset-assert 7) + (i-player int8 :offset-assert 8) + (i-countdown int8 :offset-assert 9) + (manager uint64 :offset-assert 16) + (scene-player uint64 :offset-assert 24) + (race-signal uint64 :offset-assert 32) + (arrow uint64 :offset-assert 40) + (hud-timer uint64 :offset-assert 48) + (hud-lap-counter uint64 :offset-assert 56) + (hud-turbo-counter uint64 :offset-assert 64) + (hud-position uint64 :offset-assert 72) + (current-time uint32 :offset-assert 80) + (countdown-start-time uint32 :offset-assert 84) + (race-start-time uint32 :offset-assert 88) + (rankings int8 10 :offset-assert 92) + (target-pos float :offset-assert 104) + (suck-factor float :offset-assert 108) + (racer-array racer-state 10 :inline :offset-assert 112) + (player-intro-curve cubic-curve :inline :offset-assert 1232) + ) + :method-count-assert 19 + :size-assert #x510 + :flag-assert #x1300000510 + (:methods + (race-state-method-9 () none 9) + (race-state-method-10 () none 10) + (race-state-method-11 () none 11) + (race-state-method-12 () none 12) + (race-state-method-13 () none 13) + (race-state-method-14 () none 14) + (race-state-method-15 () none 15) + (race-state-method-16 () none 16) + (race-state-method-17 () none 17) + (race-state-method-18 () none 18) + ) + ) + + +(deftype race-manager (process) + ((race-state race-state :offset-assert 128) + (state-time time-frame :offset-assert 136) + (player-on-track-time time-frame :offset-assert 144) + (message-id uint32 :offset-assert 152) + (finish-sound-id uint32 :offset-assert 156) + ) + :heap-base #x20 + :method-count-assert 28 + :size-assert #xa0 + :flag-assert #x1c002000a0 + (:methods + (race-manager-method-14 () none 14) + (race-manager-method-15 () none 15) + (race-manager-method-16 () none 16) + (race-manager-method-17 () none 17) + (race-manager-method-18 () none 18) + (race-manager-method-19 () none 19) + (race-manager-method-20 () none 20) + (race-manager-method-21 () none 21) + (race-manager-method-22 () none 22) + (race-manager-method-23 () none 23) + (race-manager-method-24 () none 24) + (race-manager-method-25 () none 25) + (race-manager-method-26 () none 26) + (race-manager-method-27 () none 27) + ) + ) diff --git a/goal_src/jak2/levels/common/races/race-info.gc b/goal_src/jak2/levels/common/races/race-info.gc index 44000cf53..ed5483034 100644 --- a/goal_src/jak2/levels/common/races/race-info.gc +++ b/goal_src/jak2/levels/common/races/race-info.gc @@ -6,4 +6,3 @@ ;; dgos: STD, STC, LERLCHAL, STB, LPRTRACE ;; DECOMP BEGINS - diff --git a/goalc/compiler/compilation/Static.cpp b/goalc/compiler/compilation/Static.cpp index 1b5638a9e..446f70ceb 100644 --- a/goalc/compiler/compilation/Static.cpp +++ b/goalc/compiler/compilation/Static.cpp @@ -230,13 +230,25 @@ void Compiler::compile_static_structure_inline(const goos::Object& form, memcpy(structure->data.data() + field_offset, &value, sizeof(float)); } else if (field_info.type.base_type() == "inline-array") { auto sr = compile_static(field_value, env); - if (!sr.is_reference()) { + if (sr.is_symbol() && sr.symbol_name() == "#f") { + // allow #f to be used for an inline-array + structure->add_symbol_record(sr.symbol_name(), field_offset); + auto deref_info = m_ts.get_deref_info(m_ts.make_pointer_typespec(field_info.type)); + ASSERT(deref_info.mem_deref); + ASSERT(deref_info.can_deref); + ASSERT(deref_info.load_size == 4); + // the linker needs to see a -1 in order to know to insert a symbol pointer + // instead of just the symbol table offset. + u32 linker_val = 0xffffffff; + memcpy(structure->data.data() + field_offset, &linker_val, 4); + } else if (!sr.is_reference()) { throw_compiler_error(form, "Invalid definition of field {}", field_info.field.name()); + } else { + typecheck(form, field_info.type, sr.typespec()); + ASSERT(sr.reference()->get_addr_offset() == 0); + structure->add_pointer_record(field_offset, sr.reference(), + sr.reference()->get_addr_offset()); } - typecheck(form, field_info.type, sr.typespec()); - ASSERT(sr.reference()->get_addr_offset() == 0); - structure->add_pointer_record(field_offset, sr.reference(), - sr.reference()->get_addr_offset()); } else if (field_info.type.base_type() == "pointer") { auto sr = compile_static(field_value, env); if (sr.is_symbol() && sr.symbol_name() == "#f") { diff --git a/scripts/gsrc/skeleton_creation/generated-dgo-files.py b/scripts/gsrc/skeleton_creation/generated-dgo-files.py new file mode 100644 index 000000000..8b40fc006 --- /dev/null +++ b/scripts/gsrc/skeleton_creation/generated-dgo-files.py @@ -0,0 +1,38 @@ +# Creates the `*.gd` files that go in ./goal_src//dgos +# Takes input from the `dgo.txt` file that is generated by the decompiler +# Run with all inputs enabled to get all the info! + +# example - python .\scripts\gsrc\skeleton_creation\generated-dgo-files.py --game jak2 --dgotxt .\decompiler_out\jak2\dgo.txt + +import argparse + +parser = argparse.ArgumentParser("generate-dgo-files") +parser.add_argument("--game", help="The name of the game", type=str) +parser.add_argument("--dgotxt", help="Path to the dgo.txt file", type=str) +args = parser.parse_args() + +# Read in the dgo.txt file +with open(args.dgotxt, "r") as f: + lines = f.readlines()[2:] # skip the first two lines, assumed to be a comment header and an empty line + # OpenGOAL still doesn't have a data serialization/deserialization format + # so read line by line, assuming each DGO is seperated by an empty line + current_dgo_name = None + current_dgo_lines = [] + for line in lines: + if line.strip() == "": + # Write out contents to the .gd file + if current_dgo_name is not None: + path = "./goal_src/{}/dgos/{}".format(args.game, current_dgo_name) + print("writing to {}".format(path)) + with open(path, "w") as wf: + wf.writelines(current_dgo_lines) + current_dgo_name = None + current_dgo_lines = [] + continue + if ".CGO" in line or ".DGO" in line: + print("found one! - {}".format(line.strip())) + # figure out the name + current_dgo_name = line.replace("(", "").replace("\"", "").strip().lower().replace(".dgo", ".gd").replace(".cgo", ".gd") + print(current_dgo_name) + if current_dgo_name is not None: + current_dgo_lines.append(line) diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 2537c9edb..a38df596a 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -51,7 +51,7 @@ if(UNIX AND CMAKE_COMPILER_IS_GNUCXX AND CODE_COVERAGE) include(CodeCoverage) append_coverage_compiler_flags() setup_target_for_coverage_lcov(NAME goalc-test_coverage - EXECUTABLE goalc-test --gtest_color=yes --gtest_brief=0 --gtest_filter="-*MANUAL_TEST*" + EXECUTABLE goalc-test --gtest_color=yes --gtest_brief=0 --gtest_filter=\"-*MANUAL_TEST*\" DEPENDENCIES goalc-test EXCLUDE "third-party/*" "/usr/include/*") endif() diff --git a/test/decompiler/reference/jak2/engine/collide/collide-shape-h_REF.gc b/test/decompiler/reference/jak2/engine/collide/collide-shape-h_REF.gc index 3d6b6f831..dc5d908ae 100644 --- a/test/decompiler/reference/jak2/engine/collide/collide-shape-h_REF.gc +++ b/test/decompiler/reference/jak2/engine/collide/collide-shape-h_REF.gc @@ -1332,7 +1332,7 @@ (collide-shape-method-51 () none 51) (collide-shape-method-52 () none 52) (collide-shape-method-53 () none 53) - (collide-shape-method-54 () none 54) + (collide-shape-method-54 (_type_) none 54) ) ) @@ -1582,32 +1582,32 @@ ;; definition of type collide-shape-moving (deftype collide-shape-moving (collide-shape) - ((rider-time time-frame :offset-assert 200) - (rider-last-move vector :inline :offset-assert 208) - (trans-old vector :inline :offset-assert 224) - (poly-pat pat-surface :offset 272) - (cur-pat pat-surface :offset-assert 276) - (ground-pat pat-surface :offset-assert 280) - (status cshape-moving-flags :offset-assert 288) - (old-status cshape-moving-flags :offset-assert 296) - (prev-status cshape-moving-flags :offset-assert 304) - (reaction-flag cshape-reaction-flags :offset-assert 312) - (reaction function :offset-assert 316) - (no-reaction function :offset-assert 320) - (local-normal vector :inline :offset-assert 336) - (surface-normal vector :inline :offset-assert 352) - (poly-normal vector :inline :offset-assert 368) - (ground-poly-normal vector :inline :offset-assert 384) - (gspot-pos vector :inline :offset-assert 400) - (gspot-normal vector :inline :offset-assert 416) - (grount-touch-point vector :inline :offset-assert 432) - (ground-impact-vel meters :offset-assert 448) - (surface-angle float :offset-assert 452) - (poly-angle float :offset-assert 456) - (touch-angle float :offset-assert 460) - (coverage float :offset-assert 464) - (dynam dynamics :offset-assert 468) - (surf surface :offset-assert 472) + ((rider-time time-frame :offset-assert 200) + (rider-last-move vector :inline :offset-assert 208) + (trans-old vector :inline :offset-assert 224) + (poly-pat pat-surface :offset 272) + (cur-pat pat-surface :offset-assert 276) + (ground-pat pat-surface :offset-assert 280) + (status cshape-moving-flags :offset-assert 288) + (old-status cshape-moving-flags :offset-assert 296) + (prev-status cshape-moving-flags :offset-assert 304) + (reaction-flag cshape-reaction-flags :offset-assert 312) + (reaction (function control-info collide-query vector vector cshape-moving-flags) :offset-assert 316) + (no-reaction function :offset-assert 320) + (local-normal vector :inline :offset-assert 336) + (surface-normal vector :inline :offset-assert 352) + (poly-normal vector :inline :offset-assert 368) + (ground-poly-normal vector :inline :offset-assert 384) + (gspot-pos vector :inline :offset-assert 400) + (gspot-normal vector :inline :offset-assert 416) + (grount-touch-point vector :inline :offset-assert 432) + (ground-impact-vel meters :offset-assert 448) + (surface-angle float :offset-assert 452) + (poly-angle float :offset-assert 456) + (touch-angle float :offset-assert 460) + (coverage float :offset-assert 464) + (dynam dynamics :offset-assert 468) + (surf surface :offset-assert 472) ) :method-count-assert 68 :size-assert #x1dc diff --git a/test/decompiler/reference/jak2/engine/collide/collide-touch-h_REF.gc b/test/decompiler/reference/jak2/engine/collide/collide-touch-h_REF.gc index 9e75bb8ee..8b4c2dba3 100644 --- a/test/decompiler/reference/jak2/engine/collide/collide-touch-h_REF.gc +++ b/test/decompiler/reference/jak2/engine/collide/collide-touch-h_REF.gc @@ -39,9 +39,9 @@ :size-assert #xe8 :flag-assert #xc000000e8 (:methods - (touching-prims-entry-method-9 () none 9) - (touching-prims-entry-method-10 () none 10) - (touching-prims-entry-method-11 () none 11) + (touching-prims-entry-method-9 (_type_ vector) vector 9) + (touching-prims-entry-method-10 (_type_ collide-shape touching-shapes-entry) collide-shape-prim 10) + (touching-prims-entry-method-11 (_type_ collide-shape touching-shapes-entry) collide-tri-result 11) ) ) diff --git a/test/decompiler/reference/jak2/engine/common_objs/basebutton_REF.gc b/test/decompiler/reference/jak2/engine/common_objs/basebutton_REF.gc index 7b45b65e0..89346ae68 100644 --- a/test/decompiler/reference/jak2/engine/common_objs/basebutton_REF.gc +++ b/test/decompiler/reference/jak2/engine/common_objs/basebutton_REF.gc @@ -452,7 +452,7 @@ (set! (-> collision-shape total-prims) (the-as uint 1)) (set! (-> collision-shape root-prim) collision-mesh) ) - ((method-of-object collision-shape collide-shape-method-54)) + (collide-shape-method-54 collision-shape) (set! (-> collision-shape nav-radius) (* 0.75 (-> collision-shape root-prim local-sphere w))) (let ((prim (-> collision-shape root-prim))) (set! (-> collision-shape backup-collide-as) (-> prim prim-core collide-as)) diff --git a/test/decompiler/reference/jak2/engine/common_objs/plat_REF.gc b/test/decompiler/reference/jak2/engine/common_objs/plat_REF.gc index 7d8584cfd..b67a655a6 100644 --- a/test/decompiler/reference/jak2/engine/common_objs/plat_REF.gc +++ b/test/decompiler/reference/jak2/engine/common_objs/plat_REF.gc @@ -77,7 +77,7 @@ (set! (-> collision-shape total-prims) (the-as uint 1)) (set! (-> collision-shape root-prim) collision-mesh) ) - ((method-of-object collision-shape collide-shape-method-54)) + (collide-shape-method-54 collision-shape) (set! (-> collision-shape nav-radius) (* 0.75 (-> collision-shape root-prim local-sphere w))) (let ((prim (-> collision-shape root-prim))) (set! (-> collision-shape backup-collide-as) (-> prim prim-core collide-as)) diff --git a/test/decompiler/reference/jak2/engine/game/game-h_REF.gc b/test/decompiler/reference/jak2/engine/game/game-h_REF.gc index f3d78a81b..54761838d 100644 --- a/test/decompiler/reference/jak2/engine/game/game-h_REF.gc +++ b/test/decompiler/reference/jak2/engine/game/game-h_REF.gc @@ -17,7 +17,7 @@ (water water-control :offset-assert 172) (sound ambient-sound :offset-assert 176) (carry basic :offset-assert 180) - (rbody basic :offset-assert 184) + (rbody rigid-body-control :offset-assert 184) (state-flags state-flags :offset-assert 188) (state-time time-frame :offset-assert 192) ) diff --git a/test/decompiler/reference/jak2/engine/math/quaternion-h_REF.gc b/test/decompiler/reference/jak2/engine/math/quaternion-h_REF.gc index e26092e8f..fac02672a 100644 --- a/test/decompiler/reference/jak2/engine/math/quaternion-h_REF.gc +++ b/test/decompiler/reference/jak2/engine/math/quaternion-h_REF.gc @@ -41,7 +41,3 @@ ;; failed to figure out what this is: 0 - - - - diff --git a/test/decompiler/reference/jak2/engine/physics/rigid-body-h_REF.gc b/test/decompiler/reference/jak2/engine/physics/rigid-body-h_REF.gc index 1f1bbd124..4d64c30d5 100644 --- a/test/decompiler/reference/jak2/engine/physics/rigid-body-h_REF.gc +++ b/test/decompiler/reference/jak2/engine/physics/rigid-body-h_REF.gc @@ -81,6 +81,7 @@ (cm-joint-x meters :offset 32) (cm-joint-y meters :offset 36) (cm-joint-z meters :offset 40) + (cm-joint-w float :offset 44) (linear-damping float :offset 8) (angular-damping float :offset 12) (bounce-factor float :offset 16) @@ -93,7 +94,7 @@ (gravity meters :offset 192) (idle-distance meters :offset 196) (attack-force-scale float :offset 200) - (name basic :offset-assert 204) + (name symbol :offset-assert 204) ) :method-count-assert 9 :size-assert #xd0 @@ -165,32 +166,32 @@ ;; definition of type rigid-body (deftype rigid-body (structure) - ((work basic :offset-assert 0) - (info rigid-body-info :offset-assert 4) - (flags rigid-body-flag :offset-assert 8) - (force-callback basic :offset-assert 12) - (blocked-by basic :offset-assert 16) - (time-remaining float :offset-assert 20) - (step-count int16 :offset-assert 24) - (position vector :inline :offset-assert 32) - (rot vector :inline :offset-assert 48) - (rotation quaternion :inline :offset 48) - (lin-momentum vector :inline :offset-assert 64) - (ang-momentum vector :inline :offset-assert 80) - (force vector :inline :offset-assert 96) - (torque vector :inline :offset-assert 112) - (lin-velocity vector :inline :offset-assert 128) - (ang-velocity vector :inline :offset-assert 144) - (matrix matrix :inline :offset-assert 160) - (inv-i-world matrix :inline :offset-assert 224) + ((work rigid-body-work :offset-assert 0) + (info rigid-body-info :offset-assert 4) + (flags rigid-body-flag :offset-assert 8) + (force-callback (function object float none) :offset-assert 12) + (blocked-by basic :offset-assert 16) + (time-remaining float :offset-assert 20) + (step-count int16 :offset-assert 24) + (position vector :inline :offset-assert 32) + (rot vector :inline :offset-assert 48) + (rotation quaternion :inline :offset 48) + (lin-momentum vector :inline :offset-assert 64) + (ang-momentum vector :inline :offset-assert 80) + (force vector :inline :offset-assert 96) + (torque vector :inline :offset-assert 112) + (lin-velocity vector :inline :offset-assert 128) + (ang-velocity vector :inline :offset-assert 144) + (matrix matrix :inline :offset-assert 160) + (inv-i-world matrix :inline :offset-assert 224) ) :method-count-assert 32 :size-assert #x120 :flag-assert #x2000000120 (:methods - (rigid-body-method-9 (_type_) none 9) + (rigid-body-method-9 (_type_ collide-shape-moving float) none 9) (rigid-body-method-10 (_type_) none 10) - (rigid-body-method-11 (_type_) none 11) + (rigid-body-method-11 (_type_ collide-shape-moving) none 11) (rigid-body-method-12 (_type_ float) none 12) (rigid-body-method-13 (_type_) none 13) (rigid-body-method-14 (_type_ float) none 14) @@ -204,7 +205,7 @@ (rigid-body-method-22 (_type_ vector vector) vector 22) (rigid-body-method-23 (_type_ vector) vector 23) (rigid-body-method-24 (_type_) none 24) - (rigid-body-method-25 (_type_ rigid-body-info vector quaternion basic) none 25) + (rigid-body-method-25 (_type_ rigid-body-info vector quaternion function) none 25) (rigid-body-method-26 (_type_ vector quaternion) none 26) (print-physics (_type_ object) none 27) (print-force-torque (_type_ object) none 28) @@ -291,9 +292,10 @@ :size-assert #x130 :flag-assert #x1a00000130 (:methods - (rigid-body-control-method-9 (_type_) none 9) - (rigid-body-control-method-10 (_type_) none 10) - (rigid-body-control-method-11 (_type_) none 11) + (new (symbol type process) _type_ 0) + (rigid-body-control-method-9 (_type_ collide-shape-moving float) none 9) + (rigid-body-control-method-10 (_type_ rigid-body-object float float) object 10) + (rigid-body-control-method-11 (_type_ collide-shape-moving) none 11) (rigid-body-control-method-12 (_type_ float) none 12) (rigid-body-control-method-13 (_type_) none 13) (rigid-body-control-method-14 (_type_ float) none 14) @@ -364,20 +366,21 @@ ) ;; definition for method 9 of type rigid-body-control -(defmethod rigid-body-control-method-9 rigid-body-control ((obj rigid-body-control)) - (rigid-body-method-9 (-> obj state)) +(defmethod rigid-body-control-method-9 rigid-body-control ((obj rigid-body-control) (arg0 collide-shape-moving) (arg1 float)) + (rigid-body-method-9 (-> obj state) arg0 arg1) (none) ) ;; definition for method 10 of type rigid-body-control -(defmethod rigid-body-control-method-10 rigid-body-control ((obj rigid-body-control)) - (rigid-body-method-10 (-> obj state)) - (none) +;; INFO: this function exists in multiple non-identical object files +;; WARN: Return type mismatch none vs object. +(defmethod rigid-body-control-method-10 rigid-body-control ((obj rigid-body-control) (arg0 rigid-body-object) (arg1 float) (arg2 float)) + (the-as object (rigid-body-method-10 (-> obj state))) ) ;; definition for method 11 of type rigid-body-control -(defmethod rigid-body-control-method-11 rigid-body-control ((obj rigid-body-control)) - (rigid-body-method-11 (-> obj state)) +(defmethod rigid-body-control-method-11 rigid-body-control ((obj rigid-body-control) (arg0 collide-shape-moving)) + (rigid-body-method-11 (-> obj state) arg0) (none) ) @@ -453,7 +456,7 @@ ;; definition for method 24 of type rigid-body-control (defmethod rigid-body-control-method-24 rigid-body-control ((obj rigid-body-control) (arg0 rigid-body-info) (arg1 vector) (arg2 quaternion) (arg3 basic)) - (rigid-body-method-25 (-> obj state) arg0 arg1 arg2 arg3) + (rigid-body-method-25 (-> obj state) arg0 arg1 arg2 (the-as function arg3)) (none) ) @@ -465,7 +468,8 @@ ;; definition of type rigid-body-object (deftype rigid-body-object (process-focusable) - ((info rigid-body-object-constants :offset-assert 204) + ((root-override collide-shape-moving :offset 128) + (info rigid-body-object-constants :offset-assert 204) (flags rigid-body-object-flag :offset-assert 208) (max-time-step float :offset-assert 216) (incoming-attack-id uint32 :offset-assert 220) @@ -479,32 +483,32 @@ :size-assert #x110 :flag-assert #x3500900110 (:methods - (rigid-body-object-method-27 () none 27) - (rigid-body-object-method-28 () none 28) - (rigid-body-object-method-29 () none 29) - (rigid-body-object-method-30 () none 30) - (rigid-body-object-method-31 () none 31) - (rigid-body-object-method-32 () none 32) - (rigid-body-object-method-33 () none 33) - (rigid-body-object-method-34 () none 34) - (rigid-body-object-method-35 () none 35) + (idle () _type_ :state 27) + (active () _type_ :state 28) + (rigid-body-object-method-29 (_type_) none 29) + (rigid-body-object-method-30 (_type_) none 30) + (rigid-body-object-method-31 (_type_ rigid-body-object-constants) none 31) + (rigid-body-object-method-32 (_type_) none 32) + (rigid-body-object-method-33 (_type_) none 33) + (rigid-body-object-method-34 (_type_) none 34) + (rigid-body-object-method-35 (_type_) none 35) (rigid-body-object-method-36 () none 36) - (rigid-body-object-method-37 () none 37) - (rigid-body-object-method-38 () none 38) - (rigid-body-object-method-39 () none 39) - (rigid-body-object-method-40 () none 40) - (rigid-body-object-method-41 () none 41) - (rigid-body-object-method-42 () none 42) - (rigid-body-object-method-43 () none 43) - (rigid-body-object-method-44 () none 44) + (rigid-body-object-method-37 (_type_) none 37) + (rigid-body-object-method-38 (_type_) none 38) + (rigid-body-object-method-39 (_type_) none 39) + (rigid-body-object-method-40 (_type_) none 40) + (rigid-body-object-method-41 (_type_) none 41) + (rigid-body-object-method-42 (_type_) none :behavior rigid-body-object 42) + (rigid-body-object-method-43 (_type_) none 43) + (rigid-body-object-method-44 (_type_ float) none 44) (rigid-body-object-method-45 () none 45) - (rigid-body-object-method-46 () none 46) - (rigid-body-object-method-47 () none 47) - (rigid-body-object-method-48 () none 48) - (rigid-body-object-method-49 () none 49) - (rigid-body-object-method-50 () none 50) - (rigid-body-object-method-51 () none 51) - (rigid-body-object-method-52 () none 52) + (rigid-body-object-method-46 (_type_ process-drawable int symbol event-message-block) none :behavior rigid-body-object 46) + (rigid-body-object-method-47 (_type_ process-drawable attack-info object penetrate) symbol 47) + (rigid-body-object-method-48 (_type_ object object) none 48) + (rigid-body-object-method-49 (_type_ matrix touching-shapes-entry) none 49) + (rigid-body-object-method-50 (_type_ float) none 50) + (rigid-body-object-method-51 (_type_) none 51) + (rigid-body-object-method-52 (_type_) none 52) ) ) @@ -568,14 +572,14 @@ :size-assert #x408 :flag-assert #x1100000408 (:methods - (rigid-body-queue-method-9 () none 9) - (rigid-body-queue-method-10 () none 10) - (rigid-body-queue-method-11 () none 11) - (rigid-body-queue-method-12 () none 12) - (rigid-body-queue-method-13 () none 13) - (rigid-body-queue-method-14 () none 14) - (rigid-body-queue-method-15 () none 15) - (rigid-body-queue-method-16 () none 16) + (rigid-body-queue-method-9 (_type_) none 9) + (rigid-body-queue-method-10 (_type_) none 10) + (rigid-body-queue-method-11 (_type_) none 11) + (rigid-body-queue-method-12 (_type_ int int) none 12) + (rigid-body-queue-method-13 (_type_) none 13) + (rigid-body-queue-method-14 (_type_ int) none 14) + (rigid-body-queue-method-15 (_type_) none 15) + (validate (_type_) symbol 16) ) ) @@ -594,7 +598,3 @@ ;; failed to figure out what this is: 0 - - - - diff --git a/test/decompiler/reference/jak2/engine/physics/rigid-body_REF.gc b/test/decompiler/reference/jak2/engine/physics/rigid-body_REF.gc new file mode 100644 index 000000000..f8f9ebf47 --- /dev/null +++ b/test/decompiler/reference/jak2/engine/physics/rigid-body_REF.gc @@ -0,0 +1,1131 @@ +;;-*-Lisp-*- +(in-package goal) + +;; definition of type rigid-body-work +(deftype rigid-body-work (structure) + ((max-ang-momentum float :offset-assert 0) + (max-ang-velocity float :offset-assert 4) + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) + +;; definition for method 3 of type rigid-body-work +(defmethod inspect rigid-body-work ((obj rigid-body-work)) + (when (not obj) + (set! obj obj) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" obj 'rigid-body-work) + (format #t "~1Tmax-ang-momentum: ~f~%" (-> obj max-ang-momentum)) + (format #t "~1Tmax-ang-velocity: ~f~%" (-> obj max-ang-velocity)) + (label cfg-4) + obj + ) + +;; definition for symbol *rigid-body-work*, type rigid-body-work +(define *rigid-body-work* (new 'static 'rigid-body-work)) + +;; definition for method 0 of type rigid-body-control +(defmethod new rigid-body-control ((allocation symbol) (type-to-make type) (arg0 process)) + (let ((v0-0 (object-new allocation type-to-make (the-as int (-> type-to-make size))))) + (set! (-> v0-0 process) arg0) + v0-0 + ) + ) + +;; definition for method 7 of type rigid-body-control +(defmethod relocate rigid-body-control ((obj rigid-body-control) (arg0 int)) + (&+! (-> obj process) arg0) + obj + ) + +;; definition for method 9 of type rigid-body-info +;; WARN: Return type mismatch int vs none. +(defmethod rigid-body-info-method-9 rigid-body-info ((obj rigid-body-info)) + (let ((f24-0 (-> obj mass)) + (f28-0 (-> obj inertial-tensor-box 0)) + (f30-0 (-> obj inertial-tensor-box 1)) + (f26-0 (-> obj inertial-tensor-box 2)) + ) + (let ((f0-0 f24-0)) + (set! (-> obj inv-mass) (/ 1.0 f0-0)) + ) + (matrix-identity! (-> obj inertial-tensor)) + (matrix-identity! (-> obj inv-inertial-tensor)) + (let ((f0-4 (* 0.083333336 f24-0))) + (let* ((f1-1 f30-0) + (f1-3 (* f1-1 f1-1)) + (f2-0 f26-0) + ) + (set! (-> obj inertial-tensor vector 0 x) (* f0-4 (+ f1-3 (* f2-0 f2-0)))) + ) + (let ((f1-6 f28-0)) + (set! (-> obj inertial-tensor vector 1 y) (* f0-4 (+ (* f1-6 f1-6) (* f26-0 f26-0)))) + ) + (set! (-> obj inertial-tensor vector 2 z) (* f0-4 (+ (* f28-0 f28-0) (* f30-0 f30-0)))) + ) + ) + (let ((f0-6 (-> obj inertial-tensor vector 0 x))) + (set! (-> obj inv-inertial-tensor vector 0 x) (/ 1.0 f0-6)) + ) + (let ((f0-9 (-> obj inertial-tensor vector 1 y))) + (set! (-> obj inv-inertial-tensor vector 1 y) (/ 1.0 f0-9)) + ) + (let ((f0-12 (-> obj inertial-tensor vector 2 z))) + (set! (-> obj inv-inertial-tensor vector 2 z) (/ 1.0 f0-12)) + ) + 0 + (none) + ) + +;; definition for method 16 of type rigid-body +;; INFO: Used lq/sq +;; WARN: Return type mismatch int vs none. +(defmethod clear-force-torque! rigid-body ((obj rigid-body)) + (set! (-> obj force quad) (the-as uint128 0)) + (set! (-> obj torque quad) (the-as uint128 0)) + 0 + (none) + ) + +;; definition for method 17 of type rigid-body +;; INFO: Used lq/sq +;; WARN: Return type mismatch int vs none. +(defmethod clear-momentum! rigid-body ((obj rigid-body)) + (set! (-> obj lin-momentum quad) (the-as uint128 0)) + (set! (-> obj ang-momentum quad) (the-as uint128 0)) + 0 + (none) + ) + +;; definition for method 24 of type rigid-body +;; WARN: Return type mismatch int vs none. +(defmethod rigid-body-method-24 rigid-body ((obj rigid-body)) + (when #t + (quaternion->matrix (-> obj matrix) (-> obj rotation)) + (let ((s5-0 (new 'stack-no-clear 'vector))) + (vector-rotate*! s5-0 (-> obj info cm-offset-joint) (-> obj matrix)) + (vector-! (-> obj matrix trans) (-> obj position) s5-0) + ) + ) + 0 + (none) + ) + +;; definition for method 26 of type rigid-body +;; WARN: Return type mismatch int vs none. +(defmethod rigid-body-method-26 rigid-body ((obj rigid-body) (arg0 vector) (arg1 quaternion)) + (let ((s3-0 (new 'stack-no-clear 'inline-array 'vector 8))) + (quaternion->matrix (the-as matrix (-> s3-0 1)) arg1) + (vector-rotate*! (-> s3-0 0) (-> obj info cm-offset-joint) (the-as matrix (-> s3-0 1))) + (vector+! (-> obj position) arg0 (-> s3-0 0)) + ) + (quaternion-copy! (-> obj rotation) arg1) + (quaternion-normalize! (-> obj rotation)) + (rigid-body-method-24 obj) + 0 + (none) + ) + +;; definition for method 25 of type rigid-body +;; INFO: Used lq/sq +;; WARN: Return type mismatch int vs none. +(defmethod rigid-body-method-25 rigid-body ((obj rigid-body) (arg0 rigid-body-info) (arg1 vector) (arg2 quaternion) (arg3 function)) + (set! (-> obj work) *rigid-body-work*) + (set! (-> obj info) arg0) + (set! (-> obj force-callback) (the-as (function object float none) arg3)) + (rigid-body-info-method-9 (-> obj info)) + (let ((v1-3 obj)) + (set! (-> v1-3 force quad) (the-as uint128 0)) + (set! (-> v1-3 torque quad) (the-as uint128 0)) + ) + 0 + (clear-momentum! obj) + (rigid-body-method-26 obj arg1 arg2) + (rigid-body-method-13 obj) + 0 + (none) + ) + +;; definition for method 22 of type rigid-body +(defmethod rigid-body-method-22 rigid-body ((obj rigid-body) (arg0 vector) (arg1 vector)) + (let ((v1-1 (vector-! (new 'stack-no-clear 'vector) arg0 (-> obj position)))) + (vector-cross! arg1 (-> obj ang-velocity) v1-1) + ) + (vector+! arg1 arg1 (-> obj lin-velocity)) + arg1 + ) + +;; definition for function matrix-3x3-triple-transpose-product +;; INFO: Used lq/sq +(defun matrix-3x3-triple-transpose-product ((arg0 matrix) (arg1 matrix) (arg2 matrix)) + (let ((s5-0 (new 'stack-no-clear 'inline-array 'matrix 3))) + (let* ((v1-0 (-> s5-0 0)) + (a3-0 arg1) + (a0-1 (-> a3-0 vector 0 quad)) + (a1-1 (-> a3-0 vector 1 quad)) + (a2-1 (-> a3-0 vector 2 quad)) + (a3-1 (-> a3-0 trans quad)) + ) + (set! (-> v1-0 vector 0 quad) a0-1) + (set! (-> v1-0 vector 1 quad) a1-1) + (set! (-> v1-0 vector 2 quad) a2-1) + (set! (-> v1-0 trans quad) a3-1) + ) + (vector-reset! (-> s5-0 0 trans)) + (matrix-transpose! (-> s5-0 1) (-> s5-0 0)) + (matrix*! (-> s5-0 2) arg2 (-> s5-0 0)) + (matrix*! arg0 (-> s5-0 1) (-> s5-0 2)) + ) + arg0 + ) + +;; definition for method 12 of type rigid-body +;; INFO: Used lq/sq +;; WARN: Return type mismatch int vs none. +(defmethod rigid-body-method-12 rigid-body ((obj rigid-body) (arg0 float)) + (local-vars (v1-6 float)) + (rlet ((acc :class vf) + (vf0 :class vf) + (vf1 :class vf) + (vf2 :class vf) + (vf4 :class vf) + (vf5 :class vf) + (vf6 :class vf) + (vf7 :class vf) + ) + (init-vf0-vector) + (let ((a2-0 (-> obj lin-momentum))) + (let ((v1-0 (-> obj lin-momentum))) + (let ((a0-1 (-> obj force))) + (let ((a3-0 arg0)) + (.mov vf7 a3-0) + ) + (.lvf vf5 (&-> a0-1 quad)) + ) + (.lvf vf4 (&-> v1-0 quad)) + ) + (.add.x.vf vf6 vf0 vf0 :mask #b1000) + (.mul.x.vf acc vf5 vf7 :mask #b111) + (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) + (.svf (&-> a2-0 quad) vf6) + ) + (let ((a2-1 (-> obj ang-momentum))) + (let ((v1-1 (-> obj ang-momentum))) + (let ((a0-2 (-> obj torque))) + (let ((a1-1 arg0)) + (.mov vf7 a1-1) + ) + (.lvf vf5 (&-> a0-2 quad)) + ) + (.lvf vf4 (&-> v1-1 quad)) + ) + (.add.x.vf vf6 vf0 vf0 :mask #b1000) + (.mul.x.vf acc vf5 vf7 :mask #b111) + (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) + (.svf (&-> a2-1 quad) vf6) + ) + (let* ((f0-3 (* 500000000.0 (-> obj info mass))) + (f1-1 f0-3) + (f1-3 (* f1-1 f1-1)) + ) + (.lvf vf1 (&-> (-> obj ang-momentum) quad)) + (.add.w.vf vf2 vf0 vf0 :mask #b1) + (.mul.vf vf1 vf1 vf1) + (.mul.x.vf acc vf2 vf1 :mask #b1) + (.add.mul.y.vf acc vf2 vf1 acc :mask #b1) + (.add.mul.z.vf vf1 vf2 vf1 acc :mask #b1) + (.mov v1-6 vf1) + (if (< f1-3 v1-6) + (vector-normalize! (-> obj ang-momentum) f0-3) + ) + ) + (set! (-> obj force quad) (the-as uint128 0)) + (set! (-> obj torque quad) (the-as uint128 0)) + 0 + 0 + (none) + ) + ) + +;; definition for method 13 of type rigid-body +;; WARN: Return type mismatch int vs none. +(defmethod rigid-body-method-13 rigid-body ((obj rigid-body)) + (let ((v1-0 (-> obj info))) + (vector-float*! (-> obj lin-velocity) (-> obj lin-momentum) (-> v1-0 inv-mass)) + (matrix-3x3-triple-transpose-product (-> obj inv-i-world) (-> obj matrix) (-> v1-0 inv-inertial-tensor)) + ) + (vector-rotate*! (-> obj ang-velocity) (-> obj ang-momentum) (-> obj inv-i-world)) + 0 + (none) + ) + +;; definition for method 14 of type rigid-body +;; INFO: Used lq/sq +;; WARN: Return type mismatch int vs none. +(defmethod rigid-body-method-14 rigid-body ((obj rigid-body) (arg0 float)) + (rlet ((acc :class vf) + (vf0 :class vf) + (vf4 :class vf) + (vf5 :class vf) + (vf6 :class vf) + (vf7 :class vf) + ) + (init-vf0-vector) + (let ((a1-1 (-> obj position))) + (let ((v1-0 (-> obj position))) + (let ((a0-1 (-> obj lin-velocity))) + (let ((a2-0 arg0)) + (.mov vf7 a2-0) + ) + (.lvf vf5 (&-> a0-1 quad)) + ) + (.lvf vf4 (&-> v1-0 quad)) + ) + (.add.x.vf vf6 vf0 vf0 :mask #b1000) + (.mul.x.vf acc vf5 vf7 :mask #b111) + (.add.mul.w.vf vf6 vf4 vf0 acc :mask #b111) + (.svf (&-> a1-1 quad) vf6) + ) + (let ((s4-0 (new 'stack-no-clear 'quaternion))) + (set! (-> (the-as vector (&-> s4-0 x)) quad) (-> obj ang-velocity quad)) + (set! (-> s4-0 w) 0.0) + (quaternion*! s4-0 s4-0 (-> obj rotation)) + (quaternion-float*! s4-0 s4-0 0.5) + (+! (-> obj rotation x) (* (-> s4-0 x) arg0)) + (+! (-> obj rotation y) (* (-> s4-0 y) arg0)) + (+! (-> obj rotation z) (* (-> s4-0 z) arg0)) + (+! (-> obj rotation w) (* (-> s4-0 w) arg0)) + ) + (quaternion-normalize! (-> obj rotation)) + (rigid-body-method-24 obj) + 0 + (none) + ) + ) + +;; definition for function damping-time-adjust +(defun damping-time-adjust ((arg0 float) (arg1 float)) + (let ((f0-0 0.0) + (f1-0 1.0) + (f2-2 (* (+ -1.0 arg0) arg1)) + (f3-2 0.016666668) + ) + (fmax f0-0 (+ f1-0 (* f2-2 (/ 1.0 f3-2)))) + ) + ) + +;; definition for method 9 of type rigid-body +;; WARN: Return type mismatch int vs none. +(defmethod rigid-body-method-9 rigid-body ((obj rigid-body) (arg0 collide-shape-moving) (arg1 float)) + (rigid-body-method-12 obj arg1) + (let ((v1-2 (-> obj info))) + (let* ((a0-2 (-> obj lin-momentum)) + (a1-2 (-> obj lin-momentum)) + (f3-0 (-> v1-2 linear-damping)) + (f2-0 arg1) + (f0-0 0.0) + (f1-0 1.0) + (f2-1 (* (+ -1.0 f3-0) f2-0)) + (f3-2 0.016666668) + ) + (vector-float*! a0-2 a1-2 (fmax f0-0 (+ f1-0 (* f2-1 (/ 1.0 f3-2))))) + ) + (let* ((a0-4 (-> obj ang-momentum)) + (a1-3 (-> obj ang-momentum)) + (f3-5 (-> v1-2 angular-damping)) + (f2-3 arg1) + (f0-3 0.0) + (f1-2 1.0) + (f2-4 (* (+ -1.0 f3-5) f2-3)) + (f3-7 0.016666668) + ) + (vector-float*! a0-4 a1-3 (fmax f0-3 (+ f1-2 (* f2-4 (/ 1.0 f3-7))))) + ) + ) + (rigid-body-method-13 obj) + (if (logtest? (-> obj flags) (rigid-body-flag enable-collision)) + ((method-of-object arg0 collide-shape-moving-method-63)) + (rigid-body-method-14 obj arg1) + ) + 0 + (none) + ) + +;; definition for method 67 of type collide-shape-moving +;; ERROR: function was not converted to expressions. Cannot decompile. + +;; definition for function transform-rigid-body-prims +(defun transform-rigid-body-prims ((arg0 collide-shape-prim) (arg1 matrix)) + (rlet ((acc :class vf) + (vf0 :class vf) + (vf1 :class vf) + (vf2 :class vf) + (vf3 :class vf) + (vf4 :class vf) + (vf5 :class vf) + ) + (init-vf0-vector) + (let ((v1-0 (the-as basic arg0)) + (a0-1 1) + ) + (when (= (-> (the-as collide-shape-prim v1-0) prim-core prim-type) (prim-type group)) + (let ((a0-2 (the-as collide-shape-prim-group v1-0))) + (set! v1-0 (-> a0-2 child 0)) + (set! a0-1 (the-as int (-> a0-2 num-children))) + ) + ) + (while (nonzero? a0-1) + (+! a0-1 -1) + (.lvf vf5 (&-> (the-as collide-shape-prim v1-0) local-sphere quad)) + (.lvf vf1 (&-> arg1 vector 0 quad)) + (.lvf vf2 (&-> arg1 vector 1 quad)) + (.lvf vf3 (&-> arg1 vector 2 quad)) + (.lvf vf4 (&-> arg1 trans quad)) + (.mul.x.vf acc vf1 vf5) + (.add.mul.y.vf acc vf2 vf5 acc) + (.add.mul.z.vf acc vf3 vf5 acc) + (.add.mul.w.vf vf5 vf4 vf0 acc :mask #b111) + (.svf (&-> (the-as collide-shape-prim v1-0) prim-core world-sphere quad) vf5) + (set! v1-0 (&+ (the-as collide-shape-prim v1-0) 80)) + ) + ) + #f + ) + ) + +;; definition for method 63 of type collide-shape-moving +;; ERROR: function was not converted to expressions. Cannot decompile. + +;; definition for method 15 of type rigid-body +;; ERROR: function was not converted to expressions. Cannot decompile. + +;; definition for method 18 of type rigid-body +;; WARN: Return type mismatch int vs none. +(defmethod rigid-body-method-18 rigid-body ((obj rigid-body) (arg0 vector) (arg1 vector)) + (vector+! (-> obj force) (-> obj force) arg1) + (let ((a3-1 (new 'stack-no-clear 'vector)) + (v1-1 (new 'stack-no-clear 'vector)) + ) + (vector-! a3-1 arg0 (-> obj position)) + (vector-cross! v1-1 a3-1 arg1) + (vector+! (-> obj torque) (-> obj torque) v1-1) + ) + 0 + (none) + ) + +;; definition for method 21 of type rigid-body +;; WARN: Return type mismatch int vs none. +(defmethod rigid-body-method-21 rigid-body ((obj rigid-body) (arg0 vector) (arg1 vector) (arg2 float)) + (vector+! (-> obj force) (-> obj force) arg1) + (let* ((t0-2 (vector-! (new 'stack-no-clear 'vector) arg0 (-> obj position))) + (v1-3 (vector-cross! (new 'stack-no-clear 'vector) t0-2 arg1)) + ) + (let ((f0-0 (vector-length t0-2))) + (if (< arg2 f0-0) + (vector-float*! v1-3 v1-3 (/ arg2 f0-0)) + ) + ) + (vector+! (-> obj torque) (-> obj torque) v1-3) + ) + 0 + (none) + ) + +;; definition for method 19 of type rigid-body +;; WARN: Return type mismatch int vs none. +(defmethod rigid-body-method-19 rigid-body ((obj rigid-body) (arg0 vector) (arg1 vector)) + (let ((s5-0 (new 'stack-no-clear 'vector)) + (s4-0 (new 'stack-no-clear 'vector)) + ) + (-> obj work) + (vector-rotate*! s4-0 arg1 (-> obj matrix)) + (vector-rotate*! s5-0 arg0 (-> obj matrix)) + (vector+! s5-0 s5-0 (-> obj position)) + (rigid-body-method-18 obj s5-0 s4-0) + ) + 0 + (none) + ) + +;; definition for method 20 of type rigid-body +;; WARN: Return type mismatch int vs none. +(defmethod rigid-body-method-20 rigid-body ((obj rigid-body) (arg0 vector)) + (vector+! (-> obj force) (-> obj force) arg0) + 0 + (none) + ) + +;; definition for method 23 of type rigid-body +(defmethod rigid-body-method-23 rigid-body ((obj rigid-body) (arg0 vector)) + (let ((gp-0 (new 'stack-no-clear 'vector))) + (vector-rotate*! gp-0 (-> obj info cm-offset-joint) (-> obj matrix)) + (vector-! arg0 (-> obj position) gp-0) + ) + arg0 + ) + +;; definition for method 28 of type rigid-body +;; WARN: Return type mismatch int vs none. +(defmethod print-force-torque rigid-body ((obj rigid-body) (arg0 object)) + (format arg0 " force ~M ~M ~M" (-> obj force x) (-> obj force y) (-> obj force z)) + (format arg0 " torque ~M ~M ~M~%" (-> obj torque x) (-> obj torque y) (-> obj torque z)) + 0 + (none) + ) + +;; definition for method 30 of type rigid-body +;; WARN: Return type mismatch int vs none. +(defmethod print-momentum rigid-body ((obj rigid-body) (arg0 object)) + (format arg0 " lin-mom ~M ~M ~M" (-> obj lin-momentum x) (-> obj lin-momentum y) (-> obj lin-momentum z)) + (format arg0 " ang-mom ~M ~M ~M~%" (-> obj ang-momentum x) (-> obj ang-momentum y) (-> obj ang-momentum z)) + 0 + (none) + ) + +;; definition for method 31 of type rigid-body +;; WARN: Return type mismatch int vs none. +(defmethod print-velocity rigid-body ((obj rigid-body) (arg0 object)) + (format arg0 " lin-vel ~M ~M ~M" (-> obj lin-velocity x) (-> obj lin-velocity y) (-> obj lin-velocity z)) + (format arg0 " ang-vel ~f ~f ~f~%" (-> obj ang-velocity x) (-> obj ang-velocity y) (-> obj ang-velocity z)) + 0 + (none) + ) + +;; definition for method 29 of type rigid-body +;; WARN: Return type mismatch int vs none. +(defmethod print-position-rotation rigid-body ((obj rigid-body) (arg0 object)) + (format arg0 " position ~M ~M ~M" (-> obj position x) (-> obj position y) (-> obj position z)) + (format + arg0 + " rotation ~f ~f ~f ~f~%" + (-> obj rotation x) + (-> obj rotation y) + (-> obj rotation z) + (-> obj rotation w) + ) + 0 + (none) + ) + +;; definition for method 27 of type rigid-body +;; WARN: Return type mismatch int vs none. +(defmethod print-physics rigid-body ((obj rigid-body) (arg0 object)) + (print-force-torque obj arg0) + (print-position-rotation obj arg0) + (print-momentum obj arg0) + (print-velocity obj arg0) + 0 + (none) + ) + +;; definition for method 10 of type rigid-body-control +;; INFO: this function exists in multiple non-identical object files +;; WARN: Return type mismatch int vs object. +(defmethod rigid-body-control-method-10 rigid-body-control ((obj rigid-body-control) (arg0 rigid-body-object) (arg1 float) (arg2 float)) + (let* ((s4-1 (max 1 (min 4 (+ (the int (* 0.9999 (/ arg1 arg2))) 1)))) + (f30-0 (/ arg1 (the float s4-1))) + (s3-0 (-> obj state force-callback)) + ) + (while (nonzero? s4-1) + (+! s4-1 -1) + (s3-0 arg0 f30-0) + (let ((v1-2 obj) + (a1-2 (-> arg0 root-override)) + (f0-4 f30-0) + ) + (rigid-body-method-9 (-> v1-2 state) a1-2 f0-4) + ) + ) + ) + (the-as object 0) + ) + +;; definition for method 11 of type rigid-body +;; INFO: Used lq/sq +;; WARN: Return type mismatch int vs none. +(defmethod rigid-body-method-11 rigid-body ((obj rigid-body) (arg0 collide-shape-moving)) + (quaternion-copy! (-> arg0 quat) (-> obj rotation)) + (rigid-body-method-23 obj (-> arg0 trans)) + (set! (-> arg0 transv quad) (-> obj lin-velocity quad)) + 0 + (none) + ) + +;; definition for method 26 of type rigid-body-object +(defmethod process-focusable-method-26 rigid-body-object ((obj rigid-body-object)) + (-> obj info inv-mass) + ) + +;; definition for method 35 of type rigid-body-object +;; WARN: Return type mismatch int vs none. +(defmethod rigid-body-object-method-35 rigid-body-object ((obj rigid-body-object)) + (let ((a0-1 (-> obj info name))) + (when (nonzero? a0-1) + (set! (-> obj info) (the-as rigid-body-object-constants (-> a0-1 value))) + (set! (-> obj rbody state info) (the-as rigid-body-info (&-> (-> obj info) mass))) + ) + ) + ((method-of-type rigid-body-info rigid-body-info-method-9) (the-as rigid-body-info (&-> (-> obj info) mass))) + (set! (-> obj rbody state force-callback) + (the-as (function object float none) (method-of-object obj rigid-body-object-method-29)) + ) + 0 + (none) + ) + +;; definition for method 50 of type rigid-body-object +;; WARN: Return type mismatch int vs none. +(defmethod rigid-body-object-method-50 rigid-body-object ((obj rigid-body-object) (arg0 float)) + (when (logtest? (-> obj flags) (rigid-body-object-flag player-impulse-force player-contact-force)) + (when (logtest? (-> obj flags) (rigid-body-object-flag player-impulse-force)) + (logclear! (-> obj flags) (rigid-body-object-flag player-impulse-force)) + (vector-float*! (-> obj player-force) (-> obj player-force) (/ 1.0 arg0)) + ) + (let ((v1-10 (-> obj rbody)) + (a1-1 (-> obj player-force-position)) + (a2-2 (-> obj player-force)) + ) + (rigid-body-method-18 (-> v1-10 state) a1-1 a2-2) + ) + ) + 0 + (none) + ) + +;; definition for method 29 of type rigid-body-object +;; WARN: Return type mismatch int vs none. +(defmethod rigid-body-object-method-29 rigid-body-object ((obj rigid-body-object)) + (let ((a1-0 (new 'stack-no-clear 'vector))) + (vector-reset! a1-0) + (set! (-> a1-0 y) (* -1.0 (-> obj info gravity) (-> obj rbody state info mass))) + (rigid-body-method-20 (-> obj rbody state) a1-0) + ) + 0 + (none) + ) + +;; definition for method 30 of type rigid-body-object +;; WARN: Return type mismatch int vs none. +(defmethod rigid-body-object-method-30 rigid-body-object ((obj rigid-body-object)) + (with-pp + (rigid-body-control-method-10 (-> obj rbody) obj (-> pp clock seconds-per-frame) (-> obj max-time-step)) + (logclear! (-> obj flags) (rigid-body-object-flag player-impulse-force player-contact-force)) + 0 + (none) + ) + ) + +;; definition for method 51 of type rigid-body-object +;; WARN: Return type mismatch int vs none. +(defmethod rigid-body-object-method-51 rigid-body-object ((obj rigid-body-object)) + (rigid-body-control-method-10 (-> obj rbody) obj (-> obj rbody state time-remaining) (-> obj max-time-step)) + 0 + (none) + ) + +;; definition for method 52 of type rigid-body-object +;; WARN: Return type mismatch int vs none. +(defmethod rigid-body-object-method-52 rigid-body-object ((obj rigid-body-object)) + (logclear! (-> obj flags) (rigid-body-object-flag player-impulse-force player-contact-force)) + 0 + (none) + ) + +;; definition for method 34 of type rigid-body-object +;; WARN: Return type mismatch int vs none. +(defmethod rigid-body-object-method-34 rigid-body-object ((obj rigid-body-object)) + (go (method-of-object obj idle)) + 0 + (none) + ) + +;; definition for method 31 of type rigid-body-object +;; WARN: Return type mismatch int vs none. +(defmethod rigid-body-object-method-31 rigid-body-object ((obj rigid-body-object) (arg0 rigid-body-object-constants)) + (set! (-> obj info) arg0) + (set! (-> obj rbody) (new 'process 'rigid-body-control obj)) + (collide-shape-method-46 (-> obj root-override)) + (rigid-body-method-25 + (-> obj rbody state) + (the-as rigid-body-info (&-> (-> obj info) mass)) + (-> obj root-override trans) + (-> obj root-override quat) + (method-of-object obj rigid-body-object-method-29) + ) + (rigid-body-object-method-35 obj) + (set! (-> obj max-time-step) (-> arg0 max-time-step)) + (set! (-> obj root-override max-iteration-count) (the-as uint 4)) + (let ((v1-15 (-> obj skel root-channel 0))) + (set! (-> v1-15 num-func) num-func-identity) + (set! (-> v1-15 frame-num) 0.0) + ) + 0 + (none) + ) + +;; definition for method 32 of type rigid-body-object +;; WARN: Return type mismatch int vs none. +(defmethod rigid-body-object-method-32 rigid-body-object ((obj rigid-body-object)) + (let ((s5-0 (new 'process 'collide-shape-moving obj (collide-list-enum hit-by-player)))) + (set! (-> s5-0 dynam) (copy *standard-dynamics* 'process)) + (set! (-> s5-0 reaction) cshape-reaction-default) + (set! (-> s5-0 no-reaction) nothing) + (let ((s4-0 (new 'process 'collide-shape-prim-sphere s5-0 (the-as uint 0)))) + (set! (-> s4-0 prim-core collide-as) (collide-spec pusher)) + (set! (-> s4-0 prim-core collide-with) (collide-spec jak player-list)) + (set! (-> s4-0 prim-core action) (collide-action solid)) + (set! (-> s4-0 transform-index) 3) + (set-vector! (-> s4-0 local-sphere) 0.0 0.0 0.0 12288.0) + (set! (-> s5-0 total-prims) (the-as uint 1)) + (set! (-> s5-0 root-prim) s4-0) + ) + (collide-shape-method-54 s5-0) + (set! (-> s5-0 nav-radius) (* 0.75 (-> s5-0 root-prim local-sphere w))) + (let ((v1-16 (-> s5-0 root-prim))) + (set! (-> s5-0 backup-collide-as) (-> v1-16 prim-core collide-as)) + (set! (-> s5-0 backup-collide-with) (-> v1-16 prim-core collide-with)) + ) + (set! (-> obj root-override) s5-0) + ) + 0 + (none) + ) + +;; definition for symbol *rigid-body-object-constants*, type rigid-body-object-constants +(define *rigid-body-object-constants* (new 'static 'rigid-body-object-constants + :mass 2.0 + :inv-mass 0.5 + :cm-joint-w 1.0 + :linear-damping 1.0 + :angular-damping 1.0 + :bounce-factor 0.5 + :friction-factor 0.1 + :inertial-tensor-x (meters 4) + :inertial-tensor-y (meters 4) + :inertial-tensor-z (meters 4) + :max-time-step 0.033333335 + :gravity (meters 80) + :idle-distance (meters 50) + :attack-force-scale 1.0 + :name '*rigid-body-object-constants* + ) + ) + +;; definition for method 33 of type rigid-body-object +;; WARN: Return type mismatch int vs none. +(defmethod rigid-body-object-method-33 rigid-body-object ((obj rigid-body-object)) + (rigid-body-object-method-31 obj *rigid-body-object-constants*) + 0 + (none) + ) + +;; definition for method 11 of type rigid-body-object +;; WARN: Return type mismatch int vs none. +(defmethod init-from-entity! rigid-body-object ((obj rigid-body-object) (arg0 entity-actor)) + (rigid-body-object-method-32 obj) + (process-drawable-from-entity! obj arg0) + (rigid-body-object-method-33 obj) + (rigid-body-object-method-34 obj) + 0 + (none) + ) + +;; definition for method 36 of type rigid-body-object +;; WARN: Return type mismatch int vs none. +(defmethod rigid-body-object-method-36 rigid-body-object () + 0 + (none) + ) + +;; definition for method 37 of type rigid-body-object +;; WARN: Return type mismatch int vs none. +(defmethod rigid-body-object-method-37 rigid-body-object ((obj rigid-body-object)) + (rigid-body-object-method-30 obj) + ((method-of-object obj rigid-body-object-method-36)) + (let ((v1-4 (-> obj rbody)) + (a1-0 (-> obj root-override)) + ) + (rigid-body-method-11 (-> v1-4 state) a1-0) + ) + (transform-post) + 0 + (none) + ) + +;; definition for method 40 of type rigid-body-object +;; WARN: Return type mismatch int vs none. +(defmethod rigid-body-object-method-40 rigid-body-object ((obj rigid-body-object)) + (logior! (-> obj flags) (rigid-body-object-flag enable-collision)) + (let ((v1-3 (-> obj root-override root-prim))) + (set! (-> v1-3 prim-core collide-as) (-> obj root-override backup-collide-as)) + (set! (-> v1-3 prim-core collide-with) (-> obj root-override backup-collide-with)) + ) + 0 + (none) + ) + +;; definition for method 41 of type rigid-body-object +;; WARN: Return type mismatch int vs none. +(defmethod rigid-body-object-method-41 rigid-body-object ((obj rigid-body-object)) + (logclear! (-> obj flags) (rigid-body-object-flag enable-collision)) + (let ((v1-3 (-> obj root-override root-prim))) + (set! (-> v1-3 prim-core collide-as) (collide-spec)) + (set! (-> v1-3 prim-core collide-with) (collide-spec)) + ) + 0 + 0 + (none) + ) + +;; definition for method 38 of type rigid-body-object +;; WARN: Return type mismatch int vs none. +(defmethod rigid-body-object-method-38 rigid-body-object ((obj rigid-body-object)) + (when (not (logtest? (-> obj rbody state flags) (rigid-body-flag enable-physics))) + (logior! (-> obj rbody state flags) (rigid-body-flag enable-physics)) + (rigid-body-method-26 (-> obj rbody state) (-> obj root-override trans) (-> obj root-override quat)) + (vector-float*! (-> obj rbody state lin-momentum) (-> obj root-override transv) (-> obj info mass)) + (vector-reset! (-> obj rbody state ang-momentum)) + ) + 0 + (none) + ) + +;; definition for method 39 of type rigid-body-object +;; WARN: Return type mismatch int vs none. +(defmethod rigid-body-object-method-39 rigid-body-object ((obj rigid-body-object)) + (logclear! (-> obj rbody state flags) (rigid-body-flag enable-physics)) + 0 + (none) + ) + +;; definition for method 42 of type rigid-body-object +;; WARN: Return type mismatch int vs none. +(defmethod rigid-body-object-method-42 rigid-body-object ((obj rigid-body-object)) + (logior! (-> obj flags) (rigid-body-object-flag disturbed)) + (set! (-> obj disturbed-time) (-> self clock frame-counter)) + (if (not (logtest? (-> obj rbody state flags) (rigid-body-flag enable-physics))) + (rigid-body-object-method-38 obj) + ) + 0 + (none) + ) + +;; definition for method 43 of type rigid-body-object +;; WARN: Return type mismatch int vs none. +(defmethod rigid-body-object-method-43 rigid-body-object ((obj rigid-body-object)) + (go (method-of-object obj active)) + 0 + (none) + ) + +;; definition for method 44 of type rigid-body-object +;; WARN: Return type mismatch int vs none. +(defmethod rigid-body-object-method-44 rigid-body-object ((obj rigid-body-object) (arg0 float)) + 0 + (none) + ) + +;; definition for method 45 of type rigid-body-object +;; WARN: Return type mismatch int vs none. +(defmethod rigid-body-object-method-45 rigid-body-object () + 0 + (none) + ) + +;; definition for method 49 of type rigid-body-object +;; INFO: Used lq/sq +;; WARN: Return type mismatch int vs none. +(defmethod rigid-body-object-method-49 rigid-body-object ((obj rigid-body-object) (arg0 matrix) (arg1 touching-shapes-entry)) + (set! (-> arg0 trans z) (the-as float #f)) + (set! (-> arg0 trans w) 0.0) + (vector-reset! (-> arg0 vector 1)) + (vector-reset! (-> arg0 vector 2)) + (set! (-> arg0 vector 0 quad) (-> obj root-override trans quad)) + (when arg1 + (let ((s3-0 (-> arg1 head))) + (when s3-0 + (get-intersect-point (the-as vector (-> arg0 vector)) s3-0 (-> obj root-override) arg1) + (let ((s5-1 (touching-prims-entry-method-10 s3-0 (-> obj root-override) arg1))) + (when s5-1 + (set! (-> arg0 trans w) (the-as float (-> s5-1 prim-id))) + (vector-! (-> arg0 vector 1) (the-as vector (-> arg0 vector)) (the-as vector (-> s5-1 prim-core))) + (vector-normalize! (-> arg0 vector 1) 1.0) + (vector+float*! + (the-as vector (-> arg0 vector)) + (the-as vector (-> s5-1 prim-core)) + (-> arg0 vector 1) + (-> s5-1 prim-core world-sphere w) + ) + ) + ) + ) + ) + ) + 0 + (none) + ) + +;; definition for method 47 of type rigid-body-object +;; INFO: Used lq/sq +(defmethod rigid-body-object-method-47 rigid-body-object ((obj rigid-body-object) (arg0 process-drawable) (arg1 attack-info) (arg2 object) (arg3 penetrate)) + (local-vars (f0-2 float)) + (when arg2 + (let ((s5-0 (new 'stack-no-clear 'matrix))) + (rigid-body-object-method-49 obj s5-0 (the-as touching-shapes-entry arg2)) + (if (logtest? (attack-info-mask attacker-velocity) (-> arg1 mask)) + (set! (-> s5-0 vector 2 quad) (-> arg1 attacker-velocity quad)) + (vector-! (-> s5-0 vector 2) (the-as vector (-> s5-0 vector)) (-> arg0 root trans)) + ) + 0.0 + 0.0 + (let ((f1-0 (cond + ((logtest? (penetrate enemy-yellow-shot) arg3) + (set! f0-2 8192.0) + 0.025 + ) + ((logtest? (penetrate jak-yellow-shot jak-blue-shot) arg3) + (set! f0-2 8192.0) + 0.05 + ) + ((logtest? (penetrate jak-red-shot) arg3) + (set! f0-2 16384.0) + 0.05 + ) + ((logtest? (penetrate explode jak-dark-shot enemy-dark-shot) arg3) + (set! f0-2 81920.0) + 1.5 + ) + ((logtest? arg3 (penetrate punch)) + (set! f0-2 40960.0) + 0.1 + ) + ((logtest? arg3 (penetrate flop spin)) + (set! f0-2 20480.0) + 0.05 + ) + (else + (set! f0-2 8192.0) + 0.01 + ) + ) + ) + ) + (set! (-> s5-0 trans x) (* f0-2 (-> obj info attack-force-scale))) + (rigid-body-object-method-44 obj (* 0.667 f1-0)) + ) + (rigid-body-object-method-42 obj) + (let ((s4-1 (new 'stack-no-clear 'vector))) + (set! (-> s4-1 quad) (-> s5-0 vector 2 quad)) + (vector-normalize! s4-1 1.0) + (vector-float*! s4-1 s4-1 (-> s5-0 trans x)) + (let ((v1-46 (-> obj rbody)) + (a1-6 (-> s5-0 vector)) + (a2-3 s4-1) + ) + (rigid-body-method-18 (-> v1-46 state) (the-as vector a1-6) a2-3) + ) + (let ((v1-49 (-> obj rbody)) + (f0-7 1.0) + ) + (rigid-body-method-12 (-> v1-49 state) f0-7) + ) + (rigid-body-method-13 (-> obj rbody state)) + (when #t + (add-debug-x #t (bucket-id debug-no-zbuf1) (the-as vector (-> s5-0 vector)) *color-blue*) + (add-debug-vector + #t + (bucket-id debug-no-zbuf1) + (the-as vector (-> s5-0 vector)) + s4-1 + (meters 0.00024414062) + *color-blue* + ) + ) + ) + ) + ((method-of-object obj rigid-body-object-method-45)) + (if (and (-> obj next-state) (= (-> obj next-state name) 'idle)) + (rigid-body-object-method-43 obj) + ) + #t + ) + ) + +;; definition for method 48 of type rigid-body-object +;; ERROR: function was not converted to expressions. Cannot decompile. + +;; definition for method 46 of type rigid-body-object +;; INFO: Used lq/sq +(defmethod rigid-body-object-method-46 rigid-body-object ((obj rigid-body-object) (arg0 process-drawable) (arg1 int) (arg2 symbol) (arg3 event-message-block)) + (case arg2 + (('impact-impulse) + (-> arg3 param 0) + (if (!= obj arg0) + (rigid-body-object-method-42 obj) + ) + ((method-of-object obj rigid-body-object-method-45)) + (if (and (-> obj next-state) (= (-> obj next-state name) 'idle)) + (rigid-body-object-method-43 obj) + ) + ) + (('touched) + (if (= obj *debug-actor*) + (format *stdcon* "rigid-body-object got touched~%") + ) + (when (zero? (-> arg0 rbody)) + (let ((s3-0 (if (type? arg0 process-focusable) + arg0 + ) + ) + ) + (when s3-0 + (when (logtest? (-> s3-0 mask) (process-mask target)) + (logior! (-> obj flags) (rigid-body-object-flag player-touching)) + (set! (-> obj player-touch-time) (-> self clock frame-counter)) + (rigid-body-object-method-42 obj) + ) + (if (not (logtest? (-> s3-0 mask) (process-mask target))) + (rigid-body-object-method-48 obj s3-0 (-> arg3 param 0)) + ) + ) + ) + ) + ) + (('attack) + (let ((s3-1 (the-as attack-info (-> arg3 param 1))) + (t0-1 (get-penetrate-using-from-attack-event arg0 arg3)) + ) + (when (!= (-> s3-1 id) (-> obj incoming-attack-id)) + (set! (-> obj incoming-attack-id) (-> s3-1 id)) + (rigid-body-object-method-47 obj arg0 s3-1 (-> arg3 param 0) t0-1) + ) + ) + ) + (('edge-grabbed 'pilot-edge-grab) + (let ((s5-2 (the-as object (-> arg3 param 0)))) + (when (not (logtest? (-> obj flags) (rigid-body-object-flag player-impulse-force))) + (let ((a0-25 (if (type? arg0 process-focusable) + (the-as process-focusable arg0) + ) + ) + ) + (when a0-25 + (let ((f0-1 (/ 163840.0 (process-focusable-method-26 a0-25)))) + (logior! (-> obj flags) (rigid-body-object-flag player-touching player-edge-grabbing player-contact-force)) + (set! (-> obj player-force-position quad) (-> (the-as attack-info s5-2) attacker-velocity quad)) + (vector-reset! (-> obj player-force)) + (set! (-> obj player-force y) (* -1.0 f0-1)) + ) + ) + ) + ) + ) + (zero? (logand (-> obj focus-status) (focus-status dead inactive))) + ) + (('ridden) + (let ((v1-45 (the-as object (-> arg3 param 0)))) + (when (the-as uint v1-45) + (let* ((s5-3 (handle->process (-> (the-as focus v1-45) handle))) + (a0-34 (if (type? s5-3 process-focusable) + (the-as process-focusable s5-3) + ) + ) + ) + (when (and a0-34 + (logtest? (-> a0-34 mask) (process-mask target)) + (zero? (logand (-> a0-34 focus-status) (focus-status on-water under-water))) + ) + (when (not (logtest? (-> obj flags) (rigid-body-object-flag player-impulse-force))) + (logior! (-> obj flags) (rigid-body-object-flag player-touching player-standing-on player-contact-force)) + (set! (-> obj player-force-position quad) (-> a0-34 root trans quad)) + (vector-reset! (-> obj player-force)) + (let ((f0-4 (/ 163840.0 (process-focusable-method-26 a0-34))) + (f1-1 1.0) + ) + (set! (-> obj player-force y) (* -1.0 f0-4 f1-1)) + ) + ) + ) + ) + ) + ) + ) + (('bonk) + (when #t + (let ((a0-38 (if (type? arg0 process-focusable) + (the-as process-focusable arg0) + ) + ) + ) + (when a0-38 + (logior! (-> obj flags) (rigid-body-object-flag player-touching player-impulse-force)) + (set! (-> obj player-force-position quad) (-> a0-38 root trans quad)) + (let ((f30-2 (* 0.00012207031 (the-as float (-> arg3 param 1)))) + (f0-9 (/ 163840.0 (process-focusable-method-26 a0-38))) + ) + (vector-reset! (-> obj player-force)) + (set! (-> obj player-force y) (* -0.1 f0-9 f30-2)) + ) + ) + ) + ) + ) + (('enable-physics) + (rigid-body-object-method-42 obj) + ) + ) + (none) + ) + +;; definition for function rigid-body-object-event-handler +(defbehavior rigid-body-object-event-handler rigid-body-object ((arg0 process) (arg1 int) (arg2 symbol) (arg3 event-message-block)) + (rigid-body-object-method-46 self (the-as process-drawable arg0) arg1 arg2 arg3) + (none) + ) + +;; failed to figure out what this is: +(defstate idle (rigid-body-object) + :virtual #t + :trans (behavior () + (if (and *target* (and (>= (-> self info idle-distance) + (vector-vector-distance (-> self root-override trans) (-> *target* control trans)) + ) + (zero? (logand (focus-status teleporting) (-> *target* focus-status))) + ) + ) + (go-virtual active) + ) + (none) + ) + :code (the-as (function none :behavior rigid-body-object) sleep-code) + :post (the-as (function none :behavior rigid-body-object) ja-post) + ) + +;; failed to figure out what this is: +(defstate active (rigid-body-object) + :virtual #t + :event (the-as + (function process int symbol event-message-block object :behavior rigid-body-object) + rigid-body-object-event-handler + ) + :trans (behavior () + (if (or (not *target*) (or (< (+ 4096.0 (-> self info idle-distance)) + (vector-vector-distance (-> self root-override trans) (-> *target* control trans)) + ) + (logtest? (focus-status teleporting) (-> *target* focus-status)) + ) + ) + (go-virtual idle) + ) + (none) + ) + :code (the-as (function none :behavior rigid-body-object) sleep-code) + :post (behavior () + (rigid-body-object-method-37 self) + (none) + ) + ) diff --git a/test/decompiler/reference/jak2/engine/process-drawable/process-focusable_REF.gc b/test/decompiler/reference/jak2/engine/process-drawable/process-focusable_REF.gc index c6bb3fe78..a12f8d6e8 100644 --- a/test/decompiler/reference/jak2/engine/process-drawable/process-focusable_REF.gc +++ b/test/decompiler/reference/jak2/engine/process-drawable/process-focusable_REF.gc @@ -16,7 +16,7 @@ (process-focusable-method-23 (_type_) none 23) (process-focusable-method-24 (_type_) float 24) (process-focusable-method-25 (_type_) time-frame 25) - (process-focusable-method-26 (_type_) none 26) + (process-focusable-method-26 (_type_) float 26) ) ) @@ -80,10 +80,8 @@ ) ;; definition for method 26 of type process-focusable -;; WARN: Return type mismatch int vs none. (defmethod process-focusable-method-26 process-focusable ((obj process-focusable)) - 0 - (none) + 0.0 ) ;; definition for method 25 of type process-focusable diff --git a/test/decompiler/reference/jak2/engine/sound/speech-h_REF.gc b/test/decompiler/reference/jak2/engine/sound/speech-h_REF.gc index 768cdee61..25541d143 100644 --- a/test/decompiler/reference/jak2/engine/sound/speech-h_REF.gc +++ b/test/decompiler/reference/jak2/engine/sound/speech-h_REF.gc @@ -11,7 +11,7 @@ (max-delay uint16 :offset-assert 8) (delay uint16 :offset-assert 10) (play-index int16 :offset-assert 12) - (list basic :offset-assert 16) + (list (array string) :offset-assert 16) ) :method-count-assert 9 :size-assert #x14 @@ -128,15 +128,15 @@ ;; definition of type speech-control (deftype speech-control (structure) - ((channel-array speech-channel 2 :inline :offset-assert 0) - (speech-table uint32 57 :offset-assert 224) + ((channel-array speech-channel 2 :inline :offset-assert 0) + (speech-table speech-type-info 57 :offset-assert 224) ) :method-count-assert 17 :size-assert #x1c4 :flag-assert #x11000001c4 (:methods (speech-control-method-9 () none 9) - (speech-control-method-10 () none 10) + (speech-control-method-10 (_type_ int speech-type-info) none 10) (speech-control-method-11 (_type_) none 11) (speech-control-method-12 () none 12) (speech-control-method-13 () none 13) diff --git a/test/decompiler/reference/jak2/levels/city/common/height-map-h_REF.gc b/test/decompiler/reference/jak2/levels/city/common/height-map-h_REF.gc new file mode 100644 index 000000000..ac974f9e7 --- /dev/null +++ b/test/decompiler/reference/jak2/levels/city/common/height-map-h_REF.gc @@ -0,0 +1,62 @@ +;;-*-Lisp-*- +(in-package goal) + +;; definition of type xz-height-map +(deftype xz-height-map (structure) + ((offset float 3 :offset-assert 0) + (x-offset float :offset 0) + (y-offset float :offset 4) + (z-offset float :offset 8) + (x-inv-spacing float :offset-assert 12) + (z-inv-spacing float :offset-assert 16) + (y-scale float :offset-assert 20) + (dim int16 2 :offset-assert 24) + (x-dim int16 :offset 24) + (z-dim int16 :offset 26) + (data (pointer int8) :offset-assert 28) + ) + :method-count-assert 15 + :size-assert #x20 + :flag-assert #xf00000020 + (:methods + (xz-height-map-method-9 (_type_ vector) float 9) + (xz-height-map-method-10 (_type_ vector) none 10) + (xz-height-map-method-11 (_type_) none 11) + (xz-height-map-method-12 (_type_ vector) none 12) + (xz-height-map-method-13 (_type_ vector) none 13) + (xz-height-map-method-14 (_type_ vector int) none 14) + ) + ) + +;; definition for method 3 of type xz-height-map +(defmethod inspect xz-height-map ((obj xz-height-map)) + (when (not obj) + (set! obj obj) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" obj 'xz-height-map) + (format #t "~1Toffset[3] @ #x~X~%" (-> obj offset)) + (format #t "~1Tx-offset: ~f~%" (-> obj x-offset)) + (format #t "~1Ty-offset: ~f~%" (-> obj y-offset)) + (format #t "~1Tz-offset: ~f~%" (-> obj z-offset)) + (format #t "~1Tx-inv-spacing: ~f~%" (-> obj x-inv-spacing)) + (format #t "~1Tz-inv-spacing: ~f~%" (-> obj z-inv-spacing)) + (format #t "~1Ty-scale: ~f~%" (-> obj y-scale)) + (format #t "~1Tdim[2] @ #x~X~%" (-> obj dim)) + (format #t "~1Tx-dim: ~D~%" (-> obj x-dim)) + (format #t "~1Tz-dim: ~D~%" (-> obj z-dim)) + (format #t "~1Tdata: #x~X~%" (-> obj data)) + (label cfg-4) + obj + ) + +;; definition for function get-traffic-height +(defun get-traffic-height ((arg0 vector)) + "@returns The value of [[xz-height-map::9]] using [[*traffic-height-map*]] and the [[vector]] provided + @see [[xz-height-map::9]]" + (xz-height-map-method-9 *traffic-height-map* arg0) + ) + + + + diff --git a/test/decompiler/reference/jak2/levels/city/common/nav-graph-h_REF.gc b/test/decompiler/reference/jak2/levels/city/common/nav-graph-h_REF.gc index 4ff2fadb1..ccc7e54c0 100644 --- a/test/decompiler/reference/jak2/levels/city/common/nav-graph-h_REF.gc +++ b/test/decompiler/reference/jak2/levels/city/common/nav-graph-h_REF.gc @@ -84,7 +84,7 @@ (nav-node-method-11 (_type_ int) none 11) (nav-node-method-12 (_type_ vector nav-node) none 12) (nav-node-method-13 (_type_ vector) none 13) - (nav-node-method-14 (_type_ nav-node) none 14) + (nav-node-method-14 (_type_ vector) none 14) (nav-node-method-15 (_type_ uint) none 15) (nav-node-method-16 (_type_ float) none 16) (nav-node-method-17 (_type_ float) none 17) @@ -278,7 +278,7 @@ (nav-graph-method-24 (_type_ int int) none 24) (nav-graph-method-25 (_type_ symbol symbol) none 25) (nav-graph-method-26 (_type_ symbol symbol) none 26) - (nav-graph-method-27 (_type_) none 27) + (nav-graph-method-27 (_type_ nav-node-flag-byte nav-node-flag-byte symbol) none 27) (nav-graph-method-28 (_type_) none 28) (nav-graph-method-29 (_type_ symbol) none 29) (nav-graph-method-30 (_type_ uint) none 30) @@ -289,7 +289,7 @@ (nav-graph-method-35 (_type_ int) none 35) (nav-graph-method-36 (_type_ int) none 36) (nav-graph-method-37 (_type_ vector) none 37) - (nav-graph-method-38 () none 38) + (nav-graph-method-38 (_type_) none 38) (nav-graph-method-39 (_type_) none 39) (nav-graph-method-40 (_type_ int) int 40) (node-at-idx (_type_ int) nav-node 41) diff --git a/test/decompiler/reference/jak2/levels/city/common/traffic-height-map_REF.gc b/test/decompiler/reference/jak2/levels/city/common/traffic-height-map_REF.gc new file mode 100644 index 000000000..bac4a7513 --- /dev/null +++ b/test/decompiler/reference/jak2/levels/city/common/traffic-height-map_REF.gc @@ -0,0 +1,8978 @@ +;;-*-Lisp-*- +(in-package goal) + +;; definition for symbol *traffic-height-map*, type xz-height-map +(define *traffic-height-map* (new 'static 'xz-height-map + :offset (new 'static 'array float 3 -3178496.0 71680.0 -3178496.0) + :x-inv-spacing 0.000010172526 + :z-inv-spacing 0.000010172526 + :y-scale 4096.0 + :dim (new 'static 'array int16 2 80 #x70) + :data (new 'static 'array int8 8960 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 3 + 4 + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 3 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 3 + 4 + 2 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 0 + -3 + -2 + 0 + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 3 + 4 + 3 + 2 + 0 + 0 + 0 + 0 + 0 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 4 + 4 + 4 + 4 + 4 + 4 + 0 + 0 + -5 + -5 + -2 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 3 + 3 + 0 + 0 + 0 + 1 + 1 + 0 + 0 + 0 + 3 + 3 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 4 + 4 + 4 + 4 + 4 + 4 + 3 + -5 + -6 + -3 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 3 + 4 + 1 + 1 + 2 + 1 + 1 + 0 + 0 + 1 + 4 + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 4 + 4 + 4 + 4 + 4 + 4 + -5 + -5 + -4 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 3 + 2 + 1 + 0 + 1 + 2 + 2 + 2 + 4 + 3 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 4 + 4 + 4 + 4 + 4 + 4 + -4 + -5 + -4 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 4 + 4 + 2 + 2 + 2 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 4 + 4 + 4 + 4 + 4 + 4 + -1 + -5 + -4 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 4 + 3 + 2 + 0 + 0 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 4 + 4 + 4 + 4 + 4 + 4 + 1 + -5 + -5 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 1 + 0 + 2 + 4 + 5 + 4 + 4 + 0 + 0 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 4 + 4 + 4 + 4 + 4 + 4 + 1 + -5 + -6 + 0 + 0 + 0 + 1 + #x7 + #x6 + 3 + 0 + 3 + 4 + #x6 + #x6 + 5 + #x7 + 4 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 4 + 4 + 4 + 4 + 4 + 4 + 0 + -6 + -4 + 0 + 0 + 0 + 4 + #x9 + #x7 + 3 + 0 + 3 + 4 + 4 + 1 + 3 + 4 + 3 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 4 + 4 + 4 + 4 + 4 + 4 + 0 + -5 + -4 + 0 + 0 + 0 + 3 + 3 + 4 + 3 + 4 + 4 + 5 + 4 + 0 + 1 + 2 + 2 + 0 + 0 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 0 + -5 + -7 + -3 + 0 + 1 + 1 + 0 + 0 + 3 + 3 + 4 + 0 + 5 + 3 + 2 + 5 + #x8 + #x9 + 5 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 0 + 0 + -6 + -6 + -1 + 1 + 1 + 1 + 0 + 2 + 3 + 3 + #xa + #x6 + #x7 + 4 + 0 + #x6 + #xb + #xb + 4 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 0 + 0 + 0 + -5 + -5 + 0 + 1 + 1 + 4 + 3 + 4 + 2 + 0 + 5 + #x7 + #x6 + 3 + 0 + 3 + #x7 + #x8 + 5 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 3 + 2 + 3 + 5 + #x6 + 4 + 4 + 2 + 0 + 0 + 0 + 0 + 1 + 1 + 0 + #x9 + #x9 + 4 + 1 + 0 + 4 + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 5 + 5 + 5 + 4 + 4 + 4 + 4 + 0 + 1 + 0 + 0 + #x9 + #x8 + 4 + 3 + 2 + 2 + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 3 + 4 + 2 + 0 + 1 + 0 + 0 + 0 + 0 + 2 + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 0 + 1 + 2 + 1 + 0 + 0 + 3 + 5 + 5 + 1 + 0 + 0 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 0 + 0 + 0 + 0 + 0 + 3 + #x8 + #x9 + #xa + 4 + 0 + 0 + 4 + #x7 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 0 + 0 + 0 + 0 + 0 + 4 + #x8 + #xb + #xb + #x7 + 3 + 3 + #x8 + #xa + #x6 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 0 + 0 + 0 + 0 + 0 + 2 + #x7 + #xb + #xb + 3 + 3 + 3 + #x8 + #x9 + 4 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 5 + 5 + 4 + 3 + 0 + 2 + 4 + 4 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 4 + 5 + 3 + 0 + 0 + 1 + 4 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 3 + 3 + 2 + 0 + 0 + 1 + 3 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 3 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 4 + 5 + #x6 + 1 + 1 + 1 + 0 + #x7 + 5 + 0 + 0 + 2 + 0 + 0 + 0 + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + -4 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 5 + 5 + 4 + 2 + 0 + 4 + #xa + #x8 + 0 + 0 + 4 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + -4 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + #x6 + 5 + 4 + 0 + 0 + 5 + #x9 + #x6 + 0 + 2 + 4 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + -4 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + #x6 + #xa + 0 + 0 + 3 + 3 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 5 + 0 + 0 + 0 + 3 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 0 + 0 + 0 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 3 + 3 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 3 + 3 + 3 + 3 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 4 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 4 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 4 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + 0 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + 3 + 1 + 1 + 3 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + #x6 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + 3 + 0 + 0 + 3 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + 3 + 0 + 0 + 3 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + #x9 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + -3 + -3 + -3 + -4 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + -4 + -4 + -4 + -4 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + -3 + -4 + -4 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + -4 + -4 + -4 + -4 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + -3 + -3 + -3 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + -4 + -4 + -4 + -4 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + -3 + -3 + -3 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + -4 + -3 + -3 + -3 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + -3 + -3 + -3 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + -3 + -3 + -3 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + -1 + -3 + -3 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + -3 + -3 + 0 + 0 + 0 + 0 + -3 + -2 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + -2 + -3 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + -3 + -3 + 0 + 0 + 0 + 0 + -3 + -2 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + -1 + -3 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 4 + 4 + 4 + 4 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + -1 + -1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 2 + 4 + 4 + 0 + 0 + 0 + 0 + 0 + 0 + -1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 4 + #x8 + #x8 + 4 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 5 + #x6 + 3 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 4 + #x8 + #x8 + 4 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 4 + #x6 + 5 + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 4 + 4 + 4 + 4 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 0 + -1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + -2 + -2 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 2 + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 3 + 4 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 4 + #x7 + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 5 + #x7 + #x7 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 5 + #x6 + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + #x6 + #x6 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 4 + 5 + #x6 + #x6 + #x6 + #x6 + 5 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 4 + #x8 + #xa + #xa + #xa + #xa + #x6 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 5 + #x7 + #x9 + #x9 + #x9 + #x9 + #x6 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 2 + 2 + 2 + 2 + 2 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + ) + ) + ) + + + + diff --git a/test/decompiler/reference/jak2/levels/city/common/vehicle-h_REF.gc b/test/decompiler/reference/jak2/levels/city/common/vehicle-h_REF.gc index 32b026161..bd8d612de 100644 --- a/test/decompiler/reference/jak2/levels/city/common/vehicle-h_REF.gc +++ b/test/decompiler/reference/jak2/levels/city/common/vehicle-h_REF.gc @@ -455,9 +455,9 @@ (:methods (vehicle-controller-method-9 () none 9) (vehicle-controller-method-10 () none 10) - (vehicle-controller-method-11 () none 11) + (vehicle-controller-method-11 (_type_) none 11) (vehicle-controller-method-12 () none 12) - (vehicle-controller-method-13 () none 13) + (vehicle-controller-method-13 (_type_ nav-branch vector) none 13) (vehicle-controller-method-14 () none 14) (vehicle-controller-method-15 () none 15) (vehicle-controller-method-16 () none 16) diff --git a/test/decompiler/reference/jak2/levels/common/cty-guard-turret-button_REF.gc b/test/decompiler/reference/jak2/levels/common/cty-guard-turret-button_REF.gc new file mode 100644 index 000000000..a8a7919af --- /dev/null +++ b/test/decompiler/reference/jak2/levels/common/cty-guard-turret-button_REF.gc @@ -0,0 +1,189 @@ +;;-*-Lisp-*- +(in-package goal) + +;; failed to figure out what this is: +(let ((a0-0 (new 'static 'skeleton-group + :name "skel-cty-guard-turret-button" + :extra #f + :info #f + :art-group-name "cty-guard-turret-button" + :bounds (new 'static 'vector :w 12288.0) + :version #x7 + ) + ) + ) + (set! (-> a0-0 jgeo) 0) + (set! (-> a0-0 janim) 2) + (set! (-> a0-0 mgeo 0) 1) + (set! (-> a0-0 lod-dist 0) 4095996000.0) + (add-to-loading-level a0-0) + ) + +;; definition of type cty-guard-turret-button +(deftype cty-guard-turret-button (basebutton) + () + :heap-base #xa0 + :method-count-assert 40 + :size-assert #x120 + :flag-assert #x2800a00120 + (:methods + (pop-up () _type_ :state 39) + ) + ) + +;; definition for method 3 of type cty-guard-turret-button +(defmethod inspect cty-guard-turret-button ((obj cty-guard-turret-button)) + (when (not obj) + (set! obj obj) + (goto cfg-4) + ) + (let ((t9-0 (method-of-type basebutton inspect))) + (t9-0 obj) + ) + (label cfg-4) + obj + ) + +;; definition for method 33 of type cty-guard-turret-button +;; WARN: Return type mismatch int vs none. +(defmethod basebutton-method-33 cty-guard-turret-button ((obj cty-guard-turret-button)) + "TODO - joint stuff" + (initialize-skeleton + obj + (the-as + skeleton-group + (art-group-get-by-name *level* "skel-cty-guard-turret-button" (the-as (pointer uint32) #f)) + ) + (the-as pair 0) + ) + (ja-channel-set! 1) + (cond + ((logtest? (-> obj button-status) (button-status pressed)) + (let ((s5-1 (-> obj skel root-channel 0))) + (joint-control-channel-group-eval! + s5-1 + (the-as art-joint-anim (-> obj draw art-group data 2)) + num-func-identity + ) + (set! (-> s5-1 frame-num) + (the float (+ (-> (the-as art-joint-anim (-> obj draw art-group data 2)) frames num-frames) -1)) + ) + ) + ) + (else + (let ((s5-2 (-> obj skel root-channel 0))) + (joint-control-channel-group-eval! + s5-2 + (the-as art-joint-anim (-> obj draw art-group data 2)) + num-func-identity + ) + (set! (-> s5-2 frame-num) 0.0) + ) + ) + ) + (transform-post) + (none) + ) + +;; definition for method 34 of type cty-guard-turret-button +;; WARN: Return type mismatch collide-shape vs none. +(defmethod basebutton-method-34 cty-guard-turret-button ((obj cty-guard-turret-button)) + "TODO - collision stuff" + (let ((s5-0 (new 'process 'collide-shape obj (collide-list-enum hit-by-player)))) + (let ((s4-0 (new 'process 'collide-shape-prim-group s5-0 (the-as uint 2) 0))) + (set! (-> s5-0 total-prims) (the-as uint 3)) + (set! (-> s4-0 prim-core collide-as) (collide-spec pusher)) + (set! (-> s4-0 prim-core collide-with) (collide-spec jak enemy hit-by-others-list player-list)) + (set! (-> s4-0 prim-core action) (collide-action solid rideable)) + (set-vector! (-> s4-0 local-sphere) 0.0 0.0 0.0 12288.0) + (set! (-> s5-0 root-prim) s4-0) + ) + (collide-shape-method-54 s5-0) + (let ((v1-10 (new 'process 'collide-shape-prim-mesh s5-0 (the-as uint 0) (the-as uint 0)))) + (set! (-> v1-10 prim-core collide-as) (collide-spec pusher)) + (set! (-> v1-10 prim-core collide-with) (collide-spec jak bot enemy hit-by-others-list player-list)) + (set! (-> v1-10 prim-core action) (collide-action solid rideable)) + (set! (-> v1-10 transform-index) 3) + (set-vector! (-> v1-10 local-sphere) 0.0 0.0 0.0 12288.0) + ) + (let ((v1-12 (new 'process 'collide-shape-prim-mesh s5-0 (the-as uint 1) (the-as uint 0)))) + (set! (-> v1-12 prim-core collide-as) (collide-spec pusher)) + (set! (-> v1-12 prim-core collide-with) (collide-spec jak bot enemy hit-by-others-list player-list)) + (set! (-> v1-12 prim-core action) (collide-action solid rideable)) + (set! (-> v1-12 transform-index) 4) + (set-vector! (-> v1-12 local-sphere) 0.0 -2048.0 0.0 4096.0) + ) + (set! (-> s5-0 nav-radius) (* 0.75 (-> s5-0 root-prim local-sphere w))) + (let ((v1-15 (-> s5-0 root-prim))) + (set! (-> s5-0 backup-collide-as) (-> v1-15 prim-core collide-as)) + (set! (-> s5-0 backup-collide-with) (-> v1-15 prim-core collide-with)) + ) + (set! (-> obj root) s5-0) + ) + (none) + ) + +;; definition for method 35 of type cty-guard-turret-button +;; WARN: Return type mismatch symbol vs none. +(defmethod prepare-trigger-event! cty-guard-turret-button ((obj cty-guard-turret-button)) + "Sets `event-going-down` to `'trigger`" + (logior! (-> obj button-status) (button-status button-status-4)) + (set! (-> obj event-going-down) 'trigger) + (none) + ) + +;; failed to figure out what this is: +(defstate pop-up (cty-guard-turret-button) + :virtual #t + :code (behavior () + (ja-no-eval :group! (-> self draw art-group data 3) + :num! (seek! (the float (+ (-> (the-as art-joint-anim (-> self draw art-group data 3)) frames num-frames) -1)) 0.4) + :frame-num 0.0 + ) + (until (ja-done? 0) + (suspend) + (ja :num! (seek! max 0.4)) + ) + (ja :group! (-> self draw art-group data 2) :num! min) + (go-virtual up-idle) + (none) + ) + :post (behavior () + (rider-post) + (none) + ) + ) + +;; definition for method 32 of type cty-guard-turret-button +(defmethod idle-state-transition cty-guard-turret-button ((obj cty-guard-turret-button)) + "If `button-status` has [[button-status:0]] set, transition to [[basebutton::27]] otherwise, [[basebutton::30]]" + (draw-control-method-12 (-> obj draw) (the-as uint 0) -1) + (cond + ((logtest? (-> obj button-status) (button-status pressed)) + (format #t "off~%") + (draw-control-method-12 (-> obj draw) (the-as uint 4) 0) + (draw-control-method-12 (-> obj draw) (the-as uint 1) 0) + (go (method-of-object obj down-idle)) + ) + (else + (format #t "on~%") + (draw-control-method-12 (-> obj draw) (the-as uint 4) 0) + (draw-control-method-12 (-> obj draw) (the-as uint 2) 0) + (go (method-of-object obj pop-up)) + ) + ) + ) + +;; failed to figure out what this is: +(defstate going-down (cty-guard-turret-button) + :virtual #t + :enter (behavior () + (sound-play "gturret-button") + (format #t "going-down off~%") + (draw-control-method-12 (-> self draw) (the-as uint 0) -1) + (draw-control-method-12 (-> self draw) (the-as uint 4) 0) + (draw-control-method-12 (-> self draw) (the-as uint 1) 0) + (press! self #t) + (none) + ) + ) diff --git a/test/decompiler/reference/jak2/levels/common/races/race-h_REF.gc b/test/decompiler/reference/jak2/levels/common/races/race-h_REF.gc new file mode 100644 index 000000000..a64b4f237 --- /dev/null +++ b/test/decompiler/reference/jak2/levels/common/races/race-h_REF.gc @@ -0,0 +1,357 @@ +;;-*-Lisp-*- +(in-package goal) + +;; definition of type race-turbo-pad +(deftype race-turbo-pad (structure) + ((position vector :inline :offset-assert 0) + (handle uint64 :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x18 + :flag-assert #x900000018 + ) + +;; definition for method 3 of type race-turbo-pad +(defmethod inspect race-turbo-pad ((obj race-turbo-pad)) + (when (not obj) + (set! obj obj) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" obj 'race-turbo-pad) + (format #t "~1Tposition: #~%" (-> obj position)) + (format #t "~1Thandle: ~D~%" (-> obj handle)) + (label cfg-4) + obj + ) + +;; definition of type race-decision-point +(deftype race-decision-point (structure) + ((pos float :offset-assert 0) + (decision-type uint8 :offset-assert 4) + (shortcuts uint8 :offset-assert 5) + (safe-paths uint8 :offset-assert 6) + ) + :method-count-assert 9 + :size-assert #x7 + :flag-assert #x900000007 + ) + +;; definition for method 3 of type race-decision-point +(defmethod inspect race-decision-point ((obj race-decision-point)) + (when (not obj) + (set! obj obj) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" obj 'race-decision-point) + (format #t "~1Tpos: ~f~%" (-> obj pos)) + (format #t "~1Tdecision-type: ~D~%" (-> obj decision-type)) + (format #t "~1Tshortcuts: ~D~%" (-> obj shortcuts)) + (format #t "~1Tsafe-paths: ~D~%" (-> obj safe-paths)) + (label cfg-4) + obj + ) + +;; definition of type race-racer-info +(deftype race-racer-info (structure) + ((rider uint8 :offset-assert 0) + (vehicle uint8 :offset-assert 1) + (flags uint8 :offset-assert 2) + (seek-offset int8 :offset-assert 3) + ) + :method-count-assert 9 + :size-assert #x4 + :flag-assert #x900000004 + ) + +;; definition for method 3 of type race-racer-info +(defmethod inspect race-racer-info ((obj race-racer-info)) + (when (not obj) + (set! obj obj) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" obj 'race-racer-info) + (format #t "~1Trider: ~D~%" (-> obj rider)) + (format #t "~1Tvehicle: ~D~%" (-> obj vehicle)) + (format #t "~1Tflags: ~D~%" (-> obj flags)) + (format #t "~1Tseek-offset: ~D~%" (-> obj seek-offset)) + (label cfg-4) + obj + ) + +;; definition of type race-info +(deftype race-info (basic) + ((race-mesh-name string :offset-assert 4) + (path-group-name string :offset-assert 8) + (task-node uint16 :offset-assert 12) + (mesh basic :offset-assert 16) + (ai-min-speed-factor float :offset-assert 20) + (ai-max-speed-factor float :offset-assert 24) + (ai-spread-factor float :offset-assert 28) + (start-sphere sphere :inline :offset-assert 32) + (start-dir vector :inline :offset-assert 48) + (finish-sphere sphere :inline :offset-assert 64) + (finish-dir vector :inline :offset-assert 80) + (player-intro-pos vector :inline :offset-assert 96) + (flags uint8 :offset-assert 112) + (score uint8 :offset-assert 113) + (lap-count int8 :offset-assert 114) + (racer-count int8 :offset-assert 115) + (turbo-pad-count int8 :offset-assert 116) + (map-index int8 :offset-assert 117) + (decision-point-count int8 :offset-assert 118) + (safe-paths uint8 :offset-assert 119) + (turbo-pad-array (inline-array race-turbo-pad) :offset-assert 120) + (racer-array (inline-array race-racer-info) :offset-assert 124) + (decision-point-array (inline-array race-decision-point) :offset-assert 128) + (level symbol :offset-assert 132) + (borrow-level symbol :offset-assert 136) + (borrow pair :offset-assert 140) + (manager uint64 :offset-assert 144) + (manager-handle-init-hack basic :offset 144) + (hatch-actor-name string :offset-assert 152) + (countdown-scene basic :offset-assert 156) + (complete-continue basic :offset-assert 160) + (start-camera string :offset-assert 164) + (go-speech uint16 :offset-assert 168) + ) + :method-count-assert 10 + :size-assert #xaa + :flag-assert #xa000000aa + (:methods + (race-info-method-9 (_type_) none 9) + ) + ) + +;; definition for method 3 of type race-info +(defmethod inspect race-info ((obj race-info)) + (when (not obj) + (set! obj obj) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" obj (-> obj type)) + (format #t "~1Trace-mesh-name: ~A~%" (-> obj race-mesh-name)) + (format #t "~1Tpath-group-name: ~A~%" (-> obj path-group-name)) + (format #t "~1Ttask-node: ~D~%" (-> obj task-node)) + (format #t "~1Tmesh: ~A~%" (-> obj mesh)) + (format #t "~1Tai-min-speed-factor: ~f~%" (-> obj ai-min-speed-factor)) + (format #t "~1Tai-max-speed-factor: ~f~%" (-> obj ai-max-speed-factor)) + (format #t "~1Tai-spread-factor: ~f~%" (-> obj ai-spread-factor)) + (format #t "~1Tstart-sphere: #~%" (-> obj start-sphere)) + (format #t "~1Tstart-dir: #~%" (-> obj start-dir)) + (format #t "~1Tfinish-sphere: #~%" (-> obj finish-sphere)) + (format #t "~1Tfinish-dir: #~%" (-> obj finish-dir)) + (format #t "~1Tplayer-intro-pos: #~%" (-> obj player-intro-pos)) + (format #t "~1Tflags: ~D~%" (-> obj flags)) + (format #t "~1Tscore: ~D~%" (-> obj score)) + (format #t "~1Tlap-count: ~D~%" (-> obj lap-count)) + (format #t "~1Tracer-count: ~D~%" (-> obj racer-count)) + (format #t "~1Tturbo-pad-count: ~D~%" (-> obj turbo-pad-count)) + (format #t "~1Tmap-index: ~D~%" (-> obj map-index)) + (format #t "~1Tdecision-point-count: ~D~%" (-> obj decision-point-count)) + (format #t "~1Tsafe-paths: ~D~%" (-> obj safe-paths)) + (format #t "~1Tturbo-pad-array: #x~X~%" (-> obj turbo-pad-array)) + (format #t "~1Tracer-array: #x~X~%" (-> obj racer-array)) + (format #t "~1Tdecision-point-array: #x~X~%" (-> obj decision-point-array)) + (format #t "~1Tlevel: ~A~%" (-> obj level)) + (format #t "~1Tborrow-level: ~A~%" (-> obj borrow-level)) + (format #t "~1Tborrow: ~A~%" (-> obj borrow)) + (format #t "~1Tmanager: ~D~%" (-> obj manager)) + (format #t "~1Tmanager-handle-init-hack: ~A~%" (-> obj manager-handle-init-hack)) + (format #t "~1Thatch-actor-name: ~A~%" (-> obj hatch-actor-name)) + (format #t "~1Tcountdown-scene: ~A~%" (-> obj countdown-scene)) + (format #t "~1Tcomplete-continue: ~A~%" (-> obj complete-continue)) + (format #t "~1Tstart-camera: ~A~%" (-> obj start-camera)) + (format #t "~1Tgo-speech: ~D~%" (-> obj go-speech)) + (label cfg-4) + obj + ) + +;; definition of type racer-state +(deftype racer-state (structure) + ((position vector :inline :offset-assert 0) + (racer uint64 :offset-assert 16) + (flags uint8 :offset-assert 24) + (rank int8 :offset-assert 25) + (finish-count int8 :offset-assert 26) + (lap-count int8 :offset-assert 27) + (lap-quadrant int8 :offset-assert 28) + (rider uint8 :offset-assert 29) + (lap-distance float :offset-assert 32) + (lap-distance-prev float :offset-assert 36) + (pos float :offset-assert 40) + (target-pos-offset float :offset-assert 44) + (speed-factor float :offset-assert 48) + (finish-time uint32 :offset-assert 52) + (lap-start uint32 :offset-assert 56) + (best-lap-time uint32 :offset-assert 60) + (lap-time-array float 5 :offset-assert 64) + (start-position vector :inline :offset-assert 96) + ) + :method-count-assert 14 + :size-assert #x70 + :flag-assert #xe00000070 + (:methods + (racer-state-method-9 () none 9) + (racer-state-method-10 () none 10) + (racer-state-method-11 () none 11) + (racer-state-method-12 () none 12) + (racer-state-method-13 () none 13) + ) + ) + +;; definition for method 3 of type racer-state +(defmethod inspect racer-state ((obj racer-state)) + (when (not obj) + (set! obj obj) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" obj 'racer-state) + (format #t "~1Tposition: #~%" (-> obj position)) + (format #t "~1Tracer: ~D~%" (-> obj racer)) + (format #t "~1Tflags: ~D~%" (-> obj flags)) + (format #t "~1Trank: ~D~%" (-> obj rank)) + (format #t "~1Tfinish-count: ~D~%" (-> obj finish-count)) + (format #t "~1Tlap-count: ~D~%" (-> obj lap-count)) + (format #t "~1Tlap-quadrant: ~D~%" (-> obj lap-quadrant)) + (format #t "~1Trider: ~D~%" (-> obj rider)) + (format #t "~1Tlap-distance: ~f~%" (-> obj lap-distance)) + (format #t "~1Tlap-distance-prev: ~f~%" (-> obj lap-distance-prev)) + (format #t "~1Tpos: ~f~%" (-> obj pos)) + (format #t "~1Ttarget-pos-offset: ~f~%" (-> obj target-pos-offset)) + (format #t "~1Tspeed-factor: ~f~%" (-> obj speed-factor)) + (format #t "~1Tfinish-time: ~D~%" (-> obj finish-time)) + (format #t "~1Tlap-start: ~D~%" (-> obj lap-start)) + (format #t "~1Tbest-lap-time: ~D~%" (-> obj best-lap-time)) + (format #t "~1Tlap-time-array[5] @ #x~X~%" (-> obj lap-time-array)) + (format #t "~1Tstart-position: #~%" (-> obj start-position)) + (label cfg-4) + obj + ) + +;; definition of type race-state +(deftype race-state (structure) + ((info basic :offset-assert 0) + (flags uint8 :offset-assert 4) + (state uint8 :offset-assert 5) + (racer-count int8 :offset-assert 6) + (finished-count int8 :offset-assert 7) + (i-player int8 :offset-assert 8) + (i-countdown int8 :offset-assert 9) + (manager uint64 :offset-assert 16) + (scene-player uint64 :offset-assert 24) + (race-signal uint64 :offset-assert 32) + (arrow uint64 :offset-assert 40) + (hud-timer uint64 :offset-assert 48) + (hud-lap-counter uint64 :offset-assert 56) + (hud-turbo-counter uint64 :offset-assert 64) + (hud-position uint64 :offset-assert 72) + (current-time uint32 :offset-assert 80) + (countdown-start-time uint32 :offset-assert 84) + (race-start-time uint32 :offset-assert 88) + (rankings int8 10 :offset-assert 92) + (target-pos float :offset-assert 104) + (suck-factor float :offset-assert 108) + (racer-array racer-state 10 :inline :offset-assert 112) + (player-intro-curve cubic-curve :inline :offset-assert 1232) + ) + :method-count-assert 19 + :size-assert #x510 + :flag-assert #x1300000510 + (:methods + (race-state-method-9 () none 9) + (race-state-method-10 () none 10) + (race-state-method-11 () none 11) + (race-state-method-12 () none 12) + (race-state-method-13 () none 13) + (race-state-method-14 () none 14) + (race-state-method-15 () none 15) + (race-state-method-16 () none 16) + (race-state-method-17 () none 17) + (race-state-method-18 () none 18) + ) + ) + +;; definition for method 3 of type race-state +(defmethod inspect race-state ((obj race-state)) + (when (not obj) + (set! obj obj) + (goto cfg-4) + ) + (format #t "[~8x] ~A~%" obj 'race-state) + (format #t "~1Tinfo: ~A~%" (-> obj info)) + (format #t "~1Tflags: ~D~%" (-> obj flags)) + (format #t "~1Tstate: ~D~%" (-> obj state)) + (format #t "~1Tracer-count: ~D~%" (-> obj racer-count)) + (format #t "~1Tfinished-count: ~D~%" (-> obj finished-count)) + (format #t "~1Ti-player: ~D~%" (-> obj i-player)) + (format #t "~1Ti-countdown: ~D~%" (-> obj i-countdown)) + (format #t "~1Tmanager: #x~X~%" (-> obj manager)) + (format #t "~1Tscene-player: #x~X~%" (-> obj scene-player)) + (format #t "~1Trace-signal: #x~X~%" (-> obj race-signal)) + (format #t "~1Tarrow: #x~X~%" (-> obj arrow)) + (format #t "~1Thud-timer: #x~X~%" (-> obj hud-timer)) + (format #t "~1Thud-lap-counter: #x~X~%" (-> obj hud-lap-counter)) + (format #t "~1Thud-turbo-counter: #x~X~%" (-> obj hud-turbo-counter)) + (format #t "~1Thud-position: #x~X~%" (-> obj hud-position)) + (format #t "~1Tcurrent-time: ~D~%" (-> obj current-time)) + (format #t "~1Tcountdown-start-time: ~D~%" (-> obj countdown-start-time)) + (format #t "~1Trace-start-time: ~D~%" (-> obj race-start-time)) + (format #t "~1Trankings[10] @ #x~X~%" (-> obj rankings)) + (format #t "~1Ttarget-pos: ~f~%" (-> obj target-pos)) + (format #t "~1Tsuck-factor: ~f~%" (-> obj suck-factor)) + (format #t "~1Tracer-array[10] @ #x~X~%" (-> obj racer-array)) + (format #t "~1Tplayer-intro-curve: #~%" (-> obj player-intro-curve)) + (label cfg-4) + obj + ) + +;; definition of type race-manager +(deftype race-manager (process) + ((race-state race-state :offset-assert 128) + (state-time time-frame :offset-assert 136) + (player-on-track-time time-frame :offset-assert 144) + (message-id uint32 :offset-assert 152) + (finish-sound-id uint32 :offset-assert 156) + ) + :heap-base #x20 + :method-count-assert 28 + :size-assert #xa0 + :flag-assert #x1c002000a0 + (:methods + (idle () _type_ :state 14) + (active () _type_ :state 15) + (fail () _type_ :state 16) + (win () _type_ :state 17) + (lose () _type_ :state 18) + (die () _type_ :state 19) + (race-manager-method-20 () none 20) + (race-manager-method-21 () none 21) + (race-manager-method-22 () none 22) + (race-manager-method-23 () none 23) + (race-manager-method-24 () none 24) + (race-manager-method-25 () none 25) + (race-manager-method-26 () none 26) + (race-manager-method-27 () none 27) + ) + ) + +;; definition for method 3 of type race-manager +(defmethod inspect race-manager ((obj race-manager)) + (when (not obj) + (set! obj obj) + (goto cfg-4) + ) + (let ((t9-0 (method-of-type process inspect))) + (t9-0 obj) + ) + (format #t "~2Trace-state: #~%" (-> obj race-state)) + (format #t "~2Tstate-time: ~D~%" (-> obj state-time)) + (format #t "~2Tplayer-on-track-time: ~D~%" (-> obj player-on-track-time)) + (format #t "~2Tmessage-id: ~D~%" (-> obj message-id)) + (format #t "~2Tfinish-sound-id: ~D~%" (-> obj finish-sound-id)) + (label cfg-4) + obj + ) + +;; failed to figure out what this is: +0 diff --git a/test/decompiler/test_FormExpressionBuild.cpp b/test/decompiler/test_FormExpressionBuild.cpp index c7cd45fea..d8b2890cf 100644 --- a/test/decompiler/test_FormExpressionBuild.cpp +++ b/test/decompiler/test_FormExpressionBuild.cpp @@ -4,7 +4,7 @@ using namespace decompiler; -TEST_F(FormRegressionTestJak1, DraftExprIdentity) { +TEST_F(FormRegressionTestJak1, ExprIdentity) { std::string func = " sll r0, r0, 0\n" " or v0, a0, r0\n" diff --git a/test/offline/config/jak2/config.jsonc b/test/offline/config/jak2/config.jsonc index 46ee01372..c2b0096f7 100644 --- a/test/offline/config/jak2/config.jsonc +++ b/test/offline/config/jak2/config.jsonc @@ -4,7 +4,8 @@ "CGO/ENGINE.CGO", "CGO/COMMON.CGO", "CGO/GAME.CGO", - "DGO/CWI.DGO" + "DGO/CWI.DGO", + "DGO/STD.DGO" ], "skip_compile_files": [], @@ -138,6 +139,12 @@ "(method 28 game-info)", // todo "(method 29 game-info)", // todo + // rigid-body - CFG Failures + "(method 48 rigid-body-object)", + "(method 15 rigid-body)", + "(method 63 collide-shape-moving)", + "(method 67 collide-shape-moving)", + // mysql-nav-graph "(method 18 mysql-nav-graph)", // asm / dead-code "(method 10 mysql-nav-graph)",