From 07427799a6d9bf61ae027b2b62bc7d1a51e952e4 Mon Sep 17 00:00:00 2001 From: jabermony <748988+jabermony@users.noreply.github.com> Date: Tue, 16 Jan 2024 01:37:16 +0000 Subject: [PATCH] Jak3 Build Environment (#3098) This sets out the bones of a Jak 3 build, many things are stubbed out, guessed, or copied from Jak 2 but it should at least be good enough to: run `task set-game-jak3` launch the repl run builds from the repl build outputs themselves are untested but the build itself runs without errors --------- Co-authored-by: Tyler Wilding --- .prettierrc | 1 - .prettierrc.json | 11 + Taskfile.yml | 19 +- common/versions/versions.cpp | 11 +- decompiler/IR2/AtomicOpTypeAnalysis.cpp | 4 +- decompiler/IR2/ExpressionHelpers.cpp | 2 +- decompiler/IR2/Form.cpp | 2 +- decompiler/IR2/FormExpressionAnalysis.cpp | 10 +- .../ObjectFile/LinkedObjectFileCreation.cpp | 4 +- decompiler/ObjectFile/ObjectFileDB_IR2.cpp | 4 +- .../analysis/analyze_inspect_method.cpp | 19 +- decompiler/config/jak3/all-types.gc | 67019 +++++++++++++++- decompiler/config/jak3/jak3_config.jsonc | 9 + .../ntsc_v1/anonymous_function_types.jsonc | 2 +- decompiler/config/jak3/ntsc_v1/hacks.jsonc | 11 +- decompiler/config/jak3/ntsc_v1/inputs.jsonc | 4 +- .../config/jak3/ntsc_v1/label_types.jsonc | 2 +- .../jak3/ntsc_v1/stack_structures.jsonc | 2 +- .../config/jak3/ntsc_v1/type_casts.jsonc | 2 +- .../config/jak3/ntsc_v1/var_names.jsonc | 2 +- decompiler/types2/ForwardProp.cpp | 2 +- game/assets/jak3/game_subtitle.gp | 57 + game/assets/jak3/game_text.gp | 18 + .../jak3/subtitle/subtitle_lines_de-DE.json | 5 + .../jak3/subtitle/subtitle_lines_en-GB.json | 5 + .../jak3/subtitle/subtitle_lines_en-US.json | 5 + .../jak3/subtitle/subtitle_lines_es-ES.json | 5 + .../jak3/subtitle/subtitle_lines_fr-FR.json | 5 + .../jak3/subtitle/subtitle_lines_it-IT.json | 5 + .../jak3/subtitle/subtitle_lines_jp-JP.json | 5 + .../jak3/subtitle/subtitle_lines_ko-KR.json | 5 + .../jak3/subtitle/subtitle_meta_de-DE.json | 4 + .../jak3/subtitle/subtitle_meta_en-GB.json | 4 + .../jak3/subtitle/subtitle_meta_en-US.json | 4 + .../jak3/subtitle/subtitle_meta_es-ES.json | 4 + .../jak3/subtitle/subtitle_meta_fr-FR.json | 4 + .../jak3/subtitle/subtitle_meta_it-IT.json | 4 + .../jak3/subtitle/subtitle_meta_jp-JP.json | 4 + .../jak3/subtitle/subtitle_meta_ko-KR.json | 4 + .../jak3/text/game_custom_text_en-GB.json | 2 + .../jak3/text/game_custom_text_en-US.json | 2 + .../jak3/text/game_custom_text_ja-JP.json | 14 + goal_src/goal-lib.gc | 4 + goal_src/jak3/compiler-setup.gc | 37 + goal_src/jak3/dgos/arenacst.gd | 18 + goal_src/jak3/dgos/cfa.gd | 21 + goal_src/jak3/dgos/cfb.gd | 20 + goal_src/jak3/dgos/cgb.gd | 14 + goal_src/jak3/dgos/cia.gd | 15 + goal_src/jak3/dgos/cib.gd | 11 + goal_src/jak3/dgos/citycast.gd | 10 + goal_src/jak3/dgos/comba.gd | 50 + goal_src/jak3/dgos/combb.gd | 4 + goal_src/jak3/dgos/combc.gd | 4 + goal_src/jak3/dgos/combd.gd | 4 + goal_src/jak3/dgos/combe.gd | 4 + goal_src/jak3/dgos/combn.gd | 7 + goal_src/jak3/dgos/combx.gd | 13 + goal_src/jak3/dgos/cpo.gd | 16 + goal_src/jak3/dgos/cta.gd | 11 + goal_src/jak3/dgos/ctb.gd | 10 + goal_src/jak3/dgos/ctc.gd | 13 + goal_src/jak3/dgos/ctycara.gd | 7 + goal_src/jak3/dgos/ctycarb.gd | 7 + goal_src/jak3/dgos/ctycarc.gd | 6 + goal_src/jak3/dgos/ctycarkg.gd | 3 + goal_src/jak3/dgos/ctypepa.gd | 7 + goal_src/jak3/dgos/ctypepb.gd | 5 + goal_src/jak3/dgos/ctypepc.gd | 3 + goal_src/jak3/dgos/ctypesa.gd | 8 + goal_src/jak3/dgos/ctypesb.gd | 8 + goal_src/jak3/dgos/ctypesc.gd | 11 + goal_src/jak3/dgos/cwi.gd | 105 + goal_src/jak3/dgos/desa.gd | 7 + goal_src/jak3/dgos/desb.gd | 8 + goal_src/jak3/dgos/desbattl.gd | 21 + goal_src/jak3/dgos/desbcst.gd | 15 + goal_src/jak3/dgos/desboss1.gd | 23 + goal_src/jak3/dgos/desboss2.gd | 17 + goal_src/jak3/dgos/desc.gd | 5 + goal_src/jak3/dgos/deschase.gd | 21 + goal_src/jak3/dgos/desd.gd | 12 + goal_src/jak3/dgos/dese.gd | 5 + goal_src/jak3/dgos/deserrol.gd | 6 + goal_src/jak3/dgos/desf.gd | 10 + goal_src/jak3/dgos/desg.gd | 12 + goal_src/jak3/dgos/desh.gd | 5 + goal_src/jak3/dgos/deshover.gd | 23 + goal_src/jak3/dgos/deshunt.gd | 6 + goal_src/jak3/dgos/desinter.gd | 7 + goal_src/jak3/dgos/desjump.gd | 13 + goal_src/jak3/dgos/desliz.gd | 18 + goal_src/jak3/dgos/desoasis.gd | 26 + goal_src/jak3/dgos/desrace1.gd | 15 + goal_src/jak3/dgos/desrace2.gd | 8 + goal_src/jak3/dgos/desrally.gd | 20 + goal_src/jak3/dgos/desresc.gd | 51 + goal_src/jak3/dgos/desrescc.gd | 6 + goal_src/jak3/dgos/desrescg.gd | 8 + goal_src/jak3/dgos/destrack.gd | 26 + goal_src/jak3/dgos/desw.gd | 20 + goal_src/jak3/dgos/dst.gd | 24 + goal_src/jak3/dgos/facb.gd | 21 + goal_src/jak3/dgos/facc.gd | 40 + goal_src/jak3/dgos/facd.gd | 48 + goal_src/jak3/dgos/factorya.gd | 23 + goal_src/jak3/dgos/freecast.gd | 13 + goal_src/jak3/dgos/freehq.gd | 15 + goal_src/jak3/dgos/frsta.gd | 38 + goal_src/jak3/dgos/frstb.gd | 10 + goal_src/jak3/dgos/frstx.gd | 8 + goal_src/jak3/dgos/game.gd | 465 + goal_src/jak3/dgos/gga.gd | 24 + goal_src/jak3/dgos/gridcst.gd | 12 + goal_src/jak3/dgos/gungame1.gd | 5 + goal_src/jak3/dgos/gungame2.gd | 5 + goal_src/jak3/dgos/halfpipe.gd | 22 + goal_src/jak3/dgos/hga.gd | 60 + goal_src/jak3/dgos/hgb.gd | 4 + goal_src/jak3/dgos/hhg.gd | 14 + goal_src/jak3/dgos/intpalrf.gd | 6 + goal_src/jak3/dgos/introcst.gd | 22 + goal_src/jak3/dgos/inttitle.gd | 4 + goal_src/jak3/dgos/ipf.gd | 22 + goal_src/jak3/dgos/kernel.gd | 10 + goal_src/jak3/dgos/lashelin.gd | 5 + goal_src/jak3/dgos/lbbring1.gd | 6 + goal_src/jak3/dgos/lbbring2.gd | 6 + goal_src/jak3/dgos/lbbring3.gd | 6 + goal_src/jak3/dgos/lbbring4.gd | 6 + goal_src/jak3/dgos/lbbring5.gd | 6 + goal_src/jak3/dgos/lbbring6.gd | 6 + goal_src/jak3/dgos/lbbsdrp1.gd | 6 + goal_src/jak3/dgos/lbbsdrp2.gd | 6 + goal_src/jak3/dgos/lbbsdrp3.gd | 6 + goal_src/jak3/dgos/lbbspid.gd | 8 + goal_src/jak3/dgos/lbbspirt.gd | 5 + goal_src/jak3/dgos/lbbsprt2.gd | 5 + goal_src/jak3/dgos/lbbsprt3.gd | 5 + goal_src/jak3/dgos/lbbtcha1.gd | 7 + goal_src/jak3/dgos/lbbtcha2.gd | 7 + goal_src/jak3/dgos/lbbtcha3.gd | 7 + goal_src/jak3/dgos/lbiped.gd | 12 + goal_src/jak3/dgos/lblowcst.gd | 15 + goal_src/jak3/dgos/lblowtkg.gd | 9 + goal_src/jak3/dgos/lblowtmh.gd | 6 + goal_src/jak3/dgos/lbombbot.gd | 12 + goal_src/jak3/dgos/lcitysml.gd | 5 + goal_src/jak3/dgos/lctyass.gd | 11 + goal_src/jak3/dgos/lctyblow.gd | 18 + goal_src/jak3/dgos/lctydest.gd | 12 + goal_src/jak3/dgos/lctyhijk.gd | 16 + goal_src/jak3/dgos/lctypalt.gd | 14 + goal_src/jak3/dgos/lctypatk.gd | 13 + goal_src/jak3/dgos/lctyprot.gd | 14 + goal_src/jak3/dgos/lctysnpr.gd | 17 + goal_src/jak3/dgos/ldamklev.gd | 7 + goal_src/jak3/dgos/ldampeck.gd | 7 + goal_src/jak3/dgos/ldampksm.gd | 8 + goal_src/jak3/dgos/ldamsig.gd | 7 + goal_src/jak3/dgos/ldax.gd | 5 + goal_src/jak3/dgos/ldesgcst.gd | 9 + goal_src/jak3/dgos/ldmpckgn.gd | 8 + goal_src/jak3/dgos/lerrol.gd | 3 + goal_src/jak3/dgos/lfacb.gd | 6 + goal_src/jak3/dgos/lfaccar.gd | 50 + goal_src/jak3/dgos/lfaccity.gd | 6 + goal_src/jak3/dgos/lfaco.gd | 5 + goal_src/jak3/dgos/lfacrm1.gd | 8 + goal_src/jak3/dgos/lfacrm2.gd | 13 + goal_src/jak3/dgos/lfactory.gd | 48 + goal_src/jak3/dgos/lform.gd | 39 + goal_src/jak3/dgos/lforp.gd | 12 + goal_src/jak3/dgos/lforring.gd | 4 + goal_src/jak3/dgos/lfreeout.gd | 4 + goal_src/jak3/dgos/lgunnorm.gd | 15 + goal_src/jak3/dgos/lgunrnc.gd | 11 + goal_src/jak3/dgos/ljak.gd | 5 + goal_src/jak3/dgos/ljakc.gd | 6 + goal_src/jak3/dgos/ljakcklv.gd | 6 + goal_src/jak3/dgos/ljakklev.gd | 6 + goal_src/jak3/dgos/ljakndax.gd | 6 + goal_src/jak3/dgos/ljaksig.gd | 8 + goal_src/jak3/dgos/ljinx.gd | 9 + goal_src/jak3/dgos/ljkcdmkl.gd | 8 + goal_src/jak3/dgos/ljkdmpk.gd | 8 + goal_src/jak3/dgos/ljkdxvin.gd | 9 + goal_src/jak3/dgos/ljkfeet.gd | 5 + goal_src/jak3/dgos/ljndklev.gd | 7 + goal_src/jak3/dgos/lkeira.gd | 6 + goal_src/jak3/dgos/lkleever.gd | 5 + goal_src/jak3/dgos/lmech.gd | 10 + goal_src/jak3/dgos/lmhca.gd | 4 + goal_src/jak3/dgos/lmhcb.gd | 4 + goal_src/jak3/dgos/lnstcst.gd | 11 + goal_src/jak3/dgos/lnstoa.gd | 12 + goal_src/jak3/dgos/lnstobb.gd | 10 + goal_src/jak3/dgos/lnstobc.gd | 3 + goal_src/jak3/dgos/loninsim.gd | 5 + goal_src/jak3/dgos/loutro.gd | 11 + goal_src/jak3/dgos/loutro2.gd | 10 + goal_src/jak3/dgos/loutro3.gd | 7 + goal_src/jak3/dgos/lpatk.gd | 73 + goal_src/jak3/dgos/lpatkcs.gd | 9 + goal_src/jak3/dgos/lprecc.gd | 10 + goal_src/jak3/dgos/lprenme.gd | 9 + goal_src/jak3/dgos/lptrl.gd | 12 + goal_src/jak3/dgos/lsamos.gd | 5 + goal_src/jak3/dgos/lseemwca.gd | 5 + goal_src/jak3/dgos/lsig.gd | 6 + goal_src/jak3/dgos/lsigjakc.gd | 8 + goal_src/jak3/dgos/lsigklv.gd | 8 + goal_src/jak3/dgos/lsnkwhls.gd | 5 + goal_src/jak3/dgos/ltnfxhip.gd | 10 + goal_src/jak3/dgos/ltnjxhip.gd | 11 + goal_src/jak3/dgos/ltorn.gd | 5 + goal_src/jak3/dgos/ltornjnx.gd | 6 + goal_src/jak3/dgos/ltornsam.gd | 6 + goal_src/jak3/dgos/ltowa.gd | 12 + goal_src/jak3/dgos/ltowb.gd | 18 + goal_src/jak3/dgos/ltowcity.gd | 5 + goal_src/jak3/dgos/ltrtwhls.gd | 5 + goal_src/jak3/dgos/lvincst.gd | 12 + goal_src/jak3/dgos/lwasbbv.gd | 4 + goal_src/jak3/dgos/lwassig.gd | 12 + goal_src/jak3/dgos/lwlandm.gd | 6 + goal_src/jak3/dgos/lwstdpck.gd | 6 + goal_src/jak3/dgos/mhca.gd | 23 + goal_src/jak3/dgos/mhcb.gd | 21 + goal_src/jak3/dgos/mhctycst.gd | 9 + goal_src/jak3/dgos/mia.gd | 33 + goal_src/jak3/dgos/mib.gd | 22 + goal_src/jak3/dgos/mic.gd | 19 + goal_src/jak3/dgos/mined.gd | 38 + goal_src/jak3/dgos/minee.gd | 11 + goal_src/jak3/dgos/museum.gd | 17 + goal_src/jak3/dgos/museum2.gd | 18 + goal_src/jak3/dgos/museum3.gd | 14 + goal_src/jak3/dgos/museum3b.gd | 12 + goal_src/jak3/dgos/museum4.gd | 28 + goal_src/jak3/dgos/museum4b.gd | 5 + goal_src/jak3/dgos/nsa.gd | 16 + goal_src/jak3/dgos/nsb.gd | 13 + goal_src/jak3/dgos/oasiscst.gd | 11 + goal_src/jak3/dgos/onintent.gd | 15 + goal_src/jak3/dgos/outcast3.gd | 7 + goal_src/jak3/dgos/outrocst.gd | 13 + goal_src/jak3/dgos/powergd.gd | 15 + goal_src/jak3/dgos/preca.gd | 43 + goal_src/jak3/dgos/precb.gd | 15 + goal_src/jak3/dgos/precc.gd | 15 + goal_src/jak3/dgos/precd.gd | 53 + goal_src/jak3/dgos/raila.gd | 42 + goal_src/jak3/dgos/railb.gd | 4 + goal_src/jak3/dgos/railb2.gd | 4 + goal_src/jak3/dgos/railc.gd | 4 + goal_src/jak3/dgos/railcst.gd | 24 + goal_src/jak3/dgos/raild.gd | 6 + goal_src/jak3/dgos/raile.gd | 8 + goal_src/jak3/dgos/railf.gd | 4 + goal_src/jak3/dgos/railx.gd | 11 + goal_src/jak3/dgos/rbct.gd | 17 + goal_src/jak3/dgos/ruba.gd | 17 + goal_src/jak3/dgos/ruba2.gd | 9 + goal_src/jak3/dgos/rubb.gd | 11 + goal_src/jak3/dgos/rubc.gd | 10 + goal_src/jak3/dgos/sea.gd | 56 + goal_src/jak3/dgos/seb.gd | 13 + goal_src/jak3/dgos/sec.gd | 13 + goal_src/jak3/dgos/sed.gd | 19 + goal_src/jak3/dgos/see.gd | 13 + goal_src/jak3/dgos/sef.gd | 11 + goal_src/jak3/dgos/seg.gd | 14 + goal_src/jak3/dgos/seh.gd | 17 + goal_src/jak3/dgos/sei.gd | 12 + goal_src/jak3/dgos/sej.gd | 11 + goal_src/jak3/dgos/sek.gd | 9 + goal_src/jak3/dgos/sel.gd | 10 + goal_src/jak3/dgos/sem.gd | 12 + goal_src/jak3/dgos/sen.gd | 12 + goal_src/jak3/dgos/seo.gd | 9 + goal_src/jak3/dgos/slumbset.gd | 11 + goal_src/jak3/dgos/sta.gd | 11 + goal_src/jak3/dgos/staa.gd | 24 + goal_src/jak3/dgos/stb.gd | 9 + goal_src/jak3/dgos/tema.gd | 61 + goal_src/jak3/dgos/temb.gd | 17 + goal_src/jak3/dgos/temc.gd | 11 + goal_src/jak3/dgos/temd.gd | 16 + goal_src/jak3/dgos/temp.gd | 5 + goal_src/jak3/dgos/templee.gd | 6 + goal_src/jak3/dgos/temx.gd | 15 + goal_src/jak3/dgos/title.gd | 22 + goal_src/jak3/dgos/towb.gd | 14 + goal_src/jak3/dgos/towera.gd | 31 + goal_src/jak3/dgos/towerc.gd | 7 + goal_src/jak3/dgos/towercst.gd | 20 + goal_src/jak3/dgos/vin.gd | 14 + goal_src/jak3/dgos/voca.gd | 56 + goal_src/jak3/dgos/vocx.gd | 30 + goal_src/jak3/dgos/warpcast.gd | 7 + goal_src/jak3/dgos/wasall.gd | 62 + goal_src/jak3/dgos/wascast.gd | 13 + goal_src/jak3/dgos/waschase.gd | 8 + goal_src/jak3/dgos/wasdefen.gd | 8 + goal_src/jak3/dgos/wasleapr.gd | 19 + goal_src/jak3/dgos/waspala.gd | 26 + goal_src/jak3/dgos/waspgame.gd | 10 + goal_src/jak3/dgos/wasseem.gd | 14 + goal_src/jak3/dgos/wasstada.gd | 21 + goal_src/jak3/dgos/wasstadb.gd | 14 + goal_src/jak3/dgos/wasstadc.gd | 22 + goal_src/jak3/dgos/wca.gd | 26 + goal_src/jak3/dgos/wcaseem.gd | 5 + goal_src/jak3/dgos/wcb.gd | 40 + goal_src/jak3/dgos/win.gd | 22 + goal_src/jak3/dgos/wsd.gd | 15 + goal_src/jak3/dgos/wwd.gd | 68 + goal_src/jak3/game.gp | 492 + goal_src/jak3/kernel-defs.gc | 338 + goal_src/jak3/lib/project-lib.gp | 233 + goalc/emitter/ObjectGenerator.cpp | 4 + .../skeleton_creation/generate_dgo_files.py | 21 +- scripts/tasks/update-env.py | 3 +- 324 files changed, 72465 insertions(+), 387 deletions(-) delete mode 100644 .prettierrc create mode 100644 .prettierrc.json create mode 100644 game/assets/jak3/game_subtitle.gp create mode 100644 game/assets/jak3/game_text.gp create mode 100644 game/assets/jak3/subtitle/subtitle_lines_de-DE.json create mode 100644 game/assets/jak3/subtitle/subtitle_lines_en-GB.json create mode 100644 game/assets/jak3/subtitle/subtitle_lines_en-US.json create mode 100644 game/assets/jak3/subtitle/subtitle_lines_es-ES.json create mode 100644 game/assets/jak3/subtitle/subtitle_lines_fr-FR.json create mode 100644 game/assets/jak3/subtitle/subtitle_lines_it-IT.json create mode 100644 game/assets/jak3/subtitle/subtitle_lines_jp-JP.json create mode 100644 game/assets/jak3/subtitle/subtitle_lines_ko-KR.json create mode 100644 game/assets/jak3/subtitle/subtitle_meta_de-DE.json create mode 100644 game/assets/jak3/subtitle/subtitle_meta_en-GB.json create mode 100644 game/assets/jak3/subtitle/subtitle_meta_en-US.json create mode 100644 game/assets/jak3/subtitle/subtitle_meta_es-ES.json create mode 100644 game/assets/jak3/subtitle/subtitle_meta_fr-FR.json create mode 100644 game/assets/jak3/subtitle/subtitle_meta_it-IT.json create mode 100644 game/assets/jak3/subtitle/subtitle_meta_jp-JP.json create mode 100644 game/assets/jak3/subtitle/subtitle_meta_ko-KR.json create mode 100644 game/assets/jak3/text/game_custom_text_en-GB.json create mode 100644 game/assets/jak3/text/game_custom_text_en-US.json create mode 100644 game/assets/jak3/text/game_custom_text_ja-JP.json create mode 100644 goal_src/jak3/compiler-setup.gc create mode 100644 goal_src/jak3/dgos/arenacst.gd create mode 100644 goal_src/jak3/dgos/cfa.gd create mode 100644 goal_src/jak3/dgos/cfb.gd create mode 100644 goal_src/jak3/dgos/cgb.gd create mode 100644 goal_src/jak3/dgos/cia.gd create mode 100644 goal_src/jak3/dgos/cib.gd create mode 100644 goal_src/jak3/dgos/citycast.gd create mode 100644 goal_src/jak3/dgos/comba.gd create mode 100644 goal_src/jak3/dgos/combb.gd create mode 100644 goal_src/jak3/dgos/combc.gd create mode 100644 goal_src/jak3/dgos/combd.gd create mode 100644 goal_src/jak3/dgos/combe.gd create mode 100644 goal_src/jak3/dgos/combn.gd create mode 100644 goal_src/jak3/dgos/combx.gd create mode 100644 goal_src/jak3/dgos/cpo.gd create mode 100644 goal_src/jak3/dgos/cta.gd create mode 100644 goal_src/jak3/dgos/ctb.gd create mode 100644 goal_src/jak3/dgos/ctc.gd create mode 100644 goal_src/jak3/dgos/ctycara.gd create mode 100644 goal_src/jak3/dgos/ctycarb.gd create mode 100644 goal_src/jak3/dgos/ctycarc.gd create mode 100644 goal_src/jak3/dgos/ctycarkg.gd create mode 100644 goal_src/jak3/dgos/ctypepa.gd create mode 100644 goal_src/jak3/dgos/ctypepb.gd create mode 100644 goal_src/jak3/dgos/ctypepc.gd create mode 100644 goal_src/jak3/dgos/ctypesa.gd create mode 100644 goal_src/jak3/dgos/ctypesb.gd create mode 100644 goal_src/jak3/dgos/ctypesc.gd create mode 100644 goal_src/jak3/dgos/cwi.gd create mode 100644 goal_src/jak3/dgos/desa.gd create mode 100644 goal_src/jak3/dgos/desb.gd create mode 100644 goal_src/jak3/dgos/desbattl.gd create mode 100644 goal_src/jak3/dgos/desbcst.gd create mode 100644 goal_src/jak3/dgos/desboss1.gd create mode 100644 goal_src/jak3/dgos/desboss2.gd create mode 100644 goal_src/jak3/dgos/desc.gd create mode 100644 goal_src/jak3/dgos/deschase.gd create mode 100644 goal_src/jak3/dgos/desd.gd create mode 100644 goal_src/jak3/dgos/dese.gd create mode 100644 goal_src/jak3/dgos/deserrol.gd create mode 100644 goal_src/jak3/dgos/desf.gd create mode 100644 goal_src/jak3/dgos/desg.gd create mode 100644 goal_src/jak3/dgos/desh.gd create mode 100644 goal_src/jak3/dgos/deshover.gd create mode 100644 goal_src/jak3/dgos/deshunt.gd create mode 100644 goal_src/jak3/dgos/desinter.gd create mode 100644 goal_src/jak3/dgos/desjump.gd create mode 100644 goal_src/jak3/dgos/desliz.gd create mode 100644 goal_src/jak3/dgos/desoasis.gd create mode 100644 goal_src/jak3/dgos/desrace1.gd create mode 100644 goal_src/jak3/dgos/desrace2.gd create mode 100644 goal_src/jak3/dgos/desrally.gd create mode 100644 goal_src/jak3/dgos/desresc.gd create mode 100644 goal_src/jak3/dgos/desrescc.gd create mode 100644 goal_src/jak3/dgos/desrescg.gd create mode 100644 goal_src/jak3/dgos/destrack.gd create mode 100644 goal_src/jak3/dgos/desw.gd create mode 100644 goal_src/jak3/dgos/dst.gd create mode 100644 goal_src/jak3/dgos/facb.gd create mode 100644 goal_src/jak3/dgos/facc.gd create mode 100644 goal_src/jak3/dgos/facd.gd create mode 100644 goal_src/jak3/dgos/factorya.gd create mode 100644 goal_src/jak3/dgos/freecast.gd create mode 100644 goal_src/jak3/dgos/freehq.gd create mode 100644 goal_src/jak3/dgos/frsta.gd create mode 100644 goal_src/jak3/dgos/frstb.gd create mode 100644 goal_src/jak3/dgos/frstx.gd create mode 100644 goal_src/jak3/dgos/game.gd create mode 100644 goal_src/jak3/dgos/gga.gd create mode 100644 goal_src/jak3/dgos/gridcst.gd create mode 100644 goal_src/jak3/dgos/gungame1.gd create mode 100644 goal_src/jak3/dgos/gungame2.gd create mode 100644 goal_src/jak3/dgos/halfpipe.gd create mode 100644 goal_src/jak3/dgos/hga.gd create mode 100644 goal_src/jak3/dgos/hgb.gd create mode 100644 goal_src/jak3/dgos/hhg.gd create mode 100644 goal_src/jak3/dgos/intpalrf.gd create mode 100644 goal_src/jak3/dgos/introcst.gd create mode 100644 goal_src/jak3/dgos/inttitle.gd create mode 100644 goal_src/jak3/dgos/ipf.gd create mode 100644 goal_src/jak3/dgos/kernel.gd create mode 100644 goal_src/jak3/dgos/lashelin.gd create mode 100644 goal_src/jak3/dgos/lbbring1.gd create mode 100644 goal_src/jak3/dgos/lbbring2.gd create mode 100644 goal_src/jak3/dgos/lbbring3.gd create mode 100644 goal_src/jak3/dgos/lbbring4.gd create mode 100644 goal_src/jak3/dgos/lbbring5.gd create mode 100644 goal_src/jak3/dgos/lbbring6.gd create mode 100644 goal_src/jak3/dgos/lbbsdrp1.gd create mode 100644 goal_src/jak3/dgos/lbbsdrp2.gd create mode 100644 goal_src/jak3/dgos/lbbsdrp3.gd create mode 100644 goal_src/jak3/dgos/lbbspid.gd create mode 100644 goal_src/jak3/dgos/lbbspirt.gd create mode 100644 goal_src/jak3/dgos/lbbsprt2.gd create mode 100644 goal_src/jak3/dgos/lbbsprt3.gd create mode 100644 goal_src/jak3/dgos/lbbtcha1.gd create mode 100644 goal_src/jak3/dgos/lbbtcha2.gd create mode 100644 goal_src/jak3/dgos/lbbtcha3.gd create mode 100644 goal_src/jak3/dgos/lbiped.gd create mode 100644 goal_src/jak3/dgos/lblowcst.gd create mode 100644 goal_src/jak3/dgos/lblowtkg.gd create mode 100644 goal_src/jak3/dgos/lblowtmh.gd create mode 100644 goal_src/jak3/dgos/lbombbot.gd create mode 100644 goal_src/jak3/dgos/lcitysml.gd create mode 100644 goal_src/jak3/dgos/lctyass.gd create mode 100644 goal_src/jak3/dgos/lctyblow.gd create mode 100644 goal_src/jak3/dgos/lctydest.gd create mode 100644 goal_src/jak3/dgos/lctyhijk.gd create mode 100644 goal_src/jak3/dgos/lctypalt.gd create mode 100644 goal_src/jak3/dgos/lctypatk.gd create mode 100644 goal_src/jak3/dgos/lctyprot.gd create mode 100644 goal_src/jak3/dgos/lctysnpr.gd create mode 100644 goal_src/jak3/dgos/ldamklev.gd create mode 100644 goal_src/jak3/dgos/ldampeck.gd create mode 100644 goal_src/jak3/dgos/ldampksm.gd create mode 100644 goal_src/jak3/dgos/ldamsig.gd create mode 100644 goal_src/jak3/dgos/ldax.gd create mode 100644 goal_src/jak3/dgos/ldesgcst.gd create mode 100644 goal_src/jak3/dgos/ldmpckgn.gd create mode 100644 goal_src/jak3/dgos/lerrol.gd create mode 100644 goal_src/jak3/dgos/lfacb.gd create mode 100644 goal_src/jak3/dgos/lfaccar.gd create mode 100644 goal_src/jak3/dgos/lfaccity.gd create mode 100644 goal_src/jak3/dgos/lfaco.gd create mode 100644 goal_src/jak3/dgos/lfacrm1.gd create mode 100644 goal_src/jak3/dgos/lfacrm2.gd create mode 100644 goal_src/jak3/dgos/lfactory.gd create mode 100644 goal_src/jak3/dgos/lform.gd create mode 100644 goal_src/jak3/dgos/lforp.gd create mode 100644 goal_src/jak3/dgos/lforring.gd create mode 100644 goal_src/jak3/dgos/lfreeout.gd create mode 100644 goal_src/jak3/dgos/lgunnorm.gd create mode 100644 goal_src/jak3/dgos/lgunrnc.gd create mode 100644 goal_src/jak3/dgos/ljak.gd create mode 100644 goal_src/jak3/dgos/ljakc.gd create mode 100644 goal_src/jak3/dgos/ljakcklv.gd create mode 100644 goal_src/jak3/dgos/ljakklev.gd create mode 100644 goal_src/jak3/dgos/ljakndax.gd create mode 100644 goal_src/jak3/dgos/ljaksig.gd create mode 100644 goal_src/jak3/dgos/ljinx.gd create mode 100644 goal_src/jak3/dgos/ljkcdmkl.gd create mode 100644 goal_src/jak3/dgos/ljkdmpk.gd create mode 100644 goal_src/jak3/dgos/ljkdxvin.gd create mode 100644 goal_src/jak3/dgos/ljkfeet.gd create mode 100644 goal_src/jak3/dgos/ljndklev.gd create mode 100644 goal_src/jak3/dgos/lkeira.gd create mode 100644 goal_src/jak3/dgos/lkleever.gd create mode 100644 goal_src/jak3/dgos/lmech.gd create mode 100644 goal_src/jak3/dgos/lmhca.gd create mode 100644 goal_src/jak3/dgos/lmhcb.gd create mode 100644 goal_src/jak3/dgos/lnstcst.gd create mode 100644 goal_src/jak3/dgos/lnstoa.gd create mode 100644 goal_src/jak3/dgos/lnstobb.gd create mode 100644 goal_src/jak3/dgos/lnstobc.gd create mode 100644 goal_src/jak3/dgos/loninsim.gd create mode 100644 goal_src/jak3/dgos/loutro.gd create mode 100644 goal_src/jak3/dgos/loutro2.gd create mode 100644 goal_src/jak3/dgos/loutro3.gd create mode 100644 goal_src/jak3/dgos/lpatk.gd create mode 100644 goal_src/jak3/dgos/lpatkcs.gd create mode 100644 goal_src/jak3/dgos/lprecc.gd create mode 100644 goal_src/jak3/dgos/lprenme.gd create mode 100644 goal_src/jak3/dgos/lptrl.gd create mode 100644 goal_src/jak3/dgos/lsamos.gd create mode 100644 goal_src/jak3/dgos/lseemwca.gd create mode 100644 goal_src/jak3/dgos/lsig.gd create mode 100644 goal_src/jak3/dgos/lsigjakc.gd create mode 100644 goal_src/jak3/dgos/lsigklv.gd create mode 100644 goal_src/jak3/dgos/lsnkwhls.gd create mode 100644 goal_src/jak3/dgos/ltnfxhip.gd create mode 100644 goal_src/jak3/dgos/ltnjxhip.gd create mode 100644 goal_src/jak3/dgos/ltorn.gd create mode 100644 goal_src/jak3/dgos/ltornjnx.gd create mode 100644 goal_src/jak3/dgos/ltornsam.gd create mode 100644 goal_src/jak3/dgos/ltowa.gd create mode 100644 goal_src/jak3/dgos/ltowb.gd create mode 100644 goal_src/jak3/dgos/ltowcity.gd create mode 100644 goal_src/jak3/dgos/ltrtwhls.gd create mode 100644 goal_src/jak3/dgos/lvincst.gd create mode 100644 goal_src/jak3/dgos/lwasbbv.gd create mode 100644 goal_src/jak3/dgos/lwassig.gd create mode 100644 goal_src/jak3/dgos/lwlandm.gd create mode 100644 goal_src/jak3/dgos/lwstdpck.gd create mode 100644 goal_src/jak3/dgos/mhca.gd create mode 100644 goal_src/jak3/dgos/mhcb.gd create mode 100644 goal_src/jak3/dgos/mhctycst.gd create mode 100644 goal_src/jak3/dgos/mia.gd create mode 100644 goal_src/jak3/dgos/mib.gd create mode 100644 goal_src/jak3/dgos/mic.gd create mode 100644 goal_src/jak3/dgos/mined.gd create mode 100644 goal_src/jak3/dgos/minee.gd create mode 100644 goal_src/jak3/dgos/museum.gd create mode 100644 goal_src/jak3/dgos/museum2.gd create mode 100644 goal_src/jak3/dgos/museum3.gd create mode 100644 goal_src/jak3/dgos/museum3b.gd create mode 100644 goal_src/jak3/dgos/museum4.gd create mode 100644 goal_src/jak3/dgos/museum4b.gd create mode 100644 goal_src/jak3/dgos/nsa.gd create mode 100644 goal_src/jak3/dgos/nsb.gd create mode 100644 goal_src/jak3/dgos/oasiscst.gd create mode 100644 goal_src/jak3/dgos/onintent.gd create mode 100644 goal_src/jak3/dgos/outcast3.gd create mode 100644 goal_src/jak3/dgos/outrocst.gd create mode 100644 goal_src/jak3/dgos/powergd.gd create mode 100644 goal_src/jak3/dgos/preca.gd create mode 100644 goal_src/jak3/dgos/precb.gd create mode 100644 goal_src/jak3/dgos/precc.gd create mode 100644 goal_src/jak3/dgos/precd.gd create mode 100644 goal_src/jak3/dgos/raila.gd create mode 100644 goal_src/jak3/dgos/railb.gd create mode 100644 goal_src/jak3/dgos/railb2.gd create mode 100644 goal_src/jak3/dgos/railc.gd create mode 100644 goal_src/jak3/dgos/railcst.gd create mode 100644 goal_src/jak3/dgos/raild.gd create mode 100644 goal_src/jak3/dgos/raile.gd create mode 100644 goal_src/jak3/dgos/railf.gd create mode 100644 goal_src/jak3/dgos/railx.gd create mode 100644 goal_src/jak3/dgos/rbct.gd create mode 100644 goal_src/jak3/dgos/ruba.gd create mode 100644 goal_src/jak3/dgos/ruba2.gd create mode 100644 goal_src/jak3/dgos/rubb.gd create mode 100644 goal_src/jak3/dgos/rubc.gd create mode 100644 goal_src/jak3/dgos/sea.gd create mode 100644 goal_src/jak3/dgos/seb.gd create mode 100644 goal_src/jak3/dgos/sec.gd create mode 100644 goal_src/jak3/dgos/sed.gd create mode 100644 goal_src/jak3/dgos/see.gd create mode 100644 goal_src/jak3/dgos/sef.gd create mode 100644 goal_src/jak3/dgos/seg.gd create mode 100644 goal_src/jak3/dgos/seh.gd create mode 100644 goal_src/jak3/dgos/sei.gd create mode 100644 goal_src/jak3/dgos/sej.gd create mode 100644 goal_src/jak3/dgos/sek.gd create mode 100644 goal_src/jak3/dgos/sel.gd create mode 100644 goal_src/jak3/dgos/sem.gd create mode 100644 goal_src/jak3/dgos/sen.gd create mode 100644 goal_src/jak3/dgos/seo.gd create mode 100644 goal_src/jak3/dgos/slumbset.gd create mode 100644 goal_src/jak3/dgos/sta.gd create mode 100644 goal_src/jak3/dgos/staa.gd create mode 100644 goal_src/jak3/dgos/stb.gd create mode 100644 goal_src/jak3/dgos/tema.gd create mode 100644 goal_src/jak3/dgos/temb.gd create mode 100644 goal_src/jak3/dgos/temc.gd create mode 100644 goal_src/jak3/dgos/temd.gd create mode 100644 goal_src/jak3/dgos/temp.gd create mode 100644 goal_src/jak3/dgos/templee.gd create mode 100644 goal_src/jak3/dgos/temx.gd create mode 100644 goal_src/jak3/dgos/title.gd create mode 100644 goal_src/jak3/dgos/towb.gd create mode 100644 goal_src/jak3/dgos/towera.gd create mode 100644 goal_src/jak3/dgos/towerc.gd create mode 100644 goal_src/jak3/dgos/towercst.gd create mode 100644 goal_src/jak3/dgos/vin.gd create mode 100644 goal_src/jak3/dgos/voca.gd create mode 100644 goal_src/jak3/dgos/vocx.gd create mode 100644 goal_src/jak3/dgos/warpcast.gd create mode 100644 goal_src/jak3/dgos/wasall.gd create mode 100644 goal_src/jak3/dgos/wascast.gd create mode 100644 goal_src/jak3/dgos/waschase.gd create mode 100644 goal_src/jak3/dgos/wasdefen.gd create mode 100644 goal_src/jak3/dgos/wasleapr.gd create mode 100644 goal_src/jak3/dgos/waspala.gd create mode 100644 goal_src/jak3/dgos/waspgame.gd create mode 100644 goal_src/jak3/dgos/wasseem.gd create mode 100644 goal_src/jak3/dgos/wasstada.gd create mode 100644 goal_src/jak3/dgos/wasstadb.gd create mode 100644 goal_src/jak3/dgos/wasstadc.gd create mode 100644 goal_src/jak3/dgos/wca.gd create mode 100644 goal_src/jak3/dgos/wcaseem.gd create mode 100644 goal_src/jak3/dgos/wcb.gd create mode 100644 goal_src/jak3/dgos/win.gd create mode 100644 goal_src/jak3/dgos/wsd.gd create mode 100644 goal_src/jak3/dgos/wwd.gd create mode 100644 goal_src/jak3/game.gp create mode 100644 goal_src/jak3/kernel-defs.gc create mode 100644 goal_src/jak3/lib/project-lib.gp diff --git a/.prettierrc b/.prettierrc deleted file mode 100644 index 4e93b6fd5..000000000 --- a/.prettierrc +++ /dev/null @@ -1 +0,0 @@ -endOfLine: "auto" diff --git a/.prettierrc.json b/.prettierrc.json new file mode 100644 index 000000000..6cbd5deef --- /dev/null +++ b/.prettierrc.json @@ -0,0 +1,11 @@ +{ + "endOfLine": "auto", + "overrides": [ + { + "files": ["**/*.jsonc"], + "options": { + "parser": "json" + } + } + ] +} diff --git a/Taskfile.yml b/Taskfile.yml index ab9394ac4..485457fb9 100644 --- a/Taskfile.yml +++ b/Taskfile.yml @@ -74,16 +74,6 @@ tasks: msg: "Couldn't locate compiler executable in '{{.GOALC_BIN_RELEASE_DIR}}/goalc'" cmds: - "{{.GOALC_BIN_RELEASE_DIR}}/goalc --user-auto --game {{.GAME}}" - format: - desc: "Format code" - cmds: - - cmd: python ./scripts/cpp/format-includes.py - - cmd: python ./third-party/run-clang-format/run-clang-format.py -r common decompiler game goalc test tools lsp -i - # npm install -g prettier - - cmd: npx prettier --write ./decompiler/config/jak1/**/*.jsonc - ignore_error: true - - cmd: npx prettier --write ./decompiler/config/jak2/**/*.jsonc - ignore_error: true format-json: desc: "Format code" cmds: @@ -92,6 +82,15 @@ tasks: ignore_error: true - cmd: npx prettier --write ./decompiler/config/jak2/**/*.jsonc ignore_error: true + - cmd: npx prettier --write ./decompiler/config/jak3/**/*.jsonc + ignore_error: true + format: + desc: "Format code" + cmds: + - cmd: python ./scripts/cpp/format-includes.py + - cmd: python ./third-party/run-clang-format/run-clang-format.py -r common decompiler game goalc test tools lsp -i + - task: format-json + # DECOMPILING decomp: cmds: diff --git a/common/versions/versions.cpp b/common/versions/versions.cpp index 0f4307b73..c1fe81316 100644 --- a/common/versions/versions.cpp +++ b/common/versions/versions.cpp @@ -11,13 +11,15 @@ GameVersion game_name_to_version(const std::string& name) { return GameVersion::Jak1; } else if (name == "jak2") { return GameVersion::Jak2; + } else if (name == "jak3") { + return GameVersion::Jak3; } else { ASSERT_MSG(false, fmt::format("invalid game name: {}", name)); } } bool valid_game_version(const std::string& name) { - return name == "jak1" || name == "jak2"; + return name == "jak1" || name == "jak2" || name == "jak3"; } std::string version_to_game_name(GameVersion v) { @@ -26,6 +28,8 @@ std::string version_to_game_name(GameVersion v) { return "jak1"; case GameVersion::Jak2: return "jak2"; + case GameVersion::Jak3: + return "jak3"; default: ASSERT_MSG(false, fmt::format("no game_name for version: {} found", fmt::underlying(v))); } @@ -37,13 +41,16 @@ std::string version_to_game_name_external(GameVersion v) { return "Jak 1"; case GameVersion::Jak2: return "Jak 2"; + case GameVersion::Jak3: + return "Jak 3"; default: ASSERT_MSG(false, fmt::format("no game_name for version: {} found", fmt::underlying(v))); } } std::vector valid_game_version_names() { - return {game_version_names[GameVersion::Jak1], game_version_names[GameVersion::Jak2]}; + return {game_version_names[GameVersion::Jak1], game_version_names[GameVersion::Jak2], + game_version_names[GameVersion::Jak3]}; } std::string build_revision() { diff --git a/decompiler/IR2/AtomicOpTypeAnalysis.cpp b/decompiler/IR2/AtomicOpTypeAnalysis.cpp index f1c1502dd..e7b99fb53 100644 --- a/decompiler/IR2/AtomicOpTypeAnalysis.cpp +++ b/decompiler/IR2/AtomicOpTypeAnalysis.cpp @@ -191,7 +191,7 @@ TP_Type SimpleExpression::get_type(const TypeState& input, return TP_Type::make_from_ts("float"); } // new for jak 2: - if (env.version == GameVersion::Jak2 && in_type.is_integer_constant() && + if (env.version >= GameVersion::Jak2 && in_type.is_integer_constant() && (s64)((s32)in_type.get_integer_constant()) == (s64)in_type.get_integer_constant()) { return TP_Type::make_from_ts("float"); } @@ -406,7 +406,7 @@ TP_Type SimpleExpression::get_type_int2(const TypeState& input, } if (m_kind == Kind::RIGHT_SHIFT_ARITH) { - if (env.version == GameVersion::Jak2 && arg0_type.typespec().base_type() == "float") { + if (env.version >= GameVersion::Jak2 && arg0_type.typespec().base_type() == "float") { return TP_Type::make_from_ts(TypeSpec("float")); } return TP_Type::make_from_ts(TypeSpec("int")); diff --git a/decompiler/IR2/ExpressionHelpers.cpp b/decompiler/IR2/ExpressionHelpers.cpp index 0c58d2264..745bb1b40 100644 --- a/decompiler/IR2/ExpressionHelpers.cpp +++ b/decompiler/IR2/ExpressionHelpers.cpp @@ -170,7 +170,7 @@ FormElement* handle_get_property_struct(const std::vector& forms, const Env& env) { return handle_get_property_data_or_structure( forms, pool, env, ResLumpMacroElement::Kind::STRUCT, - env.version == GameVersion::Jak2 ? "(the-as structure #f)" : "#f", TypeSpec("structure")); + env.version >= GameVersion::Jak2 ? "(the-as structure #f)" : "#f", TypeSpec("structure")); } FormElement* handle_get_property_value(const std::vector& forms, diff --git a/decompiler/IR2/Form.cpp b/decompiler/IR2/Form.cpp index b52162dc0..6041337c9 100644 --- a/decompiler/IR2/Form.cpp +++ b/decompiler/IR2/Form.cpp @@ -3255,7 +3255,7 @@ goos::Object DefpartgroupElement::to_form_internal(const Env& env) const { if (offset) { // jak2 has switched this field to a signed 16 bit number - if (env.version == GameVersion::Jak2) { + if (env.version >= GameVersion::Jak2) { result += fmt::format(" :offset {}", (s16)offset); } else { result += fmt::format(" :offset {}", offset); diff --git a/decompiler/IR2/FormExpressionAnalysis.cpp b/decompiler/IR2/FormExpressionAnalysis.cpp index f662a9472..79dde5267 100644 --- a/decompiler/IR2/FormExpressionAnalysis.cpp +++ b/decompiler/IR2/FormExpressionAnalysis.cpp @@ -122,7 +122,7 @@ Form* try_cast_simplify(Form* in, return in; } - if (env.version == GameVersion::Jak2) { + if (env.version >= GameVersion::Jak2) { if (new_type == TypeSpec("float")) { auto ic = get_goal_integer_constant(in, env); if (ic) { @@ -138,7 +138,7 @@ Form* try_cast_simplify(Form* in, if (new_type == TypeSpec("meters")) { auto fc = get_goal_float_constant(in); - if (!fc && env.version == GameVersion::Jak2) { + if (!fc && env.version >= GameVersion::Jak2) { auto ic = get_goal_integer_constant(in, env); if (ic) { ASSERT((s64)*ic == (s64)(s32)*ic); @@ -2853,7 +2853,7 @@ bool try_to_rewrite_vector_inline_ctor(const Env& env, token_matchers = {DerefTokenMatcher::string("quad")}; } - if (env.version == GameVersion::Jak2) { + if (env.version >= GameVersion::Jak2) { token_matchers = {DerefTokenMatcher::string("quad")}; } @@ -3376,7 +3376,7 @@ void FunctionCallElement::update_from_stack(const Env& env, argset = argset.substr(1); auto argsym = arg_forms.at(1)->to_string(env); // convert the float param - if (env.version == GameVersion::Jak2) { + if (env.version >= GameVersion::Jak2) { static const std::unordered_set use_degrees_settings = { "matrix-blend-max-angle", "fov", @@ -4081,7 +4081,7 @@ void DerefElement::update_from_stack(const Env& env, } auto as_simple_expr = m_base->try_as_element(); - if (env.version == GameVersion::Jak2 && as_simple_expr && as_simple_expr->expr().is_identity() && + if (env.version >= GameVersion::Jak2 && as_simple_expr && as_simple_expr->expr().is_identity() && as_simple_expr->expr().get_arg(0).is_sym_val() && as_simple_expr->expr().get_arg(0).get_str() == "*game-info*" && m_tokens.size() >= 2 && m_tokens.at(0).is_field_name("sub-task-list") && m_tokens.at(1).is_int()) { diff --git a/decompiler/ObjectFile/LinkedObjectFileCreation.cpp b/decompiler/ObjectFile/LinkedObjectFileCreation.cpp index 62c4736cd..f10f89899 100644 --- a/decompiler/ObjectFile/LinkedObjectFileCreation.cpp +++ b/decompiler/ObjectFile/LinkedObjectFileCreation.cpp @@ -263,7 +263,7 @@ static void link_v2_or_v4(LinkedObjectFile& f, const uint8_t* code_end = &data.at(code_offset + code_size - 1) + 1; // get the pointer to one past the end. - if (version == GameVersion::Jak2) { + if (version >= GameVersion::Jak2) { while (((code_end - code_start) % 4)) { code_end++; } @@ -689,7 +689,7 @@ static void link_v3(LinkedObjectFile& f, segment_size++; } - if (game_version == GameVersion::Jak2) { + if (game_version >= GameVersion::Jak2) { while (segment_size % 4) { segment_size++; } diff --git a/decompiler/ObjectFile/ObjectFileDB_IR2.cpp b/decompiler/ObjectFile/ObjectFileDB_IR2.cpp index 3a7a7f8b5..8cb0e4f29 100644 --- a/decompiler/ObjectFile/ObjectFileDB_IR2.cpp +++ b/decompiler/ObjectFile/ObjectFileDB_IR2.cpp @@ -647,8 +647,8 @@ void ObjectFileDB::ir2_type_analysis_pass(int seg, const Config& config, ObjectF } constexpr bool kForceNewTypes = false; - if (config.game_version == GameVersion::Jak2 || kForceNewTypes) { - // use new types for jak 2 always + if (config.game_version != GameVersion::Jak1 || kForceNewTypes) { + // use new types for jak 2/3 always types2::Input in; types2::Output out; in.func = &func; diff --git a/decompiler/analysis/analyze_inspect_method.cpp b/decompiler/analysis/analyze_inspect_method.cpp index 1081c7730..23738c9ec 100644 --- a/decompiler/analysis/analyze_inspect_method.cpp +++ b/decompiler/analysis/analyze_inspect_method.cpp @@ -1846,7 +1846,24 @@ void inspect_top_level_for_metadata(Function& top_level, if (state_name.empty()) { continue; } - objectFile.state_methods[type_match][method_id] = state_name; + // Ensure there are no labels between now and when the `method-set!` is actually called + bool was_another_label = false; + for (int j = i; j < (int)top_level.ir2.atomic_ops->ops.size(); j++) { + const auto& temp_aop = top_level.ir2.atomic_ops->ops.at(j); + const std::string temp_as_str = temp_aop.get()->to_string(top_level.ir2.env); + if (temp_as_str.find("call!") != std::string::npos) { + break; + } + auto temp_label_match = + get_regex_match(temp_as_str, std::regex("\\(set!\\s[^\\s]*\\s(L.*)\\)")); + if (!temp_label_match.empty()) { + was_another_label = true; + break; + } + } + if (!was_another_label) { + objectFile.state_methods[type_match][method_id] = state_name; + } } } diff --git a/decompiler/config/jak3/all-types.gc b/decompiler/config/jak3/all-types.gc index 88e560113..0c8626692 100644 --- a/decompiler/config/jak3/all-types.gc +++ b/decompiler/config/jak3/all-types.gc @@ -1,5 +1,7 @@ ;; All Types +;; TODO - some of these are likely not needed / copied from jak 2 + ;; type system setup (define-extern object type) (define-extern type type) @@ -130,109 +132,987 @@ ;; gcommon ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +#| (deftype vec4s (uint128) - ((x float :offset 0) - (y float :offset 32) - (z float :offset 64) - (w float :offset 96)) + ((UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + ) :method-count-assert 9 :size-assert #x10 :flag-assert #x900000010 ) +|# (deftype vector (structure) - ((data float 4 :score -1 :offset-assert 0) + ((data float 4 :score -1 :offset-assert 0) ;; guessed by decompiler (x float :offset 0) (y float :offset 4) (z float :offset 8) (w float :offset 12) - (quad uint128 :offset 0 :score -1) + (quad uint128 :score -1 :offset 0) ) :method-count-assert 9 :size-assert #x10 :flag-assert #x900000010 ) +#| (deftype bfloat (basic) - ((data float :offset-assert 4) + () + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ;; Failed to read fields. + ) +|# + +#| +(deftype inline-array-class (basic) + () + :method-count-assert 14 + :size-assert #x10 + :flag-assert #xe00000010 + ;; Failed to read fields. + (:methods + ;; (new (symbol type int) _type_ 0) + (inline-array-class-method-9 () none) ;; 9 + (inline-array-class-method-10 () none) ;; 10 + (inline-array-class-method-11 () none) ;; 11 + (inline-array-class-method-12 () none) ;; 12 + (inline-array-class-method-13 () none) ;; 13 + ) + ) +|# + +#| +(deftype inline-array-class-uint64 (inline-array-class) + ((length int32 :offset-assert 4) + (allocated-length int32 :offset-assert 8) + ) + :method-count-assert 14 + :size-assert #x10 + :flag-assert #xe00000010 + ) +|# + +#| +(deftype inline-array-class-uint32 (inline-array-class) + ((length int32 :offset-assert 4) + (allocated-length int32 :offset-assert 8) + ) + :method-count-assert 14 + :size-assert #x10 + :flag-assert #xe00000010 + ) +|# + +#| +(deftype array (UNKNOWN) + ((allocated-length int32 :offset-assert 4) + (length int32 :offset-assert 0) + (content-type type :offset-assert 8) ;; guessed by decompiler + (data uint8 :dynamic :offset-assert 12) ;; guessed by decompiler + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + ) + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ) +|# + +;; (define-extern identity function) ;; (function object object) +;; (define-extern 1/ function) ;; (function float float) +;; (define-extern + function) ;; (function int int int) +;; (define-extern - function) ;; (function int int int) +;; (define-extern * function) ;; (function int int int) +;; (define-extern / function) ;; (function int int int) +;; (define-extern ash function) ;; (function int int int) +;; (define-extern mod function) ;; (function int int int) +;; (define-extern rem function) ;; (function int int int) +;; (define-extern abs function) ;; (function int int) +;; (define-extern min function) ;; (function int int int) +;; (define-extern max function) ;; (function int int int) +;; (define-extern logior function) ;; (function int int int) +;; (define-extern logand function) ;; (function int int int) +;; (define-extern lognor function) ;; (function int int int) +;; (define-extern logxor function) ;; (function int int int) +;; (define-extern lognot function) ;; (function int int) +;; (define-extern false-func function) ;; (function symbol) +;; (define-extern true-func function) ;; (function symbol) +;; (define-extern format object) ;; (function _varargs_ object) +;; (define-extern basic-type? function) ;; (function basic type symbol) +;; (define-extern type-type? function) ;; (function type type symbol) +;; (define-extern type? function) ;; (function object type symbol) +;; (define-extern find-parent-method function) ;; (function type int function) +;; (define-extern ref& function) +;; (define-extern ref function) ;; (function object int object) +;; (define-extern last function) ;; (function object object) +;; (define-extern member function) ;; (function object object object) +;; (define-extern nmember function) ;; (function basic object object) +;; (define-extern assoc function) ;; (function object object object) +;; (define-extern assoce function) ;; (function object object object) +;; (define-extern nassoc function) ;; (function string object object) +;; (define-extern nassoce function) ;; (function string object object) +;; (define-extern append! function) ;; (function object object object) +;; (define-extern delete! function) ;; (function object object pair) +;; (define-extern delete-car! function) ;; (function object object object) +;; (define-extern insert-cons! function) ;; (function object object pair) +;; (define-extern sort function) ;; (function pair (function object object object) pair) +;; (define-extern string->symbol-debug function) +;; (define-extern symbol->string-debug function) +;; (define-extern symbol->hash function) +;; (define-extern mem-copy! function) ;; (function pointer pointer int pointer) +;; (define-extern qmem-copy<-! function) ;; (function pointer pointer int pointer) +;; (define-extern qmem-copy->! function) ;; (function pointer pointer int pointer) +;; (define-extern qmem-clear! function) +;; (define-extern mem-set32! function) ;; (function pointer int int pointer) +;; (define-extern mem-or! function) ;; (function pointer pointer int pointer) +;; (define-extern quad-copy! function) ;; (function pointer pointer int none) +;; (define-extern fact function) ;; (function int int) +;; (define-extern *print-column* object) ;; binteger +;; (define-extern print function) ;; (function object object) +;; (define-extern printl function) ;; (function object object) +;; (define-extern inspect function) ;; (function object object) +;; (define-extern mem-print function) ;; (function (pointer uint32) int symbol) +;; (define-extern *trace-list* object) ;; pair +;; (define-extern print-tree-bitmask function) ;; (function int int symbol) +;; (define-extern breakpoint-range-set! function) ;; (function uint uint uint int) +;; (define-extern valid? function) ;; (function object type string symbol object symbol) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; gstring ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern copy-string<-string function) ;; (function string string string) +;; (define-extern string= function) ;; (function string string symbol) +;; (define-extern string-prefix= function) ;; (function string string symbol) +;; (define-extern charp-prefix= function) ;; (function (pointer uint8) (pointer uint8) symbol) +;; (define-extern string-suffix= function) ;; (function string string symbol) +;; (define-extern string-position function) ;; (function string string int) +;; (define-extern string-charp= function) ;; (function string (pointer uint8) symbol) +;; (define-extern name= function) ;; (function object object symbol) +;; (define-extern copyn-string<-charp function) ;; (function string (pointer uint8) int string) +;; (define-extern string<-charp function) ;; (function string (pointer uint8) string) +;; (define-extern charp<-string function) ;; (function (pointer uint8) string int) +;; (define-extern copyn-charp<-string function) ;; (function (pointer uint8) string int none) +;; (define-extern copy-charp<-charp function) ;; (function (pointer uint8) (pointer uint8) (pointer uint8)) +;; (define-extern cat-string<-string function) ;; (function string string string) +;; (define-extern catn-string<-charp function) ;; (function string (pointer uint8) int string) +;; (define-extern cat-string<-string_to_charp function) ;; (function string string (pointer uint8) (pointer uint8)) +;; (define-extern append-character-to-string function) ;; (function string uint8 int) +;; (define-extern charp-basename function) ;; (function (pointer uint8) (pointer uint8)) +;; (define-extern clear function) ;; (function string string) +;; (define-extern string? function) ;; (function string string symbol) +;; (define-extern string<=? function) ;; (function string string symbol) +;; (define-extern string>=? function) ;; (function string string symbol) +;; (define-extern *string-tmp-str* object) ;; string +;; (define-extern string-skip-to-char function) ;; (function (pointer uint8) uint (pointer uint8)) +;; (define-extern string-cat-to-last-char function) ;; (function string string uint (pointer uint8)) +;; (define-extern string-skip-whitespace function) ;; (function (pointer uint8) (pointer uint8)) +;; (define-extern string-suck-up! function) ;; (function string (pointer uint8) symbol) +;; (define-extern string-strip-leading-whitespace! function) ;; (function string symbol) +;; (define-extern string-strip-trailing-whitespace! function) ;; (function string symbol) +;; (define-extern string-strip-whitespace! function) ;; (function string symbol) +;; (define-extern string-upcase function) ;; (function string string none) +;; (define-extern string-get-arg!! function) ;; (function string string symbol) +;; (define-extern string->int function) ;; (function string int) +;; (define-extern string->float function) ;; (function string float) +;; (define-extern string-get-int32!! function) ;; (function (pointer int32) string symbol) +;; (define-extern string-get-float!! function) ;; (function (pointer float) string symbol) +;; (define-extern string-get-flag!! function) ;; (function (pointer symbol) string string string symbol) +;; (define-extern string-word-wrap function) ;; (function string int none) +;; (define-extern *debug-draw-pauseable* object) ;; symbol +;; (define-extern *stdcon0* object) ;; string +;; (define-extern *stdcon1* object) ;; string +;; (define-extern *null* object) +;; (define-extern *stdcon* object) ;; string +;; (define-extern *stdebug* object) +;; (define-extern *temp-string* object) ;; string + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; oasis-defense ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype oasis-point (structure) + ((pos vector :inline :offset-assert 0) + (quat quaternion :inline :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x20 + :flag-assert #x900000020 + ) +|# + +#| +(deftype oasis-vehicle (structure) + ((handle uint64 :offset-assert 0) + (path-type int8 :offset-assert 8) + (path-pos int8 :offset-assert 9) + (spawned-marauder? basic :offset-assert 12) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype oasis-marauder (structure) + ((handle uint64 :offset-assert 0) + (initialized? basic :offset-assert 8) + ) + :method-count-assert 9 + :size-assert #xc + :flag-assert #x90000000c + ) +|# + +#| +(deftype task-manager-desert-oasis-defense (task-manager) + ((nav-mesh basic :offset-assert 240) + (vehicle UNKNOWN 3 :offset-assert 248) + (vehicle-count uint8 :offset-assert 296) + (v-free-list basic :offset-assert 300) + (marauder UNKNOWN 7 :offset-assert 304) + (m-free-list basic :offset-assert 416) + (marauder-count uint8 :offset-assert 420) + (total-spawned uint8 :offset-assert 421) + (total-veh-spawned uint8 :offset-assert 422) + (check-timer uint64 :offset-assert 424) + (trans-timer uint64 :offset-assert 432) + (veh-fx UNKNOWN 2 :offset-assert 440) + (veh-fx-timer uint64 :offset-assert 456) + (ash-entity basic :offset-assert 464) + (marauder-entity basic :offset-assert 468) + (last-kill-time uint64 :offset-assert 472) + ) + :method-count-assert 36 + :size-assert #x1e0 + :flag-assert #x24016001e0 + (:methods + (task-manager-desert-oasis-defense-method-32 () none) ;; 32 + (task-manager-desert-oasis-defense-method-33 () none) ;; 33 + (task-manager-desert-oasis-defense-method-34 () none) ;; 34 + (task-manager-desert-oasis-defense-method-35 () none) ;; 35 + ) + (:state-methods + active ;; 15 + ) + ) +|# + +#| +(deftype desoasis-hellcat (process-drawable) + () + :method-count-assert 21 + :size-assert #xc8 + :flag-assert #x15005000c8 + (:state-methods + idle ;; 20 + idle ;; 11 + ) + ) +|# + +;; (define-extern *oasis-marauder-start* array) +;; (define-extern *oasis-vehicle-start* array) +;; (define-extern *oasis-vehicle-path* array) +;; (define-extern *oasis-vehicle-fx-path* array) +;; (define-extern *oasis-marauder-spawn-point* array) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; loader-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (deftype load-dir (basic) +;; () +;; :flag-assert #xb00000010 +;; ) + +;; (deftype load-dir-art-group (load-dir) +;; () +;; :flag-assert #xb00000010 +;; ) + +#| +(deftype external-art-buffer (basic) + ((index int32 :offset-assert 4) + (other external-art-buffer :offset-assert 8) ;; guessed by decompiler + (status symbol :offset-assert 12) ;; guessed by decompiler + (locked? symbol :offset-assert 16) ;; guessed by decompiler + (login? symbol :offset-assert 20) ;; guessed by decompiler + (frame-lock symbol :offset-assert 24) ;; guessed by decompiler + (init-heap (function external-art-buffer object) :offset-assert 28) ;; guessed by decompiler + (heap kheap :inline :offset-assert 32) + (pending-load-file string :offset-assert 48) ;; guessed by decompiler + (pending-load-file-part int32 :offset-assert 52) + (pending-load-file-owner uint64 :offset-assert 56) ;; handle + (pending-load-file-priority float :offset-assert 64) + (load-file string :offset-assert 68) ;; guessed by decompiler + (load-file-part int32 :offset-assert 72) + (load-file-owner uint64 :offset-assert 80) ;; handle + (load-file-priority float :offset-assert 88) + (buf pointer :offset-assert 92) ;; guessed by decompiler + (len int32 :offset-assert 96) + (art-group art-group :offset-assert 100) ;; guessed by decompiler + (art-data uint32 :offset-assert 100) + ) + :method-count-assert 16 + :size-assert #x68 + :flag-assert #x1000000068 + (:methods + ;; (new (symbol type int function symbol) _type_ 0) + (external-art-buffer-method-9 () none) ;; 9 ;; (set-pending-file (_type_ string int handle float) int 9) + (external-art-buffer-method-10 () none) ;; 10 ;; (update (_type_) int 10) + (external-art-buffer-method-11 () none) ;; 11 ;; (inactive? (_type_) symbol 11) + (external-art-buffer-method-12 () none) ;; 12 ;; (file-status (_type_ string int) symbol 12) + (external-art-buffer-method-13 () none) ;; 13 ;; (link-file (_type_ art-group) art-group 13) + (external-art-buffer-method-14 () none) ;; 14 ;; (unlink-file (_type_ art-group) int 14) + (external-art-buffer-method-15 () none) ;; 15 ;; (unlock! (_type_) int 15) + ) + ) +|# + +#| +(deftype spool-anim (basic) + ((name string :offset-assert 16) ;; guessed by decompiler + (anim-name basic :offset-assert 20) + (parts int32 :offset-assert 24) + (hint-id int32 :offset-assert 24) + (priority float :offset-assert 28) + (owner uint64 :offset-assert 32) ;; handle + (command-list pair :offset-assert 40) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x2c + :flag-assert #x90000002c + ) +|# + +#| +(deftype external-art-control (basic) + ((buffer external-art-buffer 2 :offset-assert 4) ;; guessed by decompiler + (rec spool-anim 3 :offset-assert 20) ;; guessed by decompiler + (spool-lock uint64 :offset-assert 160) ;; handle + (reserve-buffer external-art-buffer :offset-assert 168) ;; guessed by decompiler + (reserve-buffer-count int16 :offset-assert 172) + (dma-reserve-buffer-count int16 :offset-assert 174) + (active-stream string :offset-assert 176) ;; guessed by decompiler + (queue-stream (array spool-anim) :offset-assert 180) ;; guessed by decompiler + (frame-mask uint32 :offset-assert 184) + (dma-reserve-heap kheap :inline :offset-assert 192) + ) + :method-count-assert 16 + :size-assert #xd0 + :flag-assert #x10000000d0 + (:methods + ;; (new (symbol type) _type_ 0) + (external-art-control-method-9 () none) ;; 9 ;; (update (_type_ symbol) int 9) + (external-art-control-method-10 () none) ;; 10 ;; (clear-rec (_type_) int 10) + (external-art-control-method-11 () none) ;; 11 ;; (spool-push (_type_ string int process float) int 11) + (external-art-control-method-12 () none) ;; 12 ;; (file-status (_type_ string int) symbol 12) + (external-art-control-method-13 () none) ;; 13 ;; (reserve-alloc (_type_) kheap 13) + (external-art-control-method-14 () none) ;; 14 ;; (reserve-free (_type_ kheap) int 14) + (external-art-control-method-15 () none) ;; 15 ;; (none-reserved? (_type_) symbol 15) + ) + ) +|# + +#| +(deftype subtitle-range (basic) + ((start-frame float :offset-assert 4) + (end-frame float :offset-assert 8) + (message basic 12 :offset-assert 12) ;; guessed by decompiler + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + ) + :method-count-assert 9 + :size-assert #x3c + :flag-assert #x90000003c + ) +|# + +#| +(deftype subtitle-image (basic) + ((width uint16 :offset-assert 4) + (height uint16 :offset-assert 6) + (palette rgba 16 :offset-assert 16) ;; guessed by decompiler + (data uint8 :dynamic :offset-assert 80) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x50 + :flag-assert #x900000050 + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; viewer ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype viewer (process-drawable) + ((janim art-joint-anim :offset-assert 200) ;; guessed by decompiler + ) + :method-count-assert 20 + :size-assert #xcc + :flag-assert #x14005000cc + (:states + viewer-process ;; associated process guessed by decompiler, old: (state viewer) + ) + ) +|# + +;; (define-extern *viewer-sg* skeleton-group) ;; skeleton-group +;; (define-extern viewer-string object) ;; string +;; (define-extern viewer-ja-name object) ;; string +;; (define-extern viewer-geo-name object) ;; string +;; (define-extern actor-get-arg! function) ;; (function string string string symbol) +;; (define-extern art-part-name function) ;; (function string string) +;; (define-extern init-viewer function) ;; (function string string none :behavior viewer) +;; (define-extern init-viewer-for-other function) ;; (function string vector entity-actor none :behavior viewer) +;; (define-extern add-a-bunch function) ;; (function string int int float process-tree entity-actor symbol) +;; (define-extern birth-viewer function) ;; (function process entity-actor object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; gs ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (deftype gs-pmode (uint64) +;; () +;; :flag-assert #x900000008 +;; ) + +;; (deftype gs-smode2 (uint64) +;; () +;; :flag-assert #x900000008 +;; ) + +;; (deftype gs-display-fb (uint64) +;; () +;; :flag-assert #x900000008 +;; ) + +;; (deftype gs-display (uint64) +;; () +;; :flag-assert #x900000008 +;; ) + +;; (deftype gs-bgcolor (uint64) +;; () +;; :flag-assert #x900000008 +;; ) + +;; (deftype gs-csr (uint64) +;; () +;; :flag-assert #x900000008 +;; ) + +#| +(deftype gs-bank (structure) + ((pmode uint64 :offset-assert 0) ;; gs-pmode + (smode2 uint64 :offset-assert 32) ;; gs-smode2 + (dspfb1 uint64 :offset-assert 112) ;; gs-display-fb + (display1 uint64 :offset-assert 128) ;; gs-display + (dspfb2 uint64 :offset-assert 144) ;; gs-display-fb + (display2 uint64 :offset-assert 160) ;; gs-display + (extbuf uint64 :offset-assert 176) + (extdata uint64 :offset-assert 192) + (extwrite uint64 :offset-assert 208) + (bgcolor uint64 :offset-assert 224) ;; gs-bgcolor + (csr uint64 :offset-assert 4096) ;; gs-csr + (imr uint64 :offset-assert 4112) + (busdir uint64 :offset-assert 4160) + ) + :method-count-assert 9 + :size-assert #x1048 + :flag-assert #x900001048 + ) +|# + +;; (deftype gs-frame (uint64) +;; () +;; :flag-assert #x900000008 +;; ) + +;; (deftype gs-zbuf (uint64) +;; () +;; :flag-assert #x900000008 +;; ) + +;; (deftype gs-xy-offset (uint64) +;; () +;; :flag-assert #x900000008 +;; ) + +;; (deftype gs-scissor (uint64) +;; () +;; :flag-assert #x900000008 +;; ) + +;; (deftype gs-prmode-cont (uint64) +;; () +;; :flag-assert #x900000008 +;; ) + +;; (deftype gs-color-clamp (uint64) +;; () +;; :flag-assert #x900000008 +;; ) + +;; (deftype gs-dthe (uint64) +;; () +;; :flag-assert #x900000008 +;; ) + +;; (deftype gs-test (uint64) +;; () +;; :flag-assert #x900000008 +;; ) + +;; (deftype gs-prim (uint64) +;; () +;; :flag-assert #x900000008 +;; ) + +;; (deftype gs-rgbaq (uint64) +;; () +;; :flag-assert #x900000008 +;; ) + +;; (deftype gs-xyz (uint64) +;; () +;; :flag-assert #x900000008 +;; ) + +;; (deftype gs-uv (uint64) +;; () +;; :flag-assert #x900000008 +;; ) + +;; (deftype gs-st (uint64) +;; () +;; :flag-assert #x900000008 +;; ) + +;; (deftype gs-xyzf (uint64) +;; () +;; :flag-assert #x900000008 +;; ) + +#| +(deftype gs-adcmd (structure) + ((word uint32 4 :offset-assert 0) ;; guessed by decompiler + (quad uint128 :offset-assert 0) + (data uint64 :offset-assert 0) + (cmds uint64 :offset-assert 8) ;; gs-reg64 + (cmd uint8 :offset-assert 8) + (x uint32 :offset-assert 0) + (y uint32 :offset-assert 4) + (z uint32 :offset-assert 8) + (w uint32 :offset-assert 12) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +;; (deftype gs-trxpos (uint64) +;; () +;; :flag-assert #x900000008 +;; ) + +;; (deftype gs-trxreg (uint64) +;; () +;; :flag-assert #x900000008 +;; ) + +;; (deftype gs-trxdir (uint64) +;; () +;; :flag-assert #x900000008 +;; ) + +;; (deftype gs-bitbltbuf (uint64) +;; () +;; :flag-assert #x900000008 +;; ) + +;; (deftype gs-tex0 (uint64) +;; () +;; :flag-assert #x900000008 +;; ) + +;; (deftype gs-tex1 (uint64) +;; () +;; :flag-assert #x900000008 +;; ) + +;; (deftype gs-texa (uint64) +;; () +;; :flag-assert #x900000008 +;; ) + +;; (deftype gs-texclut (uint64) +;; () +;; :flag-assert #x900000008 +;; ) + +;; (deftype gs-miptbp (uint64) +;; () +;; :flag-assert #x900000008 +;; ) + +#| +(deftype gs-alpha (uint64) + ((UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. ) :method-count-assert 9 :size-assert #x8 :flag-assert #x900000008 ) +|# -(deftype inline-array-class (basic) - ((length int32 :offset-assert 4) - (allocated-length int32 :offset-assert 8) - ;; this is 16-byte aligned. - ;; children of inline-array-class should define their own data which overlays this one. - (_data uint8 :score -50 :dynamic :offset 16) +;; (deftype gs-clamp (uint64) +;; () +;; :flag-assert #x900000008 +;; ) + +#| +(deftype gs-fog (uint64) + ((UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +#| +(deftype gs-fogcol (uint64) + ((UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +;; (deftype gif-ctrl (uint32) +;; () +;; :flag-assert #x900000004 +;; ) + +;; (deftype gif-mode (uint32) +;; () +;; :flag-assert #x900000004 +;; ) + +;; (deftype gif-stat (uint32) +;; () +;; :flag-assert #x900000004 +;; ) + +;; (deftype gif-cnt (uint32) +;; () +;; :flag-assert #x900000004 +;; ) + +;; (deftype gif-p3cnt (uint32) +;; () +;; :flag-assert #x900000004 +;; ) + +;; (deftype gif-p3tag (uint32) +;; () +;; :flag-assert #x900000004 +;; ) + +#| +(deftype gif-bank (structure) + ((ctrl gif-ctrl :offset-assert 0) ;; guessed by decompiler + (mode gif-mode :offset-assert 16) ;; guessed by decompiler + (stat gif-stat :offset-assert 32) ;; guessed by decompiler + (tag0 uint32 :offset-assert 64) + (tag1 uint32 :offset-assert 80) + (tag2 uint32 :offset-assert 96) + (tag3 uint32 :offset-assert 112) + (cnt gif-cnt :offset-assert 128) ;; guessed by decompiler + (p3cnt gif-p3cnt :offset-assert 144) ;; guessed by decompiler + (p3tag gif-p3tag :offset-assert 160) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #xa4 + :flag-assert #x9000000a4 + ) +|# + +;; (deftype gif-tag-prim (uint32) +;; () +;; :flag-assert #x900000004 +;; ) + +;; (deftype gif-tag-count (uint32) +;; () +;; :flag-assert #x900000004 +;; ) + +;; (deftype gif-tag64 (uint64) +;; () +;; :flag-assert #x900000008 +;; ) + +#| +(deftype gif-tag (uint128) + ((UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. ) - (:methods - (new (symbol type int) _type_)) :method-count-assert 9 :size-assert #x10 :flag-assert #x900000010 ) +|# -(define-extern identity (function object object)) -(define-extern 1/ (function float float)) -(define-extern + (function int int int)) -(define-extern - (function int int int)) -(define-extern * (function int int int)) -(define-extern / (function int int int)) -(define-extern ash (function int int int)) -(define-extern mod (function int int int)) -(define-extern rem (function int int int)) -(define-extern abs (function int int)) -(define-extern min (function int int int)) -(define-extern max (function int int int)) -(define-extern logior (function int int int)) -(define-extern logand (function int int int)) -(define-extern lognor (function int int int)) -(define-extern logxor (function int int int)) -(define-extern lognot (function int int)) -(define-extern false-func (function symbol)) -(define-extern true-func (function symbol)) -(define-extern format (function _varargs_ object)) -(define-extern basic-type? (function basic type symbol)) -(define-extern type-type? (function type type symbol)) -(define-extern type? (function object type symbol)) -(define-extern find-parent-method (function type int function)) -(define-extern ref (function object int object)) -(define-extern last (function object object)) -(define-extern member (function object object object)) -(define-extern nmember (function basic object object)) -(define-extern assoc (function object object object)) -(define-extern assoce (function object object object)) -(define-extern nassoc (function string object object)) -(define-extern nassoce (function string object object)) -(define-extern append! (function object object object)) -(define-extern delete! (function object object pair)) -(define-extern delete-car! (function object object object)) -(define-extern insert-cons! (function object object pair)) -(define-extern sort (function pair (function object object object) pair)) -(define-extern mem-copy! (function pointer pointer int pointer)) -(define-extern qmem-copy<-! (function pointer pointer int pointer)) -(define-extern qmem-copy->! (function pointer pointer int pointer)) -(define-extern mem-set32! (function pointer int int pointer)) -(define-extern mem-or! (function pointer pointer int pointer)) -(define-extern quad-copy! (function pointer pointer int none)) -(define-extern fact (function int int)) -(define-extern *print-column* binteger) -(define-extern print (function object object)) -(define-extern printl (function object object)) -(define-extern inspect (function object object)) -(define-extern mem-print (function (pointer uint32) int symbol)) -(define-extern *trace-list* pair) -(define-extern print-tree-bitmask (function int int symbol)) -(define-extern breakpoint-range-set! (function uint uint uint int)) -(define-extern valid? (function object type string symbol object symbol)) +#| +(deftype gs-gif-tag (structure) + ((qword qword :inline :offset-assert 0) ;; uint128 + (dword uint64 2 :offset-assert 0) ;; guessed by decompiler + (word uint32 4 :offset-assert 0) ;; guessed by decompiler + (tag uint64 :offset-assert 0) ;; gif-tag64 + (regs uint64 :offset-assert 8) ;; gif-tag-regs + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype gif-packet (basic) + ((reg-count int32 :offset-assert 4) + (gif-tag0 uint128 :offset-assert 16) + (args uint64 1 :offset-assert 32) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x28 + :flag-assert #x900000028 + ) +|# + +#| +(deftype draw-context (basic) + ((orgx int32 :offset-assert 4) + (orgy int32 :offset-assert 8) + (orgz int32 :offset-assert 12) + (width int32 :offset-assert 16) + (height int32 :offset-assert 20) + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + ) + :method-count-assert 9 + :size-assert #x28 + :flag-assert #x900000028 + ) +|# + +#| +(deftype gs-packed-rgba (vector4w) + ((r int32 :offset-assert 0) + (g int32 :offset-assert 4) + (b int32 :offset-assert 8) + (a int32 :offset-assert 12) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype gs-packed-xyzw (vector) + ((ix int32 :offset-assert 0) + (iy int32 :offset-assert 4) + (iz int32 :offset-assert 8) + (iw int32 :offset-assert 12) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype gs-packed-stq (vector) + ((tex-s float :offset-assert 0) + (tex-t float :offset-assert 4) + (tex-q float :offset-assert 8) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype gs-packed-uv (vector) + ((u int16 :offset-assert 0) + (v int16 :offset-assert 4) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype gs-packed-gt (structure) + ((stq gs-packed-stq :inline :offset-assert 0) + (rgba gs-packed-rgba :inline :offset-assert 16) + (xyzw gs-packed-xyzw :inline :offset-assert 32) + ) + :method-count-assert 9 + :size-assert #x30 + :flag-assert #x900000030 + ) +|# + +#| +(deftype gs-packed-gt4 (structure) + ((data gs-packed-gt 4 :offset-assert 0) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #xc0 + :flag-assert #x9000000c0 + ) +|# + +;; (define-extern psm-size function) ;; (function gs-psm int) +;; (define-extern psm-page-height function) ;; (function gs-psm int) +;; (define-extern psm->string function) ;; (function gs-psm string) +;; (define-extern *fog-color* object) ;; rgba +;; (define-extern open-gif-packet function) ;; (function gif-packet gif-packet) +;; (define-extern add-reg-gif-packet function) ;; (function gif-packet int int none) +;; (define-extern close-gif-packet function) ;; (function gif-packet int gif-packet) +;; (define-extern draw-context-set-xy function) ;; (function draw-context int int none) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; gstring-h ;; +;; generic-vu1 ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; (define-extern generic-vu1-block object) ;; vu-function +;; (define-extern generic-setup-constants function) ;; (function generic-constants none) +;; (define-extern generic-add-constants function) ;; (function dma-buffer none) +;; (define-extern generic-setup-shrub-constants function) +;; (define-extern generic-add-shrub-constants function) ;; (function dma-buffer int int int none) +;; (define-extern generic-init-buf function) ;; (function dma-buffer gs-zbuf none) +;; (define-extern generic-vu1-init-buf function) ;; (function bucket-id gs-zbuf none) +;; (define-extern generic-vu1-init-buf-special function) ;; (function bucket-id gs-zbuf none) +;; (define-extern generic-vu1-init-buffers function) ;; (function none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; drawable ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern sphere-cull function) ;; (function vector symbol) +;; (define-extern guard-band-cull function) ;; (function vector symbol) +;; (define-extern sphere-in-view-frustum? function) ;; (function sphere symbol) +;; (define-extern line-in-view-frustum? function) ;; (function vector vector symbol) +;; (define-extern vis-cull function) ;; (function int symbol) +;; (define-extern vis-cull-debug function) ;; (function work-area int symbol) +;; (define-extern error-sphere function) ;; (function drawable-error string none) +;; (define-extern *edit-instance* object) ;; string +;; (define-extern *instance-mem-usage* object) ;; memory-usage-block +;; (define-extern find-instance-by-name-level function) ;; (function string level prototype-bucket) +;; (define-extern find-instance-by-name function) ;; (function string prototype-bucket) +;; (define-extern prototypes-game-visible-set! function) ;; (function pair symbol int) +;; (define-extern find-instance-by-index function) ;; (function type int bsp-header prototype-bucket) +;; (define-extern prototype-bucket-type function) ;; (function prototype-bucket type) +;; (define-extern prototype-bucket-recalc-fields function) ;; (function prototype-bucket prototype-bucket) +;; (define-extern print-prototype-list function) ;; (function none) +;; (define-extern draw-instance-info function) ;; (function string none) +;; (define-extern set-shadow-by-name function) ;; (function string int int none) +;; (define-extern get-shadow-by-name function) ;; (function string none) +;; (define-extern teleport-camera-by-name function) ;; (function string none) +;; (define-extern teleport-camera-by-pos function) +;; (define-extern calc-vu1-shadow function) +;; (define-extern calc-shadow-masks function) +;; (define-extern calc-realtime-lights function) +;; (define-extern calc-vu1-lights function) +;; (define-extern dma-add-process-drawable function) ;; (function process-drawable draw-control symbol dma-buffer none) +;; (define-extern *hud-lights* object) ;; vu-lights +;; (define-extern dma-add-process-drawable-hud function) ;; (function process-drawable draw-control float dma-buffer none) +;; (define-extern add-process-drawable function) ;; (function process-drawable draw-control symbol dma-buffer none) +;; (define-extern foreground-engine-execute function) ;; (function engine display-frame none) +;; (define-extern main-debug-hook function) ;; (function none) +;; (define-extern *debug-hook* object) ;; pair +;; (define-extern *add-sphere* object) ;; symbol +;; (define-extern *generic-effect-mode* object) ;; int +;; (define-extern foreground-initialize-engines function) ;; (function none) +;; (define-extern foreground-execute-cpu-vu0-engines function) ;; (function none) +;; (define-extern real-main-draw-hook function) ;; (function none) +;; (define-extern main-draw-hook function) ;; (function none) +;; (define-extern *draw-hook* object) ;; (function none) +;; (define-extern default-init-buffer function) ;; (function bucket-id gs-zbuf gs-test none) +;; (define-extern default-end-buffer function) ;; (function bucket-id gs-zbuf gs-test none) +;; (define-extern screen-shot-scale function) ;; (function int string none) +;; (define-extern screen-shot function) ;; (function none) +;; (define-extern display-frame-start function) ;; (function display int float none) +;; (define-extern display-frame-finish function) ;; (function display display) +;; (define-extern determine-pause-mode function) ;; (function int) +;; (define-extern calc-ratio function) +;; (define-extern display-sync function) ;; (function display none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; rubble-part ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern spt-func-match-part-def function) +;; (define-extern spt-func-part-rub-elec-gate function) +;; (define-extern rub-elec-gate-adjust-particles function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; wvehicle-states ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; gkernel-h ;; @@ -283,38 +1163,33 @@ (no-track 28) (guard 29) (vehicle 30) - (civilian 31) - ) + (civilian 31)) + (deftype process-tree (basic) - ((name string :offset-assert 4) - (mask process-mask :offset-assert 8) - (clock clock :offset-assert 12) - (parent (pointer process-tree) :offset-assert 16) - (brother (pointer process-tree) :offset-assert 20) - (child (pointer process-tree) :offset-assert 24) + ((name string :offset-assert 4) + (mask process-mask :offset-assert 8) + (clock clock :offset-assert 12) ;; guessed by decompiler + (parent (pointer process-tree) :offset-assert 16) ;; guessed by decompiler + (brother (pointer process-tree) :offset-assert 20) ;; guessed by decompiler + (child (pointer process-tree) :offset-assert 24) ;; guessed by decompiler (ppointer (pointer process) :offset-assert 28) (self process-tree :offset-assert 32) ) - (:methods - (new (symbol type string) _type_) - (activate (_type_ process-tree basic pointer) process-tree) - (deactivate (_type_) none) - (init-from-entity! - "Typically the method that does the initial setup on the process, potentially using the [[entity-actor]] provided as part of that. - This commonly includes things such as: - - stack size - - collision information - - loading the skeleton group / bones - - sounds" - (_type_ entity-actor) none) - (run-logic? (_type_) symbol) - (process-tree-method-13 () none) - ) - :size-assert #x24 :method-count-assert 14 + :size-assert #x24 + :flag-assert #xe00000024 :no-runtime-type + (:methods + ;; (new (symbol type string) _type_ 0) + (process-tree-method-9 () none) ;; 9 ;; (activate (_type_ process-tree basic pointer) process-tree 9) + (process-tree-method-10 () none) ;; 10 ;; (deactivate (_type_) none 10) + (process-tree-method-11 () none) ;; 11 ;; (init-from-entity! (_type_ entity-actor) none 11) + (process-tree-method-12 () none) ;; 12 ;; (run-logic? (_type_) symbol 12) + (process-tree-method-13 () none) ;; 13 ;; (process-tree-method-13 () none 13) + ) ) +#| (deftype kernel-context (basic) ((prevent-from-run process-mask :offset-assert 4) ;; guessed by decompiler (require-for-run process-mask :offset-assert 8) ;; guessed by decompiler @@ -326,154 +1201,150 @@ (relocating-min int32 :offset-assert 32) (relocating-max int32 :offset-assert 36) (relocating-offset int32 :offset-assert 40) - (relocating-level level :offset-assert 44) ;; guessing here + (relocating-level level :offset-assert 44) ;; guessed by decompiler (low-memory-message symbol :offset-assert 48) ;; guessed by decompiler (login-object basic :offset-assert 52) + (login-art-group basic :offset-assert 56) + (login-level-index int32 :offset-assert 60) ) :method-count-assert 9 - :size-assert #x38 - :flag-assert #x900000038 - ;; field relocating-level uses ~A with a signed load - ) - -(deftype time-frame (int64) - () - :flag-assert #x900000008 + :size-assert #x40 + :flag-assert #x900000040 + ;; field relocating-level uses ~A with a signed load. ) +|# +;; (deftype time-frame (int64) +;; () +;; :flag-assert #x900000008 +;; ) (deftype clock (basic) - ((index int32 :offset-assert 4) ;; which clock we are, in *display* - (mask process-mask :offset-assert 8) ;; mask for ticking - (clock-ratio float :offset-assert 12) ;; how fast to run. 1.0 = realtime. - (accum float :offset-assert 16) ;; fractional time for frame-counter (time-frame units) - (integral-accum float :offset-assert 20) ;; fractional time for integral (time-frame untis) - (frame-counter time-frame :offset-assert 24) ;; how much time has gone by since reset (time-frame units) - (old-frame-counter time-frame :offset-assert 32) ;; the frame-counter on the last engine iteration - (integral-frame-counter uint64 :offset-assert 40) ;; how many vsyncs have gone by since reset - (old-integral-frame-counter uint64 :offset-assert 48) ;; the integral-frame-counter on the last engine iteration - (sparticle-data vector :inline :offset-assert 64) ;; sparticle timescale info - (seconds-per-frame float :offset-assert 80) ;; how many seconds (not time-frames) should go by in 1 vsync - (frames-per-second float :offset-assert 84) ;; inverse of above - (time-adjust-ratio float :offset-assert 88) ;; 1, if the game runs at 60fps NTSC with clock-ratio = 1. + ((index int16 :offset-assert 4) ;; int32 + (ref-count uint16 :offset-assert 6) + (mask process-mask :offset-assert 8) ;; guessed by decompiler + (clock-ratio float :offset-assert 12) + (accum float :offset-assert 16) + (integral-accum float :offset-assert 20) + (frame-counter uint64 :offset-assert 24) ;; time-frame + (old-frame-counter uint64 :offset-assert 32) ;; time-frame + (integral-frame-counter uint64 :offset-assert 40) + (old-integral-frame-counter uint64 :offset-assert 48) + (sparticle-data vector :inline :offset-assert 64) + (seconds-per-frame float :offset-assert 80) + (frames-per-second float :offset-assert 84) + (time-adjust-ratio float :offset-assert 88) ) - :method-count-assert 15 + :method-count-assert 24 :size-assert #x5c - :flag-assert #xf0000005c + :flag-assert #x180000005c (:methods - (new (symbol type int) _type_) - (update-rates! (_type_ float) float) - (advance-by! (_type_ float) clock) - (tick! (_type_) clock) - (save! (_type_ (pointer uint64)) int) - (load! (_type_ (pointer uint64)) int) - (reset! (_type_) none) + ;; (new (symbol type int) _type_ 0) + (clock-method-9 () none) ;; 9 ;; (update-rates! (_type_ float) float 9) + (clock-method-10 () none) ;; 10 ;; (advance-by! (_type_ float) clock 10) + (clock-method-11 () none) ;; 11 ;; (tick! (_type_) clock 11) + (clock-method-12 () none) ;; 12 ;; (save! (_type_ (pointer uint64)) int 12) + (clock-method-13 () none) ;; 13 ;; (load! (_type_ (pointer uint64)) int 13) + (clock-method-14 () none) ;; 14 ;; (reset! (_type_) none 14) + (clock-method-15 () none) ;; 15 + (clock-method-16 () none) ;; 16 + (clock-method-17 () none) ;; 17 + (clock-method-18 () none) ;; 18 + (clock-method-19 () none) ;; 19 + (clock-method-20 () none) ;; 20 + (clock-method-21 () none) ;; 21 + (clock-method-22 () none) ;; 22 + (clock-method-23 () none) ;; 23 ) ) - +#| (deftype thread (basic) - ((name symbol :offset-assert 4) - (process process :offset-assert 8) ;; guessed by decompiler - (previous thread :offset-assert 12) ;; guessed by decompiler - (suspend-hook (function cpu-thread none) :offset-assert 16) ;; guessed by decompiler - (resume-hook (function cpu-thread none) :offset-assert 20) ;; guessed by decompiler - (pc pointer :offset-assert 24) ;; guessed by decompiler - (sp pointer :offset-assert 28) ;; guessed by decompiler - (stack-top pointer :offset-assert 32) ;; guessed by decompiler - (stack-size int32 :offset-assert 36) - ) + () :method-count-assert 12 :size-assert #x28 :flag-assert #xc00000028 + ;; Failed to read fields. (:methods - (stack-size-set! (_type_ int) none) - (thread-suspend (_type_) none) - (thread-resume (_type_) none) + (thread-method-9 () none) ;; 9 ;; (stack-size-set! (_type_ int) none 9) + (thread-method-10 () none) ;; 10 ;; (thread-suspend (_type_) none 10) + (thread-method-11 () none) ;; 11 ;; (thread-resume (_type_) none 11) ) ) +|# - -;; modified for x86. +#| (deftype cpu-thread (thread) - ((rreg uint64 7 :offset-assert 40) - (freg float 8) - - ;; old values: - ;; (rreg uint64 8 :offset-assert 40) ;; guessed by decompiler - ;; (freg float 6 :offset-assert 104) ;; guessed by decompiler - (stack uint8 :dynamic :offset-assert 128) ;; guessed by decompiler - ) + () :method-count-assert 12 :size-assert #x80 :flag-assert #xc00000080 + ;; Failed to read fields. (:methods - (new (symbol type process symbol int pointer) _type_) + ;; (new (symbol type process symbol int pointer) _type_ 0) ) ) - - +|# (deftype dead-pool (process-tree) () :method-count-assert 16 :size-assert #x24 :flag-assert #x1000000024 - ;; Failed to read fields. (:methods - (new (symbol type int int string) _type_) - (get-process (_type_ type int) process) - (return-process (_type_ process) none) + ;; (new (symbol type int int string) _type_ 0) + (dead-pool-method-14 () none) ;; 14 ;; (get-process (_type_ type int) process 14) + (dead-pool-method-15 () none) ;; 15 ;; (return-process (_type_ process) none 15) ) ) - +#| (deftype dead-pool-heap-rec (structure) ((process process :offset-assert 0) ;; guessed by decompiler (prev dead-pool-heap-rec :offset-assert 4) (next dead-pool-heap-rec :offset-assert 8) ) - :pack-me :method-count-assert 9 :size-assert #xc :flag-assert #x90000000c ) +|# - +#| (deftype dead-pool-heap (dead-pool) - ((allocated-length int32 :offset-assert 36) - (compact-time uint32 :offset-assert 40) - (compact-count-targ uint32 :offset-assert 44) - (compact-count uint32 :offset-assert 48) - (fill-percent float :offset-assert 52) - (first-gap dead-pool-heap-rec :offset-assert 56) - (first-shrink dead-pool-heap-rec :offset-assert 60) - (heap kheap :inline :offset-assert 64) - (alive-list dead-pool-heap-rec :inline :offset-assert 80) - (last dead-pool-heap-rec :offset #x54 :offset-assert 84) - (dead-list dead-pool-heap-rec :inline :offset-assert 92) - (process-list dead-pool-heap-rec :inline :dynamic :offset-assert 104) + ((allocated-length int32 :offset-assert 32) + (compact-time uint32 :offset-assert 36) + (compact-count-targ uint32 :offset-assert 40) + (compact-count uint32 :offset-assert 44) + (fill-percent float :offset-assert 48) + (first-gap dead-pool-heap-rec :offset-assert 52) + (first-shrink dead-pool-heap-rec :offset-assert 56) + (heap kheap :inline :offset-assert 60) + (alive-list dead-pool-heap-rec :inline :offset-assert 76) + (last dead-pool-heap-rec :offset-assert 80) + (dead-list dead-pool-heap-rec :inline :offset-assert 88) + (process-list dead-pool-heap-rec :dynamic :offset-assert 100) ;; guessed by decompiler ) :method-count-assert 28 :size-assert #x68 :flag-assert #x1c00000068 - ;; Failed to read fields. (:methods - (new (symbol type string int int) _type_) - (init (_type_ symbol int) none) - (compact (dead-pool-heap int) none) - (shrink-heap (dead-pool-heap process) dead-pool-heap) - (churn (dead-pool-heap int) none) - (memory-used (_type_) int) - (memory-total (_type_) int) - (memory-free (dead-pool-heap) int) - (compact-time (dead-pool-heap) uint) - (gap-size (dead-pool-heap dead-pool-heap-rec) int) - (gap-location (dead-pool-heap dead-pool-heap-rec) pointer) - (find-gap (dead-pool-heap dead-pool-heap-rec) dead-pool-heap-rec) - (find-gap-by-size (dead-pool-heap int) dead-pool-heap-rec) + ;; (new (symbol type string int int) _type_ 0) + (dead-pool-heap-method-16 () none) ;; 16 ;; (init (_type_ symbol int) none 16) + (dead-pool-heap-method-17 () none) ;; 17 ;; (compact (dead-pool-heap int) none 17) + (dead-pool-heap-method-18 () none) ;; 18 ;; (shrink-heap (dead-pool-heap process) dead-pool-heap 18) + (dead-pool-heap-method-19 () none) ;; 19 ;; (churn (dead-pool-heap int) none 19) + (dead-pool-heap-method-20 () none) ;; 20 ;; (memory-used (_type_) int 20) + (dead-pool-heap-method-21 () none) ;; 21 ;; (memory-total (_type_) int 21) + (dead-pool-heap-method-22 () none) ;; 22 ;; (memory-free (dead-pool-heap) int 22) + (dead-pool-heap-method-23 () none) ;; 23 ;; (compact-time (dead-pool-heap) uint 23) + (dead-pool-heap-method-24 () none) ;; 24 ;; (gap-size (dead-pool-heap dead-pool-heap-rec) int 24) + (dead-pool-heap-method-25 () none) ;; 25 ;; (gap-location (dead-pool-heap dead-pool-heap-rec) pointer 25) + (dead-pool-heap-method-26 () none) ;; 26 ;; (find-gap (dead-pool-heap dead-pool-heap-rec) dead-pool-heap-rec 26) + (dead-pool-heap-method-27 () none) ;; 27 ;; (find-gap-by-size (dead-pool-heap int) dead-pool-heap-rec 27) ) ) +|# (deftype stack-frame (basic) ((name symbol :offset 4) @@ -484,202 +1355,65656 @@ :flag-assert #x90000000c ) -;; a "catch" frame is a frame that can be "thrown" to. -;; the "throw" is a nonlocal control flow back to the state before the "catch" block. +#| (deftype catch-frame (stack-frame) - ((sp int32 :offset-assert 12) - (ra int32 :offset-assert 16) - ; (freg float 6 :offset-assert 20) - ; (rreg uint128 8 :offset-assert 48) - ;; In OpenGOAL, we swap a rreg for 4 more fregs. - (freg float 10 :offset-assert 20) ;; only use 8 - (rreg uint128 7) ;; only use 5 - ) + () :method-count-assert 9 :size-assert #xb0 :flag-assert #x9000000b0 - (:methods - (new (symbol type symbol function (pointer uint64)) object) - ) + ;; Failed to read fields. ) +|# +#| (deftype protect-frame (stack-frame) - ((exit (function none) :offset-assert 12) ;; guessed by decompiler - ) - (:methods - (new (symbol type (function none)) protect-frame) - ) + () :method-count-assert 9 :size-assert #x10 :flag-assert #x900000010 + ;; Failed to read fields. ) +|# - +#| (deftype handle (uint64) - ((process (pointer process) :offset 0) - (pid int32 :offset 32) - (u64 uint64 :offset 0) + ((UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. ) - :flag-assert #x900000008 - ) - -(deftype state (protect-frame) - ((code function :offset-assert 16) ;; guessed by decompiler - (trans (function none) :offset-assert 20) ;; guessed by decompiler - (post function :offset-assert 24) ;; guessed by decompiler - (enter function :offset-assert 28) ;; guessed by decompiler - (event (function process int symbol event-message-block object) :offset-assert 32) ;; guessed by decompiler - ) - (:methods - (new (symbol type symbol function - (function none) - function - (function none) - (function process int symbol event-message-block object)) _type_) - ) :method-count-assert 9 - :size-assert #x24 - :flag-assert #x900000024 + :size-assert #x8 + :flag-assert #x900000008 ) +|# +#| +(deftype state (protect-frame) + ((name symbol :offset-assert 4) ;; guessed by decompiler + (next stack-frame :offset-assert 8) ;; guessed by decompiler + (exit (function object) :offset-assert 12) ;; guessed by decompiler + (parent basic :offset-assert 16) + (code function :offset-assert 20) ;; guessed by decompiler + (trans (function object) :offset-assert 24) ;; guessed by decompiler + (post function :offset-assert 28) ;; guessed by decompiler + (enter function :offset-assert 32) ;; guessed by decompiler + (event (function process int symbol event-message-block object) :offset-assert 36) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x28 + :flag-assert #x900000028 + ) +|# + +#| (deftype event-message-block (structure) - ((to-handle handle) - (to (pointer process) :offset 0) ;; overlays process field of handle - (form-handle handle :offset-assert 8) - (from (pointer process) :offset 8) - (param uint64 6) - (message symbol) - (num-params int32) + ((to-handle uint64 :offset-assert 0) ;; handle + (to (pointer process) :offset-assert 0) ;; guessed by decompiler + (from-handle uint64 :offset-assert 8) + (from (pointer process) :offset-assert 8) ;; guessed by decompiler + (param uint64 6 :offset-assert 16) ;; guessed by decompiler + (message symbol :offset-assert 64) ;; guessed by decompiler + (num-params int32 :offset-assert 68) ) :method-count-assert 9 :size-assert #x48 :flag-assert #x900000048 - ;; Failed to read fields. ) +|# - - +#| (deftype event-message-block-array (inline-array-class) - ((data event-message-block :inline :dynamic :offset-assert 16) - ) - :method-count-assert 10 + () + :method-count-assert 15 :size-assert #x10 - :flag-assert #xa00000010 + :flag-assert #xf00000010 + ;; Failed to read fields. (:methods - (send-all! (_type_) none) + (event-message-block-array-method-14 () none) ;; 14 ) ) +|# +;; (deftype sql-result (array) +;; () +;; :flag-assert #x900000010 +;; ) -(deftype process (process-tree) - ((pool dead-pool) - (status symbol :offset-assert 40) - (pid int32) - (main-thread cpu-thread :offset-assert 48) - (top-thread cpu-thread :offset-assert 52) - (entity entity-actor :offset-assert 56) - (level level :offset-assert 60) - (state state :offset-assert 64) - (next-state state :offset-assert 68) - (trans-hook function :offset-assert 72) - (post-hook function :offset-assert 76) - (event-hook (function process int symbol event-message-block object) :offset-assert 80) - (allocated-length int32 :offset-assert 84) - (pad-unknown-0 uint32 2) ;; had to rename this unfortunately, there is a type that uses this same name "vehicle" - (heap-base pointer :offset-assert 96) - (heap-top pointer :offset-assert 100) - (heap-cur pointer :offset-assert 104) - (stack-frame-top stack-frame :offset-assert 108) - (connection-list connectable :inline :offset-assert 112) - (stack uint8 :dynamic :offset-assert 128 :score -1) - ) - (:methods - (new (symbol type string int) _type_) - ) - (:states - dead-state - empty-state) - :size-assert #x80 - :method-count-assert 14 - :no-runtime-type ;; already defined by kscheme. Don't do it again. - ) - -(define-extern *sql-result* sql-result) +;; (define-extern *sql-result* object) ;; sql-result ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; gkernel ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -(define-extern *kernel-version* binteger) -(define-extern *irx-version* binteger) -(define-extern *kernel-boot-mode* symbol) -(define-extern *kernel-boot-level* symbol) -(define-extern *deci-count* int) -(define-extern *last-loado-length* int) -(define-extern *last-loado-global-usage* int) -(define-extern *last-loado-debug-usage* int) -(define-extern *kernel-packages* pair) -(define-extern load-package (function string kheap pair)) -(define-extern unload-package (function string pair)) -(define-extern *kernel-context* kernel-context) -(define-extern *dram-stack* (pointer uint8)) -(define-extern *null-kernel-context* kernel-context) -(define-extern remove-exit (function none :behavior process)) -(define-extern stream<-process-mask (function object process-mask process-mask)) -(define-extern *master-mode* symbol) -(define-extern *pause-lock* symbol) -(define-extern inspect-process-heap (function process symbol)) -(define-extern return-from-thread (function none)) -(define-extern return-from-thread-dead (function none)) -(define-extern reset-and-call (function thread function object)) -(define-extern method-state (function type basic state)) -(define-extern *global-search-name* basic) -(define-extern *global-search-count* int) -(define-extern process-by-name (function string process-tree process)) -(define-extern process-not-name (function string process-tree process)) -(define-extern process-count (function process-tree int)) -(define-extern kill-by-name (function string process-tree symbol)) -(define-extern kill-by-type (function type process-tree symbol)) -(define-extern kill-not-name (function string process-tree symbol)) -(define-extern kill-not-type (function type process-tree symbol)) -(define-extern iterate-process-tree (function process-tree (function object object) kernel-context object)) -(define-extern execute-process-tree (function process-tree (function object object) kernel-context object)) -(define-extern search-process-tree (function process-tree (function process-tree object) process-tree)) -(define-extern kernel-dispatcher (function object)) -(define-extern sync-dispatcher (function object)) -(define-extern inspect-process-tree (function process-tree int int symbol process-tree)) -(define-extern throw-dispatch (function catch-frame object none)) -(define-extern throw (function symbol object int)) -(define-extern previous-brother (function process-tree object)) -(define-extern change-parent (function process-tree process-tree process-tree)) -(define-extern change-brother (function process-tree process-tree object)) -(define-extern change-to-last-brother (function process-tree process-tree)) -(define-extern run-function-in-process (function process function object object object object object object object)) -(define-extern set-to-run-bootstrap (function none)) -(define-extern set-to-run (function cpu-thread function object object object object object object pointer)) -(define-extern entity-deactivate-handler (function process entity-actor none)) -(define-extern *listener-process* process) -(define-extern *null-process* process) -(define-extern *vis-boot* symbol) -(define-extern *kernel-clock* clock) -(define-extern *16k-dead-pool* dead-pool) -(define-extern *8k-dead-pool* dead-pool) -(define-extern *4k-dead-pool* dead-pool) -(define-extern *target-dead-pool* dead-pool) -(define-extern *camera-dead-pool* dead-pool) -(define-extern *camera-master-dead-pool* dead-pool) -(define-extern *debug-dead-pool* dead-pool-heap) -(define-extern *nk-dead-pool* dead-pool-heap) -(define-extern *default-dead-pool* dead-pool) -(define-extern *pickup-dead-pool* dead-pool) -(define-extern *city-dead-pool* dead-pool-heap) -(define-extern *dead-pool-list* pair) -(define-extern *active-pool* process-tree) -(define-extern *display-pool* process-tree) ;; process-tree -(define-extern *camera-pool* process-tree) ;; process-tree -(define-extern *target-pool* process-tree) ;; process-tree -(define-extern *entity-pool* process-tree) ;; process-tree -(define-extern *mid-pool* process-tree) -(define-extern *pusher-pool* process-tree) -(define-extern *bg-pool* process-tree) -(define-extern *default-pool* process-tree) ;; process-tree +(deftype process (process-tree) + ((pool dead-pool) + (status symbol :offset-assert 40) ;; guessed by decompiler + (pid int32) + (main-thread cpu-thread :offset-assert 48) ;; guessed by decompiler + (top-thread cpu-thread :offset-assert 52) ;; guessed by decompiler + (entity entity-actor :offset-assert 56) ;; guessed by decompiler + (level level :offset-assert 60) ;; guessed by decompiler + (state state :offset-assert 64) ;; guessed by decompiler + (prev-state basic :offset-assert 68) + (next-state state :offset-assert 72) ;; guessed by decompiler + (state-stack basic :offset-assert 76) + (trans-hook function :offset-assert 80) ;; guessed by decompiler + (post-hook function :offset-assert 84) ;; guessed by decompiler + (event-hook (function process int symbol event-message-block object) :offset-assert 88) ;; guessed by decompiler + (allocated-length int32 :offset-assert 92) + (heap-base pointer :offset-assert 96) ;; guessed by decompiler + (heap-top pointer :offset-assert 100) ;; guessed by decompiler + (heap-cur pointer :offset-assert 104) ;; guessed by decompiler + (stack-frame-top stack-frame :offset-assert 108) ;; guessed by decompiler + (connection-list connectable :inline :offset-assert 112) + (stack uint8 :dynamic :offset-assert 128) ;; guessed by decompiler + ) + :method-count-assert 14 + :size-assert #x80 + :flag-assert #xe00000080 + (:methods + ;; (new (symbol type string int) _type_ 0) + ) + (:states + dead-state ;; 10 + ) + ) + +;; dead-pool-heap is already defined! + +;; (define-extern *kernel-version* object) ;; binteger +;; (define-extern *irx-version* object) ;; binteger +;; (define-extern *kernel-boot-mode* object) ;; symbol +;; (define-extern *kernel-boot-level* object) ;; symbol +;; (define-extern *deci-count* object) ;; int +;; (define-extern *last-loado-length* object) ;; int +;; (define-extern *last-loado-global-usage* object) ;; int +;; (define-extern *last-loado-debug-usage* object) ;; int +;; (define-extern *kernel-packages* object) ;; pair +;; (define-extern load-package function) ;; (function string kheap pair) +;; (define-extern unload-package function) ;; (function string pair) +;; (define-extern *kernel-context* kernel-context) ;; kernel-context +;; (define-extern *dram-stack* object) ;; (pointer uint8) +;; (define-extern *null-kernel-context* kernel-context) ;; kernel-context +;; (define-extern remove-exit function) ;; (function none :behavior process) +;; (define-extern stream<-process-mask function) ;; (function object process-mask process-mask) +;; (define-extern *master-mode* object) ;; symbol +;; (define-extern *pause-lock* object) ;; symbol +;; (define-extern inspect-process-heap function) ;; (function process symbol) +;; (define-extern return-from-thread function) ;; (function none) +;; (define-extern return-from-thread-dead function) ;; (function none) +;; (define-extern reset-and-call function) ;; (function thread function object) +;; (define-extern method-state function) ;; (function type basic state) +;; (define-extern *global-search-name* object) ;; basic +;; (define-extern *global-search-count* object) ;; int +;; (define-extern process-by-name function) ;; (function string process-tree process) +;; (define-extern process-not-name function) ;; (function string process-tree process) +;; (define-extern process-count function) ;; (function process-tree int) +;; (define-extern kill-by-name function) ;; (function string process-tree symbol) +;; (define-extern kill-by-type function) ;; (function type process-tree symbol) +;; (define-extern kill-not-name function) ;; (function string process-tree symbol) +;; (define-extern kill-not-type function) ;; (function type process-tree symbol) +;; (define-extern kill-by-type-inherited function) +;; (define-extern iterate-process-tree function) ;; (function process-tree (function object object) kernel-context object) +;; (define-extern execute-process-tree function) ;; (function process-tree (function object object) kernel-context object) +;; (define-extern search-process-tree function) ;; (function process-tree (function process-tree object) process) +;; (define-extern kernel-dispatcher function) ;; (function object) +;; (define-extern sync-dispatcher function) ;; (function object) +;; (define-extern inspect-process-tree function) ;; (function process-tree int int symbol process-tree) +;; (define-extern throw-dispatch function) ;; (function catch-frame object none) +;; (define-extern throw function) ;; (function symbol object int) +;; (define-extern previous-brother function) ;; (function process-tree object) +;; (define-extern change-parent function) ;; (function process-tree process-tree process-tree) +;; (define-extern change-brother function) ;; (function process-tree process-tree object) +;; (define-extern change-to-last-brother function) ;; (function process-tree process-tree) +;; (define-extern run-function-in-process function) ;; (function process function object object object object object object object) +;; (define-extern set-to-run-bootstrap function) ;; (function none) +;; (define-extern set-to-run function) ;; (function cpu-thread function object object object object object object pointer) +;; (define-extern entity-deactivate-handler object) ;; (function process entity-actor none) +;; (define-extern *kernel-clock* clock) ;; clock +;; (define-extern *vis-boot* object) ;; symbol +;; (define-extern *null-process* object) ;; process +;; (define-extern *listener-process* object) ;; process +;; (define-extern *16k-dead-pool* object) ;; dead-pool +;; (define-extern *8k-dead-pool* object) ;; dead-pool +;; (define-extern *4k-dead-pool* object) ;; dead-pool +;; (define-extern *target-dead-pool* object) ;; dead-pool +;; (define-extern *camera-dead-pool* object) ;; dead-pool +;; (define-extern *camera-master-dead-pool* object) ;; dead-pool +;; (define-extern *debug-dead-pool* object) ;; dead-pool-heap +;; (define-extern *nk-dead-pool* object) ;; dead-pool-heap +;; (define-extern *default-dead-pool* object) ;; dead-pool +;; (define-extern *pickup-dead-pool* object) ;; dead-pool +;; (define-extern *dead-pool-list* object) ;; pair +;; (define-extern *active-pool* object) ;; process-tree +;; (define-extern *display-pool* object) ;; process-tree +;; (define-extern *camera-pool* object) ;; process-tree +;; (define-extern *target-pool* object) ;; process-tree +;; (define-extern *entity-pool* object) ;; process-tree +;; (define-extern *mid-pool* object) ;; process-tree +;; (define-extern *pusher-pool* object) ;; process-tree +;; (define-extern *bg-pool* object) ;; process-tree +;; (define-extern *default-pool* object) ;; process-tree + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; dma-bucket ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern dma-buffer-add-buckets function) ;; (function dma-buffer int (inline-array dma-bucket)) +;; (define-extern dma-buffer-patch-buckets function) ;; (function (inline-array dma-bucket) int (inline-array dma-bucket)) +;; (define-extern dma-bucket-insert-tag function) ;; (function (inline-array dma-bucket) bucket-id pointer (pointer dma-tag) pointer) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; cloth-art-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype cloth-pt (structure) + ((pt vector :inline :offset-assert 0) + (u float :offset-assert 16) + (v float :offset-assert 20) + ) + :method-count-assert 9 + :size-assert #x18 + :flag-assert #x900000018 + ) +|# + +#| +(deftype anchor-transform (structure) + ((offset vector :inline :offset-assert 0) + (joint-name basic :offset-assert 16) + (joint int16 :offset-assert 20) + (constraint-index int16 :offset-assert 22) + ) + :method-count-assert 9 + :size-assert #x18 + :flag-assert #x900000018 + ) +|# + +#| +(deftype sphere-transform (structure) + ((offset vector :inline :offset-assert 0) + (joint-name basic :offset-assert 16) + (radius float :offset-assert 20) + (joint int16 :offset-assert 24) + ) + :method-count-assert 9 + :size-assert #x1a + :flag-assert #x90000001a + ) +|# + +#| +(deftype disc-transform (structure) + ((offset vector :inline :offset-assert 0) + (normal vector :inline :offset-assert 16) + (joint-name basic :offset-assert 32) + (radius float :offset-assert 36) + (joint int16 :offset-assert 40) + (start-particle-index int16 :offset-assert 42) + (end-particle-index int16 :offset-assert 44) + ) + :method-count-assert 9 + :size-assert #x2e + :flag-assert #x90000002e + ) +|# + +#| +(deftype anchor-transform-array (inline-array-class) + ((data UNKNOWN :dynamic :offset-assert 16) + ) + :method-count-assert 14 + :size-assert #x10 + :flag-assert #xe00000010 + ) +|# + +#| +(deftype sphere-transform-array (inline-array-class) + ((data UNKNOWN :dynamic :offset-assert 16) + ) + :method-count-assert 14 + :size-assert #x10 + :flag-assert #xe00000010 + ) +|# + +#| +(deftype disc-transform-array (inline-array-class) + ((data UNKNOWN :dynamic :offset-assert 16) + ) + :method-count-assert 14 + :size-assert #x10 + :flag-assert #xe00000010 + ) +|# + +#| +(deftype cloth-thickness-array (inline-array-class) + ((data UNKNOWN :dynamic :offset-assert 16) + ) + :method-count-assert 14 + :size-assert #x10 + :flag-assert #xe00000010 + ) +|# + +#| +(deftype cloth-params (structure) + ((mesh int16 :offset-assert 0) + (gravity-constant float :offset-assert 4) + (wind-constant float :offset-assert 8) + (cloth-width uint16 :offset-assert 12) + (num-sphere-constraints uint16 :offset-assert 14) + (num-disc-constraints uint16 :offset-assert 16) + (num-anchor-points uint16 :offset-assert 18) + (flags uint64 :offset-assert 24) + (tex-name basic :offset-assert 32) + (tex-name2 basic :offset-assert 36) + (tex-name3 basic :offset-assert 40) + (alt-tex-name basic :offset-assert 44) + (alt-tex-name2 basic :offset-assert 48) + (alt-tex-name3 basic :offset-assert 52) + (cloth-thickness float :offset-assert 56) + (initial-xform int16 :offset-assert 60) + (drag float :offset-assert 64) + (ball-collision-radius float :offset-assert 68) + (num-iterations int8 :offset-assert 72) + (timestep-frequency int8 :offset-assert 73) + (secret-disable uint64 :offset-assert 80) + ) + :method-count-assert 9 + :size-assert #x58 + :flag-assert #x900000058 + ) +|# + +#| +(deftype cloth-base (basic) + () + :method-count-assert 11 + :size-assert #x4 + :flag-assert #xb00000004 + (:methods + (cloth-base-method-9 () none) ;; 9 + (cloth-base-method-10 () none) ;; 10 + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; script ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern command-get-int function) ;; (function object int int) +;; (define-extern command-get-float function) ;; (function object float float) +;; (define-extern command-get-time function) ;; (function object int time-frame) +;; (define-extern command-get-param function) ;; (function object object object) +;; (define-extern command-get-quoted-param function) ;; (function object object object) +;; (define-extern command-get-process function) ;; (function object process process) +;; (define-extern command-get-entity function) ;; (function object entity entity) +;; (define-extern command-get-trans function) ;; (function object vector vector) +;; (define-extern key-assoc function) ;; (function object pair vector4w pair) +;; (define-extern *script-form* object) ;; (inline-array script-form) +;; (define-extern level-from-heap function) ;; (function int level) +;; (define-extern *syntax-context* object) ;; script-context +;; (define-extern *script-context* object) ;; script-context + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; drawable-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype drawable (basic) + ((id int16 :offset-assert 4) + (bsphere vector :inline :offset-assert 16) + ) + :method-count-assert 17 + :size-assert #x20 + :flag-assert #x1100000020 + (:methods + (drawable-method-9 () none) ;; 9 ;; (login (_type_) _type_ 9) + (drawable-method-10 () none) ;; 10 ;; (draw (_type_ _type_ display-frame) none 10) + (drawable-method-11 () none) ;; 11 ;; (fill-collide-list-from-box (_type_ int collide-list collide-query) int 11) + (drawable-method-12 () none) ;; 12 ;; (fill-collide-list-from-line-sphere (_type_ int collide-list collide-query) int 12) + (drawable-method-13 () none) ;; 13 ;; (collect-stats (_type_) none 13) + (drawable-method-14 () none) ;; 14 ;; (debug-draw (_type_ drawable display-frame) none 14) + (drawable-method-15 () none) ;; 15 ;; (unpack-vis (_type_ (pointer int8) (pointer int8)) (pointer int8) 15) + (drawable-method-16 () none) ;; 16 ;; (collect-regions (_type_ sphere int region-prim-list) none 16) + ) + ) +|# + +#| +(deftype drawable-error (drawable) + ((name string :offset-assert 32) ;; guessed by decompiler + ) + :method-count-assert 17 + :size-assert #x24 + :flag-assert #x1100000024 + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; generic-vu1-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype pris-mtx (structure) + ((data float 32 :offset-assert 0) ;; guessed by decompiler + (vector vector 8 :offset-assert 0) ;; guessed by decompiler + (t-mtx matrix :inline :offset-assert 0) + (n-mtx matrix3 :inline :offset-assert 64) + (scale vector :inline :offset-assert 112) + ) + :method-count-assert 9 + :size-assert #x80 + :flag-assert #x900000080 + ) +|# + +#| +(deftype generic-pris-mtx-save (structure) + ((loc-mtx pris-mtx :inline :offset-assert 0) + (par-mtx pris-mtx :inline :offset-assert 128) + (dif-mtx pris-mtx :inline :offset-assert 256) + ) + :method-count-assert 9 + :size-assert #x180 + :flag-assert #x900000180 + ) +|# + +#| +(deftype generic-constants (structure) + ((fog vector :inline :offset-assert 0) + (adgif qword :inline :offset-assert 16) ;; gs-gif-tag :inline + (hvdf-offset vector :inline :offset-assert 32) + (hmge-scale vector :inline :offset-assert 48) + (invh-scale vector :inline :offset-assert 64) + (guard vector :inline :offset-assert 80) + (flush qword :inline :offset-assert 96) + (stores qword :inline :offset-assert 112) + ) + :method-count-assert 9 + :size-assert #x80 + :flag-assert #x900000080 + ) +|# + +#| +(deftype generic-shrub-constants (structure) + ((shrub-giftag generic-gif-tag :inline :offset-assert 0) + (shrub-adnop qword :inline :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x20 + :flag-assert #x900000020 + ) +|# + +#| +(deftype gcf-shader (structure) + ((adgif uint128 5 :offset-assert 0) ;; guessed by decompiler + (shader adgif-shader :inline :offset-assert 0) + (pos uint32 :offset-assert 12) + (num uint32 :offset-assert 28) + ) + :method-count-assert 9 + :size-assert #x50 + :flag-assert #x900000050 + ) +|# + +#| +(deftype gcf-control (structure) + ((matrix matrix :inline :offset-assert 0) + (giftag generic-gif-tag :inline :offset-assert 64) + (adnops gs-adcmd 2 :offset-assert 80) ;; guessed by decompiler + (num-strips uint32 :offset-assert 76) + (num-dps uint32 :offset-assert 92) + (kick-offset uint32 :offset-assert 108) + (shader gcf-shader :dynamic :offset-assert 112) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x70 + :flag-assert #x900000070 + ) +|# + +#| +(deftype gcf-vertex (structure) + ((tex vector4w :inline :offset-assert 0) + (clr gs-packed-rgba :inline :offset-assert 16) + (pos gs-packed-xyzw :inline :offset-assert 32) + ) + :method-count-assert 9 + :size-assert #x30 + :flag-assert #x900000030 + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; precurd-scenes ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype precurd-states (structure) + ((pulse pulse-state :inline :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +;; (define-extern *beam-appearance-1* object) +;; (define-extern *beam-appearance-2* object) +;; (define-extern *beam-appearance-3* object) +;; (define-extern *beam-appearance-4* object) +;; (define-extern *beam-appearance-5* object) +;; (define-extern *beam-appearance-6* object) +;; (define-extern init-mood-precurd function) +;; (define-extern update-mood-precurd function) +;; (define-extern precurd-lightjak-do-effect function) +;; (define-extern precurd-lightjak-stop-effect function) +;; (define-extern *range-precursor-explo-color* curve-color-fast) +;; (define-extern *range-precursor-explo-alpha* curve2d-fast) +;; (define-extern *range-precursor-explo-scale-x* curve2d-fast) +;; (define-extern *range-precursor-explo-scale-y* curve2d-fast) +;; (define-extern *curve-precursor-explo-alpha* curve2d-fast) +;; (define-extern *curve-precursor-explo-scale-x* curve2d-fast) +;; (define-extern *curve-precursor-explo-scale-y* curve2d-fast) +;; (define-extern *part-precursor-ship-explosion-texture-curve-settings* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; gstring-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; joint-mod ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern joint-mod-ik-callback function) ;; (function cspace transformq none :behavior process) +;; (define-extern real-joint-mod-gun-look-at-handler function) ;; (function cspace transformq none :behavior process) +;; (define-extern joint-mod-gun-look-at-handler function) ;; (function cspace transformq none :behavior process) +;; (define-extern joint-mod-foot-rot-handler function) ;; (function cspace transformq none :behavior process) +;; (define-extern last-try-to-look-at-data object) ;; try-to-look-at-info +;; (define-extern joint-mod-look-at-handler function) ;; (function cspace transformq none :behavior process) +;; (define-extern joint-mod-world-look-at-handler function) ;; (function cspace transformq none :behavior process) +;; (define-extern joint-mod-rotate-handler function) ;; (function cspace transformq none :behavior process) +;; (define-extern joint-mod-scale-handler function) ;; (function cspace transformq none :behavior process) +;; (define-extern joint-mod-joint-set-handler function) ;; (function cspace transformq none :behavior process) +;; (define-extern joint-mod-joint-set-world-handler function) ;; (function cspace transformq none :behavior process) +;; (define-extern joint-mod-joint-set*-handler function) ;; (function cspace transformq none :behavior process) +;; (define-extern joint-mod-joint-set*-world-handler function) ;; (function cspace transformq none :behavior process) +;; (define-extern joint-mod-polar-look-at-callback function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; pskernel ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype lowmemmap (structure) + ((irq-info-stack uint32 :offset-assert 0) + (irq2-info-stack uint32 :offset-assert 4) + (kernel-copy-fn uint32 :offset-assert 8) + (kernel-write-fn uint32 :offset-assert 12) + (r1-save uint128 :offset-assert 16) + (last-time uint32 :offset-assert 32) + (high-time uint32 :offset-assert 36) + (dma-status uint32 :offset-assert 40) + (dma-qnext uint32 :offset-assert 44) + (dma-qwc uint32 :offset-assert 48) + (dma-tnext uint32 :offset-assert 52) + (dma-stack0 uint32 :offset-assert 56) + (dma-stack1 uint32 :offset-assert 60) + (kernel-read-fn uint32 :offset-assert 64) + ) + :method-count-assert 9 + :size-assert #x44 + :flag-assert #x900000044 + ) +|# + +;; (define-extern kernel-copy-function function) ;; (function object (pointer int32) int32 int32 none) +;; (define-extern kernel-copy-to-kernel-ram function) ;; (function none) +;; (define-extern kernel-write-function function) ;; (function object object object none) +;; (define-extern kernel-write function) ;; (function none) +;; (define-extern kernel-read-function function) ;; (function object (pointer int32) none) +;; (define-extern kernel-read function) ;; (function none) +;; (define-extern kernel-check-hardwired-addresses function) ;; (function none) +;; (define-extern install-default-debug-handler function) ;; (function object none) +;; (define-extern return-from-exception function) ;; (function object none) +;; (define-extern kernel-set-exception-vector function) ;; (function object none) +;; (define-extern kernel-set-interrupt-vector function) ;; (function none) +;; (define-extern kernel-set-level2-vector function) ;; (function object object none) +;; (define-extern deinstall-debug-handler function) ;; (function none) +;; (define-extern deinstall-debug-handlers function) ;; (function none) +;; (define-extern resend-exception function) ;; (function object object object object none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; level-info ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *task-level* array) ;; (array symbol) +;; (define-extern default-level level-load-info) ;; level-load-info +;; (define-extern intro level-load-info) ;; level-load-info +;; (define-extern title level-load-info) ;; level-load-info +;; (define-extern vinroom level-load-info) ;; level-load-info +;; (define-extern ljkdxvin level-load-info) +;; (define-extern lvincst level-load-info) +;; (define-extern powergd level-load-info) +;; (define-extern ctywide level-load-info) ;; level-load-info +;; (define-extern ctywide-ff level-load-info) +;; (define-extern ctywide-ff-kg level-load-info) +;; (define-extern ctywide-ff-mh level-load-info) +;; (define-extern ctywide-kg level-load-info) +;; (define-extern ctywide-mh level-load-info) +;; (define-extern ctywide-mh-kg level-load-info) +;; (define-extern citycast level-load-info) +;; (define-extern gridcst level-load-info) +;; (define-extern ctycara level-load-info) +;; (define-extern ctycarkg level-load-info) +;; (define-extern ctycarb level-load-info) +;; (define-extern ctycarc level-load-info) +;; (define-extern ctypepa level-load-info) +;; (define-extern lpatkcs level-load-info) +;; (define-extern lblowtmh level-load-info) +;; (define-extern lblowtkg level-load-info) +;; (define-extern ctypepb level-load-info) +;; (define-extern lblowcst level-load-info) +;; (define-extern ctypepc level-load-info) +;; (define-extern ctypesa level-load-info) +;; (define-extern ctypesb level-load-info) +;; (define-extern ctypesc level-load-info) +;; (define-extern intpfall level-load-info) +;; (define-extern ctygenb level-load-info) ;; level-load-info +;; (define-extern ctysluma level-load-info) ;; level-load-info +;; (define-extern ctyslumb level-load-info) ;; level-load-info +;; (define-extern slumbset level-load-info) +;; (define-extern ctyslumc level-load-info) ;; level-load-info +;; (define-extern ctyport level-load-info) ;; level-load-info +;; (define-extern ctyfarma level-load-info) ;; level-load-info +;; (define-extern ctyfarmb level-load-info) ;; level-load-info +;; (define-extern ctyinda level-load-info) ;; level-load-info +;; (define-extern ctyindb level-load-info) ;; level-load-info +;; (define-extern stadium level-load-info) ;; level-load-info +;; (define-extern stadiuma level-load-info) +;; (define-extern lppatrol level-load-info) +;; (define-extern lpattack level-load-info) +;; (define-extern stadiumb level-load-info) ;; level-load-info +;; (define-extern towera level-load-info) +;; (define-extern towerb level-load-info) +;; (define-extern towerc level-load-info) +;; (define-extern towercst level-load-info) +;; (define-extern ltowera level-load-info) +;; (define-extern ltowcity level-load-info) +;; (define-extern ltowerb level-load-info) +;; (define-extern rubblea level-load-info) +;; (define-extern rubblea2 level-load-info) +;; (define-extern rubbleb level-load-info) +;; (define-extern rubblec level-load-info) +;; (define-extern rublcst level-load-info) +;; (define-extern lbombbot level-load-info) ;; level-load-info +;; (define-extern ljinx level-load-info) +;; (define-extern lctypatk level-load-info) +;; (define-extern lctyhijk level-load-info) +;; (define-extern lctypalt level-load-info) +;; (define-extern lctyass level-load-info) +;; (define-extern lctydest level-load-info) +;; (define-extern lctyprot level-load-info) +;; (define-extern lctyblow level-load-info) +;; (define-extern lctysnpr level-load-info) +;; (define-extern onintent level-load-info) ;; level-load-info +;; (define-extern lbbush level-load-info) ;; level-load-info +;; (define-extern hiphog level-load-info) ;; level-load-info +;; (define-extern ltnjxhip level-load-info) +;; (define-extern gungame level-load-info) ;; level-load-info +;; (define-extern gungame1 level-load-info) +;; (define-extern gungame2 level-load-info) +;; (define-extern citylow level-load-info) +;; (define-extern freehq level-load-info) +;; (define-extern freecast level-load-info) +;; (define-extern lfreeout level-load-info) +;; (define-extern mhctycst level-load-info) +;; (define-extern mhcitya level-load-info) +;; (define-extern mhcityb level-load-info) +;; (define-extern lmhcitya level-load-info) +;; (define-extern lmhcityb level-load-info) +;; (define-extern comba level-load-info) +;; (define-extern combb level-load-info) +;; (define-extern combc level-load-info) +;; (define-extern combd level-load-info) +;; (define-extern combe level-load-info) +;; (define-extern combm level-load-info) +;; (define-extern combn level-load-info) +;; (define-extern combx level-load-info) +;; (define-extern raila level-load-info) +;; (define-extern railb level-load-info) +;; (define-extern railb2 level-load-info) +;; (define-extern railc level-load-info) +;; (define-extern raild level-load-info) +;; (define-extern raile level-load-info) +;; (define-extern railf level-load-info) +;; (define-extern railx level-load-info) +;; (define-extern lcitysml level-load-info) +;; (define-extern railcst level-load-info) +;; (define-extern minea level-load-info) +;; (define-extern lpeckfly level-load-info) +;; (define-extern mineb level-load-info) +;; (define-extern minec level-load-info) +;; (define-extern mined level-load-info) +;; (define-extern minee level-load-info) +;; (define-extern sewa level-load-info) +;; (define-extern sewb level-load-info) +;; (define-extern sewc level-load-info) +;; (define-extern sewd level-load-info) +;; (define-extern sewe level-load-info) +;; (define-extern sewf level-load-info) +;; (define-extern sewg level-load-info) +;; (define-extern sewh level-load-info) +;; (define-extern sewi level-load-info) +;; (define-extern sewj level-load-info) +;; (define-extern sewk level-load-info) +;; (define-extern sewl level-load-info) +;; (define-extern sewm level-load-info) +;; (define-extern sewn level-load-info) +;; (define-extern sewo level-load-info) +;; (define-extern forestx level-load-info) +;; (define-extern foresta level-load-info) +;; (define-extern lforplnt level-load-info) +;; (define-extern lforring level-load-info) +;; (define-extern lformach level-load-info) +;; (define-extern forestb level-load-info) ;; level-load-info +;; (define-extern wasintro level-load-info) +;; (define-extern introcst level-load-info) ;; level-load-info +;; (define-extern intpalrf level-load-info) +;; (define-extern inttitle level-load-info) +;; (define-extern wasall level-load-info) +;; (define-extern waswide level-load-info) +;; (define-extern wascitya level-load-info) +;; (define-extern lseemwca level-load-info) +;; (define-extern wascityb level-load-info) +;; (define-extern wascast level-load-info) +;; (define-extern wasseem level-load-info) +;; (define-extern waspgame level-load-info) +;; (define-extern wasdefen level-load-info) +;; (define-extern wcaseem level-load-info) +;; (define-extern wasleapr level-load-info) +;; (define-extern wasdoors level-load-info) +;; (define-extern outrocst level-load-info) ;; level-load-info +;; (define-extern outcast3 level-load-info) +;; (define-extern loutro level-load-info) +;; (define-extern loutro2 level-load-info) +;; (define-extern loutro3 level-load-info) +;; (define-extern wasstada level-load-info) +;; (define-extern wasstadb level-load-info) +;; (define-extern wasstadc level-load-info) +;; (define-extern arenacst level-load-info) +;; (define-extern museum level-load-info) +;; (define-extern museum2 level-load-info) +;; (define-extern museum3 level-load-info) +;; (define-extern museum3b level-load-info) +;; (define-extern museum4 level-load-info) +;; (define-extern museum4b level-load-info) +;; (define-extern temp level-load-info) +;; (define-extern ldampeck level-load-info) +;; (define-extern ldmpckgn level-load-info) +;; (define-extern ldamsig level-load-info) +;; (define-extern ldampksm level-load-info) +;; (define-extern lkleever level-load-info) +;; (define-extern lsig level-load-info) +;; (define-extern lsigklv level-load-info) +;; (define-extern lsigjakc level-load-info) +;; (define-extern loninsim level-load-info) +;; (define-extern ljakc level-load-info) +;; (define-extern ljakndax level-load-info) +;; (define-extern lsamos level-load-info) +;; (define-extern ljakcklv level-load-info) +;; (define-extern ljkcdmkl level-load-info) +;; (define-extern ldamklev level-load-info) +;; (define-extern lashelin level-load-info) +;; (define-extern ljak level-load-info) +;; (define-extern ljakklev level-load-info) +;; (define-extern ljaksig level-load-info) +;; (define-extern ljkdmpk level-load-info) +;; (define-extern ljndklev level-load-info) +;; (define-extern ltorn level-load-info) +;; (define-extern lerrol level-load-info) ;; level-load-info +;; (define-extern ltornsam level-load-info) +;; (define-extern ltornjnx level-load-info) +;; (define-extern ltnfxhip level-load-info) +;; (define-extern lwlandm level-load-info) +;; (define-extern ltrtwhls level-load-info) +;; (define-extern lsnkwhls level-load-info) +;; (define-extern lbiped level-load-info) +;; (define-extern lmech level-load-info) +;; (define-extern lprenme level-load-info) +;; (define-extern lgunnorm level-load-info) +;; (define-extern lgunrnc level-load-info) +;; (define-extern waschase level-load-info) +;; (define-extern waspala level-load-info) +;; (define-extern lwstdpck level-load-info) +;; (define-extern ljkfeet level-load-info) +;; (define-extern desert level-load-info) +;; (define-extern warpcast level-load-info) +;; (define-extern deserta level-load-info) +;; (define-extern desbcst level-load-info) +;; (define-extern deserrol level-load-info) +;; (define-extern desertb level-load-info) +;; (define-extern desertc level-load-info) +;; (define-extern desertd level-load-info) +;; (define-extern deserte level-load-info) +;; (define-extern desertf level-load-info) +;; (define-extern desertg level-load-info) +;; (define-extern ldesgcst level-load-info) +;; (define-extern deserth level-load-info) +;; (define-extern deswalk level-load-info) +;; (define-extern desert-game level-load-info) +;; (define-extern desrace1 level-load-info) +;; (define-extern desboss1 level-load-info) +;; (define-extern desboss2 level-load-info) +;; (define-extern desinter level-load-info) +;; (define-extern destrack level-load-info) +;; (define-extern desrally level-load-info) +;; (define-extern deshover level-load-info) +;; (define-extern deshunt level-load-info) +;; (define-extern desliz level-load-info) +;; (define-extern desresc level-load-info) +;; (define-extern desrescc level-load-info) +;; (define-extern desrescg level-load-info) +;; (define-extern desoasis level-load-info) +;; (define-extern oasiscst level-load-info) +;; (define-extern desjump level-load-info) +;; (define-extern deschase level-load-info) +;; (define-extern desbattl level-load-info) +;; (define-extern lwassig level-load-info) +;; (define-extern lwasbbv level-load-info) +;; (define-extern lnstcst level-load-info) +;; (define-extern lbbring1 level-load-info) +;; (define-extern lbbring2 level-load-info) +;; (define-extern lbbring3 level-load-info) +;; (define-extern lbbring4 level-load-info) +;; (define-extern lbbring5 level-load-info) +;; (define-extern lbbring6 level-load-info) +;; (define-extern lbbring7 level-load-info) +;; (define-extern lbbtcha1 level-load-info) +;; (define-extern lbbtcha2 level-load-info) +;; (define-extern lbbtcha3 level-load-info) +;; (define-extern lbbspid level-load-info) +;; (define-extern lbbspirt level-load-info) +;; (define-extern lbbsprt2 level-load-info) +;; (define-extern lbbsprt3 level-load-info) +;; (define-extern lbbsdrp1 level-load-info) +;; (define-extern lbbsdrp2 level-load-info) +;; (define-extern lbbsdrp3 level-load-info) +;; (define-extern nsta level-load-info) +;; (define-extern nstb level-load-info) +;; (define-extern lnstoba level-load-info) +;; (define-extern lnstobb level-load-info) +;; (define-extern lnstobc level-load-info) +;; (define-extern templex level-load-info) +;; (define-extern templea level-load-info) +;; (define-extern templeb level-load-info) +;; (define-extern templec level-load-info) +;; (define-extern templed level-load-info) +;; (define-extern templee level-load-info) +;; (define-extern hanga level-load-info) +;; (define-extern hangb level-load-info) +;; (define-extern volcanox level-load-info) +;; (define-extern volcanoa level-load-info) +;; (define-extern factorya level-load-info) +;; (define-extern lfactory level-load-info) +;; (define-extern lfaccar level-load-info) +;; (define-extern lfacrm1 level-load-info) +;; (define-extern lfacrm2 level-load-info) +;; (define-extern lfaccity level-load-info) +;; (define-extern lfacctyb level-load-info) +;; (define-extern factoryb level-load-info) +;; (define-extern factoryc level-load-info) +;; (define-extern factoryd level-load-info) +;; (define-extern lfacout level-load-info) +;; (define-extern warinta level-load-info) +;; (define-extern precura level-load-info) +;; (define-extern precurb level-load-info) +;; (define-extern precurc level-load-info) +;; (define-extern lprecurc level-load-info) +;; (define-extern precurd level-load-info) +;; (define-extern bikearena level-load-info) +;; (define-extern halfpipe level-load-info) ;; level-load-info +;; (define-extern sndtest level-load-info) +;; (define-extern vistest level-load-info) ;; level-load-info +;; (define-extern bsbs level-load-info) +;; (define-extern tobytest level-load-info) ;; level-load-info +;; (define-extern hermtest level-load-info) +;; (define-extern chartest level-load-info) ;; level-load-info +;; (define-extern ctyfence level-load-info) ;; level-load-info +;; (define-extern testisle level-load-info) +;; (define-extern gregtest level-load-info) +;; (define-extern 4amy level-load-info) +;; (define-extern *level-load-list* object) ;; pair + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; hover-nav-towera ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *towera-adjacency* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; hvehicle-util ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; height-map-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype xz-height-map (structure) + ((offset float 3 :offset-assert 0) ;; guessed by decompiler + (x-offset float :offset-assert 0) + (y-offset float :offset-assert 4) + (z-offset float :offset-assert 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) ;; guessed by decompiler + (x-dim int16 :offset-assert 24) + (z-dim int16 :offset-assert 26) + (data (pointer int8) :offset-assert 28) ;; guessed by decompiler + ) + :method-count-assert 15 + :size-assert #x20 + :flag-assert #xf00000020 + (:methods + (xz-height-map-method-9 () none) ;; 9 ;; (get-height-at-point (_type_ vector) float 9) + (xz-height-map-method-10 () none) ;; 10 ;; (debug-draw-mesh (_type_ vector) none 10) + (xz-height-map-method-11 () none) ;; 11 ;; (debug-print (_type_) none 11) + (xz-height-map-method-12 () none) ;; 12 ;; (debug-draw-at-point (_type_ vector) none 12) + (xz-height-map-method-13 () none) ;; 13 ;; (debug-draw (_type_ vector) none 13) + (xz-height-map-method-14 () none) ;; 14 ;; (debug-add-offset (_type_ vector int) none 14) + ) + ) +|# + +;; (define-extern get-traffic-height function) ;; (function vector float) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; camera-defs-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype camera-bank (basic) + ((collide-move-rad float :offset-assert 4) + (joypad uint32 :offset-assert 8) + (min-detectable-velocity float :offset-assert 12) + (attack-timeout uint64 :offset-assert 16) ;; time-frame + (default-string-max-y meters :offset-assert 24) + (default-string-min-y meters :offset-assert 28) + (default-string-max-z meters :offset-assert 32) + (default-string-min-z meters :offset-assert 36) + (default-string-push-z meters :offset-assert 40) + (default-tilt-adjust deg :offset-assert 44) ;; degrees + ) + :method-count-assert 9 + :size-assert #x30 + :flag-assert #x900000030 + ) +|# + +#| +(deftype camera-master-bank (basic) + ((onscreen-head-height meters :offset-assert 4) + (onscreen-foot-height meters :offset-assert 8) + (target-height meters :offset-assert 12) + (up-move-to-pitch-ratio-in-air float :offset-assert 16) + (down-move-to-pitch-ratio-in-air float :offset-assert 20) + (up-move-to-pitch-on-ground float :offset-assert 24) + (down-move-to-pitch-on-ground float :offset-assert 28) + (pitch-off-blend float :offset-assert 32) + ) + :method-count-assert 9 + :size-assert #x24 + :flag-assert #x900000024 + ) +|# + +;; (define-extern *CAMERA-bank* camera-bank) ;; camera-bank +;; (define-extern *CAMERA_MASTER-bank* camera-master-bank) ;; camera-master-bank + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; turtle-training ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype des-train-bollard (process-drawable) + () + :method-count-assert 21 + :size-assert #xc8 + :flag-assert #x15005000c8 + (:state-methods + idle ;; 20 + ) + ) +|# + +#| +(deftype des-train-barrier (process-drawable) + () + :method-count-assert 21 + :size-assert #xc8 + :flag-assert #x15005000c8 + (:state-methods + idle ;; 20 + ) + ) +|# + +#| +(deftype des-train-stones (process-drawable) + () + :method-count-assert 21 + :size-assert #xc8 + :flag-assert #x15005000c8 + (:state-methods + idle ;; 20 + ) + ) +|# + +#| +(deftype turtle-training-goal (structure) + ((pos vector :inline :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype task-manager-desert-turtle-training (task-manager) + ((goal-array UNKNOWN 7 :offset-assert 240) + (door-plane vector :inline :offset-assert 352) + (start-pos vector :inline :offset-assert 368) + (goal-pos vector :inline :offset-assert 384) + (player-pos vector :inline :offset-assert 400) + (player-vel vector :inline :offset-assert 416) + (player-controls vehicle-controls :inline :offset-assert 432) + (test-time uint64 :offset-assert 456) + (max-count int16 :offset-assert 464) + (show-message? basic :offset-assert 468) + ) + :method-count-assert 33 + :size-assert #x1d8 + :flag-assert #x21016001d8 + (:methods + (task-manager-desert-turtle-training-method-32 () none) ;; 32 + ) + (:state-methods + active ;; 15 + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; vu1-user-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype dma-foreground-sink (basic) + ((bucket int32 :offset-assert 4) ;; bucket-id + (foreground-texture-page int8 :offset-assert 8) ;; tpage-category + (foreground-texture-level int8 :offset-assert 9) + (foreground-output-bucket int8 :offset-assert 10) + ) + :method-count-assert 9 + :size-assert #xb + :flag-assert #x90000000b + ) +|# + +#| +(deftype generic-bucket-state (structure) + ((gifbuf-adr uint32 :offset-assert 0) + (inbuf-adr uint32 :offset-assert 4) + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +#| +(deftype generic-dma-foreground-sink (dma-foreground-sink) + ((state generic-bucket-state :inline :offset-assert 12) + ) + :method-count-assert 9 + :size-assert #x14 + :flag-assert #x900000014 + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; enemy-states ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern gun-dark-2-anim-code function) +;; (define-extern gun-dark-2-ragdoll-start function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ctyslumb-part ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern check-drop-level-ctyslumb-drop-userdata function) ;; (function sparticle-system sparticle-cpuinfo vector none) +;; (define-extern *ctyslumb-water-texture-anim-array* texture-anim-array) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; dgo-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype dgo-header (structure) + ((length uint32 :offset-assert 0) + (rootname uint8 60 :offset-assert 4) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x40 + :flag-assert #x900000040 + ) +|# + +#| +(deftype dgo-entry (structure) + ((offset uint32 :offset-assert 0) + (length uint32 :offset-assert 4) + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +#| +(deftype dgo-file (basic) + ((num-go-files uint32 :offset-assert 4) + (total-length uint32 :offset-assert 8) + (rsvd uint32 :offset-assert 12) + (data uint8 :dynamic :offset-assert 16) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; bounding-box-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype bounding-box (structure) + ((min vector :inline :offset-assert 0) + (max vector :inline :offset-assert 16) + ) + :method-count-assert 21 + :size-assert #x20 + :flag-assert #x1500000020 + (:methods + (bounding-box-method-9 () none) ;; 9 ;; (add-spheres! (_type_ (inline-array sphere) int) int 9) + (bounding-box-method-10 () none) ;; 10 ;; (add-box! (_type_ bounding-box) int 10) + (bounding-box-method-11 () none) ;; 11 ;; (add-point! (_type_ vector) none 11) + (bounding-box-method-12 () none) ;; 12 ;; (intersects-line-segment? (_type_ vector vector) symbol 12) + (bounding-box-method-13 () none) ;; 13 ;; (set-from-point-offset! (_type_ vector vector) none 13) + (bounding-box-method-14 () none) ;; 14 ;; (set-from-point-offset-pad! (_type_ vector vector float) int 14) + (bounding-box-method-15 () none) ;; 15 ;; (set-to-point! (_type_ vector) none 15) + (bounding-box-method-16 () none) ;; 16 ;; (set-from-sphere! (_type_ sphere) none 16) + (bounding-box-method-17 () none) ;; 17 ;; (set-from-spheres! (_type_ (inline-array sphere) int) int 17) + (bounding-box-method-18 () none) ;; 18 ;; (get-bounding-sphere (_type_ vector) vector 18) + (bounding-box-method-19 () none) ;; 19 ;; (inside-xyz? (bounding-box vector) symbol 19) + (bounding-box-method-20 () none) ;; 20 ;; (inside-xz? (bounding-box vector) symbol 20) + ) + ) +|# + +#| +(deftype bounding-box2 (structure) + ((min vector2 :inline :offset-assert 0) + (max vector2 :inline :offset-assert 8) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype bounding-box4w (structure) + ((min vector4w :inline :offset-assert 0) + (max vector4w :inline :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x20 + :flag-assert #x900000020 + ) +|# + +#| +(deftype bounding-box-both (structure) + ((box bounding-box :inline :offset-assert 0) + (box4w bounding-box4w :inline :offset-assert 32) + ) + :method-count-assert 9 + :size-assert #x40 + :flag-assert #x900000040 + ) +|# + +#| +(deftype bounding-box-array (inline-array-class) + ((data bounding-box :dynamic :offset-assert 16) ;; guessed by decompiler + ) + :method-count-assert 14 + :size-assert #x10 + :flag-assert #xe00000010 + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; game-save ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype game-save-tag (structure) + ((user-object object 2 :offset-assert 0) ;; guessed by decompiler + (user-uint64 uint64 :offset-assert 0) + (user-float0 float :offset-assert 0) + (user-float float 2 :offset-assert 0) ;; guessed by decompiler + (user-int32 int32 2 :offset-assert 0) ;; guessed by decompiler + (user-uint32 uint32 2 :offset-assert 0) ;; guessed by decompiler + (user-int16 int16 4 :offset-assert 0) ;; guessed by decompiler + (user-uint16 uint16 4 :offset-assert 0) ;; guessed by decompiler + (user-int8 int8 8 :offset-assert 0) ;; guessed by decompiler + (user-int80 int8 :offset-assert 0) + (user-int81 int8 :offset-assert 1) + (user-uint8 uint8 8 :offset-assert 0) ;; guessed by decompiler + (elt-count int32 :offset-assert 8) + (elt-size uint16 :offset-assert 12) + (elt-type uint16 :offset-assert 14) ;; game-save-elt + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype game-save (basic) + () + :method-count-assert 12 + :size-assert #x50 + :flag-assert #xc00000050 + (:methods + ;; (new (symbol type int) _type_ 0) + (game-save-method-9 () none) ;; 9 ;; (save-to-file (_type_ string) _type_ 9) + (game-save-method-10 () none) ;; 10 ;; (load-from-file (_type_ string) _type_ 10) + (game-save-method-11 () none) ;; 11 ;; (debug-inspect (_type_ symbol) _type_ 11) + ) + ) +|# + +#| +(deftype auto-save (process) + ((card int32 :offset-assert 128) + (slot int32 :offset-assert 132) + (which int32 :offset-assert 136) + (buffer kheap :offset-assert 140) + (mode symbol :offset-assert 144) ;; guessed by decompiler + (starting-auto-save-status basic :offset-assert 148) + (result mc-status-code :offset-assert 152) ;; guessed by decompiler + (save game-save :offset-assert 156) ;; guessed by decompiler + (info mc-slot-info :inline :offset-assert 160) + (notify uint64 :offset-assert 464) ;; handle + (force symbol :offset-assert 472) ;; guessed by decompiler + (state-time uint64 :offset-assert 480) ;; time-frame + (icon hud-sprite :inline :offset-assert 496) + (icon-gui-id uint32 :offset-assert 548) + (message-gui-id uint32 :offset-assert 552) + ) + :method-count-assert 23 + :size-assert #x22c + :flag-assert #x1701b0022c + (:state-methods + get-heap ;; 14, old: (get-heap () _type_ :state 14) + get-card ;; 15, old: (get-card () _type_ :state 15) + format-card ;; 16, old: (format-card () _type_ :state 16) + unformat-card ;; 17, old: (unformat-card () _type_ :state 17) + create-file ;; 18, old: (create-file () _type_ :state 18) + save ;; 19, old: (save () _type_ :state 19) + restore ;; 20, old: (restore () _type_ :state 20) + error ;; 21, old: (error (mc-status-code) _type_ :state 21) + done ;; 22, old: (done () _type_ :state 22) + ) + ) +|# + +;; (define-extern game-save-elt->string function) ;; (function game-save-elt string) +;; (define-extern *auto-save-info* object) ;; mc-slot-info +;; (define-extern auto-save-post function) ;; (function pointer :behavior auto-save) +;; (define-extern auto-save-init-by-other function) ;; (function symbol process int int symbol object :behavior auto-save) +;; (define-extern auto-save-command function) ;; (function symbol int int process-tree symbol (pointer auto-save)) +;; (define-extern auto-save-check function) ;; (function int) +;; (define-extern auto-save-user function) ;; (function (pointer auto-save)) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; transform ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern transform-matrix-calc! function) ;; (function transform matrix matrix) +;; (define-extern transform-matrix-parent-calc! function) ;; (function transform matrix vector matrix) +;; (define-extern trs-matrix-calc! function) ;; (function trs matrix matrix) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; precurc-mood ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype precurc-states (structure) + ((pulse pulse-state :inline :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +;; (define-extern init-mood-precurc function) +;; (define-extern update-precurc-lights function) +;; (define-extern update-mood-precurc function) +;; (define-extern precurc-activate function) +;; (define-extern precur-deactivate function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; bot-states ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; gstate ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern inherit-state function) ;; (function state state state) +;; (define-extern state-type? function) +;; (define-extern enter-state function) ;; (function object object object object object object object) +;; (define-extern *event-queue* object) ;; event-message-block-array +;; (define-extern send-event-function function) ;; (function process-tree event-message-block object) +;; (define-extern looping-code function) ;; (function symbol) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; weather-part ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern group-rain-screend-drop object) ;; sparticle-launch-group +;; (define-extern update-snow function) ;; (function float vector vector none) +;; (define-extern birth-func-omega-normal-orient function) ;; (function sparticle-system sparticle-cpuinfo sprite-vec-data-3d sparticle-launcher sparticle-launch-state none) +;; (define-extern birth-func-rain function) ;; (function sparticle-system sparticle-cpuinfo sprite-vec-data-3d sparticle-launcher sparticle-launch-state none) +;; (define-extern check-drop-level-rain function) ;; (function sparticle-system sparticle-cpuinfo vector none) +;; (define-extern check-drop-level-rain2 function) ;; (function sparticle-system sparticle-cpuinfo vector none) +;; (define-extern check-drop-level-splash function) ;; (function sparticle-system sparticle-cpuinfo vector none) +;; (define-extern update-rain function) ;; (function float vector vector none) +;; (define-extern cam-master-effect function) ;; (function none :behavior camera-master) +;; (define-extern sparticle-track-sun function) ;; (function int sparticle-cpuinfo matrix none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ctymark-obs ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern check-market-piece-ground function) ;; (function sparticle-system sparticle-cpuinfo sparticle-launchinfo none) +;; (define-extern market-activate function) ;; (function level none) +;; (define-extern *fruit-check-ground-counter* object) ;; int +;; (define-extern fruit-check-ground-bounce function) ;; (function sparticle-system sparticle-cpuinfo sparticle-launchinfo matrix float) +;; (define-extern fruit-sparticle-next-on-mode-1 function) ;; (function sparticle-system sparticle-cpuinfo sparticle-launchinfo float) +;; (define-extern fruit-stand-event-handler function) ;; (function process int symbol event-message-block object :behavior fruit-stand) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; etie-vu1 ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype etie-consts (structure) + ((gifbufs qword :inline :offset-assert 0) + (adgif qword :inline :offset-assert 16) ;; gs-gif-tag :inline + (alpha qword :inline :offset-assert 32) + (strgif qword :inline :offset-assert 48) ;; gs-gif-tag :inline + (envgif qword :inline :offset-assert 64) ;; gs-gif-tag :inline + (envmap adgif-shader :inline :offset-assert 80) + (pers0 vector :inline :offset-assert 160) + (pers1 vector :inline :offset-assert 176) + ) + :method-count-assert 9 + :size-assert #xc0 + :flag-assert #x9000000c0 + ) +|# + +#| +(deftype etie-matrix (structure) + ((rmtx matrix :inline :offset-assert 0) + (nmtx matrix3 :inline :offset-assert 64) + (morph float :offset-assert 76) + (fog float :offset-assert 92) + (fade uint32 :offset-assert 108) + (tint qword :inline :offset-assert 112) + ) + :method-count-assert 9 + :size-assert #x80 + :flag-assert #x900000080 + ) +|# + +;; (define-extern etie-vu1-block object) ;; vu-function +;; (define-extern etie-magic function) ;; (function int int) +;; (define-extern etie-init-consts function) ;; (function etie-consts gs-alpha none) +;; (define-extern etie-init-engine function) ;; (function dma-buffer gs-alpha gs-test none) +;; (define-extern etie-end-buffer function) ;; (function dma-buffer none) +;; (define-extern etie-float-reg-bp function) +;; (define-extern etie-float-reg function) +;; (define-extern etie-floats function) +;; (define-extern etie-int-reg function) +;; (define-extern etie-ints function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; types-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype basic-reserved (basic) + () + :method-count-assert 29 + :size-assert #x4 + :flag-assert #x1d00000004 + (:methods + (basic-reserved-method-9 () none) ;; 9 + (basic-reserved-method-10 () none) ;; 10 + (basic-reserved-method-11 () none) ;; 11 + (basic-reserved-method-12 () none) ;; 12 + (basic-reserved-method-13 () none) ;; 13 + (basic-reserved-method-14 () none) ;; 14 + (basic-reserved-method-15 () none) ;; 15 + (basic-reserved-method-16 () none) ;; 16 + (basic-reserved-method-17 () none) ;; 17 + (basic-reserved-method-18 () none) ;; 18 + (basic-reserved-method-19 () none) ;; 19 + (basic-reserved-method-20 () none) ;; 20 + (basic-reserved-method-21 () none) ;; 21 + (basic-reserved-method-22 () none) ;; 22 + (basic-reserved-method-23 () none) ;; 23 + (basic-reserved-method-24 () none) ;; 24 + (basic-reserved-method-25 () none) ;; 25 + (basic-reserved-method-26 () none) ;; 26 + (basic-reserved-method-27 () none) ;; 27 + (basic-reserved-method-28 () none) ;; 28 + ) + ) +|# + +;; (deftype part-id (uint32) +;; () +;; :flag-assert #x900000004 +;; ) + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; cty-guard-projectile ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype vehicle-grenade (projectile-bounce) + ((blast-radius float :offset-assert 548) + ) + :method-count-assert 45 + :size-assert #x228 + :flag-assert #x2d01b00228 + (:methods + (vehicle-grenade-method-44 () none) ;; 44 + ) + (:state-methods + impact ;; 22 + sitting ;; 41 + ) + ) +|# + +#| +(deftype vehicle-grenade-deflect (vehicle-grenade) + ((has-been-deflected basic :offset-assert 552) + (has-hit-ground basic :offset-assert 556) + ) + :method-count-assert 45 + :size-assert #x230 + :flag-assert #x2d01b00230 + (:state-methods + moving ;; 23 + ) + ) +|# + +#| +(deftype guard-lazer-shot (projectile) + () + :method-count-assert 41 + :size-assert #x200 + :flag-assert #x2901800200 + (:state-methods + dissipate ;; 21 + ) + ) +|# + +;; (define-extern guard-lazer-shot-move function) ;; (function guard-lazer-shot none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; nav-control-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype check-vector-collision-with-nav-spheres-info (structure) + ((u float :offset-assert 0) + (intersect vector :inline :offset-assert 16) + (normal vector :inline :offset-assert 32) + ) + :method-count-assert 9 + :size-assert #x30 + :flag-assert #x900000030 + ) +|# + +#| +(deftype nav-gap-info (structure) + ((dest vector :inline :offset-assert 0) + (poly nav-poly :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x14 + :flag-assert #x900000014 + ) +|# + +#| +(deftype nav-avoid-spheres-params (structure) + ((current-pos vector :inline :offset-assert 0) + (travel vector :inline :offset-assert 16) + (pref-dir vector :inline :offset-assert 32) + (out-travel vector 2 :offset-assert 48) ;; guessed by decompiler + (closest-sphere-dist2 float :offset-assert 80) + (avoiding-sphere? symbol :offset-assert 84) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x58 + :flag-assert #x900000058 + ) +|# + +#| +(deftype nav-callback-info (structure) + ((callback-count int32 :offset-assert 0) + (callback-array (function object nav-control none) 10 :offset-assert 4) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x2c + :flag-assert #x90000002c + ) +|# + +#| +(deftype nav-state (structure) + ((flags nav-state-flag :offset-assert 0) + (nav nav-control :offset-assert 4) ;; guessed by decompiler + (user-poly nav-poly :offset-assert 8) + (mesh nav-mesh :offset-assert 12) ;; guessed by decompiler + (current-poly nav-poly :offset-assert 16) + (virtual-current-poly nav-poly :offset-assert 20) + (next-poly nav-poly :offset-assert 24) + (target-poly nav-poly :offset-assert 28) + (rotation-rate float :offset-assert 32) + (speed meters :offset-assert 36) + (prev-speed meters :offset-assert 40) + (pad0 uint32 1 :offset-assert 44) ;; guessed by decompiler + (travel vector :inline :offset-assert 48) + (target-pos vector :inline :offset-assert 64) + (current-pos vector :inline :offset-assert 80) + (current-pos-local vector :inline :offset-assert 96) + (virtual-current-pos-local vector :inline :offset-assert 112) + (velocity vector :inline :offset-assert 128) + (heading vector :inline :offset-assert 144) + (target-dir vector :inline :offset-assert 160) + (accel vector :inline :offset-assert 160) + (user-position vector :inline :offset-assert 112) + ) + :method-count-assert 56 + :size-assert #xb0 + :flag-assert #x38000000b0 + (:methods + (nav-state-method-9 () none) ;; 9 ;; (debug-draw (_type_) none 9) + (nav-state-method-10 () none) ;; 10 ;; (nav-state-method-10 (_type_) none 10) + (nav-state-method-11 () none) ;; 11 ;; (plan-over-pat1-polys-using-route (_type_ nav-gap-info) symbol 11) + (nav-state-method-12 () none) ;; 12 ;; (get-velocity (_type_ vector) vector 12) + (nav-state-method-13 () none) ;; 13 ;; (get-travel (_type_ vector) vector 13) + (nav-state-method-14 () none) ;; 14 ;; (get-heading (_type_ vector) vector 14) + (nav-state-method-15 () none) ;; 15 ;; (get-target-post (_type_ vector) vector 15) + (nav-state-method-16 () none) ;; 16 ;; (get-speed (_type_) meters 16) + (nav-state-method-17 () none) ;; 17 ;; (get-rotation-rate (_type_) float 17) + (nav-state-method-18 () none) ;; 18 ;; (try-projecting-to-current-poly (_type_ vector object vector) symbol 18) + (nav-state-method-19 () none) ;; 19 ;; (get-current-poly (_type_) nav-poly 19) + (nav-state-method-20 () none) ;; 20 ;; (copy-nav-state! (_type_ (pointer nav-state)) none 20) + (nav-state-method-21 () none) ;; 21 ;; (nav-state-method-21 () none 21) + (nav-state-method-22 () none) ;; 22 ;; (nav-state-method-22 () none 22) + (nav-state-method-23 () none) ;; 23 ;; (nav-state-method-23 () none 23) + (nav-state-method-24 () none) ;; 24 ;; (turn-and-navigate-to-destination (_type_) none 24) + (nav-state-method-25 () none) ;; 25 ;; (navigate-using-route-portals-wrapper (_type_) none 25) + (nav-state-method-26 () none) ;; 26 ;; (navigate-using-best-dir-recompute-avoid-spheres-1-wrapper (_type_) none 26) + (nav-state-method-27 () none) ;; 27 ;; (navigate-within-poly-wrapper (_type_) none 27) + (nav-state-method-28 () none) ;; 28 ;; (compute-travel-speed (_type_) none 28) + (nav-state-method-29 () none) ;; 29 ;; (nav-state-method-29 (_type_) none 29) + (nav-state-method-30 () none) ;; 30 ;; (nav-state-method-30 (_type_) none 30) + (nav-state-method-31 () none) ;; 31 ;; (navigate-using-best-dir-recompute-avoid-spheres-2 (_type_) none 31) + (nav-state-method-32 () none) ;; 32 ;; (update-travel-dir-from-spheres (_type_) none 32) + (nav-state-method-33 () none) ;; 33 ;; (compute-speed-simple (_type_) none 33) + (nav-state-method-34 () none) ;; 34 ;; (navigate-v1! (_type_) none 34) + (nav-state-method-35 () none) ;; 35 ;; (reset-target! (_type_) none 35) + (nav-state-method-36 () none) ;; 36 ;; (add-offset-to-target! (_type_ vector) none 36) + (nav-state-method-37 () none) ;; 37 ;; (navigate-v2! (_type_) none 37) + (nav-state-method-38 () none) ;; 38 ;; (set-current-poly! (_type_ nav-poly) none 38) + (nav-state-method-39 () none) ;; 39 ;; (nav-state-method-39 (_type_) symbol 39) + (nav-state-method-40 () none) ;; 40 ;; (do-navigation-to-destination (_type_ vector) none 40) + (nav-state-method-41 () none) ;; 41 ;; (clamp-vector-to-mesh-cross-gaps (_type_ vector) symbol 41) + (nav-state-method-42 () none) ;; 42 ;; (set-target-post! (_type_ vector) none 42) + (nav-state-method-43 () none) ;; 43 ;; (set-travel! (_type_ vector) none 43) + (nav-state-method-44 () none) ;; 44 ;; (set-velocity! (_type_ vector) none 44) + (nav-state-method-45 () none) ;; 45 ;; (set-heading! (_type_ vector) none 45) + (nav-state-method-46 () none) ;; 46 ;; (set-speed! (_type_ meters) none 46) + (nav-state-method-47 () none) ;; 47 ;; (reset! (_type_ nav-control) none 47) + (nav-state-method-48 () none) ;; 48 ;; (nav-state-method-48 () none 48) + (nav-state-method-49 () none) ;; 49 ;; (navigate-using-best-dir-use-existing-avoid-spheres (_type_ nav-avoid-spheres-params) none 49) + (nav-state-method-50 () none) ;; 50 ;; (nav-state-method-50 (_type_) none 50) + (nav-state-method-51 () none) ;; 51 ;; (navigate-using-route-portals (_type_) none 51) + (nav-state-method-52 () none) ;; 52 ;; (navigate-using-best-dir-recompute-avoid-spheres-1 (_type_) none 52) + (nav-state-method-53 () none) ;; 53 ;; (navigate-within-poly (_type_) none 53) + (nav-state-method-54 () none) ;; 54 ;; (clamp-travel-vector (_type_) none 54) + (nav-state-method-55 () none) ;; 55 + ) + ) +|# + +#| +(deftype nav-control (structure) + ((flags nav-control-flag :offset-assert 0) + (callback-info nav-callback-info :offset-assert 4) + (process process :offset-assert 8) ;; guessed by decompiler + (pad0 uint32 :offset-assert 12) + (shape collide-shape :offset-assert 16) ;; guessed by decompiler + (nearest-y-threshold meters :offset-assert 20) + (nav-cull-radius meters :offset-assert 24) + (sec-per-frame float :offset-assert 28) + (target-speed meters :offset-assert 32) + (acceleration meters :offset-assert 36) + (turning-acceleration meters :offset-assert 40) + (max-rotation-rate float :offset-assert 44) + (speed-scale float :offset-assert 48) + (sphere-count int32 :offset-assert 52) + (sphere-array (inline-array sphere) :offset-assert 56) ;; guessed by decompiler + (root-sphere-id uint8 :offset-assert 60) + (sphere-mask uint8 :offset-assert 61) + (pad1 uint8 2 :offset-assert 62) ;; guessed by decompiler + (sphere-id-array uint8 16 :offset-assert 64) ;; guessed by decompiler + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (extra-nav-sphere vector :inline :offset-assert 80) + (root-nav-sphere vector :inline :offset-assert 96) + (state nav-state :inline :offset-assert 112) + (mesh basic :offset-assert 124) + ) + :method-count-assert 47 + :size-assert #x120 + :flag-assert #x2f00000120 + (:methods + (nav-control-method-9 () none) ;; 9 ;; (debug-draw (_type_) none 9) + (nav-control-method-10 () none) ;; 10 ;; (point-in-bsphere? (_type_ vector) symbol 10) + (nav-control-method-11 () none) ;; 11 ;; (find-poly-containing-point-1 (_type_ vector) nav-poly 11) + (nav-control-method-12 () none) ;; 12 ;; (cloest-point-on-mesh (_type_ vector vector nav-poly) nav-poly 12) + (nav-control-method-13 () none) ;; 13 ;; (find-nearest-poly-to-point (_type_ vector) nav-poly 13) + (nav-control-method-14 () none) ;; 14 ;; (project-point-onto-plane-of-poly (_type_ nav-poly vector vector vector) none 14) + (nav-control-method-15 () none) ;; 15 ;; (find-poly-containing-point-2 (_type_ vector) nav-poly 15) + (nav-control-method-16 () none) ;; 16 ;; (is-above-poly-max-height? (_type_ vector float) symbol 16) + (nav-control-method-17 () none) ;; 17 ;; (is-in-mesh? (_type_ vector float) symbol 17) + (nav-control-method-18 () none) ;; 18 ;; (avoid-spheres-1! (_type_ nav-avoid-spheres-params) symbol 18) + (nav-control-method-19 () none) ;; 19 ;; (avoid-spheres-2! (_type_ nav-avoid-spheres-params) symbol 19) + (nav-control-method-20 () none) ;; 20 ;; (clamp-vector-to-mesh-cross-gaps (_type_ vector nav-poly vector float symbol clamp-travel-vector-to-mesh-return-info) none 20) + (nav-control-method-21 () none) ;; 21 ;; (clamp-vector-to-mesh-no-gaps (_type_ vector nav-poly vector clamp-travel-vector-to-mesh-return-info) none 21) + (nav-control-method-22 () none) ;; 22 ;; (find-first-sphere-and-update-avoid-params (_type_ vector nav-avoid-spheres-params) float 22) + (nav-control-method-23 () none) ;; 23 ;; (set-spheres-from-nav-ids (_type_) none 23) + (nav-control-method-24 () none) ;; 24 ;; (add-root-sphere-to-hash! (_type_ vector int) symbol 24) + (nav-control-method-25 () none) ;; 25 ;; (get-max-rotation-rate (_type_) float 25) + (nav-control-method-26 () none) ;; 26 ;; (get-sphere-mask (_type_) uint 26) + (nav-control-method-27 () none) ;; 27 ;; (get-target-speed (_type_) meters 27) + (nav-control-method-28 () none) ;; 28 ;; (enable-extra-sphere! (_type_) none 28) + (nav-control-method-29 () none) ;; 29 ;; (disable-extra-sphere! (_type_) none 29) + (nav-control-method-30 () none) ;; 30 ;; (copy-extra-nav-sphere! (_type_ sphere) none 30) + (nav-control-method-31 () none) ;; 31 ;; (set-extra-nav-sphere-xyz! (_type_ sphere) none 31) + (nav-control-method-32 () none) ;; 32 ;; (set-extra-nav-sphere-radius! (_type_ float) none 32) + (nav-control-method-33 () none) ;; 33 ;; (set-nearest-y-thres! (_type_ float) none 33) + (nav-control-method-34 () none) ;; 34 ;; (set-nav-cull-radius! (_type_ meters) none 34) + (nav-control-method-35 () none) ;; 35 ;; (set-speed-scale! (_type_ float) none 35) + (nav-control-method-36 () none) ;; 36 ;; (set-target-speed! (_type_ meters) none 36) + (nav-control-method-37 () none) ;; 37 ;; (set-acceleration! (_type_ meters) none 37) + (nav-control-method-38 () none) ;; 38 ;; (set-turning-acceleration! (_type_ meters) none 38) + (nav-control-method-39 () none) ;; 39 ;; (set-max-rotation-rate! (_type_ float) none 39) + (nav-control-method-40 () none) ;; 40 ;; (set-sphere-mask! (_type_ uint) none 40) + (nav-control-method-41 () none) ;; 41 ;; (remove! (_type_) none 41) + (nav-control-method-42 () none) ;; 42 ;; (init! (_type_ collide-shape) none 42) + (nav-control-method-43 () none) ;; 43 ;; (display-marks? (_type_) symbol 43) + (nav-control-method-44 () none) ;; 44 ;; (nav-control-method-44 () none 44) + (nav-control-method-45 () none) ;; 45 ;; (find-first-sphere-intersecting-ray (_type_ vector vector vector) sphere 45) + (nav-control-method-46 () none) ;; 46 ;; (find-sphere-ids-from-sphere-hash (_type_ symbol) none 46) + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; vu1-macros ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; wcar-faccar ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype v-faccar (wcar-base) + ((jmod-axles UNKNOWN 4 :offset-assert 2752) + (jmod-shock-tops UNKNOWN 4 :offset-assert 2880) + (jmod-shock-mids UNKNOWN 4 :offset-assert 3008) + (jmod-antenna UNKNOWN 4 :offset-assert 3264) + ) + :method-count-assert 204 + :size-assert #xd40 + :flag-assert #xcc0cc00d40 + (:methods + (v-faccar-method-203 () none) ;; 203 + ) + ) +|# + +#| +(deftype faccar (w-parking-spot) + () + :method-count-assert 27 + :size-assert #xf8 + :flag-assert #x1b008000f8 + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; timer-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (deftype timer-mode (uint32) +;; () +;; :flag-assert #x900000004 +;; ) + +#| +(deftype timer-bank (structure) + ((count uint32 :offset-assert 0) + (mode timer-mode :offset-assert 16) ;; guessed by decompiler + (comp uint32 :offset-assert 32) + ) + :method-count-assert 9 + :size-assert #x24 + :flag-assert #x900000024 + ) +|# + +#| +(deftype timer-hold-bank (timer-bank) + ((hold uint32 :offset-assert 48) + ) + :method-count-assert 9 + :size-assert #x34 + :flag-assert #x900000034 + ) +|# + +#| +(deftype stopwatch (basic) + ((prev-time-elapsed uint64 :offset-assert 8) ;; time-frame + (start-time uint64 :offset-assert 16) ;; time-frame + (begin-level int32 :offset-assert 24) + ) + :method-count-assert 9 + :size-assert #x1c + :flag-assert #x90000001c + ) +|# + +;; (define-extern *ticks-per-frame* object) ;; int +;; (define-extern timer-init function) ;; (function timer-bank timer-mode int) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; sampler ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *sampler-mem* object) ;; pointer +;; (define-extern *sampler-compare* object) ;; uint +;; (define-extern *sampler-count* object) ;; int +;; (define-extern timer0-handler function) ;; (function none) +;; (define-extern sampler-start function) ;; (function none) +;; (define-extern sampler-stop function) ;; (function none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; vector-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype bit-array (basic) + ((length int32 :offset-assert 4) + (allocated-length int32 :offset-assert 8) + ) + :method-count-assert 13 + :size-assert #xd + :flag-assert #xd0000000d + (:methods + ;; (new (symbol type int) _type_ 0) + (bit-array-method-9 () none) ;; 9 ;; (get-bit (_type_ int) symbol 9) + (bit-array-method-10 () none) ;; 10 ;; (clear-bit (_type_ int) int 10) + (bit-array-method-11 () none) ;; 11 ;; (set-bit (_type_ int) int 11) + (bit-array-method-12 () none) ;; 12 ;; (clear-all! (_type_) _type_ 12) + ) + ) +|# + +#| +(deftype vector16ub (structure) + ((data uint8 16 :offset-assert 0) ;; guessed by decompiler + (quad uint128 :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype vector4ub (structure) + ((data uint8 4 :offset-assert 0) ;; guessed by decompiler + (x uint8 :offset-assert 0) + (y uint8 :offset-assert 1) + (z uint8 :offset-assert 2) + (w uint8 :offset-assert 3) + (clr uint32 :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x4 + :flag-assert #x900000004 + ) +|# + +#| +(deftype vector4b (structure) + ((data int8 4 :offset-assert 0) ;; guessed by decompiler + (x int8 :offset-assert 0) + (y int8 :offset-assert 1) + (z int8 :offset-assert 2) + (w int8 :offset-assert 3) + (clr int32 :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x4 + :flag-assert #x900000004 + ) +|# + +#| +(deftype vector2ub (structure) + ((data uint8 2 :offset-assert 0) ;; guessed by decompiler + (x uint8 :offset-assert 0) + (y uint8 :offset-assert 1) + (clr uint16 :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x2 + :flag-assert #x900000002 + ) +|# + +#| +(deftype vector2b (structure) + ((data int8 2 :offset-assert 0) ;; guessed by decompiler + (x int8 :offset-assert 0) + (y int8 :offset-assert 1) + (clr int16 :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x2 + :flag-assert #x900000002 + ) +|# + +#| +(deftype vector2h (structure) + ((data int16 2 :offset-assert 0) ;; guessed by decompiler + (x int16 :offset-assert 0) + (y int16 :offset-assert 2) + ) + :method-count-assert 9 + :size-assert #x4 + :flag-assert #x900000004 + ) +|# + +#| +(deftype vector2uh (structure) + ((data uint16 2 :offset-assert 0) ;; guessed by decompiler + (x uint16 :offset-assert 0) + (y uint16 :offset-assert 2) + (val uint32 :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x4 + :flag-assert #x900000004 + ) +|# + +#| +(deftype vector3h (structure) + ((data int16 3 :offset-assert 0) ;; guessed by decompiler + (x int16 :offset-assert 0) + (y int16 :offset-assert 2) + (z int16 :offset-assert 4) + ) + :method-count-assert 9 + :size-assert #x6 + :flag-assert #x900000006 + ) +|# + +#| +(deftype vector3uh (structure) + ((data uint16 3 :offset-assert 0) ;; guessed by decompiler + (x uint16 :offset-assert 0) + (y uint16 :offset-assert 2) + (z uint16 :offset-assert 4) + ) + :method-count-assert 9 + :size-assert #x6 + :flag-assert #x900000006 + ) +|# + +#| +(deftype vector2w (structure) + ((data int32 2 :offset-assert 0) ;; guessed by decompiler + (x int32 :offset-assert 0) + (y int32 :offset-assert 4) + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +#| +(deftype vector3w (structure) + ((data int32 3 :offset-assert 0) ;; guessed by decompiler + (x int32 :offset-assert 0) + (y int32 :offset-assert 4) + (z int32 :offset-assert 8) + ) + :method-count-assert 9 + :size-assert #xc + :flag-assert #x90000000c + ) +|# + +#| +(deftype vector4w (structure) + ((data int32 4 :offset-assert 0) ;; guessed by decompiler + (x int32 :offset-assert 0) + (y int32 :offset-assert 4) + (z int32 :offset-assert 8) + (w int32 :offset-assert 12) + (dword uint64 2 :offset-assert 0) ;; guessed by decompiler + (quad uint128 :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype vector2 (structure) + ((data float 2 :offset-assert 0) ;; guessed by decompiler + (x float :offset-assert 0) + (y float :offset-assert 4) + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +#| +(deftype vector3 (structure) + ((data float 3 :offset-assert 0) ;; guessed by decompiler + (x float :offset-assert 0) + (y float :offset-assert 4) + (z float :offset-assert 8) + ) + :method-count-assert 9 + :size-assert #xc + :flag-assert #x90000000c + ) +|# + +#| +(deftype vector4 (structure) + ((data float 4 :offset-assert 0) ;; guessed by decompiler + (x float :offset-assert 0) + (y float :offset-assert 4) + (z float :offset-assert 8) + (w float :offset-assert 12) + (dword uint64 2 :offset-assert 0) ;; guessed by decompiler + (quad uint128 :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype vector4w-2 (structure) + ((data int32 8 :offset-assert 0) ;; guessed by decompiler + (quad uint128 2 :offset-assert 0) ;; guessed by decompiler + (vector vector4w 2 :offset-assert 0) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x20 + :flag-assert #x900000020 + ) +|# + +#| +(deftype vector4w-3 (structure) + ((data int32 12 :offset-assert 0) ;; guessed by decompiler + (quad uint128 3 :offset-assert 0) ;; guessed by decompiler + (vector vector4w 3 :offset-assert 0) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x30 + :flag-assert #x900000030 + ) +|# + +#| +(deftype vector4w-4 (structure) + ((data int32 16 :offset-assert 0) ;; guessed by decompiler + (quad uint128 4 :offset-assert 0) ;; guessed by decompiler + (vector vector4w 4 :offset-assert 0) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x40 + :flag-assert #x900000040 + ) +|# + +#| +(deftype vector4h (structure) + ((data int16 4 :offset-assert 0) ;; guessed by decompiler + (x int16 :offset-assert 0) + (y int16 :offset-assert 2) + (z int16 :offset-assert 4) + (w int16 :offset-assert 6) + (long uint64 :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +#| +(deftype vector8h (structure) + ((data int16 8 :offset-assert 0) ;; guessed by decompiler + (quad uint128 :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype vector16b (structure) + ((data int8 16 :offset-assert 0) ;; guessed by decompiler + (quad uint128 :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype vector4s-3 (structure) + ((data float 12 :offset-assert 0) ;; guessed by decompiler + (quad uint128 3 :offset-assert 0) ;; guessed by decompiler + (vector vector 3 :offset-assert 0) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x30 + :flag-assert #x900000030 + ) +|# + +#| +(deftype vector-array (inline-array-class) + ((data vector :dynamic :offset-assert 16) ;; guessed by decompiler + ) + :method-count-assert 14 + :size-assert #x10 + :flag-assert #xe00000010 + ) +|# + +#| +(deftype rgbaf (vector) + ((r float :offset-assert 0) + (g float :offset-assert 4) + (b float :offset-assert 8) + (a float :offset-assert 12) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype plane (vector) + ((a float :offset-assert 0) + (b float :offset-assert 4) + (c float :offset-assert 8) + (d float :offset-assert 12) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype sphere (vector) + ((r float :offset-assert 12) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +;; (deftype isphere (vec4s) +;; () +;; :flag-assert #x900000010 +;; ) + +#| +(deftype box8s (structure) + ((data float 8 :offset-assert 0) ;; guessed by decompiler + (quad uint128 2 :offset-assert 0) ;; guessed by decompiler + (vector vector 2 :offset-assert 0) ;; guessed by decompiler + (min vector :inline :offset-assert 0) + (max vector :inline :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x20 + :flag-assert #x900000020 + ) +|# + +#| +(deftype box8s-array (inline-array-class) + ((data box8s :dynamic :offset-assert 16) ;; guessed by decompiler + ) + :method-count-assert 14 + :size-assert #x10 + :flag-assert #xe00000010 + ) +|# + +#| +(deftype vertical-planes (structure) + ((data uint128 4 :offset-assert 0) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x40 + :flag-assert #x900000040 + ) +|# + +#| +(deftype vertical-planes-array (basic) + ((length uint32 :offset-assert 4) + (data vertical-planes :dynamic :offset-assert 16) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype qword (structure) + ((data uint32 4 :offset-assert 0) ;; guessed by decompiler + (byte uint8 16 :offset-assert 0) ;; guessed by decompiler + (hword uint16 8 :offset-assert 0) ;; guessed by decompiler + (word uint32 4 :offset-assert 0) ;; guessed by decompiler + (dword uint64 2 :offset-assert 0) ;; guessed by decompiler + (quad uint128 :offset-assert 0) + (vector vector :inline :offset-assert 0) + (vector4w vector4w :inline :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype vector3s (structure) + ((data float 3 :offset-assert 0) ;; guessed by decompiler + (x float :offset-assert 0) + (y float :offset-assert 4) + (z float :offset-assert 8) + ) + :method-count-assert 9 + :size-assert #xc + :flag-assert #x90000000c + ) +|# + +;; vector is already defined! + +;; (define-extern *null-vector* object) ;; vector +;; (define-extern *identity-vector* object) ;; vector +;; (define-extern *x-vector* object) ;; vector +;; (define-extern *y-vector* object) ;; vector +;; (define-extern *z-vector* object) ;; vector +;; (define-extern *up-vector* object) ;; vector +;; (define-extern vector-dot function) ;; (function vector vector float) +;; (define-extern vector-dot-vu function) ;; (function vector vector float) +;; (define-extern vector4-dot function) ;; (function vector vector float) +;; (define-extern vector4-dot-vu function) ;; (function vector vector float) +;; (define-extern vector+! function) ;; (function vector vector vector vector) +;; (define-extern vector-! function) ;; (function vector vector vector vector) +;; (define-extern vector-zero! function) ;; (function vector vector) +;; (define-extern vector-reset! function) ;; (function vector vector) +;; (define-extern vector-copy! function) ;; (function vector vector vector) +;; (define-extern vector-length< function) ;; (function vector float symbol) +;; (define-extern vector-length> function) ;; (function vector float symbol) +;; (define-extern *zero-vector* object) ;; vector + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; math ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (deftype float-type (uint32) +;; () +;; :flag-assert #x900000004 +;; ) + +;; (deftype rgba (uint32) +;; () +;; :flag-assert #x900000004 +;; ) + +;; (deftype xyzw (uint128) +;; () +;; :flag-assert #x900000010 +;; ) + +;; (deftype xyzwh (uint128) +;; () +;; :flag-assert #x900000010 +;; ) + +#| +(deftype random-generator (basic) + ((seed uint32 :offset-assert 4) + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +;; (define-extern truncate function) ;; (function float float) +;; (define-extern round function) +;; (define-extern floor function) ;; (function float float) +;; (define-extern ceil function) ;; (function float float) +;; (define-extern integral? function) ;; (function float symbol) +;; (define-extern fractional-part function) ;; (function float float) +;; (define-extern odd? function) ;; (function int symbol) +;; (define-extern even? function) ;; (function int symbol) +;; (define-extern sawtooth-wave function) ;; (function float float) +;; (define-extern triangle-wave function) ;; (function float float) +;; (define-extern log-x-plus-1-order9 function) ;; (function float float) +;; (define-extern logf function) ;; (function float float) +;; (define-extern log2f function) ;; (function float float) +;; (define-extern exp-slead object) ;; (pointer float) +;; (define-extern exp-strail object) ;; (pointer float) +;; (define-extern exp function) ;; (function float float) +;; (define-extern pow function) ;; (function float float float) +;; (define-extern print-exp function) ;; (function float none) +;; (define-extern print-time function) ;; (function object time-frame none) +;; (define-extern log2 function) ;; (function int int) +;; (define-extern seek function) ;; (function float float float float) +;; (define-extern seek-ease function) ;; (function float float float float float float) +;; (define-extern seek-ease-in-out function) ;; (function float float float float float float float float) +;; (define-extern lerp function) ;; (function float float float float) +;; (define-extern lerp-scale-old function) ;; (function float float float float float float) +;; (define-extern lerp-scale function) ;; (function float float float float float float) +;; (define-extern lerp-scale-clamp function) +;; (define-extern lerp-clamp function) ;; (function float float float float) +;; (define-extern rgba-lerp function) ;; (function rgba rgba rgba rgba) +;; (define-extern seekl function) ;; (function int int int int) +;; (define-extern rand-vu-init function) ;; (function float float) +;; (define-extern rand-vu function) ;; (function float) +;; (define-extern rand-vu-nostep function) ;; (function float) +;; (define-extern rand-vu-float-range function) ;; (function float float float) +;; (define-extern rand-vu-percent? function) ;; (function float symbol) +;; (define-extern rand-vu-int-range function) ;; (function int int int) +;; (define-extern rand-vu-int-count function) ;; (function int int) +;; (define-extern rand-vu-int-count-excluding function) ;; (function int int int) +;; (define-extern rand-vu-int-range-exclude function) ;; (function int int int int) +;; (define-extern *random-generator* object) ;; random-generator +;; (define-extern rand-uint31-gen function) ;; (function random-generator uint) +;; (define-extern cube-root function) ;; (function float float) +;; (define-extern int-noise function) ;; (function int float) +;; (define-extern smooth-step function) ;; (function float float) +;; (define-extern smooth-interp function) ;; (function float float float float float float) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; gravity-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; dma ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern dma-sync-hang function) ;; (function dma-bank none) +;; (define-extern dma-sync-crash function) ;; (function dma-bank none) +;; (define-extern dma-send function) ;; (function dma-bank uint uint none) +;; (define-extern dma-send-chain function) ;; (function dma-bank-source uint none) +;; (define-extern dma-send-chain-no-tte function) ;; (function dma-bank-source uint none) +;; (define-extern dma-send-chain-no-flush function) ;; (function dma-bank-source uint none) +;; (define-extern dma-send-to-spr function) ;; (function uint uint uint symbol none) +;; (define-extern dma-send-to-spr-no-flush function) ;; (function uint uint uint symbol none) +;; (define-extern dma-send-from-spr function) ;; (function uint uint uint symbol none) +;; (define-extern dma-send-from-spr-no-flush function) ;; (function uint uint uint symbol none) +;; (define-extern dma-initialize function) ;; (function none) +;; (define-extern clear-vu0-mem function) ;; (function none) +;; (define-extern clear-vu1-mem function) ;; (function none) +;; (define-extern dump-vu1-mem function) ;; (function none) +;; (define-extern dump-vu1-range function) ;; (function uint uint symbol) +;; (define-extern reset-vif1-path function) ;; (function none) +;; (define-extern ultimate-memcpy function) ;; (function pointer pointer uint none) +;; (define-extern symlink2 function) ;; (function none) +;; (define-extern symlink3 function) ;; (function none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; mech-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype mech-info (basic) + ((entity basic :offset-assert 4) + (hud handle 1 :offset-assert 8) ;; guessed by decompiler + (mech-trans vector :inline :offset-assert 16) + (mech-quat vector :inline :offset-assert 32) + (mech-scale vector :inline :offset-assert 48) + (engine-sound-id sound-id :offset-assert 64) ;; guessed by decompiler + (engine-sound-volume float :offset-assert 68) + (engine-sound-pitch float :offset-assert 72) + (thrust-sound-id sound-id :offset-assert 76) ;; guessed by decompiler + (drag-sound-id sound-id :offset-assert 80) ;; guessed by decompiler + (whine-sound-id sound-id :offset-assert 84) ;; guessed by decompiler + (shield-sound-id uint32 :offset-assert 88) + (mech-start-time uint64 :offset-assert 96) ;; time-frame + (mech-time uint64 :offset-assert 104) ;; time-frame + (no-get-off-time uint64 :offset-assert 112) ;; time-frame + (stick-lock basic :offset-assert 120) + (stick-off basic :offset-assert 124) + (forward-vel meters :offset-assert 128) + (jump-thrust meters :offset-assert 132) + (jump-thrust-fuel float :offset-assert 136) + (unstuck-time uint64 :offset-assert 144) ;; time-frame + (stuck-count int32 :offset-assert 152) + (back-touch-point vector :inline :offset-assert 160) + (back-touch-trans vector :inline :offset-assert 176) + (back-touch-time uint64 :offset-assert 192) ;; time-frame + (attack-id uint32 :offset-assert 200) + (shield-value float :offset-assert 204) + (shield-max float :offset-assert 208) + (shield-handle uint64 :offset-assert 216) + (walk-anim-leg int32 :offset-assert 224) + (state-impact? symbol 1 :offset-assert 228) ;; guessed by decompiler + (state-impact impact-control 1 :offset-assert 240) ;; guessed by decompiler + (thruster-flame-width meters :offset-assert 320) + (thruster-flame-length meters :offset-assert 324) + (thruster-local-pos vector 2 :offset-assert 336) ;; guessed by decompiler + (exhaust-local-pos vector 2 :offset-assert 368) ;; guessed by decompiler + (exhaust-local-dir vector 2 :offset-assert 400) ;; guessed by decompiler + (smoke-local-pos vector 2 :offset-assert 432) ;; guessed by decompiler + (smoke-local-vel vector 2 :offset-assert 464) ;; guessed by decompiler + (particle-system-2d basic :offset-assert 496) + (particle-system-3d basic :offset-assert 500) + (part-thruster basic :offset-assert 504) + (part-thruster-scale-x sp-field-init-spec :offset-assert 508) + (part-thruster-scale-y sp-field-init-spec :offset-assert 512) + (part-quat quaternion :offset-assert 516) + (part-vel vector :offset-assert 520) + ) + :method-count-assert 9 + :size-assert #x20c + :flag-assert #x90000020c + ) +|# + +;; (define-extern *mech-shadow-control* shadow-control) ;; shadow-control + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; tie ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype tie-consts (structure) + ((data uint32 40 :offset-assert 0) ;; guessed by decompiler + (vector vector 10 :offset-assert 0) ;; guessed by decompiler + (quads uint128 10 :offset-assert 0) ;; guessed by decompiler + (adgif qword :inline :offset-assert 0) ;; gs-gif-tag :inline + (strgif qword :inline :offset-assert 16) ;; gs-gif-tag :inline + (extra qword :inline :offset-assert 32) ;; vector :inline + (gifbufs qword :inline :offset-assert 48) ;; vector :inline + (clrbufs qword :inline :offset-assert 64) + (misc qword :inline :offset-assert 80) + (atestgif qword :inline :offset-assert 96) ;; gs-gif-tag :inline + (alpha qword :inline :offset-assert 112) ;; gs-adcmd :inline + (atest gs-adcmd 2 :offset-assert 128) ;; guessed by decompiler + (atest-tra gs-adcmd :inline :offset-assert 128) + (atest-def gs-adcmd :inline :offset-assert 144) + ) + :method-count-assert 9 + :size-assert #xa0 + :flag-assert #x9000000a0 + ) +|# + +#| +(deftype drawable-inline-array-instance-tie (drawable-inline-array) + ((length int16 :offset-assert 2) + (data instance-tie :dynamic :offset-assert 32) ;; guessed by decompiler + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + ) + :method-count-assert 17 + :size-assert #x64 + :flag-assert #x1100000064 + ) +|# + +#| +(deftype prototype-tie (drawable-inline-array) + ((length int16 :offset-assert 2) + (data tie-fragment :dynamic :offset-assert 32) ;; guessed by decompiler + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + ) + :method-count-assert 17 + :size-assert #x64 + :flag-assert #x1100000064 + ) +|# + +;; (define-extern tie-vu1-block object) ;; vu-function +;; (define-extern tie-init-consts function) ;; (function tie-consts gs-alpha gs-test gs-test none) +;; (define-extern tie-init-engine function) ;; (function dma-buffer gs-alpha gs-test gs-test none) +;; (define-extern tie-end-buffer function) ;; (function dma-buffer none) +;; (define-extern tie-int-reg function) ;; (function int string) +;; (define-extern tie-float-reg function) ;; (function int string) +;; (define-extern tie-ints function) ;; (function none) +;; (define-extern tie-floats function) ;; (function none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; neo-grenadier ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype bank-info (structure) + ((circle sphere :inline :offset-assert 0) + (tangent-pos vector :inline :offset-assert 16) + (final-pos vector :inline :offset-assert 32) + (final-dir vector :inline :offset-assert 48) + ) + :method-count-assert 9 + :size-assert #x40 + :flag-assert #x900000040 + ) +|# + +#| +(deftype neo-grenadier (nav-enemy) + ((shot-trajectory trajectory :inline :offset-assert 624) + (hostile-path basic :offset-assert 664) + (bank bank-info :inline :offset-assert 672) + (joint joint-mod-blend-world :offset-assert 736) + (heading basic :offset-assert 740) + (move-pos vector :inline :offset-assert 752) + (move-angle float :offset-assert 768) + (status-flags uint64 :offset-assert 776) + (suppress-knockaside-timer uint64 :offset-assert 784) + ) + :method-count-assert 196 + :size-assert #x318 + :flag-assert #xc402a00318 + (:methods + (neo-grenadier-method-193 () none) ;; 193 + (neo-grenadier-method-194 () none) ;; 194 + (neo-grenadier-method-195 () none) ;; 195 + ) + (:state-methods + active ;; 34 + notice ;; 35 + hostile ;; 38 + attack ;; 190 + hit ;; 30 + backup ;; 191 + victory ;; 39 + spin-kick ;; 192 + ) + ) +|# + +;; (define-extern *fact-info-neo-grenadier-defaults* fact-info-enemy-defaults) +;; (define-extern *neo-grenadier-nav-enemy-info* nav-enemy-info) +;; (define-extern pos-rotate-y<-vector+vector function) ;; (function vector vector float) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; matrix-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype matrix (structure) + ((data float 16 :offset-assert 0) ;; guessed by decompiler + (vector vector 4 :offset-assert 0) ;; guessed by decompiler + (quad uint128 4 :offset-assert 0) ;; guessed by decompiler + (rvec vector :inline :offset-assert 0) + (uvec vector :inline :offset-assert 16) + (fvec vector :inline :offset-assert 32) + (trans vector :inline :offset-assert 48) + ) + :method-count-assert 10 + :size-assert #x40 + :flag-assert #xa00000040 + (:methods + (matrix-method-9 () none) ;; 9 ;; (transform-vectors! (_type_ (inline-array vector) (inline-array vector) int) none 9) + ) + ) +|# + +#| +(deftype matrix3 (structure) + ((data float 12 :offset-assert 0) ;; guessed by decompiler + (vector vector 3 :offset-assert 0) ;; guessed by decompiler + (quad uint128 3 :offset-assert 0) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x30 + :flag-assert #x900000030 + ) +|# + +#| +(deftype matrix4h (structure) + ((data int16 16 :offset-assert 0) ;; guessed by decompiler + (vector4h vector4h 4 :offset-assert 0) ;; guessed by decompiler + (long int64 4 :offset-assert 0) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x20 + :flag-assert #x900000020 + ) +|# + +;; (define-extern matrix-copy! function) ;; (function matrix matrix matrix) +;; (define-extern matrix<-vector-yz-exact! function) +;; (define-extern matrix<-vector-yz! function) +;; (define-extern matrix<-vector-z! function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; flee-info ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype flee-info (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; powerups ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern cloud-track function) ;; (function process-tree process-tree (function vector none) time-frame time-frame time-frame none :behavior process) +;; (define-extern eco-blue-glow function) ;; (function vector none) +;; (define-extern target-eco-process function) ;; (function none :behavior target) +;; (define-extern target-color-effect-process function) ;; (function none :behavior target) +;; (define-extern target-update-segs function) +;; (define-extern target-draw-process function) +;; (define-extern target-powerup-process function) ;; (function none :behavior target) +;; (define-extern target-powerup-effect function) ;; (function symbol none :behavior target) +;; (define-extern process-contact-action function) ;; (function process none :behavior target) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; gekko ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype gekko-foot-info (structure) + ((ground-pos vector :inline :offset-assert 0) + (ground-normal vector :inline :offset-assert 16) + (foot-transform transformq :inline :offset-assert 32) + (leg-ik basic :offset-assert 80) + ) + :method-count-assert 9 + :size-assert #x54 + :flag-assert #x900000054 + ) +|# + +#| +(deftype gekko-ik-setup (structure) + ((elbow-index int32 :offset-assert 0) + (hand-index int32 :offset-assert 4) + (effector-index int32 :offset-assert 8) + (hand-dist float :offset-assert 12) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype gekko-shadow-spot (structure) + ((position vector :inline :offset-assert 0) + (normal vector :inline :offset-assert 16) + (valid? basic :offset-assert 32) + (pat uint32 :offset-assert 36) + ) + :method-count-assert 9 + :size-assert #x28 + :flag-assert #x900000028 + ) +|# + +#| +(deftype gekko (nav-enemy) + ((shadow-spot gekko-shadow-spot :inline :offset-assert 620) + (foot UNKNOWN 4 :offset-assert 668) + (rot-matrix matrix :inline :offset-assert 1052) + (gspot-normal vector :inline :offset-assert 1116) + (tilt-quat quaternion :inline :offset-assert 1132) + (dest-to-me-dir vector :inline :offset-assert 1148) + (turn-face-point vector :inline :offset-assert 1164) + (flags gekko-flag :offset-assert 1180) + (attack-time uint64 :offset-assert 1188) + (last-turn-time uint64 :offset-assert 1196) + (fade float :offset-assert 1204) + (rot-mult float :offset-assert 1208) + (move-speed float :offset-assert 1212) + (move-decel float :offset-assert 1216) + (turn-next-state basic :offset-assert 1220) + (path-wall basic :offset-assert 1224) + (scared-timer uint64 :offset-assert 1228) + (scale float :offset-assert 1236) + (probe-len float :offset-assert 1240) + ) + :method-count-assert 209 + :size-assert #x4e0 + :flag-assert #xd1046004e0 + ;; field gekko-flag is likely a value type. + (:methods + (gekko-method-202 () none) ;; 202 + (gekko-method-203 () none) ;; 203 + (gekko-method-204 () none) ;; 204 + (gekko-method-205 () none) ;; 205 + (gekko-method-206 () none) ;; 206 + (gekko-method-207 () none) ;; 207 + (gekko-method-208 () none) ;; 208 + ) + (:state-methods + attack-wall ;; 193 + idle ;; 33 + active-wall ;; 190 + jump-off-wall ;; 195 + notice ;; 35 + hostile-wall ;; 191 + turn-wall ;; 192 + knocked-wall ;; 194 + jump-off-wall-falling ;; 196 + jump-off-wall-recover ;; 197 + active ;; 34 + stare ;; 37 + flee ;; 36 + hostile ;; 38 + pre-attack ;; 198 + attack ;; 199 + turn ;; 200 + turn-quick ;; 201 + jump ;; 44 + knocked ;; 31 + knocked-recover ;; 32 + ) + ) +|# + +#| +(deftype gecko (gekko) + () + :method-count-assert 209 + :size-assert #x4e0 + :flag-assert #xd1046004e0 + ) +|# + +;; (define-extern *gekko-ik-setup* object) +;; (define-extern *gekko-foot-offset* array) +;; (define-extern *fact-info-gekko-defaults* fact-info-enemy-defaults) +;; (define-extern *gekko-nav-enemy-info* nav-enemy-info) +;; (define-extern hostile-wall-trans function) +;; (define-extern gekko-stare-code function) +;; (define-extern gekko-foot-rot-handler function) +;; (define-extern gekko-postbind function) +;; (define-extern gekko-postbind-callback function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; vehicle-effects ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern calc-fade-vals function) ;; (function float none) +;; (define-extern *vehicle-headlight-glow-template* object) ;; sprite-glow-data +;; (define-extern *vehicle-taillight-glow-template* object) ;; sprite-glow-data +;; (define-extern *vehicle-thruster-glow-template* object) ;; sprite-glow-data +;; (define-extern *vehicle-particle-common-info* object) +;; (define-extern vehicle-draw-thruster function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; nst-part ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *range-color-ceiling-dust* curve-color-fast) +;; (define-extern *range-alpha-ceiling-dust* curve2d-fast) +;; (define-extern *range-scale-ceiling-dust-x* curve2d-fast) +;; (define-extern *range-scale-ceiling-dust-y* curve2d-fast) +;; (define-extern *curve-alpha-ceiling-dust* curve2d-fast) +;; (define-extern *curve-ceiling-dust-x* curve2d-fast) +;; (define-extern *curve-ceiling-dust-y* curve2d-fast) +;; (define-extern *part-nest-ceiling-dust-curve-settings* object) +;; (define-extern birth-func-find-ground function) +;; (define-extern spt-func-check-hit-ground function) +;; (define-extern *range-color-ground-impact-dust* curve-color-fast) +;; (define-extern *range-alpha-ground-impact-dust* curve2d-fast) +;; (define-extern *range-scale-ground-impact-dust-x* curve2d-fast) +;; (define-extern *range-scale-ground-impact-dust-y* curve2d-fast) +;; (define-extern *curve-alpha-ground-impact-dust* curve2d-fast) +;; (define-extern *curve-ground-impact-dust-x* curve2d-fast) +;; (define-extern *curve-ground-impact-dust-y* curve2d-fast) +;; (define-extern *part-nest-ground-impact-dust-curve-settings* object) +;; (define-extern part-nest-bat1-path function) +;; (define-extern part-nest-bat2-path function) +;; (define-extern part-nest-bat3-path function) +;; (define-extern part-nest-bat4-path function) +;; (define-extern part-nest-bat5-path function) +;; (define-extern part-nest-bat6-path function) +;; (define-extern part-nest-bat7-path function) +;; (define-extern part-nest-bat8-path function) +;; (define-extern part-nest-bat9-path function) +;; (define-extern part-nest-bat10-path function) +;; (define-extern *range-nst-splash-color* curve-color-fast) +;; (define-extern *range-nst-splash-alpha* curve2d-fast) +;; (define-extern *range-nst-splash-scale-x* curve2d-fast) +;; (define-extern *range-nst-splash-scale-y* curve2d-fast) +;; (define-extern *curve-nst-splash-alpha* curve2d-fast) +;; (define-extern *curve-nst-splash-scale-x* curve2d-fast) +;; (define-extern *curve-nst-splash-scale-y* curve2d-fast) +;; (define-extern *part-bridge-break-splash-curve-settings* object) +;; (define-extern birth-func-nstb-set-height-and-curve function) +;; (define-extern birth-func-nstb-set-height function) +;; (define-extern birth-func-nstb-set-height-and-texture-group function) +;; (define-extern *range-color-cocoon-poison-gas* curve-color-fast) +;; (define-extern *range-alpha-cocoon-poison-gas* curve2d-fast) +;; (define-extern *range-scale-cocoon-poison-gas-x* curve2d-fast) +;; (define-extern *range-scale-cocoon-poison-gas-y* curve2d-fast) +;; (define-extern *r-curve-cocoon-poison-gas* curve2d-fast) +;; (define-extern *g-curve-cocoon-poison-gas* curve2d-fast) +;; (define-extern *b-curve-cocoon-poison-gas* curve2d-fast) +;; (define-extern *curve-alpha-cocoon-poison-gas* curve2d-fast) +;; (define-extern *curve-cocoon-poison-gas-x* curve2d-fast) +;; (define-extern *curve-cocoon-poison-gas-y* curve2d-fast) +;; (define-extern *part-cocoon-poison-gas-curve-settings* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; quaternion-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype quaternion (structure) + ((data float 4 :offset-assert 0) ;; guessed by decompiler + (x float :offset-assert 0) + (y float :offset-assert 4) + (z float :offset-assert 8) + (w float :offset-assert 12) + (vec vector :inline :offset-assert 0) + (quad uint128 :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +;; (define-extern *unity-quaternion* object) ;; quaternion + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; vehicle-part ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; glist-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype glst-node (structure) + ((next glst-node :offset-assert 0) + (prev glst-node :offset-assert 4) + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +#| +(deftype glst-named-node (glst-node) + ((privname string :offset-assert 8) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #xc + :flag-assert #x90000000c + ) +|# + +#| +(deftype glst-list (structure) + ((head glst-node :offset-assert 0) + (tail glst-node :offset-assert 4) + (tailpred glst-node :offset-assert 8) + (numelem int32 :offset-assert 12) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +;; (define-extern glst-next function) ;; (function glst-node glst-node) +;; (define-extern glst-prev function) ;; (function glst-node glst-node) +;; (define-extern glst-head function) ;; (function glst-list glst-node) +;; (define-extern glst-tail function) ;; (function glst-list glst-node) +;; (define-extern glst-end-of-list? function) ;; (function glst-node symbol) +;; (define-extern glst-start-of-list? function) ;; (function glst-node symbol) +;; (define-extern glst-empty? function) ;; (function glst-list symbol) +;; (define-extern glst-node-name function) ;; (function glst-named-node string) +;; (define-extern glst-set-name! function) ;; (function glst-named-node string string) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; desertd-obs ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; dma-disasm ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype vif-disasm-element (structure) + ((mask uint32 :offset-assert 0) + (tag vif-cmd-32 :offset-assert 4) ;; guessed by decompiler + (val uint32 :offset-assert 8) + (print uint32 :offset-assert 12) + (string1 string :offset-assert 16) ;; guessed by decompiler + (string2 string :offset-assert 20) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x18 + :flag-assert #x900000018 + ) +|# + +;; (define-extern *vif-disasm-table* array) ;; (array vif-disasm-element) +;; (define-extern disasm-vif-details function) ;; (function symbol (pointer uint8) vif-cmd int symbol) +;; (define-extern disasm-vif-tag function) ;; (function (pointer vif-tag) int symbol symbol int) +;; (define-extern disasm-dma-tag function) ;; (function dma-tag symbol none) +;; (define-extern *dma-disasm* object) ;; symbol +;; (define-extern disasm-dma-list function) ;; (function dma-packet symbol symbol symbol int symbol) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; collide-edge-grab-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype pilot-edge-grab-info (structure) + ((local-pos vector :inline :offset-assert 0) + (local-dir vector :inline :offset-assert 16) + (handle uint64 :offset-assert 32) ;; handle + ) + :method-count-assert 9 + :size-assert #x28 + :flag-assert #x900000028 + ) +|# + +#| +(deftype edge-grab-info (structure) + ((world-vertex vector 8 :offset-assert 0) ;; guessed by decompiler + (local-vertex vector 8 :offset-assert 128) ;; guessed by decompiler + (status uint64 :offset-assert 256) + (actor-cshape-prim-offset int32 :offset-assert 264) + (actor-handle uint64 :offset-assert 272) ;; handle + (hanging-matrix matrix :inline :offset-assert 288) + (edge-vertex vector 2 :offset-assert 0) ;; guessed by decompiler + (center-hold vector :inline :offset-assert 32) + (tri-vertex vector 3 :offset-assert 48) ;; guessed by decompiler + (adjacent-edge-left-vertex vector :inline :offset-assert 96) + (adjacent-edge-right-vertex vector :inline :offset-assert 112) + (left-hand-hold vector :inline :offset-assert 352) + (right-hand-hold vector :inline :offset-assert 368) + (center-hold-old vector :inline :offset-assert 384) + (edge-tri-pat uint32 :offset-assert 400) + (found-edge? symbol :offset-assert 404) ;; guessed by decompiler + (pilot-edge-grab? symbol :offset-assert 408) ;; guessed by decompiler + (pilot-edge-grab pilot-edge-grab-info :inline :offset-assert 416) + (pilot-start-grab-pos vector :inline :offset-assert 464) + (pilot-grab-interp float :offset-assert 480) + ) + :method-count-assert 11 + :size-assert #x1e4 + :flag-assert #xb000001e4 + (:methods + (edge-grab-info-method-9 () none) ;; 9 ;; (edge-grab-info-method-9 (_type_) symbol 9) + (edge-grab-info-method-10 () none) ;; 10 ;; (debug-draw (_type_) none 10) + ) + ) +|# + +#| +(deftype collide-edge-tri (structure) + ((ctri collide-cache-tri :offset-assert 0) ;; guessed by decompiler + (normal vector :inline :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x20 + :flag-assert #x900000020 + ) +|# + +#| +(deftype collide-edge-edge (structure) + ((ignore basic :offset-assert 0) + (etri collide-edge-tri :offset-assert 4) + (vertex-ptr (inline-array vector) 2 :offset-assert 8) ;; guessed by decompiler + (outward vector :inline :offset-assert 16) + (edge-vec-norm vector :inline :offset-assert 32) + ) + :method-count-assert 10 + :size-assert #x30 + :flag-assert #xa00000030 + (:methods + (collide-edge-edge-method-9 () none) ;; 9 ;; (no-collision-at-edge (_type_ collide-edge-work edge-grab-info) symbol 9) + ) + ) +|# + +#| +(deftype collide-edge-hold-item (structure) + ((next collide-edge-hold-item :offset-assert 0) + (rating float :offset-assert 4) + (split int8 :offset-assert 8) + (edge collide-edge-edge :offset-assert 12) + (center-pt vector :inline :offset-assert 16) + (outward-pt vector :inline :offset-assert 32) + ) + :method-count-assert 9 + :size-assert #x30 + :flag-assert #x900000030 + ) +|# + +#| +(deftype collide-edge-hold-list (structure) + ((num-allocs uint32 :offset-assert 0) + (num-attempts uint32 :offset-assert 4) + (head collide-edge-hold-item :offset-assert 8) + (items collide-edge-hold-item 32 :offset-assert 16) ;; guessed by decompiler + (attempts qword 32 :offset-assert 1552) ;; guessed by decompiler + ) + :method-count-assert 11 + :size-assert #x810 + :flag-assert #xb00000810 + (:methods + (collide-edge-hold-list-method-9 () none) ;; 9 ;; (debug-draw (_type_) object 9) + (collide-edge-hold-list-method-10 () none) ;; 10 ;; (add-to-list! (_type_ collide-edge-hold-item) none 10) + ) + ) +|# + +#| +(deftype collide-edge-spec (structure) + ((split-dists float 2 :offset-assert 0) ;; guessed by decompiler + (outward-offset vector :inline :offset-assert 16) + (flags uint64 :offset-assert 32) ;; collide-edge-spec-flags + (ignore-pat pat-surface :offset-assert 40) ;; guessed by decompiler + (max-dist-sqrd-to-outward-pt float :offset-assert 44) + (max-dir-cosa-delta float :offset-assert 48) + (max-dir-cosa-player float :offset-assert 52) + (touching-segment symbol :offset-assert 56) ;; guessed by decompiler + (local-cache-fill-box bounding-box :inline :offset-assert 64) + (local-within-reach-box bounding-box :inline :offset-assert 96) + (local-player-spheres sphere 12 :offset-assert 128) ;; guessed by decompiler + (local-player-hanging-spheres sphere 6 :offset-assert 128) ;; guessed by decompiler + (local-player-leap-up-spheres sphere 6 :offset-assert 224) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x140 + :flag-assert #x900000140 + ) +|# + +#| +(deftype collide-edge-work (structure) + ((ccache collide-cache :offset-assert 0) ;; guessed by decompiler + (cshape collide-shape :offset-assert 4) ;; guessed by decompiler + (num-verts uint32 :offset-assert 8) + (num-edges uint32 :offset-assert 12) + (num-tris uint32 :offset-assert 16) + (cache-fill-box bounding-box :inline :offset-assert 32) + (within-reach-box bounding-box :inline :offset-assert 64) + (within-reach-box4w bounding-box4w :inline :offset-assert 96) + (search-pt vector :inline :offset-assert 128) + (search-dir-vec vector :inline :offset-assert 144) + (world-player-spheres sphere 12 :offset-assert 160) ;; guessed by decompiler + (world-player-hanging-spheres sphere 6 :offset-assert 160) ;; guessed by decompiler + (world-player-leap-up-spheres sphere 6 :offset-assert 256) ;; guessed by decompiler + (spec collide-edge-spec :inline :offset-assert 352) + (process (pointer process-drawable) :offset-assert 672) ;; guessed by decompiler + (verts vector 64 :offset-assert 688) ;; guessed by decompiler + (edges collide-edge-edge 96 :offset-assert 1712) ;; guessed by decompiler + (tris collide-edge-tri 48 :offset-assert 6320) ;; guessed by decompiler + (hold-list collide-edge-hold-list :inline :offset-assert 7856) + ) + :method-count-assert 21 + :size-assert #x26c0 + :flag-assert #x15000026c0 + (:methods + (collide-edge-work-method-9 () none) ;; 9 ;; (search-for-edges (_type_ collide-edge-hold-list) none 9) + (collide-edge-work-method-10 () none) ;; 10 ;; (debug-draw-edges (_type_) object 10) + (collide-edge-work-method-11 () none) ;; 11 ;; (debug-draw-tris (_type_) none 11) + (collide-edge-work-method-12 () none) ;; 12 ;; (debug-draw-sphere (_type_) none 12) + (collide-edge-work-method-13 () none) ;; 13 ;; (find-adjacent-edge (_type_ collide-edge-hold-item edge-grab-info) none 13) + (collide-edge-work-method-14 () none) ;; 14 ;; (compute-center-point! (_type_ collide-edge-edge vector) float 14) + (collide-edge-work-method-15 () none) ;; 15 ;; (get-best-hand-point (_type_ vector vector int) float 15) + (collide-edge-work-method-16 () none) ;; 16 ;; (find-grabbable-edges (_type_) none 16) + (collide-edge-work-method-17 () none) ;; 17 ;; (find-grabbable-tris (_type_) none 17) + (collide-edge-work-method-18 () none) ;; 18 ;; (should-add-to-list? (_type_ collide-edge-hold-item collide-edge-edge) symbol 18) + (collide-edge-work-method-19 () none) ;; 19 ;; (find-best-grab! (_type_ collide-edge-hold-list edge-grab-info) symbol 19) + (collide-edge-work-method-20 () none) ;; 20 ;; (check-grab-for-collisions (_type_ collide-edge-hold-item edge-grab-info) symbol 20) + ) + ) +|# + +;; (define-extern *collide-edge-spec* object) ;; collide-edge-spec +;; (define-extern *collide-edge-work* object) ;; collide-edge-work +;; (define-extern *edge-grab-info* object) ;; edge-grab-info + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; hfrag-work ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *hfrag-work* object) +;; (define-extern *hfrag-vu1-constants-base* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; euler-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype euler-angles (vector) + () + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +;; (define-extern EulSafe array) ;; (array int32) +;; (define-extern EulNext array) ;; (array int32) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; mhcity-obs2 ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype mhcity-puffer (process-focusable) + ((state-time uint64 :offset-assert 192) + (period uint64 :offset-assert 216) + (duration uint64 :offset-assert 224) + (offset uint64 :offset-assert 232) + (is-jump? basic :offset-assert 240) + (jump-y float :offset-assert 244) + (jump-z float :offset-assert 248) + (traj trajectory :inline :offset-assert 256) + ) + :method-count-assert 35 + :size-assert #x128 + :flag-assert #x2300b00128 + (:methods + (mhcity-puffer-method-32 () none) ;; 32 + (mhcity-puffer-method-33 () none) ;; 33 + (mhcity-puffer-method-34 () none) ;; 34 + ) + (:state-methods + puffer-active-base-state ;; 31 + blowing-prep ;; 30 + blowing ;; 29 + active ;; 28 + ) + ) +|# + +#| +(deftype puffer-init-by-other-params (structure) + ((pos vector :inline :offset-assert 0) + (orient quaternion :inline :offset-assert 16) + (scale float :offset-assert 32) + (period uint64 :offset-assert 40) + (duration uint64 :offset-assert 48) + (offset uint64 :offset-assert 56) + (jump-y float :offset-assert 64) + (jump-z float :offset-assert 68) + ) + :method-count-assert 9 + :size-assert #x48 + :flag-assert #x900000048 + ) +|# + +#| +(deftype mhcity-puffer-large (mhcity-puffer) + () + :method-count-assert 35 + :size-assert #x128 + :flag-assert #x2300b00128 + (:state-methods + blowing-prep ;; 30 + blowing ;; 29 + active ;; 28 + ) + ) +|# + +;; (define-extern puffer-init-by-other function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; wasgun-manager ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype task-manager-wascity-gungame (task-manager) + ((wascity-gungame-entity basic :offset-assert 236) + (check-timer uint64 :offset-assert 244) + (actor-group uint32 :offset-assert 252) + (actor-group-count int32 :offset-assert 256) + (cur-group int8 :offset-assert 260) + (halfway-up? basic :offset-assert 264) + (nskeet int16 :offset-assert 268) + (hopped-out uint64 :offset-assert 276) + (miss-count int16 :offset-assert 284) + (last-miss-count int16 :offset-assert 286) + (launch-time uint64 :offset-assert 292) + (win-time uint64 :offset-assert 300) + (lose-time uint64 :offset-assert 308) + (last-hit-time uint64 :offset-assert 316) + (added-points-time uint64 :offset-assert 324) + (point-queue int16 :offset-assert 332) + (skeet-hit int16 :offset-assert 334) + (shot-count-at-last-hit int16 :offset-assert 336) + (bonus-mult int16 :offset-assert 338) + (numshots int16 :offset-assert 340) + (queue-time int32 :offset-assert 344) + (event-length uint64 :offset-assert 348) + (event-time uint64 :offset-assert 356) + (shot-timer uint64 :offset-assert 364) + (wct uint64 :offset-assert 372) + (wave int32 :offset-assert 380) + (event int32 :offset-assert 384) + (goal-amount int8 :offset-assert 388) + (score int32 :offset-assert 392) + (hud-score uint64 :offset-assert 396) + (hud-goal uint64 :offset-assert 404) + (hud-miss uint64 :offset-assert 412) + (hud-reticle uint64 :offset-assert 420) + (hud-active? basic :offset-assert 428) + (been-out-of-turret? basic :offset-assert 432) + (won? basic :offset-assert 436) + (lost? basic :offset-assert 440) + (game-score uint8 :offset-assert 444) + (task-gold uint16 :offset-assert 446) + (task-silver uint16 :offset-assert 448) + (task-bronze uint16 :offset-assert 450) + (score-bronze int32 :offset-assert 452) + (score-silver int32 :offset-assert 456) + (score-gold int32 :offset-assert 460) + (score-high int32 :offset-assert 464) + (sound-id uint32 :offset-assert 468) + ) + :method-count-assert 42 + :size-assert #x1dc + :flag-assert #x2a016001dc + (:methods + (task-manager-wascity-gungame-method-32 () none) ;; 32 + (task-manager-wascity-gungame-method-33 () none) ;; 33 + (task-manager-wascity-gungame-method-34 () none) ;; 34 + (task-manager-wascity-gungame-method-35 () none) ;; 35 + (task-manager-wascity-gungame-method-36 () none) ;; 36 + (task-manager-wascity-gungame-method-37 () none) ;; 37 + (task-manager-wascity-gungame-method-38 () none) ;; 38 + (task-manager-wascity-gungame-method-39 () none) ;; 39 + (task-manager-wascity-gungame-method-40 () none) ;; 40 + (task-manager-wascity-gungame-method-41 () none) ;; 41 + ) + (:state-methods + active ;; 15 + ) + ) +|# + +#| +(deftype hip-skeet-event (structure) + ((min-time uint32 :offset-assert 0) + (max-time uint32 :offset-assert 4) + (mode uint8 :offset-assert 8) + (angle float :offset-assert 12) + (speed float :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x14 + :flag-assert #x900000014 + ) +|# + +;; (define-extern *wasgun-speedmult* object) +;; (define-extern *skeet-exploder-params* joint-exploder-static-params) +;; (define-extern *skeet-b-exploder-params* joint-exploder-static-params) +;; (define-extern *skeet-c-exploder-params* joint-exploder-static-params) +;; (define-extern *skeet-data* array) +;; (define-extern *skeet-rigid-body-constants* object) +;; (define-extern wasgun-manager-shot-missed function) +;; (define-extern skeet-standard-event-handler function) +;; (define-extern *skeet-focus-pos* object) +;; (define-extern skeet-init-by-other function) +;; (define-extern spawn-skeet function) +;; (define-extern *skeet-offset-table* array) +;; (define-extern def-launch-circle function) +;; (define-extern spawn-skeet-enum function) +;; (define-extern wasgun-standard-event-handler function) +;; (define-extern *skeet-launcher-pos* object) +;; (define-extern *skeet-target-pos* object) +;; (define-extern print-and-spawn-skeet function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; transform-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype transform (structure) + ((trans vector :inline :offset-assert 0) + (rot vector :inline :offset-assert 16) + (scale vector :inline :offset-assert 32) + ) + :method-count-assert 9 + :size-assert #x30 + :flag-assert #x900000030 + ) +|# + +#| +(deftype trs (basic) + ((trans vector :inline :offset-assert 16) + (rot vector :inline :offset-assert 32) + (scale vector :inline :offset-assert 48) + ) + :method-count-assert 9 + :size-assert #x40 + :flag-assert #x900000040 + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; particle-curves ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype particle-curve-settings (structure) + ((color-start basic :offset-assert 0) + (alpha-start basic :offset-assert 4) + (scale-x-start basic :offset-assert 8) + (scale-y-start basic :offset-assert 12) + (r-scalar basic :offset-assert 16) + (g-scalar basic :offset-assert 20) + (b-scalar basic :offset-assert 24) + (a-scalar basic :offset-assert 28) + (scale-x-scalar basic :offset-assert 32) + (scale-y-scalar basic :offset-assert 36) + (lifetime-base uint64 :offset-assert 40) + (lifetime-offset uint64 :offset-assert 48) + (flags uint64 :offset-assert 56) + ) + :method-count-assert 9 + :size-assert #x40 + :flag-assert #x900000040 + ) +|# + +;; (define-extern birth-func-curve function) +;; (define-extern live-func-curve function) +;; (define-extern *alpha-fast* curve2d-fast) +;; (define-extern *unity-fast* curve2d-fast) +;; (define-extern *ccro* curve-color-fast) +;; (define-extern *scale-curve* curve2d-fast) +;; (define-extern *scale-range* curve2d-fast) +;; (define-extern *part-function-curve-test-curve-settings* object) +;; (define-extern ptest function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; decomp-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype decomp-work (structure) + ((buffer0 uint8 2048 :offset-assert 0) ;; guessed by decompiler + (buffer1 uint8 2048 :offset-assert 2048) ;; guessed by decompiler + (indices uint16 2048 :offset-assert 4096) ;; guessed by decompiler + (temp-indices uint16 2048 :offset-assert 8192) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x3000 + :flag-assert #x900003000 + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; factoryc-texture ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *factoryc-alpha-texture-anim-array* texture-anim-array) +;; (define-extern set-facc-conveyor-speed! function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; bones ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *bone-calculation-list* object) ;; bone-calculation-list +;; (define-extern bone-list-init function) ;; (function none) +;; (define-extern bones-vu0-block object) ;; vu-function +;; (define-extern bones-set-sqwc function) ;; (function none) +;; (define-extern bones-reset-sqwc function) ;; (function none) +;; (define-extern bones-init function) ;; (function dma-buffer none) +;; (define-extern bones-mtx-calc function) ;; (function (inline-array pris-mtx) (inline-array joint) (inline-array bone) uint object none) +;; (define-extern bones-mtx-calc-execute function) ;; (function none) +;; (define-extern dump-qword function) ;; (function qword none) +;; (define-extern dump-mem function) ;; (function pointer int none) +;; (define-extern bones-debug function) ;; (function none) +;; (define-extern dump-bone-mem function) ;; (function none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; editable-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype editable-region (basic) + ((changed symbol :offset-assert 4) ;; guessed by decompiler + (locked symbol :offset-assert 8) ;; guessed by decompiler + (id uint64 :offset-assert 16) + (filter editable-filter :offset-assert 24) ;; guessed by decompiler + (tree symbol :offset-assert 28) ;; guessed by decompiler + (level string :offset-assert 32) ;; guessed by decompiler + (on-enter string :offset-assert 36) ;; guessed by decompiler + (on-inside string :offset-assert 40) ;; guessed by decompiler + (on-exit string :offset-assert 44) ;; guessed by decompiler + ) + :method-count-assert 13 + :size-assert #x30 + :flag-assert #xd00000030 + ;; field on-enter uses ~A with a signed load. field on-inside uses ~A with a signed load. field on-exit uses ~A with a signed load. + (:methods + ;; (new (symbol type) _type_ 0) + (editable-region-method-9 () none) ;; 9 ;; (editable-region-method-9 (_type_ editable-array int int) symbol 9) + (editable-region-method-10 () none) ;; 10 ;; (editable-region-method-10 (_type_ int) symbol 10) + (editable-region-method-11 () none) ;; 11 ;; (editable-region-method-11 (_type_ vector int) none 11) + (editable-region-method-12 () none) ;; 12 ;; (editable-region-method-12 (_type_) editable-filter 12) + ) + ) +|# + +#| +(deftype editable (basic) + ((flags editable-flag :offset-assert 4) + (name string :offset-assert 8) ;; guessed by decompiler + (id uint32 :offset-assert 12) + (region editable-region :offset-assert 16) ;; guessed by decompiler + (owner pair :offset-assert 20) ;; guessed by decompiler + (prefix basic :offset-assert 24) + ) + :method-count-assert 36 + :size-assert #x1c + :flag-assert #x240000001c + (:methods + (editable-method-9 () none) ;; 9 ;; (get-color (_type_ int) rgba 9) + (editable-method-10 () none) ;; 10 ;; (editable-method-10 (_type_) none 10) + (editable-method-11 () none) ;; 11 ;; (editable-method-11 (_type_ vector) symbol 11) + (editable-method-12 () none) ;; 12 ;; (select-editable! (_type_ symbol) none 12) + (editable-method-13 () none) ;; 13 ;; (edit-get-distance (_type_ vector) float 13) + (editable-method-14 () none) ;; 14 ;; (edit-get-trans (_type_) vector 14) + (editable-method-15 () none) ;; 15 ;; (editable-method-15 (_type_ vector int) none 15) + (editable-method-16 () none) ;; 16 ;; (edit-coord! (_type_ vector editable-flag) none 16) + (editable-method-17 () none) ;; 17 ;; (editable-method-17 (_type_ vector) none 17) + (editable-method-18 () none) ;; 18 ;; (editable-method-18 (_type_ vector matrix) none 18) + (editable-method-19 () none) ;; 19 ;; (editable-method-19 (_type_ vector) none 19) + (editable-method-20 () none) ;; 20 ;; (editable-method-20 (_type_ vector vector vector vector) none 20) + (editable-method-21 () none) ;; 21 ;; (editable-method-21 (_type_ editable-region) none 21) + (editable-method-22 () none) ;; 22 ;; (editable-method-22 (_type_ editable-array int int) symbol 22) + (editable-method-23 () none) ;; 23 ;; (editable-method-23 (_type_) symbol 23) + (editable-method-24 () none) ;; 24 ;; (editable-method-24 (_type_) none 24) + (editable-method-25 () none) ;; 25 ;; (editable-method-25 (_type_ editable-array) none 25) + (editable-method-26 () none) ;; 26 ;; (editable-method-26 (_type_ editable editable-array) none 26) + (editable-method-27 () none) ;; 27 ;; (editable-method-27 (_type_ editable-array) editable 27) + (editable-method-28 () none) ;; 28 ;; (editable-method-28 (_type_ editable-filter) none 28) + (editable-method-29 () none) ;; 29 ;; (editable-method-29 (_type_ editable-filter) symbol 29) + (editable-method-30 () none) ;; 30 + (editable-method-31 () none) ;; 31 + (editable-method-32 () none) ;; 32 + (editable-method-33 () none) ;; 33 + (editable-method-34 () none) ;; 34 + (editable-method-35 () none) ;; 35 + ) + ) +|# + +#| +(deftype editable-array (basic) + ((allocated-length int32 :offset-assert 4) + (length int32 :offset-assert 8) + (region editable-region :offset-assert 12) ;; guessed by decompiler + (backup-region editable-region :offset-assert 16) ;; guessed by decompiler + (region-lock? symbol :offset-assert 20) ;; guessed by decompiler + (move-lock? symbol :offset-assert 24) ;; guessed by decompiler + (move-speed float :offset-assert 28) + (selection (array editable) :offset-assert 32) ;; guessed by decompiler + (filter editable-filter 2 :offset-assert 36) ;; guessed by decompiler + (target editable :offset-assert 44) ;; guessed by decompiler + (target-mode editable-command :offset-assert 48) ;; guessed by decompiler + (target-command editable-command :offset-assert 52) ;; guessed by decompiler + (target-message string :offset-assert 56) ;; guessed by decompiler + (edit-plane editable-plane :offset-assert 60) ;; guessed by decompiler + (edit-plane-center vector :inline :offset-assert 64) + (edit-plane-normal vector :inline :offset-assert 80) + (level-offset vector :inline :offset-assert 96) + (level-info-id uint32 :offset-assert 112) + (level uint32 :offset-assert 116) ;; guessed by decompiler + (edit-param0 float :offset-assert 120) + (data editable :dynamic :offset-assert 124) ;; guessed by decompiler + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + ) + :method-count-assert 20 + :size-assert #x7c + :flag-assert #x140000007c + (:methods + ;; (new (symbol type int) _type_ 0) + (editable-array-method-9 () none) ;; 9 ;; (editable-array-method-9 (_type_ editable-command mouse-info) symbol 9) + (editable-array-method-10 () none) ;; 10 ;; (editable-array-method-10 (_type_ vector int) editable 10) + (editable-array-method-11 () none) ;; 11 ;; (editable-array-method-11 (_type_) int 11) + (editable-array-method-12 () none) ;; 12 ;; (editable-array-method-12 (_type_ editable-array) none 12) + (editable-array-method-13 () none) ;; 13 ;; (editable-array-method-13 (_type_ editable-command editable-command string) none 13) + (editable-array-method-14 () none) ;; 14 ;; (editable-array-method-14 (_type_ (function editable editable-region symbol) editable-region) (array editable) 14) + (editable-array-method-15 () none) ;; 15 ;; (editable-array-method-15 (_type_ editable) none 15) + (editable-array-method-16 () none) ;; 16 ;; (editable-array-method-16 (_type_) none 16) + (editable-array-method-17 () none) ;; 17 ;; (editable-array-method-17 (_type_ vector vector) vector 17) + (editable-array-method-18 () none) ;; 18 + (editable-array-method-19 () none) ;; 19 + ) + ) +|# + +#| +(deftype editable-point (editable) + ((flags editable-flag :offset-assert 0) + (name string :offset-assert 4) ;; guessed by decompiler + (id uint32 :offset-assert 8) + (region editable-region :offset-assert 12) ;; guessed by decompiler + (owner pair :offset-assert 16) ;; guessed by decompiler + (prefix basic :offset-assert 20) + (radius meters :offset-assert 24) ;; float + (trans vector :inline :offset-assert 28) + ) + :method-count-assert 36 + :size-assert #x30 + :flag-assert #x2400000030 + (:methods + ;; (new (symbol type vector editable-region) _type_ 0) + ) + ) +|# + +#| +(deftype editable-sphere (editable-point) + () + :method-count-assert 36 + :size-assert #x30 + :flag-assert #x2400000030 + (:methods + ;; (new (symbol type vector float editable-region) _type_ 0) + ) + ) +|# + +#| +(deftype editable-sample (editable-point) + () + :method-count-assert 36 + :size-assert #x30 + :flag-assert #x2400000030 + ) +|# + +#| +(deftype editable-light (editable-sphere) + ((direction vector :inline :offset-assert 44) + (color vector :inline :offset-assert 60) + (decay-start float :offset-assert 76) + (ambient-point-ratio float :offset-assert 80) + (brightness float :offset-assert 84) + (shadow uint32 :offset-assert 44) + (shadows UNKNOWN 5 :offset-assert 88) + (shadow-ambi float :offset-assert 88) + (shadow-dir0 float :offset-assert 92) + (shadow-dir1 float :offset-assert 96) + (shadow-dir2 float :offset-assert 100) + (shadow-dir3 float :offset-assert 104) + ) + :method-count-assert 36 + :size-assert #x70 + :flag-assert #x2400000070 + (:methods + ;; (new (symbol type vector float editable-region) _type_ 0) + ) + ) +|# + +#| +(deftype editable-entity (editable-point) + ((angles euler-angles :inline :offset-assert 44) + (idx int32 :offset-assert 60) + ) + :method-count-assert 37 + :size-assert #x44 + :flag-assert #x2500000044 + (:methods + (editable-entity-method-36 () none) ;; 36 + ) + ) +|# + +#| +(deftype editable-face (editable) + ((flags editable-flag :offset-assert 0) + (name string :offset-assert 4) ;; guessed by decompiler + (id uint32 :offset-assert 8) + (region editable-region :offset-assert 12) ;; guessed by decompiler + (owner pair :offset-assert 16) ;; guessed by decompiler + (prefix basic :offset-assert 20) + (length int32 :offset-assert 24) + (normal vector :inline :offset-assert 28) + (center vector :inline :offset-assert 44) + (vertex editable-point 6 :offset-assert 60) ;; guessed by decompiler + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + ) + :method-count-assert 38 + :size-assert #x58 + :flag-assert #x2600000058 + (:methods + ;; (new (symbol type editable-region) _type_ 0) + (editable-face-method-36 () none) ;; 36 + (editable-face-method-37 () none) ;; 37 + ) + ) +|# + +#| +(deftype editable-plane (editable) + ((flags editable-flag :offset-assert 0) + (name string :offset-assert 4) ;; guessed by decompiler + (id uint32 :offset-assert 8) + (region editable-region :offset-assert 12) ;; guessed by decompiler + (owner pair :offset-assert 16) ;; guessed by decompiler + (prefix basic :offset-assert 20) + (length int32 :offset-assert 24) + (radius meters :offset-assert 28) ;; float + (vertex editable-point 2 :offset-assert 32) ;; guessed by decompiler + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + ) + :method-count-assert 38 + :size-assert #x2c + :flag-assert #x260000002c + (:methods + ;; (new (symbol type editable-region) _type_ 0) + (editable-plane-method-36 () none) ;; 36 + (editable-plane-method-37 () none) ;; 37 + ) + ) +|# + +#| +(deftype editable-player (process-drawable) + ((current editable-array :offset-assert 200) ;; guessed by decompiler + (current-command uint32 :offset-assert 204) + (select-command function :offset-assert 208) ;; guessed by decompiler + (drag-command uint32 :offset-assert 212) + (extra-command function :offset-assert 216) ;; guessed by decompiler + (left-handed basic :offset-assert 220) + (light-names basic :offset-assert 224) + (external-cam-mode symbol :offset-assert 228) ;; guessed by decompiler + (command editable-command 6 :offset-assert 232) ;; guessed by decompiler + (close-menu-time uint64 :offset-assert 256) ;; time-frame + (mouse-pos vector :inline :offset-assert 272) + (mouse-end vector :inline :offset-assert 288) + (manipulator manipulator :inline :offset-assert 304) + (mouse-box UNKNOWN 2 :offset-assert 480) + (mouse-hit vector :inline :offset-assert 512) + (mouse-normal vector :inline :offset-assert 528) + (float-variable float :offset-assert 544) + (float-step float :offset-assert 548) + (float-max float :offset-assert 552) + (float-min float :offset-assert 556) + (float-id uint32 :offset-assert 560) + ) + :method-count-assert 24 + :size-assert #x234 + :flag-assert #x1801c00234 + (:methods + (editable-player-method-20 () none) ;; 20 ;; (idle () _type_ :state 20) + (editable-player-method-21 () none) ;; 21 ;; (editable-player-method-21 (_type_) none 21) + (editable-player-method-22 () none) ;; 22 + (editable-player-method-23 () none) ;; 23 + ) + ) +|# + +#| +(deftype editable-work (basic) + ((num-found int16 :offset-assert 4) + (last-found int16 :offset-assert 6) + (last-x float :offset-assert 8) + (last-y float :offset-assert 12) + (hide basic :offset-assert 16) + (found editable 256 :offset-assert 20) ;; guessed by decompiler + (dists uint32 256 :offset-assert 1044) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x814 + :flag-assert #x900000814 + ) +|# + +;; (define-extern *editable-temp-id* object) ;; int +;; (define-extern *editable-default-name* object) +;; (define-extern editable-command->string function) ;; (function editable-command string) +;; (define-extern editable-filter->string function) ;; (function editable-filter basic string) +;; (define-extern *editable-work* object) ;; editable-work +;; (define-extern *editable* object) ;; (pointer editable-player) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; kg-hopper ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype kg-hopper (nav-enemy) + ((speed-y float :offset-assert 620) + (accel-y float :offset-assert 624) + (next-jump-time int32 :offset-assert 628) + (path-intro basic :offset-assert 632) + (can-go-knocked? basic :offset-assert 636) + (land-anim-index int32 :offset-assert 640) + (step-num int32 :offset-assert 644) + (best-point vector :inline :offset-assert 656) + (best-score float :offset-assert 672) + (origin vector :inline :offset-assert 688) + (direction vector :inline :offset-assert 704) + (jump-dist float :offset-assert 720) + (side float :offset-assert 724) + (jump-start-anim uint32 :offset-assert 728) + (jump-air-anim uint32 :offset-assert 732) + (jump-land-anim uint32 :offset-assert 736) + (jump-height-min float :offset-assert 740) + (jump-anim-start-frame float :offset-assert 744) + (minimap connection-minimap :offset-assert 748) + ) + :method-count-assert 194 + :size-assert #x2f0 + :flag-assert #xc2027002f0 + (:methods + (kg-hopper-method-191 () none) ;; 191 + (kg-hopper-method-192 () none) ;; 192 + (kg-hopper-method-193 () none) ;; 193 + ) + (:state-methods + explode ;; 190 + hostile ;; 38 + jump ;; 44 + stare ;; 37 + active ;; 34 + notice ;; 35 + ambush ;; 47 + ) + ) +|# + +#| +(deftype kg-hopper-anim-info (structure) + ((hit-anim-index int32 :offset-assert 0) + (land-anim-index int32 :offset-assert 4) + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +#| +(deftype kg-hopper-global-info (basic) + ((prev-yellow-hit int8 :offset-assert 4) + (prev-blue-hit int8 :offset-assert 5) + (yellow-hit-anim UNKNOWN 3 :offset-assert 8) + (blue-hit-anim UNKNOWN 3 :offset-assert 32) + ) + :method-count-assert 9 + :size-assert #x38 + :flag-assert #x900000038 + ) +|# + +;; (define-extern *kg-hopper-debris-params* debris-static-params) +;; (define-extern *kg-hopper-global-info* kg-hopper-global-info) +;; (define-extern *kg-hopper-nav-enemy-info* nav-enemy-info) +;; (define-extern *kg-hopper-next-jump-time* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; geometry-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype curve (structure) + ((cverts (inline-array vector) :offset-assert 0) ;; guessed by decompiler + (num-cverts int32 :offset-assert 4) + (knots (pointer float) :offset-assert 8) ;; guessed by decompiler + (num-knots int32 :offset-assert 12) + (length float :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x14 + :flag-assert #x900000014 + ) +|# + +#| +(deftype line-intersection-val (structure) + ((tt0 float :offset-assert 0) + (tt1 float :offset-assert 4) + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +#| +(deftype border-plane (basic) + ((name symbol :offset-assert 4) ;; guessed by decompiler + (action basic :offset-assert 8) + (slot int8 :offset-assert 12) + (trans vector :inline :offset-assert 16) + (normal vector :inline :offset-assert 32) + ) + :method-count-assert 11 + :size-assert #x30 + :flag-assert #xb00000030 + (:methods + (border-plane-method-9 () none) ;; 9 ;; (debug-draw (_type_) int 9) + (border-plane-method-10 () none) ;; 10 ;; (point-past-plane? (_type_ vector) symbol 10) + ) + ) +|# + +#| +(deftype lissajous (structure) + ((x-mag float :offset-assert 0) + (y-mag float :offset-assert 4) + (theta float :offset-assert 8) + (wx float :offset-assert 12) + (wy float :offset-assert 16) + (period-shift float :offset-assert 20) + (theta-rate float :offset-assert 24) + ) + :method-count-assert 10 + :size-assert #x1c + :flag-assert #xa0000001c + (:methods + (lissajous-method-9 () none) ;; 9 + ) + ) +|# + +#| +(deftype lissajous-interp (structure) + ((current lissajous :inline :offset-assert 0) + (dest lissajous :inline :offset-assert 28) + (rate lissajous :inline :offset-assert 56) + ) + :method-count-assert 11 + :size-assert #x54 + :flag-assert #xb00000054 + (:methods + (lissajous-interp-method-9 () none) ;; 9 + (lissajous-interp-method-10 () none) ;; 10 + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; wasstada-part ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype spectator-info (structure) + ((flags int32 :offset-assert 0) + (textures basic :offset-assert 4) + (y-pos float :offset-assert 8) + (delta-y float :offset-assert 12) + (angle float :offset-assert 16) + (hola-time uint64 :offset-assert 24) + (offset uint32 :offset-assert 32) + (speed uint32 :offset-assert 36) + ) + :method-count-assert 9 + :size-assert #x28 + :flag-assert #x900000028 + ;; field textures uses ~A with a signed load. + ) +|# + +#| +(deftype wasstada-crowd (process-drawable) + ((mat matrix :inline :offset-assert 208) + (spectators UNKNOWN 15 :offset-assert 272) + (hola float :offset-assert 992) + ) + :method-count-assert 21 + :size-assert #x3e4 + :flag-assert #x15037003e4 + (:state-methods + idle ;; 20 + ) + ) +|# + +;; (define-extern *range-color-lava-geyser-flame* curve-color-fast) +;; (define-extern *range-alpha-lava-geyser-flame* curve2d-fast) +;; (define-extern *range-scale-lava-geyser-flame-x* curve2d-fast) +;; (define-extern *range-scale-lava-geyser-flame-y* curve2d-fast) +;; (define-extern *r-curve-lava-geyser-flame* curve2d-fast) +;; (define-extern *g-curve-lava-geyser-flame* curve2d-fast) +;; (define-extern *b-curve-lava-geyser-flame* curve2d-fast) +;; (define-extern *curve-alpha-lava-geyser-flame* curve2d-fast) +;; (define-extern *curve-scale-lava-geyser-flame-x* curve2d-fast) +;; (define-extern *curve-scale-lava-geyser-flame-y* curve2d-fast) +;; (define-extern *part-wasstada-lava-geyser-flame-curve-settings* object) +;; (define-extern *range-color-wasstada-crucible-flame* curve-color-fast) +;; (define-extern *range-alpha-wasstada-crucible-flame* curve2d-fast) +;; (define-extern *range-scale-wasstada-crucible-flame-x* curve2d-fast) +;; (define-extern *range-scale-wasstada-crucible-flame-y* curve2d-fast) +;; (define-extern *r-curve-wasstada-crucible-flame* curve2d-fast) +;; (define-extern *g-curve-wasstada-crucible-flame* curve2d-fast) +;; (define-extern *b-curve-wasstada-crucible-flame* curve2d-fast) +;; (define-extern *curve-alpha-wasstada-crucible-flame* curve2d-fast) +;; (define-extern *curve-wasstada-crucible-flame-x* curve2d-fast) +;; (define-extern *curve-wasstada-crucible-flame-y* curve2d-fast) +;; (define-extern *part-wasstada-crucible-flame-curve-settings* object) +;; (define-extern *range-color-wasstada-bowl-flame* curve-color-fast) +;; (define-extern *range-alpha-wasstada-bowl-flame* curve2d-fast) +;; (define-extern *range-scale-wasstada-bowl-flame-x* curve2d-fast) +;; (define-extern *range-scale-wasstada-bowl-flame-y* curve2d-fast) +;; (define-extern *r-curve-wasstada-bowl-flame* curve2d-fast) +;; (define-extern *g-curve-wasstada-bowl-flame* curve2d-fast) +;; (define-extern *b-curve-wasstada-bowl-flame* curve2d-fast) +;; (define-extern *curve-alpha-wasstada-bowl-flame* curve2d-fast) +;; (define-extern *curve-wasstada-bowl-flame-x* curve2d-fast) +;; (define-extern *curve-wasstada-bowl-flame-y* curve2d-fast) +;; (define-extern *part-wasstada-bowl-flame-curve-settings* object) +;; (define-extern part-wasstada-bird1-path function) +;; (define-extern part-wasstada-bird2-path function) +;; (define-extern part-wasstada-bird3-path function) +;; (define-extern part-wasstada-bird4-path function) +;; (define-extern part-wasstada-bird5-path function) +;; (define-extern *crowd-dudes-position* array) +;; (define-extern *crowd-dudes-textures* array) +;; (define-extern crowd-dude-func function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; neo-wasp-part ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; profile-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype profile-segment (structure) + ((name symbol :offset-assert 0) ;; guessed by decompiler + (start-time int16 :offset-assert 4) + (end-time int16 :offset-assert 6) + (count uint8 :offset-assert 8) + (vu-count uint8 :offset-assert 9) + (depth uint16 :offset-assert 10) + (color rgba :offset-assert 12) ;; guessed by decompiler + (code-time uint16 :offset-assert 4) + (vu-time uint16 :offset-assert 6) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype profile-collapse (structure) + ((count int32 :offset-assert 0) + (data profile-segment 48 :offset-assert 4) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x304 + :flag-assert #x900000304 + ) +|# + +#| +(deftype profile-segment-array (basic) + ((count int16 :offset-assert 4) + (depth int8 :offset-assert 6) + (max-depth int8 :offset-assert 7) + (base-time int16 :offset-assert 8) + (segment profile-segment 9 :offset-assert 12) ;; guessed by decompiler + (data profile-segment 1024 :offset-assert 48) ;; guessed by decompiler + ) + :method-count-assert 13 + :size-assert #x4030 + :flag-assert #xd00004030 + (:methods + (profile-segment-array-method-9 () none) ;; 9 ;; (get-total-time (_type_) int 9) + (profile-segment-array-method-10 () none) ;; 10 ;; (start-frame! (_type_) none 10) + (profile-segment-array-method-11 () none) ;; 11 ;; (start-segment! (_type_ symbol rgba) none 11) + (profile-segment-array-method-12 () none) ;; 12 ;; (end-segment! (_type_) none 12) + ) + ) +|# + +#| +(deftype profile-array (structure) + ((data profile-segment-array 2 :offset-assert 0) ;; guessed by decompiler + ) + :method-count-assert 12 + :size-assert #x8 + :flag-assert #xc00000008 + (:methods + (profile-array-method-9 () none) ;; 9 ;; (setup-categories! (_type_) none 9) + (profile-array-method-10 () none) ;; 10 ;; (draw-bars! (_type_ dma-buffer int) none 10) + (profile-array-method-11 () none) ;; 11 ;; (draw-text! (_type_) none 11) + ) + ) +|# + +#| +(deftype profile-spec (structure) + ((name basic :offset-assert 0) + (color uint32 :offset-assert 4) + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +;; (define-extern *profile-gap-color* object) ;; rgba +;; (define-extern *profile-all-color* object) ;; rgba +;; (define-extern *profile-blit-color* object) ;; rgba +;; (define-extern *profile-sky-color* object) ;; rgba +;; (define-extern *profile-ocean-color* object) ;; rgba +;; (define-extern *profile-hfrag-color* object) +;; (define-extern *profile-tfrag-color* object) ;; rgba +;; (define-extern *profile-texture-color* object) ;; rgba +;; (define-extern *profile-tie-color* object) +;; (define-extern *profile-generic-color* object) +;; (define-extern *profile-merc-color* object) ;; rgba +;; (define-extern *profile-shrubbery-color* object) +;; (define-extern *profile-particle-color* object) +;; (define-extern *profile-debug-color* object) ;; rgba +;; (define-extern *profile-other-color* object) +;; (define-extern *profile-joints-color* object) ;; rgba +;; (define-extern *profile-draw-hook-color* object) ;; rgba +;; (define-extern *profile-background-color* object) ;; rgba +;; (define-extern *profile-foreground-color* object) ;; rgba +;; (define-extern *profile-bones-color* object) ;; rgba +;; (define-extern *profile-actors-color* object) ;; rgba +;; (define-extern *profile-collide-color* object) ;; rgba +;; (define-extern *profile-nav-color* object) ;; rgba +;; (define-extern *profile-camera-color* object) ;; rgba +;; (define-extern *profile-gs-sync-color* object) +;; (define-extern *profile-array* object) ;; profile-array +;; (define-extern *profile-collapse* object) ;; profile-collapse +;; (define-extern *profile-interrupt-segment* object) ;; profile-segment-array +;; (define-extern *profile-interrupt-start* object) ;; symbol + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; flut-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype flut-info (basic) + ((entity basic :offset-assert 4) + (flut-trans vector :inline :offset-assert 16) + (flut-quat vector :inline :offset-assert 32) + (flut-scale vector :inline :offset-assert 48) + (prev-quat quaternion :inline :offset-assert 64) + (stick-lock basic :offset-assert 80) + (flap-sound-id uint32 :offset-assert 84) + (mode-sound-bank connection :offset-assert 88) + (mode basic :offset-assert 92) + (color-index int32 :offset-assert 96) + (as-daxter? basic :offset-assert 100) + (art-group-backup basic :offset-assert 104) + (flut-start-time uint64 :offset-assert 112) + (wild-turn-time uint64 :offset-assert 120) + (wild-turn-rate deg :offset-assert 128) + (attack-id uint32 :offset-assert 132) + ) + :method-count-assert 9 + :size-assert #x88 + :flag-assert #x900000088 + ) +|# + +#| +(deftype flut (process-focusable) + ((extra-trans vector :inline :offset-assert 208) + (condition int32 :offset-assert 224) + (shadow-backup basic :offset-assert 228) + (rider uint64 :offset-assert 232) + (nav-sphere-handle uint64 :offset-assert 240) + (probe-time uint64 :offset-assert 248) + (count-lock basic :offset-assert 256) + (flags uint64 :offset-assert 264) + (mode basic :offset-assert 272) + (color-index int32 :offset-assert 276) + (minimap connection-minimap :offset-assert 280) + ) + :method-count-assert 35 + :size-assert #x11c + :flag-assert #x2300a0011c + (:methods + (flut-method-28 () none) ;; 28 + (flut-method-29 () none) ;; 29 + (flut-method-30 () none) ;; 30 + (flut-method-31 () none) ;; 31 + (flut-method-32 () none) ;; 32 + (flut-method-33 () none) ;; 33 + (flut-method-34 () none) ;; 34 + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; light-trails ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern compute-trail-scaled-t function) +;; (define-extern *dist-cache-array* object) +;; (define-extern *total-length* object) +;; (define-extern light-trail-tracker-common-post function) +;; (define-extern estimate-light-trail-mem-usage function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; trigonometry-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; transformq-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype transformq (transform) + ((quat quaternion :inline :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x30 + :flag-assert #x900000030 + ) +|# + +#| +(deftype trsq (trs) + ((quat quaternion :inline :offset-assert 32) + ) + :method-count-assert 9 + :size-assert #x40 + :flag-assert #x900000040 + ) +|# + +#| +(deftype trsqv (trsq) + ((pause-adjust-distance meters :offset-assert 4) + (nav-radius meters :offset-assert 8) + (transv vector :inline :offset-assert 64) + (rotv vector :inline :offset-assert 80) + (scalev vector :inline :offset-assert 96) + (dir-targ quaternion :inline :offset-assert 112) + (angle-change-time uint64 :offset-assert 128) ;; time-frame + (old-y-angle-diff float :offset-assert 136) + ) + :method-count-assert 28 + :size-assert #x8c + :flag-assert #x1c0000008c + (:methods + (trsqv-method-9 () none) ;; 9 ;; (seek-toward-heading-vec! (_type_ vector float time-frame) quaternion 9) + (trsqv-method-10 () none) ;; 10 ;; (set-heading-vec! (_type_ vector) quaternion 10) + (trsqv-method-11 () none) ;; 11 ;; (seek-to-point-toward-point! (_type_ vector float time-frame) quaternion 11) + (trsqv-method-12 () none) ;; 12 ;; (point-toward-point! (_type_ vector) quaternion 12) + (trsqv-method-13 () none) ;; 13 ;; (seek-toward-yaw-angle! (_type_ float float time-frame) quaternion 13) + (trsqv-method-14 () none) ;; 14 ;; (set-yaw-angle-clear-roll-pitch! (_type_ float) quaternion 14) + (trsqv-method-15 () none) ;; 15 ;; (set-roll-to-grav! (_type_ float) quaternion 15) + (trsqv-method-16 () none) ;; 16 ;; (set-roll-to-grav-2! (_type_ float) quaternion 16) + (trsqv-method-17 () none) ;; 17 ;; (rotate-toward-orientation! (_type_ quaternion float float int int float) quaternion 17) + (trsqv-method-18 () none) ;; 18 ;; (set-quaternion! (_type_ quaternion) quaternion 18) + (trsqv-method-19 () none) ;; 19 ;; (set-heading-vec-clear-roll-pitch! (_type_ vector) quaternion 19) + (trsqv-method-20 () none) ;; 20 ;; (point-toward-point-clear-roll-pitch! (_type_ vector) quaternion 20) + (trsqv-method-21 () none) ;; 21 ;; (rot->dir-targ! (_type_) quaternion 21) + (trsqv-method-22 () none) ;; 22 ;; (y-angle (_type_) float 22) + (trsqv-method-23 () none) ;; 23 ;; (global-y-angle-to-point (_type_ vector) float 23) + (trsqv-method-24 () none) ;; 24 ;; (relative-y-angle-to-point (_type_ vector) float 24) + (trsqv-method-25 () none) ;; 25 ;; (roll-relative-to-gravity (_type_) float 25) + (trsqv-method-26 () none) ;; 26 ;; (set-and-limit-velocity (_type_ int vector float) trsqv 26) + (trsqv-method-27 () none) ;; 27 ;; (get-quaternion (_type_) quaternion 27) + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ctygenb-part ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; lights-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype vu-lights (structure) + ((direction vector 3 :offset-assert 0) ;; guessed by decompiler + (color vector 3 :offset-assert 48) ;; guessed by decompiler + (ambient vector :inline :offset-assert 96) + ) + :method-count-assert 9 + :size-assert #x70 + :flag-assert #x900000070 + ) +|# + +#| +(deftype light (structure) + ((direction vector :inline :offset-assert 0) + (color rgbaf :inline :offset-assert 16) + (extra vector :inline :offset-assert 32) + (level float :offset-assert 32) + (luminance float :offset-assert 40) + (priority float :offset-assert 44) + (bytes uint8 4 :offset-assert 36) ;; guessed by decompiler + (mask uint16 :offset-assert 36) + (palette-index int8 :offset-assert 39) + ) + :method-count-assert 9 + :size-assert #x30 + :flag-assert #x900000030 + ) +|# + +;; (deftype light-shadow-mask (uint32) +;; () +;; :flag-assert #x900000004 +;; ) + +#| +(deftype light-sphere (structure) + ((name string :offset-assert 0) ;; guessed by decompiler + (bsphere vector :inline :offset-assert 16) + (direction vector :inline :offset-assert 32) + (color vector :inline :offset-assert 48) + (decay-start float :offset-assert 4) + (ambient-point-ratio float :offset-assert 8) + (brightness float :offset-assert 12) + (bytes uint8 4 :offset-assert 60) ;; guessed by decompiler + (mask uint16 :offset-assert 60) + (palette-index int8 :offset-assert 63) + (shadow uint32 :offset-assert 32) + ) + :method-count-assert 9 + :size-assert #x40 + :flag-assert #x900000040 + ) +|# + +#| +(deftype light-hash-bucket (structure) + ((index uint16 :offset-assert 0) + (count uint16 :offset-assert 2) + ) + :method-count-assert 9 + :size-assert #x4 + :flag-assert #x900000004 + ) +|# + +#| +(deftype light-hash (basic) + ((num-lights uint16 :offset-assert 4) + (num-indices uint16 :offset-assert 6) + (num-buckets uint16 :offset-assert 8) + (bucket-step uint8 2 :offset-assert 10) ;; guessed by decompiler + (base-trans vector :inline :offset-assert 16) + (axis-scale vector :inline :offset-assert 32) + (dimension-array vector4w :inline :offset-assert 48) + (bucket-array (inline-array light-hash-bucket) :offset-assert 64) ;; guessed by decompiler + (index-array pointer :offset-assert 68) ;; guessed by decompiler + (light-sphere-array (inline-array light-sphere) :offset-assert 72) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x4c + :flag-assert #x90000004c + ) +|# + +#| +(deftype light-hash-work (structure) + ((ones vector4w :inline :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype light-group (structure) + ((dir0 light :inline :offset-assert 0) + (dir1 light :inline :offset-assert 48) + (dir2 light :inline :offset-assert 96) + (ambi light :inline :offset-assert 144) + ) + :method-count-assert 9 + :size-assert #xc0 + :flag-assert #x9000000c0 + ) +|# + +;; (define-extern *light-hash* object) ;; light-hash + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; generic-merc-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype merc-matrix (structure) + ((quad uint128 8 :offset-assert 0) ;; guessed by decompiler + (vector vector 8 :offset-assert 0) ;; guessed by decompiler + (tag uint64 :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x80 + :flag-assert #x900000080 + ) +|# + +#| +(deftype generic-merc-tag (dma-packet) + ((next-ptr uint32 :offset-assert 12) + (size uint32 :offset-assert 8) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype generic-merc-ctrl (structure) + ((tag generic-merc-tag :inline :offset-assert 0) + (lights vu-lights :inline :offset-assert 16) + (header merc-ctrl-header :inline :offset-assert 128) + (effect merc-effect :inline :offset-assert 256) + ) + :method-count-assert 9 + :size-assert #x120 + :flag-assert #x900000120 + ) +|# + +#| +(deftype generic-merc-ctrl-with-sfx (generic-merc-ctrl) + ((sfx-data uint128 11 :offset-assert 288) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x1d0 + :flag-assert #x9000001d0 + ) +|# + +#| +(deftype generic-merc-input (structure) + ((geo-tag generic-merc-tag :inline :offset-assert 0) + (geo-block uint8 1296 :offset-assert 16) ;; guessed by decompiler + (byte-header merc-byte-header :inline :offset-assert 16) + (matrix merc-matrix 9 :offset-assert 1312) ;; guessed by decompiler + (control generic-merc-ctrl-with-sfx :inline :offset-assert 2464) + (end-tag generic-merc-tag :inline :offset-assert 2928) + (shader adgif-shader :inline :offset-assert 2944) + ) + :method-count-assert 9 + :size-assert #xbd0 + :flag-assert #x900000bd0 + ) +|# + +#| +(deftype generic-merc-output (structure) + ((info gsf-info :inline :offset-assert 0) + (header gsf-header :inline :offset-assert 16) + (index-kick-table uint16 80 :offset-assert 32) ;; guessed by decompiler + (index-table uint8 160 :offset-assert 32) ;; guessed by decompiler + (inverse-table uint8 256 :offset-assert 192) ;; guessed by decompiler + (vertex-table gsf-vertex 72 :offset-assert 448) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #xac0 + :flag-assert #x900000ac0 + ) +|# + +#| +(deftype generic-merc-dcache (structure) + ((output-a generic-merc-output :inline :offset-assert 0) + (output-b generic-merc-output :inline :offset-assert 2752) + (inv-table-1 uint8 544 :offset-assert 5504) ;; guessed by decompiler + (inv-table-7 uint8 544 :offset-assert 6048) ;; guessed by decompiler + (inv-safety uint8 16 :offset-assert 6592) ;; guessed by decompiler + (effect-data uint8 1584 :offset-assert 6608) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x2000 + :flag-assert #x900002000 + ) +|# + +#| +(deftype gm-shadow (structure) + ((perspective matrix :inline :offset-assert 0) + (isometric matrix :inline :offset-assert 64) + (inv-camera-rot matrix :inline :offset-assert 128) + (envmap-shader adgif-shader :inline :offset-assert 192) + (current-chain uint32 :offset-assert 272) + (next-chain uint32 :offset-assert 276) + (buf-index uint32 :offset-assert 280) + (fragment-count uint32 :offset-assert 284) + (write-limit int32 :offset-assert 288) + (indexed-input-base generic-merc-input :offset-assert 292) + (other-input-base generic-merc-input :offset-assert 296) + (indexed-output-base generic-merc-output :offset-assert 300) + (other-output-base generic-merc-output :offset-assert 304) + (p-input uint32 :offset-assert 308) + (gsf-buf generic-merc-dcache :offset-assert 312) + (p-fheader merc-fp-header :offset-assert 316) + (curr-chain basic :offset-assert 320) + (mercneric-convert basic :offset-assert 324) + (generic-prepare-dma-single basic :offset-assert 328) + (generic-prepare-dma-double basic :offset-assert 332) + (generic-light-proc basic :offset-assert 336) + (generic-envmap-proc basic :offset-assert 340) + (high-speed-reject basic :offset-assert 344) + (dummy-0 uint32 :offset-assert 348) + (hsr-xmult vector :inline :offset-assert 352) + (hsr-ymult vector :inline :offset-assert 368) + (warp-consts vector :inline :offset-assert 384) + ) + :method-count-assert 9 + :size-assert #x190 + :flag-assert #x900000190 + ) +|# + +#| +(deftype generic-merc-work (structure) + ((input-a generic-merc-input :inline :offset-assert 0) + (input-b generic-merc-input :inline :offset-assert 3024) + (ctrl generic-merc-ctrl-with-sfx :inline :offset-assert 6048) + (shadow gm-shadow :inline :offset-assert 6512) + (stack uint128 16 :offset-assert 6912) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x1c00 + :flag-assert #x900001c00 + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; texture-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype texture-id (uint32) + ((UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + ) + :method-count-assert 9 + :size-assert #x4 + :flag-assert #x900000004 + ) +|# + +#| +(deftype texture-pool-segment (structure) + ((dest uint32 :offset-assert 0) + (size uint32 :offset-assert 4) + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +#| +(deftype texture-pool (basic) + ((top int32 :offset-assert 4) + (cur int32 :offset-assert 8) + (allocate-func (function texture-pool texture-page kheap int texture-page) :offset-assert 12) ;; guessed by decompiler + (font-palette int32 :offset-assert 16) + (segment texture-pool-segment 4 :offset-assert 20) ;; guessed by decompiler + (segment-near texture-pool-segment :inline :offset-assert 20) + (segment-common texture-pool-segment :inline :offset-assert 28) + (common-page texture-page 32 :offset-assert 52) ;; guessed by decompiler + (common-page-mask int32 :offset-assert 180) + (update-sprites-flag symbol :offset-assert 184) ;; guessed by decompiler + (update-flag symbol :offset-assert 188) ;; guessed by decompiler + (texture-enable-user uint64 :offset-assert 192) ;; texture-enable-mask + (texture-enable-user-menu uint64 :offset-assert 200) ;; texture-enable-mask + (ids uint32 128 :offset-assert 208) ;; guessed by decompiler + ) + :method-count-assert 26 + :size-assert #x2d0 + :flag-assert #x1a000002d0 + (:methods + ;; (new (symbol type) _type_ 0) + (texture-pool-method-9 () none) ;; 9 ;; (initialize! (_type_) _type_ 9) + (texture-pool-method-10 () none) ;; 10 ;; (print-usage (_type_) _type_ 10) + (texture-pool-method-11 () none) ;; 11 ;; (setup-font-texture (_type_) none 11) + (texture-pool-method-12 () none) ;; 12 ;; (allocate-defaults (_type_) none 12) + (texture-pool-method-13 () none) ;; 13 ;; (login-level-textures (_type_ level int (pointer texture-id)) none 13) + (texture-pool-method-14 () none) ;; 14 ;; (add-level-tpage-dma (_type_ level tpage-category bucket-id) none 14) + (texture-pool-method-15 () none) ;; 15 ;; (allocate-vram-words! (_type_ int) int 15) + (texture-pool-method-16 () none) ;; 16 ;; (allocate-segment (_type_ texture-pool-segment int) texture-pool-segment 16) + (texture-pool-method-17 () none) ;; 17 ;; (unload-page (_type_ texture-page) none 17) + (texture-pool-method-18 () none) ;; 18 ;; (get-common-page-slot-by-id (_type_ int) int 18) + (texture-pool-method-19 () none) ;; 19 ;; (update-warp-and-hud (_type_) none 19) + (texture-pool-method-20 () none) ;; 20 ;; (update-sprites (_type_) none 20) + (texture-pool-method-21 () none) ;; 21 ;; (mark-hud-warp-sprite-dirty (_type_) none 21) + (texture-pool-method-22 () none) ;; 22 ;; (lay-out-sprite-tex (_type_) none 22) + (texture-pool-method-23 () none) ;; 23 ;; (lay-out-hud-tex (_type_) none 23) + (texture-pool-method-24 () none) ;; 24 ;; (lay-out-warp-tex (_type_) none 24) + (texture-pool-method-25 () none) ;; 25 ;; (clear-ids (_type_) none 25) + ) + ) +|# + +#| +(deftype texture-mask (structure) + ((mask vector4w :inline :offset-assert 0) + (dist float :offset-assert 12) + (long uint64 2 :offset-assert 0) ;; guessed by decompiler + (quad uint128 :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype texture-masks (structure) + ((data texture-mask 3 :offset-assert 0) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x30 + :flag-assert #x900000030 + ) +|# + +#| +(deftype texture-masks-array (inline-array-class) + ((data texture-masks :dynamic :offset-assert 16) ;; guessed by decompiler + ) + :method-count-assert 14 + :size-assert #x10 + :flag-assert #xe00000010 + ) +|# + +#| +(deftype texture (basic) + ((w int16 :offset-assert 4) + (h int16 :offset-assert 6) + (num-mips uint8 :offset-assert 8) + (tex1-control uint8 :offset-assert 9) + (psm uint8 :offset-assert 10) ;; gs-psm + (mip-shift uint8 :offset-assert 11) + (clutpsm uint16 :offset-assert 12) + (dest uint16 7 :offset-assert 14) ;; guessed by decompiler + (clutdest uint16 :offset-assert 28) + (width uint8 7 :offset-assert 30) ;; guessed by decompiler + (name string :offset-assert 40) ;; guessed by decompiler + (size uint32 :offset-assert 44) + (uv-dist float :offset-assert 48) + (pad uint32 3 :offset-assert 52) ;; guessed by decompiler + (masks texture-masks :inline :offset-assert 64) + ) + :method-count-assert 9 + :size-assert #x70 + :flag-assert #x900000070 + ) +|# + +#| +(deftype texture-page-segment (structure) + ((block-data pointer :offset-assert 0) ;; guessed by decompiler + (size uint32 :offset-assert 4) + (dest uint32 :offset-assert 8) + ) + :method-count-assert 9 + :size-assert #xc + :flag-assert #x90000000c + ) +|# + +#| +(deftype texture-page (basic) + ((info file-info :offset-assert 4) ;; guessed by decompiler + (name string :offset-assert 8) ;; guessed by decompiler + (id uint32 :offset-assert 12) + (length int32 :offset-assert 16) + (mip0-size uint32 :offset-assert 20) + (size uint32 :offset-assert 24) + (segment texture-page-segment 3 :offset-assert 28) ;; guessed by decompiler + (dram-size uint32 :offset-assert 64) + (vram-size uint32 :offset-assert 68) + (pad uint32 14 :offset-assert 72) ;; guessed by decompiler + (data texture :dynamic :offset-assert 128) ;; guessed by decompiler + ) + :method-count-assert 14 + :size-assert #x80 + :flag-assert #xe00000080 + (:methods + (texture-page-method-9 () none) ;; 9 ;; (remove-data-from-heap (_type_ kheap) _type_ 9) + (texture-page-method-10 () none) ;; 10 ;; (get-leftover-block-count (_type_ int int) int 10) + (texture-page-method-11 () none) ;; 11 ;; (relocate-dests! (_type_ int int) none 11) + (texture-page-method-12 () none) ;; 12 ;; (add-to-dma-buffer (_type_ dma-buffer tex-upload-mode) int 12) + (texture-page-method-13 () none) ;; 13 ;; (upload-now! (_type_ tex-upload-mode) none 13) + ) + ) +|# + +;; (deftype shader-ptr (uint32) +;; () +;; :flag-assert #x900000004 +;; ) + +#| +(deftype texture-link (structure) + ((next shader-ptr :offset-assert 0) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x4 + :flag-assert #x900000004 + ) +|# + +#| +(deftype texture-page-dir-entry (structure) + ((length int16 :offset-assert 0) + (status uint16 :offset-assert 2) + (page texture-page :offset-assert 4) ;; guessed by decompiler + (link texture-link :offset-assert 8) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #xc + :flag-assert #x90000000c + ) +|# + +;; (deftype texture-page-dir (basic) +;; () +;; :flag-assert #xa00000014 +;; ) + +#| +(deftype texture-relocate-later (basic) + ((memcpy symbol :offset-assert 4) ;; guessed by decompiler + (dest uint32 :offset-assert 8) + (source uint32 :offset-assert 12) + (move uint32 :offset-assert 16) + (entry texture-page-dir-entry :offset-assert 20) + (page texture-page :offset-assert 24) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x1c + :flag-assert #x90000001c + ) +|# + +#| +(deftype adgif-shader (structure) + ((quad qword 5 :offset-assert 0) ;; guessed by decompiler + (prims gs-reg64 10 :offset-assert 0) ;; guessed by decompiler + (reg-0 uint8 :offset-assert 8) + (reg-1 uint8 :offset-assert 24) + (reg-2 uint8 :offset-assert 40) + (reg-3 uint8 :offset-assert 56) + (reg-4 uint8 :offset-assert 72) + (tex0 uint64 :offset-assert 0) ;; gs-tex0 + (tex1 uint64 :offset-assert 16) ;; gs-tex1 + (miptbp1 uint64 :offset-assert 32) ;; gs-miptbp + (clamp uint64 :offset-assert 48) ;; gs-clamp + (clamp-reg uint64 :offset-assert 56) ;; gs-reg64 + (alpha uint64 :offset-assert 64) ;; gs-alpha + (link-test link-test-flags :offset-assert 8) ;; guessed by decompiler + (texture-id texture-id :offset-assert 24) ;; guessed by decompiler + (next shader-ptr :offset-assert 40) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x50 + :flag-assert #x900000050 + ) +|# + +#| +(deftype adgif-shader-array (inline-array-class) + ((data adgif-shader :dynamic :offset-assert 16) ;; guessed by decompiler + ) + :method-count-assert 14 + :size-assert #x10 + :flag-assert #xe00000010 + ) +|# + +#| +(deftype texture-base (structure) + ((vram-page uint32 :offset-assert 0) + (vram-block uint32 :offset-assert 4) + (vram-word uint32 :offset-assert 8) + ) + :method-count-assert 9 + :size-assert #xc + :flag-assert #x90000000c + ) +|# + +#| +(deftype texture-page-translate-item (structure) + ((bucket int32 :offset-assert 0) ;; bucket-id + (level-index uint32 :offset-assert 4) + (level-texture-page tpage-category-u32 :offset-assert 8) ;; guessed by decompiler + (texture-user texture-enable-mask-u32 :offset-assert 12) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +;; (define-extern *texture-masks* object) ;; texture-masks +;; (define-extern *texture-masks-array* object) ;; texture-masks-array +;; (define-extern texture-mip->segment function) ;; (function int int int) +;; (define-extern *texture-relocate-later* object) ;; texture-relocate-later +;; (define-extern *texture-page-dir* object) ;; texture-page-dir +;; (define-extern ct32-24-block-table array) ;; (array int32) +;; (define-extern mz32-24-block-table array) ;; (array int32) +;; (define-extern ct16-block-table array) ;; (array int32) +;; (define-extern ct16s-block-table array) ;; (array int32) +;; (define-extern mz16-block-table array) ;; (array int32) +;; (define-extern mz16s-block-table array) ;; (array int32) +;; (define-extern mt8-block-table array) ;; (array int32) +;; (define-extern mt4-block-table array) ;; (array int32) +;; (define-extern *texture-page-translate* array) ;; (array texture-page-translate-item) +;; (define-extern *eyes-texture-base* object) ;; texture-base +;; (define-extern *skull-gem-texture-base* object) ;; texture-base +;; (define-extern *ocean-texture-base* object) ;; texture-base +;; (define-extern *ocean-envmap-texture-base* object) ;; texture-base +;; (define-extern *grey-scale-base* object) ;; texture-base +;; (define-extern *map-texture-base* object) ;; texture-base + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; bounding-box ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype liang-barsky-line-clip-params (structure) + ((te float :offset-assert 0) + (tl float :offset-assert 4) + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +;; (define-extern box-vector-enside? function) ;; (function bounding-box vector symbol) +;; (define-extern box-vector-inside? function) ;; (function bounding-box vector symbol) +;; (define-extern liang-barsky-line-clipt function) ;; (function liang-barsky-line-clip-params float float symbol) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; matrix ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; matrix is already defined! + +;; matrix3 is already defined! + +;; (define-extern matrix-identity! function) ;; (function matrix matrix) +;; (define-extern *identity-matrix* object) ;; matrix +;; (define-extern *hermite-matrix* object) ;; matrix +;; (define-extern matrix+! function) ;; (function matrix matrix matrix matrix) +;; (define-extern matrix-! function) ;; (function matrix matrix matrix matrix) +;; (define-extern matrix*! function) ;; (function matrix matrix matrix matrix) +;; (define-extern matrixp*! function) ;; (function matrix matrix matrix matrix) +;; (define-extern vector-matrix*! function) ;; (function vector vector matrix vector) +;; (define-extern vector-norm-matrix*! function) +;; (define-extern vector-rotate*! function) ;; (function vector vector matrix vector) +;; (define-extern vector3s-matrix*! function) ;; (function vector3s vector3s matrix vector3s) +;; (define-extern vector3s-rotate*! function) ;; (function vector3s vector3s matrix vector3s) +;; (define-extern matrix-transpose! function) ;; (function matrix matrix matrix) +;; (define-extern matrix-inverse-of-rot-trans! function) ;; (function matrix matrix matrix) +;; (define-extern matrix-4x4-inverse! function) ;; (function matrix matrix matrix) +;; (define-extern matrix-translate! function) ;; (function matrix vector matrix) +;; (define-extern matrix-translate+! function) ;; (function matrix matrix vector matrix) +;; (define-extern matrix-scale! function) ;; (function matrix vector matrix) +;; (define-extern scale-matrix! function) ;; (function matrix vector matrix matrix) +;; (define-extern matrix-inv-scale! function) ;; (function matrix vector matrix) +;; (define-extern column-scale-matrix! function) ;; (function matrix vector matrix matrix) +;; (define-extern matrix-rotate-x! function) ;; (function matrix float matrix) +;; (define-extern matrix-rotate-y! function) ;; (function matrix float matrix) +;; (define-extern matrix-rotate-z! function) ;; (function matrix float matrix) +;; (define-extern matrix-rotate-zyx! function) ;; (function matrix vector matrix) +;; (define-extern matrix-rotate-xyz-2! function) ;; (function matrix vector matrix) +;; (define-extern matrix-rotate-xyz! function) ;; (function matrix vector matrix) +;; (define-extern matrix-rotate-zxy! function) ;; (function matrix vector matrix) +;; (define-extern matrix-rotate-yxz! function) ;; (function matrix vector matrix) +;; (define-extern matrix-rotate-yzx! function) ;; (function matrix vector matrix) +;; (define-extern matrix-rotate-yxy! function) ;; (function matrix vector matrix) +;; (define-extern matrix-rotate-yx! function) ;; (function matrix float float matrix) +;; (define-extern matrix-axis-sin-cos-vu! function) ;; (function matrix vector float float none) +;; (define-extern matrix-axis-sin-cos! function) ;; (function matrix vector float float matrix) +;; (define-extern matrix-axis-angle! function) ;; (function matrix vector float matrix) +;; (define-extern matrix-lerp! function) ;; (function matrix matrix matrix float matrix) +;; (define-extern matrix-3x3-determinant function) ;; (function matrix float) +;; (define-extern matrix3-determinant function) ;; (function matrix float) +;; (define-extern matrix-3x3-inverse! function) ;; (function matrix matrix matrix) +;; (define-extern matrix-3x3-inverse-transpose! function) ;; (function matrix matrix matrix) +;; (define-extern matrix3-inverse-transpose! function) ;; (function matrix matrix matrix) +;; (define-extern matrix-3x3-normalize! function) ;; (function matrix matrix matrix) +;; (define-extern matrix-4x4-determinant function) ;; (function matrix float) +;; (define-extern matrix-4x4-inverse-transpose! function) ;; (function matrix matrix matrix) +;; (define-extern matrix-y-angle function) ;; (function matrix float) +;; (define-extern matrix->trans function) ;; (function matrix vector vector) +;; (define-extern matrix<-trans function) ;; (function matrix vector matrix) +;; (define-extern matrix->scale function) ;; (function matrix vector vector) +;; (define-extern matrix<-scale function) ;; (function matrix vector matrix) +;; (define-extern matrix->quat function) ;; (function matrix quaternion quaternion) +;; (define-extern matrix<-quat function) ;; (function matrix quaternion matrix) +;; (define-extern matrix->transformq function) ;; (function transformq matrix transformq) +;; (define-extern matrix-mirror! function) ;; (function matrix vector vector matrix) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; matrix-compose ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern matrix-fur-compose function) +;; (define-extern matrix-fu-compose function) +;; (define-extern matrix-fr-compose function) +;; (define-extern matrix-ur-compose function) +;; (define-extern matrix-f-u-compose function) +;; (define-extern matrix-f-r-compose function) +;; (define-extern matrix-u-f-compose function) +;; (define-extern matrix-u-r-compose function) +;; (define-extern matrix-r-f-compose function) +;; (define-extern matrix-r-u-compose function) +;; (define-extern matrix-f-compose function) +;; (define-extern matrix-u-compose function) +;; (define-extern matrix-r-compose function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; collide-hash-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype collide-hash-scratch (structure) + ((collidable-bits uint128 128 :offset-assert 0) ;; guessed by decompiler + (poly-bits uint64 2 :offset-assert 0) ;; guessed by decompiler + (id-bits uint32 512 :offset-assert 0) ;; guessed by decompiler + (tris uint32 :offset-assert 2048) + ) + :method-count-assert 9 + :size-assert #x804 + :flag-assert #x900000804 + ) +|# + +#| +(deftype collide-hash-bucket (structure) + ((index int16 :offset-assert 0) + (count int16 :offset-assert 2) + ) + :method-count-assert 9 + :size-assert #x4 + :flag-assert #x900000004 + ) +|# + +#| +(deftype collide-hash-item (structure) + ((id uint32 :offset-assert 0) + (collidable basic :offset-assert 4) + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +#| +(deftype collide-hash-poly (structure) + ((data uint8 4 :offset-assert 0) ;; guessed by decompiler + (vert-index0 uint8 :offset-assert 0) + (vert-index1 uint8 :offset-assert 1) + (vert-index2 uint8 :offset-assert 2) + (pat-index uint8 :offset-assert 3) + (word uint32 :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x4 + :flag-assert #x900000004 + ) +|# + +#| +(deftype collide-hash-fragment-stats (structure) + ((num-verts uint16 :offset-assert 0) + (num-polys uint8 :offset-assert 2) + (poly-count uint8 :offset-assert 3) + ) + :method-count-assert 9 + :size-assert #x4 + :flag-assert #x900000004 + ) +|# + +#| +(deftype collide-hash-fragment (drawable) + ((num-buckets uint16 :offset-assert 4) + (num-indices uint16 :offset-assert 6) + (pat-array uint32 :offset-assert 8) + (bucket-array uint32 :offset-assert 12) + (grid-step vector :inline :offset-assert 32) + (bbox bounding-box :inline :offset-assert 48) + (bbox4w bounding-box4w :inline :offset-assert 80) + (axis-scale vector :inline :offset-assert 64) + (avg-extents vector :inline :offset-assert 80) + (dimension-array uint32 4 :offset-assert 44) ;; guessed by decompiler + (stats collide-hash-fragment-stats :inline :offset-assert 60) + (num-verts uint16 :offset-assert 60) + (num-polys uint8 :offset-assert 62) + (poly-count uint8 :offset-assert 63) + (poly-array uint32 :offset-assert 76) + (vert-array uint32 :offset-assert 92) + (index-array uint32 :offset-assert 108) + ) + :method-count-assert 17 + :size-assert #x70 + :flag-assert #x1100000070 + ) +|# + +#| +(deftype collide-hash-fragment-array (array) + ((type type :offset-assert 0) ;; guessed by decompiler + (length int32 :offset-assert 4) + (allocated-length int32 :offset-assert 8) + (content-type type :offset-assert 12) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype collide-hash (drawable) + ((num-ids uint16 :offset-assert 4) + (id-count uint16 :offset-assert 6) + (num-buckets uint32 :offset-assert 8) + (qwc-id-bits uint32 :offset-assert 12) + (grid-step vector :inline :offset-assert 16) + (bbox bounding-box :inline :offset-assert 32) + (bbox4w bounding-box4w :inline :offset-assert 64) + (axis-scale vector :inline :offset-assert 48) + (avg-extents vector :inline :offset-assert 64) + (bucket-array uint32 :offset-assert 44) + (item-array (inline-array collide-hash-item) :offset-assert 60) ;; guessed by decompiler + (dimension-array uint32 3 :offset-assert 76) ;; guessed by decompiler + (num-items uint32 :offset-assert 92) + ) + :method-count-assert 17 + :size-assert #x60 + :flag-assert #x1100000060 + ) +|# + +;; (define-extern *collide-list-boxes* object) ;; object +;; (define-extern *collide-hash-fragments* object) ;; object +;; (define-extern *collide-hash-fragments-tfrag* object) ;; object +;; (define-extern *collide-hash-fragments-instance* object) ;; object +;; (define-extern *already-printed-exeeded-max-cache-tris* object) ;; symbol + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ctyport-obs ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype boat-manager (process) + ((mesh basic :offset-assert 128) + (paths path-control 4 :offset-assert 132) ;; guessed by decompiler + (boats-stop? basic :offset-assert 148) + ) + :method-count-assert 17 + :size-assert #x98 + :flag-assert #x1100200098 + (:methods + (boat-manager-method-15 () none) ;; 15 ;; (boat-manager-method-15 (_type_) none 15) + (boat-manager-method-16 () none) ;; 16 + ) + (:state-methods + idle ;; 14, old: (idle () _type_ :state 14) + ) + ) +|# + +#| +(deftype boat-base (vehicle) + ((manager uint64 :offset-assert 696) + (angle float :offset-assert 704) + (y-rot float :offset-assert 708) + (path-num uint32 :offset-assert 712) + (path-index float :offset-assert 716) + ) + :method-count-assert 152 + :size-assert #x2d0 + :flag-assert #x98025002d0 + (:state-methods + waiting ;; 57 + inactive ;; 56 + idle ;; 28 + ) + ) +|# + +#| +(deftype barge (boat-base) + ((engine sound-id :offset-assert 720) ;; guessed by decompiler + (bow-wash sound-id :offset-assert 724) ;; guessed by decompiler + ) + :method-count-assert 152 + :size-assert #x2d8 + :flag-assert #x98026002d8 + ) +|# + +;; (define-extern *barge-constants* object) ;; rigid-body-vehicle-constants + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; mine-ocean ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *ocean-colors-mine* object) +;; (define-extern *ocean-near-indices-mine* ocean-near-indices) +;; (define-extern *ocean-trans-indices-mine* ocean-trans-indices) +;; (define-extern *ocean-mid-indices-mine* ocean-mid-indices) +;; (define-extern *ocean-mid-masks-mine* ocean-mid-masks) +;; (define-extern *ocean-map-mine* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; quaternion ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; quaternion is already defined! + +;; (define-extern quaternion-axis-angle! function) ;; (function quaternion float float float float quaternion) +;; (define-extern quaternion-vector-angle! function) ;; (function quaternion vector float quaternion) +;; (define-extern vector-angle<-quaternion! function) ;; (function vector quaternion vector) +;; (define-extern quaternion-look-at! function) ;; (function quaternion vector vector quaternion) +;; (define-extern quaternion-zero! function) ;; (function quaternion quaternion) +;; (define-extern quaternion-identity! function) ;; (function quaternion quaternion) +;; (define-extern quaternion-i! function) ;; (function quaternion quaternion) +;; (define-extern quaternion-j! function) ;; (function quaternion quaternion) +;; (define-extern quaternion-k! function) ;; (function quaternion quaternion) +;; (define-extern quaternion-copy! function) ;; (function quaternion quaternion quaternion) +;; (define-extern quaternion-set! function) ;; (function quaternion float float float float quaternion) +;; (define-extern quaternion+! function) ;; (function quaternion quaternion quaternion quaternion) +;; (define-extern quaternion-! function) ;; (function quaternion quaternion quaternion quaternion) +;; (define-extern quaternion-negate! function) ;; (function quaternion quaternion quaternion) +;; (define-extern quaternion-conjugate! function) ;; (function quaternion quaternion quaternion) +;; (define-extern quaternion-float*! function) ;; (function quaternion quaternion float quaternion) +;; (define-extern quaternion-float/! function) ;; (function quaternion quaternion float quaternion) +;; (define-extern quaternion-norm2 function) ;; (function quaternion float) +;; (define-extern quaternion-norm function) ;; (function quaternion float) +;; (define-extern quaternion-normalize! function) ;; (function quaternion quaternion) +;; (define-extern quaternion-inverse! function) ;; (function quaternion quaternion quaternion) +;; (define-extern quaternion-dot function) ;; (function quaternion quaternion float) +;; (define-extern quaternion*! function) ;; (function quaternion quaternion quaternion quaternion) +;; (define-extern quaternion-right-mult-matrix! function) ;; (function matrix quaternion matrix) +;; (define-extern quaternion-left-mult-matrix! function) ;; (function matrix quaternion matrix) +;; (define-extern quaternion->matrix function) ;; (function matrix quaternion matrix) +;; (define-extern quaternion->matrix-2 function) ;; (function matrix quaternion matrix) +;; (define-extern matrix->quaternion function) ;; (function quaternion matrix quaternion) +;; (define-extern matrix-with-scale->quaternion function) ;; (function quaternion matrix quaternion) +;; (define-extern quaternion-vector-len function) ;; (function quaternion float) +;; (define-extern quaternion-log! function) ;; (function quaternion quaternion quaternion) +;; (define-extern quaternion-exp! function) ;; (function quaternion quaternion quaternion) +;; (define-extern quaternion-slerp! function) ;; (function quaternion quaternion quaternion float quaternion) +;; (define-extern quaternion-pseudo-slerp! function) ;; (function quaternion quaternion quaternion float quaternion) +;; (define-extern quaternion-pseudo-seek function) ;; (function quaternion quaternion quaternion float quaternion) +;; (define-extern quaternion-smooth-seek! function) ;; (function quaternion quaternion quaternion float quaternion) +;; (define-extern quaternion-zxy! function) ;; (function quaternion vector quaternion) +;; (define-extern vector-x-quaternion! function) ;; (function vector quaternion vector) +;; (define-extern vector-y-quaternion! function) ;; (function vector quaternion vector) +;; (define-extern vector-z-quaternion! function) ;; (function vector quaternion vector) +;; (define-extern quaternion-x-angle function) ;; (function quaternion float) +;; (define-extern quaternion-y-angle function) ;; (function quaternion float) +;; (define-extern quaternion-z-angle function) ;; (function quaternion float) +;; (define-extern quaternion-vector-y-angle function) ;; (function quaternion vector float) +;; (define-extern quaternion-rotate-local-x! function) ;; (function quaternion quaternion float quaternion) +;; (define-extern quaternion-rotate-local-y! function) ;; (function quaternion quaternion float quaternion) +;; (define-extern quaternion-rotate-local-z! function) ;; (function quaternion quaternion float quaternion) +;; (define-extern quaternion-rotate-y! function) ;; (function quaternion quaternion float quaternion) +;; (define-extern quaternion-rotate-x! function) ;; (function quaternion quaternion float quaternion) +;; (define-extern quaternion-rotate-z! function) ;; (function quaternion quaternion float quaternion) +;; (define-extern quaternion-delta-y function) ;; (function quaternion quaternion float) +;; (define-extern quaternion-rotate-y-to-vector! function) ;; (function quaternion quaternion quaternion float quaternion) +;; (define-extern vector-rotate-around-axis! function) +;; (define-extern vector-rotate-x! function) ;; (function vector vector float vector) +;; (define-extern vector-rotate-y! function) ;; (function vector vector float vector) +;; (define-extern vector-rotate-z! function) ;; (function vector vector float vector) +;; (define-extern vector-y-angle function) ;; (function vector float) +;; (define-extern vector-x-angle function) ;; (function vector float) +;; (define-extern quaternion<-rotate-y-vector function) ;; (function quaternion vector quaternion) +;; (define-extern quaternion-validate function) ;; (function quaternion none) +;; (define-extern quaternion-xz-angle function) ;; (function quaternion float) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; wasgun-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype maker-info (structure) + ((pos vector :inline :offset-assert 0) + (hit-points float :offset-assert 16) + (targeted basic :offset-assert 20) + ) + :method-count-assert 9 + :size-assert #x18 + :flag-assert #x900000018 + ) +|# + +#| +(deftype hud-wasgun (hud) + ((offscreen uint8 :offset-assert 2756) + (numscores uint8 :offset-assert 2757) + (head-idx uint8 :offset-assert 2758) + (tail-idx uint8 :offset-assert 2759) + (maker-idx uint8 :offset-assert 2760) + (shoot-pos vector :inline :offset-assert 2768) + (minfo UNKNOWN 15 :offset-assert 2784) + (reticle UNKNOWN 20 :offset-assert 3264) + (position UNKNOWN 14 :offset-assert 4544) + (vel UNKNOWN 14 :offset-assert 4768) + (scores UNKNOWN 14 :offset-assert 4824) + (multiplier UNKNOWN 14 :offset-assert 4880) + (scoretimes UNKNOWN 14 :offset-assert 4896) + ) + :method-count-assert 29 + :size-assert #x1390 + :flag-assert #x1d13101390 + (:methods + (hud-wasgun-method-27 () none) ;; 27 + (hud-wasgun-method-28 () none) ;; 28 + ) + ) +|# + +#| +(deftype maker-grenade (projectile-bounce) + ((minimap connection-minimap :offset-assert 548) + (blast-radius float :offset-assert 552) + (initial-dist float :offset-assert 556) + ) + :method-count-assert 45 + :size-assert #x230 + :flag-assert #x2d01b00230 + (:methods + (maker-grenade-method-44 () none) ;; 44 + ) + ) +|# + +#| +(deftype wascity-turret-hud-position (structure) + ((x float :offset-assert 0) + (y float :offset-assert 4) + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +#| +(deftype wascity-turret (target-turret) + ((recoil UNKNOWN 2 :offset-assert 548) + (lerp float :offset-assert 556) + (lerp2 float :offset-assert 560) + (reticle-part basic :offset-assert 564) + (my-fire-time UNKNOWN 2 :offset-assert 568) + (ready-to-go-active basic :offset-assert 584) + (move-start uint64 :offset-assert 592) + (facing-ocean basic :offset-assert 600) + (facing-city basic :offset-assert 604) + (reset-facing basic :offset-assert 608) + (fire-delay basic :offset-assert 612) + (left? basic :offset-assert 616) + (fire-idx uint8 :offset-assert 620) + (speed-mult float :offset-assert 624) + (radar-object-counter uint16 :offset-assert 628) + (radar-object UNKNOWN 64 :offset-assert 632) + (aim-dir vector :inline :offset-assert 1664) + (reticle-dir vector :inline :offset-assert 1680) + (target-handle uint64 :offset-assert 1696) + ) + :method-count-assert 63 + :size-assert #x6a8 + :flag-assert #x3f063006a8 + (:methods + (wascity-turret-method-59 () none) ;; 59 + (wascity-turret-method-60 () none) ;; 60 + (wascity-turret-method-61 () none) ;; 61 + (wascity-turret-method-62 () none) ;; 62 + ) + ) +|# + +#| +(deftype skeet (rigid-body-object) + ((forw vector :inline :offset-assert 288) + (ppos vector :inline :offset-assert 304) + (pvel vector :inline :offset-assert 320) + (pacc vector :inline :offset-assert 336) + (angle float :offset-assert 352) + (disappear basic :offset-assert 356) + (rot-vel float :offset-assert 360) + (rot-acc float :offset-assert 364) + (initial-y float :offset-assert 368) + (time-to-live uint64 :offset-assert 376) + (birth-time uint64 :offset-assert 384) + (mult uint8 :offset-assert 392) + (score uint16 :offset-assert 394) + (minimap connection-minimap :offset-assert 396) + (skeet-type uint8 :offset-assert 400) + (skeet-sound uint32 :offset-assert 404) + (skeet-sound-playing? basic :offset-assert 408) + (mgr uint64 :offset-assert 416) + (mode uint8 :offset-assert 424) + ) + :method-count-assert 63 + :size-assert #x1a9 + :flag-assert #x3f013001a9 + (:methods + (skeet-method-56 () none) ;; 56 + (skeet-method-57 () none) ;; 57 + (skeet-method-58 () none) ;; 58 + (skeet-method-59 () none) ;; 59 + (skeet-method-60 () none) ;; 60 + (skeet-method-61 () none) ;; 61 + (skeet-method-62 () none) ;; 62 + ) + ) +|# + +#| +(deftype hud-wasdef-damage (hud) + () + :method-count-assert 27 + :size-assert #xac4 + :flag-assert #x1b0a500ac4 + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; speech-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype speech-type-info (structure) + ((channel uint8 :offset-assert 0) + (flags speech-type-flag :offset-assert 1) + (priority int8 :offset-assert 2) + (delay-pre-time uint16 :offset-assert 4) + (request-timeout uint16 :offset-assert 6) + (min-delay uint16 :offset-assert 8) + (max-delay uint16 :offset-assert 10) + (delay uint16 :offset-assert 12) + (play-index int16 :offset-assert 14) + (list (array string) :offset-assert 16) ;; guessed by decompiler + (time uint64 :offset-assert 24) + ) + :method-count-assert 9 + :size-assert #x20 + :flag-assert #x900000020 + ;; field speech-type-flag is likely a value type. + ) +|# + +#| +(deftype speech-request (structure) + ((handle uint64 :offset-assert 0) ;; handle + (time uint64 :offset-assert 8) ;; time-frame + (priority float :offset-assert 16) + (speech-type int8 :offset-assert 20) ;; speech-type + ) + :method-count-assert 9 + :size-assert #x15 + :flag-assert #x900000015 + ) +|# + +#| +(deftype speech-channel (structure) + ((flags speech-channel-flag :offset-assert 0) + (gui-channel uint8 :offset-assert 1) ;; gui-channel + (delay uint16 :offset-assert 2) + (id sound-id :offset-assert 4) ;; guessed by decompiler + (update-time uint64 :offset-assert 8) ;; time-frame + (start-time uint64 :offset-assert 16) ;; time-frame + (end-time uint64 :offset-assert 24) ;; time-frame + (request speech-request :inline :offset-assert 32) + (last-request speech-request :inline :offset-assert 56) + (target-pos vector :inline :offset-assert 80) + (speech-table (pointer speech-type-info) :offset-assert 96) ;; guessed by decompiler + ) + :method-count-assert 15 + :size-assert #x64 + :flag-assert #xf00000064 + ;; field speech-channel-flag is likely a value type. + (:methods + (speech-channel-method-9 () none) ;; 9 ;; (speech-channel-method-9 (_type_ process-drawable speech-type) none 9) + (speech-channel-method-10 () none) ;; 10 ;; (speech-channel-method-10 (_type_ handle) none 10) + (speech-channel-method-11 () none) ;; 11 ;; (speech-channel-method-11 (_type_) none 11) + (speech-channel-method-12 () none) ;; 12 ;; (speech-channel-method-12 (_type_) none 12) + (speech-channel-method-13 () none) ;; 13 ;; (speech-channel-method-13 (_type_) none 13) + (speech-channel-method-14 () none) ;; 14 + ) + ) +|# + +#| +(deftype speech-control (structure) + ((channel-array speech-channel 2 :offset-assert 0) ;; guessed by decompiler + (speech-table speech-type-info 61 :offset-assert 224) ;; guessed by decompiler + ) + :method-count-assert 18 + :size-assert #x1d4 + :flag-assert #x12000001d4 + (:methods + (speech-control-method-9 () none) ;; 9 ;; (speech-control-method-9 (_type_) none 9) + (speech-control-method-10 () none) ;; 10 ;; (speech-table-set! (_type_ speech-type speech-type-info) none 10) + (speech-control-method-11 () none) ;; 11 ;; (speech-control-method-11 (_type_) none 11) + (speech-control-method-12 () none) ;; 12 ;; (speech-control-method-12 (_type_ process-drawable speech-type) none 12) + (speech-control-method-13 () none) ;; 13 ;; (speech-control-method-13 (_type_ handle) none 13) + (speech-control-method-14 () none) ;; 14 ;; (speech-control-method-14 (_type_) none 14) + (speech-control-method-15 () none) ;; 15 ;; (speech-control-method-15 (_type_ process-drawable) none 15) + (speech-control-method-16 () none) ;; 16 ;; (speech-control-method-16 (_type_) none 16) + (speech-control-method-17 () none) ;; 17 + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; collide-touch-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype touching-prim (structure) + ((cprim collide-shape-prim :offset-assert 0) ;; guessed by decompiler + (has-tri? symbol :offset-assert 4) ;; guessed by decompiler + (tri collide-tri-result :inline :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x68 + :flag-assert #x900000068 + ) +|# + +#| +(deftype touching-prims-entry (structure) + ((next touching-prims-entry :offset-assert 0) + (prev touching-prims-entry :offset-assert 4) + (allocated? symbol :offset-assert 8) ;; guessed by decompiler + (u float :offset-assert 12) + (prim1 touching-prim :inline :offset-assert 16) + (prim2 touching-prim :inline :offset-assert 128) + ) + :method-count-assert 13 + :size-assert #xe8 + :flag-assert #xd000000e8 + (:methods + (touching-prims-entry-method-9 () none) ;; 9 ;; (get-middle-of-bsphere-overlap (_type_ vector) vector 9) + (touching-prims-entry-method-10 () none) ;; 10 ;; (get-touched-prim (_type_ collide-shape touching-shapes-entry) collide-shape-prim 10) + (touching-prims-entry-method-11 () none) ;; 11 ;; (get-touched-tri (_type_ collide-shape touching-shapes-entry) collide-tri-result 11) + (touching-prims-entry-method-12 () none) ;; 12 + ) + ) +|# + +#| +(deftype touching-prims-entry-pool (structure) + ((head touching-prims-entry :offset-assert 0) + (nodes touching-prims-entry 64 :offset-assert 16) ;; guessed by decompiler + ) + :method-count-assert 13 + :size-assert #x3c10 + :flag-assert #xd00003c10 + (:methods + ;; (new (symbol type) _type_ 0) + (touching-prims-entry-pool-method-9 () none) ;; 9 ;; (alloc-node (_type_) touching-prims-entry 9) + (touching-prims-entry-pool-method-10 () none) ;; 10 ;; (get-free-node-count (_type_) int 10) + (touching-prims-entry-pool-method-11 () none) ;; 11 ;; (init-list! (_type_) none 11) + (touching-prims-entry-pool-method-12 () none) ;; 12 ;; (free-node (_type_ touching-prims-entry) touching-prims-entry 12) + ) + ) +|# + +#| +(deftype touching-shapes-entry (structure) + ((cshape1 collide-shape :offset-assert 0) ;; guessed by decompiler + (cshape2 collide-shape :offset-assert 4) ;; guessed by decompiler + (resolve-u int8 :offset-assert 8) + (head touching-prims-entry :offset-assert 12) + (handle1 uint64 :offset-assert 16) ;; handle + (handle2 uint64 :offset-assert 24) ;; handle + ) + :method-count-assert 15 + :size-assert #x20 + :flag-assert #xf00000020 + (:methods + (touching-shapes-entry-method-9 () none) ;; 9 ;; (get-head (_type_) touching-prims-entry 9) + (touching-shapes-entry-method-10 () none) ;; 10 ;; (get-next (_type_ touching-shapes-entry) touching-prims-entry 10) + (touching-shapes-entry-method-11 () none) ;; 11 ;; (get-touched-shape (_type_ collide-shape) collide-shape 11) + (touching-shapes-entry-method-12 () none) ;; 12 ;; (prims-touching? (_type_ collide-shape uint) touching-prims-entry 12) + (touching-shapes-entry-method-13 () none) ;; 13 ;; (prims-touching-action? (_type_ collide-shape collide-action collide-action) basic 13) + (touching-shapes-entry-method-14 () none) ;; 14 ;; (free-touching-prims-list (_type_) none 14) + ) + ) +|# + +#| +(deftype touching-list (structure) + ((num-touching-shapes int32 :offset-assert 0) + (resolve-u int8 :offset-assert 4) + (touching-shapes touching-shapes-entry 32 :offset-assert 8) ;; guessed by decompiler + ) + :method-count-assert 14 + :size-assert #x408 + :flag-assert #xe00000408 + (:methods + ;; (new (symbol type) _type_ 0) + (touching-list-method-9 () none) ;; 9 ;; (add-touching-prims (_type_ collide-shape-prim collide-shape-prim float collide-tri-result collide-tri-result) none 9) + (touching-list-method-10 () none) ;; 10 ;; (free-nodes (_type_) none 10) + (touching-list-method-11 () none) ;; 11 ;; (update-from-step-size (_type_ float) none 11) + (touching-list-method-12 () none) ;; 12 ;; (send-events-for-touching-shapes (_type_) none 12) + (touching-list-method-13 () none) ;; 13 ;; (get-shapes-entry (_type_ collide-shape collide-shape) touching-shapes-entry 13) + ) + ) +|# + +;; (define-extern *touching-prims-entry-pool* object) ;; touching-prims-entry-pool +;; (define-extern *touching-list* object) ;; touching-list + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; euler ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern set-eul! function) ;; (function euler-angles float float float int euler-angles) +;; (define-extern eul->matrix function) ;; (function matrix euler-angles matrix) +;; (define-extern matrix->eul function) ;; (function euler-angles matrix int euler-angles) +;; (define-extern eul->quat function) ;; (function quaternion euler-angles quaternion) +;; (define-extern quat->eul function) ;; (function euler-angles quaternion int euler-angles) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; flut ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *flut-shadow-control* shadow-control) +;; (define-extern *flut-color-table* array) +;; (define-extern flut-color-from-index function) +;; (define-extern flut-random-color-index function) +;; (define-extern flut-init function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; citizen-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype citizen (nav-enemy) + ((flags citizen-flag :offset-assert 616) + (traffic-id int8 :offset-assert 618) + (hit-by-player-count int8 :offset-assert 619) + (gnd-height float :offset-assert 620) + (speed-scale float :offset-assert 624) + (controller vehicle-controller :inline :offset-assert 636) + (squad basic :offset-assert 780) + (danger-pos sphere :inline :offset-assert 796) + (dest-point vector :inline :offset-assert 700) + (vehicle uint64 :offset-assert 812) ;; handle + (formation uint64 :offset-assert 812) + (formation-index int8 :offset-assert 820) + (anim-shuffle int32 :offset-assert 824) + (dist-walk-anim float :offset-assert 828) + (speed-walk float :offset-assert 832) + (anim-walk int32 :offset-assert 836) + (dist-run-anim float :offset-assert 840) + (speed-run float :offset-assert 844) + (anim-run int32 :offset-assert 848) + (travel-anim-scale-speed float :offset-assert 852) + (water-anim int32 :offset-assert 856) + (interp float :offset-assert 860) + (last-danger-time uint64 :offset-assert 868) ;; time-frame + (next-time-look-at uint64 :offset-assert 876) ;; time-frame + (stop-time-look-at uint64 :offset-assert 884) ;; time-frame + (wait-return-state (state citizen) :offset-assert 892) ;; guessed by decompiler + (wait-time uint64 :offset-assert 900) ;; time-frame + (shield-handle uint64 :offset-assert 908) + (cp-valid? symbol :offset-assert 916) ;; guessed by decompiler + (cp-sphere sphere :inline :offset-assert 924) + (cp-vec vector :inline :offset-assert 940) + (cp-next-time uint64 :offset-assert 956) ;; time-frame + (cp-exit-time uint64 :offset-assert 964) ;; time-frame + (cp-force vector :inline :offset-assert 972) + (cp-plane plane :inline :offset-assert 988) + (cp-factor float :offset-assert 1004) + (faction-mode uint8 :offset-assert 1008) + (attacker-info city-attacker-info :offset-assert 1012) + (mission-squad basic :offset-assert 1016) + (probe-counter uint32 :offset-assert 1020) + ) + :method-count-assert 216 + :size-assert #x404 + :flag-assert #xd803900404 + ;; field citizen-flag is likely a value type. + (:methods + (citizen-method-190 () none) ;; 190 ;; (citizen-method-190 (_type_ vector) none 190) + (citizen-method-191 () none) ;; 191 ;; (gen-clear-path (_type_) nav-segment 191) + (citizen-method-192 () none) ;; 192 ;; (citizen-method-192 (_type_) none 192) + (citizen-method-193 () none) ;; 193 ;; (throw-off-vehicle (_type_) none 193) + (citizen-method-194 () none) ;; 194 ;; (gen-new-dir (_type_ vector float) nav-segment 194) + (citizen-method-195 () none) ;; 195 ;; (citizen-method-195 (_type_ vector) symbol 195) + (citizen-method-196 () none) ;; 196 ;; (get-run-anim (_type_) int 196) + (citizen-method-197 () none) ;; 197 ;; (trigger-alert (_type_ int target) none 197) + (citizen-method-198 () none) ;; 198 ;; (decrease-alert (_type_ object) none 198) + (citizen-method-199 () none) ;; 199 ;; (set-behavior! (_type_ traffic-object-spawn-params) none 199) + (citizen-method-200 () none) ;; 200 ;; (citizen-method-200 (_type_) none 200) + (citizen-method-201 () none) ;; 201 + (citizen-method-202 () none) ;; 202 + (citizen-method-203 () none) ;; 203 + (citizen-method-204 () none) ;; 204 + (citizen-method-205 () none) ;; 205 + (citizen-method-206 () none) ;; 206 + (citizen-method-207 () none) ;; 207 + (citizen-method-208 () none) ;; 208 + (citizen-method-209 () none) ;; 209 + (citizen-method-210 () none) ;; 210 + (citizen-method-211 () none) ;; 211 + (citizen-method-212 () none) ;; 212 + (citizen-method-213 () none) ;; 213 + (citizen-method-214 () none) ;; 214 + (citizen-method-215 () none) ;; 215 + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; profile ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype profile-work (structure) + ((sprite-tmpl dma-gif-packet :inline :offset-assert 0) + (line-tmpl dma-gif-packet :inline :offset-assert 32) + (last-index int32 :offset-assert 64) + ) + :method-count-assert 9 + :size-assert #x44 + :flag-assert #x900000044 + ) +|# + +;; (define-extern *profile-spec-array* object) +;; (define-extern *profile-translate-array* object) +;; (define-extern *profile-work* object) ;; profile-work +;; (define-extern *profile-x* object) ;; int +;; (define-extern *profile-y* object) ;; int +;; (define-extern *profile-w* object) ;; int +;; (define-extern *profile-h* object) ;; int +;; (define-extern *profile-ticks* object) ;; symbol + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; hover-training ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype hud-hover (hud) + () + :method-count-assert 27 + :size-assert #xac4 + :flag-assert #x1b0a500ac4 + ) +|# + +#| +(deftype tpl-token (process-focusable) + ((part-trail basic :offset-assert 208) + (actor-group uint32 :offset-assert 212) + (actor-group-count int32 :offset-assert 216) + (part-subsampler basic :offset-assert 220) + (path-pos float :offset-assert 224) + (speed float :offset-assert 228) + (velocity vector :inline :offset-assert 240) + (group-num uint32 :offset-assert 256) + (camera-done? uint32 :offset-assert 260) + (dest vector :inline :offset-assert 272) + (sound-id uint32 :offset-assert 288) + (minimap connection-minimap :offset-assert 292) + ) + :method-count-assert 31 + :size-assert #x128 + :flag-assert #x1f00b00128 + (:state-methods + idle ;; 28 + die-fast ;; 30 + go-door ;; 29 + ) + ) +|# + +#| +(deftype hover-training-manager (process) + ((actor-group uint32 :offset-assert 124) + (actor-group-count int32 :offset-assert 128) + (gui-id uint32 :offset-assert 132) + (text basic :offset-assert 136) + (hud-counter uint64 :offset-assert 140) + (text-id uint32 :offset-assert 148) + ) + :method-count-assert 19 + :size-assert #x9c + :flag-assert #x130020009c + (:methods + (hover-training-manager-method-18 () none) ;; 18 + ) + (:state-methods + idle ;; 14 + done ;; 15 + die-fast ;; 16 + display-text ;; 17 + ) + ) +|# + +#| +(deftype tpl-symbol (process-drawable) + ((flash-time uint64 :offset-assert 200) + (part-touched basic :offset-assert 208) + ) + :method-count-assert 21 + :size-assert #xd4 + :flag-assert #x15006000d4 + (:state-methods + idle ;; 20 + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; trigonometry ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern radmod function) ;; (function float float) +;; (define-extern deg- function) ;; (function float float float) +;; (define-extern deg-diff function) ;; (function float float float) +;; (define-extern deg-seek function) ;; (function float float float float) +;; (define-extern deg-seek-smooth function) ;; (function float float float float float) +;; (define-extern deg-lerp-clamp function) ;; (function float float float float) +;; (define-extern binary-table array) ;; (array float) +;; (define-extern sincos-table array) ;; (array float) +;; (define-extern sin function) ;; (function float float) +;; (define-extern sin-rad function) ;; (function float float) +;; (define-extern *sin-poly-vec* object) ;; vector +;; (define-extern *sin-poly-vec2* object) ;; vector +;; (define-extern vector-sin-rad! function) ;; (function vector vector vector) +;; (define-extern cos-rad function) ;; (function float float) +;; (define-extern *cos-poly-vec* object) ;; vector +;; (define-extern vector-cos-rad! function) ;; (function vector vector vector) +;; (define-extern vector-sincos-rad! function) ;; (function vector vector vector int) +;; (define-extern sincos-rad! function) ;; (function vector float int) +;; (define-extern sincos! function) ;; (function vector float int) +;; (define-extern vector-rad<-vector-deg! function) ;; (function vector vector none) +;; (define-extern vector-rad<-vector-deg/2! function) ;; (function vector vector int) +;; (define-extern vector-sincos! function) ;; (function vector vector vector int) +;; (define-extern tan-rad function) ;; (function float float) +;; (define-extern cos function) ;; (function float float) +;; (define-extern tan function) ;; (function float float) +;; (define-extern atan0 function) ;; (function float float float) +;; (define-extern atan-series-rad function) ;; (function float float) +;; (define-extern atan-rad function) ;; (function float float) +;; (define-extern sign-bit function) ;; (function int int) +;; (define-extern sign-float function) ;; (function float float) +;; (define-extern sign function) ;; (function float float) +;; (define-extern atan2-rad function) ;; (function float float float) +;; (define-extern atan function) ;; (function float float float) +;; (define-extern asin function) ;; (function float float) +;; (define-extern acos function) ;; (function float float) +;; (define-extern acos-rad function) ;; (function float float) +;; (define-extern sinerp function) ;; (function float float float float) +;; (define-extern sinerp-clamp function) ;; (function float float float float) +;; (define-extern coserp function) ;; (function float float float float) +;; (define-extern coserp-clamp function) ;; (function float float float float) +;; (define-extern coserp180 function) ;; (function float float float float) +;; (define-extern coserp180-clamp function) ;; (function float float float float) +;; (define-extern ease-in-out function) ;; (function int int float) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; enemy-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype enemy-focus (focus) + ((aware uint64 :offset-assert 16) ;; enemy-aware + (flags uint64 :offset-assert 24) ;; enemy-flag + ) + :method-count-assert 14 + :size-assert #x20 + :flag-assert #xe00000020 + (:methods + (enemy-focus-method-13 () none) ;; 13 ;; (enemy-focus-method-13 (_type_ process-focusable enemy-aware) symbol 13) + ) + ) +|# + +#| +(deftype enemy-info (basic) + ((fact-defaults fact-info-enemy-defaults :offset-assert 4) ;; guessed by decompiler + (use-die-falling symbol :offset-assert 8) ;; guessed by decompiler + (use-victory symbol :offset-assert 12) ;; guessed by decompiler + (use-jump-blocked symbol :offset-assert 16) ;; guessed by decompiler + (debug-draw-neck symbol :offset-assert 20) ;; guessed by decompiler + (jump-debug-draw symbol :offset-assert 24) ;; guessed by decompiler + (move-to-ground symbol :offset-assert 28) ;; guessed by decompiler + (hover-if-no-ground symbol :offset-assert 32) ;; guessed by decompiler + (idle-anim-script (pointer idle-control-frame) :offset-assert 36) ;; guessed by decompiler + (idle-anim int32 :offset-assert 40) + (notice-anim int32 :offset-assert 44) + (hostile-anim int32 :offset-assert 48) + (hit-anim int32 :offset-assert 52) + (knocked-anim int32 :offset-assert 56) + (knocked-land-anim int32 :offset-assert 60) + (die-anim int32 :offset-assert 64) + (die-falling-anim int32 :offset-assert 68) + (victory-anim int32 :offset-assert 72) + (jump-wind-up-anim int32 :offset-assert 76) + (jump-in-air-anim int32 :offset-assert 80) + (jump-land-anim int32 :offset-assert 84) + (neck-joint int32 :offset-assert 88) + (look-at-joint int32 :offset-assert 92) + (bullseye-joint int32 :offset-assert 96) + (sound-hit uint128 :offset-assert 112) ;; sound-name + (sound-die uint128 :offset-assert 128) ;; sound-name + (notice-distance meters :offset-assert 144) + (notice-distance-delta meters :offset-assert 148) + (proximity-notice-distance meters :offset-assert 152) + (default-hit-points float :offset-assert 156) ;; int32 + (gnd-collide-with collide-spec :offset-assert 160) ;; guessed by decompiler + (overlaps-others-collide-with-filter collide-spec :offset-assert 164) ;; guessed by decompiler + (penetrate-flinch uint64 :offset-assert 168) ;; penetrate + (penetrate-knocked uint64 :offset-assert 176) ;; penetrate + (movement-gravity meters :offset-assert 184) + (friction float :offset-assert 188) + (slip-factor float :offset-assert 192) + (attack-shove-back meters :offset-assert 196) + (attack-shove-up meters :offset-assert 200) + (attack-mode symbol :offset-assert 204) ;; guessed by decompiler + (attack-damage int32 :offset-assert 208) + (recover-gnd-collide-with collide-spec :offset-assert 212) ;; guessed by decompiler + (knocked-can-land-timeout uint64 :offset-assert 216) + (knocked-recover-timeout uint64 :offset-assert 224) + (ragdoll-blend-out-time uint64 :offset-assert 232) + (ragdoll-rotate-velocity-mult float :offset-assert 240) + (jump-height-min meters :offset-assert 244) + (jump-height-factor float :offset-assert 248) + (knocked-seek-ry-clamp float :offset-assert 252) + (knocked-soft-vxz-lo float :offset-assert 256) + (knocked-soft-vxz-hi float :offset-assert 260) + (knocked-soft-vy-lo float :offset-assert 264) + (knocked-soft-vy-hi float :offset-assert 268) + (knocked-medium-vxz-lo float :offset-assert 272) + (knocked-medium-vxz-hi float :offset-assert 276) + (knocked-medium-vy-lo float :offset-assert 280) + (knocked-medium-vy-hi float :offset-assert 284) + (knocked-hard-vxz-lo float :offset-assert 288) + (knocked-hard-vxz-hi float :offset-assert 292) + (knocked-hard-vy-lo float :offset-assert 296) + (knocked-hard-vy-hi float :offset-assert 300) + (knocked-huge-vxz-lo float :offset-assert 304) + (knocked-huge-vxz-hi float :offset-assert 308) + (knocked-huge-vy-lo float :offset-assert 312) + (knocked-huge-vy-hi float :offset-assert 316) + (knocked-yellow-vxz-lo float :offset-assert 320) + (knocked-yellow-vxz-hi float :offset-assert 324) + (knocked-yellow-vy-lo float :offset-assert 328) + (knocked-yellow-vy-hi float :offset-assert 332) + (knocked-red-vxz-lo float :offset-assert 336) + (knocked-red-vxz-hi float :offset-assert 340) + (knocked-red-vy-lo float :offset-assert 344) + (knocked-red-vy-hi float :offset-assert 348) + (knocked-blue-vxz-lo float :offset-assert 352) + (knocked-blue-vxz-hi float :offset-assert 356) + (knocked-blue-vy-lo float :offset-assert 360) + (knocked-blue-vy-hi float :offset-assert 364) + (ragdoll-info ragdoll-setup :offset-assert 368) + (shadow-size meters :offset-assert 372) + (shadow-max-y meters :offset-assert 376) + (shadow-min-y meters :offset-assert 380) + (shadow-locus-dist meters :offset-assert 384) + (gem-joint int32 :offset-assert 388) + (gem-seg uint32 :offset-assert 392) + (gem-no-seg uint32 :offset-assert 396) + (gem-offset sphere :inline :offset-assert 400) + (knocked-off basic :offset-assert 416) + ) + :method-count-assert 10 + :size-assert #x1a4 + :flag-assert #xa000001a4 + (:methods + (enemy-info-method-9 () none) ;; 9 ;; (copy-enemy-info! (_type_ _type_) none 9) + ) + ) +|# + +#| +(deftype enemy-knocked-info (structure) + ((anim-speed float :offset-assert 0) + (on-surface-count int32 :offset-assert 4) + (move-count int32 :offset-assert 8) + (land-can-land-time uint64 :offset-assert 16) ;; time-frame + ) + :method-count-assert 9 + :size-assert #x18 + :flag-assert #x900000018 + ) +|# + +#| +(deftype enemy-jump-info (structure) + ((flags uint8 :offset-assert 0) ;; enemy-jump-flags + (anim-speed float :offset-assert 4) + (hang-time uint64 :offset-assert 8) ;; time-frame + (start-pos vector :inline :offset-assert 16) + (dest-pos vector :inline :offset-assert 32) + (traj trajectory :inline :offset-assert 48) + ) + :method-count-assert 9 + :size-assert #x58 + :flag-assert #x900000058 + ) +|# + +#| +(deftype enemy-init-by-other-params (structure) + ((trans vector :inline :offset-assert 0) + (quat quaternion :inline :offset-assert 16) + (entity entity :offset-assert 32) ;; guessed by decompiler + (directed? symbol :offset-assert 36) ;; guessed by decompiler + (no-initial-move-to-ground? symbol :offset-assert 40) ;; guessed by decompiler + (art-level basic :offset-assert 44) + ) + :method-count-assert 9 + :size-assert #x30 + :flag-assert #x900000030 + ) +|# + +#| +(deftype enemy-attack-info (structure) + ((attack-id uint32 :offset-assert 0) + (knocked-type uint8 :offset-assert 4) ;; knocked-type + (blue-juggle-count uint8 :offset-assert 5) + (attacker-handle uint64 :offset-assert 8) ;; handle + (attack-time uint64 :offset-assert 16) ;; time-frame + (penetrate-using uint64 :offset-assert 24) ;; penetrate + (attacker-pos vector :inline :offset-assert 32) + (attack-direction vector :inline :offset-assert 48) + (attack-position vector :inline :offset-assert 64) + (intensity float :offset-assert 80) + ) + :method-count-assert 9 + :size-assert #x54 + :flag-assert #x900000054 + ) +|# + +#| +(deftype enemy-best-focus (structure) + ((proc process :offset-assert 0) ;; guessed by decompiler + (rating float :offset-assert 4) + (aware uint64 :offset-assert 8) ;; enemy-aware + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype enemy (process-focusable) + ((enemy-flags enemy-flag :offset-assert 208) + (enemy-info enemy-info :offset-assert 216) ;; guessed by decompiler + (hit-points float :offset-assert 220) ;; int32 + (gnd-collide-with uint32 :offset-assert 224) + (attack-id uint32 :offset-assert 228) + (persistent-attack-id uint32 :offset-assert 232) + (water-max-height float :offset-assert 236) ;; meters + (water-surface-height float :offset-assert 240) ;; meters + (desired-angle float :offset-assert 244) ;; degrees + (jump-why uint64 :offset-assert 248) + (penetrated-by-all uint64 :offset-assert 256) ;; penetrate + (penetrate-flinch uint64 :offset-assert 264) + (penetrate-knocked uint64 :offset-assert 272) + (ragdoll-proc uint64 :offset-assert 280) + (reaction-time uint64 :offset-assert 288) ;; time-frame + (notice-time uint64 :offset-assert 296) ;; time-frame + (state-timeout uint64 :offset-assert 304) ;; time-frame + (auto-reset-penetrate-time uint64 :offset-assert 312) ;; time-frame + (hit-focus-time uint64 :offset-assert 320) ;; time-frame + (last-draw-time uint64 :offset-assert 328) ;; time-frame + (starting-time uint64 :offset-assert 336) ;; time-frame + (fated-time uint64 :offset-assert 344) ;; time-frame + (focus-pos vector :inline :offset-assert 352) + (event-param-point vector :inline :offset-assert 368) + (jump-dest vector :inline :offset-assert 368) + (focus enemy-focus :inline :offset-assert 384) + (incoming enemy-attack-info :inline :offset-assert 416) + (actor-group (pointer actor-group) :offset-assert 500) ;; guessed by decompiler + (actor-group-count int32 :offset-assert 504) + (neck joint-mod :offset-assert 508) ;; guessed by decompiler + (on-notice pair :offset-assert 512) ;; guessed by decompiler + (on-active pair :offset-assert 516) ;; guessed by decompiler + (on-hostile pair :offset-assert 520) ;; guessed by decompiler + (on-death pair :offset-assert 524) ;; guessed by decompiler + (idle-anim-player idle-control :inline :offset-assert 528) + (rand-gen symbol :offset-assert 548) ;; guessed by decompiler + ) + :method-count-assert 155 + :size-assert #x228 + :flag-assert #x9b01b00228 + ;; field enemy-flag is likely a value type. field on-notice uses ~A with a signed load. field on-active uses ~A with a signed load. field on-hostile uses ~A with a signed load. field on-death uses ~A with a signed load. + (:methods + (enemy-method-28 () none) ;; 28 ;; (dormant-aware () _type_ :state 28) + (enemy-method-29 () none) ;; 29 ;; (hit () _type_ :state 29) + (enemy-method-30 () none) ;; 30 ;; (knocked () _type_ :state 30) + (enemy-method-31 () none) ;; 31 ;; (idle () _type_ :state 31) + (enemy-method-32 () none) ;; 32 ;; (active () _type_ :state 32) + (enemy-method-33 () none) ;; 33 ;; (notice () _type_ :state 33) + (enemy-method-34 () none) ;; 34 ;; (flee () _type_ :state 34) + (enemy-method-35 () none) ;; 35 ;; (stare () _type_ :state 35) + (enemy-method-36 () none) ;; 36 ;; (hostile () _type_ :state 36) + (enemy-method-37 () none) ;; 37 ;; (victory () _type_ :state 37) + (enemy-method-38 () none) ;; 38 ;; (die () _type_ :state 38) + (enemy-method-39 () none) ;; 39 ;; (die-falling () _type_ :state 39) + (enemy-method-40 () none) ;; 40 ;; (die-fast () _type_ :state 40) + (enemy-method-41 () none) ;; 41 ;; (directed () _type_ :state 41) + (enemy-method-42 () none) ;; 42 ;; (jump () _type_ :state 42) + (enemy-method-43 () none) ;; 43 ;; (jump-blocked () _type_ :state 43) + (enemy-method-44 () none) ;; 44 ;; (ambush () _type_ :state 44) + (enemy-method-45 () none) ;; 45 ;; (view-anims () _type_ :state 45) + (enemy-method-46 () none) ;; 46 ;; (enemy-method-46 (_type_ int) none 46) + (enemy-method-47 () none) ;; 47 ;; (enemy-method-47 (_type_ vector) float 47) + (enemy-method-48 () none) ;; 48 ;; (take-damage-from-attack (_type_ process event-message-block) int 48) + (enemy-method-49 () none) ;; 49 ;; (enemy-method-49 (_type_) time-frame 49) + (enemy-method-50 () none) ;; 50 ;; (enemy-method-50 (_type_ vector) vector 50) + (enemy-method-51 () none) ;; 51 ;; (enemy-method-51 (_type_) float 51) + (enemy-method-52 () none) ;; 52 ;; (enemy-method-52 (_type_ vector) none 52) + (enemy-method-53 () none) ;; 53 ;; (enemy-method-53 (_type_ process-focusable) symbol 53) + (enemy-method-54 () none) ;; 54 ;; (enemy-method-54 (_type_) enemy-flag 54) + (enemy-method-55 () none) ;; 55 ;; (common-post (_type_) none 55) + (enemy-method-56 () none) ;; 56 ;; (damage-amount-from-attack (_type_ process event-message-block) int 56) + (enemy-method-57 () none) ;; 57 ;; (update-target-awareness! (_type_ process-focusable enemy-best-focus) enemy-aware 57) + (enemy-method-58 () none) ;; 58 ;; (enemy-method-58 (_type_ process event-message-block) symbol 58) + (enemy-method-59 () none) ;; 59 ;; (get-penetrate-info (_type_) penetrate 59) + (enemy-method-60 () none) ;; 60 ;; (coin-flip? (_type_) symbol 60) + (enemy-method-61 () none) ;; 61 ;; (enemy-method-61 (_type_ int) int 61) + (enemy-method-62 () none) ;; 62 ;; (enemy-method-62 (_type_) none 62) + (enemy-method-63 () none) ;; 63 ;; (enemy-method-63 (_type_ process-focusable enemy-aware) symbol 63) + (enemy-method-64 () none) ;; 64 ;; (go-dormant (_type_) object 64) + (enemy-method-65 () none) ;; 65 ;; (go-dormant-aware (_type_) object 65) + (enemy-method-66 () none) ;; 66 ;; (go-ambush (_type_) object 66) + (enemy-method-67 () none) ;; 67 ;; (go-stare (_type_) object 67) + (enemy-method-68 () none) ;; 68 ;; (go-stare2 (_type_) object 68) + (enemy-method-69 () none) ;; 69 ;; (go-directed (_type_) object 69) + (enemy-method-70 () none) ;; 70 ;; (go-hostile (_type_) object 70) + (enemy-method-71 () none) ;; 71 ;; (go-flee (_type_) object 71) + (enemy-method-72 () none) ;; 72 ;; (react-to-focus (_type_) object 72) + (enemy-method-73 () none) ;; 73 ;; (kill-prefer-falling (_type_) object 73) + (enemy-method-74 () none) ;; 74 ;; (general-event-handler (_type_ process int symbol event-message-block) object 74) + (enemy-method-75 () none) ;; 75 ;; (enemy-method-75 (_type_ process event-message-block) object 75) + (enemy-method-76 () none) ;; 76 ;; (enemy-method-76 (_type_ process event-message-block) symbol 76) + (enemy-method-77 () none) ;; 77 ;; (enemy-method-77 (_type_ enemy-knocked-info) symbol 77) + (enemy-method-78 () none) ;; 78 ;; (enemy-method-78 (_type_ enemy-knocked-info) symbol 78) + (enemy-method-79 () none) ;; 79 ;; (enemy-method-79 (_type_ int enemy-knocked-info) symbol 79) + (enemy-method-80 () none) ;; 80 ;; (enemy-method-80 (_type_ enemy-knocked-info) symbol 80) + (enemy-method-81 () none) ;; 81 ;; (enemy-method-81 (_type_) symbol 81) + (enemy-method-82 () none) ;; 82 ;; (enemy-method-82 (_type_ enemy-jump-info) symbol 82) + (enemy-method-83 () none) ;; 83 ;; (enemy-method-83 (_type_ enemy-jump-info) none 83) + (enemy-method-84 () none) ;; 84 ;; (enemy-method-84 (_type_ enemy-jump-info) none 84) + (enemy-method-85 () none) ;; 85 ;; (enemy-method-85 (_type_) float 85) + (enemy-method-86 () none) ;; 86 ;; (enemy-method-86 (_type_) symbol 86) + (enemy-method-87 () none) ;; 87 ;; (enemy-method-87 (_type_ enemy-jump-info) symbol 87) + (enemy-method-88 () none) ;; 88 ;; (enemy-method-88 (_type_ enemy-jump-info) symbol 88) + (enemy-method-89 () none) ;; 89 ;; (enemy-method-89 (_type_ enemy-jump-info) symbol 89) + (enemy-method-90 () none) ;; 90 ;; (enemy-method-90 (_type_ int enemy-jump-info) symbol 90) + (enemy-method-91 () none) ;; 91 ;; (enemy-method-91 (_type_ int enemy-jump-info) none 91) + (enemy-method-92 () none) ;; 92 ;; (enemy-method-92 (_type_ int enemy-jump-info) none 92) + (enemy-method-93 () none) ;; 93 ;; (enemy-method-93 (_type_) none 93) + (enemy-method-94 () none) ;; 94 ;; (enemy-method-94 (_type_ vector float) symbol 94) + (enemy-method-95 () none) ;; 95 ;; (enemy-method-95 (_type_ vector float) symbol 95) + (enemy-method-96 () none) ;; 96 ;; (enemy-method-96 (_type_ float symbol) symbol 96) + (enemy-method-97 () none) ;; 97 ;; (enemy-method-97 (_type_) process 97) + (enemy-method-98 () none) ;; 98 ;; (in-aggro-range? (_type_ process-focusable vector) symbol 98) + (enemy-method-99 () none) ;; 99 ;; (enemy-method-99 (_type_ process-focusable) symbol 99) + (enemy-method-100 () none) ;; 100 ;; (enemy-method-100 (_type_) symbol 100) + (enemy-method-101 () none) ;; 101 ;; (enemy-method-101 (_type_) none 101) + (enemy-method-102 () none) ;; 102 ;; (enemy-method-102 (_type_) symbol 102) + (enemy-method-103 () none) ;; 103 ;; (enemy-method-103 (_type_) collide-spec 103) + (enemy-method-104 () none) ;; 104 ;; (enemy-method-104 (_type_ process touching-shapes-entry uint) symbol 104) + (enemy-method-105 () none) ;; 105 ;; (enemy-method-105 (_type_ process) enemy-flag 105) + (enemy-method-106 () none) ;; 106 ;; (set-incoming-attack-info (_type_ process object penetrate attack-info) none 106) + (enemy-method-107 () none) ;; 107 ;; (get-enemy-target (_type_) process-focusable 107) + (enemy-method-108 () none) ;; 108 ;; (enemy-method-108 (_type_ process-drawable event-message-block) int 108) + (enemy-method-109 () none) ;; 109 ;; (look-at-target! (_type_ enemy-flag) none 109) + (enemy-method-110 () none) ;; 110 ;; (stop-looking-at-target! (_type_) none 110) + (enemy-method-111 () none) ;; 111 ;; (enemy-method-111 (_type_) none 111) + (enemy-method-112 () none) ;; 112 ;; (set-enemy-info! (_type_ enemy-info) none 112) + (enemy-method-113 () none) ;; 113 ;; (init-enemy-behaviour-and-stats! (_type_ enemy-info) none 113) + (enemy-method-114 () none) ;; 114 ;; (init-enemy-collision! (_type_) none 114) + (enemy-method-115 () none) ;; 115 ;; (init-enemy! (_type_) none 115) + (enemy-method-116 () none) ;; 116 ;; (go-idle (_type_) none 116) + (enemy-method-117 () none) ;; 117 ;; (rnd-float (_type_) float 117) + (enemy-method-118 () none) ;; 118 ;; (rnd-float-range (_type_ float float) float 118) + (enemy-method-119 () none) ;; 119 ;; (rnd-int-count (_type_ int) int 119) + (enemy-method-120 () none) ;; 120 ;; (rnd-bit (_type_ int int) int 120) + (enemy-method-121 () none) ;; 121 ;; (rnd-int-range (_type_ int int) int 121) + (enemy-method-122 () none) ;; 122 ;; (rnd-percent? (_type_ float) symbol 122) + (enemy-method-123 () none) ;; 123 ;; (rnd-go-idle? (_type_ float) symbol 123) + (enemy-method-124 () none) ;; 124 ;; (enemy-method-124 (_type_) collide-spec 124) + (enemy-method-125 () none) ;; 125 ;; (ground-pat-set! (_type_ collide-query collide-spec float float float) pat-surface 125) + (enemy-method-126 () none) ;; 126 ;; (enemy-above-ground? (_type_ collide-query vector collide-spec float float float) symbol 126) + (enemy-method-127 () none) ;; 127 ;; (enemy-method-127 (_type_ float float symbol collide-spec) symbol 127) + (enemy-method-128 () none) ;; 128 ;; (enemy-method-128 (_type_ vector move-above-ground-params) none 128) + (enemy-method-129 () none) ;; 129 ;; (enemy-method-129 (_type_) none 129) + (enemy-method-130 () none) ;; 130 ;; (enemy-method-130 (_type_ float) symbol 130) + (enemy-method-131 () none) ;; 131 ;; (penetrate-using->knocked (_type_ penetrate) knocked-type 131) + (enemy-method-132 () none) ;; 132 ;; (dying (_type_) none 132) + (enemy-method-133 () none) ;; 133 ;; (enemy-method-133 (_type_) symbol 133) + (enemy-method-134 () none) ;; 134 ;; (get-attacker (_type_ process attack-info) process-focusable 134) + (enemy-method-135 () none) ;; 135 ;; (enemy-method-135 (_type_ int) sound-id 135) + (enemy-method-136 () none) ;; 136 ;; (enemy-method-136 (_type_) enemy-flag 136) + (enemy-method-137 () none) ;; 137 + (enemy-method-138 () none) ;; 138 + (enemy-method-139 () none) ;; 139 + (enemy-method-140 () none) ;; 140 + (enemy-method-141 () none) ;; 141 + (enemy-method-142 () none) ;; 142 + (enemy-method-143 () none) ;; 143 + (enemy-method-144 () none) ;; 144 + (enemy-method-145 () none) ;; 145 + (enemy-method-146 () none) ;; 146 + (enemy-method-147 () none) ;; 147 + (enemy-method-148 () none) ;; 148 + (enemy-method-149 () none) ;; 149 + (enemy-method-150 () none) ;; 150 + (enemy-method-151 () none) ;; 151 + (enemy-method-152 () none) ;; 152 + (enemy-method-153 () none) ;; 153 + (enemy-method-154 () none) ;; 154 + ) + ) +|# + +#| +(deftype anim-info (structure) + ((anim-index int32 :offset-assert 0) + (travel-speed meters :offset-assert 4) + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; des-bush-part ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *bb-ring-alpha* object) +;; (define-extern spt-func-bb-ring-fader function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; gsound-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype sound-stream-name (structure) + ((name uint8 48 :offset-assert 0) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x30 + :flag-assert #x900000030 + ) +|# + +;; (deftype sound-id (uint32) +;; () +;; :flag-assert #xa00000004 +;; ) + +;; (deftype sound-bank-id (uint32) +;; () +;; :flag-assert #x900000004 +;; ) + +;; (deftype sound-name (uint128) +;; () +;; :flag-assert #x900000010 +;; ) + +#| +(deftype sound-rpc-cmd (structure) + ((rsvd1 uint16 :offset-assert 0) + (command uint16 :offset-assert 2) ;; sound-command + ) + :method-count-assert 9 + :size-assert #x4 + :flag-assert #x900000004 + ) +|# + +#| +(deftype sound-play-params (structure) + ((mask uint16 :offset-assert 0) + (pitch-mod int16 :offset-assert 2) + (bend int16 :offset-assert 4) + (fo-min int16 :offset-assert 6) + (fo-max int16 :offset-assert 8) + (fo-curve int8 :offset-assert 10) + (priority int8 :offset-assert 11) + (volume int32 :offset-assert 12) + (trans int32 3 :offset-assert 16) ;; guessed by decompiler + (group uint8 :offset-assert 28) + (reg uint8 3 :offset-assert 29) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x20 + :flag-assert #x900000020 + ) +|# + +#| +(deftype sound-rpc-bank-cmd (sound-rpc-cmd) + ((bank-name uint128 :offset-assert 16) ;; sound-name + ) + :method-count-assert 9 + :size-assert #x20 + :flag-assert #x900000020 + ) +|# + +#| +(deftype sound-rpc-test-cmd (sound-rpc-cmd) + ((ee-addr pointer :offset-assert 4) ;; guessed by decompiler + (param0 uint16 :offset-assert 8) + ) + :method-count-assert 9 + :size-assert #xa + :flag-assert #x90000000a + ) +|# + +#| +(deftype sound-rpc-sound-cmd (sound-rpc-cmd) + ((id sound-id :offset-assert 4) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +#| +(deftype sound-rpc-group-cmd (sound-rpc-cmd) + ((group sound-group :offset-assert 4) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +#| +(deftype sound-rpc-load-bank (sound-rpc-bank-cmd) + ((ee-addr pointer :offset-assert 32) ;; guessed by decompiler + (mode uint32 :offset-assert 36) + (priority uint32 :offset-assert 40) + ) + :method-count-assert 9 + :size-assert #x2c + :flag-assert #x90000002c + ) +|# + +#| +(deftype sound-rpc-load-music (sound-rpc-bank-cmd) + () + :method-count-assert 9 + :size-assert #x20 + :flag-assert #x900000020 + ) +|# + +#| +(deftype sound-rpc-unload-bank (sound-rpc-bank-cmd) + () + :method-count-assert 9 + :size-assert #x20 + :flag-assert #x900000020 + ) +|# + +#| +(deftype sound-rpc-play (sound-rpc-sound-cmd) + ((name uint128 :offset-assert 16) ;; sound-name + (params sound-play-params :inline :offset-assert 32) + ) + :method-count-assert 9 + :size-assert #x40 + :flag-assert #x900000040 + ) +|# + +#| +(deftype sound-rpc-pause-sound (sound-rpc-sound-cmd) + () + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +#| +(deftype sound-rpc-stop-sound (sound-rpc-sound-cmd) + () + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +#| +(deftype sound-rpc-continue-sound (sound-rpc-sound-cmd) + () + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +#| +(deftype sound-rpc-set-param (sound-rpc-sound-cmd) + ((params sound-play-params :inline :offset-assert 8) + (auto-time int32 :offset-assert 40) + (auto-from int32 :offset-assert 44) + ) + :method-count-assert 9 + :size-assert #x30 + :flag-assert #x900000030 + ) +|# + +#| +(deftype sound-rpc-set-master-volume (sound-rpc-group-cmd) + ((volume int32 :offset-assert 8) + ) + :method-count-assert 9 + :size-assert #xc + :flag-assert #x90000000c + ) +|# + +#| +(deftype sound-rpc-pause-group (sound-rpc-group-cmd) + () + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +#| +(deftype sound-rpc-stop-group (sound-rpc-group-cmd) + () + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +#| +(deftype sound-rpc-continue-group (sound-rpc-group-cmd) + () + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +#| +(deftype sound-rpc-cancel-dgo (sound-rpc-group-cmd) + ((id uint32 :offset-assert 8) + ) + :method-count-assert 9 + :size-assert #xc + :flag-assert #x90000000c + ) +|# + +#| +(deftype sound-rpc-get-irx-version (sound-rpc-cmd) + ((major uint32 :offset-assert 4) + (minor uint32 :offset-assert 8) + (ee-addr pointer :offset-assert 12) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype sound-rpc-set-language (sound-rpc-cmd) + ((lang uint32 :offset-assert 4) + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +#| +(deftype sound-rpc-set-stereo-mode (sound-rpc-cmd) + ((mode int32 :offset-assert 4) + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +#| +(deftype sound-rpc-set-reverb (sound-rpc-cmd) + ((core uint8 :offset-assert 4) + (reverb int32 :offset-assert 8) + (left uint32 :offset-assert 12) + (right uint32 :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x14 + :flag-assert #x900000014 + ) +|# + +#| +(deftype sound-rpc-set-ear-trans (sound-rpc-cmd) + ((ear-trans1 int32 3 :offset-assert 4) ;; guessed by decompiler + (ear-trans0 int32 3 :offset-assert 16) ;; guessed by decompiler + (cam-trans int32 3 :offset-assert 28) ;; guessed by decompiler + (cam-forward UNKNOWN 3 :offset-assert 40) + (cam-left UNKNOWN 3 :offset-assert 52) + (cam-scale int32 :offset-assert 64) + (cam-inverted int32 :offset-assert 68) + ) + :method-count-assert 9 + :size-assert #x48 + :flag-assert #x900000048 + ) +|# + +#| +(deftype sound-rpc-set-flava (sound-rpc-cmd) + ((flava uint8 :offset-assert 4) + (excitement uint8 :offset-assert 5) + ) + :method-count-assert 9 + :size-assert #x6 + :flag-assert #x900000006 + ) +|# + +#| +(deftype sound-rpc-set-midi-reg (sound-rpc-cmd) + ((reg int32 :offset-assert 4) + (value int16 :offset-assert 8) + ) + :method-count-assert 9 + :size-assert #xa + :flag-assert #x90000000a + ) +|# + +#| +(deftype sound-rpc-shutdown (sound-rpc-cmd) + () + :method-count-assert 9 + :size-assert #x4 + :flag-assert #x900000004 + ) +|# + +#| +(deftype sound-rpc-set-fps (sound-rpc-cmd) + ((fps uint8 :offset-assert 4) + ) + :method-count-assert 9 + :size-assert #x5 + :flag-assert #x900000005 + ) +|# + +#| +(deftype sound-rpc-list-sounds (sound-rpc-cmd) + () + :method-count-assert 9 + :size-assert #x4 + :flag-assert #x900000004 + ) +|# + +#| +(deftype sound-rpc-unload-music (sound-rpc-cmd) + () + :method-count-assert 9 + :size-assert #x4 + :flag-assert #x900000004 + ) +|# + +#| +(deftype sound-rpc-union (structure) + ((data uint32 20 :offset-assert 0) ;; guessed by decompiler + (load-bank sound-rpc-load-bank :offset-assert 0) + (unload-bank sound-rpc-unload-bank :offset-assert 0) + (play sound-rpc-play :offset-assert 0) + (pause-sound sound-rpc-pause-sound :offset-assert 0) + (stop-sound sound-rpc-stop-sound :offset-assert 0) + (continue-sound sound-rpc-continue-sound :offset-assert 0) + (set-param sound-rpc-set-param :offset-assert 0) + (set-master-volume sound-rpc-set-master-volume :offset-assert 0) + (pause-group sound-rpc-pause-group :offset-assert 0) + (stop-group sound-rpc-stop-group :offset-assert 0) + (continue-group sound-rpc-continue-group :offset-assert 0) + (get-irx-version sound-rpc-get-irx-version :offset-assert 0) + (set-language sound-rpc-set-language :offset-assert 0) + (set-reverb sound-rpc-set-reverb :offset-assert 0) + (set-ear-trans sound-rpc-set-ear-trans :offset-assert 0) + (set-flava sound-rpc-set-flava :offset-assert 0) + (set-midi-reg sound-rpc-set-midi-reg :offset-assert 0) + (set-fps sound-rpc-set-fps :offset-assert 0) + (shutdown sound-rpc-shutdown :offset-assert 0) + (list-sounds sound-rpc-list-sounds :offset-assert 0) + (unload-music sound-rpc-unload-music :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x50 + :flag-assert #x900000050 + ) +|# + +#| +(deftype sound-spec (basic) + ((mask uint16 :offset-assert 4) ;; sound-mask + (num float :offset-assert 8) + (group uint8 :offset-assert 12) ;; sound-group + (reg uint8 3 :offset-assert 13) ;; guessed by decompiler + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (sound-name uint128 :offset-assert 16) ;; sound-name + (trans int32 4 :offset-assert 32) ;; guessed by decompiler + (volume int32 :offset-assert 48) + (pitch-mod int32 :offset-assert 52) + (bend int32 :offset-assert 56) + (fo-min int16 :offset-assert 60) + (fo-max int16 :offset-assert 62) + (fo-curve int8 :offset-assert 64) + (priority int8 :offset-assert 65) + (auto-time int32 :offset-assert 68) + (auto-from int32 :offset-assert 72) + ) + :method-count-assert 9 + :size-assert #x4c + :flag-assert #x90000004c + ) +|# + +#| +(deftype sound-bank-state (structure) + ((name basic :offset-assert 0) + (mode uint32 :offset-assert 4) + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +#| +(deftype ambient-sound (basic) + ((spec sound-spec :offset-assert 4) ;; guessed by decompiler + (playing-id sound-id :offset-assert 8) ;; guessed by decompiler + (trans vector :inline :offset-assert 16) + (name uint128 :offset-assert 32) ;; sound-name + (play-time uint64 :offset-assert 48) ;; time-frame + (time-base uint64 :offset-assert 56) ;; time-frame + (time-random uint64 :offset-assert 64) ;; time-frame + (volume int32 :offset-assert 72) + (pitch int32 :offset-assert 76) + (falloff-near int32 :offset-assert 80) + (falloff-far int32 :offset-assert 84) + (falloff-mode int32 :offset-assert 88) + (params (pointer float) :offset-assert 92) ;; guessed by decompiler + (param-count int32 :offset-assert 96) + (entity entity :offset-assert 100) ;; guessed by decompiler + (sound-count int32 :offset-assert 104) + (sound-state int32 :offset-assert 108) + ) + :method-count-assert 17 + :size-assert #x70 + :flag-assert #x1100000070 + (:methods + ;; (new (symbol type basic vector) _type_ 0) + (ambient-sound-method-9 () none) ;; 9 ;; (update! (_type_) int 9) + (ambient-sound-method-10 () none) ;; 10 ;; (change-sound! (_type_ sound-name) int 10) + (ambient-sound-method-11 () none) ;; 11 ;; (update-trans! (_type_ vector) int 11) + (ambient-sound-method-12 () none) ;; 12 ;; (update-vol! (_type_ float) int 12) + (ambient-sound-method-13 () none) ;; 13 ;; (update-pitch-mod! (_type_ float) none 13) + (ambient-sound-method-14 () none) ;; 14 ;; (set-falloff-far! (_type_ float) none 14) + (ambient-sound-method-15 () none) ;; 15 ;; (stop! (_type_) int 15) + (ambient-sound-method-16 () none) ;; 16 + ) + ) +|# + +;; (define-extern *current-sound-id* object) ;; sound-id + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; desbeast-path-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype desbeast-node (structure) + ((position vector :inline :offset-assert 0) + (nav-mesh-id uint32 :offset-assert 16) + (pos-x float :offset-assert 0) + (pos-y float :offset-assert 4) + (pos-z float :offset-assert 8) + ) + :method-count-assert 9 + :size-assert #x14 + :flag-assert #x900000014 + ) +|# + +#| +(deftype desbeast-path (structure) + ((node-count uint16 :offset-assert 0) + (node uint32 :offset-assert 4) + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; texture-anim-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype texture-anim-layer (structure) + ((extra vector :inline :offset-assert 240) + (func (function dma-buffer uint int int texture-anim-layer float int) :offset-assert 256) ;; guessed by decompiler + (func-id symbol :offset-assert 256) ;; guessed by decompiler + (init-func (function texture-anim-layer int) :offset-assert 260) ;; guessed by decompiler + (init-func-id symbol :offset-assert 260) ;; guessed by decompiler + (tex texture :offset-assert 264) ;; guessed by decompiler + (start-time float :offset-assert 268) + (end-time float :offset-assert 272) + (tex-name string :offset-assert 276) ;; guessed by decompiler + (test uint64 :offset-assert 280) ;; gs-test + (alpha uint64 :offset-assert 288) ;; gs-alpha + (clamp uint64 :offset-assert 296) ;; gs-clamp + (start-color vector :inline :offset-assert 80) + (start-scale vector2 :inline :offset-assert 96) + (start-offset vector2 :inline :offset-assert 104) + (start-st-scale vector2 :inline :offset-assert 112) + (start-st-offset vector2 :inline :offset-assert 120) + (start-qs vector :inline :offset-assert 128) + (start-rot deg :offset-assert 144) ;; degrees + (start-st-rot deg :offset-assert 148) ;; degrees + (end-color vector :inline :offset-assert 160) + (end-scale vector2 :inline :offset-assert 176) + (end-offset vector2 :inline :offset-assert 184) + (end-st-scale vector2 :inline :offset-assert 192) + (end-st-offset vector2 :inline :offset-assert 200) + (end-qs vector :inline :offset-assert 208) + (end-rot deg :offset-assert 224) ;; degrees + (end-st-rot deg :offset-assert 228) ;; degrees + ) + :method-count-assert 11 + :size-assert #x130 + :flag-assert #xb00000130 + (:methods + (texture-anim-layer-method-9 () none) ;; 9 ;; (initialize-texture! (_type_) _type_ 9) + (texture-anim-layer-method-10 () none) ;; 10 ;; (clear-texture! (_type_) _type_ 10) + ) + ) +|# + +#| +(deftype texture-anim (structure) + ((num-layers uint32 :offset-assert 0) + (func (function dma-buffer texture-anim int) :offset-assert 4) ;; guessed by decompiler + (func-id symbol :offset-assert 4) ;; guessed by decompiler + (init-func (function texture-anim int) :offset-assert 8) ;; guessed by decompiler + (init-func-id symbol :offset-assert 8) ;; guessed by decompiler + (tex texture :offset-assert 12) ;; guessed by decompiler + (tex-name string :offset-assert 16) ;; guessed by decompiler + (extra vector :inline :offset-assert 32) + (color rgba :offset-assert 48) ;; guessed by decompiler + (frame-time float :offset-assert 52) + (frame-delta float :offset-assert 56) + (frame-mod float :offset-assert 60) + (test uint64 :offset-assert 64) ;; gs-test + (alpha uint64 :offset-assert 72) ;; gs-alpha + (clamp uint64 :offset-assert 80) ;; gs-clamp + (data texture-anim-layer :dynamic :offset-assert 88) ;; guessed by decompiler + ) + :method-count-assert 11 + :size-assert #x58 + :flag-assert #xb00000058 + (:methods + (texture-anim-method-9 () none) ;; 9 ;; (init-textures! (_type_) _type_ 9) + (texture-anim-method-10 () none) ;; 10 ;; (clear-textures! (_type_) _type_ 10) + ) + ) +|# + +#| +(deftype texture-anim-array (array) + ((type type :offset-assert 0) ;; guessed by decompiler + (length int32 :offset-assert 4) + (allocated-length int32 :offset-assert 8) + (content-type type :offset-assert 12) ;; guessed by decompiler + ) + :method-count-assert 11 + :size-assert #x10 + :flag-assert #xb00000010 + (:methods + (texture-anim-array-method-9 () none) ;; 9 ;; (init! (_type_) _type_ 9) + (texture-anim-array-method-10 () none) ;; 10 ;; (clear! (_type_) _type_ 10) + ) + ) +|# + +#| +(deftype texture-anim-work (structure) + ((erase-tmpl dma-gif-packet :inline :offset-assert 0) + (draw-tmpl dma-gif-packet :inline :offset-assert 32) + (draw2-tmpl dma-gif-packet :inline :offset-assert 64) + (fill-tmpl dma-gif-packet :inline :offset-assert 96) + (adgif-tmpl dma-gif-packet :inline :offset-assert 128) + (corner0 vector :inline :offset-assert 160) + (corner1 vector :inline :offset-assert 176) + (corner2 vector :inline :offset-assert 192) + (corner3 vector :inline :offset-assert 208) + (const vector :inline :offset-assert 224) + (color vector4w :inline :offset-assert 240) + (random vector4w 8 :offset-assert 256) ;; guessed by decompiler + (random-index uint8 :offset-assert 384) + ) + :method-count-assert 9 + :size-assert #x181 + :flag-assert #x900000181 + ) +|# + +#| +(deftype clut16x16 (structure) + ((clut rgba 256 :offset-assert 0) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x400 + :flag-assert #x900000400 + ) +|# + +#| +(deftype noise8x8 (structure) + ((image uint8 64 :offset-assert 0) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x40 + :flag-assert #x900000040 + ) +|# + +#| +(deftype noise16x16 (structure) + ((image uint8 256 :offset-assert 0) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x100 + :flag-assert #x900000100 + ) +|# + +#| +(deftype noise32x32 (structure) + ((image uint8 1024 :offset-assert 0) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x400 + :flag-assert #x900000400 + ) +|# + +#| +(deftype noise64x64 (structure) + ((image uint8 4096 :offset-assert 0) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x1000 + :flag-assert #x900001000 + ) +|# + +#| +(deftype noise128x128 (structure) + ((image uint8 16384 :offset-assert 0) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x4000 + :flag-assert #x900004000 + ) +|# + +#| +(deftype fog8x256 (structure) + ((image uint8 256 :offset-assert 0) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x100 + :flag-assert #x900000100 + ) +|# + +#| +(deftype fog-texture-work (structure) + ((corner vector 4 :offset-assert 0) ;; guessed by decompiler + (const vector :inline :offset-assert 64) + (min-corner vector :inline :offset-assert 80) + (max-corner vector :inline :offset-assert 96) + (fog-near float :offset-assert 112) + (fog-far float :offset-assert 116) + (fog-delta float :offset-assert 120) + (alpha-near float :offset-assert 124) + (alpha-far float :offset-assert 128) + (alpha-delta float :offset-assert 132) + (color uint32 :offset-assert 136) + ) + :method-count-assert 9 + :size-assert #x8c + :flag-assert #x90000008c + ) +|# + +;; (define-extern *clut-translate* object) ;; (pointer uint8) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; history ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype history-elt (structure) + ((record-tag-bytes uint8 4 :offset-assert 0) ;; guessed by decompiler + (record-tag uint32 :offset-assert 0) + (record-id uint16 :offset-assert 0) + (owner uint8 :offset-assert 2) + (channel uint8 :offset-assert 4) ;; history-channel + (timestamp uint64 :offset-assert 8) ;; time-frame + (origin vector :inline :offset-assert 16) + (bytes uint8 16 :offset-assert 32) ;; guessed by decompiler + (vector vector :inline :offset-assert 32) + (float float :offset-assert 32) + (collide-status uint64 :offset-assert 32) ;; collide-status + (collide-reaction-flag uint32 :offset-assert 40) + (pat pat-surface :offset-assert 32) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x30 + :flag-assert #x900000030 + ) +|# + +#| +(deftype history-iterator (basic) + ((max-age uint32 :offset-assert 4) + (owner uint8 :offset-assert 8) + (proc process :offset-assert 12) ;; guessed by decompiler + (out object :offset-assert 16) ;; guessed by decompiler + (channel-mask uint64 :offset-assert 24) + (index int32 :offset-assert 32) + (done? symbol :offset-assert 36) ;; guessed by decompiler + ) + :method-count-assert 12 + :size-assert #x28 + :flag-assert #xc00000028 + ;; field out uses ~A with a signed load. + (:methods + ;; (new (symbol type uint) _type_ 0) + (history-iterator-method-9 () none) ;; 9 ;; (frame-counter-delta (_type_ history-elt) time-frame 9) + (history-iterator-method-10 () none) ;; 10 ;; (update-entries! (_type_) history-elt 10) + (history-iterator-method-11 () none) ;; 11 ;; (get-age (_type_ history-elt) float 11) + ) + ) +|# + +#| +(deftype history (basic) + ((alloc-index int32 :offset-assert 4) + (allocated-length int32 :offset-assert 8) + (elts history-elt :dynamic :offset-assert 16) ;; guessed by decompiler + ) + :method-count-assert 11 + :size-assert #x10 + :flag-assert #xb00000010 + (:methods + ;; (new (symbol type int) _type_ 0) + (history-method-9 () none) ;; 9 ;; (clear-record-tags! (_type_ history-channel uint uint) history-elt 9) + (history-method-10 () none) ;; 10 ;; (clear-history-entries! (_type_) none 10) + ) + ) +|# + +;; (define-extern history-channel->string function) ;; (function history-channel string) +;; (define-extern *history* object) ;; history +;; (define-extern history-print function) ;; (function history-iterator none) +;; (define-extern history-draw function) ;; (function history-iterator none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; process-drawable ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern cspace-by-name function) ;; (function process-drawable string cspace) +;; (define-extern cspace-index-by-name function) ;; (function process-drawable string int) +;; (define-extern vector<-cspace! function) ;; (function vector cspace vector) +;; (define-extern vector<-matrix! function) ;; (function vector matrix vector) +;; (define-extern vector<-cspace+vector! function) ;; (function vector cspace vector vector) +;; (define-extern cspace-children function) ;; (function process-drawable int pair) +;; (define-extern cspace-inspect-tree function) ;; (function process-drawable cspace int int object process-drawable) +;; (define-extern execute-math-engine function) ;; (function int) +;; (define-extern execute-cloth-engine function) +;; (define-extern draw-joint-axes function) ;; (function process-drawable none) +;; (define-extern draw-root function) ;; (function process-drawable none) +;; (define-extern empty-state state) ;; (state process) +;; (define-extern process-drawable-error-print function) +;; (define-extern skeleton-group->draw-control function) ;; (function process-drawable skeleton-group (pointer cspace-array) draw-control) +;; (define-extern ja-group-in-array? function) +;; (define-extern ja-done? function) ;; (function int symbol :behavior process-drawable) +;; (define-extern ja-min? function) ;; (function int symbol :behavior process-drawable) +;; (define-extern ja-max? function) ;; (function int symbol :behavior process-drawable) +;; (define-extern ja-num-frames function) ;; (function int int :behavior process-drawable) +;; (define-extern ja-frame-num function) ;; (function int float :behavior process-drawable) +;; (define-extern ja-aframe-num function) ;; (function int float :behavior process-drawable) +;; (define-extern ja-aframe function) ;; (function float int float :behavior process-drawable) +;; (define-extern ja-speed function) ;; (function int float :behavior process-drawable) +;; (define-extern ja-step function) ;; (function int float :behavior process-drawable) +;; (define-extern ja-rate function) +;; (define-extern ja-linear-vel function) +;; (define-extern ja-channel-set! function) ;; (function int int :behavior process-drawable) +;; (define-extern ja-channel-push! function) ;; (function int time-frame int :behavior process-drawable) +;; (define-extern ja-channel-float! function) ;; (function art-joint-anim float float float joint-control-channel :behavior process-drawable) +;; (define-extern joint-control-reset! function) ;; (function joint-control joint-control-channel none :behavior process-drawable) +;; (define-extern ja-group-size function) ;; (function int :behavior process-drawable) +;; (define-extern ja-eval function) ;; (function int :behavior process-drawable) +;; (define-extern ja-blend-eval function) ;; (function int :behavior process-drawable) +;; (define-extern cloth-post function) +;; (define-extern ja-post function) ;; (function none :behavior process-drawable) +;; (define-extern sleep-code function) ;; (function symbol :behavior process) +;; (define-extern transform-and-sleep function) ;; (function none :behavior process-drawable) +;; (define-extern transform-and-sleep-code function) ;; (function none :behavior process-drawable) +;; (define-extern transform-post function) ;; (function int :behavior process-drawable) +;; (define-extern rider-trans function) ;; (function none :behavior process-drawable) +;; (define-extern rider-post function) ;; (function none :behavior process-drawable) +;; (define-extern pusher-post function) ;; (function int :behavior process-drawable) +;; (define-extern process-drawable-delay-player function) ;; (function time-frame int :behavior process-drawable) +;; (define-extern process-drawable-fuel-cell-handler function) ;; (function process int symbol event-message-block none :behavior process-drawable) +;; (define-extern process-drawable-birth-fuel-cell function) ;; (function entity vector symbol none :behavior process-drawable) +;; (define-extern find-offending-process-focusable function) ;; (function process-tree attack-info process-focusable :behavior process-drawable) +;; (define-extern *valid-con* object) ;; string +;; (define-extern process-drawable-valid? function) ;; (function process-drawable symbol) +;; (define-extern process-drawable-reset-all-cloth function) +;; (define-extern process-drawable-set-riding function) +;; (define-extern process-drawable-set-cloth-ground-height function) +;; (define-extern process-drawable-set-wind-strength function) +;; (define-extern process-drawable-show-all-cloth function) +;; (define-extern process-drawable-slow-mo-cloth function) +;; (define-extern process-drawable-cloth-command function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; vif-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype vif-stat (uint32) + ((UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + ) + :method-count-assert 9 + :size-assert #x4 + :flag-assert #x900000004 + ) +|# + +;; (deftype vif-fbrst (uint32) +;; () +;; :flag-assert #x900000004 +;; ) + +;; (deftype vif-err (uint32) +;; () +;; :flag-assert #x900000004 +;; ) + +#| +(deftype vif-bank (structure) + ((stat uint32 :offset-assert 0) + (fbrst uint32 :offset-assert 16) + (err vif-err :offset-assert 32) ;; guessed by decompiler + (mark uint32 :offset-assert 48) + (cycle uint32 :offset-assert 64) + (mode uint32 :offset-assert 80) + (num uint32 :offset-assert 96) + (mask uint32 :offset-assert 112) + (code uint32 :offset-assert 128) + (itops uint32 :offset-assert 144) + (base uint32 :offset-assert 160) + (offset uint32 :offset-assert 176) + (tops uint32 :offset-assert 192) + (itop uint32 :offset-assert 208) + (top uint32 :offset-assert 224) + (r0 uint32 :offset-assert 256) + (r1 uint32 :offset-assert 272) + (r2 uint32 :offset-assert 288) + (r3 uint32 :offset-assert 304) + (c0 uint32 :offset-assert 320) + (c1 uint32 :offset-assert 336) + (c2 uint32 :offset-assert 352) + (c3 uint32 :offset-assert 368) + ) + :method-count-assert 9 + :size-assert #x174 + :flag-assert #x900000174 + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; shrub-work ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *instance-shrub-work* object) ;; instance-shrub-work + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; capture-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype gs-store-image-packet (structure) + ((vifcode vif-tag 4 :offset-assert 0) ;; guessed by decompiler + (giftag uint128 :offset-assert 16) ;; gif-tag + (bitbltbuf uint64 :offset-assert 32) ;; gs-bitbltbuf + (bitbltbuf-addr uint64 :offset-assert 40) ;; gs-reg64 + (trxpos uint64 :offset-assert 48) ;; gs-trxpos + (trxpos-addr uint64 :offset-assert 56) ;; gs-reg64 + (trxreg uint64 :offset-assert 64) ;; gs-trxreg + (trxreg-addr uint64 :offset-assert 72) ;; gs-reg64 + (finish uint64 :offset-assert 80) ;; int64 + (finish-addr uint64 :offset-assert 88) ;; gs-reg64 + (trxdir uint64 :offset-assert 96) ;; gs-trxdir + (trxdir-addr uint64 :offset-assert 104) ;; gs-reg64 + ) + :method-count-assert 9 + :size-assert #x70 + :flag-assert #x900000070 + ) +|# + +#| +(deftype screen-shot-work (structure) + ((count int16 :offset-assert 0) + (size int16 :offset-assert 2) + (name string :offset-assert 4) ;; guessed by decompiler + (highres-enable symbol :offset-assert 8) ;; guessed by decompiler + (hud-enable symbol :offset-assert 12) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +;; (define-extern *screen-shot-work* object) ;; screen-shot-work +;; (define-extern *image-name* object) ;; string + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; generic-effect ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *target-lock* object) ;; object +;; (define-extern *generic-consts* object) ;; generic-consts +;; (define-extern generic-work-init function) ;; (function generic-bucket-state none) +;; (define-extern generic-upload-vu0 function) ;; (function none) +;; (define-extern upload-vu0-program function) ;; (function vu-function pointer none) +;; (define-extern generic-initialize-without-sync function) ;; (function matrix vu-lights none) +;; (define-extern generic-initialize function) ;; (function generic-bucket-state matrix vu-lights none) +;; (define-extern generic-wrapup function) ;; (function generic-bucket-state none) +;; (define-extern generic-dma-from-spr function) +;; (define-extern generic-light-proc function) +;; (define-extern generic-envmap-proc function) +;; (define-extern generic-prepare-dma-double function) +;; (define-extern generic-prepare-dma-single function) +;; (define-extern generic-envmap-dproc function) +;; (define-extern generic-interp-dproc function) +;; (define-extern generic-no-light-proc function) +;; (define-extern generic-no-light-dproc-only function) +;; (define-extern generic-no-light-dproc function) +;; (define-extern generic-no-light+envmap function) +;; (define-extern generic-no-light function) +;; (define-extern generic-envmap-only-proc function) +;; (define-extern generic-light function) +;; (define-extern generic-copy-vtx-dclr-dtex function) +;; (define-extern generic-none function) +;; (define-extern generic-none-dma-wait function) +;; (define-extern *warp-data* object) ;; object +;; (define-extern generic-warp-source-proc function) ;; (function none) +;; (define-extern generic-warp-source function) ;; (function gsf-buffer none) +;; (define-extern generic-warp-dest-proc function) +;; (define-extern generic-warp-dest function) +;; (define-extern generic-warp-envmap-dest function) +;; (define-extern generic-debug-light-proc function) +;; (define-extern generic-post-debug function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; dma-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype dma-chcr (uint32) + ((UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + ) + :method-count-assert 9 + :size-assert #x4 + :flag-assert #x900000004 + ) +|# + +#| +(deftype dma-bank (structure) + ((chcr dma-chcr :offset-assert 0) ;; guessed by decompiler + (madr uint32 :offset-assert 16) + (qwc uint32 :offset-assert 32) + ) + :method-count-assert 9 + :size-assert #x24 + :flag-assert #x900000024 + ) +|# + +#| +(deftype dma-bank-source (dma-bank) + ((tadr uint32 :offset-assert 48) + ) + :method-count-assert 9 + :size-assert #x34 + :flag-assert #x900000034 + ) +|# + +#| +(deftype dma-bank-vif (dma-bank-source) + ((as0 uint32 :offset-assert 64) + (as1 uint32 :offset-assert 80) + ) + :method-count-assert 9 + :size-assert #x54 + :flag-assert #x900000054 + ) +|# + +#| +(deftype dma-bank-spr (dma-bank-source) + ((sadr uint32 :offset-assert 128) + ) + :method-count-assert 9 + :size-assert #x84 + :flag-assert #x900000084 + ) +|# + +;; (deftype dma-ctrl (uint32) +;; () +;; :flag-assert #x900000004 +;; ) + +;; (deftype dma-enable (uint32) +;; () +;; :flag-assert #x900000004 +;; ) + +;; (deftype dma-sqwc (uint32) +;; () +;; :flag-assert #x900000004 +;; ) + +#| +(deftype dma-bank-control (structure) + ((ctrl dma-ctrl :offset-assert 0) ;; guessed by decompiler + (stat uint32 :offset-assert 16) + (pcr uint32 :offset-assert 32) + (sqwc dma-sqwc :offset-assert 48) ;; guessed by decompiler + (rbsr uint32 :offset-assert 64) + (rbor uint32 :offset-assert 80) + (stadr uint32 :offset-assert 96) + (enabler uint32 :offset-assert 5408) + (enablew uint32 :offset-assert 5520) + ) + :method-count-assert 9 + :size-assert #x1594 + :flag-assert #x900001594 + ) +|# + +#| +(deftype vu-code-block (basic) + ((name basic :offset-assert 4) + (code uint32 :offset-assert 8) + (size int32 :offset-assert 12) + (dest-address uint32 :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x14 + :flag-assert #x900000014 + ) +|# + +;; (deftype vu-stat (uint64) +;; () +;; :flag-assert #x900000008 +;; ) + +#| +(deftype dma-tag (uint64) + ((UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +#| +(deftype dma-bucket (structure) + ((tag uint64 :offset-assert 0) ;; dma-tag + (last (pointer dma-tag) :offset-assert 8) ;; guessed by decompiler + (dummy uint32 :offset-assert 12) + (next uint32 :offset-assert 4) + (clear uint64 :offset-assert 8) + (vif0 uint32 :offset-assert 8) + (vif1 uint32 :offset-assert 12) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +;; (deftype vif-mask (uint32) +;; () +;; :flag-assert #x900000004 +;; ) + +;; (deftype vif-stcycl-imm (uint16) +;; () +;; :flag-assert #x900000002 +;; ) + +;; (deftype vif-unpack-imm (uint16) +;; () +;; :flag-assert #x900000002 +;; ) + +#| +(deftype vif-tag (uint32) + ((UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + ) + :method-count-assert 9 + :size-assert #x4 + :flag-assert #x900000004 + ) +|# + +;; (define-extern dma-sync-fast function) ;; (function dma-bank none) +;; (define-extern dma-send-no-scratch function) ;; (function dma-bank uint32 uint32 none) +;; (define-extern dma-sync-with-count function) ;; (function dma-bank (pointer int32) int) +;; (define-extern dma-count-until-done function) ;; (function dma-bank (pointer int32) int) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; pilot-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype vehicle-controls (structure) + ((steering float :offset-assert 0) + (throttle float :offset-assert 4) + (brake float :offset-assert 8) + (lean-z float :offset-assert 12) + (handbrake float :offset-assert 16) + (flags uint8 :offset-assert 20) + (prev-flags uint8 :offset-assert 21) + (pad0 UNKNOWN 2 :offset-assert 22) + ) + :method-count-assert 9 + :size-assert #x18 + :flag-assert #x900000018 + ) +|# + +#| +(deftype pilot-info (basic) + ((entity basic :offset-assert 4) + (vehicle uint64 :offset-assert 8) ;; handle + (left-right-bias float :offset-assert 16) + (left-right-min float :offset-assert 20) + (left-right-max float :offset-assert 24) + (left-right-interp float :offset-assert 28) + (front-back-interp float :offset-assert 32) + (up-down-interp float :offset-assert 36) + (up-down-accel-factor float :offset-assert 40) + (front-back-accel-factor float :offset-assert 44) + (left-right-accel-factor float :offset-assert 48) + (stance uint8 :offset-assert 52) + (seat-index int8 :offset-assert 53) + (backup-nav-radius float :offset-assert 56) + (cam-side-shift float :offset-assert 60) + (enable-cam-side-shift symbol :offset-assert 64) ;; guessed by decompiler + (gun? symbol :offset-assert 68) ;; guessed by decompiler + (controls vehicle-controls :inline :offset-assert 72) + (accel-array vector :inline :offset-assert 96) + (local-accel vector :inline :offset-assert 224) + (pilot-trans vector :inline :offset-assert 240) + (pilot-quat vector :inline :offset-assert 256) + (pilot-scale vector :inline :offset-assert 272) + (underwater-time uint64 :offset-assert 288) + (as-daxter? symbol :offset-assert 296) ;; guessed by decompiler + (art-group-backup basic :offset-assert 300) + (hud-health uint64 :offset-assert 304) + (hud-turbo uint64 :offset-assert 312) + (jumping? basic :offset-assert 320) + ) + :method-count-assert 9 + :size-assert #x144 + :flag-assert #x900000144 + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; stats-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype tr-stat (structure) + ((groups uint16 :offset-assert 0) + (fragments uint16 :offset-assert 2) + (tris uint32 :offset-assert 4) + (dverts uint32 :offset-assert 8) + (instances uint16 :offset-assert 12) + (pad uint16 :offset-assert 14) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype merc-global-stats (structure) + ((merc tr-stat :inline :offset-assert 0) + (emerc tr-stat :inline :offset-assert 16) + (mercneric tr-stat :inline :offset-assert 32) + ) + :method-count-assert 9 + :size-assert #x30 + :flag-assert #x900000030 + ) +|# + +#| +(deftype perf-stat (structure) + ((frame-number uint32 :offset-assert 0) + (count uint32 :offset-assert 4) + (cycles uint32 :offset-assert 8) + (instructions uint32 :offset-assert 12) + (icache uint32 :offset-assert 16) + (dcache uint32 :offset-assert 20) + (select uint32 :offset-assert 24) + (ctrl uint32 :offset-assert 28) + (accum0 uint32 :offset-assert 32) + (accum1 uint32 :offset-assert 36) + (to-vu0-waits uint32 :offset-assert 40) + (to-spr-waits uint32 :offset-assert 44) + (from-spr-waits uint32 :offset-assert 48) + ) + :method-count-assert 14 + :size-assert #x34 + :flag-assert #xe00000034 + (:methods + (perf-stat-method-9 () none) ;; 9 ;; (perf-stat-method-9 () none 9) + (perf-stat-method-10 () none) ;; 10 ;; (print-to-stream (_type_ string basic) none 10) + (perf-stat-method-11 () none) ;; 11 ;; (reset! (_type_) none 11) + (perf-stat-method-12 () none) ;; 12 ;; (read! (_type_) none 12) + (perf-stat-method-13 () none) ;; 13 ;; (update-wait-stats (_type_ uint uint uint) none 13) + ) + ) +|# + +#| +(deftype perf-stat-array (inline-array-class) + ((data perf-stat :dynamic :offset-assert 16) ;; guessed by decompiler + ) + :method-count-assert 14 + :size-assert #x10 + :flag-assert #xe00000010 + ) +|# + +;; (define-extern perf-stat-bucket->string function) ;; (function perf-stat-bucket string) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; video-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype video-params (structure) + ((set-video-mode symbol :offset-assert 0) ;; guessed by decompiler + (reset-video-mode symbol :offset-assert 4) ;; guessed by decompiler + (display-fbp int32 :offset-assert 8) + (relative-x-scale float :offset-assert 16) + (display-dx int32 :offset-assert 20) + (display-dy int32 :offset-assert 24) + (display-sy int32 :offset-assert 28) + (relative-x-scale-reciprical float :offset-assert 32) + (screen-pages-high int32 :offset-assert 36) + (smode2 uint64 :offset-assert 40) + ) + :method-count-assert 9 + :size-assert #x30 + :flag-assert #x900000030 + ) +|# + +;; (define-extern *video-params* object) ;; video-params + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; factory-boss-states ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype factory-boss-command (structure) + ((action uint64 :offset-assert 0) + (suck float :offset-assert 8) + (random float :offset-assert 12) + (round int8 :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x11 + :flag-assert #x900000011 + ) +|# + +;; (define-extern factory-boss-angle-sub function) +;; (define-extern factory-boss-target-pos function) +;; (define-extern factory-boss-move function) +;; (define-extern factory-boss-pick-machine function) +;; (define-extern factory-boss-pick-camera function) +;; (define-extern factory-boss-pick-pers-camera function) +;; (define-extern factory-boss-machine-angle function) +;; (define-extern factory-boss-approaching? function) +;; (define-extern factory-boss-move-to-dest-angle function) +;; (define-extern factory-boss-time-until-angle function) +;; (define-extern factory-boss-get-particle-spawn-points function) +;; (define-extern factory-boss-drop-bomb function) +;; (define-extern factory-boss-check-bomb-timer function) +;; (define-extern factory-boss-end-cutscene function) +;; (define-extern factory-boss-spawn-ring function) +;; (define-extern factory-boss-always function) +;; (define-extern factory-boss-always-handler function) +;; (define-extern factory-boss-handler function) +;; (define-extern *factory-boss-swarm-0* array) +;; (define-extern *factory-boss-swarm-1* array) +;; (define-extern *factory-boss-swarm-2* array) +;; (define-extern *factory-boss-swarm-3* array) +;; (define-extern *factory-boss-swarm-4* array) +;; (define-extern factory-boss-launch-critter-handler function) +;; (define-extern factory-boss-advance-launch-script function) +;; (define-extern factory-boss-check-launch-script function) +;; (define-extern factory-boss-launch-critter function) +;; (define-extern factory-boss-launch-critter-pick-anim function) +;; (define-extern factory-boss-pick-floor-targets function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; dma-buffer ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype dma-packet (structure) + ((dma uint64 :offset-assert 0) ;; dma-tag + (vif0 vif-tag :offset-assert 8) ;; guessed by decompiler + (vif1 vif-tag :offset-assert 12) ;; guessed by decompiler + (quad uint128 :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype dma-packet-array (inline-array-class) + ((data dma-packet :dynamic :offset-assert 16) ;; guessed by decompiler + ) + :method-count-assert 14 + :size-assert #x10 + :flag-assert #xe00000010 + ) +|# + +#| +(deftype dma-gif (structure) + ((gif uint64 2 :offset-assert 0) ;; guessed by decompiler + (quad uint128 :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype dma-gif-packet (structure) + ((dma-vif dma-packet :inline :offset-assert 0) + (gif uint64 2 :offset-assert 16) ;; guessed by decompiler + (quad uint128 2 :offset-assert 0) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x20 + :flag-assert #x900000020 + ) +|# + +#| +(deftype dma-buffer (basic) + ((allocated-length int32 :offset-assert 4) + (base pointer :offset-assert 8) ;; guessed by decompiler + (end pointer :offset-assert 12) ;; guessed by decompiler + (real-buffer-end int32 :offset-assert 16) + (data uint64 1 :offset-assert 32) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x28 + :flag-assert #x900000028 + ) +|# + +;; (define-extern dma-buffer-inplace-new function) ;; (function dma-buffer int dma-buffer) +;; (define-extern dma-buffer-length function) ;; (function dma-buffer int) +;; (define-extern dma-buffer-free function) ;; (function dma-buffer int) +;; (define-extern dma-buffer-add-vu-function function) ;; (function dma-buffer vu-function int symbol) +;; (define-extern dma-buffer-send function) ;; (function dma-bank dma-buffer none) +;; (define-extern dma-buffer-send-chain function) ;; (function dma-bank-source dma-buffer none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; forest-part ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern spt-birth-func-brightness-part-neo-spawner-explode-juice function) +;; (define-extern spt-birth-func-brightness-part-forest-leaf-fall function) +;; (define-extern spt-birth-func-part-forest-leaf-fall function) +;; (define-extern spt-forest-check-ground-lie-flat function) +;; (define-extern spt-birth-func-part-forest-leaf-fall-water function) +;; (define-extern spt-check-water-lie-flat function) +;; (define-extern spt-birth-func-brightness-mh-plant-rebirth-dust function) +;; (define-extern spt-birth-func-brightness-mh-plant-rebirth-rocks function) +;; (define-extern spt-birth-func-brightness-mh-plant-rebirth-dirt function) +;; (define-extern spt-birth-func-part-mh-plant-rebirth-dirt function) +;; (define-extern spt-birth-func-part-mh-plant-rebirth-rocks function) +;; (define-extern spt-func-part-mh-plant-rebirth-rocks function) +;; (define-extern spt-func-birth-on-stop function) +;; (define-extern spt-birth-func-brightness-mh-plant-die-juice function) +;; (define-extern spt-birth-func-brightness-for-bridge-bits function) +;; (define-extern spt-birth-func-part-for-bridge-bits function) +;; (define-extern *range-ffexplo-dust-color* curve-color-fast) +;; (define-extern *range-ffexplo-dust-alpha* curve2d-fast) +;; (define-extern *range-ffexplo-dust-scale-x* curve2d-fast) +;; (define-extern *range-ffexplo-dust-scale-y* curve2d-fast) +;; (define-extern *curve-ffexplo-dust-alpha* curve2d-fast) +;; (define-extern *curve-ffexplo-dust-scale-x* curve2d-fast) +;; (define-extern *curve-ffexplo-dust-scale-y* curve2d-fast) +;; (define-extern *part-for-ring-finder-explosion-dust-in-curve-settings* object) +;; (define-extern *range-ffexplo-color* curve-color-fast) +;; (define-extern *range-ffexplo-alpha* curve2d-fast) +;; (define-extern *range-ffexplo-scale-x* curve2d-fast) +;; (define-extern *range-ffexplo-scale-y* curve2d-fast) +;; (define-extern *curve-ffexplo-alpha* curve2d-fast) +;; (define-extern *curve-ffexplo-scale-x* curve2d-fast) +;; (define-extern *curve-ffexplo-scale-y* curve2d-fast) +;; (define-extern *part-for-ring-finder-explosion-texture-curve-settings* object) +;; (define-extern birth-func-for-ground-dirt-bounce function) +;; (define-extern spt-func-for-ground-dirt-bounce1 function) +;; (define-extern spt-func-for-ground-dirt-bounce2 function) +;; (define-extern spt-birth-func-brightness-for-statue-rocks function) +;; (define-extern spt-birth-func-brightness-for-statue-dirt function) +;; (define-extern spt-birth-func-part-for-statue-rise-dirt function) +;; (define-extern spt-birth-func-part-for-statue-rise-rocks function) +;; (define-extern spt-func-part-for-statue-rise-rocks function) +;; (define-extern spt-birth-func-part-for-statue-rise-rocks-bounce1 function) +;; (define-extern spt-func-part-for-statue-rise-rocks-bounce1 function) +;; (define-extern spt-func-for-ground-dirt-bounce3 function) +;; (define-extern spt-birth-func-part-for-statue-rise-rocks-bounce2 function) +;; (define-extern *range-sat-explo-color* curve-color-fast) +;; (define-extern *range-sat-explo-alpha* curve2d-fast) +;; (define-extern *range-sat-explo-scale-x* curve2d-fast) +;; (define-extern *range-sat-explo-scale-y* curve2d-fast) +;; (define-extern *curve-sat-explo-alpha* curve2d-fast) +;; (define-extern *curve-sat-explo-scale-x* curve2d-fast) +;; (define-extern *curve-sat-explo-scale-y* curve2d-fast) +;; (define-extern *part-for-statue-explosion-texture-curve-settings* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; pilot-recorder ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype pilrec-sample (structure) + ((sample-time uint64 :offset-assert 0) ;; time-frame + (pos vector :inline :offset-assert 16) + (quat quaternion :inline :offset-assert 32) + (stick-x float :offset-assert 48) + (stick-y float :offset-assert 52) + (throttle float :offset-assert 56) + (flags uint8 :offset-assert 60) + ) + :method-count-assert 9 + :size-assert #x3d + :flag-assert #x90000003d + ) +|# + +#| +(deftype pilot-recorder-samples (basic) + ((samples (inline-array pilrec-sample) :offset-assert 4) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +#| +(deftype pilot-recorder (process) + ((info race-info :offset-assert 128) ;; guessed by decompiler + (mesh race-mesh :offset-assert 132) ;; guessed by decompiler + (select-race uint64 :offset-assert 136) + (path-num int32 :offset-assert 144) + (sample-count int32 :offset-assert 148) + (samples pilot-recorder-samples :offset-assert 152) ;; guessed by decompiler + (state-time uint64 :offset-assert 160) ;; time-frame + (start-time uint64 :offset-assert 168) ;; time-frame + (start-record-plane plane :inline :offset-assert 176) + (start-record-center vector :inline :offset-assert 192) + (finish-record-plane plane :inline :offset-assert 208) + (finish-record-center vector :inline :offset-assert 224) + (prev-pos vector :inline :offset-assert 240) + ) + :method-count-assert 31 + :size-assert #x100 + :flag-assert #x1f00800100 + (:methods + (pilot-recorder-method-22 () none) ;; 22 ;; (pilot-recorder-method-22 () none 22) + (pilot-recorder-method-23 () none) ;; 23 ;; (pilot-recorder-method-23 () none 23) + (pilot-recorder-method-24 () none) ;; 24 ;; (pilot-recorder-method-24 () none 24) + (pilot-recorder-method-25 () none) ;; 25 ;; (pilot-recorder-method-25 () none 25) + (pilot-recorder-method-26 () none) ;; 26 ;; (pilot-recorder-method-26 () none 26) + (pilot-recorder-method-27 () none) ;; 27 ;; (pilot-recorder-method-27 () none 27) + (pilot-recorder-method-28 () none) ;; 28 ;; (pilot-recorder-method-28 () none 28) + (pilot-recorder-method-29 () none) ;; 29 ;; (pilot-recorder-method-29 () none 29) + (pilot-recorder-method-30 () none) ;; 30 ;; (pilot-recorder-method-30 () none 30) + ) + (:state-methods + idle ;; 15, old: (idle () _type_ :state 15) + active ;; 16, old: (active () _type_ :state 16) + recording ;; 17, old: (recording () _type_ :state 17) + finished ;; 19, old: (finished () _type_ :state 19) + save ;; 20, old: (save () _type_ :state 20) + fail-save ;; 21, old: (fail-save () _type_ :state 21) + fail-full ;; 18, old: (fail-full () _type_ :state 18) + die-fast ;; 14, old: (die-fast () _type_ :state 14) + ) + ) +|# + +;; (define-extern *pilot-recorder-samples* object) +;; (define-extern delete-race-path function) +;; (define-extern *pilot-recorder* object) +;; (define-extern pilot-recorder-init-by-other function) +;; (define-extern start-pilot-recorder function) ;; (function none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; pad ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype scf-time (structure) + ((stat uint8 :offset-assert 0) + (second uint8 :offset-assert 1) + (minute uint8 :offset-assert 2) + (hour uint8 :offset-assert 3) + (week uint8 :offset-assert 4) + (day uint8 :offset-assert 5) + (month uint8 :offset-assert 6) + (year uint8 :offset-assert 7) + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +#| +(deftype hw-cpad (basic) + ((valid uint8 :offset-assert 4) + (status uint8 :offset-assert 5) + (button0 uint16 :offset-assert 6) + (rightx uint8 :offset-assert 8) + (righty uint8 :offset-assert 9) + (leftx uint8 :offset-assert 10) + (lefty uint8 :offset-assert 11) + (abutton uint8 12 :offset-assert 12) ;; guessed by decompiler + (dummy uint8 12 :offset-assert 24) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x24 + :flag-assert #x900000024 + ) +|# + +#| +(deftype cpad-info (hw-cpad) + ((number int32 :offset-assert 36) + (cpad-file int32 :offset-assert 40) + (button0-abs pad-buttons 3 :offset-assert 44) ;; guessed by decompiler + (button0-shadow-abs pad-buttons 1 :offset-assert 56) ;; guessed by decompiler + (button0-rel pad-buttons 3 :offset-assert 60) ;; guessed by decompiler + (stick0-dir float :offset-assert 72) + (stick0-speed float :offset-assert 76) + (new-pad int32 :offset-assert 80) + (state int32 :offset-assert 84) + (align uint8 6 :offset-assert 88) ;; guessed by decompiler + (direct uint8 6 :offset-assert 94) ;; guessed by decompiler + (buzz-val uint8 2 :offset-assert 100) ;; guessed by decompiler + (buzz-pause-val uint8 1 :offset-assert 102) ;; guessed by decompiler + (buzz-pause-time uint8 :offset-assert 103) + (buzz-time time-frame 2 :offset-assert 104) ;; guessed by decompiler + (buzz basic :offset-assert 120) + (buzz-act int32 :offset-assert 124) + (change-time uint64 :offset-assert 128) ;; time-frame + (real-change-time uint64 :offset-assert 136) + (old-rightx uint8 2 :offset-assert 144) ;; guessed by decompiler + (old-righty uint8 2 :offset-assert 146) ;; guessed by decompiler + (old-leftx uint8 2 :offset-assert 148) ;; guessed by decompiler + (old-lefty uint8 2 :offset-assert 150) ;; guessed by decompiler + ) + :method-count-assert 10 + :size-assert #x98 + :flag-assert #xa00000098 + (:methods + ;; (new (symbol type int) _type_ 0) + (cpad-info-method-9 () none) ;; 9 ;; (adjust-to-screen-flip (_type_) int 9) + ) + ) +|# + +#| +(deftype cpad-list (basic) + ((num-cpads int32 :offset-assert 4) + (cpads cpad-info 2 :offset-assert 8) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype mouse-info (basic) + ((active symbol :offset-assert 4) ;; guessed by decompiler + (cursor basic :offset-assert 8) + (valid symbol :offset-assert 12) ;; guessed by decompiler + (id uint8 :offset-assert 16) + (status uint16 :offset-assert 18) + (button0 uint16 :offset-assert 20) + (deltax int8 :offset-assert 22) + (deltay int8 :offset-assert 23) + (wheel uint8 :offset-assert 24) + (change-time uint64 :offset-assert 32) ;; time-frame + (button0-abs mouse-buttons 3 :offset-assert 40) ;; guessed by decompiler + (button0-shadow-abs mouse-buttons 1 :offset-assert 52) ;; guessed by decompiler + (button0-rel mouse-buttons 3 :offset-assert 56) ;; guessed by decompiler + (pos vector 2 :offset-assert 80) ;; guessed by decompiler + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (posx float :offset-assert 80) + (posy float :offset-assert 84) + (oldposx float :offset-assert 96) + (oldposy float :offset-assert 100) + (speedx float :offset-assert 92) + (speedy float :offset-assert 108) + ) + :method-count-assert 9 + :size-assert #x70 + :flag-assert #x900000070 + ) +|# + +#| +(deftype keybd-info (basic) + ((active basic :offset-assert 4) + (valid basic :offset-assert 8) + (kdata UNKNOWN 16 :offset-assert 12) + (keys UNKNOWN 256 :offset-assert 28) + ) + :method-count-assert 9 + :size-assert #x11c + :flag-assert #x90000011c + ) +|# + +;; (define-extern *cheat-mode* object) ;; symbol +;; (define-extern cpad-invalid! function) ;; (function cpad-info cpad-info) +;; (define-extern analog-input function) ;; (function int float float float float float) +;; (define-extern cpad-set-buzz! function) ;; (function cpad-info int int time-frame none) +;; (define-extern *cpad-list* object) ;; cpad-list +;; (define-extern *cpad-debug* object) ;; symbol +;; (define-extern service-cpads function) ;; (function cpad-list) +;; (define-extern buzz-stop! function) ;; (function int none) +;; (define-extern *mouse* object) ;; mouse-info +;; (define-extern service-mouse function) ;; (function none) +;; (define-extern *keybd* object) +;; (define-extern service-keybd function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; display-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype display-frame (basic) + ((buffer dma-buffer 11 :offset-assert 4) ;; guessed by decompiler + (calc-buf dma-buffer :offset-assert 8) ;; guessed by decompiler + (vu1-buf dma-buffer :offset-assert 8) ;; guessed by decompiler + (debug-buf dma-buffer :offset-assert 36) ;; guessed by decompiler + (global-buf dma-buffer :offset-assert 40) ;; guessed by decompiler + (bucket-group dma-bucket :offset-assert 44) ;; (inline-array dma-bucket) + (profile-array profile-array :inline :offset-assert 48) + (start-time uint64 :offset-assert 56) ;; int64 + (run-time uint64 :offset-assert 64) ;; int64 + ) + :method-count-assert 9 + :size-assert #x48 + :flag-assert #x900000048 + ) +|# + +#| +(deftype display (basic) + ((on-screen int32 :offset-assert 4) + (last-screen int32 :offset-assert 8) + (frames display-frame 2 :offset-assert 12) ;; guessed by decompiler + (bgcolor uint64 :offset-assert 24) ;; gs-bgcolor + (pmode uint64 :offset-assert 32) ;; gs-pmode + (clock clock 22 :offset-assert 40) ;; guessed by decompiler + (session-clock clock :offset-assert 40) ;; guessed by decompiler + (game-clock clock :offset-assert 44) ;; guessed by decompiler + (base-clock clock :offset-assert 48) ;; guessed by decompiler + (real-clock clock :offset-assert 52) ;; guessed by decompiler + (frame-clock clock :offset-assert 56) ;; guessed by decompiler + (real-frame-clock clock :offset-assert 60) ;; guessed by decompiler + (target-clock clock :offset-assert 64) ;; guessed by decompiler + (entity-clock clock :offset-assert 68) ;; guessed by decompiler + (part-clock clock :offset-assert 72) ;; guessed by decompiler + (bg-clock clock :offset-assert 76) ;; guessed by decompiler + (camera-clock clock :offset-assert 80) ;; guessed by decompiler + (total-game-clock clock :offset-assert 84) ;; guessed by decompiler + (user0-clock clock :offset-assert 88) ;; guessed by decompiler + (user1-clock basic :offset-assert 92) + (user2-clock basic :offset-assert 96) + (user3-clock basic :offset-assert 100) + (user4-clock basic :offset-assert 104) + (user5-clock basic :offset-assert 108) + (user6-clock basic :offset-assert 112) + (user7-clock basic :offset-assert 116) + (user8-clock basic :offset-assert 120) + (user9-clock basic :offset-assert 124) + (time-factor float :offset-assert 128) + (dog-ratio float :offset-assert 132) + (vblank-start-time int64 2 :offset-assert 136) ;; guessed by decompiler + (total-run-time uint64 :offset-assert 152) ;; int64 + (run-half-speed basic :offset-assert 160) + (vu1-enable-user uint64 :offset-assert 168) ;; vu1-renderer-mask + (vu1-enable-user-menu uint64 :offset-assert 176) ;; vu1-renderer-mask + (force-sync uint32 :offset-assert 184) + (mem-reserve-size uint32 :offset-assert 188) + (dma-buffer-overflow basic :offset-assert 192) + ) + :method-count-assert 10 + :size-assert #xc4 + :flag-assert #xa000000c4 + (:methods + ;; (new (symbol type int int int int int) _type_ 0) + (display-method-9 () none) ;; 9 ;; (set-time-ratios (_type_ float) float 9) + ) + ) +|# + +;; (define-extern *pre-draw-hook* object) ;; (function object none) +;; (define-extern *post-draw-hook* object) ;; (function dma-buffer none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; editable ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern common-owner function) +;; (define-extern update-light-sphere-from-editable-light function) ;; (function editable-light none) +;; (define-extern load-editable-lights function) +;; (define-extern *editable-sample-region* object) ;; editable-region +;; (define-extern *editable-light-region* object) ;; editable-region +;; (define-extern *editable-entity-region* object) ;; editable-region + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; grunt ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype grunt-anim-info (structure) + ((anim-index int32 :offset-assert 0) + (travel-speed meters :offset-assert 4) + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +#| +(deftype grunt-global-info (basic) + ((patrol-anim grunt-anim-info 4 :offset-assert 4) ;; guessed by decompiler + (charge-anim grunt-anim-info 3 :offset-assert 36) ;; guessed by decompiler + (attack-anim grunt-anim-info 2 :offset-assert 60) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x4c + :flag-assert #x90000004c + ) +|# + +#| +(deftype grunt (nav-enemy) + ((patrol-anim grunt-anim-info :offset-assert 620) + (charge-anim grunt-anim-info :offset-assert 624) + (attack-anim grunt-anim-info :offset-assert 628) + (intro-path path-control :offset-assert 632) ;; guessed by decompiler + (use-charge-anim-index int8 :offset-assert 640) + (jumping-ambush-path-pt int8 :offset-assert 641) + (grunt-flags uint8 :offset-assert 642) + (state-timeout2 uint64 :offset-assert 648) + (next-warn-time uint64 :offset-assert 656) ;; time-frame + (dest vector :inline :offset-assert 672) + (focus-pos vector :inline :offset-assert 352) + (minimap connection-minimap :offset-assert 704) + ) + :method-count-assert 198 + :size-assert #x2c4 + :flag-assert #xc6025002c4 + (:methods + (grunt-method-196 () none) ;; 196 + (grunt-method-197 () none) ;; 197 + ) + (:state-methods + falling-ambush ;; 191 + jumping-ambush ;; 192 + jumping-ambush-cont ;; 193 + active ;; 34 + attack ;; 190 + hostile ;; 38 + spin-attack ;; 195 + circling ;; 157 + pacing ;; 156 + stop-chase ;; 158 + wait-for-focus ;; 194 + knocked-recover ;; 32 + ) + ) +|# + +;; (define-extern *grunt-global-info* grunt-global-info) ;; grunt-global-info +;; (define-extern *grunt-nav-enemy-info* nav-enemy-info) ;; nav-enemy-info + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ctywide-tasks ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype task-manager-city-vehicle-training-hover-zone-1 (task-manager) + ((speech-id uint32 :offset-assert 240) + ) + :method-count-assert 32 + :size-assert #xf4 + :flag-assert #x20008000f4 + (:state-methods + active ;; 15 + fail ;; 18 + complete ;; 16 + ) + ) +|# + +#| +(deftype task-manager-city-vehicle-training-hover-zone-2 (task-manager) + ((speech-id uint32 :offset-assert 240) + ) + :method-count-assert 32 + :size-assert #xf4 + :flag-assert #x20008000f4 + (:state-methods + active ;; 15 + ) + ) +|# + +#| +(deftype cty-hijack-intro (task-manager) + () + :method-count-assert 32 + :size-assert #xf0 + :flag-assert #x20007000f0 + (:state-methods + active ;; 15 + ) + ) +|# + +#| +(deftype task-manager-force-load-borrows (task-manager) + () + :method-count-assert 32 + :size-assert #xf0 + :flag-assert #x20007000f0 + (:state-methods + active ;; 15 + ) + ) +|# + +#| +(deftype task-manager-blackout (task-manager) + () + :method-count-assert 32 + :size-assert #xf0 + :flag-assert #x20007000f0 + (:state-methods + active ;; 15 + ) + ) +|# + +;; (define-extern wait-for-speech-end function) ;; (function sound-id none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; factory-boss-setup ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype factory-boss-speech-instance (structure) + ((speech basic :offset-assert 0) + (probability float :offset-assert 4) + (flags uint64 :offset-assert 8) + (play-count uint32 :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x14 + :flag-assert #x900000014 + ) +|# + +#| +(deftype factory-boss-speech-info (structure) + ((speeches basic :offset-assert 0) + (play-time uint64 :offset-assert 8) + (current-random uint64 :offset-assert 16) + (minimum-interval uint64 :offset-assert 24) + (random-interval uint64 :offset-assert 32) + (last-played int8 :offset-assert 40) + (flags uint8 :offset-assert 41) + ) + :method-count-assert 9 + :size-assert #x2a + :flag-assert #x90000002a + ) +|# + +#| +(deftype factory-boss-speech-group (structure) + ((play-time uint64 :offset-assert 0) + (info basic :offset-assert 8) + ) + :method-count-assert 9 + :size-assert #xc + :flag-assert #x90000000c + ) +|# + +#| +(deftype factory-boss-reticle-info (structure) + ((reticle basic :offset-assert 0) + (reticle-corner-0 basic :offset-assert 4) + (reticle-corner-1 basic :offset-assert 8) + (reticle-corner-2 basic :offset-assert 12) + (reticle-corner-3 basic :offset-assert 16) + (reticle-dot basic :offset-assert 20) + (reticle-arrow basic :offset-assert 24) + (reticle-super basic :offset-assert 28) + (reticle-super-ring basic :offset-assert 32) + (lock-time uint64 :offset-assert 40) + ) + :method-count-assert 12 + :size-assert #x30 + :flag-assert #xc00000030 + (:methods + (factory-boss-reticle-info-method-9 () none) ;; 9 + (factory-boss-reticle-info-method-10 () none) ;; 10 + (factory-boss-reticle-info-method-11 () none) ;; 11 + ) + ) +|# + +#| +(deftype factory-boss-shot (projectile) + ((trail-part basic :offset-assert 512) + (traj trajectory :inline :offset-assert 528) + (traj-time uint64 :offset-assert 568) + (shot-dest vector :inline :offset-assert 576) + (impact-played basic :offset-assert 592) + (reticle-sound uint32 :offset-assert 596) + (reticle-sound-playing basic :offset-assert 600) + ) + :method-count-assert 42 + :size-assert #x25c + :flag-assert #x2a01e0025c + (:methods + (factory-boss-shot-method-41 () none) ;; 41 + ) + (:state-methods + moving ;; 23 + impact ;; 22 + ) + ) +|# + +#| +(deftype factory-boss-shockwave-bomb (factory-boss-shot) + () + :method-count-assert 42 + :size-assert #x25c + :flag-assert #x2a01e0025c + (:state-methods + impact ;; 22 + ) + ) +|# + +#| +(deftype shockwave-bomb-explosion (explosion) + () + :method-count-assert 23 + :size-assert #x168 + :flag-assert #x1700f00168 + ) +|# + +#| +(deftype factory-boss-floorbuster-bomb (factory-boss-shot) + ((targetted-group int8 :offset-assert 604) + ) + :method-count-assert 42 + :size-assert #x25d + :flag-assert #x2a01e0025d + (:state-methods + impact ;; 22 + ) + ) +|# + +#| +(deftype floorbuster-bomb-explosion (explosion) + ((targetted-group int8 :offset-assert 360) + ) + :method-count-assert 23 + :size-assert #x169 + :flag-assert #x1700f00169 + ) +|# + +#| +(deftype fac-drop-plat-nocollide (process-drawable) + () + :method-count-assert 21 + :size-assert #xc8 + :flag-assert #x15005000c8 + (:state-methods + idle ;; 20 + ) + ) +|# + +#| +(deftype fac-drop-plat (process-drawable) + ((x-rotation-speed float :offset-assert 200) + (y-rotation-speed float :offset-assert 204) + (boss basic :offset-assert 208) + ) + :method-count-assert 23 + :size-assert #xd4 + :flag-assert #x17006000d4 + (:state-methods + idle ;; 20 + fall-away ;; 21 + done-falling ;; 22 + ) + ) +|# + +#| +(deftype factory-boss-critter-tracker (structure) + ((handle uint64 :offset-assert 0) + (flags uint32 :offset-assert 8) + (dest vector :inline :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x20 + :flag-assert #x900000020 + ) +|# + +#| +(deftype factory-boss-machine-state (structure) + ((damaged-low-smoke-part basic :offset-assert 0) + (damaged-high-smoke-part basic :offset-assert 4) + (damaged-left-spark-part basic :offset-assert 8) + (damaged-right-spark-part basic :offset-assert 12) + (ring-part basic :offset-assert 16) + (lightning basic :offset-assert 20) + (machine-sound uint32 :offset-assert 24) + (state int8 :offset-assert 28) + (flags uint8 :offset-assert 29) + (left-spark-timer uint64 :offset-assert 32) + (right-spark-timer uint64 :offset-assert 40) + (ring-timer uint64 :offset-assert 48) + ) + :method-count-assert 9 + :size-assert #x38 + :flag-assert #x900000038 + ) +|# + +#| +(deftype factory-boss-lightning-gate (structure) + ((center vector :inline :offset-assert 0) + (x-off float :offset-assert 16) + (z-off float :offset-assert 20) + (blocking-plane uint64 :offset-assert 24) + (lightning UNKNOWN 4 :offset-assert 32) + ) + :method-count-assert 12 + :size-assert #x30 + :flag-assert #xc00000030 + (:methods + (factory-boss-lightning-gate-method-9 () none) ;; 9 + (factory-boss-lightning-gate-method-10 () none) ;; 10 + (factory-boss-lightning-gate-method-11 () none) ;; 11 + ) + ) +|# + +#| +(deftype factory-boss (process-drawable) + ((center vector :inline :offset-assert 204) + (shot-timer uint64 :offset-assert 220) + (critter UNKNOWN 8 :offset-assert 236) + (ammo UNKNOWN 10 :offset-assert 492) + (catwalk-angle float :offset-assert 572) + (catwalk-vel float :offset-assert 576) + (bombs-to-drop int8 :offset-assert 580) + (bomb-type uint64 :offset-assert 588) + (root-angle float :offset-assert 596) + (machine-state UNKNOWN 4 :offset-assert 604) + (chosen-machine int8 :offset-assert 860) + (command-index int8 :offset-assert 861) + (command-timer uint64 :offset-assert 868) + (current-round int32 :offset-assert 876) + (hits-taken int8 :offset-assert 880) + (camera-timer uint64 :offset-assert 884) + (reticle-info factory-boss-reticle-info :inline :offset-assert 892) + (actor-group uint32 :offset-assert 940) + (actor-group-count int32 :offset-assert 944) + (launching-group basic :offset-assert 948) + (floor-targets UNKNOWN 7 :offset-assert 952) + (num-floor-targets int8 :offset-assert 959) + (reticle-sound uint32 :offset-assert 960) + (reticle-sound-playing basic :offset-assert 964) + (warp-blocker factory-boss-lightning-gate :inline :offset-assert 972) + (entry-blocker factory-boss-lightning-gate :inline :offset-assert 1020) + ) + :method-count-assert 31 + :size-assert #x430 + :flag-assert #x1f03b00430 + (:methods + (factory-boss-method-20 () none) ;; 20 + (factory-boss-method-21 () none) ;; 21 + (factory-boss-method-22 () none) ;; 22 + (factory-boss-method-23 () none) ;; 23 + (factory-boss-method-24 () none) ;; 24 + (factory-boss-method-25 () none) ;; 25 + (factory-boss-method-26 () none) ;; 26 + (factory-boss-method-27 () none) ;; 27 + (factory-boss-method-28 () none) ;; 28 + (factory-boss-method-29 () none) ;; 29 + (factory-boss-method-30 () none) ;; 30 + ) + ) +|# + +#| +(deftype hud-factory-boss (hud) + () + :method-count-assert 27 + :size-assert #xac4 + :flag-assert #x1b0a500ac4 + ) +|# + +#| +(deftype task-manager-factory-boss (task-manager) + ((button-up basic :offset-assert 240) + ) + :method-count-assert 33 + :size-assert #xf4 + :flag-assert #x21008000f4 + (:methods + (task-manager-factory-boss-method-32 () none) ;; 32 + ) + ) +|# + +#| +(deftype fac-warp-effect (process-drawable) + () + :method-count-assert 21 + :size-assert #xc8 + :flag-assert #x15005000c8 + (:state-methods + idle ;; 20 + ) + ) +|# + +;; (define-extern *factory-boss-dead-pool* object) +;; (define-extern *factory-boss-speech* object) +;; (define-extern reset-factory-boss-speeches function) +;; (define-extern factory-boss-play-speech function) +;; (define-extern fac-drop-plat-nocollide-init-by-other function) +;; (define-extern fac-drop-plat-setup-rots function) +;; (define-extern fac-drop-plat-rot-once function) +;; (define-extern fac-drop-plat-init-by-other function) +;; (define-extern factoryd-login function) +;; (define-extern factoryd-logout function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; geometry ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern vector-flatten! function) ;; (function vector vector vector vector) +;; (define-extern vector-reflect! function) ;; (function vector vector vector vector) +;; (define-extern vector-reflect-flat! function) ;; (function vector vector vector vector) +;; (define-extern vector-reflect-flat-above! function) ;; (function vector vector vector vector) +;; (define-extern vector-reflect-flat-gravity! function) ;; (function vector vector vector vector vector) +;; (define-extern vector-segment-distance-point! function) ;; (function vector vector vector vector float) +;; (define-extern vector-segment-xz-distance-point! function) +;; (define-extern vector-line-distance function) ;; (function vector vector vector float) +;; (define-extern vector-line-distance-point! function) ;; (function vector vector vector vector float) +;; (define-extern vector-line-xz-distance-point! function) +;; (define-extern vector-segment-overlap function) ;; (function vector vector vector float) +;; (define-extern line-sphere-intersection? function) ;; (function vector vector vector symbol) +;; (define-extern nearest-dist2-between-moving-points function) ;; (function vector vector vector vector float float) +;; (define-extern vector-orient-by-quat! function) ;; (function vector vector quaternion vector) +;; (define-extern vector-inv-orient-by-quat! function) ;; (function vector vector quaternion vector) +;; (define-extern forward-down->inv-matrix function) ;; (function matrix vector vector matrix) +;; (define-extern forward-down-nopitch->inv-matrix function) ;; (function matrix vector vector matrix) +;; (define-extern forward-up->inv-matrix function) ;; (function matrix vector vector matrix) +;; (define-extern forward-up-nopitch->inv-matrix function) ;; (function matrix vector vector matrix) +;; (define-extern forward-up-nopitch->quaternion function) ;; (function quaternion vector vector quaternion) +;; (define-extern forward-up->quaternion function) ;; (function quaternion vector vector quaternion) +;; (define-extern quaternion-from-two-vectors! function) ;; (function quaternion vector vector quaternion) +;; (define-extern quaternion-from-two-vectors-partial! function) ;; (function quaternion vector vector float quaternion) +;; (define-extern quaternion-from-two-vectors-max-angle! function) ;; (function quaternion vector vector float quaternion) +;; (define-extern quaternion-from-two-vectors-max-angle-partial! function) ;; (function quaternion vector vector float float quaternion) +;; (define-extern matrix-from-two-vectors! function) ;; (function matrix vector vector matrix) +;; (define-extern matrix-from-two-vectors-max-angle! function) ;; (function matrix vector vector float matrix) +;; (define-extern matrix-from-two-vectors-smooth! function) ;; (function matrix vector vector float int matrix) +;; (define-extern matrix-from-two-vectors-the-long-way-smooth! function) ;; (function matrix vector vector float int matrix) +;; (define-extern quaternion-from-two-vectors-smooth! function) ;; (function quaternion vector vector float int quaternion) +;; (define-extern matrix-from-two-vectors-max-angle-partial! function) ;; (function matrix vector vector float float matrix) +;; (define-extern matrix-from-two-vectors-partial-linear! function) ;; (function matrix vector vector float matrix) +;; (define-extern matrix-remove-z-rot function) ;; (function matrix vector matrix) +;; (define-extern matrix-rot-diff! function) ;; (function vector matrix matrix float) +;; (define-extern quaternion-seek function) ;; (function quaternion quaternion quaternion float float quaternion) +;; (define-extern vector-deg-seek function) ;; (function vector vector vector float vector) +;; (define-extern vector-deg-slerp function) ;; (function vector vector vector float vector) +;; (define-extern vector-vector-deg-slerp! function) ;; (function vector vector vector float vector vector) +;; (define-extern normal-of-plane function) ;; (function vector vector vector vector vector) +;; (define-extern vector-3pt-cross! function) ;; (function vector vector vector vector vector) +;; (define-extern closest-pt-in-triangle function) ;; (function vector vector matrix vector none) +;; (define-extern point-in-triangle-cross function) ;; (function vector vector vector vector vector symbol) +;; (define-extern point-in-plane-<-point+normal! function) ;; (function vector vector vector vector) +;; (define-extern circle-circle-xz-intersect function) ;; (function sphere sphere vector vector int) +;; (define-extern circle-test function) ;; (function none) +;; (define-extern vector-circle-tangent-new function) ;; (function vector vector vector vector none) +;; (define-extern vector-circle-tangent function) ;; (function vector vector vector vector none) +;; (define-extern find-knot-span function) ;; (function int int float (inline-array vector) int) +;; (define-extern calculate-basis-functions-vector! function) ;; (function vector int float (pointer float) vector) +;; (define-extern curve-evaluate! function) ;; (function vector float (inline-array vector) int (pointer float) int vector) +;; (define-extern curve-get-pos! function) ;; (function vector float curve vector) +;; (define-extern curve-length function) ;; (function curve float) +;; (define-extern curve-copy! function) ;; (function curve curve curve) +;; (define-extern curve-closest-point function) ;; (function curve vector float float int float float) +;; (define-extern vector-plane-distance function) ;; (function vector plane vector float) +;; (define-extern intersect-ray-plane function) ;; (function vector vector vector vector float) +;; (define-extern line-line-find-intersection-xz function) +;; (define-extern segment-segment-find-intersection-xz function) +;; (define-extern generate-rand-vector-on-sphere function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; hover-nav-sewg ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *sewg-adjacency* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; rubble-attack ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype rub-missile (metalhead-grenade-shot) + () + :method-count-assert 41 + :size-assert #x214 + :flag-assert #x2901a00214 + (:state-methods + impact ;; 22 + ) + ) +|# + +#| +(deftype dm-missile-target (process-drawable) + ((ring-jmod UNKNOWN 2 :offset-assert 200) + (ring-timer uint64 :offset-assert 208) + (blink-timer uint64 :offset-assert 216) + (target-sound-id uint32 :offset-assert 224) + (warn-sound-id uint32 :offset-assert 228) + ) + :method-count-assert 22 + :size-assert #xe8 + :flag-assert #x16007000e8 + (:state-methods + idle ;; 20 + lock ;; 21 + ) + ) +|# + +#| +(deftype rubble-attack-manager (task-manager) + ((missile-spawners basic :offset-assert 240) + (missile uint64 :offset-assert 248) + (missile-target uint64 :offset-assert 256) + (missile-timer uint64 :offset-assert 264) + (vehicle-handle uint64 :offset-assert 272) + (king-rider uint64 :offset-assert 280) + (talk-timer uint64 :offset-assert 288) + (played-speeches uint32 :offset-assert 296) + (first-dp-noticed? basic :offset-assert 300) + ) + :method-count-assert 35 + :size-assert #x130 + :flag-assert #x2300b00130 + (:methods + (rubble-attack-manager-method-32 () none) ;; 32 + (rubble-attack-manager-method-33 () none) ;; 33 + (rubble-attack-manager-method-34 () none) ;; 34 + ) + (:state-methods + active ;; 15 + ) + ) +|# + +;; (define-extern dm-missile-target-post function) +;; (define-extern dm-missile-target-handler function) +;; (define-extern *dm-missile-target-shadow-control* shadow-control) +;; (define-extern dm-missile-target-init-by-other function) +;; (define-extern *missile-spawners-all* array) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; vector ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern vector-cross! function) ;; (function vector vector vector vector) +;; (define-extern vector-xz-cross! function) ;; (function vector vector vector vector) +;; (define-extern vector+float! function) ;; (function vector vector float vector) +;; (define-extern vector*! function) ;; (function vector vector vector vector) +;; (define-extern vector+*! function) ;; (function vector vector vector float vector) +;; (define-extern vector-*! function) ;; (function vector vector vector float vector) +;; (define-extern vector/! function) ;; (function vector vector vector vector) +;; (define-extern vector-float*! function) ;; (function vector vector float vector) +;; (define-extern vector-average! function) ;; (function vector vector vector vector) +;; (define-extern vector+float*! function) ;; (function vector vector vector float vector) +;; (define-extern vector--float*! function) ;; (function vector vector vector float vector) +;; (define-extern vector-min! function) +;; (define-extern vector-max! function) +;; (define-extern vector-float/! function) ;; (function vector vector float vector) +;; (define-extern vector-negate! function) ;; (function vector vector vector) +;; (define-extern vector-negate-in-place! function) ;; (function vector vector) +;; (define-extern vector= function) ;; (function vector vector symbol) +;; (define-extern vector-delta function) ;; (function vector vector float) +;; (define-extern vector-seek! function) ;; (function vector vector float vector) +;; (define-extern vector-smooth-seek! function) ;; (function vector vector float vector) +;; (define-extern vector-seek-2d-xz-smooth! function) ;; (function vector vector float float vector) +;; (define-extern vector-seek-2d-yz-smooth! function) ;; (function vector vector float float vector) +;; (define-extern vector-seek-3d-smooth! function) ;; (function vector vector float float vector) +;; (define-extern seek-with-smooth function) ;; (function float float float float float float) +;; (define-extern vector-identity! function) ;; (function vector vector) +;; (define-extern vector-seconds function) ;; (function vector vector vector) +;; (define-extern vector-seconds! function) ;; (function vector vector) +;; (define-extern vector-v! function) ;; (function vector vector) +;; (define-extern vector-v+! function) ;; (function vector vector vector vector) +;; (define-extern vector-v*float+! function) ;; (function vector vector vector float vector) +;; (define-extern vector-v++! function) ;; (function vector vector vector) +;; (define-extern vector-v*float! function) ;; (function vector vector float vector) +;; (define-extern vector-v*float++! function) ;; (function vector vector float vector) +;; (define-extern vector-to-ups! function) ;; (function vector vector vector) +;; (define-extern vector-from-ups! function) ;; (function vector vector vector) +;; (define-extern vector-length function) ;; (function vector float) +;; (define-extern vector-length-squared function) ;; (function vector float) +;; (define-extern vector-xz-length-squared function) ;; (function vector float) +;; (define-extern vector-xz-length function) ;; (function vector float) +;; (define-extern vector-vector-distance function) ;; (function vector vector float) +;; (define-extern vector-vector-distance-squared function) ;; (function vector vector float) +;; (define-extern vector-vector-xz-distance function) ;; (function vector vector float) +;; (define-extern vector-vector-xy-distance function) ;; (function vector vector float) +;; (define-extern vector-vector-xz-distance-squared function) ;; (function vector vector float) +;; (define-extern vector-vector-planar-distance function) +;; (define-extern vector-normalize! function) ;; (function vector float vector) +;; (define-extern vector-normalize-ret-len! function) ;; (function vector float float) +;; (define-extern vector-normalize-copy! function) ;; (function vector vector float vector) +;; (define-extern vector-xz-normalize! function) ;; (function vector float vector) +;; (define-extern vector-xz-normalize-copy! function) ;; (function vector vector float vector) +;; (define-extern vector-length-max! function) ;; (function vector float vector) +;; (define-extern vector-xz-length-max! function) ;; (function vector float vector) +;; (define-extern vector-rotate-around-x! function) ;; (function vector vector float vector) +;; (define-extern vector-rotate-around-y! function) ;; (function vector vector float vector) +;; (define-extern vector-rotate90-around-y! function) ;; (function vector vector vector) +;; (define-extern vector-rotate-around-z! function) ;; (function vector vector float vector) +;; (define-extern rotate-y<-vector+vector function) ;; (function vector vector float) +;; (define-extern rotate-x<-vector+vector function) ;; (function vector vector float) +;; (define-extern rotate-z<-vector+vector function) ;; (function vector vector float) +;; (define-extern rotate-vector-to-vector function) +;; (define-extern vector-cvt.w.s! function) ;; (function vector vector vector) +;; (define-extern vector-cvt.s.w! function) ;; (function vector vector vector) +;; (define-extern rot-zxy-from-vector! function) ;; (function vector vector vector) +;; (define-extern rot-zyx-from-vector! function) ;; (function vector vector vector) +;; (define-extern vector-lerp! function) ;; (function vector vector vector float vector) +;; (define-extern vector-lerp-clamp! function) ;; (function vector vector vector float vector) +;; (define-extern vector4-lerp! function) ;; (function vector vector vector float vector) +;; (define-extern vector4-lerp-clamp! function) ;; (function vector vector vector float vector) +;; (define-extern vector-degi function) ;; (function vector vector vector) +;; (define-extern vector-degf function) ;; (function vector vector vector) +;; (define-extern vector-degmod function) ;; (function vector vector vector) +;; (define-extern vector-deg-diff function) ;; (function vector vector vector none) +;; (define-extern vector-deg-lerp-clamp! function) ;; (function vector vector vector float vector) +;; (define-extern vector3s-copy! function) ;; (function vector vector vector) +;; (define-extern vector3s+! function) ;; (function vector vector vector vector) +;; (define-extern vector3s*float! function) ;; (function vector vector float vector) +;; (define-extern vector3s-! function) ;; (function vector vector vector vector) +;; (define-extern vector4-add! function) ;; (function vector4 vector4 vector4 none) +;; (define-extern vector4-sub! function) ;; (function vector4 vector4 vector4 none) +;; (define-extern vector4-mul! function) ;; (function vector4 vector4 vector4 none) +;; (define-extern vector4-scale! function) ;; (function vector4 vector4 float none) +;; (define-extern vector4-madd! function) ;; (function vector4 vector4 vector4 float none) +;; (define-extern vector4-msub! function) ;; (function vector4 vector4 vector4 float none) +;; (define-extern vector4-array-add! function) ;; (function (inline-array vector4) (inline-array vector4) (inline-array vector4) int none) +;; (define-extern vector4-array-sub! function) ;; (function (inline-array vector4) (inline-array vector4) (inline-array vector4) int none) +;; (define-extern vector4-array-mul! function) ;; (function (inline-array vector4) (inline-array vector4) (inline-array vector4) int none) +;; (define-extern vector4-array-scale! function) ;; (function (inline-array vector4) (inline-array vector4) float int none) +;; (define-extern vector4-array-madd! function) ;; (function (inline-array vector4) (inline-array vector4) (inline-array vector4) float int none) +;; (define-extern vector4-array-msub! function) ;; (function (inline-array vector4) (inline-array vector4) (inline-array vector4) float int none) +;; (define-extern vector4-array-lerp! function) ;; (function (inline-array vector4) (inline-array vector4) (inline-array vector4) float int symbol) +;; (define-extern spheres-overlap? function) ;; (function sphere sphere symbol) +;; (define-extern sphere<-vector! function) ;; (function sphere vector sphere) +;; (define-extern sphere<-vector+r! function) ;; (function sphere vector float sphere) +;; (define-extern rand-vu-sphere-point! function) ;; (function vector float vector) +;; (define-extern rand-vu-sphere-point-uniform! function) +;; (define-extern vector-vector-angle-safe function) ;; (function vector vector float) +;; (define-extern vector-get-unique! function) +;; (define-extern vector-get-closest-perpendicular! function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; timer ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern timer-count function) ;; (function timer-bank uint) +;; (define-extern disable-irq function) ;; (function none) +;; (define-extern enable-irq function) ;; (function none) +;; (define-extern stopwatch-init function) ;; (function stopwatch int) +;; (define-extern stopwatch-reset function) ;; (function stopwatch int) +;; (define-extern stopwatch-start function) ;; (function stopwatch int) +;; (define-extern stopwatch-stop function) ;; (function stopwatch none) +;; (define-extern stopwatch-begin function) ;; (function stopwatch int) +;; (define-extern stopwatch-end function) ;; (function stopwatch none) +;; (define-extern stopwatch-elapsed-ticks function) ;; (function stopwatch time-frame) +;; (define-extern stopwatch-elapsed-seconds function) ;; (function stopwatch float) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; file-io ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype file-stream (basic) + ((flags uint32 :offset-assert 4) + (mode symbol :offset-assert 8) ;; guessed by decompiler + (name string :offset-assert 12) ;; guessed by decompiler + (file uint32 :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x14 + :flag-assert #x900000014 + ) +|# + +#| +(deftype file-info (basic) + ((file-type (pointer string) :offset-assert 4) ;; guessed by decompiler + (file-name basic :offset-assert 8) + (major-version uint32 :offset-assert 12) + (minor-version uint32 :offset-assert 16) + (maya-file-name basic :offset-assert 20) + (tool-debug basic :offset-assert 24) + (mdb-file-name basic :offset-assert 28) + ) + :method-count-assert 9 + :size-assert #x20 + :flag-assert #x900000020 + ) +|# + +;; (define-extern file-stream-read-string function) ;; (function file-stream string string) +;; (define-extern *file-temp-string* object) ;; string +;; (define-extern make-file-name function) ;; (function file-kind string int symbol string) +;; (define-extern make-vfile-name function) ;; (function file-kind string string) +;; (define-extern file-info-correct-version? function) ;; (function file-info file-kind int symbol) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; game-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype process-drawable (process) + ((root trsqv :offset-assert 128) ;; guessed by decompiler + (node-list cspace-array :offset-assert 132) ;; guessed by decompiler + (draw draw-control :offset-assert 136) ;; guessed by decompiler + (skel joint-control :offset-assert 140) ;; guessed by decompiler + (nav nav-control :offset-assert 144) ;; guessed by decompiler + (align align-control :offset-assert 148) ;; guessed by decompiler + (path path-control :offset-assert 152) ;; guessed by decompiler + (vol vol-control :offset-assert 156) ;; guessed by decompiler + (fact fact-info :offset-assert 160) ;; guessed by decompiler + (link actor-link-info :offset-assert 164) ;; guessed by decompiler + (part sparticle-launch-control :offset-assert 168) ;; guessed by decompiler + (water water-control :offset-assert 172) ;; guessed by decompiler + (sound ambient-sound :offset-assert 176) ;; guessed by decompiler + (carry carry-info :offset-assert 180) ;; guessed by decompiler + (rbody rigid-body-control :offset-assert 184) ;; guessed by decompiler + (state-flags state-flags :offset-assert 188) ;; guessed by decompiler + (state-time uint64 :offset-assert 192) ;; time-frame + ) + :method-count-assert 20 + :size-assert #xc8 + :flag-assert #x14005000c8 + (:methods + (process-drawable-method-14 () none) ;; 14 ;; (initialize-skeleton (_type_ skeleton-group pair) draw-control 14) + (process-drawable-method-15 () none) ;; 15 ;; (initialize-skeleton-by-name (_type_ string) draw-control 15) + (process-drawable-method-16 () none) ;; 16 ;; (apply-alignment (_type_ align-opts transformq vector) trsqv 16) + (process-drawable-method-17 () none) ;; 17 ;; (cleanup-for-death (_type_) none 17) + (process-drawable-method-18 () none) ;; 18 ;; (relocate-nav (_type_ int) none 18) + (process-drawable-method-19 () none) ;; 19 ;; (evaluate-joint-control (_type_) none 19) + ) + (:states + process-drawable-art-error ;; associated process guessed by decompiler, old: (state string process-drawable) + process-drawable-idle ;; associated process guessed by decompiler, old: (state process-drawable) + ) + ) +|# + +#| +(deftype process-drawable-reserved (process-drawable) + () + :method-count-assert 218 + :size-assert #xc8 + :flag-assert #xda005000c8 + (:methods + (process-drawable-reserved-method-20 () none) ;; 20 ;; (process-drawable-reserved-method-20 () none 20) + (process-drawable-reserved-method-21 () none) ;; 21 ;; (process-drawable-reserved-method-21 () none 21) + (process-drawable-reserved-method-22 () none) ;; 22 ;; (process-drawable-reserved-method-22 () none 22) + (process-drawable-reserved-method-23 () none) ;; 23 ;; (process-drawable-reserved-method-23 () none 23) + (process-drawable-reserved-method-24 () none) ;; 24 ;; (process-drawable-reserved-method-24 () none 24) + (process-drawable-reserved-method-25 () none) ;; 25 ;; (process-drawable-reserved-method-25 () none 25) + (process-drawable-reserved-method-26 () none) ;; 26 ;; (process-drawable-reserved-method-26 () none 26) + (process-drawable-reserved-method-27 () none) ;; 27 ;; (process-drawable-reserved-method-27 () none 27) + (process-drawable-reserved-method-28 () none) ;; 28 ;; (process-drawable-reserved-method-28 () none 28) + (process-drawable-reserved-method-29 () none) ;; 29 ;; (process-drawable-reserved-method-29 () none 29) + (process-drawable-reserved-method-30 () none) ;; 30 ;; (process-drawable-reserved-method-30 () none 30) + (process-drawable-reserved-method-31 () none) ;; 31 ;; (process-drawable-reserved-method-31 () none 31) + (process-drawable-reserved-method-32 () none) ;; 32 ;; (process-drawable-reserved-method-32 () none 32) + (process-drawable-reserved-method-33 () none) ;; 33 ;; (process-drawable-reserved-method-33 () none 33) + (process-drawable-reserved-method-34 () none) ;; 34 ;; (process-drawable-reserved-method-34 () none 34) + (process-drawable-reserved-method-35 () none) ;; 35 ;; (process-drawable-reserved-method-35 () none 35) + (process-drawable-reserved-method-36 () none) ;; 36 ;; (process-drawable-reserved-method-36 () none 36) + (process-drawable-reserved-method-37 () none) ;; 37 ;; (process-drawable-reserved-method-37 () none 37) + (process-drawable-reserved-method-38 () none) ;; 38 ;; (process-drawable-reserved-method-38 () none 38) + (process-drawable-reserved-method-39 () none) ;; 39 ;; (process-drawable-reserved-method-39 () none 39) + (process-drawable-reserved-method-40 () none) ;; 40 ;; (process-drawable-reserved-method-40 () none 40) + (process-drawable-reserved-method-41 () none) ;; 41 ;; (process-drawable-reserved-method-41 () none 41) + (process-drawable-reserved-method-42 () none) ;; 42 ;; (process-drawable-reserved-method-42 () none 42) + (process-drawable-reserved-method-43 () none) ;; 43 ;; (process-drawable-reserved-method-43 () none 43) + (process-drawable-reserved-method-44 () none) ;; 44 ;; (process-drawable-reserved-method-44 () none 44) + (process-drawable-reserved-method-45 () none) ;; 45 ;; (process-drawable-reserved-method-45 () none 45) + (process-drawable-reserved-method-46 () none) ;; 46 ;; (process-drawable-reserved-method-46 () none 46) + (process-drawable-reserved-method-47 () none) ;; 47 ;; (process-drawable-reserved-method-47 () none 47) + (process-drawable-reserved-method-48 () none) ;; 48 ;; (process-drawable-reserved-method-48 () none 48) + (process-drawable-reserved-method-49 () none) ;; 49 ;; (process-drawable-reserved-method-49 () none 49) + (process-drawable-reserved-method-50 () none) ;; 50 ;; (process-drawable-reserved-method-50 () none 50) + (process-drawable-reserved-method-51 () none) ;; 51 ;; (process-drawable-reserved-method-51 () none 51) + (process-drawable-reserved-method-52 () none) ;; 52 ;; (process-drawable-reserved-method-52 () none 52) + (process-drawable-reserved-method-53 () none) ;; 53 ;; (process-drawable-reserved-method-53 () none 53) + (process-drawable-reserved-method-54 () none) ;; 54 ;; (process-drawable-reserved-method-54 () none 54) + (process-drawable-reserved-method-55 () none) ;; 55 ;; (process-drawable-reserved-method-55 () none 55) + (process-drawable-reserved-method-56 () none) ;; 56 ;; (process-drawable-reserved-method-56 () none 56) + (process-drawable-reserved-method-57 () none) ;; 57 ;; (process-drawable-reserved-method-57 () none 57) + (process-drawable-reserved-method-58 () none) ;; 58 ;; (process-drawable-reserved-method-58 () none 58) + (process-drawable-reserved-method-59 () none) ;; 59 ;; (process-drawable-reserved-method-59 () none 59) + (process-drawable-reserved-method-60 () none) ;; 60 ;; (process-drawable-reserved-method-60 () none 60) + (process-drawable-reserved-method-61 () none) ;; 61 ;; (process-drawable-reserved-method-61 () none 61) + (process-drawable-reserved-method-62 () none) ;; 62 ;; (process-drawable-reserved-method-62 () none 62) + (process-drawable-reserved-method-63 () none) ;; 63 ;; (process-drawable-reserved-method-63 () none 63) + (process-drawable-reserved-method-64 () none) ;; 64 ;; (process-drawable-reserved-method-64 () none 64) + (process-drawable-reserved-method-65 () none) ;; 65 ;; (process-drawable-reserved-method-65 () none 65) + (process-drawable-reserved-method-66 () none) ;; 66 ;; (process-drawable-reserved-method-66 () none 66) + (process-drawable-reserved-method-67 () none) ;; 67 ;; (process-drawable-reserved-method-67 () none 67) + (process-drawable-reserved-method-68 () none) ;; 68 ;; (process-drawable-reserved-method-68 () none 68) + (process-drawable-reserved-method-69 () none) ;; 69 ;; (process-drawable-reserved-method-69 () none 69) + (process-drawable-reserved-method-70 () none) ;; 70 ;; (process-drawable-reserved-method-70 () none 70) + (process-drawable-reserved-method-71 () none) ;; 71 ;; (process-drawable-reserved-method-71 () none 71) + (process-drawable-reserved-method-72 () none) ;; 72 ;; (process-drawable-reserved-method-72 () none 72) + (process-drawable-reserved-method-73 () none) ;; 73 ;; (process-drawable-reserved-method-73 () none 73) + (process-drawable-reserved-method-74 () none) ;; 74 ;; (process-drawable-reserved-method-74 () none 74) + (process-drawable-reserved-method-75 () none) ;; 75 ;; (process-drawable-reserved-method-75 () none 75) + (process-drawable-reserved-method-76 () none) ;; 76 ;; (process-drawable-reserved-method-76 () none 76) + (process-drawable-reserved-method-77 () none) ;; 77 ;; (process-drawable-reserved-method-77 () none 77) + (process-drawable-reserved-method-78 () none) ;; 78 ;; (process-drawable-reserved-method-78 () none 78) + (process-drawable-reserved-method-79 () none) ;; 79 ;; (process-drawable-reserved-method-79 () none 79) + (process-drawable-reserved-method-80 () none) ;; 80 ;; (process-drawable-reserved-method-80 () none 80) + (process-drawable-reserved-method-81 () none) ;; 81 ;; (process-drawable-reserved-method-81 () none 81) + (process-drawable-reserved-method-82 () none) ;; 82 ;; (process-drawable-reserved-method-82 () none 82) + (process-drawable-reserved-method-83 () none) ;; 83 ;; (process-drawable-reserved-method-83 () none 83) + (process-drawable-reserved-method-84 () none) ;; 84 ;; (process-drawable-reserved-method-84 () none 84) + (process-drawable-reserved-method-85 () none) ;; 85 ;; (process-drawable-reserved-method-85 () none 85) + (process-drawable-reserved-method-86 () none) ;; 86 ;; (process-drawable-reserved-method-86 () none 86) + (process-drawable-reserved-method-87 () none) ;; 87 ;; (process-drawable-reserved-method-87 () none 87) + (process-drawable-reserved-method-88 () none) ;; 88 ;; (process-drawable-reserved-method-88 () none 88) + (process-drawable-reserved-method-89 () none) ;; 89 ;; (process-drawable-reserved-method-89 () none 89) + (process-drawable-reserved-method-90 () none) ;; 90 ;; (process-drawable-reserved-method-90 () none 90) + (process-drawable-reserved-method-91 () none) ;; 91 ;; (process-drawable-reserved-method-91 () none 91) + (process-drawable-reserved-method-92 () none) ;; 92 ;; (process-drawable-reserved-method-92 () none 92) + (process-drawable-reserved-method-93 () none) ;; 93 ;; (process-drawable-reserved-method-93 () none 93) + (process-drawable-reserved-method-94 () none) ;; 94 ;; (process-drawable-reserved-method-94 () none 94) + (process-drawable-reserved-method-95 () none) ;; 95 ;; (process-drawable-reserved-method-95 () none 95) + (process-drawable-reserved-method-96 () none) ;; 96 ;; (process-drawable-reserved-method-96 () none 96) + (process-drawable-reserved-method-97 () none) ;; 97 ;; (process-drawable-reserved-method-97 () none 97) + (process-drawable-reserved-method-98 () none) ;; 98 ;; (process-drawable-reserved-method-98 () none 98) + (process-drawable-reserved-method-99 () none) ;; 99 ;; (process-drawable-reserved-method-99 () none 99) + (process-drawable-reserved-method-100 () none) ;; 100 ;; (process-drawable-reserved-method-100 () none 100) + (process-drawable-reserved-method-101 () none) ;; 101 ;; (process-drawable-reserved-method-101 () none 101) + (process-drawable-reserved-method-102 () none) ;; 102 ;; (process-drawable-reserved-method-102 () none 102) + (process-drawable-reserved-method-103 () none) ;; 103 ;; (process-drawable-reserved-method-103 () none 103) + (process-drawable-reserved-method-104 () none) ;; 104 ;; (process-drawable-reserved-method-104 () none 104) + (process-drawable-reserved-method-105 () none) ;; 105 ;; (process-drawable-reserved-method-105 () none 105) + (process-drawable-reserved-method-106 () none) ;; 106 ;; (process-drawable-reserved-method-106 () none 106) + (process-drawable-reserved-method-107 () none) ;; 107 ;; (process-drawable-reserved-method-107 () none 107) + (process-drawable-reserved-method-108 () none) ;; 108 ;; (process-drawable-reserved-method-108 () none 108) + (process-drawable-reserved-method-109 () none) ;; 109 ;; (process-drawable-reserved-method-109 () none 109) + (process-drawable-reserved-method-110 () none) ;; 110 ;; (process-drawable-reserved-method-110 () none 110) + (process-drawable-reserved-method-111 () none) ;; 111 ;; (process-drawable-reserved-method-111 () none 111) + (process-drawable-reserved-method-112 () none) ;; 112 ;; (process-drawable-reserved-method-112 () none 112) + (process-drawable-reserved-method-113 () none) ;; 113 ;; (process-drawable-reserved-method-113 () none 113) + (process-drawable-reserved-method-114 () none) ;; 114 ;; (process-drawable-reserved-method-114 () none 114) + (process-drawable-reserved-method-115 () none) ;; 115 ;; (process-drawable-reserved-method-115 () none 115) + (process-drawable-reserved-method-116 () none) ;; 116 ;; (process-drawable-reserved-method-116 () none 116) + (process-drawable-reserved-method-117 () none) ;; 117 ;; (process-drawable-reserved-method-117 () none 117) + (process-drawable-reserved-method-118 () none) ;; 118 ;; (process-drawable-reserved-method-118 () none 118) + (process-drawable-reserved-method-119 () none) ;; 119 ;; (process-drawable-reserved-method-119 () none 119) + (process-drawable-reserved-method-120 () none) ;; 120 ;; (process-drawable-reserved-method-120 () none 120) + (process-drawable-reserved-method-121 () none) ;; 121 ;; (process-drawable-reserved-method-121 () none 121) + (process-drawable-reserved-method-122 () none) ;; 122 ;; (process-drawable-reserved-method-122 () none 122) + (process-drawable-reserved-method-123 () none) ;; 123 ;; (process-drawable-reserved-method-123 () none 123) + (process-drawable-reserved-method-124 () none) ;; 124 ;; (process-drawable-reserved-method-124 () none 124) + (process-drawable-reserved-method-125 () none) ;; 125 ;; (process-drawable-reserved-method-125 () none 125) + (process-drawable-reserved-method-126 () none) ;; 126 ;; (process-drawable-reserved-method-126 () none 126) + (process-drawable-reserved-method-127 () none) ;; 127 ;; (process-drawable-reserved-method-127 () none 127) + (process-drawable-reserved-method-128 () none) ;; 128 ;; (process-drawable-reserved-method-128 () none 128) + (process-drawable-reserved-method-129 () none) ;; 129 ;; (process-drawable-reserved-method-129 () none 129) + (process-drawable-reserved-method-130 () none) ;; 130 ;; (process-drawable-reserved-method-130 () none 130) + (process-drawable-reserved-method-131 () none) ;; 131 ;; (process-drawable-reserved-method-131 () none 131) + (process-drawable-reserved-method-132 () none) ;; 132 ;; (process-drawable-reserved-method-132 () none 132) + (process-drawable-reserved-method-133 () none) ;; 133 ;; (process-drawable-reserved-method-133 () none 133) + (process-drawable-reserved-method-134 () none) ;; 134 ;; (process-drawable-reserved-method-134 () none 134) + (process-drawable-reserved-method-135 () none) ;; 135 ;; (process-drawable-reserved-method-135 () none 135) + (process-drawable-reserved-method-136 () none) ;; 136 ;; (process-drawable-reserved-method-136 () none 136) + (process-drawable-reserved-method-137 () none) ;; 137 ;; (process-drawable-reserved-method-137 () none 137) + (process-drawable-reserved-method-138 () none) ;; 138 ;; (process-drawable-reserved-method-138 () none 138) + (process-drawable-reserved-method-139 () none) ;; 139 ;; (process-drawable-reserved-method-139 () none 139) + (process-drawable-reserved-method-140 () none) ;; 140 ;; (process-drawable-reserved-method-140 () none 140) + (process-drawable-reserved-method-141 () none) ;; 141 ;; (process-drawable-reserved-method-141 () none 141) + (process-drawable-reserved-method-142 () none) ;; 142 ;; (process-drawable-reserved-method-142 () none 142) + (process-drawable-reserved-method-143 () none) ;; 143 ;; (process-drawable-reserved-method-143 () none 143) + (process-drawable-reserved-method-144 () none) ;; 144 ;; (process-drawable-reserved-method-144 () none 144) + (process-drawable-reserved-method-145 () none) ;; 145 ;; (process-drawable-reserved-method-145 () none 145) + (process-drawable-reserved-method-146 () none) ;; 146 ;; (process-drawable-reserved-method-146 () none 146) + (process-drawable-reserved-method-147 () none) ;; 147 ;; (process-drawable-reserved-method-147 () none 147) + (process-drawable-reserved-method-148 () none) ;; 148 ;; (process-drawable-reserved-method-148 () none 148) + (process-drawable-reserved-method-149 () none) ;; 149 ;; (process-drawable-reserved-method-149 () none 149) + (process-drawable-reserved-method-150 () none) ;; 150 ;; (process-drawable-reserved-method-150 () none 150) + (process-drawable-reserved-method-151 () none) ;; 151 ;; (process-drawable-reserved-method-151 () none 151) + (process-drawable-reserved-method-152 () none) ;; 152 ;; (process-drawable-reserved-method-152 () none 152) + (process-drawable-reserved-method-153 () none) ;; 153 ;; (process-drawable-reserved-method-153 () none 153) + (process-drawable-reserved-method-154 () none) ;; 154 ;; (process-drawable-reserved-method-154 () none 154) + (process-drawable-reserved-method-155 () none) ;; 155 ;; (process-drawable-reserved-method-155 () none 155) + (process-drawable-reserved-method-156 () none) ;; 156 ;; (process-drawable-reserved-method-156 () none 156) + (process-drawable-reserved-method-157 () none) ;; 157 ;; (process-drawable-reserved-method-157 () none 157) + (process-drawable-reserved-method-158 () none) ;; 158 ;; (process-drawable-reserved-method-158 () none 158) + (process-drawable-reserved-method-159 () none) ;; 159 ;; (process-drawable-reserved-method-159 () none 159) + (process-drawable-reserved-method-160 () none) ;; 160 ;; (process-drawable-reserved-method-160 () none 160) + (process-drawable-reserved-method-161 () none) ;; 161 ;; (process-drawable-reserved-method-161 () none 161) + (process-drawable-reserved-method-162 () none) ;; 162 ;; (process-drawable-reserved-method-162 () none 162) + (process-drawable-reserved-method-163 () none) ;; 163 ;; (process-drawable-reserved-method-163 () none 163) + (process-drawable-reserved-method-164 () none) ;; 164 ;; (process-drawable-reserved-method-164 () none 164) + (process-drawable-reserved-method-165 () none) ;; 165 ;; (process-drawable-reserved-method-165 () none 165) + (process-drawable-reserved-method-166 () none) ;; 166 ;; (process-drawable-reserved-method-166 () none 166) + (process-drawable-reserved-method-167 () none) ;; 167 ;; (process-drawable-reserved-method-167 () none 167) + (process-drawable-reserved-method-168 () none) ;; 168 ;; (process-drawable-reserved-method-168 () none 168) + (process-drawable-reserved-method-169 () none) ;; 169 ;; (process-drawable-reserved-method-169 () none 169) + (process-drawable-reserved-method-170 () none) ;; 170 ;; (process-drawable-reserved-method-170 () none 170) + (process-drawable-reserved-method-171 () none) ;; 171 ;; (process-drawable-reserved-method-171 () none 171) + (process-drawable-reserved-method-172 () none) ;; 172 ;; (process-drawable-reserved-method-172 () none 172) + (process-drawable-reserved-method-173 () none) ;; 173 ;; (process-drawable-reserved-method-173 () none 173) + (process-drawable-reserved-method-174 () none) ;; 174 ;; (process-drawable-reserved-method-174 () none 174) + (process-drawable-reserved-method-175 () none) ;; 175 ;; (process-drawable-reserved-method-175 () none 175) + (process-drawable-reserved-method-176 () none) ;; 176 ;; (process-drawable-reserved-method-176 () none 176) + (process-drawable-reserved-method-177 () none) ;; 177 ;; (process-drawable-reserved-method-177 () none 177) + (process-drawable-reserved-method-178 () none) ;; 178 + (process-drawable-reserved-method-179 () none) ;; 179 + (process-drawable-reserved-method-180 () none) ;; 180 + (process-drawable-reserved-method-181 () none) ;; 181 + (process-drawable-reserved-method-182 () none) ;; 182 + (process-drawable-reserved-method-183 () none) ;; 183 + (process-drawable-reserved-method-184 () none) ;; 184 + (process-drawable-reserved-method-185 () none) ;; 185 + (process-drawable-reserved-method-186 () none) ;; 186 + (process-drawable-reserved-method-187 () none) ;; 187 + (process-drawable-reserved-method-188 () none) ;; 188 + (process-drawable-reserved-method-189 () none) ;; 189 + (process-drawable-reserved-method-190 () none) ;; 190 + (process-drawable-reserved-method-191 () none) ;; 191 + (process-drawable-reserved-method-192 () none) ;; 192 + (process-drawable-reserved-method-193 () none) ;; 193 + (process-drawable-reserved-method-194 () none) ;; 194 + (process-drawable-reserved-method-195 () none) ;; 195 + (process-drawable-reserved-method-196 () none) ;; 196 + (process-drawable-reserved-method-197 () none) ;; 197 + (process-drawable-reserved-method-198 () none) ;; 198 + (process-drawable-reserved-method-199 () none) ;; 199 + (process-drawable-reserved-method-200 () none) ;; 200 + (process-drawable-reserved-method-201 () none) ;; 201 + (process-drawable-reserved-method-202 () none) ;; 202 + (process-drawable-reserved-method-203 () none) ;; 203 + (process-drawable-reserved-method-204 () none) ;; 204 + (process-drawable-reserved-method-205 () none) ;; 205 + (process-drawable-reserved-method-206 () none) ;; 206 + (process-drawable-reserved-method-207 () none) ;; 207 + (process-drawable-reserved-method-208 () none) ;; 208 + (process-drawable-reserved-method-209 () none) ;; 209 + (process-drawable-reserved-method-210 () none) ;; 210 + (process-drawable-reserved-method-211 () none) ;; 211 + (process-drawable-reserved-method-212 () none) ;; 212 + (process-drawable-reserved-method-213 () none) ;; 213 + (process-drawable-reserved-method-214 () none) ;; 214 + (process-drawable-reserved-method-215 () none) ;; 215 + (process-drawable-reserved-method-216 () none) ;; 216 + (process-drawable-reserved-method-217 () none) ;; 217 + ) + ) +|# + +#| +(deftype attack-dir-info (structure) + ((dir vector :inline :offset-assert 0) + (xz-dir vector :inline :offset-assert 16) + (attacker-velocity vector :inline :offset-assert 32) + (pos vector :inline :offset-assert 48) + ) + :method-count-assert 9 + :size-assert #x40 + :flag-assert #x900000040 + ) +|# + +#| +(deftype attack-info (structure) + ((trans vector :inline :offset-assert 0) + (vector vector :inline :offset-assert 16) + (attacker-velocity vector :inline :offset-assert 32) + (intersection vector :inline :offset-assert 48) + (attacker handle :offset-assert 64) + (attack-time uint64 :offset-assert 72) ;; time-frame + (invinc-time uint64 :offset-assert 80) ;; time-frame + (mask attack-info-mask :offset-assert 88) ;; attack-mask + (mode symbol :offset-assert 92) ;; guessed by decompiler + (shove-back meters :offset-assert 96) + (shove-up meters :offset-assert 100) + (speed meters :offset-assert 104) + (dist meters :offset-assert 108) + (control float :offset-assert 112) + (angle symbol :offset-assert 116) ;; guessed by decompiler + (rotate-to deg :offset-assert 120) ;; degrees + (prev-state state :offset-assert 124) ;; guessed by decompiler + (id uint32 :offset-assert 128) + (count uint32 :offset-assert 132) + (penetrate-using uint64 :offset-assert 136) ;; penetrate + (damage float :offset-assert 144) + (shield-damage float :offset-assert 148) + (vehicle-damage-factor float :offset-assert 152) + (vehicle-impulse-factor float :offset-assert 156) + (knock uint8 :offset-assert 160) ;; knocked-type + (test symbol :offset-assert 164) ;; guessed by decompiler + ) + :method-count-assert 12 + :size-assert #xa8 + :flag-assert #xc000000a8 + ;; field handle is likely a value type. + (:methods + (attack-info-method-9 () none) ;; 9 ;; (attack-info-method-9 (_type_ attack-info process-drawable process-drawable) none 9) + (attack-info-method-10 () none) ;; 10 ;; (compute-intersect-info (_type_ object process-drawable process touching-shapes-entry) attack-info 10) + (attack-info-method-11 () none) ;; 11 ;; (combine! (_type_ attack-info process-drawable) attack-info 11) + ) + ) +|# + +#| +(deftype ground-tween-info (structure) + ((chan uint8 3 :offset-assert 0) ;; guessed by decompiler + (blend float 3 :offset-assert 4) ;; guessed by decompiler + (group uint32 5 :offset-assert 16) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x24 + :flag-assert #x900000024 + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; text-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype game-text (structure) + ((id text-id :offset-assert 0) ;; guessed by decompiler + (text string :offset-assert 4) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +#| +(deftype game-text-info (basic) + ((length int32 :offset-assert 4) + (language-id int32 :offset-assert 8) + (group-name string :offset-assert 12) ;; guessed by decompiler + (data game-text :dynamic :offset-assert 16) ;; guessed by decompiler + ) + :method-count-assert 10 + :size-assert #x10 + :flag-assert #xa00000010 + (:methods + (game-text-info-method-9 () none) ;; 9 ;; (lookup-text! (_type_ text-id symbol) string 9) + ) + ) +|# + +;; (define-extern *text-group-names* array) ;; (array string) +;; (define-extern *common-text-heap* object) ;; kheap +;; (define-extern *common-text* object) ;; game-text-info + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; temple-obs2 ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype tpl-gate (process-drawable) + ((alt-actor basic :offset-assert 200) + (extra-id uint32 :offset-assert 204) + (perm uint32 :offset-assert 208) + ) + :method-count-assert 26 + :size-assert #xd4 + :flag-assert #x1a006000d4 + (:state-methods + idle ;; 20 + open ;; 21 + close ;; 22 + closed ;; 23 + opened ;; 24 + die ;; 25 + ) + ) +|# + +#| +(deftype tpl-watcher-manager (process) + ((actor-group uint32 :offset-assert 124) + (actor-group-count int32 :offset-assert 128) + (within-outer-ring basic :offset-assert 132) + (within-inner-ring basic :offset-assert 136) + (ouched basic :offset-assert 140) + (bound-cam basic :offset-assert 144) + (trans vector :inline :offset-assert 156) + (state-time uint64 :offset-assert 172) + (jak-in-hint-region basic :offset-assert 180) + (watchers-vulnerable basic :offset-assert 184) + ) + :method-count-assert 17 + :size-assert #xc0 + :flag-assert #x11004000c0 + (:state-methods + idle ;; 14 + waiting ;; 15 + until-watchers-dead ;; 16 + ) + ) +|# + +#| +(deftype tpl-watcher (process-focusable) + ((manager basic :offset-assert 208) + (bob-clock uint64 :offset-assert 216) + (period-a int32 :offset-assert 224) + (period-b int32 :offset-assert 228) + (laser-sight basic :offset-assert 232) + (laser-charge-fx basic :offset-assert 236) + (los los-control :inline :offset-assert 240) + ) + :method-count-assert 33 + :size-assert #x194 + :flag-assert #x2101200194 + (:methods + (tpl-watcher-method-32 () none) ;; 32 + ) + (:state-methods + idle ;; 28 + firing ;; 29 + die ;; 30 + standing-down ;; 31 + ) + ) +|# + +#| +(deftype tpl-door-switch (process-drawable) + () + :method-count-assert 22 + :size-assert #xc8 + :flag-assert #x16005000c8 + (:state-methods + idle ;; 20 + down ;; 21 + ) + ) +|# + +#| +(deftype tpl-door-a (com-airlock) + () + :method-count-assert 30 + :size-assert #x1b0 + :flag-assert #x1e013001b0 + ) +|# + +#| +(deftype tpl-door-b (com-airlock) + () + :method-count-assert 30 + :size-assert #x1b0 + :flag-assert #x1e013001b0 + ) +|# + +#| +(deftype tpl-spinning-plat (process-drawable) + ((last-ridden uint64 :offset-assert 200) + (basal-trans vector :inline :offset-assert 208) + (no-collision-timer uint64 :offset-assert 224) + (attack-id int32 :offset-assert 232) + (my-sound uint32 :offset-assert 236) + (pitch-mod-hack float :offset-assert 240) + ) + :method-count-assert 25 + :size-assert #xf4 + :flag-assert #x19008000f4 + (:methods + (tpl-spinning-plat-method-24 () none) ;; 24 + ) + (:state-methods + flip ;; 21 + desync ;; 20 + wait ;; 22 + underfoot ;; 23 + ) + ) +|# + +#| +(deftype tpl-oracle-eye (process-drawable) + ((leye-sparta basic :offset-assert 200) + (reye-sparta basic :offset-assert 204) + ) + :method-count-assert 21 + :size-assert #xd0 + :flag-assert #x15005000d0 + (:state-methods + open ;; 20 + ) + ) +|# + +#| +(deftype tpl-banner-b (process-drawable) + () + :method-count-assert 21 + :size-assert #xc8 + :flag-assert #x15005000c8 + (:state-methods + idle ;; 20 + ) + ) +|# + +#| +(deftype tpl-elevator (elevator) + () + :method-count-assert 52 + :size-assert #x1a0 + :flag-assert #x34012001a0 + (:state-methods + running ;; 37 + ) + ) +|# + +#| +(deftype tpl-banner (process-drawable) + ((sound-id uint32 :offset-assert 200) + ) + :method-count-assert 21 + :size-assert #xcc + :flag-assert #x15005000cc + (:state-methods + idle ;; 20 + ) + ) +|# + +;; (define-extern shoot-at-jak function) +;; (define-extern tpl-watcher-manager-ehandler function) +;; (define-extern watcher-man-trans function) +;; (define-extern has-jak-visibility? function) +;; (define-extern *tpl-watcher-exploder-params* joint-exploder-static-params) +;; (define-extern watcher-bob-trans function) +;; (define-extern already-down state) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; bot-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype bot-focus-info (structure) + ((max-los-dist float :offset-assert 0) + (fproc process-focusable :offset-assert 4) ;; guessed by decompiler + (bullseye-xz-dist float :offset-assert 8) + (ry-diff float :offset-assert 12) + (my-facing-ry float :offset-assert 16) + (bullseye-ry float :offset-assert 20) + (los int8 :offset-assert 24) + (update-time uint64 :offset-assert 32) ;; time-frame + (bullseye vector :inline :offset-assert 48) + (pos vector :inline :offset-assert 64) + (my-facing-xz-dir vector :inline :offset-assert 80) + (bullseye-xz-dir vector :inline :offset-assert 96) + ) + :method-count-assert 9 + :size-assert #x70 + :flag-assert #x900000070 + ) +|# + +#| +(deftype bot-turn-info (structure) + ((facing-ry float :offset-assert 0) + (targ-ry float :offset-assert 4) + (ry-diff float :offset-assert 8) + (predicted-ry-diff float :offset-assert 12) + (predicted-targ-ry float :offset-assert 16) + (facing-dir vector :inline :offset-assert 32) + (targ-pos vector :inline :offset-assert 48) + (predicted-targ-pos vector :inline :offset-assert 64) + (src-quat quaternion :inline :offset-assert 80) + ) + :method-count-assert 9 + :size-assert #x60 + :flag-assert #x900000060 + ) +|# + +#| +(deftype bot-speech-tuning (structure) + ((fo-min int32 :offset-assert 0) + (fo-max int32 :offset-assert 4) + (fo-curve int8 :offset-assert 8) + (trans? symbol :offset-assert 12) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype bot-speech-info (structure) + ((flags uint16 :offset-assert 0) ;; speech-flags + (hold-time uint16 :offset-assert 2) + (slave-id int8 :offset-assert 4) + (tuning-id int8 :offset-assert 5) + (name string :offset-assert 8) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #xc + :flag-assert #x90000000c + ) +|# + +#| +(deftype bot-spot (structure) + ((center vector :inline :offset-assert 0) + (center-x float :offset-assert 0) + (center-y float :offset-assert 4) + (center-z float :offset-assert 8) + (inside-xz-dist float :offset-assert 12) + (blocked-xz-dist float :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x14 + :flag-assert #x900000014 + ) +|# + +#| +(deftype bot-waypoint (basic) + ((waypoint-id int16 :offset-assert 4) + (nav-mesh-index int8 :offset-assert 6) + (skip-to int8 :offset-assert 7) + (on-set (function bot none) :offset-assert 8) ;; guessed by decompiler + (on-update (function bot none) :offset-assert 12) ;; guessed by decompiler + (on-skipping-here (function bot none) :offset-assert 16) ;; guessed by decompiler + (check-too-far symbol :offset-assert 20) ;; guessed by decompiler + (warn-dist float :offset-assert 24) + (fail-dist-delta float :offset-assert 28) + ) + :method-count-assert 9 + :size-assert #x20 + :flag-assert #x900000020 + ;; field check-too-far uses ~A with a signed load. + ) +|# + +#| +(deftype bot-course (basic) + ((course-id uint8 :offset-assert 4) + (speech-count uint16 :offset-assert 6) + (spot-count uint16 :offset-assert 8) + (retry-cookie uint8 :offset-assert 10) + (too-far-warn-speeches bot-speech-list-shuffle :offset-assert 12) ;; guessed by decompiler + (too-far-fail-speeches bot-speech-list :offset-assert 16) ;; guessed by decompiler + (attack-player-speeches bot-speech-list :offset-assert 20) ;; guessed by decompiler + (default-check-too-far symbol :offset-assert 24) ;; guessed by decompiler + (waypoints (array bot-waypoint) :offset-assert 28) ;; guessed by decompiler + (speeches (inline-array bot-speech-info) :offset-assert 32) ;; guessed by decompiler + (speech-tunings (inline-array bot-speech-tuning) :offset-assert 36) ;; guessed by decompiler + (dirs (inline-array vector) :offset-assert 40) ;; guessed by decompiler + (spots (inline-array bot-spot) :offset-assert 44) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x30 + :flag-assert #x900000030 + ;; field default-check-too-far uses ~A with a signed load. + ) +|# + +#| +(deftype bot (nav-enemy) + ((bot-flags bot-flags :offset-assert 620) ;; guessed by decompiler + (min-speed float :offset-assert 624) + (max-speed float :offset-assert 628) + (follow-offset float :offset-assert 632) + (too-far-warn-dist float :offset-assert 636) + (too-far-fail-dist-delta float :offset-assert 640) + (too-far-warn-dist-default float :offset-assert 644) + (too-far-fail-dist-delta-default float :offset-assert 648) + (travel-prev-ry float :offset-assert 652) + (travel-prev-ry1 float :offset-assert 656) + (player-blocking float :offset-assert 660) + (ai-ctrl ai-task-control :offset-assert 664) ;; guessed by decompiler + (course bot-course :offset-assert 668) ;; guessed by decompiler + (waypoint bot-waypoint :offset-assert 672) ;; guessed by decompiler + (waypoint-bits waypoint-bits :offset-assert 676) ;; guessed by decompiler + (waypoint-int32a int32 :offset-assert 680) + (bot-task-bits bot-task-bits :offset-assert 684) ;; guessed by decompiler + (hit-invuln-ignore-me-delay uint32 :offset-assert 688) + (hit-invuln-focus-disable-delay uint32 :offset-assert 692) + (warn-to-fail-timeout uint32 :offset-assert 696) + (warn-min-delay uint32 :offset-assert 700) + (warn-max-delay uint32 :offset-assert 704) + (spot-color uint32 :offset-assert 708) + (waypoint-request int16 :offset-assert 712) + (hit-by-enemy-count uint16 :offset-assert 714) + (hit-by-player-count uint16 :offset-assert 716) + (notice-enemy-dist float :offset-assert 720) + (channel uint8 :offset-assert 724) ;; gui-channel + (focus-mode int8 :offset-assert 725) + (nav-mesh-index int8 :offset-assert 726) + (delay-too-far-check int8 :offset-assert 727) + (slave-id int8 :offset-assert 728) + (vehicle-seat-index int8 :offset-assert 729) + (bot-health-index int8 :offset-assert 730) + (task game-task-control :offset-assert 732) ;; guessed by decompiler + (task-node basic :offset-assert 736) + (swivel-joint-mod joint-mod :offset-assert 740) ;; guessed by decompiler + (health-handle uint64 :offset-assert 744) ;; handle + (poi-handle uint64 :offset-assert 752) ;; handle + (my-simple-focus (pointer simple-focus) :offset-assert 760) ;; guessed by decompiler + (attacker-handle uint64 :offset-assert 768) ;; handle + (scene-player-handle uint64 :offset-assert 776) ;; handle + (master-handle uint64 :offset-assert 784) ;; handle + (vehicle-handle uint64 :offset-assert 792) ;; handle + (hit-invuln-starting-time uint64 :offset-assert 800) ;; time-frame + (danger-time uint64 :offset-assert 808) ;; time-frame + (attacker-time uint64 :offset-assert 816) ;; time-frame + (started-warning-time uint64 :offset-assert 824) ;; time-frame + (waypoint-time0 uint64 :offset-assert 832) ;; time-frame + (next-too-far-warn-time uint64 :offset-assert 840) ;; time-frame + (spot bot-spot :inline :offset-assert 848) + (follow-dir vector :inline :offset-assert 880) + (focus-info bot-focus-info :inline :offset-assert 896) + ) + :method-count-assert 237 + :size-assert #x3f0 + :flag-assert #xed037003f0 + (:methods + (bot-method-190 () none) ;; 190 ;; (bot-method-190 (_type_) symbol 190) + (bot-method-191 () none) ;; 191 ;; (bot-method-191 (_type_) none 191) + (bot-method-192 () none) ;; 192 ;; (bot-method-192 (_type_) none 192) + (bot-method-193 () none) ;; 193 ;; (bot-method-193 (_type_) symbol 193) + (bot-method-194 () none) ;; 194 ;; (outside-spot-radius? (_type_ bot-spot vector symbol) symbol 194) + (bot-method-195 () none) ;; 195 ;; (attacked-by-player? (_type_ process-focusable) symbol 195) + (bot-method-196 () none) ;; 196 ;; (bot-method-196 (_type_) none 196) + (bot-method-197 () none) ;; 197 ;; (fail-mission! (_type_) none 197) + (bot-method-198 () none) ;; 198 ;; (set-cam-height! (_type_ vector) meters 198) + (bot-method-199 () none) ;; 199 ;; (cam-move-to-bot (_type_) none 199) + (bot-method-200 () none) ;; 200 ;; (fail-falling (_type_) none 200) + (bot-method-201 () none) ;; 201 ;; (set-next-focus! (_type_ enemy enemy-best-focus) none 201) + (bot-method-202 () none) ;; 202 ;; (choose-spot (_type_ int (pointer uint)) int 202) + (bot-method-203 () none) ;; 203 ;; (play-attacked-speech (_type_) none 203) + (bot-method-204 () none) ;; 204 ;; (play-too-far-warn-speech (_type_) symbol 204) + (bot-method-205 () none) ;; 205 ;; (scene-play (_type_ string symbol) symbol 205) + (bot-method-206 () none) ;; 206 ;; (play-speech (_type_ int) none 206) + (bot-method-207 () none) ;; 207 ;; (play-death-sound (_type_ string) none 207) + (bot-method-208 () none) ;; 208 ;; (bot-method-208 (_type_) symbol 208) + (bot-method-209 () none) ;; 209 ;; (channel-active? (_type_ gui-channel) symbol 209) + (bot-method-210 () none) ;; 210 ;; (init! (_type_) none 210) + (bot-method-211 () none) ;; 211 ;; (clear-speech-flags! (_type_) none 211) + (bot-method-212 () none) ;; 212 ;; (reset-warn-time! (_type_) none 212) + (bot-method-213 () none) ;; 213 ;; (go-to-waypoint! (_type_ int symbol) object 213) + (bot-method-214 () none) ;; 214 ;; (bot-method-214 (_type_) symbol 214) + (bot-method-215 () none) ;; 215 ;; (skip-waypoint (_type_) object 215) + (bot-method-216 () none) ;; 216 ;; (bot-method-216 (_type_) none 216) + (bot-method-217 () none) ;; 217 ;; (speech-ended? (_type_ int) symbol 217) + (bot-method-218 () none) ;; 218 ;; (speech-playing? (_type_ int) symbol 218) + (bot-method-219 () none) ;; 219 ;; (player-blocking-spot? (_type_ bot-spot) symbol 219) + (bot-method-220 () none) ;; 220 ;; (stop-speech (_type_ uint symbol) none 220) + (bot-method-221 () none) ;; 221 ;; (bot-method-221 (_type_) quaternion 221) + (bot-method-222 () none) ;; 222 ;; (bot-method-222 (_type_ vector) none 222) + (bot-method-223 () none) ;; 223 ;; (bot-method-223 (_type_ symbol) none 223) + (bot-method-224 () none) ;; 224 ;; (bot-check-too-far (_type_) symbol 224) + (bot-method-225 () none) ;; 225 + (bot-method-226 () none) ;; 226 + (bot-method-227 () none) ;; 227 + (bot-method-228 () none) ;; 228 + (bot-method-229 () none) ;; 229 + (bot-method-230 () none) ;; 230 + (bot-method-231 () none) ;; 231 + (bot-method-232 () none) ;; 232 + (bot-method-233 () none) ;; 233 + (bot-method-234 () none) ;; 234 + (bot-method-235 () none) ;; 235 + (bot-method-236 () none) ;; 236 + ) + ) +|# + +#| +(deftype bot-speech-list (basic) + ((flags uint8 :offset-assert 4) + (retry-cookie uint8 :offset-assert 5) + (last-local-index int16 :offset-assert 6) + (speech-indexes (array int16) :offset-assert 8) ;; guessed by decompiler + ) + :method-count-assert 11 + :size-assert #xc + :flag-assert #xb0000000c + (:methods + (bot-speech-list-method-9 () none) ;; 9 ;; (bot-speech-list-method-9 (_type_ bot (inline-array bot-speech-info) speech-flags) int 9) + (bot-speech-list-method-10 () none) ;; 10 ;; (reset-index (_type_ symbol) none 10) + ) + ) +|# + +#| +(deftype bot-speech-list-shuffle (bot-speech-list) + ((history-mask uint64 :offset-assert 16) + (history-mask-full uint64 :offset-assert 24) + ) + :method-count-assert 11 + :size-assert #x20 + :flag-assert #xb00000020 + ) +|# + +#| +(deftype bot-course-table (basic) + ((course bot-course 1 :offset-assert 4) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +;; (define-extern *bot-task-pool* ai-task-pool) ;; ai-task-pool +;; (define-extern *bot-course-table* bot-course-table) ;; bot-course-table + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; mood-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype mood-channel (structure) + ((data float 24 :offset-assert 0) ;; guessed by decompiler + (vecs vector4 6 :offset-assert 0) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x60 + :flag-assert #x900000060 + ) +|# + +#| +(deftype mood-channel-group (structure) + ((data mood-channel 4 :offset-assert 0) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x180 + :flag-assert #x900000180 + ) +|# + +#| +(deftype mood-fog (structure) + ((fog-color vector :inline :offset-assert 0) + (fog-dists vector :inline :offset-assert 16) + (fog-start meters :offset-assert 16) + (fog-end meters :offset-assert 20) + (fog-max float :offset-assert 24) + (fog-min float :offset-assert 28) + (erase-color vector :inline :offset-assert 32) + ) + :method-count-assert 9 + :size-assert #x30 + :flag-assert #x900000030 + ) +|# + +#| +(deftype mood-fog-table (structure) + ((data mood-fog 8 :offset-assert 0) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x180 + :flag-assert #x900000180 + ) +|# + +#| +(deftype mood-color (structure) + ((lgt-color vector :inline :offset-assert 0) + (amb-color vector :inline :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x20 + :flag-assert #x900000020 + ) +|# + +#| +(deftype mood-direction-table (structure) + ((data vector 4 :offset-assert 0) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x40 + :flag-assert #x900000040 + ) +|# + +#| +(deftype mood-color-table (structure) + ((data mood-color 8 :offset-assert 0) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x100 + :flag-assert #x900000100 + ) +|# + +#| +(deftype mood-sky-table (structure) + ((data vector 8 :offset-assert 0) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x80 + :flag-assert #x900000080 + ) +|# + +#| +(deftype mood-clouds (structure) + ((cloud-min float :offset-assert 0) + (cloud-max float :offset-assert 4) + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +#| +(deftype mood-weather (structure) + ((data float 2 :offset-assert 0) ;; guessed by decompiler + (cloud float :offset-assert 0) + (fog float :offset-assert 4) + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +#| +(deftype mood-iweather (structure) + ((data int32 2 :offset-assert 0) ;; guessed by decompiler + (cloud int32 :offset-assert 0) + (fog int32 :offset-assert 4) + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +#| +(deftype mood-range (structure) + ((data float 4 :offset-assert 0) ;; guessed by decompiler + (min-cloud float :offset-assert 0) + (max-cloud float :offset-assert 4) + (min-fog float :offset-assert 8) + (max-fog float :offset-assert 12) + (quad uint128 :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype mood-filters-table (structure) + ((data vector 8 :offset-assert 0) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x80 + :flag-assert #x900000080 + ) +|# + +#| +(deftype mood-table (basic) + ((mood-fog-table mood-fog-table :offset-assert 4) + (mood-color-table mood-color-table :offset-assert 8) + (mood-channel-group mood-channel-group :offset-assert 12) + (mood-direction-table mood-direction-table :offset-assert 16) + (mood-sky-table mood-sky-table :offset-assert 20) + (mood-interp-table sky-color-day :offset-assert 24) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x1c + :flag-assert #x90000001c + ) +|# + +#| +(deftype light-state (structure) + ((time float :offset-assert 0) + (fade float :offset-assert 4) + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +#| +(deftype flicker-state (structure) + ((flicker-off uint8 :offset-assert 0) + (flicker-on uint8 :offset-assert 1) + ) + :method-count-assert 9 + :size-assert #x2 + :flag-assert #x900000002 + ) +|# + +#| +(deftype florescent-state (structure) + ((value float :offset-assert 0) + (delay int8 :offset-assert 4) + (delay2 int8 :offset-assert 5) + ) + :method-count-assert 9 + :size-assert #x6 + :flag-assert #x900000006 + ) +|# + +#| +(deftype electricity-state (structure) + ((value float :offset-assert 0) + (scale float :offset-assert 4) + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +#| +(deftype pulse-state (structure) + ((pulse float :offset-assert 0) + (brightness float :offset-assert 4) + (target-brightness float :offset-assert 8) + (speed float :offset-assert 12) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype strobe-state (structure) + ((time float :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x4 + :flag-assert #x900000004 + ) +|# + +#| +(deftype flames-state (structure) + ((time float :offset-assert 0) + (index uint8 :offset-assert 4) + (length uint8 :offset-assert 5) + (height uint8 :offset-assert 6) + ) + :method-count-assert 9 + :size-assert #x7 + :flag-assert #x900000007 + ) +|# + +#| +(deftype mood-context-core (structure) + ((current-fog mood-fog :inline :offset-assert 0) + (current-sky-color vector :inline :offset-assert 48) + (current-env-color vector :inline :offset-assert 64) + (current-prt-color vector :inline :offset-assert 80) + (current-shadow-color vector :inline :offset-assert 96) + ) + :method-count-assert 9 + :size-assert #x70 + :flag-assert #x900000070 + ) +|# + +#| +(deftype mood-context-core2 (mood-context-core) + ((light-group light-group 8 :offset-assert 112) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x670 + :flag-assert #x900000670 + ) +|# + +#| +(deftype mood-context-core3 (mood-context-core2) + ((times vector 8 :offset-assert 1648) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x6f0 + :flag-assert #x9000006f0 + ) +|# + +#| +(deftype mood-context (mood-context-core3) + ((itimes vector4w 4 :offset-assert 1776) ;; guessed by decompiler + (state uint32 32 :offset-assert 1840) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x7b0 + :flag-assert #x9000007b0 + ) +|# + +#| +(deftype mood-control-work (structure) + ((color vector4w :inline :offset-assert 0) + (weather mood-weather :inline :offset-assert 16) + (iweather mood-iweather :inline :offset-assert 24) + (interp mood-weather :inline :offset-assert 32) + (index int32 4 :offset-assert 40) ;; guessed by decompiler + (color-interp float :offset-assert 56) + (color-index int32 2 :offset-assert 60) ;; guessed by decompiler + (channel-interp float :offset-assert 68) + (channel-index int32 2 :offset-assert 72) ;; guessed by decompiler + (cloud-interp float :offset-assert 80) + (cloud-index int32 2 :offset-assert 84) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x5c + :flag-assert #x90000005c + ) +|# + +#| +(deftype mood-control (mood-table) + ((mood-clouds mood-clouds :offset-assert 28) + (current-interp mood-weather :inline :offset-assert 32) + (target-interp mood-weather :inline :offset-assert 40) + (speed-interp mood-weather :inline :offset-assert 48) + (range mood-range :inline :offset-assert 64) + (time-until-random mood-weather :inline :offset-assert 80) + (time-until-random-min mood-weather :inline :offset-assert 88) + (time-until-random-max mood-weather :inline :offset-assert 96) + (current-special-interp float :offset-assert 104) + (target-special-interp float :offset-assert 108) + (rate-special-interp float :offset-assert 112) + (display-flag symbol :offset-assert 116) ;; guessed by decompiler + (overide-weather-flag symbol :offset-assert 120) ;; guessed by decompiler + (overide mood-weather :inline :offset-assert 128) + (lightning-index int32 :offset-assert 136) + (lightning-val int32 :offset-assert 140) + (lightning-time int32 :offset-assert 144) + (lightning-time2 float :offset-assert 148) + (lightning-time3 float :offset-assert 152) + (lightning-flash float :offset-assert 156) + (lightning-id sound-id :offset-assert 160) ;; guessed by decompiler + (lightning-count0 uint32 :offset-assert 164) + (lightning-count1 uint32 :offset-assert 168) + (lightning-count2 uint32 :offset-assert 172) + (rain-id sound-id :offset-assert 176) ;; guessed by decompiler + (sound-pitch float :offset-assert 180) + (fogs mood-fog-table 9 :offset-assert 184) ;; guessed by decompiler + (colors mood-color-table 3 :offset-assert 220) ;; guessed by decompiler + (channels mood-channel-group 3 :offset-assert 232) ;; guessed by decompiler + (clouds mood-clouds 9 :offset-assert 244) ;; guessed by decompiler + ) + :method-count-assert 25 + :size-assert #x118 + :flag-assert #x1900000118 + (:methods + (mood-control-method-9 () none) ;; 9 ;; (init-weather! (_type_) none 9) + (mood-control-method-10 () none) ;; 10 ;; (update-mood-weather! (_type_ float float float float) none 10) + (mood-control-method-11 () none) ;; 11 ;; (update-mood-range! (_type_ float float float float) none 11) + (mood-control-method-12 () none) ;; 12 ;; (set-time-for-random-weather! (_type_ float float) none 12) + (mood-control-method-13 () none) ;; 13 ;; (apply-mood-clouds-and-fog (_type_ mood-control-work) none 13) + (mood-control-method-14 () none) ;; 14 ;; (apply-mood-color (_type_ mood-control-work) none 14) + (mood-control-method-15 () none) ;; 15 ;; (apply-mood-channels (_type_ mood-control-work) none 15) + (mood-control-method-16 () none) ;; 16 ;; (adjust-num-clouds! (_type_ mood-control-work) none 16) + (mood-control-method-17 () none) ;; 17 ;; (gen-lightning-and-thunder! (_type_) number 17) + (mood-control-method-18 () none) ;; 18 ;; (play-or-stop-lightning! (_type_ sound-spec vector) sound-id 18) + (mood-control-method-19 () none) ;; 19 + (mood-control-method-20 () none) ;; 20 + (mood-control-method-21 () none) ;; 21 + (mood-control-method-22 () none) ;; 22 + (mood-control-method-23 () none) ;; 23 + (mood-control-method-24 () none) ;; 24 + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; fac-gunturret ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype fac-gun-tower-turret-params (structure) + ((normal-sg basic :offset-assert 0) + (explode-sg basic :offset-assert 4) + (enemy-info basic :offset-assert 8) + (idle-anim int32 :offset-assert 12) + (shoot-anim int32 :offset-assert 16) + (track-joint int32 :offset-assert 20) + (left-barrel-joint int32 :offset-assert 24) + (right-barrel-joint int32 :offset-assert 28) + (left-gun-joint int32 :offset-assert 32) + (right-gun-joint int32 :offset-assert 36) + ) + :method-count-assert 9 + :size-assert #x28 + :flag-assert #x900000028 + ) +|# + +#| +(deftype fac-gunturret (enemy) + ((left-gun-tilt-jm basic :offset-assert 552) + (right-gun-tilt-jm basic :offset-assert 556) + (params fac-gun-tower-turret-params :offset-assert 560) + (aim-pos vector :inline :offset-assert 576) + (gun-twist float :offset-assert 592) + (gun-tilt float :offset-assert 596) + (desired-twist float :offset-assert 600) + (desired-tilt float :offset-assert 604) + (los-clear basic :offset-assert 608) + (smoke-part basic :offset-assert 612) + (casing-part basic :offset-assert 616) + (flash-state basic :offset-assert 620) + (can-shoot basic :offset-assert 624) + (last-hit-time uint64 :offset-assert 632) + (init-mat matrix :inline :offset-assert 640) + (activate-distance float :offset-assert 704) + (aim-offset vector :inline :offset-assert 720) + (use-alt-barrel basic :offset-assert 736) + (rotate-sound uint32 :offset-assert 740) + (rotate-sound-playing basic :offset-assert 744) + (snd-cmd-time uint64 :offset-assert 752) + ) + :method-count-assert 161 + :size-assert #x2f8 + :flag-assert #xa1028002f8 + (:methods + (fac-gunturret-method-155 () none) ;; 155 + (fac-gunturret-method-156 () none) ;; 156 + (fac-gunturret-method-157 () none) ;; 157 + (fac-gunturret-method-158 () none) ;; 158 + (fac-gunturret-method-159 () none) ;; 159 + (fac-gunturret-method-160 () none) ;; 160 + ) + (:state-methods + hostile ;; 38 + stare ;; 37 + die ;; 40 + ) + ) +|# + +#| +(deftype fac-gun-tower-turret (fac-gunturret) + () + :method-count-assert 161 + :size-assert #x2f8 + :flag-assert #xa1028002f8 + ) +|# + +;; (define-extern *fac-gunturret-exploder-params* joint-exploder-static-params) +;; (define-extern *fac-gunturret-enemy-info* enemy-info) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; level-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype level-vis-info (basic) + ((level level :offset-assert 4) ;; guessed by decompiler + (from-level symbol :offset-assert 8) ;; guessed by decompiler + (from-bsp bsp-header :offset-assert 12) ;; guessed by decompiler + (flags vis-info-flag :offset-assert 16) + (length uint32 :offset-assert 20) + (allocated-length uint32 :offset-assert 24) + (dictionary-length uint32 :offset-assert 28) + (dictionary uint32 :offset-assert 32) + (string-block uint32 :offset-assert 36) + (ramdisk uint32 :offset-assert 40) + (vis-bits uint32 :offset-assert 44) + (current-vis-string uint32 :offset-assert 48) + (vis-string uint32 :dynamic :offset-assert 52) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x34 + :flag-assert #x900000034 + ) +|# + +#| +(deftype level-borrow-info (basic) + ((alias basic :offset-assert 4) + (borrow-size UNKNOWN 5 :offset-assert 8) + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (borrow-info UNKNOWN 5 :offset-assert 20) + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + ) + :method-count-assert 9 + :size-assert #x28 + :flag-assert #x900000028 + ) +|# + +#| +(deftype level-load-info (basic) + ((name-list symbol 6 :offset-assert 4) ;; guessed by decompiler + (name symbol :offset-assert 4) ;; guessed by decompiler + (visname symbol :offset-assert 8) ;; guessed by decompiler + (nickname symbol :offset-assert 12) ;; guessed by decompiler + (dbname symbol :offset-assert 16) ;; guessed by decompiler + (taskname symbol :offset-assert 20) ;; guessed by decompiler + (index int16 :offset-assert 28) + (task-level uint8 :offset-assert 30) + (part-engine-max uint8 :offset-assert 31) ;; int32 + (master-level basic :offset-assert 32) + (level-flags uint32 :offset-assert 36) + (packages pair :offset-assert 40) ;; guessed by decompiler + (run-packages pair :offset-assert 44) ;; guessed by decompiler + (memory-mode load-buffer-mode :offset-assert 48) ;; guessed by decompiler + (music-bank symbol :offset-assert 52) ;; guessed by decompiler + (sound-reverb float :offset-assert 56) + (extra-sound-bank pair :offset-assert 60) ;; guessed by decompiler + (mood-func symbol :offset-assert 64) ;; guessed by decompiler + (special-mood basic :offset-assert 68) + (ocean symbol :offset-assert 72) ;; guessed by decompiler + (ocean-height float :offset-assert 76) + (ocean-alpha float :offset-assert 80) + (status-cache uint16 :offset-assert 84) + (status-cache-sync uint16 :offset-assert 86) + (priority int32 :offset-assert 88) + (draw-priority float :offset-assert 92) + (base-task-mask task-mask :offset-assert 96) + (buffer-size uint32 :offset-assert 100) + (city-map-bits uint64 :offset-assert 104) + (bigmap-id bigmap-id :offset-assert 112) ;; guessed by decompiler + (continues pair :offset-assert 116) ;; guessed by decompiler + (callback-list basic :offset-assert 120) + (borrow basic :offset-assert 124) + (bottom-height meters :offset-assert 128) + (fog-height float :offset-assert 132) + (max-rain float :offset-assert 136) + (fog-mult float :offset-assert 140) + (mood-range mood-range :inline :offset-assert 144) + ) + :method-count-assert 11 + :size-assert #xa0 + :flag-assert #xb000000a0 + ;; field extra-sound-bank uses ~A with a signed load. + (:methods + (level-load-info-method-9 () none) ;; 9 + (level-load-info-method-10 () none) ;; 10 + ) + ) +|# + +#| +(deftype login-state (basic) + ((state int32 :offset-assert 4) + (pos uint32 :offset-assert 8) + (elts uint32 :offset-assert 12) + (elt drawable 16 :offset-assert 16) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x50 + :flag-assert #x900000050 + ) +|# + +#| +(deftype level (basic) + ((name symbol :offset-assert 4) ;; guessed by decompiler + (load-name symbol :offset-assert 8) ;; guessed by decompiler + (nickname symbol :offset-assert 12) ;; guessed by decompiler + (index int32 :offset-assert 16) + (status symbol :offset-assert 20) ;; guessed by decompiler + (borrow-level level 5 :offset-assert 24) ;; guessed by decompiler + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (borrow-from-level level :offset-assert 44) ;; guessed by decompiler + (heap kheap :inline :offset-assert 48) + (borrow-heap kheap 5 :offset-assert 64) ;; guessed by decompiler + (bsp bsp-header :offset-assert 144) ;; guessed by decompiler + (art-group load-dir-art-group :offset-assert 148) ;; guessed by decompiler + (info level-load-info :offset-assert 152) ;; guessed by decompiler + (texture-page texture-page 20 :offset-assert 156) ;; guessed by decompiler + (loaded-texture-page texture-page 16 :offset-assert 236) ;; guessed by decompiler + (loaded-texture-page-count int32 :offset-assert 300) + (entity entity-links-array :offset-assert 304) ;; guessed by decompiler + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (upload-size int32 20 :offset-assert 388) ;; guessed by decompiler + (inside-boxes? basic :offset-assert 468) + (display? symbol :offset-assert 472) ;; guessed by decompiler + (render? symbol :offset-assert 476) ;; guessed by decompiler + (meta-inside? symbol :offset-assert 480) ;; guessed by decompiler + (force-inside? symbol :offset-assert 484) ;; guessed by decompiler + (load-id uint32 :offset-assert 488) + (mood-context mood-context :inline :offset-assert 496) + (mood-func (function mood-context float int none) :offset-assert 2464) ;; guessed by decompiler + (mood-init (function mood-context none) :offset-assert 2468) ;; guessed by decompiler + (vis-bits pointer :offset-assert 2472) ;; guessed by decompiler + (all-visible? symbol :offset-assert 2476) ;; guessed by decompiler + (force-all-visible? symbol :offset-assert 2480) ;; guessed by decompiler + (linking symbol :offset-assert 2484) ;; guessed by decompiler + (vis-info level-vis-info 8 :offset-assert 2488) ;; guessed by decompiler + (vis-self-index int32 :offset-assert 2520) + (vis-adj-index int32 :offset-assert 2524) + (vis-buffer uint8 2048 :offset-assert 2528) ;; guessed by decompiler + (mem-usage-block memory-usage-block :offset-assert 4576) ;; guessed by decompiler + (mem-usage int32 :offset-assert 4580) + (code-memory-start pointer :offset-assert 4584) ;; guessed by decompiler + (code-memory-end pointer :offset-assert 4588) ;; guessed by decompiler + (load-start-time uint64 :offset-assert 4592) ;; time-frame + (load-stop-time uint64 :offset-assert 4600) ;; time-frame + (load-buffer uint32 2 :offset-assert 4608) ;; guessed by decompiler + (load-buffer-size uint32 :offset-assert 4616) + (load-buffer-last dgo-header :offset-assert 4620) ;; uint32 + (load-buffer-mode load-buffer-mode :offset-assert 4624) ;; guessed by decompiler + (display-start-time uint64 :offset-assert 4632) ;; time-frame + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (task-mask task-mask :offset-assert 4644) + (tfrag-gs-test uint64 :offset-assert 4648) ;; gs-test + (texture-dirty-masks texture-mask 11 :offset-assert 4656) ;; guessed by decompiler + (texture-mask texture-mask 20 :offset-assert 4832) ;; guessed by decompiler + (sky-mask texture-mask :inline :offset-assert 5152) + (tfrag-masks texture-masks-array :offset-assert 5168) ;; guessed by decompiler + (tfrag-dists pointer :offset-assert 5172) ;; guessed by decompiler + (shrub-masks texture-masks-array :offset-assert 5176) ;; guessed by decompiler + (shrub-dists pointer :offset-assert 5180) ;; guessed by decompiler + (alpha-masks texture-masks-array :offset-assert 5184) ;; guessed by decompiler + (alpha-dists pointer :offset-assert 5188) ;; guessed by decompiler + (water-masks texture-masks-array :offset-assert 5192) ;; guessed by decompiler + (water-dists pointer :offset-assert 5196) ;; guessed by decompiler + (tfrag-last-calls int32 6 :offset-assert 5200) ;; guessed by decompiler + (texture-anim-array texture-anim-array 11 :offset-assert 5224) ;; guessed by decompiler + (light-hash light-hash :offset-assert 5268) ;; guessed by decompiler + (draw-priority float :offset-assert 5272) + (draw-index int32 :offset-assert 5276) + (part-engine engine :offset-assert 5280) ;; guessed by decompiler + (user-object basic 4 :offset-assert 5284) ;; guessed by decompiler + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (loaded-text-info-count int32 :offset-assert 5300) + (loaded-text-info game-text-info 16 :offset-assert 5304) ;; guessed by decompiler + (level-type type :offset-assert 5368) ;; guessed by decompiler + (load-order uint64 :offset-assert 5376) ;; int64 + (eye-slot-lowres UNKNOWN 11 :offset-assert 5384) + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (eye-slot-highres UNKNOWN 11 :offset-assert 5395) + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + ) + :method-count-assert 30 + :size-assert #x152c + :flag-assert #x1e0000152c + (:methods + (level-method-9 () none) ;; 9 ;; (deactivate (_type_) _type_ 9) + (level-method-10 () none) ;; 10 ;; (is-object-visible? (_type_ int) symbol 10) + (level-method-11 () none) ;; 11 ;; (level-method-11 () none 11) + (level-method-12 () none) ;; 12 ;; (unload! (_type_) _type_ 12) + (level-method-13 () none) ;; 13 ;; (bsp-name (_type_) symbol 13) + (level-method-14 () none) ;; 14 ;; (compute-memory-usage! (_type_ symbol) memory-usage-block 14) + (level-method-15 () none) ;; 15 ;; (inside-boxes-check (_type_ vector) symbol 15) + (level-method-16 () none) ;; 16 ;; (update-vis! (_type_ level-vis-info uint (pointer uint8)) symbol 16) + (level-method-17 () none) ;; 17 ;; (load-continue (_type_) _type_ 17) + (level-method-18 () none) ;; 18 ;; (load-begin (_type_) _type_ 18) + (level-method-19 () none) ;; 19 ;; (login-begin (_type_) _type_ 19) + (level-method-20 () none) ;; 20 ;; (debug-print-region-splitbox (_type_ vector object) none 20) + (level-method-21 () none) ;; 21 ;; (get-art-group-by-name (_type_ string) art-group 21) + (level-method-22 () none) ;; 22 ;; (level-method-22 (_type_ symbol) int 22) + (level-method-23 () none) ;; 23 ;; (lookup-text (_type_ text-id symbol) string 23) + (level-method-24 () none) ;; 24 ;; (level-method-24 () none 24) + (level-method-25 () none) ;; 25 ;; (birth (_type_) _type_ 25) + (level-method-26 () none) ;; 26 ;; (level-status-update! (_type_ symbol) _type_ 26) + (level-method-27 () none) ;; 27 ;; (load-required-packages (_type_) _type_ 27) + (level-method-28 () none) ;; 28 ;; (init-vis-from-bsp (_type_) none 28) + (level-method-29 () none) ;; 29 ;; (vis-clear (_type_) none 29) + ) + ) +|# + +#| +(deftype level-group (basic) + ((length int32 :offset-assert 4) + (entity-link entity-links :offset-assert 16) + (border? symbol :offset-assert 20) ;; guessed by decompiler + (vis? symbol :offset-assert 24) ;; guessed by decompiler + (want-level basic :offset-assert 28) + (receiving-level basic :offset-assert 32) + (load-commands pair :offset-assert 36) ;; guessed by decompiler + (play? symbol :offset-assert 40) ;; guessed by decompiler + (target-pos vector 2 :offset-assert 48) ;; guessed by decompiler + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (camera-pos vector 2 :offset-assert 80) ;; guessed by decompiler + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (heap kheap :inline :offset-assert 112) + (sound-bank basic 6 :offset-assert 128) ;; guessed by decompiler + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (disk-load-timing? symbol :offset-assert 176) ;; guessed by decompiler + (load-level symbol :offset-assert 180) ;; guessed by decompiler + (load-size uint32 :offset-assert 184) + (load-time float :offset-assert 188) + (load-login-time float :offset-assert 192) + (draw-level-count int32 :offset-assert 196) + (draw-level level 11 :offset-assert 200) ;; guessed by decompiler + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (draw-index-map uint8 11 :offset-assert 244) ;; guessed by decompiler + (status-cache-sync uint16 :offset-assert 256) + (load-order uint64 :offset-assert 264) + (level level 11 :offset-assert 324) ;; guessed by decompiler + (data UNKNOWN 11 :offset-assert 324) + (level0 level :inline :offset-assert 324) + (level1 level :inline :offset-assert 5748) + (level2 level :inline :offset-assert 11172) + (level3 level :inline :offset-assert 16596) + (level4 level :inline :offset-assert 22020) + (level5 level :inline :offset-assert 27444) + (level6 level :inline :offset-assert 4) + ) + :method-count-assert 31 + :size-assert #xea54 + :flag-assert #x1f0000ea54 + ;; Failed to read some fields. + (:methods + (level-group-method-9 () none) ;; 9 ;; (level-get (_type_ symbol) level 9) + (level-group-method-10 () none) ;; 10 ;; (level-get-with-status (_type_ symbol) level 10) + (level-group-method-11 () none) ;; 11 ;; (get-level-by-heap-ptr-and-status (_type_ pointer symbol) level 11) + (level-group-method-12 () none) ;; 12 ;; (level-get-for-use (_type_ symbol symbol) level 12) + (level-group-method-13 () none) ;; 13 ;; (activate-levels! (_type_) int 13) + (level-group-method-14 () none) ;; 14 ;; (debug-print-entities (_type_ symbol type) none 14) + (level-group-method-15 () none) ;; 15 ;; (debug-draw-actors (_type_ symbol) none 15) + (level-group-method-16 () none) ;; 16 ;; (assign-draw-indices (_type_) none 16) + (level-group-method-17 () none) ;; 17 ;; (actors-update (_type_) none 17) + (level-group-method-18 () none) ;; 18 ;; (update-nav-meshes-method (_type_) none 18) + (level-group-method-19 () none) ;; 19 ;; (level-update (_type_) none 19) + (level-group-method-20 () none) ;; 20 ;; (level-get-target-inside (_type_) level 20) + (level-group-method-21 () none) ;; 21 ;; (alloc-levels-if-needed (_type_ symbol) none 21) + (level-group-method-22 () none) ;; 22 ;; (load-commands-set! (_type_ pair) none 22) + (level-group-method-23 () none) ;; 23 ;; (art-group-get-by-name (_type_ string (pointer uint32)) art-group 23) + (level-group-method-24 () none) ;; 24 ;; (alt-load-command-get-index (_type_ symbol int) pair 24) + (level-group-method-25 () none) ;; 25 ;; (update-vis-volumes (_type_) none 25) + (level-group-method-26 () none) ;; 26 ;; (update-vis-volumes-from-nav-mesh (_type_) none 26) + (level-group-method-27 () none) ;; 27 ;; (print-volume-sizes (_type_) none 27) + (level-group-method-28 () none) ;; 28 ;; (level-status (_type_ symbol) symbol 28) + (level-group-method-29 () none) ;; 29 ;; (load-in-progress? (_type_) symbol 29) + (level-group-method-30 () none) ;; 30 ;; (level-get-most-disposable (_type_) level 30) + ) + ) +|# + +;; (define-extern *level* level-group) ;; level-group +;; (define-extern *draw-index* object) ;; int +;; (define-extern *level-index* object) ;; int +;; (define-extern *city-mode* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; gun-dummy-art ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *gun-kg-robo-exploder-params* joint-exploder-static-params) +;; (define-extern *gun-kg-bomb-exploder-params* joint-exploder-static-params) +;; (define-extern *gun-kg-b-exploder-params* joint-exploder-static-params) +;; (define-extern *gun-kg-c-exploder-params* joint-exploder-static-params) +;; (define-extern *gun-kg-big-exploder-params* joint-exploder-static-params) +;; (define-extern *gun-kg-bonus-exploder-params* joint-exploder-static-params) +;; (define-extern *gun-rc-three-eyes-bonus-exploder-params* joint-exploder-static-params) +;; (define-extern *gun-rc-two-eyes-exploder-params* joint-exploder-static-params) +;; (define-extern *gun-rc-three-eyes-exploder-params* joint-exploder-static-params) +;; (define-extern *gun-rc-one-eye-exploder-params* joint-exploder-static-params) +;; (define-extern *gun-rc-four-eyes-exploder-params* joint-exploder-static-params) +;; (define-extern *gun-rachet-exploder-params* joint-exploder-static-params) +;; (define-extern *gun-clank-exploder-params* joint-exploder-static-params) +;; (define-extern *gun-cit-a-exploder-params* joint-exploder-static-params) ;; joint-exploder-static-params +;; (define-extern *gun-cit-b-exploder-params* joint-exploder-static-params) ;; joint-exploder-static-params +;; (define-extern *gun-cit-c-exploder-params* joint-exploder-static-params) ;; joint-exploder-static-params +;; (define-extern *gun-cit-d-exploder-params* joint-exploder-static-params) ;; joint-exploder-static-params + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; lightning-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype lightning-spec (basic) + ((name string :offset-assert 4) ;; guessed by decompiler + (flags uint16 :offset-assert 8) ;; lightning-spec-flags + (rand-func uint8 :offset-assert 10) + (adjust-distance uint8 :offset-assert 11) + (start-color rgba :offset-assert 12) ;; guessed by decompiler + (end-color rgba :offset-assert 16) ;; guessed by decompiler + (fade-to-color rgba :offset-assert 20) ;; guessed by decompiler + (fade-start-factor float :offset-assert 24) + (fade-time float :offset-assert 28) + (texture texture-id :offset-assert 32) ;; guessed by decompiler + (reduction float :offset-assert 36) + (num-points int32 :offset-assert 40) + (box-size float :offset-assert 44) + (merge-factor float :offset-assert 48) + (merge-count int32 :offset-assert 52) + (radius float :offset-assert 56) + (duration float :offset-assert 60) + (duration-rand float :offset-assert 64) + (sound basic :offset-assert 68) + (delay float :offset-assert 72) + (delay-rand float :offset-assert 76) + ) + :method-count-assert 9 + :size-assert #x50 + :flag-assert #x900000050 + ) +|# + +#| +(deftype lightning-state (structure) + ((mode uint8 :offset-assert 0) ;; lightning-mode + (counter float :offset-assert 4) + (points-to-draw int32 :offset-assert 8) + (box-size float :offset-assert 12) + (gcf-control gcf-control :inline :offset-assert 16) + (line vector-array :offset-assert 128) ;; guessed by decompiler + (meet vector-array :offset-assert 132) ;; guessed by decompiler + (path vector-array :offset-assert 136) ;; guessed by decompiler + (start-color rgba :offset-assert 140) ;; guessed by decompiler + (end-color rgba :offset-assert 144) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x94 + :flag-assert #x900000094 + ) +|# + +#| +(deftype lightning-control (basic) + ((spec lightning-spec :offset-assert 4) ;; guessed by decompiler + (process (pointer process) :offset-assert 8) ;; guessed by decompiler + (state lightning-state :inline :offset-assert 16) + ) + :method-count-assert 14 + :size-assert #xa4 + :flag-assert #xe000000a4 + (:methods + ;; (new (symbol type lightning-spec process float) _type_ 0) + (lightning-control-method-9 () none) ;; 9 ;; (change-mode (_type_ lightning-mode) lightning-mode 9) + (lightning-control-method-10 () none) ;; 10 ;; (get-mode (_type_) lightning-mode 10) + (lightning-control-method-11 () none) ;; 11 ;; (set-point! (_type_ int vector) none 11) + (lightning-control-method-12 () none) ;; 12 ;; (set-first-meet-point (_type_ vector) none 12) + (lightning-control-method-13 () none) ;; 13 ;; (set-last-meet-point (_type_ vector) none 13) + ) + ) +|# + +#| +(deftype lightning-probe-vars (basic) + ((src-joint-index uint32 :offset-assert 4) + (next-spawn-time uint64 :offset-assert 8) ;; time-frame + (last-valid-time uint64 :offset-assert 16) ;; time-frame + (point vector 2 :offset-assert 32) ;; guessed by decompiler + (start-pos vector :inline :offset-assert 32) + (end-pos vector :inline :offset-assert 48) + (probe-dirs (inline-array vector) :offset-assert 64) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x44 + :flag-assert #x900000044 + ) +|# + +;; (define-extern lookup-lightning-spec-by-name function) ;; (function string lightning-spec) +;; (define-extern *lightning-probe-vars* lightning-probe-vars) ;; lightning-probe-vars + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; desresc-path ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype desert-transport-node (structure) + ((pos vector :inline :offset-assert 0) + (is-stop? basic :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x14 + :flag-assert #x900000014 + ) +|# + +;; (define-extern *desresc-transport-path-0* array) +;; (define-extern *desresc-transport-path-1* array) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; math-camera-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype vis-gif-tag (structure) + ((fog0 uint32 :offset-assert 0) + (strip uint32 :offset-assert 4) + (regs uint32 :offset-assert 8) + (fan uint32 :offset-assert 12) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype cull-info (structure) + ((x-fact float :offset-assert 0) + (y-fact float :offset-assert 4) + (z-fact float :offset-assert 8) + (cam-radius float :offset-assert 12) + (cam-x float :offset-assert 16) + (cam-y float :offset-assert 20) + (xz-dir-ax float :offset-assert 24) + (xz-dir-az float :offset-assert 28) + (xz-dir-bx float :offset-assert 32) + (xz-dir-bz float :offset-assert 36) + (xz-cross-ab float :offset-assert 40) + (yz-dir-ay float :offset-assert 44) + (yz-dir-az float :offset-assert 48) + (yz-dir-by float :offset-assert 52) + (yz-dir-bz float :offset-assert 56) + (yz-cross-ab float :offset-assert 60) + ) + :method-count-assert 9 + :size-assert #x40 + :flag-assert #x900000040 + ) +|# + +#| +(deftype math-camera (basic) + ((d meters :offset-assert 4) + (f meters :offset-assert 8) + (fov deg :offset-assert 12) ;; degrees + (x-ratio float :offset-assert 16) + (y-ratio float :offset-assert 20) + (x-pix float :offset-assert 24) + (x-clip float :offset-assert 28) + (x-clip-ratio-in float :offset-assert 32) + (x-clip-ratio-over float :offset-assert 36) + (y-pix float :offset-assert 40) + (y-clip float :offset-assert 44) + (y-clip-ratio-in float :offset-assert 48) + (y-clip-ratio-over float :offset-assert 52) + (cull-info cull-info :inline :offset-assert 56) + (fog-start meters :offset-assert 120) + (fog-end meters :offset-assert 124) + (fog-max float :offset-assert 128) + (fog-min float :offset-assert 132) + (reset int32 :offset-assert 136) + (smooth-step float :offset-assert 140) + (smooth-t float :offset-assert 144) + (perspective matrix :inline :offset-assert 160) + (isometric matrix :inline :offset-assert 224) + (sprite-2d matrix :inline :offset-assert 288) + (sprite-2d-hvdf vector :inline :offset-assert 352) + (camera-rot matrix :inline :offset-assert 368) + (inv-camera-rot matrix :inline :offset-assert 432) + (inv-camera-rot-smooth matrix :inline :offset-assert 496) + (inv-camera-rot-smooth-from quaternion :inline :offset-assert 560) + (camera-temp matrix :inline :offset-assert 576) + (prev-camera-temp matrix :inline :offset-assert 640) + (prev-inv-camera-rot matrix :inline :offset-assert 704) + (prev-trans vector :inline :offset-assert 768) + (hmge-scale vector :inline :offset-assert 784) + (inv-hmge-scale vector :inline :offset-assert 800) + (hvdf-off vector :inline :offset-assert 816) + (guard vector :inline :offset-assert 832) + (vis-gifs vis-gif-tag 4 :offset-assert 848) ;; guessed by decompiler + (giftex uint128 :offset-assert 848) + (gifgr uint128 :offset-assert 864) + (giftex-trans uint128 :offset-assert 880) + (gifgr-trans uint128 :offset-assert 896) + (pfog0 float :offset-assert 912) + (pfog1 float :offset-assert 916) + (trans vector :inline :offset-assert 928) + (plane plane 4 :offset-assert 944) ;; guessed by decompiler + (guard-plane plane 4 :offset-assert 1008) ;; guessed by decompiler + (shrub-mat matrix :inline :offset-assert 1072) + (quat-other quaternion :inline :offset-assert 1136) + (trans-other vector :inline :offset-assert 1152) + (shrub-mat-other matrix :inline :offset-assert 1168) + (camera-temp-other matrix :inline :offset-assert 1232) + (camera-rot-other matrix :inline :offset-assert 1296) + (camera-rot-other-sky matrix :inline :offset-assert 1360) + (camera-rot-other-sprite matrix :inline :offset-assert 1424) + (inv-camera-rot-other matrix :inline :offset-assert 1488) + (plane-other plane 4 :offset-assert 1552) ;; guessed by decompiler + (guard-plane-other plane 4 :offset-assert 1616) ;; guessed by decompiler + (mirror-trans vector :inline :offset-assert 1680) + (mirror-normal vector :inline :offset-assert 1696) + (fov-correction-factor float :offset-assert 1712) + ) + :method-count-assert 9 + :size-assert #x6b4 + :flag-assert #x9000006b4 + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; prim-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype prim-vertex (structure) + ((stq vector :inline :offset-assert 0) + (nokick uint32 :offset-assert 8) + (col uint32 :offset-assert 12) + (pos vector :inline :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x20 + :flag-assert #x900000020 + ) +|# + +#| +(deftype prim-base (basic) + () + :method-count-assert 10 + :size-assert #x4 + :flag-assert #xa00000004 + (:methods + (prim-base-method-9 () none) ;; 9 + ) + ) +|# + +#| +(deftype prim-strip (prim-base) + ((flags uint32 :offset-assert 4) + (tex-name basic :offset-assert 8) + (num-verts uint16 :offset-assert 12) + (allocated-num-verts uint16 :offset-assert 14) + (tex-id uint32 :offset-assert 16) + (adnops UNKNOWN 2 :offset-assert 32) + (data0 uint64 :offset-assert 32) + (reg0 uint64 :offset-assert 40) + (data1 uint64 :offset-assert 48) + (reg1 uint64 :offset-assert 56) + (clamp uint64 :offset-assert 64) + (alpha uint64 :offset-assert 72) + (bucket int32 :offset-assert 80) + (sink uint32 :offset-assert 84) + (level basic :offset-assert 88) + (texture-index uint32 :offset-assert 92) + (data UNKNOWN :dynamic :offset-assert 96) + ) + :method-count-assert 11 + :size-assert #x60 + :flag-assert #xb00000060 + (:methods + (prim-strip-method-10 () none) ;; 10 + ) + ) +|# + +#| +(deftype prim-sink (structure) + ((vertex-count uint8 :offset-assert 0) + (control-count uint8 :offset-assert 1) + ) + :method-count-assert 9 + :size-assert #x2 + :flag-assert #x900000002 + ) +|# + +#| +(deftype prim-work (structure) + ((vertex-tmpl UNKNOWN 3 :offset-assert 0) + (control-tmpl UNKNOWN 2 :offset-assert 48) + (giftag generic-gif-tag :inline :offset-assert 80) + (call-scissor dma-packet :inline :offset-assert 96) + (call-noclip dma-packet :inline :offset-assert 112) + (shader adgif-shader :inline :offset-assert 128) + (mask vector4w :inline :offset-assert 208) + (in-verts int32 :offset-assert 224) + (num-verts int32 :offset-assert 228) + (vert-ptr prim-vertex :offset-assert 232) + (sinks UNKNOWN 68 :offset-assert 236) + ) + :method-count-assert 10 + :size-assert #x52c + :flag-assert #xa0000052c + (:methods + (prim-work-method-9 () none) ;; 9 + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; lightning ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype lightning-globals (structure) + ((gcf-buf uint16 :offset-assert 0) + (vtx-buf uint16 :offset-assert 2) + ) + :method-count-assert 9 + :size-assert #x4 + :flag-assert #x900000004 + ) +|# + +;; (define-extern *lightning-spec-id-table* object) ;; (array lightning-spec) +;; (define-extern *lightning-gcf* object) ;; gcf-control +;; (define-extern lightning-fractal-gen function) ;; (function (inline-array vector) int int float lightning-spec none) +;; (define-extern lightning-uniform-gen function) ;; (function (inline-array vector) int int float lightning-spec none) +;; (define-extern lightning-trail-uniform-gen function) ;; (function (inline-array vector) (inline-array vector) float int symbol) +;; (define-extern lightning-trail-fractal-gen function) ;; (function (inline-array vector) (inline-array vector) int int float lightning-spec none) +;; (define-extern gs-packed-rgba-lerp! function) ;; (function gs-packed-rgba rgba rgba float gs-packed-rgba) +;; (define-extern lightning-fade function) ;; (function lightning-control int :behavior process) +;; (define-extern lightning-update function) ;; (function lightning-control symbol) +;; (define-extern lightning-draw function) ;; (function dma-buffer lightning-control lightning-globals symbol) +;; (define-extern lightning-start function) ;; (function float float (pointer process)) +;; (define-extern *lightning-globals* object) ;; lightning-globals +;; (define-extern *lightning* object) ;; symbol +;; (define-extern lightning-draw-all function) ;; (function none) +;; (define-extern unlink-lightning-spec-by-heap function) ;; (function kheap none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; math-camera ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype fog-corrector (structure) + ((fog-end float :offset-assert 0) + (fog-start float :offset-assert 4) + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +;; (define-extern fog-corrector-setup function) ;; (function fog-corrector math-camera none) +;; (define-extern *math-camera-fog-correction* object) ;; fog-corrector +;; (define-extern update-math-camera function) ;; (function math-camera symbol symbol float math-camera) +;; (define-extern *math-camera* object) ;; math-camera +;; (define-extern math-cam-start-smoothing function) ;; (function float float quaternion) +;; (define-extern move-target-from-pad function) ;; (function transform int transform) +;; (define-extern transform-point-vector! function) ;; (function vector vector symbol) +;; (define-extern transform-point-qword! function) ;; (function vector4w vector symbol) +;; (define-extern transform-point-vector-scale! function) ;; (function vector vector float) +;; (define-extern reverse-transform-point! function) ;; (function vector vector vector vector none) +;; (define-extern init-for-transform function) ;; (function matrix none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; prim ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *prim-work* object) +;; (define-extern prim-engine-execute function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; waspal-mood ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype waspala-states (structure) + ((flame0 flames-state :inline :offset-assert 0) + (flame1 flames-state :inline :offset-assert 8) + ) + :method-count-assert 9 + :size-assert #xf + :flag-assert #x90000000f + ) +|# + +;; (define-extern calc-waspala-lights function) +;; (define-extern update-mood-waspala function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; font-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype char-verts (structure) + ((pos vector 4 :offset-assert 0) ;; guessed by decompiler + (color vector 4 :offset-assert 64) ;; guessed by decompiler + (tex-st vector 4 :offset-assert 128) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #xc0 + :flag-assert #x9000000c0 + ) +|# + +#| +(deftype char-color (structure) + ((color rgba 4 :offset-assert 0) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype font-context (basic) + ((origin vector :inline :offset-assert 16) + (strip-gif vector :inline :offset-assert 32) + (width float :offset-assert 48) + (height float :offset-assert 52) + (projection float :offset-assert 56) + (scale float :offset-assert 60) + (color font-color :offset-assert 64) ;; guessed by decompiler + (flags font-flags :offset-assert 68) ;; guessed by decompiler + (mat matrix :offset-assert 72) + (start-line uint32 :offset-assert 76) + (alpha float :offset-assert 80) + (max-x float :offset-assert 84) + ) + :method-count-assert 21 + :size-assert #x58 + :flag-assert #x1500000058 + (:methods + ;; (new (symbol type matrix int int float font-color font-flags) _type_ 0) + (font-context-method-9 () none) ;; 9 ;; (set-mat! (font-context matrix) font-context 9) + (font-context-method-10 () none) ;; 10 ;; (set-origin! (font-context int int) font-context 10) + (font-context-method-11 () none) ;; 11 ;; (set-depth! (font-context int) font-context 11) + (font-context-method-12 () none) ;; 12 ;; (set-w! (font-context float) font-context 12) + (font-context-method-13 () none) ;; 13 ;; (set-width! (font-context int) font-context 13) + (font-context-method-14 () none) ;; 14 ;; (set-height! (font-context int) font-context 14) + (font-context-method-15 () none) ;; 15 ;; (set-projection! (font-context float) font-context 15) + (font-context-method-16 () none) ;; 16 ;; (set-color! (font-context font-color) font-context 16) + (font-context-method-17 () none) ;; 17 ;; (set-flags! (font-context font-flags) font-context 17) + (font-context-method-18 () none) ;; 18 ;; (set-start-line! (font-context uint) font-context 18) + (font-context-method-19 () none) ;; 19 ;; (set-scale! (font-context float) font-context 19) + (font-context-method-20 () none) ;; 20 ;; (set-alpha! (font-context float) font-context 20) + ) + ) +|# + +#| +(deftype font-work (structure) + ((font-tmpl dma-gif-packet :inline :offset-assert 0) + (char-tmpl dma-gif-packet :inline :offset-assert 32) + (tex1-tmpl uint64 2 :offset-assert 64) ;; guessed by decompiler + (small-font-0-tmpl uint64 2 :offset-assert 80) ;; guessed by decompiler + (small-font-1-tmpl uint64 2 :offset-assert 96) ;; guessed by decompiler + (small-font-2-tmpl uint64 2 :offset-assert 112) ;; guessed by decompiler + (small-font-3-tmpl uint64 2 :offset-assert 128) ;; guessed by decompiler + (large-font-0-tmpl uint64 2 :offset-assert 144) ;; guessed by decompiler + (large-font-1-tmpl uint64 2 :offset-assert 160) ;; guessed by decompiler + (large-font-2-tmpl uint64 2 :offset-assert 176) ;; guessed by decompiler + (large-font-3-tmpl uint64 2 :offset-assert 192) ;; guessed by decompiler + (size1-small vector :inline :offset-assert 208) + (size2-small vector :inline :offset-assert 224) + (size3-small vector :inline :offset-assert 240) + (size1-large vector :inline :offset-assert 256) + (size2-large-0 vector :inline :offset-assert 272) + (size2-large-1 vector :inline :offset-assert 288) + (size2-large-2 vector :inline :offset-assert 304) + (size2-large-3 vector :inline :offset-assert 320) + (size3-large vector :inline :offset-assert 336) + (size2-0 vector :inline :offset-assert 352) + (size2-1 vector :inline :offset-assert 368) + (size2-2 vector :inline :offset-assert 384) + (size2-3 vector :inline :offset-assert 400) + (size-st1 vector :inline :offset-assert 416) + (size-st2 vector :inline :offset-assert 432) + (size-st3 vector :inline :offset-assert 448) + (save vector :inline :offset-assert 464) + (save-color vector 4 :offset-assert 480) ;; guessed by decompiler + (character-save-color UNKNOWN 4 :offset-assert 544) + (current-verts char-verts :inline :offset-assert 608) + (src-verts char-verts :inline :offset-assert 800) + (dest-verts char-verts :inline :offset-assert 992) + (justify vector 64 :offset-assert 1184) ;; guessed by decompiler + (color-shadow vector4w :inline :offset-assert 2208) + (color-table char-color 45 :offset-assert 2224) ;; guessed by decompiler + (current-font-0-tmpl uint64 2 :offset-assert 2944) ;; guessed by decompiler + (current-font-1-tmpl uint64 2 :offset-assert 2960) ;; guessed by decompiler + (current-font-2-tmpl uint64 2 :offset-assert 2976) ;; guessed by decompiler + (current-font-3-tmpl uint64 2 :offset-assert 2992) ;; guessed by decompiler + (last-color font-color :offset-assert 3008) ;; guessed by decompiler + (save-last-color font-color :offset-assert 3012) ;; guessed by decompiler + (character-save-last-color uint32 :offset-assert 3016) + (buf basic :offset-assert 3020) + (str-ptr uint32 :offset-assert 3024) + (flags font-flags :offset-assert 3028) ;; guessed by decompiler + (reg-save uint32 5 :offset-assert 3032) ;; guessed by decompiler + ) + :method-count-assert 10 + :size-assert #xbec + :flag-assert #xa00000bec + (:methods + (font-work-method-9 () none) ;; 9 + ) + ) +|# + +;; (define-extern *font-default-matrix* object) ;; matrix +;; (define-extern *font-work* object) ;; font-work +;; (define-extern font-set-tex0 function) ;; (function (pointer gs-tex0) texture int int int none) +;; (define-extern set-font-color function) ;; (function font-color int rgba rgba rgba int) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; time-of-day-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype palette-fade-control (structure) + ((trans vector :inline :offset-assert 0) + (fade float :offset-assert 16) + (actor-dist float :offset-assert 20) + ) + :method-count-assert 9 + :size-assert #x18 + :flag-assert #x900000018 + ) +|# + +#| +(deftype palette-fade-controls (basic) + ((control palette-fade-control 8 :offset-assert 16) ;; guessed by decompiler + ) + :method-count-assert 11 + :size-assert #x110 + :flag-assert #xb00000110 + (:methods + (palette-fade-controls-method-9 () none) ;; 9 ;; (reset! (_type_) none 9) + (palette-fade-controls-method-10 () none) ;; 10 ;; (set-fade! (_type_ int float float vector) object 10) + ) + ) +|# + +#| +(deftype time-of-day-proc (process) + ((hours int32 :offset-assert 128) + (minutes int32 :offset-assert 132) + (seconds int32 :offset-assert 136) + (old-frame uint64 :offset-assert 144) + (current-frame uint64 :offset-assert 152) + (frames uint64 :offset-assert 160) + (time-of-day float :offset-assert 168) + (old-frame-save uint64 :offset-assert 176) + (current-frame-save uint64 :offset-assert 184) + (frames-save uint64 :offset-assert 192) + (time-of-day-save float :offset-assert 200) + (time-ratio float :offset-assert 204) + (dest-time-ratio float :offset-assert 208) + (dest-time-delta float :offset-assert 212) + (sun-count int32 :offset-assert 216) + (sun sparticle-launch-control :offset-assert 220) ;; guessed by decompiler + (green-sun-count int32 :offset-assert 224) + (green-sun sparticle-launch-control :offset-assert 228) ;; guessed by decompiler + (moon-count int32 :offset-assert 232) + (moon sparticle-launch-control :offset-assert 236) ;; guessed by decompiler + (day-star-count int32 :offset-assert 240) + (day-star basic :offset-assert 244) + (day-star-enable basic :offset-assert 248) + (start-timer int32 :offset-assert 252) + ) + :method-count-assert 14 + :size-assert #x100 + :flag-assert #xe00800100 + ) +|# + +#| +(deftype time-of-day-palette (basic) + ((width int32 :offset-assert 4) + (height int32 :offset-assert 8) + (pad int32 :offset-assert 12) + (data int32 1 :offset-assert 16) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x14 + :flag-assert #x900000014 + ) +|# + +#| +(deftype time-of-day-context (basic) + ((interp float 10 :offset-assert 4) ;; guessed by decompiler + (current-fog mood-fog :inline :offset-assert 48) + (current-sky-color vector :inline :offset-assert 96) + (current-env-color vector :inline :offset-assert 112) + (current-prt-color vector :inline :offset-assert 128) + (current-shadow-color vector :inline :offset-assert 144) + (light-group light-group 8 :offset-assert 160) ;; guessed by decompiler + (current-clouds mood-clouds :inline :offset-assert 1696) + (times vector 8 :offset-assert 1712) ;; guessed by decompiler + (title-light-group light-group :inline :offset-assert 1840) + (rim-light-group light-group :inline :offset-assert 2032) + (rim-light-group2 light-group :inline :offset-assert 2224) + (rim-light-group3 light-group :inline :offset-assert 2416) + (filter vector :inline :offset-assert 2608) + (filter-color vector :inline :offset-assert 2624) + (time float :offset-assert 2640) + (target-interp float :offset-assert 2644) + (erase-color rgba :offset-assert 2648) ;; guessed by decompiler + (sky symbol :offset-assert 2652) ;; guessed by decompiler + (special-mood basic :offset-assert 2656) + (use-camera-other basic :offset-assert 2660) + (title-updated symbol :offset-assert 2664) ;; guessed by decompiler + (mode time-of-day-palette-id :offset-assert 2668) ;; guessed by decompiler + (overide-enable symbol :offset-assert 2672) ;; guessed by decompiler + (overide-palette time-of-day-palette-id :offset-assert 2676) ;; guessed by decompiler + (max-rain float :offset-assert 2680) + (fog-mult float :offset-assert 2684) + (exterior-level basic :offset-assert 2688) + (ocean-alpha float :offset-assert 2692) + ) + :method-count-assert 9 + :size-assert #xa88 + :flag-assert #x900000a88 + ) +|# + +#| +(deftype time-of-day-dma (structure) + ((outa uint32 256 :offset-assert 0) ;; guessed by decompiler + (outb uint32 256 :offset-assert 1024) ;; guessed by decompiler + (banka uint32 256 :offset-assert 2048) ;; guessed by decompiler + (bankb uint32 256 :offset-assert 3072) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x1000 + :flag-assert #x900001000 + ) +|# + +;; (define-extern *palette-fade-controls* object) ;; palette-fade-controls +;; (define-extern *time-of-day-context* time-of-day-context) ;; time-of-day-context + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; nav-mesh ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype nav-find-clear-spot-work (structure) + ((id-array UNKNOWN 16 :offset-assert 0) + (sphere-array UNKNOWN 16 :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x110 + :flag-assert #x900000110 + ) +|# + +;; (define-extern *debug-nav-control-output* object) ;; symbol +;; (define-extern *debug-nav-control* object) ;; symbol +;; (define-extern *debug-nav-mesh-output* object) ;; symbol +;; (define-extern *debug-nav-ray* object) ;; nav-ray +;; (define-extern *debug-ray-offset* object) ;; vector +;; (define-extern *debug-offset* object) ;; vector +;; (define-extern *nav-mesh-work* object) ;; nav-mesh-work +;; (define-extern *default-nav-mesh* nav-mesh) ;; nav-mesh +;; (define-extern nav-mesh-connect-from-ent function) ;; (function process-drawable symbol) +;; (define-extern connection-validate function) ;; (function connection none) +;; (define-extern connection-list-validate function) ;; (function (inline-array connection) symbol) +;; (define-extern nav-control-validate function) ;; (function process-drawable none) +;; (define-extern debug-validate-nav-poly function) ;; (function nav-mesh-link nav-poly none) +;; (define-extern vu-point-triangle-intersection? function) ;; (function vector vector vector vector symbol) +;; (define-extern poly-in-height-range? function) ;; (function nav-poly float float symbol) +;; (define-extern init-ray-local function) ;; (function nav-ray nav-poly vector vector none) +;; (define-extern init-ray-dir-local function) ;; (function nav-ray nav-poly vector vector float none) +;; (define-extern nav-ray-test function) ;; (function nav-mesh nav-poly vector vector meters) +;; (define-extern point-poly-distance-min function) ;; (function nav-mesh-work nav-poly float nav-poly float) +;; (define-extern nav-mesh-route-table-bit-index function) ;; (function nav-mesh uint int int) +;; (define-extern ray-ccw-line-segment-intersection? function) ;; (function vector vector vector vector symbol) +;; (define-extern ray-line-segment-intersection? function) ;; (function vector vector vector vector symbol) +;; (define-extern plane-height-at-xz-point function) ;; (function plane vector float) +;; (define-extern nav-normal-from-3-points function) ;; (function vector vector vector vector none) +;; (define-extern get-nav-mesh function) ;; (function actor-id nav-mesh) +;; (define-extern find-nearest-nav-mesh function) ;; (function vector float nav-mesh) +;; (define-extern point-to-poly-boundary function) ;; (function nav-poly vector vector float) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; minimap ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype minimap-texture-name-array (structure) + ((data string 35 :offset-assert 0) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x8c + :flag-assert #x90000008c + ) +|# + +#| +(deftype minimap-corner-array (structure) + ((data vector 35 :offset-assert 0) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x230 + :flag-assert #x900000230 + ) +|# + +;; engine-minimap is already defined! + +;; (define-extern *minimap-texture-name-array* object) ;; minimap-texture-name-array +;; (define-extern *minimap-corner-array* object) ;; minimap-corner-array +;; (define-extern *minimap* object) ;; minimap +;; (define-extern *minimap-class-list* object) ;; (inline-array minimap-class-node) +;; (define-extern lookup-minimap-texture-by-name function) ;; (function string string (pointer texture-page) texture) +;; (define-extern *minimap-table-entry-array* array) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; display ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern get-current-time function) ;; (function time-frame) +;; (define-extern get-integral-current-time function) ;; (function uint) +;; (define-extern get-real-current-time function) +;; (define-extern set-display function) ;; (function display display) +;; (define-extern allocate-dma-buffers function) ;; (function display display) +;; (define-extern *font-context* object) ;; font-context +;; (define-extern draw-sprite2d-xy function) ;; (function dma-buffer int int int int rgba none) +;; (define-extern draw-sprite2d-xy-absolute function) ;; (function dma-buffer int int int int rgba none) +;; (define-extern draw-quad2d function) ;; (function dma-buffer draw-context none) +;; (define-extern screen-gradient function) ;; (function dma-buffer rgba rgba rgba rgba none) +;; (define-extern vif1-handler-debug function) ;; (function int none) +;; (define-extern vif1-handler function) ;; (function none) +;; (define-extern vblank-handler function) ;; (function int) +;; (define-extern set-display-gs-state function) ;; (function dma-buffer int int int int int dma-buffer) +;; (define-extern set-display-gs-state-offset function) ;; (function dma-buffer int int int int int int int dma-buffer) +;; (define-extern reset-display-gs-state function) ;; (function display dma-buffer display) +;; (define-extern *vu0-dma-list* object) ;; dma-buffer +;; (define-extern *display* object) ;; display + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; spydroid-orig ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype spydroid-orig (nav-enemy) + ((old-y-deg float :offset-assert 620) + (diff-angle float :offset-assert 624) + (flags uint64 :offset-assert 632) + (lightning UNKNOWN 4 :offset-assert 640) + (floor float :offset-assert 656) + (explode-part basic :offset-assert 660) + ) + :method-count-assert 192 + :size-assert #x298 + :flag-assert #xc002200298 + (:state-methods + explode ;; 191 + die-falling ;; 41 + attack ;; 190 + hostile ;; 38 + notice ;; 35 + circling ;; 157 + stare ;; 37 + pacing ;; 156 + ) + ) +|# + +;; (define-extern *spydroid-orig-exploder-params* joint-exploder-static-params) +;; (define-extern *fact-info-spydroid-orig-defaults* fact-info-enemy-defaults) +;; (define-extern *spydroid-orig-nav-enemy-info* nav-enemy-info) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; connect ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype connectable (structure) + ((next0 connectable :offset-assert 0) + (prev0 connectable :offset-assert 4) + (next1 connectable :offset-assert 8) + (prev1 connectable :offset-assert 12) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype connection (connectable) + ((param0 basic :offset-assert 16) + (param1 basic :offset-assert 20) + (param2 int32 :offset-assert 24) ;; guessed by decompiler + (param3 int32 :offset-assert 28) ;; guessed by decompiler + (quad uint128 2 :offset-assert 0) ;; guessed by decompiler + ) + :method-count-assert 14 + :size-assert #x20 + :flag-assert #xe00000020 + ;; field param1 uses ~A with a signed load. field param2 uses ~A with a signed load. field param3 uses ~A with a signed load. + (:methods + (connection-method-9 () none) ;; 9 ;; (get-engine (connection) engine 9) + (connection-method-10 () none) ;; 10 ;; (get-process (connection) process 10) + (connection-method-11 () none) ;; 11 ;; (belongs-to-engine? (connection engine) symbol 11) + (connection-method-12 () none) ;; 12 ;; (belongs-to-process? (connection process) symbol 12) + (connection-method-13 () none) ;; 13 ;; (move-to-dead (connection) connection 13) + ) + ) +|# + +#| +(deftype engine (basic) + ((name symbol :offset-assert 4) ;; guessed by decompiler + (engine-time uint64 :offset-assert 16) ;; time-frame + (allocated-length int16 :offset-assert 10) + (length int16 :offset-assert 8) + (element-type type :offset-assert 12) ;; guessed by decompiler + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (data connection :dynamic :offset-assert 96) ;; guessed by decompiler + ) + :method-count-assert 26 + :size-assert #x60 + :flag-assert #x1a00000060 + (:methods + ;; (new (symbol type symbol int type) _type_ 0) + (engine-method-9 () none) ;; 9 ;; (inspect-all-connections (engine) engine 9) + (engine-method-10 () none) ;; 10 ;; (apply-to-connections (engine (function connectable none)) int 10) + (engine-method-11 () none) ;; 11 ;; (apply-to-connections-reverse (engine (function connectable none)) int 11) + (engine-method-12 () none) ;; 12 ;; (execute-connections (engine object) int 12) + (engine-method-13 () none) ;; 13 ;; (execute-connections-and-move-to-dead (engine object) int 13) + (engine-method-14 () none) ;; 14 ;; (execute-connections-if-needed (engine object) int 14) + (engine-method-15 () none) ;; 15 ;; (add-connection (engine process object object object object) connection 15) + (engine-method-16 () none) ;; 16 ;; (remove-from-process (engine process) int 16) + (engine-method-17 () none) ;; 17 ;; (remove-matching (engine (function connection engine symbol)) int 17) + (engine-method-18 () none) ;; 18 ;; (remove-all (engine) int 18) + (engine-method-19 () none) ;; 19 ;; (remove-by-param0 (engine object) int 19) + (engine-method-20 () none) ;; 20 ;; (remove-by-param1 (engine int) int 20) + (engine-method-21 () none) ;; 21 ;; (remove-by-param2 (engine int) int 21) + (engine-method-22 () none) ;; 22 ;; (get-first-connectable (engine) connectable 22) + (engine-method-23 () none) ;; 23 ;; (get-last-connectable (engine) connectable 23) + (engine-method-24 () none) ;; 24 ;; (get-next-connectable (_type_ connectable) connectable 24) + (engine-method-25 () none) ;; 25 ;; (get-prev-connectable (_type_ connectable) connectable 25) + ) + ) +|# + +#| +(deftype connection-pers (structure) + ((next connection-pers :offset-assert 0) + (key object :offset-assert 4) ;; guessed by decompiler + (update-time uint64 :offset-assert 8) ;; time-frame + (param object 4 :offset-assert 16) ;; guessed by decompiler + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (param-int32 int32 4 :offset-assert 16) ;; guessed by decompiler + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (param-int64 int64 2 :offset-assert 16) ;; guessed by decompiler + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (param-float float 4 :offset-assert 16) ;; guessed by decompiler + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (param-quat uint128 :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x20 + :flag-assert #x900000020 + ;; field key uses ~A with a signed load. + ) +|# + +#| +(deftype engine-pers (basic) + ((name symbol :offset-assert 4) ;; guessed by decompiler + (length int16 :offset-assert 8) + (allocated-length int16 :offset-assert 10) + (element-type type :offset-assert 12) ;; guessed by decompiler + (execute-time uint64 :offset-assert 16) ;; time-frame + (alive-list connection-pers :offset-assert 24) + (dead-list connection-pers :offset-assert 28) + (data connection-pers :dynamic :offset-assert 32) ;; guessed by decompiler + ) + :method-count-assert 15 + :size-assert #x20 + :flag-assert #xf00000020 + (:methods + ;; (new (symbol type symbol int type) _type_ 0) + (engine-pers-method-9 () none) ;; 9 ;; (schedule-callback (_type_ object time-frame) connection-pers 9) + (engine-pers-method-10 () none) ;; 10 ;; (kill-callback (_type_ connection-pers) none 10) + (engine-pers-method-11 () none) ;; 11 ;; (kill-by-key (_type_ object) none 11) + (engine-pers-method-12 () none) ;; 12 ;; (kill-matching (_type_ (function engine-pers connection-pers object object symbol) object object) none 12) + (engine-pers-method-13 () none) ;; 13 ;; (update-callback (_type_) none 13) + (engine-pers-method-14 () none) ;; 14 ;; (run-pending-updates! (_type_ time-frame) none 14) + ) + ) +|# + +;; (define-extern connection-process-apply function) ;; (function process (function object none) symbol) +;; (define-extern process-disconnect function) ;; (function process int) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; rope-prim-system ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *rope-prim-alpha-blend* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; trail-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype trail-node (structure) + ((next-id int16 :offset-assert 0) + (prev-id int16 :offset-assert 2) + (parent-id int16 :offset-assert 4) + (x int16 :offset-assert 6) + (y int16 :offset-assert 8) + (z int16 :offset-assert 10) + (first-conn uint16 :offset-assert 12) + (cost-from-start uint16 :offset-assert 14) + (cost-to-goal uint16 :offset-assert 16) + (flags uint8 :offset-assert 18) ;; trail-node-flag + (conn-count uint8 :offset-assert 19) + ) + :method-count-assert 12 + :size-assert #x14 + :flag-assert #xc00000014 + (:methods + (trail-node-method-9 () none) ;; 9 ;; (get-dist-score (_type_ vector) uint 9) + (trail-node-method-10 () none) ;; 10 ;; (debug-draw (_type_ int) none 10) + (trail-node-method-11 () none) ;; 11 ;; (get-position (_type_ vector) vector 11) + ) + ) +|# + +#| +(deftype trail-visgroup (structure) + ((first-node uint16 :offset-assert 0) + (node-count uint8 :offset-assert 2) + (pad uint8 :offset-assert 3) + ) + :method-count-assert 9 + :size-assert #x4 + :flag-assert #x900000004 + ) +|# + +#| +(deftype trail-blocker (structure) + ((plane plane :inline :offset-assert 0) + (center vector :inline :offset-assert 16) + (radius-squared float :offset-assert 28) + ) + :method-count-assert 9 + :size-assert #x20 + :flag-assert #x900000020 + ) +|# + +#| +(deftype trail-conn (structure) + ((head-id uint16 :offset-assert 0) + (tail-id uint16 :offset-assert 2) + (flags uint8 :offset-assert 4) ;; conn-flag + (visgroup-id uint8 :offset-assert 5) + (cost uint16 :offset-assert 6) + ) + :method-count-assert 10 + :size-assert #x8 + :flag-assert #xa00000008 + (:methods + (trail-conn-method-9 () none) ;; 9 ;; (debug-draw (_type_ trail-graph int) none 9) + ) + ) +|# + +#| +(deftype trail-conn-hash-cell (structure) + ((first-conn uint16 :offset-assert 0) + (conn-count uint8 :offset-assert 2) + (pov-count uint8 :offset-assert 3) + (first-pov uint16 :offset-assert 4) + ) + :method-count-assert 9 + :size-assert #x6 + :flag-assert #x900000006 + ) +|# + +#| +(deftype trail-conn-search (structure) + ((best-conn-id int32 :offset-assert 0) + (best-dist float :offset-assert 4) + (src-pos vector :offset-assert 8) + (conn-pos vector :offset-assert 12) + (debug-cells-searched int32 :offset-assert 16) + (debug-conns-searched int32 :offset-assert 20) + (bounds bounding-box4w :inline :offset-assert 32) + (cell-quads qword 2 :offset-assert 64) ;; guessed by decompiler + (conn-quads qword 7 :offset-assert 96) ;; guessed by decompiler + (cell-bits vector16ub 2 :offset-assert 64) ;; guessed by decompiler + (conn-bits UNKNOWN 2 :offset-assert 96) + ) + :method-count-assert 9 + :size-assert #xd0 + :flag-assert #x9000000d0 + ) +|# + +#| +(deftype trail-conn-hash (basic) + ((cell-width meters :offset-assert 4) + (origin vector :inline :offset-assert 16) + (cell (inline-array trail-conn-hash-cell) :offset-assert 32) ;; guessed by decompiler + (conn-ids (pointer uint16) :offset-assert 36) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x28 + :flag-assert #x900000028 + ) +|# + +#| +(deftype trail-cached-search-info (structure) + ((goal-conn-id int16 :offset-assert 0) + (orig-goal-pos vector :inline :offset-assert 16) + (conn-goal-pos vector :inline :offset-assert 32) + ) + :method-count-assert 9 + :size-assert #x30 + :flag-assert #x900000030 + ) +|# + +#| +(deftype trail-cached-start-pov (structure) + ((last-updated uint64 :offset-assert 0) + (pov-can-see-start uint64 :offset-assert 8) + (next-node-id int32 :offset-assert 16) + (start-pos vector :inline :offset-assert 32) + ) + :method-count-assert 9 + :size-assert #x30 + :flag-assert #x900000030 + ) +|# + +#| +(deftype trail-graph (basic) + ((mode uint8 :offset-assert 4) + (search-id uint32 :offset-assert 8) + (open-head-id int16 :offset-assert 12) + (goal-conn-id int16 :offset-assert 14) + (goal-node-id int16 :offset-assert 16) + (over-under-thresh float :offset-assert 20) + (over-under-above-too-low float :offset-assert 24) + (over-under-below-too-high float :offset-assert 28) + (pov-node-count uint16 :offset-assert 32) + (node-count uint16 :offset-assert 34) + (conn-count uint16 :offset-assert 36) + (blocker-count uint16 :offset-assert 38) + (conn-mask uint8 :offset-assert 40) + (node (inline-array trail-node) :offset-assert 44) ;; guessed by decompiler + (conn (inline-array trail-conn) :offset-assert 48) ;; guessed by decompiler + (blocker uint32 :offset-assert 52) + (conn-ids (pointer uint16) :offset-assert 56) ;; guessed by decompiler + (visgroup (inline-array trail-conn-hash-cell) :offset-assert 60) ;; guessed by decompiler + (visnode-ids (pointer uint16) :offset-assert 64) ;; guessed by decompiler + (conn-hash trail-conn-hash :offset-assert 68) ;; guessed by decompiler + (cell-pov-bit-arrays uint32 :offset-assert 72) + (pov-can-see-goal uint64 :offset-assert 80) + (cached-start-pov trail-cached-start-pov :inline :offset-assert 96) + (orig-start-pos vector :inline :offset-assert 144) + (orig-goal-pos vector :inline :offset-assert 160) + (conn-start-pos vector :inline :offset-assert 176) + (conn-goal-pos vector :inline :offset-assert 192) + (open-quads qword 6 :offset-assert 208) ;; guessed by decompiler + (closed-quads qword 6 :offset-assert 304) ;; guessed by decompiler + (open-bits UNKNOWN 2 :offset-assert 208) + (closed-bits UNKNOWN 2 :offset-assert 304) + ) + :method-count-assert 34 + :size-assert #x190 + :flag-assert #x2200000190 + (:methods + (trail-graph-method-9 () none) ;; 9 ;; (trail-graph-method-9 (_type_ int) none 9) + (trail-graph-method-10 () none) ;; 10 ;; (trail-graph-method-10 (_type_ int) none 10) + (trail-graph-method-11 () none) ;; 11 ;; (trail-graph-method-11 (_type_ int int) trail-node 11) + (trail-graph-method-12 () none) ;; 12 ;; (debug-draw (_type_) none 12) + (trail-graph-method-13 () none) ;; 13 ;; (debug-draw-cell (_type_ int) none 13) + (trail-graph-method-14 () none) ;; 14 ;; (debug-draw-path (_type_ int (pointer uint16) vector vector rgba float) symbol 14) + (trail-graph-method-15 () none) ;; 15 ;; (do-path (_type_ vector vector) int 15) + (trail-graph-method-16 () none) ;; 16 ;; (trail-graph-method-16 () none 16) + (trail-graph-method-17 () none) ;; 17 ;; (get-node-location-by-id (_type_ uint vector) vector 17) + (trail-graph-method-18 () none) ;; 18 ;; (get-path-to-root (_type_ (pointer uint16) int (pointer int32) (pointer float)) int 18) + (trail-graph-method-19 () none) ;; 19 ;; (trail-graph-method-19 (_type_ int int) symbol 19) + (trail-graph-method-20 () none) ;; 20 ;; (try-initialize (_type_) symbol 20) + (trail-graph-method-21 () none) ;; 21 ;; (update-node-flags-for-conn (_type_ int trail-node-flag trail-node-flag) none 21) + (trail-graph-method-22 () none) ;; 22 ;; (trail-graph-method-22 (_type_ int) none 22) + (trail-graph-method-23 () none) ;; 23 ;; (reset-search-state (_type_) none 23) + (trail-graph-method-24 () none) ;; 24 ;; (get-next-to-explore (_type_) int 24) + (trail-graph-method-25 () none) ;; 25 ;; (trail-graph-method-25 (_type_ trail-conn-search int int) none 25) + (trail-graph-method-26 () none) ;; 26 ;; (do-search! (_type_ vector vector trail-cached-search-info) none 26) + (trail-graph-method-27 () none) ;; 27 ;; (do-some-work (_type_) int 27) + (trail-graph-method-28 () none) ;; 28 ;; (run-until-done-or-timeout (_type_ int) none 28) + (trail-graph-method-29 () none) ;; 29 + (trail-graph-method-30 () none) ;; 30 + (trail-graph-method-31 () none) ;; 31 + (trail-graph-method-32 () none) ;; 32 + (trail-graph-method-33 () none) ;; 33 + ) + ) +|# + +;; (define-extern *trail-graph* object) ;; trail-graph + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; mood-tables2 ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *overide-mood-color-table* object) ;; mood-color-table +;; (define-extern *overide-mood-fog-table* object) ;; mood-fog-table +;; (define-extern init-overide-table function) ;; (function mood-table none) +;; (define-extern *overide-table* mood-table) ;; mood-table +;; (define-extern print-mood-tables function) ;; (function none) +;; (define-extern desaturate-mood-colors function) ;; (function float float float none) +;; (define-extern desaturate-mood-fog function) ;; (function (pointer mood-fog-table) float float none) +;; (define-extern *debug-mood-color-table* object) +;; (define-extern *debug-mood-fog-table* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; dp-bipedal-shot ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype dp-bipedal-grenade-shot (projectile-bounce) + ((blast-radius float :offset-assert 548) + ) + :method-count-assert 44 + :size-assert #x228 + :flag-assert #x2c01b00228 + (:state-methods + impact ;; 22 + dissipate ;; 21 + ) + ) +|# + +;; (define-extern spawn-dp-bipedal-grenade function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; volcanox-texture ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *volcanox-warp-texture-anim-array* texture-anim-array) +;; (define-extern volcanox-warp-texture-anim-func function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; hanga-init ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern hanga-login function) +;; (define-extern hanga-activate function) +;; (define-extern hanga-deactivate function) +;; (define-extern *hanga-water-texture-anim-array* texture-anim-array) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; minimap-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype minimap-table-entry (structure) + ((corner vector :inline :offset-assert 0) + (level-name basic :offset-assert 16) + (tex-name basic :offset-assert 20) + (meters-per-texel float :offset-assert 24) + (pos-scale float :offset-assert 28) + (min-inv-scale float :offset-assert 32) + (max-inv-scale float :offset-assert 36) + (switch-immediate basic :offset-assert 40) + ) + :method-count-assert 9 + :size-assert #x2c + :flag-assert #x90000002c + ) +|# + +#| +(deftype minimap-class-node (structure) + ((default-position vector :inline :offset-assert 0) + (flags minimap-flag :offset-assert 16) + (name basic :offset-assert 20) + (icon-xy vector2ub :inline :offset-assert 24) + (class uint16 :offset-assert 26) ;; minimap-class + (scale float :offset-assert 28) + (color rgba :offset-assert 32) ;; guessed by decompiler + ) + :method-count-assert 10 + :size-assert #x24 + :flag-assert #xa00000024 + (:methods + (minimap-class-node-method-9 () none) ;; 9 + ) + ) +|# + +#| +(deftype connection-minimap (connection-pers) + ((next connection-minimap :offset-assert 0) ;; connection-pers + (handle uint64 :offset-assert 8) ;; handle + (position vector :offset-assert 16) ;; object + (alpha float :offset-assert 20) + (flags minimap-flag :offset-assert 24) + (class minimap-class-node :offset-assert 28) + (node uint16 :offset-assert 32) + (edge-ry int16 :offset-assert 34) ;; float + (last-world-pos vector :inline :offset-assert 48) + (last-relative-pos vector :inline :offset-assert 64) + ) + :method-count-assert 9 + :size-assert #x50 + :flag-assert #x900000050 + ;; field key uses ~A with a signed load. + ) +|# + +#| +(deftype engine-minimap (engine-pers) + ((alive-list connection-minimap :offset-assert 24) + (dead-list connection-minimap :offset-assert 28) + ) + :method-count-assert 15 + :size-assert #x20 + :flag-assert #xf00000020 + ) +|# + +#| +(deftype minimap-trail (structure) + ((used-by connection-minimap :offset-assert 0) + (search-id uint32 :offset-assert 4) + (node-count int16 :offset-assert 8) + (goal-node-id int32 :offset-assert 12) + (node-path-dist float :offset-assert 16) + (last-updated uint64 :offset-assert 24) + (cached-info trail-cached-search-info :inline :offset-assert 32) + (node-id uint16 64 :offset-assert 80) ;; guessed by decompiler + ) + :method-count-assert 11 + :size-assert #xd0 + :flag-assert #xb000000d0 + (:methods + (minimap-trail-method-9 () none) ;; 9 ;; (get-distance-with-path (_type_ vector vector) float 9) + (minimap-trail-method-10 () none) ;; 10 ;; (reset (_type_) none 10) + ) + ) +|# + +#| +(deftype minimap-draw-work (structure) + ((buf dma-buffer :offset-assert 0) ;; guessed by decompiler + (justify-right symbol :offset-assert 4) ;; guessed by decompiler + (global-flags uint32 :offset-assert 8) + (draw-pos vector4w :inline :offset-assert 16) + (mat matrix :inline :offset-assert 32) + (corner vector 4 :offset-assert 96) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #xa0 + :flag-assert #x9000000a0 + ) +|# + +#| +(deftype minimap (structure) + ((draw-tmpl dma-gif-packet :inline :offset-assert 0) + (draw2-tmpl dma-gif-packet :inline :offset-assert 32) + (draw3-tmpl dma-gif-packet :inline :offset-assert 64) + (draw4-tmpl dma-gif-packet :inline :offset-assert 96) + (sprite-tmpl dma-gif-packet :inline :offset-assert 128) + (adgif-tmpl dma-gif-packet :inline :offset-assert 160) + (color vector4w :inline :offset-assert 192) + (offset vector :inline :offset-assert 208) + (minimap-corner vector :inline :offset-assert 224) + (last-name string :offset-assert 240) ;; guessed by decompiler + (last-tex basic :offset-assert 244) + (target-inv-scale float :offset-assert 248) + (map-bits uint64 :offset-assert 256) + (level level :offset-assert 264) ;; guessed by decompiler + (ctywide level :offset-assert 268) ;; guessed by decompiler + (meters-per-texel float :offset-assert 272) + (pos-scale float :offset-assert 276) + (min-inv-scale float :offset-assert 280) + (max-inv-scale float :offset-assert 284) + (inv-scale float :offset-assert 212) + (map-inv-scale float :offset-assert 288) + (icon-inv-scale float :offset-assert 292) + (fade float :offset-assert 220) + (engine engine-minimap :offset-assert 296) ;; guessed by decompiler + (engine-key uint32 :offset-assert 300) + (trail minimap-trail 6 :offset-assert 304) ;; guessed by decompiler + (race-tex texture :offset-assert 1552) ;; guessed by decompiler + (race-scale float :offset-assert 1556) + (race-level level :offset-assert 1560) ;; guessed by decompiler + (sprite2-tmpl dma-gif-packet :inline :offset-assert 1568) + (race-corner vector :inline :offset-assert 1600) + (goal-time float :offset-assert 1616) + (frustum-alpha float :offset-assert 1620) + ) + :method-count-assert 28 + :size-assert #x658 + :flag-assert #x1c00000658 + (:methods + (minimap-method-9 () none) ;; 9 ;; (debug-draw (_type_) none 9) + (minimap-method-10 () none) ;; 10 ;; (get-trail-for-connection (_type_ connection-minimap symbol) minimap-trail 10) + (minimap-method-11 () none) ;; 11 ;; (get-icon-draw-pos (_type_ connection-minimap minimap-trail vector float vector) symbol 11) + (minimap-method-12 () none) ;; 12 ;; (add-icon! (_type_ process uint int vector int) connection-minimap 12) + (minimap-method-13 () none) ;; 13 ;; (free-trail-by-connection (_type_ connection-minimap) none 13) + (minimap-method-14 () none) ;; 14 ;; (update-trails (_type_) none 14) + (minimap-method-15 () none) ;; 15 ;; (draw-1 (_type_ dma-buffer vector4w symbol) none 15) + (minimap-method-16 () none) ;; 16 ;; (draw-connection (_type_ minimap-draw-work connection-minimap) none 16) + (minimap-method-17 () none) ;; 17 ;; (draw-frustum-1 (_type_ minimap-draw-work connection-minimap) none 17) + (minimap-method-18 () none) ;; 18 ;; (draw-frustum-2 (_type_ minimap-draw-work connection-minimap) none 18) + (minimap-method-19 () none) ;; 19 ;; (sub-draw-1-2 (_type_ minimap-draw-work) none 19) + (minimap-method-20 () none) ;; 20 ;; (update! (_type_) symbol 20) + (minimap-method-21 () none) ;; 21 ;; (sub-draw-1-1 (_type_ minimap-draw-work) none 21) + (minimap-method-22 () none) ;; 22 ;; (set-color (_type_ vector) none 22) + (minimap-method-23 () none) ;; 23 ;; (draw-racer-2 (_type_ minimap-draw-work connection-minimap) none 23) + (minimap-method-24 () none) ;; 24 ;; (draw-sprite2 (_type_ dma-buffer vector4w symbol) none 24) + (minimap-method-25 () none) ;; 25 ;; (set-race-texture (_type_ texture float level) none 25) + (minimap-method-26 () none) ;; 26 ;; (draw-racer-1 (_type_ minimap-draw-work connection-minimap float float float) none 26) + (minimap-method-27 () none) ;; 27 ;; (set-race-corner (_type_ float float) none 27) + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; nav-mesh-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype nav-mesh-work-debug (structure) + ((debug-vec1 vector :inline :offset-assert 0) + (debug-vec2 vector :inline :offset-assert 16) + (debug-vec3 vector :inline :offset-assert 32) + (debug-vec4 vector :inline :offset-assert 48) + (debug-vec5 vector :inline :offset-assert 64) + (debug-vec6 vector :inline :offset-assert 80) + (debug-vec7 vector :inline :offset-assert 96) + (debug-vec8 vector :inline :offset-assert 112) + (debug-vec9 vector :inline :offset-assert 128) + (debug-vec10 vector :inline :offset-assert 144) + (debug-vec11 vector :inline :offset-assert 160) + (debug-vec12 vector :inline :offset-assert 176) + (sphere-array sphere 16 :offset-assert 192) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x1c0 + :flag-assert #x9000001c0 + ) +|# + +#| +(deftype nav-mesh-work (structure) + ((vert0-table int8 4 :offset-assert 0) ;; guessed by decompiler + (vert1-table int8 4 :offset-assert 4) ;; guessed by decompiler + (edge-mask-table uint8 3 :offset-assert 8) ;; guessed by decompiler + (pad0 uint32 :offset-assert 12) + (deg-to-rad float :offset-assert 16) + (rad-to-deg float :offset-assert 20) + (nav-poly-min-dist float :offset-assert 24) + (nav-poly-epsilon float :offset-assert 28) + (sphere-array sphere 16 :offset-assert 32) ;; guessed by decompiler + (debug nav-mesh-work-debug :offset-assert 288) + (work-struct-in-scratch int8 :offset-assert 292) + (mesh-struct-in-scratch int8 :offset-assert 293) + (polys-in-scratch int8 :offset-assert 294) + (mesh nav-mesh :offset-assert 296) ;; guessed by decompiler + (nav basic :offset-assert 300) + (poly0 nav-poly :offset-assert 304) ;; guessed by decompiler + (poly1 nav-poly :offset-assert 308) ;; guessed by decompiler + (poly-id int32 :offset-assert 312) + ) + :method-count-assert 9 + :size-assert #x13c + :flag-assert #x90000013c + ) +|# + +#| +(deftype nav-mesh-link (structure) + ((id uint32 :offset-assert 0) + (dest-mesh-id uint32 :offset-assert 4) + (src-link-poly-id uint8 :offset-assert 8) + (src-switch-poly-id uint8 :offset-assert 9) + (dest-link-poly-id uint8 :offset-assert 10) + (dest-switch-poly-id uint8 :offset-assert 11) + (dest-mesh nav-mesh :offset-assert 12) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype nav-poly (structure) + ((data uint8 64 :offset-assert 0) ;; guessed by decompiler + (vertex vector 4 :offset-assert 0) ;; guessed by decompiler + (vertex0 vector :inline :offset-assert 0) + (vertex1 vector :inline :offset-assert 16) + (vertex2 vector :inline :offset-assert 32) + (vertex3 vector :inline :offset-assert 48) + (id uint8 :offset-assert 12) + (pat uint8 :offset-assert 13) + (vertex-count uint8 :offset-assert 14) + (link uint8 :offset-assert 15) + (adj-poly uint8 4 :offset-assert 28) ;; guessed by decompiler + (adj-poly0 uint8 :offset-assert 28) + (adj-poly1 uint8 :offset-assert 29) + (adj-poly2 uint8 :offset-assert 30) + (adj-poly3 uint8 :offset-assert 31) + (min-y float :offset-assert 44) + (max-y float :offset-assert 60) + ) + :method-count-assert 9 + :size-assert #x40 + :flag-assert #x900000040 + ) +|# + +#| +(deftype nav-vertex (vector) + () + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype nav-sphere (structure) + ((trans sphere :inline :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype nav-ray (structure) + ((current-pos vector :inline :offset-assert 0) + (dir vector :inline :offset-assert 16) + (dest-pos vector :inline :offset-assert 32) + (current-poly nav-poly :offset-assert 48) + (next-poly nav-poly :offset-assert 52) + (len meters :offset-assert 56) + (last-edge int8 :offset-assert 60) + (ignore uint8 :offset-assert 61) + (terminated symbol :offset-assert 64) ;; guessed by decompiler + (reached-dest symbol :offset-assert 68) ;; guessed by decompiler + (hit-boundary symbol :offset-assert 72) ;; guessed by decompiler + (hit-gap symbol :offset-assert 76) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x50 + :flag-assert #x900000050 + ) +|# + +#| +(deftype nav-route-portal (structure) + ((vertex nav-vertex 2 :offset-assert 0) ;; guessed by decompiler + (next-poly nav-poly :offset-assert 32) + (edge-index int8 :offset-assert 36) + ) + :method-count-assert 9 + :size-assert #x25 + :flag-assert #x900000025 + ) +|# + +#| +(deftype nav-find-poly-parms (structure) + ((point vector :inline :offset-assert 0) + (y-threshold float :offset-assert 16) + (ignore uint8 :offset-assert 20) + (poly nav-poly :offset-assert 24) + (dist float :offset-assert 28) + (point-inside? symbol :offset-assert 32) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x24 + :flag-assert #x900000024 + ) +|# + +#| +(deftype clamp-travel-vector-to-mesh-return-info (structure) + ((found-boundary symbol :offset-assert 0) ;; guessed by decompiler + (intersection vector :inline :offset-assert 16) + (boundary-normal vector :inline :offset-assert 32) + (prev-normal vector :inline :offset-assert 48) + (next-normal vector :inline :offset-assert 64) + (poly nav-poly :offset-assert 80) + (gap-poly nav-poly :offset-assert 84) + (edge int8 :offset-assert 88) + (ignore uint8 :offset-assert 89) + (vert-prev vector :inline :offset-assert 96) + (vert-0 vector :inline :offset-assert 112) + (vert-1 vector :inline :offset-assert 128) + (vert-next vector :inline :offset-assert 144) + ) + :method-count-assert 9 + :size-assert #xa0 + :flag-assert #x9000000a0 + ) +|# + +#| +(deftype nav-mesh (basic) + ((work nav-mesh-work :offset-assert 4) + (poly-array (inline-array nav-poly) :offset-assert 8) ;; guessed by decompiler + (static-sphere-count uint8 :offset-assert 12) + (poly-count uint8 :offset-assert 13) + (nav-control-count uint8 :offset-assert 14) + (max-nav-control-count uint8 :offset-assert 15) + (route (pointer nav-poly) :offset-assert 16) ;; guessed by decompiler + (poly-hash grid-hash :offset-assert 20) ;; guessed by decompiler + (nav-control-array (inline-array nav-control) :offset-assert 24) ;; guessed by decompiler + (sphere-hash sphere-hash :offset-assert 28) ;; guessed by decompiler + (static-sphere (inline-array sphere) :offset-assert 32) ;; guessed by decompiler + (user-list engine :offset-assert 36) ;; guessed by decompiler + (next-nav-mesh surface :offset-assert 40) ;; guessed by decompiler + (prev-nav-mesh surface :offset-assert 44) ;; guessed by decompiler + (bounds sphere :inline :offset-assert 48) ;; vector :inline + (origin vector :inline :offset-assert 48) + (entity entity :offset-assert 64) ;; guessed by decompiler + (link-array (inline-array nav-mesh-link) :offset-assert 68) ;; guessed by decompiler + (link-count uint8 :offset-assert 72) + (flags nav-mesh-flag :offset-assert 73) + (pad1 uint8 2 :offset-assert 74) ;; guessed by decompiler + (nearest-y-threshold meters :offset-assert 76) + (water-max-height meters :offset-assert 80) + (pad2 uint32 7 :offset-assert 84) ;; guessed by decompiler + ) + :method-count-assert 50 + :size-assert #x70 + :flag-assert #x3200000070 + ;; field nav-mesh-flag is likely a value type. + (:methods + (nav-mesh-method-9 () none) ;; 9 ;; (debug-draw (_type_) none 9) + (nav-mesh-method-10 () none) ;; 10 ;; (nav-mesh-method-10 (_type_ vector vector nav-poly) nav-poly 10) + (nav-mesh-method-11 () none) ;; 11 ;; (poly-centroid (_type_ nav-poly vector) vector 11) + (nav-mesh-method-12 () none) ;; 12 ;; (poly-centroid-local (_type_ nav-poly vector) vector 12) + (nav-mesh-method-13 () none) ;; 13 ;; (lookup-poly-on-route-to-target (_type_ nav-poly nav-poly) nav-poly 13) + (nav-mesh-method-14 () none) ;; 14 ;; (get-route-portal (_type_ nav-poly nav-poly nav-route-portal) (inline-array nav-vertex) 14) + (nav-mesh-method-15 () none) ;; 15 ;; (initialize-mesh! (_type_) none 15) + (nav-mesh-method-16 () none) ;; 16 ;; (move-along-nav-ray! (_type_ nav-ray) none 16) + (nav-mesh-method-17 () none) ;; 17 ;; (try-move-along-ray (_type_ nav-poly vector vector float) meters 17) + (nav-mesh-method-18 () none) ;; 18 ;; (clamp-vector-to-mesh-cross-gaps (_type_ vector nav-poly vector float symbol clamp-travel-vector-to-mesh-return-info) none 18) + (nav-mesh-method-19 () none) ;; 19 ;; (clamp-vector-to-mesh-no-gaps (_type_ vector nav-poly vector clamp-travel-vector-to-mesh-return-info) none 19) + (nav-mesh-method-20 () none) ;; 20 ;; (set-normals-from-adjacent-bounds (_type_ clamp-travel-vector-to-mesh-return-info) none 20) + (nav-mesh-method-21 () none) ;; 21 ;; (find-adjacent-bounds-one (_type_ vector nav-poly int int) none 21) + (nav-mesh-method-22 () none) ;; 22 ;; (compute-bounding-box-from-vertices (_type_ vector vector) none 22) + (nav-mesh-method-23 () none) ;; 23 ;; (init-from-entity (_type_ entity-nav-mesh) none 23) + (nav-mesh-method-24 () none) ;; 24 ;; (handle-birth (_type_) none 24) + (nav-mesh-method-25 () none) ;; 25 ;; (handle-kill (_type_) none 25) + (nav-mesh-method-26 () none) ;; 26 ;; (update-navigation (_type_) none 26) + (nav-mesh-method-27 () none) ;; 27 ;; (new-nav-control (_type_ process-drawable) nav-control 27) + (nav-mesh-method-28 () none) ;; 28 ;; (remove-nav-control (_type_ nav-control) none 28) + (nav-mesh-method-29 () none) ;; 29 ;; (add-process-drawable-to-navmesh (_type_ process-drawable symbol) none 29) + (nav-mesh-method-30 () none) ;; 30 ;; (remove-process-drawable (_type_ process-drawable) none 30) + (nav-mesh-method-31 () none) ;; 31 ;; (change-to (_type_ process-drawable) none 31) + (nav-mesh-method-32 () none) ;; 32 ;; (link-by-id (_type_ uint) symbol 32) + (nav-mesh-method-33 () none) ;; 33 ;; (unlink-by-id (_type_ uint) symbol 33) + (nav-mesh-method-34 () none) ;; 34 ;; (nav-mesh-method-34 (_type_ vector vector float) float 34) + (nav-mesh-method-35 () none) ;; 35 ;; (nav-mesh-method-35 (_type_ vector vector float) float 35) + (nav-mesh-method-36 () none) ;; 36 ;; (debug-draw-poly (_type_ nav-poly rgba) none 36) + (nav-mesh-method-37 () none) ;; 37 ;; (point-in-poly? (_type_ nav-poly vector) symbol 37) + (nav-mesh-method-38 () none) ;; 38 ;; (nav-mesh-method-38 (_type_ nav-poly vector vector vector (pointer nav-poly)) vector 38) + (nav-mesh-method-39 () none) ;; 39 ;; (closest-point-on-boundary (_type_ nav-poly vector vector) none 39) + (nav-mesh-method-40 () none) ;; 40 ;; (project-point-onto-plane-of-poly-local (_type_ nav-poly vector vector vector) none 40) + (nav-mesh-method-41 () none) ;; 41 ;; (project-point-into-poly-2d (_type_ nav-poly vector vector) none 41) + (nav-mesh-method-42 () none) ;; 42 ;; (find-poly-containing-point-local (_type_ nav-find-poly-parms) nav-poly 42) + (nav-mesh-method-43 () none) ;; 43 ;; (find-nearest-poly-to-point-local (_type_ nav-find-poly-parms) nav-find-poly-parms 43) + (nav-mesh-method-44 () none) ;; 44 ;; (is-in-mesh-local? (_type_ vector float float) symbol 44) + (nav-mesh-method-45 () none) ;; 45 ;; (link-to-other-mesh (_type_ nav-mesh-link) symbol 45) + (nav-mesh-method-46 () none) ;; 46 ;; (unlink-mesh (_type_ nav-mesh-link) none 46) + (nav-mesh-method-47 () none) ;; 47 + (nav-mesh-method-48 () none) ;; 48 + (nav-mesh-method-49 () none) ;; 49 + ) + ) +|# + +;; (define-extern vector-normalize-unity! function) ;; (function vector vector) +;; (define-extern vector-normalize-unity-copy! function) ;; (function vector vector vector) +;; (define-extern debug-validate-current-poly function) ;; (function symbol) +;; (define-extern init-ray function) ;; (function nav-ray none) +;; (define-extern point-poly-intersection? function) ;; (function nav-mesh vector int (inline-array vector) symbol) +;; (define-extern nav-sphere-from-cam function) ;; (function none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; bigmap-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype bigmap-image (structure) + ((clut-offset uint32 :offset-assert 0) + (image-offset uint32 :offset-assert 4) + (width uint32 :offset-assert 8) + (height uint32 :offset-assert 12) + (data uint8 1 :offset-assert 16) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x11 + :flag-assert #x900000011 + ) +|# + +#| +(deftype bigmap-info (vector) + ((scale float :offset-assert 8) + (inv-scale float :offset-assert 12) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype bigmap-info-array (structure) + ((data bigmap-info 24 :offset-assert 0) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x180 + :flag-assert #x900000180 + ) +|# + +#| +(deftype bigmap (basic) + ((drawing-flag symbol :offset-assert 4) ;; guessed by decompiler + (loading-flag symbol :offset-assert 8) ;; guessed by decompiler + (bigmap-index uint32 :offset-assert 12) + (bigmap-image external-art-buffer :offset-assert 16) ;; guessed by decompiler + (tpage external-art-buffer :offset-assert 20) ;; guessed by decompiler + (tpage2 basic :offset-assert 24) + (progress-minimap texture-page :offset-assert 28) ;; guessed by decompiler + (progress-minimap2 basic :offset-assert 32) + (load-index uint32 :offset-assert 36) + (x0 int32 :offset-assert 40) + (y0 int32 :offset-assert 44) + (x1 int32 :offset-assert 48) + (y1 int32 :offset-assert 52) + (goal-time float :offset-assert 56) + (sprite-tmpl dma-gif-packet :inline :offset-assert 64) + (draw-tmpl dma-gif-packet :inline :offset-assert 96) + (adgif-tmpl dma-gif-packet :inline :offset-assert 128) + (offset vector :inline :offset-assert 160) + (size float :offset-assert 168) + (scale float :offset-assert 172) + (scroll vector :inline :offset-assert 176) + (pos vector4w :inline :offset-assert 192) + (color vector4w :inline :offset-assert 208) + (corner vector 4 :offset-assert 224) ;; guessed by decompiler + (auto-save-icon-flag symbol :offset-assert 288) ;; guessed by decompiler + (global-flags uint32 :offset-assert 292) + ) + :method-count-assert 23 + :size-assert #x128 + :flag-assert #x1700000128 + (:methods + ;; (new (symbol type) _type_ 0) + (bigmap-method-9 () none) ;; 9 ;; (initialize (_type_) none 9) + (bigmap-method-10 () none) ;; 10 ;; (update (_type_) none 10) + (bigmap-method-11 () none) ;; 11 ;; (draw (_type_ int int int int) int 11) + (bigmap-method-12 () none) ;; 12 ;; (handle-cpad-inputs (_type_) int 12) + (bigmap-method-13 () none) ;; 13 ;; (compress-all (_type_) int 13) + (bigmap-method-14 () none) ;; 14 ;; (enable-drawing (_type_) none 14) + (bigmap-method-15 () none) ;; 15 ;; (disable-drawing (_type_) int 15) + (bigmap-method-16 () none) ;; 16 ;; (dump-to-file (_type_) file-stream 16) + (bigmap-method-17 () none) ;; 17 ;; (set-pos! (_type_ vector) int 17) + (bigmap-method-18 () none) ;; 18 ;; (decompress-current-masks! (_type_) int 18) + (bigmap-method-19 () none) ;; 19 ;; (compress-current-masks! (_type_) int 19) + (bigmap-method-20 () none) ;; 20 ;; (set-enable-from-position! (_type_) int 20) + (bigmap-method-21 () none) ;; 21 ;; (maybe-fill-for-position (_type_ int int) int 21) + (bigmap-method-22 () none) ;; 22 ;; (texture-upload-dma (_type_ dma-buffer (pointer uint32) int int int gs-psm) none 22) + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; settings-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype user-setting-data (structure) + ((border-mode symbol :offset-assert 0) ;; guessed by decompiler + (process-mask process-mask :offset-assert 4) ;; guessed by decompiler + (language uint8 :offset-assert 12) ;; language-enum + (movie (pointer process) :offset-assert 32) ;; guessed by decompiler + (talking (pointer process) :offset-assert 36) ;; guessed by decompiler + (spooling (pointer process) :offset-assert 40) ;; guessed by decompiler + (hint (pointer process) :offset-assert 44) ;; guessed by decompiler + (ambient (pointer process) :offset-assert 48) ;; guessed by decompiler + (video-mode symbol :offset-assert 52) ;; guessed by decompiler + (aspect-ratio symbol :offset-assert 56) ;; guessed by decompiler + (auto-save symbol :offset-assert 64) ;; guessed by decompiler + (bg-r float :offset-assert 68) + (bg-g float :offset-assert 72) + (bg-b float :offset-assert 76) + (bg-a float :offset-assert 80) + (bg-a-speed float :offset-assert 84) + (bg-a-force float :offset-assert 88) + (blur-a float :offset-assert 92) + (blur-a-speed float :offset-assert 96) + (allow-progress symbol :offset-assert 100) ;; guessed by decompiler + (allow-pause symbol :offset-assert 104) ;; guessed by decompiler + (movie-name symbol :offset-assert 120) ;; guessed by decompiler + (weather symbol :offset-assert 124) ;; guessed by decompiler + (task-mask task-mask :offset-assert 140) + (duck symbol :offset-assert 148) ;; guessed by decompiler + (attack symbol :offset-assert 152) ;; guessed by decompiler + (gun symbol :offset-assert 156) ;; guessed by decompiler + (board symbol :offset-assert 160) ;; guessed by decompiler + (jump symbol :offset-assert 164) ;; guessed by decompiler + (speed-mult float :offset-assert 168) + (features uint64 :offset-assert 176) ;; game-feature + (vehicles uint64 :offset-assert 184) + (sfx-volume float :offset-assert 192) + (sfx-volume-movie float :offset-assert 196) + (music-volume float :offset-assert 200) + (music-volume-movie float :offset-assert 204) + (dialog-volume float :offset-assert 208) + (dialog-volume-talker float :offset-assert 212) + (ambient-volume float :offset-assert 216) + (ambient-volume-movie float :offset-assert 220) + (dynamic-ambient-volume float :offset-assert 224) + (talker-volume float :offset-assert 228) + (sound-flava uint8 :offset-assert 232) + (sound-flava-priority float :offset-assert 236) + (mode-sound-bank uint32 :offset-assert 240) ;; guessed by decompiler + (sound-excitement float :offset-assert 244) + (sound-reverb float :offset-assert 248) + (stereo-mode int32 :offset-assert 252) + (music symbol :offset-assert 256) ;; guessed by decompiler + (sound-stinger int32 :offset-assert 260) + (spool-anim spool-anim :offset-assert 264) ;; guessed by decompiler + (sound-mode uint32 :offset-assert 268) + (task-manager (pointer process) :offset-assert 272) ;; guessed by decompiler + (task symbol :offset-assert 276) ;; guessed by decompiler + (airlock symbol :offset-assert 280) ;; guessed by decompiler + (minimap uint16 :offset-assert 284) ;; guessed by decompiler + (sound-tune uint32 :offset-assert 288) + (allow-continue symbol :offset-assert 292) ;; guessed by decompiler + (subtitle symbol :offset-assert 304) ;; guessed by decompiler + (doorway symbol :offset-assert 308) ;; guessed by decompiler + (gem symbol :offset-assert 312) ;; guessed by decompiler + (half-speed symbol :offset-assert 316) ;; guessed by decompiler + (gun-buoy symbol :offset-assert 320) ;; guessed by decompiler + (double-jump symbol :offset-assert 324) ;; guessed by decompiler + (pilot symbol :offset-assert 328) ;; guessed by decompiler + (pilot-exit symbol :offset-assert 332) ;; guessed by decompiler + (pilot-death basic :offset-assert 336) + (speech-control symbol :offset-assert 340) ;; guessed by decompiler + (vehicle-hijacking symbol :offset-assert 344) ;; guessed by decompiler + (darkjak symbol :offset-assert 348) ;; guessed by decompiler + (lightjak basic :offset-assert 352) + (endlessfall symbol :offset-assert 356) ;; guessed by decompiler + (rain float :offset-assert 360) + (snow float :offset-assert 364) + (exclusive-load symbol :offset-assert 368) ;; guessed by decompiler + (render symbol :offset-assert 372) ;; guessed by decompiler + (allow-timeout symbol :offset-assert 376) ;; guessed by decompiler + (mirror symbol :offset-assert 380) ;; guessed by decompiler + (movie-skip-frame float :offset-assert 384) + (allow-blackout symbol :offset-assert 388) ;; guessed by decompiler + (race-minimap int32 :offset-assert 392) + (beard symbol :offset-assert 396) ;; guessed by decompiler + (ignore-target symbol :offset-assert 400) ;; guessed by decompiler + (subtitle-language uint8 :offset-assert 404) ;; language-enum + (sound-bank-load symbol :offset-assert 408) ;; guessed by decompiler + (allow-error symbol :offset-assert 412) ;; guessed by decompiler + (under-water-pitch-mod float :offset-assert 416) + (slow-time float :offset-assert 420) + (restart-info basic :offset-assert 428) + (fail-info basic :offset-assert 432) + (death-info basic :offset-assert 436) + (quit-info basic :offset-assert 440) + (extra-bank-count uint32 :offset-assert 444) + (extra-bank pair 3 :offset-assert 448) ;; guessed by decompiler + (borrow-count uint32 :offset-assert 460) + (borrow pair 3 :offset-assert 464) ;; guessed by decompiler + (exclusive-task-count uint32 :offset-assert 476) + (exclusive-task int32 3 :offset-assert 480) ;; guessed by decompiler + (level-trans-time int32 :offset-assert 492) + (scarf float :offset-assert 496) + (goggles float :offset-assert 500) + (board-trail basic :offset-assert 504) + (letterbox float :offset-assert 572) + (letterbox-speed float :offset-assert 576) + (borrow-city-count uint32 :offset-assert 620) + (borrow-city UNKNOWN 3 :offset-assert 624) + (audio-language uint8 :offset-assert 748) + (special-volume float :offset-assert 796) + ) + :method-count-assert 11 + :size-assert #x38c + :flag-assert #xb0000038c + (:methods + (user-setting-data-method-9 () none) ;; 9 ;; (user-setting-data-method-9 (_type_ engine engine-pers engine) user-setting-data 9) + (user-setting-data-method-10 () none) ;; 10 ;; (user-setting-data-method-10 (_type_ object symbol float uint) user-setting-data 10) + ) + ) +|# + +#| +(deftype cam-setting-data (structure) + ((fov deg :offset-assert 0) ;; degrees + (pov-handle uint64 :offset-assert 16) ;; handle + (pov-bone int32 :offset-assert 24) + (pov-offset vector :inline :offset-assert 32) + (string-default boolean :offset-assert 48) ;; symbol + (string-max-length meters :offset-assert 52) + (string-min-length meters :offset-assert 56) + (string-max-height meters :offset-assert 60) + (string-min-height meters :offset-assert 64) + (string-cliff-height meters :offset-assert 68) + (string-camera-floor meters :offset-assert 72) + (string-camera-ceiling meters :offset-assert 76) + (gun-max-height meters :offset-assert 80) + (gun-min-height meters :offset-assert 84) + (string-local-down vector :inline :offset-assert 96) + (slave-options cam-slave-options :offset-assert 112) + (matrix-blend-max-angle deg :offset-assert 120) ;; degrees + (matrix-blend-max-partial float :offset-assert 124) + (string-spline-max-move meters :offset-assert 128) + (string-spline-accel meters :offset-assert 132) + (string-spline-max-move-player meters :offset-assert 136) + (string-spline-accel-player meters :offset-assert 140) + (string-startup-vector vector :inline :offset-assert 144) + (use-string-startup-vector basic :offset-assert 160) + (look-at-point vector :inline :offset-assert 176) + (use-look-at-point symbol :offset-assert 192) ;; guessed by decompiler + (target-height meters :offset-assert 196) + (foot-offset meters :offset-assert 200) + (head-offset meters :offset-assert 204) + (teleport-on-entity-change boolean :offset-assert 208) ;; symbol + (entity-name string :offset-assert 212) + (cam-slope string :offset-assert 216) + (entity-or-mode-changed boolean :offset-assert 220) ;; symbol + (master-options cam-master-options :offset-assert 224) + (entity-mask uint32 :offset-assert 232) + (mode-name symbol :offset-assert 236) ;; guessed by decompiler + (real-entity-name string :offset-assert 240) + (cam-mode symbol :offset-assert 244) ;; guessed by decompiler + (interp-time uint32 :offset-assert 248) + (no-intro symbol :offset-assert 252) ;; guessed by decompiler + (use-point-of-interest symbol :offset-assert 256) ;; guessed by decompiler + (point-of-interest vector :inline :offset-assert 272) + (handle-of-interest uint64 :offset-assert 288) ;; handle + (mouse-tumble-point vector :inline :offset-assert 304) + (use-mouse-tumble-point symbol :offset-assert 320) ;; guessed by decompiler + (mouse-input symbol :offset-assert 324) ;; guessed by decompiler + (cpad1-skip-buttons symbol :offset-assert 328) ;; guessed by decompiler + (butt-handle uint64 :offset-assert 336) ;; handle + (butt-angle float :offset-assert 344) + (extra-follow-height float :offset-assert 348) + (interp-time-priority uint32 :offset-assert 352) + (string-max-length-default symbol :offset-assert 356) ;; guessed by decompiler + (string-min-length-default symbol :offset-assert 360) ;; guessed by decompiler + (string-max-height-default symbol :offset-assert 364) ;; guessed by decompiler + (string-min-height-default symbol :offset-assert 368) ;; guessed by decompiler + (flip-vertical basic :offset-assert 372) + (flip-horizontal basic :offset-assert 376) + (fov-priority float :offset-assert 384) + (dummy object 98 :offset-assert 388) ;; guessed by decompiler + ) + :method-count-assert 11 + :size-assert #x30c + :flag-assert #xb0000030c + ;; field cam-slave-options is likely a value type. field cam-master-options is likely a value type. + (:methods + (cam-setting-data-method-9 () none) ;; 9 ;; (cam-setting-data-method-9 (_type_ engine engine-pers engine) _type_ 9) + (cam-setting-data-method-10 () none) ;; 10 ;; (cam-setting-data-method-10 (_type_ object (pointer process) float int) _type_ 10) + ) + ) +|# + +#| +(deftype setting-control (basic) + ((user-current user-setting-data :inline :offset-assert 16) + (user-target user-setting-data :inline :offset-assert 928) + (user-default user-setting-data :inline :offset-assert 1840) + (cam-current cam-setting-data :inline :offset-assert 2752) + (cam-target cam-setting-data :inline :offset-assert 3536) + (cam-default cam-setting-data :inline :offset-assert 4320) + (engine engine :offset-assert 5100) ;; guessed by decompiler + (engine-pers engine-pers :offset-assert 5104) ;; guessed by decompiler + (engine-hi engine :offset-assert 5108) ;; guessed by decompiler + (sound-stinger-time uint64 :offset-assert 5112) ;; time-frame + (sound-stinger-change-time time-frame 4 :offset-assert 5120) ;; guessed by decompiler + (sound-excitement-change-time uint64 :offset-assert 5152) ;; time-frame + (sound-excitement-targ float :offset-assert 5160) + (sound-excitement-level uint32 :offset-assert 5164) + ) + :method-count-assert 20 + :size-assert #x1430 + :flag-assert #x1400001430 + (:methods + ;; (new (symbol type int) _type_ 0) + (setting-control-method-9 () none) ;; 9 ;; (add-setting (_type_ process symbol object object object) none 9) + (setting-control-method-10 () none) ;; 10 ;; (persist-with-delay (_type_ symbol time-frame symbol symbol float int) none 10) + (setting-control-method-11 () none) ;; 11 ;; (set-setting (_type_ process symbol object object object) none 11) + (setting-control-method-12 () none) ;; 12 ;; (remove-setting (_type_ process symbol) none 12) + (setting-control-method-13 () none) ;; 13 ;; (kill-persister (_type_ engine-pers object) none 13) + (setting-control-method-14 () none) ;; 14 ;; (setting-control-method-14 (_type_ object) connectable 14) + (setting-control-method-15 () none) ;; 15 ;; (remove-setting-by-arg0 (_type_ object) none 15) + (setting-control-method-16 () none) ;; 16 ;; (set-setting-by-param (_type_ symbol object object object) connection 16) + (setting-control-method-17 () none) ;; 17 ;; (apply-settings (_type_) user-setting-data 17) + (setting-control-method-18 () none) ;; 18 ;; (update (_type_) user-setting-data 18) + (setting-control-method-19 () none) ;; 19 + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; bigmap ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *bigmap-info-array* object) ;; bigmap-info-array +;; (define-extern *bigmap* object) ;; bigmap + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; target-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype target (process-focusable) + ((control control-info :offset-assert 128) ;; guessed by decompiler + (skel2 joint-control :offset-assert 208) ;; guessed by decompiler + (shadow-backup shadow-geo :offset-assert 212) ;; guessed by decompiler + (target-flags uint32 :offset-assert 188) + (game game-info :offset-assert 216) ;; guessed by decompiler + (neck joint-mod :offset-assert 220) ;; guessed by decompiler + (head joint-mod :offset-assert 224) ;; guessed by decompiler + (upper-body joint-mod :offset-assert 228) ;; guessed by decompiler + (horns joint-mod :offset-assert 232) ;; guessed by decompiler + (hair joint-mod 2 :offset-assert 236) ;; guessed by decompiler + (arm-ik joint-mod-ik 2 :offset-assert 244) ;; guessed by decompiler + (leg-ik joint-mod-ik 2 :offset-assert 252) ;; guessed by decompiler + (foot joint-mod 2 :offset-assert 260) ;; guessed by decompiler + (cloth basic :offset-assert 268) + (init-time uint64 :offset-assert 272) ;; time-frame + (teleport-time uint64 :offset-assert 280) ;; time-frame + (state-hook-time uint64 :offset-assert 288) ;; time-frame + (state-hook (function none :behavior target) :offset-assert 296) ;; guessed by decompiler + (cam-user-mode symbol :offset-assert 300) ;; guessed by decompiler + (sidekick (pointer sidekick) :offset-assert 304) ;; guessed by decompiler + (manipy (pointer manipy) :offset-assert 308) ;; guessed by decompiler + (mirror (pointer process-drawable) :offset-assert 312) ;; guessed by decompiler + (attack-info attack-info :inline :offset-assert 320) + (attack-info-rec attack-info :inline :offset-assert 496) + (attack-info-old attack-info 8 :offset-assert 672) ;; guessed by decompiler + (anim-seed uint64 :offset-assert 2080) + (alt-cam-pos vector :inline :offset-assert 2096) + (current-level level :offset-assert 2112) ;; guessed by decompiler + (saved-pos transformq :inline :offset-assert 2128) + (saved-owner uint64 :offset-assert 2176) + (alt-neck-pos vector :inline :offset-assert 2192) + (focus-search (array collide-shape) :offset-assert 2208) ;; guessed by decompiler + (handle-search basic :offset-assert 2212) + (excitement float :offset-assert 2216) + (shock-effect-time uint64 :offset-assert 2224) ;; time-frame + (beard? symbol :offset-assert 2232) ;; guessed by decompiler + (spool-anim spool-anim :offset-assert 2236) ;; guessed by decompiler + (ambient-time uint64 :offset-assert 2240) ;; time-frame + (fp-hud uint64 :offset-assert 2248) ;; handle + (no-load-wait uint64 :offset-assert 2256) + (no-look-around-wait uint64 :offset-assert 2264) + (burn-proc uint64 :offset-assert 2272) ;; handle + (pre-joint-hook (function none :behavior target) :offset-assert 2280) ;; guessed by decompiler + (notify uint64 :offset-assert 2288) ;; handle + (death-resetter resetter-spec :inline :offset-assert 2296) + (mode-cache basic :offset-assert 2312) + (mode-param1 uint64 :offset-assert 2320) ;; handle + (mode-param2 uint64 :offset-assert 2328) + (mode-param3 uint64 :offset-assert 2336) + (major-mode-exit-hook basic :offset-assert 2344) + (major-mode-event-hook basic :offset-assert 2348) + (sub-mode-exit-hook basic :offset-assert 2352) + (ext-geo-control basic :offset-assert 2356) + (pending-ext-geo int32 :offset-assert 2360) + (ext-geo int32 :offset-assert 2364) + (ext-anim-control basic :offset-assert 2368) + (pending-ext-anim int32 :offset-assert 2372) + (ext-anim int32 :offset-assert 2376) + (tobot-state state :offset-assert 2380) ;; guessed by decompiler + (tobot? symbol :offset-assert 2384) ;; guessed by decompiler + (tobot-recorder basic :offset-assert 2388) + (target-effect uint64 :offset-assert 2392) + (color-effect basic :offset-assert 2400) + (color-effect-start-time uint64 :offset-assert 2408) ;; time-frame + (color-effect-duration uint64 :offset-assert 2416) + (racer racer-info :offset-assert 2424) ;; guessed by decompiler + (tube tube-info :offset-assert 2428) ;; guessed by decompiler + (flut flut-info :offset-assert 2432) ;; guessed by decompiler + (board board-info :offset-assert 2436) ;; guessed by decompiler + (pilot pilot-info :offset-assert 2440) ;; guessed by decompiler + (gun gun-info :offset-assert 2444) ;; guessed by decompiler + (mech mech-info :offset-assert 2448) ;; guessed by decompiler + (turret turret-info :offset-assert 2452) ;; guessed by decompiler + (indax indax-info :offset-assert 2456) ;; guessed by decompiler + (ladder basic :offset-assert 2460) + (darkjak-interp float :offset-assert 2464) + (darkjak-interp-old float :offset-assert 2468) + (darkjak-giant-interp float :offset-assert 2472) + (darkjak darkjak-info :offset-assert 2476) ;; guessed by decompiler + (lightjak-interp float :offset-assert 2480) + (lightjak-interp-old float :offset-assert 2484) + (lightjak basic :offset-assert 2488) + (scarf-interp-targ float :offset-assert 2492) + (scarf-interp float :offset-assert 2496) + (scarf-interp-old float :offset-assert 2500) + (goggles-interp-targ float :offset-assert 2504) + (goggles-interp float :offset-assert 2508) + (goggles-interp-old float :offset-assert 2512) + (invisible-interp float :offset-assert 2516) + (invisible-start-time uint64 :offset-assert 2520) + (invisible-duration uint64 :offset-assert 2528) + (invisible-shadow-dir-backup vector :inline :offset-assert 2544) + ) + :method-count-assert 30 + :size-assert #xa00 + :flag-assert #x1e09800a00 + ;; field mode-param2 uses ~A with a 64-bit load. field mode-param3 uses ~A with a 64-bit load. + (:methods + (target-method-28 () none) ;; 28 ;; (init-target (_type_ continue-point symbol) none 28) + (target-method-29 () none) ;; 29 + ) + (:states + target-duck-high-jump ;; associated process guessed by decompiler, old: (state float float symbol target) + target-darkjak-get-on ;; associated process guessed by decompiler, old: (state darkjak-stage target) + target-darkjak-smack-charge + target-flop-hit-ground ;; associated process guessed by decompiler, old: (state symbol target) + target-darkjak-get-off ;; associated process guessed by decompiler, old: (state target) + target-indax-jump ;; associated process guessed by decompiler, old: (state float float surface target) + target-indax-attack ;; associated process guessed by decompiler, old: (state target) + target-darkjak-running-attack ;; associated process guessed by decompiler, old: (state target) + target-hit ;; associated process guessed by decompiler, old: (state symbol attack-info target) + target-mech-grab ;; associated process guessed by decompiler, old: (state target) + target-darkjak-smack + target-duck-high-jump-jump ;; associated process guessed by decompiler, old: (state float float symbol target) + target-flut-death + target-lightjak-freeze + target-attack ;; associated process guessed by decompiler, old: (state target) + target-title ;; associated process guessed by decompiler, old: (state symbol target) + target-darkjak-bomb0 ;; associated process guessed by decompiler, old: (state target) + target-double-jump ;; associated process guessed by decompiler, old: (state float float target) + target-attack-uppercut-jump ;; associated process guessed by decompiler, old: (state float float target) + target-darkjak-bomb1 ;; associated process guessed by decompiler, old: (state float float target) + target-indax-falling ;; associated process guessed by decompiler, old: (state symbol target) + target-wade-stance ;; associated process guessed by decompiler, old: (state target) + target-pole-cycle ;; associated process guessed by decompiler, old: (state handle target) + target-hit-ground-hard ;; associated process guessed by decompiler, old: (state float target) + target-attack-air ;; associated process guessed by decompiler, old: (state symbol target) + target-lightjak-get-on + target-wade-walk ;; associated process guessed by decompiler, old: (state target) + target-swim + target-credits + target-continue ;; associated process guessed by decompiler, old: (state continue-point target) + target-swim-jump ;; associated process guessed by decompiler, old: (state float float target) + target-load-wait ;; associated process guessed by decompiler, old: (state target) + target-death ;; associated process guessed by decompiler, old: (state symbol target) + target-duck-walk ;; associated process guessed by decompiler, old: (state symbol target) + target-indax-start ;; associated process guessed by decompiler, old: (state handle target) + target-indax-hit ;; associated process guessed by decompiler, old: (state symbol attack-info target) + target-indax-stance ;; associated process guessed by decompiler, old: (state target) + target-indax-walk ;; associated process guessed by decompiler, old: (state target) + target-indax-double-jump ;; associated process guessed by decompiler, old: (state float float target) + target-indax-hit-ground ;; associated process guessed by decompiler, old: (state symbol target) + target-mech-start ;; associated process guessed by decompiler, old: (state handle float symbol target) + target-indax-trip ;; associated process guessed by decompiler, old: (state target) + target-indax-attack-air ;; associated process guessed by decompiler, old: (state symbol target) + target-indax-running-attack ;; associated process guessed by decompiler, old: (state target) + target-indax-death ;; associated process guessed by decompiler, old: (state symbol target) + target-indax-get-off + target-lightjak-swoop-falling + target-look-around ;; associated process guessed by decompiler, old: (state target) + target-indax-grab + target-slide-down ;; associated process guessed by decompiler, old: (state target) + target-stance ;; associated process guessed by decompiler, old: (state target) + target-pilot-start ;; associated process guessed by decompiler, old: (state handle symbol symbol target) + target-walk ;; associated process guessed by decompiler, old: (state target) + target-turn-around ;; associated process guessed by decompiler, old: (state target) + target-stance-ambient ;; associated process guessed by decompiler, old: (state target) + target-slide-down-to-ground ;; associated process guessed by decompiler, old: (state target) + target-hit-ground ;; associated process guessed by decompiler, old: (state symbol target) + target-stance-look-around ;; associated process guessed by decompiler, old: (state target) + target-tube ;; associated process guessed by decompiler, old: (state target) + target-duck-stance ;; associated process guessed by decompiler, old: (state symbol target) + target-jump ;; associated process guessed by decompiler, old: (state float float surface target) + target-mech-carry-pickup ;; associated process guessed by decompiler, old: (state target) + target-jump-forward ;; associated process guessed by decompiler, old: (state float float target) + target-high-jump ;; associated process guessed by decompiler, old: (state float float object target) + target-falling ;; associated process guessed by decompiler, old: (state symbol target) + target-attack-uppercut ;; associated process guessed by decompiler, old: (state float float target) + target-running-attack ;; associated process guessed by decompiler, old: (state target) + target-flop ;; associated process guessed by decompiler, old: (state float float float target) + target-pilot-grab ;; associated process guessed by decompiler, old: (state target) + target-roll ;; associated process guessed by decompiler, old: (state target) + target-roll-flip ;; associated process guessed by decompiler, old: (state float float target) + target-pole-flip-up ;; associated process guessed by decompiler, old: (state object object float target) + target-mech-stance ;; associated process guessed by decompiler, old: (state target) + target-grab ;; associated process guessed by decompiler, old: (state symbol target) + target-grab-ride + target-pole-flip-up-jump ;; associated process guessed by decompiler, old: (state float float target) + target-board-turn-to ;; associated process guessed by decompiler, old: (state vector time-frame target) + target-pole-flip-forward ;; associated process guessed by decompiler, old: (state float float float target) + target-clone-anim ;; associated process guessed by decompiler, old: (state handle target) + target-blast-recover + target-pole-flip-forward-jump ;; associated process guessed by decompiler, old: (state float float target) + target-hide ;; associated process guessed by decompiler, old: (state target) + target-edge-grab ;; associated process guessed by decompiler, old: (state target) + target-edge-grab-jump ;; associated process guessed by decompiler, old: (state float float target) + target-edge-grab-off ;; associated process guessed by decompiler, old: (state target) + target-eco-powerup + target-mech-jump ;; associated process guessed by decompiler, old: (state float float surface target) + target-play-anim ;; associated process guessed by decompiler, old: (state string handle target) + target-launch ;; associated process guessed by decompiler, old: (state float symbol vector int target) + target-float ;; associated process guessed by decompiler, old: (state target) + target-powerjak-get-on + target-board-wall-kick ;; associated process guessed by decompiler, old: (state vector float target) + target-lightjak-swoop-again + target-lightjak-get-off + target-lightjak-swoop + target-lightjak-shield + target-lightjak-regen + target-invisible-get-on + target-flut-clone-anim + target-launch-dir + target-gun-stance ;; associated process guessed by decompiler, old: (state target) + target-gun-walk ;; associated process guessed by decompiler, old: (state target) + target-board-stance ;; associated process guessed by decompiler, old: (state target) + target-board-start ;; associated process guessed by decompiler, old: (state object target) + target-flut-air-attack-hit-ground + target-board-duck-stance ;; associated process guessed by decompiler, old: (state target) + target-indax-hang + target-board-jump ;; associated process guessed by decompiler, old: (state meters meters symbol target) + target-board-halfpipe ;; associated process guessed by decompiler, old: (state target) + target-board-clone-anim ;; associated process guessed by decompiler, old: (state handle target) + target-pilot-clone-anim ;; associated process guessed by decompiler, old: (state handle target) + target-board-falling ;; associated process guessed by decompiler, old: (state target) + target-board-jump-kick ;; associated process guessed by decompiler, old: (state target) + target-board-turn-around + target-board-flip ;; associated process guessed by decompiler, old: (state float float symbol target) + target-board-hold ;; associated process guessed by decompiler, old: (state float float symbol target) + target-board-tricky + target-board-trickx ;; associated process guessed by decompiler, old: (state float float symbol target) + target-board-hit-ground ;; associated process guessed by decompiler, old: (state target) + target-board-ride-edge ;; associated process guessed by decompiler, old: (state symbol target) + target-board-grenade ;; associated process guessed by decompiler, old: (state handle target) + target-board-get-on ;; associated process guessed by decompiler, old: (state target) + target-board-get-off ;; associated process guessed by decompiler, old: (state object symbol target) + target-board-grab ;; associated process guessed by decompiler, old: (state symbol target) + target-mech-death ;; associated process guessed by decompiler, old: (state symbol target) + target-board-hit ;; associated process guessed by decompiler, old: (state vector attack-info target) + target-warp-out ;; associated process guessed by decompiler, old: (state vector vector target target) + target-warp-in ;; associated process guessed by decompiler, old: (state vector vector target target) + target-pilot-get-off ;; associated process guessed by decompiler, old: (state target) + target-pilot-stance ;; associated process guessed by decompiler, old: (state target) + target-pilot-impact ;; associated process guessed by decompiler, old: (state target) + target-pilot-hit ;; associated process guessed by decompiler, old: (state symbol attack-info target) + target-pilot-daxter-perch + target-pilot-get-on ;; associated process guessed by decompiler, old: (state target) + target-pilot-edge-grab ;; associated process guessed by decompiler, old: (state pilot-edge-grab-info target) + target-pilot-death ;; associated process guessed by decompiler, old: (state symbol target) + target-mech-get-up + target-mech-punch ;; associated process guessed by decompiler, old: (state target) + target-mech-get-off ;; associated process guessed by decompiler, old: (state target) + target-mech-carry-stance ;; associated process guessed by decompiler, old: (state target) + target-mech-walk ;; associated process guessed by decompiler, old: (state target) + target-mech-falling ;; associated process guessed by decompiler, old: (state symbol target) + target-mech-carry-drop ;; associated process guessed by decompiler, old: (state target) + target-mech-hit-ground ;; associated process guessed by decompiler, old: (state symbol target) + target-mech-hit ;; associated process guessed by decompiler, old: (state symbol attack-info target) + target-mech-carry-walk ;; associated process guessed by decompiler, old: (state target) + target-mech-carry-drag ;; associated process guessed by decompiler, old: (state target) + target-mech-carry-falling ;; associated process guessed by decompiler, old: (state target) + target-mech-carry-hit-ground ;; associated process guessed by decompiler, old: (state symbol target) + target-mech-carry-jump ;; associated process guessed by decompiler, old: (state float float symbol target) + target-mech-carry-throw ;; associated process guessed by decompiler, old: (state target) + target-mech-get-on ;; associated process guessed by decompiler, old: (state handle target) + target-mech-shield + target-mech-clone-anim ;; associated process guessed by decompiler, old: (state handle target) + target-ladder + target-flut-get-off-jump + target-flut-hit-ground + target-flut-walk + target-flut-get-off + target-flut-kanga-catch + target-flut-running-attack + target-flut-double-jump + target-flut-start ;; associated process guessed by decompiler, old: (state handle target) + target-flut-stance + target-flut-falling + target-flut-jump + target-flut-air-attack + target-flut-hit + target-flut-get-on + target-flut-eject + target-flut-grab + ) + ) +|# + +#| +(deftype sidekick (process-drawable) + ((control control-info :offset-assert 128) ;; guessed by decompiler + (anim-seed uint64 :offset-assert 208) + (shadow-in-movie? symbol :offset-assert 216) ;; guessed by decompiler + (special-anim-time uint64 :offset-assert 224) ;; time-frame + (special-anim-interp float :offset-assert 232) + (special-anim-frame float :offset-assert 236) + (offset transformq :inline :offset-assert 240) + (mirror (pointer process-drawable) :offset-assert 288) ;; guessed by decompiler + (ear UNKNOWN 2 :offset-assert 292) + (flap UNKNOWN 2 :offset-assert 300) + ) + :method-count-assert 20 + :size-assert #x134 + :flag-assert #x1400c00134 + (:states + sidekick-clone ;; associated process guessed by decompiler, old: (state sidekick) + ) + ) +|# + +;; (define-extern *target* object) ;; target +;; (define-extern *sidekick* object) ;; sidekick + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; capture ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern gs-set-default-store-image function) ;; (function gs-store-image-packet int int gs-psm int int int int int) +;; (define-extern store-image function) ;; (function screen-shot-work int) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ocean-tables ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *ocean-colors-city* object) ;; ocean-colors +;; (define-extern *ocean-near-indices-city* ocean-near-indices) ;; ocean-near-indices +;; (define-extern *ocean-trans-indices-city* ocean-trans-indices) ;; ocean-trans-indices +;; (define-extern *ocean-mid-indices-city* ocean-mid-indices) ;; ocean-mid-indices +;; (define-extern *ocean-mid-masks-city* ocean-mid-masks) ;; ocean-mid-masks +;; (define-extern *ocean-map-city* object) ;; ocean-map + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; car ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype h-car-base (hvehicle) + ((rider-hand-joint-array UNKNOWN 2 :offset-assert 944) + ) + :method-count-assert 162 + :size-assert #x3b2 + :flag-assert #xa2034003b2 + ) +|# + +#| +(deftype h-car-a (h-car-base) + ((steering-wheel-l joint-mod-rotate-local :inline :offset-assert 960) + (steering-wheel-r joint-mod-rotate-local :inline :offset-assert 992) + (fin-fl joint-mod-rotate-local :inline :offset-assert 1024) + (fin-fr joint-mod-rotate-local :inline :offset-assert 1056) + (fin-rl joint-mod-rotate-local :inline :offset-assert 1088) + (fin-rr joint-mod-rotate-local :inline :offset-assert 1120) + (rudder-l joint-mod-rotate-local :inline :offset-assert 1152) + (rudder-r joint-mod-rotate-local :inline :offset-assert 1184) + (rudder joint-mod-rotate-local :inline :offset-assert 1216) + ) + :method-count-assert 162 + :size-assert #x4e0 + :flag-assert #xa2046004e0 + ) +|# + +#| +(deftype h-car-b (h-car-base) + ((steering-wheel-l joint-mod-rotate-local :inline :offset-assert 960) + (steering-wheel-r joint-mod-rotate-local :inline :offset-assert 992) + (fin-fl joint-mod-rotate-local :inline :offset-assert 1024) + (fin-fr joint-mod-rotate-local :inline :offset-assert 1056) + (fin-rl joint-mod-rotate-local :inline :offset-assert 1088) + (fin-rr joint-mod-rotate-local :inline :offset-assert 1120) + ) + :method-count-assert 162 + :size-assert #x480 + :flag-assert #xa204000480 + ) +|# + +#| +(deftype h-car-c (h-car-base) + ((steering-wheel joint-mod-rotate-local :inline :offset-assert 960) + (fin-fl joint-mod-rotate-local :inline :offset-assert 992) + (fin-fr joint-mod-rotate-local :inline :offset-assert 1024) + (fin-rl joint-mod-rotate-local :inline :offset-assert 1056) + (fin-rr joint-mod-rotate-local :inline :offset-assert 1088) + (fin2-rl joint-mod-rotate-local :inline :offset-assert 1120) + (fin2-rr joint-mod-rotate-local :inline :offset-assert 1152) + ) + :method-count-assert 162 + :size-assert #x4a0 + :flag-assert #xa2042004a0 + ) +|# + +;; (define-extern *h-car-explosion-info* vehicle-explosion-info) +;; (define-extern *h-car-a-constants* object) +;; (define-extern *h-car-b-constants* object) +;; (define-extern *h-car-c-constants* object) +;; (define-extern *h-hellcat-constants* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; mhcityb-texture ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *lmhcityb-tfrag-texture-anim-array* texture-anim-array) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; memory-usage-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype memory-usage-info (structure) + ((name string :offset-assert 0) ;; guessed by decompiler + (count int32 :offset-assert 4) + (used int32 :offset-assert 8) + (total int32 :offset-assert 12) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype memory-usage-block (basic) + ((work-bsp basic :offset-assert 4) + (length int32 :offset-assert 8) + (data memory-usage-info 113 :offset-assert 16) ;; guessed by decompiler + ) + :method-count-assert 12 + :size-assert #x720 + :flag-assert #xc00000720 + (:methods + (memory-usage-block-method-9 () none) ;; 9 ;; (reset! (_type_) _type_ 9) + (memory-usage-block-method-10 () none) ;; 10 ;; (calculate-total (_type_) int 10) + (memory-usage-block-method-11 () none) ;; 11 ;; (print-mem-usage (_type_ level object) _type_ 11) + ) + ) +|# + +;; (define-extern *mem-usage* object) ;; memory-usage-block +;; (define-extern *dma-mem-usage* object) ;; memory-usage-block +;; (define-extern *temp-mem-usage* object) ;; memory-usage-block + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; blit-displays-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype blit-displays-work (structure) + ((adgif-tmpl dma-gif-packet :inline :offset-assert 0) + (sprite-tmpl dma-gif-packet :inline :offset-assert 32) + (contrast-tmpl dma-gif-packet :inline :offset-assert 64) + (sprite-slow-tmpl dma-gif-packet :inline :offset-assert 96) + (draw-slow-time-tmpl dma-gif-packet :inline :offset-assert 128) + (line-tmpl dma-gif-packet :inline :offset-assert 160) + (scan-tmpl dma-gif-packet :inline :offset-assert 192) + (color vector4w :inline :offset-assert 224) + (line-color uint64 :offset-assert 240) + (scan-colors vector4w 15 :offset-assert 256) ;; guessed by decompiler + (zoom-blur-pos vector :inline :offset-assert 496) + (zoom-blur-count int32 :offset-assert 512) + (zoom-blur-texels int32 :offset-assert 516) + (zoom-blur-alpha-target float :offset-assert 520) + (zoom-blur-alpha-current float :offset-assert 524) + (zoom-blur-2d basic :offset-assert 528) + (menu-mode symbol :offset-assert 532) ;; guessed by decompiler + (screen-copied symbol :offset-assert 536) ;; guessed by decompiler + (vu1-enable-user-menu uint64 :offset-assert 544) ;; vu1-renderer-mask + (texture-enable-user-menu uint32 :offset-assert 552) + (count-down uint32 :offset-assert 556) + (horizontal-flip-flag symbol :offset-assert 560) ;; guessed by decompiler + (scan-alpha float :offset-assert 564) + (scanline uint32 :offset-assert 568) + (progress-interp float :offset-assert 572) + (progress-interp-dest float :offset-assert 576) + (progress-interp-speed float :offset-assert 580) + (slow-time float :offset-assert 584) + ) + :method-count-assert 27 + :size-assert #x24c + :flag-assert #x1b0000024c + (:methods + (blit-displays-work-method-9 () none) ;; 9 + (blit-displays-work-method-10 () none) ;; 10 + (blit-displays-work-method-11 () none) ;; 11 + (blit-displays-work-method-12 () none) ;; 12 + (blit-displays-work-method-13 () none) ;; 13 + (blit-displays-work-method-14 () none) ;; 14 + (blit-displays-work-method-15 () none) ;; 15 + (blit-displays-work-method-16 () none) ;; 16 + (blit-displays-work-method-17 () none) ;; 17 + (blit-displays-work-method-18 () none) ;; 18 + (blit-displays-work-method-19 () none) ;; 19 + (blit-displays-work-method-20 () none) ;; 20 + (blit-displays-work-method-21 () none) ;; 21 + (blit-displays-work-method-22 () none) ;; 22 + (blit-displays-work-method-23 () none) ;; 23 + (blit-displays-work-method-24 () none) ;; 24 + (blit-displays-work-method-25 () none) ;; 25 + (blit-displays-work-method-26 () none) ;; 26 + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; sky-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype sky-color-hour (structure) + ((snapshot1 int32 :offset-assert 0) + (snapshot2 int32 :offset-assert 4) + (morph-start float :offset-assert 8) + (morph-end float :offset-assert 12) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype sky-color-day (structure) + ((hour sky-color-hour 24 :offset-assert 0) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x180 + :flag-assert #x900000180 + ) +|# + +#| +(deftype sky-sun-data (structure) + ((data uint128 4 :offset-assert 0) ;; guessed by decompiler + (pos vector :inline :offset-assert 0) + (r-sun float :offset-assert 16) + (r-halo float :offset-assert 20) + (r-aurora float :offset-assert 24) + (c-sun-start rgba :offset-assert 32) ;; guessed by decompiler + (c-sun-end rgba :offset-assert 48) ;; guessed by decompiler + (c-halo-start rgba :offset-assert 36) ;; guessed by decompiler + (c-halo-end rgba :offset-assert 52) ;; guessed by decompiler + (c-aurora-start rgba :offset-assert 40) ;; guessed by decompiler + (c-aurora-end rgba :offset-assert 56) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x40 + :flag-assert #x900000040 + ) +|# + +#| +(deftype sky-moon-data (structure) + ((data uint128 2 :offset-assert 0) ;; guessed by decompiler + (pos vector :inline :offset-assert 0) + (scale vector :inline :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x20 + :flag-assert #x900000020 + ) +|# + +#| +(deftype sky-orbit (structure) + ((high-noon float :offset-assert 0) + (tilt float :offset-assert 4) + (rise float :offset-assert 8) + (dist float :offset-assert 12) + (min-halo float :offset-assert 16) + (max-halo float :offset-assert 20) + ) + :method-count-assert 9 + :size-assert #x18 + :flag-assert #x900000018 + ) +|# + +#| +(deftype sky-upload-data (structure) + ((data uint128 16 :offset-assert 0) ;; guessed by decompiler + (sun sky-sun-data 2 :offset-assert 0) ;; guessed by decompiler + (moon sky-moon-data :inline :offset-assert 128) + (day-star sky-moon-data :inline :offset-assert 192) + ) + :method-count-assert 9 + :size-assert #x100 + :flag-assert #x900000100 + ) +|# + +#| +(deftype sky-vertex (structure) + ((UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + ) + :method-count-assert 9 + :size-assert #x30 + :flag-assert #x900000030 + ) +|# + +#| +(deftype cloud-vertex (structure) + ((pos vector :inline :offset-assert 0) + (stq vector :inline :offset-assert 16) + (col vector :inline :offset-assert 32) + (nrm vector :inline :offset-assert 48) + (stq2 vector :inline :offset-assert 64) + (col2 vector :inline :offset-assert 80) + (nrm2 vector :inline :offset-assert 96) + ) + :method-count-assert 9 + :size-assert #x70 + :flag-assert #x900000070 + ) +|# + +#| +(deftype cloud-vert-array (structure) + ((data cloud-vertex 100 :offset-assert 0) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x2bc0 + :flag-assert #x900002bc0 + ) +|# + +#| +(deftype haze-vertex (structure) + ((pos vector :inline :offset-assert 0) + (nrm vector :inline :offset-assert 16) + (col vector :inline :offset-assert 32) + ) + :method-count-assert 9 + :size-assert #x30 + :flag-assert #x900000030 + ) +|# + +#| +(deftype haze-vert-array (structure) + ((data haze-vertex 36 :offset-assert 0) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x6c0 + :flag-assert #x9000006c0 + ) +|# + +#| +(deftype cloud-lights (structure) + ((sun0-normal vector :inline :offset-assert 0) + (sun1-normal vector :inline :offset-assert 16) + (moon-normal vector :inline :offset-assert 32) + (ambi-color vector :inline :offset-assert 48) + (ambi-color-lower vector :inline :offset-assert 64) + (sun0-color vector :inline :offset-assert 80) + (sun1-color vector :inline :offset-assert 96) + (moon-color vector :inline :offset-assert 112) + (sun0-color-lower vector :inline :offset-assert 128) + (sun0-scale float :offset-assert 144) + (sun1-scale float :offset-assert 148) + (moon-scale float :offset-assert 152) + ) + :method-count-assert 9 + :size-assert #x9c + :flag-assert #x90000009c + ) +|# + +#| +(deftype haze-lights (structure) + ((sun0-normal vector :inline :offset-assert 0) + (sun1-normal vector :inline :offset-assert 16) + (moon-normal vector :inline :offset-assert 32) + (ambi-color vector :inline :offset-assert 48) + (sun0-color vector :inline :offset-assert 64) + (sun1-color vector :inline :offset-assert 80) + (moon-color vector :inline :offset-assert 96) + (sun0-scale float :offset-assert 112) + (sun1-scale float :offset-assert 116) + (moon-scale float :offset-assert 120) + ) + :method-count-assert 9 + :size-assert #x7c + :flag-assert #x90000007c + ) +|# + +#| +(deftype sky-work (structure) + ((adgif-tmpl dma-gif-packet :inline :offset-assert 0) + (draw-tmpl dma-gif-packet :inline :offset-assert 32) + (draw-tmpl2 dma-gif-packet :inline :offset-assert 64) + (fog-tmpl dma-gif-packet :inline :offset-assert 96) + (blend-tmpl dma-gif-packet :inline :offset-assert 128) + (sprite-tmpl dma-gif-packet :inline :offset-assert 160) + (sprite-tmpl2 dma-gif-packet :inline :offset-assert 192) + (sun-coords vector 2 :offset-assert 224) ;; guessed by decompiler + (green-coords vector 2 :offset-assert 256) ;; guessed by decompiler + (moon0-coords vector 2 :offset-assert 288) ;; guessed by decompiler + (moon1-coords vector 2 :offset-assert 320) ;; guessed by decompiler + (moon2-coords vector 2 :offset-assert 352) ;; guessed by decompiler + (day-star-coords UNKNOWN 2 :offset-assert 384) + (star-coords vector 2 :offset-assert 416) ;; guessed by decompiler + (sun-colors vector4w 2 :offset-assert 448) ;; guessed by decompiler + (green-colors vector4w 2 :offset-assert 480) ;; guessed by decompiler + (moon-colors vector4w 3 :offset-assert 512) ;; guessed by decompiler + (day-star-colors UNKNOWN 3 :offset-assert 560) + (star-colors vector4w 16 :offset-assert 608) ;; guessed by decompiler + (st-coords vector 2 :offset-assert 864) ;; guessed by decompiler + (random vector4w 8 :offset-assert 896) ;; guessed by decompiler + (giftag-base dma-gif :inline :offset-assert 1024) + (giftag-haze dma-gif :inline :offset-assert 1040) + (giftag-roof dma-gif :inline :offset-assert 1056) + (giftag-ocean dma-gif :inline :offset-assert 1072) + (fog vector :inline :offset-assert 1088) + (sky float 8 :offset-assert 1104) ;; guessed by decompiler + (time float :offset-assert 1136) + (off-s uint16 :offset-assert 1140) + (off-t uint16 :offset-assert 1142) + (orbit sky-orbit 3 :offset-assert 1144) ;; guessed by decompiler + (upload-data sky-upload-data :inline :offset-assert 1248) + (ambi-color vector :inline :offset-assert 1504) ;; vector4w :inline + (ambi-color-lower vector :inline :offset-assert 1520) ;; vector4w :inline + (sun0-color vector :inline :offset-assert 1536) ;; vector4w :inline + (sun1-color vector :inline :offset-assert 1552) ;; vector4w :inline + (moon-color vector :inline :offset-assert 1568) ;; vector4w :inline + (sun0-color-lower vector :inline :offset-assert 1584) ;; vector4w :inline + (cam-mat matrix :inline :offset-assert 1600) + (star-mat matrix :inline :offset-assert 1664) + (vec0 vector4w :inline :offset-assert 1728) + (vec1 vector4w :inline :offset-assert 1744) + (cloud-lights cloud-lights :inline :offset-assert 1760) + (haze-lights haze-lights :inline :offset-assert 1920) + (buf dma-buffer :offset-assert 2044) ;; guessed by decompiler + (draw-vortex basic :offset-assert 2048) + (day-star-scale float :offset-assert 2052) + (stars vector 512 :offset-assert 2064) ;; guessed by decompiler + (disable-day-star basic :offset-assert 10256) + ) + :method-count-assert 39 + :size-assert #x2814 + :flag-assert #x2700002814 + (:methods + (sky-work-method-9 () none) ;; 9 ;; (init-sun-data! (_type_ int float float float) none 9) + (sky-work-method-10 () none) ;; 10 ;; (init-orbit-settings! (_type_ int float float float float float float) none 10) + (sky-work-method-11 () none) ;; 11 ;; (update-colors-for-time (_type_ float) none 11) + (sky-work-method-12 () none) ;; 12 ;; (update-time-and-speed (_type_ float float) none 12) + (sky-work-method-13 () none) ;; 13 ;; (draw (_type_) none 13) + (sky-work-method-14 () none) ;; 14 ;; (update-matrix (_type_ matrix) none 14) + (sky-work-method-15 () none) ;; 15 ;; (update-template-colors (_type_) none 15) + (sky-work-method-16 () none) ;; 16 ;; (init-regs-for-large-polygon-draw (_type_) none 16) + (sky-work-method-17 () none) ;; 17 ;; (init-regs-for-sky-asm (_type_) none 17) + (sky-work-method-18 () none) ;; 18 ;; (cloud-vtx-light-update (_type_ vector vector cloud-lights vector vector) none 18) + (sky-work-method-19 () none) ;; 19 ;; (cloud-vtx-tex-update (_type_ vector vector vector cloud-lights) none 19) + (sky-work-method-20 () none) ;; 20 ;; (adjust-cloud-lighting (_type_) none 20) + (sky-work-method-21 () none) ;; 21 ;; (cloud-vtx1-to-sky (_type_ sky-vertex cloud-vertex) none 21) + (sky-work-method-22 () none) ;; 22 ;; (cloud-vtx2-to-sky (_type_ sky-vertex cloud-vertex) none 22) + (sky-work-method-23 () none) ;; 23 ;; (draw-clouds (_type_ dma-buffer) none 23) + (sky-work-method-24 () none) ;; 24 ;; (apply-haze-light (_type_ vector vector haze-lights) none 24) + (sky-work-method-25 () none) ;; 25 ;; (adjust-haze-lighting (_type_) none 25) + (sky-work-method-26 () none) ;; 26 ;; (haze-vtx-to-sky (_type_ sky-vertex sky-vertex haze-vertex) none 26) + (sky-work-method-27 () none) ;; 27 ;; (draw-haze (_type_ dma-buffer) none 27) + (sky-work-method-28 () none) ;; 28 ;; (sun-dma (_type_ dma-buffer) none 28) + (sky-work-method-29 () none) ;; 29 ;; (green-sun-dma (_type_ dma-buffer) none 29) + (sky-work-method-30 () none) ;; 30 ;; (moon-dma (_type_ dma-buffer) none 30) + (sky-work-method-31 () none) ;; 31 ;; (setup-stars (_type_ matrix sky-upload-data) none 31) + (sky-work-method-32 () none) ;; 32 ;; (stars-transform-asm (_type_) none 32) + (sky-work-method-33 () none) ;; 33 ;; (stars-dma (_type_ dma-buffer) none 33) + (sky-work-method-34 () none) ;; 34 ;; (draw-roof (_type_ dma-buffer) none 34) + (sky-work-method-35 () none) ;; 35 ;; (draw-base (_type_ dma-buffer) none 35) + (sky-work-method-36 () none) ;; 36 ;; (draw-fog (_type_ dma-buffer) none 36) + (sky-work-method-37 () none) ;; 37 + (sky-work-method-38 () none) ;; 38 + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; target-darkjak ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype darkjak-ball (projectile) + ((impact? basic :offset-assert 512) + (fire-point vector :inline :offset-assert 528) + (explode-sound uint32 :offset-assert 544) + (bolts basic :offset-assert 548) + (ball-pos UNKNOWN 2 :offset-assert 560) + (trail basic :offset-assert 592) + (ball1 basic :offset-assert 596) + (last-ground-height float :offset-assert 600) + (fire-sound uint32 :offset-assert 604) + ) + :method-count-assert 42 + :size-assert #x260 + :flag-assert #x2a01e00260 + (:methods + (darkjak-ball-method-41 () none) ;; 41 + ) + (:state-methods + impact ;; 22 + ) + ) +|# + +;; (define-extern darkjak-ball-slide-reaction function) +;; (define-extern darkjak-ball-move function) +;; (define-extern *darkjak-ball-lightning* object) +;; (define-extern *darkjak-ball-lightning-colors* array) +;; (define-extern sparticle-track-hadouken function) +;; (define-extern target-darkjak-setup function) ;; (function symbol none :behavior target) +;; (define-extern want-to-darkjak? function) ;; (function symbol :behavior target) +;; (define-extern *darkjak-trans-mods* object) ;; surface +;; (define-extern target-darkjak-end-mode function) ;; (function none :behavior target) +;; (define-extern target-darkjak-process function) ;; (function none :behavior target) +;; (define-extern target-darkjak-bomb-collide function) ;; (function float float none :behavior target) +;; (define-extern target-bomb1-fire-shot function) ;; (function (pointer handle) int int int none :behavior target) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; mine-scenes ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype leggings (process-drawable) + ((alt-actor basic :offset-assert 200) + ) + :method-count-assert 22 + :size-assert #xcc + :flag-assert #x16005000cc + (:state-methods + idle ;; 20 + die ;; 21 + ) + ) +|# + +;; (define-extern *range-explo-door-dust-color* curve-color-fast) +;; (define-extern *range-explo-door-dust-alpha* curve2d-fast) +;; (define-extern *range-explo-door-dust-scale-x* curve2d-fast) +;; (define-extern *range-explo-door-dust-scale-y* curve2d-fast) +;; (define-extern *curve-explo-door-dust-alpha* curve2d-fast) +;; (define-extern *curve-explo-door-dust-scale-x* curve2d-fast) +;; (define-extern *curve-explo-door-dust-scale-y* curve2d-fast) +;; (define-extern *part-bomb-door-explosion-dust-in-curve-settings* object) +;; (define-extern *range-explo-door-color* curve-color-fast) +;; (define-extern *range-explo-door-alpha* curve2d-fast) +;; (define-extern *range-explo-door-scale-x* curve2d-fast) +;; (define-extern *range-explo-door-scale-y* curve2d-fast) +;; (define-extern *curve-explo-door-alpha* curve2d-fast) +;; (define-extern *curve-explo-door-scale-x* curve2d-fast) +;; (define-extern *curve-explo-door-scale-y* curve2d-fast) +;; (define-extern *part-bomb-door-explosion-texture-curve-settings* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; generic-tie-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype generic-tie-instance (structure) + ((matrix-tag dma-packet :inline :offset-assert 0) + (matrix-data vector 6 :offset-assert 16) ;; guessed by decompiler + (index-tag dma-packet :inline :offset-assert 112) + (indices uint8 224 :offset-assert 128) ;; guessed by decompiler + (end-tag dma-packet :inline :offset-assert 352) + ) + :method-count-assert 9 + :size-assert #x170 + :flag-assert #x900000170 + ) +|# + +#| +(deftype generic-tie-input (structure) + ((palette-tag dma-packet :inline :offset-assert 0) + (palette rgba 128 :offset-assert 16) ;; guessed by decompiler + (model-tag dma-packet :inline :offset-assert 528) + (model vector 146 :offset-assert 544) ;; guessed by decompiler + (matrix-tag dma-packet :inline :offset-assert 2880) + (matrix-data vector 6 :offset-assert 2896) ;; guessed by decompiler + (index-tag dma-packet :inline :offset-assert 2992) + (indices uint8 224 :offset-assert 3008) ;; guessed by decompiler + (end-tag dma-packet :inline :offset-assert 3232) + ) + :method-count-assert 9 + :size-assert #xcb0 + :flag-assert #x900000cb0 + ) +|# + +#| +(deftype generic-tie-run-control (structure) + ((skip-bp2 uint8 :offset-assert 0) + (skip-ips uint8 :offset-assert 1) + (gifbuf-skip uint8 :offset-assert 2) + (strips uint8 :offset-assert 3) + (target-bp1 uint8 :offset-assert 4) + (target-bp2 uint8 :offset-assert 5) + (target-ip1 uint8 :offset-assert 6) + (target-ip2 uint8 :offset-assert 7) + (target-bps uint8 :offset-assert 8) + (target-ips uint8 :offset-assert 9) + (is-generic uint8 :offset-assert 10) + (reserved uint8 :offset-assert 11) + ) + :method-count-assert 9 + :size-assert #xc + :flag-assert #x90000000c + ) +|# + +#| +(deftype generic-tie-base-point (structure) + ((data uint16 8 :offset-assert 0) ;; guessed by decompiler + (quad uint128 :offset-assert 0) + (x int16 :offset-assert 0) + (y int16 :offset-assert 2) + (z int16 :offset-assert 4) + (d0 int16 :offset-assert 6) + (vtx uint64 :offset-assert 0) + (u int16 :offset-assert 8) + (v int16 :offset-assert 10) + (tex uint32 :offset-assert 8) + (w int16 :offset-assert 12) + (d1 int16 :offset-assert 14) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype generic-tie-bps (structure) + ((bp generic-tie-base-point 4 :offset-assert 0) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x40 + :flag-assert #x900000040 + ) +|# + +#| +(deftype generic-tie-interp-point (structure) + ((data uint16 12 :offset-assert 0) ;; guessed by decompiler + (quad uint128 :offset-assert 0) + (x int16 :offset-assert 0) + (y int16 :offset-assert 2) + (z int16 :offset-assert 4) + (d0 int16 :offset-assert 6) + (vtx0 uint64 :offset-assert 0) + (dx int16 :offset-assert 8) + (dy int16 :offset-assert 10) + (dz int16 :offset-assert 12) + (unused int16 :offset-assert 14) + (vtx1 uint64 :offset-assert 8) + (u int16 :offset-assert 16) + (v int16 :offset-assert 18) + (tex uint32 :offset-assert 16) + (w int16 :offset-assert 20) + (d1 int16 :offset-assert 22) + ) + :method-count-assert 9 + :size-assert #x18 + :flag-assert #x900000018 + ) +|# + +#| +(deftype generic-tie-ips (structure) + ((ip generic-tie-interp-point 2 :offset-assert 0) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x30 + :flag-assert #x900000030 + ) +|# + +#| +(deftype generic-tie-header (structure) + ((effect uint8 :offset-assert 0) + (interp-table-size uint8 :offset-assert 1) + (num-bps uint8 :offset-assert 2) + (num-ips uint8 :offset-assert 3) + (tint-color uint32 :offset-assert 4) + (index-table-offset uint16 :offset-assert 8) + (kick-table-offset uint16 :offset-assert 10) + (normal-table-offset uint16 :offset-assert 12) + (interp-table-offset uint16 :offset-assert 14) + (gsf-header gsf-header :inline :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x20 + :flag-assert #x900000020 + ) +|# + +#| +(deftype generic-tie-matrix (structure) + ((matrix matrix :inline :offset-assert 0) + (morph vector :inline :offset-assert 64) + (fog qword :inline :offset-assert 80) + ) + :method-count-assert 9 + :size-assert #x60 + :flag-assert #x900000060 + ) +|# + +#| +(deftype generic-tie-normal (structure) + ((x int8 :offset-assert 0) + (y int8 :offset-assert 1) + (z int8 :offset-assert 2) + (dummy int8 :offset-assert 3) + ) + :method-count-assert 9 + :size-assert #x4 + :flag-assert #x900000004 + ) +|# + +#| +(deftype generic-tie-control (structure) + ((ptr-palette uint32 :offset-assert 0) + (ptr-shaders uint32 :offset-assert 4) + (ptr-runctrl generic-tie-run-control :offset-assert 8) + (ptr-verts uint32 :offset-assert 12) + (ptr-generic generic-tie-header :offset-assert 16) + (ptr-dps uint32 :offset-assert 20) + (ptr-kicks uint32 :offset-assert 24) + (ptr-normals uint32 :offset-assert 28) + (ptr-interp uint32 :offset-assert 32) + (ptr-mtxs generic-tie-matrix :offset-assert 36) + (ptr-cinds uint32 :offset-assert 40) + (next-instance uint32 :offset-assert 44) + (next-model uint32 :offset-assert 48) + (next-is-model uint32 :offset-assert 52) + (tie-type uint32 :offset-assert 56) + ) + :method-count-assert 9 + :size-assert #x3c + :flag-assert #x90000003c + ) +|# + +#| +(deftype generic-tie-stats (structure) + ((num-bps uint32 :offset-assert 0) + (num-ips uint32 :offset-assert 4) + (num-dps uint32 :offset-assert 8) + (num-shaders uint32 :offset-assert 12) + (num-models uint32 :offset-assert 16) + (num-instances uint32 :offset-assert 20) + (num-waits uint32 :offset-assert 24) + (num-qwc uint32 :offset-assert 28) + (max-qwc uint32 :offset-assert 32) + ) + :method-count-assert 9 + :size-assert #x24 + :flag-assert #x900000024 + ) +|# + +#| +(deftype generic-tie-calls (structure) + ((generic-prepare-dma-double basic :offset-assert 0) + (generic-envmap-dproc basic :offset-assert 4) + (generic-interp-dproc basic :offset-assert 8) + (generic-no-light-dproc basic :offset-assert 12) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype generic-tie-shadow (structure) + ((out-buf gsf-buffer :offset-assert 0) + (cur-buf uint32 :offset-assert 4) + (tie-type int32 :offset-assert 8) + (ptr-inst uint32 :offset-assert 12) + (ptr-buf uint32 :offset-assert 16) + (inst-xor int32 :offset-assert 20) + (end-of-chain uint32 :offset-assert 24) + (write-limit uint32 :offset-assert 28) + (calls generic-tie-calls :inline :offset-assert 32) + ) + :method-count-assert 9 + :size-assert #x30 + :flag-assert #x900000030 + ) +|# + +#| +(deftype generic-tie-work (structure) + ((control generic-tie-control :inline :offset-assert 0) + (interp-job generic-interp-job :inline :offset-assert 60) + (shadow generic-tie-shadow :inline :offset-assert 76) + (input-a generic-tie-input :inline :offset-assert 128) + (input-b generic-tie-input :inline :offset-assert 3376) + (inst-buf generic-tie-instance :inline :offset-assert 6624) + (palette-buf rgba 128 :offset-assert 6992) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x1d50 + :flag-assert #x900001d50 + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ocean-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype ocean-corner (structure) + ((bsphere sphere :inline :offset-assert 0) + (start-corner vector :inline :offset-assert 16) + (y-scales vector :inline :offset-assert 32) + (alphas vector :inline :offset-assert 48) + (colors uint32 4 :offset-assert 64) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x50 + :flag-assert #x900000050 + ) +|# + +#| +(deftype ocean-wave-info (structure) + ((frequency float :offset-assert 0) + (amplitude float :offset-assert 4) + (wave-speed float :offset-assert 8) + (angle float :offset-assert 12) + (kx float :offset-assert 16) + (ky float :offset-assert 20) + (w float :offset-assert 24) + (flags int32 :offset-assert 28) + ) + :method-count-assert 9 + :size-assert #x20 + :flag-assert #x900000020 + ) +|# + +#| +(deftype ocean-vertex (structure) + ((pos vector :inline :offset-assert 0) + (stq vector :inline :offset-assert 16) + (col vector :inline :offset-assert 32) + ) + :method-count-assert 9 + :size-assert #x30 + :flag-assert #x900000030 + ) +|# + +#| +(deftype ocean-spheres (structure) + ((spheres sphere 36 :offset-assert 0) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x240 + :flag-assert #x900000240 + ) +|# + +#| +(deftype ocean-colors (structure) + ((colors rgba 2548 :offset-assert 0) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x27d0 + :flag-assert #x9000027d0 + ) +|# + +#| +(deftype ocean-colors-float (structure) + ((colors vector 2548 :offset-assert 0) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x9f40 + :flag-assert #x900009f40 + ) +|# + +#| +(deftype ocean-mid-mask (structure) + ((mask uint8 8 :offset-assert 0) ;; guessed by decompiler + (dword uint64 :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +#| +(deftype ocean-mid-indices (basic) + ((data uint16 36 :offset-assert 4) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x4c + :flag-assert #x90000004c + ) +|# + +#| +(deftype ocean-mid-masks (basic) + ((data (inline-array ocean-mid-mask) :offset-assert 4) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +#| +(deftype ocean-trans-mask (structure) + ((mask uint8 4 :offset-assert 0) ;; guessed by decompiler + (word int32 :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x4 + :flag-assert #x900000004 + ) +|# + +#| +(deftype ocean-trans-index (structure) + ((parent int16 :offset-assert 0) + (child int16 :offset-assert 2) + ) + :method-count-assert 9 + :size-assert #x4 + :flag-assert #x900000004 + ) +|# + +#| +(deftype ocean-trans-indices (basic) + ((data ocean-trans-index 2304 :offset-assert 4) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x2404 + :flag-assert #x900002404 + ) +|# + +#| +(deftype ocean-near-index (structure) + ((data uint16 16 :offset-assert 0) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x20 + :flag-assert #x900000020 + ) +|# + +#| +(deftype ocean-near-indices (basic) + ((data (inline-array ocean-near-index) :offset-assert 4) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +#| +(deftype ocean-near-colors (structure) + ((color0 vector :inline :offset-assert 0) + (color1 vector :inline :offset-assert 16) + (color2 vector :inline :offset-assert 32) + (color3 vector :inline :offset-assert 48) + ) + :method-count-assert 9 + :size-assert #x40 + :flag-assert #x900000040 + ) +|# + +#| +(deftype ocean-trans-strip (structure) + ((verts uint128 10 :offset-assert 0) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #xa0 + :flag-assert #x9000000a0 + ) +|# + +#| +(deftype ocean-trans-strip-array (structure) + ((data ocean-trans-strip 4 :offset-assert 0) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x280 + :flag-assert #x900000280 + ) +|# + +#| +(deftype ocean-wave-data (structure) + ((data uint8 1024 :offset-assert 0) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x400 + :flag-assert #x900000400 + ) +|# + +#| +(deftype ocean-wave-frames (structure) + ((frame ocean-wave-data 64 :offset-assert 0) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x0 + :heap-base #x1 + :flag-assert #x900010000 + ) +|# + +#| +(deftype ocean-texture-constants (structure) + ((giftag qword :inline :offset-assert 0) ;; gs-gif-tag :inline + (buffers vector4w :inline :offset-assert 16) + (dests vector4w :inline :offset-assert 32) + (start vector :inline :offset-assert 48) + (offsets vector :inline :offset-assert 64) + (constants vector :inline :offset-assert 80) + (cam-nrm vector :inline :offset-assert 96) + ) + :method-count-assert 9 + :size-assert #x70 + :flag-assert #x900000070 + ) +|# + +#| +(deftype ocean-mid-vertex (structure) + ((stq vector :inline :offset-assert 0) + (col vector :inline :offset-assert 16) + (pos vector :inline :offset-assert 32) + ) + :method-count-assert 9 + :size-assert #x30 + :flag-assert #x900000030 + ) +|# + +#| +(deftype ocean-mid-constants (structure) + ((hmge-scale vector :inline :offset-assert 0) + (inv-hmge-scale vector :inline :offset-assert 16) + (hvdf-offset vector :inline :offset-assert 32) + (fog vector :inline :offset-assert 48) + (constants vector :inline :offset-assert 64) + (constants2 vector :inline :offset-assert 80) + (drw-fan qword :inline :offset-assert 96) ;; gs-gif-tag :inline + (env-fan qword :inline :offset-assert 112) ;; gs-gif-tag :inline + (drw-adgif qword :inline :offset-assert 128) ;; gs-gif-tag :inline + (drw-texture adgif-shader :inline :offset-assert 144) + (drw-strip-0 qword :inline :offset-assert 224) ;; gs-gif-tag :inline + (drw-strip-1 qword :inline :offset-assert 240) ;; gs-gif-tag :inline + (env-adgif qword :inline :offset-assert 256) ;; gs-gif-tag :inline + (env-texture adgif-shader :inline :offset-assert 272) + (env-strip qword :inline :offset-assert 352) ;; gs-gif-tag :inline + (env-color vector :inline :offset-assert 368) + (index-table vector4w 8 :offset-assert 384) ;; guessed by decompiler + (pos0 vector :inline :offset-assert 512) + (pos1 vector :inline :offset-assert 528) + (pos2 vector :inline :offset-assert 544) + (pos3 vector :inline :offset-assert 560) + ) + :method-count-assert 9 + :size-assert #x240 + :flag-assert #x900000240 + ) +|# + +#| +(deftype ocean-mid-upload (structure) + ((rot matrix :inline :offset-assert 0) + (matrix matrix :inline :offset-assert 64) + (colors uint128 108 :offset-assert 128) ;; guessed by decompiler + (masks uint128 2 :offset-assert 1856) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x760 + :flag-assert #x900000760 + ) +|# + +#| +(deftype ocean-mid-upload2 (structure) + ((rot matrix :inline :offset-assert 0) + (matrix matrix :inline :offset-assert 64) + (count vector4w :inline :offset-assert 128) + (tex0 vector :inline :offset-assert 144) + (tex1 vector :inline :offset-assert 160) + (tex2 vector :inline :offset-assert 176) + (tex3 vector :inline :offset-assert 192) + (clr0 vector :inline :offset-assert 208) + (clr1 vector :inline :offset-assert 224) + (clr2 vector :inline :offset-assert 240) + (clr3 vector :inline :offset-assert 256) + (verts uint128 18 :offset-assert 272) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x230 + :flag-assert #x900000230 + ) +|# + +#| +(deftype ocean-mid-work (structure) + ((env0 vector :inline :offset-assert 0) + (env1 vector :inline :offset-assert 16) + (env2 vector :inline :offset-assert 32) + (hmg0 vector :inline :offset-assert 48) + (hmg1 vector :inline :offset-assert 64) + (hmg2 vector :inline :offset-assert 80) + (indices uint128 16 :offset-assert 96) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x160 + :flag-assert #x900000160 + ) +|# + +#| +(deftype ocean-near-constants (structure) + ((hmge-scale vector :inline :offset-assert 0) + (inv-hmge-scale vector :inline :offset-assert 16) + (hvdf-offset vector :inline :offset-assert 32) + (fog vector :inline :offset-assert 48) + (constants vector :inline :offset-assert 64) + (constants2 vector :inline :offset-assert 80) + (constants3 vector :inline :offset-assert 96) + (constants4 vector :inline :offset-assert 112) + (constants5 vector :inline :offset-assert 128) + (drw-fan qword :inline :offset-assert 144) ;; gs-gif-tag :inline + (drw2-fan qword :inline :offset-assert 160) ;; gs-gif-tag :inline + (env-fan qword :inline :offset-assert 176) ;; gs-gif-tag :inline + (drw-adgif qword :inline :offset-assert 192) ;; gs-gif-tag :inline + (drw-texture adgif-shader :inline :offset-assert 208) + (drw-strip qword :inline :offset-assert 288) ;; gs-gif-tag :inline + (env-adgif qword :inline :offset-assert 304) ;; gs-gif-tag :inline + (env-texture adgif-shader :inline :offset-assert 320) + (env-strip qword :inline :offset-assert 400) ;; gs-gif-tag :inline + (env-color vector :inline :offset-assert 416) + (drw2-adgif qword :inline :offset-assert 432) ;; gs-gif-tag :inline + (drw2-tex0 qword :inline :offset-assert 448) + (drw2-frame qword :inline :offset-assert 464) + (drw2-strip qword :inline :offset-assert 480) ;; gs-gif-tag :inline + (drw3-adgif qword :inline :offset-assert 496) ;; gs-gif-tag :inline + (drw3-frame qword :inline :offset-assert 512) ;; gs-adcmd :inline + (index-table vector4w 4 :offset-assert 528) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x250 + :flag-assert #x900000250 + ) +|# + +#| +(deftype ocean-near-upload (structure) + ((rot matrix :inline :offset-assert 0) + (matrix matrix :inline :offset-assert 64) + (masks uint128 2 :offset-assert 128) ;; guessed by decompiler + (start-height vector4w :inline :offset-assert 160) + (start-st vector :inline :offset-assert 176) + (near-colors ocean-near-colors :inline :offset-assert 192) + ) + :method-count-assert 9 + :size-assert #x100 + :flag-assert #x900000100 + ) +|# + +#| +(deftype ocean-near-vertex (structure) + ((stq vector :inline :offset-assert 0) + (clr vector :inline :offset-assert 16) + (pos vector :inline :offset-assert 32) + ) + :method-count-assert 9 + :size-assert #x30 + :flag-assert #x900000030 + ) +|# + +#| +(deftype ocean-near-work (structure) + ((verts-ptr vector :inline :offset-assert 0) + (indices uint128 16 :offset-assert 16) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x110 + :flag-assert #x900000110 + ) +|# + +#| +(deftype ocean-height-array (structure) + ((data float 1024 :offset-assert 0) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x1000 + :flag-assert #x900001000 + ) +|# + +#| +(deftype ocean-vert-array (structure) + ((data vector 2048 :offset-assert 0) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x8000 + :flag-assert #x900008000 + ) +|# + +#| +(deftype ocean-map (structure) + ((start-corner vector :inline :offset-assert 0) + (far-color vector :inline :offset-assert 16) + (ocean-colors ocean-colors :offset-assert 32) + (ocean-mid-indices ocean-mid-indices :offset-assert 36) ;; guessed by decompiler + (ocean-trans-indices ocean-trans-indices :offset-assert 40) ;; guessed by decompiler + (ocean-near-indices ocean-near-indices :offset-assert 44) ;; guessed by decompiler + (ocean-mid-masks ocean-mid-masks :offset-assert 48) ;; guessed by decompiler + ) + :method-count-assert 11 + :size-assert #x34 + :flag-assert #xb00000034 + (:methods + (ocean-map-method-9 () none) ;; 9 ;; (set-height! (_type_ float) none 9) + (ocean-map-method-10 () none) ;; 10 ;; (get-base-height (_type_) float 10) + ) + ) +|# + +#| +(deftype ocean (ocean-map) + ((off symbol :offset-assert 52) ;; guessed by decompiler + (near-off symbol :offset-assert 56) ;; guessed by decompiler + (mid-off symbol :offset-assert 60) ;; guessed by decompiler + (far-on symbol :offset-assert 64) ;; guessed by decompiler + (all-on basic :offset-assert 68) + (ocean-facing uint32 :offset-assert 72) + (heights ocean-height-array :offset-assert 76) + (heights2 ocean-height-array :offset-assert 80) + (verts ocean-vert-array :offset-assert 84) + (ocean-near-translucent? symbol :offset-assert 88) ;; guessed by decompiler + (deltas vector :inline :offset-assert 96) + (map-min vector :inline :offset-assert 112) + (map-max vector :inline :offset-assert 128) + (interp vector :inline :offset-assert 144) + (corner-array ocean-corner 25 :offset-assert 160) ;; guessed by decompiler + (corner-count int32 :offset-assert 2160) + (temp-vecs vector 4 :offset-assert 2176) ;; guessed by decompiler + (mid-mask-ptrs pointer 36 :offset-assert 2240) ;; guessed by decompiler + (mid-camera-masks uint64 36 :offset-assert 2384) ;; guessed by decompiler + (trans-mask-ptrs pointer 64 :offset-assert 2672) ;; guessed by decompiler + (trans-camera-masks ocean-trans-mask 16 :offset-assert 2928) ;; guessed by decompiler + (trans-temp-masks uint32 16 :offset-assert 2992) ;; guessed by decompiler + (sprite-tmpl dma-gif-packet :inline :offset-assert 3056) + (sprite-tmpl2 dma-gif-packet :inline :offset-assert 3088) + (sprite-tmpl3 dma-gif-packet :inline :offset-assert 3120) + (adgif-tmpl dma-gif-packet :inline :offset-assert 3152) + (line-tmpl dma-gif-packet :inline :offset-assert 3184) + (sun-tmpl dma-gif-packet :inline :offset-assert 3216) + (erase-tmpl dma-gif-packet :inline :offset-assert 3248) + (haze-tmpl dma-gif-packet :inline :offset-assert 3280) + (cloud-tmpl dma-gif-packet :inline :offset-assert 3312) + (clut-tmpl dma-gif-packet :inline :offset-assert 3344) + (cloud-lights cloud-lights :inline :offset-assert 3376) + (haze-lights haze-lights :inline :offset-assert 3536) + (constant vector :inline :offset-assert 3664) + (sky-color vector :inline :offset-assert 3680) + (haze-verts vector4w 32 :offset-assert 3696) ;; guessed by decompiler + (cloud-verts vector4w 36 :offset-assert 4208) ;; guessed by decompiler + (cloud-nrms vector 36 :offset-assert 4784) ;; guessed by decompiler + (cloud-col0 vector 36 :offset-assert 5360) ;; guessed by decompiler + (cloud-col1 vector 36 :offset-assert 5936) ;; guessed by decompiler + (cloud-st0 vector 36 :offset-assert 6512) ;; guessed by decompiler + (cloud-st1 vector 36 :offset-assert 7088) ;; guessed by decompiler + (color80808080 vector4w :inline :offset-assert 7664) + (color80808040 vector4w :inline :offset-assert 7680) + (color80808000 vector4w :inline :offset-assert 7696) + (st0000 vector :inline :offset-assert 7712) + (st0505 vector :inline :offset-assert 7728) + (st1010 vector :inline :offset-assert 7744) + (uv00 vector4w :inline :offset-assert 7760) + (uv44 vector4w :inline :offset-assert 7776) + (uv88 vector4w :inline :offset-assert 7792) + (uv1010 vector4w :inline :offset-assert 7808) + (uv2020 vector4w :inline :offset-assert 7824) + (uv4040 vector4w :inline :offset-assert 7840) + (uv8080 vector4w :inline :offset-assert 7856) + (xy00 vector4w :inline :offset-assert 7872) + (xy88 vector4w :inline :offset-assert 7888) + (xy1010 vector4w :inline :offset-assert 7904) + (xy2020 vector4w :inline :offset-assert 7920) + (xy4040 vector4w :inline :offset-assert 7936) + (xy8080 vector4w :inline :offset-assert 7952) + (cloud-alpha uint8 36 :offset-assert 7968) ;; guessed by decompiler + (near-mask-indices uint16 16 :offset-assert 8004) ;; guessed by decompiler + (mid-minx uint8 :offset-assert 8036) + (mid-maxx uint8 :offset-assert 8037) + (mid-minz uint8 :offset-assert 8038) + (mid-maxz uint8 :offset-assert 8039) + (near-minx uint8 :offset-assert 8040) + (near-maxx uint8 :offset-assert 8041) + (near-minz uint8 :offset-assert 8042) + (near-maxz uint8 :offset-assert 8043) + (temp-minx uint8 :offset-assert 8044) + (temp-maxx uint8 :offset-assert 8045) + (temp-minz uint8 :offset-assert 8046) + (temp-maxz uint8 :offset-assert 8047) + (tex1 uint64 :offset-assert 8048) ;; gs-tex1 + (tex1-near uint64 :offset-assert 8056) ;; gs-tex1 + (corner00 float :offset-assert 8064) + (corner01 float :offset-assert 8068) + (corner10 float :offset-assert 8072) + (corner11 float :offset-assert 8076) + (frame-num float :offset-assert 8080) + (frame-speed float :offset-assert 8084) + (frame-num2 float :offset-assert 8088) + (frame-speed2 float :offset-assert 8092) + (cloud-interp float :offset-assert 3676) + (scales vector :inline :offset-assert 8096) + (mask-hi vector4w :inline :offset-assert 8112) + (mask-lo vector4w :inline :offset-assert 8128) + (lights vu-lights :inline :offset-assert 8144) + (uv-scroll-0 vector4w :inline :offset-assert 8256) + (uv-scroll-1 vector4w :inline :offset-assert 8272) + (st-scroll vector2 :inline :offset-assert 8288) + (wait-to-vu0 uint32 :offset-assert 8296) + ) + :method-count-assert 92 + :size-assert #x206c + :flag-assert #x5c0000206c + (:methods + (ocean-method-11 () none) ;; 11 ;; (get-height (_type_ vector symbol) float 11) + (ocean-method-12 () none) ;; 12 ;; (draw! (_type_) none 12) + (ocean-method-13 () none) ;; 13 ;; (update-map (_type_) none 13) + (ocean-method-14 () none) ;; 14 ;; (interp-wave (_type_ ocean-wave-info uint float) none 14) + (ocean-method-15 () none) ;; 15 ;; (ocean-method-15 (_type_ matrix matrix) none 15) + (ocean-method-16 () none) ;; 16 ;; (generate-verts (_type_ ocean-vert-array ocean-height-array) none 16) + (ocean-method-17 () none) ;; 17 ;; (add-colors! (_type_ vector ocean-vertex) none 17) + (ocean-method-18 () none) ;; 18 ;; (ocean-method-18 (_type_ (pointer ocean-colors) (pointer ocean-colors)) none 18) + (ocean-method-19 () none) ;; 19 ;; (init-buffer! (_type_ dma-buffer) none 19) + (ocean-method-20 () none) ;; 20 ;; (end-buffer! (_type_ dma-buffer) none 20) + (ocean-method-21 () none) ;; 21 ;; (set-corners! (_type_ float float) float 21) + (ocean-method-22 () none) ;; 22 ;; (ocean-near-add-call (_type_ dma-buffer int) none 22) + (ocean-method-23 () none) ;; 23 ;; (ocean-near-add-call-flush (_type_ dma-buffer int) none 23) + (ocean-method-24 () none) ;; 24 ;; (ocean-near-setup-constants (_type_ ocean-near-constants) none 24) + (ocean-method-25 () none) ;; 25 ;; (ocean-near-add-constants (_type_ dma-buffer) none 25) + (ocean-method-26 () none) ;; 26 ;; (ocean-near-add-heights (_type_ dma-buffer) none 26) + (ocean-method-27 () none) ;; 27 ;; (ocean-near-add-matrices (_type_ dma-buffer vector) none 27) + (ocean-method-28 () none) ;; 28 ;; (ocean-near-add-upload (_type_ dma-buffer uint uint) none 28) + (ocean-method-29 () none) ;; 29 ;; (draw-ocean-near (_type_ dma-buffer) none 29) + (ocean-method-30 () none) ;; 30 ;; (ocean-trans-camera-masks-bit? (_type_ uint uint) symbol 30) + (ocean-method-31 () none) ;; 31 ;; (ocean-trans-mask-ptrs-bit? (_type_ int int) symbol 31) + (ocean-method-32 () none) ;; 32 ;; (ocean-trans-mask-ptrs-set! (_type_ uint uint) symbol 32) + (ocean-method-33 () none) ;; 33 ;; (ocean-trans-add-upload-table (_type_ dma-buffer uint uint int int symbol) none 33) + (ocean-method-34 () none) ;; 34 ;; (ocean-trans-add-upload-strip (_type_ dma-buffer uint uint int int int) none 34) + (ocean-method-35 () none) ;; 35 ;; (ocean-transition-check (_type_ ocean-trans-mask int int vector) none 35) + (ocean-method-36 () none) ;; 36 ;; (ocean-make-trans-camera-masks (_type_ uint uint uint uint) none 36) + (ocean-method-37 () none) ;; 37 ;; (ocean-trans-add-upload (_type_ dma-buffer uint uint) none 37) + (ocean-method-38 () none) ;; 38 ;; (draw-ocean-transition-seams (_type_ dma-buffer) none 38) + (ocean-method-39 () none) ;; 39 ;; (ocean-trans-add-constants (_type_ dma-buffer) none 39) + (ocean-method-40 () none) ;; 40 ;; (draw-ocean-transition (_type_ dma-buffer) none 40) + (ocean-method-41 () none) ;; 41 ;; (ocean-mid-add-call (_type_ dma-buffer int) none 41) + (ocean-method-42 () none) ;; 42 ;; (ocean-mid-add-call-flush (_type_ dma-buffer uint) none 42) + (ocean-method-43 () none) ;; 43 ;; (ocean-matrix*! (_type_ matrix matrix matrix) matrix 43) + (ocean-method-44 () none) ;; 44 ;; (ocean-vector-matrix*! (_type_ vector vector matrix) vector 44) + (ocean-method-45 () none) ;; 45 ;; (ocean-mid-add-matrices (_type_ dma-buffer vector) none 45) + (ocean-method-46 () none) ;; 46 ;; (ocean-mid-check (_type_ pointer int int vector) symbol 46) + (ocean-method-47 () none) ;; 47 ;; (ocean-mid-setup-constants (_type_ ocean-mid-constants) none 47) + (ocean-method-48 () none) ;; 48 ;; (ocean-mid-add-constants (_type_ dma-buffer) none 48) + (ocean-method-49 () none) ;; 49 ;; (ocean-mid-camera-masks-bit? (_type_ uint uint) symbol 49) + (ocean-method-50 () none) ;; 50 ;; (ocean-mid-mask-ptrs-bit? (_type_ uint uint) symbol 50) + (ocean-method-51 () none) ;; 51 ;; (ocean-mid-camera-masks-set! (_type_ uint uint) symbol 51) + (ocean-method-52 () none) ;; 52 ;; (ocean-mid-add-upload (_type_ dma-buffer int int int int float) none 52) + (ocean-method-53 () none) ;; 53 ;; (ocean-mid-add-upload-table (_type_ dma-buffer uint uint (pointer float) int symbol) none 53) + (ocean-method-54 () none) ;; 54 ;; (ocean-mid-add-upload-top (_type_ dma-buffer uint uint) none 54) + (ocean-method-55 () none) ;; 55 ;; (ocean-mid-add-upload-middle (_type_ dma-buffer uint uint) none 55) + (ocean-method-56 () none) ;; 56 ;; (ocean-mid-add-upload-bottom (_type_ dma-buffer uint uint) none 56) + (ocean-method-57 () none) ;; 57 ;; (ocean-seams-add-constants (_type_ dma-buffer) none 57) + (ocean-method-58 () none) ;; 58 ;; (draw-ocean-mid-seams (_type_ dma-buffer) none 58) + (ocean-method-59 () none) ;; 59 ;; (draw-ocean-mid (_type_ dma-buffer) none 59) + (ocean-method-60 () none) ;; 60 ;; (ocean-method-60 (_type_ dma-buffer) none 60) + (ocean-method-61 () none) ;; 61 ;; (ocean-method-61 (_type_ dma-buffer) none 61) + (ocean-method-62 () none) ;; 62 ;; (ocean-method-62 (_type_ dma-buffer) none 62) + (ocean-method-63 () none) ;; 63 ;; (ocean-method-63 (_type_ dma-buffer) none 63) + (ocean-method-64 () none) ;; 64 ;; (ocean-method-64 (_type_ dma-buffer) none 64) + (ocean-method-65 () none) ;; 65 ;; (ocean-method-65 (_type_ dma-buffer) none 65) + (ocean-method-66 () none) ;; 66 ;; (ocean-method-66 (_type_ dma-buffer) none 66) + (ocean-method-67 () none) ;; 67 ;; (ocean-method-67 (_type_ dma-buffer) none 67) + (ocean-method-68 () none) ;; 68 ;; (render-ocean-far (_type_ dma-buffer int) none 68) + (ocean-method-69 () none) ;; 69 ;; (draw-ocean-far (_type_ dma-buffer) none 69) + (ocean-method-70 () none) ;; 70 ;; (ocean-texture-setup-constants (_type_ ocean-texture-constants) none 70) + (ocean-method-71 () none) ;; 71 ;; (ocean-texture-add-constants (_type_ dma-buffer) none 71) + (ocean-method-72 () none) ;; 72 ;; (ocean-texture-add-envmap (_type_ dma-buffer) none 72) + (ocean-method-73 () none) ;; 73 ;; (ocean-texture-add-verts (_type_ dma-buffer int) none 73) + (ocean-method-74 () none) ;; 74 ;; (ocean-texture-add-verts-last (_type_ dma-buffer int int) none 74) + (ocean-method-75 () none) ;; 75 ;; (ocean-texture-add-call-start (_type_ dma-buffer) none 75) + (ocean-method-76 () none) ;; 76 ;; (ocean-texture-add-call-rest (_type_ dma-buffer) none 76) + (ocean-method-77 () none) ;; 77 ;; (ocean-texture-add-call-done (_type_ dma-buffer) none 77) + (ocean-method-78 () none) ;; 78 ;; (draw-ocean-texture (_type_ dma-buffer int) none 78) + (ocean-method-79 () none) ;; 79 ;; (ocean-method-79 (_type_ dma-buffer) none 79) + (ocean-method-80 () none) ;; 80 ;; (ocean-method-80 (_type_ (pointer rgba)) none 80) + (ocean-method-81 () none) ;; 81 ;; (ocean-method-81 (_type_ dma-buffer) int 81) + (ocean-method-82 () none) ;; 82 ;; (draw-envmap-debug (_type_ dma-buffer) none 82) + (ocean-method-83 () none) ;; 83 ;; (ocean-method-83 (_type_ dma-buffer float) none 83) + (ocean-method-84 () none) ;; 84 ;; (ocean-method-84 (_type_ dma-buffer sky-upload-data vector4w float) none 84) + (ocean-method-85 () none) ;; 85 ;; (ocean-method-85 (_type_ dma-buffer) none 85) + (ocean-method-86 () none) ;; 86 ;; (ocean-method-86 (_type_ vector vector vector vector) none 86) + (ocean-method-87 () none) ;; 87 ;; (ocean-method-87 (_type_ vector vector vector) none 87) + (ocean-method-88 () none) ;; 88 ;; (ocean-method-88 (_type_ dma-buffer) none 88) + (ocean-method-89 () none) ;; 89 ;; (ocean-method-89 (_type_ dma-buffer) none 89) + (ocean-method-90 () none) ;; 90 ;; (rgba-to-vector! (_type_ vector (pointer rgba)) none 90) + (ocean-method-91 () none) ;; 91 ;; (do-tex-scroll! (_type_) none 91) + ) + ) +|# + +;; (define-extern *ocean-map* object) ;; ocean-map +;; (define-extern *ocean* object) ;; ocean + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; onintent-scenes ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; texture ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype texture-page-dir (basic) + () + :method-count-assert 10 + :size-assert #x14 + :flag-assert #xa00000014 + (:methods + (texture-page-dir-method-9 () none) ;; 9 ;; (unlink-shaders-in-heap (_type_ kheap) int 9) + ) + ) +|# + +;; (define-extern texture-bpp function) ;; (function gs-psm int) +;; (define-extern texture-qwc function) ;; (function int int gs-psm int) +;; (define-extern physical-address function) ;; (function pointer pointer) +;; (define-extern dma-buffer-add-ref-texture function) ;; (function dma-buffer pointer int int gs-psm none) +;; (define-extern gs-find-block function) ;; (function int int gs-psm int) +;; (define-extern gs-page-width function) ;; (function gs-psm int) +;; (define-extern gs-page-height function) ;; (function gs-psm int) +;; (define-extern gs-block-width function) ;; (function gs-psm int) +;; (define-extern gs-block-height function) ;; (function gs-psm int) +;; (define-extern gs-largest-block function) ;; (function int int gs-psm int) +;; (define-extern gs-blocks-used function) ;; (function int int gs-psm int) +;; (define-extern texture-page-default-allocate function) ;; (function texture-pool texture-page kheap int texture-page) +;; (define-extern texture-page-common-allocate function) ;; (function texture-pool texture-page kheap int texture-page) +;; (define-extern texture-page-font-allocate function) ;; (function texture-pool texture-page kheap int texture-page) +;; (define-extern texture-page-common-boot-allocate function) ;; (function texture-pool texture-page kheap int texture-page) +;; (define-extern upload-vram-data function) ;; (function dma-buffer int pointer int int none) +;; (define-extern upload-vram-pages function) ;; (function texture-pool texture-pool-segment texture-page tex-upload-mode bucket-id int) +;; (define-extern update-vram-pages function) ;; (function texture-pool texture-pool-segment texture-page tex-upload-mode int) +;; (define-extern upload-vram-pages-pris function) ;; (function texture-pool texture-pool-segment texture-page bucket-id (pointer int32) int) +;; (define-extern texture-page-level-allocate function) ;; (function texture-pool texture-page kheap int texture-page) +;; (define-extern texture-page-size-check function) ;; (function texture-pool level symbol int) +;; (define-extern set-skull-gem-masks function) ;; (function none) +;; (define-extern upload-textures function) ;; (function texture-pool none) +;; (define-extern *txt-dma-list* object) ;; dma-buffer +;; (define-extern texture-relocate function) ;; (function dma-buffer texture int gs-psm int dma-buffer) +;; (define-extern relocate-later function) ;; (function symbol) +;; (define-extern texture-page-login function) ;; (function texture-id (function texture-pool texture-page kheap int texture-page) kheap texture-page-dir-entry) +;; (define-extern lookup-texture-by-id function) ;; (function texture-id texture) +;; (define-extern lookup-texture-by-id-fast function) ;; (function texture-id texture) +;; (define-extern lookup-texture-by-name function) ;; (function string string (pointer texture-page) texture) +;; (define-extern lookup-texture-id-by-name function) ;; (function string string texture-id) +;; (define-extern lookup-level-texture-by-name function) ;; (function string level (pointer texture-page) texture) +;; (define-extern lookup-tex-id-from-texture function) +;; (define-extern lookup-level-texture-id-by-name function) +;; (define-extern *shader-list* object) ;; pair +;; (define-extern *edit-shader* object) ;; texture-id +;; (define-extern link-texture-by-id function) ;; (function texture-id adgif-shader texture-page-dir-entry) +;; (define-extern adgif-shader<-texture! function) ;; (function adgif-shader texture adgif-shader) +;; (define-extern adgif-shader-update! function) ;; (function adgif-shader texture none) +;; (define-extern adgif-shader<-texture-with-update! function) ;; (function adgif-shader texture adgif-shader) +;; (define-extern hack-texture function) ;; (function texture float) +;; (define-extern adgif-shader-login function) ;; (function adgif-shader texture) +;; (define-extern adgif-shader-login-no-remap function) ;; (function adgif-shader texture) +;; (define-extern adgif-shader-login-fast function) ;; (function adgif-shader texture) +;; (define-extern adgif-shader-login-no-remap-fast function) ;; (function adgif-shader texture) +;; (define-extern adgif-shader<-texture-simple! function) ;; (function adgif-shader texture adgif-shader) +;; (define-extern set-dirty-mask! function) ;; (function level int int int none) +;; (define-extern texture-page-dir-inspect function) ;; (function texture-page-dir symbol none) +;; (define-extern *texture-pool* object) ;; texture-pool + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; prebot-extras ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype cav-break-bridge (process-drawable) + () + :method-count-assert 21 + :size-assert #xc8 + :flag-assert #x15005000c8 + (:state-methods + idle ;; 20 + ) + ) +|# + +#| +(deftype prebot-shockwave-joint-position (structure) + ((joint-index int8 :offset-assert 0) + (position vector :inline :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x20 + :flag-assert #x900000020 + ) +|# + +#| +(deftype prebot-gun-shot (projectile) + ((whoosh-sound uint32 :offset-assert 512) + ) + :method-count-assert 41 + :size-assert #x204 + :flag-assert #x2901900204 + (:state-methods + moving ;; 23 + impact ;; 22 + ) + ) +|# + +#| +(deftype cav-exit-door (process-drawable) + ((initial-y float :offset-assert 200) + ) + :method-count-assert 22 + :size-assert #xcc + :flag-assert #x16005000cc + (:state-methods + rise ;; 21 + idle ;; 20 + ) + ) +|# + +;; (define-extern *prebot-eco-pillar-debris-params* debris-static-params) +;; (define-extern prebot-eco-pillar-handler function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; main-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype frame-stats (structure) + ((field-time time-frame 2 :offset-assert 0) ;; guessed by decompiler + (field int32 :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x14 + :flag-assert #x900000014 + ) +|# + +#| +(deftype screen-filter (basic) + ((draw? symbol :offset-assert 4) ;; guessed by decompiler + (bucket int32 :offset-assert 8) ;; bucket-id + (depth int32 :offset-assert 12) + (ztest uint64 :offset-assert 16) + (color vector :inline :offset-assert 32) + (color-src vector :inline :offset-assert 48) + (color-dest vector :inline :offset-assert 64) + (extra vector :inline :offset-assert 80) + (speed float :offset-assert 80) + (current-interp float :offset-assert 84) + (lock-vsync? basic :offset-assert 96) + ) + :method-count-assert 12 + :size-assert #x64 + :flag-assert #xc00000064 + (:methods + (screen-filter-method-9 () none) ;; 9 ;; (draw (_type_) none 9) + (screen-filter-method-10 () none) ;; 10 ;; (setup (_type_ vector vector float bucket-id) none 10) + (screen-filter-method-11 () none) ;; 11 ;; (disable (_type_) none 11) + ) + ) +|# + +#| +(deftype col-rend (basic) + ((draw? symbol :offset-assert 4) ;; guessed by decompiler + (outline? symbol :offset-assert 8) ;; guessed by decompiler + (show-back-faces? symbol :offset-assert 12) ;; guessed by decompiler + (show-normals? symbol :offset-assert 16) ;; guessed by decompiler + (ghost-hidden? symbol :offset-assert 20) ;; guessed by decompiler + (show-only uint32 :offset-assert 24) + (cspec collide-spec :offset-assert 28) ;; guessed by decompiler + (track uint8 :offset-assert 32) + (bbox-radius float :offset-assert 36) + (bbox-center vector :inline :offset-assert 48) + (camera-to-bbox-dist float :offset-assert 64) + ) + :method-count-assert 10 + :size-assert #x44 + :flag-assert #xa00000044 + (:methods + (col-rend-method-9 () none) ;; 9 ;; (col-rend-method-9 (_type_) none 9) + ) + ) +|# + +;; (define-extern *stats-poly* object) ;; symbol +;; (define-extern *stats-memory* object) ;; symbol +;; (define-extern *stats-memory-short* object) ;; symbol +;; (define-extern *stats-memory-level-index* object) ;; int +;; (define-extern *stats-collide* object) ;; symbol +;; (define-extern *stats-bsp* object) ;; symbol +;; (define-extern *stats-buffer* object) ;; symbol +;; (define-extern *stats-target* object) ;; symbol +;; (define-extern *stats-profile-bars* object) ;; symbol +;; (define-extern *stats-perf* object) ;; symbol +;; (define-extern *artist-all-visible* object) ;; symbol +;; (define-extern *artist-flip-visible* object) ;; symbol +;; (define-extern *artist-fix-visible* object) ;; symbol +;; (define-extern *artist-fix-frustum* object) ;; symbol +;; (define-extern *artist-error-spheres* object) ;; symbol +;; (define-extern *artist-use-menu-subdiv* object) ;; symbol +;; (define-extern *display-profile* object) ;; symbol +;; (define-extern *display-sidekick-stats* object) ;; symbol +;; (define-extern *display-quad-stats* object) ;; symbol +;; (define-extern *display-tri-stats* object) ;; symbol +;; (define-extern *display-ground-stats* object) ;; symbol +;; (define-extern *display-collision-marks* object) ;; symbol +;; (define-extern *display-collide-cache* object) ;; symbol +;; (define-extern *display-render-collision* object) ;; symbol +;; (define-extern *display-hipri-collision-marks* object) ;; symbol +;; (define-extern *display-edge-collision-marks* object) ;; symbol +;; (define-extern *display-geo-marks* object) ;; symbol +;; (define-extern *display-target-marks* object) ;; symbol +;; (define-extern *target-rc-board-controls* object) ;; symbol +;; (define-extern *display-collide-history* object) ;; int +;; (define-extern *amy-cam* object) +;; (define-extern *display-xyz-axes* object) ;; symbol +;; (define-extern *display-cam-collide-history* object) ;; symbol +;; (define-extern *record-cam-collide-history* object) ;; symbol +;; (define-extern *display-cam-master-marks* object) ;; symbol +;; (define-extern *display-cam-other* object) ;; symbol +;; (define-extern *display-camera-marks* object) ;; symbol +;; (define-extern *camera-no-mip-correction* object) ;; symbol +;; (define-extern *camera-turbo-free* object) +;; (define-extern *display-cam-los-info* object) ;; symbol +;; (define-extern *display-cam-los-debug* object) ;; symbol +;; (define-extern *display-cam-los-marks* object) ;; symbol +;; (define-extern *display-cam-coll-marks* object) ;; symbol +;; (define-extern *display-camera-info* object) ;; symbol +;; (define-extern *display-camera-old-stats* object) ;; symbol +;; (define-extern *display-camera-last-attacker* object) ;; symbol +;; (define-extern *display-file-info* object) ;; symbol +;; (define-extern *display-actor-marks* object) ;; symbol +;; (define-extern *display-sprite-info* object) ;; symbol +;; (define-extern *display-sprite-marks* object) ;; symbol +;; (define-extern *display-sprite-spheres* object) ;; symbol +;; (define-extern *display-entity-errors* object) ;; symbol +;; (define-extern *display-capture-mode* object) +;; (define-extern *display-instance-info* object) ;; symbol +;; (define-extern *display-deci-count* object) ;; symbol +;; (define-extern *sync-dma* object) ;; symbol +;; (define-extern *display-strip-lines* object) ;; strip-lines-controls +;; (define-extern *display-battle-marks* object) ;; symbol +;; (define-extern *display-joint-axes* object) ;; symbol +;; (define-extern *display-nav-marks* object) ;; symbol +;; (define-extern *display-nav-network* object) ;; symbol +;; (define-extern *display-path-marks* object) ;; symbol +;; (define-extern *display-vol-marks* object) ;; symbol +;; (define-extern *display-water-marks* object) ;; symbol +;; (define-extern *display-nav-mesh* object) ;; symbol +;; (define-extern *display-race-mesh* object) +;; (define-extern *display-actor-pointer* object) ;; symbol +;; (define-extern *display-actor-vis* object) ;; symbol +;; (define-extern *display-actor-graph* object) ;; symbol +;; (define-extern *display-traffic-height-map* object) ;; symbol +;; (define-extern *display-trail-graph* object) ;; symbol +;; (define-extern *display-color-bars* object) ;; symbol +;; (define-extern *display-bug-report* object) ;; symbol +;; (define-extern *display-level-border* object) ;; symbol +;; (define-extern *display-memcard-info* object) ;; symbol +;; (define-extern *display-split-boxes* object) ;; symbol +;; (define-extern *display-split-box-info* object) ;; symbol +;; (define-extern *display-texture-distances* object) ;; symbol +;; (define-extern *display-texture-download* object) ;; symbol +;; (define-extern *display-art-control* object) ;; symbol +;; (define-extern *display-gui-control* object) ;; symbol +;; (define-extern *display-level-spheres* object) ;; symbol +;; (define-extern *time-of-day-fast* object) ;; symbol +;; (define-extern *display-iop-info* object) ;; symbol +;; (define-extern *ambient-sound-class* object) ;; symbol +;; (define-extern *slow-frame-rate* object) ;; symbol +;; (define-extern *display-region-marks* object) ;; symbol +;; (define-extern *execute-regions* object) ;; symbol +;; (define-extern *debug-pause* object) ;; symbol +;; (define-extern *debug-view-anims* object) ;; symbol +;; (define-extern *debug-unkillable* object) ;; symbol +;; (define-extern *debug-player-vehicle-unkillable* object) +;; (define-extern *debug-actor* object) ;; object +;; (define-extern *gun-marks* object) ;; symbol +;; (define-extern *bug-report-output-mode* object) ;; symbol +;; (define-extern *display-scene-control* object) ;; scene-controls +;; (define-extern *display-bot-marks* object) ;; bot-marks-controls +;; (define-extern *display-race-marks* object) ;; race-marks-controls +;; (define-extern *race-record-path* object) ;; symbol +;; (define-extern *select-race* object) ;; race-selection +;; (define-extern *select-race-path* object) ;; int +;; (define-extern *bot-record-path* object) ;; int +;; (define-extern *subdivide-draw-mode* object) ;; subdivide-setting +;; (define-extern *subdivide-scissor-draw-mode* object) ;; subdivide-setting +;; (define-extern *subdivide-foreground-draw-mode* object) ;; subdivide-setting +;; (define-extern *subdivide-ocean-draw-mode* object) ;; subdivide-setting +;; (define-extern *ocean-height-hack* object) ;; ocean-height-hack +;; (define-extern *dproc* object) ;; process +;; (define-extern *run* object) ;; symbol +;; (define-extern *teleport* object) ;; symbol +;; (define-extern *teleport-count* object) ;; int +;; (define-extern *draw-hook* object) ;; (function none) +;; (define-extern *debug-hook* object) ;; pair +;; (define-extern *menu-hook* object) ;; (function debug-menu-context) +;; (define-extern *progress-hook* object) ;; (function none) +;; (define-extern *dma-timeout-hook* object) ;; (function none) +;; (define-extern *frame-stats* object) ;; frame-stats +;; (define-extern *col-rend* col-rend) ;; col-rend +;; (define-extern debug-actor? function) ;; (function object symbol) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; hfrag ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *hfrag-debug* object) +;; (define-extern hfrag-vert-print function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; mspace-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype joint (basic) + ((name basic :offset-assert 4) + (number int32 :offset-assert 8) + (parent joint :offset-assert 12) ;; guessed by decompiler + (bind-pose matrix :inline :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x50 + :flag-assert #x900000050 + ) +|# + +#| +(deftype bone-cache (structure) + ((bone-matrix uint32 :offset-assert 0) + (parent-matrix uint32 :offset-assert 4) + (dummy uint32 :offset-assert 8) + (frame uint32 :offset-assert 12) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype bone (structure) + ((transform matrix :inline :offset-assert 0) + (position vector :inline :offset-assert 48) + (scale vector :inline :offset-assert 64) + ) + :method-count-assert 9 + :size-assert #x50 + :flag-assert #x900000050 + ) +|# + +#| +(deftype skeleton (inline-array-class) + ((data UNKNOWN :dynamic :offset-assert 16) + ) + :method-count-assert 14 + :size-assert #x10 + :flag-assert #xe00000010 + ) +|# + +#| +(deftype cspace (structure) + ((parent cspace :offset-assert 0) + (joint joint :offset-assert 4) ;; guessed by decompiler + (joint-num int16 :offset-assert 8) + (geo drawable :offset-assert 12) ;; guessed by decompiler + (bone bone :offset-assert 16) + (param0 (function cspace transformq none) :offset-assert 20) ;; guessed by decompiler + (param1 basic :offset-assert 24) + (param2 basic :offset-assert 28) + ) + :method-count-assert 10 + :size-assert #x20 + :flag-assert #xa00000020 + ;; field param1 uses ~A with a signed load. field param2 uses ~A with a signed load. + (:methods + ;; (new (symbol type drawable) _type_ 0) + (cspace-method-9 () none) ;; 9 ;; (reset-and-assign-geo! (_type_ drawable) _type_ 9) + ) + ) +|# + +#| +(deftype cspace-array (inline-array-class) + ((data cspace :dynamic :offset-assert 16) ;; guessed by decompiler + ) + :method-count-assert 14 + :size-assert #x10 + :flag-assert #xe00000010 + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; focus ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype focus (structure) + ((handle uint64 :offset-assert 0) ;; handle + (collide-with collide-spec :offset-assert 8) ;; guessed by decompiler + ) + :method-count-assert 13 + :size-assert #xc + :flag-assert #xd0000000c + (:methods + (focus-method-9 () none) ;; 9 ;; (clear-focused (_type_) none 9) + (focus-method-10 () none) ;; 10 ;; (collide-check? (_type_ process-focusable) object 10) + (focus-method-11 () none) ;; 11 ;; (reset-to-collide-spec (_type_ collide-spec) none 11) + (focus-method-12 () none) ;; 12 ;; (try-update-focus (_type_ process-focusable) symbol 12) + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; temple-mood ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype templea-states (structure) + ((flame flames-state :inline :offset-assert 0) + (rot float :offset-assert 8) + ) + :method-count-assert 9 + :size-assert #xc + :flag-assert #x90000000c + ) +|# + +#| +(deftype templed-states (structure) + ((light light-state :inline :offset-assert 0) + (flame flames-state :inline :offset-assert 8) + ) + :method-count-assert 9 + :size-assert #xf + :flag-assert #x90000000f + ) +|# + +;; (define-extern init-mood-templea function) +;; (define-extern update-templea-lights function) +;; (define-extern update-mood-templea function) +;; (define-extern update-templed-lights function) +;; (define-extern init-mood-templed function) +;; (define-extern update-mood-templed function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; drawable-group-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype drawable-group (drawable) + ((id int16 :offset-assert 0) + (bsphere vector :inline :offset-assert 12) + (length int16 :offset-assert 2) + (data drawable :dynamic :offset-assert 28) ;; guessed by decompiler + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + ) + :method-count-assert 17 + :size-assert #x20 + :flag-assert #x1100000020 + (:methods + ;; (new (symbol type int) _type_ 0) + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; factoryc-mood ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype factoryc-states (structure) + ((electricity UNKNOWN 2 :offset-assert 0) + (flame flames-state :inline :offset-assert 32) + ) + :method-count-assert 9 + :size-assert #x27 + :flag-assert #x900000027 + ) +|# + +;; (define-extern update-mood-factoryc function) +;; (define-extern set-factoryc-light! function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; temple-part ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *range-color-temple-big-torch-flame* curve-color-fast) +;; (define-extern *range-alpha-temple-big-torch-flame* curve2d-fast) +;; (define-extern *range-scale-temple-big-torch-flame-x* curve2d-fast) +;; (define-extern *range-scale-temple-big-torch-flame-y* curve2d-fast) +;; (define-extern *r-curve-temple-big-torch-flame* curve2d-fast) +;; (define-extern *g-curve-temple-big-torch-flame* curve2d-fast) +;; (define-extern *b-curve-temple-big-torch-flame* curve2d-fast) +;; (define-extern *curve-alpha-temple-big-torch-flame* curve2d-fast) +;; (define-extern *curve-temple-big-torch-flame-x* curve2d-fast) +;; (define-extern *curve-temple-big-torch-flame-y* curve2d-fast) +;; (define-extern *part-temple-big-torch-flame-curve-settings* object) +;; (define-extern *range-color-temple-small-torch-flame* curve-color-fast) +;; (define-extern *range-alpha-temple-small-torch-flame* curve2d-fast) +;; (define-extern *range-scale-temple-small-torch-flame-x* curve2d-fast) +;; (define-extern *range-scale-temple-small-torch-flame-y* curve2d-fast) +;; (define-extern *r-curve-temple-small-torch-flame* curve2d-fast) +;; (define-extern *g-curve-temple-small-torch-flame* curve2d-fast) +;; (define-extern *b-curve-temple-small-torch-flame* curve2d-fast) +;; (define-extern *curve-alpha-temple-small-torch-flame* curve2d-fast) +;; (define-extern *curve-temple-small-torch-flame-x* curve2d-fast) +;; (define-extern *curve-temple-small-torch-flame-y* curve2d-fast) +;; (define-extern *part-temple-small-torch-flame-curve-settings* object) +;; (define-extern *range-color-templea-small-torch-flame* curve-color-fast) +;; (define-extern *range-alpha-templea-small-torch-flame* curve2d-fast) +;; (define-extern *range-scale-templea-small-torch-flame-x* curve2d-fast) +;; (define-extern *range-scale-templea-small-torch-flame-y* curve2d-fast) +;; (define-extern *r-curve-templea-small-torch-flame* curve2d-fast) +;; (define-extern *g-curve-templea-small-torch-flame* curve2d-fast) +;; (define-extern *b-curve-templea-small-torch-flame* curve2d-fast) +;; (define-extern *curve-alpha-templea-small-torch-flame* curve2d-fast) +;; (define-extern *curve-templea-small-torch-flame-x* curve2d-fast) +;; (define-extern *curve-templea-small-torch-flame-y* curve2d-fast) +;; (define-extern *part-templea-small-torch-flame-curve-settings* object) +;; (define-extern *range-color-templea-medium-torch-flame* curve-color-fast) +;; (define-extern *range-alpha-templea-medium-torch-flame* curve2d-fast) +;; (define-extern *range-scale-templea-medium-torch-flame-x* curve2d-fast) +;; (define-extern *range-scale-templea-medium-torch-flame-y* curve2d-fast) +;; (define-extern *r-curve-templea-medium-torch-flame* curve2d-fast) +;; (define-extern *g-curve-templea-medium-torch-flame* curve2d-fast) +;; (define-extern *b-curve-templea-medium-torch-flame* curve2d-fast) +;; (define-extern *curve-alpha-templea-medium-torch-flame* curve2d-fast) +;; (define-extern *curve-templea-medium-torch-flame-x* curve2d-fast) +;; (define-extern *curve-templea-medium-torch-flame-y* curve2d-fast) +;; (define-extern *part-templea-medium-torch-flame-curve-settings* object) +;; (define-extern birth-func-temple-shaft-camera-orient function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; wasall-init ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *wasall-reserve* object) +;; (define-extern wasall-login function) +;; (define-extern wasall-logout function) +;; (define-extern wasall-activate function) +;; (define-extern wasall-deactivate function) +;; (define-extern desert-game-activate function) +;; (define-extern desert-race-level-activate function) +;; (define-extern desert-race-level-deactivate function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; citizen-enemy ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype citizen-enemy (citizen) + ((next-update-target uint64 :offset-assert 1032) ;; time-frame + (minimap connection-minimap :offset-assert 1040) + ) + :method-count-assert 218 + :size-assert #x414 + :flag-assert #xda03a00414 + (:methods + (citizen-enemy-method-216 () none) ;; 216 + (citizen-enemy-method-217 () none) ;; 217 + ) + (:state-methods + active ;; 34 + inactive ;; 191 + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; drawable-inline-array-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype drawable-inline-array (drawable) + ((length int16 :offset-assert 6) + ) + :method-count-assert 17 + :size-assert #x20 + :flag-assert #x1100000020 + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; game-info ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *default-continue* continue-point) ;; continue-point +;; (define-extern task-level->string function) ;; (function int string) +;; (define-extern level-name->task-level function) ;; (function symbol int) +;; (define-extern trsq->continue-point function) ;; (function trsq int) +;; (define-extern position->stream function) ;; (function string symbol symbol none) +;; (define-extern bug-report-display function) ;; (function symbol int) +;; (define-extern print-continues function) ;; (function int) +;; (define-extern *highscore-info-array* array) ;; (array highscore-info) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; draw-node-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype draw-node (drawable) + ((child-count uint8 :offset-assert 6) + (flags uint8 :offset-assert 7) + (child drawable :offset-assert 8) ;; guessed by decompiler + (distance float :offset-assert 12) + ) + :method-count-assert 17 + :size-assert #x20 + :flag-assert #x1100000020 + ;; field distance is a float printed as hex? + ) +|# + +;; (deftype drawable-inline-array-node (drawable-inline-array) +;; () +;; :flag-assert #x1100000044 +;; ) + +#| +(deftype draw-node-dma (structure) + ((banka draw-node 32 :offset-assert 4) ;; guessed by decompiler + (bankb draw-node 32 :offset-assert 1028) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x800 + :flag-assert #x900000800 + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; path-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype path-control (basic) + ((flags path-control-flag :offset-assert 4) ;; guessed by decompiler + (name symbol :offset-assert 8) ;; guessed by decompiler + (process process-drawable :offset-assert 12) ;; guessed by decompiler + (curve curve :inline :offset-assert 16) + (num-cverts int32 :offset-assert 20) + (cverts uint32 :offset-assert 16) + ) + :method-count-assert 32 + :size-assert #x24 + :flag-assert #x2000000024 + (:methods + ;; (new (symbol type process symbol float entity symbol) _type_ 0) + (path-control-method-9 () none) ;; 9 ;; (debug-draw (_type_) none 9) + (path-control-method-10 () none) ;; 10 ;; (get-point-in-path! (_type_ vector float symbol) vector 10) + (path-control-method-11 () none) ;; 11 ;; (get-random-point (_type_ vector) vector 11) + (path-control-method-12 () none) ;; 12 ;; (displacement-between-two-points-copy! (_type_ vector float float) vector 12) + (path-control-method-13 () none) ;; 13 ;; (displacement-between-two-points-normalized! (_type_ vector float) vector 13) + (path-control-method-14 () none) ;; 14 ;; (get-point-at-percent-along-path! (_type_ vector float symbol) vector 14) + (path-control-method-15 () none) ;; 15 ;; (displacement-between-points-at-percent-scaled! (_type_ vector float float) vector 15) + (path-control-method-16 () none) ;; 16 ;; (displacement-between-points-at-percent-normalized! (_type_ vector float) vector 16) + (path-control-method-17 () none) ;; 17 ;; (get-num-segments (_type_) float 17) + (path-control-method-18 () none) ;; 18 ;; (total-distance (_type_) float 18) + (path-control-method-19 () none) ;; 19 ;; (get-num-verts (_type_) int 19) + (path-control-method-20 () none) ;; 20 ;; (path-distance-equal-spacing (_type_ float) float 20) + (path-control-method-21 () none) ;; 21 ;; (average-segment-length (_type_ float) float 21) + (path-control-method-22 () none) ;; 22 ;; (get-furthest-point-on-path (_type_ vector) float 22) + (path-control-method-23 () none) ;; 23 ;; (get-path-percentage-at-furthest-point (_type_ vector) float 23) + (path-control-method-24 () none) ;; 24 ;; (path-control-method-24 (_type_ vector) vector 24) + (path-control-method-25 () none) ;; 25 ;; (should-display-marks? (_type_) symbol 25) + (path-control-method-26 () none) ;; 26 ;; (displacement-between-two-points! (_type_ vector float float) vector 26) + (path-control-method-27 () none) ;; 27 + (path-control-method-28 () none) ;; 28 + (path-control-method-29 () none) ;; 29 + (path-control-method-30 () none) ;; 30 + (path-control-method-31 () none) ;; 31 + ) + ) +|# + +#| +(deftype curve-control (path-control) + () + :method-count-assert 32 + :size-assert #x24 + :flag-assert #x2000000024 + (:methods + ;; (new (symbol type process symbol float) _type_ 0) + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; drawable-tree-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (deftype drawable-tree (drawable-group) +;; () +;; :flag-assert #x1100000020 +;; ) + +;; (deftype drawable-tree-array (drawable-group) +;; () +;; :flag-assert #x1100000020 +;; ) + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; elevator ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype elevator-params (structure) + ((xz-threshold float :offset-assert 0) + (y-threshold float :offset-assert 4) + (start-pos float :offset-assert 8) + (move-rate float :offset-assert 12) + (flags uint64 :offset-assert 16) ;; elevator-flags + ) + :method-count-assert 9 + :size-assert #x18 + :flag-assert #x900000018 + ) +|# + +#| +(deftype path-step (structure) + ((next-pos float :offset-assert 0) + (dist float :offset-assert 4) + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +#| +(deftype path-step-inline-array (inline-array-class) + ((data path-step :dynamic :offset-assert 16) ;; guessed by decompiler + ) + :method-count-assert 14 + :size-assert #x10 + :flag-assert #xe00000010 + ) +|# + +#| +(deftype elevator (base-plat) + ((params elevator-params :inline :offset-assert 272) + (path-seq path-step-inline-array :offset-assert 296) ;; guessed by decompiler + (path-dest float :offset-assert 300) + (bottom-top float 2 :offset-assert 304) ;; guessed by decompiler + (move-pos float 2 :offset-assert 312) ;; guessed by decompiler + (move-dist float :offset-assert 320) + (path-pos float :offset-assert 324) + (path-eased-pos float :offset-assert 328) + (ride-timer uint64 :offset-assert 336) ;; time-frame + (sticky-player-last-ride-time uint64 :offset-assert 344) ;; time-frame + (elevator-status uint64 :offset-assert 352) ;; elevator-status + (on-activate pair :offset-assert 360) ;; guessed by decompiler + (on-deactivate pair :offset-assert 364) ;; guessed by decompiler + (on-up basic :offset-assert 368) + (on-down basic :offset-assert 372) + (on-running basic :offset-assert 376) + (on-notice basic :offset-assert 380) + (on-wait basic :offset-assert 384) + (sound-id uint32 :offset-assert 388) + (sound-running-loop basic :offset-assert 392) + (sound-arrived basic :offset-assert 396) + (fence-prim-index uint32 :offset-assert 400) + (speed float :offset-assert 404) + (sound-start basic :offset-assert 408) + (activate-test basic :offset-assert 412) + ) + :method-count-assert 52 + :size-assert #x1a0 + :flag-assert #x34012001a0 + ;; field on-activate uses ~A with a signed load. field on-deactivate uses ~A with a signed load. field on-up uses ~A with a signed load. field on-down uses ~A with a signed load. field on-running uses ~A with a signed load. field on-notice uses ~A with a signed load. field on-wait uses ~A with a signed load. field activate-test uses ~A with a signed load. + (:methods + (elevator-method-39 () none) ;; 39 ;; (calc-dist-between-points! (_type_ int int) none 39) + (elevator-method-41 () none) ;; 41 ;; (init-defaults! (_type_) none 41) + (elevator-method-42 () none) ;; 42 ;; (set-ambient-sound! (_type_) none 42) + (elevator-method-43 () none) ;; 43 ;; (move-between-points (_type_ vector float float) symbol 43) + (elevator-method-44 () none) ;; 44 ;; (elevator-method-44 (_type_) symbol 44) + (elevator-method-45 () none) ;; 45 ;; (commited-to-ride? (_type_) symbol 45) + (elevator-method-46 () none) ;; 46 ;; (move-to-next-point! (_type_) none 46) + (elevator-method-47 () none) ;; 47 ;; (find-closest-point-in-path! (_type_ vector (pointer float) symbol symbol) symbol 47) + (elevator-method-48 () none) ;; 48 ;; (elevator-method-48 (_type_) none 48) + (elevator-method-49 () none) ;; 49 + (elevator-method-50 () none) ;; 50 + (elevator-method-51 () none) ;; 51 + ) + (:state-methods + dormant ;; 35, old: (waiting () _type_ :state 35) + waiting ;; 36, old: (running () _type_ :state 36) + running ;; 37, old: (arrived () _type_ :state 37) + arrived ;; 38, old: (elevator-method-38 (_type_) none 38) + die ;; 40, old: (activate-elevator (_type_) object 40) + ) + ) +|# + +;; (define-extern ease-value-in-out function) ;; (function float float float) +;; (define-extern elevator-event function) ;; (function process int symbol event-message-block object :behavior elevator) +;; (define-extern move-post function) ;; (function none :behavior elevator) +;; (define-extern teleport-check function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; hover-formation ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype gen-perms-context (structure) + ((num int32 :offset-assert 0) + (table uint32 :offset-assert 4) + (iterate-count int32 :offset-assert 8) + ) + :method-count-assert 9 + :size-assert #xc + :flag-assert #x90000000c + ) +|# + +#| +(deftype flying-formation (hover-formation) + () + :method-count-assert 16 + :size-assert #x90 + :flag-assert #x1000100090 + ) +|# + +;; (define-extern gen-perms function) ;; (function int (function int int form-search-info uint) (function form-search-info float) form-search-info symbol) +;; (define-extern test-gen-perms function) ;; (function int object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; drawable-actor-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype drawable-actor (drawable) + ((actor entity-actor :offset-assert 8) ;; guessed by decompiler + ) + :method-count-assert 17 + :size-assert #x20 + :flag-assert #x1100000020 + ) +|# + +;; (deftype drawable-tree-actor (drawable-tree) +;; () +;; :flag-assert #x1100000020 +;; ) + +;; (deftype drawable-inline-array-actor (drawable-inline-array) +;; () +;; :flag-assert #x1100000044 +;; ) + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; sewer-frog ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype sewer-frog (nav-enemy) + ((scared-timer uint64 :offset-assert 624) + ) + :method-count-assert 193 + :size-assert #x278 + :flag-assert #xc102000278 + (:methods + (sewer-frog-method-192 () none) ;; 192 + ) + (:state-methods + turn-to-face-focus ;; 191 + knocked ;; 31 + active ;; 34 + stare ;; 37 + hostile ;; 38 + attack ;; 190 + flee ;; 36 + ) + ) +|# + +;; (define-extern *fact-info-sewer-frog-defaults* fact-info-enemy-defaults) +;; (define-extern *sewer-frog-nav-enemy-info* nav-enemy-info) +;; (define-extern sewer-frog-hop function) +;; (define-extern sewer-frog-turn-to-face function) +;; (define-extern sewer-frog-check-hop function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; background-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype background-work (basic) + ((tfrag-tree-count int32 :offset-assert 4) + (tfrag-trees drawable-tree-tfrag 11 :offset-assert 8) ;; guessed by decompiler + (tfrag-levels level 11 :offset-assert 52) ;; guessed by decompiler + (tfrag-trans-tree-count int32 :offset-assert 96) + (tfrag-trans-trees drawable-tree-tfrag-trans 11 :offset-assert 100) ;; guessed by decompiler + (tfrag-trans-levels level 11 :offset-assert 144) ;; guessed by decompiler + (tfrag-water-tree-count int32 :offset-assert 188) + (tfrag-water-trees drawable-tree-tfrag-water 11 :offset-assert 192) ;; guessed by decompiler + (tfrag-water-levels level 11 :offset-assert 236) ;; guessed by decompiler + (shrub-tree-count int32 :offset-assert 280) + (shrub-trees drawable-tree-instance-shrub 11 :offset-assert 284) ;; guessed by decompiler + (shrub-levels level 11 :offset-assert 328) ;; guessed by decompiler + (tie-tree-count int32 :offset-assert 372) + (tie-trees drawable-tree-instance-tie 11 :offset-assert 376) ;; guessed by decompiler + (tie-levels level 11 :offset-assert 420) ;; guessed by decompiler + (tie-generic basic 11 :offset-assert 464) ;; guessed by decompiler + (tie-generic-trans basic 11 :offset-assert 508) ;; guessed by decompiler + (wait-to-vu0 uint32 :offset-assert 552) + ) + :method-count-assert 9 + :size-assert #x22c + :flag-assert #x90000022c + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; region-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype region (structure) + ((id uint32 :offset-assert 0) + (on-enter pair :offset-assert 4) ;; guessed by decompiler + (on-inside pair :offset-assert 8) ;; guessed by decompiler + (on-exit pair :offset-assert 12) ;; guessed by decompiler + ) + :method-count-assert 10 + :size-assert #x10 + :flag-assert #xa00000010 + ;; field on-enter uses ~A with a signed load. field on-inside uses ~A with a signed load. field on-exit uses ~A with a signed load. + (:methods + (region-method-9 () none) ;; 9 ;; (region-method-9 (_type_ vector) symbol 9) + ) + ) +|# + +#| +(deftype region-array (inline-array-class) + ((data region :dynamic :offset-assert 16) ;; guessed by decompiler + ) + :method-count-assert 14 + :size-assert #x10 + :flag-assert #xe00000010 + ) +|# + +#| +(deftype drawable-region-prim (drawable) + ((region region :offset-assert 8) + ) + :method-count-assert 20 + :size-assert #x20 + :flag-assert #x1400000020 + (:methods + (drawable-region-prim-method-17 () none) ;; 17 ;; (debug-draw-region (_type_ int) none 17) + (drawable-region-prim-method-18 () none) ;; 18 ;; (track-region (_type_ region-prim-area) symbol 18) + (drawable-region-prim-method-19 () none) ;; 19 ;; (within-area? (_type_ region-prim-area) symbol 19) + ) + ) +|# + +#| +(deftype drawable-tree-region-prim (drawable-tree) + ((id int16 :offset-assert 0) + (bsphere vector :inline :offset-assert 12) + (length int16 :offset-assert 2) + (data drawable :dynamic :offset-assert 28) ;; guessed by decompiler + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (name basic :offset-assert 4) + ) + :method-count-assert 19 + :size-assert #x20 + :flag-assert #x1300000020 + (:methods + (drawable-tree-region-prim-method-17 () none) ;; 17 ;; (drawable-tree-region-prim-method-17 (_type_ vector) symbol 17) + (drawable-tree-region-prim-method-18 () none) ;; 18 ;; (debug-print (_type_ vector object) none 18) + ) + ) +|# + +;; (deftype drawable-inline-array-region-prim (drawable-inline-array) +;; () +;; :flag-assert #x1100000044 +;; ) + +#| +(deftype drawable-region-sphere (drawable-region-prim) + () + :method-count-assert 20 + :size-assert #x20 + :flag-assert #x1400000020 + ) +|# + +#| +(deftype region-face-data (structure) + ((normal vector :inline :offset-assert 0) + (normal-offset float :offset-assert 12) + (num-points uint32 :offset-assert 16) + (points vector :dynamic :offset-assert 32) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x20 + :flag-assert #x900000020 + ) +|# + +#| +(deftype drawable-region-face (drawable-region-prim) + ((data region-face-data :offset-assert 12) + ) + :method-count-assert 20 + :size-assert #x20 + :flag-assert #x1400000020 + ) +|# + +#| +(deftype region-face-array (inline-array-class) + ((data drawable-region-face :dynamic :offset-assert 20) ;; guessed by decompiler + ) + :method-count-assert 14 + :size-assert #x14 + :flag-assert #xe00000014 + ) +|# + +#| +(deftype drawable-region-volume (drawable-region-prim) + ((faces region-face-array :offset-assert 12) ;; guessed by decompiler + ) + :method-count-assert 20 + :size-assert #x20 + :flag-assert #x1400000020 + ) +|# + +#| +(deftype region-prim-list (structure) + ((num-items int32 :offset-assert 0) + (items drawable-region-prim 320 :offset-assert 4) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x504 + :flag-assert #x900000504 + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; power-game ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype power-game-cell (structure) + ((up uint8 :offset-assert 0) + (right uint8 :offset-assert 1) + (down uint8 :offset-assert 2) + (left uint8 :offset-assert 3) + ) + :method-count-assert 9 + :size-assert #x4 + :flag-assert #x900000004 + ) +|# + +#| +(deftype power-game-cam-info (structure) + ((cam-pos vector :inline :offset-assert 0) + (cam-pos-x-angle deg :offset-assert 16) + (cam-dist meters :offset-assert 20) + (cam-x-angle deg :offset-assert 24) + (cam-y-angle deg :offset-assert 28) + (cam-y-angle-dest deg :offset-assert 32) + (cam-y-angle-speed deg :offset-assert 36) + ) + :method-count-assert 9 + :size-assert #x28 + :flag-assert #x900000028 + ) +|# + +#| +(deftype power-game (process-drawable) + ((task basic :offset-assert 200) + (lentity basic :offset-assert 204) + (hud-score uint64 :offset-assert 208) + (hud-goal uint64 :offset-assert 216) + (base-score float :offset-assert 224) + (score float :offset-assert 228) + (score-time uint64 :offset-assert 232) + (score-met basic :offset-assert 240) + (game uint32 :offset-assert 244) + (blockers basic :offset-assert 248) + (dots basic :offset-assert 252) + (miss-max int32 :offset-assert 256) + (miss-count int32 :offset-assert 260) + (miss-time uint64 :offset-assert 264) + (point-win float :offset-assert 272) + (game-start-time uint64 :offset-assert 280) + (wave-start-time uint64 :offset-assert 288) + (wave-index int32 :offset-assert 296) + (difficulty int32 :offset-assert 300) + (speech-time uint64 :offset-assert 304) + (speech-count int32 :offset-assert 312) + (speech-last UNKNOWN 8 :offset-assert 316) + (spawn-time uint64 :offset-assert 352) + (center vector :inline :offset-assert 368) + (corner UNKNOWN 2 :offset-assert 384) + (cam-targ power-game-cam-info :inline :offset-assert 416) + (cam-cur power-game-cam-info :inline :offset-assert 464) + (player uint64 :offset-assert 504) + (chaser uint64 :offset-assert 512) + (zapper UNKNOWN 5 :offset-assert 520) + (switcher uint64 :offset-assert 560) + (switcher-time uint64 :offset-assert 568) + (glyph uint64 :offset-assert 576) + (score-part UNKNOWN 1 :offset-assert 584) + ) + :method-count-assert 46 + :size-assert #x24c + :flag-assert #x2e01d0024c + (:methods + (power-game-method-26 () none) ;; 26 + (power-game-method-27 () none) ;; 27 + (power-game-method-28 () none) ;; 28 + (power-game-method-29 () none) ;; 29 + (power-game-method-30 () none) ;; 30 + (power-game-method-31 () none) ;; 31 + (power-game-method-32 () none) ;; 32 + (power-game-method-33 () none) ;; 33 + (power-game-method-34 () none) ;; 34 + (power-game-method-35 () none) ;; 35 + (power-game-method-36 () none) ;; 36 + (power-game-method-37 () none) ;; 37 + (power-game-method-38 () none) ;; 38 + (power-game-method-39 () none) ;; 39 + (power-game-method-40 () none) ;; 40 + (power-game-method-41 () none) ;; 41 + (power-game-method-42 () none) ;; 42 + (power-game-method-43 () none) ;; 43 + (power-game-method-44 () none) ;; 44 + (power-game-method-45 () none) ;; 45 + ) + (:state-methods + hide ;; 21 + idle ;; 20 + wait-for-start ;; 22 + active ;; 23 + lose ;; 24 + win ;; 25 + ) + ) +|# + +#| +(deftype power-game-object (process-focusable) + ((local vector :inline :offset-assert 208) + (dir int8 :offset-assert 224) + (next-dir int8 :offset-assert 225) + (slide-dir int8 :offset-assert 226) + (speed float :offset-assert 228) + (slide-dist int32 :offset-assert 232) + (slide-speed float :offset-assert 236) + (slide-count int32 :offset-assert 240) + (slide-lock basic :offset-assert 244) + (slide-dest vector :inline :offset-assert 256) + (turn-pos vector :inline :offset-assert 272) + (target uint64 :offset-assert 288) + (start-time uint64 :offset-assert 296) + ) + :method-count-assert 32 + :size-assert #x130 + :flag-assert #x2000b00130 + (:methods + (power-game-object-method-30 () none) ;; 30 + (power-game-object-method-31 () none) ;; 31 + ) + (:state-methods + active ;; 28 + die ;; 29 + ) + ) +|# + +#| +(deftype power-game-player (power-game-object) + ((slide-rel-dir int32 :offset-assert 304) + ) + :method-count-assert 32 + :size-assert #x134 + :flag-assert #x2000c00134 + (:state-methods + active ;; 28 + die ;; 29 + ) + ) +|# + +#| +(deftype power-game-chaser (power-game-object) + ((targ-dist float :offset-assert 304) + ) + :method-count-assert 32 + :size-assert #x134 + :flag-assert #x2000c00134 + (:state-methods + active ;; 28 + ) + ) +|# + +#| +(deftype power-game-switcher (power-game-object) + ((targ-dist float :offset-assert 304) + (turn-time uint64 :offset-assert 312) + ) + :method-count-assert 33 + :size-assert #x140 + :flag-assert #x2100c00140 + (:state-methods + idle ;; 32 + active ;; 28 + die ;; 29 + ) + ) +|# + +#| +(deftype power-game-zapper (power-game-object) + ((change-time uint64 :offset-assert 304) + (close-time uint64 :offset-assert 312) + (switch-duration uint64 :offset-assert 320) + (lane-time uint64 :offset-assert 328) + (lane-target int32 :offset-assert 336) + (lane-target-old int32 :offset-assert 340) + (lane-old int32 :offset-assert 344) + (rings uint32 :offset-assert 348) + ) + :method-count-assert 32 + :size-assert #x160 + :flag-assert #x2000e00160 + (:state-methods + active ;; 28 + die ;; 29 + ) + ) +|# + +#| +(deftype power-game-glyph (power-game-object) + ((pickup-type int32 :offset-assert 304) + (angle deg :offset-assert 308) + ) + :method-count-assert 33 + :size-assert #x138 + :flag-assert #x2100c00138 + (:methods + (power-game-glyph-method-32 () none) ;; 32 + ) + (:state-methods + active ;; 28 + die ;; 29 + ) + ) +|# + +;; (define-extern birth-func-power-score function) +;; (define-extern *power-game-track* object) +;; (define-extern *power-game* object) +;; (define-extern *power-game-speech-list* object) +;; (define-extern power-game-player-post function) +;; (define-extern power-game-player-init function) +;; (define-extern power-game-chaser-post function) +;; (define-extern power-game-chaser-init function) +;; (define-extern power-game-switcher-post function) +;; (define-extern power-game-switcher-init function) +;; (define-extern power-game-zapper-post function) +;; (define-extern power-game-zapper-init function) +;; (define-extern power-game-glyph-post function) +;; (define-extern power-game-glyph-init function) +;; (define-extern cam-power-game-update function) +;; (define-extern cam-power-game state) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; needle-fish ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype needle-fish-shot (projectile-bounce) + ((scale float :offset-assert 548) + ) + :method-count-assert 44 + :size-assert #x228 + :flag-assert #x2c01b00228 + ) +|# + +#| +(deftype needle-fish-chain-physics (chain-physics) + () + :method-count-assert 18 + :size-assert #x570 + :flag-assert #x1200000570 + ) +|# + +#| +(deftype needle-fish (nav-enemy) + ((scared-timer uint64 :offset-assert 624) + (tail basic :offset-assert 632) + (tail-initialized basic :offset-assert 636) + (tail-clock float :offset-assert 640) + (tail-blend float :offset-assert 644) + ) + :method-count-assert 192 + :size-assert #x288 + :flag-assert #xc002100288 + (:state-methods + active ;; 34 + notice ;; 35 + stare ;; 37 + hostile ;; 38 + attack ;; 190 + explode ;; 191 + ) + ) +|# + +#| +(deftype sew-needle-fish (needle-fish) + () + :method-count-assert 192 + :size-assert #x288 + :flag-assert #xc002100288 + ) +|# + +;; (define-extern spawn-needle-fish-projectile function) +;; (define-extern *needle-fish-spike-tbl* array) +;; (define-extern *needle-fish-chain-setup* array) +;; (define-extern *fact-info-needle-fish-defaults* fact-info-enemy-defaults) +;; (define-extern *needle-fish-nav-enemy-info* nav-enemy-info) +;; (define-extern needle-fish-joint-mod-tail function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; traffic-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype traffic-danger-info (structure) + ((sphere sphere :inline :offset-assert 0) + (velocity vector :inline :offset-assert 16) + (handle uint64 :offset-assert 32) ;; handle + (notify-radius float :offset-assert 40) + (danger-level float :offset-assert 44) + (decay-rate float :offset-assert 48) + (flags uint8 :offset-assert 52) ;; traffic-danger-flags + (danger-type uint8 :offset-assert 53) ;; traffic-danger-type + ) + :method-count-assert 9 + :size-assert #x36 + :flag-assert #x900000036 + ) +|# + +#| +(deftype traffic-suppression-params (structure) + ((bbox bounding-box :inline :offset-assert 0) + (duration uint64 :offset-assert 32) ;; time-frame + (id int8 :offset-assert 40) + ) + :method-count-assert 13 + :size-assert #x29 + :flag-assert #xd00000029 + (:methods + (traffic-suppression-params-method-9 () none) ;; 9 ;; (try-creating-new-suppression-box (_type_) symbol 9) + (traffic-suppression-params-method-10 () none) ;; 10 ;; (create-or-update-suppression-box (_type_) symbol 10) + (traffic-suppression-params-method-11 () none) ;; 11 ;; (has-valid-id? (_type_) none 11) + (traffic-suppression-params-method-12 () none) ;; 12 ;; (kill-suppression-box (_type_) none 12) + ) + ) +|# + +#| +(deftype traffic-object-spawn-params (structure) + ((object-type uint8 :offset-assert 0) ;; traffic-type + (behavior uint64 :offset-assert 8) + (id uint32 :offset-assert 16) + (nav-mesh nav-mesh :offset-assert 20) ;; guessed by decompiler + (nav-branch nav-branch :offset-assert 24) ;; guessed by decompiler + (position vector :inline :offset-assert 32) + (rotation quaternion :inline :offset-assert 48) + (velocity vector :inline :offset-assert 64) + (handle uint64 :offset-assert 80) ;; handle + (handle-parent uint64 :offset-assert 88) + (guard-type uint8 :offset-assert 96) + (user-data uint32 :offset-assert 100) + (entity basic :offset-assert 104) + (flags traffic-spawn-flags :offset-assert 108) ;; guessed by decompiler + (proc process :offset-assert 112) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x74 + :flag-assert #x900000074 + ) +|# + +#| +(deftype traffic-info (structure) + ((ctywide-level basic :offset-assert 0) + (vehicle-level basic :offset-assert 4) + (race-vehicle-level basic :offset-assert 8) + (traffic-object-levels UNKNOWN 29 :offset-assert 12) + (vehicle-levels UNKNOWN 44 :offset-assert 128) + (traffic-object-type-from-vehicle-type UNKNOWN 44 :offset-assert 304) + (restore-speech-callback basic :offset-assert 348) + ) + :method-count-assert 9 + :size-assert #x160 + :flag-assert #x900000160 + ) +|# + +;; (define-extern *traffic-manager* object) ;; traffic-manager +;; (define-extern *vehicle-manager* object) +;; (define-extern *traffic-info* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; game-task-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; hud ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype hud-sprite-work (structure) + ((adgif-tmpl dma-gif-packet :inline :offset-assert 0) + (sprite-tmpl dma-gif-packet :inline :offset-assert 32) + (draw-tmpl dma-gif-packet :inline :offset-assert 64) + (box-tmpl dma-gif-packet :inline :offset-assert 96) + (box2-tmpl dma-gif-packet :inline :offset-assert 128) + (mask-tmpl dma-gif-packet :inline :offset-assert 160) + (line-tmpl dma-gif-packet :inline :offset-assert 192) + (scan-tmpl dma-gif-packet :inline :offset-assert 224) + (line-color uint64 :offset-assert 256) ;; gs-rgbaq + (scan-colors vector4w 32 :offset-assert 272) ;; guessed by decompiler + (scanline uint32 :offset-assert 784) + ) + :method-count-assert 9 + :size-assert #x314 + :flag-assert #x900000314 + ) +|# + +;; (define-extern *hud-sprite-work* object) ;; hud-sprite-work +;; (define-extern hud-create-icon function) ;; (function hud int int (pointer manipy)) +;; (define-extern hud-hidden-event-handler function) +;; (define-extern hud-init-by-other function) ;; (function object :behavior hud) +;; (define-extern hide-hud function) ;; (function symbol none) +;; (define-extern enable-hud function) ;; (function none) +;; (define-extern hide-hud-quick function) ;; (function symbol none) +;; (define-extern show-hud function) ;; (function object none) +;; (define-extern ready-hud function) +;; (define-extern hud-hidden? function) ;; (function symbol) +;; (define-extern set-hud-piece-position! function) ;; (function hud-sprite int int none) +;; (define-extern set-as-offset-from! function) ;; (function hud-sprite vector4w int int none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; progress ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype hud-ring-cell (process-drawable) + ((joint-idx int32 :offset-assert 200) + (init-angle float :offset-assert 204) ;; degrees + (graphic-index int32 :offset-assert 208) + ) + :method-count-assert 21 + :size-assert #xd4 + :flag-assert #x15006000d4 + (:state-methods + idle ;; 20, old: (idle () _type_ :state 20) + ) + ) +|# + +;; (define-extern *progress-stack* object) ;; (pointer uint8) +;; (define-extern *progress-process* object) ;; (pointer progress) +;; (define-extern *progress-save-info* object) ;; mc-slot-info +;; (define-extern *progress-work* object) +;; (define-extern min-max-wrap-around function) ;; (function int int int int) +;; (define-extern progress-intro-start function) ;; (function symbol int) +;; (define-extern hud-ring-cell-remap function) +;; (define-extern hud-ring-cell-init-by-other function) ;; (function int float int object :behavior hud-ring-cell) +;; (define-extern progress-init-by-other function) ;; (function symbol object :behavior progress) +;; (define-extern set-ring-position function) ;; (function progress float) +;; (define-extern activate-progress function) ;; (function process symbol none) +;; (define-extern deactivate-progress function) ;; (function none) +;; (define-extern hide-progress-screen function) ;; (function none) +;; (define-extern progress-allowed? function) ;; (function symbol) +;; (define-extern progress-trans function) ;; (function none :behavior progress) +;; (define-extern begin-scan function) ;; (function hud-box progress int) +;; (define-extern end-scan function) ;; (function hud-box float int) +;; (define-extern progress-post function) ;; (function none :behavior progress) +;; (define-extern *last-powerup-collect-amount* object) +;; (define-extern spawn-secret-notify-message function) +;; (define-extern menu-secrets-notify-task-node-close function) +;; (define-extern menu-secrets-notify-powerup-collect function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; rpc-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype rpc-buffer (basic) + ((elt-size uint32 :offset-assert 4) + (elt-count uint32 :offset-assert 8) + (elt-used uint32 :offset-assert 12) + (busy basic :offset-assert 16) + (base pointer :offset-assert 20) ;; guessed by decompiler + (data uint8 :dynamic :offset-assert 32) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x20 + :flag-assert #x900000020 + ) +|# + +#| +(deftype rpc-buffer-pair (basic) + ((buffer rpc-buffer 2 :offset-assert 4) ;; guessed by decompiler + (current rpc-buffer :offset-assert 12) ;; guessed by decompiler + (last-recv-buffer pointer :offset-assert 16) ;; guessed by decompiler + (rpc-port int32 :offset-assert 20) + ) + :method-count-assert 15 + :size-assert #x18 + :flag-assert #xf00000018 + (:methods + ;; (new (symbol type uint uint int) rpc-buffer-pair 0) + (rpc-buffer-pair-method-9 () none) ;; 9 ;; (call (rpc-buffer-pair uint pointer uint) int 9) + (rpc-buffer-pair-method-10 () none) ;; 10 ;; (add-element (rpc-buffer-pair) pointer 10) + (rpc-buffer-pair-method-11 () none) ;; 11 ;; (decrement-elt-used (rpc-buffer-pair) int 11) + (rpc-buffer-pair-method-12 () none) ;; 12 ;; (sync (rpc-buffer-pair symbol) int 12) + (rpc-buffer-pair-method-13 () none) ;; 13 ;; (check-busy (rpc-buffer-pair) symbol 13) + (rpc-buffer-pair-method-14 () none) ;; 14 ;; (pop-last-received (rpc-buffer-pair) pointer 14) + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; terraformer-head ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype terraformer-head-speech-instance (structure) + ((speech basic :offset-assert 0) + (probability float :offset-assert 4) + (flags uint64 :offset-assert 8) + (play-count uint32 :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x14 + :flag-assert #x900000014 + ) +|# + +#| +(deftype terraformer-head-speech-info (structure) + ((speeches basic :offset-assert 0) + (play-time uint64 :offset-assert 8) + (current-random uint64 :offset-assert 16) + (minimum-interval uint64 :offset-assert 24) + (random-interval uint64 :offset-assert 32) + (last-played int8 :offset-assert 40) + (flags uint8 :offset-assert 41) + ) + :method-count-assert 9 + :size-assert #x2a + :flag-assert #x90000002a + ) +|# + +#| +(deftype terraformer-head-speech-group (structure) + ((play-time uint64 :offset-assert 0) + (info basic :offset-assert 8) + ) + :method-count-assert 9 + :size-assert #xc + :flag-assert #x90000000c + ) +|# + +#| +(deftype joint-mod-disc-look-at (basic) + ((flags uint32 :offset-assert 4) + (up int8 :offset-assert 8) + (nose int8 :offset-assert 9) + (target vector :inline :offset-assert 16) + (blend-duration uint64 :offset-assert 32) + (blend-start-time uint64 :offset-assert 40) + (blend-start-value float :offset-assert 48) + (blend-max float :offset-assert 52) + ) + :method-count-assert 14 + :size-assert #x38 + :flag-assert #xe00000038 + (:methods + (joint-mod-disc-look-at-method-9 () none) ;; 9 + (joint-mod-disc-look-at-method-10 () none) ;; 10 + (joint-mod-disc-look-at-method-11 () none) ;; 11 + (joint-mod-disc-look-at-method-12 () none) ;; 12 + (joint-mod-disc-look-at-method-13 () none) ;; 13 + ) + ) +|# + +#| +(deftype terraformer-head-target (process-focusable) + ((been-hit basic :offset-assert 208) + ) + :method-count-assert 29 + :size-assert #xd4 + :flag-assert #x1d006000d4 + (:state-methods + idle ;; 28 + ) + ) +|# + +#| +(deftype terraformer-head-laser-projectile (projectile) + () + :method-count-assert 41 + :size-assert #x200 + :flag-assert #x2901800200 + (:state-methods + moving ;; 23 + ) + ) +|# + +#| +(deftype terraformer-head-critter-tracker (structure) + ((handle uint64 :offset-assert 0) + (flags uint32 :offset-assert 8) + (dest vector :inline :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x20 + :flag-assert #x900000020 + ) +|# + +#| +(deftype terraformer-head-ammo-tracker (structure) + ((handle uint64 :offset-assert 0) + (where vector :inline :offset-assert 16) + (birth-next-time basic :offset-assert 32) + (timer uint64 :offset-assert 40) + ) + :method-count-assert 9 + :size-assert #x30 + :flag-assert #x900000030 + ) +|# + +#| +(deftype terraformer-head (process-focusable) + ((head-aim-jm basic :offset-assert 208) + (neck-aim-jm basic :offset-assert 212) + (target-spline tracking-spline :inline :offset-assert 224) + (target-position vector :inline :offset-assert 1872) + (beam-projectile uint64 :offset-assert 1888) + (hit-points float :offset-assert 1896) + (stage uint8 :offset-assert 1900) + (incoming-attack-id uint32 :offset-assert 1904) + (flags uint64 :offset-assert 1912) + (initial-position vector :inline :offset-assert 1920) + (position-seeker cam-vector-seeker :inline :offset-assert 1936) + (actor-group uint32 :offset-assert 1996) + (actor-group-count int32 :offset-assert 2000) + (vulnerable-timer uint64 :offset-assert 2008) + (very-vulnerable-timer uint64 :offset-assert 2016) + (num-attacks int8 :offset-assert 2024) + (current-round int8 :offset-assert 2025) + (command-index int8 :offset-assert 2026) + (command-timer uint64 :offset-assert 2032) + (critter UNKNOWN 8 :offset-assert 2048) + (terraformer-head-target uint64 :offset-assert 2304) + (light-vent-timer uint64 :offset-assert 2312) + (light-vent-connection connection :offset-assert 2320) + (dark-vent-timer uint64 :offset-assert 2328) + (dark-vent-connection connection :offset-assert 2336) + (ammo UNKNOWN 20 :offset-assert 2352) + (laser-sound-id uint32 :offset-assert 3312) + (warmup-sound-id uint32 :offset-assert 3316) + ) + :method-count-assert 33 + :size-assert #xcf8 + :flag-assert #x210c800cf8 + (:state-methods + run-script ;; 28 + take-hit ;; 29 + swing-laser ;; 30 + slam ;; 31 + initial-state ;; 32 + ) + ) +|# + +#| +(deftype terraformer-head-command (structure) + ((action uint64 :offset-assert 0) + (suck float :offset-assert 8) + (random float :offset-assert 12) + (round int8 :offset-assert 16) + (num float :offset-assert 20) + ) + :method-count-assert 9 + :size-assert #x18 + :flag-assert #x900000018 + ) +|# + +;; (define-extern *terraformer-head-speech* object) +;; (define-extern reset-terraformer-head-speeches function) +;; (define-extern terraformer-head-play-speech function) +;; (define-extern joint-mod-disc-look-at-callback function) +;; (define-extern terraformer-head-target-init-by-other function) +;; (define-extern *terraformer-head-shadow-control* shadow-control) +;; (define-extern terraformer-head-get-actor-group function) +;; (define-extern terraformer-head-send-group-event function) +;; (define-extern terraformer-head-fire-beam function) +;; (define-extern terraformer-head-connect-tank-glows function) +;; (define-extern terraformer-head-always function) +;; (define-extern terraformer-head-always-handler function) +;; (define-extern terraformer-head-handler function) +;; (define-extern *terraformer-head-swarm-0* array) +;; (define-extern *terraformer-head-swarm-1* array) +;; (define-extern *terraformer-head-swarm-2* array) +;; (define-extern terraformer-head-point-occupied? function) +;; (define-extern terraformer-head-get-spawn-point function) +;; (define-extern terraformer-head-launch-critter function) +;; (define-extern terraformer-head-advance-launch-script function) +;; (define-extern terraformer-head-check-launch-script function) +;; (define-extern terraformer-head-target-enable function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; height-map ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern point-in-bbox? function) ;; (function bounding-box vector symbol) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; task-control-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (deftype game-task-event (basic) +;; () +;; :flag-assert #x900000010 +;; ) + +#| +(deftype resetter-spec (structure) + ((continue basic :offset-assert 0) + (node uint16 :offset-assert 4) + (reset-mode basic :offset-assert 8) + (execute basic :offset-assert 12) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ;; field execute uses ~A with a signed load. + ) +|# + +#| +(deftype resetter-params (structure) + ((message uint8 :offset-assert 0) + (flags resetter-flag :offset-assert 2) + (fail resetter-spec :inline :offset-assert 4) + (retry resetter-spec :inline :offset-assert 20) + (reset-delay uint32 :offset-assert 36) + (task uint8 :offset-assert 40) + (text-message uint32 :offset-assert 44) + ) + :method-count-assert 9 + :size-assert #x30 + :flag-assert #x900000030 + ;; field resetter-flag is likely a value type. + ) +|# + +#| +(deftype task-manager-info (structure) + ((mask task-manager-mask :offset-assert 0) + (level symbol :offset-assert 4) ;; guessed by decompiler + (type-to-spawn basic :offset-assert 8) + (time-limit int32 :offset-assert 12) + (manager handle :offset-assert 16) + (intro-scene string :offset-assert 24) ;; guessed by decompiler + (resolution-scene string :offset-assert 28) ;; guessed by decompiler + (resolution-scene-continue string :offset-assert 32) ;; guessed by decompiler + (final-node uint16 :offset-assert 36) ;; game-task-node + (vehicle-type uint8 :offset-assert 38) + (sphere-count int8 :offset-assert 39) + (index int8 :offset-assert 40) + (intro-delay uint16 :offset-assert 42) + (sphere-array uint32 :offset-assert 44) + (on-complete pair :offset-assert 48) ;; guessed by decompiler + (on-fail pair :offset-assert 52) ;; guessed by decompiler + (user-count int32 :offset-assert 56) + ) + :method-count-assert 9 + :size-assert #x3c + :flag-assert #x90000003c + ;; field handle is likely a value type. field resolution-scene uses ~A with a signed load. field on-complete uses ~A with a signed load. field on-fail uses ~A with a signed load. + ) +|# + +#| +(deftype task-reset-info (structure) + ((restart-info resetter-params :offset-assert 0) + (quit-info resetter-params :offset-assert 4) + (fail-info resetter-params :offset-assert 8) + (death-info resetter-params :offset-assert 12) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype game-task-node-info (basic) + ((level symbol :offset-assert 4) ;; guessed by decompiler + (name string :offset-assert 12) ;; guessed by decompiler + (when-open (array game-task-event) :offset-assert 16) ;; guessed by decompiler + (flags game-task-node-flag :offset-assert 20) + (parent-node game-task-node 4 :offset-assert 24) ;; guessed by decompiler + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (task-mask task-mask :offset-assert 32) + (on-open pair :offset-assert 36) ;; guessed by decompiler + (manager task-manager-info :offset-assert 40) + (borrow pair :offset-assert 44) ;; guessed by decompiler + (open? (function game-task-node-info symbol) :offset-assert 48) ;; guessed by decompiler + (on-close pair :offset-assert 52) ;; guessed by decompiler + (close-time time-frame :offset-assert 56) ;; guessed by decompiler + (reset task-reset-info :offset-assert 60) + (gem-count uint16 :offset-assert 64) + (skill-count uint16 :offset-assert 66) + (death-count uint8 :offset-assert 68) ;; uint16 + (suck-death-count uint8 :offset-assert 69) + (command-index uint8 :offset-assert 70) + (command-count uint8 :offset-assert 71) + (description text-id :offset-assert 72) ;; guessed by decompiler + (faction-commands basic :offset-assert 76) + ) + :method-count-assert 14 + :size-assert #x50 + :flag-assert #xe00000050 + ;; field on-open uses ~A with a signed load. field on-close uses ~A with a signed load. + (:methods + (game-task-node-info-method-9 () none) ;; 9 ;; (close! (_type_ symbol) int 9) + (game-task-node-info-method-10 () none) ;; 10 ;; (open! (_type_ symbol) int 10) + (game-task-node-info-method-11 () none) ;; 11 ;; (open? (_type_) symbol 11) + (game-task-node-info-method-12 () none) ;; 12 ;; (copy-hooks! (_type_ game-task-node-info) game-task-node-info 12) + (game-task-node-info-method-13 () none) ;; 13 ;; (eval-add (_type_) int 13) + ) + ) +|# + +#| +(deftype game-task-info (basic) + ((name string :offset-assert 4) ;; guessed by decompiler + (text-name text-id :offset-assert 8) ;; guessed by decompiler + (pre-play-node uint16 :offset-assert 12) ;; game-task-node + (kiosk-play-node uint16 :offset-assert 14) ;; game-task-node + (pre-play-continue string :offset-assert 16) ;; guessed by decompiler + (play-node uint16 :offset-assert 20) ;; game-task-node + (play-continue string :offset-assert 24) ;; guessed by decompiler + (kiosk-play-continue string :offset-assert 28) ;; guessed by decompiler + ) + :method-count-assert 10 + :size-assert #x20 + :flag-assert #xa00000020 + ;; field kiosk-play-continue uses ~A with a signed load. + (:methods + (game-task-info-method-9 () none) ;; 9 + ) + ) +|# + +;; (deftype game-task-control (basic) +;; () +;; :flag-assert #xa00000010 +;; ) + +#| +(deftype task-manager (process) + ((node-info game-task-node-info :offset-assert 128) ;; guessed by decompiler + (info task-manager-info :offset-assert 132) + (lev-name symbol :offset-assert 136) ;; guessed by decompiler + (fail-on-death? symbol :offset-assert 140) ;; guessed by decompiler + (fail-now symbol :offset-assert 144) ;; guessed by decompiler + (restart-now basic :offset-assert 148) + (allow-fail symbol :offset-assert 152) ;; guessed by decompiler + (state-time uint64 :offset-assert 160) ;; time-frame + (start-time uint64 :offset-assert 168) ;; time-frame + (time-limit uint64 :offset-assert 176) ;; time-frame + (arrow uint64 :offset-assert 184) ;; handle + (player-vehicle uint64 :offset-assert 192) + (hud handle 4 :offset-assert 200) ;; guessed by decompiler + (hud-timer uint64 :offset-assert 200) ;; handle + (hud-counter uint64 :offset-assert 208) ;; handle + (intro-time uint64 :offset-assert 232) ;; time-frame + ) + :method-count-assert 32 + :size-assert #xf0 + :flag-assert #x20007000f0 + (:methods + (task-manager-method-14 () none) ;; 14 ;; (wait () _type_ :state 14) + (task-manager-method-15 () none) ;; 15 ;; (active () _type_ :state 15) + (task-manager-method-16 () none) ;; 16 ;; (complete () _type_ :state 16) + (task-manager-method-17 () none) ;; 17 ;; (fail () _type_ :state 17) + (task-manager-method-18 () none) ;; 18 ;; (retry () _type_ :state 18) + (task-manager-method-19 () none) ;; 19 ;; (initialize! (_type_) int 19) + (task-manager-method-20 () none) ;; 20 ;; (kill-all-children (_type_) int 20) + (task-manager-method-21 () none) ;; 21 ;; (check-time (_type_) int 21) + (task-manager-method-22 () none) ;; 22 ;; (task-manager-method-22 (_type_) symbol 22) + (task-manager-method-23 () none) ;; 23 + (task-manager-method-24 () none) ;; 24 + (task-manager-method-25 () none) ;; 25 + (task-manager-method-26 () none) ;; 26 + (task-manager-method-27 () none) ;; 27 + (task-manager-method-28 () none) ;; 28 + (task-manager-method-29 () none) ;; 29 + (task-manager-method-30 () none) ;; 30 + (task-manager-method-31 () none) ;; 31 + ) + ) +|# + +#| +(deftype ambient-control (structure) + ((last-ambient-time uint64 :offset-assert 0) ;; time-frame + (last-ambient string :offset-assert 8) ;; guessed by decompiler + (last-ambient-id sound-id :offset-assert 12) ;; guessed by decompiler + ) + :method-count-assert 12 + :size-assert #x10 + :flag-assert #xc00000010 + (:methods + (ambient-control-method-9 () none) ;; 9 ;; (dummy-9 () none 9) + (ambient-control-method-10 () none) ;; 10 ;; (dummy-10 () none 10) + (ambient-control-method-11 () none) ;; 11 ;; (dummy-11 () none 11) + ) + ) +|# + +;; (define-extern game-task->string function) ;; (function game-task string) +;; (define-extern c-string->game-task function) ;; (function string game-task) +;; (define-extern game-task-actor->string function) ;; (function game-task-actor string) +;; (define-extern game-task-action->string function) ;; (function game-task-action string) +;; (define-extern game-task-node-flag->string function) ;; (function game-task-node-flag object) +;; (define-extern game-task-node-command->string function) ;; (function game-task-node-command string) +;; (define-extern *traffic-engine* object) ;; traffic-engine + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; pecker-ingame ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype pecker-ingame (process-drawable) + ((path-u float :offset-assert 200) + ) + :method-count-assert 23 + :size-assert #xcc + :flag-assert #x17005000cc + (:state-methods + idle ;; 20 + active ;; 21 + die ;; 22 + ) + ) +|# + +;; (define-extern pecker-ingame-handler function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; nav-graph-editor ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype nav-graph-command (structure) + ((com-type uint32 :offset-assert 0) + (id int32 :offset-assert 4) + (index int32 :offset-assert 8) + (move-vec vector :inline :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x20 + :flag-assert #x900000020 + ) +|# + +#| +(deftype nav-graph-command-array (inline-array-class) + ((data nav-graph-command :dynamic :offset-assert 16) ;; guessed by decompiler + ) + :method-count-assert 14 + :size-assert #x10 + :flag-assert #xe00000010 + ) +|# + +#| +(deftype nav-graph-editor (process) + ((nav-graph mysql-nav-graph :offset-assert 128) ;; guessed by decompiler + (mode symbol :offset-assert 132) ;; guessed by decompiler + (command-id int32 :offset-assert 136) + (max-command int32 :offset-assert 140) + (selected-index int32 :offset-assert 144) + (selected-dist float :offset-assert 148) + (selected-node-edge? symbol :offset-assert 152) ;; guessed by decompiler + (closest-node int32 :offset-assert 156) + (dist-closest-node float :offset-assert 160) + (closest-edge int32 :offset-assert 164) + (dist-closest-edge float :offset-assert 168) + (mouse-pos vector :inline :offset-assert 176) + (mouse-hit vector :inline :offset-assert 192) + (mouse-hit-pick vector :inline :offset-assert 208) + (mouse-normal vector :inline :offset-assert 224) + (mouse-spos-hold vector :inline :offset-assert 240) + (edge-src int32 :offset-assert 256) + (edge-dst int32 :offset-assert 260) + (edge-visibility int32 :offset-assert 264) + (vehicle-edit-mode symbol :offset-assert 268) ;; guessed by decompiler + (hover-edit-mode symbol :offset-assert 272) ;; guessed by decompiler + (plane-height float :offset-assert 276) + (plane-height-hold float :offset-assert 280) + (minimap-make-mode uint8 :offset-assert 284) + (clipping-dist float :offset-assert 288) + (default-node mysql-nav-node :inline :offset-assert 304) + (default-edge mysql-nav-edge :inline :offset-assert 380) + (command-array nav-graph-command-array :offset-assert 456) ;; guessed by decompiler + ) + :method-count-assert 68 + :size-assert #x1cc + :flag-assert #x44015001cc + (:methods + (nav-graph-editor-method-29 () none) ;; 29 ;; (nav-graph-editor-method-29 (_type_ string string string) none 29) + (nav-graph-editor-method-30 () none) ;; 30 ;; (nav-graph-editor-method-30 (_type_ int) symbol 30) + (nav-graph-editor-method-31 () none) ;; 31 ;; (nav-graph-editor-method-31 (_type_ int) symbol 31) + (nav-graph-editor-method-32 () none) ;; 32 ;; (nav-graph-editor-method-32 (_type_ symbol int) none 32) + (nav-graph-editor-method-33 () none) ;; 33 ;; (nav-graph-editor-method-33 (_type_ int) none 33) + (nav-graph-editor-method-34 () none) ;; 34 ;; (nav-graph-editor-method-34 (_type_) object 34) + (nav-graph-editor-method-35 () none) ;; 35 ;; (nav-graph-editor-method-35 (_type_) none 35) + (nav-graph-editor-method-36 () none) ;; 36 ;; (nav-graph-editor-method-36 (_type_) none 36) + (nav-graph-editor-method-37 () none) ;; 37 ;; (nav-graph-editor-method-37 (_type_) none 37) + (nav-graph-editor-method-38 () none) ;; 38 ;; (nav-graph-editor-method-38 (_type_) none 38) + (nav-graph-editor-method-39 () none) ;; 39 ;; (nav-graph-editor-method-39 (_type_) none 39) + (nav-graph-editor-method-40 () none) ;; 40 ;; (nav-graph-editor-method-40 (_type_) none 40) + (nav-graph-editor-method-41 () none) ;; 41 ;; (nav-graph-editor-method-41 (_type_) none 41) + (nav-graph-editor-method-42 () none) ;; 42 ;; (nav-graph-editor-method-42 (_type_) symbol 42) + (nav-graph-editor-method-43 () none) ;; 43 ;; (nav-graph-editor-method-43 (_type_) none 43) + (nav-graph-editor-method-44 () none) ;; 44 ;; (nav-graph-editor-method-44 (_type_) symbol 44) + (nav-graph-editor-method-45 () none) ;; 45 ;; (nav-graph-editor-method-45 (_type_) none 45) + (nav-graph-editor-method-46 () none) ;; 46 ;; (nav-graph-editor-method-46 (_type_) pad-buttons 46) + (nav-graph-editor-method-47 () none) ;; 47 ;; (nav-graph-editor-method-47 (_type_) none 47) + (nav-graph-editor-method-48 () none) ;; 48 ;; (nav-graph-editor-method-48 (_type_ uint) nav-graph-command 48) + (nav-graph-editor-method-49 () none) ;; 49 ;; (nav-graph-editor-method-49 (_type_) nav-graph-command 49) + (nav-graph-editor-method-50 () none) ;; 50 ;; (nav-graph-editor-method-50 (_type_) none 50) + (nav-graph-editor-method-51 () none) ;; 51 ;; (nav-graph-editor-method-51 (_type_) none 51) + (nav-graph-editor-method-52 () none) ;; 52 ;; (nav-graph-editor-method-52 (_type_) uint 52) + (nav-graph-editor-method-53 () none) ;; 53 ;; (nav-graph-editor-method-53 (_type_ int int) none 53) + (nav-graph-editor-method-54 () none) ;; 54 ;; (nav-graph-editor-method-54 (_type_ int) none 54) + (nav-graph-editor-method-55 () none) ;; 55 ;; (nav-graph-editor-method-55 (_type_ int) none 55) + (nav-graph-editor-method-56 () none) ;; 56 ;; (nav-graph-editor-method-56 (_type_ int) none 56) + (nav-graph-editor-method-57 () none) ;; 57 ;; (nav-graph-editor-method-57 (_type_ int int) int 57) + (nav-graph-editor-method-58 () none) ;; 58 ;; (nav-graph-editor-method-58 (_type_) symbol 58) + (nav-graph-editor-method-59 () none) ;; 59 ;; (nav-graph-editor-method-59 (_type_) pad-buttons 59) + (nav-graph-editor-method-60 () none) ;; 60 ;; (nav-graph-editor-method-60 (_type_) none 60) + (nav-graph-editor-method-61 () none) ;; 61 ;; (nav-graph-editor-method-61 (_type_) none 61) + (nav-graph-editor-method-62 () none) ;; 62 ;; (nav-graph-editor-method-62 (_type_ symbol symbol) none 62) + (nav-graph-editor-method-63 () none) ;; 63 ;; (nav-graph-editor-method-63 (_type_) none 63) + (nav-graph-editor-method-64 () none) ;; 64 + (nav-graph-editor-method-65 () none) ;; 65 + (nav-graph-editor-method-66 () none) ;; 66 + (nav-graph-editor-method-67 () none) ;; 67 + ) + (:state-methods + adjust-node-angle ;; 22, old: (adjust-node-angle () _type_ :state 22) + move-node ;; 14, old: (move-node () _type_ :state 14) + adjust-plane ;; 19, old: (adjust-plane () _type_ :state 19) + adjust-node-radius ;; 23, old: (adjust-node-radius () _type_ :state 23) + move-plane ;; 15, old: (move-plane () _type_ :state 15) + create-edge ;; 18, old: (create-edge () _type_ :state 18) + edit-edge ;; 17, old: (edit-edge () _type_ :state 17) + adjust-edge-visibility ;; 24, old: (adjust-edge-visibility () _type_ :state 24) + adjust-edge-width ;; 25, old: (adjust-edge-width () _type_ :state 25) + adjust-edge-density ;; 26, old: (adjust-edge-density () _type_ :state 26) + adjust-it ;; 20, old: (adjust-it () _type_ :state 20) + adjust-minimap ;; 21, old: (adjust-minimap () _type_ :state 21) + draw-closest-minimap ;; 27, old: (draw-closest-minimap () _type_ :state 27) + create ;; 16, old: (create () _type_ :state 16) + create-pov ;; 28, old: (nav-graph-editor-method-28 (_type_) none 28) + ) + ) +|# + +;; (define-extern *nav-graph-editor* object) ;; (pointer nav-graph-editor) +;; (define-extern get-node-draw-position function) +;; (define-extern nav-graph-editor-init-by-other function) ;; (function string none :behavior nav-graph-editor) +;; (define-extern run-nav-graph-editor function) ;; (function symbol (pointer process)) +;; (define-extern get-nav-graph-editor function) ;; (function nav-graph-editor) +;; (define-extern exit-nav-graph-editor function) ;; (function none) +;; (define-extern nav-graph-set-level function) +;; (define-extern set-minimap-edge-flag function) ;; (function nav-minimap-edge-flag uint) +;; (define-extern set-vehicle-edit-mode function) ;; (function symbol none) +;; (define-extern translate-nav-graph function) ;; (function float float float symbol) +;; (define-extern update-nav-meshes function) ;; (function symbol) +;; (define-extern delete-node-nav-mesh function) +;; (define-extern smooth-nav-graph function) ;; (function string symbol) +;; (define-extern update-height function) ;; (function string symbol) +;; (define-extern update-width function) ;; (function string symbol) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; generic-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype gsf-vertex (structure) + ((data uint32 8 :offset-assert 0) ;; guessed by decompiler + (byte uint8 32 :offset-assert 0) ;; guessed by decompiler + (quad uint128 2 :offset-assert 0) ;; guessed by decompiler + (vt qword :inline :offset-assert 0) + (pos vector3s :inline :offset-assert 0) + (tex vector2uh :inline :offset-assert 12) + (nrm vector3s :inline :offset-assert 16) + (nc qword :inline :offset-assert 16) + (clr vector4ub :inline :offset-assert 28) + (dtex vector2uh :inline :offset-assert 16) + (dclr vector4ub :inline :offset-assert 20) + ) + :method-count-assert 9 + :size-assert #x20 + :flag-assert #x900000020 + ) +|# + +#| +(deftype gsf-fx-vertex (structure) + ((clr vector4ub :inline :offset-assert 0) + (tex vector2uh :inline :offset-assert 4) + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +#| +(deftype gsf-header (structure) + ((num-strips uint8 :offset-assert 0) + (num-new-vtxs uint8 :offset-assert 1) + (num-dps uint16 :offset-assert 2) + (num-vtxs uint16 :offset-assert 4) + (strip-table uint8 10 :offset-assert 6) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype gsf-ik (structure) + ((index uint8 :offset-assert 0) + (no-kick uint8 :offset-assert 1) + ) + :method-count-assert 9 + :size-assert #x2 + :flag-assert #x900000002 + ) +|# + +#| +(deftype gsf-info (structure) + ((ptr-iks uint32 :offset-assert 0) + (ptr-verts uint32 :offset-assert 4) + (ptr-fx uint32 :offset-assert 8) + (dummy2 uint32 :offset-assert 12) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype gsf-buffer (structure) + ((data uint8 8192 :offset-assert 0) ;; guessed by decompiler + (info gsf-info :inline :offset-assert 0) + (header gsf-header :inline :offset-assert 16) + (work-area uint8 :dynamic :offset-assert 32) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x2000 + :flag-assert #x900002000 + ) +|# + +#| +(deftype generic-frag (structure) + ((start-pos uint16 :offset-assert 0) + (end-pos uint16 :offset-assert 2) + ) + :method-count-assert 9 + :size-assert #x4 + :flag-assert #x900000004 + ) +|# + +#| +(deftype generic-strip (structure) + ((pos uint16 :offset-assert 0) + (len uint16 :offset-assert 2) + ) + :method-count-assert 9 + :size-assert #x4 + :flag-assert #x900000004 + ) +|# + +#| +(deftype generic-envmap-saves (structure) + ((index-mask vector4w :inline :offset-assert 0) + (verts uint128 12 :offset-assert 16) ;; guessed by decompiler + (kicks uint128 4 :offset-assert 208) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x110 + :flag-assert #x900000110 + ) +|# + +#| +(deftype generic-interp-job (structure) + ((job-type uint16 :offset-assert 0) + (num uint16 :offset-assert 2) + (first uint16 :offset-assert 4) + (pad uint16 :offset-assert 6) + (ptr-data uint32 :offset-assert 8) + (morph-z uint16 :offset-assert 12) + (morph-w uint16 :offset-assert 14) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype generic-saves (structure) + ((ptr-dma uint32 :offset-assert 0) + (ptr-vtxs uint32 :offset-assert 4) + (ptr-clrs uint32 :offset-assert 8) + (ptr-texs uint32 :offset-assert 12) + (ptr-env-clrs uint32 :offset-assert 16) + (ptr-env-texs uint32 :offset-assert 20) + (cur-outbuf uint32 :offset-assert 24) + (ptr-fx-buf uint32 :offset-assert 28) + (xor-outbufs uint32 :offset-assert 32) + (num-dps uint32 :offset-assert 36) + (qwc uint32 :offset-assert 40) + (gsf-buf gsf-buffer :offset-assert 44) + (ptr-shaders uint32 :offset-assert 48) + (ptr-env-shader uint32 :offset-assert 52) + (is-envmap uint16 :offset-assert 56) + (is-translucent uint16 :offset-assert 58) + (basep uint32 :offset-assert 60) + (ptr-interp-job generic-interp-job :offset-assert 64) + (gifbuf-adr uint32 :offset-assert 68) + (inbuf-adr uint32 :offset-assert 72) + (fade-val uint32 :offset-assert 76) + (time-of-day-color rgba :offset-assert 80) ;; guessed by decompiler + (to-vu0-waits uint32 :offset-assert 84) + (to-spr-waits uint32 :offset-assert 88) + (from-spr-waits uint32 :offset-assert 92) + (envmap generic-envmap-saves :inline :offset-assert 96) + ) + :method-count-assert 9 + :size-assert #x170 + :flag-assert #x900000170 + ) +|# + +#| +(deftype generic-gif-tag (structure) + ((data uint32 4 :offset-assert 0) ;; guessed by decompiler + (qword qword :inline :offset-assert 0) + (fan-prim gif-tag-prim :offset-assert 0) ;; guessed by decompiler + (str-prim gif-tag-prim :offset-assert 4) ;; guessed by decompiler + (regs gif-tag-regs-32 :offset-assert 8) ;; guessed by decompiler + (num-strips uint32 :offset-assert 12) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype generic-envmap-consts (structure) + ((consts vector :inline :offset-assert 0) + (strgif generic-gif-tag :inline :offset-assert 16) + (colors vector4w :inline :offset-assert 32) + (shader adgif-shader :inline :offset-assert 48) + ) + :method-count-assert 9 + :size-assert #x80 + :flag-assert #x900000080 + ) +|# + +#| +(deftype generic-consts (structure) + ((dma-header dma-packet :inline :offset-assert 0) + (vif-header uint32 4 :offset-assert 16) ;; guessed by decompiler + (dma-ref-vtxs dma-packet :inline :offset-assert 32) + (dma-cnt-call dma-packet :inline :offset-assert 48) + (matrix matrix :inline :offset-assert 64) + (base-strgif generic-gif-tag :inline :offset-assert 128) + (alpha-opaque gs-adcmd :inline :offset-assert 144) + (alpha-translucent gs-adcmd :inline :offset-assert 160) + (ztest-normal gs-adcmd :inline :offset-assert 176) + (ztest-opaque gs-adcmd :inline :offset-assert 192) + (adcmd-offsets uint8 16 :offset-assert 208) ;; guessed by decompiler + (adcmds UNKNOWN 4 :offset-assert 144) + (stcycle-tag uint32 :offset-assert 224) + (unpack-vtx-tag uint32 :offset-assert 228) + (unpack-clr-tag uint32 :offset-assert 232) + (unpack-tex-tag uint32 :offset-assert 236) + (mscal-tag uint32 :offset-assert 240) + (flush-tag uint32 :offset-assert 244) + (reset-cycle-tag uint32 :offset-assert 248) + (dummy0 uint32 :offset-assert 252) + (dma-tag-cnt uint64 :offset-assert 256) + (envmap generic-envmap-consts :inline :offset-assert 272) + (light-consts vector :inline :offset-assert 400) + (texture-offset uint16 8 :offset-assert 416) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x1b0 + :flag-assert #x9000001b0 + ) +|# + +#| +(deftype generic-storage (structure) + ((data uint128 16 :offset-assert 0) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x100 + :flag-assert #x900000100 + ) +|# + +#| +(deftype gsf-vertex-array (UNKNOWN) + ((vtx gsf-vertex :dynamic :offset-assert 0) ;; guessed by decompiler + ) + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ) +|# + +#| +(deftype gsf-fx-vertex-array (UNKNOWN) + ((data gsf-fx-vertex :dynamic :offset-assert 0) ;; guessed by decompiler + ) + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ) +|# + +;; (define-extern *gsf-buffer* object) ;; gsf-buffer + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ocean-trans-tables ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *ocean-left-table* object) ;; (pointer float) +;; (define-extern *ocean-right-table* object) ;; (pointer float) +;; (define-extern *ocean-up-table* object) ;; (pointer float) +;; (define-extern *ocean-down-table* object) ;; (pointer float) +;; (define-extern *ocean-down-left-table* object) ;; (pointer float) +;; (define-extern *ocean-down-right-table* object) ;; (pointer float) +;; (define-extern *ocean-up-right-table* object) ;; (pointer float) +;; (define-extern *ocean-up-left-table* object) ;; (pointer float) +;; (define-extern *ocean-trans-left-table* object) ;; (pointer float) +;; (define-extern *ocean-trans-right-table* object) ;; (pointer float) +;; (define-extern *ocean-trans-up-table* object) ;; (pointer float) +;; (define-extern *ocean-trans-down-table* object) ;; (pointer float) +;; (define-extern *ocean-trans-down-left-table* object) ;; (pointer float) +;; (define-extern *ocean-trans-down-right-table* object) ;; (pointer float) +;; (define-extern *ocean-trans-up-right-table* object) ;; (pointer float) +;; (define-extern *ocean-trans-up-left-table* object) ;; (pointer float) +;; (define-extern *ocean-trans-corner-table* object) ;; (inline-array vector4w-2) +;; (define-extern *ocean-trans-strip-array* object) ;; (pointer float) +;; (define-extern *ocean-trans-st-table* object) ;; (inline-array vector) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; collide-func ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern raw-ray-sphere-intersect function) +;; (define-extern ray-sphere-intersect function) ;; (function vector vector vector float float) +;; (define-extern ray-circle-intersect function) ;; (function vector vector vector float float) +;; (define-extern ray-cylinder-intersect function) ;; (function vector vector vector vector float float vector float) +;; (define-extern ray-plane-intersect function) ;; (function vector vector vector vector vector vector vector float) +;; (define-extern ray-triangle-intersect function) +;; (define-extern collide-do-primitives function) +;; (define-extern moving-sphere-triangle-intersect function) ;; (function vector vector float collide-cache-tri vector vector float) +;; (define-extern moving-sphere-sphere-intersect function) +;; (define-extern moving-sphere-moving-sphere-intersect function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ocean-frames ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *ocean-wave-frames* object) ;; (pointer uint32) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; precurd-obs ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype pre-tformer (process-drawable) + () + :method-count-assert 21 + :size-assert #xc8 + :flag-assert #x15005000c8 + (:state-methods + idle ;; 20 + ) + ) +|# + +#| +(deftype wall-window-big (process-drawable) + () + :method-count-assert 21 + :size-assert #xc8 + :flag-assert #x15005000c8 + (:state-methods + idle ;; 20 + ) + ) +|# + +#| +(deftype precurd-door-a (com-airlock) + () + :method-count-assert 30 + :size-assert #x1b0 + :flag-assert #x1e013001b0 + ) +|# + +#| +(deftype precur-bridge-path-break (process-drawable) + ((triggered? basic :offset-assert 196) + (idx uint8 :offset-assert 200) + (l-origin matrix :inline :offset-assert 204) + (actor-group uint32 :offset-assert 268) + (actor-group-count int32 :offset-assert 272) + (anim-1-time uint64 :offset-assert 276) + (delay-time uint64 :offset-assert 284) + (debris-handle uint64 :offset-assert 292) + ) + :method-count-assert 28 + :size-assert #x130 + :flag-assert #x1c00b00130 + (:methods + (precur-bridge-path-break-method-21 () none) ;; 21 + (precur-bridge-path-break-method-22 () none) ;; 22 + (precur-bridge-path-break-method-23 () none) ;; 23 + (precur-bridge-path-break-method-24 () none) ;; 24 + (precur-bridge-path-break-method-25 () none) ;; 25 + (precur-bridge-path-break-method-26 () none) ;; 26 + (precur-bridge-path-break-method-27 () none) ;; 27 + ) + (:state-methods + idle ;; 20 + ) + ) +|# + +#| +(deftype precur-bridge-blocks-break (process-drawable) + ((triggered? basic :offset-assert 200) + (idx uint8 :offset-assert 204) + (snds UNKNOWN 5 :offset-assert 208) + (toe-up? UNKNOWN 5 :offset-assert 228) + ) + :method-count-assert 26 + :size-assert #xf8 + :flag-assert #x1a008000f8 + (:methods + (precur-bridge-blocks-break-method-21 () none) ;; 21 + (precur-bridge-blocks-break-method-22 () none) ;; 22 + (precur-bridge-blocks-break-method-23 () none) ;; 23 + (precur-bridge-blocks-break-method-24 () none) ;; 24 + (precur-bridge-blocks-break-method-25 () none) ;; 25 + ) + (:state-methods + idle ;; 20 + ) + ) +|# + +;; (define-extern pre-tformer-spawn-leg-a function) +;; (define-extern pre-tformer-spawn-leg-b function) +;; (define-extern pre-tformer-spawn-leg-c function) +;; (define-extern pre-tformer-spawn-spike function) +;; (define-extern *precurd-obs-shake-time* object) +;; (define-extern wall-window-big-init-by-other function) +;; (define-extern *precur-blocks-trigger-points* array) +;; (define-extern *precur-path-trigger-points* array) +;; (define-extern *precur-path-2nd-trigger-points* array) +;; (define-extern *precur-trigger-idx* object) +;; (define-extern precur-bridge-reset function) +;; (define-extern precur-bridge-path-trigger function) +;; (define-extern precur-bridge-path-2nd-trigger function) +;; (define-extern precur-bridge-blocks-trigger function) +;; (define-extern precur-trigger-update function) +;; (define-extern *precur-path-delay-time* array) +;; (define-extern *precurd-blow-snd-id* object) +;; (define-extern precur-play-blow-sound function) +;; (define-extern precur-stop-blow-sound function) +;; (define-extern *precurd-panel-tear-off-time* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; target-swim ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern target-swim-tilt function) ;; (function float float float float float :behavior target) +;; (define-extern target-swim-stance object) ;; (state target) +;; (define-extern target-swim-walk object) ;; (state target) +;; (define-extern target-swim-down object) ;; (state target) +;; (define-extern target-swim-up object) ;; (state target) +;; (define-extern target-swim-jump-jump object) ;; (state float float surface target) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; art-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype joint-anim (basic) + ((name string :offset-assert 4) ;; guessed by decompiler + (number int16 :offset-assert 8) + (length int16 :offset-assert 10) + ) + :method-count-assert 9 + :size-assert #xc + :flag-assert #x90000000c + ) +|# + +;; (deftype joint-anim-matrix (joint-anim) +;; () +;; :flag-assert #x900000010 +;; ) + +#| +(deftype joint-anim-transformq (joint-anim) + ((name string :offset-assert 0) ;; guessed by decompiler + (number int16 :offset-assert 4) + (length int16 :offset-assert 6) + (data transformq :dynamic :offset-assert 12) ;; guessed by decompiler + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype joint-anim-drawable (joint-anim) + ((data drawable :dynamic :offset-assert 12) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #xc + :flag-assert #x90000000c + ) +|# + +#| +(deftype joint-anim-frame (structure) + ((matrices matrix 2 :offset-assert 0) ;; guessed by decompiler + (data transformq :dynamic :offset-assert 128) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x80 + :flag-assert #x900000080 + ) +|# + +#| +(deftype joint-anim-compressed-hdr (structure) + ((control-bits uint32 14 :offset-assert 0) ;; guessed by decompiler + (num-joints uint32 :offset-assert 56) + (matrix-bits uint32 :offset-assert 60) + ) + :method-count-assert 9 + :size-assert #x40 + :flag-assert #x900000040 + ) +|# + +#| +(deftype joint-anim-compressed-fixed (structure) + ((hdr joint-anim-compressed-hdr :inline :offset-assert 0) + (offset-64 uint32 :offset-assert 64) + (offset-32 uint32 :offset-assert 68) + (offset-16 uint32 :offset-assert 72) + (reserved uint32 :offset-assert 76) + (data vector 133 :offset-assert 80) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x8a0 + :flag-assert #x9000008a0 + ) +|# + +#| +(deftype joint-anim-compressed-frame (structure) + ((offset-64 uint32 :offset-assert 0) + (offset-32 uint32 :offset-assert 4) + (offset-16 uint32 :offset-assert 8) + (reserved uint32 :offset-assert 12) + (data vector 133 :offset-assert 16) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x860 + :flag-assert #x900000860 + ) +|# + +#| +(deftype joint-anim-compressed-control (structure) + ((num-frames uint16 :offset-assert 0) + (flags uint16 :offset-assert 2) + (fixed-qwc uint32 :offset-assert 4) + (frame-qwc uint32 :offset-assert 8) + (fixed joint-anim-compressed-fixed :offset-assert 12) + (data joint-anim-compressed-frame :dynamic :offset-assert 16) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype art (basic) + ((name string :offset-assert 8) ;; guessed by decompiler + (length int32 :offset-assert 12) + (extra res-lump :offset-assert 16) ;; guessed by decompiler + ) + :method-count-assert 14 + :size-assert #x14 + :flag-assert #xe00000014 + (:methods + (art-method-9 () none) ;; 9 ;; (login (_type_) _type_ 9) + (art-method-10 () none) ;; 10 ;; (get-art-by-name-method (_type_ string type) basic 10) + (art-method-11 () none) ;; 11 ;; (get-art-idx-by-name-method (_type_ string type) int 11) + (art-method-12 () none) ;; 12 ;; (needs-link? (_type_) symbol 12) + (art-method-13 () none) ;; 13 + ) + ) +|# + +#| +(deftype art-element (art) + ((master-art-group-name basic :offset-assert 20) + (master-art-group-index int32 :offset-assert 24) + ) + :method-count-assert 14 + :size-assert #x30 + :flag-assert #xe00000030 + ) +|# + +;; (deftype art-mesh-anim (art-element) +;; () +;; :flag-assert #xe00000030 +;; ) + +#| +(deftype art-joint-anim (art-element) + ((eye-anim merc-eye-anim-block :offset-assert 28) + (blend-shape-anim (pointer int8) :offset-assert 32) ;; guessed by decompiler + (frames joint-anim-compressed-control :offset-assert 36) + (speed float :offset-assert 48) + (artist-base float :offset-assert 52) + (artist-step float :offset-assert 56) + ) + :method-count-assert 14 + :size-assert #x3c + :flag-assert #xe0000003c + ;; field blend-shape-anim uses ~A with a signed load. + ) +|# + +;; (deftype art-group (art) +;; () +;; :flag-assert #x1000000020 +;; ) + +;; (deftype art-mesh-geo (art-element) +;; () +;; :flag-assert #xe00000030 +;; ) + +;; (deftype art-joint-geo (art-element) +;; () +;; :flag-assert #xe00000030 +;; ) + +#| +(deftype art-cloth-geo (art-element) + ((anchor-transforms basic :offset-assert 48) + (sphere-transforms basic :offset-assert 52) + (disc-transforms basic :offset-assert 56) + (cloth-thickness basic :offset-assert 60) + (thickness-scalar float :offset-assert 64) + (num-points int32 :offset-assert 12) + (mesh UNKNOWN :dynamic :offset-assert 80) + ) + :method-count-assert 14 + :size-assert #x50 + :flag-assert #xe00000050 + ) +|# + +#| +(deftype art-joint-anim-manager-slot (structure) + ((anim art-joint-anim :offset-assert 0) ;; guessed by decompiler + (comp-data uint32 :offset-assert 4) + (time-stamp uint64 :offset-assert 8) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype art-joint-anim-manager (basic) + ((heap kheap :inline :offset-assert 16) + (free-index int32 :offset-assert 32) + (slot art-joint-anim-manager-slot 64 :offset-assert 48) ;; guessed by decompiler + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + ) + :method-count-assert 14 + :size-assert #x430 + :flag-assert #xe00000430 + (:methods + ;; (new (symbol type int) _type_ 0) + (art-joint-anim-manager-method-9 () none) ;; 9 ;; (decompress (_type_ art-joint-anim) art-joint-anim 9) + (art-joint-anim-manager-method-10 () none) ;; 10 ;; (update-time-stamp (_type_ art-joint-anim) art-joint-anim 10) + (art-joint-anim-manager-method-11 () none) ;; 11 ;; (unload-from-slot (_type_ int) art-joint-anim 11) + (art-joint-anim-manager-method-12 () none) ;; 12 ;; (used-bytes-for-slot (_type_ int) int 12) + (art-joint-anim-manager-method-13 () none) ;; 13 ;; (unload-from-level (_type_ level) none 13) + ) + ) +|# + +#| +(deftype skeleton-group (art-group) + ((name string :offset-assert 8) ;; guessed by decompiler + (length int32 :offset-assert 12) + (extra res-lump :offset-assert 16) ;; guessed by decompiler + (info file-info :offset-assert 4) ;; guessed by decompiler + (data art-element :dynamic :offset-assert 32) ;; guessed by decompiler + (art-group-name string :offset-assert 32) ;; guessed by decompiler + (jgeo int16 :offset-assert 36) ;; int32 + (janim int16 :offset-assert 38) ;; int32 + (bounds vector :inline :offset-assert 48) + (radius meters :offset-assert 60) + (mgeo int16 6 :offset-assert 64) ;; guessed by decompiler + (max-lod int32 :offset-assert 76) + (lod-dist float 6 :offset-assert 80) ;; guessed by decompiler + (longest-edge meters :offset-assert 104) + (texture-level int8 :offset-assert 108) + (version int8 :offset-assert 109) + (shadow int16 :offset-assert 110) ;; int8 + (shadow-joint-index int8 :offset-assert 112) + (origin-joint-index int8 :offset-assert 113) + (sort int8 :offset-assert 114) + (light-index uint8 :offset-assert 115) + (clothing basic :offset-assert 116) + (global-effects uint8 :offset-assert 120) + ) + :method-count-assert 17 + :size-assert #x79 + :flag-assert #x1100000079 + (:methods + (skeleton-group-method-16 () none) ;; 16 + ) + ) +|# + +#| +(deftype lod-group (structure) + ((geo merc-ctrl :offset-assert 0) ;; guessed by decompiler + (dist meters :offset-assert 4) + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +#| +(deftype lod-set (structure) + ((lod lod-group 6 :offset-assert 0) ;; guessed by decompiler + (max-lod int8 :offset-assert 48) + ) + :method-count-assert 10 + :size-assert #x31 + :flag-assert #xa00000031 + (:methods + (lod-set-method-9 () none) ;; 9 ;; (setup-lods! (_type_ skeleton-group art-group entity) _type_ 9) + ) + ) +|# + +#| +(deftype draw-control (basic) + ((process process-drawable :offset-assert 4) ;; guessed by decompiler + (status draw-control-status :offset-assert 8) + (data-format uint8 :offset-assert 10) ;; draw-control-data-format + (global-effect draw-control-global-effect :offset-assert 11) + (art-group art-group :offset-assert 12) ;; guessed by decompiler + (jgeo art-joint-geo :offset-assert 16) ;; guessed by decompiler + (mgeo merc-ctrl :offset-assert 20) ;; guessed by decompiler + (dma-add-func (function process-drawable draw-control symbol object none) :offset-assert 24) ;; guessed by decompiler + (skeleton skeleton :offset-assert 28) ;; guessed by decompiler + (lod-set lod-set :inline :offset-assert 32) + (lod UNKNOWN 6 :offset-assert 32) + (max-lod int8 :offset-assert 80) + (force-lod int8 :offset-assert 81) + (cur-lod int8 :offset-assert 82) + (desired-lod int8 :offset-assert 83) + (ripple ripple-control :offset-assert 84) ;; guessed by decompiler + (longest-edge meters :offset-assert 88) + (longest-edge? uint32 :offset-assert 88) + (light-index uint8 :offset-assert 92) + (shadow-mask uint8 :offset-assert 93) + (level-index uint8 :offset-assert 94) + (death-draw-overlap uint8 :offset-assert 95) + (death-timer uint8 :offset-assert 96) + (death-timer-org uint8 :offset-assert 97) + (death-vertex-skip uint16 :offset-assert 98) + (death-effect uint32 :offset-assert 100) + (shadow shadow-geo :offset-assert 104) ;; guessed by decompiler + (shadow-ctrl shadow-control :offset-assert 108) ;; guessed by decompiler + (distance meters :offset-assert 112) + (origin vector :inline :offset-assert 128) + (bounds vector :inline :offset-assert 144) + (radius meters :offset-assert 156) + (color-mult rgbaf :inline :offset-assert 160) + (color-emissive rgbaf :inline :offset-assert 176) + (effect-mask uint64 :offset-assert 192) + (seg-mask uint64 :offset-assert 200) + (origin-joint-index uint8 :offset-assert 208) + (shadow-joint-index uint8 :offset-assert 209) + (force-fade uint8 :offset-assert 210) + (default-texture-page uint8 :offset-assert 211) + (shadow-values uint32 :offset-assert 212) + (cloth-instances basic :offset-assert 216) + ) + :method-count-assert 16 + :size-assert #xdc + :flag-assert #x10000000dc + ;; field draw-control-status is likely a value type. field draw-control-global-effect is likely a value type. + (:methods + ;; (new (symbol type process symbol) _type_ 0) + (draw-control-method-9 () none) ;; 9 ;; (get-skeleton-origin (_type_) vector 9) + (draw-control-method-10 () none) ;; 10 ;; (lod-set! (_type_ int) none 10) + (draw-control-method-11 () none) ;; 11 ;; (lods-assign! (_type_ lod-set) none 11) + (draw-control-method-12 () none) ;; 12 ;; (setup-masks (_type_ int int) none 12) + (draw-control-method-13 () none) ;; 13 ;; (setup-cspace-and-add (_type_ art-joint-geo symbol) cspace-array 13) + (draw-control-method-14 () none) ;; 14 ;; (do-joint-math (_type_ cspace-array joint-control) none 14) + (draw-control-method-15 () none) ;; 15 + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; cam-layout ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype cam-layout-bank (basic) + ((spline-t float :offset-assert 4) + (spline-step float :offset-assert 8) + (intro-t float :offset-assert 12) + (intro-step float :offset-assert 16) + (debug-t float :offset-assert 20) + (debug-step float :offset-assert 24) + ) + :method-count-assert 9 + :size-assert #x1c + :flag-assert #x90000001c + ) +|# + +#| +(deftype clm-basic (basic) + () + :method-count-assert 9 + :size-assert #x4 + :flag-assert #x900000004 + ) +|# + +#| +(deftype clm-item-action (structure) + ((button uint64 :offset-assert 0) + (options uint64 :offset-assert 8) + (func symbol :offset-assert 16) ;; guessed by decompiler + (parm0 int32 :offset-assert 20) ;; guessed by decompiler + (parm1 symbol :offset-assert 24) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x1c + :flag-assert #x90000001c + ;; field parm0 uses ~A with a signed load. field parm1 uses ~A with a signed load. + ) +|# + +#| +(deftype clm-item (clm-basic) + ((description string :offset-assert 4) ;; guessed by decompiler + (button-symbol symbol :offset-assert 8) ;; guessed by decompiler + (action clm-item-action :inline :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x2c + :flag-assert #x90000002c + ) +|# + +#| +(deftype clm-list-item (basic) + ((description string :offset-assert 4) ;; guessed by decompiler + (track-val symbol :offset-assert 8) ;; guessed by decompiler + (val-func symbol :offset-assert 12) ;; guessed by decompiler + (val-parm0 int32 :offset-assert 16) ;; guessed by decompiler + (val-parm1 symbol :offset-assert 20) ;; guessed by decompiler + (actions (array clm-item-action) :offset-assert 24) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x1c + :flag-assert #x90000001c + ;; field track-val uses ~A with a signed load. field val-parm0 uses ~A with a signed load. field val-parm1 uses ~A with a signed load. + ) +|# + +#| +(deftype clm-list (clm-basic) + ((tracker symbol :offset-assert 4) ;; guessed by decompiler + (cur-list-item int32 :offset-assert 8) + (items (array clm-list-item) :offset-assert 12) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype clm (basic) + ((title string :offset-assert 4) ;; guessed by decompiler + (items (array clm-basic) :offset-assert 8) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #xc + :flag-assert #x90000000c + ) +|# + +#| +(deftype volume-descriptor-array (inline-array-class) + ((data plane-volume :dynamic :offset-assert 16) ;; guessed by decompiler + ) + :method-count-assert 14 + :size-assert #x10 + :flag-assert #xe00000010 + ) +|# + +#| +(deftype cam-layout (process) + ((cam-entity entity-camera :offset-assert 128) ;; guessed by decompiler + (num-entities int32 :offset-assert 132) + (cur-entity int32 :offset-assert 136) + (num-volumes int32 :offset-assert 140) + (cur-volume int32 :offset-assert 144) + (first-pvol int32 :offset-assert 148) + (first-cutoutvol int32 :offset-assert 152) + (res-key float :offset-assert 156) + ) + :method-count-assert 14 + :size-assert #xa0 + :flag-assert #xe002000a0 + (:states + cam-layout-active ;; associated process guessed by decompiler, old: (state cam-layout) + ) + ) +|# + +#| +(deftype interp-test-info (structure) + ((from vector :inline :offset-assert 0) + (to vector :inline :offset-assert 16) + (origin vector :inline :offset-assert 32) + (color vector4w :offset-assert 48) + (axis vector :offset-assert 52) + (disp string :offset-assert 56) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x3c + :flag-assert #x90000003c + ) +|# + +#| +(deftype clmf-cam-flag-toggle-info (structure) + ((key float :offset-assert 0) + (force-on int32 :offset-assert 4) + (force-off int32 :offset-assert 8) + ) + :method-count-assert 9 + :size-assert #xc + :flag-assert #x90000000c + ) +|# + +;; (define-extern *camera-layout-blink* object) ;; symbol +;; (define-extern *CAM_LAYOUT-bank* cam-layout-bank) ;; cam-layout-bank +;; (define-extern *camera-layout-message-ypos* object) ;; int +;; (define-extern *volume-point-current* object) ;; int +;; (define-extern *volume-point* object) ;; vector-array +;; (define-extern *volume-normal-current* object) ;; int +;; (define-extern *volume-normal* object) ;; vector-array +;; (define-extern *volume-descriptor-current* object) ;; int +;; (define-extern *volume-descriptor* object) ;; vol-control +;; (define-extern cam-layout-print function) ;; (function int int string pointer) +;; (define-extern cam-layout-intersect-dist function) ;; (function vector vector vector float) +;; (define-extern cam-layout-entity-volume-info-create function) ;; (function entity-camera symbol symbol :behavior cam-layout) +;; (define-extern cam-layout-entity-volume-info function) ;; (function symbol :behavior cam-layout) +;; (define-extern v-slrp! function) ;; (function vector vector vector float vector) +;; (define-extern interp-test function) ;; (function (function vector vector vector float vector float none) interp-test-info none) +;; (define-extern interp-test-deg function) ;; (function (function vector vector vector vector float none) interp-test-info none) +;; (define-extern cam-layout-entity-info function) ;; (function entity-actor none) +;; (define-extern clmf-button-test function) ;; (function symbol) +;; (define-extern clmf-bna function) ;; (function symbol) +;; (define-extern clmf-implement function) ;; (function symbol) +;; (define-extern clmf-input function) ;; (function vector vector int vector) +;; (define-extern clmf-pos-rot function) ;; (function symbol symbol symbol :behavior cam-layout) +;; (define-extern clmf-next-volume function) ;; (function int symbol :behavior cam-layout) +;; (define-extern clmf-next-vol-dpad function) ;; (function symbol) +;; (define-extern clmf-to-edit-cam function) ;; (function symbol) +;; (define-extern *last-cur-entity* object) ;; int +;; (define-extern clmf-next-entity function) ;; (function int symbol :behavior cam-layout) +;; (define-extern clmf-to-spline-attr function) ;; (function symbol) +;; (define-extern clmf-to-intro-attr function) ;; (function symbol) +;; (define-extern clmf-to-index-attr function) ;; (function symbol) +;; (define-extern clmf-to-focalpull-attr function) ;; (function symbol) +;; (define-extern clmf-to-edit function) ;; (function symbol :behavior cam-layout) +;; (define-extern clmf-to-select function) ;; (function symbol) +;; (define-extern clmf-look-through function) ;; (function symbol :behavior cam-layout) +;; (define-extern fov->maya function) ;; (function float float) +;; (define-extern cam-layout-save-cam-rot function) ;; (function symbol string entity-actor none) +;; (define-extern cam-layout-save-cam-trans function) ;; (function symbol string entity-actor none) +;; (define-extern cam-layout-save-pivot function) ;; (function symbol string entity-actor none) +;; (define-extern cam-layout-save-align function) ;; (function symbol string entity-actor none) +;; (define-extern cam-layout-save-interesting function) ;; (function symbol string entity-actor none) +;; (define-extern cam-layout-save-fov function) ;; (function symbol string entity-actor none) +;; (define-extern cam-layout-save-focalpull function) ;; (function symbol string entity-actor none) +;; (define-extern cam-layout-save-flags function) ;; (function symbol string entity-actor none) +;; (define-extern cam-layout-save-focalpull-flags function) ;; (function symbol string entity-actor none) +;; (define-extern cam-layout-save-campoints-flags function) ;; (function symbol string entity-actor none) +;; (define-extern cam-layout-save-introsplinetime function) ;; (function symbol string entity-actor none) +;; (define-extern cam-layout-save-introsplineexitval function) ;; (function symbol string entity-actor none) +;; (define-extern cam-layout-save-interptime function) ;; (function symbol string entity-actor none) +;; (define-extern cam-layout-save-splineoffset function) ;; (function symbol string entity-actor none) +;; (define-extern cam-layout-save-spline-follow-dist-offset function) ;; (function symbol string entity-actor none) +;; (define-extern cam-layout-save-campointsoffset function) ;; (function symbol string entity-actor none) +;; (define-extern cam-layout-save-tiltAdjust function) ;; (function symbol string entity-actor none) +;; (define-extern cam-layout-save-stringMinLength function) ;; (function symbol string entity-actor none) +;; (define-extern cam-layout-save-stringMaxLength function) ;; (function symbol string entity-actor none) +;; (define-extern cam-layout-save-stringMinHeight function) ;; (function symbol string entity-actor none) +;; (define-extern cam-layout-save-stringMaxHeight function) ;; (function symbol string entity-actor none) +;; (define-extern cam-layout-save-stringCliffHeight function) ;; (function symbol string entity-actor none) +;; (define-extern cam-layout-save-maxAngle function) ;; (function symbol string entity-actor none) +;; (define-extern clmf-save-single function) ;; (function entity-camera symbol symbol file-stream :behavior cam-layout) +;; (define-extern clmf-save-one function) ;; (function symbol symbol :behavior cam-layout) +;; (define-extern clmf-save-all function) ;; (function symbol symbol :behavior cam-layout) +;; (define-extern clmf-cam-flag-toggle function) ;; (function int int symbol :behavior cam-layout) +;; (define-extern clmf-cam-flag function) ;; (function string uint uint symbol :behavior cam-layout) +;; (define-extern clmf-cam-float-adjust function) ;; (function symbol (pointer float) symbol :behavior cam-layout) +;; (define-extern clmf-cam-meters function) ;; (function meters symbol symbol :behavior cam-layout) +;; (define-extern clmf-cam-fov function) ;; (function degrees symbol symbol :behavior cam-layout) +;; (define-extern clmf-cam-deg function) ;; (function degrees symbol symbol :behavior cam-layout) +;; (define-extern clmf-cam-intro-time function) ;; (function float symbol symbol :behavior cam-layout) +;; (define-extern clmf-cam-interp-time function) ;; (function float symbol symbol :behavior cam-layout) +;; (define-extern clmf-cam-float function) ;; (function float symbol symbol :behavior cam-layout) +;; (define-extern clmf-cam-string function) ;; (function string symbol symbol :behavior cam-layout) +;; (define-extern *clm-focalpull-attr* clm) ;; clm +;; (define-extern *clm-index-attr* clm) ;; clm +;; (define-extern *clm-intro-attr* clm) ;; clm +;; (define-extern *clm-spline-attr* clm) ;; clm +;; (define-extern *clm-cam-attr* clm) ;; clm +;; (define-extern *clm-cam-lookthrough* clm) ;; clm +;; (define-extern *clm-edit* clm) ;; clm +;; (define-extern *clm-save-all* clm) ;; clm +;; (define-extern *clm-save-one* clm) ;; clm +;; (define-extern *clm-select* clm) ;; clm +;; (define-extern *clm* object) ;; clm +;; (define-extern cam-layout-do-action function) ;; (function clm-item-action symbol :behavior cam-layout) +;; (define-extern cam-layout-function-call function) ;; (function symbol string int basic symbol :behavior cam-layout) +;; (define-extern cam-layout-do-menu function) ;; (function clm symbol :behavior cam-layout) +;; (define-extern cam-layout-init function) ;; (function object :behavior cam-layout) +;; (define-extern cam-layout-stop function) ;; (function symbol) +;; (define-extern cam-layout-start function) ;; (function symbol) +;; (define-extern cam-layout-restart function) ;; (function symbol) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; glider-ring-part ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *hanga-sprite-texture-anim-array* texture-anim-array) +;; (define-extern cloud-shadow-find-ground function) +;; (define-extern birth-func-fader function) +;; (define-extern sparticle-fader function) +;; (define-extern sparticle-cloud-update function) +;; (define-extern sparticle-shadow-update function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; merc-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype ripple-merc-query (inline-array-class) + ((start-vertex int32 :offset-assert 16) + (vertex-skip int32 :offset-assert 20) + (vertex-count int32 :offset-assert 24) + (current-loc int32 :offset-assert 28) + (data vector :dynamic :offset-assert 32) ;; guessed by decompiler + ) + :method-count-assert 14 + :size-assert #x20 + :flag-assert #xe00000020 + ) +|# + +#| +(deftype merc-byte-header (structure) + ((srcdest-off uint8 :offset-assert 0) + (rgba-off uint8 :offset-assert 1) + (lump-off uint8 :offset-assert 2) + (fp-off uint8 :offset-assert 3) + (mat1-cnt uint8 :offset-assert 4) + (mat2-cnt uint8 :offset-assert 5) + (mat3-cnt uint8 :offset-assert 6) + (samecopy-cnt uint8 :offset-assert 7) + (crosscopy-cnt uint8 :offset-assert 8) + (strip-len uint8 :offset-assert 9) + (mm-quadword-fp-off uint8 :offset-assert 10) + (mm-quadword-size uint8 :offset-assert 11) + (perc-off uint8 :offset-assert 12) + (mat-slot uint8 10 :offset-assert 13) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x17 + :flag-assert #x900000017 + ) +|# + +#| +(deftype merc-fragment (structure) + ((header merc-byte-header :inline :offset-assert 0) + (rest uint8 1 :offset-assert 23) ;; guessed by decompiler + ) + :method-count-assert 10 + :size-assert #x18 + :flag-assert #xa00000018 + (:methods + (merc-fragment-method-9 () none) ;; 9 ;; (login-adgifs (_type_) merc-fragment 9) + ) + ) +|# + +#| +(deftype merc-vtx (structure) + ((mat-0 uint8 :offset-assert 0) + (mat-1 uint8 :offset-assert 1) + (nrm-x uint8 :offset-assert 2) + (pos-x uint8 :offset-assert 3) + (dst-0 uint8 :offset-assert 4) + (dst-1 uint8 :offset-assert 5) + (nrm-y uint8 :offset-assert 6) + (pos-y uint8 :offset-assert 7) + (tex-s uint8 :offset-assert 8) + (tex-t uint8 :offset-assert 9) + (nrm-z uint8 :offset-assert 10) + (pos-z uint8 :offset-assert 11) + ) + :method-count-assert 9 + :size-assert #xc + :flag-assert #x90000000c + ) +|# + +#| +(deftype merc-fp-header (structure) + ((x-add float :offset-assert 0) + (y-add float :offset-assert 4) + (z-add float :offset-assert 8) + (shader-cnt uint8 :offset-assert 12) + (kick-info-offset uint8 :offset-assert 13) + (kick-info-step uint8 :offset-assert 14) + (hword-cnt uint8 :offset-assert 15) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype merc-mat-dest (structure) + ((matrix-number uint8 :offset-assert 0) + (matrix-dest uint8 :offset-assert 1) + ) + :method-count-assert 9 + :size-assert #x2 + :flag-assert #x900000002 + ) +|# + +#| +(deftype merc-fragment-control (structure) + ((unsigned-four-count uint8 :offset-assert 0) + (lump-four-count uint8 :offset-assert 1) + (fp-qwc uint8 :offset-assert 2) + (mat-xfer-count uint8 :offset-assert 3) + (mat-dest-data merc-mat-dest :dynamic :offset-assert 4) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x4 + :flag-assert #x900000004 + ) +|# + +#| +(deftype merc-blend-ctrl (structure) + ((blend-vtx-count uint8 :offset-assert 0) + (nonzero-index-count uint8 :offset-assert 1) + (bt-index uint8 :dynamic :offset-assert 2) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x2 + :flag-assert #x900000002 + ) +|# + +#| +(deftype mei-envmap-tint (structure) + ((fade0 float :offset-assert 0) + (fade1 float :offset-assert 4) + (tint rgba :offset-assert 8) ;; guessed by decompiler + (dummy int32 :offset-assert 12) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype mei-texture-scroll (structure) + ((max-dist float :offset-assert 0) + (st-int-scale uint8 :offset-assert 4) + (time-factor uint8 :offset-assert 5) + (scroll-dir uint8 :offset-assert 6) + (cached-time uint8 :offset-assert 7) + (time-delta uint8 :offset-assert 8) + (dummy uint8 7 :offset-assert 9) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype mei-ripple (structure) + ((x-base float :offset-assert 0) + (z-base float :offset-assert 4) + (grid-size float :offset-assert 8) + (angle float :offset-assert 12) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype merc-extra-info (structure) + ((envmap-tint-offset uint8 :offset-assert 0) + (shader-offset uint8 :offset-assert 1) + (texture-scroll-offset uint8 :offset-assert 2) + (ripple-offset uint8 :offset-assert 3) + (dummy uint8 12 :offset-assert 4) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype merc-effect (structure) + ((frag-geo merc-fragment :offset-assert 0) + (frag-ctrl merc-fragment-control :offset-assert 4) + (blend-data merc-blend-data :offset-assert 8) + (blend-ctrl merc-blend-ctrl :offset-assert 12) + (merc-effect-version uint8 :offset-assert 16) + (effect-bits uint8 :offset-assert 17) ;; effect-bits + (frag-count uint16 :offset-assert 18) + (blend-frag-count uint16 :offset-assert 20) + (tri-count uint16 :offset-assert 22) + (dvert-count uint16 :offset-assert 24) + (texture-index uint8 :offset-assert 26) + (effect-usage uint8 :offset-assert 27) + (extra-info merc-extra-info :offset-assert 28) + ) + :method-count-assert 10 + :size-assert #x20 + :flag-assert #xa00000020 + (:methods + (merc-effect-method-9 () none) ;; 9 ;; (login-adgifs (_type_) none 9) + ) + ) +|# + +#| +(deftype merc-eye-ctrl (structure) + ((eye-slot int8 :offset-assert 0) + (shader-offset int8 :offset-assert 1) + (shader-count int8 :offset-assert 2) + (eye-ctrl-index int8 :offset-assert 3) + (shader adgif-shader 6 :offset-assert 16) ;; guessed by decompiler + (left-iris-shader adgif-shader :inline :offset-assert 16) + (left-pupil-shader adgif-shader :inline :offset-assert 96) + (left-lid-shader adgif-shader :inline :offset-assert 176) + (right-iris-shader adgif-shader :inline :offset-assert 256) + (right-pupil-shader adgif-shader :inline :offset-assert 336) + (right-lid-shader adgif-shader :inline :offset-assert 416) + ) + :method-count-assert 9 + :size-assert #x1f0 + :flag-assert #x9000001f0 + ) +|# + +#| +(deftype merc-eye-anim-frame (structure) + ((pupil-trans-x int8 :offset-assert 0) + (pupil-trans-y int8 :offset-assert 1) + (blink int8 :offset-assert 2) + (iris-scale int8 :offset-assert 4) + (pupil-scale int8 :offset-assert 5) + (lid-scale int8 :offset-assert 6) + (dword uint64 :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +#| +(deftype merc-eye-anim-block (structure) + ((max-frame int16 :offset-assert 0) + (data merc-eye-anim-frame :dynamic :offset-assert 8) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +#| +(deftype texture-usage-group (structure) + ((data texture-masks 7 :offset-assert 0) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x150 + :flag-assert #x900000150 + ) +|# + +#| +(deftype merc-ctrl-header (structure) + ((xyz-scale float :offset-assert 0) + (st-magic uint32 :offset-assert 4) + (st-out-a uint32 :offset-assert 8) + (st-out-b uint32 :offset-assert 12) + (st-vif-add uint32 :offset-assert 16) + (st-int-off uint16 :offset-assert 20) + (st-int-scale uint16 :offset-assert 22) + (effect-count uint32 :offset-assert 24) + (blend-target-count uint32 :offset-assert 28) + (fragment-count uint16 :offset-assert 32) + (tri-count uint16 :offset-assert 34) + (matrix-count uint8 :offset-assert 36) + (shader-count uint8 :offset-assert 37) + (transform-vertex-count uint16 :offset-assert 38) + (dvert-count uint16 :offset-assert 40) + (one-mat-count uint16 :offset-assert 42) + (two-mat-count uint16 :offset-assert 44) + (two-mat-reuse-count uint16 :offset-assert 46) + (three-mat-count uint16 :offset-assert 48) + (three-mat-reuse-count uint16 :offset-assert 50) + (shader-upload-count uint8 :offset-assert 52) + (matrix-upload-count uint8 :offset-assert 53) + (same-copy-count uint16 :offset-assert 54) + (cross-copy-count uint16 :offset-assert 56) + (num-verts uint16 :offset-assert 58) + (longest-edge float :offset-assert 60) + (eye-ctrl merc-eye-ctrl :offset-assert 64) + (pad uint32 3 :offset-assert 68) ;; guessed by decompiler + (masks-padding texture-masks :inline :offset-assert 80) + (texture-usage-group texture-usage-group :offset-assert 80) + (dummy-bytes uint8 :dynamic :offset-assert 32) ;; guessed by decompiler + (envmap-tint uint32 :offset-assert 32) + (query basic :offset-assert 36) + (needs-clip uint8 :offset-assert 40) + (use-isometric uint8 :offset-assert 41) + (use-attached-shader uint8 :offset-assert 42) + (display-triangles uint8 :offset-assert 43) + (death-vertex-skip uint16 :offset-assert 44) + (death-start-vertex uint16 :offset-assert 46) + (death-effect uint32 :offset-assert 48) + (use-translucent uint8 :offset-assert 52) + (display-this-fragment uint8 :offset-assert 53) + (use-warp uint8 :offset-assert 54) + (ignore-alpha uint8 :offset-assert 55) + (force-fade uint8 :offset-assert 56) + (disable-fog uint8 :offset-assert 57) + (disable-envmap uint8 :offset-assert 58) + ) + :method-count-assert 9 + :size-assert #x80 + :flag-assert #x900000080 + ;; field xyz-scale is a float printed as hex? + ) +|# + +#| +(deftype merc-ctrl (art-element) + ((num-joints int32 :offset-assert 12) + (seg-table (array uint64) :offset-assert 28) ;; guessed by decompiler + (header merc-ctrl-header :inline :offset-assert 48) + (effect merc-effect :dynamic :offset-assert 176) ;; guessed by decompiler + ) + :method-count-assert 14 + :size-assert #xb0 + :flag-assert #xe000000b0 + ) +|# + +#| +(deftype merc-vu1-low-mem (structure) + ((tri-strip-gif qword :inline :offset-assert 0) ;; gs-gif-tag :inline + (ad-gif qword :inline :offset-assert 16) ;; gs-gif-tag :inline + (hvdf-offset vector :inline :offset-assert 32) + (perspective uint128 4 :offset-assert 48) ;; guessed by decompiler + (fog vector :inline :offset-assert 112) + ) + :method-count-assert 9 + :size-assert #x80 + :flag-assert #x900000080 + ) +|# + +#| +(deftype emerc-vu1-low-mem (structure) + ((tri-strip-gif qword :inline :offset-assert 0) ;; gs-gif-tag :inline + (ad-gif qword :inline :offset-assert 16) ;; gs-gif-tag :inline + (hvdf-offset vector :inline :offset-assert 32) + (perspective vector 4 :offset-assert 48) ;; guessed by decompiler + (fog vector :inline :offset-assert 112) + (unperspect vector :inline :offset-assert 128) + ) + :method-count-assert 9 + :size-assert #x90 + :flag-assert #x900000090 + ) +|# + +#| +(deftype texture-login-data (structure) + ((default-texture-index int32 :offset-assert 0) + (current-texture-index int32 :offset-assert 4) + (texture-usage-group texture-usage-group :offset-assert 8) + (merc-ctrl-header merc-ctrl-header :offset-assert 12) + (name basic :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x14 + :flag-assert #x900000014 + ) +|# + +#| +(deftype ripple-wave (structure) + ((scale float :offset-assert 0) + (offs float :offset-assert 4) + (xdiv int16 :offset-assert 8) + (zdiv int16 :offset-assert 10) + (speed float :offset-assert 12) + (xmul float :offset-assert 16) + (zmul float :offset-assert 20) + (delta float :offset-assert 24) + ) + :method-count-assert 9 + :size-assert #x1c + :flag-assert #x90000001c + ) +|# + +#| +(deftype ripple-wave-set (basic) + ((count int32 :offset-assert 4) + (converted basic :offset-assert 8) + (normal-scale float :offset-assert 12) + (wave ripple-wave 4 :offset-assert 16) ;; guessed by decompiler + (frame-save uint64 :offset-assert 128) + ) + :method-count-assert 9 + :size-assert #x88 + :flag-assert #x900000088 + ) +|# + +#| +(deftype ripple-control (basic) + ((global-scale float :offset-assert 4) + (last-frame-scale float :offset-assert 8) + (close-fade-dist float :offset-assert 12) + (far-fade-dist float :offset-assert 16) + (faded-scale float :offset-assert 20) + (individual-normal-scale float :offset-assert 24) + (waveform ripple-wave-set :offset-assert 28) ;; guessed by decompiler + (send-query symbol :offset-assert 32) ;; guessed by decompiler + (query ripple-merc-query :offset-assert 36) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x28 + :flag-assert #x900000028 + ) +|# + +#| +(deftype death-info (basic) + ((vertex-skip uint16 :offset-assert 4) + (timer uint8 :offset-assert 6) + (overlap uint8 :offset-assert 7) + (effect uint32 :offset-assert 8) + (sound symbol :offset-assert 12) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype merc-blend-data (UNKNOWN) + ((int8-data int8 :dynamic :offset-assert 0) ;; guessed by decompiler + ) + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ) +|# + +;; (define-extern merc-fragment-fp-data function) ;; (function merc-fragment merc-fp-header) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; speech-manager ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype speech-instance (structure) + ((speech uint16 :offset-assert 0) + (num-play-times int8 :offset-assert 2) + (probability float :offset-assert 4) + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +#| +(deftype speech-info (structure) + ((speeches basic :offset-assert 0) + (flags uint64 :offset-assert 8) + (play-time uint64 :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x18 + :flag-assert #x900000018 + ) +|# + +;; (define-extern mark-speech-played function) +;; (define-extern speech-play function) +;; (define-extern speeches-reset function) +;; (define-extern speeches-debug-reset function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; generic-work-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype generic-input-buffer (structure) + ((data uint128 473 :offset-assert 0) ;; guessed by decompiler + (merc generic-merc-work :inline :offset-assert 0) + (tie generic-tie-work :inline :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x1d90 + :flag-assert #x900001d90 + ) +|# + +#| +(deftype generic-debug (structure) + ((locks uint32 4 :offset-assert 0) ;; guessed by decompiler + (timer uint32 32 :offset-assert 16) ;; guessed by decompiler + (count uint32 32 :offset-assert 144) ;; guessed by decompiler + (vps uint32 32 :offset-assert 272) ;; guessed by decompiler + (buffer int32 :offset-assert 400) + (start-addr int32 :offset-assert 404) + (lock int32 :offset-assert 408) + ) + :method-count-assert 9 + :size-assert #x19c + :flag-assert #x90000019c + ) +|# + +#| +(deftype generic-vu1-header (structure) + ((matrix matrix :inline :offset-assert 0) + (strgif generic-gif-tag :inline :offset-assert 64) + (adcmds gs-adcmd 2 :offset-assert 80) ;; guessed by decompiler + (adnop1 gs-adcmd :inline :offset-assert 80) + (adnop2 gs-adcmd :inline :offset-assert 96) + (dps uint16 :offset-assert 92) + (kickoff uint16 :offset-assert 108) + (strips uint16 :offset-assert 76) + ) + :method-count-assert 9 + :size-assert #x70 + :flag-assert #x900000070 + ) +|# + +#| +(deftype generic-vu1-texbuf (structure) + ((header generic-vu1-header :inline :offset-assert 0) + (shader uint32 :dynamic :offset-assert 112) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x70 + :flag-assert #x900000070 + ) +|# + +#| +(deftype generic-texbuf (structure) + ((tag dma-packet :inline :offset-assert 0) + (header generic-vu1-header :inline :offset-assert 16) + (shader uint32 :dynamic :offset-assert 128) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x80 + :flag-assert #x900000080 + ) +|# + +#| +(deftype generic-effect-work (structure) + ((consts generic-consts :inline :offset-assert 0) + (storage generic-storage :inline :offset-assert 432) + (storage2 generic-storage :inline :offset-assert 688) + (lights vu-lights :inline :offset-assert 944) + ) + :method-count-assert 9 + :size-assert #x420 + :flag-assert #x900000420 + ) +|# + +#| +(deftype generic-effect-buffer (structure) + ((outbuf-0 uint8 3552 :offset-assert 0) ;; guessed by decompiler + (work generic-effect-work :inline :offset-assert 3552) + (outbuf-1 uint8 3552 :offset-assert 4608) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x1fe0 + :flag-assert #x900001fe0 + ) +|# + +#| +(deftype generic-work (structure) + ((saves generic-saves :inline :offset-assert 0) + (storage generic-storage :inline :offset-assert 368) + (in-buf generic-input-buffer :inline :offset-assert 624) + (fx-buf generic-effect-buffer :inline :offset-assert 8192) + ) + :method-count-assert 9 + :size-assert #x3fe0 + :flag-assert #x900003fe0 + ) +|# + +;; (define-extern *generic-debug* object) ;; generic-debug + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; wasdef-manager ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype task-manager-wascity-defend (task-manager) + ((wascity-defend-entity basic :offset-assert 236) + (check-timer uint64 :offset-assert 244) + (actor-group uint32 :offset-assert 252) + (actor-group-count int32 :offset-assert 256) + (cur-group int8 :offset-assert 260) + (facing-city? basic :offset-assert 264) + (failed basic :offset-assert 268) + (completed basic :offset-assert 272) + (miss-count int16 :offset-assert 276) + (last-miss-count int16 :offset-assert 278) + (launch-time uint64 :offset-assert 284) + (win-time uint64 :offset-assert 292) + (last-hit-time uint64 :offset-assert 300) + (added-points-time uint64 :offset-assert 308) + (point-queue int16 :offset-assert 316) + (skeet-hit int16 :offset-assert 318) + (shot-count-at-last-hit int16 :offset-assert 320) + (bonus-mult int16 :offset-assert 322) + (numshots int16 :offset-assert 324) + (queue-time int32 :offset-assert 328) + (event-length uint64 :offset-assert 332) + (event-time uint64 :offset-assert 340) + (wave int32 :offset-assert 348) + (event int32 :offset-assert 352) + (wct uint64 :offset-assert 356) + (score int32 :offset-assert 364) + (hud-score uint64 :offset-assert 372) + (hud-goal uint64 :offset-assert 380) + (hud-miss uint64 :offset-assert 388) + (hud-reticle uint64 :offset-assert 396) + (hud-damage uint64 :offset-assert 404) + (hud-active? basic :offset-assert 412) + (out-of-turret? basic :offset-assert 416) + (sent-event-complete? basic :offset-assert 420) + (time-out-of-turret uint64 :offset-assert 428) + (start-time uint64 :offset-assert 164) + (alarm uint32 :offset-assert 444) + ) + :method-count-assert 36 + :size-assert #x1c4 + :flag-assert #x24015001c4 + (:methods + (task-manager-wascity-defend-method-32 () none) ;; 32 + (task-manager-wascity-defend-method-33 () none) ;; 33 + (task-manager-wascity-defend-method-34 () none) ;; 34 + (task-manager-wascity-defend-method-35 () none) ;; 35 + ) + (:state-methods + active ;; 15 + ) + ) +|# + +#| +(deftype hip-maker-event (structure) + ((event-length uint32 :offset-assert 0) + (path-idx uint32 :offset-assert 4) + (mode uint8 :offset-assert 8) + (angle float :offset-assert 12) + (speed float :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x14 + :flag-assert #x900000014 + ) +|# + +#| +(deftype maker-damage (structure) + ((part basic :offset-assert 0) + (pos vector :inline :offset-assert 16) + (jnt uint8 :offset-assert 32) + (active basic :offset-assert 36) + (counter uint8 :offset-assert 40) + ) + :method-count-assert 9 + :size-assert #x29 + :flag-assert #x900000029 + ) +|# + +#| +(deftype maker (process-focusable) + ((forw vector :inline :offset-assert 208) + (ppos vector :inline :offset-assert 224) + (pvel vector :inline :offset-assert 240) + (pacc vector :inline :offset-assert 256) + (speed-mod float :offset-assert 272) + (tentacle-speed float :offset-assert 276) + (rot-vel float :offset-assert 280) + (rot-acc float :offset-assert 284) + (visible-explode-time uint64 :offset-assert 288) + (birth-time uint64 :offset-assert 296) + (footstep-time uint64 :offset-assert 304) + (last-hit-time uint64 :offset-assert 312) + (last-fire-time uint64 :offset-assert 320) + (last-laser-fire-time uint64 :offset-assert 328) + (audible-explode-time uint64 :offset-assert 336) + (exploded-time uint64 :offset-assert 344) + (mult uint8 :offset-assert 352) + (score uint16 :offset-assert 354) + (minimap connection-minimap :offset-assert 356) + (maker-sound uint32 :offset-assert 360) + (maker-sound-playing? basic :offset-assert 364) + (explosion-sound-id uint32 :offset-assert 368) + (made-splash? basic :offset-assert 372) + (head-rot quaternion :inline :offset-assert 384) + (head-jm basic :offset-assert 400) + (head-tilt float :offset-assert 404) + (head-tilt-vel float :offset-assert 408) + (head-tilt-err float :offset-assert 412) + (head-yaw float :offset-assert 416) + (head-yaw-vel float :offset-assert 420) + (head-yaw-err float :offset-assert 424) + (walk-idle-blend float :offset-assert 428) + (idle-ball-blend float :offset-assert 432) + (hit-points float :offset-assert 436) + (num-shots int8 :offset-assert 440) + (damage-idx int8 :offset-assert 441) + (wait-time uint32 :offset-assert 444) + (reticle-on? basic :offset-assert 448) + (kick-your-ass-count uint8 :offset-assert 452) + (kick-your-ass-string uint8 :offset-assert 453) + (prim-targeted int8 :offset-assert 454) + (damage-info UNKNOWN 5 :offset-assert 464) + (path-idx int16 :offset-assert 704) + (path-pt int16 :offset-assert 706) + (path-len int16 :offset-assert 708) + (seek-pos vector :inline :offset-assert 720) + (mode uint8 :offset-assert 736) + (trail-handle uint64 :offset-assert 744) + ) + :method-count-assert 43 + :size-assert #x2f0 + :flag-assert #x2b027002f0 + (:methods + (maker-method-32 () none) ;; 32 + (maker-method-33 () none) ;; 33 + (maker-method-34 () none) ;; 34 + (maker-method-35 () none) ;; 35 + (maker-method-36 () none) ;; 36 + (maker-method-37 () none) ;; 37 + (maker-method-38 () none) ;; 38 + (maker-method-39 () none) ;; 39 + (maker-method-40 () none) ;; 40 + (maker-method-41 () none) ;; 41 + (maker-method-42 () none) ;; 42 + ) + (:state-methods + standup ;; 31 + walking ;; 30 + flying ;; 28 + explode ;; 29 + ) + ) +|# + +;; (define-extern *maker-num-alive* object) +;; (define-extern *maker-num-visible* object) +;; (define-extern *maker-num-grenades* object) +;; (define-extern *maker-last-shot-time* object) +;; (define-extern *maker-first-hit* object) +;; (define-extern *maker-first-kill* object) +;; (define-extern *maker-first-missile* object) +;; (define-extern *maker-last-vocalization* object) +;; (define-extern *wascity-alarm-pos1* object) +;; (define-extern *wascity-alarm-pos2* object) +;; (define-extern *wascity-defend-speech-list* object) +;; (define-extern *maker-debris-params* debris-static-params) +;; (define-extern *curve-maker-entry-linear-up-red* object) +;; (define-extern *trail-color-curve-maker-entry* curve-color-fast) +;; (define-extern *curve-maker-entry-linear-trail* curve2d-fast) +;; (define-extern *maker-entry-trail* object) +;; (define-extern *maker-data* array) +;; (define-extern *maker-rigid-body-constants* object) +;; (define-extern *maker-damage-joint-array* array) +;; (define-extern *maker-joint-array* array) +;; (define-extern maker-world-to-local-vec! function) +;; (define-extern *say-iteration-counter* object) +;; (define-extern *say-timestamp* object) +;; (define-extern wasdef-voiceover function) +;; (define-extern maker-standard-event-handler function) +;; (define-extern get-ocean-floor-height function) +;; (define-extern *maker-close* object) +;; (define-extern *maker-close-count* object) +;; (define-extern *maker-traverse-paths* array) +;; (define-extern maker-init-by-other function) +;; (define-extern spawn-maker function) +;; (define-extern *maker-avoid-spheres* array) +;; (define-extern spawn-maker-enum function) +;; (define-extern jak-out-of-turret function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; shadow-cpu-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype shadow-settings (structure) + ((center vector :inline :offset-assert 0) + (flags int32 :offset-assert 12) ;; shadow-flags + (shadow-dir vector :inline :offset-assert 16) + (dist-to-locus float :offset-assert 28) + (bot-plane plane :inline :offset-assert 32) + (top-plane plane :inline :offset-assert 48) + (fade-dist float :offset-assert 64) + (fade-start float :offset-assert 68) + (dummy-2 int32 :offset-assert 72) + (shadow-type int32 :offset-assert 76) + ) + :method-count-assert 9 + :size-assert #x50 + :flag-assert #x900000050 + ) +|# + +#| +(deftype shadow-control (basic) + ((settings shadow-settings :inline :offset-assert 16) + ) + :method-count-assert 15 + :size-assert #x60 + :flag-assert #xf00000060 + (:methods + ;; (new (symbol type float float float shadow-flags float) _type_ 0) + (shadow-control-method-9 () none) ;; 9 ;; (enable-draw (shadow-control) int 9) + (shadow-control-method-10 () none) ;; 10 ;; (disable-draw (shadow-control) int 10) + (shadow-control-method-11 () none) ;; 11 ;; (set-top-plane-offset (shadow-control float) int 11) + (shadow-control-method-12 () none) ;; 12 ;; (set-bottom-plane-offset (shadow-control float) int 12) + (shadow-control-method-13 () none) ;; 13 ;; (probe-line-for-shadow (_type_ vector float float float) none 13) + (shadow-control-method-14 () none) ;; 14 ;; (shadow-control-method-14 (_type_ vector vector float float float) none 14) + ) + ) +|# + +#| +(deftype shadow-data (structure) + ((dma-unpack-template dma-packet :inline :offset-assert 0) + (dma-cnt uint64 :offset-assert 16) ;; dma-tag + (vif-nop vif-tag :offset-assert 24) ;; guessed by decompiler + (vif-unpack-v4-8 vif-tag :offset-assert 28) ;; guessed by decompiler + (pdc basic :offset-assert 32) + (dist float :offset-assert 36) + (waits uint32 :offset-assert 40) + (inside-volume? uint32 :offset-assert 44) + ) + :method-count-assert 9 + :size-assert #x30 + :flag-assert #x900000030 + ) +|# + +#| +(deftype shadow-work (structure) + ((shadow-data shadow-data :inline :offset-assert 0) + (inbuf uint128 600 :offset-assert 48) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x25b0 + :flag-assert #x9000025b0 + ) +|# + +#| +(deftype shadow-bucket (structure) + ((first pointer :offset-assert 0) ;; guessed by decompiler + (next pointer :offset-assert 4) ;; guessed by decompiler + (bucket-id int32 :offset-assert 8) + (shadow-color rgba :offset-assert 12) ;; guessed by decompiler + (constants shadow-vu1-constants :offset-assert 16) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x14 + :flag-assert #x900000014 + ) +|# + +#| +(deftype shadow-globals (structure) + ((num-buckets uint32 :offset-assert 0) + (cur-bucket uint32 :offset-assert 4) + (bucket shadow-bucket 3 :offset-assert 8) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x68 + :flag-assert #x900000068 + ) +|# + +#| +(deftype shadow-vertex (structure) + ((x float :offset-assert 0) + (y float :offset-assert 4) + (z float :offset-assert 8) + (weight float :offset-assert 12) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype shadow-matrix-ref (structure) + ((joint-0 uint8 :offset-assert 0) + (joint-1 uint8 :offset-assert 1) + ) + :method-count-assert 9 + :size-assert #x2 + :flag-assert #x900000002 + ) +|# + +#| +(deftype shadow-edge (structure) + ((ind-0 uint8 :offset-assert 0) + (ind-1 uint8 :offset-assert 1) + (tri-0 uint8 :offset-assert 2) + (tri-1 uint8 :offset-assert 3) + ) + :method-count-assert 9 + :size-assert #x4 + :flag-assert #x900000004 + ) +|# + +#| +(deftype shadow-tri (structure) + ((ind-0 uint8 :offset-assert 0) + (ind-1 uint8 :offset-assert 1) + (ind-2 uint8 :offset-assert 2) + (faces uint8 :offset-assert 3) + ) + :method-count-assert 9 + :size-assert #x4 + :flag-assert #x900000004 + ) +|# + +#| +(deftype shadow-frag-header (structure) + ((qwc-data uint32 :offset-assert 0) + (num-joints uint32 :offset-assert 4) + (num-verts uint16 :offset-assert 8) + (num-twos uint16 :offset-assert 10) + (num-single-tris uint16 :offset-assert 12) + (num-single-edges uint16 :offset-assert 14) + (num-double-tris uint16 :offset-assert 16) + (num-double-edges uint16 :offset-assert 18) + (ofs-verts uint32 :offset-assert 20) + (ofs-refs uint32 :offset-assert 24) + (ofs-single-tris uint32 :offset-assert 28) + (ofs-single-edges uint32 :offset-assert 32) + (ofs-double-tris uint32 :offset-assert 36) + (ofs-double-edges uint32 :offset-assert 40) + ) + :method-count-assert 9 + :size-assert #x2c + :flag-assert #x90000002c + ) +|# + +#| +(deftype shadow-frag-ref (structure) + ((header shadow-frag-header :offset-assert 0) + (qwc uint32 :offset-assert 4) + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +#| +(deftype shadow-geo (art-element) + ((version uint32 :offset-assert 28) + (total-size uint32 :offset-assert 32) + (total-qwc uint32 :offset-assert 48) + (num-joints uint32 :offset-assert 52) + (num-fragments uint32 :offset-assert 56) + (frags shadow-frag-ref :dynamic :offset-assert 60) ;; guessed by decompiler + ) + :method-count-assert 14 + :size-assert #x3c + :flag-assert #xe0000003c + ) +|# + +;; (define-extern *shadow-globals* object) ;; shadow-globals +;; (define-extern *shadow* object) ;; symbol +;; (define-extern *shadow-object* object) ;; symbol +;; (define-extern *shadow-debug* object) ;; symbol +;; (define-extern *shadow-dma-buf* object) ;; dma-buffer + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; target-death ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype kill-nearby-enemies-info (basic) + ((dist float :offset-assert 4) + (pos vector :inline :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x20 + :flag-assert #x900000020 + ) +|# + +;; (define-extern *auto-continue* object) ;; symbol +;; (define-extern next-continue function) ;; (function continue-point continue-point) +;; (define-extern arrive-at-continue function) +;; (define-extern apply-pos-from-entity function) +;; (define-extern target-continue-init-art function) +;; (define-extern *smack-mods* surface) ;; surface +;; (define-extern *smack-up-mods* surface) ;; surface +;; (define-extern velocity-set-to-target! function) ;; (function vector float attack-info vector :behavior target) +;; (define-extern target-hit-effect function) ;; (function attack-info none :behavior target) +;; (define-extern target-hit-push function) ;; (function vector matrix float float attack-info symbol :behavior target) +;; (define-extern target-hit-orient function) ;; (function attack-info vector symbol :behavior target) +;; (define-extern target-hit-setup-anim function) ;; (function attack-info none :behavior target) +;; (define-extern target-hit-move function) ;; (function attack-info symbol (function none :behavior target) float none :behavior target) +;; (define-extern *death-spool-array* array) ;; (array spool-anim) +;; (define-extern death-movie-remap function) ;; (function int int int) +;; (define-extern *kill-nearby-enemies-info* kill-nearby-enemies-info) ;; kill-nearby-enemies-info +;; (define-extern kill-nearby-enemies function) ;; (function vector float object) +;; (define-extern target-death-anim-trans function) ;; (function none :behavior target) +;; (define-extern target-death-anim function) ;; (function spool-anim none :behavior target) +;; (define-extern target-death-main function) ;; (function symbol none :behavior target) +;; (define-extern target-death-reset function) ;; (function symbol symbol none :behavior target) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; trajectory-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype trajectory (structure) + ((initial-position vector :inline :offset-assert 0) + (initial-velocity vector :inline :offset-assert 16) + (time float :offset-assert 32) + (gravity meters :offset-assert 36) + ) + :method-count-assert 18 + :size-assert #x28 + :flag-assert #x1200000028 + (:methods + (trajectory-method-9 () none) ;; 9 ;; (compute-trans-at-time (_type_ float vector) vector 9) + (trajectory-method-10 () none) ;; 10 ;; (compute-transv-at-time (_type_ float vector) vector 10) + (trajectory-method-11 () none) ;; 11 ;; (compute-time-until-apex (_type_) float 11) + (trajectory-method-12 () none) ;; 12 ;; (setup-from-to-duration! (_type_ vector vector float float) none 12) + (trajectory-method-13 () none) ;; 13 ;; (setup-from-to-xz-vel! (_type_ vector vector float float) none 13) + (trajectory-method-14 () none) ;; 14 ;; (setup-from-to-y-vel! (_type_ vector vector float float) none 14) + (trajectory-method-15 () none) ;; 15 ;; (setup-from-to-height! (_type_ vector vector float float) none 15) + (trajectory-method-16 () none) ;; 16 ;; (setup-from-to-duration-and-height! (_type_ vector vector float float) none 16) + (trajectory-method-17 () none) ;; 17 ;; (debug-draw (_type_) none 17) + ) + ) +|# + +#| +(deftype impact-control (structure) + ((process (pointer process-drawable) :offset-assert 0) ;; guessed by decompiler + (radius meters :offset-assert 4) ;; float + (joint int32 :offset-assert 8) + (collide-with collide-spec :offset-assert 12) ;; guessed by decompiler + (start-time uint64 :offset-assert 16) ;; time-frame + (trans vector 2 :offset-assert 32) ;; guessed by decompiler + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (dir vector :inline :offset-assert 64) + ) + :method-count-assert 12 + :size-assert #x50 + :flag-assert #xc00000050 + (:methods + ;; (new (symbol type process-drawable int float collide-spec) _type_ 0) + (impact-control-method-9 () none) ;; 9 ;; (initialize (_type_ process-drawable int float collide-spec) impact-control 9) + (impact-control-method-10 () none) ;; 10 ;; (update-from-cspace (_type_) none 10) + (impact-control-method-11 () none) ;; 11 ;; (impact-control-method-11 (_type_ collide-query process pat-surface) float 11) + ) + ) +|# + +#| +(deftype point-tracker (structure) + ((trans vector 2 :offset-assert 0) ;; guessed by decompiler + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + ) + :method-count-assert 12 + :size-assert #x20 + :flag-assert #xc00000020 + (:methods + ;; (new (symbol type vector vector) _type_ 0) + (point-tracker-method-9 () none) ;; 9 ;; (initialize (_type_ vector vector) point-tracker 9) + (point-tracker-method-10 () none) ;; 10 ;; (point-tracker-method-10 (_type_ vector vector vector float) vector 10) + (point-tracker-method-11 () none) ;; 11 ;; (point-tracker-method-11 (_type_ vector vector vector float) vector 11) + ) + ) +|# + +#| +(deftype combo-tracker (point-tracker) + ((target uint64 :offset-assert 32) ;; handle + (move-start-time uint64 :offset-assert 40) ;; time-frame + ) + :method-count-assert 14 + :size-assert #x30 + :flag-assert #xe00000030 + (:methods + (combo-tracker-method-12 () none) ;; 12 ;; (combo-tracker-method-12 (_type_ vector vector process time-frame) combo-tracker 12) + (combo-tracker-method-13 () none) ;; 13 ;; (combo-tracker-method-13 (_type_ handle vector float vector float) basic 13) + ) + ) +|# + +#| +(deftype traj2d-params (structure) + ((x float :offset-assert 0) + (y float :offset-assert 4) + (gravity float :offset-assert 8) + (initial-tilt float :offset-assert 12) + (initial-speed float :offset-assert 16) + (time float :offset-assert 20) + ) + :method-count-assert 9 + :size-assert #x18 + :flag-assert #x900000018 + ) +|# + +#| +(deftype traj3d-params (structure) + ((gravity float :offset-assert 0) + (initial-tilt float :offset-assert 4) + (initial-speed float :offset-assert 8) + (time float :offset-assert 12) + (src vector :inline :offset-assert 16) + (dest vector :inline :offset-assert 32) + (diff vector :inline :offset-assert 48) + (initial-velocity vector :inline :offset-assert 64) + ) + :method-count-assert 9 + :size-assert #x50 + :flag-assert #x900000050 + ) +|# + +#| +(deftype cubic-curve (structure) + ((mat matrix :inline :offset-assert 0) + ) + :method-count-assert 14 + :size-assert #x40 + :flag-assert #xe00000040 + (:methods + (cubic-curve-method-9 () none) ;; 9 ;; (cubic-curve-method-9 (_type_ vector vector vector vector) none 9) + (cubic-curve-method-10 () none) ;; 10 ;; (cubic-curve-method-10 (_type_ vector float) vector 10) + (cubic-curve-method-11 () none) ;; 11 ;; (cubic-curve-method-11 (_type_ vector float) vector 11) + (cubic-curve-method-12 () none) ;; 12 ;; (cubic-curve-method-12 (_type_ vector float) vector 12) + (cubic-curve-method-13 () none) ;; 13 ;; (debug-draw-curve (_type_) none 13) + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; shadow-vu1-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; memcard-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (deftype mc-handle (int32) +;; () +;; :flag-assert #x900000004 +;; ) + +#| +(deftype mc-file-info (structure) + ((present int32 :offset-assert 0) + (blind-data float 16 :offset-assert 4) ;; guessed by decompiler + (blind-data-int8 int8 64 :offset-assert 4) ;; guessed by decompiler + (level-index int32 :offset-assert 4) + (gem-count float :offset-assert 8) + (skill-count float :offset-assert 12) + (completion-percentage float :offset-assert 16) + (minute uint8 :offset-assert 24) + (hour uint8 :offset-assert 25) + (week uint8 :offset-assert 26) + (day uint8 :offset-assert 27) + (month uint8 :offset-assert 28) + (year uint8 :offset-assert 29) + (language uint8 :offset-assert 30) + (game-time0 uint32 :offset-assert 36) + (game-time1 uint32 :offset-assert 40) + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + ) + :method-count-assert 9 + :size-assert #x44 + :flag-assert #x900000044 + ) +|# + +#| +(deftype mc-slot-info (structure) + ((handle int32 :offset-assert 0) + (known int32 :offset-assert 4) + (formatted int32 :offset-assert 8) + (inited int32 :offset-assert 12) + (last-file int32 :offset-assert 16) + (mem-required int32 :offset-assert 20) + (mem-actual int32 :offset-assert 24) + (file mc-file-info 4 :offset-assert 28) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x12c + :flag-assert #x90000012c + ) +|# + +;; (define-extern mc-sync function) ;; (function int) +;; (define-extern show-mc-info function) ;; (function dma-buffer none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; game-info-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype game-bank (basic) + ((life-max-default float :offset-assert 4) + (life-start-default float :offset-assert 8) + (life-single-inc float :offset-assert 12) + (money-task-inc float :offset-assert 16) + (money-oracle-inc float :offset-assert 20) + ) + :method-count-assert 9 + :size-assert #x18 + :flag-assert #x900000018 + ) +|# + +;; (deftype actor-id (uint32) +;; () +;; :flag-assert #x900000004 +;; ) + +#| +(deftype highscore-info (structure) + ((flags uint8 :offset-assert 0) ;; highscore-flags + (award-scores float 3 :offset-assert 4) ;; guessed by decompiler + (bronze-score float :offset-assert 4) + (silver-score float :offset-assert 8) + (gold-score float :offset-assert 12) + ) + :method-count-assert 10 + :size-assert #x10 + :flag-assert #xa00000010 + (:methods + (highscore-info-method-9 () none) ;; 9 ;; (get-rank (_type_ float) int 9) + ) + ) +|# + +#| +(deftype level-buffer-state (structure) + ((name symbol :offset-assert 0) ;; guessed by decompiler + (display? symbol :offset-assert 4) ;; guessed by decompiler + (force-vis? symbol :offset-assert 8) ;; guessed by decompiler + (force-inside? symbol :offset-assert 12) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype level-buffer-state-small (structure) + ((name basic :offset-assert 0) + (display? basic :offset-assert 4) + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +#| +(deftype load-state (basic) + ((want level-buffer-state 10 :offset-assert 4) ;; guessed by decompiler + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (want-exp UNKNOWN 10 :offset-assert 164) + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (target UNKNOWN 10 :offset-assert 324) + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (want-sound symbol 3 :offset-assert 484) ;; guessed by decompiler + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (want-exp-sound UNKNOWN 6 :offset-assert 508) + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (target-sound UNKNOWN 6 :offset-assert 556) + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (vis-nick symbol :offset-assert 604) ;; guessed by decompiler + (command-list pair :offset-assert 608) ;; guessed by decompiler + (object-name string 256 :offset-assert 612) ;; guessed by decompiler + (object-status basic 256 :offset-assert 1636) ;; guessed by decompiler + (update-callback basic :offset-assert 2660) + ) + :method-count-assert 22 + :size-assert #xa68 + :flag-assert #x1600000a68 + (:methods + ;; (new (symbol type) _type_ 0) + (load-state-method-9 () none) ;; 9 ;; (reset! (_type_) _type_ 9) + (load-state-method-10 () none) ;; 10 ;; (update! (_type_) int 10) + (load-state-method-11 () none) ;; 11 ;; (want-levels (_type_ (pointer symbol)) int 11) + (load-state-method-12 () none) ;; 12 ;; (want-sound-banks (_type_ (pointer symbol)) none 12) + (load-state-method-13 () none) ;; 13 ;; (want-display-level (_type_ symbol symbol) int 13) + (load-state-method-14 () none) ;; 14 ;; (want-vis-level (_type_ symbol) none 14) + (load-state-method-15 () none) ;; 15 ;; (want-force-vis (_type_ symbol symbol) int 15) + (load-state-method-16 () none) ;; 16 ;; (want-force-inside (_type_ symbol symbol) none 16) + (load-state-method-17 () none) ;; 17 ;; (execute-commands-up-to (_type_ float) none 17) + (load-state-method-18 () none) ;; 18 ;; (backup-load-state-and-set-cmds (_type_ pair) int 18) + (load-state-method-19 () none) ;; 19 ;; (restore-load-state-and-cleanup (_type_) int 19) + (load-state-method-20 () none) ;; 20 ;; (restore-load-state (_type_) int 20) + (load-state-method-21 () none) ;; 21 ;; (add-borrow-levels (_type_) none 21) + ) + ) +|# + +#| +(deftype continue-point (basic) + ((name string :offset-assert 4) ;; guessed by decompiler + (level symbol :offset-assert 8) ;; guessed by decompiler + (flags continue-flags :offset-assert 12) ;; guessed by decompiler + (trans vector :inline :offset-assert 16) + (camera-trans vector :inline :offset-assert 32) + (quat vector4h :inline :offset-assert 48) ;; vector :inline + (camera-rot vector3s 9 :offset-assert 56) ;; guessed by decompiler + (on-goto pair :offset-assert 76) ;; guessed by decompiler + (vis-nick symbol :offset-assert 80) ;; guessed by decompiler + (vehicle-type uint8 :offset-assert 84) + (want-count int8 :offset-assert 85) + (want level-buffer-state :offset-assert 88) ;; guessed by decompiler + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (want-sound symbol 3 :offset-assert 92) ;; guessed by decompiler + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + ) + :method-count-assert 12 + :size-assert #x68 + :flag-assert #xc00000068 + ;; field on-goto uses ~A with a signed load. + (:methods + (continue-point-method-9 () none) ;; 9 ;; (debug-draw (_type_) int 9) + (continue-point-method-10 () none) ;; 10 ;; (continue-point-method-10 (_type_ load-state) continue-point 10) + (continue-point-method-11 () none) ;; 11 ;; (move-camera! (_type_) none 11) + ) + ) +|# + +#| +(deftype game-info (basic) + ((mode symbol :offset-assert 4) ;; guessed by decompiler + (save-name string :offset-assert 8) ;; guessed by decompiler + (life float :offset-assert 12) + (life-max float :offset-assert 16) + (money float :offset-assert 20) + (money-total float :offset-assert 24) + (money-per-level uint8 32 :offset-assert 28) ;; guessed by decompiler + (deaths-per-level uint8 32 :offset-assert 60) ;; guessed by decompiler + (buzzer-total float :offset-assert 92) + (fuel float :offset-assert 96) + (gem float :offset-assert 100) + (gem-total float :offset-assert 104) + (skill float :offset-assert 108) + (skill-total float :offset-assert 112) + (skill-high-watermark float :offset-assert 116) + (light-crystal float :offset-assert 120) + (dark-crystal float :offset-assert 124) + (karma float :offset-assert 128) + (eco-pill-dark float :offset-assert 132) + (eco-pill-dark-total float :offset-assert 136) + (eco-pill-light float :offset-assert 140) + (eco-pill-light-total float :offset-assert 144) + (features uint64 :offset-assert 152) ;; game-feature + (debug-features uint64 :offset-assert 160) ;; game-feature + (old-features uint64 :offset-assert 168) + (items uint64 :offset-assert 176) + (debug-items uint64 :offset-assert 184) + (old-items uint64 :offset-assert 192) + (secrets uint64 :offset-assert 200) ;; game-secrets + (purchase-secrets uint64 :offset-assert 208) ;; game-secrets + (gun-type int32 :offset-assert 216) ;; pickup-type + (gun-ammo float 4 :offset-assert 220) ;; guessed by decompiler + (shield float :offset-assert 236) + (vehicles uint64 :offset-assert 240) + (debug-vehicles uint64 :offset-assert 248) + (old-vehicles uint64 :offset-assert 256) + (score float :offset-assert 264) + (score-owner uint64 :offset-assert 272) ;; handle + (timer uint64 :offset-assert 280) ;; time-frame + (timer-owner uint64 :offset-assert 288) ;; handle + (timer-flash symbol :offset-assert 296) ;; guessed by decompiler + (counter float :offset-assert 300) + (counter-flash basic :offset-assert 304) + (health-bar float :offset-assert 308) + (health-bar-owner uint64 :offset-assert 312) + (enemies-killed float :offset-assert 320) + (civilians-killed float :offset-assert 324) + (marauders-killed float :offset-assert 328) + (shots-fired UNKNOWN 4 :offset-assert 332) + (shots-hit UNKNOWN 4 :offset-assert 348) + (crates-opened float :offset-assert 364) + (health-collected float :offset-assert 368) + (board-time uint64 :offset-assert 376) + (attack-id uint32 :offset-assert 384) + (perm-list entity-perm-array :offset-assert 388) ;; guessed by decompiler + (task-perm-list entity-perm-array :offset-assert 392) ;; guessed by decompiler + (current-continue continue-point :offset-assert 396) ;; guessed by decompiler + (last-continue continue-point :offset-assert 400) ;; guessed by decompiler + (task-node-commands basic :offset-assert 416) + (task-node-exclusive basic :offset-assert 420) + (task-counter uint32 :offset-assert 424) + (level-opened uint8 32 :offset-assert 432) ;; guessed by decompiler + (total-deaths int32 :offset-assert 464) + (continue-deaths int32 :offset-assert 468) + (task-deaths int32 :offset-assert 472) + (total-trys int32 :offset-assert 476) + (game-start-time uint64 :offset-assert 480) ;; time-frame + (continue-time uint64 :offset-assert 488) ;; time-frame + (death-time uint64 :offset-assert 496) ;; time-frame + (hit-time uint64 :offset-assert 504) ;; time-frame + (task-pickup-time uint64 :offset-assert 512) ;; time-frame + (death-pos vector-array :offset-assert 532) ;; guessed by decompiler + (stop-watch-start uint64 :offset-assert 536) + (stop-watch-stop uint64 :offset-assert 544) + (blackout-time uint64 :offset-assert 552) ;; time-frame + (letterbox-time uint64 :offset-assert 560) ;; time-frame + (hint-play-time uint64 :offset-assert 568) ;; time-frame + (display-text-time uint64 :offset-assert 576) ;; time-frame + (display-text-handle uint64 :offset-assert 584) ;; handle + (death-movie-tick int32 :offset-assert 592) + (want-auto-save symbol :offset-assert 596) ;; guessed by decompiler + (auto-save-proc uint64 :offset-assert 600) ;; handle + (auto-save-status mc-status-code :offset-assert 608) ;; guessed by decompiler + (auto-save-card int32 :offset-assert 612) + (auto-save-which int32 :offset-assert 616) + (auto-save-count int32 :offset-assert 620) + (pov-camera-handle uint64 :offset-assert 624) ;; handle + (other-camera-handle uint64 :offset-assert 632) ;; handle + (controller handle 2 :offset-assert 640) ;; guessed by decompiler + (race-timer uint64 :offset-assert 656) + (race-current-lap-count int32 :offset-assert 664) + (race-total-lap-count int32 :offset-assert 668) + (race-position int32 :offset-assert 672) + (race-number-turbos int32 :offset-assert 676) + (bot-health float 3 :offset-assert 680) ;; guessed by decompiler + (demo-state uint32 :offset-assert 692) + (wanted-flash symbol :offset-assert 696) ;; guessed by decompiler + (distance float :offset-assert 700) + (kiosk-timeout uint64 :offset-assert 704) + (pause-start-time uint64 :offset-assert 712) ;; time-frame + (game-score (array float) :offset-assert 720) ;; guessed by decompiler + (goal float :offset-assert 724) + (miss float :offset-assert 728) + (miss-max float :offset-assert 732) + (live-eco-pill-count int32 :offset-assert 740) + (live-gem-count int32 :offset-assert 744) + (air-supply float :offset-assert 748) + (homing-beacon int32 :offset-assert 752) + (dark-eco-pickup int32 :offset-assert 756) + (green-eco-pickup int32 :offset-assert 760) + (health-bar-vehicle float :offset-assert 764) + (dust-storm uint64 :offset-assert 768) + (flut-count int32 :offset-assert 776) + (death-resetter resetter-spec :inline :offset-assert 780) + (current-vehicle uint8 :offset-assert 796) + (vehicle-turbo-ready float :offset-assert 800) + (percent-complete float :offset-assert 804) + ) + :method-count-assert 35 + :size-assert #x328 + :flag-assert #x2300000328 + (:methods + (game-info-method-9 () none) ;; 9 ;; (initialize! (_type_ symbol game-save string) _type_ 9) + (game-info-method-10 () none) ;; 10 ;; (give (_type_ symbol float handle) float 10) + (game-info-method-11 () none) ;; 11 ;; (task-complete? (_type_ game-task) symbol 11) + (game-info-method-12 () none) ;; 12 ;; (subtask-index-by-name (_type_ string) int 12) + (game-info-method-13 () none) ;; 13 ;; (set-subtask-hook! (_type_ game-task-node int function) function 13) + (game-info-method-14 () none) ;; 14 ;; (actor-perm (_type_ actor-id) entity-perm 14) + (game-info-method-15 () none) ;; 15 ;; (task-perm-by-index (_type_ int) entity-perm 15) + (game-info-method-16 () none) ;; 16 ;; (copy-perms-from-level! (_type_ level) int 16) + (game-info-method-17 () none) ;; 17 ;; (copy-perms-to-level! (_type_ level) int 17) + (game-info-method-18 () none) ;; 18 ;; (debug-inspect (_type_ symbol) _type_ 18) + (game-info-method-19 () none) ;; 19 ;; (get-current-continue-forced (_type_) continue-point 19) + (game-info-method-20 () none) ;; 20 ;; (get-continue-by-name (_type_ string) continue-point 20) + (game-info-method-21 () none) ;; 21 ;; (set-continue! (_type_ basic symbol) continue-point 21) + (game-info-method-22 () none) ;; 22 ;; (game-info-method-22 (_type_) int 22) + (game-info-method-23 () none) ;; 23 ;; (save-game (_type_ game-save string) game-save 23) + (game-info-method-24 () none) ;; 24 ;; (load-game (_type_ game-save) game-save 24) + (game-info-method-25 () none) ;; 25 ;; (you-suck-stage (_type_ symbol) int 25) + (game-info-method-26 () none) ;; 26 ;; (you-suck-scale (_type_ object) float 26) + (game-info-method-27 () none) ;; 27 ;; (get-next-attack-id (_type_) uint 27) + (game-info-method-28 () none) ;; 28 ;; (game-info-method-28 (_type_ game-score float) int 28) + (game-info-method-29 () none) ;; 29 ;; (get-game-score-ref (_type_ int) (pointer float) 29) + (game-info-method-30 () none) ;; 30 ;; (calculate-percentage (_type_) float 30) + (game-info-method-31 () none) ;; 31 + (game-info-method-32 () none) ;; 32 + (game-info-method-33 () none) ;; 33 + (game-info-method-34 () none) ;; 34 + ) + ) +|# + +;; (define-extern *GAME-bank* game-bank) ;; game-bank +;; (define-extern *game-info* object) ;; game-info + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; nav-enemy ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *nav-enemy-dummy-shadow-control* shadow-control) ;; shadow-control +;; (define-extern nav-enemy-simple-post function) ;; (function none :behavior nav-enemy) +;; (define-extern nav-enemy-die-falling-post function) ;; (function none :behavior nav-enemy) +;; (define-extern nav-enemy-travel-post function) ;; (function none :behavior nav-enemy) +;; (define-extern nav-enemy-patrol-post function) ;; (function none :behavior nav-enemy) +;; (define-extern nav-enemy-chase-post function) ;; (function none :behavior nav-enemy) +;; (define-extern nav-enemy-flee-post function) ;; (function none :behavior nav-enemy) +;; (define-extern nav-enemy-face-focus-post function) ;; (function none :behavior nav-enemy) +;; (define-extern nav-enemy-stare-post function) ;; (function none :behavior nav-enemy) +;; (define-extern nav-enemy-falling-post function) ;; (function none :behavior nav-enemy) +;; (define-extern nav-enemy-turn-to-face-dir function) ;; (function vector float none :behavior nav-enemy) +;; (define-extern nav-enemy-turn-to-face-point function) ;; (function vector float none :behavior nav-enemy) +;; (define-extern *nav-enemy-debug-control-info* nav-enemy-debug-control-info) ;; nav-enemy-debug-control-info +;; (define-extern nav-enemy-debug-control-post function) ;; (function none :behavior nav-enemy) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; joint-exploder ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype joint-exploder-tuning (structure) + ((explosion uint64 :offset-assert 0) + (duration uint64 :offset-assert 8) ;; time-frame + (gravity float :offset-assert 16) + (rot-speed float :offset-assert 20) + (bounds-inflate float :offset-assert 24) + (max-probes uint8 :offset-assert 28) + (max-probe-width float :offset-assert 32) + (max-probe-height float :offset-assert 36) + (max-probe-depth float :offset-assert 40) + (friction float :offset-assert 44) + (fountain-rand-transv-lo vector :inline :offset-assert 48) + (fountain-rand-transv-hi vector :inline :offset-assert 64) + (away-from-focal-pt vector :inline :offset-assert 48) + (away-from-rand-transv-xz-lo float :offset-assert 64) + (away-from-rand-transv-xz-hi float :offset-assert 68) + (away-from-rand-transv-y-lo float :offset-assert 72) + (away-from-rand-transv-y-hi float :offset-assert 76) + (hit-xz-reaction float :offset-assert 80) + (hit-y-reaction float :offset-assert 84) + ) + :method-count-assert 9 + :size-assert #x58 + :flag-assert #x900000058 + ) +|# + +#| +(deftype joint-exploder-static-joint-params (structure) + ((joint-index int16 :offset-assert 0) + (parent-joint-index int16 :offset-assert 2) + ) + :method-count-assert 9 + :size-assert #x4 + :flag-assert #x900000004 + ) +|# + +#| +(deftype joint-exploder-static-params (basic) + ((joints (array joint-exploder-static-joint-params) :offset-assert 4) ;; guessed by decompiler + (collide-spec uint32 :offset-assert 8) + (art-level symbol :offset-assert 12) ;; guessed by decompiler + (collide-sound uint128 :offset-assert 16) + (collide-sound-interval uint64 :offset-assert 32) + ) + :method-count-assert 9 + :size-assert #x28 + :flag-assert #x900000028 + ) +|# + +#| +(deftype joint-exploder-joint (structure) + ((next int16 :offset-assert 0) + (prev int16 :offset-assert 2) + (joint-index int16 :offset-assert 4) + (mat matrix :inline :offset-assert 16) + (rmat matrix :inline :offset-assert 80) + (update-rmat matrix :inline :offset-assert 144) + (transv vector :inline :offset-assert 208) + (prev-pos vector :inline :offset-assert 224) + ) + :method-count-assert 9 + :size-assert #xf0 + :flag-assert #x9000000f0 + ) +|# + +#| +(deftype joint-exploder-joints (basic) + ((num-joints int32 :offset-assert 4) + (joint joint-exploder-joint :dynamic :offset-assert 16) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype joint-exploder-list (structure) + ((head int32 :offset-assert 0) + (pre-moved? symbol :offset-assert 4) ;; guessed by decompiler + (bbox-valid? symbol :offset-assert 8) ;; guessed by decompiler + (probeless? symbol :offset-assert 12) ;; guessed by decompiler + (bbox bounding-box :inline :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x30 + :flag-assert #x900000030 + ) +|# + +#| +(deftype joint-exploder-list-array (inline-array-class) + ((data UNKNOWN :dynamic :offset-assert 16) + ) + :method-count-assert 14 + :size-assert #x10 + :flag-assert #xe00000010 + ) +|# + +#| +(deftype joint-exploder (process-drawable) + ((die-if-below-y float :offset-assert 200) + (die-if-beyond-xz-dist-sqrd float :offset-assert 204) + (joints joint-exploder-joints :offset-assert 208) ;; guessed by decompiler + (static-params joint-exploder-static-params :offset-assert 212) ;; guessed by decompiler + (anim art-joint-anim :offset-assert 216) ;; guessed by decompiler + (scale-vector vector :inline :offset-assert 224) + (tuning joint-exploder-tuning :inline :offset-assert 240) + (lists joint-exploder-list :offset-assert 328) ;; guessed by decompiler + (last-colsound-time uint64 :offset-assert 336) + ) + :method-count-assert 30 + :size-assert #x158 + :flag-assert #x1e00e00158 + (:methods + (joint-exploder-method-20 () none) ;; 20 ;; (add-joint-to-list (_type_ joint-exploder-list int) int 20) + (joint-exploder-method-21 () none) ;; 21 ;; (update-bbox-for-joint (_type_ joint-exploder-list joint-exploder-joint) none 21) + (joint-exploder-method-22 () none) ;; 22 ;; (do-collision-response (_type_ joint-exploder-list) none 22) + (joint-exploder-method-23 () none) ;; 23 ;; (init-joint-list (_type_) none 23) + (joint-exploder-method-24 () none) ;; 24 ;; (remove-from-list-and-reset (_type_ joint-exploder-list int) int 24) + (joint-exploder-method-25 () none) ;; 25 ;; (final-adjust (_type_ joint-exploder-list int) int 25) + (joint-exploder-method-26 () none) ;; 26 ;; (integrate-and-kill (_type_ joint-exploder-list) none 26) + (joint-exploder-method-27 () none) ;; 27 ;; (remove-joint-from-list (_type_ joint-exploder-list int) int 27) + (joint-exploder-method-28 () none) ;; 28 ;; (adjust-bbox-for-limits-along-axis (_type_ joint-exploder-list int) joint-exploder-list 28) + (joint-exploder-method-29 () none) ;; 29 ;; (adjust-bbox-for-limits (_type_ joint-exploder-list) none 29) + ) + (:states + joint-exploder-shatter ;; associated process guessed by decompiler, old: (state joint-exploder) + ) + ) +|# + +;; (define-extern joint-exploder-joint-callback function) ;; (function draw-control cspace-array joint-control none) +;; (define-extern joint-exploder-init-by-other function) ;; (function skeleton-group int joint-exploder-tuning joint-exploder-static-params none :behavior joint-exploder) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; gui-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype gui-connection (connection) + ((priority float :offset-assert 16) + (action uint8 :offset-assert 20) ;; gui-action + (channel uint8 :offset-assert 21) ;; gui-channel + (anim-part uint8 :offset-assert 22) + (flags uint8 :offset-assert 23) ;; gui-connection-flags + (name string :offset-assert 24) ;; guessed by decompiler + (id sound-id :offset-assert 28) ;; guessed by decompiler + (handle uint64 :offset-assert 0) ;; handle + (time-stamp uint64 :offset-assert 8) ;; time-frame + (hold-time uint64 :offset-assert 32) ;; time-frame + (fo-min int16 :offset-assert 40) + (fo-max int16 :offset-assert 42) + (fo-curve int8 :offset-assert 44) + (fade uint8 :offset-assert 45) + (volume int16 :offset-assert 46) + ) + :method-count-assert 14 + :size-assert #x30 + :flag-assert #xe00000030 + ;; field param1 uses ~A with a signed load. field param2 uses ~A with a signed load. field param3 uses ~A with a signed load. + ) +|# + +;; (deftype gui-control (basic) +;; () +;; :flag-assert #x1a00000d30 +;; ) + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; h-torpedo ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype htorpedo (h-bike-c) + ((speed float :offset-assert 1296) + (target-speed float :offset-assert 1300) + (pitch float :offset-assert 1304) + (target-pitch float :offset-assert 1308) + (max-pitch float :offset-assert 1312) + (roll float :offset-assert 1316) + (target-roll float :offset-assert 1320) + (turn-rate float :offset-assert 1324) + (target-turn-rate float :offset-assert 1328) + (ground-height float :offset-assert 1332) + (ground-offset float :offset-assert 1336) + (down-force float :offset-assert 1340) + (want-jump? basic :offset-assert 1344) + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (jump-state uint8 :offset-assert 1360) + (on-water? basic :offset-assert 1364) + (cam-pitch float :offset-assert 1368) + (cam-roll float :offset-assert 1372) + (target-cam-roll float :offset-assert 1376) + (based-cam-roll float :offset-assert 1380) + (last-quat quaternion :inline :offset-assert 1392) + (override-camera? basic :offset-assert 1408) + (under-water? basic :offset-assert 1412) + (next-bob-cam-time uint64 :offset-assert 1416) + (thrust-sound uint32 :offset-assert 1424) + (ground-sound uint32 :offset-assert 1428) + (reverb-dest float :offset-assert 1432) + (pitch-current float :offset-assert 1436) + (ground-vol-current float :offset-assert 1440) + (last-slice-val float :offset-assert 1444) + (evasive-sound uint32 :offset-assert 1448) + (evasive-volume float :offset-assert 1452) + (stopping-evasive? basic :offset-assert 1456) + (spawn-splash? basic :offset-assert 1460) + (wake-sound uint32 :offset-assert 1464) + (heat-haze basic :offset-assert 1468) + (last-land-speech-time uint64 :offset-assert 1472) + (last-jump-speech-time uint64 :offset-assert 1480) + ) + :method-count-assert 171 + :size-assert #x5d0 + :flag-assert #xab055005d0 + (:methods + (htorpedo-method-162 () none) ;; 162 + (htorpedo-method-164 () none) ;; 164 + (htorpedo-method-165 () none) ;; 165 + (htorpedo-method-166 () none) ;; 166 + (htorpedo-method-167 () none) ;; 167 + (htorpedo-method-168 () none) ;; 168 + (htorpedo-method-169 () none) ;; 169 + (htorpedo-method-170 () none) ;; 170 + ) + (:state-methods + waiting ;; 57 + hide ;; 163 + player-control ;; 58 + explode ;; 60 + ) + ) +|# + +#| +(deftype light-trail-tracker-torpedo (light-trail-tracker) + () + :method-count-assert 21 + :size-assert #xac + :flag-assert #x15003000ac + ) +|# + +;; (define-extern *growing-curve-torpedo* object) +;; (define-extern *water-simple-alpha-curve-fade-out-torpedo* object) +;; (define-extern *color-curve-tan-brown-torpedo* object) +;; (define-extern *water-simple-alpha-curve-in-torpedo* object) +;; (define-extern *torpedo-wake-trail* object) +;; (define-extern spt-func-nuke-water-splash function) +;; (define-extern *range-torp-explo-color* curve-color-fast) +;; (define-extern *range-torp-explo-alpha* curve2d-fast) +;; (define-extern *range-torp-explo-scale-x* curve2d-fast) +;; (define-extern *range-torp-explo-scale-y* curve2d-fast) +;; (define-extern *curve-torp-explo-alpha* curve2d-fast) +;; (define-extern *curve-torp-explo-scale-x* curve2d-fast) +;; (define-extern *curve-torp-explo-scale-y* curve2d-fast) +;; (define-extern *part-torpedo-explosion-texture-curve-settings* object) +;; (define-extern PHYSICS_SCALAR object) +;; (define-extern *torpedo-speech-list* object) +;; (define-extern *torpedo-jump-speech* array) +;; (define-extern *torpedo-land-speech* array) +;; (define-extern *h-torpedo-constants* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; subdivide-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype subdivide-settings (basic) + ((dist float 5 :offset-assert 4) ;; guessed by decompiler + (meters float 5 :offset-assert 24) ;; guessed by decompiler + (close float 12 :offset-assert 44) ;; guessed by decompiler + (far float 12 :offset-assert 92) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x8c + :flag-assert #x90000008c + ) +|# + +#| +(deftype subdivide-dists (structure) + ((data uint32 32 :offset-assert 0) ;; guessed by decompiler + (vector vector 8 :offset-assert 0) ;; guessed by decompiler + (k0s uint128 4 :offset-assert 0) ;; guessed by decompiler + (k1s uint128 4 :offset-assert 64) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x80 + :flag-assert #x900000080 + ) +|# + +#| +(deftype terrain-stats (structure) + ((pris tr-stat :inline :offset-assert 0) + (tie-generic tr-stat :inline :offset-assert 16) + (tie-vanish tr-stat :inline :offset-assert 32) + (tie tr-stat :inline :offset-assert 48) + (tie-scissor tr-stat :inline :offset-assert 64) + (tie-envmap tr-stat :inline :offset-assert 80) + (tie-envmap-scissor tr-stat :inline :offset-assert 96) + (tie-trans tr-stat :inline :offset-assert 112) + (tie-scissor-trans tr-stat :inline :offset-assert 128) + (tie-envmap-trans tr-stat :inline :offset-assert 144) + (tie-envmap-scissor-trans tr-stat :inline :offset-assert 160) + (tie-water tr-stat :inline :offset-assert 176) + (tie-scissor-water tr-stat :inline :offset-assert 192) + (tie-envmap-water tr-stat :inline :offset-assert 208) + (tie-envmap-scissor-water tr-stat :inline :offset-assert 224) + (shrub-near tr-stat :inline :offset-assert 240) + (shrub tr-stat :inline :offset-assert 256) + (tfrag-scissor tr-stat :inline :offset-assert 272) + (tfrag tr-stat :inline :offset-assert 288) + (billboard tr-stat :inline :offset-assert 304) + (tfrag-trans tr-stat :inline :offset-assert 320) + (tfrag-scissor-trans tr-stat :inline :offset-assert 336) + (tfrag-water tr-stat :inline :offset-assert 352) + (tfrag-scissor-water tr-stat :inline :offset-assert 368) + (trans-pris tr-stat :inline :offset-assert 384) + (trans-shrub tr-stat :inline :offset-assert 400) + (ocean-mid tr-stat :inline :offset-assert 416) + (ocean-near tr-stat :inline :offset-assert 432) + (shadow tr-stat :inline :offset-assert 448) + (hfrag tr-stat :inline :offset-assert 464) + (total tr-stat :inline :offset-assert 480) + ) + :method-count-assert 9 + :size-assert #x1f0 + :flag-assert #x9000001f0 + ) +|# + +#| +(deftype background-area (structure) + ((dma-area dma-area 14336 :offset-assert 0) ;; guessed by decompiler + (vis-list uint8 2048 :offset-assert 14336) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x4000 + :flag-assert #x900004000 + ) +|# + +#| +(deftype foreground-area (structure) + ((generic-work generic-work :inline :offset-assert 0) + (foreground-work foreground-work :inline :offset-assert 0) + (joint-work joint-work :inline :offset-assert 0) + (bone-mem bone-memory :inline :offset-assert 0) + (shadow-work shadow-work :inline :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x3fe0 + :flag-assert #x900003fe0 + ) +|# + +#| +(deftype region-prim-area (structure) + ((region-prim-list region-prim-list :inline :offset-assert 0) + (pos vector :inline :offset-assert 1296) + (ray vector :inline :offset-assert 1328) + (region-enter-count int32 :offset-assert 1360) + (region-enter-list region 320 :offset-assert 1364) ;; guessed by decompiler + (region-enter-prim-list drawable-region-sphere 320 :offset-assert 2644) ;; guessed by decompiler + (region-exit-count int32 :offset-assert 3924) + (region-exit-list region 320 :offset-assert 3928) ;; guessed by decompiler + (region-exit-prim-list drawable-region-sphere 320 :offset-assert 5208) ;; guessed by decompiler + (region-inside-count int32 :offset-assert 6488) + (region-inside-list region 320 :offset-assert 6492) ;; guessed by decompiler + (region-inside-prim-list drawable-region-sphere 320 :offset-assert 7772) ;; guessed by decompiler + (region-start-count int32 :offset-assert 9052) + (region-start-list region 320 :offset-assert 9056) ;; guessed by decompiler + (region-start-prim-list drawable-region-sphere 320 :offset-assert 10336) ;; guessed by decompiler + ) + :method-count-assert 13 + :size-assert #x2d60 + :flag-assert #xd00002d60 + (:methods + (region-prim-area-method-9 () none) ;; 9 ;; (track-entered-region! (_type_ drawable-region-sphere) none 9) + (region-prim-area-method-10 () none) ;; 10 ;; (track-exited-region! (_type_ drawable-region-sphere) none 10) + (region-prim-area-method-11 () none) ;; 11 ;; (track-inside-region! (_type_ drawable-region-sphere) none 11) + (region-prim-area-method-12 () none) ;; 12 ;; (track-start-region! (_type_ drawable-region-sphere) none 12) + ) + ) +|# + +#| +(deftype sprite-area (structure) + ((clock-data vector 22 :offset-assert 0) ;; guessed by decompiler + (buffer uint8 :dynamic :offset-assert 352) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x160 + :flag-assert #x900000160 + ) +|# + +#| +(deftype work-area (structure) + ((background background-area :inline :offset-assert 0) + (foreground foreground-area :inline :offset-assert 0) + (region-prim region-prim-area :inline :offset-assert 0) + (sprite sprite-area :inline :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x4000 + :flag-assert #x900004000 + ) +|# + +#| +(deftype terrain-context (structure) + ((work work-area :inline :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x4000 + :flag-assert #x900004000 + ) +|# + +;; (define-extern *terrain-stats* object) ;; terrain-stats +;; (define-extern *collide-stats* object) ;; collide-stats + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ambient-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype talker-speech-class (structure) + ((name string :offset-assert 0) ;; guessed by decompiler + (channel uint8 :offset-assert 4) ;; gui-channel + (flags uint16 :offset-assert 6) ;; uint8 + (speech uint16 :offset-assert 8) + (text-duration uint16 :offset-assert 10) + (delay uint16 :offset-assert 12) + (pos uint16 :offset-assert 14) + (neg uint16 :offset-assert 16) + (text-message text-id :offset-assert 20) ;; guessed by decompiler + (on-close pair :offset-assert 24) ;; guessed by decompiler + (camera basic :offset-assert 28) + ) + :method-count-assert 14 + :size-assert #x20 + :flag-assert #xe00000020 + ;; field on-close uses ~A with a signed load. + (:methods + (talker-speech-class-method-9 () none) ;; 9 ;; (talker-speech-class-method-9 (_type_) symbol 9) + (talker-speech-class-method-10 () none) ;; 10 ;; (play-communicator-speech! (_type_) none 10) + (talker-speech-class-method-11 () none) ;; 11 ;; (talker-speech-class-method-11 (_type_) none 11) + (talker-speech-class-method-12 () none) ;; 12 ;; (talker-speech-class-method-12 (_type_ int) none 12) + (talker-speech-class-method-13 () none) ;; 13 ;; (talker-speech-class-method-13 (_type_ int) none 13) + ) + ) +|# + +#| +(deftype talker (process) + ((trans vector :inline :offset-assert 128) + (message talker-speech-class :offset-assert 144) + (total-time uint64 :offset-assert 152) ;; time-frame + (total-off-time uint64 :offset-assert 160) ;; time-frame + (start-time uint64 :offset-assert 168) ;; time-frame + (state-time uint64 :offset-assert 176) ;; time-frame + (voicebox uint64 :offset-assert 184) ;; handle + (voice-id sound-id :offset-assert 192) ;; guessed by decompiler + (message-id sound-id :offset-assert 196) ;; guessed by decompiler + (region region :offset-assert 200) + (interp float :offset-assert 204) + (save? symbol :offset-assert 208) ;; guessed by decompiler + (grab? basic :offset-assert 212) + ) + :method-count-assert 18 + :size-assert #xd8 + :flag-assert #x12006000d8 + (:methods + (talker-method-14 () none) ;; 14 ;; (idle () _type_ :state 14) + (talker-method-15 () none) ;; 15 ;; (active () _type_ :state 15) + (talker-method-16 () none) ;; 16 ;; (exit () _type_ :state 16) + (talker-method-17 () none) ;; 17 ;; (talker-method-17 (_type_) none 17) + ) + ) +|# + +;; (define-extern *talker-speech* object) ;; (inline-array talker-speech-class) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; shadow-cpu ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype shadow-stats (structure) + ((num-single-tris uint32 :offset-assert 0) + (num-double-tris uint32 :offset-assert 4) + (num-single-edges uint32 :offset-assert 8) + (num-double-edges uint32 :offset-assert 12) + (num-fragments uint16 :offset-assert 16) + (num-objects uint16 :offset-assert 18) + ) + :method-count-assert 9 + :size-assert #x14 + :flag-assert #x900000014 + ) +|# + +#| +(deftype shadow-dcache (structure) + ((vtx-table uint32 :offset-assert 0) + (single-edge-table uint32 :offset-assert 4) + (double-edge-table uint32 :offset-assert 8) + (double-tri-table uint32 :offset-assert 12) + (dcache-top uint32 :offset-assert 16) + (num-facing-single-tris uint32 :offset-assert 20) + (num-single-edges uint32 :offset-assert 24) + (num-double-edges uint32 :offset-assert 28) + (single-tri-list uint32 :offset-assert 32) + (single-edge-list uint32 :offset-assert 36) + (double-edge-list uint32 :offset-assert 40) + (ptr-dual-verts uint32 :offset-assert 44) + (stats shadow-stats :inline :offset-assert 48) + (frag-qwc uint32 :offset-assert 68) + (center vector :inline :offset-assert 80) + (plane vector :inline :offset-assert 96) + (top-plane vector :inline :offset-assert 112) + (near-plane vector :inline :offset-assert 128) + (light-dir vector :inline :offset-assert 144) + (vtx-min vector :inline :offset-assert 160) + (data uint8 :dynamic :offset-assert 176) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #xb0 + :flag-assert #x9000000b0 + ) +|# + +;; (define-extern *shadow-data* object) ;; shadow-data +;; (define-extern shadow-invert-z-buf function) ;; (function dma-buffer none) +;; (define-extern shadow-make-invert-buf function) ;; (function none) +;; (define-extern *shadow-dma-invert-call* object) ;; pointer +;; (define-extern shadow-dma-init function) ;; (function dma-buffer none) +;; (define-extern shadow-dma-end function) ;; (function dma-buffer gs-rgbaq symbol int none) +;; (define-extern shadow-vu0-block object) ;; vu-function +;; (define-extern shadow-xform-verts function) ;; function +;; (define-extern shadow-calc-dual-verts function) ;; function +;; (define-extern shadow-scissor-edges function) ;; function +;; (define-extern shadow-scissor-top function) ;; function +;; (define-extern shadow-init-vars function) ;; function +;; (define-extern shadow-find-facing-single-tris function) ;; function +;; (define-extern shadow-find-single-edges function) ;; function +;; (define-extern shadow-find-facing-double-tris function) ;; function +;; (define-extern shadow-find-double-edges function) ;; function +;; (define-extern shadow-add-verts function) ;; function +;; (define-extern shadow-add-facing-single-tris function) ;; function +;; (define-extern shadow-add-single-edges function) ;; function +;; (define-extern shadow-add-single-tris function) ;; function +;; (define-extern shadow-add-double-tris function) ;; function +;; (define-extern shadow-add-double-edges function) ;; function +;; (define-extern debug-draw-settings function) ;; (function shadow-settings symbol) +;; (define-extern shadow-execute function) ;; (function shadow-dma-packet pointer pointer) +;; (define-extern shadow-vu0-upload function) ;; (function none) +;; (define-extern shadow-execute-all function) ;; (function dma-buffer none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; templex-texture ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *templex-water-texture-anim-array* texture-anim-array) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; wind-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype wind-vector (structure) + ((wind-pos vector4w :inline :offset-assert 0) + (wind-vel vector4w :inline :offset-assert 16) + (stiffness float :offset-assert 28) + ) + :method-count-assert 9 + :size-assert #x20 + :flag-assert #x900000020 + ) +|# + +#| +(deftype wind-work (basic) + ((wind-array vector 64 :offset-assert 16) ;; guessed by decompiler + (wind-normal vector :inline :offset-assert 1040) + (wind-temp vector :inline :offset-assert 1056) + (wind-force float 64 :offset-assert 1072) ;; guessed by decompiler + (wind-const vector :inline :offset-assert 1328) + (wind-time uint32 :offset-assert 1344) + (wait-to-vu0 uint32 :offset-assert 1348) + (wait-to-spr uint32 :offset-assert 1352) + (wait-from-spr uint32 :offset-assert 1356) + (spr-index uint32 :offset-assert 1360) + (count uint32 :offset-assert 1364) + (next-count uint32 :offset-assert 1368) + (last-count uint32 :offset-assert 1372) + (to-spr uint32 :offset-assert 1376) + (from-spr uint32 :offset-assert 1380) + (next-mem uint32 :offset-assert 1384) + (last-mem uint32 :offset-assert 1388) + (next-spr uint32 :offset-assert 1392) + (last-spr uint32 :offset-assert 1396) + (to-ptrs uint32 3 :offset-assert 1400) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x584 + :flag-assert #x900000584 + ) +|# + +#| +(deftype wind-dma (structure) + ((buffer0 wind-vector 128 :offset-assert 0) ;; guessed by decompiler + (buffer1 wind-vector 128 :offset-assert 4096) ;; guessed by decompiler + (buffer2 wind-vector 128 :offset-assert 8192) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x3000 + :flag-assert #x900003000 + ) +|# + +;; (define-extern *wind-scales* array) ;; (array uint8) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; conveyor ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype conveyor-section (structure) + ((start vector :inline :offset-assert 0) + (trailing plane :inline :offset-assert 16) + (pull-dir vector :inline :offset-assert 32) + (radial-dir vector :inline :offset-assert 48) + ) + :method-count-assert 9 + :size-assert #x40 + :flag-assert #x900000040 + ) +|# + +#| +(deftype conveyor-section-array (inline-array-class) + ((data conveyor-section :dynamic :offset-assert 16) ;; guessed by decompiler + ) + :method-count-assert 14 + :size-assert #x10 + :flag-assert #xe00000010 + ) +|# + +#| +(deftype conveyor (process-drawable) + ((speed float :offset-assert 200) + (belt-radius float :offset-assert 204) + (pull-y-threshold float :offset-assert 208) + (speed-mult-array (array float) :offset-assert 212) ;; guessed by decompiler + (speed-mult-array-len int8 :offset-assert 216) + (sections conveyor-section-array :offset-assert 220) ;; guessed by decompiler + (leading plane :inline :offset-assert 224) + (collide-bounds sphere :inline :offset-assert 240) + ) + :method-count-assert 29 + :size-assert #x100 + :flag-assert #x1d00800100 + (:methods + (conveyor-method-21 () none) ;; 21 ;; (conveyor-method-21 (_type_) float 21) + (conveyor-method-22 () none) ;; 22 ;; (get-art-group (_type_) art-group 22) + (conveyor-method-23 () none) ;; 23 ;; (reset-root! (_type_) none 23) + (conveyor-method-24 () none) ;; 24 ;; (init! (_type_) none 24) + (conveyor-method-25 () none) ;; 25 ;; (set-and-get-ambient-sound! (_type_) ambient-sound 25) + (conveyor-method-26 () none) ;; 26 ;; (conveyor-method-26 (_type_ process-focusable) symbol 26) + (conveyor-method-27 () none) ;; 27 ;; (conveyor-method-27 (_type_) symbol 27) + (conveyor-method-28 () none) ;; 28 + ) + (:state-methods + idle ;; 20, old: (idle () _type_ :state 20) + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; prototype-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype prototype-bucket (basic) + ((name string :offset-assert 4) ;; guessed by decompiler + (flags uint16 :offset-assert 8) ;; prototype-flags + (texture-masks-index uint16 :offset-assert 10) + (in-level uint16 :offset-assert 12) + (utextures uint16 :offset-assert 14) + (geometry drawable 4 :offset-assert 16) ;; guessed by decompiler + (dists vector :inline :offset-assert 32) + (rdists vector :inline :offset-assert 48) + (near-plane meters :offset-assert 32) + (near-stiff meters :offset-assert 36) + (mid-plane meters :offset-assert 40) + (far-plane meters :offset-assert 44) + (rlength-near float :offset-assert 48) + (rlength-stiff float :offset-assert 52) + (rlength-mid float :offset-assert 56) + (stiffness float :offset-assert 60) + ) + :method-count-assert 9 + :size-assert #x40 + :flag-assert #x900000040 + ) +|# + +#| +(deftype prototype-bucket-shrub (prototype-bucket) + ((next uint32 4 :offset-assert 64) ;; guessed by decompiler + (count uint16 4 :offset-assert 80) ;; guessed by decompiler + (mod-count uint16 4 :offset-assert 88) ;; guessed by decompiler + (last dma-packet 4 :offset-assert 96) ;; guessed by decompiler + (next-clear uint128 :offset-assert 64) + (count-clear uint64 :offset-assert 80) + (last-clear uint128 :offset-assert 96) + ) + :method-count-assert 9 + :size-assert #x70 + :flag-assert #x900000070 + ) +|# + +#| +(deftype prototype-inline-array-shrub (drawable) + ((length int16 :offset-assert 6) + (data prototype-bucket-shrub 1 :offset-assert 36) ;; guessed by decompiler + ) + :method-count-assert 17 + :size-assert #x94 + :flag-assert #x1100000094 + ) +|# + +#| +(deftype prototype-array-shrub-info (basic) + ((prototype-inline-array-shrub prototype-inline-array-shrub :offset-assert 4) ;; guessed by decompiler + (wind-vectors uint32 :offset-assert 8) + (wind-count int32 :offset-assert 12) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype prototype-bucket-tie (prototype-bucket) + ((next uint32 12 :offset-assert 64) ;; guessed by decompiler + (count uint16 12 :offset-assert 112) ;; guessed by decompiler + (frag-count uint8 4 :offset-assert 136) ;; guessed by decompiler + (index-start uint8 4 :offset-assert 140) ;; guessed by decompiler + (base-qw uint16 4 :offset-assert 144) ;; guessed by decompiler + (tie-rvanish float :offset-assert 152) + (tie-vanish-far float :offset-assert 156) + (envmap-rfade float :offset-assert 160) + (envmap-fade-far float :offset-assert 164) + (envmap-shader adgif-shader :offset-assert 168) + (tint-color uint32 :offset-assert 172) + (collide-hash-fragment-array collide-hash-fragment-array :offset-assert 176) ;; guessed by decompiler + (tie-colors time-of-day-palette :offset-assert 180) ;; guessed by decompiler + (data uint32 :dynamic :offset-assert 184) ;; guessed by decompiler + (color-index-qwc uint32 :dynamic :offset-assert 184) ;; guessed by decompiler + (scissor-frag-count uint8 :offset-assert 136) + (near-frag-count uint8 :offset-assert 137) + (mid-frag-count uint8 :offset-assert 138) + (far-frag-count uint8 :offset-assert 139) + (scissor-index-start uint8 :offset-assert 140) + (near-index-start uint8 :offset-assert 141) + (mid-index-start uint8 :offset-assert 142) + (far-index-start uint8 :offset-assert 143) + (scissor-base-qw uint16 :offset-assert 144) + (near-base-qw uint16 :offset-assert 146) + (mid-base-qw uint16 :offset-assert 148) + (far-base-qw uint16 :offset-assert 150) + (tie-next uint32 4 :offset-assert 64) ;; guessed by decompiler + (tie-scissor-next uint32 :offset-assert 64) + (tie-near-next uint32 :offset-assert 68) + (tie-mid-next uint32 :offset-assert 72) + (tie-far-next uint32 :offset-assert 76) + (trans-next uint32 4 :offset-assert 64) ;; guessed by decompiler + (trans-scissor-next uint32 4 :offset-assert 64) ;; guessed by decompiler + (trans-near-next uint32 :offset-assert 68) + (trans-mid-next uint32 :offset-assert 72) + (trans-far-next uint32 :offset-assert 76) + (water-next uint32 4 :offset-assert 64) ;; guessed by decompiler + (water-scissor-next uint32 4 :offset-assert 64) ;; guessed by decompiler + (water-near-next uint32 :offset-assert 68) + (water-mid-next uint32 :offset-assert 72) + (water-far-next uint32 :offset-assert 76) + (envmap-next uint32 4 :offset-assert 80) ;; guessed by decompiler + (envmap-scissor-next uint32 4 :offset-assert 80) ;; guessed by decompiler + (envmap-near-next uint32 :offset-assert 84) + (envmap-mid-next uint32 :offset-assert 88) + (envmap-far-next uint32 :offset-assert 92) + (generic-next uint32 3 :offset-assert 96) ;; guessed by decompiler + (generic-near-next uint32 :offset-assert 96) + (generic-mid-next uint32 :offset-assert 100) + (generic-far-next uint32 :offset-assert 104) + (vanish-next uint32 :offset-assert 108) + (tie-count uint16 4 :offset-assert 112) ;; guessed by decompiler + (tie-scissor-count uint16 :offset-assert 112) + (tie-near-count uint16 :offset-assert 114) + (tie-mid-count uint16 :offset-assert 116) + (tie-far-count uint16 :offset-assert 118) + (trans-count uint16 4 :offset-assert 112) ;; guessed by decompiler + (trans-scissor-count uint16 :offset-assert 112) + (trans-near-count uint16 :offset-assert 114) + (trans-mid-count uint16 :offset-assert 116) + (trans-far-count uint16 :offset-assert 118) + (water-count uint16 4 :offset-assert 112) ;; guessed by decompiler + (water-scissor-count uint16 :offset-assert 112) + (water-near-count uint16 :offset-assert 114) + (water-mid-count uint16 :offset-assert 116) + (water-far-count uint16 :offset-assert 118) + (envmap-count uint16 4 :offset-assert 120) ;; guessed by decompiler + (envmap-scissor-count uint16 :offset-assert 120) + (envmap-near-count uint16 :offset-assert 122) + (envmap-mid-count uint16 :offset-assert 124) + (envmap-far-count uint16 :offset-assert 126) + (generic-count uint16 3 :offset-assert 128) ;; guessed by decompiler + (generic-near-count uint16 :offset-assert 128) + (generic-mid-count uint16 :offset-assert 130) + (generic-far-count uint16 :offset-assert 132) + (vanish-count uint16 :offset-assert 134) + (next-clear uint128 3 :offset-assert 64) ;; guessed by decompiler + (count-clear uint64 3 :offset-assert 112) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #xb8 + :flag-assert #x9000000b8 + ) +|# + +#| +(deftype prototype-array-tie (array) + ((type type :offset-assert 0) ;; guessed by decompiler + (length int32 :offset-assert 4) + (allocated-length int32 :offset-assert 8) + (content-type type :offset-assert 12) ;; guessed by decompiler + ) + :method-count-assert 10 + :size-assert #x10 + :flag-assert #xa00000010 + (:methods + (prototype-array-tie-method-9 () none) ;; 9 ;; (login (_type_) none 9) + ) + ) +|# + +#| +(deftype proxy-prototype-array-tie (basic) + ((prototype-array-tie prototype-array-tie :offset-assert 4) ;; guessed by decompiler + (wind-vectors uint32 :offset-assert 8) + (wind-count uint16 :offset-assert 12) + (prototype-max-qwc uint16 :offset-assert 14) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype instance (drawable) + ((bucket-index uint16 :offset-assert 6) + (origin matrix4h :inline :offset-assert 32) + (flags uint16 :offset-assert 46) ;; instance-flags + (wind-index uint16 :offset-assert 62) + ) + :method-count-assert 17 + :size-assert #x40 + :flag-assert #x1100000040 + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; bug-report ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype bug-report (process) + ((bug-number UNKNOWN 5 :offset-assert 128) + (digit uint32 :offset-assert 148) + (state-time uint64 :offset-assert 152) + (next-down uint64 :offset-assert 160) + ) + :method-count-assert 17 + :size-assert #xa8 + :flag-assert #x11003000a8 + (:methods + (bug-report-method-15 () none) ;; 15 + (bug-report-method-16 () none) ;; 16 + ) + (:state-methods + idle ;; 14 + ) + ) +|# + +;; (define-extern *continue-bug-report* continue-point) +;; (define-extern *bug-report* object) +;; (define-extern bug-report-init function) +;; (define-extern bug-report-stop function) +;; (define-extern bug-report-start function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; course-race ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype task-manager-race (task-manager) + ((start-pos vector :inline :offset-assert 240) + (start-continue basic :offset-assert 256) + (scene-player uint64 :offset-assert 264) + (race-started? basic :offset-assert 272) + (player-won? basic :offset-assert 276) + ) + :method-count-assert 39 + :size-assert #x118 + :flag-assert #x2700a00118 + (:methods + (task-manager-race-method-33 () none) ;; 33 + (task-manager-race-method-34 () none) ;; 34 + (task-manager-race-method-35 () none) ;; 35 + (task-manager-race-method-36 () none) ;; 36 + (task-manager-race-method-37 () none) ;; 37 + (task-manager-race-method-38 () none) ;; 38 + ) + (:state-methods + active ;; 15 + finished ;; 32 + complete ;; 16 + ) + ) +|# + +#| +(deftype task-manager-desert-course-race (task-manager-race) + ((fail-plane vector :inline :offset-assert 288) + ) + :method-count-assert 39 + :size-assert #x130 + :flag-assert #x2700b00130 + (:state-methods + active ;; 15 + finished ;; 32 + ) + ) +|# + +#| +(deftype bbush-time-trial-hud-info (structure) + ((goal float :offset-assert 0) + (goal-cup uint8 :offset-assert 4) + ) + :method-count-assert 9 + :size-assert #x5 + :flag-assert #x900000005 + ) +|# + +#| +(deftype hud-wasbbv-goal-time (hud) + () + :method-count-assert 27 + :size-assert #xac4 + :flag-assert #x1b0a500ac4 + ) +|# + +#| +(deftype task-manager-bbush-time-trial-1 (task-manager-race) + ((game-score uint8 :offset-assert 280) + (hud-goal uint64 :offset-assert 288) + ) + :method-count-assert 39 + :size-assert #x128 + :flag-assert #x2700b00128 + (:state-methods + active ;; 15 + ) + ) +|# + +#| +(deftype des-rally-bollard (process-drawable) + () + :method-count-assert 21 + :size-assert #xc8 + :flag-assert #x15005000c8 + (:state-methods + idle ;; 20 + ) + ) +|# + +#| +(deftype task-manager-bbush-rally (task-manager-race) + ((game-score uint8 :offset-assert 280) + (hud-goal uint64 :offset-assert 288) + ) + :method-count-assert 39 + :size-assert #x128 + :flag-assert #x2700b00128 + (:state-methods + active ;; 15 + ) + ) +|# + +;; (define-extern *v-snake-racer-constants* object) +;; (define-extern *v-mirage-racer-constants* object) +;; (define-extern *v-fox-racer-constants* object) +;; (define-extern *v-x-ride-racer-constants* object) +;; (define-extern *v-marauder-racer-constants* object) +;; (define-extern task-manager-race-pre-race-sequence function) +;; (define-extern task-manager-desert-course-race-pre-race-sequence function) +;; (define-extern *bbush-time-trial-hud-info* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; joint-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype joint-control-channel (structure) + ((parent joint-control :offset-assert 0) ;; guessed by decompiler + (frame-group art-joint-anim :offset-assert 4) ;; guessed by decompiler + (frame-num float :offset-assert 8) + (dist meters :offset-assert 12) + (num-func (function joint-control-channel float float float float) :offset-assert 16) ;; guessed by decompiler + (param float 3 :offset-assert 20) ;; guessed by decompiler + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (frame-interp float 2 :offset-assert 32) ;; guessed by decompiler + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (inspector-amount uint8 :offset-assert 40) + (command uint64 :offset-assert 48) ;; joint-control-command + (group-sub-index int8 :offset-assert 56) + (group-size int8 :offset-assert 57) + (eval-time uint32 :offset-assert 60) + ) + :method-count-assert 9 + :size-assert #x40 + :flag-assert #x900000040 + ) +|# + +#| +(deftype top-anim-joint-control (basic) + ((process (pointer process-drawable) :offset-assert 4) ;; guessed by decompiler + (interp-select uint64 2 :offset-assert 8) ;; guessed by decompiler + (base-anim basic :offset-assert 24) + (base-anim-speed float :offset-assert 28) + (base-anim-blend float :offset-assert 32) + (interp float :offset-assert 36) + (frame-group art-joint-anim :offset-assert 40) ;; guessed by decompiler + (frame-group-push art-joint-anim :offset-assert 44) ;; guessed by decompiler + (frame-num float :offset-assert 48) + (frame-targ art-joint-anim :offset-assert 52) ;; guessed by decompiler + (frame-speed float :offset-assert 56) + (frame-blend float :offset-assert 60) + (frame-cur-blend float :offset-assert 64) + (frame-start float :offset-assert 68) + (frame-post-blend float :offset-assert 72) + (frame-post-end float :offset-assert 76) + (frame-push-time uint64 :offset-assert 80) ;; time-frame + (frame-post-put-away basic :offset-assert 88) + (update-time uint64 :offset-assert 96) ;; time-frame + ) + :method-count-assert 13 + :size-assert #x68 + :flag-assert #xd00000068 + (:methods + ;; (new (symbol type process-drawable) _type_ 0) + (top-anim-joint-control-method-9 () none) ;; 9 ;; (reset (_type_) none 9) + (top-anim-joint-control-method-10 () none) ;; 10 ;; (update (_type_) none 10) + (top-anim-joint-control-method-11 () none) ;; 11 ;; (get-channel (_type_ int) joint-control-channel 11) + (top-anim-joint-control-method-12 () none) ;; 12 ;; (push-anim-to-targ (_type_ art-joint-anim float int int float float symbol) none 12) + ) + ) +|# + +#| +(deftype joint-control (basic) + ((status joint-control-status :offset-assert 4) + (allocated-length uint8 :offset-assert 6) + (active-channels uint8 :offset-assert 7) + (root-channel (inline-array joint-control-channel) :offset-assert 16) ;; guessed by decompiler + (blend-index uint8 :offset-assert 20) + (active-frame-interp uint8 :offset-assert 21) + (float-channels uint8 :offset-assert 22) + (generate-frame-function (function joint-anim-frame int joint-control int) :offset-assert 24) ;; guessed by decompiler + (prebind-function (function joint-anim-frame int joint-control int) :offset-assert 28) ;; guessed by decompiler + (postbind-function (function draw-control cspace-array joint-control none) :offset-assert 32) ;; guessed by decompiler + (effect effect-control :offset-assert 36) ;; guessed by decompiler + (interp-select int64 2 :offset-assert 40) ;; guessed by decompiler + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (top-anim top-anim-joint-control :offset-assert 56) ;; guessed by decompiler + (override (array float) :offset-assert 60) ;; guessed by decompiler + (channel joint-control-channel :dynamic :offset-assert 64) ;; guessed by decompiler + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + ) + :method-count-assert 13 + :size-assert #x40 + :flag-assert #xd00000040 + ;; field joint-control-status is likely a value type. + (:methods + ;; (new (symbol type int) _type_ 0) + (joint-control-method-9 () none) ;; 9 ;; (current-cycle-distance (_type_) float 9) + (joint-control-method-10 () none) ;; 10 ;; (update-anim-data (_type_) none 10) + (joint-control-method-11 () none) ;; 11 ;; (debug-print-channels (_type_ symbol) int 11) + (joint-control-method-12 () none) ;; 12 + ) + ) +|# + +#| +(deftype matrix-stack (structure) + ((top matrix :offset-assert 0) + (data matrix 24 :offset-assert 16) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x610 + :flag-assert #x900000610 + ) +|# + +#| +(deftype channel-upload-info (structure) + ((fixed joint-anim-compressed-fixed :offset-assert 0) + (fixed-qwc int32 :offset-assert 4) + (frame joint-anim-compressed-frame :offset-assert 8) + (frame-qwc int32 :offset-assert 12) + (amount float :offset-assert 16) + (interp float :offset-assert 20) + ) + :method-count-assert 9 + :size-assert #x18 + :flag-assert #x900000018 + ) +|# + +#| +(deftype joint-work (structure) + ((temp-mtx matrix :inline :offset-assert 0) + (joint-stack matrix-stack :inline :offset-assert 64) + (fix-jmp-table (function none) 16 :offset-assert 1616) ;; guessed by decompiler + (frm-jmp-table (function none) 16 :offset-assert 1680) ;; guessed by decompiler + (pair-jmp-table (function none) 16 :offset-assert 1744) ;; guessed by decompiler + (uploads channel-upload-info 24 :offset-assert 1808) ;; guessed by decompiler + (num-uploads int32 :offset-assert 2384) + (mtx-acc matrix 2 :offset-assert 2400) ;; guessed by decompiler + (tq-acc transformq 100 :offset-assert 2528) ;; guessed by decompiler + (jacp-hdr joint-anim-compressed-hdr :inline :offset-assert 7328) + (fixed-data joint-anim-compressed-fixed :inline :offset-assert 7392) + (frame-data joint-anim-compressed-frame 2 :offset-assert 9600) ;; guessed by decompiler + (flatten-array float 576 :offset-assert 2400) ;; guessed by decompiler + (flattened vector 24 :offset-assert 2400) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x3640 + :flag-assert #x900003640 + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; bones-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype bone-buffer (structure) + ((joint matrix 16 :offset-assert 0) ;; guessed by decompiler + (bone bone 16 :offset-assert 1024) ;; guessed by decompiler + (output pris-mtx 16 :offset-assert 2304) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x1100 + :flag-assert #x900001100 + ) +|# + +#| +(deftype bone-layout (structure) + ((data uint16 8 :offset-assert 0) ;; guessed by decompiler + (joint (inline-array matrix) 2 :offset-assert 0) ;; guessed by decompiler + (bone (inline-array bone) 2 :offset-assert 8) ;; guessed by decompiler + (output (inline-array pris-mtx) 2 :offset-assert 16) ;; guessed by decompiler + (unused uint32 2 :offset-assert 24) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x20 + :flag-assert #x900000020 + ) +|# + +#| +(deftype bone-regs (structure) + ((dma-buf basic :offset-assert 0) + (wait-count uint32 :offset-assert 4) + (in-count uint32 :offset-assert 8) + (sp-size uint32 :offset-assert 12) + (sp-bufnum uint32 :offset-assert 16) + (joint-ptr (inline-array joint) :offset-assert 20) ;; guessed by decompiler + (bone-ptr (inline-array bone) :offset-assert 24) ;; guessed by decompiler + (num-bones uint32 :offset-assert 28) + (mtxs (inline-array pris-mtx) :offset-assert 32) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x24 + :flag-assert #x900000024 + ) +|# + +#| +(deftype bone-work (structure) + ((layout bone-layout :inline :offset-assert 0) + (regs bone-regs :inline :offset-assert 32) + ) + :method-count-assert 9 + :size-assert #x44 + :flag-assert #x900000044 + ) +|# + +#| +(deftype bone-debug (structure) + ((time-ctr uint32 :offset-assert 0) + (timing uint32 360 :offset-assert 4) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x5a4 + :flag-assert #x9000005a4 + ) +|# + +#| +(deftype bone-memory (structure) + ((work bone-work :inline :offset-assert 0) + (buffer bone-buffer 2 :offset-assert 80) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x2250 + :flag-assert #x900002250 + ) +|# + +#| +(deftype bone-calculation (structure) + ((flags uint16 :offset-assert 0) ;; bone-calc-flags + (num-bones uint16 :offset-assert 2) + (matrix-area (inline-array pris-mtx) :offset-assert 4) ;; guessed by decompiler + (joints (inline-array joint) :offset-assert 8) ;; guessed by decompiler + (bones (inline-array bone) :offset-assert 12) ;; guessed by decompiler + (ripple-scale float :offset-assert 16) + (ripple-y-scale float :offset-assert 20) + (ripple-normal-scale float :offset-assert 24) + (ripple-area (inline-array vector) :offset-assert 28) ;; guessed by decompiler + (next bone-calculation :offset-assert 32) + (dummy-1 uint32 :offset-assert 36) + (dummy-2 uint32 :offset-assert 40) + (dummy-3 uint32 :offset-assert 44) + ) + :method-count-assert 9 + :size-assert #x30 + :flag-assert #x900000030 + ) +|# + +#| +(deftype bone-calculation-list (structure) + ((first bone-calculation :offset-assert 0) + (next bone-calculation :offset-assert 4) + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; foreground-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype mercneric-chain (structure) + ((first uint32 :offset-assert 0) + (next uint32 :offset-assert 4) + (state generic-bucket-state :inline :offset-assert 8) + (vu1-bucket int32 :offset-assert 16) ;; bucket-id + ) + :method-count-assert 9 + :size-assert #x14 + :flag-assert #x900000014 + ) +|# + +#| +(deftype merc-chain (structure) + ((first dma-packet :offset-assert 0) + (patch dma-packet :offset-assert 4) + (vu1-bucket int32 :offset-assert 8) ;; bucket-id + ) + :method-count-assert 9 + :size-assert #xc + :flag-assert #x90000000c + ) +|# + +#| +(deftype foreground-bucket (structure) + ((merc merc-chain :inline :offset-assert 0) + (emerc merc-chain :inline :offset-assert 12) + (mercneric mercneric-chain :inline :offset-assert 24) + ) + :method-count-assert 9 + :size-assert #x2c + :flag-assert #x90000002c + ) +|# + +#| +(deftype foreground-level-buckets (structure) + ((data foreground-bucket 7 :offset-assert 0) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x150 + :flag-assert #x900000150 + ) +|# + +#| +(deftype foreground-bucket-grid (structure) + ((level-buckets foreground-level-buckets 11 :offset-assert 0) ;; guessed by decompiler + (warp-chain mercneric-chain :inline :offset-assert 3696) + ) + :method-count-assert 9 + :size-assert #xe84 + :flag-assert #x900000e84 + ) +|# + +#| +(deftype foreground-regs (structure) + ((dist float :offset-assert 0) + (merc-used uint32 :offset-assert 4) + (emerc-used uint32 :offset-assert 8) + (mercneric-used uint32 :offset-assert 12) + (use-isometric uint32 :offset-assert 16) + (base-start dma-packet :offset-assert 20) + (joint-ptr (inline-array joint) :offset-assert 24) ;; guessed by decompiler + (bone-ptr (inline-array bone) :offset-assert 28) ;; guessed by decompiler + (num-bones uint32 :offset-assert 32) + (mtxs (inline-array pris-mtx) :offset-assert 36) ;; guessed by decompiler + (dma-buf dma-buffer :offset-assert 40) ;; guessed by decompiler + (default-texture-index uint32 :offset-assert 44) + (mercneric-chain mercneric-chain :offset-assert 48) + (level-buckets foreground-level-buckets :offset-assert 52) + ) + :method-count-assert 9 + :size-assert #x38 + :flag-assert #x900000038 + ) +|# + +#| +(deftype foreground-work (structure) + ((regs foreground-regs :inline :offset-assert 0) + (draw-index-map uint8 11 :offset-assert 64) ;; guessed by decompiler + (grid foreground-bucket-grid :inline :offset-assert 80) + (bounds sphere :inline :offset-assert 3808) + (lights vu-lights :inline :offset-assert 3824) + (distance vector :inline :offset-assert 3936) + (next-tmpl dma-packet :inline :offset-assert 3952) + ) + :method-count-assert 9 + :size-assert #xf80 + :flag-assert #x900000f80 + ) +|# + +#| +(deftype texscroll-globals (structure) + ((requests int32 :offset-assert 0) + (effects merc-effect 32 :offset-assert 4) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x84 + :flag-assert #x900000084 + ) +|# + +#| +(deftype merc-effect-bucket-info (structure) + ((color-fade rgba :offset-assert 0) ;; guessed by decompiler + (merc-path uint8 :offset-assert 4) + (ignore-alpha uint8 :offset-assert 5) + (disable-draw uint8 :offset-assert 6) + (disable-envmap uint8 :offset-assert 7) + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +#| +(deftype merc-bucket-info (structure) + ((light vu-lights :inline :offset-assert 0) + (needs-clip int32 :offset-assert 112) + (need-mercprime-if-merc int32 :offset-assert 116) + (must-use-mercneric-for-clip int32 :offset-assert 120) + (effect merc-effect-bucket-info 64 :offset-assert 124) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x27c + :flag-assert #x90000027c + ) +|# + +#| +(deftype foreground-globals (structure) + ((foreground-grid foreground-bucket-grid :inline :offset-assert 0) + (merc-bucket-info merc-bucket-info :inline :offset-assert 3728) + (texscroll texscroll-globals :inline :offset-assert 4368) + ) + :method-count-assert 9 + :size-assert #x1194 + :flag-assert #x900001194 + ) +|# + +#| +(deftype shadow-dma-packet (structure) + ((tag generic-merc-tag :inline :offset-assert 0) + (settings shadow-settings :inline :offset-assert 16) + (geo-ref dma-packet :inline :offset-assert 96) + (mtx-ref dma-packet :inline :offset-assert 112) + (end-tag dma-packet :inline :offset-assert 128) + ) + :method-count-assert 9 + :size-assert #x90 + :flag-assert #x900000090 + ) +|# + +;; (define-extern invalidate-cache-line function) ;; (function pointer int) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; engines ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype particle-local-space-info (connection) + ((params UNKNOWN 3 :offset-assert 20) + (mat-prev matrix :inline :offset-assert 32) + (mat-new matrix :inline :offset-assert 96) + (hand uint64 :offset-assert 160) + (flags uint32 :offset-assert 168) + (pad UNKNOWN 1 :offset-assert 172) + ) + :method-count-assert 14 + :size-assert #xb0 + :flag-assert #xe000000b0 + ;; field param1 uses ~A with a signed load. field param2 uses ~A with a signed load. field param3 uses ~A with a signed load. + ) +|# + +;; (define-extern *background-draw-engine* object) ;; engine +;; (define-extern *matrix-engine* object) ;; (array handle) +;; (define-extern *cloth-engine* object) +;; (define-extern *part-engine* object) ;; engine +;; (define-extern *cam-post-hook-engine* object) +;; (define-extern *part-local-space-engine* object) +;; (define-extern *camera-engine* object) ;; engine +;; (define-extern *debug-engine* object) ;; engine +;; (define-extern *pad-engine* object) ;; engine +;; (define-extern *lightning-engine* object) ;; engine +;; (define-extern *hud-engine* object) ;; engine +;; (define-extern *prim-engine* object) +;; (define-extern *task-manager-engine* object) ;; engine + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ctyport-attack-bbush ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype ctyport-attack-manager-bbush (ctyport-attack-manager) + ((actor-group uint32 :offset-assert 308) + (actor-group-count int32 :offset-assert 312) + (clock-speed float :offset-assert 316) + (hud-timer uint64 :offset-assert 196) + (countdown-timer uint64 :offset-assert 332) + ) + :method-count-assert 53 + :size-assert #x158 + :flag-assert #x3500e00158 + (:state-methods + wait ;; 14 + pickup-nukes ;; 32 + head-to-wall ;; 33 + wait-award ;; 52 + ) + ) +|# + +;; (define-extern *ctyport-attack-bbush-positions* object) +;; (define-extern *ctyport-bbush-mine-positions* array) +;; (define-extern *port-attack-bbush-fail-sphere* object) +;; (define-extern *port-attack-bbush-fail-radius* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; res-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (deftype res-tag (uint128) +;; () +;; :flag-assert #x900000010 +;; ) + +#| +(deftype res-lump (basic) + ((length int32 :offset-assert 4) + (allocated-length int16 :offset-assert 8) ;; int32 + (flags uint16 :offset-assert 10) + (data-base pointer :offset-assert 12) ;; guessed by decompiler + (data-top pointer :offset-assert 16) ;; guessed by decompiler + (data-size int32 :offset-assert 20) + (extra entity-links :offset-assert 24) ;; guessed by decompiler + (tag (pointer res-tag) :offset-assert 28) ;; guessed by decompiler + ) + :method-count-assert 22 + :size-assert #x20 + :flag-assert #x1600000020 + ;; field extra uses ~A with a signed load. + (:methods + ;; (new (symbol type int int) _type_ 0) + (res-lump-method-9 () none) ;; 9 ;; (get-property-data (_type_ symbol symbol float pointer (pointer res-tag) pointer) pointer 9) + (res-lump-method-10 () none) ;; 10 ;; (get-property-struct (_type_ symbol symbol float structure (pointer res-tag) pointer) structure 10) + (res-lump-method-11 () none) ;; 11 ;; (get-property-value (_type_ symbol symbol float uint128 (pointer res-tag) pointer) uint128 11) + (res-lump-method-12 () none) ;; 12 ;; (get-property-value-float (_type_ symbol symbol float float (pointer res-tag) pointer) float 12) + (res-lump-method-13 () none) ;; 13 ;; (get-tag-index-data (_type_ int) pointer 13) + (res-lump-method-14 () none) ;; 14 ;; (get-tag-data (_type_ res-tag) pointer 14) + (res-lump-method-15 () none) ;; 15 ;; (allocate-data-memory-for-tag! (_type_ res-tag) res-tag 15) + (res-lump-method-16 () none) ;; 16 ;; (sort! (_type_) _type_ 16) + (res-lump-method-17 () none) ;; 17 ;; (add-data! (_type_ res-tag pointer) res-lump 17) + (res-lump-method-18 () none) ;; 18 ;; (add-32bit-data! (_type_ res-tag object) res-lump 18) + (res-lump-method-19 () none) ;; 19 ;; (lookup-tag-idx (_type_ symbol symbol float) res-tag-pair 19) + (res-lump-method-20 () none) ;; 20 ;; (make-property-data (_type_ float res-tag-pair pointer) pointer 20) + (res-lump-method-21 () none) ;; 21 ;; (get-curve-data! (_type_ curve symbol symbol float) symbol 21) + ) + ) +|# + +;; (define-extern *res-key-string* object) ;; string + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; texture-anim-tables ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *sky-texture-anim-array* texture-anim-array) ;; (texture-anim-array texture-anim) +;; (define-extern set-fog-height! function) ;; (function float none) +;; (define-extern set-cloud-minmax! function) ;; (function float float none) +;; (define-extern *darkjak-texture-anim-array* texture-anim-array) ;; (texture-anim-array texture-anim) +;; (define-extern set-darkjak-texture-morph! function) ;; (function float none) +;; (define-extern *darkjak-highres-texture-anim-array* texture-anim-array) +;; (define-extern set-darkjak-highres-texture-morph! function) ;; (function float symbol) +;; (define-extern *skull-gem-texture-anim-array* texture-anim-array) ;; (texture-anim-array texture-anim) +;; (define-extern *default-water-texture-anim-array* texture-anim-array) +;; (define-extern *default-warp-texture-anim-array* texture-anim-array) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; emerc-vu1 ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern emerc-vu1-block object) ;; vu-function + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; wvehicle-util ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype kill-player-process (process) + ((player uint64 :offset-assert 128) + (mode basic :offset-assert 136) + ) + :method-count-assert 16 + :size-assert #x8c + :flag-assert #x100010008c + (:state-methods + idle ;; 14 + die ;; 15 + ) + ) +|# + +;; (define-extern have-earned-vehicle-v-type? function) +;; (define-extern have-vehicle-v-type? function) +;; (define-extern kill-player-process-init-by-other function) +;; (define-extern kill-player-process-spawn function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; res ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; res-lump is already defined! + +;; (define-extern *res-static-buf* object) ;; pointer + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; assault-path ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *assault-rooms* array) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; wasstada-obs ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype wstd-door (com-airlock) + () + :method-count-assert 30 + :size-assert #x1b0 + :flag-assert #x1e013001b0 + ) +|# + +#| +(deftype wstd-arena-plat (base-plat) + ((sync sync-paused :inline :offset-assert 272) + (flags uint64 :offset-assert 296) + (ride-timer uint64 :offset-assert 304) + (current-pos float :offset-assert 312) + (dest-pos float :offset-assert 316) + (speed float :offset-assert 320) + (y-pos float :offset-assert 324) + (ambient-sound-id uint32 :offset-assert 328) + (on-activate basic :offset-assert 332) + (go-pos float :offset-assert 336) + (sound-id uint32 :offset-assert 340) + (sound-running-loop basic :offset-assert 344) + ) + :method-count-assert 45 + :size-assert #x15c + :flag-assert #x2d00e0015c + ;; field on-activate uses ~A with a signed load. + (:methods + (wstd-arena-plat-method-43 () none) ;; 43 + (wstd-arena-plat-method-44 () none) ;; 44 + ) + (:state-methods + plat-base-state ;; 35 + idle ;; 36 + active ;; 37 + run ;; 39 + wait ;; 38 + go-down ;; 42 + wait-show ;; 41 + show ;; 40 + ) + ) +|# + +#| +(deftype wstd-flag-a (process-drawable) + () + :method-count-assert 21 + :size-assert #xc8 + :flag-assert #x15005000c8 + (:state-methods + idle ;; 20 + ) + ) +|# + +#| +(deftype wstd-blocker (process-drawable) + () + :method-count-assert 21 + :size-assert #xc8 + :flag-assert #x15005000c8 + (:state-methods + idle ;; 20 + ) + ) +|# + +#| +(deftype crowd-manager (process) + ((crowd-intensity float :offset-assert 128) + (snd-id-1 uint32 :offset-assert 132) + (snd-id-2 uint32 :offset-assert 136) + (next-sound uint64 :offset-assert 144) + (channel uint32 :offset-assert 152) + (dur-sound uint64 :offset-assert 160) + (volume-1 float :offset-assert 168) + (volume-2 float :offset-assert 172) + (trans-1 vector :inline :offset-assert 176) + (trans-2 vector :inline :offset-assert 192) + (crowd-int-red float :offset-assert 208) + (trans vector :inline :offset-assert 224) + (training? basic :offset-assert 240) + (darkjak? basic :offset-assert 244) + (sid uint32 :offset-assert 248) + (volume float :offset-assert 252) + (snd-count uint32 :offset-assert 256) + (start-sound basic :offset-assert 260) + ) + :method-count-assert 15 + :size-assert #x108 + :flag-assert #xf00900108 + (:state-methods + idle ;; 14 + ) + ) +|# + +;; (define-extern *range-color-lava-flame* curve-color-fast) +;; (define-extern *range-alpha-lava-flame* curve2d-fast) +;; (define-extern *range-scale-lava-flame-x* curve2d-fast) +;; (define-extern *range-scale-lava-flame-y* curve2d-fast) +;; (define-extern *r-curve-lava-flame* curve2d-fast) +;; (define-extern *g-curve-lava-flame* curve2d-fast) +;; (define-extern *b-curve-lava-flame* curve2d-fast) +;; (define-extern *curve-alpha-lava-flame* curve2d-fast) +;; (define-extern *curve-scale-lava-flame-x* curve2d-fast) +;; (define-extern *curve-scale-lava-flame-y* curve2d-fast) +;; (define-extern *part-wasstada-lava-flame-curve-settings* object) +;; (define-extern *crowd-manager* object) +;; (define-extern *crowd-positions* array) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; lights ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *light-hash-work* object) ;; light-hash-work +;; (define-extern light-slerp function) ;; (function light light light float light) +;; (define-extern light-group-slerp function) ;; (function light-group light-group light-group float light-group) +;; (define-extern light-group-process! function) ;; (function vu-lights light-group vector vector none) +;; (define-extern *default-lights* object) ;; vu-lights +;; (define-extern vu-lights-default! function) ;; (function vu-lights vu-lights) +;; (define-extern init-light-hash function) ;; (function none) +;; (define-extern light-hash-count-items function) ;; (function light-hash light-sphere none) +;; (define-extern light-hash-add-items function) ;; (function light-hash light-sphere integer object) +;; (define-extern reset-light-hash function) ;; (function light-hash none) +;; (define-extern update-light-hash function) ;; (function light-hash none) +;; (define-extern lookup-light-sphere-by-name function) ;; (function string light-hash light-sphere) +;; (define-extern light-hash-get-bucket-index function) ;; (function light-hash vector int) +;; (define-extern add-light-sphere-to-light-group function) ;; (function object object object object object) +;; (define-extern light-merge! function) +;; (define-extern light-group-scale! function) +;; (define-extern light-group-madd! function) +;; (define-extern light-group-lerp! function) +;; (define-extern shadow-info-copy! function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; generic-merc ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype invinitdata (structure) + ((count uint8 :offset-assert 0) + (init-data uint8 :offset-assert 1) + (init-addr uint16 :offset-assert 2) + ) + :method-count-assert 9 + :size-assert #x4 + :flag-assert #x900000004 + ) +|# + +;; (define-extern mercneric-vu0-block object) ;; vu-function +;; (define-extern *inv-init-table* object) ;; (inline-array invinitdata) +;; (define-extern generic-merc-init-asm function) ;; (function none) +;; (define-extern mercneric-matrix-asm function) +;; (define-extern mercneric-shader-asm function) +;; (define-extern mercneric-bittable-asm function) +;; (define-extern mercneric-convert function) +;; (define-extern high-speed-reject function) +;; (define-extern generic-translucent function) ;; (function gsf-buffer none) +;; (define-extern generic-merc-query function) +;; (define-extern generic-merc-death function) +;; (define-extern generic-merc-execute-asm function) +;; (define-extern generic-merc-do-chain function) ;; (function mercneric-chain dma-buffer pointer) +;; (define-extern generic-merc-execute-all function) ;; (function dma-buffer none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; dynamics-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype dynamics (basic) + ((name symbol :offset-assert 4) ;; guessed by decompiler + (gravity-max meters :offset-assert 8) + (gravity-length meters :offset-assert 12) + (gravity vector :inline :offset-assert 16) + (gravity-normal vector :inline :offset-assert 32) + (walk-distance meters :offset-assert 48) + (run-distance meters :offset-assert 52) + ) + :method-count-assert 10 + :size-assert #x38 + :flag-assert #xa00000038 + (:methods + (dynamics-method-9 () none) ;; 9 ;; (set-gravity-length (_type_ float) none 9) + ) + ) +|# + +;; (define-extern time-to-apex function) ;; (function float float int) +;; (define-extern time-to-ground function) ;; (function float float float int) +;; (define-extern *standard-dynamics* dynamics) ;; dynamics + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; shield-sphere ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype shield-sphere-heat (structure) + ((current-heat-value float :offset-assert 0) + (damage-scalar float :offset-assert 4) + (last-heat-time uint64 :offset-assert 8) + (distort-handle uint64 :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x18 + :flag-assert #x900000018 + ) +|# + +#| +(deftype shield-sphere-toggle (structure) + ((enable-time uint64 :offset-assert 0) + (disable-time uint64 :offset-assert 8) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype shield-sphere (process-focusable) + ((owner uint64 :offset-assert 208) + (sphere-size float :offset-assert 216) + (offset-vec vector :inline :offset-assert 224) + (enabled? basic :offset-assert 240) + (shield-type uint8 :offset-assert 244) + (track-joint int32 :offset-assert 248) + (heat-info shield-sphere-heat :inline :offset-assert 256) + (toggle-info shield-sphere-toggle :inline :offset-assert 256) + (last-attack-time uint64 :offset-assert 280) + (last-attack-id uint32 :offset-assert 288) + (persistent-attack-id uint32 :offset-assert 292) + ) + :method-count-assert 43 + :size-assert #x128 + :flag-assert #x2b00b00128 + (:methods + (shield-sphere-method-32 () none) ;; 32 + (shield-sphere-method-33 () none) ;; 33 + (shield-sphere-method-34 () none) ;; 34 + (shield-sphere-method-35 () none) ;; 35 + (shield-sphere-method-36 () none) ;; 36 + (shield-sphere-method-37 () none) ;; 37 + (shield-sphere-method-38 () none) ;; 38 + (shield-sphere-method-39 () none) ;; 39 + (shield-sphere-method-40 () none) ;; 40 + (shield-sphere-method-41 () none) ;; 41 + (shield-sphere-method-42 () none) ;; 42 + ) + (:state-methods + shield-enabled ;; 28 + shield-disabled ;; 29 + explode ;; 30 + die ;; 31 + ) + ) +|# + +#| +(deftype shield-sphere-spawn-params (structure) + ((offset-vec vector :inline :offset-assert 0) + (owner uint64 :offset-assert 16) + (sphere-size float :offset-assert 24) + (shield-type uint8 :offset-assert 28) + (track-joint int32 :offset-assert 32) + (enable-time uint64 :offset-assert 40) + (disable-time uint64 :offset-assert 48) + (shield-strength int8 :offset-assert 56) + (pad int16 :offset-assert 58) + ) + :method-count-assert 9 + :size-assert #x3c + :flag-assert #x90000003c + ) +|# + +#| +(deftype shield-sphere-distort (process-drawable) + ((owner uint64 :offset-assert 200) + (sphere-size float :offset-assert 208) + ) + :method-count-assert 23 + :size-assert #xd4 + :flag-assert #x17006000d4 + (:state-methods + die ;; 22 + distort ;; 21 + inactive ;; 20 + ) + ) +|# + +#| +(deftype shield-sphere-distort-spawn-params (structure) + ((owner uint64 :offset-assert 0) + (sphere-size float :offset-assert 8) + ) + :method-count-assert 9 + :size-assert #xc + :flag-assert #x90000000c + ) +|# + +;; (define-extern shield-sphere-distort-init-by-other function) +;; (define-extern *shield-sphere-exploder-params* joint-exploder-static-params) +;; (define-extern shield-sphere-init-by-other function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; decomp ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype huf-dictionary-node (structure) + ((zero uint16 :offset-assert 0) + (one uint16 :offset-assert 2) + ) + :method-count-assert 9 + :size-assert #x4 + :flag-assert #x900000004 + ) +|# + +;; (define-extern unpack-comp-rle function) ;; (function (pointer int8) (pointer int8) (pointer int8)) +;; (define-extern unpack-comp-huf function) ;; (function (pointer uint8) (pointer uint8) uint huf-dictionary-node none) +;; (define-extern unpack-comp-lzo function) ;; (function (pointer uint8) (pointer uint8) none) +;; (define-extern pack-comp-rle function) ;; (function (pointer uint8) (pointer uint8) int int (pointer uint8)) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; sky-data ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *sky-work* object) ;; sky-work +;; (define-extern sky-base-polygons object) ;; (inline-array sky-vertex) +;; (define-extern sky-roof-polygons object) ;; (inline-array sky-vertex) +;; (define-extern *cloud-vert-array* object) ;; cloud-vert-array +;; (define-extern *cloud-poly* object) ;; (inline-array sky-vertex) +;; (define-extern init-cloud-vert-array function) ;; (function symbol) +;; (define-extern *haze-vert-array* object) ;; haze-vert-array +;; (define-extern *haze-poly* object) ;; (inline-array sky-vertex) +;; (define-extern init-haze-vert-array function) ;; (function symbol) +;; (define-extern sky-make-sun-data function) ;; (function sky-work int float none) +;; (define-extern sky-make-moon-data function) ;; (function sky-work float none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; surface-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype surface (basic) + ((name symbol :offset-assert 4) ;; guessed by decompiler + (data float 30 :offset-assert 8) ;; guessed by decompiler + (turnv float :offset-assert 8) + (turnvf float :offset-assert 100) + (turnvv float :offset-assert 12) + (turnvvf float :offset-assert 104) + (tiltv float :offset-assert 16) + (tiltvf float :offset-assert 108) + (tiltvv float :offset-assert 20) + (tiltvvf float :offset-assert 112) + (vel-turn float :offset-assert 116) + (transv-max float :offset-assert 24) + (target-speed float :offset-assert 28) + (seek0 float :offset-assert 32) + (seek90 float :offset-assert 36) + (seek180 float :offset-assert 40) + (fric float :offset-assert 44) + (nonlin-fric-dist float :offset-assert 48) + (slip-factor float :offset-assert 52) + (slide-factor float :offset-assert 56) + (slope-up-factor float :offset-assert 60) + (slope-down-factor float :offset-assert 64) + (slope-slip-angle float :offset-assert 68) + (impact-fric float :offset-assert 72) + (bend-factor float :offset-assert 76) + (bend-speed float :offset-assert 80) + (alignv float :offset-assert 84) + (slope-up-traction float :offset-assert 88) + (align-speed float :offset-assert 92) + (slope-change-preserve float :offset-assert 96) + (hook function 5 :offset-assert 128) ;; guessed by decompiler + (active-hook (function none) :offset-assert 128) ;; guessed by decompiler + (touch-hook (function none) :offset-assert 132) ;; guessed by decompiler + (impact-hook (function control-info (pointer float) vector none) :offset-assert 136) ;; guessed by decompiler + (mult-hook (function surface surface surface int none) :offset-assert 140) ;; guessed by decompiler + (exit-hook function :offset-assert 144) ;; guessed by decompiler + (dataw uint32 2 :offset-assert 148) ;; guessed by decompiler + (mode symbol :offset-assert 148) ;; guessed by decompiler + (flags surface-flag :offset-assert 152) + ) + :method-count-assert 9 + :size-assert #x9c + :flag-assert #x90000009c + ) +|# + +;; (define-extern calc-terminal-vel function) ;; (function float float float float) +;; (define-extern calc-terminal2-vel function) ;; (function float float float float float) +;; (define-extern calc-terminal4-vel function) ;; (function float float float float) +;; (define-extern surface-interp! function) ;; (function surface surface surface float surface) +;; (define-extern surface-mult! function) ;; (function surface surface surface surface) +;; (define-extern surface-clamp-speed function) ;; (function surface surface surface int none) +;; (define-extern *walk-mods* surface) ;; surface +;; (define-extern *walk-no-turn-mods* surface) ;; surface +;; (define-extern *turn-around-mods* surface) ;; surface +;; (define-extern *jump-mods* surface) ;; surface +;; (define-extern *double-jump-mods* surface) ;; surface +;; (define-extern *smack-jump-mods* surface) ;; surface +;; (define-extern *high-jump-mods* surface) ;; surface +;; (define-extern *launch-jump-mods* surface) ;; surface +;; (define-extern *forward-high-jump-mods* surface) ;; surface +;; (define-extern *flip-jump-mods* surface) ;; surface +;; (define-extern *forward-jump-mods* surface) ;; surface +;; (define-extern *forward-pole-jump-mods* surface) ;; surface +;; (define-extern *dark-jump-mods* object) ;; surface +;; (define-extern *roll-mods* surface) ;; surface +;; (define-extern *roll-flip-mods* surface) ;; surface +;; (define-extern *flop-mods* surface) ;; surface +;; (define-extern *flop-land-mods* object) ;; surface +;; (define-extern *wade-mods* surface) ;; surface +;; (define-extern *swim-mods* surface) ;; surface +;; (define-extern *dive-mods* surface) ;; surface +;; (define-extern *dive-bottom-mods* surface) ;; surface +;; (define-extern *pole-mods* object) ;; surface +;; (define-extern *grab-mods* object) ;; surface +;; (define-extern *edge-grab-mods* object) ;; surface +;; (define-extern *empty-mods* surface) ;; surface +;; (define-extern *empty-mods-allow-gun* surface) +;; (define-extern *neutral-mods* surface) ;; surface +;; (define-extern *stone-surface* surface) ;; surface +;; (define-extern *mushroom-surface* surface) +;; (define-extern *gravel-surface* surface) ;; surface +;; (define-extern *edge-surface* surface) ;; surface +;; (define-extern *wade-surface* surface) ;; surface +;; (define-extern *quicksand-surface* surface) ;; surface +;; (define-extern *tar-surface* surface) ;; surface +;; (define-extern *ice-surface* surface) ;; surface +;; (define-extern *rail-surface* surface) ;; surface +;; (define-extern *standard-ground-surface* object) ;; surface +;; (define-extern *swim-surface* object) ;; surface + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; pat-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype pat-surface (uint32) + ((UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + ) + :method-count-assert 9 + :size-assert #x4 + :flag-assert #x900000004 + ) +|# + +#| +(deftype pat-mode-info (structure) + ((name string :offset-assert 0) ;; guessed by decompiler + (wall-angle float :offset-assert 4) + (color rgba :offset-assert 8) ;; guessed by decompiler + (hilite-color rgba :offset-assert 12) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +;; (define-extern pat-material->string function) ;; (function pat-surface string) +;; (define-extern pat-mode->string function) ;; (function pat-surface string) +;; (define-extern pat-event->string function) ;; (function pat-surface string) +;; (define-extern *pat-mode-info* object) ;; (inline-array pat-mode-info) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; fact-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype fact-bank (basic) + ((eco-level-max float :offset-assert 4) + (eco-single-inc float :offset-assert 8) + (eco-full-inc float :offset-assert 12) + (eco-single-timeout seconds :offset-assert 16) + (eco-full-timeout seconds :offset-assert 24) + (dummy seconds :offset-assert 32) + (health-max-default float :offset-assert 40) + (health-max-max float :offset-assert 44) + (health-small-inc float :offset-assert 48) + (health-single-inc float :offset-assert 52) + (health-default-inc float :offset-assert 56) + (health-darkjak-inc float :offset-assert 60) + (health-darkjak-min float :offset-assert 64) + (health-darkjak-error float :offset-assert 68) + (eco-pill-green-max-default float :offset-assert 72) + (eco-pill-dark-max-default float :offset-assert 76) + (eco-pill-light-max-default float :offset-assert 80) + (eco-green-max-default float :offset-assert 84) + (default-eco-pill-green-inc float :offset-assert 88) + (default-eco-pill-dark-inc float :offset-assert 92) + (default-eco-pill-light-inc float :offset-assert 96) + (buzzer-max-default float :offset-assert 100) + (buzzer-single-inc float :offset-assert 104) + (suck-bounce-dist meters :offset-assert 108) + (suck-suck-dist meters :offset-assert 112) + (ammo-yellow-max float :offset-assert 116) + (ammo-red-max float :offset-assert 120) + (ammo-blue-max float :offset-assert 124) + (ammo-dark-max float :offset-assert 128) + (ammo-yellow-start float :offset-assert 132) + (ammo-red-start float :offset-assert 136) + (ammo-blue-start float :offset-assert 140) + (ammo-dark-start float :offset-assert 144) + (shield-max float :offset-assert 148) + (shield-use-speed float :offset-assert 152) + (shield-time-min seconds :offset-assert 160) + (trick-point-max float :offset-assert 168) + (super-skill-inc float :offset-assert 172) + (lightjak-regen-inc float :offset-assert 176) + (lightjak-swoop-inc float :offset-assert 180) + (lightjak-freeze-inc float :offset-assert 184) + (lightjak-freeze-min float :offset-assert 188) + (lightjak-freeze-duration seconds :offset-assert 192) + (lightjak-shield-inc float :offset-assert 200) + (lightjak-shield-hit-inc float :offset-assert 204) + (darkjak-spin-inc float :offset-assert 208) + (darkjak-punch-inc float :offset-assert 212) + (darkjak-flop-inc float :offset-assert 216) + (darkjak-uppercut-inc float :offset-assert 220) + (darkjak-bomb0-inc float :offset-assert 224) + (darkjak-bomb1-inc float :offset-assert 228) + (darkjak-smack-inc float :offset-assert 232) + (darkjak-bomb-min float :offset-assert 236) + (darkjak-button-invis-inc float :offset-assert 240) + ) + :method-count-assert 9 + :size-assert #xf4 + :flag-assert #x9000000f4 + ) +|# + +#| +(deftype fact-info (basic) + ((process process :offset-assert 4) ;; guessed by decompiler + (pickup-amount float :offset-assert 12) + (pickup-spawn-amount float :offset-assert 16) + (options actor-option :offset-assert 24) + (fade-time uint64 :offset-assert 32) ;; time-frame + ) + :method-count-assert 12 + :size-assert #x28 + :flag-assert #xc00000028 + ;; field actor-option is likely a value type. + (:methods + ;; (new (symbol type process pickup-type float) _type_ 0) + (fact-info-method-9 () none) ;; 9 ;; (drop-pickup (_type_ symbol process-tree fact-info int) (pointer process) 9) + (fact-info-method-10 () none) ;; 10 ;; (reset! (_type_ symbol) none 10) + (fact-info-method-11 () none) ;; 11 ;; (pickup-collectable! (_type_ pickup-type float handle) float 11) + ) + ) +|# + +#| +(deftype fact-info-target (fact-info) + ((process process :offset-assert 0) ;; guessed by decompiler + (pickup-amount float :offset-assert 8) + (pickup-spawn-amount float :offset-assert 12) + (options actor-option :offset-assert 20) + (fade-time uint64 :offset-assert 28) ;; time-frame + (eco-type int32 :offset-assert 36) + (eco-level float :offset-assert 40) + (eco-pickup-time uint64 :offset-assert 44) ;; time-frame + (eco-timeout seconds :offset-assert 52) ;; time-frame + (eco-source uint64 :offset-assert 60) ;; handle + (eco-source-time uint64 :offset-assert 68) ;; time-frame + (health float :offset-assert 76) + (health-max float :offset-assert 80) + (health-pickup-time uint64 :offset-assert 84) ;; time-frame + (buzzer float :offset-assert 92) + (buzzer-max float :offset-assert 96) + (eco-pill-green float :offset-assert 100) + (eco-pill-green-max float :offset-assert 104) + (eco-pill-green-pickup-time uint64 :offset-assert 108) ;; time-frame + (eco-pill-dark-pickup-time uint64 :offset-assert 116) ;; time-frame + (eco-pill-light-pickup-time uint64 :offset-assert 124) + (money-pickup-time uint64 :offset-assert 132) ;; time-frame + (buzzer-pickup-time uint64 :offset-assert 140) ;; time-frame + (task-pickup-time uint64 :offset-assert 148) ;; time-frame + (stop-time-timeout uint64 :offset-assert 156) ;; time-frame + (darkjak-start-time uint64 :offset-assert 164) ;; time-frame + (darkjak-effect-time uint64 :offset-assert 172) ;; time-frame + (lightjak-start-time uint64 :offset-assert 180) + (lightjak-effect-time uint64 :offset-assert 188) + (ammo-pickup-time uint64 :offset-assert 196) ;; time-frame + (shield-pickup-time uint64 :offset-assert 204) ;; time-frame + (shield-start-time uint64 :offset-assert 212) ;; time-frame + (shield-use-time uint64 :offset-assert 220) ;; time-frame + (shield-level float :offset-assert 228) + (shield-attack-id uint32 :offset-assert 232) + (trick-point float :offset-assert 236) + (trick-point-pickup-time uint64 :offset-assert 244) ;; time-frame + (trick-point-start-time uint64 :offset-assert 252) ;; time-frame + (trick-point-duration uint64 :offset-assert 260) ;; time-frame + (gem-pickup-time uint64 :offset-assert 268) ;; time-frame + (skill-pickup-time uint64 :offset-assert 276) ;; time-frame + (karma-pickup-time uint64 :offset-assert 284) ;; time-frame + (eco-green float :offset-assert 292) + (eco-green-max float :offset-assert 296) + (eco-green-pickup-time uint64 :offset-assert 300) + ) + :method-count-assert 13 + :size-assert #x138 + :flag-assert #xd00000138 + ;; field actor-option is likely a value type. + (:methods + ;; (new (symbol type process-drawable pickup-type float) _type_ 0) + (fact-info-target-method-12 () none) ;; 12 ;; (get-gun-ammo (_type_) float 12) + ) + ) +|# + +#| +(deftype fact-info-enemy (fact-info) + ((process process :offset-assert 0) ;; guessed by decompiler + (pickup-amount float :offset-assert 8) + (pickup-spawn-amount float :offset-assert 12) + (options actor-option :offset-assert 20) + (fade-time uint64 :offset-assert 28) ;; time-frame + (speed float :offset-assert 36) + (idle-distance meters :offset-assert 40) + (notice-top meters :offset-assert 44) + (notice-bottom meters :offset-assert 48) + (cam-horz meters :offset-assert 52) + (cam-vert meters :offset-assert 56) + (cam-notice-dist meters :offset-assert 60) + (enemy-options enemy-option :offset-assert 64) + (trig-dist meters :offset-assert 68) + (trig-actor-group (pointer actor-group) :offset-assert 72) ;; guessed by decompiler + (trig-mask-count int8 :offset-assert 76) + (trig-mask uint8 2 :offset-assert 77) ;; guessed by decompiler + ) + :method-count-assert 13 + :size-assert #x53 + :flag-assert #xd00000053 + ;; field actor-option is likely a value type. + (:methods + ;; (new (symbol type process (pointer float) pickup-type float) _type_ 0) + (fact-info-enemy-method-12 () none) ;; 12 ;; (clear-mask-bits (_type_ int) none 12) + ) + ) +|# + +#| +(deftype fact-info-crate (fact-info) + ((process process :offset-assert 0) ;; guessed by decompiler + (pickup-amount float :offset-assert 8) + (pickup-spawn-amount float :offset-assert 12) + (options actor-option :offset-assert 20) + (fade-time uint64 :offset-assert 28) ;; time-frame + (suck-count int32 :offset-assert 36) + ) + :method-count-assert 12 + :size-assert #x2c + :flag-assert #xc0000002c + ;; field actor-option is likely a value type. + (:methods + ;; (new (symbol type process pickup-type float) _type_ 0) + ) + ) +|# + +#| +(deftype fact-info-enemy-defaults (basic) + ((idle-distance meters :offset-assert 4) + (pickup-type int32 :offset-assert 8) + (pickup-amount float :offset-assert 12) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +;; (define-extern *FACT-bank* fact-bank) ;; fact-bank +;; (define-extern pickup-type->string function) ;; (function pickup-type string) +;; (define-extern *fact-info-enemy-defaults* fact-info-enemy-defaults) ;; fact-info-enemy-defaults + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; aligner-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype align-control (basic) + ((flags align-flags :offset-assert 4) ;; guessed by decompiler + (process process-drawable :offset-assert 8) ;; guessed by decompiler + (frame-group art-joint-anim :offset-assert 12) ;; guessed by decompiler + (frame-num float :offset-assert 16) + (matrix matrix 2 :offset-assert 32) ;; guessed by decompiler + (transform transform 2 :offset-assert 160) ;; guessed by decompiler + (delta transformq :inline :offset-assert 256) + (last-speed meters :offset-assert 304) + (align transformq :inline :offset-assert 160) + ) + :method-count-assert 14 + :size-assert #x134 + :flag-assert #xe00000134 + (:methods + ;; (new (symbol type process) _type_ 0) + (align-control-method-9 () none) ;; 9 ;; (compute-alignment! (_type_) transformq 9) + (align-control-method-10 () none) ;; 10 ;; (align! (_type_ align-opts float float float) trsqv 10) + (align-control-method-11 () none) ;; 11 ;; (align-vel-and-quat-only! (_type_ align-opts vector int float float) trsqv 11) + (align-control-method-12 () none) ;; 12 ;; (first-transform (_type_) transform 12) + (align-control-method-13 () none) ;; 13 ;; (second-transform (_type_) transform 13) + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; find-nearest-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; penetrate-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern penetrate->string function) +;; (define-extern penetrate-using->damage function) ;; (function penetrate int) +;; (define-extern penetrated-by-all&hit-points->penetrated-by function) ;; (function penetrate int penetrate) +;; (define-extern pu->knocked-type function) ;; (function penetrate knocked-type) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; script-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype script-form (structure) + ((name symbol :offset-assert 0) ;; guessed by decompiler + (spec pair :offset-assert 4) ;; guessed by decompiler + (func (function script-context object) :offset-assert 8) ;; guessed by decompiler + ) + :method-count-assert 10 + :size-assert #xc + :flag-assert #xa0000000c + (:methods + (script-form-method-9 () none) ;; 9 ;; (script-form-method-9 () none 9) + ) + ) +|# + +#| +(deftype script-context (structure) + ((load-state load-state :offset-assert 0) ;; guessed by decompiler + (key object :offset-assert 4) ;; guessed by decompiler + (process process :offset-assert 8) ;; guessed by decompiler + (trans vector :offset-assert 12) + (side-effect? symbol :offset-assert 16) ;; guessed by decompiler + (got-error? symbol :offset-assert 20) ;; guessed by decompiler + (expr pair :offset-assert 24) ;; guessed by decompiler + (param-count int32 :offset-assert 28) + (param object 16 :offset-assert 32) ;; guessed by decompiler + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (param-type object 16 :offset-assert 96) ;; guessed by decompiler + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + ) + :method-count-assert 12 + :size-assert #xa0 + :flag-assert #xc000000a0 + ;; field key uses ~A with a signed load. field expr uses ~A with a signed load. + (:methods + ;; (new (symbol type object process vector) _type_ 0) + (script-context-method-9 () none) ;; 9 ;; (eval! (_type_ pair) object 9) + (script-context-method-10 () none) ;; 10 ;; (script-context-method-10 (_type_ object pair) object 10) + (script-context-method-11 () none) ;; 11 ;; (script-context-method-11 (_type_ pair pair symbol) symbol 11) + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; collide-debug ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype col-rend-filter (structure) + ((show-pat-set pat-surface :offset-assert 0) ;; guessed by decompiler + (show-pat-clear pat-surface :offset-assert 4) ;; guessed by decompiler + (event-mask uint32 :offset-assert 8) + ) + :method-count-assert 9 + :size-assert #xc + :flag-assert #x90000000c + ) +|# + +;; (define-extern col-rend-draw function) ;; (function col-rend col-rend-filter none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; progress-static ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype hud-scene-info (basic) + ((name string :offset-assert 4) ;; guessed by decompiler + (continue string :offset-assert 8) ;; guessed by decompiler + (info object :offset-assert 12) ;; guessed by decompiler + (text text-id :offset-assert 16) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x14 + :flag-assert #x900000014 + ;; field info uses ~A with a signed load. + ) +|# + +;; (define-extern *main-options* menu-option-list) ;; menu-option-list +;; (define-extern *main-options-debug* menu-option-list) ;; menu-option-list +;; (define-extern *main-kiosk-options* menu-option-list) ;; menu-option-list +;; (define-extern *main-demo-options* menu-option-list) ;; menu-option-list +;; (define-extern *main-demo-shared-options* menu-option-list) +;; (define-extern *title* menu-option-list) ;; menu-option-list +;; (define-extern *title-secret* menu-option-list) +;; (define-extern *unlocked-secrets* menu-option-list) ;; menu-option-list +;; (define-extern *options-options* menu-option-list) +;; (define-extern *language-options* menu-option-list) +;; (define-extern *game-options* menu-option-list) ;; menu-option-list +;; (define-extern *game-options-demo* menu-option-list) ;; menu-option-list +;; (define-extern *graphic-options* menu-option-list) ;; menu-option-list +;; (define-extern *graphic-title-options-pal* menu-option-list) ;; menu-option-list +;; (define-extern *sound-options* menu-option-list) ;; menu-option-list +;; (define-extern *picture-options* menu-option-list) +;; (define-extern *camera-options* menu-option-list) +;; (define-extern *quit-restart-options* menu-option-list) ;; menu-option-list +;; (define-extern *load-save-options* menu-option-list) ;; menu-option-list +;; (define-extern *save-options-title* menu-option-list) ;; menu-option-list +;; (define-extern *loading-options* menu-option-list) ;; menu-option-list +;; (define-extern *insufficient-space-options* menu-option-list) ;; menu-option-list +;; (define-extern *hero-mode-message-options* menu-option-list) +;; (define-extern *secrets-insufficient-space-options* menu-option-list) ;; menu-option-list +;; (define-extern *insert-card-options* menu-option-list) ;; menu-option-list +;; (define-extern *error-loading-options* menu-option-list) ;; menu-option-list +;; (define-extern *error-auto-saving-options* menu-option-list) ;; menu-option-list +;; (define-extern *card-removed-options* menu-option-list) ;; menu-option-list +;; (define-extern *error-disc-removed-options* menu-option-list) ;; menu-option-list +;; (define-extern *error-reading-options* menu-option-list) ;; menu-option-list +;; (define-extern *icon-info-options* menu-option-list) ;; menu-option-list +;; (define-extern *format-card-options* menu-option-list) ;; menu-option-list +;; (define-extern *already-exists-options* menu-option-list) ;; menu-option-list +;; (define-extern *create-game-options* menu-option-list) ;; menu-option-list +;; (define-extern *video-mode-warning-options* menu-option-list) ;; menu-option-list +;; (define-extern *video-mode-ok-options* menu-option-list) ;; menu-option-list +;; (define-extern *progressive-mode-warning-options* menu-option-list) ;; menu-option-list +;; (define-extern *progressive-mode-ok-options* menu-option-list) ;; menu-option-list +;; (define-extern *select-start-options* menu-option-list) ;; menu-option-list +;; (define-extern *select-scene-options* menu-option-list) ;; menu-option-list +;; (define-extern *bigmap-options* menu-option-list) ;; menu-option-list +;; (define-extern *missions-options* menu-option-list) ;; menu-option-list +;; (define-extern *highscores-options* menu-option-list) ;; menu-option-list +;; (define-extern *controls-options* menu-option-list) +;; (define-extern *secret-options* menu-option-list) ;; menu-option-list +;; (define-extern *language-name-remap* array) ;; (array text-id) +;; (define-extern *audio-language-remap* array) +;; (define-extern *stereo-mode-name-remap* array) ;; (array text-id) +;; (define-extern *hud-ring-graphic-remap* array) ;; (array uint64) +;; (define-extern *hud-ring-kiosk-graphic-remap* array) ;; (array uint64) +;; (define-extern *hud-ring-demo-graphic-remap* array) ;; (array uint64) +;; (define-extern *hud-ring-demo-shared-graphic-remap* array) +;; (define-extern *hud-select-scene-act1* array) ;; (array hud-scene-info) +;; (define-extern *hud-select-scene-act2* array) ;; (array hud-scene-info) +;; (define-extern *hud-select-scene-act3* array) ;; (array hud-scene-info) +;; (define-extern *hud-select-scene-commentary* array) +;; (define-extern *progress-icon-arrays* array) +;; (define-extern *inventory* menu-option-list) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; title-obs ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype title-control (process) + ((selected int32 :offset-assert 124) + (sprites hud-sprite 2 :offset-assert 140) ;; guessed by decompiler + (sprite-pos vector :inline :offset-assert 268) + (sprite-draw uint32 :offset-assert 284) + (buffer external-art-buffer 2 :offset-assert 288) ;; guessed by decompiler + (want int32 2 :offset-assert 296) ;; guessed by decompiler + (want-name string 2 :offset-assert 304) ;; guessed by decompiler + (have int32 2 :offset-assert 312) ;; guessed by decompiler + (draw int32 :offset-assert 320) + (draw-name string :offset-assert 324) ;; guessed by decompiler + (active symbol :offset-assert 328) ;; guessed by decompiler + (spark-time uint64 :offset-assert 332) ;; time-frame + (gui-id sound-id :offset-assert 340) ;; guessed by decompiler + (logo uint32 :offset-assert 344) + ) + :method-count-assert 19 + :size-assert #x160 + :flag-assert #x1300e00160 + (:state-methods + startup ;; 14, old: (startup () _type_ :state 14) + wait ;; 15, old: (wait () _type_ :state 15) + idle ;; 16, old: (idle () _type_ :state 16) + scrap-book ;; 17, old: (scrap-book (int) _type_ :state 17) + control-spec ;; 18 + ) + ) +|# + +#| +(deftype museum-char (structure) + ((skel basic :offset-assert 0) + (anim uint32 :offset-assert 4) + (height-min float :offset-assert 8) + (height-max float :offset-assert 12) + (zoom-min float :offset-assert 16) + (zoom-max float :offset-assert 20) + (scale float :offset-assert 24) + (text-id uint32 :offset-assert 28) + (cloth-reset-time uint64 :offset-assert 32) + (use-orient-cloth-reset? basic :offset-assert 40) + (outtake-num uint32 :offset-assert 44) + (outtake basic :offset-assert 48) + ) + :method-count-assert 9 + :size-assert #x34 + :flag-assert #x900000034 + ) +|# + +#| +(deftype hirez-viewer (process-drawable) + ((angley float :offset-assert 200) + (anglex float :offset-assert 204) + (updown float :offset-assert 208) + (zoom float :offset-assert 212) + (char museum-char :offset-assert 216) + (pos-x float :offset-assert 220) + (dest-pos-x float :offset-assert 224) + (alpha float :offset-assert 228) + (cloth-reset-time uint64 :offset-assert 232) + (use-orient-cloth-reset? basic :offset-assert 240) + (id uint32 :offset-assert 244) + (credits basic :offset-assert 248) + ) + :method-count-assert 21 + :size-assert #xfc + :flag-assert #x15008000fc + (:state-methods + idle ;; 20 + ) + ) +|# + +#| +(deftype highres-viewer-manager (process) + ((current int32 :offset-assert 128) + (next int32 :offset-assert 132) + (handle uint64 :offset-assert 136) + (left-right basic :offset-assert 144) + (museum basic :offset-assert 148) + (next-time uint64 :offset-assert 152) + ) + :method-count-assert 16 + :size-assert #xa0 + :flag-assert #x10002000a0 + (:state-methods + idle ;; 14 + credits ;; 15 + ) + ) +|# + +;; (define-extern title-screen-change function) ;; (function string int string int symbol symbol none :behavior title-control) +;; (define-extern wait-for-press function) ;; (function time-frame time-frame symbol symbol) +;; (define-extern direction-press function) +;; (define-extern title-menu function) ;; (function object :behavior title-control) +;; (define-extern title-fade-out function) ;; (function float none) +;; (define-extern title-progress function) ;; (function symbol none) +;; (define-extern *scrap-book-1* array) +;; (define-extern *scrap-book-2* array) +;; (define-extern title-control-init function) ;; (function none :behavior title-control) +;; (define-extern hirez-viewer-init-by-other function) +;; (define-extern spawn-hirez-viewer function) +;; (define-extern *museum-1* array) +;; (define-extern *museum-2* array) +;; (define-extern *museum-3* array) +;; (define-extern hvm-init-by-other function) +;; (define-extern spawn-hirez-viewer-manager function) +;; (define-extern draw-end-credits function) ;; (function level float symbol) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; scene-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype scene-actor (basic) + ((name string :offset-assert 4) ;; guessed by decompiler + (level symbol :offset-assert 8) ;; guessed by decompiler + (art-group string :offset-assert 12) ;; guessed by decompiler + (prefix string :offset-assert 16) ;; guessed by decompiler + (draw-frames pair :offset-assert 20) ;; guessed by decompiler + (scissor-frames pair :offset-assert 24) ;; guessed by decompiler + (shadow-frames basic :offset-assert 28) + (cloth-reset-frames basic :offset-assert 32) + (cloth-commands basic :offset-assert 36) + (camera int16 :offset-assert 40) + (light-index uint8 :offset-assert 42) + (shadow-mask uint8 :offset-assert 43) + (shadow-values uint32 :offset-assert 44) + (flags uint32 :offset-assert 48) + (command-list basic :offset-assert 52) + (shadow-flags int32 :offset-assert 56) + (shadow-volume-joint basic :offset-assert 60) + (draw-seg uint64 :offset-assert 64) + (no-draw-seg uint64 :offset-assert 72) + (last-frame float :offset-assert 80) + (process uint64 :offset-assert 88) ;; handle + ) + :method-count-assert 10 + :size-assert #x60 + :flag-assert #xa00000060 + (:methods + (scene-actor-method-9 () none) ;; 9 ;; (scene-actor-method-9 (_type_ scene-player) (pointer process) 9) + ) + ) +|# + +#| +(deftype scene (art-group) + ((name string :offset-assert 8) ;; guessed by decompiler + (length int32 :offset-assert 12) + (extra res-lump :offset-assert 16) ;; guessed by decompiler + (info file-info :offset-assert 4) ;; guessed by decompiler + (data art-element :dynamic :offset-assert 32) ;; guessed by decompiler + (scene-flags uint32 :offset-assert 32) + (mask-to-clear process-mask :offset-assert 36) ;; guessed by decompiler + (entity string :offset-assert 40) ;; guessed by decompiler + (art-group string :offset-assert 44) ;; guessed by decompiler + (anim string :offset-assert 48) ;; guessed by decompiler + (parts int32 :offset-assert 52) + (command-list pair :offset-assert 56) ;; guessed by decompiler + (cut-list pair :offset-assert 60) ;; guessed by decompiler + (wait-max-time uint64 :offset-assert 64) ;; time-frame + (wait-air-time uint64 :offset-assert 72) ;; time-frame + (wait-ground-time uint64 :offset-assert 80) ;; time-frame + (actor (array scene-actor) :offset-assert 88) ;; guessed by decompiler + (load-point continue-point :offset-assert 92) ;; guessed by decompiler + (end-point continue-point :offset-assert 96) ;; guessed by decompiler + (borrow pair :offset-assert 100) ;; guessed by decompiler + (sfx-volume float :offset-assert 104) + (ambient-volume float :offset-assert 108) + (music-volume float :offset-assert 112) + (music-delay float :offset-assert 116) + (scene-task uint16 :offset-assert 120) + (on-running basic :offset-assert 124) + (on-complete basic :offset-assert 128) + ) + :method-count-assert 18 + :size-assert #x84 + :flag-assert #x1200000084 + ;; field on-running uses ~A with a signed load. field on-complete uses ~A with a signed load. + (:methods + (scene-method-16 () none) ;; 16 ;; (scene-method-16 (_type_) _type_ 16) + (scene-method-17 () none) ;; 17 + ) + ) +|# + +#| +(deftype scene-player (process-drawable) + ((scene-list (array scene) :offset-assert 200) ;; guessed by decompiler + (scene scene :offset-assert 204) ;; guessed by decompiler + (scene-index int32 :offset-assert 208) + (anim spool-anim :offset-assert 212) ;; guessed by decompiler + (next-anim spool-anim :offset-assert 216) ;; guessed by decompiler + (camera uint64 :offset-assert 224) ;; handle + (main-entity entity-actor :offset-assert 232) ;; guessed by decompiler + (wait symbol :offset-assert 236) ;; guessed by decompiler + (old-target-pos transformq :inline :offset-assert 240) + (pre-cut-frame basic :offset-assert 288) + (preload-continue string :offset-assert 292) ;; guessed by decompiler + (preload-sound basic :offset-assert 296) + (dma-max uint32 :offset-assert 300) + (gui-id sound-id :offset-assert 304) ;; guessed by decompiler + (aborted? symbol :offset-assert 308) ;; guessed by decompiler + (scene-start-time uint64 :offset-assert 312) ;; time-frame + (targ-speed float :offset-assert 320) + (cur-speed float :offset-assert 324) + (speed-change-time uint64 :offset-assert 328) ;; time-frame + (speed-press-time uint64 :offset-assert 336) ;; time-frame + (speed-change-speed float :offset-assert 344) + (subtitle-change-time uint64 :offset-assert 352) ;; time-frame + (user-sound sound-id 4 :offset-assert 360) ;; guessed by decompiler + (last-frame float :offset-assert 376) + (end-point basic :offset-assert 380) + (blackout-end basic :offset-assert 384) + (new-trans-hook basic :offset-assert 388) + (cur-trans-hook basic :offset-assert 392) + (user-data uint64 :offset-assert 400) + ) + :method-count-assert 26 + :size-assert #x198 + :flag-assert #x1a01200198 + ;; field user-data uses ~A with a 64-bit load. + (:methods + (scene-player-method-20 () none) ;; 20 ;; (wait (symbol) _type_ :state 20) + (scene-player-method-21 () none) ;; 21 ;; (release () _type_ :state 21) + (scene-player-method-22 () none) ;; 22 ;; (play-anim () _type_ :state 22) + (scene-player-method-23 () none) ;; 23 ;; (scene-player-method-23 (_type_ string symbol) none 23) + (scene-player-method-24 () none) ;; 24 ;; (scene-player-method-24 (_type_ basic symbol) scene 24) + (scene-player-method-25 () none) ;; 25 ;; (scene-player-method-25 (_type_ float) none 25) + ) + ) +|# + +;; (define-extern *scene-player* object) ;; (pointer scene-player) +;; (define-extern *debug-menu-scene-play* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; kleever-rider ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype kleever-rider (process-focusable) + ((vehicle uint64 :offset-assert 208) + (speech-time uint64 :offset-assert 216) + (accel vector :inline :offset-assert 224) + (accel-factor vector :inline :offset-assert 240) + (front-back-interp float :offset-assert 256) + (left-right-interp float :offset-assert 260) + (up-down-interp float :offset-assert 264) + ) + :method-count-assert 30 + :size-assert #x10c + :flag-assert #x1e0090010c + (:state-methods + idle ;; 28 + die ;; 29 + ) + ) +|# + +#| +(deftype wland-driver (process-focusable) + ((vehicle uint64 :offset-assert 208) + (accel vector :inline :offset-assert 224) + (accel-factor vector :inline :offset-assert 240) + (front-back-interp float :offset-assert 256) + (left-right-interp float :offset-assert 260) + (up-down-interp float :offset-assert 264) + ) + :method-count-assert 30 + :size-assert #x10c + :flag-assert #x1e0090010c + (:state-methods + idle ;; 28 + die ;; 29 + ) + ) +|# + +;; (define-extern kleever-pilot-trans function) +;; (define-extern kleever-pilot-wcar-anim-loop function) +;; (define-extern kleever-rider-init-by-other function) +;; (define-extern kleever-rider-spawn function) +;; (define-extern wland-driver-pilot-trans function) +;; (define-extern wland-driver-pilot-wcar-anim-loop function) +;; (define-extern wland-driver-init-by-other function) +;; (define-extern wland-driver-spawn function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; collide-hash ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern add-collide-debug-box function) ;; (function vector rgba none) +;; (define-extern print-collide-cache-tri-count function) ;; (function none) +;; (define-extern print-exceeded-max-cache-tris function) ;; (function none) +;; (define-extern fill-bg-using-box-new function) ;; (function collide-cache object collide-query none) +;; (define-extern fill-bg-using-line-sphere-new function) ;; (function collide-cache object collide-query none) +;; (define-extern collide-list-fill-bg-using-box function) ;; (function collide-cache collide-list collide-query none) +;; (define-extern collide-list-fill-bg-using-line-sphere function) ;; (function collide-cache collide-list collide-query none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; sync-info-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype sync-info-params (structure) + ((sync-type symbol :offset-assert 0) ;; guessed by decompiler + (sync-flags uint64 :offset-assert 8) ;; sync-flags + (entity basic :offset-assert 16) + (period uint32 :offset-assert 20) + (percent float :offset-assert 24) + (ease-in float :offset-assert 28) + (ease-out float :offset-assert 32) + (pause-in float :offset-assert 36) + (pause-out float :offset-assert 40) + ) + :method-count-assert 9 + :size-assert #x2c + :flag-assert #x90000002c + ) +|# + +#| +(deftype sync-info (structure) + ((sync-flags uint64 :offset-assert 0) ;; sync-flags + (offset float :offset-assert 8) + (period uint32 :offset-assert 12) + ) + :method-count-assert 16 + :size-assert #x10 + :flag-assert #x1000000010 + (:methods + (sync-info-method-9 () none) ;; 9 ;; (get-current-phase-no-mod (_type_) float 9) + (sync-info-method-10 () none) ;; 10 ;; (get-phase-offset (_type_) float 10) + (sync-info-method-11 () none) ;; 11 ;; (get-norm! (_type_ int) float 11) + (sync-info-method-12 () none) ;; 12 ;; (get-scaled-val! (_type_ float int) float 12) + (sync-info-method-13 () none) ;; 13 ;; (initialize! (_type_ sync-info-params) none 13) + (sync-info-method-14 () none) ;; 14 ;; (get-timeframe-offset! (_type_ time-frame) time-frame 14) + (sync-info-method-15 () none) ;; 15 ;; (sync-now! (_type_ float) none 15) + ) + ) +|# + +#| +(deftype sync-linear (sync-info) + () + :method-count-assert 16 + :size-assert #x10 + :flag-assert #x1000000010 + ) +|# + +#| +(deftype sync-eased (sync-info) + ((tlo float :offset-assert 16) + (thi float :offset-assert 20) + (ylo float :offset-assert 24) + (m2 float :offset-assert 28) + (yend float :offset-assert 32) + (pause-in float :offset-assert 36) + (pause-out float :offset-assert 40) + ) + :method-count-assert 16 + :size-assert #x2c + :flag-assert #x100000002c + ) +|# + +#| +(deftype sync-paused (sync-info) + ((pause-in float :offset-assert 16) + (pause-out float :offset-assert 20) + ) + :method-count-assert 16 + :size-assert #x18 + :flag-assert #x1000000018 + ) +|# + +#| +(deftype delayed-rand-float (structure) + ((min-time int32 :offset-assert 0) + (max-time int32 :offset-assert 4) + (max-val float :offset-assert 8) + (timer int32 :offset-assert 12) + (start-time uint64 :offset-assert 16) ;; time-frame + (value float :offset-assert 24) + ) + :method-count-assert 13 + :size-assert #x1c + :flag-assert #xd0000001c + (:methods + (delayed-rand-float-method-9 () none) ;; 9 ;; (set-params! (_type_ int int float) float 9) + (delayed-rand-float-method-10 () none) ;; 10 ;; (reset! (_type_) float 10) + (delayed-rand-float-method-11 () none) ;; 11 ;; (update! (_type_) float 11) + (delayed-rand-float-method-12 () none) ;; 12 ;; (update-and-clear! (_type_) none 12) + ) + ) +|# + +#| +(deftype oscillating-float (structure) + ((value float :offset-assert 0) + (target float :offset-assert 4) + (vel float :offset-assert 8) + (max-vel float :offset-assert 12) + (damping float :offset-assert 16) + (accel float :offset-assert 20) + ) + :method-count-assert 11 + :size-assert #x18 + :flag-assert #xb00000018 + (:methods + (oscillating-float-method-9 () none) ;; 9 ;; (set-params! (_type_ float float float float) float 9) + (oscillating-float-method-10 () none) ;; 10 ;; (update! (_type_ float) float 10) + ) + ) +|# + +#| +(deftype bouncing-float (structure) + ((osc oscillating-float :inline :offset-assert 0) + (max-value float :offset-assert 24) + (min-value float :offset-assert 28) + (elasticity float :offset-assert 32) + (state int32 :offset-assert 36) + ) + :method-count-assert 13 + :size-assert #x28 + :flag-assert #xd00000028 + (:methods + (bouncing-float-method-9 () none) ;; 9 ;; (set-params! (_type_ float float float float float float float) float 9) + (bouncing-float-method-10 () none) ;; 10 ;; (update! (_type_ float) float 10) + (bouncing-float-method-11 () none) ;; 11 ;; (at-min? (_type_) symbol 11) + (bouncing-float-method-12 () none) ;; 12 ;; (at-max? (_type_) symbol 12) + ) + ) +|# + +#| +(deftype delayed-rand-vector (structure) + ((min-time int32 :offset-assert 0) + (max-time int32 :offset-assert 4) + (xz-max float :offset-assert 8) + (y-max float :offset-assert 12) + (timer int32 :offset-assert 16) + (start-time uint64 :offset-assert 24) ;; time-frame + (value vector :inline :offset-assert 32) + ) + :method-count-assert 13 + :size-assert #x30 + :flag-assert #xd00000030 + (:methods + (delayed-rand-vector-method-9 () none) ;; 9 ;; (set-params! (_type_ int int float float) vector 9) + (delayed-rand-vector-method-10 () none) ;; 10 ;; (update-now! (_type_) vector 10) + (delayed-rand-vector-method-11 () none) ;; 11 ;; (update-with-delay! (_type_) vector 11) + (delayed-rand-vector-method-12 () none) ;; 12 ;; (update-with-delay-or-reset! (_type_) vector 12) + ) + ) +|# + +#| +(deftype oscillating-vector (structure) + ((value vector :inline :offset-assert 0) + (target vector :inline :offset-assert 16) + (vel vector :inline :offset-assert 32) + (max-vel float :offset-assert 48) + (damping float :offset-assert 52) + (accel float :offset-assert 56) + ) + :method-count-assert 11 + :size-assert #x3c + :flag-assert #xb0000003c + (:methods + (oscillating-vector-method-9 () none) ;; 9 ;; (set-params! (_type_ vector float float float) vector 9) + (oscillating-vector-method-10 () none) ;; 10 ;; (update! (_type_ vector) vector 10) + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; volcano-texture ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *volcanoa-alpha-texture-anim-array* texture-anim-array) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; comb-obs ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype comb-elevator (elevator) + () + :method-count-assert 52 + :size-assert #x1a0 + :flag-assert #x34012001a0 + ) +|# + +#| +(deftype comb-pillar (process-focusable) + ((center-pos vector :inline :offset-assert 208) + (attack-vel vector :inline :offset-assert 224) + (exploder-params basic :offset-assert 240) + (exploder-skel basic :offset-assert 244) + (exploder-anim uint32 :offset-assert 248) + (hit-points float :offset-assert 252) + (incoming-attack-id int32 :offset-assert 256) + ) + :method-count-assert 36 + :size-assert #x104 + :flag-assert #x2400900104 + (:methods + (comb-pillar-method-30 () none) ;; 30 + (comb-pillar-method-31 () none) ;; 31 + (comb-pillar-method-32 () none) ;; 32 + (comb-pillar-method-33 () none) ;; 33 + (comb-pillar-method-34 () none) ;; 34 + (comb-pillar-method-35 () none) ;; 35 + ) + (:state-methods + idle ;; 28 + explode ;; 29 + ) + ) +|# + +#| +(deftype comb-block (process-focusable) + ((attack-vel vector :inline :offset-assert 208) + (exploder-params basic :offset-assert 224) + (exploder-skel basic :offset-assert 228) + (exploder-anim uint32 :offset-assert 232) + (hit-points float :offset-assert 236) + (incoming-attack-id int32 :offset-assert 240) + (parts UNKNOWN 4 :offset-assert 244) + ) + :method-count-assert 36 + :size-assert #x104 + :flag-assert #x2400900104 + (:methods + (comb-block-method-30 () none) ;; 30 + (comb-block-method-31 () none) ;; 31 + (comb-block-method-32 () none) ;; 32 + (comb-block-method-33 () none) ;; 33 + (comb-block-method-34 () none) ;; 34 + (comb-block-method-35 () none) ;; 35 + ) + (:state-methods + idle ;; 28 + explode ;; 29 + ) + ) +|# + +#| +(deftype comb-energy-ring (process-focusable) + ((speed float :offset-assert 208) + (hum-id uint32 :offset-assert 212) + (bolt basic :offset-assert 216) + (shocked-player basic :offset-assert 220) + ) + :method-count-assert 34 + :size-assert #xe0 + :flag-assert #x22006000e0 + (:methods + (comb-energy-ring-method-29 () none) ;; 29 + (comb-energy-ring-method-30 () none) ;; 30 + (comb-energy-ring-method-31 () none) ;; 31 + (comb-energy-ring-method-32 () none) ;; 32 + (comb-energy-ring-method-33 () none) ;; 33 + ) + (:state-methods + idle ;; 28 + ) + ) +|# + +#| +(deftype comb-turbo (process-drawable) + ((touch-time uint64 :offset-assert 200) + (player-got basic :offset-assert 208) + (boost float :offset-assert 212) + (plane vector :inline :offset-assert 224) + (mat matrix :inline :offset-assert 240) + ) + :method-count-assert 25 + :size-assert #x130 + :flag-assert #x1900b00130 + (:methods + (comb-turbo-method-22 () none) ;; 22 + (comb-turbo-method-23 () none) ;; 23 + (comb-turbo-method-24 () none) ;; 24 + ) + (:state-methods + idle ;; 20 + die ;; 21 + ) + ) +|# + +#| +(deftype task-manager-lightjak-training-shield (task-manager) + ((gui-id uint32 :offset-assert 240) + ) + :method-count-assert 33 + :size-assert #xf4 + :flag-assert #x21008000f4 + (:methods + (task-manager-lightjak-training-shield-method-32 () none) ;; 32 + ) + (:state-methods + active ;; 15 + ) + ) +|# + +;; (define-extern *comb-pillar-explode-params* joint-exploder-static-params) +;; (define-extern *comb-block-explode-params* joint-exploder-static-params) +;; (define-extern *comb-energy-ring-lightning-width* curve2d-fast) +;; (define-extern *comb-energy-ring-lightning* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; mh-flyer ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype mh-flyer-shot (projectile) + ((tail-pos vector :inline :offset-assert 512) + (hit-pos vector :inline :offset-assert 528) + (turn-quat quaternion :inline :offset-assert 544) + (minimap connection-minimap :offset-assert 560) + (hit-actor? basic :offset-assert 564) + (last-hit-time uint64 :offset-assert 568) + (snd-whoosh uint32 :offset-assert 576) + (muzzle-flash-part basic :offset-assert 580) + (particle-trail basic :offset-assert 584) + ) + :method-count-assert 41 + :size-assert #x24c + :flag-assert #x2901d0024c + (:state-methods + impact ;; 22 + dissipate ;; 21 + ) + ) +|# + +#| +(deftype mh-flyer (enemy) + ((rotation-matrix matrix :inline :offset-assert 560) + (move-curve cubic-curve :inline :offset-assert 624) + (init-pos vector :inline :offset-assert 688) + (move-dest vector :inline :offset-assert 704) + (target-velocity vector :inline :offset-assert 720) + (focus-bullseye-pos vector :inline :offset-assert 736) + (focus-xz-dir vector :inline :offset-assert 752) + (minimap connection-minimap :offset-assert 768) + (des-path desbeast-path :offset-assert 772) + (manager uint64 :offset-assert 776) + (path-pos uint32 :offset-assert 784) + (bank-angle float :offset-assert 788) + (pitch-angle float :offset-assert 792) + (missiles-fired int32 :offset-assert 796) + (last-fire-time uint64 :offset-assert 800) + (last-player-screech uint64 :offset-assert 808) + (jitter float :offset-assert 816) + ) + :method-count-assert 159 + :size-assert #x334 + :flag-assert #x9f02c00334 + (:methods + (mh-flyer-method-157 () none) ;; 157 + (mh-flyer-method-158 () none) ;; 158 + ) + (:state-methods + orbiting ;; 155 + on-path ;; 156 + die ;; 40 + ) + ) +|# + +;; (define-extern *mh-flyer-curve-linear-up-red* object) +;; (define-extern *mh-flyer-trail-color-curve-missile* curve-color-fast) +;; (define-extern *mh-flyer-curve-missile-linear-trail* curve2d-fast) +;; (define-extern *mh-flyer-missile-trail* object) +;; (define-extern mh-flyer-shot-move function) +;; (define-extern *mh-flyer-shadow-control* shadow-control) +;; (define-extern *mh-flyer-enemy-info* enemy-info) +;; (define-extern mh-flyer-fly-post function) +;; (define-extern get-interp-mod-time function) +;; (define-extern mh-flyer-init-by-other function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; pov-camera-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype pov-camera (process-drawable) + ((flags int32 :offset-assert 200) ;; pov-camera-flag + (debounce-start-time uint64 :offset-assert 208) ;; time-frame + (notify-handle uint64 :offset-assert 216) ;; handle + (anim-name string :offset-assert 224) ;; guessed by decompiler + (command-list pair :offset-assert 228) ;; guessed by decompiler + (mask-to-clear process-mask :offset-assert 232) ;; guessed by decompiler + (music-volume-movie float :offset-assert 236) + (sfx-volume-movie float :offset-assert 240) + ) + :method-count-assert 30 + :size-assert #xf4 + :flag-assert #x1e008000f4 + (:methods + (pov-camera-method-20 () none) ;; 20 ;; (pov-camera-abort () _type_ :state 20) + (pov-camera-method-21 () none) ;; 21 ;; (pov-camera-done-playing () _type_ :state 21) + (pov-camera-method-22 () none) ;; 22 ;; (pov-camera-playing () _type_ :state 22) + (pov-camera-method-23 () none) ;; 23 ;; (pov-camera-start-playing () _type_ :state 23) + (pov-camera-method-24 () none) ;; 24 ;; (pov-camera-startup () _type_ :state 24) + (pov-camera-method-25 () none) ;; 25 ;; (abort? (_type_) symbol 25) + (pov-camera-method-26 () none) ;; 26 ;; (target-grabbed? (_type_) symbol 26) + (pov-camera-method-27 () none) ;; 27 ;; (pov-camera-method-27 () none 27) + (pov-camera-method-28 () none) ;; 28 ;; (pov-camera-method-28 () none 28) + (pov-camera-method-29 () none) ;; 29 ;; (target-released? (_type_) symbol 29) + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; gun-blue-shot ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype gun-blue-shot-3 (projectile) + ((hit-actor? basic :offset-assert 512) + (start-pos vector :inline :offset-assert 528) + (track-mode uint64 :offset-assert 544) + (random-travel-distance float :offset-assert 552) + ) + :method-count-assert 41 + :size-assert #x22c + :flag-assert #x2901b0022c + (:state-methods + dissipate ;; 21 + impact ;; 22 + ) + ) +|# + +#| +(deftype dist-dot-val (structure) + ((dot float :offset-assert 0) + (dist float :offset-assert 4) + (current-dir-vec vector :inline :offset-assert 16) + (vec-to-target vector :inline :offset-assert 32) + ) + :method-count-assert 9 + :size-assert #x30 + :flag-assert #x900000030 + ) +|# + +#| +(deftype light-trail-tracker-blue-3 (light-trail-tracker-projectile) + () + :method-count-assert 22 + :size-assert #xb8 + :flag-assert #x16004000b8 + ) +|# + +#| +(deftype target-quality-info (structure) + ((targ uint64 :offset-assert 0) + (value float :offset-assert 8) + ) + :method-count-assert 9 + :size-assert #xc + :flag-assert #x90000000c + ) +|# + +#| +(deftype timeframe-wrapper (structure) + ((time uint64 :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +#| +(deftype gun-blue-2-lightning-info (structure) + ((pts UNKNOWN 32 :offset-assert 0) + (num-pts int8 :offset-assert 512) + (should-draw-terminal-sparks? basic :offset-assert 516) + (terminal-spark-pos vector :inline :offset-assert 528) + (should-draw-extension? basic :offset-assert 544) + (extension-end-point vector :inline :offset-assert 560) + ) + :method-count-assert 9 + :size-assert #x240 + :flag-assert #x900000240 + ) +|# + +#| +(deftype gun-blue-lightning-command (structure) + ((msg uint64 :offset-assert 0) + (lightning-info gun-blue-2-lightning-info :inline :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x250 + :flag-assert #x900000250 + ) +|# + +#| +(deftype gun-blue-2-lightning-tracker (process-drawable) + ((lt-array basic :offset-assert 200) + (should-draw-this-frame? basic :offset-assert 204) + (last-spark-time uint64 :offset-assert 216) + (spark-time-interval uint64 :offset-assert 224) + (last-deduct-ammo-time uint64 :offset-assert 232) + (snd-lightning uint32 :offset-assert 240) + (active-enter-time uint64 :offset-assert 248) + (revolve-angle float :offset-assert 256) + (sway-angle float :offset-assert 260) + (snd-spin uint32 :offset-assert 264) + (spin-intensity float :offset-assert 268) + (prev-targ-pos vector :inline :offset-assert 272) + (last-probe-index int16 :offset-assert 288) + ) + :method-count-assert 27 + :size-assert #x122 + :flag-assert #x1b00b00122 + (:methods + (gun-blue-2-lightning-tracker-method-24 () none) ;; 24 + (gun-blue-2-lightning-tracker-method-25 () none) ;; 25 + (gun-blue-2-lightning-tracker-method-26 () none) ;; 26 + ) + (:state-methods + die ;; 22 + inactive ;; 21 + active ;; 20 + test ;; 23 + ) + ) +|# + +#| +(deftype gun-blue-2-target-info (structure) + ((target uint64 :offset-assert 0) + (start-time uint64 :offset-assert 8) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype constraint-knot (structure) + ((pt vector :inline :offset-assert 0) + (dir vector :inline :offset-assert 16) + (length float :offset-assert 32) + ) + :method-count-assert 9 + :size-assert #x24 + :flag-assert #x900000024 + ) +|# + +#| +(deftype rope-constraint (structure) + ((constraints UNKNOWN 12 :offset-assert 0) + (num-knots uint8 :offset-assert 576) + ) + :method-count-assert 10 + :size-assert #x241 + :flag-assert #xa00000241 + (:methods + (rope-constraint-method-9 () none) ;; 9 + ) + ) +|# + +#| +(deftype gun-blue-2-lightning-init-params (structure) + ((num-beams int8 :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x1 + :flag-assert #x900000001 + ) +|# + +#| +(deftype gun-blue-shot (projectile) + ((init-pos vector :inline :offset-assert 512) + (init-dir vector :inline :offset-assert 528) + (collide-normal vector :inline :offset-assert 544) + ) + :method-count-assert 41 + :size-assert #x230 + :flag-assert #x2901b00230 + ) +|# + +#| +(deftype gun-blue-shot-2 (gun-blue-shot) + () + :method-count-assert 41 + :size-assert #x230 + :flag-assert #x2901b00230 + ) +|# + +;; (define-extern sparticle-fade-alpha-dist function) +;; (define-extern gun-fire-blue-1 function) +;; (define-extern fmod-2 function) +;; (define-extern get-dist-and-dot function) +;; (define-extern gun-blue-shot-3-move function) +;; (define-extern *blue-shot-trail* object) +;; (define-extern gun-fire-blue-3 function) +;; (define-extern draw-beam-segment function) +;; (define-extern *found-objects* object) +;; (define-extern *gun-blue-2-last-attack-id* object) +;; (define-extern *gun-blue-2-last-attack-id-time* object) +;; (define-extern fire-projectile-if-necessary function) +;; (define-extern *gun-blue-2-targets* object) +;; (define-extern *blue-2-lightning-shape* object) +;; (define-extern *uv-loop-curve* object) +;; (define-extern *blue-light-test* object) +;; (define-extern *blue-light-test-end* object) +;; (define-extern *blue-light-test-big* object) +;; (define-extern *blue-light-test-big-intense* object) +;; (define-extern *blue-light-test-small-fade* object) +;; (define-extern gun-blue-2-lightning-init-by-other function) +;; (define-extern create-lightning-tracker-if-necessary function) +;; (define-extern is-valid-blue-2-target function) +;; (define-extern find-gun-blue-2-target function) +;; (define-extern find-gun-blue-2-target-old function) +;; (define-extern *lightning-pts-cache* object) +;; (define-extern gun-fire-blue-2 function) +;; (define-extern gun-fire-blue-2-old function) +;; (define-extern target-gun-can-fire-blue? function) +;; (define-extern *last-fire-blue-time* object) +;; (define-extern target-gun-fire-blue function) ;; (function (pointer process) :behavior target) +;; (define-extern gun-blue-shot-move function) ;; (function gun-blue-shot none) +;; (define-extern cshape-reaction-blue-shot function) ;; (function control-info collide-query vector vector collide-status) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; cloth ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern get-neighboring-faces function) +;; (define-extern *normal-array* object) +;; (define-extern light-vertex function) +;; (define-extern *once* object) +;; (define-extern *cloth-fade-alpha* object) +;; (define-extern symbol->cloth-flags function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; precurc-obs ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype precur-elevator (elevator) + () + :method-count-assert 52 + :size-assert #x1a0 + :flag-assert #x34012001a0 + ) +|# + +#| +(deftype precur-door-a (process-drawable) + ((open-test basic :offset-assert 200) + (open-started uint64 :offset-assert 208) + (do-camera? basic :offset-assert 216) + (open-frame float :offset-assert 220) + ) + :method-count-assert 23 + :size-assert #xe0 + :flag-assert #x17006000e0 + ;; field open-test uses ~A with a signed load. + (:methods + (precur-door-a-method-22 () none) ;; 22 + ) + (:state-methods + close ;; 21 + open ;; 20 + ) + ) +|# + +#| +(deftype precur-swingpole-pop (swingpole) + ((moving? basic :offset-assert 284) + (player-grabbed? basic :offset-assert 288) + (halfway? basic :offset-assert 292) + (stopped-time uint64 :offset-assert 296) + (movedist float :offset-assert 304) + (tt float :offset-assert 308) + (paused-time uint64 :offset-assert 312) + (direction uint8 :offset-assert 320) + ) + :method-count-assert 25 + :size-assert #x141 + :flag-assert #x1900d00141 + (:state-methods + idle ;; 20 + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; forest-obs-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype shaker (structure) + ((axis vector :inline :offset-assert 0) + (start-time uint64 :offset-assert 16) ;; time-frame + (decay-time float :offset-assert 24) + (amplitude float :offset-assert 28) + (freq float :offset-assert 32) + (y-decay-time float :offset-assert 36) + (y-amplitude float :offset-assert 40) + (y-freq float :offset-assert 44) + (shake float :offset-assert 48) + (y-shake float :offset-assert 52) + ) + :method-count-assert 10 + :size-assert #x38 + :flag-assert #xa00000038 + (:methods + (shaker-method-9 () none) ;; 9 ;; (shaker-method-9 (_type_) none 9) + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; bombbot ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype bombbot-hud (hud) + () + :method-count-assert 27 + :size-assert #xac4 + :flag-assert #x1b0a500ac4 + ) +|# + +#| +(deftype bombbot-bomb (process-focusable) + ((explode-part basic :offset-assert 208) + (rot-axis vector :inline :offset-assert 224) + (rot-angle float :offset-assert 240) + (warning-glow-part basic :offset-assert 244) + (next-countdown-tick uint64 :offset-assert 248) + (fizzle-timer uint64 :offset-assert 256) + ) + :method-count-assert 34 + :size-assert #x108 + :flag-assert #x2200900108 + (:methods + (bombbot-bomb-method-32 () none) ;; 32 + (bombbot-bomb-method-33 () none) ;; 33 + ) + (:state-methods + back ;; 31 + explode ;; 30 + smoke ;; 29 + idle ;; 28 + ) + ) +|# + +#| +(deftype bombbot-foot (structure) + ((pos-offset vector :inline :offset-assert 0) + (joint-index uint32 :offset-assert 16) + (offset float :offset-assert 20) + (position vector :inline :offset-assert 32) + (next-position vector :inline :offset-assert 48) + (real-position vector :inline :offset-assert 64) + (speed vector :inline :offset-assert 80) + (moving symbol :offset-assert 96) ;; guessed by decompiler + (main-y float :offset-assert 100) + (delta-y float :offset-assert 104) + ) + :method-count-assert 9 + :size-assert #x6c + :flag-assert #x90000006c + ) +|# + +#| +(deftype bombbot (nav-enemy) + ((joint-ik joint-mod-ik 4 :offset-assert 620) ;; guessed by decompiler + (feet bombbot-foot 4 :offset-assert 640) ;; guessed by decompiler + (legs-strength float 4 :offset-assert 1088) ;; guessed by decompiler + (last-trans vector :inline :offset-assert 1104) + (linear-speed vector :inline :offset-assert 1120) + (last-quat quaternion :inline :offset-assert 1136) + (y-angular-velocity float :offset-assert 1152) + (main-quat quaternion :inline :offset-assert 1168) + (main-spd-y float :offset-assert 1184) + (main-pos-y float :offset-assert 1188) + (main-pos vector :inline :offset-assert 1200) + (city-path bombbot-path :offset-assert 1216) + (current-node uint32 :offset-assert 1220) + (shot-count uint32 :offset-assert 1224) + (next-shoot uint64 :offset-assert 1232) + (stop-shoot uint64 :offset-assert 1240) + (next-target uint64 :offset-assert 1248) + (start-target uint64 :offset-assert 1256) + (beep-time uint64 :offset-assert 1264) ;; time-frame + (target-pos vector :inline :offset-assert 1280) + (start-target-pos vector :inline :offset-assert 1296) + (start-target-vel vector :inline :offset-assert 1312) + (target-delta vector :inline :offset-assert 1328) + (top-quat quaternion :inline :offset-assert 1344) + (gun-swivel-quat quaternion :inline :offset-assert 1360) + (gun-quat quaternion :inline :offset-assert 1376) + (angle-turret float :offset-assert 1392) + (angle-gun float :offset-assert 1396) + (extra-angle-gun float :offset-assert 1400) + (drop-angle float :offset-assert 1404) + (drop-num uint32 :offset-assert 1408) + (hit-axis vector :inline :offset-assert 1424) + (rigidbody rigid-body-control :offset-assert 1440) ;; guessed by decompiler + (info rigid-body-object-constants :offset-assert 1444) + (explosing symbol :offset-assert 1448) ;; guessed by decompiler + (minimap connection-minimap :offset-assert 1452) + (head-sound sound-id :offset-assert 1456) ;; guessed by decompiler + (cannon-sound sound-id :offset-assert 1460) ;; guessed by decompiler + (last-head-roty-speed float :offset-assert 1464) + (head-roty-speed float :offset-assert 1468) + (last-cannon-roty-speed float :offset-assert 1472) + (cannon-roty-speed float :offset-assert 1476) + (shoot-duration float :offset-assert 1480) + (y-angle float :offset-assert 1484) + (gun-rotation-speed float :offset-assert 1488) + (gun-type uint32 :offset-assert 1492) + (drop-mask uint32 :offset-assert 1496) + (attacker-info city-attacker-info :offset-assert 1500) + (mission-squad basic :offset-assert 1504) + (max-hit-points float :offset-assert 1508) + ) + :method-count-assert 209 + :size-assert #x5e8 + :flag-assert #xd1057005e8 + (:methods + (bombbot-method-192 () none) ;; 192 + (bombbot-method-194 () none) ;; 194 + (bombbot-method-195 () none) ;; 195 + (bombbot-method-196 () none) ;; 196 + (bombbot-method-197 () none) ;; 197 + (bombbot-method-198 () none) ;; 198 + (bombbot-method-199 () none) ;; 199 + (bombbot-method-200 () none) ;; 200 + (bombbot-method-201 () none) ;; 201 + (bombbot-method-202 () none) ;; 202 + (bombbot-method-203 () none) ;; 203 + (bombbot-method-204 () none) ;; 204 + (bombbot-method-205 () none) ;; 205 + (bombbot-method-206 () none) ;; 206 + (bombbot-method-207 () none) ;; 207 + (bombbot-method-208 () none) ;; 208 + ) + (:state-methods + notice ;; 35 + hostile ;; 38 + explode ;; 190 + drop-bombs ;; 193 + blow-wall ;; 191 + die ;; 40 + ) + ) +|# + +#| +(deftype bombbot-shot (guard-shot) + () + :method-count-assert 41 + :size-assert #x220 + :flag-assert #x2901a00220 + (:state-methods + impact ;; 22 + ) + ) +|# + +#| +(deftype spring-setup (structure) + ((bpos1 vector :offset-assert 0) + (wpos2 vector :offset-assert 4) + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +#| +(deftype bombbot-spawn-params (structure) + ((position vector :inline :offset-assert 0) + (quat quaternion :inline :offset-assert 16) + (nav-mesh basic :offset-assert 32) + (path bombbot-path :offset-assert 36) + (first-node uint32 :offset-assert 40) + (stop-offset float :offset-assert 44) + ) + :method-count-assert 9 + :size-assert #x30 + :flag-assert #x900000030 + ) +|# + +#| +(deftype bomb-bot (bombbot) + () + :method-count-assert 209 + :size-assert #x5e8 + :flag-assert #xd1057005e8 + (:state-methods + hostile ;; 38 + ) + ) +|# + +#| +(deftype bombbot-player (bombbot) + ((camera-x-angle float :offset-assert 1512) + (hold-fire basic :offset-assert 1516) + (hold-fire-time uint64 :offset-assert 1520) + (health-hud uint64 :offset-assert 1528) + ) + :method-count-assert 210 + :size-assert #x600 + :flag-assert #xd205800600 + (:state-methods + hostile ;; 38 + explode ;; 190 + done ;; 209 + ) + ) +|# + +#| +(deftype task-manager-blow-barricade (task-manager) + ((check-timer uint64 :offset-assert 236) + (bombbot-h uint64 :offset-assert 244) + (actor-group uint32 :offset-assert 252) + (actor-group-count int32 :offset-assert 256) + (done? int32 :offset-assert 260) + (minimap connection-minimap :offset-assert 264) + (wall-h uint64 :offset-assert 268) + (start-point vector :inline :offset-assert 284) + ) + :method-count-assert 33 + :size-assert #x130 + :flag-assert #x2100b00130 + (:methods + (task-manager-blow-barricade-method-32 () none) ;; 32 + ) + (:state-methods + active ;; 15 + ) + ) +|# + +#| +(deftype task-manager-port-fight (task-manager) + ((check-timer uint64 :offset-assert 236) + (bombbot-h UNKNOWN 4 :offset-assert 244) + (actor-group uint32 :offset-assert 276) + (actor-group-count int32 :offset-assert 280) + (done? int32 :offset-assert 284) + (minimap connection-minimap :offset-assert 288) + (min-time uint32 :offset-assert 292) + (hud-timer uint64 :offset-assert 196) + (intro-state int32 :offset-assert 308) + (intro-time uint64 :offset-assert 228) + (target-far-enough? basic :offset-assert 324) + ) + :method-count-assert 34 + :size-assert #x14c + :flag-assert #x2200d0014c + (:methods + (task-manager-port-fight-method-33 () none) ;; 33 + ) + (:state-methods + active ;; 15 + fail-screen ;; 32 + wait ;; 14 + ) + ) +|# + +;; (define-extern *bombbot-hint* object) +;; (define-extern *bombbot-hint-time* object) +;; (define-extern *bombbot-body-constants* object) ;; rigid-body-object-constants +;; (define-extern bombbot-bomb-handler function) +;; (define-extern *daxter-speech* object) +;; (define-extern bombbot-bomb-reaction function) +;; (define-extern bombbot-bomb-init-by-other function) +;; (define-extern *bombbot-nav-enemy-info* nav-enemy-info) ;; nav-enemy-info +;; (define-extern *bombbot-ik-limb-setup* array) +;; (define-extern bombbot-do-spline function) ;; (function vector vector vector vector vector float vector) +;; (define-extern spawn-bombbot-projectile function) +;; (define-extern *bombbot-debris-params* debris-static-params) +;; (define-extern bombbot-callback function) ;; (function cspace transformq none) +;; (define-extern bombbot-head-callback function) ;; (function cspace transformq none) +;; (define-extern bombbot-gun-swivel-callback function) ;; (function cspace transformq none) +;; (define-extern bombbot-gun-callback function) ;; (function cspace transformq none) +;; (define-extern *bombbot-spring-setup* array) ;; (array spring-setup) +;; (define-extern bombbot-init-by-other function) ;; (function bombbot-spawn-params none :behavior bombbot) +;; (define-extern bombbot-player-init-by-other function) +;; (define-extern *blow-barricade-kg-squad-member-settings* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; smush-control-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype smush-control (structure) + ((start-time uint64 :offset-assert 0) ;; time-frame + (period float :offset-assert 8) + (duration float :offset-assert 12) + (amp float :offset-assert 16) + (damp-amp float :offset-assert 20) + (damp-period float :offset-assert 24) + (ticks float :offset-assert 28) + ) + :method-count-assert 15 + :size-assert #x20 + :flag-assert #xf00000020 + (:methods + (smush-control-method-9 () none) ;; 9 ;; (set-zero! (_type_) _type_ 9) + (smush-control-method-10 () none) ;; 10 ;; (update! (_type_) float 10) + (smush-control-method-11 () none) ;; 11 ;; (get-no-update (_type_) float 11) + (smush-control-method-12 () none) ;; 12 ;; (activate! (_type_ float int int float float clock) _type_ 12) + (smush-control-method-13 () none) ;; 13 ;; (nonzero-amplitude? (_type_) symbol 13) + (smush-control-method-14 () none) ;; 14 ;; (die-on-next-update! (_type_) _type_ 14) + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; cam-update ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern plane-from-points function) ;; (function (inline-array plane) vector vector vector int float) +;; (define-extern set-point function) ;; (function vector float float float float) +;; (define-extern update-view-planes function) ;; (function math-camera (inline-array plane) float matrix float) +;; (define-extern *update-leaf-when-outside-bsp* object) ;; symbol +;; (define-extern update-visible function) ;; (function math-camera symbol) +;; (define-extern *save-camera-inv-rot* object) ;; matrix +;; (define-extern move-camera-from-pad function) ;; (function math-camera math-camera) +;; (define-extern external-cam-reset! function) ;; (function none) +;; (define-extern *start-timer* object) ;; int +;; (define-extern *timer-value* object) ;; int +;; (define-extern *start-pos* object) ;; vector +;; (define-extern update-camera function) ;; (function symbol) +;; (define-extern move-level-by-name function) ;; (function symbol float float float vector) +;; (define-extern execute-cam-post-hook-engine function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; debug-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype pos-history (structure) + ((points (inline-array vector) :offset-assert 0) ;; guessed by decompiler + (num-points int32 :offset-assert 4) + (h-first int32 :offset-assert 8) + (h-last int32 :offset-assert 12) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype debug-vertex (structure) + ((trans vector4w :inline :offset-assert 0) + (normal vector3h :inline :offset-assert 16) + (st vector2h :inline :offset-assert 22) + (color uint32 :offset-assert 28) + ) + :method-count-assert 9 + :size-assert #x20 + :flag-assert #x900000020 + ) +|# + +#| +(deftype debug-vertex-stats (basic) + ((length int32 :offset-assert 4) + (pos-count int32 :offset-assert 8) + (vertex debug-vertex 600 :offset-assert 16) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x4b10 + :flag-assert #x900004b10 + ) +|# + +;; (define-extern *color-black* object) ;; rgba +;; (define-extern *color-white* object) ;; rgba +;; (define-extern *color-gray* object) ;; rgba +;; (define-extern *color-red* object) ;; rgba +;; (define-extern *color-green* object) ;; rgba +;; (define-extern *color-blue* object) ;; rgba +;; (define-extern *color-cyan* object) ;; rgba +;; (define-extern *color-magenta* object) ;; rgba +;; (define-extern *color-yellow* object) ;; rgba +;; (define-extern *color-light-red* object) ;; rgba +;; (define-extern *color-light-green* object) ;; rgba +;; (define-extern *color-light-blue* object) ;; rgba +;; (define-extern *color-light-cyan* object) ;; rgba +;; (define-extern *color-light-magenta* object) ;; rgba +;; (define-extern *color-light-yellow* object) ;; rgba +;; (define-extern *color-dark-red* object) ;; rgba +;; (define-extern *color-dark-green* object) ;; rgba +;; (define-extern *color-dark-blue* object) ;; rgba +;; (define-extern *color-dark-cyan* object) ;; rgba +;; (define-extern *color-dark-magenta* object) ;; rgba +;; (define-extern *color-dark-yellow* object) ;; rgba +;; (define-extern *color-orange* object) ;; rgba + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; progress-draw ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *progress-list-level* object) +;; (define-extern sort-task-node-result function) ;; (function int none) +;; (define-extern find-mission-text-at-index function) ;; (function int game-task-node-info) +;; (define-extern unlocked-secret-menu? function) ;; (function game-secrets symbol) +;; (define-extern memcard-unlocked-secrets? function) ;; (function symbol game-secrets) +;; (define-extern num-unlocked-secret? function) ;; (function game-secrets int) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ctysluma-part ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *range-color-rubble-flame* curve-color-fast) +;; (define-extern *range-alpha-rubble-flame* curve2d-fast) +;; (define-extern *range-scale-rubble-flame-x* curve2d-fast) +;; (define-extern *range-scale-rubble-flame-y* curve2d-fast) +;; (define-extern *r-curve-rubble-flame* curve2d-fast) +;; (define-extern *g-curve-rubble-flame* curve2d-fast) +;; (define-extern *b-curve-rubble-flame* curve2d-fast) +;; (define-extern *curve-alpha-rubble-flame* curve2d-fast) +;; (define-extern *curve-scale-rubble-flame-x* curve2d-fast) +;; (define-extern *curve-scale-rubble-flame-y* curve2d-fast) +;; (define-extern *part-ctyslum-rubble-fire-flame-curve-settings* object) +;; (define-extern check-drop-level-ctysluma-drop-userdata function) ;; (function sparticle-system sparticle-cpuinfo vector none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; joint-mod-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype joint-mod (basic) + ((mode joint-mod-mode :offset-assert 4) ;; guessed by decompiler + (process process-drawable :offset-assert 8) ;; guessed by decompiler + (joint cspace :offset-assert 12) + (target vector :inline :offset-assert 16) + (twist vector :inline :offset-assert 32) + (twist-max vector :inline :offset-assert 48) + (extra-twist deg :offset-assert 40) ;; degrees + (track-mode track-mode :offset-assert 44) + (look-at-count uint16 :offset-assert 46) + (twist-range-x meters :offset-assert 56) + (twist-range-y meters :offset-assert 60) + (twist-speed-x float :offset-assert 64) + (twist-speed-y float :offset-assert 68) + (trans vector :inline :offset-assert 80) + (smushy-old float :offset-assert 80) + (smushy-off float :offset-assert 84) + (smushyv float :offset-assert 88) + (quat quaternion :inline :offset-assert 96) + (scale vector :inline :offset-assert 112) + (notice-time uint64 :offset-assert 128) ;; time-frame + (flex-blend float :offset-assert 136) + (blend float :offset-assert 140) + (old-blend float :offset-assert 144) + (max-dist meters :offset-assert 148) + (ignore-angle deg :offset-assert 152) ;; degrees + (up uint8 :offset-assert 156) + (nose uint8 :offset-assert 157) + (ear uint8 :offset-assert 158) + (base-joint uint8 :offset-assert 159) + (base-nose uint8 :offset-assert 160) + (shutting-down? symbol :offset-assert 164) ;; guessed by decompiler + (parented-scale? symbol :offset-assert 168) ;; guessed by decompiler + ) + :method-count-assert 16 + :size-assert #xac + :flag-assert #x10000000ac + ;; field track-mode is likely a value type. + (:methods + ;; (new (symbol type joint-mod-mode process-drawable int) _type_ 0) + (joint-mod-method-9 () none) ;; 9 ;; (mode-set! (_type_ joint-mod-mode) none 9) + (joint-mod-method-10 () none) ;; 10 ;; (target-set! (_type_ vector) none 10) + (joint-mod-method-11 () none) ;; 11 ;; (look-at! (_type_ vector symbol process) none 11) + (joint-mod-method-12 () none) ;; 12 ;; (reset-blend! (_type_) _type_ 12) + (joint-mod-method-13 () none) ;; 13 ;; (twist-set! (_type_ float float float) vector 13) + (joint-mod-method-14 () none) ;; 14 ;; (trs-set! (_type_ vector quaternion vector) none 14) + (joint-mod-method-15 () none) ;; 15 ;; (shut-down (_type_) none 15) + ) + ) +|# + +#| +(deftype try-to-look-at-info (basic) + ((who uint64 :offset-assert 8) ;; handle + (horz float :offset-assert 16) + (vert float :offset-assert 20) + ) + :method-count-assert 9 + :size-assert #x18 + :flag-assert #x900000018 + ) +|# + +#| +(deftype joint-mod-spinner (basic) + ((spin-axis vector :inline :offset-assert 16) + (angle float :offset-assert 32) + (spin-rate float :offset-assert 36) + (enable symbol :offset-assert 40) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x2c + :flag-assert #x90000002c + ) +|# + +#| +(deftype joint-mod-base (structure) + ((flags uint16 :offset-assert 0) + (node-index int16 :offset-assert 2) + (proc uint32 :offset-assert 4) + (callback basic :offset-assert 8) + ) + :method-count-assert 12 + :size-assert #xc + :flag-assert #xc0000000c + (:methods + (joint-mod-base-method-9 () none) ;; 9 + (joint-mod-base-method-10 () none) ;; 10 + (joint-mod-base-method-11 () none) ;; 11 + ) + ) +|# + +#| +(deftype joint-mod-rotate-local (joint-mod-base) + ((rotation quaternion :inline :offset-assert 16) + ) + :method-count-assert 12 + :size-assert #x20 + :flag-assert #xc00000020 + (:methods + ;; (new (symbol type process-drawable int symbol) _type_ 0) + ) + ) +|# + +#| +(deftype joint-mod-rotate-world (joint-mod-base) + ((rotation quaternion :inline :offset-assert 16) + ) + :method-count-assert 12 + :size-assert #x20 + :flag-assert #xc00000020 + ) +|# + +#| +(deftype joint-mod-set-local (joint-mod-base) + ((transform transformq :inline :offset-assert 16) + ) + :method-count-assert 12 + :size-assert #x40 + :flag-assert #xc00000040 + (:methods + ;; (new (symbol type process-drawable int symbol symbol symbol) _type_ 0) + ) + ) +|# + +#| +(deftype joint-mod-add-local (joint-mod-base) + ((transform transformq :inline :offset-assert 16) + ) + :method-count-assert 12 + :size-assert #x40 + :flag-assert #xc00000040 + (:methods + ;; (new (symbol type process-drawable int symbol symbol symbol) _type_ 0) + ) + ) +|# + +#| +(deftype joint-mod-set-world (joint-mod-base) + ((transform transformq :inline :offset-assert 16) + ) + :method-count-assert 12 + :size-assert #x40 + :flag-assert #xc00000040 + (:methods + ;; (new (symbol type process-drawable int symbol) _type_ 0) + ) + ) +|# + +#| +(deftype joint-mod-set-world-no-trans (joint-mod-base) + ((transform transformq :inline :offset-assert 16) + ) + :method-count-assert 12 + :size-assert #x40 + :flag-assert #xc00000040 + ) +|# + +#| +(deftype joint-mod-blend-local (joint-mod-base) + ((transform transformq :inline :offset-assert 16) + (blend-transform transformq :inline :offset-assert 64) + (blend float :offset-assert 112) + ) + :method-count-assert 12 + :size-assert #x74 + :flag-assert #xc00000074 + (:methods + ;; (new (symbol type process-drawable int symbol) _type_ 0) + ) + ) +|# + +#| +(deftype joint-mod-blend-world (joint-mod-base) + ((transform transformq :inline :offset-assert 16) + (blend-transform transformq :inline :offset-assert 64) + (blend float :offset-assert 112) + ) + :method-count-assert 12 + :size-assert #x74 + :flag-assert #xc00000074 + (:methods + ;; (new (symbol type process-drawable int symbol float) _type_ 0) + ) + ) +|# + +#| +(deftype joint-mod-ik (basic) + ((flags joint-mod-ik-flags :offset-assert 4) ;; guessed by decompiler + (process process-drawable :offset-assert 8) ;; guessed by decompiler + (hand-dist float :offset-assert 12) + (handle-pos vector :inline :offset-assert 16) + (elbow-pole-vector-axis uint32 :offset-assert 32) + (elbow-rotation-axis uint32 :offset-assert 36) + (user-position vector :inline :offset-assert 48) + (user-normal vector :inline :offset-assert 64) + (user-blend float :offset-assert 80) + (user-float float :offset-assert 84) + (callback (function joint-mod-ik matrix matrix vector object) :offset-assert 88) ;; guessed by decompiler + (shoulder-matrix-no-ik matrix :inline :offset-assert 96) + (elbow-matrix-no-ik matrix :inline :offset-assert 160) + (blend float :offset-assert 224) + (blend-interp float :offset-assert 228) + ) + :method-count-assert 11 + :size-assert #xe8 + :flag-assert #xb000000e8 + (:methods + ;; (new (symbol type process-drawable int float) _type_ 0) + (joint-mod-ik-method-9 () none) ;; 9 ;; (handle-copy! (_type_ vector) none 9) + (joint-mod-ik-method-10 () none) ;; 10 ;; (enable-set! (_type_ symbol) none 10) + ) + ) +|# + +#| +(deftype ik-limb-setup (structure) + ((elbow-index int32 :offset-assert 0) + (hand-dist float :offset-assert 4) + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +#| +(deftype joint-mod-polar-look-at (basic) + ((flags uint32 :offset-assert 4) + (ear int8 :offset-assert 8) + (up int8 :offset-assert 9) + (nose int8 :offset-assert 10) + (polar-internal-tilt-max float :offset-assert 12) + (polar-internal-radius float :offset-assert 16) + (polar-external-tilt-max float :offset-assert 20) + (polar-external-radius float :offset-assert 24) + (upward-tilt float :offset-assert 28) + (downward-tilt float :offset-assert 32) + (forward-twist float :offset-assert 36) + (backward-twist float :offset-assert 40) + (target vector :inline :offset-assert 48) + (blend-duration uint64 :offset-assert 64) + (blend-start-time uint64 :offset-assert 72) + (blend-start-value float :offset-assert 80) + (blend-max float :offset-assert 84) + ) + :method-count-assert 15 + :size-assert #x58 + :flag-assert #xf00000058 + (:methods + (joint-mod-polar-look-at-method-9 () none) ;; 9 + (joint-mod-polar-look-at-method-10 () none) ;; 10 + (joint-mod-polar-look-at-method-11 () none) ;; 11 + (joint-mod-polar-look-at-method-12 () none) ;; 12 + (joint-mod-polar-look-at-method-13 () none) ;; 13 + (joint-mod-polar-look-at-method-14 () none) ;; 14 + ) + ) +|# + +;; (define-extern joint-mod-debug-draw function) ;; (function joint-mod none) +;; (define-extern joint-mod-spinner-callback function) ;; (function cspace transformq none) +;; (define-extern joint-mod-rotate-local-callback function) ;; (function cspace transformq none) +;; (define-extern vector<-cspace2! function) +;; (define-extern joint-mod-rotate-world-callback function) +;; (define-extern joint-mod-set-local-callback function) ;; (function cspace transformq none) +;; (define-extern joint-mod-add-local-callback function) ;; (function cspace transformq none) +;; (define-extern joint-mod-set-world-callback function) ;; (function cspace transformq none) +;; (define-extern joint-mod-set-world-no-trans-callback function) +;; (define-extern joint-mod-blend-local-callback function) ;; (function cspace transformq none) +;; (define-extern joint-mod-blend-world-callback function) ;; (function cspace transformq none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; collide-func-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; collide-mesh-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype collide-tri-result (structure) + ((vertex vector 3 :offset-assert 0) ;; guessed by decompiler + (intersect vector :inline :offset-assert 48) + (normal vector :inline :offset-assert 64) + (pat pat-surface :offset-assert 80) ;; guessed by decompiler + (collide-ptr basic :offset-assert 84) + ) + :method-count-assert 9 + :size-assert #x58 + :flag-assert #x900000058 + ) +|# + +#| +(deftype collide-mesh-tri (structure) + ((vertex-index uint8 3 :offset-assert 0) ;; guessed by decompiler + (unused uint8 :offset-assert 3) + (pat pat-surface :offset-assert 4) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +#| +(deftype collide-mesh (basic) + ((joint-id int32 :offset-assert 4) + (num-tris uint32 :offset-assert 8) + (num-verts uint32 :offset-assert 12) + (vertex-data (inline-array vector) :offset-assert 16) ;; guessed by decompiler + (tris collide-mesh-tri 1 :offset-assert 32) ;; guessed by decompiler + ) + :method-count-assert 16 + :size-assert #x28 + :flag-assert #x1000000028 + (:methods + (collide-mesh-method-9 () none) ;; 9 ;; (debug-draw-tris (_type_ process-drawable int) none 9) + (collide-mesh-method-10 () none) ;; 10 ;; (overlap-test (_type_ collide-mesh-cache-tri vector) symbol 10) + (collide-mesh-method-11 () none) ;; 11 ;; (should-push-away-test (_type_ collide-mesh-cache-tri collide-tri-result vector float) float 11) + (collide-mesh-method-12 () none) ;; 12 ;; (sphere-on-platform-test (_type_ collide-mesh-cache-tri collide-tri-result vector float) float 12) + (collide-mesh-method-13 () none) ;; 13 ;; (unpack-mesh-to-cache! (_type_ (inline-array collide-mesh-cache-tri) matrix) none 13) + (collide-mesh-method-14 () none) ;; 14 ;; (collide-mesh-math-1 (_type_ object object) none 14) + (collide-mesh-method-15 () none) ;; 15 ;; (collide-mesh-math-2 (_type_ object object object) none 15) + ) + ) +|# + +#| +(deftype collide-mesh-cache-tri (structure) + ((vertex vector 3 :offset-assert 0) ;; guessed by decompiler + (normal vector :inline :offset-assert 48) + (bbox4w bounding-box4w :inline :offset-assert 64) + (pat pat-surface :offset-assert 60) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x60 + :flag-assert #x900000060 + ) +|# + +#| +(deftype collide-mesh-cache-entry (structure) + ((mat matrix :inline :offset-assert 0) + (tris collide-mesh-cache-tri :dynamic :offset-assert 64) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x40 + :flag-assert #x900000040 + ) +|# + +#| +(deftype collide-mesh-cache (basic) + ((used-size uint32 :offset-assert 4) + (max-size uint32 :offset-assert 8) + (id uint32 :offset-assert 12) + (data uint8 48000 :offset-assert 16) ;; guessed by decompiler + ) + :method-count-assert 13 + :size-assert #xbb90 + :flag-assert #xd0000bb90 + (:methods + (collide-mesh-cache-method-9 () none) ;; 9 ;; (populate-for-prim-mesh (_type_ collide-shape-prim-mesh) collide-mesh-cache-entry 9) + (collide-mesh-cache-method-10 () none) ;; 10 ;; (is-id? (_type_ int) symbol 10) + (collide-mesh-cache-method-11 () none) ;; 11 ;; (next-id! (_type_) uint 11) + (collide-mesh-cache-method-12 () none) ;; 12 ;; (allocate! (_type_ int) collide-mesh-cache-entry 12) + ) + ) +|# + +;; (define-extern *collide-mesh-cache* object) ;; collide-mesh-cache + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; anim-tester ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype list-control (structure) + ((listfunc (function int list-control symbol) :offset-assert 0) ;; guessed by decompiler + (list-owner uint32 :offset-assert 4) + (top int32 :offset-assert 8) + (left int32 :offset-assert 12) + (list glst-list :offset-assert 16) + (the-node glst-node :offset-assert 20) + (top-index int32 :offset-assert 24) + (the-index int32 :offset-assert 28) + (the-disp-line int32 :offset-assert 32) + (highlight-index int32 :offset-assert 36) + (current-index int32 :offset-assert 40) + (numlines int32 :offset-assert 44) + (lines-to-disp int32 :offset-assert 48) + (charswide int32 :offset-assert 52) + (highlight-disp-line int32 :offset-assert 56) + (field-id int32 :offset-assert 60) + (xpos int32 :offset-assert 64) + (ypos int32 :offset-assert 68) + (user-info int32 :offset-assert 72) + (return-int int32 :offset-assert 76) + ) + :method-count-assert 9 + :size-assert #x50 + :flag-assert #x900000050 + ) +|# + +#| +(deftype list-field (structure) + ((left int32 :offset-assert 0) + (width int32 :offset-assert 4) + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +#| +(deftype DISP_LIST-bank (basic) + ((V_SPACING int32 :offset-assert 4) + (BORDER_WIDTH int32 :offset-assert 8) + (BORDER_HEIGHT int32 :offset-assert 12) + (MAX_LINES int32 :offset-assert 16) + (CHAR_WIDTH int32 :offset-assert 20) + (INC_DELAY int32 :offset-assert 24) + (BORDER_LINES int32 :offset-assert 28) + (CXOFF int32 :offset-assert 32) + (CYOFF int32 :offset-assert 36) + (BXOFF int32 :offset-assert 40) + (BYOFF int32 :offset-assert 44) + ) + :method-count-assert 9 + :size-assert #x30 + :flag-assert #x900000030 + ) +|# + +#| +(deftype anim-tester-bank (basic) + ((ANIM_SPEED float :offset-assert 4) + (BLEND float :offset-assert 8) + (OBJECT_LIST_X int32 :offset-assert 12) + (OBJECT_LIST_Y int32 :offset-assert 16) + (OBJECT_LIST_MIN_WIDTH int32 :offset-assert 20) + (ANIM_LIST_X int32 :offset-assert 24) + (ANIM_LIST_Y int32 :offset-assert 28) + (ANIM_LIST_MIN_WIDTH int32 :offset-assert 32) + (PICK_LIST_X int32 :offset-assert 36) + (PICK_LIST_Y int32 :offset-assert 40) + (PICK_LIST_MIN_WIDTH int32 :offset-assert 44) + (EDIT_LIST_X int32 :offset-assert 48) + (EDIT_LIST_Y int32 :offset-assert 52) + (EDIT_STATS_X int32 :offset-assert 56) + (EDIT_LIST_MIN_WIDTH int32 :offset-assert 60) + (EDIT_PICK_X int32 :offset-assert 64) + ) + :method-count-assert 9 + :size-assert #x44 + :flag-assert #x900000044 + ) +|# + +;; anim-tester is already defined! + +#| +(deftype anim-test-obj (glst-named-node) + ((obj-art-group basic :offset-assert 12) + (seq-list glst-list :inline :offset-assert 16) + (flags int32 :offset-assert 32) + (mesh-geo basic :offset-assert 36) + (joint-geo basic :offset-assert 40) + (list-con list-control :inline :offset-assert 44) + (parent uint32 :offset-assert 124) + (anim-index int32 :offset-assert 128) + (anim-hindex int32 :offset-assert 132) + (seq-index int32 :offset-assert 136) + (seq-hindex int32 :offset-assert 140) + ) + :method-count-assert 9 + :size-assert #x90 + :flag-assert #x900000090 + ) +|# + +#| +(deftype anim-test-sequence (glst-named-node) + ((item-list glst-list :inline :offset-assert 12) + (playing-item int32 :offset-assert 28) + (flags int32 :offset-assert 32) + (list-con list-control :inline :offset-assert 36) + (parent anim-test-obj :offset-assert 116) + ) + :method-count-assert 9 + :size-assert #x78 + :flag-assert #x900000078 + ) +|# + +#| +(deftype anim-test-seq-item (glst-named-node) + ((speed int32 :offset-assert 12) + (blend int32 :offset-assert 16) + (first-frame float :offset-assert 20) + (last-frame float :offset-assert 24) + (num-frames float :offset-assert 28) + (artist-base float :offset-assert 32) + (flags int32 :offset-assert 36) + (parent anim-test-sequence :offset-assert 40) + ) + :method-count-assert 9 + :size-assert #x2c + :flag-assert #x90000002c + ) +|# + +;; (define-extern *DISP_LIST-bank* DISP_LIST-bank) +;; (define-extern display-list-control function) +;; (define-extern *ANIM_TESTER-bank* anim-tester-bank) +;; (define-extern anim-tester-num-print function) +;; (define-extern *anim-tester* object) ;; (pointer anim-tester) +;; (define-extern anim-test-obj-init function) +;; (define-extern anim-test-sequence-init function) +;; (define-extern anim-test-seq-item-copy! function) +;; (define-extern anim-test-obj-item-valid? function) +;; (define-extern anim-test-obj-remove-invalid function) +;; (define-extern anim-tester-real-post function) +;; (define-extern anim-tester-post function) +;; (define-extern anim-tester-update-anim-info function) +;; (define-extern anim-tester-reset function) +;; (define-extern anim-tester-disp-frame-num function) +;; (define-extern anim-tester-standard-event-handler function) +;; (define-extern anim-test-obj-list-handler function) +;; (define-extern anim-test-anim-list-handler function) +;; (define-extern anim-test-sequence-list-handler function) +;; (define-extern anim-test-field-highlight-lw object) +;; (define-extern anim-tester-adjust-frame function) +;; (define-extern anim-tester-pick-item-setup function) +;; (define-extern anim-test-seq-mark-as-edited function) +;; (define-extern anim-test-edit-seq-insert-item function) +;; (define-extern anim-test-edit-sequence-list-handler function) +;; (define-extern anim-tester-interface function) +;; (define-extern anim-tester-get-playing-item function) +;; (define-extern initialize-anim-tester function) +;; (define-extern anim-tester-string-get-frame!! function) +;; (define-extern anim-tester-load-object-seqs function) +;; (define-extern anim-tester-save-object-seqs function) +;; (define-extern anim-tester-save-all-objects function) +;; (define-extern anim-tester-add-newobj function) +;; (define-extern anim-tester-stop function) +;; (define-extern anim-tester-start function) ;; (function symbol) +;; (define-extern anim-tester-add-object function) ;; (function string none) +;; (define-extern anim-tester-set-name function) +;; (define-extern anim-tester-add-sequence function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ctywide-part ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern birth-func-ctywide-baron-propoganda-ticker-rotate function) ;; (function sparticle-system sparticle-cpuinfo sprite-vec-data-3d sparticle-launcher sparticle-launch-state none) +;; (define-extern *range-color-gas-flame* curve-color-fast) +;; (define-extern *range-alpha-gas-flame* curve2d-fast) +;; (define-extern *range-scale-gas-flame-x* curve2d-fast) +;; (define-extern *range-scale-gas-flame-y* curve2d-fast) +;; (define-extern *r-curve-gas-flame* curve2d-fast) +;; (define-extern *g-curve-gas-flame* curve2d-fast) +;; (define-extern *b-curve-gas-flame* curve2d-fast) +;; (define-extern *curve-alpha-gas-flame* curve2d-fast) +;; (define-extern *curve-gas-flame-x* curve2d-fast) +;; (define-extern *curve-gas-flame-y* curve2d-fast) +;; (define-extern *part-ctyind-hot-gas-curve-settings* object) +;; (define-extern *range-kgpickup-dust-color* curve-color-fast) +;; (define-extern *range-kgpickup-dust-alpha* curve2d-fast) +;; (define-extern *range-kgpickup-dust-scale-x* curve2d-fast) +;; (define-extern *range-kgpickup-dust-scale-y* curve2d-fast) +;; (define-extern *curve-kgpickup-dust-alpha* curve2d-fast) +;; (define-extern *curve-kgpickup-dust-scale-x* curve2d-fast) +;; (define-extern *curve-kgpickup-dust-scale-y* curve2d-fast) +;; (define-extern *part-hijack-kgpickup-explosion-dust-in-curve-settings* object) +;; (define-extern *range-kgpickup-color* curve-color-fast) +;; (define-extern *range-kgpickup-alpha* curve2d-fast) +;; (define-extern *range-kgpickup-scale-x* curve2d-fast) +;; (define-extern *range-kgpickup-scale-y* curve2d-fast) +;; (define-extern *curve-kgpickup-alpha* curve2d-fast) +;; (define-extern *curve-kgpickup-scale-x* curve2d-fast) +;; (define-extern *curve-kgpickup-scale-y* curve2d-fast) +;; (define-extern *part-hijack-kgpickup-explosion-texture-curve-settings* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; tfrag-near ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern tnear-vu1-block object) ;; vu-function +;; (define-extern tfrag-details function) ;; (function tfragment none) +;; (define-extern clip-restore function) ;; (function none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; collide-shape-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype collide-rider (structure) + ((rider-handle uint64 :offset-assert 0) ;; handle + (sticky-prim collide-shape-prim :offset-assert 8) ;; guessed by decompiler + (prim-ry float :offset-assert 12) + (rider-local-pos vector :inline :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x20 + :flag-assert #x900000020 + ) +|# + +#| +(deftype collide-rider-pool (basic) + ((alloc-count int32 :offset-assert 4) + (riders collide-rider 20 :offset-assert 16) ;; guessed by decompiler + ) + :method-count-assert 11 + :size-assert #x290 + :flag-assert #xb00000290 + (:methods + (collide-rider-pool-method-9 () none) ;; 9 ;; (add-rider (_type_ handle) collide-rider 9) + (collide-rider-pool-method-10 () none) ;; 10 ;; (prepare (_type_) none 10) + ) + ) +|# + +#| +(deftype pull-rider-info (structure) + ((rider collide-rider :offset-assert 0) + (rider-cshape collide-shape-moving :offset-assert 4) ;; guessed by decompiler + (rider-delta-ry float :offset-assert 8) + (rider-dest vector :inline :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x20 + :flag-assert #x900000020 + ) +|# + +#| +(deftype overlaps-others-params (structure) + ((options overlaps-others-options :offset-assert 0) ;; guessed by decompiler + (collide-with-filter collide-spec :offset-assert 4) ;; guessed by decompiler + (tlist touching-list :offset-assert 8) ;; guessed by decompiler + (filtered-root-collide-with collide-spec :offset-assert 12) ;; guessed by decompiler + (filtered-child-collide-with collide-spec :offset-assert 16) ;; guessed by decompiler + (filtered-other-collide-as collide-spec :offset-assert 20) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x18 + :flag-assert #x900000018 + ) +|# + +#| +(deftype move-above-ground-params (structure) + ((gnd-collide-with collide-spec :offset-assert 0) ;; guessed by decompiler + (popup float :offset-assert 4) + (dont-move-if-overlaps? symbol :offset-assert 8) ;; guessed by decompiler + (hover-if-no-ground? symbol :offset-assert 12) ;; guessed by decompiler + (overlaps-params overlaps-others-params :inline :offset-assert 16) + (new-pos vector :inline :offset-assert 48) + (old-gspot-pos vector :inline :offset-assert 64) + (old-gspot-normal vector :inline :offset-assert 80) + (pat pat-surface :offset-assert 96) ;; guessed by decompiler + (on-ground? symbol :offset-assert 100) ;; guessed by decompiler + (do-move? symbol :offset-assert 104) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x6c + :flag-assert #x90000006c + ) +|# + +#| +(deftype collide-prim-core (structure) + ((world-sphere vector :inline :offset-assert 0) + (collide-as collide-spec :offset-assert 16) ;; guessed by decompiler + (collide-with collide-spec :offset-assert 20) ;; guessed by decompiler + (action collide-action :offset-assert 24) ;; guessed by decompiler + (prim-type int8 :offset-assert 28) ;; prim-type + (unused1 uint8 3 :offset-assert 29) ;; guessed by decompiler + (quad uint128 2 :offset-assert 0) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x20 + :flag-assert #x900000020 + ) +|# + +#| +(deftype collide-shape-prim (basic) + ((cshape collide-shape :offset-assert 4) ;; guessed by decompiler + (prim-id uint32 :offset-assert 8) + (transform-index int8 :offset-assert 12) + (unused2 int8 3 :offset-assert 13) ;; guessed by decompiler + (prim-core collide-prim-core :inline :offset-assert 16) + (local-sphere vector :inline :offset-assert 48) + (specific uint8 16 :offset-assert 64) ;; guessed by decompiler + (world-sphere vector :inline :offset-assert 16) + (collide-as collide-spec :offset-assert 32) + (collide-with collide-spec :offset-assert 36) + (action collide-action :offset-assert 40) + (prim-type int8 :offset-assert 44) + (radius meters :offset-assert 60) ;; float + ) + :method-count-assert 20 + :size-assert #x50 + :flag-assert #x1400000050 + (:methods + ;; (new (symbol type collide-shape uint int) _type_ 0) + (collide-shape-prim-method-9 () none) ;; 9 ;; (debug-draw (_type_) none 9) + (collide-shape-prim-method-10 () none) ;; 10 ;; (add-fg-prim-using-box (_type_ collide-cache) none 10) + (collide-shape-prim-method-11 () none) ;; 11 ;; (add-fg-prim-using-line-sphere (_type_ collide-cache object) none 11) + (collide-shape-prim-method-12 () none) ;; 12 ;; (overlaps-others-test (_type_ overlaps-others-params collide-shape-prim) symbol 12) + (collide-shape-prim-method-13 () none) ;; 13 ;; (overlaps-others-group (_type_ overlaps-others-params collide-shape-prim-group) symbol 13) + (collide-shape-prim-method-14 () none) ;; 14 ;; (collide-shape-prim-method-14 () none 14) + (collide-shape-prim-method-15 () none) ;; 15 ;; (collide-with-collide-cache-prim-mesh (_type_ collide-query collide-cache-prim) none 15) + (collide-shape-prim-method-16 () none) ;; 16 ;; (collide-with-collide-cache-prim-sphere (_type_ collide-query collide-cache-prim) none 16) + (collide-shape-prim-method-17 () none) ;; 17 ;; (on-platform-test (_type_ collide-shape-prim collide-query float) none 17) + (collide-shape-prim-method-18 () none) ;; 18 ;; (should-push-away-test (_type_ collide-shape-prim collide-query) none 18) + (collide-shape-prim-method-19 () none) ;; 19 ;; (should-push-away-a-group-test (_type_ collide-shape-prim-group collide-query) none 19) + ) + ) +|# + +#| +(deftype collide-shape-prim-sphere (collide-shape-prim) + ((cshape collide-shape :offset-assert 0) ;; guessed by decompiler + (prim-id uint32 :offset-assert 4) + (transform-index int8 :offset-assert 8) + (unused2 int8 3 :offset-assert 9) ;; guessed by decompiler + (prim-core collide-prim-core :inline :offset-assert 12) + (local-sphere vector :inline :offset-assert 44) + (specific uint8 16 :offset-assert 60) ;; guessed by decompiler + (world-sphere vector :inline :offset-assert 12) + (collide-as collide-spec :offset-assert 28) + (collide-with collide-spec :offset-assert 32) + (action collide-action :offset-assert 36) + (prim-type int8 :offset-assert 40) + (radius meters :offset-assert 56) ;; float + (pat pat-surface :offset-assert 60) ;; guessed by decompiler + (nav-radius float :offset-assert 64) + ) + :method-count-assert 20 + :size-assert #x50 + :flag-assert #x1400000050 + (:methods + ;; (new (symbol type collide-shape uint) _type_ 0) + ) + ) +|# + +#| +(deftype collide-shape-prim-mesh (collide-shape-prim) + ((cshape collide-shape :offset-assert 0) ;; guessed by decompiler + (prim-id uint32 :offset-assert 4) + (transform-index int8 :offset-assert 8) + (unused2 int8 3 :offset-assert 9) ;; guessed by decompiler + (prim-core collide-prim-core :inline :offset-assert 12) + (local-sphere vector :inline :offset-assert 44) + (specific uint8 16 :offset-assert 60) ;; guessed by decompiler + (world-sphere vector :inline :offset-assert 12) + (collide-as collide-spec :offset-assert 28) + (collide-with collide-spec :offset-assert 32) + (action collide-action :offset-assert 36) + (prim-type int8 :offset-assert 40) + (radius meters :offset-assert 56) ;; float + (mesh collide-mesh :offset-assert 60) ;; guessed by decompiler + (mesh-id int32 :offset-assert 64) + (mesh-cache-id uint32 :offset-assert 68) + (mesh-cache-entry collide-mesh-cache-entry :offset-assert 72) + ) + :method-count-assert 20 + :size-assert #x50 + :flag-assert #x1400000050 + (:methods + ;; (new (symbol type collide-shape uint uint) _type_ 0) + ) + ) +|# + +#| +(deftype collide-shape-prim-group (collide-shape-prim) + ((cshape collide-shape :offset-assert 0) ;; guessed by decompiler + (prim-id uint32 :offset-assert 4) + (transform-index int8 :offset-assert 8) + (unused2 int8 3 :offset-assert 9) ;; guessed by decompiler + (prim-core collide-prim-core :inline :offset-assert 12) + (local-sphere vector :inline :offset-assert 44) + (specific uint8 16 :offset-assert 60) ;; guessed by decompiler + (world-sphere vector :inline :offset-assert 12) + (collide-as collide-spec :offset-assert 28) + (collide-with collide-spec :offset-assert 32) + (action collide-action :offset-assert 36) + (prim-type int8 :offset-assert 40) + (radius meters :offset-assert 56) ;; float + (num-children uint8 :offset-assert 60) + (num-alloc-children uint8 :offset-assert 61) + (child (inline-array collide-shape-prim) :offset-assert 64) ;; guessed by decompiler + ) + :method-count-assert 20 + :size-assert #x50 + :flag-assert #x1400000050 + (:methods + ;; (new (symbol type collide-shape uint int) _type_ 0) + ) + ) +|# + +#| +(deftype collide-shape (trsqv) + ((actor-hash-index int16 :offset-assert 12) + (process process-drawable :offset-assert 140) ;; guessed by decompiler + (max-iteration-count uint8 :offset-assert 144) + (nav-flags uint8 :offset-assert 145) ;; nav-flags + (total-prims uint8 :offset-assert 146) + (num-riders uint8 :offset-assert 147) + (event-self symbol :offset-assert 152) ;; guessed by decompiler + (event-other symbol :offset-assert 156) ;; guessed by decompiler + (root-prim collide-shape-prim :offset-assert 160) ;; guessed by decompiler + (riders (inline-array collide-rider) :offset-assert 164) ;; guessed by decompiler + (penetrate-using penetrate :offset-assert 168) + (penetrated-by penetrate :offset-assert 176) + (event-priority uint8 :offset-assert 192) + (rider-max-momentum float :offset-assert 196) + ) + :method-count-assert 55 + :size-assert #xc8 + :flag-assert #x37000000c8 + ;; field penetrate is likely a value type. field penetrate is likely a value type. + (:methods + ;; (new (symbol type process-drawable collide-list-enum) _type_ 0) + (collide-shape-method-28 () none) ;; 28 ;; (move-by-vector! (_type_ vector) none 28) + (collide-shape-method-29 () none) ;; 29 ;; (move-to-point! (_type_ vector) none 29) + (collide-shape-method-30 () none) ;; 30 ;; (debug-draw (_type_) none 30) + (collide-shape-method-31 () none) ;; 31 ;; (fill-cache-for-shape (_type_ float collide-query) none 31) + (collide-shape-method-32 () none) ;; 32 ;; (fill-cache-integrate-and-collide (_type_ vector collide-query meters) none 32) + (collide-shape-method-33 () none) ;; 33 ;; (find-prim-by-id (_type_ uint) collide-shape-prim 33) + (collide-shape-method-34 () none) ;; 34 ;; (find-prim-by-id-logtest (_type_ uint) collide-shape-prim 34) + (collide-shape-method-35 () none) ;; 35 ;; (detect-riders! (_type_) symbol 35) + (collide-shape-method-36 () none) ;; 36 ;; (build-bounding-box-for-shape (_type_ bounding-box float collide-spec) symbol 36) + (collide-shape-method-37 () none) ;; 37 ;; (integrate-and-collide! (_type_ vector) none 37) + (collide-shape-method-38 () none) ;; 38 ;; (find-collision-meshes (_type_) none 38) + (collide-shape-method-39 () none) ;; 39 ;; (on-platform (_type_ collide-shape collide-query) symbol 39) + (collide-shape-method-40 () none) ;; 40 ;; (find-overlapping-shapes (_type_ overlaps-others-params) symbol 40) + (collide-shape-method-41 () none) ;; 41 ;; (shove-to-closest-point-on-path (_type_ attack-info float) vector 41) + (collide-shape-method-42 () none) ;; 42 ;; (should-push-away (_type_ collide-shape collide-query) symbol 42) + (collide-shape-method-43 () none) ;; 43 ;; (pull-rider! (_type_ pull-rider-info) none 43) + (collide-shape-method-44 () none) ;; 44 ;; (pull-riders! (_type_) symbol 44) + (collide-shape-method-45 () none) ;; 45 ;; (do-push-aways (_type_) collide-spec 45) + (collide-shape-method-46 () none) ;; 46 ;; (update-transforms (_type_) none 46) + (collide-shape-method-47 () none) ;; 47 ;; (set-collide-with! (_type_ collide-spec) none 47) + (collide-shape-method-48 () none) ;; 48 ;; (set-collide-as! (_type_ collide-spec) none 48) + (collide-shape-method-49 () none) ;; 49 ;; (modify-collide-as! (_type_ int collide-spec collide-spec) none 49) + (collide-shape-method-50 () none) ;; 50 ;; (send-shoves (_type_ process touching-shapes-entry float float float) symbol 50) + (collide-shape-method-51 () none) ;; 51 ;; (above-ground? (_type_ collide-query vector collide-spec float float float) symbol 51) + (collide-shape-method-52 () none) ;; 52 ;; (water-info-init! (_type_ water-info collide-action) water-info 52) + (collide-shape-method-53 () none) ;; 53 ;; (iterate-prims (_type_ (function collide-shape-prim none)) none 53) + (collide-shape-method-54 () none) ;; 54 ;; (pusher-init (_type_) none 54) + ) + ) +|# + +#| +(deftype collide-shape-moving (collide-shape) + ((rider-time uint64 :offset-assert 200) ;; time-frame + (rider-last-move vector :inline :offset-assert 208) + (trans-old vector :inline :offset-assert 224) + (poly-pat pat-surface :offset-assert 272) ;; guessed by decompiler + (cur-pat pat-surface :offset-assert 276) ;; guessed by decompiler + (ground-pat pat-surface :offset-assert 280) ;; guessed by decompiler + (status uint64 :offset-assert 288) ;; collide-status + (reaction (function control-info collide-query vector vector collide-status) :offset-assert 316) ;; guessed by decompiler + (no-reaction (function collide-shape-moving collide-query vector vector object) :offset-assert 320) ;; guessed by decompiler + (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) + (ground-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) ;; guessed by decompiler + (surf surface :offset-assert 472) ;; guessed by decompiler + ) + :method-count-assert 68 + :size-assert #x1dc + :flag-assert #x44000001dc + ;; field penetrate is likely a value type. field penetrate is likely a value type. + (:methods + ;; (new (symbol type process-drawable collide-list-enum) _type_ 0) + (collide-shape-moving-method-55 () none) ;; 55 ;; (find-ground (_type_ collide-query collide-spec float float float) symbol 55) + (collide-shape-moving-method-56 () none) ;; 56 ;; (react-to-pat! (_type_ pat-surface) cshape-reaction-flags 56) + (collide-shape-moving-method-57 () none) ;; 57 ;; (integrate-no-collide! (_type_ vector) none 57) + (collide-shape-moving-method-58 () none) ;; 58 ;; (integrate-for-enemy-no-mtg (_type_ vector overlaps-others-params) symbol 58) + (collide-shape-moving-method-59 () none) ;; 59 ;; (move-above-ground (_type_ vector move-above-ground-params) none 59) + (collide-shape-moving-method-60 () none) ;; 60 ;; (move-to-ground (_type_ float float symbol collide-spec) none 60) + (collide-shape-moving-method-61 () none) ;; 61 ;; (move-to-ground-point (_type_ vector vector vector) none 61) + (collide-shape-moving-method-62 () none) ;; 62 ;; (compute-acc-due-to-gravity (_type_ vector float) vector 62) + (collide-shape-moving-method-63 () none) ;; 63 ;; (collide-shape-moving-method-63 (_type_ rigid-body float) none 63) + (collide-shape-moving-method-64 () none) ;; 64 ;; (try-snap-to-surface (_type_ vector float float float) symbol 64) + (collide-shape-moving-method-65 () none) ;; 65 ;; (fill-and-try-snap-to-surface (_type_ vector float float float collide-query) symbol 65) + (collide-shape-moving-method-66 () none) ;; 66 ;; (step-collison! (_type_ vector vector float int) float 66) + (collide-shape-moving-method-67 () none) ;; 67 ;; (collide-with-all-collide-cache-prims (_type_ matrix collide-query) none 67) + ) + ) +|# + +;; (define-extern *collide-hit-by-player-list* object) ;; engine +;; (define-extern *collide-hit-by-others-list* object) ;; engine +;; (define-extern *collide-player-list* object) ;; engine +;; (define-extern *collide-shape-prim-backgnd* collide-shape-prim-mesh) ;; collide-shape-prim-mesh +;; (define-extern *collide-shape-prim-water* collide-shape-prim-mesh) ;; collide-shape-prim-mesh +;; (define-extern *collide-rider-pool* object) ;; collide-rider-pool + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; hover-nav-precura ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *precura-adjacency* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; generic-obs-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (deftype manipy (process-drawable) +;; () +;; :flag-assert #x1501000174 +;; ) + +#| +(deftype part-spawner (process) + ((root trsqv :offset-assert 128) ;; guessed by decompiler + (part sparticle-launch-control :offset-assert 132) ;; guessed by decompiler + (path basic :offset-assert 136) + (sound ambient-sound :offset-assert 140) ;; guessed by decompiler + (sound-extra basic :offset-assert 144) + (mode (pointer sparticle-launch-group) :offset-assert 148) ;; guessed by decompiler + (enable symbol :offset-assert 152) ;; guessed by decompiler + (path-pos float :offset-assert 156) + (path-speed float :offset-assert 160) + (last-velocity vector :inline :offset-assert 176) + (radius meters :offset-assert 192) + (world-sphere sphere :inline :offset-assert 208) + ) + :method-count-assert 16 + :size-assert #xe0 + :flag-assert #x10006000e0 + (:methods + (part-spawner-method-14 () none) ;; 14 ;; (active () _type_ :state 14) + (part-spawner-method-15 () none) ;; 15 ;; (is-in-view? (_type_) symbol 15) + ) + ) +|# + +#| +(deftype part-tracker (process) + ((root trsqv :offset-assert 128) ;; guessed by decompiler + (mat matrix :inline :offset-assert 144) + (offset vector :inline :offset-assert 208) + (userdata uint64 :offset-assert 224) + (user-time time-frame 2 :offset-assert 232) ;; guessed by decompiler + (user-vector vector :inline :offset-assert 256) + (user-handle uint32 2 :offset-assert 288) ;; guessed by decompiler + (part sparticle-launch-control :offset-assert 296) ;; guessed by decompiler + (callback (function part-tracker vector) :offset-assert 300) ;; guessed by decompiler + (linger-callback (function part-tracker vector) :offset-assert 304) ;; guessed by decompiler + (duration uint64 :offset-assert 312) + (linger-duration uint64 :offset-assert 320) + (state-time uint64 :offset-assert 328) + (target uint64 :offset-assert 336) ;; handle + (target-joint int32 :offset-assert 344) + ) + :method-count-assert 18 + :size-assert #x15c + :flag-assert #x1200e0015c + ;; field userdata uses ~A with a 64-bit load. + (:methods + (part-tracker-method-14 () none) ;; 14 ;; (active () _type_ :state 14) + (part-tracker-method-15 () none) ;; 15 ;; (notify-parent-of-death (_type_) none 15) + (part-tracker-method-16 () none) ;; 16 + (part-tracker-method-17 () none) ;; 17 + ) + ) +|# + +#| +(deftype part-tracker-init-params (structure) + ((userdata uint64 :offset-assert 0) + (duration uint64 :offset-assert 8) + (group basic :offset-assert 16) + (callback basic :offset-assert 20) + (target basic :offset-assert 24) + (mat-joint basic :offset-assert 28) + ) + :method-count-assert 9 + :size-assert #x20 + :flag-assert #x900000020 + ;; field userdata uses ~A with a 64-bit load. field mat-joint uses ~A with a signed load. + ) +|# + +#| +(deftype part-tracker-subsampler-init-params (structure) + ((userdata uint64 :offset-assert 0) + (duration uint64 :offset-assert 8) + (group basic :offset-assert 16) + (callback basic :offset-assert 20) + (target basic :offset-assert 24) + (mat-joint basic :offset-assert 28) + (subsample-num float :offset-assert 32) + ) + :method-count-assert 9 + :size-assert #x24 + :flag-assert #x900000024 + ;; field userdata uses ~A with a 64-bit load. field mat-joint uses ~A with a signed load. + ) +|# + +#| +(deftype part-tracker-subsampler (part-tracker) + ((subsampler basic :offset-assert 348) + ) + :method-count-assert 18 + :size-assert #x160 + :flag-assert #x1200e00160 + ) +|# + +#| +(deftype lightning-tracker (process) + ((root trsqv :offset-assert 128) ;; guessed by decompiler + (lightning lightning-control :offset-assert 132) ;; guessed by decompiler + (callback (function lightning-tracker none) :offset-assert 136) ;; guessed by decompiler + (duration uint64 :offset-assert 144) + (start-time uint64 :offset-assert 152) ;; time-frame + (offset0 vector :inline :offset-assert 160) + (offset1 vector :inline :offset-assert 176) + (target0 uint64 :offset-assert 192) ;; handle + (target1 uint64 :offset-assert 200) ;; handle + (target-joint0 int32 :offset-assert 208) + (target-joint1 int32 :offset-assert 212) + (sound sound-id :offset-assert 216) ;; guessed by decompiler + (userdata uint64 :offset-assert 224) + (user-time time-frame 2 :offset-assert 232) ;; guessed by decompiler + (user-vector vector :inline :offset-assert 256) + (user-handle handle 2 :offset-assert 288) ;; guessed by decompiler + ) + :method-count-assert 17 + :size-assert #x130 + :flag-assert #x1100b00130 + ;; field userdata uses ~A with a 64-bit load. + (:methods + (lightning-tracker-method-14 () none) ;; 14 ;; (active () _type_ :state 14) + (lightning-tracker-method-15 () none) ;; 15 ;; (notify-parent-of-death (_type_) none 15) + (lightning-tracker-method-16 () none) ;; 16 ;; (update (_type_) none 16) + ) + ) +|# + +#| +(deftype touch-tracker (process-drawable) + ((duration uint64 :offset-assert 200) ;; time-frame + (target uint64 :offset-assert 208) ;; handle + (event symbol :offset-assert 216) ;; guessed by decompiler + (run-function (function object) :offset-assert 220) ;; guessed by decompiler + (callback (function touch-tracker none) :offset-assert 224) ;; guessed by decompiler + (event-mode basic :offset-assert 228) + ) + :method-count-assert 21 + :size-assert #xe8 + :flag-assert #x15007000e8 + (:methods + (touch-tracker-method-20 () none) ;; 20 ;; (active () _type_ :state 20) + ) + ) +|# + +#| +(deftype swingpole (process-drawable) + ((edge-length meters :offset-assert 200) + (path-pos float :offset-assert 204) + (joint-track int32 :offset-assert 208) + (speed meters :offset-assert 212) + (dir vector :inline :offset-assert 224) + (sync sync-eased :inline :offset-assert 240) + ) + :method-count-assert 25 + :size-assert #x11c + :flag-assert #x1900a0011c + (:methods + (swingpole-method-20 () none) ;; 20 ;; (idle () _type_ :state 20) + (swingpole-method-21 () none) ;; 21 ;; (active (handle) _type_ :state 21) + (swingpole-method-22 () none) ;; 22 ;; (move-along-path (_type_) none 22) + (swingpole-method-23 () none) ;; 23 + (swingpole-method-24 () none) ;; 24 + ) + ) +|# + +#| +(deftype gui-query (structure) + ((x-position int32 :offset-assert 0) + (y-position int32 :offset-assert 4) + (message string :offset-assert 8) ;; guessed by decompiler + (decision symbol :offset-assert 12) ;; guessed by decompiler + (only-allow-cancel symbol :offset-assert 16) ;; guessed by decompiler + (no-msg string :offset-assert 20) ;; guessed by decompiler + (message-space int32 :offset-assert 24) + ) + :method-count-assert 11 + :size-assert #x1c + :flag-assert #xb0000001c + (:methods + (gui-query-method-9 () none) ;; 9 ;; (gui-query-method-9 () none 9) + (gui-query-method-10 () none) ;; 10 ;; (gui-query-method-10 () none 10) + ) + ) +|# + +#| +(deftype othercam (process) + ((hand uint64 :offset-assert 128) ;; handle + (old-global-mask process-mask :offset-assert 136) ;; guessed by decompiler + (mask-to-clear process-mask :offset-assert 140) ;; guessed by decompiler + (cam-joint-index int32 :offset-assert 144) + (old-pos vector :inline :offset-assert 160) + (old-mat-z vector :inline :offset-assert 176) + (had-valid-frame basic :offset-assert 192) + (border-value basic :offset-assert 196) + (die? symbol :offset-assert 200) ;; guessed by decompiler + (survive-anim-end? symbol :offset-assert 204) ;; guessed by decompiler + (spooling? symbol :offset-assert 208) ;; guessed by decompiler + (fov float :offset-assert 212) + ) + :method-count-assert 14 + :size-assert #xd8 + :flag-assert #xe006000d8 + (:states + othercam-running ;; associated process guessed by decompiler, old: (state othercam) + ) + ) +|# + +#| +(deftype explosion-init-params (structure) + ((spawn-point vector :inline :offset-assert 0) + (spawn-quat quaternion :inline :offset-assert 16) + (radius float :offset-assert 32) + (scale float :offset-assert 36) + (group sparticle-launch-group :offset-assert 40) ;; guessed by decompiler + (collide-with collide-spec :offset-assert 44) ;; guessed by decompiler + (damage float :offset-assert 48) + (damage-scale float :offset-assert 52) + (vehicle-damage-factor float :offset-assert 56) + (vehicle-impulse-factor float :offset-assert 60) + (ignore-proc uint64 :offset-assert 64) + ) + :method-count-assert 9 + :size-assert #x48 + :flag-assert #x900000048 + ) +|# + +#| +(deftype explosion (process-drawable) + ((start-time uint64 :offset-assert 200) ;; time-frame + (duration uint32 :offset-assert 208) + (linger-duration uint32 :offset-assert 212) + (attack-id uint32 :offset-assert 216) + (mat matrix :inline :offset-assert 224) + (params explosion-init-params :inline :offset-assert 288) + ) + :method-count-assert 23 + :size-assert #x168 + :flag-assert #x1700f00168 + (:methods + (explosion-method-20 () none) ;; 20 ;; (explode () _type_ :state 20) + (explosion-method-21 () none) ;; 21 ;; (setup-explosion-collision (_type_) none 21) + (explosion-method-22 () none) ;; 22 ;; (explosion-method-22 (_type_) none 22) + ) + ) +|# + +#| +(deftype process-hidden (process) + ((name string :offset-assert 0) ;; guessed by decompiler + (mask process-mask :offset-assert 4) + (clock clock :offset-assert 8) ;; guessed by decompiler + (parent (pointer process-tree) :offset-assert 12) ;; guessed by decompiler + (brother (pointer process-tree) :offset-assert 16) ;; guessed by decompiler + (child (pointer process-tree) :offset-assert 20) ;; guessed by decompiler + (ppointer (pointer process) :offset-assert 24) ;; guessed by decompiler + (self process :offset-assert 28) ;; guessed by decompiler + (pool dead-pool :offset-assert 32) ;; guessed by decompiler + (status symbol :offset-assert 36) ;; guessed by decompiler + (pid int32 :offset-assert 40) + (main-thread cpu-thread :offset-assert 44) ;; guessed by decompiler + (top-thread cpu-thread :offset-assert 48) ;; guessed by decompiler + (entity entity-actor :offset-assert 52) ;; guessed by decompiler + (level level :offset-assert 56) ;; guessed by decompiler + (state state :offset-assert 60) ;; guessed by decompiler + (prev-state basic :offset-assert 64) + (next-state state :offset-assert 68) ;; guessed by decompiler + (state-stack basic :offset-assert 72) + (trans-hook function :offset-assert 76) ;; guessed by decompiler + (post-hook function :offset-assert 80) ;; guessed by decompiler + (event-hook (function process int symbol event-message-block object) :offset-assert 84) ;; guessed by decompiler + (allocated-length int32 :offset-assert 88) + (heap-base pointer :offset-assert 92) ;; guessed by decompiler + (heap-top pointer :offset-assert 96) ;; guessed by decompiler + (heap-cur pointer :offset-assert 100) ;; guessed by decompiler + (stack-frame-top stack-frame :offset-assert 104) ;; guessed by decompiler + (heap kheap :inline :offset-assert 92) + (connection-list connectable :inline :offset-assert 108) + (stack uint8 :dynamic :offset-assert 124) ;; guessed by decompiler + ) + :method-count-assert 15 + :size-assert #x80 + :flag-assert #xf00000080 + (:methods + (process-hidden-method-14 () none) ;; 14 ;; (die () _type_ :state 14) + ) + ) +|# + +#| +(deftype simple-prim (process-drawable) + ((strip basic :offset-assert 200) + ) + :method-count-assert 26 + :size-assert #xcc + :flag-assert #x1a005000cc + (:methods + (simple-prim-method-20 () none) ;; 20 + (simple-prim-method-21 () none) ;; 21 + (simple-prim-method-22 () none) ;; 22 + (simple-prim-method-23 () none) ;; 23 + (simple-prim-method-24 () none) ;; 24 + (simple-prim-method-25 () none) ;; 25 + ) + ) +|# + +#| +(deftype task-arrow-params (structure) + ((flags task-arrow-flags :offset-assert 0) ;; guessed by decompiler + (map-icon uint16 :offset-assert 4) + (pos vector :inline :offset-assert 16) + (quat quaternion :inline :offset-assert 32) + ) + :method-count-assert 9 + :size-assert #x30 + :flag-assert #x900000030 + ) +|# + +#| +(deftype external-camera-controller (process) + ((pause-time uint64 :offset-assert 128) + (blur basic :offset-assert 136) + ) + :method-count-assert 15 + :size-assert #x8c + :flag-assert #xf0010008c + (:methods + (external-camera-controller-method-14 () none) ;; 14 + ) + ) +|# + +;; (define-extern *simple-prim-additive* object) +;; (define-extern *simple-prim-alpha-blend* object) +;; (define-extern *simple-prim-subtractive* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; subdivide ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *merc-global-stats* object) ;; merc-global-stats +;; (define-extern clear-tr-stat function) ;; (function tr-stat none) +;; (define-extern *stat-string-tfrag* object) ;; string +;; (define-extern *stat-string-tfrag-scissor* object) ;; string +;; (define-extern *stat-string-total* object) ;; string +;; (define-extern print-tr-stat function) ;; (function tr-stat string string none) +;; (define-extern print-terrain-stats function) ;; (function none) +;; (define-extern update-subdivide-settings! function) ;; (function subdivide-settings math-camera int none) +;; (define-extern *subdivide-settings* object) ;; subdivide-settings +;; (define-extern set-tfrag-dists! function) ;; (function tfrag-dists none) +;; (define-extern *terrain-context* object) ;; terrain-context +;; (define-extern GSH_ENABLE object) ;; symbol +;; (define-extern GSH_BUCKET object) ;; bucket-id +;; (define-extern GSH_WHICH_STAT object) ;; int +;; (define-extern GSH_MAX_DISPLAY object) ;; basic +;; (define-extern GSH_TIME object) ;; int +;; (define-extern *perf-stats* object) ;; perf-stat-array +;; (define-extern *gomi-stats-hack* object) ;; (inline-array perf-stat) +;; (define-extern start-perf-stat-collection function) ;; (function none) +;; (define-extern end-perf-stat-collection function) ;; (function none) +;; (define-extern print-perf-stats function) ;; (function none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; sparticle ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern sp-particle-copy! function) ;; (function sparticle-cpuinfo sparticle-cpuinfo none) +;; (define-extern *sp-particle-system-2d* object) ;; sparticle-system +;; (define-extern *sp-particle-system-3d* object) ;; sparticle-system +;; (define-extern sp-get-block-size function) ;; (function sparticle-system int int) +;; (define-extern sp-get-approx-alloc-size function) ;; (function sparticle-system int int) +;; (define-extern sp-free-particle function) ;; (function sparticle-system int sparticle-cpuinfo sprite-vec-data-2d none) +;; (define-extern sp-get-particle function) ;; (function sparticle-system int sparticle-launch-state sparticle-cpuinfo) +;; (define-extern sp-kill-particle function) ;; (function sparticle-system sparticle-cpuinfo symbol) +;; (define-extern sp-orbiter function) ;; (function sparticle-system sparticle-cpuinfo vector none) +;; (define-extern sp-process-block-2d function) ;; (function sparticle-system int int int int symbol none) +;; (define-extern sp-process-block-3d function) ;; (function sparticle-system int int int int symbol none) +;; (define-extern sp-copy-to-spr function) ;; (function int pointer int none) +;; (define-extern sp-copy-from-spr function) ;; (function int pointer int none) +;; (define-extern memcpy function) ;; function +;; (define-extern sp-process-block function) ;; (function sparticle-system int sprite-array-2d int none) +;; (define-extern sp-process-particle-system function) ;; (function sparticle-system int sprite-array-2d none) +;; (define-extern *particles-flag* object) ;; symbol +;; (define-extern forall-particles-with-key-runner function) ;; (function sparticle-launch-control (function sparticle-system sparticle-cpuinfo none) sparticle-system none) +;; (define-extern forall-particles-with-key function) ;; (function sparticle-launch-control (function sparticle-system sparticle-cpuinfo none) symbol symbol none) +;; (define-extern sparticle-kill-it function) ;; (function sparticle-system sparticle-cpuinfo none) +;; (define-extern *sparticle-kill-it-level* object) +;; (define-extern sparticle-kill-it-level function) +;; (define-extern sparticle-60-to-50 function) ;; (function sparticle-system sparticle-cpuinfo pointer none) +;; (define-extern sparticle-50-to-60 function) ;; (function sparticle-system sparticle-cpuinfo pointer none) +;; (define-extern kill-all-particles-with-key function) ;; (function sparticle-launch-control none) +;; (define-extern forall-particles-runner function) ;; (function (function sparticle-system sparticle-cpuinfo pointer none) sparticle-system none) +;; (define-extern forall-particles function) ;; (function function symbol symbol none) +;; (define-extern kill-all-particles-in-level function) ;; (function level int) +;; (define-extern all-particles-50-to-60 function) ;; (function none) +;; (define-extern all-particles-60-to-50 function) ;; (function none) +;; (define-extern remap-particle function) ;; (function sparticle-system sparticle-cpuinfo pointer none) +;; (define-extern remap-all-particles function) ;; (function none) +;; (define-extern process-particles function) ;; (function none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; collide-target-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (deftype control-info (collide-shape-moving) +;; () +;; :flag-assert #x4400001914 +;; ) + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; process-drawable-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern cspace-by-name-no-fail function) ;; (function process-drawable string cspace) +;; (define-extern cspace-index-by-name-no-fail function) ;; (function process-drawable string int) +;; (define-extern num-func-none function) ;; (function joint-control-channel float float float float :behavior process) +;; (define-extern num-func-+! function) ;; (function joint-control-channel float float float float :behavior process) +;; (define-extern num-func--! function) ;; (function joint-control-channel float float float float :behavior process) +;; (define-extern num-func-loop! function) ;; (function joint-control-channel float float float float :behavior process) +;; (define-extern num-func-loop-speedless! function) ;; (function joint-control-channel float float float float :behavior process) +;; (define-extern num-func-loop-set! function) +;; (define-extern num-func-seek! function) ;; (function joint-control-channel float float float float :behavior process) +;; (define-extern num-func-blend-in! function) ;; (function joint-control-channel float float float float :behavior process) +;; (define-extern joint-channel-float-delete! function) ;; (function joint-control-channel none) +;; (define-extern num-func-interp-play! function) ;; (function joint-control-channel float float float float :behavior process) +;; (define-extern num-func-interp1-play! function) ;; (function joint-control-channel float float float float :behavior process) +;; (define-extern num-func-chan function) ;; (function joint-control-channel float float float float :behavior process) +;; (define-extern num-func-identity function) ;; (function joint-control-channel float float float float :behavior process) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; forest-bridges ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype for-break-bridge-board (process-drawable) + () + :method-count-assert 24 + :size-assert #xc8 + :flag-assert #x18005000c8 + (:methods + (for-break-bridge-board-method-22 () none) ;; 22 + (for-break-bridge-board-method-23 () none) ;; 23 + ) + (:state-methods + idle ;; 20 + die ;; 21 + ) + ) +|# + +#| +(deftype for-break-bridge-board-a (for-break-bridge-board) + () + :method-count-assert 24 + :size-assert #xc8 + :flag-assert #x18005000c8 + ) +|# + +#| +(deftype for-break-bridge-board-b (for-break-bridge-board) + () + :method-count-assert 24 + :size-assert #xc8 + :flag-assert #x18005000c8 + ) +|# + +#| +(deftype for-break-bridge-board-c (for-break-bridge-board) + () + :method-count-assert 24 + :size-assert #xc8 + :flag-assert #x18005000c8 + ) +|# + +#| +(deftype for-break-bridge-board-d (for-break-bridge-board) + () + :method-count-assert 24 + :size-assert #xc8 + :flag-assert #x18005000c8 + ) +|# + +;; (define-extern *for-break-bridge-board-exploder-params* joint-exploder-static-params) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; process-focusable ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype process-focusable (process-drawable) + ((focus-status uint64 :offset-assert 200) ;; focus-status + ) + :method-count-assert 28 + :size-assert #xd0 + :flag-assert #x1c005000d0 + (:methods + (process-focusable-method-20 () none) ;; 20 ;; (get-trans (_type_ int) vector 20) + (process-focusable-method-21 () none) ;; 21 ;; (get-quat (_type_ int) quaternion 21) + (process-focusable-method-22 () none) ;; 22 ;; (get-transv (_type_) vector 22) + (process-focusable-method-23 () none) ;; 23 ;; (time-to-apex-or-ground (_type_ int) int 23) + (process-focusable-method-24 () none) ;; 24 ;; (get-water-height (_type_) meters 24) + (process-focusable-method-25 () none) ;; 25 ;; (get-notice-time (_type_) time-frame 25) + (process-focusable-method-26 () none) ;; 26 ;; (get-inv-mass (_type_) float 26) + (process-focusable-method-27 () none) ;; 27 + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; process-taskable-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype process-taskable (process-focusable) + ((flags uint32 :offset-assert 208) + (task game-task-control :offset-assert 212) ;; guessed by decompiler + (ambient ambient-control :inline :offset-assert 216) + (neck-joint-index int32 :offset-assert 232) + (talk-message text-id :offset-assert 236) ;; guessed by decompiler + (talk-distance meters :offset-assert 240) + (talk-height meters :offset-assert 244) + (last-talk uint64 :offset-assert 248) ;; time-frame + (want-to-say uint64 :offset-assert 256) ;; time-frame + (birth-time uint64 :offset-assert 264) ;; time-frame + (slave uint64 :offset-assert 272) ;; handle + ) + :method-count-assert 40 + :size-assert #x118 + :flag-assert #x2800a00118 + (:methods + (process-taskable-method-28 () none) ;; 28 ;; (idle () _type_ :state 28) + (process-taskable-method-29 () none) ;; 29 ;; (active (game-task-event) _type_ :state 29) + (process-taskable-method-30 () none) ;; 30 ;; (play-game (game-task-event) _type_ :state 30) + (process-taskable-method-31 () none) ;; 31 ;; (process-taskable-method-31 (_type_) none 31) + (process-taskable-method-32 () none) ;; 32 ;; (process-taskable-method-32 (_type_) none 32) + (process-taskable-method-33 () none) ;; 33 ;; (init-art! (_type_) none 33) + (process-taskable-method-34 () none) ;; 34 ;; (process-taskable-method-34 (_type_) symbol 34) + (process-taskable-method-35 () none) ;; 35 ;; (get-art-elem (_type_) art-element 35) + (process-taskable-method-36 () none) ;; 36 ;; (process-taskable-method-36 (_type_) none 36) + (process-taskable-method-37 () none) ;; 37 ;; (process-taskable-method-37 (_type_) none 37) + (process-taskable-method-38 () none) ;; 38 + (process-taskable-method-39 () none) ;; 39 + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; collide-frag-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype collide-frag-vertex (vector) + () + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype collide-frag-mesh (basic) + ((packed-data uint32 :offset-assert 4) + (pat-array uint32 :offset-assert 8) + (strip-data-len uint16 :offset-assert 12) + (poly-count uint16 :offset-assert 14) + (base-trans vector4w :inline :offset-assert 16) + (vertex-count uint8 :offset-assert 28) + (vertex-data-qwc uint8 :offset-assert 29) + (total-qwc uint8 :offset-assert 30) + (unused uint8 :offset-assert 31) + ) + :method-count-assert 9 + :size-assert #x20 + :flag-assert #x900000020 + ) +|# + +#| +(deftype collide-fragment (drawable) + ((mesh collide-frag-mesh :offset-assert 8) ;; guessed by decompiler + (collide-new basic :offset-assert 12) + ) + :method-count-assert 17 + :size-assert #x20 + :flag-assert #x1100000020 + ) +|# + +#| +(deftype drawable-inline-array-collide-fragment (drawable-inline-array) + ((data collide-fragment 1 :offset-assert 36) ;; guessed by decompiler + ) + :method-count-assert 17 + :size-assert #x44 + :flag-assert #x1100000044 + ) +|# + +;; (deftype drawable-tree-collide-fragment (drawable-tree) +;; () +;; :flag-assert #x1100000020 +;; ) + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; time-of-day ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern time-of-day-effect object) ;; (function none) +;; (define-extern time-of-day-update function) ;; (function none :behavior time-of-day-proc) +;; (define-extern update-counters function) ;; (function float :behavior time-of-day-proc) +;; (define-extern time-of-day-tick state) ;; (state time-of-day-proc) +;; (define-extern init-time-of-day function) ;; (function object :behavior time-of-day-proc) +;; (define-extern start-time-of-day function) ;; (function (pointer process)) +;; (define-extern time-of-day-setup function) ;; (function symbol symbol) +;; (define-extern time-of-day-interp-colors function) ;; (function (pointer rgba) uint mood-context none) +;; (define-extern time-of-day-interp-colors-scratch function) ;; (function (pointer rgba) time-of-day-palette mood-context none) +;; (define-extern init-time-of-day-context function) ;; (function time-of-day-context symbol) +;; (define-extern set-filter-color! function) ;; (function float float float none) +;; (define-extern tod-madd! function) ;; (function vector vector vector float) +;; (define-extern update-environment-colors function) ;; (function time-of-day-context vector) +;; (define-extern update-time-of-day function) ;; (function time-of-day-context none) +;; (define-extern calc-fade-from-fog function) ;; (function vector float) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; effect-control-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype effect-control (basic) + ((process process-drawable :offset-assert 4) ;; guessed by decompiler + (flags effect-control-flag :offset-assert 8) ;; guessed by decompiler + (last-frame-group art-joint-anim :offset-assert 12) ;; guessed by decompiler + (last-frame-num float :offset-assert 16) + (channel-offset int32 :offset-assert 20) + (res res-lump :offset-assert 24) ;; guessed by decompiler + (name (pointer res-tag) :offset-assert 28) ;; guessed by decompiler + (param uint32 :offset-assert 32) + ) + :method-count-assert 15 + :size-assert #x24 + :flag-assert #xf00000024 + (:methods + ;; (new (symbol type process-drawable) _type_ 0) + (effect-control-method-9 () none) ;; 9 ;; (update-effects (_type_) none 9) + (effect-control-method-10 () none) ;; 10 ;; (do-effect (_type_ symbol float int) none 10) + (effect-control-method-11 () none) ;; 11 ;; (do-effect-for-surface (_type_ symbol float int basic pat-surface) none 11) + (effect-control-method-12 () none) ;; 12 ;; (play-effect-sound (_type_ symbol float int basic sound-name) int 12) + (effect-control-method-13 () none) ;; 13 ;; (set-channel-offset! (_type_ int) none 13) + (effect-control-method-14 () none) ;; 14 ;; (play-effects-from-res-lump (_type_ float float float) none 14) + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ff-squad-control ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *alert-level-settings* object) ;; (inline-array traffic-alert-state-settings) +;; (define-extern *ff-war-alert-state-settings* object) +;; (define-extern *ff-guard-type-mask* object) +;; (define-extern set-ff-primary-target function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; water-info-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype water-info (structure) + ((trans vector :inline :offset-assert 0) + (normal vector :inline :offset-assert 16) + (base-height meters :offset-assert 32) + (depth meters :offset-assert 36) + (handle uint64 :offset-assert 40) ;; handle + (flags water-flag :offset-assert 48) ;; water-flags + (prim drawable-region-prim :offset-assert 52) ;; guessed by decompiler + (extra-flags uint32 :offset-assert 56) + ) + :method-count-assert 9 + :size-assert #x3c + :flag-assert #x90000003c + ) +|# + +#| +(deftype water-sphere (structure) + ((sphere sphere :inline :offset-assert 0) + (flags water-flag :offset-assert 16) + (user0 int32 :offset-assert 20) + ) + :method-count-assert 9 + :size-assert #x18 + :flag-assert #x900000018 + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ocean-near ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern ocean-near-block object) ;; vu-function + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; load-dgo ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype load-dgo-msg (structure) + ((rsvd uint16 :offset-assert 0) + (result uint16 :offset-assert 2) ;; load-msg-result + (b1 pointer :offset-assert 4) ;; guessed by decompiler + (b2 pointer :offset-assert 8) ;; guessed by decompiler + (bt pointer :offset-assert 12) ;; guessed by decompiler + (name uint128 :offset-assert 16) + (address uint32 :offset-assert 4) + (id uint128 :offset-assert 32) + ) + :method-count-assert 9 + :size-assert #x4c + :flag-assert #x90000004c + ) +|# + +#| +(deftype load-chunk-msg (structure) + ((rsvd uint16 :offset-assert 0) + (result uint16 :offset-assert 2) ;; load-msg-result + (address pointer :offset-assert 4) ;; guessed by decompiler + (section uint32 :offset-assert 8) + (maxlen uint32 :offset-assert 12) + (dummy uint32 4 :offset-assert 16) ;; guessed by decompiler + (basename sound-stream-name :inline :offset-assert 32) + ) + :method-count-assert 9 + :size-assert #x50 + :flag-assert #x900000050 + ) +|# + +#| +(deftype play-chunk-msg (structure) + ((rsvd uint16 :offset-assert 0) + (result uint16 :offset-assert 2) + (address pointer :offset-assert 4) ;; guessed by decompiler + (section uint32 :offset-assert 8) + (volume int32 :offset-assert 8) + (maxlen uint32 :offset-assert 12) + (group uint8 :offset-assert 12) + (id uint32 4 :offset-assert 16) ;; guessed by decompiler + (basename sound-stream-name 4 :offset-assert 32) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #xe0 + :flag-assert #x9000000e0 + ) +|# + +;; (define-extern *load-dgo-rpc* object) ;; rpc-buffer-pair +;; (define-extern *load-str-rpc* object) ;; rpc-buffer-pair +;; (define-extern *play-str-rpc* object) ;; rpc-buffer-pair +;; (define-extern *load-str-lock* object) ;; symbol +;; (define-extern *que-str-lock* object) ;; symbol +;; (define-extern *dgo-name* object) ;; string +;; (define-extern str-load function) ;; (function string int pointer int symbol) +;; (define-extern str-load-status function) ;; (function (pointer int32) symbol) +;; (define-extern str-load-cancel function) ;; (function none) +;; (define-extern str-play-async function) ;; (function string sound-id none) +;; (define-extern str-play-stop function) ;; (function string sound-id none) +;; (define-extern str-play-queue function) ;; (function string string string string (pointer uint32) pointer none) +;; (define-extern str-ambient-play function) ;; (function string none) +;; (define-extern str-ambient-stop function) ;; (function string none) +;; (define-extern str-play-kick function) ;; (function none) +;; (define-extern *dgo-time* object) ;; time-frame +;; (define-extern dgo-load-begin function) ;; (function string pointer pointer pointer load-dgo-msg) +;; (define-extern dgo-load-get-next function) ;; (function (pointer symbol) pointer) +;; (define-extern dgo-load-continue function) ;; (function pointer pointer pointer load-dgo-msg) +;; (define-extern dgo-load-cancel function) ;; (function none) +;; (define-extern find-temp-buffer function) ;; (function int pointer) +;; (define-extern dgo-load-link function) ;; (function dgo-header kheap uint symbol symbol symbol) +;; (define-extern destroy-mem function) ;; (function (pointer uint32) (pointer uint32) none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; drawable-inline-array ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; chain-physics-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype chain-physics-setup (structure) + ((joint-index int32 :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x4 + :flag-assert #x900000004 + ) +|# + +#| +(deftype chain-physics-joint (structure) + ((position vector :inline :offset-assert 0) + (velocity vector :inline :offset-assert 16) + (old-x vector :inline :offset-assert 32) + (joint-mod joint-mod :offset-assert 48) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x34 + :flag-assert #x900000034 + ) +|# + +#| +(deftype chain-physics (basic) + ((chain-joints chain-physics-joint 20 :offset-assert 16) ;; guessed by decompiler + (num-joints uint8 :offset-assert 1296) + (root-joint-index uint8 :offset-assert 1297) + (joint-length float :offset-assert 1300) + (gravity vector :inline :offset-assert 1312) + (gravity-target vector :inline :offset-assert 1328) + (stretch-vel float :offset-assert 1344) + (stretch-vel-parallel float :offset-assert 1348) + (compress-vel float :offset-assert 1352) + (compress-vel-parallel float :offset-assert 1356) + (negate-y symbol :offset-assert 1360) ;; guessed by decompiler + (axial-slop float :offset-assert 1364) + (maximum-stretch float :offset-assert 1368) + (turn-off-start uint64 :offset-assert 1376) ;; time-frame + (turn-off-duration uint64 :offset-assert 1384) ;; time-frame + ) + :method-count-assert 18 + :size-assert #x570 + :flag-assert #x1200000570 + (:methods + (chain-physics-method-9 () none) ;; 9 ;; (initialize-chain-joints (_type_) symbol 9) + (chain-physics-method-10 () none) ;; 10 ;; (turn-off (_type_ time-frame) none 10) + (chain-physics-method-11 () none) ;; 11 ;; (update (_type_ process-drawable) none 11) + (chain-physics-method-12 () none) ;; 12 ;; (gravity-update (_type_ process-drawable) none 12) + (chain-physics-method-13 () none) ;; 13 ;; (apply-gravity (_type_ vector int process-drawable) none 13) + (chain-physics-method-14 () none) ;; 14 ;; (chain-physics-method-14 (_type_ vector int) none 14) + (chain-physics-method-15 () none) ;; 15 ;; (clamp-length (_type_ vector vector object process-drawable) vector 15) + (chain-physics-method-16 () none) ;; 16 ;; (chain-physics-method-16 (_type_ int) float 16) + (chain-physics-method-17 () none) ;; 17 ;; (chain-physics-method-17 (_type_ vector int) none 17) + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ragdoll-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype ragdoll-edit-info (structure) + ((editing basic :offset-assert 0) + (current-func uint64 :offset-assert 8) + (analog-func uint64 :offset-assert 16) + (affect uint64 :offset-assert 24) + (single-step uint64 :offset-assert 32) + (collision basic :offset-assert 40) + (gravity basic :offset-assert 44) + (skel-visible uint64 :offset-assert 48) + (current-joint int8 :offset-assert 56) + (auto-setup-now basic :offset-assert 60) + (child-stack UNKNOWN 60 :offset-assert 64) + (child-stack-num int8 :offset-assert 304) + (last-frame uint64 :offset-assert 312) + (last-frame-dur uint64 :offset-assert 320) + ) + :method-count-assert 18 + :size-assert #x148 + :flag-assert #x1200000148 + (:methods + (ragdoll-edit-info-method-9 () none) ;; 9 + (ragdoll-edit-info-method-10 () none) ;; 10 + (ragdoll-edit-info-method-11 () none) ;; 11 + (ragdoll-edit-info-method-12 () none) ;; 12 + (ragdoll-edit-info-method-13 () none) ;; 13 + (ragdoll-edit-info-method-14 () none) ;; 14 + (ragdoll-edit-info-method-15 () none) ;; 15 + (ragdoll-edit-info-method-16 () none) ;; 16 + (ragdoll-edit-info-method-17 () none) ;; 17 + ) + ) +|# + +#| +(deftype ragdoll-joint-setup (structure) + ((joint-index int32 :offset-assert 0) + (parent-joint int32 :offset-assert 4) + (joint-type uint64 :offset-assert 8) + (pre-tform vector :inline :offset-assert 16) + (geo-tform vector :inline :offset-assert 32) + (axial-slop float :offset-assert 48) + (max-angle float :offset-assert 52) + (coll-rad float :offset-assert 56) + (hit-sound uint128 :offset-assert 64) + ) + :method-count-assert 9 + :size-assert #x50 + :flag-assert #x900000050 + ) +|# + +#| +(deftype ragdoll-setup (structure) + ((orient-tform vector :inline :offset-assert 0) + (scale vector :inline :offset-assert 16) + (bg-collide-with uint32 :offset-assert 32) + (joint-setup basic :offset-assert 36) + ) + :method-count-assert 9 + :size-assert #x28 + :flag-assert #x900000028 + ) +|# + +#| +(deftype ragdoll-joint (structure) + ((quat quaternion :inline :offset-assert 0) + (position vector :inline :offset-assert 16) + (velocity vector :inline :offset-assert 32) + (bounce vector :inline :offset-assert 48) + (old-x vector :inline :offset-assert 64) + (pre-tform vector :inline :offset-assert 80) + (geo-tform vector :inline :offset-assert 96) + (axial-slop float :offset-assert 112) + (max-angle float :offset-assert 116) + (joint-length float :offset-assert 120) + (coll-rad float :offset-assert 124) + (ragdoll-joint-flags uint32 :offset-assert 128) + (joint-type uint64 :offset-assert 136) + (joint-index int8 :offset-assert 144) + (parent-joint int8 :offset-assert 145) + (parent-index int8 :offset-assert 146) + (num-children int8 :offset-assert 147) + (old-param0 basic :offset-assert 148) + (hit-sound uint128 :offset-assert 160) + (ground-pat uint32 :offset-assert 176) + (user0 int32 :offset-assert 180) + (original-speed float :offset-assert 184) + ) + :method-count-assert 9 + :size-assert #xbc + :flag-assert #x9000000bc + ) +|# + +#| +(deftype ragdoll (basic) + ((ragdoll-joints UNKNOWN 60 :offset-assert 16) + (num-joints uint8 :offset-assert 11536) + (mirror matrix :inline :offset-assert 11552) + (gravity vector :inline :offset-assert 11616) + (gravity-target vector :inline :offset-assert 11632) + (orient-tform vector :inline :offset-assert 11648) + (scale vector :inline :offset-assert 11664) + (stretch-vel float :offset-assert 11680) + (stretch-vel-parallel float :offset-assert 11684) + (compress-vel float :offset-assert 11688) + (compress-vel-parallel float :offset-assert 11692) + (momentum float :offset-assert 11696) + (maximum-stretch float :offset-assert 11700) + (turn-off-start uint64 :offset-assert 11704) + (turn-off-duration uint64 :offset-assert 11712) + (copy-velocity-start uint64 :offset-assert 11720) + (root-offset vector :inline :offset-assert 11728) + (rotate-vel quaternion :inline :offset-assert 11744) + (rotate-adj quaternion :inline :offset-assert 11760) + (rotate-adj-count int8 :offset-assert 11776) + (ragdoll-flags uint32 :offset-assert 11780) + (flex-blend float :offset-assert 11784) + (stable-joints int8 :offset-assert 11788) + (ragdoll-joint-remap UNKNOWN 100 :offset-assert 11789) + (allow-destabilize uint64 :offset-assert 11896) + (bg-collide-with uint32 :offset-assert 11904) + (water-info water-info :inline :offset-assert 11920) + ) + :method-count-assert 26 + :size-assert #x2ecc + :flag-assert #x1a00002ecc + (:methods + (ragdoll-method-9 () none) ;; 9 + (ragdoll-method-10 () none) ;; 10 + (ragdoll-method-11 () none) ;; 11 + (ragdoll-method-12 () none) ;; 12 + (ragdoll-method-13 () none) ;; 13 + (ragdoll-method-14 () none) ;; 14 + (ragdoll-method-15 () none) ;; 15 + (ragdoll-method-16 () none) ;; 16 + (ragdoll-method-17 () none) ;; 17 + (ragdoll-method-18 () none) ;; 18 + (ragdoll-method-19 () none) ;; 19 + (ragdoll-method-20 () none) ;; 20 + (ragdoll-method-21 () none) ;; 21 + (ragdoll-method-22 () none) ;; 22 + (ragdoll-method-23 () none) ;; 23 + (ragdoll-method-24 () none) ;; 24 + (ragdoll-method-25 () none) ;; 25 + ) + ) +|# + +#| +(deftype ragdoll-proc (process) + ((ragdoll basic :offset-assert 128) + (last-attack-id uint32 :offset-assert 132) + ) + :method-count-assert 20 + :size-assert #x88 + :flag-assert #x1400100088 + (:methods + (ragdoll-proc-method-14 () none) ;; 14 + (ragdoll-proc-method-15 () none) ;; 15 + (ragdoll-proc-method-16 () none) ;; 16 + (ragdoll-proc-method-17 () none) ;; 17 + (ragdoll-proc-method-18 () none) ;; 18 + (ragdoll-proc-method-19 () none) ;; 19 + ) + ) +|# + +#| +(deftype wings-ragdoll-proc (ragdoll-proc) + () + :method-count-assert 20 + :size-assert #x88 + :flag-assert #x1400100088 + ) +|# + +;; (define-extern *ragdoll-edit-info* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; desert-ocean ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *ocean-colors-desert* object) +;; (define-extern *ocean-near-indices-desert* ocean-near-indices) +;; (define-extern *ocean-trans-indices-desert* ocean-trans-indices) +;; (define-extern *ocean-mid-indices-desert* ocean-mid-indices) +;; (define-extern *ocean-mid-masks-desert* ocean-mid-masks) +;; (define-extern *ocean-map-desert* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; mission-squad-control-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype city-attacker-info (structure) + ((proc uint64 :offset-assert 0) + (enemy uint64 :offset-assert 8) + (next-update-target-time uint64 :offset-assert 16) + (flags uint16 :offset-assert 24) + (num-current-attackers uint8 :offset-assert 26) + (max-num-attackers uint8 :offset-assert 27) + (self-type int16 :offset-assert 28) + (enemy-type int16 :offset-assert 30) + (self-index int16 :offset-assert 32) + (enemy-index int16 :offset-assert 34) + (callback basic :offset-assert 36) + (hatred-map-callback basic :offset-assert 40) + ) + :method-count-assert 11 + :size-assert #x2c + :flag-assert #xb0000002c + (:methods + (city-attacker-info-method-9 () none) ;; 9 + (city-attacker-info-method-10 () none) ;; 10 + ) + ) +|# + +#| +(deftype city-attacker-cache (structure) + ((pos vector :offset-assert 0) + (proc basic :offset-assert 4) + (attackable? basic :offset-assert 8) + ) + :method-count-assert 9 + :size-assert #xc + :flag-assert #x90000000c + ) +|# + +#| +(deftype city-hatred-info (structure) + ((hatred float :offset-assert 0) + (max-consider-dist float :offset-assert 4) + (hatred-dist float :offset-assert 8) + (dist-scale float :offset-assert 12) + (attacker-scale float :offset-assert 16) + (flags uint16 :offset-assert 20) + (index uint8 :offset-assert 22) + (pad uint8 :offset-assert 23) + ) + :method-count-assert 9 + :size-assert #x18 + :flag-assert #x900000018 + ) +|# + +#| +(deftype city-attacker-array (inline-array-class) + ((data UNKNOWN :dynamic :offset-assert 16) + ) + :method-count-assert 14 + :size-assert #x10 + :flag-assert #xe00000010 + ) +|# + +#| +(deftype city-hatred-array (inline-array-class) + ((data UNKNOWN :dynamic :offset-assert 16) + ) + :method-count-assert 14 + :size-assert #x10 + :flag-assert #xe00000010 + ) +|# + +#| +(deftype city-attacker-cache-array (inline-array-class) + ((data UNKNOWN :dynamic :offset-assert 16) + ) + :method-count-assert 14 + :size-assert #x10 + :flag-assert #xe00000010 + ) +|# + +#| +(deftype mission-squad-control (basic) + ((attackers basic :offset-assert 4) + (unused-list basic :offset-assert 8) + (hatred-vals basic :offset-assert 12) + (hatred-indices basic :offset-assert 16) + (attacker-cache basic :offset-assert 20) + (target-attacker city-attacker-info :offset-assert 24) + (max-num-object-types int32 :offset-assert 28) + ) + :method-count-assert 24 + :size-assert #x20 + :flag-assert #x1800000020 + (:methods + (mission-squad-control-method-9 () none) ;; 9 + (mission-squad-control-method-10 () none) ;; 10 + (mission-squad-control-method-11 () none) ;; 11 + (mission-squad-control-method-12 () none) ;; 12 + (mission-squad-control-method-13 () none) ;; 13 + (mission-squad-control-method-14 () none) ;; 14 + (mission-squad-control-method-15 () none) ;; 15 + (mission-squad-control-method-16 () none) ;; 16 + (mission-squad-control-method-17 () none) ;; 17 + (mission-squad-control-method-18 () none) ;; 18 + (mission-squad-control-method-19 () none) ;; 19 + (mission-squad-control-method-20 () none) ;; 20 + (mission-squad-control-method-21 () none) ;; 21 + (mission-squad-control-method-22 () none) ;; 22 + (mission-squad-control-method-23 () none) ;; 23 + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; projectile-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype projectile (process-drawable) + ((starting-pos vector :inline :offset-assert 208) + (starting-dir vector :inline :offset-assert 224) + (target-pos vector :inline :offset-assert 240) + (base-target-pos vector :inline :offset-assert 256) + (pre-move-transv vector :inline :offset-assert 272) + (timeout uint64 :offset-assert 288) ;; time-frame + (spawn-time uint64 :offset-assert 296) ;; time-frame + (options uint64 :offset-assert 304) ;; projectile-options + (last-target uint64 :offset-assert 312) ;; handle + (notify-handle uint64 :offset-assert 320) ;; handle + (owner-handle uint64 :offset-assert 328) ;; handle + (ignore-handle uint64 :offset-assert 336) ;; handle + (update-velocity (function projectile none) :offset-assert 344) ;; guessed by decompiler + (move (function projectile none) :offset-assert 348) ;; guessed by decompiler + (pick-target (function projectile none) :offset-assert 352) ;; guessed by decompiler + (max-speed float :offset-assert 356) + (old-dist float 16 :offset-assert 360) ;; guessed by decompiler + (old-dist-count int32 :offset-assert 424) + (hits int32 :offset-assert 428) + (max-hits int32 :offset-assert 432) + (tween float :offset-assert 436) + (attack-mode symbol :offset-assert 440) ;; guessed by decompiler + (attack-id uint32 :offset-assert 444) + (damage float :offset-assert 448) + (vehicle-damage-factor float :offset-assert 452) + (vehicle-impulse-factor float :offset-assert 456) + (charge-level float :offset-assert 460) + (sound-id sound-id :offset-assert 464) ;; guessed by decompiler + (stop-speed meters :offset-assert 468) + (invinc-time uint64 :offset-assert 472) ;; time-frame + (desired-target uint64 :offset-assert 480) + (desired-target-pos vector :inline :offset-assert 496) + ) + :method-count-assert 41 + :size-assert #x200 + :flag-assert #x2901800200 + (:methods + (projectile-method-20 () none) ;; 20 ;; (die () _type_ :state 20) + (projectile-method-21 () none) ;; 21 ;; (dissipate () _type_ :state 21) + (projectile-method-22 () none) ;; 22 ;; (impact () _type_ :state 22) + (projectile-method-23 () none) ;; 23 ;; (moving () _type_ :state 23) + (projectile-method-24 () none) ;; 24 ;; (draw-laser-sight (_type_) none 24) + (projectile-method-25 () none) ;; 25 ;; (spawn-impact-particles (_type_) none 25) + (projectile-method-26 () none) ;; 26 ;; (spawn-shell-particles (_type_) none 26) + (projectile-method-27 () none) ;; 27 ;; (unknown-particles (_type_) none 27) + (projectile-method-28 () none) ;; 28 ;; (play-impact-sound (_type_ projectile-options) none 28) + (projectile-method-29 () none) ;; 29 ;; (stop-sound! (_type_) none 29) + (projectile-method-30 () none) ;; 30 ;; (init-proj-collision! (_type_) none 30) + (projectile-method-31 () none) ;; 31 ;; (init-proj-settings! (_type_) none 31) + (projectile-method-32 () none) ;; 32 ;; (go-moving! (_type_) none 32) + (projectile-method-33 () none) ;; 33 ;; (go-sitting! (_type_) none 33) + (projectile-method-34 () none) ;; 34 ;; (kill-projectile! (_type_) symbol 34) + (projectile-method-35 () none) ;; 35 ;; (event-handler! (_type_ process int symbol event-message-block) object 35) + (projectile-method-36 () none) ;; 36 ;; (handle-proj-hit! (_type_ process event-message-block) object 36) + (projectile-method-37 () none) ;; 37 ;; (deal-damage! (_type_ process event-message-block) symbol 37) + (projectile-method-38 () none) ;; 38 ;; (made-impact? (_type_) symbol 38) + (projectile-method-39 () none) ;; 39 ;; (play-impact-sound! (_type_) none 39) + (projectile-method-40 () none) ;; 40 + ) + ) +|# + +#| +(deftype projectile-init-by-other-params (structure) + ((pos vector :inline :offset-assert 0) + (vel vector :inline :offset-assert 16) + (target-pos vector :inline :offset-assert 32) + (target-handle uint64 :offset-assert 48) + (ent entity :offset-assert 56) ;; guessed by decompiler + (charge float :offset-assert 60) + (attack-id uint32 :offset-assert 64) + (options uint64 :offset-assert 72) ;; projectile-options + (notify-handle uint64 :offset-assert 80) ;; handle + (owner-handle uint64 :offset-assert 88) ;; handle + (ignore-handle uint64 :offset-assert 96) ;; handle + (timeout uint64 :offset-assert 104) ;; time-frame + (damage float :offset-assert 112) + (vehicle-damage-factor float :offset-assert 116) + (vehicle-impulse-factor float :offset-assert 120) + ) + :method-count-assert 9 + :size-assert #x7c + :flag-assert #x90000007c + ) +|# + +#| +(deftype projectile-bounce (projectile) + ((played-bounce-time uint64 :offset-assert 512) ;; time-frame + (tumble-quat quaternion :inline :offset-assert 528) + (gravity float :offset-assert 544) + ) + :method-count-assert 44 + :size-assert #x224 + :flag-assert #x2c01b00224 + (:methods + (projectile-bounce-method-41 () none) ;; 41 ;; (noop (_type_) none 41) + (projectile-bounce-method-42 () none) ;; 42 + (projectile-bounce-method-43 () none) ;; 43 + ) + ) +|# + +;; (define-extern spawn-projectile function) ;; (function type projectile-init-by-other-params process-tree dead-pool (pointer process)) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ragdoll-test ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype ragdoll-test (process-focusable) + ((ragdoll-proc uint64 :offset-assert 208) + ) + :method-count-assert 33 + :size-assert #xd8 + :flag-assert #x21006000d8 + (:state-methods + reform ;; 28 + tweak ;; 29 + freefall-reform ;; 30 + freefall ;; 31 + idle ;; 32 + ) + ) +|# + +;; (define-extern *ragdoll-test-ragdoll-setup* object) +;; (define-extern ragdoll-test-init-by-other function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; cty-attack-controller ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype cty-attack-controller (mission-squad-control) + ((guard-angry-hatred-info-index int8 :offset-assert 32) + ) + :method-count-assert 24 + :size-assert #x21 + :flag-assert #x1800000021 + ) +|# + +;; (define-extern city-target-type->cty-faction function) +;; (define-extern city-target-type->traffic-object-type function) +;; (define-extern symbol->city-target-type function) +;; (define-extern *cty-attack-controller* object) +;; (define-extern initialize-cty-attack-controller function) +;; (define-extern cty-attack-reset function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; bsp-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype bsp-node (structure) + ((front int16 :offset-assert 0) + (back int16 :offset-assert 2) + (front-box-min vector4b :inline :offset-assert 4) + (front-box-max vector4b :inline :offset-assert 8) + (back-box-min vector4b :inline :offset-assert 12) + (back-box-max vector4b :inline :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x14 + :flag-assert #x900000014 + ) +|# + +#| +(deftype bsp-header (drawable) + ((all-visible-list (pointer uint16) :offset-assert 28) ;; guessed by decompiler + (visible-list-length int16 :offset-assert 32) + (drawable-trees drawable-tree-array :offset-assert 36) ;; guessed by decompiler + (pat pointer :offset-assert 40) ;; guessed by decompiler + (pat-length int32 :offset-assert 44) + ) + :method-count-assert 19 + :size-assert #x190 + :flag-assert #x1300000190 + (:methods + (bsp-header-method-17 () none) ;; 17 ;; (birth (_type_) none 17) + (bsp-header-method-18 () none) ;; 18 ;; (deactivate-entities (_type_) none 18) + ) + ) +|# + +#| +(deftype game-level (basic) + ((master-bsp basic :offset-assert 4) + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +#| +(deftype view-frustum (structure) + ((hither-top-left vector :inline :offset-assert 0) + (hither-top-right vector :inline :offset-assert 16) + (hither-bottom-left vector :inline :offset-assert 32) + (hither-bottom-right vector :inline :offset-assert 48) + (yon-top-left vector :inline :offset-assert 64) + (yon-top-right vector :inline :offset-assert 80) + (yon-bottom-left vector :inline :offset-assert 96) + (yon-bottom-right vector :inline :offset-assert 112) + ) + :method-count-assert 9 + :size-assert #x80 + :flag-assert #x900000080 + ) +|# + +#| +(deftype collide-stats (structure) + ((calls uint32 :offset-assert 0) + (spheres uint32 :offset-assert 4) + (nodes uint32 :offset-assert 8) + (frags uint32 :offset-assert 12) + (tris uint32 :offset-assert 16) + (output uint32 :offset-assert 20) + (total-target stopwatch :inline :offset-assert 28) ;; uint32 8 + (target-cache-fill stopwatch :inline :offset-assert 60) ;; uint32 8 + (target-ray-poly stopwatch :inline :offset-assert 92) ;; uint32 6 + ) + :method-count-assert 9 + :size-assert #x78 + :flag-assert #x900000078 + ) +|# + +;; (define-extern inspect-bsp-tree function) ;; (function bsp-header bsp-node none) +;; (define-extern map-bsp-tree function) ;; (function (function bsp-node none) bsp-header bsp-node none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; hud-classes ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *hud-skullgem* object) ;; (pointer hud-skullgem) +;; (define-extern *gun-arrow-table* object) +;; (define-extern activate-hud function) ;; (function target none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; maker-part ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *range-dm-robot-splash-color* curve-color-fast) +;; (define-extern *range-dm-robot-splash-alpha* curve2d-fast) +;; (define-extern *range-dm-robot-splash-scale-x* curve2d-fast) +;; (define-extern *range-dm-robot-splash-scale-y* curve2d-fast) +;; (define-extern *curve-dm-robot-splash-alpha* curve2d-fast) +;; (define-extern *curve-dm-robot-splash-scale-x* curve2d-fast) +;; (define-extern *curve-dm-robot-splash-scale-y* curve2d-fast) +;; (define-extern *part-dm-robot-splash-curve-settings* object) +;; (define-extern *range-dm-final-explo-color* curve-color-fast) +;; (define-extern *range-dm-final-explo-alpha* curve2d-fast) +;; (define-extern *range-dm-final-explo-scale-x* curve2d-fast) +;; (define-extern *range-dm-final-explo-scale-y* curve2d-fast) +;; (define-extern *curve-dm-final-explo-alpha* curve2d-fast) +;; (define-extern *curve-dm-final-explo-scale-x* curve2d-fast) +;; (define-extern *curve-dm-final-explo-scale-y* curve2d-fast) +;; (define-extern *part-dm-final-explosion-texture-curve-settings* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; joint ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype art-group (art) + ((info file-info :offset-assert 0) ;; guessed by decompiler + (length int32 :offset-assert 8) + (name string :offset-assert 4) ;; guessed by decompiler + (extra res-lump :offset-assert 12) ;; guessed by decompiler + (data art-element :dynamic :offset-assert 28) ;; guessed by decompiler + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + ) + :method-count-assert 16 + :size-assert #x20 + :flag-assert #x1000000020 + (:methods + (art-group-method-14 () none) ;; 14 ;; (unlink-art! (_type_) int 14) + (art-group-method-15 () none) ;; 15 + ) + ) +|# + +;; (define-extern joint-anim-login function) ;; (function joint-anim-drawable joint-anim-drawable) +;; (define-extern joint-anim-inspect-elt function) ;; (function joint-anim float joint-anim) +;; (define-extern jacc-mem-usage function) ;; (function joint-anim-compressed-control memory-usage-block int joint-anim-compressed-control) +;; (define-extern joint-control-cleanup function) +;; (define-extern joint-control-channel-eval function) ;; (function joint-control-channel float :behavior process) +;; (define-extern joint-control-channel-eval! function) ;; (function joint-control-channel (function joint-control-channel float float float float) float :behavior process) +;; (define-extern joint-control-channel-group-eval! function) ;; (function joint-control-channel art-joint-anim (function joint-control-channel float float float float) int) +;; (define-extern joint-control-channel-group! function) ;; (function joint-control-channel art-joint-anim (function joint-control-channel float float float float) int) +;; (define-extern joint-control-copy! function) ;; (function joint-control joint-control joint-control) +;; (define-extern joint-control-remap! function) ;; (function joint-control art-group art-group pair int string symbol) +;; (define-extern flatten-joint-control-to-spr function) ;; (function joint-control int) +;; (define-extern matrix-from-joint-anim-frame function) ;; (function joint-anim-compressed-control int int matrix) +;; (define-extern matrix-from-control-channel! function) ;; (function matrix joint joint-control-channel matrix) +;; (define-extern matrix-from-control-pair! function) ;; (function matrix matrix joint int matrix) +;; (define-extern matrix-from-control! function) ;; (function matrix-stack joint joint-control symbol matrix) +;; (define-extern cspace<-cspace! function) ;; (function cspace cspace matrix) +;; (define-extern cspace<-cspace-normalized! function) ;; (function cspace cspace matrix) +;; (define-extern cspace<-parent-joint! function) ;; (function cspace (pointer process-drawable) int matrix) +;; (define-extern cspace<-rot-yxy! function) ;; (function cspace transform matrix) +;; (define-extern cspace<-transform-yxy! function) ;; (function cspace transform matrix) +;; (define-extern cspace<-transformq! function) ;; (function cspace transformq matrix) +;; (define-extern cspace<-transformq+trans! function) ;; (function cspace transformq vector matrix) +;; (define-extern cspace<-transformq+world-trans! function) ;; (function cspace transformq vector matrix) +;; (define-extern cspace<-transformq+rot-offset! function) ;; (function cspace transformq vector matrix) +;; (define-extern cspace-calc-total-matrix! function) ;; (function cspace matrix matrix) +;; (define-extern cspace<-matrix-no-push-joint! function) ;; (function cspace joint-control matrix) +;; (define-extern cspace<-matrix-joint! function) ;; (function cspace matrix matrix) +;; (define-extern cspace<-parented-matrix-joint! function) ;; (function cspace matrix matrix) +;; (define-extern cspace<-parented-matrix-mirror! function) ;; (function cspace matrix matrix) +;; (define-extern cspace<-parented-matrix-joint-flip-z! function) ;; (function cspace matrix matrix) +;; (define-extern cspace<-matrix-joint-flip-z! function) ;; (function cspace matrix none) +;; (define-extern cspace<-parented-transformq-joint! function) ;; (function cspace transformq none) +;; (define-extern cspace<-parented-transformq-joint-flip-z! function) ;; (function cspace transformq none) +;; (define-extern clear-frame-accumulator function) +;; (define-extern normalize-frame-quaternions function) +;; (define-extern decompress-fixed-data-to-accumulator function) ;; function +;; (define-extern decompress-frame-data-to-accumulator function) ;; function +;; (define-extern decompress-frame-data-pair-to-accumulator function) ;; function +;; (define-extern make-joint-jump-tables function) ;; (function int) +;; (define-extern calc-animation-from-spr function) ;; (function joint-anim-frame int none) +;; (define-extern create-interpolated-joint-animation-frame function) ;; (function joint-anim-frame int joint-control int) +;; (define-extern create-interpolated2-joint-animation-frame function) ;; (function joint-anim-frame int joint-control int) +;; (define-extern *anim-manager* object) ;; art-joint-anim-manager + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; dp-bipedal ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype dp-bipedal-shield (shield-sphere) + () + :method-count-assert 43 + :size-assert #x128 + :flag-assert #x2b00b00128 + ) +|# + +#| +(deftype dp-bipedal-invis-particle-joint (structure) + ((joint int16 :offset-assert 0) + (distance float :offset-assert 4) + (size float :offset-assert 8) + (spawn? basic :offset-assert 12) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype dp-bipedal (nav-enemy) + ((los los-control :inline :offset-assert 620) + (rotation-matrix matrix :inline :offset-assert 796) + (focus-dir vector :inline :offset-assert 860) + (focus-close-attack-pos vector :inline :offset-assert 876) + (focus-throw-attack-pos vector :inline :offset-assert 892) + (focus-bullseye vector :inline :offset-assert 908) + (los-source vector :inline :offset-assert 924) + (formation-position vector :inline :offset-assert 940) + (focus-formation-source vector :inline :offset-assert 956) + (dest-quat quaternion :inline :offset-assert 972) + (minimap connection-minimap :offset-assert 988) + (part-ambush basic :offset-assert 992) + (effect-rate float :offset-assert 996) + (effect-timer uint64 :offset-assert 1004) + (scared-timer uint64 :offset-assert 1012) + (close-attack-timer uint64 :offset-assert 1020) + (can-attack-throw? basic :offset-assert 1028) + (shield-handle uint64 :offset-assert 1036) + (shield-timer uint64 :offset-assert 1044) + (shield-sound-id uint32 :offset-assert 1052) + (fade-level float :offset-assert 1056) + (turret-entity basic :offset-assert 1060) + (actor-group uint32 :offset-assert 496) + (actor-group-count int32 :offset-assert 500) + (on-screen-timer uint64 :offset-assert 1076) + (valid-ground-timer uint64 :offset-assert 1084) + (knocked-focus-reset-timer uint64 :offset-assert 1092) + ) + :method-count-assert 212 + :size-assert #x450 + :flag-assert #xd403d00450 + (:methods + (dp-bipedal-method-204 () none) ;; 204 + (dp-bipedal-method-205 () none) ;; 205 + (dp-bipedal-method-206 () none) ;; 206 + (dp-bipedal-method-207 () none) ;; 207 + (dp-bipedal-method-208 () none) ;; 208 + (dp-bipedal-method-209 () none) ;; 209 + (dp-bipedal-method-210 () none) ;; 210 + (dp-bipedal-method-211 () none) ;; 211 + ) + (:state-methods + dormant ;; 28 + dormant-aware ;; 29 + hostile-stand ;; 191 + ambush ;; 47 + hostile ;; 38 + de-ambush ;; 190 + shield-out ;; 194 + shield-idle ;; 195 + shield-in ;; 196 + shield-explode ;; 197 + attack-close ;; 192 + attack-throw ;; 193 + knocked ;; 31 + knocked-recover ;; 32 + active ;; 34 + die ;; 40 + turret-seek ;; 198 + turret-get-on ;; 199 + turret-active ;; 202 + turret-active-shoot ;; 203 + turret-getting-off ;; 200 + turret-get-off ;; 201 + ) + ) +|# + +#| +(deftype dp-bipedal-spawner (process) + ((spawn-pos vector :inline :offset-assert 128) + (spawn-timer uint64 :offset-assert 144) + (enemies-spawned int32 :offset-assert 152) + (enemies-to-spawn int32 :offset-assert 156) + ) + :method-count-assert 16 + :size-assert #xa0 + :flag-assert #x10002000a0 + (:state-methods + idle ;; 14 + die ;; 15 + ) + ) +|# + +;; (define-extern *dp-bipedal-formation-table* array) +;; (define-extern *dp-bipedal-invis-joint-list* array) +;; (define-extern *fact-info-dp-bipedal-defaults* fact-info-enemy-defaults) +;; (define-extern *dp-bipedal-nav-enemy-info* nav-enemy-info) +;; (define-extern region-check-has-los function) +;; (define-extern dp-bipedal-formation-post function) +;; (define-extern dp-bipedal-hostile-post function) +;; (define-extern dp-bipedal-attack-close-post function) +;; (define-extern dp-bipedal-consider-attacks function) +;; (define-extern dp-bipedal-turret-post function) +;; (define-extern dp-bipedal-turret-code function) +;; (define-extern trajectory-prediction function) +;; (define-extern dp-bipedal-spawner-event-handler function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; stadium-obs ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype stadium-flag-base (process-drawable) + () + :method-count-assert 23 + :size-assert #xc8 + :flag-assert #x17005000c8 + (:methods + (stadium-flag-base-method-21 () none) ;; 21 + (stadium-flag-base-method-22 () none) ;; 22 + ) + (:state-methods + idle ;; 20 + ) + ) +|# + +#| +(deftype stadium-sails-left (stadium-flag-base) + () + :method-count-assert 23 + :size-assert #xc8 + :flag-assert #x17005000c8 + ) +|# + +#| +(deftype stadium-sails-right (stadium-flag-base) + () + :method-count-assert 23 + :size-assert #xc8 + :flag-assert #x17005000c8 + ) +|# + +#| +(deftype rub-dark-jak-door (process-drawable) + ((played-hint? basic :offset-assert 200) + (block? basic :offset-assert 204) + ) + :method-count-assert 23 + :size-assert #xd0 + :flag-assert #x17005000d0 + (:methods + (rub-dark-jak-door-method-22 () none) ;; 22 + ) + (:state-methods + idle ;; 20 + explode ;; 21 + ) + ) +|# + +#| +(deftype rub-falling-step (process-drawable) + ((mat matrix :inline :offset-assert 208) + ) + :method-count-assert 23 + :size-assert #x110 + :flag-assert #x1700900110 + (:state-methods + idle ;; 20 + drop ;; 21 + fade-in ;; 22 + ) + ) +|# + +#| +(deftype rub-rhino-door (process-focusable) + () + :method-count-assert 34 + :size-assert #xd0 + :flag-assert #x22005000d0 + (:methods + (rub-rhino-door-method-30 () none) ;; 30 + (rub-rhino-door-method-31 () none) ;; 31 + (rub-rhino-door-method-32 () none) ;; 32 + (rub-rhino-door-method-33 () none) ;; 33 + ) + (:state-methods + idle ;; 28 + explode ;; 29 + ) + ) +|# + +#| +(deftype mh-tower-smoke-stda (process-drawable) + () + :method-count-assert 21 + :size-assert #xc8 + :flag-assert #x15005000c8 + (:state-methods + idle ;; 20 + ) + ) +|# + +;; (define-extern *rub-rhino-door-exploder-params* joint-exploder-static-params) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; collide-cache-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype collide-puss-sphere (structure) + ((bsphere sphere :inline :offset-assert 0) + (bbox4w bounding-box4w :inline :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x30 + :flag-assert #x900000030 + ) +|# + +#| +(deftype collide-puss-work (structure) + ((closest-pt vector :inline :offset-assert 0) + (tri-normal vector :inline :offset-assert 16) + (tri-bbox4w bounding-box4w :inline :offset-assert 32) + (spheres-bbox4w bounding-box4w :inline :offset-assert 64) + (spheres collide-puss-sphere 64 :offset-assert 96) ;; guessed by decompiler + ) + :method-count-assert 11 + :size-assert #xc60 + :flag-assert #xb00000c60 + (:methods + (collide-puss-work-method-9 () none) ;; 9 ;; (collide-puss-work-method-9 () none 9) + (collide-puss-work-method-10 () none) ;; 10 ;; (collide-puss-work-method-10 () none 10) + ) + ) +|# + +#| +(deftype collide-cache-tri (structure) + ((vertex vector 3 :offset-assert 0) ;; guessed by decompiler + (extra-quad uint8 16 :offset-assert 48) ;; guessed by decompiler + (pat pat-surface :offset-assert 48) ;; guessed by decompiler + (collide-ptr basic :offset-assert 52) + (prim-index uint16 :offset-assert 56) + (user16 uint16 :offset-assert 58) + (user32 uint32 :offset-assert 60) + ) + :method-count-assert 9 + :size-assert #x40 + :flag-assert #x900000040 + ) +|# + +#| +(deftype collide-cache-prim (structure) + ((prim-core collide-prim-core :inline :offset-assert 0) + (extra-quad uint8 16 :offset-assert 32) ;; guessed by decompiler + (ccache collide-cache :offset-assert 32) ;; guessed by decompiler + (prim collide-shape-prim :offset-assert 36) ;; guessed by decompiler + (first-tri uint16 :offset-assert 40) + (num-tris uint16 :offset-assert 42) + (unused uint8 4 :offset-assert 44) ;; guessed by decompiler + (world-sphere vector :inline :offset-assert 0) + (collide-as collide-spec :offset-assert 16) ;; guessed by decompiler + (action collide-action :offset-assert 24) ;; guessed by decompiler + (prim-type int8 :offset-assert 28) ;; prim-type + ) + :method-count-assert 11 + :size-assert #x30 + :flag-assert #xb00000030 + (:methods + (collide-cache-prim-method-9 () none) ;; 9 ;; (resolve-moving-sphere-tri (_type_ collide-tri-result collide-prim-core vector float collide-action) float 9) + (collide-cache-prim-method-10 () none) ;; 10 ;; (resolve-moving-sphere-sphere (_type_ collide-tri-result collide-prim-core vector float collide-action) float 10) + ) + ) +|# + +#| +(deftype collide-cache (basic) + ((num-tris int32 :offset-assert 4) + (num-prims int32 :offset-assert 8) + (ignore-mask pat-surface :offset-assert 12) ;; guessed by decompiler + (ignore-processes process 2 :offset-assert 16) ;; guessed by decompiler + (collide-box bounding-box :inline :offset-assert 32) + (collide-box4w bounding-box4w :inline :offset-assert 64) + (collide-with collide-spec :offset-assert 96) ;; guessed by decompiler + (unused uint32 :offset-assert 100) + (prims collide-cache-prim 100 :offset-assert 112) ;; guessed by decompiler + (tris collide-cache-tri 461 :offset-assert 4912) ;; guessed by decompiler + ) + :method-count-assert 26 + :size-assert #x8670 + :flag-assert #x1a00008670 + (:methods + (collide-cache-method-9 () none) ;; 9 ;; (debug-draw (_type_) none 9) + (collide-cache-method-10 () none) ;; 10 ;; (fill-and-probe-using-line-sphere (_type_ collide-query) float 10) + (collide-cache-method-11 () none) ;; 11 ;; (fill-and-probe-using-spheres (_type_ collide-query) symbol 11) + (collide-cache-method-12 () none) ;; 12 ;; (fill-using-bounding-box (_type_ collide-query) none 12) + (collide-cache-method-13 () none) ;; 13 ;; (fill-using-line-sphere (_type_ collide-query) none 13) + (collide-cache-method-14 () none) ;; 14 ;; (fill-using-spheres (_type_ collide-query) none 14) + (collide-cache-method-15 () none) ;; 15 ;; (reset (_type_) none 15) + (collide-cache-method-16 () none) ;; 16 ;; (probe-using-line-sphere (_type_ collide-query) float 16) + (collide-cache-method-17 () none) ;; 17 ;; (probe-using-spheres (_type_ collide-query) symbol 17) + (collide-cache-method-18 () none) ;; 18 ;; (fill-from-bg (_type_ (function collide-hash int collide-list collide-query int) (function collide-cache collide-list collide-query none) collide-query) none 18) + (collide-cache-method-19 () none) ;; 19 ;; (fill-from-fg-boxes (_type_) none 19) + (collide-cache-method-20 () none) ;; 20 ;; (fill-from-fg-line-sphere (_type_ collide-query) none 20) + (collide-cache-method-21 () none) ;; 21 ;; (fill-from-water (_type_ water-control) none 21) + (collide-cache-method-22 () none) ;; 22 ;; (collide-cache-method-22 () none 22) + (collide-cache-method-23 () none) ;; 23 ;; (collide-cache-method-23 () none 23) + (collide-cache-method-24 () none) ;; 24 ;; (collide-cache-method-24 () none 24) + (collide-cache-method-25 () none) ;; 25 ;; (collide-cache-method-25 () none 25) + ) + ) +|# + +#| +(deftype collide-list-item (structure) + ((mesh instance-tie :offset-assert 0) ;; guessed by decompiler + (inst basic :offset-assert 4) + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +#| +(deftype collide-list (structure) + ((num-items int32 :offset-assert 0) + (items collide-list-item 256 :offset-assert 16) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x810 + :flag-assert #x900000810 + ) +|# + +;; (define-extern *collide-cache* object) ;; collide-cache +;; (define-extern *collide-list* object) ;; collide-list + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; collide-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype collide-query (structure) + ((best-other-tri collide-tri-result :inline :offset-assert 0) + (best-my-tri collide-tri-result :inline :offset-assert 0) + (ignore-processes process-tree 2 :offset-assert 88) ;; guessed by decompiler + (ignore-process0 process-tree :offset-assert 88) ;; guessed by decompiler + (ignore-process1 process-tree :offset-assert 92) ;; guessed by decompiler + (ignore-pat pat-surface :offset-assert 96) ;; guessed by decompiler + (collide-with collide-spec :offset-assert 100) ;; guessed by decompiler + (overlay-params uint32 3 :offset-assert 112) ;; guessed by decompiler + (bbox bounding-box :inline :offset-assert 128) + (bbox4w bounding-box4w :inline :offset-assert 160) + (bsphere sphere :inline :offset-assert 192) + (start-pos vector :inline :offset-assert 208) + (move-dist vector :inline :offset-assert 224) + (rlength vector :inline :offset-assert 240) + (exit-planes plane 2 :offset-assert 256) ;; guessed by decompiler + (radius float :offset-assert 268) + (inv-mat matrix :inline :offset-assert 288) + (spheres (inline-array sphere) :offset-assert 112) ;; guessed by decompiler + (num-spheres uint32 :offset-assert 116) + (solid-only symbol :offset-assert 120) ;; guessed by decompiler + (best-dist float :offset-assert 112) + (best-other-prim collide-shape-prim :offset-assert 116) ;; guessed by decompiler + (best-my-prim collide-shape-prim :offset-assert 120) ;; guessed by decompiler + (move-vec vector :inline :offset-assert 224) + (best-u float :offset-assert 112) + (action-mask collide-action :offset-assert 352) ;; guessed by decompiler + (local-box4w bounding-box4w :inline :offset-assert 368) + (search-box bounding-box4w :inline :offset-assert 400) + (search-vector vector4w :inline :offset-assert 432) + (instance-mat matrix :inline :offset-assert 448) + (instance-ptr basic :offset-assert 512) + (x-addr uint32 :offset-assert 516) + (x-step uint32 :offset-assert 520) + (y-addr uint32 :offset-assert 524) + (y-step uint32 :offset-assert 528) + (z-addr uint32 :offset-assert 532) + (z-step uint32 :offset-assert 536) + ) + :method-count-assert 9 + :size-assert #x21c + :flag-assert #x90000021c + ) +|# + +;; (define-extern *collide-test-flag* object) ;; symbol + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; shrubbery-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype billboard (drawable) + ((flat adgif-shader :inline :offset-assert 32) + ) + :method-count-assert 17 + :size-assert #x70 + :flag-assert #x1100000070 + ) +|# + +#| +(deftype shrub-view-data (structure) + ((data uint128 3 :offset-assert 0) ;; guessed by decompiler + (texture-giftag qword :inline :offset-assert 0) ;; gs-gif-tag :inline + (consts vector :inline :offset-assert 16) + (fog-clamp vector :inline :offset-assert 32) + (tex-start-ptr int32 :offset-assert 16) + (gifbufsum float :offset-assert 16) + (mtx-buf-ptr int32 :offset-assert 20) + (exp23 float :offset-assert 20) + (fog-0 float :offset-assert 24) + (fog-1 float :offset-assert 28) + (fog-min float :offset-assert 32) + (fog-max float :offset-assert 36) + ) + :method-count-assert 9 + :size-assert #x30 + :flag-assert #x900000030 + ) +|# + +#| +(deftype shrubbery (drawable) + ((textures (inline-array adgif-shader) :offset-assert 4) ;; guessed by decompiler + (header qword :offset-assert 8) + (obj-qwc uint8 :offset-assert 12) + (vtx-qwc uint8 :offset-assert 13) + (col-qwc uint8 :offset-assert 14) + (stq-qwc uint8 :offset-assert 15) + (obj uint32 :offset-assert 16) + (vtx uint32 :offset-assert 20) + (col uint32 :offset-assert 24) + (stq uint32 :offset-assert 28) + ) + :method-count-assert 17 + :size-assert #x20 + :flag-assert #x1100000020 + ) +|# + +#| +(deftype instance-shrubbery (instance) + ((flat-normal vector :inline :offset-assert 64) + (flat-hwidth float :offset-assert 76) + (color uint32 :offset-assert 8) + ) + :method-count-assert 17 + :size-assert #x50 + :flag-assert #x1100000050 + ) +|# + +;; (deftype drawable-inline-array-instance-shrub (drawable-inline-array) +;; () +;; :flag-assert #x1100000074 +;; ) + +;; (deftype drawable-tree-instance-shrub (drawable-tree) +;; () +;; :flag-assert #x1100000020 +;; ) + +#| +(deftype generic-shrub-fragment (drawable) + ((textures (inline-array adgif-shader) :offset-assert 4) ;; guessed by decompiler + (vtx-cnt uint32 :offset-assert 8) + (cnt-qwc uint8 :offset-assert 12) + (vtx-qwc uint8 :offset-assert 13) + (col-qwc uint8 :offset-assert 14) + (stq-qwc uint8 :offset-assert 15) + (cnt uint32 :offset-assert 16) + (vtx uint32 :offset-assert 20) + (col uint32 :offset-assert 24) + (stq uint32 :offset-assert 28) + ) + :method-count-assert 17 + :size-assert #x20 + :flag-assert #x1100000020 + ) +|# + +;; (deftype prototype-shrubbery (drawable-inline-array) +;; () +;; :flag-assert #x1100000044 +;; ) + +;; (deftype prototype-trans-shrubbery (prototype-shrubbery) +;; () +;; :flag-assert #x1100000044 +;; ) + +;; (deftype prototype-generic-shrub (drawable-group) +;; () +;; :flag-assert #x1100000020 +;; ) + +#| +(deftype shrubbery-matrix (structure) + ((mat matrix :inline :offset-assert 0) + (color qword :inline :offset-assert 64) + ) + :method-count-assert 9 + :size-assert #x50 + :flag-assert #x900000050 + ) +|# + +#| +(deftype shrub-near-packet (structure) + ((matrix-tmpl dma-packet :inline :offset-assert 0) + (header-tmpl dma-packet :inline :offset-assert 16) + (stq-tmpl dma-packet :inline :offset-assert 32) + (color-tmpl dma-packet :inline :offset-assert 48) + (vertex-tmpl dma-packet :inline :offset-assert 64) + (mscal-tmpl dma-packet :inline :offset-assert 80) + (init-tmpl dma-packet :inline :offset-assert 96) + (init-data qword 8 :offset-assert 112) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x90 + :flag-assert #x900000090 + ) +|# + +#| +(deftype instance-shrub-work (structure) + ((dummy qword 3 :offset-assert 0) ;; guessed by decompiler + (chaina qword 8 :offset-assert 48) ;; guessed by decompiler + (chainb qword 8 :offset-assert 176) ;; guessed by decompiler + (colors rgba 1024 :offset-assert 304) ;; guessed by decompiler + (matrix-tmpl qword 20 :offset-assert 4400) ;; guessed by decompiler + (count-tmpl vector4w 20 :offset-assert 4720) ;; guessed by decompiler + (mscalf-tmpl dma-packet :inline :offset-assert 5040) + (mscalf-ret-tmpl dma-packet :inline :offset-assert 5056) + (adgif-tmpl dma-gif-packet :inline :offset-assert 5072) + (billboard-tmpl dma-gif-packet :inline :offset-assert 5104) + (billboard-const vector :inline :offset-assert 5136) + (shrub-near-packets shrub-near-packet 6 :offset-assert 5152) ;; guessed by decompiler + (dma-ref dma-packet :inline :offset-assert 6016) + (dma-end dma-packet :inline :offset-assert 6032) + (wind-const vector :inline :offset-assert 6048) + (constants vector :inline :offset-assert 6064) + (color-constant vector4w :inline :offset-assert 6080) + (hmge-d vector :inline :offset-assert 6096) + (hvdf-offset vector :inline :offset-assert 6112) + (wind-force vector :inline :offset-assert 6128) + (color vector :inline :offset-assert 6144) + (bb-color vector :inline :offset-assert 6160) + (min-dist vector :inline :offset-assert 6176) + (temp-vec vector :inline :offset-assert 6192) + (guard-plane plane 4 :offset-assert 6208) ;; guessed by decompiler + (plane plane 4 :offset-assert 6272) ;; guessed by decompiler + (last uint32 4 :offset-assert 6336) ;; guessed by decompiler + (next uint32 4 :offset-assert 6352) ;; guessed by decompiler + (count uint16 4 :offset-assert 6368) ;; guessed by decompiler + (mod-count uint16 4 :offset-assert 6376) ;; guessed by decompiler + (wind-vectors uint32 :offset-assert 6384) + (instance-ptr uint32 :offset-assert 6388) + (chain-ptr uint32 :offset-assert 6392) + (chain-ptr-next uint32 :offset-assert 6396) + (stack-ptr uint32 :offset-assert 6400) + (bucket-ptr uint32 :offset-assert 6404) + (src-ptr uint32 :offset-assert 6408) + (to-spr uint32 :offset-assert 6412) + (from-spr uint32 :offset-assert 6416) + (shrub-count uint32 :offset-assert 6420) + (stack-ptr uint32 :offset-assert 6400) + (node uint32 6 :offset-assert 6428) ;; guessed by decompiler + (length uint32 6 :offset-assert 6452) ;; guessed by decompiler + (prototypes uint32 :offset-assert 6476) + (bucket-ptr uint32 :offset-assert 6404) + (start-bank uint8 20 :offset-assert 6484) ;; guessed by decompiler + (buffer-index uint32 :offset-assert 6504) + (current-spr uint32 :offset-assert 6508) + (current-mem uint32 :offset-assert 6512) + (current-shrub-near-packet uint32 :offset-assert 6516) + (current-shrub-near-trans-packet uint32 :offset-assert 6520) + (to-spr uint32 :offset-assert 6412) + (dma-buffer basic :offset-assert 6528) + (near-last uint32 :offset-assert 6532) + (near-next uint32 :offset-assert 6536) + (near-count uint32 :offset-assert 6540) + (near-trans-last uint32 :offset-assert 6544) + (near-trans-next uint32 :offset-assert 6548) + (near-trans-count uint32 :offset-assert 6552) + (last-shrubs uint32 :offset-assert 6556) + (chains uint32 :offset-assert 6560) + (flags uint32 :offset-assert 6564) + (node-count uint32 :offset-assert 6568) + (inst-count uint32 :offset-assert 6572) + (wait-from-spr uint32 :offset-assert 6576) + (wait-to-spr uint32 :offset-assert 6580) + (texture-dists uint32 :offset-assert 6584) + ) + :method-count-assert 9 + :size-assert #x19bc + :flag-assert #x9000019bc + ) +|# + +#| +(deftype instance-shrub-dma (structure) + ((instancea uint128 325 :offset-assert 0) ;; guessed by decompiler + (instanceb uint128 325 :offset-assert 5200) ;; guessed by decompiler + (outa uint128 128 :offset-assert 10400) ;; guessed by decompiler + (outb uint128 128 :offset-assert 12448) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x38a0 + :flag-assert #x9000038a0 + ) +|# + +;; (define-extern shrubbery-login-post-texture function) ;; (function shrubbery none) +;; (define-extern *shrub-state* object) ;; int + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; tie-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype tie-fragment-debug (structure) + ((num-tris uint16 :offset-assert 0) + (num-dverts uint16 :offset-assert 2) + (debug-lines (array vector-array) :offset-assert 4) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +#| +(deftype tie-fragment (drawable) + ((gif-ref (inline-array adgif-shader) :offset-assert 4) ;; guessed by decompiler + (point-ref uint32 :offset-assert 8) + (color-index uint16 :offset-assert 12) + (base-colors uint8 :offset-assert 14) + (tex-count uint16 :offset-assert 32) + (gif-count uint16 :offset-assert 34) + (vertex-count uint16 :offset-assert 36) + (color-count uint16 :offset-assert 38) + (dp-ref uint32 :offset-assert 40) + (dp-qwc uint32 :offset-assert 44) + (generic-ref uint32 :offset-assert 48) + (generic-count uint16 :offset-assert 52) + (normal-count uint16 :offset-assert 54) + (normal-ref uint32 :offset-assert 56) + (debug tie-fragment-debug :offset-assert 60) + ) + :method-count-assert 17 + :size-assert #x40 + :flag-assert #x1100000040 + ) +|# + +#| +(deftype instance-tie (instance) + ((color-indices uint32 :offset-assert 8) + (bucket-ptr prototype-bucket-tie :offset-assert 12) ;; guessed by decompiler + (max-scale uint16 :offset-assert 38) + (rmin-scale uint16 :offset-assert 54) + ) + :method-count-assert 17 + :size-assert #x40 + :flag-assert #x1100000040 + ) +|# + +;; (deftype drawable-inline-array-instance-tie (drawable-inline-array) +;; () +;; :flag-assert #x1100000064 +;; ) + +#| +(deftype drawable-tree-instance-tie (drawable-tree) + ((id int16 :offset-assert 0) + (bsphere vector :inline :offset-assert 12) + (length int16 :offset-assert 2) + (data drawable :dynamic :offset-assert 28) ;; guessed by decompiler + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (prototypes proxy-prototype-array-tie :offset-assert 4) ;; guessed by decompiler + ) + :method-count-assert 17 + :size-assert #x20 + :flag-assert #x1100000020 + ) +|# + +;; (deftype prototype-tie (drawable-inline-array) +;; () +;; :flag-assert #x1100000064 +;; ) + +#| +(deftype tie-matrix (structure) + ((mat matrix :inline :offset-assert 0) + (morph qword :inline :offset-assert 64) + (fog qword :inline :offset-assert 80) + (envmap-flag uint32 :offset-assert 80) + (guard-flag uint32 :offset-assert 84) + (vertex-alpha float :offset-assert 88) + (fog-value float :offset-assert 92) + (fixed-alpha float :offset-assert 68) + ) + :method-count-assert 9 + :size-assert #x60 + :flag-assert #x900000060 + ) +|# + +#| +(deftype instance-tie-work (structure) + ((wind-const vector :inline :offset-assert 0) + (hmge-d vector :inline :offset-assert 16) + (hvdf-offset vector :inline :offset-assert 32) + (wind-force vector :inline :offset-assert 48) + (constant vector :inline :offset-assert 64) + (far-morph vector :inline :offset-assert 80) + (dist-test vector :inline :offset-assert 96) + (min-dist vector :inline :offset-assert 112) + (guard-plane plane 4 :offset-assert 128) ;; guessed by decompiler + (upload-color-0 dma-packet :inline :offset-assert 192) + (upload-color-1 dma-packet :inline :offset-assert 208) + (upload-color-2 dma-packet :inline :offset-assert 224) + (upload-color-ret dma-packet :inline :offset-assert 240) + (upload-color-temp dma-packet :inline :offset-assert 256) + (generic-color-0 dma-packet :inline :offset-assert 272) + (generic-color-1 dma-packet :inline :offset-assert 288) + (generic-color-end dma-packet :inline :offset-assert 304) + (envmap-color-0 dma-packet :inline :offset-assert 320) + (envmap-color-1 dma-packet :inline :offset-assert 336) + (tie-scissor-perspective-matrix matrix :inline :offset-assert 352) + (tod-env-color vector :inline :offset-assert 416) + (morph-temp vector :inline :offset-assert 432) + (fog-temp vector :inline :offset-assert 448) + (fade-temp float :offset-assert 464) + (wind-vectors uint32 :offset-assert 468) + (test-id uint32 :offset-assert 472) + (test-id2 uint32 :offset-assert 476) + (dma-buffer basic :offset-assert 480) + (to-spr uint32 :offset-assert 484) + (from-spr uint32 :offset-assert 488) + (wind-work uint32 :offset-assert 492) + (cur-vis-bits uint32 :offset-assert 496) + (end-vis-bits uint32 :offset-assert 500) + (refl-fade-fac float :offset-assert 504) + (refl-fade-end float :offset-assert 508) + (flags uint32 :offset-assert 512) + (vanish-flag uint32 :offset-assert 516) + (translucent-flag uint32 :offset-assert 520) + (wait-from-spr uint32 :offset-assert 524) + (wait-to-spr uint32 :offset-assert 528) + (use-etie symbol :offset-assert 532) ;; guessed by decompiler + (buffer-start uint32 :offset-assert 536) + (buffer-end uint32 :offset-assert 540) + (tfrag-dists uint32 :offset-assert 544) + (alpha-dists uint32 :offset-assert 548) + (water-dists uint32 :offset-assert 552) + ) + :method-count-assert 9 + :size-assert #x22c + :flag-assert #x90000022c + ) +|# + +#| +(deftype instance-tie-dma (structure) + ((banka instance-tie 32 :offset-assert 4) ;; guessed by decompiler + (bankb instance-tie 32 :offset-assert 2052) ;; guessed by decompiler + (outa uint128 256 :offset-assert 4096) ;; guessed by decompiler + (outb uint128 256 :offset-assert 8192) ;; guessed by decompiler + (work instance-tie-work :offset-assert 12288) + ) + :method-count-assert 9 + :size-assert #x3000 + :flag-assert #x900003000 + ) +|# + +#| +(deftype prototype-tie-work (structure) + ((upload-flushe dma-packet :inline :offset-assert 0) + (upload-palette dma-packet :inline :offset-assert 16) + (upload-model-0 dma-packet :inline :offset-assert 32) + (upload-model-1 dma-packet :inline :offset-assert 48) + (upload-model-2 dma-packet :inline :offset-assert 64) + (upload-model-3 dma-packet :inline :offset-assert 80) + (upload-model-near-0 dma-packet :inline :offset-assert 96) + (upload-model-near-1 dma-packet :inline :offset-assert 112) + (upload-model-near-2 dma-packet :inline :offset-assert 128) + (upload-model-near-3 dma-packet :inline :offset-assert 144) + (upload-model-near-4 dma-packet :inline :offset-assert 160) + (envmap-palette dma-packet :inline :offset-assert 176) + (envmap-shader dma-packet :inline :offset-assert 192) + (upload-envmap-0 dma-packet :inline :offset-assert 208) + (upload-envmap-1 dma-packet :inline :offset-assert 224) + (upload-envmap-2 dma-packet :inline :offset-assert 240) + (upload-envmap-3 dma-packet :inline :offset-assert 256) + (upload-envmap-4 dma-packet :inline :offset-assert 272) + (upload-envmap-scissor-4 dma-packet :inline :offset-assert 288) + (generic-palette dma-packet :inline :offset-assert 304) + (generic-model-0 dma-packet :inline :offset-assert 320) + (generic-model-1 dma-packet :inline :offset-assert 336) + (generic-model-2 dma-packet :inline :offset-assert 352) + (model-next dma-packet :inline :offset-assert 368) + (clamp uint64 :offset-assert 384) + (prototype-array basic :offset-assert 392) + (wait-from-spr uint32 :offset-assert 396) + (wait-to-spr uint32 :offset-assert 400) + (mood mood-context :offset-assert 404) + (last uint32 16 :offset-assert 416) ;; guessed by decompiler + (next uint32 16 :offset-assert 480) ;; guessed by decompiler + (count uint16 16 :offset-assert 544) ;; guessed by decompiler + (tie-last uint32 :offset-assert 416) + (tie-next uint32 :offset-assert 480) + (tie-count uint16 :offset-assert 544) + (trans-last uint32 :offset-assert 420) + (trans-next uint32 :offset-assert 484) + (trans-count uint16 :offset-assert 546) + (water-last uint32 :offset-assert 424) + (water-next uint32 :offset-assert 488) + (water-count uint16 :offset-assert 548) + (scissor-last uint32 :offset-assert 428) + (scissor-next uint32 :offset-assert 492) + (scissor-count uint16 :offset-assert 550) + (scissor-trans-last uint32 :offset-assert 432) + (scissor-trans-next uint32 :offset-assert 496) + (scissor-trans-count uint16 :offset-assert 552) + (scissor-water-last uint32 :offset-assert 436) + (scissor-water-next uint32 :offset-assert 500) + (scissor-water-count uint16 :offset-assert 554) + (envmap-last uint32 :offset-assert 440) + (envmap-next uint32 :offset-assert 504) + (envmap-count uint16 :offset-assert 556) + (envmap-trans-last uint32 :offset-assert 444) + (envmap-trans-next uint32 :offset-assert 508) + (envmap-trans-count uint16 :offset-assert 558) + (envmap-water-last uint32 :offset-assert 448) + (envmap-water-next uint32 :offset-assert 512) + (envmap-water-count uint16 :offset-assert 560) + (envmap-scissor-last uint32 :offset-assert 452) + (envmap-scissor-next uint32 :offset-assert 516) + (envmap-scissor-count uint16 :offset-assert 562) + (envmap-scissor-trans-last uint32 :offset-assert 456) + (envmap-scissor-trans-next uint32 :offset-assert 520) + (envmap-scissor-trans-count uint16 :offset-assert 564) + (envmap-scissor-water-last uint32 :offset-assert 460) + (envmap-scissor-water-next uint32 :offset-assert 524) + (envmap-scissor-water-count uint16 :offset-assert 566) + (generic-last uint32 :offset-assert 464) + (generic-next uint32 :offset-assert 528) + (generic-count uint16 :offset-assert 568) + (generic-trans-last uint32 :offset-assert 468) + (generic-trans-next uint32 :offset-assert 532) + (generic-trans-count uint16 :offset-assert 570) + (generic-water-last uint32 :offset-assert 472) + (generic-water-next uint32 :offset-assert 536) + (generic-water-count uint16 :offset-assert 572) + (vanish-last uint32 :offset-assert 476) + (vanish-next uint32 :offset-assert 540) + (vanish-count uint16 :offset-assert 574) + ) + :method-count-assert 9 + :size-assert #x240 + :flag-assert #x900000240 + ) +|# + +#| +(deftype prototype-tie-dma (structure) + ((colora rgba 256 :offset-assert 0) ;; guessed by decompiler + (colorb rgba 256 :offset-assert 1024) ;; guessed by decompiler + (outa uint128 256 :offset-assert 2048) ;; guessed by decompiler + (outb uint128 256 :offset-assert 6144) ;; guessed by decompiler + (geometry uint32 4 :offset-assert 10240) ;; guessed by decompiler + (next uint32 12 :offset-assert 10256) ;; guessed by decompiler + (count uint16 12 :offset-assert 10304) ;; guessed by decompiler + (counts uint32 4 :offset-assert 10328) ;; guessed by decompiler + (palette-ptr uint32 :offset-assert 10336) + (model-ptr uint32 :offset-assert 10340) + (ret-ptr uint32 :offset-assert 10344) + (length uint32 :offset-assert 10348) + (flags uint32 :offset-assert 10352) + (dma-buffer basic :offset-assert 10356) + (this-frag-count uint32 :offset-assert 10360) + (frag-count uint8 4 :offset-assert 10364) ;; guessed by decompiler + (from-spr uint32 :offset-assert 10368) + (to-spr uint32 :offset-assert 10372) + (spr-out uint32 :offset-assert 10376) + (this-count uint32 :offset-assert 10380) + (scissor-geometry uint32 :offset-assert 10240) + (near-geometry uint32 :offset-assert 10244) + (mid-geometry uint32 :offset-assert 10248) + (far-geometry uint32 :offset-assert 10252) + (scissor-frag-count uint8 :offset-assert 10364) + (near-frag-count uint8 :offset-assert 10365) + (mid-frag-count uint8 :offset-assert 10366) + (far-frag-count uint8 :offset-assert 10367) + (tie-scissor-next uint32 :offset-assert 10256) + (tie-near-next uint32 :offset-assert 10260) + (tie-mid-next uint32 :offset-assert 10264) + (tie-far-next uint32 :offset-assert 10268) + (trans-scissor-next uint32 4 :offset-assert 10256) ;; guessed by decompiler + (trans-near-next uint32 :offset-assert 10260) + (trans-mid-next uint32 :offset-assert 10264) + (trans-far-next uint32 :offset-assert 10268) + (water-scissor-next uint32 4 :offset-assert 10256) ;; guessed by decompiler + (water-near-next uint32 :offset-assert 10260) + (water-mid-next uint32 :offset-assert 10264) + (water-far-next uint32 :offset-assert 10268) + (envmap-scissor-next uint32 4 :offset-assert 10272) ;; guessed by decompiler + (envmap-near-next uint32 :offset-assert 10276) + (envmap-mid-next uint32 :offset-assert 10280) + (envmap-far-next uint32 :offset-assert 10284) + (generic-near-next uint32 :offset-assert 10288) + (generic-mid-next uint32 :offset-assert 10292) + (generic-far-next uint32 :offset-assert 10296) + (vanish-next uint32 :offset-assert 10300) + (tie-count uint16 :offset-assert 10304) + (tie-scissor-count uint16 :offset-assert 10304) + (tie-near-count uint16 :offset-assert 10306) + (tie-mid-count uint16 :offset-assert 10308) + (tie-far-count uint16 :offset-assert 10310) + (trans-count uint16 :offset-assert 10304) + (trans-scissor-count uint16 :offset-assert 10304) + (trans-near-count uint16 :offset-assert 10306) + (trans-mid-count uint16 :offset-assert 10308) + (trans-far-count uint16 :offset-assert 10310) + (water-count uint16 :offset-assert 10304) + (water-scissor-count uint16 :offset-assert 10304) + (water-near-count uint16 :offset-assert 10306) + (water-mid-count uint16 :offset-assert 10308) + (water-far-count uint16 :offset-assert 10310) + (envmap-count uint16 :offset-assert 10312) + (envmap-scissor-count uint16 :offset-assert 10312) + (envmap-near-count uint16 :offset-assert 10314) + (envmap-mid-count uint16 :offset-assert 10316) + (envmap-far-count uint16 :offset-assert 10318) + (generic-count uint16 :offset-assert 10320) + (generic-near-count uint16 :offset-assert 10320) + (generic-mid-count uint16 :offset-assert 10322) + (generic-far-count uint16 :offset-assert 10324) + (vanish-count uint16 :offset-assert 10326) + (next-clear uint32 3 :offset-assert 10256) ;; guessed by decompiler + (count-clear uint16 3 :offset-assert 10304) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x2890 + :flag-assert #x900002890 + ) +|# + +;; (define-extern *instance-tie-work-copy* object) ;; instance-tie-work + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; mined-mood ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype mined-states (structure) + ((filter UNKNOWN 2 :offset-assert 0) + (light UNKNOWN 2 :offset-assert 32) + ) + :method-count-assert 9 + :size-assert #x28 + :flag-assert #x900000028 + ) +|# + +;; (define-extern set-mined-filter-light! function) +;; (define-extern init-mood-mined function) +;; (define-extern update-mood-mined function) +;; (define-extern set-mined-filter! function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; waswide-init ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern restore-wascity-speeches function) +;; (define-extern waswide-login function) +;; (define-extern waswide-activate function) +;; (define-extern waswide-deactivate function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; rublcst-scenes ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; tfrag-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype tfragment-stats (structure) + ((num-tris uint16 4 :offset-assert 0) ;; guessed by decompiler + (num-dverts uint16 4 :offset-assert 8) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype tfragment-debug-data (structure) + ((stats tfragment-stats :inline :offset-assert 0) + (debug-lines (array vector-array) :offset-assert 16) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x14 + :flag-assert #x900000014 + ) +|# + +#| +(deftype generic-tfragment (structure) + ((dummy int32 :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x4 + :flag-assert #x900000004 + ) +|# + +#| +(deftype tfragment (drawable) + ((color-index uint16 :offset-assert 6) + (debug-data tfragment-debug-data :offset-assert 8) + (color-indices uint32 :offset-assert 12) + (colors uint32 :offset-assert 12) + (dma-chain uint32 3 :offset-assert 32) ;; guessed by decompiler + (dma-common uint32 :offset-assert 32) + (dma-level-0 uint32 :offset-assert 32) + (dma-base uint32 :offset-assert 36) + (dma-level-1 uint32 :offset-assert 40) + (dma-qwc uint8 4 :offset-assert 44) ;; guessed by decompiler + (shader (inline-array adgif-shader) :offset-assert 48) ;; guessed by decompiler + (num-shaders uint8 :offset-assert 52) + (num-base-colors uint8 :offset-assert 53) + (num-level0-colors uint8 :offset-assert 54) + (num-level1-colors uint8 :offset-assert 55) + (color-offset uint8 :offset-assert 56) + (color-count uint8 :offset-assert 57) + (texture-masks-index uint16 :offset-assert 58) + (generic generic-tfragment :offset-assert 60) + ) + :method-count-assert 17 + :size-assert #x40 + :flag-assert #x1100000040 + ) +|# + +;; (deftype drawable-inline-array-tfrag (drawable-inline-array) +;; () +;; :flag-assert #x1100000064 +;; ) + +;; (deftype drawable-inline-array-tfrag-trans (drawable-inline-array-tfrag) +;; () +;; :flag-assert #x11000000b4 +;; ) + +;; (deftype drawable-inline-array-tfrag-water (drawable-inline-array-tfrag) +;; () +;; :flag-assert #x11000000b4 +;; ) + +;; (deftype drawable-tree-tfrag (drawable-tree) +;; () +;; :flag-assert #x1100000020 +;; ) + +;; (deftype drawable-tree-tfrag-trans (drawable-tree-tfrag) +;; () +;; :flag-assert #x1100000020 +;; ) + +;; (deftype drawable-tree-tfrag-water (drawable-tree-tfrag-trans) +;; () +;; :flag-assert #x1100000020 +;; ) + +#| +(deftype tfrag-dists (structure) + ((data uint32 16 :offset-assert 0) ;; guessed by decompiler + (vector vector 4 :offset-assert 0) ;; guessed by decompiler + (k0s vector 2 :offset-assert 0) ;; guessed by decompiler + (k1s vector 2 :offset-assert 32) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x40 + :flag-assert #x900000040 + ) +|# + +#| +(deftype tfrag-data (structure) + ((data uint32 56 :offset-assert 0) ;; guessed by decompiler + (vector vector 14 :offset-assert 0) ;; guessed by decompiler + (fog vector :inline :offset-assert 0) + (val vector :inline :offset-assert 16) + (strgif qword :inline :offset-assert 32) ;; gs-gif-tag :inline + (fangif qword :inline :offset-assert 48) ;; gs-gif-tag :inline + (adgif qword :inline :offset-assert 64) ;; gs-gif-tag :inline + (hvdf-offset vector :inline :offset-assert 80) + (hmge-scale vector :inline :offset-assert 96) + (invh-scale vector :inline :offset-assert 112) + (ambient vector :inline :offset-assert 128) + (guard vector :inline :offset-assert 144) + (dists tfrag-dists :inline :offset-assert 160) + (k0s uint128 2 :offset-assert 160) ;; guessed by decompiler + (k1s uint128 2 :offset-assert 192) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #xe0 + :flag-assert #x9000000e0 + ) +|# + +#| +(deftype tfrag-control (structure) + ((num-base-points uint32 :offset-assert 0) + (num-shared-base-points uint32 :offset-assert 4) + (num-level0-points uint32 :offset-assert 8) + (num-shared-level0-points uint32 :offset-assert 12) + (num-level1-points uint32 :offset-assert 16) + (num-shared-level1-points uint32 :offset-assert 20) + (ptr-vtxdata uint32 :offset-assert 24) + (ptr-base-points uint32 :offset-assert 28) + (ptr-shared-base-points uint32 :offset-assert 32) + (ptr-level0-points uint32 :offset-assert 36) + (ptr-shared-level0-points uint32 :offset-assert 40) + (ptr-level1-points uint32 :offset-assert 44) + (ptr-shared-level1-points uint32 :offset-assert 48) + (ptr-draw-points uint32 :offset-assert 52) + (ptr-interpolated-0 uint32 :offset-assert 56) + (ptr-shared-interpolated-0 uint32 :offset-assert 60) + (ptr-interpolated1 uint32 :offset-assert 64) + (ptr-shared-interpolated1 uint32 :offset-assert 68) + (ptr-strip-data uint32 :offset-assert 72) + (ptr-texture-data uint32 :offset-assert 76) + ) + :method-count-assert 9 + :size-assert #x50 + :flag-assert #x900000050 + ) +|# + +#| +(deftype tfrag-stats (structure) + ((from int32 :offset-assert 0) + (to int32 :offset-assert 4) + (cnt int32 :offset-assert 8) + (tris int32 :offset-assert 12) + (tfaces int32 :offset-assert 16) + (tfrags int32 :offset-assert 20) + (dtris int32 :offset-assert 24) + (base-verts int32 :offset-assert 28) + (level0-verts int32 :offset-assert 32) + (level1-verts int32 :offset-assert 36) + (dma-cnt int32 :offset-assert 40) + (dma-dta int32 :offset-assert 44) + (dma-tex int32 :offset-assert 48) + (strips int32 :offset-assert 52) + (drawpoints int32 :offset-assert 56) + (vif int32 :offset-assert 60) + ) + :method-count-assert 9 + :size-assert #x40 + :flag-assert #x900000040 + ) +|# + +#| +(deftype tfrag-packet (structure) + ((tag uint128 2 :offset-assert 0) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x20 + :flag-assert #x900000020 + ) +|# + +#| +(deftype tfrag-work (structure) + ((base-tmpl dma-packet :inline :offset-assert 0) + (level-0-tmpl dma-packet :inline :offset-assert 16) + (common-tmpl dma-packet :inline :offset-assert 32) + (level-1-tmpl dma-packet :inline :offset-assert 48) + (color-tmpl dma-packet :inline :offset-assert 64) + (frag-dists vector :inline :offset-assert 80) + (min-dist vector :inline :offset-assert 96) + (color-ptr vector4w :inline :offset-assert 112) + (tr-stat-tfrag tr-stat :offset-assert 128) + (tr-stat-tfrag-scissor tr-stat :offset-assert 132) + (vu1-enable-tfrag int32 :offset-assert 136) + (vu1-enable-tfrag-scissor int32 :offset-assert 140) + (cur-vis-bits uint32 :offset-assert 144) + (end-vis-bits uint32 :offset-assert 148) + (src-ptr uint32 :offset-assert 152) + (last-call uint32 :offset-assert 156) + (dma-buffer basic :offset-assert 160) + (test-id uint32 :offset-assert 164) + (wait-from-spr uint32 :offset-assert 168) + (wait-to-spr uint32 :offset-assert 172) + (near-wait-from-spr uint32 :offset-assert 176) + (near-wait-to-spr uint32 :offset-assert 180) + (max-fragment uint16 :offset-assert 184) + (min-fragment uint16 :offset-assert 186) + (texture-dists uint32 :offset-assert 188) + ) + :method-count-assert 9 + :size-assert #xc0 + :flag-assert #x9000000c0 + ) +|# + +#| +(deftype tfrag-dma (structure) + ((banka tfragment 16 :offset-assert 4) ;; guessed by decompiler + (bankb tfragment 16 :offset-assert 1028) ;; guessed by decompiler + (outa uint128 128 :offset-assert 2048) ;; guessed by decompiler + (outb uint128 128 :offset-assert 4096) ;; guessed by decompiler + (colors rgba 2048 :offset-assert 6144) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x37fc + :flag-assert #x9000037fc + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; hfrag-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; adgif-shader-array is already defined! + +#| +(deftype hfrag-montage (structure) + ((data UNKNOWN 16 :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x20 + :flag-assert #x900000020 + ) +|# + +#| +(deftype hfrag-bucket (structure) + ((next uint32 :offset-assert 0) + (count uint16 :offset-assert 4) + (vertex-count uint16 :offset-assert 6) + (next-scissor uint32 :offset-assert 8) + (count-scissor uint16 :offset-assert 12) + (vertex-count-scissor uint16 :offset-assert 14) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +;; (deftype hfrag-packed-index (uint16) +;; () +;; :flag-assert #x900000002 +;; ) + +#| +(deftype hfrag-vertex (structure) + ((height uint16 :offset-assert 0) + (packed-index uint16 :offset-assert 2) + ) + :method-count-assert 9 + :size-assert #x4 + :flag-assert #x900000004 + ) +|# + +#| +(deftype hfrag-vert-index (structure) + ((pos vector2ub :inline :offset-assert 0) + (index0 uint16 :offset-assert 2) + (index1 uint16 :offset-assert 4) + (index2 uint16 :offset-assert 6) + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +#| +(deftype hfrag-poly4 (structure) + ((UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + ) + :method-count-assert 9 + :size-assert #x20 + :flag-assert #x900000020 + ) +|# + +#| +(deftype hfrag-poly9 (structure) + ((UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + ) + :method-count-assert 9 + :size-assert #x48 + :flag-assert #x900000048 + ) +|# + +#| +(deftype hfrag-poly25 (structure) + ((UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + ) + :method-count-assert 9 + :size-assert #xc8 + :flag-assert #x9000000c8 + ) +|# + +#| +(deftype hfrag-poly4-chain (structure) + ((tag dma-packet :inline :offset-assert 0) + (verts UNKNOWN 4 :offset-assert 16) + (next dma-packet :inline :offset-assert 208) + ) + :method-count-assert 9 + :size-assert #xe0 + :flag-assert #x9000000e0 + ) +|# + +#| +(deftype hfrag-poly9-chain (structure) + ((tag dma-packet :inline :offset-assert 0) + (verts UNKNOWN 12 :offset-assert 16) + (next dma-packet :inline :offset-assert 592) + ) + :method-count-assert 9 + :size-assert #x260 + :flag-assert #x900000260 + ) +|# + +#| +(deftype hfrag-poly25-chain (structure) + ((tag dma-packet :inline :offset-assert 0) + (verts UNKNOWN 40 :offset-assert 16) + (next dma-packet :inline :offset-assert 1936) + ) + :method-count-assert 9 + :size-assert #x7a0 + :flag-assert #x9000007a0 + ) +|# + +#| +(deftype hfrag-cache-vertex (structure) + ((color vector4w :inline :offset-assert 0) + (pos vector :inline :offset-assert 16) + (clip uint32 :offset-assert 28) + ) + :method-count-assert 9 + :size-assert #x20 + :flag-assert #x900000020 + ) +|# + +#| +(deftype hfrag-cache-line (structure) + ((data UNKNOWN 9 :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x120 + :flag-assert #x900000120 + ) +|# + +#| +(deftype hfrag-visbits (structure) + ((data UNKNOWN 128 :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x80 + :flag-assert #x900000080 + ) +|# + +#| +(deftype hfrag-gcf-control (structure) + ((matrix matrix :inline :offset-assert 0) + (giftag generic-gif-tag :inline :offset-assert 64) + (adnops UNKNOWN 2 :offset-assert 80) + (num-strips uint32 :offset-assert 76) + (num-dps uint32 :offset-assert 92) + (kick-offset uint32 :offset-assert 108) + (shader gcf-shader :inline :offset-assert 112) + ) + :method-count-assert 9 + :size-assert #xc0 + :flag-assert #x9000000c0 + ) +|# + +#| +(deftype hfrag-gcf-ctrl (structure) + ((tag dma-packet :inline :offset-assert 0) + (control hfrag-gcf-control :inline :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #xd0 + :flag-assert #x9000000d0 + ) +|# + +#| +(deftype hfrag-init-packet (structure) + ((init-tmpl dma-packet :inline :offset-assert 0) + (init-data UNKNOWN 8 :offset-assert 16) + (quad UNKNOWN 3 :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x30 + :flag-assert #x900000030 + ) +|# + +#| +(deftype hfrag-sprite-coord (structure) + ((pos0 vector4w :inline :offset-assert 0) + (pos1 vector4w :inline :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x20 + :flag-assert #x900000020 + ) +|# + +#| +(deftype hfrag-montage-coord (structure) + ((stq0 vector4 :inline :offset-assert 0) + (stq1 vector4 :inline :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x20 + :flag-assert #x900000020 + ) +|# + +#| +(deftype hfrag-sprite-packet (structure) + ((sprite-tmpl dma-gif-packet :inline :offset-assert 0) + (color vector4w :inline :offset-assert 32) + (tex0 vector :inline :offset-assert 48) + (pos0 vector4w :inline :offset-assert 64) + (tex1 vector :inline :offset-assert 80) + (pos1 vector4w :inline :offset-assert 96) + ) + :method-count-assert 9 + :size-assert #x70 + :flag-assert #x900000070 + ) +|# + +#| +(deftype hfrag-tex-data (structure) + ((quad UNKNOWN 3 :offset-assert 0) + (prims UNKNOWN 6 :offset-assert 0) + (reg-0 uint8 :offset-assert 8) + (reg-1 uint8 :offset-assert 24) + (reg-2 uint8 :offset-assert 40) + (tex0 uint64 :offset-assert 0) + (tex1 uint64 :offset-assert 16) + (texflush uint64 :offset-assert 32) + ) + :method-count-assert 9 + :size-assert #x30 + :flag-assert #x900000030 + ) +|# + +#| +(deftype hfrag-mip-packet (structure) + ((mip-tmpl dma-gif-packet :inline :offset-assert 0) + (tex0-1 vector :inline :offset-assert 32) + (tex1-1 vector :inline :offset-assert 48) + (texflush vector :inline :offset-assert 64) + (color vector4w :inline :offset-assert 80) + (tex0 vector :inline :offset-assert 96) + (pos0 vector :inline :offset-assert 112) + (tex1 vector :inline :offset-assert 128) + (pos1 vector :inline :offset-assert 144) + ) + :method-count-assert 9 + :size-assert #xa0 + :flag-assert #x9000000a0 + ) +|# + +#| +(deftype hfrag-adgif-packet (structure) + ((adgif-tmpl dma-gif-packet :inline :offset-assert 0) + (adgif-data adgif-shader :inline :offset-assert 32) + ) + :method-count-assert 9 + :size-assert #x70 + :flag-assert #x900000070 + ) +|# + +#| +(deftype hfrag-adgif-packet2 (structure) + ((adgif-tmpl dma-gif-packet :inline :offset-assert 0) + (adgif-data adgif-shader :inline :offset-assert 32) + (texflush uint128 :offset-assert 112) + ) + :method-count-assert 9 + :size-assert #x80 + :flag-assert #x900000080 + ) +|# + +#| +(deftype hfrag-frame (structure) + ((quad UNKNOWN 4 :offset-assert 0) + (prims UNKNOWN 8 :offset-assert 0) + (reg-0 uint8 :offset-assert 8) + (reg-1 uint8 :offset-assert 24) + (reg-2 uint8 :offset-assert 40) + (reg-3 uint8 :offset-assert 56) + (frame uint64 :offset-assert 0) + (scissor uint64 :offset-assert 16) + (xyoffset uint64 :offset-assert 32) + (test uint64 :offset-assert 48) + ) + :method-count-assert 9 + :size-assert #x40 + :flag-assert #x900000040 + ) +|# + +#| +(deftype hfrag-frame-packet (structure) + ((frame-tmpl dma-gif-packet :inline :offset-assert 0) + (frame-data hfrag-frame :inline :offset-assert 32) + ) + :method-count-assert 9 + :size-assert #x60 + :flag-assert #x900000060 + ) +|# + +#| +(deftype hfragment (drawable) + ((start-corner vector :inline :offset-assert 32) + (spheres uint32 :offset-assert 48) + (visids uint32 :offset-assert 52) + (shaders uint32 :offset-assert 56) + (colors basic :offset-assert 60) + (montage uint32 :offset-assert 64) + (buckets-far uint32 :offset-assert 68) + (buckets-mid uint32 :offset-assert 72) + (buckets-near uint32 :offset-assert 76) + (verts uint32 :offset-assert 80) + (pat-array uint32 :offset-assert 84) + (pat-length uint16 :offset-assert 88) + (num-buckets-far uint16 :offset-assert 90) + (num-buckets-mid uint16 :offset-assert 92) + (num-buckets-near uint16 :offset-assert 94) + (size uint32 :offset-assert 44) + ) + :method-count-assert 22 + :size-assert #x60 + :flag-assert #x1600000060 + (:methods + (hfragment-method-17 () none) ;; 17 + (hfragment-method-18 () none) ;; 18 + (hfragment-method-19 () none) ;; 19 + (hfragment-method-20 () none) ;; 20 + (hfragment-method-21 () none) ;; 21 + ) + ) +|# + +#| +(deftype hfrag-dma (structure) + ((banka UNKNOWN 340 :offset-assert 0) + (bankb UNKNOWN 340 :offset-assert 1360) + (outa UNKNOWN 227 :offset-assert 2720) + (outb UNKNOWN 227 :offset-assert 6352) + (cache UNKNOWN 8 :offset-assert 9984) + (colors UNKNOWN 1024 :offset-assert 12288) + ) + :method-count-assert 9 + :size-assert #x4000 + :flag-assert #x900004000 + ) +|# + +#| +(deftype hfrag-work (structure) + ((far-chaina UNKNOWN 6 :offset-assert 0) + (far-chainb UNKNOWN 6 :offset-assert 96) + (mid-chaina UNKNOWN 10 :offset-assert 192) + (mid-chainb UNKNOWN 10 :offset-assert 352) + (near-chaina UNKNOWN 18 :offset-assert 512) + (near-chainb UNKNOWN 18 :offset-assert 800) + (poly4-tmpl UNKNOWN 3 :offset-assert 1088) + (poly9-tmpl UNKNOWN 3 :offset-assert 1136) + (poly25-tmpl UNKNOWN 3 :offset-assert 1184) + (init-tmpl UNKNOWN 3 :offset-assert 1232) + (control-tmpl UNKNOWN 2 :offset-assert 1376) + (heights4-tmpl UNKNOWN 2 :offset-assert 1408) + (colors4-tmpl UNKNOWN 2 :offset-assert 1440) + (heights9-tmpl UNKNOWN 2 :offset-assert 1472) + (colors9-tmpl UNKNOWN 2 :offset-assert 1504) + (heights25-tmpl UNKNOWN 2 :offset-assert 1536) + (colors25-tmpl UNKNOWN 2 :offset-assert 1568) + (init-vu1-tmpl UNKNOWN 2 :offset-assert 1600) + (next-tmpl dma-packet :inline :offset-assert 1696) + (call-tmpl dma-packet :inline :offset-assert 1712) + (ret-tmpl dma-packet :inline :offset-assert 1728) + (next-scissor-tmpl dma-packet :inline :offset-assert 1744) + (ret-scissor-tmpl dma-packet :inline :offset-assert 1760) + (frame-tmpl dma-gif-packet :inline :offset-assert 1776) + (frames UNKNOWN 5 :offset-assert 1808) + (adgif-tmpl dma-gif-packet :inline :offset-assert 2128) + (adgif-tmpl2 dma-gif-packet :inline :offset-assert 2160) + (sprite-tmpl dma-gif-packet :inline :offset-assert 2192) + (mip-tmpl dma-gif-packet :inline :offset-assert 2224) + (color UNKNOWN 6 :offset-assert 2256) + (far-data hfrag-sprite-coord :inline :offset-assert 2352) + (near-data UNKNOWN 16 :offset-assert 2384) + (mip-data UNKNOWN 7 :offset-assert 2896) + (tex-data UNKNOWN 5 :offset-assert 3120) + (tex UNKNOWN 6 :offset-assert 3360) + (montage-tex-coords UNKNOWN 128 :offset-assert 3456) + (giftag generic-gif-tag :inline :offset-assert 7552) + (call-abort dma-packet :inline :offset-assert 7568) + (call-abort-vu1 dma-packet :inline :offset-assert 7584) + (shader-far adgif-shader :inline :offset-assert 7600) + (shader-mid adgif-shader :inline :offset-assert 7680) + (shader-near adgif-shader :inline :offset-assert 7760) + (stq UNKNOWN 9 :offset-assert 7840) + (shader adgif-shader :inline :offset-assert 7984) + (constants vector :inline :offset-assert 8064) + (pos-temp vector4w :inline :offset-assert 8080) + (trans-temp vector :inline :offset-assert 8080) + (dists vector :inline :offset-assert 8096) + (rdists vector :inline :offset-assert 8112) + (call-poly4-near uint32 :offset-assert 8128) + (call-poly9-mid uint32 :offset-assert 8132) + (call-poly9-near uint32 :offset-assert 8136) + (call-poly25-far uint32 :offset-assert 8140) + (call-poly25-mid uint32 :offset-assert 8144) + (dma-buffer basic :offset-assert 8148) + (base uint32 :offset-assert 8152) + (wait-to-spr uint32 :offset-assert 8156) + (wait-from-spr uint32 :offset-assert 8160) + (buffer-end uint32 :offset-assert 8164) + (subdiv-index uint32 :offset-assert 8168) + (scissor basic :offset-assert 8172) + (chain-ptr uint32 :offset-assert 8176) + (chain-ptr-next uint32 :offset-assert 8180) + (near-dist float :offset-assert 8184) + (far-dist float :offset-assert 8188) + (to-spr uint32 :offset-assert 8192) + (from-spr uint32 :offset-assert 8196) + (lowres-flag basic :offset-assert 8200) + (hfrag hfragment :inline :offset-assert 8212) + (next-far int16 :offset-assert 8304) + (next-far-mid int16 :offset-assert 8306) + (next-mid int16 :offset-assert 8308) + (next-near-mid int16 :offset-assert 8310) + (next-near int16 :offset-assert 8312) + (next-far-scissor int16 :offset-assert 8314) + (next-near-mid-scissor int16 :offset-assert 8316) + (next-near-scissor int16 :offset-assert 8318) + (count-far int16 :offset-assert 8320) + (count-far-mid int16 :offset-assert 8322) + (count-mid int16 :offset-assert 8324) + (count-near-mid int16 :offset-assert 8326) + (count-near int16 :offset-assert 8328) + (count-far-scissor int16 :offset-assert 8330) + (count-near-mid-scissor int16 :offset-assert 8332) + (count-near-scissor int16 :offset-assert 8334) + (size-far int32 :offset-assert 8336) + (size-far-mid int32 :offset-assert 8340) + (size-mid int32 :offset-assert 8344) + (size-near-mid int32 :offset-assert 8348) + (size-near int32 :offset-assert 8352) + (size-far-scissor int32 :offset-assert 8356) + (size-near-mid-scissor int32 :offset-assert 8360) + (size-near-scissor int32 :offset-assert 8364) + (size-texture int32 :offset-assert 8368) + (poly-far hfrag-poly25 :offset-assert 8372) + (poly-mid25 uint32 :offset-assert 8376) + (poly-mid uint32 :offset-assert 8380) + (poly-near uint32 :offset-assert 8384) + (far-texture uint32 :offset-assert 8388) + (near-textures UNKNOWN 16 :offset-assert 8392) + (draw-table UNKNOWN 1024 :offset-assert 8456) + (corners UNKNOWN 1024 :offset-assert 10512) + ) + :method-count-assert 36 + :size-assert #x6910 + :flag-assert #x2400006910 + (:methods + (hfrag-work-method-9 () none) ;; 9 + (hfrag-work-method-10 () none) ;; 10 + (hfrag-work-method-11 () none) ;; 11 + (hfrag-work-method-12 () none) ;; 12 + (hfrag-work-method-13 () none) ;; 13 + (hfrag-work-method-14 () none) ;; 14 + (hfrag-work-method-15 () none) ;; 15 + (hfrag-work-method-16 () none) ;; 16 + (hfrag-work-method-17 () none) ;; 17 + (hfrag-work-method-18 () none) ;; 18 + (hfrag-work-method-19 () none) ;; 19 + (hfrag-work-method-20 () none) ;; 20 + (hfrag-work-method-21 () none) ;; 21 + (hfrag-work-method-22 () none) ;; 22 + (hfrag-work-method-23 () none) ;; 23 + (hfrag-work-method-24 () none) ;; 24 + (hfrag-work-method-25 () none) ;; 25 + (hfrag-work-method-26 () none) ;; 26 + (hfrag-work-method-27 () none) ;; 27 + (hfrag-work-method-28 () none) ;; 28 + (hfrag-work-method-29 () none) ;; 29 + (hfrag-work-method-30 () none) ;; 30 + (hfrag-work-method-31 () none) ;; 31 + (hfrag-work-method-32 () none) ;; 32 + (hfrag-work-method-33 () none) ;; 33 + (hfrag-work-method-34 () none) ;; 34 + (hfrag-work-method-35 () none) ;; 35 + ) + ) +|# + +#| +(deftype hfrag-mip-packet-array (structure) + ((data UNKNOWN 6 :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x3c0 + :flag-assert #x9000003c0 + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; guard-projectile ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype guard-shot (projectile) + ((hit-actor? symbol :offset-assert 512) ;; guessed by decompiler + (tail-pos vector :inline :offset-assert 528) + ) + :method-count-assert 41 + :size-assert #x220 + :flag-assert #x2901a00220 + ) +|# + +;; (define-extern guard-shot-move function) ;; (function guard-shot none) +;; (define-extern spawn-guard-projectile function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ocean-mid ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern ocean-mid-block object) ;; vu-function + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; entity-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype entity-perm (structure) + ((user-object object 2 :offset-assert 0) ;; guessed by decompiler + (user-uint64 uint64 :offset-assert 0) + (user-float float 2 :offset-assert 0) ;; guessed by decompiler + (user-int32 int32 2 :offset-assert 0) ;; guessed by decompiler + (user-uint32 uint32 2 :offset-assert 0) ;; guessed by decompiler + (user-int16 int16 4 :offset-assert 0) ;; guessed by decompiler + (user-uint16 uint16 4 :offset-assert 0) ;; guessed by decompiler + (user-int8 int8 8 :offset-assert 0) ;; guessed by decompiler + (user-uint8 uint8 8 :offset-assert 0) ;; guessed by decompiler + (status uint16 :offset-assert 8) ;; entity-perm-status + (dummy uint8 1 :offset-assert 10) ;; guessed by decompiler + (task uint8 :offset-assert 11) ;; game-task + (aid actor-id :offset-assert 12) ;; guessed by decompiler + (quad uint128 :offset-assert 0) + ) + :method-count-assert 10 + :size-assert #x10 + :flag-assert #xa00000010 + (:methods + (entity-perm-method-9 () none) ;; 9 ;; (update (_type_ symbol entity-perm-status) _type_ 9) + ) + ) +|# + +#| +(deftype entity-links (structure) + ((prev-link entity-links :offset-assert 0) + (next-link entity-links :offset-assert 4) + (entity entity :offset-assert 8) ;; guessed by decompiler + (process process :offset-assert 12) ;; guessed by decompiler + (level level :offset-assert 16) ;; guessed by decompiler + (vis-id int32 :offset-assert 20) + (kill-mask task-mask :offset-assert 24) + (vis-dist meters :offset-assert 28) + (trans vector :inline :offset-assert 32) + (perm entity-perm :inline :offset-assert 48) + (status uint16 :offset-assert 56) + (aid uint32 :offset-assert 60) + (task uint8 :offset-assert 59) + ) + :method-count-assert 10 + :size-assert #x40 + :flag-assert #xa00000040 + (:methods + (entity-links-method-9 () none) ;; 9 ;; (birth? (_type_ vector) symbol 9) + ) + ) +|# + +#| +(deftype entity-perm-array (inline-array-class) + ((data entity-perm :dynamic :offset-assert 16) ;; guessed by decompiler + ) + :method-count-assert 14 + :size-assert #x10 + :flag-assert #xe00000010 + ) +|# + +#| +(deftype entity-links-array (inline-array-class) + ((data entity-links :dynamic :offset-assert 16) ;; guessed by decompiler + ) + :method-count-assert 14 + :size-assert #x10 + :flag-assert #xe00000010 + ) +|# + +;; (deftype entity (res-lump) +;; () +;; :flag-assert #x1b00000034 +;; ) + +;; (deftype entity-camera (entity) +;; () +;; :flag-assert #x1b00000050 +;; ) + +;; (deftype entity-nav-mesh (entity) +;; () +;; :flag-assert #x1d00000038 +;; ) + +;; (deftype entity-race-mesh (entity) +;; () +;; :flag-assert #x1d00000038 +;; ) + +;; (deftype entity-actor (entity) +;; () +;; :flag-assert #x2100000050 +;; ) + +#| +(deftype actor-reference (structure) + ((actor entity :offset-assert 0) ;; guessed by decompiler + (id uint32 :offset-assert 4) + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +#| +(deftype actor-group (inline-array-class) + ((data actor-reference :dynamic :offset-assert 16) ;; guessed by decompiler + ) + :method-count-assert 14 + :size-assert #x10 + :flag-assert #xe00000010 + ) +|# + +#| +(deftype entity-info (basic) + ((ptype type :offset-assert 4) ;; guessed by decompiler + (pool symbol :offset-assert 8) ;; guessed by decompiler + (heap-size int32 :offset-assert 12) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype actor-bank (basic) + ((pause-dist float :offset-assert 4) ;; meters + (birth-dist float :offset-assert 8) ;; meters + (birth-max int32 :offset-assert 12) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +;; (define-extern *generate-actor-vis* object) ;; symbol +;; (define-extern *generate-actor-vis-start* object) ;; symbol +;; (define-extern *generate-actor-vis-output* object) ;; symbol +;; (define-extern *ACTOR-bank* actor-bank) ;; actor-bank + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; sewer-mood ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype sewb-states (structure) + ((pulse pulse-state :inline :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype sewc-states (structure) + ((pulse pulse-state :inline :offset-assert 0) + (electricity electricity-state :inline :offset-assert 16) + (rot float :offset-assert 24) + ) + :method-count-assert 9 + :size-assert #x1c + :flag-assert #x90000001c + ) +|# + +#| +(deftype sewd-states (structure) + ((pulse pulse-state :inline :offset-assert 0) + (electricity electricity-state :inline :offset-assert 16) + (rot float :offset-assert 24) + ) + :method-count-assert 9 + :size-assert #x1c + :flag-assert #x90000001c + ) +|# + +#| +(deftype sewg-states (structure) + ((electricity UNKNOWN 2 :offset-assert 0) + (rot float :offset-assert 32) + ) + :method-count-assert 9 + :size-assert #x24 + :flag-assert #x900000024 + ) +|# + +#| +(deftype sewh-states (structure) + ((electricity UNKNOWN 5 :offset-assert 0) + (turret-value float :offset-assert 80) + ) + :method-count-assert 9 + :size-assert #x54 + :flag-assert #x900000054 + ) +|# + +#| +(deftype sewj-states (structure) + ((rot float :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x4 + :flag-assert #x900000004 + ) +|# + +#| +(deftype sewa-states (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ) +|# + +;; (define-extern update-sewer-lights function) ;; (function mood-context none) +;; (define-extern update-mood-sewa function) +;; (define-extern init-mood-sewb function) +;; (define-extern update-mood-sewb function) +;; (define-extern init-mood-sewc function) +;; (define-extern update-mood-sewc function) +;; (define-extern init-mood-sewd function) +;; (define-extern update-mood-sewd function) +;; (define-extern set-sewd-light! function) +;; (define-extern init-mood-sewg function) +;; (define-extern update-mood-sewg function) +;; (define-extern set-sewg-electricity-scale! function) +;; (define-extern init-mood-sewh function) +;; (define-extern update-mood-sewh function) +;; (define-extern set-sewh-electricity-scale! function) +;; (define-extern set-sewh-turret-flash! function) +;; (define-extern update-mood-sewj function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; sprite-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype sprite-vec-data-2d (structure) + ((x-y-z-sx vector :inline :offset-assert 0) + (flag-rot-sy vector :inline :offset-assert 16) + (r-g-b-a vector :inline :offset-assert 32) + (x float :offset-assert 0) + (y float :offset-assert 4) + (z float :offset-assert 8) + (sx float :offset-assert 12) + (sy float :offset-assert 28) + (rot float :offset-assert 24) + (flag int32 :offset-assert 16) + (matrix int32 :offset-assert 20) + (warp-turns int32 :offset-assert 16) + (r float :offset-assert 32) + (g float :offset-assert 36) + (b float :offset-assert 40) + (a float :offset-assert 44) + (trans vector3s :inline :offset-assert 0) + (color rgbaf :inline :offset-assert 32) + (data uint128 1 :offset-assert 0) ;; guessed by decompiler + (data64 uint64 6 :offset-assert 0) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x30 + :flag-assert #x900000030 + ) +|# + +#| +(deftype sprite-array-2d (basic) + ((num-sprites int32 2 :offset-assert 4) ;; guessed by decompiler + (num-valid int32 2 :offset-assert 12) ;; guessed by decompiler + (vec-data pointer :offset-assert 20) ;; guessed by decompiler + (adgif-data (inline-array adgif-shader) :offset-assert 24) ;; guessed by decompiler + (pad uint128 4 :offset-assert 32) ;; guessed by decompiler + (data uint128 1 :offset-assert 96) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x70 + :flag-assert #x900000070 + ) +|# + +#| +(deftype sprite-vec-data-3d (structure) + ((x-y-z-sx vector :inline :offset-assert 0) + (qx-qy-qz-sy vector :inline :offset-assert 16) + (r-g-b-a vector :inline :offset-assert 32) + (x float :offset-assert 0) + (y float :offset-assert 4) + (z float :offset-assert 8) + (sx float :offset-assert 12) + (sy float :offset-assert 28) + (qx float :offset-assert 16) + (qy float :offset-assert 20) + (qz float :offset-assert 24) + (r float :offset-assert 32) + (g float :offset-assert 36) + (b float :offset-assert 40) + (a float :offset-assert 44) + (trans vector3s :inline :offset-assert 0) + (rot vector3s :inline :offset-assert 16) + (color rgbaf :inline :offset-assert 32) + (data uint128 1 :offset-assert 0) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x30 + :flag-assert #x900000030 + ) +|# + +#| +(deftype sprite-array-3d (basic) + ((num-sprites int32 2 :offset-assert 4) ;; guessed by decompiler + (num-valid int32 2 :offset-assert 12) ;; guessed by decompiler + (vec-data pointer :offset-assert 20) ;; guessed by decompiler + (adgif-data (inline-array adgif-shader) :offset-assert 24) ;; guessed by decompiler + (data uint128 1 :offset-assert 32) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x30 + :flag-assert #x900000030 + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; blow-tower-speech ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern symbol->blow-tower-speech function) +;; (define-extern *blow-tower-speech* array) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; waswide-obs ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype wascity-windmill (process-drawable) + ((quat quaternion :inline :offset-assert 208) + ) + :method-count-assert 21 + :size-assert #xe0 + :flag-assert #x15006000e0 + (:state-methods + idle ;; 20 + ) + ) +|# + +#| +(deftype wascity-flag-base (process-drawable) + () + :method-count-assert 23 + :size-assert #xc8 + :flag-assert #x17005000c8 + (:methods + (wascity-flag-base-method-21 () none) ;; 21 + (wascity-flag-base-method-22 () none) ;; 22 + ) + (:state-methods + idle ;; 20 + ) + ) +|# + +#| +(deftype wascity-flag-a (wascity-flag-base) + () + :method-count-assert 23 + :size-assert #xc8 + :flag-assert #x17005000c8 + ) +|# + +#| +(deftype wascity-flag-b (wascity-flag-base) + () + :method-count-assert 23 + :size-assert #xc8 + :flag-assert #x17005000c8 + ) +|# + +#| +(deftype wascity-flag-c (wascity-flag-base) + () + :method-count-assert 23 + :size-assert #xc8 + :flag-assert #x17005000c8 + ) +|# + +#| +(deftype wascity-flag-d (wascity-flag-base) + () + :method-count-assert 23 + :size-assert #xc8 + :flag-assert #x17005000c8 + ) +|# + +#| +(deftype wascity-wind-fan (process-drawable) + ((quat quaternion :inline :offset-assert 208) + ) + :method-count-assert 21 + :size-assert #xe0 + :flag-assert #x15006000e0 + (:state-methods + idle ;; 20 + ) + ) +|# + +;; shaker is already defined! + +#| +(deftype wascity-cactus (process-focusable) + ((shakers UNKNOWN 6 :offset-assert 208) + (incoming-attack-id uint32 :offset-assert 592) + (incoming-attack-time uint64 :offset-assert 600) + (hit-points float :offset-assert 608) + ) + :method-count-assert 32 + :size-assert #x264 + :flag-assert #x2001f00264 + (:methods + (wascity-cactus-method-30 () none) ;; 30 + (wascity-cactus-method-31 () none) ;; 31 + ) + (:state-methods + die ;; 29 + idle ;; 28 + ) + ) +|# + +#| +(deftype wascity-market-crate (market-crate) + () + :method-count-assert 43 + :size-assert #x170 + :flag-assert #x2b00f00170 + ) +|# + +#| +(deftype wascity-market-basket-a (market-basket-a) + () + :method-count-assert 43 + :size-assert #x170 + :flag-assert #x2b00f00170 + ) +|# + +#| +(deftype wascity-market-basket-b (market-basket-b) + () + :method-count-assert 43 + :size-assert #x170 + :flag-assert #x2b00f00170 + ) +|# + +#| +(deftype wascity-market-sack-a (market-sack-a) + () + :method-count-assert 43 + :size-assert #x170 + :flag-assert #x2b00f00170 + ) +|# + +#| +(deftype wascity-market-sack-b (market-sack-b) + () + :method-count-assert 43 + :size-assert #x170 + :flag-assert #x2b00f00170 + ) +|# + +#| +(deftype wascity-fruit-stand (fruit-stand) + () + :method-count-assert 31 + :size-assert #x144 + :flag-assert #x1f00d00144 + ) +|# + +#| +(deftype wascity-water-pump (process-drawable) + () + :method-count-assert 21 + :size-assert #xc8 + :flag-assert #x15005000c8 + (:state-methods + idle ;; 20 + ) + ) +|# + +#| +(deftype wascity-awning-a (bouncer) + () + :method-count-assert 27 + :size-assert #xd8 + :flag-assert #x1b006000d8 + ) +|# + +#| +(deftype wascity-awning-b (bouncer) + () + :method-count-assert 27 + :size-assert #xd8 + :flag-assert #x1b006000d8 + ) +|# + +#| +(deftype monk-npc (process-taskable) + () + :method-count-assert 40 + :size-assert #x118 + :flag-assert #x2800a00118 + ) +|# + +;; (define-extern wascity-windmill-callback function) +;; (define-extern *wascity-cactus-exploder-params* joint-exploder-static-params) +;; (define-extern wascity-cactus-callback function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; target-mech ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype mech-shield (shield-sphere) + () + :method-count-assert 43 + :size-assert #x128 + :flag-assert #x2b00b00128 + (:state-methods + shield-disabled ;; 29 + ) + ) +|# + +;; (define-extern mech-shield-init-by-other function) +;; (define-extern *mech-stance-mods* surface) ;; surface +;; (define-extern *mech-walk-mods* surface) ;; surface +;; (define-extern *mech-jump-mods* surface) ;; surface +;; (define-extern *mech-punch-mods* surface) ;; surface +;; (define-extern *mech-pickup-mods* surface) ;; surface +;; (define-extern *mech-carry-walk-mods* surface) ;; surface +;; (define-extern *mech-carry-drag-mods* surface) ;; surface +;; (define-extern *mech-carry-jump-mods* surface) ;; surface +;; (define-extern target-mech-falling-anim-trans function) ;; (function none :behavior target) +;; (define-extern target-mech-mech-effect function) ;; (function target none :behavior mech) +;; (define-extern mech-on-ground? function) ;; (function symbol :behavior target) +;; (define-extern target-mech-get-off? function) ;; (function symbol :behavior target) +;; (define-extern target-mech-handler function) ;; (function process int symbol event-message-block object :behavior target) +;; (define-extern target-mech-bonk-event-handler function) ;; (function process int symbol event-message-block object :behavior target) +;; (define-extern mech-leg-ik-callback function) ;; (function joint-mod-ik matrix matrix vector object :behavior target) +;; (define-extern mech-update-ik function) ;; (function none :behavior target) +;; (define-extern target-mech-init function) ;; (function handle float symbol none :behavior target) +;; (define-extern target-mech-exit function) ;; (function none :behavior target) +;; (define-extern target-mech-effect function) ;; (function none :behavior target) +;; (define-extern target-mech-add-thrust function) ;; (function none :behavior target) +;; (define-extern target-mech-collision function) ;; (function none :behavior target) +;; (define-extern target-mech-real-post function) ;; (function none :behavior target) +;; (define-extern target-mech-post function) ;; (function none :behavior target) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; debug-part ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern sparticle-track-root-money function) ;; (function sparticle-system sparticle-cpuinfo vector none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; simple-sprite-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype sprite-glow-data (structure) + ((position vector :inline :offset-assert 0) + (size-x float :offset-assert 12) + (size-probe float :offset-assert 16) + (z-offset float :offset-assert 20) + (rot-angle float :offset-assert 24) + (size-y float :offset-assert 28) + (color rgbaf :inline :offset-assert 32) + (fade-a float :offset-assert 48) + (fade-b float :offset-assert 52) + (tex-id texture-id :offset-assert 56) ;; guessed by decompiler + (dummy uint32 :offset-assert 60) + ) + :method-count-assert 10 + :size-assert #x40 + :flag-assert #xa00000040 + (:methods + (sprite-glow-data-method-9 () none) ;; 9 ;; (set-trans (_type_ vector) none 9) + ) + ) +|# + +#| +(deftype simple-sprite-system (structure) + ((count int16 :offset-assert 0) + (max-count int16 :offset-assert 2) + (data (inline-array sprite-glow-data) :offset-assert 4) ;; guessed by decompiler + ) + :method-count-assert 12 + :size-assert #x8 + :flag-assert #xc00000008 + (:methods + (simple-sprite-system-method-9 () none) ;; 9 ;; (add! (_type_ sprite-glow-data) none 9) + (simple-sprite-system-method-10 () none) ;; 10 ;; (draw-all-sprites! (_type_ dma-buffer) none 10) + (simple-sprite-system-method-11 () none) ;; 11 ;; (clear! (_type_) none 11) + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; eye-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype eye (structure) + ((data vector 2 :offset-assert 0) ;; guessed by decompiler + (x float :offset-assert 0) + (y float :offset-assert 4) + (lid float :offset-assert 8) + (iris-scale float :offset-assert 16) + (pupil-scale float :offset-assert 20) + (lid-scale float :offset-assert 24) + (shader-count uint32 :offset-assert 32) + (shader UNKNOWN 8 :offset-assert 36) + ) + :method-count-assert 9 + :size-assert #x44 + :flag-assert #x900000044 + ) +|# + +#| +(deftype eye-control (structure) + ((process uint64 :offset-assert 0) ;; handle + (random-time uint16 :offset-assert 8) + (bucket uint16 :offset-assert 10) + (blink float :offset-assert 12) + (shaders (inline-array adgif-shader) :offset-assert 16) ;; guessed by decompiler + (eyes UNKNOWN 2 :offset-assert 32) + (left eye :inline :offset-assert 32) + (right eye :inline :offset-assert 112) + (level-index int16 :offset-assert 192) + (high-res? basic :offset-assert 196) + (eye-slot uint8 :offset-assert 200) + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + ) + :method-count-assert 9 + :size-assert #x109 + :flag-assert #x900000109 + ) +|# + +#| +(deftype eye-control-array (basic) + ((data eye-control 32 :offset-assert 16) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x2210 + :flag-assert #x900002210 + ) +|# + +#| +(deftype eye-work (structure) + ((sprite-tmpl dma-gif-packet :inline :offset-assert 0) + (sprite-tmpl2 dma-gif-packet :inline :offset-assert 32) + (adgif-tmpl dma-gif-packet :inline :offset-assert 64) + (blink-table float 10 :offset-assert 96) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x88 + :flag-assert #x900000088 + ) +|# + +;; (define-extern *eye-control-array* eye-control-array) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; cam-debug-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *redline-table* object) ;; (pointer float) +;; (define-extern *redline-index* object) ;; int +;; (define-extern float-save-redline function) ;; (function float none) +;; (define-extern float-lookup-redline function) ;; (function float float) +;; (define-extern *blueline-table* object) ;; (pointer float) +;; (define-extern *blueline-index* object) ;; int +;; (define-extern float-save-blueline function) ;; (function float none) +;; (define-extern float-lookup-blueline function) ;; (function float float) +;; (define-extern *greenline-table* object) ;; (pointer float) +;; (define-extern *greenline-index* object) ;; int +;; (define-extern float-save-greenline function) ;; (function float none) +;; (define-extern float-lookup-greenline function) ;; (function float float) +;; (define-extern *yellowline-table* object) ;; (pointer float) +;; (define-extern *yellowline-index* object) ;; int +;; (define-extern float-save-yellowline function) ;; (function float none) +;; (define-extern float-lookup-yellowline function) ;; (function float float) +;; (define-extern *timeplot-table* object) ;; (pointer float) +;; (define-extern *timeplot-index* object) ;; int +;; (define-extern float-save-timeplot function) ;; (function float none) +;; (define-extern float-lookup-timeplot function) ;; (function float float) +;; (define-extern *cam-layout* object) ;; symbol + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; dp-bipedal-part ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; vol-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype plane-volume (structure) + ((volume-type symbol :offset-assert 0) ;; guessed by decompiler + (point-count int16 :offset-assert 4) + (normal-count int16 :offset-assert 6) + (first-point vector :offset-assert 8) ;; (pointer vector) + (first-normal vector :offset-assert 12) ;; (pointer vector) + (num-planes int32 :offset-assert 16) + (plane (inline-array plane) :offset-assert 20) ;; guessed by decompiler + ) + :method-count-assert 12 + :size-assert #x18 + :flag-assert #xc00000018 + (:methods + (plane-volume-method-9 () none) ;; 9 ;; (plane-volume-method-9 (_type_ symbol vector-array vector-array) plane-volume 9) + (plane-volume-method-10 () none) ;; 10 ;; (debug-draw (_type_) none 10) + (plane-volume-method-11 () none) ;; 11 ;; (point-in-vol? (_type_ vector float) symbol 11) + ) + ) +|# + +#| +(deftype vol-control (basic) + ((flags vol-flags :offset-assert 4) ;; guessed by decompiler + (process process-drawable :offset-assert 8) ;; guessed by decompiler + (pos-vol-count int32 :offset-assert 12) + (pos-vol plane-volume 32 :offset-assert 16) ;; guessed by decompiler + (neg-vol-count int32 :offset-assert 784) + (neg-vol plane-volume 32 :offset-assert 788) ;; guessed by decompiler + (debug-point vector-array :offset-assert 1556) ;; guessed by decompiler + (debug-normal vector-array :offset-assert 1560) ;; guessed by decompiler + ) + :method-count-assert 12 + :size-assert #x61c + :flag-assert #xc0000061c + (:methods + ;; (new (symbol type process-drawable) _type_ 0) + (vol-control-method-9 () none) ;; 9 ;; (debug-draw (_type_) none 9) + (vol-control-method-10 () none) ;; 10 ;; (vol-control-method-10 (_type_ plane) symbol 10) + (vol-control-method-11 () none) ;; 11 ;; (should-display? (_type_) symbol 11) + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; trail ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype trail-vis-work (structure) + ((best-count uint32 :offset-assert 0) + (best-dist float :offset-assert 4) + (start-conn-id uint32 :offset-assert 8) + (p0 vector :inline :offset-assert 16) + (p1 vector :inline :offset-assert 32) + (best-node-id uint16 64 :offset-assert 48) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #xb0 + :flag-assert #x9000000b0 + ) +|# + +;; (define-extern *trail-graph* object) ;; trail-graph + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; camera-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype cam-index (structure) + ((flags cam-index-options :offset-assert 0) ;; guessed by decompiler + (vec vector 2 :offset-assert 16) ;; guessed by decompiler + ) + :method-count-assert 11 + :size-assert #x30 + :flag-assert #xb00000030 + (:methods + (cam-index-method-9 () none) ;; 9 ;; (cam-index-method-9 (_type_ symbol entity vector curve) symbol 9) + (cam-index-method-10 () none) ;; 10 ;; (cam-index-method-10 (_type_ vector) float 10) + ) + ) +|# + +#| +(deftype tracking-point (structure) + ((position vector :inline :offset-assert 0) + (direction vector :inline :offset-assert 16) + (tp-length float :offset-assert 32) + (next int32 :offset-assert 36) + (incarnation int32 :offset-assert 40) + ) + :method-count-assert 9 + :size-assert #x2c + :flag-assert #x90000002c + ) +|# + +#| +(deftype tracking-spline-sampler (structure) + ((cur-pt int32 :offset-assert 0) + (partial-pt float :offset-assert 4) + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +#| +(deftype tracking-spline (structure) + ((point tracking-point 32 :offset-assert 0) ;; guessed by decompiler + (summed-len float :offset-assert 1536) + (free-point int32 :offset-assert 1540) + (used-point int32 :offset-assert 1544) + (partial-point float :offset-assert 1548) + (end-point int32 :offset-assert 1552) + (next-to-last-point int32 :offset-assert 1556) + (max-move float :offset-assert 1560) + (sample-len float :offset-assert 1564) + (used-count int32 :offset-assert 1568) + (old-position vector :inline :offset-assert 1584) + (debug-old-position vector :inline :offset-assert 1600) + (debug-out-position vector :inline :offset-assert 1616) + (debug-last-point int32 :offset-assert 1632) + ) + :method-count-assert 24 + :size-assert #x664 + :flag-assert #x1800000664 + (:methods + (tracking-spline-method-9 () none) ;; 9 ;; (tracking-spline-method-9 (_type_) none 9) + (tracking-spline-method-10 () none) ;; 10 ;; (tracking-spline-method-10 (_type_ vector) none 10) + (tracking-spline-method-11 () none) ;; 11 ;; (debug-point-info (_type_ int) none 11) + (tracking-spline-method-12 () none) ;; 12 ;; (debug-all-points (_type_) none 12) + (tracking-spline-method-13 () none) ;; 13 ;; (tracking-spline-method-13 (_type_ int) none 13) + (tracking-spline-method-14 () none) ;; 14 ;; (tracking-spline-method-14 (_type_ tracking-spline-sampler) none 14) + (tracking-spline-method-15 () none) ;; 15 ;; (tracking-spline-method-15 (_type_) none 15) + (tracking-spline-method-16 () none) ;; 16 ;; (tracking-spline-method-16 (_type_ float) none 16) + (tracking-spline-method-17 () none) ;; 17 ;; (tracking-spline-method-17 (_type_ vector float float symbol) int 17) + (tracking-spline-method-18 () none) ;; 18 ;; (tracking-spline-method-18 (_type_ float vector tracking-spline-sampler) vector 18) + (tracking-spline-method-19 () none) ;; 19 ;; (tracking-spline-method-19 (_type_ float vector tracking-spline-sampler) vector 19) + (tracking-spline-method-20 () none) ;; 20 ;; (tracking-spline-method-20 (_type_ vector int) none 20) + (tracking-spline-method-21 () none) ;; 21 ;; (tracking-spline-method-21 (_type_ vector float float float) vector 21) + (tracking-spline-method-22 () none) ;; 22 ;; (tracking-spline-method-22 (_type_ float) symbol 22) + (tracking-spline-method-23 () none) ;; 23 ;; (debug-draw-spline (_type_) none 23) + ) + ) +|# + +#| +(deftype cam-float-seeker (structure) + ((target float :offset-assert 0) + (value float :offset-assert 4) + (vel float :offset-assert 8) + (accel float :offset-assert 12) + (max-vel float :offset-assert 16) + (max-partial float :offset-assert 20) + ) + :method-count-assert 13 + :size-assert #x18 + :flag-assert #xd00000018 + (:methods + (cam-float-seeker-method-9 () none) ;; 9 ;; (init (_type_ float float float float) none 9) + (cam-float-seeker-method-10 () none) ;; 10 ;; (copy-to (_type_ _type_) none 10) + (cam-float-seeker-method-11 () none) ;; 11 ;; (update! (_type_ float) none 11) + (cam-float-seeker-method-12 () none) ;; 12 ;; (jump-to-target! (_type_ float) float 12) + ) + ) +|# + +#| +(deftype cam-vector-seeker (structure) + ((target vector :inline :offset-assert 0) + (value vector :inline :offset-assert 16) + (vel vector :inline :offset-assert 32) + (accel float :offset-assert 48) + (max-vel float :offset-assert 52) + (max-partial float :offset-assert 56) + ) + :method-count-assert 11 + :size-assert #x3c + :flag-assert #xb0000003c + (:methods + (cam-vector-seeker-method-9 () none) ;; 9 ;; (init (_type_ vector float float float) none 9) + (cam-vector-seeker-method-10 () none) ;; 10 ;; (update! (_type_ vector) none 10) + ) + ) +|# + +#| +(deftype cam-rotation-tracker (structure) + ((inv-mat matrix :inline :offset-assert 0) + (no-follow basic :offset-assert 64) + (follow-pt vector :inline :offset-assert 80) + (follow-off vector :inline :offset-assert 96) + (follow-blend float :offset-assert 112) + (tilt-adjust cam-float-seeker :inline :offset-assert 116) + (point-of-interest-blend cam-float-seeker :inline :offset-assert 140) + (underwater-blend cam-float-seeker :inline :offset-assert 164) + (looking-at vector :inline :offset-assert 192) + (looking-interesting vector :inline :offset-assert 208) + (old-cam-trans vector :inline :offset-assert 224) + (follow-height-extra cam-float-seeker :inline :offset-assert 240) + ) + :method-count-assert 9 + :size-assert #x108 + :flag-assert #x900000108 + ) +|# + +#| +(deftype camera-combiner (process) + ((trans vector :inline :offset-assert 128) + (inv-camera-rot matrix :inline :offset-assert 144) + (fov float :offset-assert 208) + (interp-val float :offset-assert 212) + (interp-step float :offset-assert 216) + (dist-from-src float :offset-assert 220) + (dist-from-dest float :offset-assert 224) + (flip-control-axis vector :inline :offset-assert 240) + (velocity vector :inline :offset-assert 256) + (tracking-status uint64 :offset-assert 272) + (tracking-options int32 :offset-assert 280) + (tracking cam-rotation-tracker :inline :offset-assert 288) + (fast-rot basic :offset-assert 552) + ) + :method-count-assert 14 + :size-assert #x22c + :flag-assert #xe01b0022c + ) +|# + +#| +(deftype camera-slave (process) + ((trans vector :inline :offset-assert 128) + (fov float :offset-assert 144) + (fov0 float :offset-assert 148) + (fov1 float :offset-assert 152) + (fov-index cam-index :inline :offset-assert 160) + (tracking cam-rotation-tracker :inline :offset-assert 208) + (view-off-param float :offset-assert 472) + (view-off vector :inline :offset-assert 480) + (joystick-saved-view-off vector :inline :offset-assert 496) + (min-z-override float :offset-assert 512) + (view-flat vector :inline :offset-assert 528) + (string-vel-dir uint32 :offset-assert 544) + (string-trans vector :inline :offset-assert 560) + (position-spline tracking-spline :inline :offset-assert 576) + (pivot-pt vector :inline :offset-assert 2224) + (pivot-rad float :offset-assert 2240) + (circular-follow vector :inline :offset-assert 2256) + (max-angle-offset float :offset-assert 2272) + (max-angle-curr float :offset-assert 2276) + (options cam-slave-options-u32 :offset-assert 2280) ;; guessed by decompiler + (cam-entity entity :offset-assert 2284) ;; guessed by decompiler + (butt-timer uint64 :offset-assert 2288) + (butt-seek basic :offset-assert 2296) + (butt-vector vector :inline :offset-assert 2304) + (velocity vector :inline :offset-assert 2320) + (desired-pos vector :inline :offset-assert 2336) + (time-dist-too-far uint32 :offset-assert 2352) + (los-state slave-los-state :offset-assert 2356) ;; guessed by decompiler + (good-point vector :inline :offset-assert 2368) + (los-tgt-spline-pt int32 :offset-assert 2384) + (los-tgt-spline-pt-incarnation int32 :offset-assert 2388) + (los-last-pos vector :inline :offset-assert 2400) + (intro-curve curve :inline :offset-assert 2416) + (intro-offset vector :inline :offset-assert 2448) + (intro-t float :offset-assert 2464) + (intro-t-step float :offset-assert 2468) + (outro-exit-value float :offset-assert 2472) + (spline-exists basic :offset-assert 2476) + (spline-curve curve :inline :offset-assert 2480) + (spline-offset vector :inline :offset-assert 2512) + (index cam-index :inline :offset-assert 2528) + (saved-pt vector :inline :offset-assert 2576) + (spline-tt float :offset-assert 2592) + (spline-follow-dist float :offset-assert 2596) + (enter-has-run symbol :offset-assert 2600) ;; guessed by decompiler + (blend-from-type uint64 :offset-assert 2608) + (blend-to-type uint64 :offset-assert 2616) ;; camera-blend-to-type + (have-phony-joystick basic :offset-assert 2624) + (phony-joystick-x float :offset-assert 2628) + (phony-joystick-y float :offset-assert 2632) + (string-min-val vector :inline :offset-assert 2640) + (string-max-val vector :inline :offset-assert 2656) + (string-val-locked basic :offset-assert 2672) + (relative-position vector :inline :offset-assert 2688) + (string-relative basic :offset-assert 2704) + (slope-adjust cam-float-seeker :inline :offset-assert 2708) + (slope-quat quaternion :inline :offset-assert 2736) + ) + :method-count-assert 14 + :size-assert #xac0 + :flag-assert #xe0a400ac0 + ) +|# + +#| +(deftype camera-master (process) + ((master-options cam-master-options-u32 :offset-assert 128) ;; guessed by decompiler + (settings cam-setting-data :offset-assert 132) + (slave (pointer camera-slave) :offset-assert 136) ;; guessed by decompiler + (decel (pointer camera-slave) :offset-assert 140) ;; guessed by decompiler + (slave-options uint32 :offset-assert 144) + (view-off-param-save float :offset-assert 148) + (changer uint32 :offset-assert 152) + (string-min cam-vector-seeker :inline :offset-assert 160) + (string-max cam-vector-seeker :inline :offset-assert 224) + (string-push-z float :offset-assert 284) + (local-down vector :inline :offset-assert 288) + (focus focus :inline :offset-assert 304) + (being-attacked symbol :offset-assert 316) ;; guessed by decompiler + (attack-start uint64 :offset-assert 320) ;; time-frame + (on-ground symbol :offset-assert 328) ;; guessed by decompiler + (under-water int32 :offset-assert 332) + (on-pole symbol :offset-assert 336) ;; guessed by decompiler + (tgt-rot-mat matrix :inline :offset-assert 352) + (tgt-face-mat matrix :inline :offset-assert 416) + (tpos-old vector :inline :offset-assert 480) + (tpos-curr vector :inline :offset-assert 496) + (tpos-old-adj vector :inline :offset-assert 512) + (tpos-curr-adj vector :inline :offset-assert 528) + (tpos-tgt vector :inline :offset-assert 544) + (upspeed float :offset-assert 560) + (pitch-off vector :inline :offset-assert 576) + (target-spline tracking-spline :inline :offset-assert 592) + (ease-from vector :inline :offset-assert 2240) + (ease-t float :offset-assert 2256) + (ease-step float :offset-assert 2260) + (ease-to vector :inline :offset-assert 2272) + (outro-curve curve :inline :offset-assert 2288) + (outro-t float :offset-assert 2308) + (outro-t-step float :offset-assert 2312) + (outro-exit-value float :offset-assert 2316) + (water-drip-time uint64 :offset-assert 2320) ;; time-frame + (water-drip sparticle-launch-control :offset-assert 2328) ;; guessed by decompiler + (water-drip-mult float :offset-assert 2332) + (water-drip-speed float :offset-assert 2336) + (interest-dist float :offset-assert 2340) + ) + :method-count-assert 17 + :size-assert #x928 + :flag-assert #x1108b00928 + (:methods + (camera-master-method-14 () none) ;; 14 ;; (camera-master-method-14 (_type_ vector) vector 14) + (camera-master-method-15 () none) ;; 15 ;; (camera-master-method-15 (_type_ vector) vector 15) + (camera-master-method-16 () none) ;; 16 ;; (camera-master-method-16 (_type_ symbol) int 16) + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; was-leaper-race-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ocean-texture ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern ocean-texture-vu1-block object) ;; vu-function +;; (define-extern check-normals function) ;; (function symbol) +;; (define-extern generate-cloud-verts function) ;; (function int float symbol) +;; (define-extern generate-cloud-nrms function) ;; (function int float symbol) +;; (define-extern set-ocean-lk function) ;; (function int int none) +;; (define-extern set-ocean-normal-scale function) ;; (function float vector) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; cam-interface-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *camera-init-mat* object) ;; matrix +;; (define-extern *camera* object) ;; camera-master +;; (define-extern *camera-combiner* object) ;; camera-combiner + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; cam-states-dbg ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype cam-point-watch-bank (basic) + ((speed float :offset-assert 4) + (rot-speed deg :offset-assert 8) ;; degrees + ) + :method-count-assert 9 + :size-assert #xc + :flag-assert #x90000000c + ) +|# + +#| +(deftype cam-free-bank (basic) + ((speed float :offset-assert 4) + (rot-speed deg :offset-assert 8) ;; degrees + ) + :method-count-assert 9 + :size-assert #xc + :flag-assert #x90000000c + ) +|# + +#| +(deftype camera-free-floating-move-info (structure) + ((rv vector :inline :offset-assert 0) + (tv vector :inline :offset-assert 16) + (up vector :inline :offset-assert 32) + (tm matrix :inline :offset-assert 48) + ) + :method-count-assert 9 + :size-assert #x70 + :flag-assert #x900000070 + ) +|# + +;; (define-extern *CAM_POINT_WATCH-bank* cam-point-watch-bank) ;; cam-point-watch-bank +;; (define-extern cam-point-watch state) ;; (state camera-slave) +;; (define-extern *CAM_FREE-bank* cam-free-bank) ;; cam-free-bank +;; (define-extern cam-mouse-input function) ;; (function vector vector float) +;; (define-extern cam-free-floating-input function) ;; (function vector vector symbol int vector) +;; (define-extern cam-free-floating-move function) ;; (function matrix vector vector int vector) +;; (define-extern cam-free-floating state) ;; (state camera-slave) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; sparticle-launcher-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype sparticle-birthinfo (structure) + ((sprite uint32 :offset-assert 0) + (anim int32 :offset-assert 4) + (anim-speed float :offset-assert 8) + (birth-func basic :offset-assert 12) + (joint-ppoint int32 :offset-assert 16) + (num-to-birth float :offset-assert 20) + (sound basic :offset-assert 24) + (dataf float 1 :offset-assert 0) ;; guessed by decompiler + (data uint32 1 :offset-assert 0) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x1c + :flag-assert #x90000001c + ) +|# + +#| +(deftype sp-field-init-spec (structure) + ((field uint16 :offset-assert 0) ;; sp-field-id + (flags uint16 :offset-assert 2) ;; sp-flag + (initial-valuef float :offset-assert 4) + (random-rangef float :offset-assert 8) + (random-multf float :offset-assert 12) + (initial-value int32 :offset-assert 4) + (random-range int32 :offset-assert 8) + (random-mult int32 :offset-assert 12) + (func symbol :offset-assert 4) ;; guessed by decompiler + (tex texture-id :offset-assert 4) ;; guessed by decompiler + (pntr pointer :offset-assert 4) ;; guessed by decompiler + (object basic :offset-assert 4) + (sym symbol :offset-assert 4) ;; guessed by decompiler + (sound sound-spec :offset-assert 4) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ;; field object uses ~A with a signed load. + ) +|# + +#| +(deftype sparticle-launcher (basic) + ((birthaccum float :offset-assert 4) + (soundaccum float :offset-assert 8) + (init-specs (inline-array sp-field-init-spec) :offset-assert 12) ;; guessed by decompiler + ) + :method-count-assert 11 + :size-assert #x10 + :flag-assert #xb00000010 + (:methods + (sparticle-launcher-method-9 () none) ;; 9 ;; (get-field-spec-by-id (_type_ sp-field-id) sp-field-init-spec 9) + (sparticle-launcher-method-10 () none) ;; 10 ;; (setup-user-array (_type_ string) none 10) + ) + ) +|# + +#| +(deftype sparticle-group-item (structure) + ((launcher uint32 :offset-assert 0) + (fade-after meters :offset-assert 4) + (falloff-to meters :offset-assert 8) + (flags uint16 :offset-assert 12) ;; sp-group-item-flag + (period uint16 :offset-assert 14) + (length uint16 :offset-assert 16) + (offset int16 :offset-assert 18) + (hour-mask uint32 :offset-assert 20) + (binding uint32 :offset-assert 24) + ) + :method-count-assert 9 + :size-assert #x1c + :flag-assert #x90000001c + ) +|# + +#| +(deftype sparticle-launch-state (structure) + ((group-item sparticle-group-item :offset-assert 0) + (flags uint16 :offset-assert 4) ;; sp-launch-state-flags + (randomize uint16 :offset-assert 6) + (center vector :offset-assert 8) + (sprite3d sprite-vec-data-3d :offset-assert 12) + (sprite sparticle-cpuinfo :offset-assert 16) ;; guessed by decompiler + (offset uint32 :offset-assert 20) + (accum float :offset-assert 24) + (spawn-time uint32 :offset-assert 28) + (control sparticle-launch-control :offset-assert 32) ;; guessed by decompiler + (swarm basic :offset-assert 20) + (seed uint32 :offset-assert 24) + (time uint32 :offset-assert 28) + (spec basic :offset-assert 16) + (id uint32 :offset-assert 12) + ) + :method-count-assert 9 + :size-assert #x24 + :flag-assert #x900000024 + ) +|# + +#| +(deftype sparticle-launch-group (basic) + ((length int16 :offset-assert 4) + (duration uint16 :offset-assert 6) + (linger-duration uint16 :offset-assert 8) + (flags uint16 :offset-assert 10) ;; sp-group-flag + (name string :offset-assert 12) ;; guessed by decompiler + (launcher (inline-array sparticle-group-item) :offset-assert 16) ;; guessed by decompiler + (rotate-x deg :offset-assert 20) ;; degrees + (rotate-y deg :offset-assert 24) ;; degrees + (rotate-z deg :offset-assert 28) ;; degrees + (scale-x float :offset-assert 32) + (scale-y float :offset-assert 36) + (scale-z float :offset-assert 40) + (bounds sphere :inline :offset-assert 48) + ) + :method-count-assert 10 + :size-assert #x40 + :flag-assert #xa00000040 + (:methods + (sparticle-launch-group-method-9 () none) ;; 9 ;; (create-launch-control (_type_ process) sparticle-launch-control 9) + ) + ) +|# + +#| +(deftype sparticle-launch-control (inline-array-class) + ((group sparticle-launch-group :offset-assert 16) ;; guessed by decompiler + (proc process-drawable :offset-assert 20) ;; guessed by decompiler + (local-clock int32 :offset-assert 24) + (fade float :offset-assert 28) + (matrix int8 :offset-assert 32) + (state-mode uint8 3 :offset-assert 33) ;; guessed by decompiler + (state-counter uint32 :offset-assert 36) + (local-space-binding particle-local-space-info :offset-assert 28) + (last-spawn-frame int32 :offset-assert 40) + (last-spawn-time int32 :offset-assert 44) + (origin matrix :inline :offset-assert 48) + (center vector :inline :offset-assert 96) + (data sparticle-launch-state :dynamic :offset-assert 112) ;; guessed by decompiler + ) + :method-count-assert 21 + :size-assert #x70 + :flag-assert #x1500000070 + (:methods + (sparticle-launch-control-method-14 () none) ;; 14 ;; (kill-and-free-particles (_type_) none 14) + (sparticle-launch-control-method-15 () none) ;; 15 ;; (kill-particles (_type_) none 15) + (sparticle-launch-control-method-16 () none) ;; 16 + (sparticle-launch-control-method-17 () none) ;; 17 + (sparticle-launch-control-method-18 () none) ;; 18 + (sparticle-launch-control-method-19 () none) ;; 19 + (sparticle-launch-control-method-20 () none) ;; 20 + ) + ) +|# + +#| +(deftype sparticle-subsampler (basic) + ((spt-num float :offset-assert 4) + (sp-system basic :offset-assert 8) + (sp-launcher basic :offset-assert 12) + (spawn-mat matrix :inline :offset-assert 16) + (inited? basic :offset-assert 80) + ) + :method-count-assert 11 + :size-assert #x54 + :flag-assert #xb00000054 + (:methods + (sparticle-subsampler-method-9 () none) ;; 9 + (sparticle-subsampler-method-10 () none) ;; 10 + ) + ) +|# + +;; (define-extern *launch-matrix* object) ;; matrix +;; (define-extern compute-rot-in-screenspace function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; nst-obs ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype nst-water-anim (water-anim) + () + :method-count-assert 29 + :size-assert #x100 + :flag-assert #x1d00800100 + ) +|# + +#| +(deftype nst-metalhead-eggs (process-focusable) + ((actor-group basic :offset-assert 208) + (notify-actor basic :offset-assert 212) + ) + :method-count-assert 33 + :size-assert #xd8 + :flag-assert #x21006000d8 + (:methods + (nst-metalhead-eggs-method-31 () none) ;; 31 + (nst-metalhead-eggs-method-32 () none) ;; 32 + ) + (:state-methods + idle ;; 28 + die ;; 29 + die-fast ;; 30 + ) + ) +|# + +#| +(deftype nst-metalhead-eggs-a (nst-metalhead-eggs) + () + :method-count-assert 33 + :size-assert #xd8 + :flag-assert #x21006000d8 + ) +|# + +#| +(deftype nst-metalhead-eggs-b (nst-metalhead-eggs) + () + :method-count-assert 33 + :size-assert #xd8 + :flag-assert #x21006000d8 + ) +|# + +#| +(deftype nst-metalhead-eggs-c (nst-metalhead-eggs) + () + :method-count-assert 33 + :size-assert #xd8 + :flag-assert #x21006000d8 + ) +|# + +#| +(deftype nst-bridge-base (process-drawable) + () + :method-count-assert 23 + :size-assert #xc8 + :flag-assert #x17005000c8 + (:methods + (nst-bridge-base-method-21 () none) ;; 21 + (nst-bridge-base-method-22 () none) ;; 22 + ) + (:state-methods + nst-bridge-base-state ;; 20 + ) + ) +|# + +#| +(deftype nst-falling-stone-bridge-goo (process-drawable) + () + :method-count-assert 22 + :size-assert #xc8 + :flag-assert #x16005000c8 + (:state-methods + idle ;; 20 + die ;; 21 + ) + ) +|# + +#| +(deftype nst-falling-stone-bridge (nst-bridge-base) + ((fall-anim int32 :offset-assert 200) + (goo uint32 :offset-assert 204) + (actor-group basic :offset-assert 208) + (egg-threshold uint8 :offset-assert 212) + (stop-bridge-sound basic :offset-assert 216) + (bridge-sound uint32 :offset-assert 220) + (minimap connection-minimap :offset-assert 224) + ) + :method-count-assert 27 + :size-assert #xe4 + :flag-assert #x1b007000e4 + (:state-methods + idle ;; 23 + explode-dispatch ;; 24 + falling ;; 25 + grounded ;; 26 + ) + ) +|# + +#| +(deftype nst-collapsing-stone-bridge (nst-bridge-base) + ((anim basic :offset-assert 200) + (exit-anim int32 :offset-assert 204) + (bridge-type uint64 :offset-assert 208) + (stop-bridge-sound basic :offset-assert 216) + (bridge-sound uint32 :offset-assert 220) + ) + :method-count-assert 27 + :size-assert #xe0 + :flag-assert #x1b006000e0 + (:state-methods + idle ;; 23 + collapsing ;; 24 + collapsed ;; 25 + collapse-fast ;; 26 + ) + ) +|# + +#| +(deftype cocoon-grenade-shot (metalhead-grenade-shot) + () + :method-count-assert 41 + :size-assert #x214 + :flag-assert #x2901a00214 + ) +|# + +#| +(deftype nst-cocoon-a (enemy) + ((alt-actor basic :offset-assert 552) + (activate-distance float :offset-assert 556) + (can-shoot? basic :offset-assert 560) + (last-attack-time uint64 :offset-assert 568) + (turret joint-mod-set-world :inline :offset-assert 576) + (dest-quat quaternion :inline :offset-assert 640) + (cycling? basic :offset-assert 656) + (cycle-rot float :offset-assert 660) + (shots-left uint8 :offset-assert 664) + (cocoon-part basic :offset-assert 668) + (charge-down-part basic :offset-assert 672) + (charge-up-part basic :offset-assert 676) + (sound-turret-loop-id uint32 :offset-assert 680) + (sound-turret-loop basic :offset-assert 684) + (palette-id int32 :offset-assert 688) + (minimap connection-minimap :offset-assert 692) + ) + :method-count-assert 156 + :size-assert #x2b8 + :flag-assert #x9c024002b8 + (:methods + (nst-cocoon-a-method-155 () none) ;; 155 + ) + (:state-methods + notice ;; 35 + hostile ;; 38 + hit ;; 30 + stare ;; 37 + die ;; 40 + ) + ) +|# + +#| +(deftype nst-cocoon-b (process-drawable) + ((sound-amb-loop-id uint32 :offset-assert 200) + (sound-amb-loop basic :offset-assert 204) + (gas-sound-id uint32 :offset-assert 208) + ) + :method-count-assert 25 + :size-assert #xd4 + :flag-assert #x19006000d4 + (:state-methods + idle ;; 20 + retracting ;; 21 + wait-for-cocoons ;; 22 + releasing-poison ;; 23 + retracted ;; 24 + ) + ) +|# + +#| +(deftype nst-light-barrier (process-focusable) + ((pass int32 :offset-assert 208) + (incoming-attack-id uint32 :offset-assert 212) + (next-message-time uint64 :offset-assert 216) + (message int32 :offset-assert 224) + (plane plane :inline :offset-assert 240) + (color vector :inline :offset-assert 256) + (target-pos vector :inline :offset-assert 272) + ) + :method-count-assert 31 + :size-assert #x120 + :flag-assert #x1f00a00120 + (:methods + (nst-light-barrier-method-29 () none) ;; 29 + (nst-light-barrier-method-30 () none) ;; 30 + ) + (:state-methods + idle ;; 28 + ) + ) +|# + +;; (define-extern ripple-for-nst-water-anim ripple-wave-set) +;; (define-extern *nst-metalhead-eggs-last-sound-time* object) +;; (define-extern *nst-falling-stone-bridge-goo-exploder-params* joint-exploder-static-params) +;; (define-extern nst-falling-stone-bridge-goo-init-by-other function) +;; (define-extern *nst-falling-stone-bridge-part-nodes* array) +;; (define-extern sound-exit function) +;; (define-extern *nst-bridge-break-anims* array) +;; (define-extern *nst-bridge-break-exit-anims* array) +;; (define-extern *nst-cocoon-a-enemy-info* enemy-info) +;; (define-extern *nst-cocoon-a-goop-joints* array) +;; (define-extern *nst-cocoon-a-exploder-params* joint-exploder-static-params) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; sparticle-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype sparticle-cpuinfo (structure) + ((sprite sprite-vec-data-2d :offset-assert 0) + (adgif adgif-shader :offset-assert 4) + (radius float :offset-assert 8) + (omega float :offset-assert 12) + (vel-sxvel vector :inline :offset-assert 16) + (rot-syvel vector :inline :offset-assert 32) + (fade rgbaf :inline :offset-assert 48) + (acc vector :inline :offset-assert 64) + (rotvel3d quaternion :inline :offset-assert 80) + (vel vector3s :inline :offset-assert 16) ;; vector :inline + (accel vector3s :inline :offset-assert 64) ;; vector :inline + (scalevelx float :offset-assert 28) + (scalevely float :offset-assert 44) + (friction float :offset-assert 96) + (timer int32 :offset-assert 100) + (flags sp-cpuinfo-flag :offset-assert 104) ;; guessed by decompiler + (user-int32 int32 :offset-assert 108) + (user-uint32 uint32 :offset-assert 108) + (user-float float :offset-assert 108) + (user-pntr uint32 :offset-assert 108) + (user-object basic :offset-assert 108) + (user-sprite sprite-vec-data-2d :offset-assert 108) + (sp-func (function sparticle-system sparticle-cpuinfo sprite-vec-data-3d uint none) :offset-assert 112) ;; guessed by decompiler + (next-time uint32 :offset-assert 116) + (next-launcher basic :offset-assert 120) + (cache-alpha float :offset-assert 124) + (valid uint8 :offset-assert 128) + (clock-index uint8 :offset-assert 129) + (user1-int16 uint16 :offset-assert 130) + (key sparticle-launch-control :offset-assert 132) ;; guessed by decompiler + (binding sparticle-launch-state :offset-assert 136) + (data uint32 1 :offset-assert 12) ;; guessed by decompiler + (datab int8 4 :offset-assert 12) ;; guessed by decompiler + (dataf float 1 :offset-assert 12) ;; guessed by decompiler + (datac uint8 1 :offset-assert 12) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x8c + :flag-assert #x90000008c + ;; field user-object uses ~A with a signed load. field key uses ~A with a signed load. + ) +|# + +#| +(deftype sparticle-launchinfo (structure) + ((launchrot vector :inline :offset-assert 0) + (conerot vector :inline :offset-assert 16) + (rotate-x float :offset-assert 32) + (rotate-y float :offset-assert 36) + (rotate-z float :offset-assert 40) + (coneradius float :offset-assert 44) + (rotate vector :inline :offset-assert 32) + (scale-x float :offset-assert 48) + (scale-y float :offset-assert 52) + (scale-z float :offset-assert 56) + (dummy float :offset-assert 60) + (scale vector :inline :offset-assert 48) + (data uint8 1 :offset-assert 0) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x40 + :flag-assert #x900000040 + ) +|# + +#| +(deftype sparticle-system (basic) + ((blocks int32 2 :offset-assert 4) ;; guessed by decompiler + (length int32 2 :offset-assert 12) ;; guessed by decompiler + (num-alloc int32 2 :offset-assert 20) ;; guessed by decompiler + (is-3d basic :offset-assert 28) + (flags uint32 :offset-assert 32) + (alloc-table (pointer uint64) :offset-assert 36) ;; guessed by decompiler + (cpuinfo-table (inline-array sparticle-cpuinfo) :offset-assert 40) ;; guessed by decompiler + (vecdata-table pointer :offset-assert 44) ;; guessed by decompiler + (adgifdata-table (inline-array adgif-shader) :offset-assert 48) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x34 + :flag-assert #x900000034 + ) +|# + +;; (define-extern *sp-60-hz* object) ;; symbol + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; actor-link-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype actor-link-info (basic) + ((process process :offset-assert 4) ;; guessed by decompiler + (next entity-actor :offset-assert 8) ;; guessed by decompiler + (prev entity-actor :offset-assert 12) ;; guessed by decompiler + ) + :method-count-assert 26 + :size-assert #x10 + :flag-assert #x1a00000010 + (:methods + ;; (new (symbol type process symbol) _type_ 0) + (actor-link-info-method-9 () none) ;; 9 ;; (get-matching-actor-type-mask (_type_ type) int 9) + (actor-link-info-method-10 () none) ;; 10 ;; (actor-count-before (_type_) int 10) + (actor-link-info-method-11 () none) ;; 11 ;; (link-to-next-and-prev-actor (_type_) actor-link-info 11) + (actor-link-info-method-12 () none) ;; 12 ;; (get-next (_type_) entity-actor 12) + (actor-link-info-method-13 () none) ;; 13 ;; (get-prev (_type_) entity-actor 13) + (actor-link-info-method-14 () none) ;; 14 ;; (get-next-process (_type_) process 14) + (actor-link-info-method-15 () none) ;; 15 ;; (get-prev-process (_type_) process 15) + (actor-link-info-method-16 () none) ;; 16 ;; (apply-function-forward (_type_ (function entity-actor object object) object) int 16) + (actor-link-info-method-17 () none) ;; 17 ;; (apply-function-reverse (_type_ (function entity-actor object object) object) int 17) + (actor-link-info-method-18 () none) ;; 18 ;; (apply-all (_type_ (function entity-actor object object) object) int 18) + (actor-link-info-method-19 () none) ;; 19 ;; (send-to-all (_type_ symbol) none 19) + (actor-link-info-method-20 () none) ;; 20 ;; (send-to-all-after (_type_ symbol) object 20) + (actor-link-info-method-21 () none) ;; 21 ;; (send-to-all-before (_type_ symbol) object 21) + (actor-link-info-method-22 () none) ;; 22 ;; (send-to-next-and-prev (_type_ symbol) none 22) + (actor-link-info-method-23 () none) ;; 23 ;; (send-to-next (_type_ symbol) none 23) + (actor-link-info-method-24 () none) ;; 24 ;; (send-to-prev (_type_ symbol) none 24) + (actor-link-info-method-25 () none) ;; 25 ;; (actor-count (_type_) int 25) + ) + ) +|# + +;; (define-extern entity-actor-lookup function) ;; (function res-lump symbol int entity-actor) +;; (define-extern entity-actor-count function) ;; (function res-lump symbol int) +;; (define-extern actor-link-subtask-complete-hook function) ;; (function entity-actor (pointer symbol) symbol) +;; (define-extern actor-link-subtask-incomplete-count-hook function) ;; (function entity-actor (pointer uint64) symbol) +;; (define-extern actor-link-dead-hook function) ;; (function entity-actor (pointer symbol) symbol) +;; (define-extern alt-actor-list-subtask-incomplete-count function) ;; (function process-drawable int) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; hover-enemy ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *current-hover-id* object) +;; (define-extern hover-enemy-dest-post function) ;; (function none :behavior hover-enemy) +;; (define-extern hover-enemy-hostile-post function) ;; (function none :behavior hover-enemy) +;; (define-extern hover-enemy-fly-code function) ;; (function none :behavior hover-enemy) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; sig-rider ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype sig-rider (process-focusable) + ((front-back-interp float :offset-assert 208) + (left-right-interp float :offset-assert 212) + (up-down-interp float :offset-assert 216) + (complain-time uint64 :offset-assert 224) + (complain-speech int32 :offset-assert 232) + (last-moved-time uint64 :offset-assert 240) + ) + :method-count-assert 30 + :size-assert #xf8 + :flag-assert #x1e008000f8 + (:state-methods + idle ;; 28 + die ;; 29 + ) + ) +|# + +;; (define-extern sig-pilot-trans function) +;; (define-extern sig-pilot-wcar-anim-loop function) +;; (define-extern sig-rider-init-by-other function) +;; (define-extern sig-rider-spawn function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; bombbot-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype bombbot-node (structure) + ((position vector :inline :offset-assert 0) + (nav-mesh-id uint32 :offset-assert 16) + (pos-x float :offset-assert 0) + (pos-y float :offset-assert 4) + (pos-z float :offset-assert 8) + ) + :method-count-assert 9 + :size-assert #x14 + :flag-assert #x900000014 + ) +|# + +#| +(deftype bombbot-path (structure) + ((node-count uint16 :offset-assert 0) + (node (inline-array bombbot-node) :offset-assert 4) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; cam-update-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *external-cam-options* object) ;; external-cam-option +;; (define-extern *external-cam-mode* object) ;; symbol +;; (define-extern *camera-look-through-other* object) ;; int +;; (define-extern *camera-other-fov* bfloat) ;; bfloat +;; (define-extern *camera-other-trans* object) ;; vector +;; (define-extern *camera-other-matrix* object) ;; matrix +;; (define-extern *camera-smush-control* object) ;; smush-control +;; (define-extern *camera-smush-control-horizontal* object) +;; (define-extern *camera-smush-control-into* object) +;; (define-extern *camera-other-root* object) ;; vector +;; (define-extern *fix-visible-level-mask* object) ;; int +;; (define-extern *manual-sample-point* object) ;; symbol + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; railx-scenes ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern railx-death-precursor death-info) +;; (define-extern start-railx-precursor-effect function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; shrubbery ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype dma-test (structure) + ((data qword 101 :offset-assert 0) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x650 + :flag-assert #x900000650 + ) +|# + +#| +(deftype dma-test-work (structure) + ((upload dma-packet :inline :offset-assert 0) + (end dma-packet :inline :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x20 + :flag-assert #x900000020 + ) +|# + +#| +(deftype prototype-shrubbery (drawable-inline-array) + ((length int16 :offset-assert 2) + (data shrubbery :dynamic :offset-assert 32) ;; guessed by decompiler + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + ) + :method-count-assert 17 + :size-assert #x44 + :flag-assert #x1100000044 + ) +|# + +;; (define-extern mem-usage-shrub-walk function) ;; (function draw-node int memory-usage-block int draw-node) +;; (define-extern highres-shrub-login function) +;; (define-extern shrub-vu1-block object) ;; vu-function +;; (define-extern shrub-num-tris function) ;; (function shrubbery uint) +;; (define-extern shrub-make-perspective-matrix function) ;; (function matrix matrix matrix) +;; (define-extern shrub-init-view-data function) ;; (function shrub-view-data symbol) +;; (define-extern shrub-upload-view-data function) ;; (function dma-buffer symbol) +;; (define-extern shrub-time function) ;; (function int int int int int int) +;; (define-extern shrub-do-init-frame function) ;; (function dma-buffer symbol) +;; (define-extern shrub-init-frame function) ;; (function dma-buffer gs-test symbol) +;; (define-extern shrub-upload-model function) ;; (function shrubbery dma-buffer int symbol) +;; (define-extern draw-inline-array-instance-shrub function) ;; (function dma-buffer drawable int (inline-array prototype-bucket-shrub) none) +;; (define-extern draw-prototype-inline-array-shrub function) ;; (function int (inline-array prototype-bucket-shrub) pointer) +;; (define-extern draw-drawable-tree-instance-shrub function) ;; (function drawable-tree-instance-shrub level none) +;; (define-extern *dma-test* object) ;; dma-test +;; (define-extern *dma-test-work* object) ;; dma-test-work +;; (define-extern init-dma-test function) ;; (function none) +;; (define-extern dma-test-func function) ;; (function none) +;; (define-extern move-test-func function) ;; (function none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; target-util ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype target-bank (basic) + ((jump-collide-offset meters :offset-assert 4) + (jump-height-min meters :offset-assert 8) + (jump-height-max meters :offset-assert 12) + (double-jump-height-min meters :offset-assert 16) + (double-jump-height-max meters :offset-assert 20) + (flip-jump-height-min meters :offset-assert 24) + (flip-jump-height-max meters :offset-assert 28) + (duck-jump-height-min meters :offset-assert 32) + (duck-jump-height-max meters :offset-assert 36) + (flop-jump-height-min meters :offset-assert 40) + (flop-jump-height-max meters :offset-assert 44) + (attack-jump-height-min meters :offset-assert 48) + (attack-jump-height-max meters :offset-assert 52) + (edge-grab-jump-height-min meters :offset-assert 56) + (edge-grab-jump-height-max meters :offset-assert 60) + (swim-jump-height-min meters :offset-assert 64) + (swim-jump-height-max meters :offset-assert 68) + (tube-jump-height-min meters :offset-assert 72) + (tube-jump-height-max meters :offset-assert 76) + (carry-jump-height-min meters :offset-assert 80) + (carry-jump-height-max meters :offset-assert 84) + (mech-jump-height-min meters :offset-assert 88) + (mech-jump-height-max meters :offset-assert 92) + (mech-carry-jump-height-min meters :offset-assert 96) + (mech-carry-jump-height-max meters :offset-assert 100) + (indax-jump-height-min meters :offset-assert 104) + (indax-jump-height-max meters :offset-assert 108) + (indax-double-jump-height-min meters :offset-assert 112) + (indax-double-jump-height-max meters :offset-assert 116) + (roll-duration uint64 :offset-assert 120) + (roll-jump-pre-window uint64 :offset-assert 128) + (roll-jump-post-window uint64 :offset-assert 136) + (roll-timeout uint64 :offset-assert 144) + (roll-speed-min meters :offset-assert 152) + (roll-speed-inc meters :offset-assert 156) + (roll-flip-duration uint64 :offset-assert 160) + (roll-flip-height meters :offset-assert 168) + (roll-flip-dist meters :offset-assert 172) + (roll-flip-art-height meters :offset-assert 176) + (roll-flip-art-dist meters :offset-assert 180) + (duck-slide-distance meters :offset-assert 184) + (fall-far meters :offset-assert 188) + (fall-far-inc meters :offset-assert 192) + (attack-timeout uint64 :offset-assert 200) + (ground-timeout uint64 :offset-assert 208) + (slide-down-timeout uint64 :offset-assert 216) + (fall-timeout uint64 :offset-assert 224) + (fall-stumble-threshold meters :offset-assert 232) + (yellow-projectile-speed meters :offset-assert 236) + (hit-invulnerable-timeout uint64 :offset-assert 240) + (same-attack-invulnerable-timeout uint64 :offset-assert 248) + (run-cycle-length float :offset-assert 256) + (walk-cycle-dist meters :offset-assert 260) + (walk-up-cycle-dist meters :offset-assert 264) + (walk-down-cycle-dist meters :offset-assert 268) + (walk-side-cycle-dist meters :offset-assert 272) + (run-cycle-dist meters :offset-assert 276) + (run-up-cycle-dist meters :offset-assert 280) + (run-down-cycle-dist meters :offset-assert 284) + (run-side-cycle-dist meters :offset-assert 288) + (run-wall-cycle-dist meters :offset-assert 292) + (duck-walk-cycle-dist meters :offset-assert 296) + (wade-shallow-walk-cycle-dist meters :offset-assert 300) + (wade-deep-walk-cycle-dist meters :offset-assert 304) + (mech-walk-cycle-dist meters :offset-assert 308) + (mech-run-cycle-dist meters :offset-assert 312) + (smack-surface-dist meters :offset-assert 316) + (smack-surface-height meters :offset-assert 320) + (min-dive-depth meters :offset-assert 324) + (root-radius meters :offset-assert 328) + (root-offset vector :inline :offset-assert 336) + (body-radius meters :offset-assert 352) + (edge-radius meters :offset-assert 356) + (edge-offset vector :inline :offset-assert 368) + (edge-grab-height-off-ground meters :offset-assert 384) + (head-radius meters :offset-assert 388) + (head-height meters :offset-assert 392) + (head-offset vector :inline :offset-assert 400) + (spin-radius meters :offset-assert 416) + (spin-offset vector :inline :offset-assert 432) + (duck-spin-radius meters :offset-assert 448) + (duck-spin-offset vector :inline :offset-assert 464) + (punch-radius meters :offset-assert 480) + (punch-offset vector :inline :offset-assert 496) + (uppercut-radius meters :offset-assert 512) + (uppercut0-offset vector :inline :offset-assert 528) + (uppercut1-offset vector :inline :offset-assert 544) + (flop-radius meters :offset-assert 560) + (flop0-offset vector :inline :offset-assert 576) + (flop1-offset vector :inline :offset-assert 592) + (stuck-time seconds :offset-assert 608) + (stuck-timeout seconds :offset-assert 616) + (stuck-distance meters :offset-assert 624) + (tongue-pull-speed-min float :offset-assert 628) + (tongue-pull-speed-max float :offset-assert 632) + (yellow-attack-timeout uint64 :offset-assert 640) + (fall-height meters :offset-assert 648) + (mech-jump-thrust-fuel float :offset-assert 652) + (strafe-jump-pre-window uint64 :offset-assert 656) + (strafe-jump basic :offset-assert 664) + (strafe-duck-jump basic :offset-assert 668) + (dark-jump-height-min meters :offset-assert 672) + (dark-jump-height-max meters :offset-assert 676) + (ladder-walk-up-speed meters :offset-assert 680) + (ladder-walk-down-speed meters :offset-assert 684) + (ladder-slide-speed meters :offset-assert 688) + (invisible-duration uint64 :offset-assert 696) + (mech-walk-carry-cycle-dist meters :offset-assert 704) + ) + :method-count-assert 9 + :size-assert #x2c4 + :flag-assert #x9000002c4 + ) +|# + +;; (define-extern *target-shadow-control* shadow-control) ;; shadow-control +;; (define-extern *TARGET-bank* target-bank) ;; target-bank +;; (define-extern target-start-attack function) ;; (function none :behavior target) +;; (define-extern target-danger-set! function) ;; (function symbol symbol none :behavior target) +;; (define-extern target-collide-set! function) ;; (function symbol float int :behavior target) +;; (define-extern target-skel-group function) +;; (define-extern debounce-speed function) ;; (function float float vector vector float :behavior target) +;; (define-extern target-align-vel-z-adjust function) ;; (function float float :behavior target) +;; (define-extern average-turn-angle function) ;; (function target float) +;; (define-extern can-play-stance-amibent? function) ;; (function symbol :behavior target) +;; (define-extern target-height-above-ground function) ;; (function float :behavior target) +;; (define-extern find-collision-below function) +;; (define-extern can-jump? function) ;; (function symbol symbol :behavior target) +;; (define-extern target-jump-go function) ;; (function none :behavior target) +;; (define-extern move-legs? function) ;; (function symbol :behavior target) +;; (define-extern jump-hit-ground-stuck? function) ;; (function symbol :behavior target) +;; (define-extern target-time-to-ground function) ;; (function time-frame :behavior target) +;; (define-extern fall-test function) ;; (function (state symbol target) float none :behavior target) +;; (define-extern slide-down-test function) ;; (function none :behavior target) +;; (define-extern smack-surface? function) ;; (function symbol symbol :behavior target) +;; (define-extern can-roll? function) ;; (function symbol :behavior target) +;; (define-extern can-duck? function) ;; (function symbol :behavior target) +;; (define-extern can-exit-duck? function) ;; (function target symbol) +;; (define-extern can-hands? function) ;; (function symbol symbol :behavior target) +;; (define-extern can-feet? function) ;; (function symbol symbol :behavior target) +;; (define-extern are-still? function) ;; (function symbol :behavior target) +;; (define-extern vector-local+! function) ;; (function vector vector vector :behavior target) +;; (define-extern move-forward function) ;; (function float vector :behavior target) +;; (define-extern set-forward-vel function) ;; (function float vector :behavior target) +;; (define-extern delete-back-vel function) ;; (function none :behavior target) +;; (define-extern set-side-vel function) ;; (function float vector :behavior target) +;; (define-extern target-timed-invulnerable function) ;; (function time-frame target int none) +;; (define-extern target-timed-invulnerable-off function) ;; (function target int none) +;; (define-extern target-log-attack function) ;; (function attack-info symbol symbol :behavior target) +;; (define-extern ground-tween-initialize function) ;; (function ground-tween-info uint uint uint uint uint uint float ground-tween-info :behavior target) +;; (define-extern ground-tween-update function) ;; (function ground-tween-info float float float none :behavior target) +;; (define-extern target-pos function) ;; (function int vector) +;; (define-extern target-cam-pos function) ;; (function vector) +;; (define-extern target-rot function) ;; (function quaternion) +;; (define-extern external-target-spawn function) +;; (define-extern target-reset-on-task-finish function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ocean-vu0 ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern ocean-vu0-block object) ;; vu-function + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ctywide-speech ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern restore-city-speeches function) ;; (function none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; combx-obs ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype combx-elevator (process-drawable) + () + :method-count-assert 23 + :size-assert #xc8 + :flag-assert #x17005000c8 + (:methods + (combx-elevator-method-21 () none) ;; 21 + (combx-elevator-method-22 () none) ;; 22 + ) + (:state-methods + idle ;; 20 + ) + ) +|# + +#| +(deftype combx-states (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ) +|# + +;; (define-extern init-mood-combx function) +;; (define-extern update-mood-combx function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; hud-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype hud-string (structure) + ((text string :offset-assert 0) ;; guessed by decompiler + (scale float :offset-assert 4) + (color font-color :offset-assert 8) ;; guessed by decompiler + (flags font-flags :offset-assert 12) ;; guessed by decompiler + (pos vector4w :inline :offset-assert 16) ;; int32 4 + ) + :method-count-assert 9 + :size-assert #x20 + :flag-assert #x900000020 + ) +|# + +#| +(deftype hud-sprite (structure) + ((pos vector4w :inline :offset-assert 0) + (offset-x float :offset-assert 0) + (offset-y float :offset-assert 4) + (color vector4w :inline :offset-assert 16) + (flags uint32 :offset-assert 32) + (scale-x float :offset-assert 36) + (scale-y float :offset-assert 40) + (angle float :offset-assert 44) + (tex texture :offset-assert 48) ;; guessed by decompiler + (tid uint32 :offset-assert 48) + ) + :method-count-assert 12 + :size-assert #x34 + :flag-assert #xc00000034 + (:methods + (hud-sprite-method-9 () none) ;; 9 ;; (draw (_type_ dma-buffer level) none 9) + (hud-sprite-method-10 () none) ;; 10 ;; (hud-sprite-method-10 (_type_ dma-buffer level int int int int) object 10) + (hud-sprite-method-11 () none) ;; 11 + ) + ) +|# + +#| +(deftype hud-box (structure) + ((box bounding-box2 :inline :offset-assert 0) + (min vector2 :inline :offset-assert 0) + (max vector2 :inline :offset-assert 8) + (color vector4w :inline :offset-assert 16) + ) + :method-count-assert 14 + :size-assert #x20 + :flag-assert #xe00000020 + (:methods + (hud-box-method-9 () none) ;; 9 ;; (draw-box-prim-only (_type_ dma-buffer) none 9) + (hud-box-method-10 () none) ;; 10 ;; (draw-box-alpha-1 (_type_ dma-buffer) none 10) + (hud-box-method-11 () none) ;; 11 ;; (draw-box-alpha-2 (_type_ dma-buffer) none 11) + (hud-box-method-12 () none) ;; 12 ;; (draw-box-alpha-3 (_type_ dma-buffer) none 12) + (hud-box-method-13 () none) ;; 13 ;; (draw-scan-and-line (_type_ dma-buffer float) int 13) + ) + ) +|# + +#| +(deftype hud-icon (structure) + ((icon (pointer manipy) :offset-assert 0) ;; guessed by decompiler + (pos vector4w :inline :offset-assert 16) ;; int32 4 + (scale-x float :offset-assert 32) + (scale-y float :offset-assert 36) + ) + :method-count-assert 9 + :size-assert #x28 + :flag-assert #x900000028 + ) +|# + +#| +(deftype hud-value (structure) + ((current int32 :offset-assert 0) + (target int32 :offset-assert 4) + (flags uint16 :offset-assert 8) + (inc-unit uint16 :offset-assert 10) + (inc-time uint16 :offset-assert 12) + (counter uint16 :offset-assert 14) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype hud (process) + ((trigger-time uint64 :offset-assert 128) ;; time-frame + (last-hide-time uint64 :offset-assert 136) ;; time-frame + (offset float :offset-assert 144) + (flags hud-flags :offset-assert 148) ;; guessed by decompiler + (values hud-value 8 :offset-assert 152) ;; guessed by decompiler + (strings hud-string 14 :offset-assert 288) ;; guessed by decompiler + (sprites hud-sprite 30 :offset-assert 736) ;; guessed by decompiler + (icons hud-icon 2 :offset-assert 2656) ;; guessed by decompiler + (gui-id sound-id :offset-assert 2752) ;; guessed by decompiler + ) + :method-count-assert 27 + :size-assert #xac4 + :flag-assert #x1b0a500ac4 + (:methods + (hud-method-14 () none) ;; 14 ;; (hidden? (_type_) symbol 14) + (hud-method-15 () none) ;; 15 ;; (draw (_type_) none 15) + (hud-method-16 () none) ;; 16 ;; (update-values (_type_) none 16) + (hud-method-17 () none) ;; 17 ;; (init-callback (_type_) none 17) + (hud-method-18 () none) ;; 18 ;; (event-callback (_type_ process int symbol event-message-block) symbol 18) + (hud-method-19 () none) ;; 19 ;; (hud-method-19 (_type_) none 19) + (hud-method-20 () none) ;; 20 ;; (hud-method-20 (_type_) none 20) + (hud-method-21 () none) ;; 21 ;; (hud-method-21 (_type_) none 21) + (hud-method-22 () none) ;; 22 ;; (hud-method-22 (_type_) none 22) + (hud-method-23 () none) ;; 23 ;; (hud-method-23 (_type_) none 23) + (hud-method-24 () none) ;; 24 ;; (check-ready-and-maybe-show (_type_ symbol) symbol 24) + (hud-method-25 () none) ;; 25 ;; (update-value-callback (_type_ int int) none 25) + (hud-method-26 () none) ;; 26 ;; (alloc-string-if-needed (_type_ int) none 26) + ) + (:states + hud-hidden ;; associated process guessed by decompiler, old: (state hud) + hud-arriving ;; associated process guessed by decompiler, old: (state hud) + hud-in ;; associated process guessed by decompiler, old: (state hud) + hud-leaving ;; associated process guessed by decompiler, old: (state float hud) + ) + ) +|# + +#| +(deftype hud-ashelin (hud) + () + :method-count-assert 27 + :size-assert #xac4 + :flag-assert #x1b0a500ac4 + ) +|# + +#| +(deftype hud-cargo (hud) + () + :method-count-assert 27 + :size-assert #xac4 + :flag-assert #x1b0a500ac4 + ) +|# + +#| +(deftype hud-citizen (hud) + () + :method-count-assert 27 + :size-assert #xac4 + :flag-assert #x1b0a500ac4 + ) +|# + +#| +(deftype hud-cpanel (hud) + () + :method-count-assert 27 + :size-assert #xac4 + :flag-assert #x1b0a500ac4 + ) +|# + +#| +(deftype hud-dig-clasp (hud) + () + :method-count-assert 27 + :size-assert #xac4 + :flag-assert #x1b0a500ac4 + ) +|# + +#| +(deftype hud-gun (hud) + () + :method-count-assert 27 + :size-assert #xac4 + :flag-assert #x1b0a500ac4 + ) +|# + +#| +(deftype hud-health (hud) + () + :method-count-assert 27 + :size-assert #xac4 + :flag-assert #x1b0a500ac4 + ) +|# + +#| +(deftype hud-helldog (hud) + () + :method-count-assert 27 + :size-assert #xac4 + :flag-assert #x1b0a500ac4 + ) +|# + +#| +(deftype hud-lurker (hud) + () + :method-count-assert 27 + :size-assert #xac4 + :flag-assert #x1b0a500ac4 + ) +|# + +#| +(deftype hud-map (hud) + () + :method-count-assert 27 + :size-assert #xac4 + :flag-assert #x1b0a500ac4 + ) +|# + +#| +(deftype hud-moneybag (hud) + () + :method-count-assert 27 + :size-assert #xac4 + :flag-assert #x1b0a500ac4 + ) +|# + +#| +(deftype hud-plasmite (hud) + () + :method-count-assert 27 + :size-assert #xac4 + :flag-assert #x1b0a500ac4 + ) +|# + +#| +(deftype hud-dig-button (hud) + () + :method-count-assert 27 + :size-assert #xac4 + :flag-assert #x1b0a500ac4 + ) +|# + +#| +(deftype hud-predator (hud) + () + :method-count-assert 27 + :size-assert #xac4 + :flag-assert #x1b0a500ac4 + ) +|# + +#| +(deftype hud-heatmeter (hud) + () + :method-count-assert 27 + :size-assert #xac4 + :flag-assert #x1b0a500ac4 + ) +|# + +#| +(deftype hud-nest-cocoons (hud) + () + :method-count-assert 27 + :size-assert #xac4 + :flag-assert #x1b0a500ac4 + ) +|# + +#| +(deftype hud-neo-spawners (hud) + () + :method-count-assert 27 + :size-assert #xac4 + :flag-assert #x1b0a500ac4 + ) +|# + +#| +(deftype hud-desert-lizards (hud) + () + :method-count-assert 27 + :size-assert #xac4 + :flag-assert #x1b0a500ac4 + ) +|# + +#| +(deftype hud-fac-manager (hud) + () + :method-count-assert 27 + :size-assert #xac4 + :flag-assert #x1b0a500ac4 + ) +|# + +#| +(deftype hud-progress (hud) + () + :method-count-assert 27 + :size-assert #xac4 + :flag-assert #x1b0a500ac4 + ) +|# + +#| +(deftype hud-rocketsensor (hud) + () + :method-count-assert 27 + :size-assert #xac4 + :flag-assert #x1b0a500ac4 + ) +|# + +#| +(deftype hud-ruffians (hud) + () + :method-count-assert 27 + :size-assert #xac4 + :flag-assert #x1b0a500ac4 + ) +|# + +#| +(deftype hud-score (hud) + () + :method-count-assert 27 + :size-assert #xac4 + :flag-assert #x1b0a500ac4 + ) +|# + +#| +(deftype hud-sig (hud) + () + :method-count-assert 27 + :size-assert #xac4 + :flag-assert #x1b0a500ac4 + ) +|# + +#| +(deftype hud-skill (hud) + () + :method-count-assert 27 + :size-assert #xac4 + :flag-assert #x1b0a500ac4 + ) +|# + +#| +(deftype hud-skullgem (hud) + () + :method-count-assert 27 + :size-assert #xac4 + :flag-assert #x1b0a500ac4 + ) +|# + +#| +(deftype hud-timer (hud) + () + :method-count-assert 27 + :size-assert #xac4 + :flag-assert #x1b0a500ac4 + ) +|# + +#| +(deftype hud-turret (hud) + () + :method-count-assert 27 + :size-assert #xac4 + :flag-assert #x1b0a500ac4 + ) +|# + +#| +(deftype hud-for-turret-health (hud) + () + :method-count-assert 27 + :size-assert #xaf4 + :flag-assert #x1b0a800af4 + ) +|# + +#| +(deftype hud-squid (hud) + () + :method-count-assert 27 + :size-assert #xac4 + :flag-assert #x1b0a500ac4 + ) +|# + +#| +(deftype hud-gunturret (hud) + () + :method-count-assert 27 + :size-assert #xac4 + :flag-assert #x1b0a500ac4 + ) +|# + +#| +(deftype hud-gruntegg (hud) + () + :method-count-assert 27 + :size-assert #xac4 + :flag-assert #x1b0a500ac4 + ) +|# + +#| +(deftype hud-crimsonhover (hud) + () + :method-count-assert 27 + :size-assert #xac4 + :flag-assert #x1b0a500ac4 + ) +|# + +#| +(deftype hud-metalkor (hud) + () + :method-count-assert 27 + :size-assert #xac4 + :flag-assert #x1b0a500ac4 + ) +|# + +#| +(deftype hud-big-score (hud) + () + :method-count-assert 27 + :size-assert #xac4 + :flag-assert #x1b0a500ac4 + ) +|# + +#| +(deftype hud-goal (hud) + () + :method-count-assert 27 + :size-assert #xac4 + :flag-assert #x1b0a500ac4 + ) +|# + +#| +(deftype hud-miss (hud) + () + :method-count-assert 27 + :size-assert #xac4 + :flag-assert #x1b0a500ac4 + ) +|# + +#| +(deftype hud-samos-old (hud) + () + :method-count-assert 27 + :size-assert #xac4 + :flag-assert #x1b0a500ac4 + ) +|# + +#| +(deftype hud-lurker-button (hud) + () + :method-count-assert 27 + :size-assert #xac4 + :flag-assert #x1b0a500ac4 + ) +|# + +#| +(deftype hud-widow (hud) + () + :method-count-assert 27 + :size-assert #xac4 + :flag-assert #x1b0a500ac4 + ) +|# + +#| +(deftype hud-race-final-stats (hud) + () + :method-count-assert 27 + :size-assert #xac4 + :flag-assert #x1b0a500ac4 + ) +|# + +#| +(deftype hud-mech-air-tank (hud) + () + :method-count-assert 27 + :size-assert #xac4 + :flag-assert #x1b0a500ac4 + ) +|# + +#| +(deftype hud-homing-beacon (hud) + () + :method-count-assert 27 + :size-assert #xac4 + :flag-assert #x1b0a500ac4 + ) +|# + +#| +(deftype hud-dark-eco-pickup (hud) + () + :method-count-assert 27 + :size-assert #xac4 + :flag-assert #x1b0a500ac4 + ) +|# + +#| +(deftype hud-green-eco-pickup (hud) + () + :method-count-assert 27 + :size-assert #xac4 + :flag-assert #x1b0a500ac4 + ) +|# + +#| +(deftype hud-mh-centipede (hud) + () + :method-count-assert 27 + :size-assert #xac4 + :flag-assert #x1b0a500ac4 + ) +|# + +#| +(deftype hud-arena-tokens (hud) + () + :method-count-assert 27 + :size-assert #xac4 + :flag-assert #x1b0a500ac4 + ) +|# + +#| +(deftype hud-kanga-lizard (hud) + () + :method-count-assert 27 + :size-assert #xac4 + :flag-assert #x1b0a500ac4 + ) +|# + +#| +(deftype hud-marauder (hud) + () + :method-count-assert 27 + :size-assert #xac4 + :flag-assert #x1b0a500ac4 + ) +|# + +#| +(deftype hud-prebot (hud) + () + :method-count-assert 27 + :size-assert #xac4 + :flag-assert #x1b0a500ac4 + ) +|# + +#| +(deftype hud-glider-altitude (hud) + () + :method-count-assert 27 + :size-assert #xac4 + :flag-assert #x1b0a500ac4 + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; progress-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype progress-list (basic) + () + :method-count-assert 10 + :size-assert #x4 + :flag-assert #xa00000004 + (:methods + (progress-list-method-9 () none) ;; 9 + ) + ) +|# + +#| +(deftype progress-list-level (progress-list) + ((act int32 :offset-assert 4) + (mode basic :offset-assert 8) + ) + :method-count-assert 10 + :size-assert #xc + :flag-assert #xa0000000c + ) +|# + +#| +(deftype progress-box (structure) + ((aspect4x3 hud-box :inline :offset-assert 0) + (aspect16x9 hud-box :inline :offset-assert 32) + ) + :method-count-assert 9 + :size-assert #x40 + :flag-assert #x900000040 + ) +|# + +#| +(deftype progress (process-drawable) + ((scissor-stack UNKNOWN 8 :offset-assert 208) + (scissor-count int32 :offset-assert 336) + (current-options menu-option-list :offset-assert 340) ;; guessed by decompiler + (menu-transition float :offset-assert 344) + (option-index int32 :offset-assert 348) + (current-index int32 :offset-assert 352) + (want-option-index int32 :offset-assert 356) + (next-option-index int32 :offset-assert 360) + (graphic-index int32 :offset-assert 364) + (selected-option symbol :offset-assert 368) ;; guessed by decompiler + (current symbol :offset-assert 372) ;; guessed by decompiler + (next symbol :offset-assert 376) ;; guessed by decompiler + (ring-angle float :offset-assert 380) + (ring-want-angle float :offset-assert 384) + (init-quat quaternion :inline :offset-assert 400) + (pos-transition float :offset-assert 416) + (anim-frame float :offset-assert 420) + (swing float :offset-assert 424) + (main-menu symbol :offset-assert 428) ;; guessed by decompiler + (state-array UNKNOWN 8 :offset-assert 432) + (option-index-stack int32 8 :offset-assert 464) ;; guessed by decompiler + (state-pos int32 :offset-assert 496) + (secret-buying basic :offset-assert 500) + (secret-buy-choice basic :offset-assert 504) + (scanlines-alpha float :offset-assert 508) + (start-time uint64 :offset-assert 512) + (which-slot int32 :offset-assert 520) + (starting-state basic :offset-assert 524) + (yes-no-choice basic :offset-assert 528) + (time-out uint64 :offset-assert 536) + (last-sound uint64 :offset-assert 544) + (last-move uint64 :offset-assert 552) + (center-x-backup int32 :offset-assert 560) + (center-y-backup int32 :offset-assert 564) + (flip-horizontal basic :offset-assert 568) + (flip-vertical basic :offset-assert 572) + (progressive-scan basic :offset-assert 576) + (aspect-ratio basic :offset-assert 580) + (video-mode basic :offset-assert 584) + (stereo-mode-backup int32 :offset-assert 588) + (vibrations basic :offset-assert 592) + (subtitles basic :offset-assert 596) + (languages UNKNOWN 3 :offset-assert 600) + (subtitle-language-index int32 :offset-assert 600) + (language-index int32 :offset-assert 604) + (audio-language-index int32 :offset-assert 608) + (current-task-index int32 :offset-assert 612) + (current-line-index int32 :offset-assert 616) + (first-closed-line-index int32 :offset-assert 620) + (extra-text-state int32 :offset-assert 624) + (current-task uint8 :offset-assert 628) + (num-open-tasks-found int32 :offset-assert 632) + (num-closed-tasks-found int32 :offset-assert 636) + (num-unlocked-secrets int32 :offset-assert 640) + (total-num-tasks int32 :offset-assert 644) + (missions-total-spacing float :offset-assert 648) + (clear-screen basic :offset-assert 652) + (progress-id uint32 :offset-assert 656) + (lock-tick-count int32 :offset-assert 660) + ) + :method-count-assert 54 + :size-assert #x298 + :flag-assert #x3602200298 + (:methods + (progress-method-20 () none) ;; 20 ;; (come-in () _type_ :state 20) + (progress-method-21 () none) ;; 21 ;; (idle () _type_ :state 21) + (progress-method-22 () none) ;; 22 ;; (go-away () _type_ :state 22) + (progress-method-23 () none) ;; 23 ;; (gone () _type_ :state 23) + (progress-method-24 () none) ;; 24 ;; (init-defaults (_type_) object 24) + (progress-method-25 () none) ;; 25 ;; (respond-to-cpad (_type_) none 25) + (progress-method-26 () none) ;; 26 ;; (gone? (_type_) object 26) + (progress-method-27 () none) ;; 27 ;; (can-go-back? (_type_) symbol 27) + (progress-method-28 () none) ;; 28 ;; (get-state-check-card (_type_ symbol) symbol 28) + (progress-method-29 () none) ;; 29 ;; (push-state (_type_) int 29) + (progress-method-30 () none) ;; 30 ;; (pop-state (_type_) int 30) + (progress-method-31 () none) ;; 31 ;; (set-next-state (_type_ symbol int) int 31) + (progress-method-32 () none) ;; 32 ;; (set-menu-options (_type_ symbol) int 32) + (progress-method-33 () none) ;; 33 + (progress-method-34 () none) ;; 34 + (progress-method-35 () none) ;; 35 + (progress-method-36 () none) ;; 36 + (progress-method-37 () none) ;; 37 + (progress-method-38 () none) ;; 38 + (progress-method-39 () none) ;; 39 + (progress-method-40 () none) ;; 40 + (progress-method-41 () none) ;; 41 + (progress-method-42 () none) ;; 42 + (progress-method-43 () none) ;; 43 + (progress-method-44 () none) ;; 44 + (progress-method-45 () none) ;; 45 + (progress-method-46 () none) ;; 46 + (progress-method-47 () none) ;; 47 + (progress-method-48 () none) ;; 48 + (progress-method-49 () none) ;; 49 + (progress-method-50 () none) ;; 50 + (progress-method-51 () none) ;; 51 + (progress-method-52 () none) ;; 52 + (progress-method-53 () none) ;; 53 + ) + ) +|# + +#| +(deftype progress-work (structure) + ((full-screen progress-box :inline :offset-assert 0) + (small-screen progress-box :inline :offset-assert 64) + (header progress-box :inline :offset-assert 128) + (body progress-box :inline :offset-assert 192) + (body-footer progress-box :inline :offset-assert 256) + (footer progress-box :inline :offset-assert 320) + (sub-header progress-box :inline :offset-assert 384) + (sub-body progress-box :inline :offset-assert 448) + (sub-body-footer progress-box :inline :offset-assert 512) + (highscore-0 progress-box :inline :offset-assert 576) + (highscore-1 progress-box :inline :offset-assert 640) + (highscore-body progress-box :inline :offset-assert 704) + (load-save-0a progress-box :inline :offset-assert 768) + (load-save-0b progress-box :inline :offset-assert 832) + (load-save-1a progress-box :inline :offset-assert 896) + (load-save-1b progress-box :inline :offset-assert 960) + (load-save-2a progress-box :inline :offset-assert 1024) + (load-save-2b progress-box :inline :offset-assert 1088) + (load-save-3a progress-box :inline :offset-assert 1152) + (load-save-3b progress-box :inline :offset-assert 1216) + (last-slot-saved int32 :offset-assert 1280) + (selected-num int32 :offset-assert 1284) + (secrets-unlocked basic :offset-assert 1288) + (hero-mode-save basic :offset-assert 1292) + ) + :method-count-assert 9 + :size-assert #x510 + :flag-assert #x900000510 + ) +|# + +#| +(deftype progress-icon-part (structure) + ((offset vector2w :inline :offset-assert 0) + (tex-id uint32 :offset-assert 8) + (bucket int32 :offset-assert 12) + (flags uint32 :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x14 + :flag-assert #x900000014 + ) +|# + +#| +(deftype progress-icon-array (array) + ((type basic :offset-assert 0) + (length int32 :offset-assert 4) + (allocated-length int32 :offset-assert 8) + (content-type basic :offset-assert 12) + ) + :method-count-assert 10 + :size-assert #x10 + :flag-assert #xa00000010 + (:methods + (progress-icon-array-method-9 () none) ;; 9 + ) + ) +|# + +#| +(deftype menu-option (basic) + ((name text-id :offset-assert 4) ;; guessed by decompiler + (menu-option-type uint32 :offset-assert 8) + (offset-y float :offset-assert 12) + (box hud-box 1 :offset-assert 16) ;; guessed by decompiler + ) + :method-count-assert 12 + :size-assert #x30 + :flag-assert #xc00000030 + (:methods + (menu-option-method-9 () none) ;; 9 ;; (respond-progress (_type_ progress symbol) int 9) + (menu-option-method-10 () none) ;; 10 ;; (draw-option (_type_ progress font-context int symbol) none 10) + (menu-option-method-11 () none) ;; 11 ;; (menu-option-method-11 () none 11) + ) + ) +|# + +#| +(deftype menu-slider-option (menu-option) + ((setting-offset uint32 :offset-assert 48) + ) + :method-count-assert 12 + :size-assert #x34 + :flag-assert #xc00000034 + ) +|# + +#| +(deftype menu-sound-slider-option (menu-slider-option) + () + :method-count-assert 12 + :size-assert #x34 + :flag-assert #xc00000034 + ) +|# + +#| +(deftype menu-picture-slider-option (menu-slider-option) + () + :method-count-assert 12 + :size-assert #x34 + :flag-assert #xc00000034 + ) +|# + +#| +(deftype menu-sub-menu-option (menu-option) + ((next-state symbol :offset-assert 48) ;; guessed by decompiler + ) + :method-count-assert 12 + :size-assert #x34 + :flag-assert #xc00000034 + ) +|# + +#| +(deftype menu-stereo-mode-sound-option (menu-option) + () + :method-count-assert 12 + :size-assert #x30 + :flag-assert #xc00000030 + ) +|# + +#| +(deftype menu-unlocked-sub-menu-option (menu-sub-menu-option) + ((mask uint64 :offset-assert 56) + (value int32 :offset-assert 64) + ) + :method-count-assert 12 + :size-assert #x44 + :flag-assert #xc00000044 + ) +|# + +#| +(deftype menu-save-sub-menu-option (menu-sub-menu-option) + () + :method-count-assert 12 + :size-assert #x34 + :flag-assert #xc00000034 + ) +|# + +#| +(deftype menu-main-menu-option (menu-option) + ((next-state symbol :offset-assert 48) ;; guessed by decompiler + ) + :method-count-assert 12 + :size-assert #x34 + :flag-assert #xc00000034 + ) +|# + +#| +(deftype menu-memcard-slot-option (menu-option) + ((sprites hud-sprite 5 :offset-assert 48) ;; guessed by decompiler + ) + :method-count-assert 12 + :size-assert #x190 + :flag-assert #xc00000190 + ) +|# + +#| +(deftype menu-loading-option (menu-option) + () + :method-count-assert 12 + :size-assert #x30 + :flag-assert #xc00000030 + ) +|# + +#| +(deftype menu-insufficient-space-option (menu-option) + () + :method-count-assert 12 + :size-assert #x30 + :flag-assert #xc00000030 + ) +|# + +#| +(deftype menu-secrets-insufficient-space-option (menu-option) + () + :method-count-assert 12 + :size-assert #x30 + :flag-assert #xc00000030 + ) +|# + +#| +(deftype menu-hero-mode-message-option (menu-option) + () + :method-count-assert 12 + :size-assert #x30 + :flag-assert #xc00000030 + ) +|# + +#| +(deftype menu-insert-card-option (menu-option) + () + :method-count-assert 12 + :size-assert #x30 + :flag-assert #xc00000030 + ) +|# + +#| +(deftype menu-error-loading-option (menu-option) + () + :method-count-assert 12 + :size-assert #x30 + :flag-assert #xc00000030 + ) +|# + +#| +(deftype menu-error-auto-saving-option (menu-option) + () + :method-count-assert 12 + :size-assert #x30 + :flag-assert #xc00000030 + ) +|# + +#| +(deftype menu-card-removed-option (menu-option) + () + :method-count-assert 12 + :size-assert #x30 + :flag-assert #xc00000030 + ) +|# + +#| +(deftype menu-error-disc-removed-option (menu-option) + () + :method-count-assert 12 + :size-assert #x30 + :flag-assert #xc00000030 + ) +|# + +#| +(deftype menu-error-reading-option (menu-option) + () + :method-count-assert 12 + :size-assert #x30 + :flag-assert #xc00000030 + ) +|# + +#| +(deftype menu-icon-info-option (menu-option) + ((sprites hud-sprite 2 :offset-assert 48) ;; guessed by decompiler + ) + :method-count-assert 12 + :size-assert #xb0 + :flag-assert #xc000000b0 + ) +|# + +#| +(deftype menu-format-card-option (menu-option) + () + :method-count-assert 12 + :size-assert #x30 + :flag-assert #xc00000030 + ) +|# + +#| +(deftype menu-already-exists-option (menu-option) + () + :method-count-assert 12 + :size-assert #x30 + :flag-assert #xc00000030 + ) +|# + +#| +(deftype menu-create-game-option (menu-option) + () + :method-count-assert 12 + :size-assert #x30 + :flag-assert #xc00000030 + ) +|# + +#| +(deftype menu-video-mode-warning-option (menu-option) + () + :method-count-assert 12 + :size-assert #x30 + :flag-assert #xc00000030 + ) +|# + +#| +(deftype menu-video-mode-ok-option (menu-option) + () + :method-count-assert 12 + :size-assert #x30 + :flag-assert #xc00000030 + ) +|# + +#| +(deftype menu-progressive-mode-warning-option (menu-option) + () + :method-count-assert 12 + :size-assert #x30 + :flag-assert #xc00000030 + ) +|# + +#| +(deftype menu-progressive-mode-ok-option (menu-option) + () + :method-count-assert 12 + :size-assert #x30 + :flag-assert #xc00000030 + ) +|# + +#| +(deftype menu-select-start-option (menu-option) + ((current-index float :offset-assert 48) + (target-index float :offset-assert 52) + (selected-index int32 :offset-assert 56) + (scroll-speed float :offset-assert 60) + ) + :method-count-assert 12 + :size-assert #x40 + :flag-assert #xc00000040 + ) +|# + +#| +(deftype menu-select-scene-option (menu-option) + ((current-index float :offset-assert 48) + (target-index float :offset-assert 52) + (selected-index int32 :offset-assert 56) + (scroll-speed float :offset-assert 60) + ) + :method-count-assert 12 + :size-assert #x40 + :flag-assert #xc00000040 + ) +|# + +#| +(deftype menu-bigmap-option (menu-option) + () + :method-count-assert 12 + :size-assert #x30 + :flag-assert #xc00000030 + ) +|# + +#| +(deftype paged-menu-option (menu-option) + ((page-index int32 :offset-assert 48) + (prev-page-index int32 :offset-assert 52) + (num-pages int32 :offset-assert 56) + (slide-dir float :offset-assert 60) + ) + :method-count-assert 12 + :size-assert #x40 + :flag-assert #xc00000040 + ) +|# + +#| +(deftype menu-missions-option (paged-menu-option) + ((current-index float :offset-assert 64) + (target-index float :offset-assert 68) + (scroll-speed float :offset-assert 72) + (on-screen basic :offset-assert 76) + ) + :method-count-assert 12 + :size-assert #x50 + :flag-assert #xc00000050 + ) +|# + +#| +(deftype highscore-page-info (structure) + ((text uint32 :offset-assert 0) + (secret uint64 :offset-assert 8) + (game-score uint8 :offset-assert 16) + (icon uint32 :offset-assert 20) + (icon-scalex float :offset-assert 24) + (icon-scaley float :offset-assert 28) + (icon-offsetx float :offset-assert 32) + (icon-offsety float :offset-assert 36) + ) + :method-count-assert 13 + :size-assert #x28 + :flag-assert #xd00000028 + (:methods + (highscore-page-info-method-9 () none) ;; 9 + (highscore-page-info-method-10 () none) ;; 10 + (highscore-page-info-method-11 () none) ;; 11 + (highscore-page-info-method-12 () none) ;; 12 + ) + ) +|# + +#| +(deftype menu-highscores-option (menu-option) + ((current-index float :offset-assert 48) + (target-index float :offset-assert 52) + (num-pages int32 :offset-assert 56) + (pages UNKNOWN 16 :offset-assert 60) + (info basic :offset-assert 124) + ) + :method-count-assert 13 + :size-assert #x80 + :flag-assert #xd00000080 + (:methods + (menu-highscores-option-method-12 () none) ;; 12 + ) + ) +|# + +#| +(deftype controls-string-info (structure) + ((button uint32 :offset-assert 0) + (action uint32 :offset-assert 4) + (feature uint64 :offset-assert 8) + (secret uint64 :offset-assert 16) + (vehicle uint64 :offset-assert 24) + ) + :method-count-assert 10 + :size-assert #x20 + :flag-assert #xa00000020 + (:methods + (controls-string-info-method-9 () none) ;; 9 + ) + ) +|# + +#| +(deftype controls-page-info (structure) + ((title uint32 :offset-assert 0) + (feature uint64 :offset-assert 8) + (secret uint64 :offset-assert 16) + (vehicle uint64 :offset-assert 24) + (current-index float :offset-assert 32) + (target-index float :offset-assert 36) + (num-text int32 :offset-assert 40) + (on-screen basic :offset-assert 44) + (text UNKNOWN 9 :offset-assert 48) + (strings basic :offset-assert 84) + ) + :method-count-assert 12 + :size-assert #x58 + :flag-assert #xc00000058 + (:methods + (controls-page-info-method-9 () none) ;; 9 + (controls-page-info-method-10 () none) ;; 10 + (controls-page-info-method-11 () none) ;; 11 + ) + ) +|# + +#| +(deftype menu-controls-option (paged-menu-option) + ((current-index float :offset-assert 64) + (target-index float :offset-assert 68) + (pages UNKNOWN 7 :offset-assert 76) + (info basic :offset-assert 104) + ) + :method-count-assert 13 + :size-assert #x6c + :flag-assert #xd0000006c + (:methods + (menu-controls-option-method-12 () none) ;; 12 + ) + ) +|# + +#| +(deftype secret-item-option (menu-option) + ((cost int32 :offset-assert 48) + (secret uint64 :offset-assert 56) + (avail-after uint16 :offset-assert 64) ;; game-task-node + (required-secrets uint64 :offset-assert 72) + (mask-secrets uint64 :offset-assert 80) + (flags uint8 :offset-assert 88) + ) + :method-count-assert 14 + :size-assert #x59 + :flag-assert #xe00000059 + (:methods + (secret-item-option-method-12 () none) ;; 12 + (secret-item-option-method-13 () none) ;; 13 + ) + ) +|# + +#| +(deftype menu-secret-option (menu-option) + ((current-index float :offset-assert 48) + (target-index float :offset-assert 52) + (selected-index int32 :offset-assert 56) + (buy-menu basic :offset-assert 60) + (available-title basic :offset-assert 64) + ) + :method-count-assert 12 + :size-assert #x44 + :flag-assert #xc00000044 + ) +|# + +#| +(deftype menu-option-list (basic) + ((y-center int32 :offset-assert 4) + (y-space int32 :offset-assert 8) + (scale float :offset-assert 12) + (options (array menu-option) :offset-assert 16) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x14 + :flag-assert #x900000014 + ) +|# + +#| +(deftype menu-qr-option (menu-option) + () + :method-count-assert 12 + :size-assert #x30 + :flag-assert #xc00000030 + ) +|# + +#| +(deftype menu-restart-mission-qr-option (menu-qr-option) + () + :method-count-assert 12 + :size-assert #x30 + :flag-assert #xc00000030 + ) +|# + +#| +(deftype menu-quit-qr-option (menu-qr-option) + () + :method-count-assert 12 + :size-assert #x30 + :flag-assert #xc00000030 + ) +|# + +#| +(deftype menu-graphic-option (menu-option) + ((setting-offset uint32 :offset-assert 48) + ) + :method-count-assert 12 + :size-assert #x34 + :flag-assert #xc00000034 + ) +|# + +#| +(deftype menu-on-off-progressive-scan-graphic-option (menu-graphic-option) + () + :method-count-assert 12 + :size-assert #x34 + :flag-assert #xc00000034 + ) +|# + +#| +(deftype menu-aspect-ratio-option (menu-graphic-option) + () + :method-count-assert 12 + :size-assert #x34 + :flag-assert #xc00000034 + ) +|# + +#| +(deftype menu-center-screen-graphic-option (menu-graphic-option) + ((next-state symbol :offset-assert 52) ;; guessed by decompiler + ) + :method-count-assert 12 + :size-assert #x38 + :flag-assert #xc00000038 + ) +|# + +#| +(deftype menu-video-mode-option (menu-graphic-option) + () + :method-count-assert 12 + :size-assert #x34 + :flag-assert #xc00000034 + ) +|# + +#| +(deftype menu-camera-option (menu-option) + ((setting-offset uint32 :offset-assert 48) + ) + :method-count-assert 12 + :size-assert #x34 + :flag-assert #xc00000034 + ) +|# + +#| +(deftype menu-game-option (menu-option) + ((setting-offset uint32 :offset-assert 48) + ) + :method-count-assert 12 + :size-assert #x34 + :flag-assert #xc00000034 + ) +|# + +#| +(deftype menu-language-option (menu-option) + () + :method-count-assert 12 + :size-assert #x30 + :flag-assert #xc00000030 + ) +|# + +#| +(deftype menu-on-off-game-vibrations-option (menu-game-option) + () + :method-count-assert 12 + :size-assert #x34 + :flag-assert #xc00000034 + ) +|# + +#| +(deftype menu-on-off-game-subtitles-option (menu-game-option) + () + :method-count-assert 12 + :size-assert #x34 + :flag-assert #xc00000034 + ) +|# + +#| +(deftype menu-language-game-option (menu-game-option) + () + :method-count-assert 12 + :size-assert #x34 + :flag-assert #xc00000034 + ) +|# + +#| +(deftype inventory-item (structure) + ((icon uint32 :offset-assert 0) + (icon-scale float :offset-assert 4) + (offset vector2 :offset-assert 16) + (feature uint64 :offset-assert 24) + (vehicle uint64 :offset-assert 32) + (item uint64 :offset-assert 40) + ) + :method-count-assert 11 + :size-assert #x30 + :flag-assert #xb00000030 + (:methods + (inventory-item-method-9 () none) ;; 9 + (inventory-item-method-10 () none) ;; 10 + ) + ) +|# + +#| +(deftype inventory-item-group (structure) + ((name uint32 :offset-assert 0) + (index-left uint8 :offset-assert 4) + (index-right uint8 :offset-assert 5) + (index-up uint8 :offset-assert 6) + (index-down uint8 :offset-assert 7) + (items basic :offset-assert 8) + ) + :method-count-assert 11 + :size-assert #xc + :flag-assert #xb0000000c + (:methods + (inventory-item-group-method-9 () none) ;; 9 + (inventory-item-group-method-10 () none) ;; 10 + ) + ) +|# + +#| +(deftype inventory-screen (structure) + ((name uint32 :offset-assert 0) + (current-index uint8 :offset-assert 4) + (groups basic :offset-assert 8) + ) + :method-count-assert 10 + :size-assert #xc + :flag-assert #xa0000000c + (:methods + (inventory-screen-method-9 () none) ;; 9 + ) + ) +|# + +#| +(deftype menu-inventory (menu-option) + ((current-index float :offset-assert 48) + (target-index float :offset-assert 52) + (screens basic :offset-assert 56) + ) + :method-count-assert 12 + :size-assert #x3c + :flag-assert #xc0000003c + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; board-part ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern board-charge-track function) +;; (define-extern board-zap-track function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; spatial-hash-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (deftype grid-hash-word (uint8) +;; () +;; :flag-assert #x900000001 +;; ) + +#| +(deftype grid-hash-box (structure) + ((min int8 3 :offset-assert 0) ;; guessed by decompiler + (max int8 3 :offset-assert 3) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x6 + :flag-assert #x900000006 + ) +|# + +#| +(deftype grid-hash (basic) + ((work grid-hash-work :offset-assert 4) ;; guessed by decompiler + (search-box grid-hash-box :inline :offset-assert 8) + (bucket-size int16 :offset-assert 14) + (axis-scale float 3 :offset-assert 16) ;; guessed by decompiler + (dimension-array int8 3 :offset-assert 28) ;; guessed by decompiler + (vertical-cell-count int8 :offset-assert 31) + (bucket-array (pointer grid-hash-word) :offset-assert 32) ;; guessed by decompiler + (box-min float 3 :offset-assert 36) ;; guessed by decompiler + (box-max float 3 :offset-assert 48) ;; guessed by decompiler + (object-count int16 :offset-assert 60) + (bucket-count int16 :offset-assert 62) + (min-cell-size float :offset-assert 64) + (bucket-memory-size int32 :offset-assert 68) + (mem-bucket-array (pointer grid-hash-word) :offset-assert 72) ;; guessed by decompiler + (spr-bucket-array (pointer grid-hash-word) :offset-assert 76) ;; guessed by decompiler + (debug-draw symbol :offset-assert 80) ;; guessed by decompiler + (use-scratch-ram symbol :offset-assert 84) ;; guessed by decompiler + ) + :method-count-assert 25 + :size-assert #x58 + :flag-assert #x1900000058 + (:methods + ;; (new (symbol type int) _type_ 0) + (grid-hash-method-9 () none) ;; 9 ;; (update-grid-for-objects-in-box (_type_ int vector vector) none 9) + (grid-hash-method-10 () none) ;; 10 ;; (clear-bucket-array (_type_) none 10) + (grid-hash-method-11 () none) ;; 11 ;; (setup-search-box (_type_ int vector vector vector) none 11) + (grid-hash-method-12 () none) ;; 12 ;; (search-for-point (_type_ vector) (pointer uint8) 12) + (grid-hash-method-13 () none) ;; 13 ;; (search-for-sphere (_type_ vector float) (pointer uint8) 13) + (grid-hash-method-14 () none) ;; 14 ;; (draw (_type_ rgba) none 14) + (grid-hash-method-15 () none) ;; 15 ;; (dump-grid-info (_type_) none 15) + (grid-hash-method-16 () none) ;; 16 ;; (verify-bits-in-bucket (_type_ grid-hash-box grid-hash-box) none 16) + (grid-hash-method-17 () none) ;; 17 ;; (box-of-everything (_type_ object grid-hash-box) none 17) + (grid-hash-method-18 () none) ;; 18 ;; (grid-hash-method-18 (_type_ grid-hash-box int) none 18) + (grid-hash-method-19 () none) ;; 19 ;; (grid-hash-method-19 (_type_ grid-hash-box int) none 19) + (grid-hash-method-20 () none) ;; 20 ;; (do-search! (_type_ grid-hash-box (pointer uint8)) none 20) + (grid-hash-method-21 () none) ;; 21 ;; (set-up-box (_type_ grid-hash-box vector vector) none 21) + (grid-hash-method-22 () none) ;; 22 ;; (sphere-to-grid-box (_type_ grid-hash-box sphere) none 22) + (grid-hash-method-23 () none) ;; 23 ;; (line-sphere-to-grid-box (_type_ grid-hash-box vector vector float) none 23) + (grid-hash-method-24 () none) ;; 24 ;; (update-grid (_type_) none 24) + ) + ) +|# + +#| +(deftype find-nav-sphere-ids-params (structure) + ((bsphere sphere :inline :offset-assert 0) + (y-threshold float :offset-assert 16) + (len int16 :offset-assert 20) + (max-len int16 :offset-assert 22) + (mask uint8 :offset-assert 24) + (array (pointer uint8) :offset-assert 28) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x20 + :flag-assert #x900000020 + ) +|# + +#| +(deftype sphere-hash (grid-hash) + ((sphere-array (inline-array sphere) :offset-assert 88) ;; guessed by decompiler + (max-object-count int16 :offset-assert 92) + (pad int16 :offset-assert 94) + (mem-sphere-array uint32 :offset-assert 96) + (spr-sphere-array uint32 :offset-assert 100) + ) + :method-count-assert 33 + :size-assert #x68 + :flag-assert #x2100000068 + (:methods + ;; (new (symbol type int int) _type_ 0) + (sphere-hash-method-25 () none) ;; 25 ;; (clear-objects! (_type_) none 25) + (sphere-hash-method-26 () none) ;; 26 ;; (add-a-sphere (_type_ vector) int 26) + (sphere-hash-method-27 () none) ;; 27 ;; (add-a-sphere-with-flag (_type_ vector int) int 27) + (sphere-hash-method-28 () none) ;; 28 ;; (update-from-spheres (_type_) none 28) + (sphere-hash-method-29 () none) ;; 29 ;; (sphere-hash-method-29 (_type_ find-nav-sphere-ids-params int int int) none 29) + (sphere-hash-method-30 () none) ;; 30 ;; (find-nav-sphere-ids (_type_ find-nav-sphere-ids-params) none 30) + (sphere-hash-method-31 () none) ;; 31 ;; (add-sphere-with-mask-and-id (_type_ vector int int) symbol 31) + (sphere-hash-method-32 () none) ;; 32 ;; (sphere-hash-method-32 (_type_ vector vector float int) symbol 32) + ) + ) +|# + +#| +(deftype hash-object-info (structure) + ((object basic :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x4 + :flag-assert #x900000004 + ) +|# + +#| +(deftype spatial-hash (sphere-hash) + ((object-array (inline-array hash-object-info) :offset-assert 104) ;; guessed by decompiler + (mem-object-array (inline-array hash-object-info) :offset-assert 108) ;; guessed by decompiler + (spr-object-array (inline-array hash-object-info) :offset-assert 112) ;; guessed by decompiler + ) + :method-count-assert 40 + :size-assert #x74 + :flag-assert #x2800000074 + (:methods + ;; (new (symbol type int int) _type_ 0) + (spatial-hash-method-33 () none) ;; 33 + (spatial-hash-method-34 () none) ;; 34 ;; (add-an-object (_type_ vector hash-object-info) int 34) + (spatial-hash-method-35 () none) ;; 35 ;; (fill-actor-list-for-box (_type_ bounding-box (pointer collide-shape) int) int 35) + (spatial-hash-method-36 () none) ;; 36 ;; (fill-actor-list-for-sphere (_type_ sphere (pointer collide-shape) int) int 36) + (spatial-hash-method-37 () none) ;; 37 ;; (fill-actor-list-for-line-sphere (_type_ vector vector float (pointer collide-shape) int int) int 37) + (spatial-hash-method-38 () none) ;; 38 ;; (fill-actor-list-for-vec+r (_type_ vector (pointer collide-shape) int) int 38) + (spatial-hash-method-39 () none) ;; 39 ;; (spatial-hash-method-39 (_type_ object hash-object-info) int 39) + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; egg-spider ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype egg-spider-shot (metalhead-grenade-shot) + () + :method-count-assert 41 + :size-assert #x214 + :flag-assert #x2901a00214 + ) +|# + +#| +(deftype egg-spider (nav-enemy) + ((base-height float :offset-assert 620) + (target-pos vector :inline :offset-assert 624) + (offset-target-pos vector :inline :offset-assert 640) + (change-dir-time uint64 :offset-assert 656) + (last-change-dir uint64 :offset-assert 664) + (onscreen-time uint64 :offset-assert 672) + (next-explosion uint64 :offset-assert 680) + (move-angle float :offset-assert 688) + (heading basic :offset-assert 692) + (size float :offset-assert 696) + (angle-spot float :offset-assert 700) + (trackable? basic :offset-assert 704) + (vehicle-attack? basic :offset-assert 708) + (seat-index int32 :offset-assert 712) + (wvehicle uint64 :offset-assert 720) + (vec-up vector :inline :offset-assert 736) + (vec-up-speed vector :inline :offset-assert 752) + (traj trajectory :inline :offset-assert 768) + (init-pos vector :inline :offset-assert 816) + (jump-pos float :offset-assert 832) + ) + :method-count-assert 197 + :size-assert #x344 + :flag-assert #xc502d00344 + (:methods + (egg-spider-method-190 () none) ;; 190 + (egg-spider-method-194 () none) ;; 194 + (egg-spider-method-195 () none) ;; 195 + (egg-spider-method-196 () none) ;; 196 + ) + (:state-methods + idle ;; 33 + jump-on-vehicle ;; 193 + attack ;; 191 + knocked ;; 31 + ambush ;; 47 + on-vehicle ;; 192 + hostile ;; 38 + ) + ) +|# + +#| +(deftype spider-manager (process-drawable) + ((count-alive int32 :offset-assert 196) + (next-spawn-time uint64 :offset-assert 204) + (min-spawn-delay int32 :offset-assert 212) + (max-spawn-delay int32 :offset-assert 216) + (next-spot-time uint64 :offset-assert 220) + (min-spot-delay int32 :offset-assert 228) + (max-spot-delay int32 :offset-assert 232) + (actor-group uint32 :offset-assert 236) + (actor-group-count int32 :offset-assert 240) + (spawn-pos vector :inline :offset-assert 252) + (nav-id uint32 :offset-assert 268) + (can-rid uint64 :offset-assert 276) + (next-explosion uint64 :offset-assert 284) + (num-nav-mesh int32 :offset-assert 292) + (count-max int32 :offset-assert 296) + (max-spawn-size float :offset-assert 300) + (count-death uint32 :offset-assert 304) + ) + :method-count-assert 26 + :size-assert #x138 + :flag-assert #x1a00c00138 + (:methods + (spider-manager-method-21 () none) ;; 21 + (spider-manager-method-22 () none) ;; 22 + (spider-manager-method-23 () none) ;; 23 + (spider-manager-method-24 () none) ;; 24 + (spider-manager-method-25 () none) ;; 25 + ) + (:state-methods + idle ;; 20 + ) + ) +|# + +;; (define-extern *egg-spider-always-trackable?* object) +;; (define-extern check-drop-level-egg-spider-dirt-rubble function) +;; (define-extern spt-birth-func-brightness-egg-spider function) +;; (define-extern spt-birth-func-part-egg-spider-clumps function) +;; (define-extern spt-func-part-egg-spider-clumps function) +;; (define-extern spt-birth-func-part-egg-spider-clumps-mass function) +;; (define-extern spt-func-part-egg-spider-clumps-mass function) +;; (define-extern spt-birth-func-part-egg-spider-clumps-pop function) +;; (define-extern spt-func-part-egg-spider-clumps-pop function) +;; (define-extern spt-birth-func-part-egg-spider-clumps-stays function) +;; (define-extern spt-func-part-egg-spider-clumps-stays function) +;; (define-extern *egg-spider-nav-enemy-info* nav-enemy-info) +;; (define-extern *egg-spider-next-knocked-vehicle* object) +;; (define-extern egg-spider-init-by-other function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; actor-hash-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *actor-list* object) ;; (pointer collide-shape) +;; (define-extern *actor-list-length* object) ;; int + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; texture-anim-funcs ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern noise-texture-anim-layer-func function) ;; (function dma-buffer uint int int texture-anim-layer float int) +;; (define-extern cloud-texture-anim-layer-func function) ;; (function dma-buffer uint int int texture-anim-layer float int) +;; (define-extern cloud-texture-anim-func function) ;; (function dma-buffer texture-anim int) +;; (define-extern fog-texture-anim-init function) ;; (function texture-anim int) +;; (define-extern *fog-texture-work* object) ;; fog-texture-work +;; (define-extern real-fog-texture-anim-func function) ;; (function dma-buffer texture-anim int) +;; (define-extern fog-texture-anim-func function) ;; (function dma-buffer texture-anim int) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; sprite-glow ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype sprite-glow-template (structure) + ((clear-init-giftag gs-gif-tag :inline :offset-assert 0) + (clear-init-adcmds gs-adcmd 5 :offset-assert 16) ;; guessed by decompiler + (clear-draw-giftag gs-gif-tag :inline :offset-assert 96) + (clear-draw-clr-0 gs-packed-rgba :inline :offset-assert 112) + (clear-draw-xyz-0 gs-packed-xyzw 2 :offset-assert 128) ;; guessed by decompiler + (clear-draw-clr-1 gs-packed-rgba :inline :offset-assert 160) + (clear-draw-xyz-1 vector 2 :offset-assert 176) ;; guessed by decompiler + (offscr-setup-giftag gs-gif-tag :inline :offset-assert 208) + (offscr-setup-adcmds gs-adcmd 8 :offset-assert 224) ;; guessed by decompiler + (offscr-first-giftag gs-gif-tag :inline :offset-assert 352) + (offscr-first-clr gs-packed-rgba :inline :offset-assert 368) + (offscr-first-uv-0 gs-packed-uv :inline :offset-assert 384) + (offscr-first-xyzw-0 gs-packed-xyzw :inline :offset-assert 400) + (offscr-first-uv-1 gs-packed-uv :inline :offset-assert 416) + (offscr-first-xyzw-1 gs-packed-xyzw :inline :offset-assert 432) + (repeat-draw-giftag gs-gif-tag :inline :offset-assert 448) + (repeat-draw-adcmds gs-adcmd 29 :offset-assert 464) ;; guessed by decompiler + (flare-alpha-giftag gs-gif-tag :inline :offset-assert 928) + (flare-alpha-clr gs-packed-rgba :inline :offset-assert 944) + (flare-alpha-uv gs-packed-uv :inline :offset-assert 960) + (flare-alpha-xyzw-0 gs-packed-xyzw :inline :offset-assert 976) + (flare-alpha-xyzw-1 gs-packed-xyzw :inline :offset-assert 992) + (flare-alpha-xyzw-2 gs-packed-xyzw :inline :offset-assert 1008) + (flare-alpha-xyzw-3 gs-packed-xyzw :inline :offset-assert 1024) + (flare-init-giftag gs-gif-tag :inline :offset-assert 1040) + (flare-init-adcmds gs-adcmd 8 :offset-assert 1056) ;; guessed by decompiler + (flare-draw-giftag gs-gif-tag :inline :offset-assert 1184) + (flare-draw-clr gs-packed-rgba :inline :offset-assert 1200) + (flare-draw-stq-0 gs-packed-stq :inline :offset-assert 1216) + (flare-draw-xyzw-0 gs-packed-xyzw :inline :offset-assert 1232) + (flare-draw-stq-1 gs-packed-stq :inline :offset-assert 1248) + (flare-draw-xyzw-1 gs-packed-xyzw :inline :offset-assert 1264) + (flare-draw-stq-2 gs-packed-stq :inline :offset-assert 1280) + (flare-draw-xyzw-2 gs-packed-xyzw :inline :offset-assert 1296) + (flare-draw-stq-3 gs-packed-stq :inline :offset-assert 1312) + (flare-draw-xyzw-3 gs-packed-xyzw :inline :offset-assert 1328) + ) + :method-count-assert 9 + :size-assert #x540 + :flag-assert #x900000540 + ) +|# + +#| +(deftype sprite-glow-consts (structure) + ((camera matrix :inline :offset-assert 0) + (perspective matrix :inline :offset-assert 64) + (hvdf-offset vector :inline :offset-assert 128) + (hmge-scale vector :inline :offset-assert 144) + (consts vector :inline :offset-assert 160) + (pfog0 float :offset-assert 160) + (deg-to-rad float :offset-assert 164) + (min-scale float :offset-assert 168) + (inv-area float :offset-assert 172) + (sincos-01 vector :inline :offset-assert 176) + (sincos-23 vector :inline :offset-assert 192) + (sincos-45 vector :inline :offset-assert 208) + (sincos-67 vector :inline :offset-assert 224) + (sincos-89 vector :inline :offset-assert 240) + (basis-x vector :inline :offset-assert 256) + (basis-y vector :inline :offset-assert 272) + (xy-array vector 4 :offset-assert 288) ;; guessed by decompiler + (clamp-min vector :inline :offset-assert 352) + (clamp-max vector :inline :offset-assert 368) + ) + :method-count-assert 9 + :size-assert #x180 + :flag-assert #x900000180 + ) +|# + +#| +(deftype sprite-glow-dma-packet-data (structure) + ((control-packet dma-packet :inline :offset-assert 0) + (vecdata-packet dma-packet :inline :offset-assert 16) + (shader-cnt-packet dma-packet :inline :offset-assert 32) + (shader-ref-packet dma-packet :inline :offset-assert 48) + (mscal-packet dma-packet :inline :offset-assert 64) + ) + :method-count-assert 9 + :size-assert #x50 + :flag-assert #x900000050 + ) +|# + +#| +(deftype sprite-glow-cnt-template (structure) + ((control-packet dma-packet :inline :offset-assert 0) + (num-sprites uint32 :offset-assert 16) + (dummys uint32 3 :offset-assert 20) ;; guessed by decompiler + (vecdata-packet dma-packet :inline :offset-assert 32) + (vecdata sprite-glow-data :inline :offset-assert 48) + (shader-packet dma-packet :inline :offset-assert 112) + (shader adgif-shader :inline :offset-assert 128) + (mscal-packet dma-packet :inline :offset-assert 208) + ) + :method-count-assert 9 + :size-assert #xe0 + :flag-assert #x9000000e0 + ) +|# + +#| +(deftype sprite-glow-ref-template (structure) + ((control-packet dma-packet :inline :offset-assert 0) + (num-sprites uint32 :offset-assert 16) + (dummys uint32 3 :offset-assert 20) ;; guessed by decompiler + (vecdata-packet dma-packet :inline :offset-assert 32) + (vecdata sprite-glow-data :inline :offset-assert 48) + (shader-packet dma-packet :inline :offset-assert 112) + (mscal-packet dma-packet :inline :offset-assert 128) + ) + :method-count-assert 9 + :size-assert #x90 + :flag-assert #x900000090 + ) +|# + +;; (define-extern *sprite-glow-template* object) ;; sprite-glow-template +;; (define-extern sprite-glow-vu1-block object) ;; vu-function +;; (define-extern sprite-glow-init-consts function) ;; (function sprite-glow-consts none) +;; (define-extern sprite-glow-init-engine function) ;; (function dma-buffer none) +;; (define-extern *sprite-glow-dma-packet-data* object) ;; sprite-glow-dma-packet-data +;; (define-extern sprite-glow-add-sprite function) ;; (function dma-buffer sprite-vec-data-2d float float float adgif-shader none) +;; (define-extern sprite-glow-add-simple-sprite function) ;; (function dma-buffer sprite-glow-dma-packet-data sprite-glow-data pointer none) +;; (define-extern sprite-glow-draw function) ;; (function dma-buffer none) +;; (define-extern add-shader-to-dma function) ;; (function dma-buffer adgif-shader) +;; (define-extern *simple-sprite-system* object) ;; simple-sprite-system + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; rigid-body-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype rigid-body-info (structure) + ((mass float :offset-assert 0) + (inv-mass float :offset-assert 4) + (linear-damping float :offset-assert 8) + (angular-damping float :offset-assert 12) + (bounce-factor float :offset-assert 16) + (friction-factor float :offset-assert 20) + (bounce-mult-factor float :offset-assert 24) + (cm-offset-joint vector :inline :offset-assert 32) + (inv-inertial-tensor matrix :inline :offset-assert 48) + (inertial-tensor matrix :inline :offset-assert 112) + (inertial-tensor-box meters 3 :offset-assert 176) ;; guessed by decompiler + ) + :method-count-assert 10 + :size-assert #xbc + :flag-assert #xa000000bc + (:methods + (rigid-body-info-method-9 () none) ;; 9 ;; (rigid-body-info-method-9 (_type_) none 9) + ) + ) +|# + +#| +(deftype rigid-body-object-extra-info (structure) + ((max-time-step float :offset-assert 0) + (gravity meters :offset-assert 4) + (idle-distance meters :offset-assert 8) + (attack-force-scale float :offset-assert 12) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype rigid-body-object-constants (structure) + ((info rigid-body-info :inline :offset-assert 0) + (mass float :offset-assert 0) + (inv-mass float :offset-assert 4) + (cm-joint-x meters :offset-assert 32) + (cm-joint-y meters :offset-assert 36) + (cm-joint-z meters :offset-assert 40) + (linear-damping float :offset-assert 8) + (angular-damping float :offset-assert 12) + (bounce-factor float :offset-assert 16) + (friction-factor float :offset-assert 20) + (inertial-tensor-x meters :offset-assert 176) + (inertial-tensor-y meters :offset-assert 180) + (inertial-tensor-z meters :offset-assert 184) + (extra rigid-body-object-extra-info :inline :offset-assert 188) + (max-time-step float :offset-assert 188) + (gravity meters :offset-assert 192) + (idle-distance meters :offset-assert 196) + (attack-force-scale float :offset-assert 200) + (name symbol :offset-assert 204) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #xd0 + :flag-assert #x9000000d0 + ) +|# + +#| +(deftype rigid-body-impact (structure) + ((point vector :inline :offset-assert 0) + (normal vector :inline :offset-assert 16) + (velocity vector :inline :offset-assert 32) + (impulse float :offset-assert 48) + (pat pat-surface :offset-assert 52) ;; guessed by decompiler + (process basic :offset-assert 56) + (prim-id uint32 :offset-assert 60) + ) + :method-count-assert 9 + :size-assert #x40 + :flag-assert #x900000040 + ) +|# + +#| +(deftype rigid-body-control (basic) + ((flags rigid-body-flag :offset-assert 4) + (info rigid-body-info :offset-assert 8) + (force-callback basic :offset-assert 12) + (process process :offset-assert 16) ;; guessed by decompiler + (blocked-by basic :offset-assert 20) + (time-remaining float :offset-assert 24) + (step-count int16 :offset-assert 28) + (linear-damping float :offset-assert 32) + (angular-damping float :offset-assert 36) + (bounce-factor float :offset-assert 40) + (friction-factor float :offset-assert 44) + (position vector :inline :offset-assert 48) + (rot vector :inline :offset-assert 64) + (rotation quaternion :inline :offset-assert 64) + (lin-momentum vector :inline :offset-assert 80) + (ang-momentum vector :inline :offset-assert 96) + (force vector :inline :offset-assert 112) + (torque vector :inline :offset-assert 128) + (lin-velocity vector :inline :offset-assert 144) + (ang-velocity vector :inline :offset-assert 160) + (matrix matrix :inline :offset-assert 176) + (inv-i-world matrix :inline :offset-assert 240) + ) + :method-count-assert 34 + :size-assert #x130 + :flag-assert #x2200000130 + (:methods + ;; (new (symbol type process) _type_ 0) + (rigid-body-control-method-9 () none) ;; 9 ;; (rigid-body-control-method-9 (_type_ collide-shape-moving float) none 9) + (rigid-body-control-method-10 () none) ;; 10 ;; (rigid-body-control-method-10 (_type_ rigid-body-object float float) object 10) + (rigid-body-control-method-11 () none) ;; 11 ;; (rigid-body-control-method-11 (_type_ collide-shape-moving) none 11) + (rigid-body-control-method-12 () none) ;; 12 ;; (rigid-body-control-method-12 (_type_ float) none 12) + (rigid-body-control-method-13 () none) ;; 13 ;; (rigid-body-control-method-13 (_type_) none 13) + (rigid-body-control-method-14 () none) ;; 14 ;; (rigid-body-control-method-14 (_type_ float) none 14) + (rigid-body-control-method-15 () none) ;; 15 ;; (clear-force-torque! (_type_) none 15) + (rigid-body-control-method-16 () none) ;; 16 ;; (clear-momentum! (_type_) none 16) + (rigid-body-control-method-17 () none) ;; 17 ;; (rigid-body-control-method-17 (_type_ vector vector) none 17) + (rigid-body-control-method-18 () none) ;; 18 ;; (rigid-body-control-method-18 (_type_ vector vector) none 18) + (rigid-body-control-method-19 () none) ;; 19 ;; (rigid-body-control-method-19 (_type_ vector) none 19) + (rigid-body-control-method-20 () none) ;; 20 ;; (rigid-body-control-method-20 (_type_ vector vector float) none 20) + (rigid-body-control-method-21 () none) ;; 21 ;; (rigid-body-control-method-21 (_type_ vector vector) vector 21) + (rigid-body-control-method-22 () none) ;; 22 ;; (rigid-body-control-method-22 (_type_ vector) vector 22) + (rigid-body-control-method-23 () none) ;; 23 ;; (rigid-body-control-method-23 (_type_) none 23) + (rigid-body-control-method-24 () none) ;; 24 ;; (rigid-body-control-method-24 (_type_ rigid-body-info vector quaternion basic) none 24) + (rigid-body-control-method-25 () none) ;; 25 ;; (rigid-body-control-method-25 (_type_ vector quaternion) none 25) + (rigid-body-control-method-26 () none) ;; 26 + (rigid-body-control-method-27 () none) ;; 27 + (rigid-body-control-method-28 () none) ;; 28 + (rigid-body-control-method-29 () none) ;; 29 + (rigid-body-control-method-30 () none) ;; 30 + (rigid-body-control-method-31 () none) ;; 31 + (rigid-body-control-method-32 () none) ;; 32 + (rigid-body-control-method-33 () none) ;; 33 + ) + ) +|# + +#| +(deftype rigid-body-object (process-focusable) + ((info rigid-body-object-constants :offset-assert 208) + (flags rigid-body-object-flag :offset-assert 216) + (max-time-step float :offset-assert 224) + (incoming-attack-id uint32 :offset-assert 228) + (player-touch-time uint64 :offset-assert 232) ;; time-frame + (disturbed-time uint64 :offset-assert 240) ;; time-frame + (player-force-position vector :inline :offset-assert 256) + (player-force vector :inline :offset-assert 272) + ) + :method-count-assert 56 + :size-assert #x120 + :flag-assert #x3800a00120 + ;; field rigid-body-object-flag is likely a value type. + (:methods + (rigid-body-object-method-28 () none) ;; 28 ;; (active () _type_ :state 28) + (rigid-body-object-method-29 () none) ;; 29 ;; (rigid-body-object-method-29 (_type_ float) none 29) + (rigid-body-object-method-30 () none) ;; 30 ;; (rigid-body-object-method-30 (_type_) none 30) + (rigid-body-object-method-31 () none) ;; 31 ;; (alloc-and-init-rigid-body-control (_type_ rigid-body-object-constants) none 31) + (rigid-body-object-method-32 () none) ;; 32 ;; (allocate-and-init-cshape (_type_) none 32) + (rigid-body-object-method-33 () none) ;; 33 ;; (init-skel-and-rigid-body (_type_) none 33) + (rigid-body-object-method-34 () none) ;; 34 ;; (rigid-body-object-method-34 (_type_) none 34) + (rigid-body-object-method-35 () none) ;; 35 ;; (rigid-body-object-method-35 (_type_) none 35) + (rigid-body-object-method-36 () none) ;; 36 ;; (do-engine-sounds (_type_) none 36) + (rigid-body-object-method-37 () none) ;; 37 ;; (rigid-body-object-method-37 (_type_) none 37) + (rigid-body-object-method-38 () none) ;; 38 ;; (rigid-body-object-method-38 (_type_) none 38) + (rigid-body-object-method-39 () none) ;; 39 ;; (rigid-body-object-method-39 (_type_) none 39) + (rigid-body-object-method-40 () none) ;; 40 ;; (rigid-body-object-method-40 (_type_) none 40) + (rigid-body-object-method-41 () none) ;; 41 ;; (rigid-body-object-method-41 (_type_) none 41) + (rigid-body-object-method-42 () none) ;; 42 ;; (rigid-body-object-method-42 (_type_) none 42) + (rigid-body-object-method-43 () none) ;; 43 ;; (rigid-body-object-method-43 (_type_) none 43) + (rigid-body-object-method-44 () none) ;; 44 ;; (apply-damage (_type_ float rigid-body-impact) none 44) + (rigid-body-object-method-45 () none) ;; 45 ;; (rigid-body-object-method-45 (_type_ rigid-body-impact) none 45) + (rigid-body-object-method-46 () none) ;; 46 ;; (rigid-body-object-method-46 (_type_ process-drawable int symbol event-message-block) object 46) + (rigid-body-object-method-47 () none) ;; 47 ;; (rigid-body-object-method-47 (_type_ process-drawable attack-info touching-shapes-entry penetrate) symbol 47) + (rigid-body-object-method-48 () none) ;; 48 ;; (rigid-body-object-method-48 (_type_ process-focusable touching-shapes-entry) symbol 48) + (rigid-body-object-method-49 () none) ;; 49 ;; (rigid-body-object-method-49 (_type_ rigid-body-impact touching-shapes-entry) none 49) + (rigid-body-object-method-50 () none) ;; 50 ;; (rigid-body-object-method-50 (_type_ float) none 50) + (rigid-body-object-method-51 () none) ;; 51 ;; (rigid-body-object-method-51 (_type_) none 51) + (rigid-body-object-method-52 () none) ;; 52 ;; (rigid-body-object-method-52 (_type_) none 52) + (rigid-body-object-method-53 () none) ;; 53 + (rigid-body-object-method-54 () none) ;; 54 + (rigid-body-object-method-55 () none) ;; 55 + ) + ) +|# + +#| +(deftype rigid-body-queue (structure) + ((count int8 :offset-assert 0) + (manager uint64 :offset-assert 8) + (array handle 128 :offset-assert 16) ;; guessed by decompiler + ) + :method-count-assert 17 + :size-assert #x410 + :flag-assert #x1100000410 + (:methods + (rigid-body-queue-method-9 () none) ;; 9 ;; (rigid-body-queue-method-9 (_type_) none 9) + (rigid-body-queue-method-10 () none) ;; 10 ;; (rigid-body-queue-method-10 (_type_) none 10) + (rigid-body-queue-method-11 () none) ;; 11 ;; (rigid-body-queue-method-11 (_type_ rigid-body-object) none 11) + (rigid-body-queue-method-12 () none) ;; 12 ;; (rigid-body-queue-method-12 (_type_ int int) none 12) + (rigid-body-queue-method-13 () none) ;; 13 ;; (rigid-body-queue-method-13 (_type_ int rigid-body-object) none 13) + (rigid-body-queue-method-14 () none) ;; 14 ;; (rigid-body-queue-method-14 (_type_ int) none 14) + (rigid-body-queue-method-15 () none) ;; 15 ;; (rigid-body-queue-method-15 (_type_ rigid-body-object) none 15) + (rigid-body-queue-method-16 () none) ;; 16 ;; (validate (_type_) symbol 16) + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ramdisk ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype ramdisk-rpc-fill (structure) + ((rsvd1 int32 :offset-assert 0) + (ee-id int32 :offset-assert 4) + (rsvd2 int32 2 :offset-assert 8) ;; guessed by decompiler + (filename uint128 :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x20 + :flag-assert #x900000020 + ) +|# + +#| +(deftype ramdisk-rpc-load (structure) + ((rsvd int32 :offset-assert 0) + (ee-id int32 :offset-assert 4) + (offset uint32 :offset-assert 8) + (length uint32 :offset-assert 12) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype ramdisk-rpc-load-to-ee (structure) + ((rsvd int32 :offset-assert 0) + (addr int32 :offset-assert 4) + (offset int32 :offset-assert 8) + (length int32 :offset-assert 12) + (filename uint128 :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x20 + :flag-assert #x900000020 + ) +|# + +;; (define-extern *ramdisk-rpc* object) ;; rpc-buffer-pair +;; (define-extern *current-ramdisk-id* object) ;; int +;; (define-extern ramdisk-load function) ;; (function int uint uint pointer int) +;; (define-extern ramdisk-sync function) ;; (function none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; gsound ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype engine-sound-pers (engine-pers) + () + :method-count-assert 15 + :size-assert #x20 + :flag-assert #xf00000020 + ) +|# + +#| +(deftype sound-iop-info (structure) + ((frame uint32 :offset-assert 0) + (strpos int32 :offset-assert 4) + (str-id uint32 :offset-assert 8) + (str-id-sign int32 :offset-assert 8) + (freemem uint32 :offset-assert 12) + (chinfo uint8 48 :offset-assert 16) ;; guessed by decompiler + (freemem2 uint32 :offset-assert 64) + (nocd uint32 :offset-assert 68) + (dirtycd uint32 :offset-assert 72) + (diskspeed uint32 2 :offset-assert 76) ;; guessed by decompiler + (lastspeed uint32 :offset-assert 84) + (dupseg int32 :offset-assert 88) + (times int32 41 :offset-assert 92) ;; guessed by decompiler + (times-seq uint32 :offset-assert 256) + (iop-ticks uint32 :offset-assert 260) + (stream-position uint32 4 :offset-assert 272) ;; guessed by decompiler + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (stream-status stream-status 4 :offset-assert 288) ;; guessed by decompiler + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (stream-name sound-stream-name 4 :offset-assert 304) ;; guessed by decompiler + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (stream-id sound-id 4 :offset-assert 496) ;; guessed by decompiler + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (music-register uint8 17 :offset-assert 512) ;; guessed by decompiler + (music-excite int8 :offset-assert 528) + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + ) + :method-count-assert 9 + :size-assert #x2d0 + :flag-assert #x9000002d0 + ) +|# + +;; (define-extern *sound-loop-engine* object) ;; engine-sound-pers +;; (define-extern *sound-player-rpc* object) ;; rpc-buffer-pair +;; (define-extern *sound-loader-rpc* object) ;; rpc-buffer-pair +;; (define-extern sound-name= function) ;; (function sound-name sound-name symbol) +;; (define-extern *sound-iop-info* object) ;; sound-iop-info +;; (define-extern str-is-playing? function) ;; (function symbol) +;; (define-extern str-id-is-playing? function) ;; (function int symbol) +;; (define-extern current-str-pos function) ;; (function sound-id int) +;; (define-extern current-str-status function) +;; (define-extern is-ramdisk-loaded? function) ;; (function symbol symbol) +;; (define-extern is-cd-in? function) ;; (function symbol) +;; (define-extern new-sound-id function) ;; (function sound-id) +;; (define-extern check-irx-version function) ;; (function int) +;; (define-extern sound-bank-iop-store function) ;; (function sound-name sound-id) +;; (define-extern sound-bank-iop-free function) ;; (function sound-name sound-id) +;; (define-extern sound-bank-load function) ;; (function sound-name sound-id) +;; (define-extern sound-bank-load-from-iop function) ;; (function sound-name sound-id) +;; (define-extern sound-bank-load-from-ee function) ;; (function sound-name pointer sound-id) +;; (define-extern sound-bank-unload function) ;; (function sound-name int) +;; (define-extern sound-music-load function) ;; (function sound-name int) +;; (define-extern sound-music-unload function) ;; (function int) +;; (define-extern set-language function) ;; (function language-enum int) +;; (define-extern sound-set-stereo-mode function) ;; (function stereo-mode none) +;; (define-extern list-sounds function) ;; (function none) +;; (define-extern sound-command->string function) ;; (function sound-command string) +;; (define-extern sound-buffer-dump function) ;; (function int) +;; (define-extern *sound-player-enable* object) ;; symbol +;; (define-extern swap-sound-buffers function) ;; (function vector vector vector float int) +;; (define-extern get-sound-buffer-entry function) ;; (function pointer) +;; (define-extern free-last-sound-buffer-entry function) ;; (function none) +;; (define-extern sound-basic-cb function) ;; (function int (pointer int32) none) +;; (define-extern sound-trans-convert function) ;; (function vector3w vector int) +;; (define-extern sound-unit-vector-convert function) +;; (define-extern sound-angle-convert function) ;; (function float int) +;; (define-extern string->sound-name function) ;; (function string sound-name) +;; (define-extern sound-name->string function) +;; (define-extern sound-set-volume function) ;; (function sound-group float int) +;; (define-extern sound-set-reverb function) ;; (function int float float uint int) +;; (define-extern sound-set-ear-trans function) ;; (function vector vector vector float int) +;; (define-extern sound-play-by-name function) ;; (function sound-name sound-id int int int sound-group object sound-id :behavior process-drawable) +;; (define-extern sound-play-by-spec function) ;; (function sound-spec sound-id vector sound-id :behavior process-drawable) +;; (define-extern sound-pause function) ;; (function sound-id int) +;; (define-extern sound-stop function) ;; (function sound-id int) +;; (define-extern sound-continue function) ;; (function sound-id int) +;; (define-extern sound-group-pause function) ;; (function sound-group int) +;; (define-extern sound-group-stop function) ;; (function sound-group int) +;; (define-extern sound-group-continue function) ;; (function sound-group int) +;; (define-extern sound-set-flava function) ;; (function uint uint int) +;; (define-extern sound-set-midi-reg function) ;; (function int int int) +;; (define-extern sound-set-fps function) ;; (function int int) +;; (define-extern sound-volume-off function) ;; (function int) +;; (define-extern *ambient-spec* sound-spec) ;; sound-spec +;; (define-extern show-iop-info function) ;; (function dma-buffer int) +;; (define-extern show-iop-memory function) ;; (function dma-buffer int) +;; (define-extern ear-trans function) ;; (function int vector) +;; (define-extern make-sqrt-table function) ;; (function int) +;; (define-extern loader-test-command function) ;; (function sound-command uint none) +;; (define-extern doppler-pitch-shift function) ;; (function vector vector float) +;; (define-extern sound-bank-reload function) ;; (function none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; precura-obs2 ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype mechblock (process-focusable) + ((origin vector :inline :offset-assert 208) + (drop-point vector :inline :offset-assert 256) + (allow-drag? symbol :offset-assert 272) ;; guessed by decompiler + (reset-on-land? symbol :offset-assert 276) ;; guessed by decompiler + (nav-mesh basic :offset-assert 280) + (hit-something? symbol :offset-assert 284) ;; guessed by decompiler + (attack-id uint32 :offset-assert 288) + (next-entity entity :offset-assert 292) ;; guessed by decompiler + ) + :method-count-assert 34 + :size-assert #x128 + :flag-assert #x2200b00128 + (:methods + (mechblock-method-33 () none) ;; 33 + ) + (:state-methods + idle ;; 28 + wait ;; 32 + carry ;; 29 + drag-object ;; 30 + fall ;; 31 + ) + ) +|# + +#| +(deftype precur-bomb (mechblock) + ((bomb-timer uint32 :offset-assert 296) + (blink-timer uint32 :offset-assert 300) + (blink-rate float :offset-assert 304) + (blink basic :offset-assert 308) + (collide-timer uint32 :offset-assert 312) + (spin-quat quaternion :inline :offset-assert 320) + (default-emissive-color vector :inline :offset-assert 336) + (hint? basic :offset-assert 352) + (sound-id uint32 :offset-assert 356) + ) + :method-count-assert 39 + :size-assert #x168 + :flag-assert #x2700f00168 + (:methods + (precur-bomb-method-38 () none) ;; 38 + ) + (:state-methods + ready ;; 34 + idle ;; 28 + spawn-up ;; 36 + pre-spawn-up ;; 37 + carry ;; 29 + fall ;; 31 + explode ;; 35 + ) + ) +|# + +#| +(deftype precur-box (mechblock) + ((taskman uint64 :offset-assert 296) + ) + :method-count-assert 34 + :size-assert #x130 + :flag-assert #x2200b00130 + (:state-methods + idle ;; 28 + ) + ) +|# + +#| +(deftype precur-bomb-spawner (process-drawable) + ((proc-handle uint64 :offset-assert 200) + (hint-mode uint8 :offset-assert 208) + ) + :method-count-assert 22 + :size-assert #xd1 + :flag-assert #x16006000d1 + (:methods + (precur-bomb-spawner-method-21 () none) ;; 21 + ) + (:state-methods + idle ;; 20 + ) + ) +|# + +#| +(deftype precur-laser-beam (process-drawable) + ((laser-dir vector :inline :offset-assert 204) + (attack-id uint32 :offset-assert 220) + (org-laser-quat quaternion :inline :offset-assert 236) + (on-duration float :offset-assert 252) + (off-duration float :offset-assert 256) + (current-angle int8 :offset-assert 260) + (last-attack-time uint32 :offset-assert 264) + (counter uint8 :offset-assert 268) + (sound-id uint32 :offset-assert 272) + (actor-group uint32 :offset-assert 276) + (actor-group-count int32 :offset-assert 280) + ) + :method-count-assert 26 + :size-assert #x120 + :flag-assert #x1a00a00120 + (:methods + (precur-laser-beam-method-24 () none) ;; 24 + (precur-laser-beam-method-25 () none) ;; 25 + ) + (:state-methods + telegraph ;; 21 + dormant ;; 23 + active ;; 20 + hide ;; 22 + ) + ) +|# + +#| +(deftype task-manager-precura (task-manager) + ((part-doom basic :offset-assert 240) + (doom-time uint64 :offset-assert 248) + (extra-time uint64 :offset-assert 256) + (doom-counter uint8 :offset-assert 264) + (faded uint8 :offset-assert 265) + (movie-played? basic :offset-assert 268) + ) + :method-count-assert 32 + :size-assert #x110 + :flag-assert #x2000900110 + ) +|# + +#| +(deftype precur-spot-shadow-effect (process-drawable) + ((focal-length float :offset-assert 200) + (near-clip float :offset-assert 204) + (far-clip float :offset-assert 208) + (color uint32 :offset-assert 212) + (pre-flicker-pos vector :inline :offset-assert 224) + (jmod-outer joint-mod-add-local :inline :offset-assert 240) + (jmod-inner joint-mod-add-local :inline :offset-assert 304) + ) + :method-count-assert 24 + :size-assert #x170 + :flag-assert #x1800f00170 + (:methods + (precur-spot-shadow-effect-method-22 () none) ;; 22 + (precur-spot-shadow-effect-method-23 () none) ;; 23 + ) + (:state-methods + idle ;; 20 + inactive ;; 21 + ) + ) +|# + +#| +(deftype precur-path (process-drawable) + ((pathb basic :offset-assert 200) + (last-attack-time uint32 :offset-assert 204) + (attack-id uint32 :offset-assert 208) + (bolt basic :offset-assert 212) + (shock-part-time uint32 :offset-assert 216) + (shock-shadow-handle uint64 :offset-assert 224) + ) + :method-count-assert 24 + :size-assert #xe8 + :flag-assert #x18007000e8 + (:methods + (precur-path-method-22 () none) ;; 22 + (precur-path-method-23 () none) ;; 23 + ) + (:state-methods + idle ;; 20 + dormant ;; 21 + ) + ) +|# + +#| +(deftype precur-door-b (com-airlock) + ((open-test basic :offset-assert 204) + ) + :method-count-assert 30 + :size-assert #x1b4 + :flag-assert #x1e014001b4 + ;; field open-test uses ~A with a signed load. + (:state-methods + open ;; 20 + ) + ) +|# + +;; (define-extern precur-bomb-bounce-reaction function) +;; (define-extern precur-bomb-handler function) +;; (define-extern precur-bomb-init-by-other function) +;; (define-extern hint-mode->string function) +;; (define-extern *laser-angles-array* array) +;; (define-extern elec-mech function) +;; (define-extern *precura-continue-sphere* object) +;; (define-extern *precura-continue2-sphere* object) +;; (define-extern *pca-sph1* object) +;; (define-extern *pca-sph2* object) +;; (define-extern process-drawable-shock-wave-effect function) +;; (define-extern precur-spot-shadow-effect-init-by-other function) +;; (define-extern precur-spot-shadow-effect-handler function) +;; (define-extern *precur-tour-lightning* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; transformq ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern transformq-copy! function) ;; (function transformq transformq transformq) +;; (define-extern matrix<-transformq! function) ;; (function matrix transformq matrix) +;; (define-extern matrix<-no-trans-transformq! function) ;; (function matrix transformq matrix) +;; (define-extern matrix<-transformq+trans! function) ;; (function matrix transformq vector matrix) +;; (define-extern matrix<-transformq+world-trans! function) ;; (function matrix transformq vector matrix) +;; (define-extern matrix<-parented-transformq! function) ;; (function matrix transformq vector matrix) +;; (define-extern matrix<-transformq+rot-offset! function) ;; (function matrix transformq vector matrix) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; vent ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype vent (process-drawable) + ((show-particles basic :offset-assert 200) + (collect-effect basic :offset-assert 204) + (collect-effect2 basic :offset-assert 208) + (collect-effect-time uint64 :offset-assert 216) + (blocker basic :offset-assert 224) + (block-func basic :offset-assert 228) + (pickup-handle uint64 :offset-assert 232) + ) + :method-count-assert 21 + :size-assert #xf0 + :flag-assert #x15007000f0 + (:methods + (vent-method-20 () none) ;; 20 + ) + (:states + vent-wait-for-touch + vent-blocked + vent-pickup + ) + ) +|# + +#| +(deftype ecovent (vent) + () + :method-count-assert 21 + :size-assert #xf0 + :flag-assert #x15007000f0 + ) +|# + +#| +(deftype light-eco-vent (process-drawable) + ((part2 basic :offset-assert 200) + (pickup-time uint64 :offset-assert 208) + (touch-time uint64 :offset-assert 216) + ) + :method-count-assert 22 + :size-assert #xe0 + :flag-assert #x16006000e0 + (:state-methods + open ;; 20 + close ;; 21 + ) + ) +|# + +#| +(deftype dark-eco-vent (process-drawable) + ((part2 basic :offset-assert 200) + (pickup-time uint64 :offset-assert 208) + (touch-time uint64 :offset-assert 216) + ) + :method-count-assert 22 + :size-assert #xe0 + :flag-assert #x16006000e0 + (:state-methods + open ;; 20 + close ;; 21 + ) + ) +|# + +;; (define-extern vent-standard-event-handler function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; wind-work ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *wind-work* wind-work) ;; wind-work + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; water-flow ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype flow-section (structure) + ((start vector :inline :offset-assert 0) + (trailing plane :inline :offset-assert 16) + (pull-dir vector :inline :offset-assert 32) + (radial-dir vector :inline :offset-assert 48) + (speed float :offset-assert 64) + ) + :method-count-assert 9 + :size-assert #x44 + :flag-assert #x900000044 + ) +|# + +#| +(deftype flow-section-array (inline-array-class) + ((data flow-section :dynamic :offset-assert 16) ;; guessed by decompiler + ) + :method-count-assert 14 + :size-assert #x10 + :flag-assert #xe00000010 + ) +|# + +#| +(deftype flow-control (basic) + ((path path-control :offset-assert 4) ;; guessed by decompiler + (speed float :offset-assert 8) + (belt-radius float :offset-assert 12) + (sections flow-section-array :offset-assert 16) ;; guessed by decompiler + (leading plane :inline :offset-assert 32) + (collide-bounds sphere :inline :offset-assert 48) + ) + :method-count-assert 14 + :size-assert #x40 + :flag-assert #xe00000040 + (:methods + ;; (new (symbol type process-drawable res-lump) _type_ 0) + (flow-control-method-9 () none) ;; 9 ;; (draw-path (_type_) none 9) + (flow-control-method-10 () none) ;; 10 ;; (setup (_type_) none 10) + (flow-control-method-11 () none) ;; 11 ;; (push-process (_type_ process-focusable) none 11) + (flow-control-method-12 () none) ;; 12 ;; (find-and-push-things (_type_) none 12) + (flow-control-method-13 () none) ;; 13 + ) + ) +|# + +#| +(deftype water-flow (process) + ((root basic :offset-assert 128) + (flow basic :offset-assert 132) + ) + :method-count-assert 15 + :size-assert #x88 + :flag-assert #xf00100088 + (:state-methods + idle ;; 14 + ) + ) +|# + +;; (define-extern ray-plane-equation-intersect function) ;; (function vector vector vector vector float) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; wind ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern update-wind function) ;; (function wind-work (array uint8) none) +;; (define-extern wind-get-hashed-index function) +;; (define-extern level-update-wind function) ;; (function wind-work none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; wasall-obs ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype wascity-airlock (com-airlock) + () + :method-count-assert 30 + :size-assert #x1b0 + :flag-assert #x1e013001b0 + ) +|# + +#| +(deftype wascity-airlock-small (com-airlock) + () + :method-count-assert 30 + :size-assert #x1b0 + :flag-assert #x1e013001b0 + ) +|# + +#| +(deftype wascity-elevator-door (com-airlock) + () + :method-count-assert 30 + :size-assert #x1b0 + :flag-assert #x1e013001b0 + (:state-methods + open ;; 20 + ) + ) +|# + +#| +(deftype tentacle (process-drawable) + ((init-pos vector :inline :offset-assert 208) + (focus-pos vector :inline :offset-assert 224) + (nav-mesh basic :offset-assert 240) + (active-timer uint64 :offset-assert 248) + (fade-level float :offset-assert 256) + (sound-id-loop uint32 :offset-assert 260) + (sound-id-attack uint32 :offset-assert 264) + ) + :method-count-assert 26 + :size-assert #x10c + :flag-assert #x1a0090010c + (:state-methods + dormant ;; 20 + un-dive-player ;; 21 + attacking-0 ;; 22 + attacking-1 ;; 23 + kill-player ;; 24 + wait ;; 25 + ) + ) +|# + +;; (define-extern tentacle-follow-post function) +;; (define-extern tentacle-attack-handler function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; bsp ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern mem-usage-bsp-tree function) ;; (function bsp-header bsp-node memory-usage-block int none) +;; (define-extern *test-shrub* object) ;; int +;; (define-extern bsp-camera-asm function) ;; (function bsp-header vector none) +;; (define-extern print-collide-stats function) ;; (function none) +;; (define-extern level-remap-texture function) ;; (function texture-id texture-id) +;; (define-extern build-masks function) ;; (function bsp-header none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; sprite ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype sprite-header (structure) + ((header qword 1 :offset-assert 0) ;; guessed by decompiler + (num-sprites int32 :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype sprite-hvdf-data (structure) + ((data qword 76 :offset-assert 0) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x4c0 + :flag-assert #x9000004c0 + ) +|# + +#| +(deftype sprite-hvdf-control (structure) + ((alloc int8 76 :offset-assert 0) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x4c + :flag-assert #x90000004c + ) +|# + +#| +(deftype sprite-aux-elem (structure) + ((aux-type sprite-aux-type :offset-assert 0) ;; guessed by decompiler + (data vector 3 :offset-assert 4) ;; guessed by decompiler + (vec-data sprite-vec-data-2d :offset-assert 4) + (gif-data adgif-shader :offset-assert 8) + (aux-data sparticle-cpuinfo :offset-assert 12) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype sprite-aux-list (basic) + ((num-entries int32 :offset-assert 4) + (entry int32 :offset-assert 8) + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + ) + :method-count-assert 9 + :size-assert #xc + :flag-assert #x90000000c + ) +|# + +#| +(deftype sprite-frame-data (structure) + ((data UNKNOWN 42 :offset-assert 0) + (cdata vector 16 :offset-assert 0) ;; guessed by decompiler + (fdata UNKNOWN 26 :offset-assert 256) + (xy-array vector 8 :offset-assert 0) ;; guessed by decompiler + (st-array vector 4 :offset-assert 128) ;; guessed by decompiler + (xyz-array vector 4 :offset-assert 192) ;; guessed by decompiler + (hmge-scale vector :inline :offset-assert 256) + (consts vector :inline :offset-assert 272) + (pfog0 float :offset-assert 272) + (deg-to-rad float :offset-assert 276) + (min-scale float :offset-assert 280) + (inv-area float :offset-assert 284) + (adgif-giftag qword :inline :offset-assert 288) ;; gs-gif-tag :inline + (sprite-2d-giftag qword :inline :offset-assert 304) ;; gs-gif-tag :inline + (sprite-2d-giftag-2 qword :inline :offset-assert 320) ;; gs-gif-tag :inline + (sincos-01 vector :inline :offset-assert 336) + (sincos-23 vector :inline :offset-assert 352) + (sincos-45 vector :inline :offset-assert 368) + (sincos-67 vector :inline :offset-assert 384) + (sincos-89 vector :inline :offset-assert 400) + (basis-x vector :inline :offset-assert 416) + (basis-y vector :inline :offset-assert 432) + (sprite-3d-giftag qword :inline :offset-assert 448) ;; gs-gif-tag :inline + (sprite-3d-giftag-2 qword :inline :offset-assert 464) ;; gs-gif-tag :inline + (screen-shader adgif-shader :inline :offset-assert 480) + (inv-hmge-scale vector :inline :offset-assert 576) + (stq-offset vector :inline :offset-assert 592) + (stq-scale vector :inline :offset-assert 608) + (rgba-plain qword :inline :offset-assert 624) + (warp-giftag qword :inline :offset-assert 640) ;; gs-gif-tag :inline + (fog-clamp vector :inline :offset-assert 656) + (fog-min float :offset-assert 656) + (fog-max float :offset-assert 660) + (max-scale float :offset-assert 664) + ) + :method-count-assert 9 + :size-assert #x2a0 + :flag-assert #x9000002a0 + ) +|# + +;; (define-extern sprite-setup-header function) ;; (function sprite-header int none) +;; (define-extern clear-sprite-aux-list function) ;; (function none) +;; (define-extern add-to-sprite-aux-list function) ;; (function sparticle-system sparticle-cpuinfo sprite-vec-data-3d uint none) +;; (define-extern sprite-setup-frame-data function) ;; (function sprite-frame-data uint none) +;; (define-extern sprite-vu1-block object) ;; vu-function +;; (define-extern sprite-set-3d-quaternion! function) ;; (function sprite-vec-data-3d quaternion quaternion) +;; (define-extern sprite-get-3d-quaternion! function) ;; (function quaternion sprite-vec-data-3d quaternion) +;; (define-extern sprite-add-matrix-data function) ;; (function dma-buffer uint none) +;; (define-extern sprite-add-frame-data function) ;; (function dma-buffer uint none) +;; (define-extern sprite-add-2d-chunk function) ;; (function sprite-array-2d int int dma-buffer int none) +;; (define-extern sprite-add-2d-all function) ;; (function sprite-array-2d dma-buffer int none) +;; (define-extern sprite-add-3d-chunk function) ;; (function sprite-array-3d int int dma-buffer none) +;; (define-extern sprite-add-3d-all function) ;; (function sprite-array-3d dma-buffer int none) +;; (define-extern sprite-draw function) ;; (function display none) +;; (define-extern sprite-allocate-user-hvdf function) ;; (function int) +;; (define-extern sprite-release-user-hvdf function) ;; (function int none) +;; (define-extern sprite-get-user-hvdf function) ;; (function int vector) +;; (define-extern *sprite-hvdf-data* object) ;; sprite-hvdf-data +;; (define-extern *sprite-hvdf-control* object) ;; sprite-hvdf-control +;; (define-extern *sprite-aux-list* object) ;; sprite-aux-list +;; (define-extern *sprite-array-2d* object) ;; sprite-array-2d +;; (define-extern *sprite-array-3d* object) ;; sprite-array-3d + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; generic-vu0 ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern generic-vu0-block object) ;; vu-function + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; desbeast-path ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *desbeast-path-table* array) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; sprite-distort ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype sprite-distorter-sine-tables (basic) + ((aspx float :offset-assert 4) + (aspy float :offset-assert 8) + (entry vector 128 :offset-assert 16) ;; guessed by decompiler + (ientry qword 9 :offset-assert 2064) ;; guessed by decompiler + (giftag qword :inline :offset-assert 2208) ;; gs-gif-tag :inline + (color qword :inline :offset-assert 2224) + ) + :method-count-assert 9 + :size-assert #x8c0 + :flag-assert #x9000008c0 + ) +|# + +;; (define-extern *sprite-distorter-sine-tables* object) ;; sprite-distorter-sine-tables +;; (define-extern sprite-distorter-generate-tables function) ;; (function none) +;; (define-extern sprite-distort-vu1-block object) ;; vu-function +;; (define-extern sprite-init-distorter function) ;; (function dma-buffer none) +;; (define-extern sprite-draw-distorters function) ;; (function dma-buffer none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; texture-anim ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *texture-anim-work* object) ;; texture-anim-work +;; (define-extern texture-anim-layer-interp function) ;; (function texture-anim-layer float none) +;; (define-extern texture-anim-layer-add-shader function) ;; (function dma-buffer texture-anim-layer int none) +;; (define-extern texture-anim-layer-add-clut-shader function) ;; (function dma-buffer texture-anim-layer int none) +;; (define-extern texture-anim-layer-draw function) ;; (function dma-buffer int int texture-anim-layer none) +;; (define-extern default-texture-anim-layer-func function) ;; (function dma-buffer uint int int texture-anim-layer float int) +;; (define-extern blend-clut-texture-anim-layer-func function) ;; (function dma-buffer uint int int texture-anim-layer float int) +;; (define-extern add-clut-texture-anim-layer-func function) +;; (define-extern dest-blend-clut-texture-anim-layer-func function) +;; (define-extern move-rg-to-ba-texture-anim-layer-func function) ;; (function dma-buffer uint int int texture-anim-layer float int) +;; (define-extern fill-rgb-texture-anim-layer-func function) ;; (function dma-buffer uint int int texture-anim-layer float int) +;; (define-extern texture-anim-draw-mip-shader function) +;; (define-extern clear-texture-ids function) +;; (define-extern texture-anim-draw-mips function) +;; (define-extern update-texture-anim function) ;; (function bucket-id texture-anim-array none) +;; (define-extern no-alpha-texture-anim-layer-func function) ;; (function dma-buffer uint int int texture-anim-layer float int) +;; (define-extern copy-alpha-texture-anim-layer-func function) ;; (function dma-buffer uint int int texture-anim-layer float int) +;; (define-extern copy-clut-alpha-texture-anim-layer-func function) ;; (function dma-buffer uint int int texture-anim-layer float int) +;; (define-extern set-alpha-texture-anim-layer-func function) ;; (function dma-buffer uint int int texture-anim-layer float int) +;; (define-extern set-clut-alpha-texture-anim-layer-func function) ;; (function dma-buffer uint int int texture-anim-layer float int) +;; (define-extern dest-texture-init function) ;; (function texture-anim none) +;; (define-extern src-texture-init function) ;; (function texture-anim-layer none) +;; (define-extern src-texture-init-mt8 function) ;; (function texture-anim-layer none) +;; (define-extern make-noise-texture function) ;; (function pointer int int int none) +;; (define-extern make-cloud-clut function) ;; (function (pointer uint32) float float none) +;; (define-extern texture-anim-cloud-clut-upload function) ;; (function dma-buffer texture-anim none) +;; (define-extern texture-anim-cloud-clut-init function) ;; (function texture-anim none) +;; (define-extern make-slime-clut function) ;; (function (pointer uint32) none) +;; (define-extern texture-anim-slime-clut-upload function) ;; (function dma-buffer texture-anim none) +;; (define-extern texture-anim-slime-clut-init function) ;; (function texture-anim none) +;; (define-extern make-ramp-clut function) ;; (function (pointer uint32) pointer object none) +;; (define-extern make-alpha-ramp-clut function) ;; (function (pointer uint32) none) +;; (define-extern noise-texture-init function) ;; (function texture-anim-layer none) +;; (define-extern texture-anim-alpha-ramp-clut-upload function) ;; (function dma-buffer texture-anim none) +;; (define-extern texture-anim-alpha-ramp-clut-init function) ;; (function texture-anim none) +;; (define-extern texture-anim-overide-size-init function) ;; (function texture-anim none) +;; (define-extern texture-anim-change-mt8h-init function) ;; (function texture-anim none) +;; (define-extern *texture-anim-pages-table* object) +;; (define-extern *texture-anim-mip-array* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; debug-sphere ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern make-debug-sphere-table function) ;; (function vector-array float float vector-array) +;; (define-extern *debug-sphere-table* object) ;; (array vector-array) +;; (define-extern add-debug-sphere-from-table function) ;; (function bucket-id vector meters rgba int none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; vehicle-states ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern vehicle-explode-post function) ;; (function none :behavior vehicle) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; debug ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype debug-line (structure) + ((flags int32 :offset-assert 0) + (bucket int32 :offset-assert 4) ;; bucket-id + (v1 vector :inline :offset-assert 16) + (v2 vector :inline :offset-assert 32) + (color rgba :offset-assert 48) ;; guessed by decompiler + (mode symbol :offset-assert 52) ;; guessed by decompiler + (color2 rgba :offset-assert 56) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x3c + :flag-assert #x90000003c + ) +|# + +#| +(deftype debug-text-3d (structure) + ((flags int32 :offset-assert 0) + (bucket int32 :offset-assert 4) ;; bucket-id + (pos vector :inline :offset-assert 16) + (color font-color :offset-assert 32) ;; guessed by decompiler + (offset vector2h :inline :offset-assert 36) + (str string :offset-assert 40) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x2c + :flag-assert #x90000002c + ) +|# + +#| +(deftype debug-tracking-thang (basic) + ((length int32 :offset-assert 4) + (allocated-length int32 :offset-assert 8) + ) + :method-count-assert 9 + :size-assert #xc + :flag-assert #x90000000c + ) +|# + +;; debug-vertex-stats is already defined! + +;; (define-extern transform-float-point function) ;; (function vector vector4w vector4w) +;; (define-extern add-debug-point function) ;; (function symbol bucket-id vector symbol) +;; (define-extern debug-line-clip? function) ;; (function vector vector vector vector symbol) +;; (define-extern internal-draw-debug-line function) ;; (function bucket-id vector vector rgba symbol rgba pointer) +;; (define-extern internal-draw-debug-text-3d function) ;; (function bucket-id string vector font-color vector2h pointer) +;; (define-extern add-debug-outline-triangle function) ;; (function symbol bucket-id vector vector vector rgba symbol) +;; (define-extern add-debug-triangle-normal function) ;; (function symbol bucket-id vector vector vector rgba symbol) +;; (define-extern add-debug-flat-triangle function) ;; (function symbol bucket-id vector vector vector rgba symbol) +;; (define-extern *debug-lines* object) ;; (inline-array debug-line) +;; (define-extern *debug-lines-trk* object) ;; debug-tracking-thang +;; (define-extern *debug-text-3ds* object) ;; (inline-array debug-text-3d) +;; (define-extern *debug-text-3d-trk* object) ;; debug-tracking-thang +;; (define-extern get-debug-line function) ;; (function debug-line) +;; (define-extern get-debug-text-3d function) ;; (function debug-text-3d) +;; (define-extern debug-reset-buffers function) ;; (function symbol) +;; (define-extern debug-draw-buffers function) ;; (function symbol) +;; (define-extern add-debug-line function) ;; (function symbol bucket-id vector vector rgba symbol rgba symbol) +;; (define-extern add-debug-line2d function) ;; (function symbol bucket-id vector4w vector4w vector4w symbol) +;; (define-extern add-debug-box function) ;; (function symbol bucket-id vector vector rgba symbol) +;; (define-extern add-debug-box-with-transform function) ;; (function symbol bucket-id bounding-box matrix rgba symbol) +;; (define-extern add-debug-x function) ;; (function symbol bucket-id vector rgba symbol) +;; (define-extern add-debug-cross function) ;; (function symbol bucket-id vector float symbol) +;; (define-extern add-debug-text-3d function) ;; (function symbol bucket-id string vector font-color vector2h symbol) +;; (define-extern add-debug-sphere-with-transform function) ;; (function symbol bucket-id vector meters matrix rgba symbol) +;; (define-extern add-debug-sphere function) ;; (function symbol bucket-id vector meters rgba symbol) +;; (define-extern add-debug-text-sphere function) ;; (function symbol bucket-id vector meters string rgba symbol) +;; (define-extern add-debug-spheres function) ;; (function symbol bucket-id (inline-array vector) int rgba symbol) +;; (define-extern add-debug-line-sphere function) ;; (function symbol bucket-id vector vector float rgba none) +;; (define-extern add-debug-circle function) ;; (function symbol bucket-id vector float rgba matrix symbol) +;; (define-extern add-debug-vector function) ;; (function symbol bucket-id vector vector meters rgba symbol) +;; (define-extern add-debug-matrix function) ;; (function symbol bucket-id matrix meters matrix) +;; (define-extern add-debug-rot-matrix function) ;; (function symbol bucket-id matrix vector matrix) +;; (define-extern add-debug-quaternion function) ;; (function symbol bucket-id vector quaternion none) +;; (define-extern add-debug-cspace function) ;; (function symbol bucket-id cspace cspace) +;; (define-extern add-debug-yrot-vector function) ;; (function symbol bucket-id vector float float rgba symbol) +;; (define-extern add-debug-arc function) ;; (function symbol bucket-id vector float float float rgba matrix symbol) +;; (define-extern add-debug-curve function) ;; (function symbol bucket-id (inline-array vector) int (pointer float) int rgba symbol) +;; (define-extern add-debug-curve2 function) ;; (function symbol bucket-id curve rgba symbol symbol) +;; (define-extern add-debug-points function) ;; (function symbol bucket-id (inline-array vector) int rgba float int symbol) +;; (define-extern debug-percent-bar function) ;; (function symbol bucket-id int int float rgba int int symbol) +;; (define-extern debug-pad-display function) ;; (function cpad-info symbol) +;; (define-extern add-debug-light function) ;; (function symbol bucket-id light vector string symbol) +;; (define-extern add-debug-lights function) ;; (function symbol bucket-id (inline-array light) vector symbol) +;; (define-extern drawable-frag-count function) ;; (function drawable int) +;; (define-extern history-init function) ;; (function pos-history int pos-history) +;; (define-extern history-draw-and-update function) ;; (function pos-history symbol vector symbol) +;; (define-extern dma-timeout-cam function) ;; (function vector) +;; (define-extern display-file-info function) ;; (function int) +;; (define-extern add-debug-cursor function) ;; (function symbol bucket-id int int mouse-buttons int) +;; (define-extern *boundary-polygon* object) ;; (inline-array sky-vertex) +;; (define-extern init-boundary-regs function) ;; (function none) +;; (define-extern add-boundary-shader function) ;; (function texture-id dma-buffer none) +;; (define-extern draw-boundary-polygon function) +;; (define-extern render-boundary-quad function) +;; (define-extern render-boundary-tri function) ;; (function sky-vertex dma-buffer none) +;; (define-extern add-debug-bound-internal function) ;; (function dma-buffer (inline-array vector) int rgba rgba int none) +;; (define-extern add-debug-bound function) ;; (function bucket-id (inline-array vector) int rgba rgba int none) +;; (define-extern cpu-delay function) ;; (function int none) +;; (define-extern qword-read-time function) ;; (function (array uint128) int int) +;; (define-extern bugfix? function) ;; (function symbol) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; des-cactus ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype des-plant (process-focusable) + ((exploder-params basic :offset-assert 208) + (exploder-skel basic :offset-assert 212) + (exploder-anim uint32 :offset-assert 216) + (hit-points float :offset-assert 220) + (incoming-attack-id int32 :offset-assert 224) + (exploder uint64 :offset-assert 232) + (attack-vel vector :inline :offset-assert 240) + (spring-pos vector :inline :offset-assert 256) + (spring-vel vector :inline :offset-assert 272) + (jmods UNKNOWN 4 :offset-assert 288) + ) + :method-count-assert 36 + :size-assert #x1a0 + :flag-assert #x24012001a0 + (:methods + (des-plant-method-30 () none) ;; 30 + (des-plant-method-31 () none) ;; 31 + (des-plant-method-32 () none) ;; 32 + (des-plant-method-33 () none) ;; 33 + (des-plant-method-34 () none) ;; 34 + (des-plant-method-35 () none) ;; 35 + ) + (:state-methods + idle ;; 28 + explode ;; 29 + ) + ) +|# + +#| +(deftype des-cactus-a (des-plant) + () + :method-count-assert 36 + :size-assert #x1a0 + :flag-assert #x24012001a0 + ) +|# + +#| +(deftype des-cactus-b (des-plant) + () + :method-count-assert 36 + :size-assert #x1a0 + :flag-assert #x24012001a0 + ) +|# + +;; (define-extern *des-cactus-a-explode-params* joint-exploder-static-params) +;; (define-extern *des-cactus-b-explode-params* joint-exploder-static-params) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; merc-vu1 ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern merc-vu1-block object) ;; vu-function + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; collide-mesh ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype sopt-work (structure) + ((intersect vector :inline :offset-assert 0) + (sphere-bbox4w bounding-box4w :inline :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x30 + :flag-assert #x900000030 + ) +|# + +#| +(deftype spat-work (structure) + ((intersect vector :inline :offset-assert 0) + (sphere-bbox4w bounding-box4w :inline :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x30 + :flag-assert #x900000030 + ) +|# + +#| +(deftype oot-work (structure) + ((intersect vector :inline :offset-assert 0) + (sphere-bbox4w bounding-box4w :inline :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x30 + :flag-assert #x900000030 + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; blow-tower-obs ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype tower-enemy-init-params (structure) + ((pos vector :inline :offset-assert 0) + (entity-name basic :offset-assert 16) + (target uint64 :offset-assert 24) + (time-offset float :offset-assert 32) + (activate-time uint64 :offset-assert 40) + (bool-userdata? basic :offset-assert 48) + ) + :method-count-assert 9 + :size-assert #x34 + :flag-assert #x900000034 + ) +|# + +#| +(deftype blow-tower-enemy (process-focusable) + ((hit-points float :offset-assert 208) + (last-attack-id uint32 :offset-assert 212) + (last-attack-dir vector :inline :offset-assert 224) + (last-attack-pos vector :inline :offset-assert 240) + ) + :method-count-assert 38 + :size-assert #x100 + :flag-assert #x2600800100 + (:methods + (blow-tower-enemy-method-30 () none) ;; 30 + (blow-tower-enemy-method-31 () none) ;; 31 + (blow-tower-enemy-method-32 () none) ;; 32 + (blow-tower-enemy-method-33 () none) ;; 33 + (blow-tower-enemy-method-34 () none) ;; 34 + (blow-tower-enemy-method-35 () none) ;; 35 + (blow-tower-enemy-method-36 () none) ;; 36 + (blow-tower-enemy-method-37 () none) ;; 37 + ) + (:state-methods + idle ;; 28 + dormant ;; 29 + ) + ) +|# + +#| +(deftype tower-flyer-bobber (structure) + ((start-val float :offset-assert 0) + (current-val float :offset-assert 4) + (total-time uint64 :offset-assert 8) + (current-time uint64 :offset-assert 16) + (current-size-scalar float :offset-assert 24) + (dir float :offset-assert 28) + (num-iterations float :offset-assert 32) + (time-scalar float :offset-assert 36) + (start-time-scalar float :offset-assert 40) + (desired-time-scalar float :offset-assert 44) + (scale-min float :offset-assert 48) + (scale-max float :offset-assert 52) + (time-min float :offset-assert 56) + (time-max float :offset-assert 60) + (base-time float :offset-assert 64) + (current-speed float :offset-assert 68) + (output-scale float :offset-assert 72) + (output-val float :offset-assert 76) + (charge-time uint64 :offset-assert 80) + (wait-time uint64 :offset-assert 88) + ) + :method-count-assert 12 + :size-assert #x60 + :flag-assert #xc00000060 + (:methods + (tower-flyer-bobber-method-9 () none) ;; 9 + (tower-flyer-bobber-method-10 () none) ;; 10 + (tower-flyer-bobber-method-11 () none) ;; 11 + ) + ) +|# + +#| +(deftype tower-flyer (blow-tower-enemy) + ((focus uint64 :offset-assert 256) + (local-offset vector :inline :offset-assert 272) + (basetrans vector :inline :offset-assert 288) + (surround-spot int32 :offset-assert 304) + (desired-z-dist float :offset-assert 308) + (current-z-dist float :offset-assert 312) + (use-z-dist float :offset-assert 316) + (bobbers UNKNOWN 3 :offset-assert 320) + (spot-base-pos vector :inline :offset-assert 608) + (hover-end-time uint64 :offset-assert 624) + (total-charge-time uint64 :offset-assert 624) + (charge-part basic :offset-assert 632) + (charge-t float :offset-assert 636) + (last-wall-clip-time uint64 :offset-assert 640) + (spawn-path-time uint64 :offset-assert 648) + (bob-vec vector :inline :offset-assert 656) + (bob-y-scalar float :offset-assert 672) + (entity-pos vector :offset-assert 676) + (buzz-sound uint32 :offset-assert 680) + (charge-sound uint32 :offset-assert 684) + ) + :method-count-assert 50 + :size-assert #x2b0 + :flag-assert #x32023002b0 + (:methods + (tower-flyer-method-42 () none) ;; 42 + (tower-flyer-method-43 () none) ;; 43 + (tower-flyer-method-44 () none) ;; 44 + (tower-flyer-method-45 () none) ;; 45 + (tower-flyer-method-46 () none) ;; 46 + (tower-flyer-method-47 () none) ;; 47 + (tower-flyer-method-48 () none) ;; 48 + (tower-flyer-method-49 () none) ;; 49 + ) + (:state-methods + idle ;; 28 + hovering ;; 38 + charging ;; 39 + fleeing ;; 41 + firing ;; 40 + ) + ) +|# + +#| +(deftype flyer-projectile-params (structure) + ((total-travel-time uint64 :offset-assert 0) + (target uint64 :offset-assert 8) + (damage float :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x14 + :flag-assert #x900000014 + ) +|# + +#| +(deftype flyer-projectile (process-drawable) + ((original-offset-vec vector :inline :offset-assert 208) + (params flyer-projectile-params :inline :offset-assert 224) + (size-t float :offset-assert 244) + ) + :method-count-assert 22 + :size-assert #xf8 + :flag-assert #x16008000f8 + (:methods + (flyer-projectile-method-21 () none) ;; 21 + ) + (:state-methods + active ;; 20 + ) + ) +|# + +#| +(deftype cast-rider (process-focusable) + ((anim-index int16 :offset-assert 208) + (track-obj uint64 :offset-assert 216) + (neck basic :offset-assert 224) + (track-pos vector :inline :offset-assert 240) + ) + :method-count-assert 29 + :size-assert #x100 + :flag-assert #x1d00800100 + (:state-methods + riding ;; 28 + ) + ) +|# + +#| +(deftype bt-barrel (blow-tower-enemy) + ((nearby-barrels UNKNOWN 16 :offset-assert 256) + (nearby-barrel-pos UNKNOWN 16 :offset-assert 384) + (nearby-barrel-dist UNKNOWN 16 :offset-assert 640) + (num-nearby-barrels int32 :offset-assert 704) + (barrel-send-index int32 :offset-assert 708) + (barrel-live-mask uint32 :offset-assert 712) + (rot-vec vector :inline :offset-assert 720) + (rot-speed float :offset-assert 736) + ) + :method-count-assert 44 + :size-assert #x2e4 + :flag-assert #x2c027002e4 + (:methods + (bt-barrel-method-40 () none) ;; 40 + (bt-barrel-method-41 () none) ;; 41 + (bt-barrel-method-42 () none) ;; 42 + (bt-barrel-method-43 () none) ;; 43 + ) + (:state-methods + idle ;; 28 + explode ;; 38 + fly-up ;; 39 + ) + ) +|# + +#| +(deftype bt-barrel-stack (process-drawable) + () + :method-count-assert 22 + :size-assert #xc8 + :flag-assert #x16005000c8 + (:state-methods + barrel-spawning ;; 21 + idle ;; 20 + ) + ) +|# + +#| +(deftype bt-pickup-barrel (process-drawable) + ((index int32 :offset-assert 200) + ) + :method-count-assert 21 + :size-assert #xcc + :flag-assert #x15005000cc + (:state-methods + riding ;; 20 + ) + ) +|# + +;; (define-extern blow-tower-enemy-handler function) +;; (define-extern tower-flyer-init-by-other function) +;; (define-extern *current-color* object) +;; (define-extern tower-fly-quick-raycast function) +;; (define-extern compute-tower-flyer-lerp-point function) +;; (define-extern flyer-projectile-init-by-other function) +;; (define-extern cast-rider-init-by-other function) +;; (define-extern bt-barrel-init-by-other function) +;; (define-extern barrel-stack-init-by-other function) +;; (define-extern bt-barrel-ground-probe function) +;; (define-extern setup-bt-barrels function) +;; (define-extern attempt-barrel-spawn function) +;; (define-extern bt-pickup-barrel-init-by-other function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; wasteland-scenes ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; robo-hover ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype robo-hover-shot (guard-shot) + () + :method-count-assert 41 + :size-assert #x220 + :flag-assert #x2901a00220 + ) +|# + +#| +(deftype robo-hover (hover-enemy) + ((wrist-quat UNKNOWN 2 :offset-assert 976) + (aim-position vector :inline :offset-assert 1008) + (entity-group basic :offset-assert 1024) + (smoke-part basic :offset-assert 1028) + (engine-part basic :offset-assert 1032) + (next-fire-time uint64 :offset-assert 1040) + (gun-blend float :offset-assert 1048) + (path-u float :offset-assert 1052) + (path-du float :offset-assert 1056) + (path-du-final float :offset-assert 1060) + (path-dest float :offset-assert 1064) + (sound-id uint32 :offset-assert 1068) + (knocked-recover-anim int32 :offset-assert 1072) + (attack-wait-min float :offset-assert 1076) + (attack-wait-max float :offset-assert 1080) + (attack-miss-dist-min float :offset-assert 1084) + (attack-miss-dist-max float :offset-assert 1088) + (attack-miss-dist-curr float :offset-assert 1092) + (shots-fired int32 :offset-assert 1096) + ) + :method-count-assert 184 + :size-assert #x44c + :flag-assert #xb803d0044c + (:methods + (robo-hover-method-182 () none) ;; 182 + (robo-hover-method-183 () none) ;; 183 + ) + (:state-methods + knocked ;; 31 + ambush ;; 47 + ambush-fly ;; 177 + ambush-attack ;; 178 + kick-attack ;; 179 + notice ;; 35 + hostile ;; 38 + attack ;; 180 + knocked-recover ;; 32 + explode ;; 181 + ) + ) +|# + +;; (define-extern *fact-info-robo-hover-defaults* fact-info-enemy-defaults) +;; (define-extern *robo-hover-enemy-info* enemy-info) +;; (define-extern *robo-hover-debris-params* debris-static-params) +;; (define-extern exit-ambush? function) +;; (define-extern robo-hover-arm-jmod function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; merc-blend-shape ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype blerc-block-header (structure) + ((tag generic-merc-tag :inline :offset-assert 0) + (vtx-count uint32 :offset-assert 16) + (overlap uint32 :offset-assert 20) + (lump-dest uint32 :offset-assert 24) + (lump-qwc uint32 :offset-assert 28) + ) + :method-count-assert 9 + :size-assert #x20 + :flag-assert #x900000020 + ) +|# + +#| +(deftype blerc-block (structure) + ((output uint8 848 :offset-assert 0) ;; guessed by decompiler + (header blerc-block-header :inline :offset-assert 848) + ) + :method-count-assert 9 + :size-assert #x370 + :flag-assert #x900000370 + ) +|# + +#| +(deftype blerc-dcache (structure) + ((repl-mult vector 40 :offset-assert 0) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x280 + :flag-assert #x900000280 + ) +|# + +#| +(deftype blerc-globals (structure) + ((first uint32 :offset-assert 0) + (next uint32 :offset-assert 4) + (min-val int16 :offset-assert 8) + (max-val int16 :offset-assert 10) + (fragment-count int32 :offset-assert 12) + (vtx-count int32 :offset-assert 16) + (target-vtx-count int32 :offset-assert 20) + ) + :method-count-assert 9 + :size-assert #x18 + :flag-assert #x900000018 + ) +|# + +#| +(deftype blerc-context (structure) + ((block-a blerc-block :inline :offset-assert 0) + (dummy uint8 7312 :offset-assert 880) ;; guessed by decompiler + (block-b blerc-block :inline :offset-assert 8192) + ) + :method-count-assert 9 + :size-assert #x2370 + :flag-assert #x900002370 + ) +|# + +;; (define-extern *stats-blerc* object) ;; symbol +;; (define-extern *blerc-globals* object) ;; blerc-globals +;; (define-extern blerc-stats-init function) ;; (function none) +;; (define-extern blerc-init function) ;; (function none) +;; (define-extern blerc-a-fragment function) +;; (define-extern dma-from-spr function) +;; (define-extern merc-dma-chain-to-spr function) +;; (define-extern blerc-execute function) ;; (function none) +;; (define-extern merc-blend-shape function) ;; (function process-drawable object) +;; (define-extern setup-blerc-chains-for-one-fragment function) ;; (function object object object object object object object) +;; (define-extern setup-blerc-chains function) ;; (function merc-ctrl (pointer int16) dma-buffer none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; merc ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; merc-fragment-control is already defined! + +;; merc-ctrl is already defined! + +;; (define-extern *texture-login-data* object) ;; texture-login-data +;; (define-extern texture-usage-init function) ;; (function merc-ctrl symbol) +;; (define-extern texture-usage-update function) ;; (function texture symbol) +;; (define-extern merc-stats-display function) ;; (function merc-ctrl none) +;; (define-extern merc-stats function) ;; (function none) +;; (define-extern merc-edge-stats function) ;; (function none) +;; (define-extern merc-vu1-add-vu-function function) ;; (function dma-packet vu-function int dma-gif-packet) +;; (define-extern merc-vu1-initialize-chain function) ;; (function dma-gif-packet int dma-packet) +;; (define-extern merc-vu1-init-buffer function) ;; (function bucket-id int symbol int) +;; (define-extern merc-vu1-init-buffers function) ;; (function none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; emerc ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern emerc-vu1-initialize-chain function) ;; (function dma-gif-packet dma-packet) +;; (define-extern emerc-vu1-init-buffer function) ;; (function bucket-id gs-test int none) +;; (define-extern emerc-vu1-init-buffers function) ;; (function none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; h-glider ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype glider-asc (structure) + ((asc float :offset-assert 0) + (des float :offset-assert 4) + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +;; (define-extern *h-glider-constants* object) +;; (define-extern glider-impact-reduction function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ripple ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype ripple-request (structure) + ((waveform ripple-wave :offset-assert 0) ;; guessed by decompiler + (effect merc-effect :offset-assert 4) + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +#| +(deftype ripple-globals (structure) + ((count int32 :offset-assert 0) + (requests ripple-request 16 :offset-assert 4) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x84 + :flag-assert #x900000084 + ) +|# + +;; (define-extern *ripple-globals* object) ;; ripple-globals +;; (define-extern ripple-make-request function) ;; (function ripple-wave merc-effect none) +;; (define-extern ripple-update-waveform-offs function) ;; (function ripple-wave-set clock none) +;; (define-extern ripple-execute-init function) ;; (function none) +;; (define-extern ripple-create-wave-table function) ;; (function ripple-wave-set int) +;; (define-extern ripple-apply-wave-table function) ;; (function merc-effect symbol) +;; (define-extern ripple-execute function) ;; (function none) +;; (define-extern ripple-matrix-scale function) ;; function +;; (define-extern ripple-add-debug-sphere function) ;; (function process-drawable vector float float none) +;; (define-extern ripple-slow-add-sine-waves function) ;; (function ripple-wave-set float float float) +;; (define-extern ripple-find-height function) ;; (function process-drawable int vector float) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; debug-foreground ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern diag-frag-print function) +;; (define-extern debug-merc-highres-runtime function) +;; (define-extern debug-merc-size-runtime function) +;; (define-extern debug-merc-fade-runtime function) +;; (define-extern foreground-check-longest-edge function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; credits-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *credits-ids* array) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; foreground ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern foreground-vu0-block object) ;; vu-function +;; (define-extern *bucket-map* object) ;; (pointer bucket-id-16) +;; (define-extern vu1-bucket-map function) ;; (function int int merc-mode bucket-id) +;; (define-extern generic-bucket-state-init function) ;; (function generic-bucket-state none) +;; (define-extern mercneric-chain-init function) ;; (function mercneric-chain bucket-id none) +;; (define-extern foreground-init function) ;; (function none) +;; (define-extern texscroll-make-request function) ;; (function merc-effect none) +;; (define-extern texscroll-execute function) ;; (function none) +;; (define-extern vu-lights<-light-group! function) ;; (function vu-lights light-group none) +;; (define-extern foreground-add-mtx-calc function) ;; (function bone-calculation (inline-array pris-mtx) bone-calc-flags bone-calculation) +;; (define-extern foreground-wrapup function) ;; (function none) +;; (define-extern *default-shadow-settings* object) ;; shadow-settings +;; (define-extern foreground-shadow function) ;; (function draw-control (inline-array pris-mtx) pointer pointer) +;; (define-extern foreground-generic-merc-death function) ;; (function draw-control generic-merc-ctrl none) +;; (define-extern foreground-generic-merc-add-fragments function) ;; (function merc-effect pointer mercneric-chain pointer) +;; (define-extern foreground-generic-merc function) ;; (function draw-control pointer int pointer) +;; (define-extern foreground-merc function) ;; (function draw-control (inline-array pris-mtx) pointer int int object pointer) +;; (define-extern foreground-emerc function) ;; (function draw-control (inline-array pris-mtx) pointer object int int pointer) +;; (define-extern foreground-check-longest-edge-asm function) ;; (function draw-control float symbol) +;; (define-extern foreground-ripple function) ;; (function draw-control merc-ctrl pointer int pointer) +;; (define-extern foreground-draw function) ;; (function draw-control dma-buffer float none) +;; (define-extern foreground-draw-hud function) ;; (function draw-control dma-buffer float none) +;; (define-extern *foreground* object) ;; foreground-globals +;; (define-extern *foreground-draw-engine* object) ;; engine + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; target-indax ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *indax-walk-mods* object) ;; surface +;; (define-extern *indax-jump-mods* object) ;; surface +;; (define-extern *indax-double-jump-mods* object) ;; surface +;; (define-extern *indax-bounce-mods* object) ;; surface +;; (define-extern target-indax-handler function) ;; (function process int symbol event-message-block object :behavior target) +;; (define-extern target-indax-dangerous-event-handler function) ;; (function process int symbol event-message-block object :behavior target) +;; (define-extern target-indax-jump-event-handler function) ;; (function process int symbol event-message-block object :behavior target) +;; (define-extern target-indax-reset function) +;; (define-extern target-indax-init function) ;; (function none :behavior target) +;; (define-extern target-indax-exit function) ;; (function none :behavior target) +;; (define-extern target-indax-real-post function) ;; (function none :behavior target) +;; (define-extern target-indax-post function) ;; (function none :behavior target) +;; (define-extern target-indax-hit-setup-anim function) ;; (function attack-info none :behavior target) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ocean ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern init-ocean-far-regs function) ;; (function none) +;; (define-extern draw-large-polygon-ocean function) ;; (function none) +;; (define-extern render-ocean-quad function) ;; (function (inline-array ocean-vertex) dma-buffer symbol) +;; (define-extern test-seq-read function) +;; (define-extern test-worst-read function) +;; (define-extern test-seq-write function) +;; (define-extern test-worst-write function) +;; (define-extern test-to-spr function) +;; (define-extern test-from-spr function) +;; (define-extern test-to-from-spr function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; saberfish-spawner ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; path-index-array is already defined! + +#| +(deftype nav-mesh-jump (structure) + ((mesh basic :offset-assert 0) + (paths basic :offset-assert 4) + (in-water? basic :offset-assert 8) + ) + :method-count-assert 9 + :size-assert #xc + :flag-assert #x90000000c + ) +|# + +#| +(deftype nav-mesh-jump-array (inline-array-class) + ((data UNKNOWN :dynamic :offset-assert 16) + ) + :method-count-assert 14 + :size-assert #x10 + :flag-assert #xe00000010 + ) +|# + +#| +(deftype saberfish-spawner-command (structure) + ((command basic :offset-assert 0) + (message basic :offset-assert 4) + (initial-state basic :offset-assert 8) + (parent uint64 :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x18 + :flag-assert #x900000018 + ) +|# + +#| +(deftype saberfish-spawn-query (structure) + ((alive-count int16 :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x2 + :flag-assert #x900000002 + ) +|# + +#| +(deftype saberfish-spawner (process-drawable) + ((jump-paths basic :offset-assert 200) + (nav-mesh-jumps basic :offset-assert 204) + (live-count int8 :offset-assert 208) + (last-spawned-process uint64 :offset-assert 216) + (mgr-parent uint64 :offset-assert 224) + (spawned-saberfish UNKNOWN 128 :offset-assert 232) + (num-spawned-saberfish int32 :offset-assert 1256) + ) + :method-count-assert 27 + :size-assert #x4ec + :flag-assert #x1b047004ec + (:methods + (saberfish-spawner-method-21 () none) ;; 21 + (saberfish-spawner-method-22 () none) ;; 22 + (saberfish-spawner-method-23 () none) ;; 23 + (saberfish-spawner-method-24 () none) ;; 24 + (saberfish-spawner-method-25 () none) ;; 25 + (saberfish-spawner-method-26 () none) ;; 26 + ) + (:state-methods + saberfish-spawner-base-state ;; 20 + ) + ) +|# + +#| +(deftype saberfish-spawn-manager-base (process) + ((actor-group uint32 :offset-assert 124) + (actor-group-count int32 :offset-assert 128) + (total-num-spawned int32 :offset-assert 132) + (total-alive int32 :offset-assert 136) + (spawn-timer uint64 :offset-assert 140) + (state-time uint64 :offset-assert 148) + (allowed-on-land-count int8 :offset-assert 156) + ) + :method-count-assert 19 + :size-assert #xa1 + :flag-assert #x13003000a1 + (:methods + (saberfish-spawn-manager-base-method-16 () none) ;; 16 + (saberfish-spawn-manager-base-method-17 () none) ;; 17 + (saberfish-spawn-manager-base-method-18 () none) ;; 18 + ) + (:state-methods + active ;; 14 + idle ;; 15 + ) + ) +|# + +#| +(deftype saberfish-mgr-room1 (saberfish-spawn-manager-base) + () + :method-count-assert 19 + :size-assert #xa1 + :flag-assert #x13003000a1 + (:state-methods + active ;; 14 + ) + ) +|# + +#| +(deftype saberfish-mgr-room2 (saberfish-spawn-manager-base) + () + :method-count-assert 22 + :size-assert #xa1 + :flag-assert #x16003000a1 + (:state-methods + stage-0 ;; 19 + stage-1 ;; 20 + stage-2 ;; 21 + ) + ) +|# + +;; (define-extern *temporary-closest-nav-mesh-indices* object) +;; (define-extern *temporary-num-paths-per-nav-mesh-count* object) +;; (define-extern saberfish-mgr-event-handler function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; generic-tie ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; gsf-vertex is already defined! + +;; (define-extern generic-tie-dma-to-spad function) +;; (define-extern generic-tie-dma-to-spad-sync function) +;; (define-extern *generic-tie* object) +;; (define-extern generic-tie-decompress function) +;; (define-extern generic-tie-upload-next function) +;; (define-extern generic-tie-convert-proc function) +;; (define-extern generic-tie-convert function) +;; (define-extern generic-tie-display-stats function) +;; (define-extern generic-tie-debug function) +;; (define-extern generic-tie-execute function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; trajectory ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern traj2d-calc-initial-speed-using-tilt function) ;; (function traj2d-params symbol) +;; (define-extern traj3d-calc-initial-velocity-using-tilt function) ;; (function traj3d-params symbol) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; shadow-vu1 ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype shadow-vu1-constants (structure) + ((hmgescale vector :inline :offset-assert 0) + (invhscale vector :inline :offset-assert 16) + (texoffset vector :inline :offset-assert 32) + (texscale vector :inline :offset-assert 48) + (hvdfoff vector :inline :offset-assert 64) + (fog vector :inline :offset-assert 80) + (clrs vector 2 :offset-assert 96) ;; guessed by decompiler + (adgif gs-gif-tag :inline :offset-assert 128) + (texflush gs-adcmd :inline :offset-assert 144) + (flush gs-adcmd :inline :offset-assert 160) + (trigif gs-gif-tag :inline :offset-assert 176) + (quadgif gs-gif-tag :inline :offset-assert 192) + ) + :method-count-assert 9 + :size-assert #xd0 + :flag-assert #x9000000d0 + ) +|# + +#| +(deftype shadow-vu1-data (structure) + ((adgif gs-gif-tag :inline :offset-assert 0) + (ad gs-adcmd :inline :offset-assert 16) + (flush gs-adcmd :inline :offset-assert 32) + (trigif gs-gif-tag :inline :offset-assert 48) + (quadgif gs-gif-tag :inline :offset-assert 64) + (texoffset vector :inline :offset-assert 80) + (texscale vector :inline :offset-assert 96) + (clrs qword 2 :offset-assert 112) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x90 + :flag-assert #x900000090 + ) +|# + +;; (define-extern *shadow-vu1-data* object) ;; shadow-vu1-data +;; (define-extern shadow-vu1-block object) ;; vu-function +;; (define-extern shadow-vu1-add-constants function) ;; (function dma-buffer int none) +;; (define-extern shadow-vu1-patch-consts function) ;; (function symbol int none) +;; (define-extern shadow-vu1-add-matrix function) ;; (function dma-buffer math-camera none) +;; (define-extern shadow-vu1-init-buffer function) ;; (function dma-buffer int none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; comb-travel ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype task-manager-tube-ride (task-manager) + ((suck-factor float :offset-assert 240) + (hp-scale float :offset-assert 244) + (intro-sequence basic :offset-assert 248) + (outro-sequence basic :offset-assert 252) + (no-shoot-time uint64 :offset-assert 256) + (end-sphere sphere :inline :offset-assert 272) + (end-plane vector :inline :offset-assert 288) + (intro-sphere sphere :inline :offset-assert 304) + (outro-sphere sphere :inline :offset-assert 320) + (intro-target vector :inline :offset-assert 336) + (outro-target vector :inline :offset-assert 352) + (outro-plane2 vector :inline :offset-assert 368) + (outro-target2 vector :inline :offset-assert 384) + ) + :method-count-assert 33 + :size-assert #x190 + :flag-assert #x2101100190 + (:methods + (task-manager-tube-ride-method-32 () none) ;; 32 + ) + (:state-methods + active ;; 15 + complete ;; 16 + ) + ) +|# + +#| +(deftype task-manager-comb-travel (task-manager-tube-ride) + () + :method-count-assert 33 + :size-assert #x190 + :flag-assert #x2101100190 + (:state-methods + complete ;; 16 + ) + ) +|# + +#| +(deftype task-manager-comb-wild-ride (task-manager-tube-ride) + () + :method-count-assert 33 + :size-assert #x190 + :flag-assert #x2101100190 + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; warp ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern fx-copy-buf function) ;; (function dma-buffer none) +;; (define-extern *warp-shader* object) ;; adgif-shader +;; (define-extern create-blanket function) ;; (function symbol) +;; (define-extern *warp* object) ;; symbol +;; (define-extern warp-test function) ;; (function object object int none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; blit-displays ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *blit-displays-work* object) ;; blit-displays-work +;; (define-extern draw-color-bars function) ;; (function none) +;; (define-extern draw-raw-image function) ;; (function bucket-id art-group int int level int none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; precura-part ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern sparticle-track-joint-xz function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; font-data ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *font12-table* object) ;; (inline-array vector) +;; (define-extern *font24-table* object) ;; (inline-array vector) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; font ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern draw-string-asm function) ;; (function string dma-buffer font-context draw-string-result) +;; (define-extern draw-string function) ;; (function string dma-buffer font-context draw-string-result) +;; (define-extern get-string-length function) ;; (function string font-context draw-string-result) +;; (define-extern draw-string-xy function) ;; (function string dma-buffer int int font-color font-flags draw-string-result) +;; (define-extern draw-string-adv function) ;; (function string dma-buffer font-context none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; des-bbush-tasks ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype hud-wasbbv-goal (hud) + () + :method-count-assert 27 + :size-assert #xac4 + :flag-assert #x1b0a500ac4 + ) +|# + +#| +(deftype hud-wasbbv-score (hud) + () + :method-count-assert 27 + :size-assert #xac4 + :flag-assert #x1b0a500ac4 + ) +|# + +#| +(deftype hud-wasbbv-counter (hud) + () + :method-count-assert 27 + :size-assert #xac4 + :flag-assert #x1b0a500ac4 + ) +|# + +#| +(deftype wasbbv-hud-info (structure) + ((goal float :offset-assert 0) + (score float :offset-assert 4) + (current float :offset-assert 8) + (goal-cup uint8 :offset-assert 12) + (goal-text uint32 :offset-assert 16) + (score-text uint32 :offset-assert 20) + (decimal-place-count int8 :offset-assert 24) + ) + :method-count-assert 9 + :size-assert #x19 + :flag-assert #x900000019 + ) +|# + +#| +(deftype task-manager-vehicle-bbush (task-manager) + ((ground-pos vector :inline :offset-assert 240) + (ground-time uint64 :offset-assert 256) + (pre-start-time uint64 :offset-assert 264) + (display-units float :offset-assert 272) + (max-distance float :offset-assert 276) + (distance float :offset-assert 280) + (total-distance float :offset-assert 284) + (max-air-time float :offset-assert 288) + (air-time float :offset-assert 292) + (total-air-time float :offset-assert 296) + (goal float :offset-assert 300) + (score float :offset-assert 304) + (current float :offset-assert 308) + (hud-score uint64 :offset-assert 312) + (hud-goal uint64 :offset-assert 320) + (squad-manager uint64 :offset-assert 336) + (game-score uint8 :offset-assert 344) + (last-cup uint8 :offset-assert 345) + (goal-cup uint8 :offset-assert 346) + (new-high-score basic :offset-assert 348) + (want-current-hud? basic :offset-assert 352) + ) + :method-count-assert 37 + :size-assert #x164 + :flag-assert #x2500f00164 + (:methods + (task-manager-vehicle-bbush-method-33 () none) ;; 33 + (task-manager-vehicle-bbush-method-34 () none) ;; 34 + (task-manager-vehicle-bbush-method-35 () none) ;; 35 + (task-manager-vehicle-bbush-method-36 () none) ;; 36 + ) + (:state-methods + active ;; 15 + report ;; 32 + ) + ) +|# + +#| +(deftype task-manager-bbush-air-time (task-manager-vehicle-bbush) + () + :method-count-assert 37 + :size-assert #x164 + :flag-assert #x2500f00164 + ) +|# + +#| +(deftype task-manager-bbush-total-air-time (task-manager-vehicle-bbush) + () + :method-count-assert 37 + :size-assert #x164 + :flag-assert #x2500f00164 + ) +|# + +#| +(deftype task-manager-bbush-jump-distance (task-manager-vehicle-bbush) + () + :method-count-assert 37 + :size-assert #x188 + :flag-assert #x2501100188 + ) +|# + +#| +(deftype task-manager-bbush-total-jump-distance (task-manager-vehicle-bbush) + () + :method-count-assert 37 + :size-assert #x164 + :flag-assert #x2500f00164 + ) +|# + +#| +(deftype task-manager-bbush-roll-count (task-manager-vehicle-bbush) + ((roll-count float :offset-assert 356) + (y-proj float :offset-assert 360) + ) + :method-count-assert 37 + :size-assert #x16c + :flag-assert #x2500f0016c + ) +|# + +#| +(deftype task-manager-bbush-destroy-interceptors (task-manager-vehicle-bbush) + ((max-reserve-count int32 :offset-assert 356) + ) + :method-count-assert 37 + :size-assert #x168 + :flag-assert #x2500f00168 + ) +|# + +;; (define-extern *wasbbv-hud-info* object) +;; (define-extern *bbv-fail-time-expired* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ctyslumc-part ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; region ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern region-tree-execute function) ;; (function symbol vector vector none) +;; (define-extern region-execute function) ;; (function none) +;; (define-extern region-prim-lookup-by-id function) ;; (function int symbol int drawable-region-prim) +;; (define-extern region-lookup-by-id function) ;; (function int region) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; logic-target ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern build-conversions function) ;; (function vector vector :behavior target) +;; (define-extern vector-turn-to function) ;; (function vector vector :behavior target) +;; (define-extern reverse-conversions function) ;; (function vector none :behavior target) +;; (define-extern draw-history function) ;; (function control-info none) +;; (define-extern target-history-print function) +;; (define-extern target-print-stats function) ;; (function target symbol symbol) +;; (define-extern read-pad function) ;; (function vector vector :behavior target) +;; (define-extern set-pad function) ;; (function vector vector :behavior target) +;; (define-extern warp-vector-into-surface! function) ;; (function vector vector vector matrix vector) +;; (define-extern vector<-pad-in-surface! function) ;; (function vector symbol vector :behavior target) +;; (define-extern vector<-pad-in-matrix! function) ;; (function vector cpad-info matrix none) +;; (define-extern local-pad-angle function) ;; (function float :behavior target) +;; (define-extern turn-around? function) ;; (function symbol :behavior target) +;; (define-extern wall-hide? function) ;; (function symbol :behavior target) +;; (define-extern target-log-trans function) ;; (function none :behavior target) +;; (define-extern target-move-dist function) ;; (function time-frame float :behavior target) +;; (define-extern turn-to-vector function) ;; (function vector float symbol :behavior target) +;; (define-extern target-bend-vel-turn function) ;; (function vector vector :behavior target) +;; (define-extern target-add-slide-factor function) ;; (function vector vector :behavior target) +;; (define-extern add-thrust function) ;; (function symbol :behavior target) +;; (define-extern add-gravity function) ;; (function vector :behavior target) +;; (define-extern target-compute-slopes function) ;; (function vector int :behavior target) +;; (define-extern do-rotations1 function) ;; (function quaternion :behavior target) +;; (define-extern *strafe-mode* object) +;; (define-extern do-rotations2 function) ;; (function int :behavior target) +;; (define-extern leg-ik-callback function) ;; (function joint-mod-ik object object vector none) +;; (define-extern target-update-ik function) ;; (function none :behavior target) +;; (define-extern pre-collide-setup function) ;; (function none :behavior target) +;; (define-extern level-setup function) ;; (function none :behavior target) +;; (define-extern flag-setup function) ;; (function none :behavior target) +;; (define-extern post-flag-setup function) ;; (function none :behavior target) +;; (define-extern bend-gravity function) ;; (function symbol :behavior target) +;; (define-extern target-compute-edge function) ;; (function none :behavior target) +;; (define-extern target-compute-edge-rider function) ;; (function none :behavior target) +;; (define-extern target-compute-pole function) ;; (function none :behavior target) +;; (define-extern target-calc-camera-pos function) ;; (function none :behavior target) +;; (define-extern joint-points function) ;; (function none :behavior target) +;; (define-extern do-target-gspot function) ;; (function none :behavior target) +;; (define-extern target-real-post function) ;; (function none :behavior target) +;; (define-extern target-post function) ;; (function none :behavior target) +;; (define-extern target-swim-post function) ;; (function none :behavior target) +;; (define-extern target-no-stick-post function) ;; (function none :behavior target) +;; (define-extern target-no-move-post function) ;; (function none :behavior target) +;; (define-extern target-no-ja-move-post function) ;; (function none :behavior target) +;; (define-extern reset-target-state function) ;; (function symbol target :behavior target) +;; (define-extern target-init function) ;; (function continue-point none :behavior target) +;; (define-extern tobot-init function) ;; (function symbol none :behavior target) +;; (define-extern stop function) ;; (function symbol int) +;; (define-extern start function) ;; (function symbol continue-point target) +;; (define-extern tobot-start function) ;; (function symbol target) +;; (define-extern tobot-stop function) ;; (function int) +;; (define-extern *target-geo-control* object) +;; (define-extern *target-anim-control* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; background ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *background-work* object) ;; background-work +;; (define-extern background-vu0-block object) ;; vu-function +;; (define-extern background-upload-vu0 function) ;; (function none) +;; (define-extern init-background function) ;; (function none) +;; (define-extern upload-vis-bits function) ;; (function level level bsp-header none) +;; (define-extern set-background-regs! function) ;; (function level none) +;; (define-extern set-tie-quard-planes! function) ;; (function level none) +;; (define-extern set-shrub-quard-planes! function) ;; (function level none) +;; (define-extern set-subdivide-settings! function) +;; (define-extern finish-background function) ;; (function none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; draw-node ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype drawable-inline-array-node (drawable-inline-array) + ((length int16 :offset-assert 2) + (data draw-node :dynamic :offset-assert 32) ;; guessed by decompiler + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + ) + :method-count-assert 17 + :size-assert #x44 + :flag-assert #x1100000044 + ) +|# + +;; (define-extern draw-node-cull function) ;; (function pointer pointer (inline-array draw-node) int none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; voicebox ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype camera-remote (camera-slave) + () + :method-count-assert 14 + :size-assert #xac0 + :flag-assert #xe0a400ac0 + ) +|# + +#| +(deftype remote (process-drawable) + ((base-trans vector :inline :offset-assert 208) + (focus focus :inline :offset-assert 224) + (seeker cam-float-seeker :inline :offset-assert 236) + (start-time uint64 :offset-assert 264) ;; time-frame + (blend float :offset-assert 272) + (twist float :offset-assert 276) + (speak-effect? basic :offset-assert 280) + ) + :method-count-assert 26 + :size-assert #x11c + :flag-assert #x1a00a0011c + (:methods + (remote-method-23 () none) ;; 23 ;; (init (_type_) none 23) + (remote-method-24 () none) ;; 24 ;; (get-track-pt-and-scale (_type_ vector) float 24) + (remote-method-25 () none) ;; 25 ;; (post-common (_type_) none 25) + ) + (:state-methods + enter ;; 20, old: (enter () _type_ :state 20) + idle ;; 21, old: (idle () _type_ :state 21) + exit ;; 22, old: (exit () _type_ :state 22) + ) + ) +|# + +#| +(deftype voicebox (remote) + ((hint uint64 :offset-assert 288) ;; handle + ) + :method-count-assert 26 + :size-assert #x128 + :flag-assert #x1a00b00128 + (:state-methods + exit ;; 22 + ) + ) +|# + +#| +(deftype judge (remote) + ((total-time uint64 :offset-assert 288) ;; time-frame + (beep-time uint64 :offset-assert 296) ;; time-frame + (hud-timer uint64 :offset-assert 304) ;; handle + (score uint8 :offset-assert 312) + (timer? basic :offset-assert 316) + ) + :method-count-assert 28 + :size-assert #x140 + :flag-assert #x1c00c00140 + (:methods + (judge-method-27 () none) ;; 27 ;; (setup-collision (_type_) none 27) + ) + (:state-methods + wait ;; 26, old: (wait () _type_ :state 26) + enter ;; 20 + idle ;; 21 + ) + ) +|# + +;; (define-extern remote-track function) ;; (function none :behavior remote) +;; (define-extern cam-remote state) ;; (state camera-slave) +;; (define-extern voicebox-init-by-other function) ;; (function vector handle none :behavior voicebox) +;; (define-extern voicebox-spawn function) ;; (function process-drawable vector (pointer process)) +;; (define-extern judge-init-by-other function) ;; (function vector uint none :behavior judge) +;; (define-extern judge-spawn function) ;; (function process-tree vector uint (pointer judge)) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; path ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; idle-control ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype idle-control-frame (structure) + ((command uint8 :offset-assert 0) + (anim uint32 :offset-assert 4) + (param0 int32 :offset-assert 8) + (param1 int32 :offset-assert 12) + (param2 basic :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x14 + :flag-assert #x900000014 + ;; field param2 uses ~A with a signed load. + ) +|# + +#| +(deftype idle-control (structure) + ((anim (pointer idle-control-frame) :offset-assert 0) ;; guessed by decompiler + (anim-speed float :offset-assert 4) + (current-index int32 :offset-assert 8) + (counter int32 :offset-assert 12) + (target int32 :offset-assert 16) + ) + :method-count-assert 11 + :size-assert #x14 + :flag-assert #xb00000014 + (:methods + (idle-control-method-9 () none) ;; 9 ;; (idle-control-method-9 (_type_ (pointer idle-control-frame)) none 9) + (idle-control-method-10 () none) ;; 10 ;; (idle-control-method-10 (_type_ process-drawable) none 10) + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; tfrag ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype drawable-inline-array-tfrag (drawable-inline-array) + ((length int16 :offset-assert 2) + (data tfragment :dynamic :offset-assert 32) ;; guessed by decompiler + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + ) + :method-count-assert 17 + :size-assert #x64 + :flag-assert #x1100000064 + ) +|# + +;; (define-extern *tfrag-display-stats* object) ;; symbol +;; (define-extern tfrag-vu1-block object) ;; vu-function +;; (define-extern tfrag-data-setup function) ;; (function tfrag-data int int none) +;; (define-extern add-tfrag-mtx-0 function) ;; (function dma-buffer symbol none) +;; (define-extern add-tfrag-mtx-1 function) ;; (function dma-buffer symbol none) +;; (define-extern add-tfrag-data function) ;; (function dma-buffer int int none) +;; (define-extern t-stat object) ;; tfrag-stats +;; (define-extern tfrag-print-stats function) ;; (function symbol none) +;; (define-extern tfrag-init-buffer function) ;; (function dma-buffer gs-test int symbol none) +;; (define-extern tfrag-end-buffer function) ;; (function dma-buffer int none) +;; (define-extern draw-inline-array-tfrag function) ;; (function pointer drawable-inline-array int dma-buffer none) +;; (define-extern tfrag-scissor-init-buffer function) ;; (function dma-buffer gs-test int symbol none) +;; (define-extern tfrag-scissor-end-buffer function) ;; (function dma-buffer uint none) +;; (define-extern draw-inline-array-tfrag-scissor function) ;; (function pointer drawable-inline-array int dma-buffer none) +;; (define-extern stats-tfrag-asm function) ;; (function tfragment none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; tfrag-methods ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype tfrag-init-data (structure) + ((tfrag-bucket int32 :offset-assert 0) ;; bucket-id + (tfrag-scissor-bucket int32 :offset-assert 4) ;; bucket-id + (tfrag-trans-bucket int32 :offset-assert 8) ;; bucket-id + (tfrag-scissor-trans-bucket int32 :offset-assert 12) ;; bucket-id + (tfrag-water-bucket int32 :offset-assert 16) ;; bucket-id + (tfrag-water-scissor-bucket int32 :offset-assert 20) ;; bucket-id + ) + :method-count-assert 9 + :size-assert #x18 + :flag-assert #x900000018 + ) +|# + +;; (define-extern edge-debug-lines function) ;; (function (array vector-array) none) +;; (define-extern draw-drawable-tree-tfrag function) ;; (function drawable-tree-tfrag none) +;; (define-extern draw-drawable-tree-tfrag-trans function) ;; (function drawable-tree-tfrag none) +;; (define-extern draw-drawable-tree-tfrag-water function) ;; (function drawable-tree-tfrag none) +;; (define-extern tfrag-vu1-init-buf function) ;; (function bucket-id gs-test int uint symbol none) +;; (define-extern tfrag-scissor-vu1-init-buf function) ;; (function bucket-id gs-test int uint symbol none) +;; (define-extern *tfrag-init-table* object) ;; (inline-array tfrag-init-data) +;; (define-extern tfrag-vu1-init-buffers function) ;; (function none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; wlander-female ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype waster-b (civilian) + () + :method-count-assert 234 + :size-assert #x464 + :flag-assert #xea03f00464 + (:state-methods + knocked ;; 31 + get-up-front ;; 220 + get-up-back ;; 221 + wait ;; 190 + ) + ) +|# + +;; (define-extern *waster-b-global-info* civilian-global-info) +;; (define-extern *waster-b-nav-enemy-info* nav-enemy-info) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; tfrag-work ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *tfrag-work* object) ;; tfrag-work + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; pov-camera ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern pov-camera-play-and-reposition function) ;; (function art-joint-anim vector float none :behavior pov-camera) +;; (define-extern pov-camera-init-by-other function) ;; (function vector skeleton-group string pov-camera-flag process-drawable pair none :behavior pov-camera) +;; (define-extern othercam-calc function) ;; (function float float) +;; (define-extern othercam-init-by-other function) ;; (function pov-camera int symbol symbol none :behavior othercam) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; etie-near-vu1 ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype etn-consts (structure) + ((gifbufs qword :inline :offset-assert 0) + (adgif qword :inline :offset-assert 16) + (alpha qword :inline :offset-assert 32) + (strgif generic-gif-tag :inline :offset-assert 48) + (envgif generic-gif-tag :inline :offset-assert 64) + (envmap adgif-shader :inline :offset-assert 80) + (pers0 vector :inline :offset-assert 160) + (pers1 vector :inline :offset-assert 176) + (hvdf vector :inline :offset-assert 192) + (invh vector :inline :offset-assert 208) + (guard vector :inline :offset-assert 224) + ) + :method-count-assert 9 + :size-assert #xf0 + :flag-assert #x9000000f0 + ) +|# + +#| +(deftype etn-matrix (structure) + ((rmtx matrix :inline :offset-assert 0) + (nmtx matrix3 :inline :offset-assert 64) + (morph float :offset-assert 76) + (fog float :offset-assert 92) + (fade uint32 :offset-assert 108) + (tint qword :inline :offset-assert 112) + ) + :method-count-assert 9 + :size-assert #x80 + :flag-assert #x900000080 + ) +|# + +#| +(deftype etn-vtx (structure) + ((pos vector :inline :offset-assert 0) + (clr vector :inline :offset-assert 16) + (tex vector :inline :offset-assert 32) + (tx2 vector :inline :offset-assert 48) + ) + :method-count-assert 9 + :size-assert #x40 + :flag-assert #x900000040 + ) +|# + +#| +(deftype etn-plane (structure) + ((point uint32 :offset-assert 0) + (prev uint32 :offset-assert 4) + (outfunc uint32 :offset-assert 8) + (flags uint32 :offset-assert 12) + (out etn-vtx :inline :offset-assert 16) + (in etn-vtx :inline :offset-assert 80) + ) + :method-count-assert 9 + :size-assert #x90 + :flag-assert #x900000090 + ) +|# + +;; (define-extern etn-vu1-block object) +;; (define-extern etn-magic function) +;; (define-extern etn-init-consts function) +;; (define-extern etn-init-engine function) ;; (function dma-buffer none) +;; (define-extern etn-end-buffer function) ;; (function dma-buffer none) +;; (define-extern etn-float-reg-calc function) +;; (define-extern etn-float-reg function) +;; (define-extern etn-floats function) +;; (define-extern etn-int-reg-draw function) +;; (define-extern etn-int-reg function) +;; (define-extern etn-ints function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; tie-near ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype tie-near-consts (structure) + ((extra qword :inline :offset-assert 0) + (gifbufs qword :inline :offset-assert 16) + (clrbufs qword :inline :offset-assert 32) + (adgif qword :inline :offset-assert 48) + (strgif qword :inline :offset-assert 64) + (fangif qword :inline :offset-assert 80) + (hvdfoffs vector :inline :offset-assert 96) + (invhscale vector :inline :offset-assert 112) + (guard vector :inline :offset-assert 128) + (atest UNKNOWN 2 :offset-assert 144) + (atest-tra gs-adcmd :inline :offset-assert 144) + (atest-def gs-adcmd :inline :offset-assert 160) + ) + :method-count-assert 9 + :size-assert #xb0 + :flag-assert #x9000000b0 + ) +|# + +;; (define-extern tie-near-vu1-block object) +;; (define-extern tie-near-init-consts function) +;; (define-extern tie-near-init-engine function) ;; (function dma-buffer gs-test int none) +;; (define-extern tie-near-end-buffer function) ;; (function dma-buffer none) +;; (define-extern tie-scissor-make-perspective-matrix function) ;; (function matrix matrix none) +;; (define-extern tie-near-int-reg function) +;; (define-extern tie-near-float-reg function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; flut-wild ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype flut-wild (nav-enemy) + ((minimap connection-minimap :offset-assert 620) + (focus-ignore-timer uint64 :offset-assert 624) + (color-index int32 :offset-assert 632) + (first-notice? basic :offset-assert 636) + ) + :method-count-assert 192 + :size-assert #x280 + :flag-assert #xc002000280 + (:state-methods + idle ;; 33 + notice ;; 35 + flee-path ;; 190 + knocked ;; 31 + disappear ;; 191 + ) + ) +|# + +#| +(deftype task-manager-catch-flut (task-manager) + ((flut-entity basic :offset-assert 240) + ) + :method-count-assert 32 + :size-assert #xf4 + :flag-assert #x20008000f4 + ) +|# + +#| +(deftype task-manager-restrict-to-flut (task-manager) + () + :method-count-assert 32 + :size-assert #xf0 + :flag-assert #x20007000f0 + ) +|# + +;; (define-extern *flut-wild-enemy-info* nav-enemy-info) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; volcano-scenes ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *vol-invis-joint-list* array) +;; (define-extern spt-birth-func-brightness-part-volcano-rock-break-dust function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; mantis ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype mantis-jump-info (structure) + ((distance float :offset-assert 0) + (search-step uint32 :offset-assert 4) + (destination vector :inline :offset-assert 16) + (direction uint16 :offset-assert 32) + (start-anim uint32 :offset-assert 36) + (air-anim uint32 :offset-assert 40) + (land-anim uint32 :offset-assert 44) + ) + :method-count-assert 9 + :size-assert #x30 + :flag-assert #x900000030 + ) +|# + +#| +(deftype mantis (nav-enemy) + ((base-height float :offset-assert 616) + (flags mantis-flag :offset-assert 620) + (attack-timer uint64 :offset-assert 628) ;; time-frame + (track-timer uint64 :offset-assert 636) ;; time-frame + (gspot-timer uint64 :offset-assert 644) ;; time-frame + (gspot-normal vector :inline :offset-assert 652) + (my-up-vector vector :inline :offset-assert 668) + (jump mantis-jump-info :inline :offset-assert 684) + ) + :method-count-assert 207 + :size-assert #x2e0 + :flag-assert #xcf026002e0 + ;; field mantis-flag is likely a value type. + (:methods + (mantis-method-195 () none) ;; 195 + (mantis-method-199 () none) ;; 199 + (mantis-method-200 () none) ;; 200 + (mantis-method-201 () none) ;; 201 + (mantis-method-202 () none) ;; 202 + (mantis-method-203 () none) ;; 203 + (mantis-method-204 () none) ;; 204 + (mantis-method-205 () none) ;; 205 + (mantis-method-206 () none) ;; 206 + ) + (:state-methods + ambush-jumping ;; 194, old: (mantis-method-194 (_type_) symbol 194) + active ;; 34 + attack0 ;; 191, old: (mantis-method-191 (_type_ vector vector) int 191) + ambush ;; 47 + ambush-crawling ;; 193, old: (mantis-method-193 (_type_ vector) none 193) + crawl ;; 190, old: (mantis-method-190 (_type_ vector vector) none 190) + hostile ;; 38 + attack1 ;; 192, old: (mantis-method-192 (_type_ vector vector) none 192) + roll-right ;; 196 + roll-left ;; 197 + hop-away ;; 198 + ) + ) +|# + +;; (define-extern *fact-info-mantis-defaults* fact-info-enemy-defaults) +;; (define-extern *mantis-nav-enemy-info* nav-enemy-info) ;; nav-enemy-info +;; (define-extern mantis-roll-post function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; hvehicle-physics ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; tie-work ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *instance-tie-work* object) ;; instance-tie-work +;; (define-extern *prototype-tie-work* object) ;; prototype-tie-work + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; tie-methods ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype tie-debug (structure) + ((max-instance uint32 :offset-assert 0) + (min-instance uint32 :offset-assert 4) + (test-fragment uint32 :offset-assert 8) + (frag-count uint32 :offset-assert 12) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype tie-init-data (structure) + ((tie-bucket int32 :offset-assert 0) ;; bucket-id + (tie-scissor-bucket int32 :offset-assert 4) ;; bucket-id + (tie-envmap-bucket int32 :offset-assert 8) ;; bucket-id + (tie-envmap-scissor-bucket int32 :offset-assert 12) ;; bucket-id + (tie-vanish-bucket int32 :offset-assert 16) ;; bucket-id + (tie-trans-bucket int32 :offset-assert 20) ;; bucket-id + (tie-scissor-trans-bucket int32 :offset-assert 24) ;; bucket-id + (tie-envmap-trans-bucket int32 :offset-assert 28) ;; bucket-id + (tie-envmap-scissor-trans-bucket int32 :offset-assert 32) ;; bucket-id + (tie-water-bucket int32 :offset-assert 36) ;; bucket-id + (tie-scissor-water-bucket int32 :offset-assert 40) ;; bucket-id + (tie-envmap-water-bucket int32 :offset-assert 44) ;; bucket-id + (tie-envmap-scissor-water-bucket int32 :offset-assert 48) ;; bucket-id + ) + :method-count-assert 9 + :size-assert #x34 + :flag-assert #x900000034 + ) +|# + +;; (define-extern *tie* object) ;; tie-debug +;; (define-extern tie-debug-between function) ;; (function uint uint uint) +;; (define-extern tie-debug-one function) ;; (function uint uint uint) +;; (define-extern tie-debug-frag-between function) ;; (function uint uint uint) +;; (define-extern tie-debug-frag-one function) ;; (function uint uint uint) +;; (define-extern walk-tie-generic-prototypes function) ;; (function none) +;; (define-extern *pke-hack* object) ;; vector +;; (define-extern draw-inline-array-instance-tie function) ;; (function pointer (inline-array instance-tie) int dma-buffer none) +;; (define-extern draw-inline-array-prototype-tie-asm function) ;; (function dma-buffer int prototype-array-tie none) +;; (define-extern instance-tie-patch-buckets function) ;; (function dma-buffer level object) +;; (define-extern draw-drawable-tree-instance-tie function) ;; (function drawable-tree-instance-tie level none) +;; (define-extern tie-init-scissor-buf function) ;; (function bucket-id gs-alpha gs-test gs-test none) +;; (define-extern tie-init-buf function) ;; (function bucket-id gs-alpha gs-test gs-test none) +;; (define-extern tie-init-envmap-buf function) ;; (function bucket-id gs-alpha gs-test none) +;; (define-extern tie-init-envmap-scissor-buf function) ;; (function bucket-id gs-alpha int int none) +;; (define-extern *tie-init-table* object) ;; (inline-array tie-init-data) +;; (define-extern tie-vu1-init-buffers function) ;; (function none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; menu ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype debug-menu-context (basic) + ((is-active symbol :offset-assert 4) ;; guessed by decompiler + (sel-length int32 :offset-assert 8) + (sel-menu debug-menu 8 :offset-assert 12) ;; guessed by decompiler + (root-menu debug-menu :offset-assert 44) ;; guessed by decompiler + (joypad-func (function basic int none) :offset-assert 48) ;; guessed by decompiler + (joypad-item basic :offset-assert 52) + (font font-context :offset-assert 56) ;; guessed by decompiler + (is-hidden symbol :offset-assert 60) ;; guessed by decompiler + (joypad-number int32 :offset-assert 64) + ) + :method-count-assert 9 + :size-assert #x44 + :flag-assert #x900000044 + ) +|# + +#| +(deftype debug-menu-node (basic) + ((name string :offset-assert 4) ;; guessed by decompiler + (parent debug-menu :offset-assert 8) ;; guessed by decompiler + (refresh-delay int32 :offset-assert 12) + (refresh-ctr int32 :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x14 + :flag-assert #x900000014 + ) +|# + +#| +(deftype debug-menu (debug-menu-node) + ((context debug-menu-context :offset-assert 20) ;; guessed by decompiler + (selected-item debug-menu-item :offset-assert 24) ;; guessed by decompiler + (pix-width int32 :offset-assert 28) + (pix-height int32 :offset-assert 32) + (items pair :offset-assert 36) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x28 + :flag-assert #x900000028 + ) +|# + +#| +(deftype debug-menu-item (debug-menu-node) + ((id int32 :offset-assert 20) + ) + :method-count-assert 9 + :size-assert #x18 + :flag-assert #x900000018 + ) +|# + +#| +(deftype debug-menu-item-submenu (debug-menu-item) + ((submenu debug-menu :offset-assert 24) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x1c + :flag-assert #x90000001c + ) +|# + +#| +(deftype debug-menu-item-function (debug-menu-item) + ((activate-func (function object object) :offset-assert 24) ;; guessed by decompiler + (hilite-timer int8 :offset-assert 28) + ) + :method-count-assert 9 + :size-assert #x1d + :flag-assert #x90000001d + ) +|# + +#| +(deftype debug-menu-item-flag (debug-menu-item) + ((activate-func (function object debug-menu-msg object) :offset-assert 24) ;; guessed by decompiler + (is-on object :offset-assert 28) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x20 + :flag-assert #x900000020 + ) +|# + +#| +(deftype debug-menu-item-var (debug-menu-item) + ((display-str string :offset-assert 24) ;; guessed by decompiler + (grabbed-joypad-p symbol :offset-assert 28) ;; guessed by decompiler + (float-p symbol :offset-assert 32) ;; guessed by decompiler + (range-p symbol :offset-assert 36) ;; guessed by decompiler + (show-len int32 :offset-assert 40) + (inc-delay int32 :offset-assert 44) + (inc-delay-ctr int32 :offset-assert 48) + (step-delay-ctr int32 :offset-assert 52) + (inc-dir int32 :offset-assert 56) + (fval float :offset-assert 60) + (fundo-val float :offset-assert 64) + (frange-min float :offset-assert 68) + (frange-max float :offset-assert 72) + (fstart-inc float :offset-assert 76) + (fstep float :offset-assert 80) + (fprecision int32 :offset-assert 84) + (factivate-func (function int debug-menu-msg float float float) :offset-assert 88) ;; guessed by decompiler + (ival int32 :offset-assert 60) + (iundo-val int32 :offset-assert 64) + (irange-min int32 :offset-assert 68) + (irange-max int32 :offset-assert 72) + (istart-inc int32 :offset-assert 76) + (istep int32 :offset-assert 80) + (ihex-p symbol :offset-assert 92) ;; guessed by decompiler + (iactivate-func (function int debug-menu-msg int int int) :offset-assert 88) ;; guessed by decompiler + (ifloat-p symbol :offset-assert 96) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x64 + :flag-assert #x900000064 + ) +|# + +;; (define-extern debug-menu-item-var-update-display-str function) ;; (function debug-menu-item-var debug-menu-item-var) +;; (define-extern debug-menu-item-var-make-int function) ;; (function debug-menu-item-var (function int debug-menu-msg int int int) int symbol int int symbol debug-menu-item-var) +;; (define-extern debug-menu-item-var-make-float function) ;; (function debug-menu-item-var (function int debug-menu-msg float float float) float symbol float float int debug-menu-item-var) +;; (define-extern debug-menu-context-grab-joypad function) ;; (function debug-menu-context basic (function basic int none) symbol) +;; (define-extern debug-menu-context-release-joypad function) ;; (function debug-menu-context symbol) +;; (define-extern debug-menu-item-get-max-width function) ;; (function debug-menu-item debug-menu int) +;; (define-extern debug-menu-context-default-selection function) ;; (function debug-menu-context symbol debug-menu-context) +;; (define-extern debug-menu-rebuild function) ;; (function debug-menu debug-menu) +;; (define-extern debug-menu-context-set-root-menu function) ;; (function debug-menu-context debug-menu debug-menu-context) +;; (define-extern debug-menu-append-item function) ;; (function debug-menu debug-menu-node debug-menu-node) +;; (define-extern debug-menu-remove-all-items function) ;; (function debug-menu debug-menu) +;; (define-extern debug-menu-func-decode function) ;; (function object function) +;; (define-extern debug-menu-make-from-template function) ;; (function debug-menu-context pair debug-menu-node) +;; (define-extern debug-menu-find-from-template function) ;; (function debug-menu-context pair debug-menu) +;; (define-extern debug-menu-item-submenu-render function) ;; (function debug-menu-item-submenu int int int symbol debug-menu-item-submenu) +;; (define-extern debug-menu-item-function-render function) ;; (function debug-menu-item-function int int int symbol debug-menu-item-function) +;; (define-extern debug-menu-item-flag-render function) ;; (function debug-menu-item-flag int int int symbol debug-menu-item-flag) +;; (define-extern debug-menu-item-var-render function) ;; (function debug-menu-item-var int int int symbol debug-menu-item-var) +;; (define-extern debug-menu-item-render function) ;; (function debug-menu-item int int int symbol debug-menu-item) +;; (define-extern debug-menu-render function) ;; (function debug-menu int int debug-menu-node int debug-menu) +;; (define-extern debug-menu-context-render function) ;; (function debug-menu-context debug-menu-context) +;; (define-extern debug-menu-context-select-next-or-prev-item function) ;; (function debug-menu-context int debug-menu-context) +;; (define-extern debug-menu-context-select-new-item function) ;; (function debug-menu-context int debug-menu-context) +;; (define-extern debug-menu-context-open-submenu function) ;; (function debug-menu-context debug-menu basic) +;; (define-extern debug-menu-context-close-submenu function) ;; (function debug-menu-context debug-menu-context) +;; (define-extern debug-menu-item-submenu-msg function) ;; (function debug-menu-item-submenu debug-menu-msg debug-menu-item-submenu) +;; (define-extern debug-menu-item-function-msg function) ;; (function debug-menu-item-function debug-menu-msg debug-menu-item-function) +;; (define-extern debug-menu-item-flag-msg function) ;; (function debug-menu-item-flag debug-menu-msg debug-menu-item-flag) +;; (define-extern debug-menu-item-var-joypad-handler function) ;; (function debug-menu-item-var int debug-menu-item-var) +;; (define-extern debug-menu-item-var-msg function) ;; (function debug-menu-item-var debug-menu-msg debug-menu-item-var) +;; (define-extern debug-menu-item-send-msg function) ;; (function debug-menu-item debug-menu-msg debug-menu-item) +;; (define-extern debug-menu-send-msg function) ;; (function debug-menu debug-menu-msg symbol debug-menu) +;; (define-extern debug-menu-context-send-msg function) ;; (function debug-menu-context debug-menu-msg debug-menu-dest debug-menu-context) +;; (define-extern debug-menu-context-activate-selection function) ;; (function debug-menu-context debug-menu-context) +;; (define-extern debug-menus-default-joypad-func function) ;; (function debug-menu-context debug-menu-context) +;; (define-extern debug-menus-active function) ;; (function debug-menu-context debug-menu-context) +;; (define-extern debug-menus-handler function) ;; (function debug-menu-context debug-menu-context) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; assault-enemies ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype assault-object-spawn-params (traffic-object-spawn-params) + ((nav-branch nav-branch :offset-assert 24) + (lev basic :offset-assert 116) + (suck-level int32 :offset-assert 120) + (flee-time uint64 :offset-assert 128) + ) + :method-count-assert 9 + :size-assert #x88 + :flag-assert #x900000088 + ) +|# + +#| +(deftype assault-metalhead-grunt (metalhead-grunt) + () + :method-count-assert 232 + :size-assert #x480 + :flag-assert #xe804000480 + (:state-methods + exit-transport ;; 231 + ) + ) +|# + +#| +(deftype assault-metalhead-flitter (metalhead-flitter) + () + :method-count-assert 230 + :size-assert #x494 + :flag-assert #xe604200494 + (:state-methods + exit-transport ;; 229 + in-ditch ;; 192 + die-fast ;; 42 + ) + ) +|# + +#| +(deftype assault-metalhead-predator (metalhead-predator) + () + :method-count-assert 228 + :size-assert #x550 + :flag-assert #xe404d00550 + (:state-methods + in-ditch ;; 192 + die-fast ;; 42 + ) + ) +|# + +#| +(deftype assault-roboguard (roboguard-city) + ((shoot-wait-time uint64 :offset-assert 1600) + ) + :method-count-assert 242 + :size-assert #x648 + :flag-assert #xf205d00648 + (:state-methods + hostile-stand ;; 222 + shoot-attack ;; 224 + in-ditch ;; 192 + roll-initial ;; 241 + die-fast ;; 42 + ) + ) +|# + +#| +(deftype assault-spydroid (spydroid) + () + :method-count-assert 238 + :size-assert #x50c + :flag-assert #xee0490050c + (:state-methods + in-ditch ;; 192 + die-fast ;; 42 + ) + ) +|# + +#| +(deftype assault-flying-turret (flying-turret) + () + :method-count-assert 231 + :size-assert #x568 + :flag-assert #xe704f00568 + (:state-methods + in-ditch ;; 192 + die-fast ;; 42 + ) + ) +|# + +#| +(deftype assault-crimson-guard (crimson-guard) + ((center-pos vector :inline :offset-assert 1616) + ) + :method-count-assert 292 + :size-assert #x660 + :flag-assert #x12405e00660 + (:state-methods + in-ditch ;; 192 + die-fast ;; 42 + active ;; 34 + wait-for-enemies ;; 291 + ) + ) +|# + +#| +(deftype assault-citizen-norm (citizen-norm) + ((center-pos vector :inline :offset-assert 1136) + (min-flee-time uint64 :offset-assert 1152) + ) + :method-count-assert 237 + :size-assert #x488 + :flag-assert #xed04100488 + (:state-methods + knocked-recover ;; 32 + flee-to-center ;; 236 + flee-madly ;; 235 + cower-ground ;; 222 + ) + ) +|# + +#| +(deftype assault-cleanup (process) + ((offscreen-time uint64 :offset-assert 128) + (parent-hand uint64 :offset-assert 136) + ) + :method-count-assert 15 + :size-assert #x90 + :flag-assert #xf00100090 + (:state-methods + tracking ;; 14 + ) + ) +|# + +#| +(deftype special-health (health) + () + :method-count-assert 36 + :size-assert #x194 + :flag-assert #x2401200194 + ) +|# + +#| +(deftype ammo-special-pickup (process-focusable) + ((ammo-type int32 :offset-assert 208) + (gun-type int32 :offset-assert 212) + (collect-effect basic :offset-assert 216) + (ammo-effect basic :offset-assert 220) + (anim-index int32 :offset-assert 224) + ) + :method-count-assert 31 + :size-assert #xe4 + :flag-assert #x1f007000e4 + (:methods + (ammo-special-pickup-method-30 () none) ;; 30 + ) + (:state-methods + wait ;; 28 + pickup ;; 29 + ) + ) +|# + +#| +(deftype assault-bombbot (bombbot) + ((next-node int32 :offset-assert 1512) + (new-point-choose-time uint64 :offset-assert 1520) + (max-hp float :offset-assert 1532) + (is-final? basic :offset-assert 1536) + (last-charge-player-count uint32 :offset-assert 1540) + (suck-level int32 :offset-assert 1544) + ) + :method-count-assert 210 + :size-assert #x60c + :flag-assert #xd20590060c + (:methods + (assault-bombbot-method-209 () none) ;; 209 + ) + (:state-methods + explode ;; 190 + hostile ;; 38 + drop-bombs ;; 193 + ) + ) +|# + +#| +(deftype assault-bombbot-spawn-params (bombbot-spawn-params) + ((is-final? basic :offset-assert 48) + (suck-level int32 :offset-assert 52) + ) + :method-count-assert 9 + :size-assert #x38 + :flag-assert #x900000038 + ) +|# + +#| +(deftype assault-bombbot-shot (bombbot-shot) + () + :method-count-assert 41 + :size-assert #x220 + :flag-assert #x2901a00220 + ) +|# + +;; (define-extern assault-enemy-init-by-other function) +;; (define-extern assault-type->type function) +;; (define-extern assault-cleanup-init-by-other function) +;; (define-extern *assault-levels* array) +;; (define-extern spawn-assault-enemy function) +;; (define-extern special-health-init-by-other function) +;; (define-extern ammo-special-pickup-init-by-other function) +;; (define-extern assault-bombbot-init-by-other function) +;; (define-extern *curve-assault-bombbot-shot-color-blue* curve-color-fast) +;; (define-extern *curve-assault-bombbot-shot-width* curve2d-fast) +;; (define-extern *assault-bombbot-trail* object) +;; (define-extern *assault-bombbot-trail-2* object) +;; (define-extern *bombbot-bomb-hp-thresholds* array) +;; (define-extern *look-time* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; factory-part ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern sparticle-torch-spline-align function) +;; (define-extern spt-func-fact-torch function) +;; (define-extern spt-birth-func-fact-torch function) +;; (define-extern *range-color-fact-big-torch-flame* curve-color-fast) +;; (define-extern *range-alpha-fact-big-torch-flame* curve2d-fast) +;; (define-extern *range-scale-fact-big-torch-flame-x* curve2d-fast) +;; (define-extern *range-scale-fact-big-torch-flame-y* curve2d-fast) +;; (define-extern *r-curve-fact-big-torch-flame* curve2d-fast) +;; (define-extern *g-curve-fact-big-torch-flame* curve2d-fast) +;; (define-extern *b-curve-fact-big-torch-flame* curve2d-fast) +;; (define-extern *curve-alpha-fact-big-torch-flame* curve2d-fast) +;; (define-extern *curve-fact-big-torch-flame-x* curve2d-fast) +;; (define-extern *curve-fact-big-torch-flame-y* curve2d-fast) +;; (define-extern *part-fact-big-torch-flame-curve-settings* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; neo-satellite ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype neo-sat-laser-info (structure) + ((joint int16 :offset-assert 0) + (rope-index int16 :offset-assert 2) + ) + :method-count-assert 9 + :size-assert #x4 + :flag-assert #x900000004 + ) +|# + +#| +(deftype neo-sat-hash-index (structure) + ((h0 float :offset-assert 0) + (h1 float :offset-assert 4) + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +#| +(deftype rope-neo-sat-whip (rope-prim-system) + ((parent-handle uint64 :offset-assert 104) + ) + :method-count-assert 25 + :size-assert #x70 + :flag-assert #x1900000070 + ) +|# + +#| +(deftype neo-sat-yellow-ammo-pos (structure) + ((angle float :offset-assert 0) + (dist float :offset-assert 4) + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +#| +(deftype neo-sat (nav-enemy) + ((nav-vector vector :inline :offset-assert 624) + (y-movement float :offset-assert 640) + (ground-offset float :offset-assert 644) + (desired-y-height float :offset-assert 648) + (xz-vel float :offset-assert 652) + (x-vel float :offset-assert 656) + (z-vel float :offset-assert 660) + (offset-angle float :offset-assert 664) + (last-thrust-vec vector :inline :offset-assert 672) + (disc-joint joint-mod-rotate-local :inline :offset-assert 688) + (laser-rotate-angle float :offset-assert 720) + (wander-generate-time uint64 :offset-assert 728) + (hit-player? basic :offset-assert 736) + (desired-float-height float :offset-assert 740) + (bob-speed-scalar float :offset-assert 744) + (on-ground? basic :offset-assert 748) + (current-shockwave-radius float :offset-assert 752) + (active-laser-index int8 :offset-assert 756) + (current-stage int8 :offset-assert 757) + (fly-speed-scalar float :offset-assert 760) + (last-shockwave-radius float :offset-assert 764) + (ropes basic :offset-assert 768) + (max-speed float :offset-assert 772) + (spin-current float :offset-assert 776) + (spin-dest float :offset-assert 780) + (spin-speed float :offset-assert 784) + (hashed-heights UNKNOWN 1225 :offset-assert 788) + (shockwave-origin vector :inline :offset-assert 5696) + (current-height-probe-index int16 :offset-assert 5712) + (last-spawned-ring-index int16 :offset-assert 5714) + (global-neo-sat-index uint8 :offset-assert 5716) + (yellow-ammo-pos UNKNOWN 4 :offset-assert 5720) + (num-yellow-ammo int8 :offset-assert 5784) + (start-thrust-pos vector :inline :offset-assert 5792) + (was-player-inside-cone? basic :offset-assert 5808) + (was-doing-cone-check? basic :offset-assert 5812) + (damage-part1 basic :offset-assert 5816) + (damage-part2 basic :offset-assert 5820) + (damage-part3 basic :offset-assert 5824) + (burst-dust-part basic :offset-assert 5828) + (warp-handle uint64 :offset-assert 5832) + (spine-joint-mods UNKNOWN 6 :offset-assert 5840) + (actual-laser-rotate-angle float :offset-assert 6032) + (last-particle-rotate float :offset-assert 6036) + (trunk-joint joint-mod-rotate-local :inline :offset-assert 6048) + (ground-height float :offset-assert 6080) + (tentacle basic :offset-assert 6084) + (anim-loop? basic :offset-assert 6088) + (play-anim? basic :offset-assert 6092) + (anim-speed float :offset-assert 6096) + (should-rise? basic :offset-assert 6100) + (last-play-laser-time uint64 :offset-assert 6104) + (snd-laser-burn uint32 :offset-assert 6112) + (snd-whips-loop UNKNOWN 3 :offset-assert 6116) + (sound-last-snap-time UNKNOWN 3 :offset-assert 6128) + (sound-next-play-time UNKNOWN 3 :offset-assert 6152) + (new-spin-time uint64 :offset-assert 6176) + (snd-arms-chatter uint32 :offset-assert 6184) + (was-spinning? basic :offset-assert 6188) + (snd-hover uint32 :offset-assert 6192) + (snd-spool-explosion uint32 :offset-assert 6196) + (antenna-explode-part basic :offset-assert 6200) + (next-lightning-time uint64 :offset-assert 6208) + ) + :method-count-assert 234 + :size-assert #x1848 + :flag-assert #xea17d01848 + (:methods + (neo-sat-method-198 () none) ;; 198 + (neo-sat-method-199 () none) ;; 199 + (neo-sat-method-200 () none) ;; 200 + (neo-sat-method-201 () none) ;; 201 + (neo-sat-method-202 () none) ;; 202 + (neo-sat-method-203 () none) ;; 203 + (neo-sat-method-204 () none) ;; 204 + (neo-sat-method-205 () none) ;; 205 + (neo-sat-method-206 () none) ;; 206 + (neo-sat-method-207 () none) ;; 207 + (neo-sat-method-208 () none) ;; 208 + (neo-sat-method-209 () none) ;; 209 + (neo-sat-method-210 () none) ;; 210 + (neo-sat-method-211 () none) ;; 211 + (neo-sat-method-212 () none) ;; 212 + (neo-sat-method-213 () none) ;; 213 + (neo-sat-method-214 () none) ;; 214 + (neo-sat-method-215 () none) ;; 215 + (neo-sat-method-216 () none) ;; 216 + (neo-sat-method-217 () none) ;; 217 + (neo-sat-method-218 () none) ;; 218 + (neo-sat-method-219 () none) ;; 219 + (neo-sat-method-220 () none) ;; 220 + (neo-sat-method-221 () none) ;; 221 + (neo-sat-method-222 () none) ;; 222 + (neo-sat-method-223 () none) ;; 223 + (neo-sat-method-224 () none) ;; 224 + (neo-sat-method-225 () none) ;; 225 + (neo-sat-method-226 () none) ;; 226 + (neo-sat-method-227 () none) ;; 227 + (neo-sat-method-228 () none) ;; 228 + (neo-sat-method-229 () none) ;; 229 + (neo-sat-method-230 () none) ;; 230 + (neo-sat-method-231 () none) ;; 231 + (neo-sat-method-232 () none) ;; 232 + (neo-sat-method-233 () none) ;; 233 + ) + (:state-methods + neo-sat-drill-returning ;; 193 + die ;; 40 + neo-sat-drill-prepare ;; 192 + neo-sat-sit-and-spin ;; 196 + neo-sat-drill-impact ;; 195 + neo-sat-drill-attack ;; 191 + neo-sat-laser-attack ;; 194 + ground-burst ;; 197 + hostile ;; 38 + sat-idle ;; 190 + ) + (:states + neo-sat-drill-halting + ) + ) +|# + +#| +(deftype neo-sat-init-params (structure) + ((pos vector :inline :offset-assert 0) + (quat quaternion :inline :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x20 + :flag-assert #x900000020 + ) +|# + +#| +(deftype neo-sat-shield (process-drawable) + () + :method-count-assert 26 + :size-assert #xc8 + :flag-assert #x1a005000c8 + (:methods + (neo-sat-shield-method-25 () none) ;; 25 + ) + (:state-methods + hit ;; 23 + turning-off ;; 22 + turning-on ;; 21 + disabled ;; 24 + active ;; 20 + ) + ) +|# + +;; (define-extern spt-birth-func-brightness-sat-shockwave function) +;; (define-extern spt-birth-func-part-sat-shockwave function) +;; (define-extern spt-birth-func-brightness-scorch-bits function) +;; (define-extern spt-birth-func-part-scorch-bits function) +;; (define-extern spt-birth-func-part-ground-impact function) +;; (define-extern spt-birth-func-part-ground-emerge function) +;; (define-extern *range-sat-explo-color* curve-color-fast) +;; (define-extern *range-sat-explo-alpha* curve2d-fast) +;; (define-extern *range-sat-explo-scale-x* curve2d-fast) +;; (define-extern *range-sat-explo-scale-y* curve2d-fast) +;; (define-extern *curve-sat-explo-alpha* curve2d-fast) +;; (define-extern *curve-sat-explo-scale-x* curve2d-fast) +;; (define-extern *curve-sat-explo-scale-y* curve2d-fast) +;; (define-extern *part-neo-satellite-explosion-texture-curve-settings* object) +;; (define-extern *neo-sat-laser-array* array) +;; (define-extern *neo-sat-focus-pos* object) +;; (define-extern *alive-neo-sats* array) +;; (define-extern *neo-sat-nav-enemy-info* nav-enemy-info) +;; (define-extern *neo-sat-rope-tentacle* object) +;; (define-extern *neo-satellite-nav-mesh* object) +;; (define-extern neo-sat-init-by-other function) +;; (define-extern *h0* object) +;; (define-extern *h1* object) +;; (define-extern *hs* object) +;; (define-extern *m0* object) +;; (define-extern *m1* object) +;; (define-extern *ms* object) +;; (define-extern *move-offset* object) +;; (define-extern *maxh* object) +;; (define-extern *minh* object) +;; (define-extern *maxl* object) +;; (define-extern *minl* object) +;; (define-extern sparticle-height-set function) +;; (define-extern spt-func-part-neo-sat-shockwave-hot function) +;; (define-extern sparticle-shockwave-set function) +;; (define-extern spawn-neo-sat function) +;; (define-extern compute-xz-pos function) +;; (define-extern neo-sat-inside-cone? function) +;; (define-extern neo-sat-shield-init-by-other function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ctyport-attack ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype port-attack-speech-instance (speech-instance) + () + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +#| +(deftype ctyport-mine-layout (structure) + ((mine-type uint64 :offset-assert 0) + (num-mines int8 :offset-assert 8) + (inout? basic :offset-assert 12) + (spin? basic :offset-assert 16) + (active? basic :offset-assert 20) + (checked-this-frame? basic :offset-assert 24) + (origin vector :inline :offset-assert 32) + (secondary-pos vector :inline :offset-assert 48) + (initial-angle float :offset-assert 64) + (spacing float :offset-assert 68) + (spinrate float :offset-assert 72) + (period float :offset-assert 76) + (offset float :offset-assert 80) + (stored-handles uint32 :offset-assert 84) + ) + :method-count-assert 9 + :size-assert #x58 + :flag-assert #x900000058 + ) +|# + +#| +(deftype ctyport-attack-package-info (structure) + ((pos vector :inline :offset-assert 0) + (locked? basic :offset-assert 16) + (on-water? basic :offset-assert 20) + (probe? basic :offset-assert 24) + ) + :method-count-assert 9 + :size-assert #x1c + :flag-assert #x90000001c + ) +|# + +#| +(deftype ctyport-attack-hud (hud) + ((pos-tt float :offset-assert 2756) + (tt-current float :offset-assert 2760) + (tt-prev float :offset-assert 2764) + (tt-next float :offset-assert 2768) + (spike-time uint64 :offset-assert 2776) + ) + :method-count-assert 27 + :size-assert #xae0 + :flag-assert #x1b0a600ae0 + ) +|# + +#| +(deftype ctyport-attack-manager (task-manager) + ((active-torpedo uint64 :offset-assert 240) + (inactive-mine-list basic :offset-assert 248) + (mine-clock uint64 :offset-assert 256) + (current-package-index int16 :offset-assert 264) + (rod-of-god uint64 :offset-assert 272) + (wall-h uint64 :offset-assert 280) + (passed-cutscene-trigger? basic :offset-assert 288) + (finish-type basic :offset-assert 292) + (mine-layout basic :offset-assert 296) + (package-positions basic :offset-assert 300) + (h-hud uint64 :offset-assert 304) + ) + :method-count-assert 52 + :size-assert #x138 + :flag-assert #x3400c00138 + (:methods + (ctyport-attack-manager-method-34 () none) ;; 34 + (ctyport-attack-manager-method-42 () none) ;; 42 + (ctyport-attack-manager-method-43 () none) ;; 43 + (ctyport-attack-manager-method-44 () none) ;; 44 + (ctyport-attack-manager-method-45 () none) ;; 45 + (ctyport-attack-manager-method-46 () none) ;; 46 + (ctyport-attack-manager-method-47 () none) ;; 47 + (ctyport-attack-manager-method-48 () none) ;; 48 + (ctyport-attack-manager-method-49 () none) ;; 49 + (ctyport-attack-manager-method-50 () none) ;; 50 + (ctyport-attack-manager-method-51 () none) ;; 51 + ) + (:state-methods + start-mission ;; 38 + wait ;; 14 + wait-for-cleanup ;; 37 + nuke-wall ;; 36 + watch-approach ;; 35 + head-to-wall ;; 33 + exit-naughty-ottsel ;; 40 + pickup-nukes ;; 32 + get-on-nuke ;; 39 + play-get-on-movie ;; 41 + ) + ) +|# + +#| +(deftype ctyport-mine (process-drawable) + ((bob-scalar float :offset-assert 200) + (last-play-time uint64 :offset-assert 208) + ) + :method-count-assert 24 + :size-assert #xd8 + :flag-assert #x18006000d8 + (:methods + (ctyport-mine-method-23 () none) ;; 23 ;; (ctyport-mine-method-23 (_type_) none 23) + ) + (:state-methods + hidden ;; 20, old: (idle () _type_ :state 20) + idle ;; 21, old: (die () _type_ :state 21) + menacing ;; 22, old: (fall () _type_ :state 22) + ) + ) +|# + +#| +(deftype ctyport-attack-package (process-drawable) + ((hum-sound uint32 :offset-assert 200) + ) + :method-count-assert 22 + :size-assert #xcc + :flag-assert #x16005000cc + (:state-methods + idle ;; 20 + die ;; 21 + ) + ) +|# + +#| +(deftype cty-dax-missile-launcher (process-drawable) + () + :method-count-assert 21 + :size-assert #xc8 + :flag-assert #x15005000c8 + (:state-methods + idle ;; 20 + ) + ) +|# + +;; (define-extern *ctyport-attack-speech-list* object) +;; (define-extern *port-attack-speech* array) +;; (define-extern *port-attack-dead-pool* object) +;; (define-extern ctyport-attack-manager-event-handler function) +;; (define-extern classify-mine-layout function) +;; (define-extern *recorded-pos* object) +;; (define-extern *recorded-length* object) +;; (define-extern record-pos function) +;; (define-extern print-record-pos function) +;; (define-extern *ctyport-mine-positions* array) +;; (define-extern *ctyport-package-positions* array) +;; (define-extern *ctyport-barrier-pos* object) +;; (define-extern get-ctyport-attack-death-count function) +;; (define-extern ctyport-mine-init-by-other function) ;; (function city-port-run-mine-info none :behavior ctyport-mine) +;; (define-extern ctyport-attack-package-init-by-other function) +;; (define-extern ctyport-attack-setup function) +;; (define-extern *cutscene-trigger-plane-normal* object) +;; (define-extern *cutscene-trigger-plane-pt* object) +;; (define-extern *approach-camera-pt* object) +;; (define-extern *approach-camera-matrix* object) +;; (define-extern *port-attack-fail-sphere* object) +;; (define-extern *port-attack-fail-radius* object) +;; (define-extern copy-record-pos function) +;; (define-extern print-record-pos-2 function) +;; (define-extern lctypatk-login function) +;; (define-extern lctypatk-logout function) +;; (define-extern *hud-boost-curve* curve2d-fast) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; guard-rifle ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; sync-info ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; cam-states ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype cam-eye-bank (basic) + ((rot-speed float :offset-assert 4) + (max-degrees float :offset-assert 8) + (max-fov float :offset-assert 12) + (min-fov float :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x14 + :flag-assert #x900000014 + ) +|# + +#| +(deftype cam-string-bank (basic) + ((los-coll-rad meters :offset-assert 4) + (los-coll-rad2 meters :offset-assert 8) + ) + :method-count-assert 9 + :size-assert #xc + :flag-assert #x90000000c + ) +|# + +#| +(deftype los-dist (structure) + ((par-dist float :offset-assert 0) + (lat-dist float :offset-assert 4) + (vert-dist float :offset-assert 8) + ) + :method-count-assert 9 + :size-assert #xc + :flag-assert #x90000000c + ) +|# + +#| +(deftype collide-los-dist-info (structure) + ((min-par float :offset-assert 0) + (max-par float :offset-assert 4) + (min-lat float :offset-assert 8) + (max-lat float :offset-assert 12) + (min-vp float :offset-assert 16) + (max-vp float :offset-assert 20) + (min-vn float :offset-assert 24) + (max-vn float :offset-assert 28) + (count int32 :offset-assert 32) + ) + :method-count-assert 9 + :size-assert #x24 + :flag-assert #x900000024 + ) +|# + +#| +(deftype collide-los-result (structure) + ((lateral vector :inline :offset-assert 0) + (cw collide-los-dist-info :inline :offset-assert 16) + (ccw collide-los-dist-info :inline :offset-assert 64) + (straddle collide-los-dist-info :inline :offset-assert 112) + (lateral-valid symbol :offset-assert 148) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x98 + :flag-assert #x900000098 + ) +|# + +#| +(deftype cam-stick-bank (basic) + ((max-z meters :offset-assert 4) + (min-z meters :offset-assert 8) + (max-y meters :offset-assert 12) + (min-y meters :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x14 + :flag-assert #x900000014 + ) +|# + +#| +(deftype cam-bike-bank (basic) + ((min-z meters :offset-assert 4) + (max-z meters :offset-assert 8) + (min-y meters :offset-assert 12) + (max-y meters :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x14 + :flag-assert #x900000014 + ) +|# + +;; (define-extern cam-no-trans state) +;; (define-extern cam-really-fixed state) ;; (state camera-slave) +;; (define-extern cam-fixed state) ;; (state camera-slave) +;; (define-extern cam-fixed-read-entity state) ;; (state camera-slave) +;; (define-extern cam-pov state) ;; (state camera-slave) +;; (define-extern cam-pov180 state) ;; (state camera-slave) +;; (define-extern cam-pov-track state) ;; (state camera-slave) +;; (define-extern cam-standoff-calc-trans function) ;; (function vector :behavior camera-slave) +;; (define-extern cam-standoff state) ;; (state camera-slave) +;; (define-extern cam-standoff-read-entity state) ;; (state camera-slave) +;; (define-extern *CAM_EYE-bank* cam-eye-bank) ;; cam-eye-bank +;; (define-extern cam-eye state) ;; (state camera-slave) +;; (define-extern cam-curve-closest-point function) +;; (define-extern cam-tube-sled state) +;; (define-extern cam-spline state) ;; (state camera-slave) +;; (define-extern cam-decel state) ;; (state camera-slave) +;; (define-extern cam-endlessfall state) ;; (state camera-slave) +;; (define-extern cam-circular-position-into-max-angle function) ;; (function vector vector float vector :behavior camera-slave) +;; (define-extern cam-circular-position function) ;; (function symbol vector :behavior camera-slave) +;; (define-extern cam-circular-code function) ;; (function float :behavior camera-slave) +;; (define-extern cam-circular state) ;; (state camera-slave) +;; (define-extern cam-lookat state) ;; (state camera-slave) +;; (define-extern *CAM_STRING-bank* cam-string-bank) ;; cam-string-bank +;; (define-extern cam-string-find-position-rel! function) ;; (function vector symbol) +;; (define-extern cam-string-set-position-rel! function) ;; (function vector cam-slave-options :behavior camera-slave) +;; (define-extern string-push-help function) ;; (function float) +;; (define-extern cam-draw-collide-cache function) ;; (function collide-cache none) +;; (define-extern dist-info-init function) ;; (function collide-los-dist-info none) +;; (define-extern dist-info-valid? function) ;; (function collide-los-dist-info symbol) +;; (define-extern dist-info-append function) ;; (function collide-los-dist-info vector none) +;; (define-extern dist-info-print function) ;; (function collide-los-dist-info string object) +;; (define-extern los-cw-ccw function) ;; (function (inline-array collide-cache-tri) vector vector float collide-los-result vector float symbol :behavior camera-slave) +;; (define-extern cam-los-spline-collide function) ;; (function vector vector pat-surface float) +;; (define-extern cam-los-setup-lateral function) ;; (function collide-los-result vector vector symbol :behavior camera-slave) +;; (define-extern cam-los-collide function) ;; (function vector vector collide-los-result pat-surface symbol :behavior camera-slave) +;; (define-extern cam-string-follow function) ;; (function object :behavior camera-slave) +;; (define-extern cam-string-line-of-sight function) ;; (function vector :behavior camera-slave) +;; (define-extern cam-dist-analog-input function) ;; (function int float float) +;; (define-extern cam-string-joystick function) ;; (function float :behavior camera-slave) +;; (define-extern cam-string-find-hidden function) ;; (function none :behavior camera-slave) +;; (define-extern cam-string-move function) ;; (function object :behavior camera-slave) +;; (define-extern cam-string-code function) ;; (function vector :behavior camera-slave) +;; (define-extern set-string-params function) ;; (function vector :behavior camera-slave) +;; (define-extern cam-string state) ;; (state camera-slave) +;; (define-extern *CAM_STICK-bank* cam-stick-bank) ;; cam-stick-bank +;; (define-extern cam-stick-code function) ;; (function none :behavior camera-slave) +;; (define-extern cam-stick state) ;; (state camera-slave) +;; (define-extern *CAM_BIKE-bank* cam-bike-bank) ;; cam-bike-bank +;; (define-extern cam-calc-bike-follow! function) ;; (function cam-rotation-tracker vector symbol vector :behavior camera-slave) +;; (define-extern cam-bike-code function) ;; (function none :behavior camera-slave) +;; (define-extern cam-bike state) ;; (state camera-slave) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; sparticle-launcher ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype sp-queued-launch-particles (structure) + ((sp-system sparticle-system :offset-assert 0) ;; guessed by decompiler + (sp-launcher sparticle-launcher :offset-assert 4) ;; guessed by decompiler + (pos vector :inline :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x20 + :flag-assert #x900000020 + ) +|# + +#| +(deftype sp-launch-queue (basic) + ((in-use int32 :offset-assert 4) + (queue sp-queued-launch-particles 256 :offset-assert 16) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x2010 + :flag-assert #x900002010 + ) +|# + +#| +(deftype particle-adgif-cache (basic) + ((used int32 :offset-assert 4) + (last uint16 :offset-assert 8) + (lastgif adgif-shader :offset-assert 12) + (tidhash uint16 80 :offset-assert 16) ;; guessed by decompiler + (spadgif adgif-shader 80 :offset-assert 176) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x19b0 + :flag-assert #x9000019b0 + ) +|# + +#| +(deftype sp-launch-stack (structure) + ((ra basic :offset-assert 0) + (dummy0 basic :offset-assert 4) + (dummy1 basic :offset-assert 8) + (b-spfic basic :offset-assert 12) + (r16 uint128 :offset-assert 16) + (r17 uint128 :offset-assert 32) + (r18 uint128 :offset-assert 48) + (pos uint128 :offset-assert 64) + (matrix matrix :inline :offset-assert 80) + (l-spfic basic :offset-assert 144) + (birth-info sparticle-birthinfo :inline :offset-assert 160) + (sprite sprite-vec-data-2d :inline :offset-assert 192) + (r19 uint128 :offset-assert 240) + (r20 uint128 :offset-assert 256) + (r21 uint128 :offset-assert 272) + (r22 uint128 :offset-assert 288) + ) + :method-count-assert 9 + :size-assert #x130 + :flag-assert #x900000130 + ;; field ra uses ~A with a signed load. field dummy0 uses ~A with a signed load. field dummy1 uses ~A with a signed load. field b-spfic uses ~A with a signed load. field l-spfic uses ~A with a signed load. + ) +|# + +;; sparticle-launcher is already defined! + +;; (define-extern *part-id-table* object) ;; (array sparticle-launcher) +;; (define-extern *part-group-id-table* object) ;; (array sparticle-launch-group) +;; (define-extern *sp-temp* object) ;; float +;; (define-extern lookup-part-group-by-name function) ;; (function string sparticle-launch-group) +;; (define-extern lookup-part-group-pointer-by-name function) ;; (function string (pointer object)) +;; (define-extern part-group-pointer? function) ;; (function pointer symbol) +;; (define-extern unlink-part-group-by-heap function) ;; (function kheap int) +;; (define-extern sp-init-fields! function) ;; (function (pointer float) (inline-array sp-field-init-spec) sp-field-id sp-field-id symbol (inline-array sp-field-init-spec)) +;; (define-extern *sp-launcher-lock* object) ;; symbol +;; (define-extern *sp-launch-queue* object) ;; sp-launch-queue +;; (define-extern *sp-launcher-enable* object) ;; symbol +;; (define-extern particle-setup-adgif function) ;; (function adgif-shader int none) +;; (define-extern *particle-adgif-cache* object) ;; particle-adgif-cache +;; (define-extern particle-adgif-cache-flush function) ;; (function none) +;; (define-extern particle-adgif function) ;; (function adgif-shader texture-id none) +;; (define-extern particle-adgif-callback function) ;; (function adgif-shader texture-id none) +;; (define-extern sp-queue-launch function) ;; (function sparticle-system sparticle-launcher matrix int) +;; (define-extern sp-adjust-launch function) ;; (function sparticle-launchinfo sparticle-cpuinfo (inline-array sp-field-init-spec) matrix symbol none) +;; (define-extern sp-euler-convert function) ;; (function sparticle-launchinfo sparticle-cpuinfo none) +;; (define-extern sp-rotate-system function) ;; (function sparticle-launchinfo sparticle-cpuinfo transformq none) +;; (define-extern sp-launch-particles-var function) ;; (function sparticle-system sparticle-launcher matrix sparticle-launch-state sparticle-launch-control float none) +;; (define-extern *death-adgif* object) ;; adgif-shader +;; (define-extern sp-launch-particles-death function) ;; (function sparticle-system sparticle-launcher vector none) +;; (define-extern sp-clear-queue function) ;; (function none) +;; (define-extern sp-relaunch-setup-fields function) ;; (function object sparticle-launcher sparticle-cpuinfo sprite-vec-data-3d none) +;; (define-extern sp-relaunch-particle-2d function) ;; (function object sparticle-launcher sparticle-cpuinfo sprite-vec-data-3d none) +;; (define-extern sp-relaunch-particle-3d function) ;; (function object sparticle-launcher sparticle-cpuinfo sprite-vec-data-3d none) +;; (define-extern execute-particle-local-space-engine function) +;; (define-extern local-space-camera function) +;; (define-extern local-space-proc-joint function) +;; (define-extern execute-part-engine function) ;; (function none) +;; (define-extern sparticle-track-root function) ;; (function object sparticle-cpuinfo vector none) +;; (define-extern sparticle-track-root-prim function) ;; (function object sparticle-cpuinfo vector none) +;; (define-extern sparticle-track-joint function) ;; (function sparticle-system sparticle-cpuinfo vector none) +;; (define-extern sparticle-turn-to-vel function) ;; (function sparticle-system sparticle-cpuinfo sprite-vec-data-3d none) +;; (define-extern sparticle-rotate-to-vel-3d function) +;; (define-extern birth-func-clean function) +;; (define-extern birth-func-process-clock function) +;; (define-extern birth-func-copy-rot-color function) ;; (function sparticle-system sparticle-cpuinfo sprite-vec-data-3d sparticle-launcher sparticle-launch-state none) +;; (define-extern *global-toggle* object) ;; int +;; (define-extern birth-func-copy2-rot-color function) ;; (function sparticle-system sparticle-cpuinfo sprite-vec-data-3d sparticle-launcher sparticle-launch-state none) +;; (define-extern birth-func-copy-omega-to-z function) ;; (function sparticle-system sparticle-cpuinfo sprite-vec-data-3d sparticle-launcher sparticle-launch-state none) +;; (define-extern birth-func-random-next-time function) ;; (function sparticle-system sparticle-cpuinfo sprite-vec-data-3d sparticle-launcher sparticle-launch-state none) +;; (define-extern sparticle-respawn-heights function) ;; (function sparticle-system sparticle-cpuinfo vector none) +;; (define-extern sparticle-respawn-timer function) ;; (function sparticle-system sparticle-cpuinfo vector none) +;; (define-extern sparticle-texture-animate function) ;; (function sparticle-system sparticle-cpuinfo vector none) +;; (define-extern sparticle-texture-day-night function) ;; (function sparticle-system sparticle-cpuinfo sprite-vec-data-2d none) +;; (define-extern sparticle-mode-animate function) ;; (function sparticle-system sparticle-cpuinfo sprite-vec-data-2d none) +;; (define-extern sparticle-motion-blur function) ;; (function sparticle-system sparticle-cpuinfo vector none) +;; (define-extern sparticle-motion-blur-old function) ;; (function object sparticle-cpuinfo sprite-vec-data-3d object) +;; (define-extern sparticle-set-conerot function) ;; (function sparticle-launcher vector none) +;; (define-extern sparticle-next-on-mode-1 function) ;; (function sparticle-system sparticle-cpuinfo sparticle-launchinfo float) +;; (define-extern check-ground-bounce function) ;; (function sparticle-system sparticle-cpuinfo sparticle-launchinfo float) +;; (define-extern check-drop-group-center function) ;; (function sparticle-system sparticle-cpuinfo sparticle-launchinfo none) +;; (define-extern check-bubble-height function) +;; (define-extern check-raise-group-center function) +;; (define-extern birth-func-y->userdata function) ;; (function sparticle-system sparticle-cpuinfo matrix none) +;; (define-extern birth-func-ocean-height function) ;; (function sparticle-system sparticle-cpuinfo matrix none) +;; (define-extern birth-func-camera-orient function) ;; (function int sparticle-cpuinfo sparticle-launchinfo none) +;; (define-extern birth-func-set-parent-pntr function) +;; (define-extern birth-func-get-parent-quat function) +;; (define-extern spt-func-camera-facing-orbiter function) +;; (define-extern *particle-quat* object) ;; quaternion +;; (define-extern birth-func-set-quat function) ;; (function int sparticle-cpuinfo sparticle-launchinfo none) +;; (define-extern *particle-vel* object) ;; vector +;; (define-extern birth-func-set-vel function) ;; (function object sparticle-cpuinfo sparticle-launchinfo none) +;; (define-extern birth-func-texture-group function) ;; (function int sparticle-cpuinfo sparticle-launchinfo none) +;; (define-extern rot-to-particle function) +;; (define-extern birth-func-flip-based-on-scale function) +;; (define-extern sparticle-2d-spline-align function) +;; (define-extern sparticle-2d-spline-align-instant function) +;; (define-extern birth-func-inherit-size function) +;; (define-extern birth-func-texture-group-2d function) +;; (define-extern birth-func-set-vel-2d function) +;; (define-extern sparticle-3d-rotate-xz-to-camera function) +;; (define-extern spt-func-relative-pos function) +;; (define-extern spt-func-turn-to-vel-radial function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; entity-table ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *entity-info* array) ;; (array entity-info) +;; (define-extern entity-info-lookup function) ;; (function type entity-info) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; roboguard-city ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype roboguard-city (kg-squad-member) + ((los los-control :inline :offset-assert 1136) + (rotation-matrix matrix :inline :offset-assert 1312) + (me-to-focus-dir vector :inline :offset-assert 1376) + (me-to-focus-angle float :offset-assert 1392) + (robo-flags uint16 :offset-assert 1396) + (torso-aim-blend float :offset-assert 1400) + (torso-angle float :offset-assert 1404) + (torso-seek-speed float :offset-assert 1408) + (torso-to-focus-angle float :offset-assert 1412) + (last-torso-frame-num float :offset-assert 1416) + (stand-angle-threshold float :offset-assert 1420) + (attack-distance float :offset-assert 1424) + (attack-dist-scalar float :offset-assert 1428) + (fire-time uint64 :offset-assert 1432) + (last-attack-time uint64 :offset-assert 1440) + (fired-this-time? basic :offset-assert 1448) + (last-roll-time uint64 :offset-assert 1456) + (cannot-reach-target? basic :offset-assert 1464) + (cannot-reach-target-start-time uint64 :offset-assert 1472) + (frustrate-roll-time uint64 :offset-assert 1480) + (target-status squad-target-status :inline :offset-assert 1488) + (last-update-chase-pos-time uint64 :offset-assert 1560) + (random-offset-search float :offset-assert 1568) + (pursuit-start-time uint64 :offset-assert 1576) + (dizzy-start-time uint64 :offset-assert 1584) + (roll-sound uint32 :offset-assert 1592) + ) + :method-count-assert 241 + :size-assert #x63c + :flag-assert #xf105c0063c + (:methods + (roboguard-city-method-233 () none) ;; 233 + (roboguard-city-method-234 () none) ;; 234 + (roboguard-city-method-235 () none) ;; 235 + (roboguard-city-method-236 () none) ;; 236 + (roboguard-city-method-237 () none) ;; 237 + (roboguard-city-method-238 () none) ;; 238 + (roboguard-city-method-239 () none) ;; 239 + (roboguard-city-method-240 () none) ;; 240 + ) + (:state-methods + dizzy ;; 230 + hostile ;; 38 + wait ;; 190 + roll-enter ;; 226 + active ;; 34 + idle ;; 33 + explode ;; 225 + stare ;; 37 + reposition ;; 229 + roll-exit ;; 227 + roll-chase ;; 228 + giant-hostile ;; 232 + die ;; 40 + hostile-stand ;; 222 + close-attack ;; 223 + knocked ;; 31 + shoot-attack ;; 224 + knocked-recover ;; 32 + exit-transport ;; 231 + ) + ) +|# + +#| +(deftype roboguard-shot (guard-shot) + () + :method-count-assert 41 + :size-assert #x220 + :flag-assert #x2901a00220 + ) +|# + +;; (define-extern *roboguard-city-debris-params* debris-static-params) +;; (define-extern *roboguard-city-nav-enemy-info* nav-enemy-info) +;; (define-extern roboguard-city-turn-torso-post function) +;; (define-extern roboguard-city-turret-code function) +;; (define-extern roboguard-city-idle-code function) +;; (define-extern spawn-roboguard-projectile function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; loader ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype spooler-block (basic) + ((anim spool-anim :offset-assert 4) ;; guessed by decompiler + (idle art-joint-anim :offset-assert 8) ;; guessed by decompiler + (exit art-joint-anim :offset-assert 12) ;; guessed by decompiler + (break-func (function process-drawable object) :offset-assert 16) ;; guessed by decompiler + (flags uint32 :offset-assert 20) + (part int32 :offset-assert 24) + (part-audio-start float :offset-assert 28) + (old-status uint16 :offset-assert 32) + (old-pos int32 :offset-assert 36) + (good-time uint64 :offset-assert 40) ;; time-frame + (old-time uint64 :offset-assert 48) ;; time-frame + (good-count int32 :offset-assert 56) + (sid sound-id :offset-assert 60) ;; guessed by decompiler + (real-start-time uint64 :offset-assert 64) ;; time-frame + (paused? symbol :offset-assert 72) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x4c + :flag-assert #x90000004c + ) +|# + +#| +(deftype load-dir (basic) + ((level basic :offset-assert 4) + (allocated-length uint32 :offset-assert 8) + ) + :method-count-assert 11 + :size-assert #x10 + :flag-assert #xb00000010 + ;; Failed to read some fields. + (:methods + ;; (new (symbol type int level) _type_ 0) + (load-dir-method-9 () none) ;; 9 ;; (load-to-heap-by-name (_type_ string symbol kheap int) art-group 9) + (load-dir-method-10 () none) ;; 10 ;; (set-loaded-art (_type_ art-group) art-group 10) + ) + ) +|# + +#| +(deftype gui-control (basic) + ((engine engine :offset-assert 4) ;; guessed by decompiler + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + ) + :method-count-assert 26 + :size-assert #xd30 + :flag-assert #x1a00000d30 + (:methods + ;; (new (symbol type int) _type_ 0) + (gui-control-method-9 () none) ;; 9 ;; (add-process (_type_ process gui-channel gui-action string float time-frame) sound-id 9) + (gui-control-method-10 () none) ;; 10 ;; (remove-process (_type_ process gui-channel) none 10) + (gui-control-method-11 () none) ;; 11 ;; (stop-str (_type_ gui-connection) int 11) + (gui-control-method-12 () none) ;; 12 ;; (gui-control-method-12 (_type_ process gui-channel gui-action string int float sound-id) sound-id 12) + (gui-control-method-13 () none) ;; 13 ;; (update (_type_ symbol) int 13) + (gui-control-method-14 () none) ;; 14 ;; (lookup-gui-connection-id (_type_ string gui-channel gui-action) sound-id 14) + (gui-control-method-15 () none) ;; 15 ;; (lookup-gui-connection (_type_ process gui-channel string sound-id) gui-connection 15) + (gui-control-method-16 () none) ;; 16 ;; (set-action! (_type_ gui-action sound-id gui-channel gui-action string (function gui-connection symbol) process) int 16) + (gui-control-method-17 () none) ;; 17 ;; (get-status (_type_ sound-id) gui-status 17) + (gui-control-method-18 () none) ;; 18 ;; (gui-control-method-18 (_type_ gui-channel) symbol 18) + (gui-control-method-19 () none) ;; 19 ;; (handle-command-list (_type_ gui-channel gui-connection) symbol 19) + (gui-control-method-20 () none) ;; 20 ;; (set-falloff! (_type_ sound-id symbol int int int) gui-connection 20) + (gui-control-method-21 () none) ;; 21 ;; (gui-control-method-21 (_type_ gui-connection vector) int 21) + (gui-control-method-22 () none) ;; 22 ;; (gui-control-method-22 (_type_ gui-connection process symbol) none 22) + (gui-control-method-23 () none) ;; 23 ;; (handle-command (_type_ gui-channel gui-channel symbol gui-connection) symbol 23) + (gui-control-method-24 () none) ;; 24 ;; (channel-id-set! (_type_ gui-connection sound-id) int 24) + (gui-control-method-25 () none) ;; 25 + ) + ) +|# + +;; (define-extern drawable-load function) ;; (function drawable kheap drawable) +;; (define-extern art-load function) ;; (function string kheap art) +;; (define-extern art-group-load-check function) ;; (function string kheap int art-group) +;; (define-extern external-art-buffer-init function) ;; (function external-art-buffer int) +;; (define-extern *preload-spool-anims* object) ;; symbol +;; (define-extern ja-play-spooled-anim function) ;; (function spool-anim art-joint-anim art-joint-anim (function process-drawable symbol) int :behavior process-drawable) +;; (define-extern ja-abort-spooled-anim function) ;; (function spool-anim art-joint-anim int int :behavior process-drawable) +;; (define-extern *gui-control* object) ;; gui-control +;; (define-extern *art-control* object) ;; external-art-control + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; wascitya-obs ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype wascity-stad-door (com-airlock) + () + :method-count-assert 30 + :size-assert #x1b0 + :flag-assert #x1e013001b0 + ) +|# + +#| +(deftype waspala-elevator (elevator) + () + :method-count-assert 52 + :size-assert #x1a0 + :flag-assert #x34012001a0 + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; game-task ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; nav-mesh-editor-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; vector-array is already defined! + +#| +(deftype int16-array (inline-array-class) + ((data UNKNOWN :dynamic :offset-assert 16) + ) + :method-count-assert 14 + :size-assert #x10 + :flag-assert #xe00000010 + ) +|# + +#| +(deftype nav-mesh-poly (structure) + ((poly-id uint32 :offset-assert 0) + (flags uint32 :offset-assert 4) + (index basic :offset-assert 8) + (insert-pos uint32 :offset-assert 12) + ) + :method-count-assert 15 + :size-assert #x10 + :flag-assert #xf00000010 + (:methods + (nav-mesh-poly-method-9 () none) ;; 9 + (nav-mesh-poly-method-10 () none) ;; 10 + (nav-mesh-poly-method-11 () none) ;; 11 + (nav-mesh-poly-method-12 () none) ;; 12 + (nav-mesh-poly-method-13 () none) ;; 13 + (nav-mesh-poly-method-14 () none) ;; 14 + ) + ) +|# + +#| +(deftype nav-mesh-poly-array (inline-array-class) + ((data UNKNOWN :dynamic :offset-assert 16) + ) + :method-count-assert 14 + :size-assert #x10 + :flag-assert #xe00000010 + ) +|# + +#| +(deftype nav-mesh-tri-quad (structure) + ((indices UNKNOWN 4 :offset-assert 0) + (poly uint32 :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x14 + :flag-assert #x900000014 + ) +|# + +#| +(deftype nav-mesh-tri-quad-array (inline-array-class) + ((data UNKNOWN :dynamic :offset-assert 16) + ) + :method-count-assert 14 + :size-assert #x10 + :flag-assert #xe00000010 + ) +|# + +#| +(deftype nav-mesh-editable (structure) + ((flags uint32 :offset-assert 0) + (verts basic :offset-assert 4) + (tris basic :offset-assert 8) + (quads basic :offset-assert 12) + (navmesh-id uint32 :offset-assert 16) + (idx uint32 :offset-assert 20) + (level-name basic :offset-assert 24) + (level-id uint32 :offset-assert 28) + (polys basic :offset-assert 32) + (selected-poly uint32 :offset-assert 36) + ) + :method-count-assert 19 + :size-assert #x28 + :flag-assert #x1300000028 + (:methods + (nav-mesh-editable-method-9 () none) ;; 9 + (nav-mesh-editable-method-10 () none) ;; 10 + (nav-mesh-editable-method-11 () none) ;; 11 + (nav-mesh-editable-method-12 () none) ;; 12 + (nav-mesh-editable-method-13 () none) ;; 13 + (nav-mesh-editable-method-14 () none) ;; 14 + (nav-mesh-editable-method-15 () none) ;; 15 + (nav-mesh-editable-method-16 () none) ;; 16 + (nav-mesh-editable-method-17 () none) ;; 17 + (nav-mesh-editable-method-18 () none) ;; 18 + ) + ) +|# + +#| +(deftype nav-mesh-editable-array (inline-array-class) + ((data UNKNOWN :dynamic :offset-assert 16) + ) + :method-count-assert 14 + :size-assert #x10 + :flag-assert #xe00000010 + ) +|# + +#| +(deftype nav-mesh-editor-undo (structure) + ((current-nav-mesh nav-mesh-editable :offset-assert 0) + (selected-poly uint32 :offset-assert 4) + (index basic :offset-assert 8) + (insert-pos uint32 :offset-assert 12) + (verts basic :offset-assert 16) + ) + :method-count-assert 10 + :size-assert #x14 + :flag-assert #xa00000014 + (:methods + (nav-mesh-editor-undo-method-9 () none) ;; 9 + ) + ) +|# + +#| +(deftype nav-mesh-editor-undo-array (inline-array-class) + ((data UNKNOWN :dynamic :offset-assert 16) + ) + :method-count-assert 14 + :size-assert #x10 + :flag-assert #xe00000010 + ) +|# + +#| +(deftype nav-mesh-editor (process-drawable) + ((close-menu-time uint64 :offset-assert 200) + (external-cam-mode basic :offset-assert 208) + (mouse-pressed uint64 :offset-assert 216) + (mouse-screen-pos vector :inline :offset-assert 224) + (mouse-pos vector :inline :offset-assert 240) + (mouse-end vector :inline :offset-assert 256) + (mouse-hit vector :inline :offset-assert 272) + (mouse-hit-pick vector :inline :offset-assert 288) + (mouse-snap vector :inline :offset-assert 304) + (mouse-normal vector :inline :offset-assert 320) + (mouse-collide basic :offset-assert 336) + (mouse-tumble-dist float :offset-assert 340) + (mouse-tumble vector :inline :offset-assert 352) + (manipulator-pos vector :inline :offset-assert 368) + (manipulator-back-pos vector :inline :offset-assert 384) + (lock-action basic :offset-assert 400) + (mouse-action uint32 :offset-assert 404) + (mouse-action-pos-ref vector :inline :offset-assert 416) + (nav-meshes basic :offset-assert 432) + (current-nav-mesh nav-mesh-editable :offset-assert 436) + (manipulator manipulator :inline :offset-assert 448) + (level-name basic :offset-assert 624) + (level-id uint32 :offset-assert 628) + (undo-min uint32 :offset-assert 632) + (undo-id uint32 :offset-assert 636) + (undo-max uint32 :offset-assert 640) + (undos basic :offset-assert 644) + (hide-unselected basic :offset-assert 648) + (allow-snap basic :offset-assert 652) + ) + :method-count-assert 28 + :size-assert #x290 + :flag-assert #x1c02100290 + (:methods + (nav-mesh-editor-method-20 () none) ;; 20 + (nav-mesh-editor-method-21 () none) ;; 21 + (nav-mesh-editor-method-22 () none) ;; 22 + (nav-mesh-editor-method-23 () none) ;; 23 + (nav-mesh-editor-method-24 () none) ;; 24 + (nav-mesh-editor-method-25 () none) ;; 25 + (nav-mesh-editor-method-26 () none) ;; 26 + (nav-mesh-editor-method-27 () none) ;; 27 + ) + ) +|# + +;; (define-extern *nav-mesh-editor* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; rubblea-init ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern rubblea-login function) +;; (define-extern rubblea-activate function) +;; (define-extern rubblea-deactivate function) +;; (define-extern lpattack-login function) +;; (define-extern lpattack-logout function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; collide-reaction-target ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern poly-find-nearest-edge function) ;; (function nav-poly (inline-array vector) vector vector nav-poly) +;; (define-extern target-collision-low-coverage function) ;; (function control-info collide-query vector (pointer cshape-reaction-flags) (pointer collide-status) (pointer symbol) none) +;; (define-extern target-collision-reaction function) ;; (function control-info collide-query vector vector collide-status :behavior target) +;; (define-extern target-collision-no-reaction function) ;; (function control-info collide-query vector vector none) +;; (define-extern *collide-edge-board-spec* object) ;; collide-edge-spec +;; (define-extern rail-surface-touch function) ;; (function none :behavior target) +;; (define-extern gravel-surface-touch function) ;; (function none) +;; (define-extern mushroom-surface-touch function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; wvehicle-race ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; target ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern target-falling-trans function) ;; (function symbol time-frame none :behavior target) +;; (define-extern *slide-down-mods* surface) ;; surface +;; (define-extern *slide-jump-mods* surface) ;; surface +;; (define-extern init-var-jump function) ;; (function float float symbol symbol vector float vector :behavior target) +;; (define-extern mod-var-jump function) ;; (function symbol symbol symbol vector vector :behavior target) +;; (define-extern *duck-mods* surface) ;; surface +;; (define-extern target-jump-top-anim function) ;; (function none :behavior target) +;; (define-extern *attack-mods* surface) ;; surface +;; (define-extern *attack-end-mods* object) ;; surface +;; (define-extern *attack-find-mods* object) +;; (define-extern *run-attack-mods* surface) ;; surface +;; (define-extern *jump-attack-mods* surface) ;; surface +;; (define-extern *uppercut-mods* object) ;; surface +;; (define-extern *uppercut-jump-mods* surface) ;; surface + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; kg-squad-member-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype hatred-instance-info (structure) + ((hated-target uint64 :offset-assert 0) + (hatred-value float :offset-assert 8) + ) + :method-count-assert 9 + :size-assert #xc + :flag-assert #x90000000c + ) +|# + +#| +(deftype kg-squad-member (citizen) + ((hatred-memory UNKNOWN 3 :offset-assert 1032) + (last-choose-new-enemy-time uint64 :offset-assert 1080) + (current-enemy uint64 :offset-assert 1088) + (kg-type uint8 :offset-assert 1096) + (choose-new-enemy-delay-time uint64 :offset-assert 1104) + (next-update-target-time uint64 :offset-assert 1112) + (minimap connection-minimap :offset-assert 1120) + ) + :method-count-assert 222 + :size-assert #x464 + :flag-assert #xde03f00464 + (:methods + (kg-squad-member-method-216 () none) ;; 216 + (kg-squad-member-method-217 () none) ;; 217 + (kg-squad-member-method-218 () none) ;; 218 + (kg-squad-member-method-219 () none) ;; 219 + (kg-squad-member-method-220 () none) ;; 220 + (kg-squad-member-method-221 () none) ;; 221 + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; settings ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern get-current-language function) ;; (function language-enum) +;; (define-extern *setting-control* object) ;; setting-control + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; flut-part ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; mood-tables ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *no-cloud-haze-mood-fog-table* object) ;; mood-fog-table +;; (define-extern *no-cloud-clear-mood-fog-table* object) ;; mood-fog-table +;; (define-extern *no-cloud-smog-mood-fog-table* object) ;; mood-fog-table +;; (define-extern *overcast-fog-mood-fog-table* object) ;; mood-fog-table +;; (define-extern *overcast-clear-mood-fog-table* object) ;; mood-fog-table +;; (define-extern *overcast-rain-mood-fog-table* object) ;; mood-fog-table +;; (define-extern *storm-fog-mood-fog-table* object) ;; mood-fog-table +;; (define-extern *storm-clear-mood-fog-table* object) ;; mood-fog-table +;; (define-extern *storm-rain-mood-fog-table* object) ;; mood-fog-table +;; (define-extern *desert-mood-fog-table* object) +;; (define-extern *sandstorm-start-mood-fog-table* object) +;; (define-extern *sandstorm-end-mood-fog-table* object) +;; (define-extern *no-cloud-mood-color-table* object) ;; mood-color-table +;; (define-extern *overcast-mood-color-table* object) ;; mood-color-table +;; (define-extern *storm-mood-color-table* object) ;; mood-color-table +;; (define-extern *desert-mood-color-table* object) +;; (define-extern *sandstorm-start-mood-color-table* object) +;; (define-extern *sandstorm-end-mood-color-table* object) +;; (define-extern *no-cloud-mood-channel-group* object) ;; mood-channel-group +;; (define-extern *overcast-mood-channel-group* object) ;; mood-channel-group +;; (define-extern *stormy-mood-channel-group* object) ;; mood-channel-group +;; (define-extern *clouds-000* object) ;; mood-clouds +;; (define-extern *clouds-125* object) ;; mood-clouds +;; (define-extern *clouds-250* object) ;; mood-clouds +;; (define-extern *clouds-375* object) ;; mood-clouds +;; (define-extern *clouds-500* object) ;; mood-clouds +;; (define-extern *clouds-625* object) ;; mood-clouds +;; (define-extern *clouds-750* object) ;; mood-clouds +;; (define-extern *clouds-875* object) ;; mood-clouds +;; (define-extern *clouds-1000* object) ;; mood-clouds +;; (define-extern *mood-direction-table* object) ;; mood-direction-table +;; (define-extern *mood-sky-table* object) ;; mood-sky-table +;; (define-extern *mood-interp-table* object) ;; sky-color-day +;; (define-extern init-mood-control function) ;; (function mood-control none) +;; (define-extern *mood-control* mood-control) ;; mood-control + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; bot ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern bot-simple-check-too-far function) ;; (function bot int) +;; (define-extern bot-check-too-far-always-okay function) ;; (function none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; mood ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype lava-state (structure) + ((lava float :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x4 + :flag-assert #x900000004 + ) +|# + +;; (define-extern palette-select-special function) ;; (function mood-context-core3 symbol) +;; (define-extern clear-mood-times function) ;; (function mood-context symbol) +;; (define-extern update-mood-itimes function) ;; (function mood-context none) +;; (define-extern update-mood-direction function) ;; (function mood-context-core3 mood-table float float) +;; (define-extern update-mood-exterior function) ;; (function mood-context-core3 mood-table float int object) +;; (define-extern copy-mood-exterior function) ;; (function mood-context symbol) +;; (define-extern copy-mood-exterior-ambi function) ;; (function mood-context symbol none) +;; (define-extern clear-mood-context function) ;; (function mood-context symbol) +;; (define-extern update-mood-interior function) ;; (function mood-context float) +;; (define-extern update-mood-interior-ambient function) +;; (define-extern update-mood-flames function) ;; (function mood-context int int int float float float float :behavior time-of-day-proc) +;; (define-extern *flash0* array) ;; (array float) +;; (define-extern *flash1* array) ;; (array float) +;; (define-extern *flash2* array) ;; (array float) +;; (define-extern *flash3* array) ;; (array float) +;; (define-extern *flash4* array) ;; (array float) +;; (define-extern *flash5* array) ;; (array float) +;; (define-extern *flash6* array) ;; (array float) +;; (define-extern *flash7* array) ;; (array float) +;; (define-extern update-mood-light function) ;; (function mood-context int int float float float float float float) +;; (define-extern update-mood-lava function) ;; (function mood-context int int float float float float float float) +;; (define-extern update-mood-flicker function) ;; (function mood-context int int none) +;; (define-extern update-mood-florescent function) ;; (function mood-context int int float) +;; (define-extern update-mood-electricity function) ;; (function mood-context int int float float none) +;; (define-extern update-mood-pulse function) ;; (function mood-context int int float float float float none) +;; (define-extern update-mood-strobe function) ;; (function mood-context int int int float float) +;; (define-extern update-mood-caustics function) ;; (function mood-context int float float float float float) +;; (define-extern overide-mood-fog function) +;; (define-extern overide-mood-color function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; mood-funcs ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype ctywide-states (structure) + ((light light-state :inline :offset-assert 0) + (flame flames-state :inline :offset-assert 8) + ) + :method-count-assert 9 + :size-assert #xf + :flag-assert #x90000000f + ) +|# + +#| +(deftype ctysluma-states (structure) + ((light light-state :inline :offset-assert 0) + (flame flames-state :inline :offset-assert 8) + (spec-0 sp-field-init-spec :offset-assert 16) + (spec-1 sp-field-init-spec :offset-assert 20) + (flicker float :offset-assert 24) + ) + :method-count-assert 9 + :size-assert #x1c + :flag-assert #x90000001c + ) +|# + +#| +(deftype ctyslumb-states (structure) + ((light light-state :inline :offset-assert 0) + (spec-0 sp-field-init-spec :offset-assert 8) + (spec-1 sp-field-init-spec :offset-assert 12) + (flicker float :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x14 + :flag-assert #x900000014 + ) +|# + +#| +(deftype ctyslumc-states (structure) + ((light light-state :inline :offset-assert 0) + (spec-0 sp-field-init-spec :offset-assert 8) + (spec-1 sp-field-init-spec :offset-assert 12) + (flicker float :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x14 + :flag-assert #x900000014 + ) +|# + +#| +(deftype ctygenb-states (structure) + ((light light-state :inline :offset-assert 0) + (flame flames-state :inline :offset-assert 8) + (flicker flicker-state :inline :offset-assert 15) + (spec-0 sp-field-init-spec :offset-assert 20) + (spec-1 sp-field-init-spec :offset-assert 24) + (spec-2 sp-field-init-spec :offset-assert 28) + (spec-3 sp-field-init-spec :offset-assert 32) + (next-flicker float :offset-assert 36) + ) + :method-count-assert 9 + :size-assert #x28 + :flag-assert #x900000028 + ) +|# + +#| +(deftype mhcitya-states (structure) + ((pulse pulse-state :inline :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype mhcityb-states (structure) + ((pulse pulse-state :inline :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype ctyport-states (structure) + ((light light-state :inline :offset-assert 0) + (spec-0 sp-field-init-spec :offset-assert 8) + (neon-min-bright float :offset-assert 12) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype ctymarka-states (structure) + ((light light-state :inline :offset-assert 0) + (blink float :offset-assert 8) + ) + :method-count-assert 9 + :size-assert #xc + :flag-assert #x90000000c + ) +|# + +#| +(deftype mountain-states (structure) + ((light0 light-state :inline :offset-assert 0) + (light1 light-state :inline :offset-assert 8) + (spec-0 sp-field-init-spec :offset-assert 16) + (spec-1 sp-field-init-spec :offset-assert 20) + (spec-2 sp-field-init-spec :offset-assert 24) + (spec-3 sp-field-init-spec :offset-assert 28) + (spec-4 sp-field-init-spec :offset-assert 32) + (spec-5 sp-field-init-spec :offset-assert 36) + (spec-6 sp-field-init-spec :offset-assert 40) + ) + :method-count-assert 9 + :size-assert #x2c + :flag-assert #x90000002c + ) +|# + +#| +(deftype ctyinda-states (structure) + ((light light-state :inline :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +#| +(deftype ctyindb-states (structure) + ((light light-state :inline :offset-assert 0) + (flicker float :offset-assert 8) + ) + :method-count-assert 9 + :size-assert #xc + :flag-assert #x90000000c + ) +|# + +#| +(deftype atoll-states (structure) + ((light light-state :inline :offset-assert 0) + (explosion float :offset-assert 8) + ) + :method-count-assert 9 + :size-assert #xc + :flag-assert #x90000000c + ) +|# + +;; (define-extern update-mood-default function) ;; (function mood-context float int none :behavior time-of-day-proc) +;; (define-extern update-mood-copy-parent function) +;; (define-extern get-sphere-interp function) ;; (function sphere vector float float float) +;; (define-extern update-mood-ctywide function) ;; (function mood-context float int none :behavior time-of-day-proc) +;; (define-extern update-mood-copy-ctywide function) ;; (function mood-context float int none :behavior time-of-day-proc) +;; (define-extern init-mood-ctysluma function) ;; (function mood-context float) +;; (define-extern update-mood-ctysluma function) ;; (function mood-context float int none :behavior time-of-day-proc) +;; (define-extern init-mood-ctyslumb function) ;; (function mood-context uint) +;; (define-extern update-mood-ctyslumb function) ;; (function mood-context float int none :behavior time-of-day-proc) +;; (define-extern init-mood-ctyslumc function) ;; (function mood-context none) +;; (define-extern update-mood-ctyslumc function) ;; (function mood-context float int none :behavior time-of-day-proc) +;; (define-extern init-mood-ctygenb function) +;; (define-extern update-mood-ctygenb function) +;; (define-extern *mhcity-mood-fog-table* object) +;; (define-extern overide-mhcity-fog function) +;; (define-extern init-mood-mhcitya function) +;; (define-extern update-mood-mhcitya function) +;; (define-extern init-mood-mhcityb function) +;; (define-extern update-mood-mhcityb function) +;; (define-extern calc-lmhcity-palettes function) +;; (define-extern update-mood-lmhcitya function) +;; (define-extern update-mood-lmhcityb function) +;; (define-extern *ctyport-level* object) +;; (define-extern update-mood-ctyport function) ;; (function mood-context float int none :behavior time-of-day-proc) +;; (define-extern reset-marquee-color! function) +;; (define-extern add-marquee-color! function) +;; (define-extern update-mood-ctymarka function) ;; (function mood-context float int none :behavior time-of-day-proc) +;; (define-extern init-mood-mountain function) ;; (function mood-context uint) +;; (define-extern update-mood-mountain function) ;; (function mood-context float int none :behavior time-of-day-proc) +;; (define-extern update-mood-ctyinda function) +;; (define-extern update-mood-ctyindb function) +;; (define-extern init-mood-atoll function) ;; (function mood-context float) +;; (define-extern update-mood-atoll function) ;; (function mood-context float int none :behavior time-of-day-proc) +;; (define-extern set-atoll-explosion! function) ;; (function float float) +;; (define-extern update-mood-atollext function) ;; (function mood-context float int none :behavior time-of-day-proc) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; mh-wasp ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype mh-wasp-shot (metalhead-shot) + () + :method-count-assert 41 + :size-assert #x210 + :flag-assert #x2901900210 + ) +|# + +#| +(deftype mh-wasp (hover-enemy) + ((gun-jmod joint-mod-rotate-local :inline :offset-assert 976) + (entity-group basic :offset-assert 1008) + (smoke-part basic :offset-assert 1012) + (engine-part basic :offset-assert 1016) + (old-gravity float :offset-assert 1024) + (knocked-anim int32 :offset-assert 1028) + (knocked-recover-anim int32 :offset-assert 1032) + (last-fire-time uint64 :offset-assert 1040) + (bridge-index int32 :offset-assert 1048) + (gun-x-angle float :offset-assert 1052) + (gun-x-angle-final float :offset-assert 1056) + (path-u float :offset-assert 1060) + (path-du float :offset-assert 1064) + (path-du-final float :offset-assert 1068) + (path-dest float :offset-assert 1072) + (sound-id uint32 :offset-assert 1076) + (attack-wait-min float :offset-assert 1080) + (attack-wait-max float :offset-assert 1084) + (attack-miss-dist-min float :offset-assert 1088) + (attack-miss-dist-max float :offset-assert 1092) + (attack-miss-dist-curr float :offset-assert 1096) + ) + :method-count-assert 181 + :size-assert #x44c + :flag-assert #xb503d0044c + (:methods + (mh-wasp-method-180 () none) ;; 180 + ) + (:state-methods + ambush ;; 47 + notice ;; 35 + die-explode ;; 179 + hostile ;; 38 + attack ;; 177 + knocked-recover ;; 32 + die-now ;; 178 + ) + ) +|# + +;; (define-extern *mh-wasp-exploder-params* joint-exploder-static-params) +;; (define-extern *fact-info-mh-wasp-defaults* fact-info-enemy-defaults) +;; (define-extern *mh-wasp-enemy-info* enemy-info) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; hfrag-vu1 ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern hfrag-vu1-block object) +;; (define-extern hfrag-setup-constants function) +;; (define-extern hfrag-add-constants function) +;; (define-extern hfrag-vu1-end-buffer function) +;; (define-extern hfrag-vu1-init-buf function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; mood-funcs2 ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype vinroom-states (structure) + ((main float :offset-assert 0) + (flicker1 float :offset-assert 4) + (flicker2 float :offset-assert 8) + (warp float :offset-assert 12) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype hideout-states (structure) + ((flame0 flames-state :inline :offset-assert 0) + (flame1 flames-state :inline :offset-assert 8) + ) + :method-count-assert 9 + :size-assert #xf + :flag-assert #x90000000f + ) +|# + +#| +(deftype hiphog-states (structure) + ((door entity :offset-assert 0) ;; guessed by decompiler + (door-current-interp float :offset-assert 4) + (door-target-interp float :offset-assert 8) + ) + :method-count-assert 9 + :size-assert #xc + :flag-assert #x90000000c + ) +|# + +#| +(deftype onintent-states (structure) + ((flame0 flames-state :inline :offset-assert 0) + (flame1 flames-state :inline :offset-assert 8) + (flame2 flames-state :inline :offset-assert 16) + (green-flame flames-state :inline :offset-assert 24) + (totem0 flames-state :inline :offset-assert 32) + (totem1 flames-state :inline :offset-assert 40) + ) + :method-count-assert 9 + :size-assert #x2f + :flag-assert #x90000002f + ) +|# + +#| +(deftype oracle-states (structure) + ((flame0 flames-state :inline :offset-assert 0) + (flame1 flames-state :inline :offset-assert 8) + (flame2 flames-state :inline :offset-assert 16) + (blue-flame flames-state :inline :offset-assert 24) + (door-entity entity :offset-assert 32) ;; guessed by decompiler + (door-current float :offset-assert 36) + (door-target float :offset-assert 40) + (purple-flag symbol :offset-assert 44) ;; guessed by decompiler + (purple float :offset-assert 48) + (purple-noise float :offset-assert 52) + ) + :method-count-assert 9 + :size-assert #x38 + :flag-assert #x900000038 + ) +|# + +#| +(deftype gungame-states (structure) + ((florescent florescent-state :inline :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x6 + :flag-assert #x900000006 + ) +|# + +#| +(deftype freehq-states (structure) + ((flicker float :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x4 + :flag-assert #x900000004 + ) +|# + +#| +(deftype default-interior-states (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ) +|# + +#| +(deftype garage-states (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ) +|# + +;; (define-extern update-mood-default-interior function) ;; (function mood-context none :behavior time-of-day-proc) +;; (define-extern update-mood-default-interior-ambient function) +;; (define-extern update-vinroom-lights function) ;; (function mood-context none) +;; (define-extern update-mood-vinroom function) ;; (function mood-context none :behavior time-of-day-proc) +;; (define-extern update-hideout-lights function) ;; (function mood-context none) +;; (define-extern update-mood-hideout function) ;; (function mood-context none :behavior time-of-day-proc) +;; (define-extern init-mood-hiphog function) ;; (function mood-context none) +;; (define-extern update-hiphog-lights function) ;; (function mood-context none) +;; (define-extern update-mood-hiphog function) ;; (function mood-context float none :behavior time-of-day-proc) +;; (define-extern update-onintent-lights function) ;; (function mood-context none) +;; (define-extern update-mood-onintent function) ;; (function mood-context none :behavior time-of-day-proc) +;; (define-extern init-mood-oracle function) ;; (function mood-context symbol) +;; (define-extern update-mood-oracle function) ;; (function mood-context none :behavior time-of-day-proc) +;; (define-extern set-oracle-purple-flag! function) ;; (function symbol symbol) +;; (define-extern update-gungame-lights function) ;; (function mood-context none) +;; (define-extern update-mood-gungame function) ;; (function mood-context none :behavior time-of-day-proc) +;; (define-extern init-mood-garage function) ;; (function mood-context symbol) +;; (define-extern update-garage-lights function) ;; (function mood-context none) +;; (define-extern update-mood-garage function) ;; (function mood-context object int none :behavior time-of-day-proc) +;; (define-extern update-mood-freehq function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; lightning-new ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *lightning-alpha-additive* object) +;; (define-extern *lightning-alpha-blend* object) +;; (define-extern *lightning-alpha-subtractive* object) +;; (define-extern matrix<-vector-yz2! function) +;; (define-extern choose-nice-perp function) +;; (define-extern lightning-new-tracker-init-by-other function) +;; (define-extern create-lightning-tracker-new function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; sky-tng ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern set-tex-offset function) ;; (function int int none) +;; (define-extern draw-large-polygon function) +;; (define-extern clip-polygon-against-positive-hyperplane function) +;; (define-extern clip-polygon-against-negative-hyperplane function) +;; (define-extern render-sky-quad function) ;; (function (inline-array sky-vertex) dma-buffer none) +;; (define-extern render-sky-tri function) ;; (function (inline-array sky-vertex) dma-buffer none) +;; (define-extern close-sky-buffer function) ;; (function dma-buffer none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; fac-part ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *range-ffexplo-dust-color* curve-color-fast) +;; (define-extern *range-ffexplo-dust-alpha* curve2d-fast) +;; (define-extern *range-ffexplo-dust-scale-x* curve2d-fast) +;; (define-extern *range-ffexplo-dust-scale-y* curve2d-fast) +;; (define-extern *curve-ffexplo-dust-alpha* curve2d-fast) +;; (define-extern *curve-ffexplo-dust-scale-x* curve2d-fast) +;; (define-extern *curve-ffexplo-dust-scale-y* curve2d-fast) +;; (define-extern *part-fac-fighter-explosion-dust-in-curve-settings* object) +;; (define-extern *range-ffexplo-color* curve-color-fast) +;; (define-extern *range-ffexplo-alpha* curve2d-fast) +;; (define-extern *range-ffexplo-scale-x* curve2d-fast) +;; (define-extern *range-ffexplo-scale-y* curve2d-fast) +;; (define-extern *curve-ffexplo-alpha* curve2d-fast) +;; (define-extern *curve-ffexplo-scale-x* curve2d-fast) +;; (define-extern *curve-ffexplo-scale-y* curve2d-fast) +;; (define-extern *part-fac-fighter-explosion-texture-curve-settings* object) +;; (define-extern *range-fgtexplo-color* curve-color-fast) +;; (define-extern *range-fgtexplo-alpha* curve2d-fast) +;; (define-extern *range-fgtexplo-scale-x* curve2d-fast) +;; (define-extern *range-fgtexplo-scale-y* curve2d-fast) +;; (define-extern *curve-fgtexplo-alpha* curve2d-fast) +;; (define-extern *curve-fgtexplo-scale-x* curve2d-fast) +;; (define-extern *curve-fgtexplo-scale-y* curve2d-fast) +;; (define-extern *part-fac-tower-explosion-texture-curve-settings* object) +;; (define-extern *range-ftexplo-dust-color* curve-color-fast) +;; (define-extern *range-ftexplo-dust-alpha* curve2d-fast) +;; (define-extern *range-ftexplo-dust-scale-x* curve2d-fast) +;; (define-extern *range-ftexplo-dust-scale-y* curve2d-fast) +;; (define-extern *curve-ftexplo-dust-alpha* curve2d-fast) +;; (define-extern *curve-ftexplo-dust-scale-x* curve2d-fast) +;; (define-extern *curve-ftexplo-dust-scale-y* curve2d-fast) +;; (define-extern *part-fac-tank-explosion-dust-in-curve-settings* object) +;; (define-extern *range-ftexplo-color* curve-color-fast) +;; (define-extern *range-ftexplo-alpha* curve2d-fast) +;; (define-extern *range-ftexplo-scale-x* curve2d-fast) +;; (define-extern *range-ftexplo-scale-y* curve2d-fast) +;; (define-extern *curve-ftexplo-alpha* curve2d-fast) +;; (define-extern *curve-ftexplo-scale-x* curve2d-fast) +;; (define-extern *curve-ftexplo-scale-y* curve2d-fast) +;; (define-extern *part-fac-tank-explosion-texture-curve-settings* object) +;; (define-extern *range-gthoexplo-color* curve-color-fast) +;; (define-extern *range-gthoexplo-alpha* curve2d-fast) +;; (define-extern *range-gthoexplo-scale-x* curve2d-fast) +;; (define-extern *range-gthoexplo-scale-y* curve2d-fast) +;; (define-extern *curve-gthoexplo-alpha* curve2d-fast) +;; (define-extern *curve-gthoexplo-scale-x* curve2d-fast) +;; (define-extern *curve-gthoexplo-scale-y* curve2d-fast) +;; (define-extern *part-gun-tower-hit-object-texture-curve-settings* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; load-state ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern level-base-level-name function) +;; (define-extern *borrow-city-expansion-list* object) +;; (define-extern *borrow-city-status-list* object) +;; (define-extern borrow-city-expansion function) +;; (define-extern add-want-level function) +;; (define-extern *display-load-commands* object) ;; symbol +;; (define-extern *backup-load-state* object) ;; load-state +;; (define-extern *load-state* object) ;; load-state + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; level ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern level-memory-mode->string function) +;; (define-extern lookup-level-info function) ;; (function symbol level-load-info) +;; (define-extern remap-level-name function) ;; (function level-load-info symbol) +;; (define-extern add-bsp-drawable function) ;; (function bsp-header level symbol display-frame none) +;; (define-extern *login-state* object) ;; login-state +;; (define-extern *print-login* object) ;; symbol +;; (define-extern load-buffer-resize function) ;; (function level dgo-header none) +;; (define-extern level-find-borrow-slot function) +;; (define-extern level-update-after-load function) ;; (function level login-state level) +;; (define-extern bg function) ;; (function symbol none) +;; (define-extern play function) ;; (function symbol symbol int) +;; (define-extern play-boot function) ;; (function none) +;; (define-extern sound-bank-name->mode function) +;; (define-extern update-sound-banks function) ;; (function int) +;; (define-extern show-level function) ;; (function symbol int) +;; (define-extern *default-level* object) ;; level + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; water-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype water-control (basic) + ((flags water-flag :offset-assert 4) ;; water-flags + (process target :offset-assert 8) ;; guessed by decompiler + (joint-index int32 :offset-assert 12) + (top-y-offset float :offset-assert 16) + (attack-id uint32 :offset-assert 20) + (enter-water-time uint64 :offset-assert 24) ;; time-frame + (wade-time uint64 :offset-assert 32) ;; time-frame + (on-water-time uint64 :offset-assert 40) ;; time-frame + (enter-swim-time uint64 :offset-assert 48) ;; time-frame + (swim-time uint64 :offset-assert 56) ;; time-frame + (base-height meters :offset-assert 64) + (wade-height meters :offset-assert 68) + (swim-height meters :offset-assert 72) + (surface-height meters :offset-assert 76) + (bottom-height meters :offset-assert 80) + (collide-height meters :offset-assert 84) + (height meters :offset-assert 88) + (height-offset float 4 :offset-assert 92) ;; guessed by decompiler + (base-ocean-offset meters :offset-assert 92) + (real-ocean-offset meters :offset-assert 92) + (ocean-offset meters :offset-assert 96) + (bob-offset meters :offset-assert 100) + (align-offset meters :offset-assert 104) + (swim-depth meters :offset-assert 108) + (bob smush-control :inline :offset-assert 112) + (ripple uint64 :offset-assert 144) ;; handle + (ripple-size meters :offset-assert 152) + (wake-size meters :offset-assert 156) + (bottom vector 2 :offset-assert 160) ;; guessed by decompiler + (top vector 2 :offset-assert 192) ;; guessed by decompiler + (enter-water-pos vector :inline :offset-assert 224) + (drip-old-pos vector :inline :offset-assert 240) + (drip-joint-index int32 :offset-assert 256) + (drip-wetness float :offset-assert 260) + (drip-time uint64 :offset-assert 264) ;; time-frame + (drip-speed float :offset-assert 272) + (drip-height meters :offset-assert 276) + (drip-mult float :offset-assert 280) + (distort-time uint64 :offset-assert 288) ;; time-frame + (enter-water-sound uint128 :offset-assert 304) + (normal vector :inline :offset-assert 320) + ) + :method-count-assert 18 + :size-assert #x150 + :flag-assert #x1200000150 + (:methods + ;; (new (symbol type process int float float float) _type_ 0) + (water-control-method-9 () none) ;; 9 ;; (water-control-method-9 (_type_) none 9) + (water-control-method-10 () none) ;; 10 ;; (water-control-method-10 (_type_) none 10) + (water-control-method-11 () none) ;; 11 ;; (start-bobbing! (_type_ float int int) none 11) + (water-control-method-12 () none) ;; 12 ;; (distance-from-surface (_type_) float 12) + (water-control-method-13 () none) ;; 13 ;; (spawn-ripples (_type_ float vector int vector symbol) none 13) + (water-control-method-14 () none) ;; 14 ;; (display-water-marks? (_type_) symbol 14) + (water-control-method-15 () none) ;; 15 ;; (enter-water (_type_) none 15) + (water-control-method-16 () none) ;; 16 ;; (water-control-method-16 (_type_) none 16) + (water-control-method-17 () none) ;; 17 + ) + ) +|# + +#| +(deftype water-vol (process-hidden) + () + :method-count-assert 15 + :size-assert #x80 + :flag-assert #xf00000080 + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; text ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; game-text-info is already defined! + +;; (define-extern *expand-buf-number* object) ;; int +;; (define-extern *game-text-word* object) ;; string +;; (define-extern *game-text-line* object) ;; string +;; (define-extern *expanded-text-line0* object) ;; string +;; (define-extern *expanded-text-line1* object) ;; string +;; (define-extern *level-text-file-load-flag* object) ;; symbol +;; (define-extern convert-korean-text function) ;; (function string string) +;; (define-extern text-is-loading object) ;; symbol +;; (define-extern load-game-text-info function) ;; (function string (pointer object) kheap int) +;; (define-extern load-level-text-files function) ;; (function int none) +;; (define-extern draw-debug-text-box function) ;; (function font-context none) +;; (define-extern print-game-text-scaled function) ;; (function string float font-context bucket-id none) +;; (define-extern print-game-text function) ;; (function string font-context symbol int bucket-id float) +;; (define-extern disable-level-text-file-loading function) ;; (function none) +;; (define-extern enable-level-text-file-loading function) ;; (function none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; collide-probe ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype collide-probe-stack-elem (structure) + ((child uint32 :offset-assert 0) + (count uint32 :offset-assert 4) + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +#| +(deftype collide-probe-stack (structure) + ((data collide-probe-stack-elem 1024 :offset-assert 0) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x4000 + :flag-assert #x900004000 + ) +|# + +;; (define-extern creates-new-method? function) ;; (function type int symbol) +;; (define-extern overrides-parent-method? function) ;; (function type int symbol) +;; (define-extern describe-methods function) ;; (function type symbol) +;; (define-extern indent-to function) ;; (function int none) +;; (define-extern probe-traverse-draw-node function) ;; (function draw-node int none) +;; (define-extern probe-traverse-inline-array-node function) ;; (function drawable-inline-array-node int none) +;; (define-extern probe-traverse-collide-fragment function) ;; (function drawable-tree-collide-fragment int none) +;; (define-extern *collide-probe-stack* object) ;; collide-probe-stack +;; (define-extern collide-vu0-block object) ;; vu-function +;; (define-extern collide-probe-node function) ;; (function (inline-array draw-node) int collide-list int) +;; (define-extern print-out function) ;; (function int object) +;; (define-extern collide-probe-instance-tie-collide-frags function) ;; (function none) +;; (define-extern collide-probe-instance-tie function) ;; (function object int collide-list int int) +;; (define-extern collide-probe-collide-fragment-tree-make-list function) ;; (function drawable-tree-collide-fragment collide-list none) +;; (define-extern collide-probe-instance-tie-tree-make-list function) ;; (function drawable-tree-instance-tie collide-list int) +;; (define-extern collide-upload-vu0 function) ;; (function none) +;; (define-extern collide-probe-make-list function) ;; (function level collide-list none) +;; (define-extern distc function) ;; (function vector vector float) +;; (define-extern interpolate function) ;; (function float float float float float float) +;; (define-extern misty-ambush-height function) ;; (function vector float) +;; (define-extern misty-ambush-height-probe function) ;; (function vector float float) +;; (define-extern pke-collide-test function) ;; (function none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; entity ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype debug-actor-info (basic) + ((name basic :offset-assert 4) + (handle uint64 :offset-assert 8) ;; handle + (process basic :offset-assert 16) + (pid int32 :offset-assert 20) + ) + :method-count-assert 9 + :size-assert #x18 + :flag-assert #x900000018 + ) +|# + +;; actor-group is already defined! + +#| +(deftype entity (res-lump) + ((trans vector :inline :offset-assert 28) + (aid uint32 :offset-assert 44) + ) + :method-count-assert 27 + :size-assert #x34 + :flag-assert #x1b00000034 + (:methods + (entity-method-22 () none) ;; 22 ;; (birth! (_type_) _type_ 22) + (entity-method-23 () none) ;; 23 ;; (kill! (_type_) _type_ 23) + (entity-method-24 () none) ;; 24 ;; (add-to-level! (_type_ level-group level actor-id) none 24) + (entity-method-25 () none) ;; 25 ;; (remove-from-level! (_type_ level-group) _type_ 25) + (entity-method-26 () none) ;; 26 ;; (get-level (_type_) level 26) + ) + ) +|# + +#| +(deftype entity-nav-mesh (entity) + ((UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + ) + :method-count-assert 29 + :size-assert #x38 + :flag-assert #x1d00000038 + (:methods + (entity-nav-mesh-method-27 () none) ;; 27 ;; (initialize-nav-mesh! (_type_) none 27) + (entity-nav-mesh-method-28 () none) ;; 28 ;; (debug-draw (_type_) none 28) + ) + ) +|# + +#| +(deftype entity-actor (entity) + ((etype type :offset-assert 52) ;; guessed by decompiler + (task uint8 :offset-assert 56) ;; game-task + (kill-mask task-mask :offset-assert 48) ;; guessed by decompiler + (vis-id int16 :offset-assert 58) + (quat vector :inline :offset-assert 60) ;; quaternion :inline + ) + :method-count-assert 33 + :size-assert #x50 + :flag-assert #x2100000050 + (:methods + (entity-actor-method-27 () none) ;; 27 ;; (next-actor (_type_) entity-actor 27) + (entity-actor-method-28 () none) ;; 28 ;; (prev-actor (_type_) entity-actor 28) + (entity-actor-method-29 () none) ;; 29 ;; (debug-print (_type_ symbol type) none 29) + (entity-actor-method-30 () none) ;; 30 ;; (toggle-status (_type_ entity-perm-status symbol) none 30) + (entity-actor-method-31 () none) ;; 31 ;; (get-simple-travel-vector (_type_ vector vector vector object float) nav-mesh 31) + (entity-actor-method-32 () none) ;; 32 ;; (project-point-to-nav-mesh (_type_ vector vector nav-poly float) nav-poly 32) + ) + ) +|# + +;; (define-extern *spawn-actors* object) ;; symbol +;; (define-extern *compact-actors* object) ;; symbol +;; (define-extern *vis-actors* object) ;; symbol +;; (define-extern entity-by-name function) ;; (function string entity) +;; (define-extern entity-by-type function) ;; (function type entity-actor) +;; (define-extern entity-by-aid function) ;; (function uint entity) +;; (define-extern entity-actor-from-level-name function) ;; (function symbol entity-actor) +;; (define-extern entity-nav-mesh-by-aid function) ;; (function actor-id entity-nav-mesh) +;; (define-extern nav-mesh-from-res-tag function) ;; (function entity symbol int nav-mesh) +;; (define-extern entity-by-meters function) ;; (function float float float entity-actor) +;; (define-extern process-by-ename function) ;; (function string process) +;; (define-extern entity-process-count function) ;; (function symbol int) +;; (define-extern entity-count function) ;; (function int) +;; (define-extern entity-remap-names function) ;; (function pair none) +;; (define-extern process-status-bits function) ;; (function process symbol none) +;; (define-extern process-entity-set! function) ;; (function process entity entity) +;; (define-extern process-task-mask function) ;; (function process task-mask) +;; (define-extern update-actor-vis-box function) ;; (function process-drawable vector vector none) +;; (define-extern expand-bounding-box function) ;; (function vector vector vector vector none) +;; (define-extern expand-bounding-box-from-nav-meshes function) +;; (define-extern expand-vis-box-with-point function) ;; (function entity vector none) +;; (define-extern *debug-actor-info* debug-actor-info) ;; debug-actor-info +;; (define-extern *pid-string* object) ;; string +;; (define-extern debug-actor function) ;; (function string none) +;; (define-extern debug-actor-process function) +;; (define-extern draw-actor-marks function) ;; (function process none) +;; (define-extern init-entity function) ;; (function process entity-actor type none) +;; (define-extern entity-deactivate-handler function) ;; (function process entity-actor none) +;; (define-extern check-for-rougue-process function) ;; (function process int int level none) +;; (define-extern process-drawable-scale-from-entity! function) ;; (function process-drawable entity none) +;; (define-extern process-drawable-from-entity! function) ;; (function process-drawable entity-actor none) +;; (define-extern reset-actors function) ;; (function symbol none) +;; (define-extern reset-cameras function) ;; (function none) +;; (define-extern entity-birth-no-kill function) ;; (function entity process) +;; (define-extern entity-task-complete-on function) ;; (function entity none) +;; (define-extern entity-task-complete-off function) ;; (function entity none) +;; (define-extern process-entity-status! function) ;; (function process entity-perm-status symbol entity-perm-status) +;; (define-extern find-nearest-entity function) ;; (function vector type entity) +;; (define-extern entity-speed-test function) ;; (function string entity) +;; (define-extern dump-entity-remap function) ;; (function object object none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; wvehicle-wheel ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype vehicle-wheel-init-params (structure) + ((skel basic :offset-assert 0) + (skel-blur basic :offset-assert 4) + (level basic :offset-assert 8) + (radius float :offset-assert 12) + (collision-mesh-index int8 :offset-assert 16) + (position vector :inline :offset-assert 32) + (rotation quaternion :inline :offset-assert 48) + (scale vector :inline :offset-assert 64) + ) + :method-count-assert 9 + :size-assert #x50 + :flag-assert #x900000050 + ) +|# + +#| +(deftype vehicle-wheel (rigid-body-object) + ((collision-enable? basic :offset-assert 288) + (normal-look lod-set :inline :offset-assert 292) + (blur-look lod-set :inline :offset-assert 344) + ) + :method-count-assert 59 + :size-assert #x189 + :flag-assert #x3b01100189 + (:state-methods + idle ;; 28 + explode ;; 56 + fade-out ;; 57 + die ;; 58 + ) + ) +|# + +;; (define-extern *vehicle-wheel-constants* object) +;; (define-extern vehicle-wheel-init-by-other function) +;; (define-extern vehicle-wheel-spawn function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; effect-control ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *footstep-surface* object) ;; pat-surface +;; (define-extern *debug-effect-control* object) ;; symbol +;; (define-extern sound-name-with-material function) ;; (function string pat-surface string sound-name) +;; (define-extern effect-param->sound-spec function) ;; (function sound-spec (pointer float) int process-focusable sound-spec) +;; (define-extern target-land-effect function) ;; (function none :behavior target) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; lfaccity-mood ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype lfaccity-states (structure) + ((light light-state :inline :offset-assert 0) + (roty float :offset-assert 8) + (rotz float :offset-assert 12) + (rot-bob float :offset-assert 16) + (wobble float :offset-assert 20) + (bob float :offset-assert 24) + (zero-test int32 :offset-assert 28) + ) + :method-count-assert 9 + :size-assert #x20 + :flag-assert #x900000020 + ) +|# + +#| +(deftype faccity-pparticle-info (structure) + ((original-pos vector :inline :offset-assert 0) + (inited? basic :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x14 + :flag-assert #x900000014 + ) +|# + +#| +(deftype faccity-pparticle-array (inline-array-class) + ((data UNKNOWN :dynamic :offset-assert 16) + ) + :method-count-assert 14 + :size-assert #x10 + :flag-assert #xe00000010 + ) +|# + +#| +(deftype lfaccity-pparticle-mover (process-drawable) + ((actor-group uint32 :offset-assert 196) + (actor-group-count int32 :offset-assert 200) + (particles basic :offset-assert 204) + ) + :method-count-assert 22 + :size-assert #xd4 + :flag-assert #x16006000d4 + (:methods + (lfaccity-pparticle-mover-method-21 () none) ;; 21 + ) + (:state-methods + active ;; 20 + ) + ) +|# + +;; (define-extern *faccity-part-updater* object) +;; (define-extern update-mood-lfaccity function) +;; (define-extern lfaccity-pparticle-mover-init-by-other function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; squad-control-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype squad-unit-settings (structure) + ((target-count int8 :offset-assert 0) + (shot-count int8 :offset-assert 1) + (rand-shot-count int8 :offset-assert 2) + (inaccuracy float :offset-assert 4) + (acquire-delay uint16 :offset-assert 8) + (shot-delay uint16 :offset-assert 10) + (burst-delay uint16 :offset-assert 12) + (rand-burst-delay uint16 :offset-assert 14) + (rand-shot-delay uint16 :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x12 + :flag-assert #x900000012 + ) +|# + +#| +(deftype squad-target-status (structure) + ((flags squad-target-flag :offset-assert 0) + (handle uint64 :offset-assert 8) + (last-seen-time uint64 :offset-assert 16) + (position vector :inline :offset-assert 32) + (velocity vector :inline :offset-assert 48) + (threat-level float :offset-assert 64) + ) + :method-count-assert 9 + :size-assert #x44 + :flag-assert #x900000044 + ;; field squad-target-flag is likely a value type. + ) +|# + +#| +(deftype squad-alert-state (structure) + ((flags squad-alert-flag :offset-assert 0) + (level uint8 :offset-assert 1) + (max-level uint8 :offset-assert 2) + (guards-in-sight-of-target int8 :offset-assert 3) + (guard-aim-count int8 :offset-assert 4) + (guard-inaccuracy-factor float :offset-assert 8) + (guard-target-level float :offset-assert 12) + (duration uint32 :offset-assert 16) + (start-time uint64 :offset-assert 24) + (notify-time uint64 :offset-assert 32) + (alarm-sound-id uint32 :offset-assert 40) + (target-status-array UNKNOWN 3 :offset-assert 48) + (target-status squad-target-status :inline :offset-assert 48) + ) + :method-count-assert 10 + :size-assert #x120 + :flag-assert #xa00000120 + ;; field squad-alert-flag is likely a value type. + (:methods + (squad-alert-state-method-9 () none) ;; 9 + ) + ) +|# + +#| +(deftype primary-target-pos-vel (structure) + ((position vector :inline :offset-assert 0) + (velocity vector :inline :offset-assert 16) + (time uint32 :offset-assert 28) + ) + :method-count-assert 9 + :size-assert #x20 + :flag-assert #x900000020 + ) +|# + +#| +(deftype squad-control (basic) + ((sync-clock uint8 :offset-assert 4) + (sync-mask-8 uint8 :offset-assert 5) + (sync-mask-16 uint16 :offset-assert 6) + (sync-mask-32 uint32 :offset-assert 8) + (alert-state squad-alert-state :inline :offset-assert 16) + (primary-target-history UNKNOWN 16 :offset-assert 304) + ) + :method-count-assert 34 + :size-assert #x330 + :flag-assert #x2200000330 + (:methods + (squad-control-method-9 () none) ;; 9 + (squad-control-method-10 () none) ;; 10 + (squad-control-method-11 () none) ;; 11 + (squad-control-method-12 () none) ;; 12 + (squad-control-method-13 () none) ;; 13 + (squad-control-method-14 () none) ;; 14 + (squad-control-method-15 () none) ;; 15 + (squad-control-method-16 () none) ;; 16 + (squad-control-method-17 () none) ;; 17 + (squad-control-method-18 () none) ;; 18 + (squad-control-method-19 () none) ;; 19 + (squad-control-method-20 () none) ;; 20 + (squad-control-method-21 () none) ;; 21 + (squad-control-method-22 () none) ;; 22 + (squad-control-method-23 () none) ;; 23 + (squad-control-method-24 () none) ;; 24 + (squad-control-method-25 () none) ;; 25 + (squad-control-method-26 () none) ;; 26 + (squad-control-method-27 () none) ;; 27 + (squad-control-method-28 () none) ;; 28 + (squad-control-method-29 () none) ;; 29 + (squad-control-method-30 () none) ;; 30 + (squad-control-method-31 () none) ;; 31 + (squad-control-method-32 () none) ;; 32 + (squad-control-method-33 () none) ;; 33 + ) + ) +|# + +;; (define-extern *waswide-squad-control* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ctywide-obs-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype city-race-ring-info (structure) + ((pos vector :inline :offset-assert 0) + (angle float :offset-assert 12) + (boost float :offset-assert 16) + (dist float :offset-assert 20) + ) + :method-count-assert 10 + :size-assert #x18 + :flag-assert #xa00000018 + (:methods + (city-race-ring-info-method-9 () none) ;; 9 ;; (city-race-ring-info-method-9 (_type_ symbol) none 9) + ) + ) +|# + +#| +(deftype city-ambush-spot (structure) + ((pos vector :inline :offset-assert 0) + (obj-type uint8 :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x11 + :flag-assert #x900000011 + ) +|# + +#| +(deftype city-ambush-info (structure) + ((count int16 :offset-assert 0) + (array (inline-array city-ambush-spot) :offset-assert 4) ;; guessed by decompiler + ) + :method-count-assert 10 + :size-assert #x8 + :flag-assert #xa00000008 + (:methods + (city-ambush-info-method-9 () none) ;; 9 ;; (city-ambush-info-method-9 (_type_ traffic-object-spawn-params) none 9) + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; collide-frag ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; collide-touch ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype add-prims-touching-work (structure) + ((tri1 collide-tri-result :offset-assert 0) + (tri2 collide-tri-result :offset-assert 4) + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +;; (define-extern get-intersect-point function) ;; (function vector touching-prims-entry collide-shape touching-shapes-entry vector) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; speech ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern speech-type->string function) +;; (define-extern gui-status->string function) +;; (define-extern *speech-control* object) ;; speech-control + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; collide-edge-grab ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype pbhp-stack-vars (structure) + ((edge collide-edge-edge :offset-assert 0) + (allocated basic :offset-assert 4) + (neg-hold-pt vector :inline :offset-assert 16) + (split-vec vector :inline :offset-assert 32) + ) + :method-count-assert 9 + :size-assert #x30 + :flag-assert #x900000030 + ) +|# + +#| +(deftype faei-stack-vars (structure) + ((hold-edge-vec-norm vector :inline :offset-assert 0) + (adj-edge-vec-norm vector :inline :offset-assert 16) + (found-left? symbol :offset-assert 32) ;; guessed by decompiler + (left-dot float :offset-assert 36) + (found-right? symbol :offset-assert 40) ;; guessed by decompiler + (right-dot float :offset-assert 44) + ) + :method-count-assert 9 + :size-assert #x30 + :flag-assert #x900000030 + ) +|# + +;; (define-extern *no-walk-surface* surface) ;; surface + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; hover-formation-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype form-search-info (structure) + ((form uint32 :offset-assert 0) ;; guessed by decompiler + (count int32 :offset-assert 4) + (pos-table (inline-array vector) :offset-assert 8) ;; guessed by decompiler + (actor-position vector 16 :offset-assert 16) ;; guessed by decompiler + (actor-valid? symbol 16 :offset-assert 272) ;; guessed by decompiler + (index-table uint32 16 :offset-assert 336) ;; guessed by decompiler + (dest-pos-table vector 16 :offset-assert 400) ;; guessed by decompiler + (best-mapping uint32 16 :offset-assert 656) ;; guessed by decompiler + (best-cost float :offset-assert 720) + ) + :method-count-assert 9 + :size-assert #x2d4 + :flag-assert #x9000002d4 + ) +|# + +#| +(deftype hover-actor (structure) + ((handle uint64 :offset-assert 0) ;; handle + (offset vector :inline :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x20 + :flag-assert #x900000020 + ) +|# + +#| +(deftype hover-formation-control (basic) + ((search-info form-search-info :inline :offset-assert 16) + (entity entity :offset-assert 740) ;; guessed by decompiler + (anchor-proc uint64 :offset-assert 744) ;; handle + (actor-table handle 16 :offset-assert 752) ;; guessed by decompiler + (flags uint16 :offset-assert 880) + (formation-type uint64 :offset-assert 888) ;; formation-type + (center vector :inline :offset-assert 896) + (zone-to-world matrix :inline :offset-assert 912) + (world-to-zone matrix :inline :offset-assert 976) + (offset vector 2 :offset-assert 1040) ;; guessed by decompiler + (focus-quat quaternion :inline :offset-assert 1072) + (notice-dist float :offset-assert 1088) ;; meters + (rotation-inc float :offset-assert 1092) + (sub-graph-mask int32 :offset-assert 1096) + ) + :method-count-assert 21 + :size-assert #x44c + :flag-assert #x150000044c + (:methods + ;; (new (symbol type object entity float vector float handle) _type_ 0) + (hover-formation-control-method-9 () none) ;; 9 ;; (set-anchor-proc (_type_ handle) int 9) + (hover-formation-control-method-10 () none) ;; 10 ;; (hover-formation-control-method-10 (_type_ vector vector float) symbol 10) + (hover-formation-control-method-11 () none) ;; 11 ;; (hover-formation-control-method-11 (_type_) int 11) + (hover-formation-control-method-12 () none) ;; 12 ;; (is-formation-type-in-range (_type_) symbol 12) + (hover-formation-control-method-13 () none) ;; 13 ;; (hover-formation-control-method-13 (_type_ vector) vector 13) + (hover-formation-control-method-14 () none) ;; 14 ;; (hover-formation-control-method-14 (_type_) none 14) + (hover-formation-control-method-15 () none) ;; 15 ;; (hover-formation-control-method-15 (_type_ vector vector) vector 15) + (hover-formation-control-method-16 () none) ;; 16 ;; (hover-formation-control-method-16 (_type_) object 16) + (hover-formation-control-method-17 () none) ;; 17 ;; (hover-formation-control-method-17 (_type_ process) int 17) + (hover-formation-control-method-18 () none) ;; 18 ;; (hover-formation-control-method-18 (_type_ process) int 18) + (hover-formation-control-method-19 () none) ;; 19 ;; (try-update-formation-type (_type_ formation-type) int 19) + (hover-formation-control-method-20 () none) ;; 20 ;; (hover-formation-control-method-20 (_type_ object object) none 20) + ) + ) +|# + +#| +(deftype hover-formation (process) + ((formation hover-formation-control :offset-assert 128) ;; guessed by decompiler + (path path-control :offset-assert 132) ;; guessed by decompiler + (formation-timer uint64 :offset-assert 136) + ) + :method-count-assert 16 + :size-assert #x90 + :flag-assert #x1000100090 + (:methods + (hover-formation-method-14 () none) ;; 14 ;; (idle () _type_ :state 14) + (hover-formation-method-15 () none) ;; 15 ;; (hover-formation-method-15 (_type_ vector vector) int 15) + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; wcar-x-ride ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype v-x-ride (wcar-snake-base) + () + :method-count-assert 203 + :size-assert #xd60 + :flag-assert #xcb0ce00d60 + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; vehicle-util ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype vehicle-hud-request (structure) + ((handle uint64 :offset-assert 0) ;; handle + (hack-handle-init basic :offset-assert 0) + (priority float :offset-assert 8) + ) + :method-count-assert 9 + :size-assert #xc + :flag-assert #x90000000c + ) +|# + +#| +(deftype vehicle-hud-requests (structure) + ((time uint64 :offset-assert 0) ;; time-frame + (requests vehicle-hud-request 4 :offset-assert 8) ;; guessed by decompiler + ) + :method-count-assert 12 + :size-assert #x48 + :flag-assert #xc00000048 + (:methods + (vehicle-hud-requests-method-9 () none) ;; 9 ;; (vehicle-hud-requests-method-9 (_type_) none 9) + (vehicle-hud-requests-method-10 () none) ;; 10 ;; (vehicle-hud-requests-method-10 (_type_) vehicle-hud-request 10) + (vehicle-hud-requests-method-11 () none) ;; 11 ;; (vehicle-hud-requests-method-11 (_type_) vehicle-hud-request 11) + ) + ) +|# + +#| +(deftype vehicle-hud-chooser (structure) + ((cur vehicle-hud-requests :inline :offset-assert 0) + (last vehicle-hud-requests :inline :offset-assert 72) + ) + :method-count-assert 10 + :size-assert #x90 + :flag-assert #xa00000090 + (:methods + (vehicle-hud-chooser-method-9 () none) ;; 9 ;; (vehicle-hud-chooser-method-9 (_type_ handle float) symbol 9) + ) + ) +|# + +;; (define-extern *vehicle-hud-chooser* object) ;; vehicle-hud-chooser +;; (define-extern *pilot-edge-grab-info* object) ;; pilot-edge-grab-info + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; glist ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern glst-num-elements function) ;; (function glst-list int) +;; (define-extern glst-remove function) ;; (function glst-list glst-node glst-node) +;; (define-extern glst-remove-tail function) ;; (function glst-list glst-node) +;; (define-extern glst-remove-head function) ;; (function glst-list glst-node) +;; (define-extern glst-insert-before function) ;; (function glst-list glst-node glst-node glst-node) +;; (define-extern glst-insert-after function) ;; (function glst-list glst-node glst-node glst-node) +;; (define-extern glst-add-tail function) ;; (function glst-list glst-node glst-node) +;; (define-extern glst-add-head function) ;; (function glst-list glst-node glst-node) +;; (define-extern glst-init-list! function) ;; (function glst-list glst-list) +;; (define-extern glst-find-node-by-name function) ;; (function glst-list string glst-node) +;; (define-extern glst-get-node-by-index function) ;; (function glst-list int glst-node) +;; (define-extern glst-length-of-longest-name function) ;; (function glst-list int) +;; (define-extern glst-get-node-index function) ;; (function glst-list glst-node int) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; collide-shape ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern find-ground-point function) ;; (function control-info vector float float vector) +;; (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) ;; (function control-info collide-query vector none) +;; (define-extern cshape-reaction-default function) ;; (function control-info collide-query vector vector collide-status) +;; (define-extern cshape-reaction-just-move function) ;; (function control-info collide-query vector collide-status) +;; (define-extern collide-shape-draw-debug-marks function) ;; (function none) +;; (define-extern *col-timer* object) ;; stopwatch +;; (define-extern *frame-timer* object) ;; stopwatch +;; (define-extern *col-timer-enable* object) ;; symbol +;; (define-extern debug-report-col-stats function) ;; (function int) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; collide-shape-rider ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; target-tube ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype tube-info (basic) + ((entity basic :offset-assert 4) + (tube uint64 :offset-assert 8) ;; handle + (downhill vector :inline :offset-assert 16) + (centertube vector :inline :offset-assert 32) + (downtube vector :inline :offset-assert 48) + (sidetube vector :inline :offset-assert 64) + (foretube vector :inline :offset-assert 80) + (old-transv vector :inline :offset-assert 96) + (mod-x float :offset-assert 112) + (mod-y float :offset-assert 116) + (start-time uint64 :offset-assert 120) ;; time-frame + (turn-anim-targ float :offset-assert 128) + (turn-anim-frame float :offset-assert 132) + (turn-anim-vel float :offset-assert 136) + (tube-sound-id sound-id :offset-assert 140) ;; guessed by decompiler + (tube-sound-vol float :offset-assert 144) + (tube-sound-pitch float :offset-assert 148) + ) + :method-count-assert 9 + :size-assert #x98 + :flag-assert #x900000098 + ) +|# + +#| +(deftype tube-bank (basic) + () + :method-count-assert 9 + :size-assert #x4 + :flag-assert #x900000004 + ) +|# + +#| +(deftype slide-control (process-drawable) + ((target uint64 :offset-assert 200) ;; handle + (pos float :offset-assert 208) + (trans vector :inline :offset-assert 224) + (rot vector :inline :offset-assert 240) + (side vector :inline :offset-assert 256) + ) + :method-count-assert 22 + :size-assert #x110 + :flag-assert #x1600900110 + (:state-methods + slide-control-watch ;; 20, old: (slide-control-watch () _type_ :state 20) + slide-control-ride ;; 21, old: (slide-control-ride () _type_ :state 21) + ) + ) +|# + +;; (define-extern *tube-mods* surface) ;; surface +;; (define-extern *tube-jump-mods* surface) ;; surface +;; (define-extern *tube-hit-mods* surface) ;; surface +;; (define-extern *tube-surface* surface) ;; surface +;; (define-extern *TUBE-bank* tube-bank) ;; tube-bank +;; (define-extern tube-sounds function) ;; (function sound-id :behavior target) +;; (define-extern tube-thrust function) ;; (function float float none :behavior target) +;; (define-extern target-tube-post function) ;; (function none :behavior target) +;; (define-extern target-tube-start object) ;; (state handle target) +;; (define-extern target-tube-turn-anim function) ;; (function none :behavior target) +;; (define-extern target-tube-walk object) +;; (define-extern target-tube-jump object) ;; (state float float target) +;; (define-extern target-tube-hit object) ;; (state symbol attack-info target) +;; (define-extern target-tube-death object) ;; (state symbol target) +;; (define-extern distance-from-tangent function) ;; (function path-control float vector vector vector vector float) +;; (define-extern find-target-point function) ;; (function vector float :behavior slide-control) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; collide ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *collide-vif0-init* array) ;; (array uint32) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; desert-hover ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype hud-beast (hud) + () + :method-count-assert 27 + :size-assert #xac4 + :flag-assert #x1b0a500ac4 + ) +|# + +#| +(deftype task-manager-desert-hover (task-manager) + ((vehicle-h uint64 :offset-assert 236) + (actor-group uint32 :offset-assert 244) + (actor-group-count int32 :offset-assert 248) + (end-time uint64 :offset-assert 252) + (hud-counter uint64 :offset-assert 204) + ) + :method-count-assert 32 + :size-assert #x110 + :flag-assert #x2000900110 + (:state-methods + active ;; 15 + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; squad-control-city ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; nav-engine ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype nav-engine-spr-buffer (structure) + ((mem-addr (pointer nav-mesh) :offset-assert 0) ;; guessed by decompiler + (mem-nav uint32 :offset-assert 0) + (spr-addr (inline-array nav-control) :offset-assert 4) ;; guessed by decompiler + (spr-nav uint32 :offset-assert 4) + (q-size uint32 :offset-assert 8) + (i-nav uint8 :offset-assert 12) + (done int8 :offset-assert 13) + (nav-count int8 :offset-assert 14) + (i-pass int8 :offset-assert 15) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype nav-engine (structure) + ((spr-addr uint32 :offset-assert 0) + (nav-work-addr uint32 :offset-assert 4) + (nav-mesh-addr nav-mesh :offset-assert 8) ;; guessed by decompiler + (poly-array-addr uint32 :offset-assert 12) + (hash-sphere-addr uint32 :offset-assert 16) + (hash-buckets-addr uint32 :offset-assert 20) + (buf-nav-control-count int8 :offset-assert 24) + (max-pass-count int8 :offset-assert 25) + (output-sphere-hash uint8 :offset-assert 26) + (work-buf-array nav-engine-spr-buffer 3 :offset-assert 28) ;; guessed by decompiler + (spr-work nav-mesh-work :offset-assert 4) + (mem-work nav-mesh-work :offset-assert 76) + (spr-mesh nav-mesh :offset-assert 8) ;; guessed by decompiler + (mem-mesh nav-mesh :offset-assert 80) ;; guessed by decompiler + (spr-poly-array uint32 :offset-assert 12) + (mem-poly-array (inline-array nav-poly) :offset-assert 84) ;; guessed by decompiler + (hash-sphere-list uint32 :offset-assert 16) + (hash-buckets uint32 :offset-assert 20) + (to-spr-wait uint32 :offset-assert 88) + (from-spr-wait uint32 :offset-assert 92) + ) + :method-count-assert 22 + :size-assert #x60 + :flag-assert #x1600000060 + (:methods + (nav-engine-method-9 () none) ;; 9 ;; (inc-spr-addr! (_type_ uint) uint 9) + (nav-engine-method-10 () none) ;; 10 ;; (lay-out-spad-memory (_type_ nav-mesh) none 10) + (nav-engine-method-11 () none) ;; 11 ;; (set-up-mem-work (_type_) none 11) + (nav-engine-method-12 () none) ;; 12 ;; (add-spheres-from-mesh-user-list (_type_ sphere-hash nav-mesh) none 12) + (nav-engine-method-13 () none) ;; 13 ;; (add-all-spheres (_type_) none 13) + (nav-engine-method-14 () none) ;; 14 ;; (do-sphere-lookups (_type_) none 14) + (nav-engine-method-15 () none) ;; 15 ;; (update-nav-controls-pipelined-in-spr (_type_) none 15) + (nav-engine-method-16 () none) ;; 16 ;; (update-nav-controls-in-spr (_type_) none 16) + (nav-engine-method-17 () none) ;; 17 ;; (upload-nav-to-spr (_type_ nav-engine-spr-buffer) none 17) + (nav-engine-method-18 () none) ;; 18 ;; (download-nav-from-spr (_type_ nav-engine-spr-buffer) none 18) + (nav-engine-method-19 () none) ;; 19 ;; (do-callbacks (_type_ nav-engine-spr-buffer) none 19) + (nav-engine-method-20 () none) ;; 20 ;; (reloc-ptrs-to-spad (_type_ nav-engine-spr-buffer) none 20) + (nav-engine-method-21 () none) ;; 21 ;; (reloc-ptrs-to-mem (_type_ nav-engine-spr-buffer) none 21) + ) + ) +|# + +;; (define-extern nav-dma-send-to-spr-no-flush function) ;; (function pointer pointer int none) +;; (define-extern nav-dma-send-from-spr-no-flush function) ;; (function pointer pointer int none) +;; (define-extern inc-mod3 function) ;; (function int int) +;; (define-extern nav-state-patch-pointers function) ;; (function nav-state int none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; collide-planes ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern collide-planes-intersect function) +;; (define-extern collide-planes-test0 function) +;; (define-extern collide-planes-test1 function) +;; (define-extern collide-planes function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; spatial-hash ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype grid-hash-work (basic) + ((result-words uint8 32 :offset-assert 16) ;; guessed by decompiler + (result-bits uint8 32 :offset-assert 16) ;; guessed by decompiler + (object-id int32 :offset-assert 48) + (temp-box-min vector :inline :offset-assert 64) + (temp-box-max vector :inline :offset-assert 80) + (visit-count int32 :offset-assert 96) + (temp-time uint32 :offset-assert 100) + (queue-object-time uint32 :offset-assert 104) + (make-hash-time uint32 :offset-assert 108) + (search-time uint32 :offset-assert 112) + (add-object-time uint32 :offset-assert 116) + ) + :method-count-assert 9 + :size-assert #x78 + :flag-assert #x900000078 + ) +|# + +;; (define-extern *grid-hash-work* grid-hash-work) ;; grid-hash-work +;; (define-extern validate-bucket-bits function) ;; (function grid-hash (pointer grid-hash-word) symbol) +;; (define-extern draw-grid function) ;; (function vector vector (pointer int8) rgba none) +;; (define-extern draw-sphere-box function) ;; (function sphere rgba none) +;; (define-extern draw-line-sphere function) ;; (function vector vector float rgba none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; sewer-move-turret ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype sew-move-turret (process-drawable) + ((sound-id uint32 :offset-assert 200) + (use-doppler? basic :offset-assert 204) + ) + :method-count-assert 23 + :size-assert #xd0 + :flag-assert #x17005000d0 + (:methods + (sew-move-turret-method-22 () none) ;; 22 + ) + (:state-methods + idle ;; 20 + active ;; 21 + ) + ) +|# + +#| +(deftype sew-move-turret-shot (guard-shot) + ((doppler-sound uint32 :offset-assert 544) + (use-doppler? basic :offset-assert 548) + ) + :method-count-assert 41 + :size-assert #x228 + :flag-assert #x2901b00228 + ) +|# + +;; (define-extern sew-turret-shot-move function) +;; (define-extern spawn-sew-move-turret-projectile function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; actor-hash ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype actor-cshape-ptr (structure) + ((cshape collide-shape :offset-assert 0) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x4 + :flag-assert #x900000004 + ) +|# + +#| +(deftype actor-hash-bucket (structure) + ((length int16 :offset-assert 0) + (max-length int16 :offset-assert 2) + (data (inline-array actor-cshape-ptr) :offset-assert 4) ;; guessed by decompiler + ) + :method-count-assert 10 + :size-assert #x8 + :flag-assert #xa00000008 + (:methods + (actor-hash-bucket-method-9 () none) ;; 9 ;; (add-actor-cshape (_type_ collide-shape) none 9) + ) + ) +|# + +#| +(deftype actor-hash-buckets (structure) + ((hash spatial-hash :offset-assert 0) ;; guessed by decompiler + (list engine :offset-assert 4) ;; guessed by decompiler + (data actor-hash-bucket 4 :offset-assert 8) ;; guessed by decompiler + (tpos vector :inline :offset-assert 80) + ) + :method-count-assert 10 + :size-assert #x60 + :flag-assert #xa00000060 + (:methods + (actor-hash-buckets-method-9 () none) ;; 9 ;; (hash-actors (_type_) none 9) + ) + ) +|# + +;; (define-extern *actor-hash* object) ;; spatial-hash +;; (define-extern *actor-hash-buckets* object) ;; actor-hash-buckets +;; (define-extern update-actor-hash function) ;; (function none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; templea-texture ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *templea-water-texture-anim-array* texture-anim-array) +;; (define-extern *templea-warp-texture-anim-array* texture-anim-array) +;; (define-extern templea-warp-texture-anim-func function) +;; (define-extern *templeb-warp-texture-anim-array* texture-anim-array) +;; (define-extern templeb-warp-texture-anim-func function) +;; (define-extern *templec-water-texture-anim-array* texture-anim-array) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; merc-death ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *merc-death-globals* object) ;; vector +;; (define-extern birth-func-death-sparks function) ;; (function none) +;; (define-extern death-seed death-info) ;; death-info +;; (define-extern start-seed-effect function) ;; (function process-drawable vector cspace none) +;; (define-extern death-default death-info) ;; death-info +;; (define-extern death-warp-in death-info) ;; death-info +;; (define-extern death-warp-out death-info) ;; death-info +;; (define-extern sparticle-texture-glow-soft function) ;; (function sparticle-system sparticle-cpuinfo vector none) +;; (define-extern merc-death-spawn function) ;; (function int vector vector none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; camera ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern cam-slave-get-vector-with-offset function) ;; (function entity-actor vector symbol symbol) +;; (define-extern cam-slave-get-flags function) ;; (function entity symbol uint) +;; (define-extern cam-slave-get-float function) ;; (function entity symbol float float) +;; (define-extern cam-slave-get-fov function) ;; (function entity float) +;; (define-extern cam-slave-get-intro-step function) ;; (function entity float) +;; (define-extern cam-slave-get-interp-time function) ;; (function entity float) +;; (define-extern cam-slave-get-rot function) ;; (function entity-actor matrix matrix) +;; (define-extern cam-state-from-entity function) ;; (function entity (state camera-slave)) +;; (define-extern parameter-ease-none function) ;; (function object object) +;; (define-extern parameter-ease-clamp function) ;; (function float float) +;; (define-extern parameter-ease-lerp-clamp function) ;; (function float float) +;; (define-extern parameter-ease-sqrt-clamp function) ;; (function float float) +;; (define-extern fourth-power function) ;; (function float float) +;; (define-extern third-power function) ;; (function float float) +;; (define-extern parameter-ease-sqr-clamp function) ;; (function float float) +;; (define-extern parameter-ease-cube-clamp function) ;; (function float float) +;; (define-extern parameter-ease-sin-clamp function) ;; (function float float) +;; (define-extern *cam-res-string* object) ;; string +;; (define-extern cam-slave-init-vars function) ;; (function none :behavior camera-slave) +;; (define-extern cam-slave-go function) ;; (function (state camera-slave) none :behavior camera-slave) +;; (define-extern cam-slave-init function) ;; (function (state camera-slave) entity none :behavior camera-slave) +;; (define-extern cam-standard-event-handler function) ;; (function process int symbol event-message-block object :behavior camera-slave) +;; (define-extern cam-curve-pos function) ;; (function vector vector curve symbol vector :behavior camera-slave) +;; (define-extern cam-curve-setup function) ;; (function vector none :behavior camera-slave) +;; (define-extern cam-calc-follow! function) ;; (function cam-rotation-tracker vector symbol vector) +;; (define-extern mat-remove-z-rot function) ;; (function matrix vector matrix) +;; (define-extern slave-matrix-blend-2 function) ;; (function matrix cam-slave-options-u32 vector matrix matrix) +;; (define-extern vector-into-frustum-nosmooth! function) ;; (function matrix vector float vector) +;; (define-extern slave-set-rotation! function) ;; (function cam-rotation-tracker vector cam-slave-options-u32 float symbol none) +;; (define-extern v-slrp2! function) ;; (function vector vector vector float vector float vector) +;; (define-extern v-slrp3! function) ;; (function vector vector vector vector float vector) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; board-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype board (process-drawable) + ((control control-info :offset-assert 128) ;; guessed by decompiler + (shadow-backup shadow-geo :offset-assert 208) ;; guessed by decompiler + (main joint-mod :offset-assert 212) ;; guessed by decompiler + (in-head-time uint64 :offset-assert 216) + ) + :method-count-assert 23 + :size-assert #xe0 + :flag-assert #x17006000e0 + (:methods + (board-method-20 () none) ;; 20 ;; (idle (symbol) _type_ :state 20) + (board-method-21 () none) ;; 21 ;; (use () _type_ :state 21) + (board-method-22 () none) ;; 22 ;; (hidden () _type_ :state 22) + ) + ) +|# + +#| +(deftype board-info (basic) + ((board (pointer board) :offset-assert 4) ;; guessed by decompiler + (camera-interp float :offset-assert 8) + (process (pointer target) :offset-assert 12) ;; guessed by decompiler + (board-trans vector :inline :offset-assert 16) + (board-quat vector :inline :offset-assert 32) + (board-scale vector :inline :offset-assert 48) + (main joint-mod :offset-assert 64) ;; guessed by decompiler + (upper-body joint-mod :offset-assert 68) ;; guessed by decompiler + (sound-bank-knob float :offset-assert 76) + (sound-air-knob float :offset-assert 80) + (wind-sound-id sound-id :offset-assert 84) ;; guessed by decompiler + (wind-sound-pitch float :offset-assert 88) + (wind-sound-volume float :offset-assert 92) + (engine-sound-id sound-id :offset-assert 96) ;; guessed by decompiler + (engine-sound-pitch float :offset-assert 100) + (engine-sound-volume float :offset-assert 104) + (bank-sound-id sound-id :offset-assert 108) ;; guessed by decompiler + (bank-sound-pitch float :offset-assert 112) + (bank-sound-volume float :offset-assert 116) + (ride-sound-id sound-id :offset-assert 120) ;; guessed by decompiler + (spin-sound-id sound-id :offset-assert 124) ;; guessed by decompiler + (spin-sound-volume float :offset-assert 128) + (spin-sound-pitch float :offset-assert 132) + (up-vector vector 2 :offset-assert 176) ;; guessed by decompiler + (slow-transv vector :inline :offset-assert 208) + (board-time uint64 :offset-assert 224) ;; time-frame + (board-get-on-time uint64 :offset-assert 232) ;; time-frame + (in-air-time uint64 :offset-assert 240) ;; time-frame + (stick-lock symbol :offset-assert 272) ;; guessed by decompiler + (stick-off symbol :offset-assert 276) ;; guessed by decompiler + (stance-info ground-tween-info :inline :offset-assert 280) + (mods-backup basic :offset-assert 316) + (attack-id uint32 :offset-assert 320) + (latch? symbol :offset-assert 324) ;; guessed by decompiler + (unstuck-time uint64 :offset-assert 376) ;; time-frame + (stuck-count int32 :offset-assert 384) + (thrust-scale float :offset-assert 388) + (flip-time uint64 :offset-assert 392) ;; time-frame + (transv-max meters :offset-assert 400) + (turn-anim-tilt? symbol :offset-assert 404) ;; guessed by decompiler + (turn-anim-mag float :offset-assert 408) + (turn-anim-targ float :offset-assert 412) + (turn-anim-frame float :offset-assert 416) + (turn-anim-vel float :offset-assert 428) + (turn-anim-duck float :offset-assert 432) + (turn-anim-duck-vel float :offset-assert 436) + (tilt-anim-frame vector :inline :offset-assert 448) + (tilt-anim-targ vector :inline :offset-assert 464) + (smack-surface-time uint64 :offset-assert 480) ;; time-frame + (smack-speed meters :offset-assert 488) + (smack-normal vector :inline :offset-assert 496) + (glance-time uint64 :offset-assert 512) ;; time-frame + (glance-speed meters :offset-assert 520) + (glance-in-transv vector :inline :offset-assert 528) + (glance-out-transv vector :inline :offset-assert 544) + (glance-normal vector :inline :offset-assert 560) + (on-flat-time uint64 :offset-assert 576) ;; time-frame + (jump-land-time uint64 :offset-assert 584) ;; time-frame + (slip-factor float :offset-assert 592) + (ground-on-dir vector :inline :offset-assert 608) + (ride-time uint64 :offset-assert 624) ;; time-frame + (ride-start-time uint64 :offset-assert 632) ;; time-frame + (ride-button-time uint64 :offset-assert 640) ;; time-frame + (ride-lean-targ float :offset-assert 648) + (ride-lean float :offset-assert 652) + (ride-leanv float :offset-assert 656) + (ride-lean-mag float :offset-assert 660) + (ride-tilt-targ float :offset-assert 664) + (ride-tilt float :offset-assert 668) + (ride-tiltv float :offset-assert 672) + (ride-tilt-mag float :offset-assert 676) + (ride-lock symbol :offset-assert 680) ;; guessed by decompiler + (ride-lock-on symbol :offset-assert 684) ;; guessed by decompiler + (ride-speed meters :offset-assert 688) + (ride-mode uint32 :offset-assert 692) + (ride-rot deg :offset-assert 696) ;; degrees + (ride-rot-old deg :offset-assert 700) ;; degrees + (ride-rot-abs degrees 2 :offset-assert 704) ;; guessed by decompiler + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (ride-rotv-abs deg :offset-assert 712) + (ride-touch-segment vector 2 :offset-assert 720) ;; guessed by decompiler + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (ride-dir vector :inline :offset-assert 752) + (ride-vertex-length int16 :offset-assert 768) + (ride-vertex-length-old int16 :offset-assert 770) + (ride-vertex-base int16 :offset-assert 772) + (ride-vertex-base2 int16 :offset-assert 774) + (ride-vertex-index float :offset-assert 776) + (ride-vertex-index2 float :offset-assert 780) + (ride-vertex-index-old float :offset-assert 784) + (ride-vertex vector 3 :offset-assert 800) ;; guessed by decompiler + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (ride-segment vector :inline :offset-assert 848) + (ride-dir-lean vector :inline :offset-assert 864) + (ride-pad-vector vector 1 :offset-assert 880) ;; guessed by decompiler + (ride-vertex-old vector 3 :offset-assert 896) ;; guessed by decompiler + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (ride-segment-old vector :inline :offset-assert 944) + (ride-vertex-trail vector 128 :offset-assert 960) ;; guessed by decompiler + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (halfpipe-side-time uint64 :offset-assert 3008) ;; time-frame + (halfpipe-jump-time uint64 :offset-assert 3016) ;; time-frame + (halfpipe-lip-time uint64 :offset-assert 3024) ;; time-frame + (halfpipe-time uint64 :offset-assert 3032) ;; time-frame + (halfpipe-gspot-time uint64 :offset-assert 3040) ;; time-frame + (halfpipe-lip-event symbol :offset-assert 3048) ;; guessed by decompiler + (spin-check-time uint64 :offset-assert 3056) ;; time-frame + (spin-time uint64 :offset-assert 3064) ;; time-frame + (spin-start-time uint64 :offset-assert 3072) ;; time-frame + (spin-start-dir vector :inline :offset-assert 3088) + (spin-control float :offset-assert 3104) + (spin-ground-start-time uint64 :offset-assert 3112) ;; time-frame + (spin-ground-time uint64 :offset-assert 3120) ;; time-frame + (spin-ground-press-time uint64 :offset-assert 3128) ;; time-frame + (flip-control float :offset-assert 3136) + (flip-count int32 :offset-assert 3140) + (trickx-count int32 :offset-assert 3196) + (rotyv-max deg :offset-assert 3240) + (rotyv deg :offset-assert 3244) + (roty deg :offset-assert 3248) + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (upper-body-rotyv-max deg :offset-assert 3260) ;; degrees + (upper-body-rotyv deg :offset-assert 3264) ;; degrees + (upper-body-roty deg :offset-assert 3268) ;; degrees + (cushion-base meters :offset-assert 3272) + (cushion-offset meters :offset-assert 3276) + (shock-offset meters :offset-assert 3280) + (shock-offsetv meters :offset-assert 3284) + (shock-rotx meters :offset-assert 3288) + (trick-count int32 :offset-assert 3300) + (zap-start-time uint64 :offset-assert 3520) + ) + :method-count-assert 11 + :size-assert #xdc8 + :flag-assert #xb00000dc8 + (:methods + (board-info-method-9 () none) ;; 9 ;; (add-to-trick-list (_type_ board-tricks float) none 9) + (board-info-method-10 () none) ;; 10 ;; (flush-trick-list (_type_) none 10) + ) + ) +|# + +#| +(deftype target-board-bank (basic) + ((jump-height-min meters :offset-assert 4) + (jump-height-max meters :offset-assert 8) + (duck-jump-height-min meters :offset-assert 12) + (duck-jump-height-max meters :offset-assert 16) + (turn-frames float :offset-assert 20) + (wall-kick-window seconds :offset-assert 24) + (cushion meters :offset-assert 32) + (trickx-jump-height-min meters :offset-assert 36) + (trickx-jump-height-max meters :offset-assert 40) + (tricky-jump-height-min meters :offset-assert 44) + (tricky-jump-height-max meters :offset-assert 48) + (trickz-jump-height-min meters :offset-assert 52) + (trickz-jump-height-max meters :offset-assert 56) + (charge-jump-time seconds :offset-assert 64) + (charge-jump-fade-time seconds :offset-assert 72) + (charge-jump-height meters :offset-assert 80) + (zap-duration uint64 :offset-assert 88) + (zap-reset-time uint64 :offset-assert 96) + ) + :method-count-assert 9 + :size-assert #x68 + :flag-assert #x900000068 + ) +|# + +;; (define-extern *TARGET_BOARD-bank* target-board-bank) ;; target-board-bank +;; (define-extern want-to-board? function) ;; (function symbol :behavior target) +;; (define-extern *board-shadow-control* shadow-control) ;; shadow-control + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; cam-interface ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern position-in-front-of-camera! function) ;; (function vector float float vector) +;; (define-extern position-in-front-of-screen! function) ;; (function vector float vector vector) +;; (define-extern matrix-local->world function) ;; (function symbol symbol matrix) +;; (define-extern matrix-world->local function) ;; (function symbol object matrix) +;; (define-extern *camera-dummy-vector* object) ;; vector +;; (define-extern camera-pos function) ;; (function vector) +;; (define-extern math-camera-pos function) ;; (function vector) +;; (define-extern camera-matrix function) ;; (function matrix) +;; (define-extern math-camera-matrix function) ;; (function matrix) +;; (define-extern camera-angle function) ;; (function float) +;; (define-extern camera-teleport-to-entity function) ;; (function entity-actor symbol :behavior process) +;; (define-extern camera-teleport-to-entity-named function) +;; (define-extern camera-teleport-to-location function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; fac-robotank-turret ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype fac-robotank-turret (process-focusable) + ((los los-control :inline :offset-assert 208) + (tank-quat quaternion :inline :offset-assert 384) + (tank-quat-vibe-only quaternion :inline :offset-assert 400) + (rotate-quat quaternion :inline :offset-assert 416) + (rotate-rate float :offset-assert 432) + (rotate-mult float :offset-assert 436) + (shot-range float :offset-assert 440) + (fov-mult float :offset-assert 444) + (offset vector :inline :offset-assert 448) + (sight-pos vector :inline :offset-assert 464) + (firing-sight-pos vector :inline :offset-assert 480) + (aim-pos UNKNOWN 3 :offset-assert 496) + (gun-timer uint64 :offset-assert 544) + (gun-elev-jmod basic :offset-assert 552) + (gun-elev float :offset-assert 556) + (gun-elev-cam float :offset-assert 560) + (gun-joint-l UNKNOWN 2 :offset-assert 564) + (gun-joint-r UNKNOWN 2 :offset-assert 572) + (gun-spread float :offset-assert 580) + (gun-index int32 :offset-assert 584) + (flags uint16 :offset-assert 588) + (turn-sound-id uint32 :offset-assert 592) + ) + :method-count-assert 35 + :size-assert #x254 + :flag-assert #x2301e00254 + (:methods + (fac-robotank-turret-method-31 () none) ;; 31 + (fac-robotank-turret-method-32 () none) ;; 32 + (fac-robotank-turret-method-33 () none) ;; 33 + (fac-robotank-turret-method-34 () none) ;; 34 + ) + (:state-methods + ready ;; 28 + fire ;; 29 + die ;; 30 + ) + ) +|# + +#| +(deftype fac-robotank-reticle (process-drawable) + ((shadow-jmod joint-mod-set-local :offset-assert 200) + (sight-jmod joint-mod-set-local :offset-assert 204) + (ring-jmod UNKNOWN 3 :offset-assert 208) + (ring-timer uint64 :offset-assert 224) + (sight-scale vector :inline :offset-assert 240) + (collide-dist float :offset-assert 256) + ) + :method-count-assert 22 + :size-assert #x104 + :flag-assert #x1600900104 + (:methods + (fac-robotank-reticle-method-20 () none) ;; 20 + (fac-robotank-reticle-method-21 () none) ;; 21 + ) + ) +|# + +;; (define-extern fac-robotank-reticle-post function) +;; (define-extern fac-robotank-reticle-handler function) +;; (define-extern draw-2d-hud function) ;; (function vector symbol) +;; (define-extern turret-post function) ;; (function none :behavior fort-robotank-turret) +;; (define-extern robotank-turret-handler function) ;; (function process int symbol event-message-block object :behavior fort-robotank-turret) +;; (define-extern fac-robotank-turret-init-by-other function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; cam-master ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern reset-follow function) ;; (function float :behavior camera-master) +;; (define-extern reset-target-tracking function) ;; (function symbol :behavior camera-master) +;; (define-extern master-track-target function) ;; (function symbol :behavior camera-master) +;; (define-extern setup-slave-for-hopefull function) ;; (function camera-slave none) +;; (define-extern master-is-hopeful-better? function) ;; (function camera-slave camera-slave symbol :behavior camera-master) +;; (define-extern master-choose-entity function) ;; (function cam-setting-data symbol :behavior camera-master) +;; (define-extern cam-master-set-entity function) ;; (function cam-setting-data none) +;; (define-extern cam-master-activate-slave function) ;; (function symbol none) +;; (define-extern cam-master-active state) ;; (state camera-master) +;; (define-extern cam-master-init function) ;; (function none :behavior camera-master) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; cam-combiner ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern cam-helper-temp function) ;; (function (pointer camera-slave) (pointer camera-slave) float matrix :behavior camera-combiner) +;; (define-extern cam-combiner-active state) ;; (state camera-combiner) +;; (define-extern cam-combiner-init function) ;; (function none :behavior camera-combiner) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; cam-debug ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype cam-dbg-scratch (structure) + ((linevec4w vector :inline :offset-assert 0) ;; vector4w 2 :inline + (color vector :inline :offset-assert 32) ;; vector4w :inline + (plotvec vector :inline :offset-assert 48) ;; vector4w 2 :inline + (linevec vector :inline :offset-assert 80) ;; vector4w 2 :inline + (rel-vec vector :inline :offset-assert 112) + (sphere-v-start vector :inline :offset-assert 128) + (sphere-v-end vector :inline :offset-assert 144) + (sphere-v-down vector :inline :offset-assert 160) + (sphere-vec vector :inline :offset-assert 176) + (crossvec vector :inline :offset-assert 192) + (bboxvec vector :inline :offset-assert 240) + (fov-vv vector :inline :offset-assert 336) + (fov-src vector :inline :offset-assert 400) + (fov-dest vector :inline :offset-assert 416) + (fov-vert vector :inline :offset-assert 432) + (fov-horz vector :inline :offset-assert 448) + ) + :method-count-assert 9 + :size-assert #x1d0 + :flag-assert #x9000001d0 + ) +|# + +#| +(deftype cam-debug-tri (structure) + ((vertex vector 3 :offset-assert 0) ;; guessed by decompiler + (intersect vector :inline :offset-assert 48) + (color vector4w :offset-assert 64) + ) + :method-count-assert 9 + :size-assert #x44 + :flag-assert #x900000044 + ) +|# + +#| +(deftype cam-collision-record (structure) + ((pos vector :inline :offset-assert 0) + (vel vector :inline :offset-assert 16) + (desired-pos vector :inline :offset-assert 32) + (cam-tpos-cur vector :inline :offset-assert 48) + (cam-tpos-old vector :inline :offset-assert 64) + (view-flat vector :inline :offset-assert 80) + (string-min-val vector :inline :offset-assert 96) + (string-max-val vector :inline :offset-assert 112) + (view-off vector :inline :offset-assert 128) + (min-z-override float :offset-assert 144) + (string-push-z float :offset-assert 148) + (view-off-param float :offset-assert 152) + (frame int32 :offset-assert 156) + (iteration int32 :offset-assert 160) + (move-type symbol :offset-assert 164) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #xa8 + :flag-assert #x9000000a8 + ) +|# + +#| +(deftype cam-collision-record-array (inline-array-class) + ((data cam-collision-record :dynamic :offset-assert 16) ;; guessed by decompiler + ) + :method-count-assert 14 + :size-assert #x10 + :flag-assert #xe00000010 + ) +|# + +;; (define-extern *camera-old-cpu* object) ;; int +;; (define-extern *camera-old-vu* object) ;; int +;; (define-extern *camera-old-tfrag-bytes* object) ;; int +;; (define-extern *camera-old-level* object) ;; string +;; (define-extern *camera-old-stat-string-tfrag* object) ;; string +;; (define-extern *camera-old-stat-string-tfrag-near* object) ;; string +;; (define-extern *camera-old-stat-string-total* object) ;; string +;; (define-extern cam-slave-options->string function) ;; (function cam-slave-options object string) +;; (define-extern cam-index-options->string function) ;; (function cam-index-options object string) +;; (define-extern slave-los-state->string function) ;; (function slave-los-state string) +;; (define-extern cam-line-dma function) ;; (function pointer) +;; (define-extern camera-line2d function) ;; (function vector4w vector4w pointer) +;; (define-extern camera-plot-float-func function) ;; (function float float float float (function float float) vector4w none) +;; (define-extern camera-line-setup function) ;; (function vector4w none) +;; (define-extern camera-line-draw function) ;; (function vector vector none) +;; (define-extern camera-line function) ;; (function vector vector vector4w none) +;; (define-extern camera-line-rel function) ;; (function vector vector vector4w none) +;; (define-extern camera-line-rel-len function) ;; (function vector vector float vector4w none) +;; (define-extern camera-sphere function) ;; (function vector float vector4w none) +;; (define-extern camera-cross function) ;; (function vector vector vector vector4w meters none) +;; (define-extern camera-bounding-box-draw function) ;; (function bounding-box basic rgba none) +;; (define-extern *cam-debug-los-tri-current* object) ;; int +;; (define-extern *cam-debug-los-tri* object) ;; (inline-array cam-debug-tri) +;; (define-extern *cam-debug-coll-tri-current* object) ;; int +;; (define-extern *cam-debug-coll-tri* object) ;; (inline-array cam-debug-tri) +;; (define-extern cam-debug-reset-coll-tri function) ;; (function none) +;; (define-extern cam-debug-add-los-tri function) ;; (function (inline-array collide-cache-tri) vector vector none) +;; (define-extern cam-debug-add-coll-tri function) ;; (function cam-debug-tri vector cam-debug-tri none) +;; (define-extern cam-debug-draw-tris function) ;; (function symbol) +;; (define-extern camera-fov-draw function) ;; (function int int vector float float vector4w none) +;; (define-extern camera-fov-frame function) ;; (function matrix vector float float float vector4w symbol) +;; (define-extern debug-euler function) ;; (function cam-dbg-scratch object) +;; (define-extern bike-cam-limit function) ;; (function float float) +;; (define-extern camera-slave-debug function) ;; (function camera-slave none) +;; (define-extern master-draw-coordinates function) ;; (function vector none) +;; (define-extern *cam-collision-record-first* object) ;; int +;; (define-extern *cam-collision-record-last* object) ;; int +;; (define-extern *cam-collision-record-show* object) ;; int +;; (define-extern *cam-collision-record* object) ;; cam-collision-record-array +;; (define-extern cam-collision-record-save function) ;; (function vector vector int symbol camera-slave none) +;; (define-extern cam-collision-record-step function) ;; (function int none) +;; (define-extern cam-collision-record-draw function) ;; (function none) +;; (define-extern camera-master-debug function) ;; (function camera-master none) +;; (define-extern debug-set-camera-pos-rot! function) ;; (function vector matrix vector) +;; (define-extern cam-restore function) ;; (function none) +;; (define-extern cam-restore-generic-bug function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; indax-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype indax-info (basic) + ((indax-start-time uint64 :offset-assert 8) ;; time-frame + (indax-time uint64 :offset-assert 16) ;; time-frame + (indax-hang-start-time uint64 :offset-assert 24) + (art-group-backup art-group :offset-assert 32) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x28 + :flag-assert #x900000028 + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; eye ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *eye-work* object) ;; eye-work +;; (define-extern find-free-eye-index function) +;; (define-extern free-eye-index function) +;; (define-extern render-eyes-32 function) ;; (function dma-buffer eye-control int pointer) +;; (define-extern render-eyes-64 function) ;; (function dma-buffer eye-control int pointer) +;; (define-extern debug-eyes function) ;; (function dma-buffer none) +;; (define-extern update-eyes function) ;; (function none) +;; (define-extern get-eye-block function) ;; (function int int int) +;; (define-extern convert-eye-data function) ;; (function eye uint float) +;; (define-extern merc-eye-anim function) ;; (function process-drawable none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; hiphog-part ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype hiphog-mirror-wf-pt (structure) + ((x float :offset-assert 0) + (y float :offset-assert 4) + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +;; (define-extern part-hiphog-sphere-vert-line-flicker function) +;; (define-extern birth-func-hiphog-sphere function) +;; (define-extern birth-func-rotate-minute function) ;; (function sparticle-system sparticle-cpuinfo sprite-vec-data-3d sparticle-launcher sparticle-launch-state none) +;; (define-extern birth-func-rotate-hour function) ;; (function sparticle-system sparticle-cpuinfo sprite-vec-data-3d sparticle-launcher sparticle-launch-state none) +;; (define-extern birth-func-rotate-second function) ;; (function sparticle-system sparticle-cpuinfo sprite-vec-data-3d sparticle-launcher sparticle-launch-state none) +;; (define-extern *hiphog-mirror-sheen-waveform* object) ;; (inline-array ripple-wave) +;; (define-extern hiphog-mirror-sheen-func function) ;; (function sparticle-system sparticle-cpuinfo matrix none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; vol ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern plane-volume-intersect-dist function) ;; (function vector vector vector float) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; gungame-texture ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *lgunnorm-water-texture-anim-array* texture-anim-array) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; cam-start ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern cam-stop function) ;; (function symbol) +;; (define-extern cam-start function) ;; (function symbol none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; cloth-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype stick-constraint (structure) + ((constraint-length-half float :offset-assert 0) + (one-over-two-times-constraint-length float :offset-assert 4) + (constraint-length-sqd float :offset-assert 8) + (particle0 uint16 :offset-assert 12) + (particle1 uint16 :offset-assert 14) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype verlet-particle (structure) + ((pos vector :inline :offset-assert 0) + (prev-pos vector :inline :offset-assert 16) + (mass-scale float :offset-assert 32) + ) + :method-count-assert 9 + :size-assert #x24 + :flag-assert #x900000024 + ) +|# + +#| +(deftype disc-constraint (structure) + ((normal vector :inline :offset-assert 0) + (origin vector :inline :offset-assert 16) + (radius float :offset-assert 32) + (start-particle-index int16 :offset-assert 36) + (end-particle-index int16 :offset-assert 38) + ) + :method-count-assert 9 + :size-assert #x28 + :flag-assert #x900000028 + ) +|# + +#| +(deftype cylinder-constraint (structure) + ((c0 vector :inline :offset-assert 0) + (norm vector :inline :offset-assert 16) + (length float :offset-assert 32) + (radius float :offset-assert 36) + ) + :method-count-assert 9 + :size-assert #x28 + :flag-assert #x900000028 + ) +|# + +#| +(deftype particle-anchor-point (structure) + ((anchor-pos vector :inline :offset-assert 0) + (particle-index uint16 :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x12 + :flag-assert #x900000012 + ) +|# + +#| +(deftype particle-array (inline-array-class) + ((data UNKNOWN :dynamic :offset-assert 16) + ) + :method-count-assert 14 + :size-assert #x10 + :flag-assert #xe00000010 + ) +|# + +#| +(deftype float-array (inline-array-class) + ((data UNKNOWN :dynamic :offset-assert 16) + ) + :method-count-assert 14 + :size-assert #x10 + :flag-assert #xe00000010 + ) +|# + +#| +(deftype stick-constraint-array (inline-array-class) + ((data UNKNOWN :dynamic :offset-assert 16) + ) + :method-count-assert 14 + :size-assert #x10 + :flag-assert #xe00000010 + ) +|# + +#| +(deftype collision-sphere-array (inline-array-class) + ((data UNKNOWN :dynamic :offset-assert 16) + ) + :method-count-assert 14 + :size-assert #x10 + :flag-assert #xe00000010 + ) +|# + +#| +(deftype collision-disc-array (inline-array-class) + ((data UNKNOWN :dynamic :offset-assert 16) + ) + :method-count-assert 14 + :size-assert #x10 + :flag-assert #xe00000010 + ) +|# + +#| +(deftype collision-cylinder-array (inline-array-class) + ((data UNKNOWN :dynamic :offset-assert 16) + ) + :method-count-assert 14 + :size-assert #x10 + :flag-assert #xe00000010 + ) +|# + +#| +(deftype anchor-point-array (inline-array-class) + ((data UNKNOWN :dynamic :offset-assert 16) + ) + :method-count-assert 14 + :size-assert #x10 + :flag-assert #xe00000010 + ) +|# + +#| +(deftype verlet-particle-system (cloth-base) + ((particles basic :offset-assert 4) + (drag float :offset-assert 8) + (accum-force vector :inline :offset-assert 16) + (timestep-frequency int8 :offset-assert 32) + (last-simulate-remaining int8 :offset-assert 33) + (momentum vector :inline :offset-assert 48) + ) + :method-count-assert 16 + :size-assert #x40 + :flag-assert #x1000000040 + (:methods + (verlet-particle-system-method-11 () none) ;; 11 + (verlet-particle-system-method-12 () none) ;; 12 + (verlet-particle-system-method-13 () none) ;; 13 + (verlet-particle-system-method-14 () none) ;; 14 + (verlet-particle-system-method-15 () none) ;; 15 + ) + ) +|# + +#| +(deftype current-position-info (structure) + ((current-vert-index uint16 :offset-assert 0) + (last-2-x-index uint16 :offset-assert 2) + (last-2-y-index uint16 :offset-assert 4) + (last-x-index uint16 :offset-assert 6) + (last-y-index uint16 :offset-assert 8) + (lights vu-lights :inline :offset-assert 16) + (scale vector :inline :offset-assert 128) + (clamp-col vector :inline :offset-assert 144) + (last-normal vector :inline :offset-assert 160) + (face-normal-needs-flip? basic :offset-assert 176) + (cross-index0 int8 :offset-assert 180) + (cross-index1 int8 :offset-assert 181) + (backside-normal vector :inline :offset-assert 192) + ) + :method-count-assert 9 + :size-assert #xd0 + :flag-assert #x9000000d0 + ) +|# + +#| +(deftype cloth-system (verlet-particle-system) + ((particles basic :offset-assert 0) + (drag float :offset-assert 4) + (accum-force vector :inline :offset-assert 12) + (timestep-frequency int8 :offset-assert 28) + (last-simulate-remaining int8 :offset-assert 29) + (momentum vector :inline :offset-assert 44) + (ground-constraint float :offset-assert 60) + (disc-collision-constraints basic :offset-assert 64) + (collision-constraints basic :offset-assert 68) + (stick-constraints basic :offset-assert 72) + (anchor-points basic :offset-assert 76) + (constraint-strengths UNKNOWN 3 :offset-assert 80) + (num-xy-constraints int16 :offset-assert 92) + (num-diagonal-constraints int16 :offset-assert 94) + (cloth-width int32 :offset-assert 96) + (cloth-height int32 :offset-assert 100) + (strip basic :offset-assert 104) + (strip2 basic :offset-assert 108) + (strip3 basic :offset-assert 112) + (mesh basic :offset-assert 116) + (gravity-constant float :offset-assert 120) + (wind-constant float :offset-assert 124) + (flags cloth-flag :offset-assert 132) + (thickness-scalar float :offset-assert 140) + (ball-collision-radius float :offset-assert 144) + (face-normal-scalar float :offset-assert 148) + (reset-count int8 :offset-assert 152) + (num-iterations int8 :offset-assert 153) + (secret-disable uint64 :offset-assert 156) + (params cloth-params :offset-assert 164) + ) + :method-count-assert 38 + :size-assert #xac + :flag-assert #x26000000ac + ;; field cloth-flag is likely a value type. + (:methods + (cloth-system-method-16 () none) ;; 16 + (cloth-system-method-17 () none) ;; 17 + (cloth-system-method-18 () none) ;; 18 + (cloth-system-method-19 () none) ;; 19 + (cloth-system-method-20 () none) ;; 20 + (cloth-system-method-21 () none) ;; 21 + (cloth-system-method-22 () none) ;; 22 + (cloth-system-method-23 () none) ;; 23 + (cloth-system-method-24 () none) ;; 24 + (cloth-system-method-25 () none) ;; 25 + (cloth-system-method-26 () none) ;; 26 + (cloth-system-method-27 () none) ;; 27 + (cloth-system-method-28 () none) ;; 28 + (cloth-system-method-29 () none) ;; 29 + (cloth-system-method-30 () none) ;; 30 + (cloth-system-method-31 () none) ;; 31 + (cloth-system-method-32 () none) ;; 32 + (cloth-system-method-33 () none) ;; 33 + (cloth-system-method-34 () none) ;; 34 + (cloth-system-method-35 () none) ;; 35 + (cloth-system-method-36 () none) ;; 36 + (cloth-system-method-37 () none) ;; 37 + ) + ) +|# + +#| +(deftype cloth-on-skeleton (cloth-system) + ((base-transform-index int16 :offset-assert 168) + (owner uint64 :offset-assert 172) + (last-owner-pos vector :inline :offset-assert 188) + (last-owner-mat matrix :inline :offset-assert 204) + ) + :method-count-assert 38 + :size-assert #x110 + :flag-assert #x2600000110 + ;; field cloth-flag is likely a value type. + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; bombbot-path ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *bombbot-path-1* object) ;; bombbot-path +;; (define-extern *bombbot-path-2* object) ;; bombbot-path +;; (define-extern *bombbot-path-3* object) ;; bombbot-path + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; curves ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype float-pair (structure) + ((first float :offset-assert 0) + (second float :offset-assert 4) + (x float :offset-assert 0) + (y float :offset-assert 4) + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +#| +(deftype float-pair-array (inline-array-class) + ((data UNKNOWN :dynamic :offset-assert 16) + ) + :method-count-assert 14 + :size-assert #x10 + :flag-assert #xe00000010 + ) +|# + +#| +(deftype curve2d (basic) + () + :method-count-assert 10 + :size-assert #x4 + :flag-assert #xa00000004 + (:methods + (curve2d-method-9 () none) ;; 9 + ) + ) +|# + +#| +(deftype curve-color (basic) + () + :method-count-assert 10 + :size-assert #x4 + :flag-assert #xa00000004 + (:methods + (curve-color-method-9 () none) ;; 9 + ) + ) +|# + +#| +(deftype curve2d-piecewise (curve2d) + ((pts basic :offset-assert 4) + (default-loop-behavior uint64 :offset-assert 8) + ) + :method-count-assert 12 + :size-assert #x10 + :flag-assert #xc00000010 + (:methods + (curve2d-piecewise-method-10 () none) ;; 10 + (curve2d-piecewise-method-11 () none) ;; 11 + ) + ) +|# + +#| +(deftype curve2d-fast (curve2d) + ((xs vector :inline :offset-assert 16) + (ys vector :inline :offset-assert 32) + (one-over-x-deltas vector :inline :offset-assert 48) + ) + :method-count-assert 10 + :size-assert #x40 + :flag-assert #xa00000040 + ) +|# + +#| +(deftype curve-color-fast (curve-color) + ((xs vector :inline :offset-assert 16) + (ys UNKNOWN 4 :offset-assert 32) + (one-over-x-deltas vector :inline :offset-assert 96) + ) + :method-count-assert 10 + :size-assert #x70 + :flag-assert #xa00000070 + ) +|# + +#| +(deftype color-pair (structure) + ((first float :offset-assert 0) + (second rgbaf :inline :offset-assert 16) + (x float :offset-assert 0) + (y rgbaf :inline :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x20 + :flag-assert #x900000020 + ) +|# + +#| +(deftype color-pair-array (inline-array-class) + ((data UNKNOWN :dynamic :offset-assert 16) + ) + :method-count-assert 14 + :size-assert #x10 + :flag-assert #xe00000010 + ) +|# + +#| +(deftype curve-color-piecewise (curve-color) + ((pts basic :offset-assert 4) + (default-loop-behavior uint64 :offset-assert 8) + ) + :method-count-assert 11 + :size-assert #x10 + :flag-assert #xb00000010 + (:methods + (curve-color-piecewise-method-10 () none) ;; 10 + ) + ) +|# + +;; (define-extern rgbaf-lerp! function) +;; (define-extern evaluate-curve-fast function) +;; (define-extern evaluate-color-curve-fast function) +;; (define-extern rgba<-rgbaf function) +;; (define-extern *curve-unity* curve2d-fast) +;; (define-extern *curve-linear-up* curve2d-fast) +;; (define-extern *curve-linear-down* curve2d-fast) +;; (define-extern *curve-linear-up-hold* object) +;; (define-extern *curve-linear-up-down* curve2d-fast) +;; (define-extern *trail-color-curve-white* curve-color-fast) +;; (define-extern particle-color-curve-white* curve-color-fast) +;; (define-extern *trail-color-curve-red* curve-color-fast) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ambient ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern can-display-query? function) ;; (function process string float symbol) +;; (define-extern talker-surpress! function) ;; (function none) +;; (define-extern talker-displayed? function) ;; (function symbol) +;; (define-extern kill-current-talker function) ;; (function symbol pair symbol none) +;; (define-extern string->talker-speech function) ;; (function string talker-speech-class) +;; (define-extern talker-spawn-func function) ;; (function talker-speech-class process-tree vector region sound-id) +;; (define-extern talker-init function) ;; (function talker-speech-class vector region none :behavior talker) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; waswide-mood ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype wascity-states (structure) + ((light light-state :inline :offset-assert 0) + (flame flames-state :inline :offset-assert 8) + ) + :method-count-assert 9 + :size-assert #xf + :flag-assert #x90000000f + ) +|# + +#| +(deftype wascitya-states (structure) + ((light light-state :inline :offset-assert 0) + (flame flames-state :inline :offset-assert 8) + ) + :method-count-assert 9 + :size-assert #xf + :flag-assert #x90000000f + ) +|# + +#| +(deftype wascityb-states (structure) + ((light light-state :inline :offset-assert 0) + (flame flames-state :inline :offset-assert 8) + (turret-value float :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x14 + :flag-assert #x900000014 + ) +|# + +;; (define-extern update-mood-wascity function) +;; (define-extern update-mood-wascitya function) +;; (define-extern update-mood-wascityb function) +;; (define-extern set-wascityb-turret-flash! function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ash-task ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; fma-sphere ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype fma-sphere-params (structure) + ((mode uint32 :offset-assert 0) + (proc basic :offset-assert 4) + (track-joint int32 :offset-assert 8) + (duration uint64 :offset-assert 16) + (sphere sphere :offset-assert 24) + (danger traffic-danger-info :offset-assert 28) + (nav-mesh-id uint32 :offset-assert 32) + ) + :method-count-assert 9 + :size-assert #x24 + :flag-assert #x900000024 + ) +|# + +#| +(deftype fma-sphere (process-drawable) + ((first-time? symbol :offset-assert 200) ;; guessed by decompiler + (mode fma-sphere-mode :offset-assert 204) ;; guessed by decompiler + (track-handle uint64 :offset-assert 208) ;; handle + (track-joint int32 :offset-assert 216) + (attack-id uint32 :offset-assert 220) + (duration uint64 :offset-assert 224) ;; time-frame + (sphere sphere :inline :offset-assert 240) + (danger traffic-danger-info :inline :offset-assert 256) + ) + :method-count-assert 21 + :size-assert #x136 + :flag-assert #x1500c00136 + (:state-methods + idle ;; 20, old: (idle () _type_ :state 20) + ) + ) +|# + +;; (define-extern fma-sphere-init-by-other function) ;; (function fma-sphere-mode process-drawable int time-frame vector vector none :behavior fma-sphere) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; prim-beam-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype prim-beam-settings (structure) + ((width float :offset-assert 0) + (color uint32 :offset-assert 4) + (alpha float :offset-assert 8) + (tex-id uint32 :offset-assert 12) + (num-tiles float :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x14 + :flag-assert #x900000014 + ) +|# + +#| +(deftype prim-beam-params (structure) + ((appearance prim-beam-settings :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x4 + :flag-assert #x900000004 + ) +|# + +#| +(deftype prim-beam-tracker-params (prim-beam-params) + ((track-obj1 uint64 :offset-assert 8) + (track-obj2 uint64 :offset-assert 16) + (track-joint1 int32 :offset-assert 24) + (track-joint2 int32 :offset-assert 28) + (pos0 vector :offset-assert 32) + (pos1 vector :offset-assert 36) + (duration uint64 :offset-assert 40) + ) + :method-count-assert 9 + :size-assert #x30 + :flag-assert #x900000030 + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; generic-obs ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype target-start (process-hidden) + () + :method-count-assert 15 + :size-assert #x80 + :flag-assert #xf00000080 + (:states + target-startup ;; associated process guessed by decompiler, old: (state target) + ) + ) +|# + +#| +(deftype camera-start (process-hidden) + () + :method-count-assert 15 + :size-assert #x80 + :flag-assert #xf00000080 + ) +|# + +#| +(deftype cam-slope (process-hidden) + () + :method-count-assert 15 + :size-assert #x80 + :flag-assert #xf00000080 + ) +|# + +#| +(deftype med-res-level (process-drawable) + ((level-name basic :offset-assert 200) + (part-mode basic :offset-assert 204) + (index int32 :offset-assert 208) + ) + :method-count-assert 21 + :size-assert #xd4 + :flag-assert #x15006000d4 + (:state-methods + idle ;; 20, old: (idle () _type_ :state 20) + ) + ) +|# + +#| +(deftype launcher (process-drawable) + ((spring-height meters :offset-assert 200) + (camera state :offset-assert 204) ;; guessed by decompiler + (active-distance float :offset-assert 208) + (seek-time uint64 :offset-assert 216) ;; time-frame + (dest vector :inline :offset-assert 224) + (sound-id sound-id :offset-assert 240) ;; guessed by decompiler + ) + :method-count-assert 23 + :size-assert #xf4 + :flag-assert #x17008000f4 + (:state-methods + idle ;; 20, old: (idle () _type_ :state 20) + active ;; 21, old: (active () _type_ :state 21) + deactivated ;; 22, old: (deactivated () _type_ :state 22) + ) + ) +|# + +;; simple-prim is already defined! + +#| +(deftype simple-prim-zbuf-mask (simple-prim) + () + :method-count-assert 26 + :size-assert #xcc + :flag-assert #x1a005000cc + ) +|# + +#| +(deftype simple-prim-particle-binding (simple-prim) + ((color uint32 :offset-assert 204) + (lifetime uint64 :offset-assert 208) + (state-time uint64 :offset-assert 192) + ) + :method-count-assert 28 + :size-assert #xe0 + :flag-assert #x1c006000e0 + (:methods + (simple-prim-particle-binding-method-27 () none) ;; 27 + ) + (:state-methods + die ;; 26 + active ;; 20 + ) + ) +|# + +#| +(deftype part-controller (process) + ((actor-group uint32 :offset-assert 124) + (actor-group-count int32 :offset-assert 128) + (spawn-delay uint64 :offset-assert 132) + (current-part-index uint16 :offset-assert 140) + (state-time uint64 :offset-assert 148) + (next-reset-time uint64 :offset-assert 156) + (reset-interval-min uint64 :offset-assert 164) + (reset-interval-max uint64 :offset-assert 172) + (particle-launchers basic :offset-assert 180) + (spawn-sound uint128 :offset-assert 188) + ) + :method-count-assert 15 + :size-assert #xd0 + :flag-assert #xf005000d0 + (:state-methods + active ;; 14 + ) + ) +|# + +#| +(deftype sound-controller (process) + ((spawn-sound uint128 :offset-assert 128) + (sync sync-linear :inline :offset-assert 144) + (prev-val float :offset-assert 160) + (pos vector :inline :offset-assert 176) + ) + :method-count-assert 16 + :size-assert #xc0 + :flag-assert #x10004000c0 + (:state-methods + die ;; 15 + active ;; 14 + ) + ) +|# + +#| +(deftype sound-on-path (process-drawable) + ((spawn-sound uint128 :offset-assert 208) + (loop-sound uint32 :offset-assert 228) + (amb-sound basic :offset-assert 232) + (is-spooling? basic :offset-assert 236) + ) + :method-count-assert 23 + :size-assert #xf0 + :flag-assert #x17007000f0 + (:state-methods + die ;; 21 + no-play ;; 22 + active ;; 20 + ) + ) +|# + +#| +(deftype level-exit (process-drawable) + ((minimap connection-minimap :offset-assert 200) + (task-counter uint32 :offset-assert 204) + (ent basic :offset-assert 208) + ) + :method-count-assert 21 + :size-assert #xd4 + :flag-assert #x15006000d4 + (:state-methods + active ;; 20 + ) + ) +|# + +;; (define-extern *part-tracker-params-default* object) +;; (define-extern *part-tracker-subsampler-params-default* object) +;; (define-extern entity-lookup-part-group function) ;; (function entity-actor (pointer string) symbol (pointer sparticle-launch-group)) +;; (define-extern clone-anim-once function) ;; (function handle symbol string none :behavior process-drawable) +;; (define-extern clone-anim function) ;; (function handle symbol string none :behavior process-drawable) +;; (define-extern swingpole-init function) ;; (function int object :behavior swingpole) +;; (define-extern manipy-post function) ;; (function none :behavior manipy) +;; (define-extern manipy-init function) ;; (function vector entity-actor skeleton-group vector object none :behavior manipy) +;; (define-extern part-tracker-init-base function) +;; (define-extern part-tracker-subsampler-init function) +;; (define-extern part-tracker-init function) ;; (function sparticle-launch-group time-frame (function part-tracker none) (pointer process-drawable) process matrix none :behavior part-tracker) +;; (define-extern part-tracker-track-root function) ;; (function sparticle-system sparticle-cpuinfo vector none) +;; (define-extern part-tracker-move-to-target function) ;; (function part-tracker vector) +;; (define-extern part-tracker-track-target function) ;; (function part-tracker vector) +;; (define-extern lightning-tracker-init function) ;; (function lightning-spec time-frame symbol process-drawable vector vector none :behavior lightning-tracker) +;; (define-extern process-grab? function) ;; (function process symbol symbol :behavior process) +;; (define-extern process-release? function) ;; (function process symbol :behavior process) +;; (define-extern camera-look-at function) ;; (function pair uint process) +;; (define-extern ja-anim-done? function) ;; (function process symbol) +;; (define-extern camera-pov-from function) ;; (function pair uint process) +;; (define-extern cam-launcher-joystick function) ;; (function vector :behavior camera-slave) +;; (define-extern cam-launcher-shortfall state) ;; (state camera-slave) +;; (define-extern cam-launcher-long-joystick function) ;; (function vector :behavior camera-slave) +;; (define-extern cam-launcher-longfall state) ;; (state camera-slave) +;; (define-extern launcher-init-by-other function) ;; (function vector float int float none :behavior launcher) +;; (define-extern touch-tracker-init function) ;; (function vector float time-frame none :behavior touch-tracker) +;; (define-extern explosion-init-by-other function) ;; (function explosion-init-params object :behavior explosion) +;; (define-extern explosion-spawn-legacy-version function) +;; (define-extern explosion-spawn function) ;; (function process-drawable type explosion-init-params none) +;; (define-extern find-closest-solid-sphere-prim function) +;; (define-extern *explosion-debug-sphere* object) +;; (define-extern process-drawable-random-point! function) ;; (function process-drawable vector vector) +;; (define-extern process-drawable-pair-random-point! function) ;; (function process-drawable process-drawable vector float vector) +;; (define-extern simple-prim-init-by-other function) +;; (define-extern birth-func-simple-prim function) +;; (define-extern external-camera-controller-init-by-other function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; light-trails-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype color-array (inline-array-class) + ((data UNKNOWN :dynamic :offset-assert 16) + ) + :method-count-assert 14 + :size-assert #x10 + :flag-assert #xe00000010 + ) +|# + +#| +(deftype light-trail-composition (structure) + ((color-mode uint64 :offset-assert 0) + (color-curve basic :offset-assert 8) + (color-repeat-dist float :offset-assert 12) + (alpha-1-mode uint64 :offset-assert 16) + (alpha-2-mode uint64 :offset-assert 24) + (base-alpha float :offset-assert 32) + (alpha-curve-1 basic :offset-assert 36) + (alpha-curve-2 basic :offset-assert 40) + (alpha-repeat-dist float :offset-assert 44) + (width-mode uint64 :offset-assert 48) + (base-width float :offset-assert 56) + (width-curve basic :offset-assert 60) + (width-repeat-dist float :offset-assert 64) + (uv-mode uint64 :offset-assert 72) + (uv-repeat-dist float :offset-assert 80) + (max-age uint64 :offset-assert 88) + (tex-id uint32 :offset-assert 96) + (lie-mode uint64 :offset-assert 104) + (lie-vector vector :inline :offset-assert 112) + (zbuffer? basic :offset-assert 128) + (use-tape-mode? basic :offset-assert 132) + (blend-mode uint64 :offset-assert 136) + (frame-stagger uint8 :offset-assert 144) + ) + :method-count-assert 9 + :size-assert #x91 + :flag-assert #x900000091 + ) +|# + +#| +(deftype light-trail-breadcrumb (structure) + ((pos vector :inline :offset-assert 0) + (birth-time uint32 :offset-assert 12) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype breadcrumb-array (inline-array-class) + ((data UNKNOWN :dynamic :offset-assert 16) + ) + :method-count-assert 14 + :size-assert #x10 + :flag-assert #xe00000010 + ) +|# + +#| +(deftype light-trail (basic) + ((crumb-array basic :offset-assert 4) + (crumb-size uint8 :offset-assert 8) + (crumb-count int16 :offset-assert 10) + (max-crumb-count int16 :offset-assert 12) + (appearance light-trail-composition :offset-assert 16) + (start-marker uint64 :offset-assert 24) + (end-marker uint64 :offset-assert 32) + (decision uint64 :offset-assert 40) + (total-distance-traveled float :offset-assert 48) + (strip basic :offset-assert 52) + (strip2 basic :offset-assert 56) + (cache-vector UNKNOWN 4 :offset-assert 64) + ) + :method-count-assert 22 + :size-assert #x80 + :flag-assert #x1600000080 + (:methods + (light-trail-method-9 () none) ;; 9 + (light-trail-method-10 () none) ;; 10 + (light-trail-method-11 () none) ;; 11 + (light-trail-method-12 () none) ;; 12 + (light-trail-method-13 () none) ;; 13 + (light-trail-method-14 () none) ;; 14 + (light-trail-method-15 () none) ;; 15 + (light-trail-method-16 () none) ;; 16 + (light-trail-method-17 () none) ;; 17 + (light-trail-method-18 () none) ;; 18 + (light-trail-method-19 () none) ;; 19 + (light-trail-method-20 () none) ;; 20 + (light-trail-method-21 () none) ;; 21 + ) + ) +|# + +#| +(deftype weapon-trail-crumb (light-trail-breadcrumb) + ((offset vector :inline :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x20 + :flag-assert #x900000020 + ) +|# + +#| +(deftype weapon-trail (light-trail) + () + :method-count-assert 24 + :size-assert #x80 + :flag-assert #x1800000080 + (:methods + (weapon-trail-method-22 () none) ;; 22 + (weapon-trail-method-23 () none) ;; 23 + ) + ) +|# + +#| +(deftype tread-trail-crumb (light-trail-breadcrumb) + ((normal vector :inline :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x20 + :flag-assert #x900000020 + ) +|# + +#| +(deftype tread-trail (light-trail) + () + :method-count-assert 24 + :size-assert #x80 + :flag-assert #x1800000080 + (:methods + (tread-trail-method-22 () none) ;; 22 + (tread-trail-method-23 () none) ;; 23 + ) + ) +|# + +#| +(deftype light-trail-tracker-spawn-params (structure) + ((appearance light-trail-composition :offset-assert 0) + (max-num-crumbs int32 :offset-assert 4) + (tracked-obj uint64 :offset-assert 8) + (track-immediately? basic :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x14 + :flag-assert #x900000014 + ) +|# + +#| +(deftype weapon-trail-tracker-spawn-params (light-trail-tracker-spawn-params) + ((joint0 int16 :offset-assert 20) + (joint1 int16 :offset-assert 22) + ) + :method-count-assert 9 + :size-assert #x18 + :flag-assert #x900000018 + ) +|# + +#| +(deftype light-trail-tracker (process) + ((trail basic :offset-assert 128) + (tracked-object uint64 :offset-assert 136) + (offscreen? basic :offset-assert 144) + (offscreen-start-time uint64 :offset-assert 152) + (next-line-check-time uint64 :offset-assert 160) + (last-add-frame-val uint32 :offset-assert 168) + ) + :method-count-assert 21 + :size-assert #xac + :flag-assert #x15003000ac + (:methods + (light-trail-tracker-method-14 () none) ;; 14 + (light-trail-tracker-method-15 () none) ;; 15 + (light-trail-tracker-method-16 () none) ;; 16 + (light-trail-tracker-method-17 () none) ;; 17 + (light-trail-tracker-method-18 () none) ;; 18 + (light-trail-tracker-method-19 () none) ;; 19 + (light-trail-tracker-method-20 () none) ;; 20 + ) + ) +|# + +#| +(deftype weapon-trail-tracker (light-trail-tracker) + ((joint0 int16 :offset-assert 172) + (joint1 int16 :offset-assert 174) + (state-time uint64 :offset-assert 176) + ) + :method-count-assert 22 + :size-assert #xb8 + :flag-assert #x16004000b8 + (:methods + (weapon-trail-tracker-method-21 () none) ;; 21 + ) + ) +|# + +#| +(deftype tread-trail-tracker (light-trail-tracker) + () + :method-count-assert 21 + :size-assert #xac + :flag-assert #x15003000ac + ) +|# + +#| +(deftype light-trail-tracker-water (light-trail-tracker) + () + :method-count-assert 21 + :size-assert #xac + :flag-assert #x15003000ac + ) +|# + +#| +(deftype light-trail-tracker-projectile (light-trail-tracker) + ((state-time uint64 :offset-assert 176) + ) + :method-count-assert 22 + :size-assert #xb8 + :flag-assert #x16004000b8 + (:methods + (light-trail-tracker-projectile-method-21 () none) ;; 21 + ) + ) +|# + +;; (define-extern light-trail-tracker-init-by-other function) +;; (define-extern weapon-trail-tracker-init-by-other function) +;; (define-extern tread-trail-tracker-init-by-other function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; secrets-menu ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *menu-secrets-array* array) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; collectables ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype collectable (process-drawable) + ((pickup-type int32 :offset-assert 196) ;; pickup-type + (pickup-amount float :offset-assert 200) + (notify uint64 :offset-assert 204) ;; handle + (old-base vector :inline :offset-assert 220) + (base vector :inline :offset-assert 236) + (extra-trans vector :inline :offset-assert 252) + (jump-pos vector :inline :offset-assert 268) + (flags collectable-flag :offset-assert 284) + (birth-time uint64 :offset-assert 292) ;; seconds + (collect-timeout uint64 :offset-assert 300) ;; seconds + (fadeout-timeout uint64 :offset-assert 308) ;; seconds + (bob-offset uint64 :offset-assert 316) ;; seconds + (bob-amount float :offset-assert 324) + (pickup-handle uint64 :offset-assert 332) ;; handle + (actor-pause symbol :offset-assert 340) ;; guessed by decompiler + (collect-effect basic :offset-assert 344) + (collect-effect2 basic :offset-assert 348) + (target uint64 :offset-assert 356) ;; handle + (suck-time uint64 :offset-assert 364) ;; seconds + (suck-y-offset float :offset-assert 372) + (speed vector :inline :offset-assert 380) + (movie-pos-index int32 :offset-assert 396) + ) + :method-count-assert 36 + :size-assert #x194 + :flag-assert #x2401200194 + (:methods + (collectable-method-29 () none) ;; 29 ;; (init-common (_type_ entity-actor pickup-type float) none 29) + (collectable-method-30 () none) ;; 30 ;; (initialize-effects (_type_ pickup-type) none 30) + (collectable-method-31 () none) ;; 31 ;; (go-to-initial-state (_type_) none 31) + (collectable-method-32 () none) ;; 32 ;; (initialize-options (_type_ int float fact-info) collectable 32) + (collectable-method-33 () none) ;; 33 ;; (initialize-allocations (_type_) none 33) + (collectable-method-34 () none) ;; 34 ;; (common-post (_type_) none 34) + (collectable-method-35 () none) ;; 35 ;; (do-pickup (_type_ handle) none 35) + ) + (:state-methods + notice-blue ;; 28, old: (notice-blue (handle) _type_ :state 28) + blocked ;; 20, old: (blocked () _type_ :state 20) + jump ;; 24, old: (jump () _type_ :state 24) + deploy ;; 22, old: (deploy () _type_ :state 22) + suck ;; 23, old: (suck (handle) _type_ :state 23) + wait ;; 21, old: (wait () _type_ :state 21) + fade ;; 25, old: (fade () _type_ :state 25) + pickup ;; 26, old: (pickup (symbol handle) _type_ :state 26) + die ;; 27, old: (die () _type_ :state 27) + ) + ) +|# + +#| +(deftype eco (collectable) + ((respawn-delay uint64 :offset-assert 408) + ) + :method-count-assert 36 + :size-assert #x1a0 + :flag-assert #x24012001a0 + (:state-methods + die ;; 27 + pickup ;; 26 + ) + ) +|# + +#| +(deftype eco-yellow (eco) + () + :method-count-assert 36 + :size-assert #x1a0 + :flag-assert #x24012001a0 + ) +|# + +#| +(deftype eco-red (eco) + () + :method-count-assert 36 + :size-assert #x1a0 + :flag-assert #x24012001a0 + ) +|# + +#| +(deftype eco-blue (eco) + () + :method-count-assert 36 + :size-assert #x1a0 + :flag-assert #x24012001a0 + ) +|# + +#| +(deftype eco-green (eco) + () + :method-count-assert 36 + :size-assert #x1a0 + :flag-assert #x24012001a0 + ) +|# + +#| +(deftype health (collectable) + () + :method-count-assert 36 + :size-assert #x194 + :flag-assert #x2401200194 + ) +|# + +#| +(deftype eco-pill (collectable) + () + :method-count-assert 36 + :size-assert #x194 + :flag-assert #x2401200194 + (:state-methods + wait ;; 21 + ) + ) +|# + +#| +(deftype money (collectable) + () + :method-count-assert 36 + :size-assert #x194 + :flag-assert #x2401200194 + (:state-methods + notice-blue ;; 28 + pickup ;; 26 + ) + ) +|# + +#| +(deftype gem (money) + ((roty-speed deg :offset-assert 404) ;; degrees + (bounce-time uint64 :offset-assert 408) ;; seconds + (gem-pool uint8 :offset-assert 416) + ) + :method-count-assert 36 + :size-assert #x1a1 + :flag-assert #x24013001a1 + (:state-methods + suck ;; 23 + deploy ;; 22 + ) + ) +|# + +#| +(deftype skill (money) + () + :method-count-assert 36 + :size-assert #x194 + :flag-assert #x2401200194 + (:state-methods + wait ;; 21 + ) + ) +|# + +#| +(deftype fuel-cell (process-hidden) + () + :method-count-assert 15 + :size-assert #x80 + :flag-assert #xf00000080 + ) +|# + +#| +(deftype trick-point (collectable) + () + :method-count-assert 36 + :size-assert #x194 + :flag-assert #x2401200194 + ) +|# + +#| +(deftype skate-point (trick-point) + () + :method-count-assert 36 + :size-assert #x194 + :flag-assert #x2401200194 + ) +|# + +#| +(deftype ammo-collectable (collectable) + ((ammo-effect basic :offset-assert 404) + ) + :method-count-assert 36 + :size-assert #x198 + :flag-assert #x2401200198 + (:state-methods + die ;; 27 + ) + ) +|# + +#| +(deftype ammo (ammo-collectable) + () + :method-count-assert 36 + :size-assert #x198 + :flag-assert #x2401200198 + ) +|# + +#| +(deftype shield (ammo-collectable) + () + :method-count-assert 36 + :size-assert #x198 + :flag-assert #x2401200198 + ) +|# + +#| +(deftype upgrade-collectable (ammo-collectable) + () + :method-count-assert 36 + :size-assert #x198 + :flag-assert #x2401200198 + ) +|# + +;; (define-extern initialize-eco-by-other function) ;; (function vector vector fact-info none :behavior eco) +;; (define-extern add-blue-shake function) ;; (function vector vector vector vector) +;; (define-extern check-blue-suck function) ;; (function process-drawable symbol :behavior eco) +;; (define-extern add-blue-motion function) ;; (function symbol symbol symbol symbol symbol :behavior eco) +;; (define-extern collectable-standard-event-handler function) ;; (function process int symbol event-message-block object :behavior collectable) +;; (define-extern money-init-by-other function) ;; (function vector vector fact-info entity-actor none :behavior money) +;; (define-extern money-init-by-other-no-bob function) ;; (function vector vector fact-info float entity-actor none :behavior money) +;; (define-extern *collectable-dummy-shadow-control* shadow-control) ;; shadow-control +;; (define-extern initialize-ammo-by-other function) ;; (function vector vector fact-info none :behavior ammo) +;; (define-extern initialize-upgrade-by-other function) ;; (function vector vector fact-info entity-actor none :behavior upgrade-collectable) +;; (define-extern verify-pickup-type function) +;; (define-extern birth-pickup-at-point function) ;; (function vector pickup-type float symbol process-tree fact-info (pointer process) :behavior process) +;; (define-extern pickup-dark-set! function) +;; (define-extern pickup-light-set! function) +;; (define-extern pickup-ammo-set! function) +;; (define-extern gun-pickup-type->game-feature function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; hfrag-vu1-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype hfrag-vu1-poly4-packet (structure) + ((height-tag dma-packet :inline :offset-assert 0) + (base vector :inline :offset-assert 16) + (heights UNKNOWN 4 :offset-assert 32) + (color-tag dma-packet :inline :offset-assert 48) + (colors UNKNOWN 4 :offset-assert 64) + (next dma-packet :inline :offset-assert 80) + ) + :method-count-assert 9 + :size-assert #x60 + :flag-assert #x900000060 + ) +|# + +#| +(deftype hfrag-vu1-poly9-packet (structure) + ((height-tag dma-packet :inline :offset-assert 0) + (base vector3 :inline :offset-assert 16) + (heights UNKNOWN 9 :offset-assert 28) + (color-tag dma-packet :inline :offset-assert 64) + (colors UNKNOWN 12 :offset-assert 80) + (next dma-packet :inline :offset-assert 128) + (jump-index int32 :offset-assert 20) + ) + :method-count-assert 9 + :size-assert #x90 + :flag-assert #x900000090 + ) +|# + +#| +(deftype hfrag-vu1-poly25-packet (structure) + ((height-tag dma-packet :inline :offset-assert 0) + (base vector3 :inline :offset-assert 16) + (heights UNKNOWN 25 :offset-assert 28) + (color-tag dma-packet :inline :offset-assert 128) + (colors UNKNOWN 28 :offset-assert 144) + (next dma-packet :inline :offset-assert 256) + ) + :method-count-assert 9 + :size-assert #x110 + :flag-assert #x900000110 + ) +|# + +#| +(deftype hfrag-vu1-vertex (structure) + ((tex vector :inline :offset-assert 0) + (clr vector :inline :offset-assert 16) + (pos vector :inline :offset-assert 32) + ) + :method-count-assert 9 + :size-assert #x30 + :flag-assert #x900000030 + ) +|# + +#| +(deftype hfrag-vu1-poly4 (structure) + ((giftag vector :inline :offset-assert 0) + (verts UNKNOWN 4 :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #xd0 + :flag-assert #x9000000d0 + ) +|# + +#| +(deftype hfrag-vu1-poly9 (structure) + ((giftag0 vector :inline :offset-assert 0) + (verts0 UNKNOWN 6 :offset-assert 16) + (giftag1 vector :inline :offset-assert 304) + (verts1 UNKNOWN 6 :offset-assert 320) + ) + :method-count-assert 9 + :size-assert #x260 + :flag-assert #x900000260 + ) +|# + +#| +(deftype hfrag-vu1-poly25 (structure) + ((giftag0 vector :inline :offset-assert 0) + (verts0 UNKNOWN 10 :offset-assert 16) + (giftag1 vector :inline :offset-assert 496) + (verts1 UNKNOWN 10 :offset-assert 512) + (giftag2 vector :inline :offset-assert 992) + (verts2 UNKNOWN 10 :offset-assert 1008) + (giftag3 vector :inline :offset-assert 1488) + (verts3 UNKNOWN 10 :offset-assert 1504) + ) + :method-count-assert 9 + :size-assert #x7c0 + :flag-assert #x9000007c0 + ) +|# + +#| +(deftype hfrag-vu1-constants-base (structure) + ((far-verts UNKNOWN 25 :offset-assert 0) + (mid-verts9 UNKNOWN 9 :offset-assert 400) + (mid-verts25 UNKNOWN 25 :offset-assert 544) + (near-verts4 UNKNOWN 4 :offset-assert 944) + (near-verts9 UNKNOWN 9 :offset-assert 1008) + (sts UNKNOWN 9 :offset-assert 1152) + (data UNKNOWN 81 :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x510 + :flag-assert #x900000510 + ) +|# + +#| +(deftype hfrag-vu1-constants (structure) + ((base hfrag-vu1-constants-base :inline :offset-assert 0) + (far-verts UNKNOWN 25 :offset-assert 0) + (mid-verts9 UNKNOWN 9 :offset-assert 400) + (mid-verts25 UNKNOWN 25 :offset-assert 544) + (near-verts4 UNKNOWN 4 :offset-assert 944) + (near-verts9 UNKNOWN 9 :offset-assert 1008) + (sts UNKNOWN 9 :offset-assert 1152) + (drw-strip4 qword :inline :offset-assert 1296) + (drw-strip9-0 qword :inline :offset-assert 1312) + (drw-strip9-1 qword :inline :offset-assert 1328) + (drw-strip25-0 qword :inline :offset-assert 1344) + (drw-strip25-1 qword :inline :offset-assert 1360) + (matrix matrix :inline :offset-assert 1376) + (hvdf-offset vector :inline :offset-assert 1440) + (hmge-scale vector :inline :offset-assert 1456) + (fog vector :inline :offset-assert 1472) + (stores qword :inline :offset-assert 1488) + ) + :method-count-assert 9 + :size-assert #x5e0 + :flag-assert #x9000005e0 + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; citizen ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype iter-seg (structure) + ((self citizen :offset-assert 0) ;; guessed by decompiler + (score float :offset-assert 4) + (seg nav-segment :offset-assert 8) + (cp-plane plane :inline :offset-assert 16) + (desired-dir vector :inline :offset-assert 32) + ) + :method-count-assert 9 + :size-assert #x30 + :flag-assert #x900000030 + ) +|# + +;; (define-extern *citizen-debug* object) ;; symbol +;; (define-extern citizen-init-by-other function) ;; (function traffic-object-spawn-params none :behavior citizen) +;; (define-extern citizen-travel-anim function) ;; (function int int symbol :behavior citizen) +;; (define-extern iter-seg-clear-path function) ;; (function iter-seg nav-segment symbol) +;; (define-extern iter-seg-new-dir function) ;; (function iter-seg nav-segment none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; vehicle-control ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype vehicle-controller (structure) + ((flags vehicle-controller-flag :offset-assert 0) + (traffic traffic-engine :offset-assert 4) ;; guessed by decompiler + (branch nav-branch :offset-assert 8) + (target-speed-offset meters :offset-assert 12) + (target-speed meters :offset-assert 16) + (choose-branch-callback (function vehicle-controller vehicle nav-branch) :offset-assert 20) ;; guessed by decompiler + (turn-accel meters :offset-assert 24) + (max-turn-speed meters :offset-assert 28) + (path-prev-point vector :inline :offset-assert 32) + (turn-enter-point vector :inline :offset-assert 48) + (turn-exit-point vector :inline :offset-assert 64) + (path-dest-point vector :inline :offset-assert 64) + (turn-enter-dir vector :inline :offset-assert 80) + (turn-exit-dir vector :inline :offset-assert 96) + (dest-circle vector :inline :offset-assert 112) + (target-point vector :inline :offset-assert 128) + ) + :method-count-assert 22 + :size-assert #x90 + :flag-assert #x1600000090 + (:methods + (vehicle-controller-method-9 () none) ;; 9 ;; (vehicle-controller-method-9 (_type_) none 9) + (vehicle-controller-method-10 () none) ;; 10 ;; (vehicle-controller-method-10 (_type_ traffic-tracker) none 10) + (vehicle-controller-method-11 () none) ;; 11 ;; (vehicle-controller-method-11 (_type_) none 11) + (vehicle-controller-method-12 () none) ;; 12 ;; (vehicle-controller-method-12 (_type_ rigid-body-vehicle-constants vector float int float) 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-14 (_type_ vehicle) nav-branch 14) + (vehicle-controller-method-15 () none) ;; 15 ;; (vehicle-controller-method-15 (_type_) nav-branch 15) + (vehicle-controller-method-16 () none) ;; 16 ;; (vehicle-controller-method-16 (_type_ vector vector) none 16) + (vehicle-controller-method-17 () none) ;; 17 ;; (draw-debug-info (_type_) none 17) + (vehicle-controller-method-18 () none) ;; 18 ;; (vehicle-controller-method-18 (_type_ vector vector vehicle float) none 18) + (vehicle-controller-method-19 () none) ;; 19 ;; (vehicle-controller-method-19 (_type_ vector object vector vector) none 19) + (vehicle-controller-method-20 () none) ;; 20 ;; (vehicle-controller-method-20 (_type_ object float) none 20) + (vehicle-controller-method-21 () none) ;; 21 ;; (vehicle-controller-method-21 (_type_) none 21) + ) + ) +|# + +;; (define-extern *vehicle-control-debug-obj* object) ;; object + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; lightning-new-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype lightning-appearance (structure) + ((base-alpha float :offset-assert 0) + (width-range-start float :offset-assert 4) + (width-range-end float :offset-assert 8) + (tex-id uint32 :offset-assert 12) + (blend-mode uint64 :offset-assert 16) + (fade-time uint64 :offset-assert 24) + (regenerate-time-start uint64 :offset-assert 32) + (regenerate-time-end uint64 :offset-assert 40) + (alpha-1-curve basic :offset-assert 48) + (alpha-1-mode uint64 :offset-assert 56) + (alpha-1-repeat-dist float :offset-assert 64) + (alpha-2-curve basic :offset-assert 68) + (alpha-2-mode uint64 :offset-assert 72) + (alpha-2-repeat-dist float :offset-assert 80) + (width-curve basic :offset-assert 84) + (width-mode uint64 :offset-assert 88) + (width-repeat-dist float :offset-assert 96) + (uv-repeat-dist float :offset-assert 100) + (uv-shift? basic :offset-assert 104) + (uv-shift-speed uint64 :offset-assert 112) + (fade-time uint64 :offset-assert 24) + (use-sprite-bucket? basic :offset-assert 128) + (use-accurate-interp? basic :offset-assert 132) + ) + :method-count-assert 9 + :size-assert #x88 + :flag-assert #x900000088 + ) +|# + +#| +(deftype lightning-span-internal (structure) + ((index int16 :offset-assert 0) + (span-flags uint8 :offset-assert 2) + (num-inner-points int8 :offset-assert 3) + ) + :method-count-assert 9 + :size-assert #x4 + :flag-assert #x900000004 + ) +|# + +#| +(deftype lightning-span (structure) + ((random-offset-size-start float :offset-assert 0) + (inner-random-offset-size float :offset-assert 4) + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +#| +(deftype lightning-spans-array (inline-array-class) + ((data UNKNOWN :dynamic :offset-assert 16) + ) + :method-count-assert 14 + :size-assert #x10 + :flag-assert #xe00000010 + ) +|# + +#| +(deftype lightning-spans-internal-array (inline-array-class) + ((data UNKNOWN :dynamic :offset-assert 16) + ) + :method-count-assert 14 + :size-assert #x10 + :flag-assert #xe00000010 + ) +|# + +#| +(deftype tex-u-holder (structure) + ((uu float :offset-assert 0) + (last-dist float :offset-assert 4) + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +#| +(deftype lightning-bolt (basic) + ((current-points basic :offset-assert 4) + (desired-points basic :offset-assert 8) + (span-pts-start basic :offset-assert 12) + (spans basic :offset-assert 16) + (spans-internal basic :offset-assert 20) + (strip1 basic :offset-assert 24) + (strip2 basic :offset-assert 28) + (inner-point-travel-time uint64 :offset-assert 32) + (start-fade-time uint64 :offset-assert 40) + (new-inner-point-generate-time uint64 :offset-assert 48) + (last-generate-time uint64 :offset-assert 56) + (base-width float :offset-assert 64) + (current-uv-shift float :offset-assert 68) + (current-fade-scalar float :offset-assert 72) + (fractal-reduction float :offset-assert 76) + (appearance lightning-appearance :offset-assert 80) + (fade-mode uint64 :offset-assert 88) + (generate-mode uint64 :offset-assert 96) + (snap-inner-points? basic :offset-assert 104) + (span-data UNKNOWN 2 :offset-assert 108) + (num-active-spans int8 :offset-assert 108) + (num-spans int8 :offset-assert 109) + (base-color uint32 :offset-assert 112) + ) + :method-count-assert 23 + :size-assert #x74 + :flag-assert #x1700000074 + (:methods + (lightning-bolt-method-9 () none) ;; 9 + (lightning-bolt-method-10 () none) ;; 10 + (lightning-bolt-method-11 () none) ;; 11 + (lightning-bolt-method-12 () none) ;; 12 + (lightning-bolt-method-13 () none) ;; 13 + (lightning-bolt-method-14 () none) ;; 14 + (lightning-bolt-method-15 () none) ;; 15 + (lightning-bolt-method-16 () none) ;; 16 + (lightning-bolt-method-17 () none) ;; 17 + (lightning-bolt-method-18 () none) ;; 18 + (lightning-bolt-method-19 () none) ;; 19 + (lightning-bolt-method-20 () none) ;; 20 + (lightning-bolt-method-21 () none) ;; 21 + (lightning-bolt-method-22 () none) ;; 22 + ) + ) +|# + +#| +(deftype lightning-new-tracker (process) + ((bolt basic :offset-assert 128) + (lifetime uint64 :offset-assert 136) + (state-time uint64 :offset-assert 144) + ) + :method-count-assert 16 + :size-assert #x98 + :flag-assert #x1000200098 + (:methods + (lightning-new-tracker-method-14 () none) ;; 14 + (lightning-new-tracker-method-15 () none) ;; 15 + ) + ) +|# + +#| +(deftype lightning-tracker-init-params (structure) + ((appearance lightning-appearance :offset-assert 0) + (start-pt vector :inline :offset-assert 16) + (end-pt vector :inline :offset-assert 32) + (lifetime uint64 :offset-assert 48) + (num-inner-points int8 :offset-assert 56) + (inner-random-offset-size float :offset-assert 60) + (random-offset-size-start float :offset-assert 64) + ) + :method-count-assert 9 + :size-assert #x44 + :flag-assert #x900000044 + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; carry-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype carry-info (basic) + ((process (pointer target) :offset-assert 4) ;; guessed by decompiler + (pickup-time uint64 :offset-assert 8) ;; time-frame + (other-value float :offset-assert 16) + (other uint64 :offset-assert 24) ;; handle + (point vector :inline :offset-assert 32) + (normal vector :inline :offset-assert 48) + (max-angle deg :offset-assert 64) ;; degrees + (max-distance meters :offset-assert 68) + (max-pull meters :offset-assert 72) + (min-pull meters :offset-assert 76) + (grab-trans-blend float :offset-assert 80) + (carry-radius meters :offset-assert 84) + (backup-radius meters :offset-assert 88) + (joint int8 :offset-assert 92) + (mode carry-mode :offset-assert 93) + (face-dir int8 :offset-assert 94) + (local-point vector :inline :offset-assert 96) + (local-normal vector :inline :offset-assert 112) + (grab-quat vector :inline :offset-assert 128) ;; quaternion :inline + (grab-trans vector :inline :offset-assert 144) + (hold-trans vector :inline :offset-assert 160) + ) + :method-count-assert 17 + :size-assert #xb0 + :flag-assert #x11000000b0 + ;; field carry-mode is likely a value type. + (:methods + ;; (new (symbol type process-drawable int vector vector float) _type_ 0) + (carry-info-method-9 () none) ;; 9 ;; (carry-info-method-9 (_type_) none 9) + (carry-info-method-10 () none) ;; 10 ;; (distance-from-destination (_type_ carry-info) float 10) + (carry-info-method-11 () none) ;; 11 ;; (drag! (_type_ carry-info) none 11) + (carry-info-method-12 () none) ;; 12 ;; (drop-impl! (_type_ carry-info) none 12) + (carry-info-method-13 () none) ;; 13 ;; (carry-info-method-13 (_type_) symbol 13) + (carry-info-method-14 () none) ;; 14 ;; (carry! (_type_ carry-info vector vector) none 14) + (carry-info-method-15 () none) ;; 15 ;; (drop! (_type_ carry-info) none 15) + (carry-info-method-16 () none) ;; 16 ;; (translate! (_type_) symbol 16) + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; bouncer ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype bouncer (process-drawable) + ((spring-height meters :offset-assert 200) + (smush float :offset-assert 204) + (mods basic :offset-assert 208) + (use-alternate-jump? basic :offset-assert 212) + ) + :method-count-assert 27 + :size-assert #xd8 + :flag-assert #x1b006000d8 + (:methods + (bouncer-method-23 () none) ;; 23 ;; (init-skeleton! (_type_) none 23) + (bouncer-method-24 () none) ;; 24 ;; (bouncer-method-24 (_type_) none 24) + (bouncer-method-25 () none) ;; 25 + (bouncer-method-26 () none) ;; 26 + ) + (:state-methods + idle ;; 20, old: (idle () _type_ :state 20) + smush ;; 22, old: (smush () _type_ :state 22) + fire ;; 21, old: (fire () _type_ :state 21) + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; lightjak-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype wings (process-drawable) + ((shadow-backup basic :offset-assert 208) + (ragdoll-proc uint64 :offset-assert 216) + (lock? basic :offset-assert 224) + (wing-part UNKNOWN 2 :offset-assert 228) + ) + :method-count-assert 24 + :size-assert #xec + :flag-assert #x18007000ec + (:methods + (wings-method-20 () none) ;; 20 + (wings-method-21 () none) ;; 21 + (wings-method-22 () none) ;; 22 + (wings-method-23 () none) ;; 23 + ) + ) +|# + +#| +(deftype lightjak-shield (process-drawable) + ((fade float :offset-assert 200) + (tone uint32 :offset-assert 204) + ) + :method-count-assert 23 + :size-assert #xd0 + :flag-assert #x17005000d0 + (:methods + (lightjak-shield-method-20 () none) ;; 20 + (lightjak-shield-method-21 () none) ;; 21 + (lightjak-shield-method-22 () none) ;; 22 + ) + ) +|# + +#| +(deftype lightjak-info (basic) + ((process uint32 :offset-assert 4) + (wings uint32 :offset-assert 8) + (get-off-lock basic :offset-assert 12) + (latch-out-time uint64 :offset-assert 16) + (start-time uint64 :offset-assert 24) + (attack-id uint32 :offset-assert 32) + (lightjak-before-powerjak basic :offset-assert 36) + (attack-time uint64 :offset-assert 40) + (attack-count uint64 :offset-assert 48) + (stage uint32 :offset-assert 56) + (want-stage uint32 :offset-assert 60) + (get-on-latch uint32 :offset-assert 64) + (tone uint32 :offset-assert 68) + (on-off uint32 :offset-assert 72) + (mode-sound-bank connection :offset-assert 76) + (swoop-count int32 :offset-assert 80) + (freeze-control uint64 :offset-assert 88) + (freeze-screen uint64 :offset-assert 96) + (freeze-sound uint32 :offset-assert 104) + (shield uint32 :offset-assert 108) + (shield-start-time uint64 :offset-assert 112) + (shield-count-time uint64 :offset-assert 120) + (regen-start-time uint64 :offset-assert 128) + (regen-time uint64 :offset-assert 136) + ) + :method-count-assert 9 + :size-assert #x90 + :flag-assert #x900000090 + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; gun-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype gun (process-drawable) + ((control control-info :offset-assert 128) ;; guessed by decompiler + (shadow-backup shadow-geo :offset-assert 208) ;; guessed by decompiler + (read-scale basic :offset-assert 212) + (gun-type int32 :offset-assert 216) ;; pickup-type + (barrel joint-mod 2 :offset-assert 220) ;; guessed by decompiler + (mag joint-mod 4 :offset-assert 228) ;; guessed by decompiler + (mag-scale float 4 :offset-assert 244) ;; guessed by decompiler + (extra uint64 :offset-assert 264) + ) + :method-count-assert 24 + :size-assert #x110 + :flag-assert #x1800900110 + (:methods + (gun-method-20 () none) ;; 20 ;; (idle () _type_ :state 20) + (gun-method-21 () none) ;; 21 ;; (use (symbol) _type_ :state 21) + (gun-method-22 () none) ;; 22 ;; (hidden () _type_ :state 22) + (gun-method-23 () none) ;; 23 ;; (die () _type_ :state 23) + ) + ) +|# + +#| +(deftype gun-info (basic) + ((process (pointer target) :offset-assert 4) ;; guessed by decompiler + (gun (pointer gun) :offset-assert 8) ;; guessed by decompiler + (gun-pos transformq :inline :offset-assert 16) + (gun-trans vector :inline :offset-assert 16) + (gun-quat vector :inline :offset-assert 32) ;; quaternion :inline + (gun-scale vector :inline :offset-assert 48) + (active? symbol :offset-assert 72) ;; guessed by decompiler + (latch? symbol :offset-assert 76) ;; guessed by decompiler + (put-away? symbol :offset-assert 80) ;; guessed by decompiler + (surpress-time uint64 :offset-assert 88) ;; time-frame + (fire-time uint64 :offset-assert 96) ;; time-frame + (gun-delay-fire float :offset-assert 104) + (gun-time uint64 :offset-assert 112) ;; time-frame + (gun-get-on-time uint64 :offset-assert 120) ;; time-frame + (active-time uint64 :offset-assert 128) ;; time-frame + (fire-delay uint32 :offset-assert 136) + (gun-control uint32 :offset-assert 140) + (gun-target uint32 :offset-assert 144) + (gun-daxter float :offset-assert 148) + (gun-select-time UNKNOWN 4 :offset-assert 152) + (gun-roty-rel deg :offset-assert 184) ;; degrees + (gun-roty deg :offset-assert 188) ;; degrees + (gun-roty-targ deg :offset-assert 192) ;; degrees + (hips joint-mod :offset-assert 196) ;; guessed by decompiler + (upper-body joint-mod :offset-assert 200) ;; guessed by decompiler + (chest joint-mod :offset-assert 204) ;; guessed by decompiler + (strip basic :offset-assert 208) + (uv-slide float :offset-assert 212) + (fire-dir-rot deg :offset-assert 216) ;; degrees + (fire-dir vector :inline :offset-assert 224) + (fire-point vector :inline :offset-assert 256) + (fire-dir-backup vector :inline :offset-assert 272) + (fire-dir-out vector :inline :offset-assert 288) + (fire-pending int32 :offset-assert 304) + (fire-pending-time uint64 :offset-assert 312) ;; time-frame + (fire-start-time uint64 :offset-assert 320) ;; time-frame + (fire-charge float :offset-assert 328) + (fire-spin deg :offset-assert 332) ;; degrees + (fire-spinv deg :offset-assert 336) ;; degrees + (fire-chamber int32 :offset-assert 340) + (fire-range meters :offset-assert 344) + (laser-active? symbol :offset-assert 348) ;; guessed by decompiler + (laser-point vector :inline :offset-assert 352) + (laser-dir vector :inline :offset-assert 368) + (laser-hit-point vector :inline :offset-assert 400) + (track? uint16 :offset-assert 416) ;; gun-track-flags + (track-tilt deg :offset-assert 420) ;; degrees + (track-turn deg :offset-assert 424) ;; degrees + (track-find-range meters :offset-assert 428) + (track-turnv-range meters :offset-assert 432) + (track-tilt-range meters :offset-assert 436) + (track-turn-range meters :offset-assert 440) + (track-tilt-max deg :offset-assert 444) ;; degrees + (track-turn-max deg :offset-assert 448) ;; degrees + (track-angle-mult float :offset-assert 452) + (track-beam-size float :offset-assert 456) + (track-auto-fire symbol :offset-assert 460) ;; guessed by decompiler + (track-require uint32 :offset-assert 464) + (track-target-hold-time uint64 :offset-assert 472) ;; time-frame + (track-start-time uint64 :offset-assert 480) ;; time-frame + (track-press-start-time uint64 :offset-assert 488) ;; time-frame + (track-target focus 2 :offset-assert 496) ;; guessed by decompiler + (UNKNOWN UNKNOWN :offset-assert -1) ;; field could not be read. + (track-trans vector :inline :offset-assert 528) + (track-dir vector :inline :offset-assert 544) + (turn-fast-hold-time uint64 :offset-assert 560) ;; time-frame + (blue-whine-sound-id sound-id :offset-assert 568) ;; guessed by decompiler + (blue-whine-volume float :offset-assert 572) + (mode-sound-bank connection :offset-assert 576) + (top-anim-twist vector :inline :offset-assert 592) + (top-anim-twist-targ vector :inline :offset-assert 608) + (top-anim-look-at vector :inline :offset-assert 624) + (top-anim-twist-reset uint64 :offset-assert 640) + (top-anim-gun-height meters :offset-assert 648) + (top-anim-blue-cycle float :offset-assert 652) + (top-anim-low-high float :offset-assert 656) + (top-anim-extra-twistv deg :offset-assert 660) ;; degrees + (top-anim-tilt-up deg :offset-assert 664) ;; degrees + (attack-combo combo-tracker :inline :offset-assert 672) + (combo-window-start uint64 :offset-assert 720) ;; time-frame + (combo-window-state symbol :offset-assert 728) ;; guessed by decompiler + (combo-fire-delay uint32 :offset-assert 732) + (charge-ammo float :offset-assert 736) + (charge-start-time uint64 :offset-assert 744) ;; time-frame + (charge-inc-time uint64 :offset-assert 752) ;; time-frame + (charge-active? uint64 :offset-assert 760) ;; handle + (part basic :offset-assert 768) + (ammo-required float :offset-assert 772) + ) + :method-count-assert 10 + :size-assert #x308 + :flag-assert #xa00000308 + (:methods + (gun-info-method-9 () none) ;; 9 ;; (gun-info-method-9 (_type_) (inline-array vector) 9) + ) + ) +|# + +#| +(deftype beam-info (structure) + ((y-scale float :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x4 + :flag-assert #x900000004 + ) +|# + +;; (define-extern using-gun? function) ;; (function target symbol) +;; (define-extern enabled-gun? function) ;; (function target symbol) +;; (define-extern gun->ammo function) ;; (function pickup-type int) +;; (define-extern gun->eco function) +;; (define-extern *gun-shadow-control* shadow-control) ;; shadow-control + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; precura-obs ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype precur-switch (process-drawable) + ((alt-actor basic :offset-assert 200) + ) + :method-count-assert 24 + :size-assert #xcc + :flag-assert #x18005000cc + (:state-methods + idle ;; 20 + going-down ;; 21 + going-up ;; 22 + idle-down ;; 23 + ) + ) +|# + +#| +(deftype precur-jump-plate (process-drawable) + ((start-quat quaternion :inline :offset-assert 208) + (turn-start uint64 :offset-assert 224) + (angle float :offset-assert 232) + (first? basic :offset-assert 236) + (idx uint8 :offset-assert 240) + (sound-id uint32 :offset-assert 244) + ) + :method-count-assert 22 + :size-assert #xf8 + :flag-assert #x16008000f8 + (:state-methods + idle ;; 20 + turn ;; 21 + ) + ) +|# + +#| +(deftype precur-generator (process-drawable) + ((attack-id uint32 :offset-assert 200) + (shove-id uint32 :offset-assert 204) + (sound-id uint32 :offset-assert 208) + (next-lightning-time uint32 :offset-assert 212) + (shock-distance float :offset-assert 216) + ) + :method-count-assert 23 + :size-assert #xdc + :flag-assert #x17006000dc + (:methods + (precur-generator-method-22 () none) ;; 22 + ) + (:state-methods + idle ;; 20 + explode ;; 21 + ) + ) +|# + +#| +(deftype precur-generator-a (precur-generator) + () + :method-count-assert 23 + :size-assert #xdc + :flag-assert #x17006000dc + (:state-methods + idle ;; 20 + explode ;; 21 + ) + ) +|# + +#| +(deftype precur-generator-b (precur-generator) + () + :method-count-assert 23 + :size-assert #xdc + :flag-assert #x17006000dc + (:state-methods + idle ;; 20 + explode ;; 21 + ) + ) +|# + +#| +(deftype precur-generator-c (process-drawable) + ((actor-group uint32 :offset-assert 196) + (actor-group-count int32 :offset-assert 200) + (next-lightning-time uint32 :offset-assert 204) + (sound-id uint32 :offset-assert 208) + ) + :method-count-assert 22 + :size-assert #xd8 + :flag-assert #x16006000d8 + (:state-methods + idle ;; 20 + explode ;; 21 + ) + ) +|# + +#| +(deftype precur-generator-d-gem (process-drawable) + ((ang-vel float :offset-assert 200) + (offset-vec vector :inline :offset-assert 208) + (init-pos vector :inline :offset-assert 224) + (sound-id uint32 :offset-assert 240) + ) + :method-count-assert 24 + :size-assert #xf4 + :flag-assert #x18008000f4 + (:state-methods + idle ;; 20 + orbit-gen ;; 21 + smoking ;; 22 + explode ;; 23 + ) + ) +|# + +#| +(deftype precur-generator-d (process-drawable) + ((actor-group uint32 :offset-assert 196) + (actor-group-count int32 :offset-assert 200) + (next-lightning-time uint32 :offset-assert 204) + (proc-handle UNKNOWN 3 :offset-assert 212) + (animation-speed float :offset-assert 236) + (sound-id uint32 :offset-assert 240) + ) + :method-count-assert 24 + :size-assert #xf8 + :flag-assert #x18008000f8 + (:methods + (precur-generator-d-method-23 () none) ;; 23 + ) + (:state-methods + idle ;; 20 + explode ;; 21 + explosions ;; 22 + ) + ) +|# + +#| +(deftype precur-platform-round (process-drawable) + ((start-quat quaternion :inline :offset-assert 208) + (start-height float :offset-assert 224) + (sound-id uint32 :offset-assert 228) + (start-dip-time float :offset-assert 232) + (last-ridden-time float :offset-assert 236) + ) + :method-count-assert 25 + :size-assert #xf0 + :flag-assert #x19007000f0 + (:methods + (precur-platform-round-method-24 () none) ;; 24 + ) + (:state-methods + idle ;; 20 + hidden-state ;; 21 + fade-in ;; 23 + rotate-plat ;; 22 + ) + ) +|# + +#| +(deftype precur-door-d (process-drawable) + () + :method-count-assert 22 + :size-assert #xc8 + :flag-assert #x16005000c8 + (:state-methods + idle ;; 20 + die ;; 21 + ) + ) +|# + +#| +(deftype precur-door-c (process-drawable) + () + :method-count-assert 24 + :size-assert #xc8 + :flag-assert #x18005000c8 + (:methods + (precur-door-c-method-22 () none) ;; 22 + (precur-door-c-method-23 () none) ;; 23 + ) + (:state-methods + explode ;; 21 + idle ;; 20 + ) + ) +|# + +#| +(deftype task-manager-precur-tour (task-manager) + ((hint-type uint8 :offset-assert 240) + ) + :method-count-assert 32 + :size-assert #xf1 + :flag-assert #x20008000f1 + ) +|# + +#| +(deftype precura-door-a (process-drawable) + ((open-test basic :offset-assert 200) + (open-started uint64 :offset-assert 208) + (do-camera? basic :offset-assert 216) + (open-frame float :offset-assert 220) + (precur-tour? basic :offset-assert 224) + ) + :method-count-assert 23 + :size-assert #xe4 + :flag-assert #x17007000e4 + ;; field open-test uses ~A with a signed load. + (:methods + (precura-door-a-method-22 () none) ;; 22 + ) + (:state-methods + close ;; 21 + open ;; 20 + ) + ) +|# + +;; (define-extern spawn-mech-shock-effect function) +;; (define-extern *precur-generator-a-exploder-params* joint-exploder-static-params) +;; (define-extern *precur-generator-b-exploder-params* joint-exploder-static-params) +;; (define-extern *precur-generator-c-exploder-params* joint-exploder-static-params) +;; (define-extern precur-generator-d-gem-init-by-other function) +;; (define-extern *precur-generator-d-exploder-params* joint-exploder-static-params) +;; (define-extern rotate-platform-behavior function) +;; (define-extern *precur-door-d-exploder-params* joint-exploder-static-params) +;; (define-extern precur-door-d-init-by-other function) +;; (define-extern *precur-door-c-exploder-params* joint-exploder-static-params) +;; (define-extern precur-door-c-handler function) +;; (define-extern hint-type->string function) +;; (define-extern precura-do-blur-if-more-than-dist-away function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; darkjak-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype darkjak-info (basic) + ((process (pointer target) :offset-assert 4) ;; guessed by decompiler + (latch-out-time uint64 :offset-assert 8) + (attack-id uint32 :offset-assert 16) + (start-time uint64 :offset-assert 24) ;; time-frame + (attack-time uint64 :offset-assert 32) ;; time-frame + (attack-count uint64 :offset-assert 40) + (lightning-count int32 :offset-assert 48) + (charge-effect uint64 :offset-assert 56) + (stage darkjak-stage :offset-assert 64) ;; guessed by decompiler + (want-stage darkjak-stage :offset-assert 68) ;; guessed by decompiler + (clock-pos float :offset-assert 72) + (clock-vel float :offset-assert 76) + (clock-on symbol :offset-assert 80) ;; guessed by decompiler + (hud handle 1 :offset-assert 88) ;; guessed by decompiler + (tone sound-id :offset-assert 96) ;; guessed by decompiler + (bomb uint32 :offset-assert 100) + (mode-sound-bank connection :offset-assert 104) + ) + :method-count-assert 10 + :size-assert #x6c + :flag-assert #xa0000006c + (:methods + (darkjak-info-method-9 () none) ;; 9 ;; (update-clock! (_type_ int) none 9) + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; sidekick ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *sidekick-remap* object) ;; pair +;; (define-extern cspace<-cspace+transformq! function) ;; (function cspace cspace transformq matrix) +;; (define-extern target-sidekick-setup function) ;; (function symbol none :behavior target) +;; (define-extern init-sidekick function) ;; (function none :behavior sidekick) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; target-part ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern spt-birth-func-brightness-part-droppings-for function) +;; (define-extern birth-func-copy-target-y-rot function) ;; (function int sparticle-cpuinfo sparticle-launchinfo none) +;; (define-extern birth-func-ground-orient function) ;; (function int sparticle-cpuinfo sparticle-launchinfo none) +;; (define-extern birth-func-target-orient function) ;; (function int sparticle-cpuinfo sparticle-launchinfo none) +;; (define-extern birth-func-vector-orient function) ;; (function int sparticle-cpuinfo sparticle-launchinfo none) +;; (define-extern birth-func-set-alpha-from-userdata function) ;; (function int sparticle-cpuinfo sparticle-launchinfo float) +;; (define-extern part-tracker-track-target-joint function) ;; (function int sparticle-cpuinfo sparticle-launchinfo none) +;; (define-extern spt-birth-func-part-land-droppings-for function) +;; (define-extern spt-birth-func-part-droppings-for function) +;; (define-extern spt-birth-func-part-slide-droppings-for function) +;; (define-extern spt-birth-func-part-jump-droppings-for function) +;; (define-extern process-drawable-burn-effect function) ;; (function time-frame rgbaf :behavior target) +;; (define-extern lightning-probe-callback function) ;; (function lightning-tracker none) +;; (define-extern process-drawable-shock-effect-replace function) +;; (define-extern process-drawable-shock-effect function) ;; (function process-drawable lightning-spec (function lightning-tracker none) sparticle-launcher int int float object) +;; (define-extern process-drawable-shock-wall-effect function) ;; (function process-drawable lightning-spec (function lightning-tracker none) sparticle-launcher symbol) +;; (define-extern process-drawable2-shock-effect function) ;; (function process-drawable process-drawable lightning-spec (function lightning-tracker none) sparticle-launcher none) +;; (define-extern process-drawable-shock-skel-effect function) ;; (function process-drawable lightning-spec (function lightning-tracker none) sparticle-launcher float int int none) +;; (define-extern *lightning-darkjak-pill* object) ;; lightning-spec + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; gun-part ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern sparticle-track-gun-joint function) +;; (define-extern *red-shot-colors* object) ;; (pointer rgba) +;; (define-extern *range-explo-dust-color* curve-color-fast) +;; (define-extern *range-explo-dust-alpha* curve2d-fast) +;; (define-extern *range-explo-dust-scale-x* curve2d-fast) +;; (define-extern *range-explo-dust-scale-y* curve2d-fast) +;; (define-extern *curve-explo-dust-alpha* curve2d-fast) +;; (define-extern *curve-explo-dust-scale-x* curve2d-fast) +;; (define-extern *curve-explo-dust-scale-y* curve2d-fast) +;; (define-extern *part-gun-red3-explosion-dust-in-curve-settings* object) +;; (define-extern *range-explo-color* curve-color-fast) +;; (define-extern *range-explo-alpha* curve2d-fast) +;; (define-extern *range-explo-scale-x* curve2d-fast) +;; (define-extern *range-explo-scale-y* curve2d-fast) +;; (define-extern *curve-explo-alpha* curve2d-fast) +;; (define-extern *curve-explo-scale-x* curve2d-fast) +;; (define-extern *curve-explo-scale-y* curve2d-fast) +;; (define-extern *part-gun-red3-explosion-texture-curve-settings* object) +;; (define-extern *curve-linear-up-red* object) +;; (define-extern *red-shot-3-trail* object) +;; (define-extern *curve-yellow2-shot-alpha* object) +;; (define-extern *curve-yellow2-shot-color* curve-color-fast) +;; (define-extern *curve-linear-down-long* curve2d-fast) +;; (define-extern *yellow-shot-2-trail* object) +;; (define-extern check-shell-level1 function) ;; (function sparticle-system sparticle-cpuinfo vector none) +;; (define-extern check-shell-level2 function) ;; (function sparticle-system sparticle-cpuinfo vector none) +;; (define-extern sparticle-dark-shot-lightning function) ;; (function sparticle-system sparticle-cpuinfo vector none) +;; (define-extern sparticle-track-gun-joint-3d function) +;; (define-extern sparticle-track-gun-joint-player-y function) +;; (define-extern *last-player-pos* object) +;; (define-extern birth-func-converge function) +;; (define-extern sparticle-red-2-converge function) +;; (define-extern sparticle-red-2-glow-trail-halt function) +;; (define-extern *gun-dark-3-nuke-fade-time* object) +;; (define-extern *gun-dark-3-nuke-fade-curve* object) +;; (define-extern *gun-dark-3-nuke-blur-segs* object) +;; (define-extern *gun-dark-3-nuke-blur-time* object) +;; (define-extern *gun-dark-3-nuke-blur-curve* object) +;; (define-extern *gun-dark-3-mushroom-speed* object) +;; (define-extern *gun-dark-3-mushroom-size-time* object) +;; (define-extern *gun-dark-3-nuke-mushroom-size-curve-x* object) +;; (define-extern *gun-dark-3-nuke-mushroom-size-curve-y* object) +;; (define-extern *gun-dark-3-nuke-fade-time-small* object) +;; (define-extern *gun-dark-3-nuke-fade-curve-small* object) +;; (define-extern *gun-dark-3-nuke-blur-segs-small* object) +;; (define-extern *gun-dark-3-nuke-blur-time-small* object) +;; (define-extern *gun-dark-3-nuke-blur-curve-small* object) +;; (define-extern spt-func-part-gun-dark-1-upgrade-shot-edges function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; kg-grunt ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype kg-grunt-anim-info (structure) + ((anim-index int32 :offset-assert 0) + (travel-speed meters :offset-assert 4) + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +#| +(deftype kg-grunt-global-info (basic) + ((prev-knocked-anim-index int32 :offset-assert 4) + (prev-yellow-hit-anim-index int32 :offset-assert 8) + (prev-blue-hit-anim-index int32 :offset-assert 12) + (patrol-anim UNKNOWN 4 :offset-assert 16) + (charge-anim UNKNOWN 3 :offset-assert 48) + (attack-anim UNKNOWN 2 :offset-assert 72) + (knocked-anim UNKNOWN 4 :offset-assert 88) + (knocked-land-anim UNKNOWN 4 :offset-assert 120) + (yellow-hit-anim UNKNOWN 4 :offset-assert 152) + (blue-hit-anim UNKNOWN 6 :offset-assert 184) + ) + :method-count-assert 9 + :size-assert #xe8 + :flag-assert #x9000000e8 + ) +|# + +#| +(deftype kg-grunt (nav-enemy) + ((patrol-anim kg-grunt-anim-info :offset-assert 620) + (charge-anim kg-grunt-anim-info :offset-assert 624) + (attack-anim kg-grunt-anim-info :offset-assert 628) + (knocked-anim kg-grunt-anim-info :offset-assert 632) + (yellow-hit-anim kg-grunt-anim-info :offset-assert 636) + (blue-hit-anim kg-grunt-anim-info :offset-assert 640) + (intro-path basic :offset-assert 644) + (use-charge-anim-index int8 :offset-assert 652) + (knocked-anim-index int8 :offset-assert 653) + (jumping-ambush-path-pt int8 :offset-assert 654) + (kg-grunt-flags uint8 :offset-assert 655) + (state-timeout2 uint64 :offset-assert 656) + (next-warn-time uint64 :offset-assert 664) + (dest vector :inline :offset-assert 672) + (focus-pos vector :inline :offset-assert 352) + (minimap connection-minimap :offset-assert 704) + (debris-count uint32 :offset-assert 708) + (debris-mask uint32 :offset-assert 712) + ) + :method-count-assert 199 + :size-assert #x2cc + :flag-assert #xc7025002cc + (:methods + (kg-grunt-method-197 () none) ;; 197 + (kg-grunt-method-198 () none) ;; 198 + ) + (:state-methods + explode ;; 196 + falling-ambush ;; 191 + jumping-ambush ;; 192 + jumping-ambush-cont ;; 193 + active ;; 34 + attack ;; 190 + hostile ;; 38 + spin-attack ;; 195 + circling ;; 157 + pacing ;; 156 + stop-chase ;; 158 + wait-for-focus ;; 194 + ) + ) +|# + +;; (define-extern *kg-grunt-debris-params* debris-static-params) +;; (define-extern *kg-grunt-debris-elbow-shoulder-params* debris-static-params) +;; (define-extern *kg-grunt-debris-array-params* array) +;; (define-extern *kg-grunt-debris-knee-hip-params* debris-static-params) +;; (define-extern *kg-grunt-global-info* kg-grunt-global-info) +;; (define-extern *fact-info-kg-grunt-defaults* fact-info-enemy-defaults) +;; (define-extern *kg-grunt-nav-enemy-info* nav-enemy-info) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; collectables-part ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern eco-fadeout function) ;; (function sparticle-system sparticle-cpuinfo none) +;; (define-extern eco-track-root-prim-fadeout function) ;; (function sparticle-system sparticle-cpuinfo vector none) +;; (define-extern sparticle-3d-rotate-xz-to-camera-eco-shaft function) +;; (define-extern spt-func-part-vent-eco-dark-shaft function) +;; (define-extern spt-func-part-vent-eco-dark-touched-specs function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; krimson-wall ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype krimson-wall-break (process-drawable) + ((art-name basic :offset-assert 200) + (anim basic :offset-assert 204) + (pillar UNKNOWN 2 :offset-assert 208) + (level-name basic :offset-assert 216) + ) + :method-count-assert 23 + :size-assert #xdc + :flag-assert #x17006000dc + (:state-methods + idle ;; 20 + explode ;; 21 + done ;; 22 + ) + ) +|# + +#| +(deftype krimson-wall (process-focusable) + ((alt-actor UNKNOWN 2 :offset-assert 208) + (collision-part int32 :offset-assert 216) + (width float :offset-assert 220) + ) + :method-count-assert 31 + :size-assert #xe0 + :flag-assert #x1f006000e0 + (:methods + (krimson-wall-method-30 () none) ;; 30 + ) + (:state-methods + idle ;; 28 + die ;; 29 + ) + ) +|# + +;; (define-extern krimson-wall-break-init-by-other function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; find-nearest ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype search-info (structure) + ((point vector :inline :offset-assert 0) + (best-point vector :inline :offset-assert 16) + (match-handle uint64 :offset-assert 32) ;; handle + (match basic :offset-assert 40) + (best float :offset-assert 44) + (radius float :offset-assert 48) + (rating search-info-flag :offset-assert 52) + (require search-info-flag :offset-assert 56) + (mask search-info-flag :offset-assert 60) + (rot-base vector :inline :offset-assert 64) + (back-point vector :inline :offset-assert 80) + (rot-range float :offset-assert 96) + ) + :method-count-assert 9 + :size-assert #x64 + :flag-assert #x900000064 + ) +|# + +;; (define-extern *search-info* object) ;; search-info +;; (define-extern find-nearest-focusable function) ;; (function (array collide-shape) vector float search-info-flag search-info-flag vector vector float basic) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; aligner ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; hover-nav-sewb ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *sewb-adjacency* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; hvehicle-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype hvehicle (vehicle) + ((flight-level-index int8 :offset-assert 696) + (flight-level-index-prev int8 :offset-assert 697) + (flight-level float :offset-assert 700) + (jump-time float :offset-assert 704) + (jump-thrust float :offset-assert 708) + (engine-thrust float :offset-assert 712) + (lift-thrust UNKNOWN 4 :offset-assert 716) + (roll-thrust UNKNOWN 2 :offset-assert 732) + (engine-sound-id uint32 :offset-assert 740) + (thrust-sound-id uint32 :offset-assert 744) + (roll-sound-id uint32 :offset-assert 748) + (damage-pop-sound-id uint32 :offset-assert 752) + (extra-sound-id uint32 :offset-assert 756) + (engine-sound-envelope float :offset-assert 760) + (engine-sound-factor float :offset-assert 764) + (sputter-sound-envelope float :offset-assert 768) + (transition-time uint64 :offset-assert 776) + (transition-end-time uint64 :offset-assert 784) + (controller vehicle-controller :inline :offset-assert 800) + ) + :method-count-assert 162 + :size-assert #x3b0 + :flag-assert #xa2033003b0 + (:methods + (hvehicle-method-152 () none) ;; 152 + (hvehicle-method-153 () none) ;; 153 + (hvehicle-method-154 () none) ;; 154 + (hvehicle-method-155 () none) ;; 155 + (hvehicle-method-156 () none) ;; 156 + (hvehicle-method-157 () none) ;; 157 + (hvehicle-method-158 () none) ;; 158 + (hvehicle-method-159 () none) ;; 159 + (hvehicle-method-160 () none) ;; 160 + (hvehicle-method-161 () none) ;; 161 + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; task-arrow ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype task-arrow (process-drawable) + ((pos vector :inline :offset-assert 208) + (theta float :offset-assert 224) + (phi float :offset-assert 228) + (dist float :offset-assert 232) + (smoothed-dist float :offset-assert 236) + (max-dist float :offset-assert 240) + (flags task-arrow-flags :offset-assert 244) ;; guessed by decompiler + (map-icon uint16 :offset-assert 248) + (minimap connection-minimap :offset-assert 252) + (hud-dist uint64 :offset-assert 256) ;; handle + (base-quat quaternion :inline :offset-assert 272) + (base-scale float :offset-assert 288) + (rod-of-god-scale float :offset-assert 292) + (moving symbol :offset-assert 296) ;; guessed by decompiler + (death-pending? basic :offset-assert 300) + (alpha float :offset-assert 304) + (choir-sound basic :offset-assert 308) + (draw-back basic :offset-assert 312) + ) + :method-count-assert 25 + :size-assert #x13c + :flag-assert #x1900c0013c + (:methods + (task-arrow-method-23 () none) ;; 23 ;; (task-arrow-method-23 (_type_ vector) none 23) + (task-arrow-method-24 () none) ;; 24 ;; (draw-arrow (_type_) none 24) + ) + (:state-methods + idle ;; 20, old: (idle () _type_ :state 20) + leave ;; 22, old: (leave () _type_ :state 22) + die ;; 21, old: (die () _type_ :state 21) + ) + ) +|# + +;; (define-extern task-arrow-init-by-other function) ;; (function task-arrow-params task-arrow :behavior task-arrow) +;; (define-extern task-arrow-spawn function) ;; (function task-arrow-params process-tree process) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; simple-focus ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype simple-focus (process-focusable) + ((first-time? symbol :offset-assert 208) ;; guessed by decompiler + ) + :method-count-assert 29 + :size-assert #xd4 + :flag-assert #x1d006000d4 + (:state-methods + idle ;; 28 + ) + ) +|# + +;; (define-extern simple-focus-init-by-other function) ;; (function none :behavior simple-focus) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; mission-squad-control ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; projectile ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern cshape-reaction-projectile function) ;; (function control-info collide-query vector vector collide-status) +;; (define-extern projectile-event-handler function) ;; (function process int symbol event-message-block projectile :behavior projectile) +;; (define-extern projectile-move-fill-all-dirs function) ;; (function projectile none) +;; (define-extern projectile-move-fill-line-sphere function) ;; (function projectile none) +;; (define-extern projectile-update-velocity-add-gravity function) ;; (function projectile none) +;; (define-extern projectile-update-velocity-space-wars function) ;; (function projectile none) +;; (define-extern projectile-init-by-other function) ;; (function projectile-init-by-other-params projectile :behavior projectile) +;; (define-extern projectile-bounce-update-velocity function) ;; (function projectile-bounce none :behavior projectile) +;; (define-extern projectile-bounce-falling-post function) ;; (function none :behavior projectile-bounce) +;; (define-extern projectile-bounce-move function) ;; (function projectile-bounce none) +;; (define-extern projectile-bounce-reaction function) ;; (function control-info collide-query vector vector collide-status) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ragdoll ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern ragdoll-matrix-interp function) +;; (define-extern ragdoll-joint-callback function) +;; (define-extern ragdoll-other-joint-callback function) +;; (define-extern ragdoll-reflect-matrix function) +;; (define-extern ragdoll-proc-init-by-other function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ragdoll-edit ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern matrix->axis-angle function) +;; (define-extern show-maya-skeleton function) +;; (define-extern ragdoll-print-default-joints function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; templex-scenes ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype tpl-inner-airlock-door (com-airlock) + () + :method-count-assert 30 + :size-assert #x1b0 + :flag-assert #x1e013001b0 + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; wascity-ocean ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *ocean-colors-wascity* object) +;; (define-extern *ocean-near-indices-wascity* ocean-near-indices) +;; (define-extern *ocean-trans-indices-wascity* ocean-trans-indices) +;; (define-extern *ocean-mid-indices-wascity* ocean-mid-indices) +;; (define-extern *ocean-mid-masks-wascity* ocean-mid-masks) +;; (define-extern *ocean-map-wascity* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ctyinda-obs ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype ctyinda-vingate (elec-gate) + () + :method-count-assert 31 + :size-assert #x200 + :flag-assert #x1f01800200 + ) +|# + +#| +(deftype industrial-board-vent (bouncer) + () + :method-count-assert 27 + :size-assert #xd8 + :flag-assert #x1b006000d8 + ) +|# + +#| +(deftype ctyinda-evil-streetlamp (process-drawable) + () + :method-count-assert 21 + :size-assert #xc8 + :flag-assert #x15005000c8 + (:state-methods + idle ;; 20 + ) + ) +|# + +;; (define-extern *vingate-elec-gate-params* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; lightjak-wings ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype wings-ragdoll (ragdoll) + ((which-chain int8 :offset-assert 11980) + (chain-pos int8 :offset-assert 11981) + ) + :method-count-assert 26 + :size-assert #x2ece + :flag-assert #x1a00002ece + ) +|# + +;; (define-extern *jchar-wings-ragdoll-setup* object) +;; (define-extern wings-post function) +;; (define-extern wings-init function) +;; (define-extern wings-ragdoll-proc-init-by-other function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; target-handler ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern target-shoved function) ;; (function meters meters process (state object object target) object :behavior target) +;; (define-extern attack-mode-is-invinc function) ;; (function symbol symbol) +;; (define-extern target-attacked function) ;; (function symbol attack-info process touching-shapes-entry (state symbol attack-info target) object :behavior target) +;; (define-extern target-got-impact-impulse function) +;; (define-extern target-darkjak-effect-trans function) +;; (define-extern target-send-attack function) ;; (function process symbol touching-shapes-entry int int penetrate symbol :behavior target) +;; (define-extern target-generic-event-handler function) ;; (function process int symbol event-message-block object :behavior target) +;; (define-extern target-standard-event-handler function) ;; (function process int symbol event-message-block object :behavior target) +;; (define-extern target-dangerous-event-handler function) ;; (function process int symbol event-message-block object :behavior target) +;; (define-extern target-bonk-event-handler function) ;; (function process int symbol event-message-block object :behavior target) +;; (define-extern target-jump-event-handler function) ;; (function process int symbol event-message-block object :behavior target) +;; (define-extern target-walk-event-handler function) ;; (function process int symbol event-message-block object :behavior target) +;; (define-extern target-exit function) ;; (function none :behavior target) +;; (define-extern target-state-hook-exit function) ;; (function none :behavior target) +;; (define-extern target-effect-exit function) ;; (function none :behavior target) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; target-anim ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern target-land-anim function) ;; (function art-element :behavior target) +;; (define-extern target-stance-anim function) ;; (function none :behavior target) +;; (define-extern target-stance-push function) ;; (function int none :behavior target) +;; (define-extern target-falling-anim function) ;; (function int time-frame symbol :behavior target) +;; (define-extern target-falling-anim-trans function) ;; (function none :behavior target) +;; (define-extern target-walk-anim function) ;; (function int none :behavior target) +;; (define-extern target-hit-ground-flop-anim function) ;; (function symbol symbol none :behavior target) +;; (define-extern target-hit-ground-anim function) ;; (function symbol symbol none :behavior target) +;; (define-extern target-attack-air-anim function) ;; (function none :behavior target) +;; (define-extern target-edge-grab-anim function) ;; (function float none :behavior target) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; target2 ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *trip-mods* object) ;; surface +;; (define-extern *look-around-mods* object) ;; surface +;; (define-extern *hit-ground-hard-mods* object) ;; surface +;; (define-extern *hide-mods* surface) ;; surface +;; (define-extern *float-mods* object) ;; surface +;; (define-extern *blast-recover-mods* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; target-lightjak ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype freeze-screen (process-drawable) + ((anim-frame float :offset-assert 200) + (transition float :offset-assert 204) + (gui-id-1 uint32 :offset-assert 208) + (gui-id-2 uint32 :offset-assert 212) + ) + :method-count-assert 25 + :size-assert #xd8 + :flag-assert #x19006000d8 + (:methods + (freeze-screen-method-24 () none) ;; 24 + ) + (:state-methods + idle ;; 20 + active ;; 21 + deactive ;; 22 + die ;; 23 + ) + ) +|# + +#| +(deftype freeze-control (process) + ((clock-pos float :offset-assert 128) + (freeze-screen uint64 :offset-assert 136) + (sound-id uint32 :offset-assert 144) + (tick-time uint64 :offset-assert 152) + (abort? basic :offset-assert 160) + (freeze-id uint32 :offset-assert 164) + ) + :method-count-assert 15 + :size-assert #xa8 + :flag-assert #xf003000a8 + (:state-methods + idle ;; 14 + ) + ) +|# + +#| +(deftype freeze-watcher (process) + ((old-clock basic :offset-assert 128) + ) + :method-count-assert 15 + :size-assert #x84 + :flag-assert #xf00100084 + (:state-methods + active ;; 14 + ) + ) +|# + +;; (define-extern point-off-screen function) +;; (define-extern *lightjak-trans-mods* object) +;; (define-extern want-to-powerjak? function) +;; (define-extern target-lightjak-setup function) +;; (define-extern want-to-lightjak? function) +;; (define-extern target-lightjak-end-mode function) +;; (define-extern target-lightjak-do-effect function) +;; (define-extern target-lightjak-process function) +;; (define-extern *lightjak-swoop-mods* surface) +;; (define-extern freeze-screen-init function) +;; (define-extern freeze-control-init function) +;; (define-extern freeze-watcher-init function) +;; (define-extern freeze-hit-begin function) +;; (define-extern freeze-hit-end function) +;; (define-extern *heal-mods* object) +;; (define-extern lightjak-shield-init function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; base-plat ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype base-plat (process-focusable) + ((smush smush-control :inline :offset-assert 208) + (basetrans vector :inline :offset-assert 240) + (bounce-time uint64 :offset-assert 256) ;; time-frame + (bouncing symbol :offset-assert 264) ;; guessed by decompiler + (bounce-scale meters :offset-assert 268) + ) + :method-count-assert 35 + :size-assert #x110 + :flag-assert #x2300900110 + (:methods + (base-plat-method-28 () none) ;; 28 ;; (stop-bouncing! (_type_) none 28) + (base-plat-method-29 () none) ;; 29 ;; (start-bouncing! (_type_) none 29) + (base-plat-method-30 () none) ;; 30 ;; (get-art-group (_type_) art-group 30) + (base-plat-method-31 () none) ;; 31 ;; (init-plat-collision! (_type_) none 31) + (base-plat-method-32 () none) ;; 32 ;; (base-plat-method-32 (_type_) none 32) + (base-plat-method-33 () none) ;; 33 ;; (init-plat! (_type_) none 33) + (base-plat-method-34 () none) ;; 34 + ) + ) +|# + +#| +(deftype eco-door (process-drawable) + ((speed float :offset-assert 200) + (open-distance float :offset-assert 204) + (close-distance float :offset-assert 208) + (out-dir vector :inline :offset-assert 224) + (open-sound uint128 :offset-assert 240) ;; sound-name + (close-sound uint128 :offset-assert 256) ;; sound-name + (state-actor entity-actor :offset-assert 272) ;; guessed by decompiler + (flags int32 :offset-assert 276) ;; eco-door-flags + (locked symbol :offset-assert 280) ;; guessed by decompiler + (auto-close symbol :offset-assert 284) ;; guessed by decompiler + (one-way symbol :offset-assert 288) ;; guessed by decompiler + ) + :method-count-assert 27 + :size-assert #x124 + :flag-assert #x1b00b00124 + (:methods + (eco-door-method-24 () none) ;; 24 ;; (lock-according-to-task! (_type_) none 24) + (eco-door-method-25 () none) ;; 25 ;; (eco-door-method-25 (_type_) none 25) + (eco-door-method-26 () none) ;; 26 ;; (stub (_type_) none 26) + ) + (:state-methods + door-closed ;; 20, old: (door-closed () _type_ :state 20) + door-opening ;; 21, old: (door-opening () _type_ :state 21) + door-open ;; 22, old: (door-open () _type_ :state 22) + door-closing ;; 23, old: (door-closing () _type_ :state 23) + ) + ) +|# + +;; (define-extern plat-code function) ;; (function none :behavior base-plat) +;; (define-extern plat-trans function) ;; (function none :behavior base-plat) +;; (define-extern plat-post function) ;; (function none :behavior base-plat) +;; (define-extern plat-event function) ;; (function process int symbol event-message-block object :behavior base-plat) +;; (define-extern eco-door-event-handler function) ;; (function process int symbol event-message-block object :behavior eco-door) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; race-manager ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern race-find-ground function) ;; (function vector vector symbol) +;; (define-extern *race-state* object) ;; race-state +;; (define-extern *race-rigid-body-queue* object) ;; rigid-body-queue +;; (define-extern race-manager-event-handler function) ;; (function process int symbol event-message-block object :behavior race-manager) +;; (define-extern race-manager-init-by-other function) ;; (function race-info symbol none :behavior race-manager) +;; (define-extern race-start function) ;; (function int process symbol process) +;; (define-extern race-kill function) ;; (function none) +;; (define-extern race-vehicle-entity-hack function) ;; (function none) +;; (define-extern race-level-activate function) ;; (function level none) +;; (define-extern race-level-deactivate function) ;; (function none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; desresc-texture ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *desresc-warp-texture-anim-array* texture-anim-array) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; target-invisible ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype invis-particle-joint (structure) + ((joint int16 :offset-assert 0) + (distance float :offset-assert 4) + (size float :offset-assert 8) + (spawn? basic :offset-assert 12) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype dark-maker-idol (process-drawable) + ((humming-sound basic :offset-assert 200) + ) + :method-count-assert 22 + :size-assert #xcc + :flag-assert #x16005000cc + (:state-methods + idle ;; 20 + active ;; 21 + ) + ) +|# + +;; (define-extern target-invisible-start function) +;; (define-extern target-invisible-stop function) +;; (define-extern *invis-joint-list* array) +;; (define-extern target-invisible-process function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; target-launch ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; target-gun ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *gun-walk-mods* surface) ;; surface +;; (define-extern want-to-gun? function) ;; (function target symbol symbol :behavior process) +;; (define-extern target-gun-event-handler function) ;; (function process int symbol event-message-block object :behavior target) +;; (define-extern target-gun-setup function) ;; (function symbol none :behavior target) +;; (define-extern target-gun-init function) ;; (function pickup-type none :behavior target) +;; (define-extern target-gun-exit function) ;; (function symbol) +;; (define-extern target-gun-end-mode function) ;; (function symbol symbol :behavior target) +;; (define-extern quat<-gun! function) ;; (function quaternion quaternion quaternion) +;; (define-extern target-gun-ammo-out-pick function) ;; (function int :behavior target) +;; (define-extern target-gun-type-set! function) ;; (function pickup-type none :behavior target) +;; (define-extern target-gun-marking-menu function) ;; (function target none) +;; (define-extern target-gun-build-track-list function) ;; (function none :behavior target) +;; (define-extern target-gun-find-track function) ;; (function none :behavior target) +;; (define-extern target-top-anim-base-mode function) ;; (function int none :behavior target) +;; (define-extern target-gun-combo-start function) ;; (function int time-frame none :behavior target) +;; (define-extern target-gun-joint-pre0 function) ;; (function none :behavior target) +;; (define-extern target-gun-joint-pre function) ;; (function none :behavior target) +;; (define-extern target-gun-compute-pos function) ;; (function matrix :behavior target) +;; (define-extern target-gun-joint-points function) ;; (function none :behavior target) +;; (define-extern target-gun-fire function) ;; (function pickup-type none :behavior target) +;; (define-extern target-gun-check function) ;; (function none :behavior target) +;; (define-extern camera-rotate-to-vector function) ;; (function vector vector none) +;; (define-extern target-gun-real-post function) ;; (function none :behavior target) +;; (define-extern target-gun-post function) ;; (function none :behavior target) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; enemy ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *enemy-dummy-shadow-control* shadow-control) ;; shadow-control +;; (define-extern get-penetrate-using-from-attack-event function) ;; (function process-drawable event-message-block penetrate) +;; (define-extern enemy-setup-gem function) +;; (define-extern enemy-init-by-other function) ;; (function process-drawable enemy-init-by-other-params none :behavior enemy) +;; (define-extern enemy-event-handler function) ;; (function process int symbol event-message-block object :behavior enemy) +;; (define-extern enemy-simple-post function) ;; (function none :behavior enemy) +;; (define-extern enemy-falling-post function) ;; (function none :behavior enemy) +;; (define-extern enemy-die-falling-post function) ;; (function none :behavior enemy) +;; (define-extern *shockwave-knock-scalar* curve2d-fast) +;; (define-extern ja-group-index? function) ;; (function int symbol :behavior enemy) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; terraformer-setup ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype terraformer-foot-mark-pt (structure) + ((collision-pt vector :inline :offset-assert 0) + (normal vector :inline :offset-assert 16) + (found? basic :offset-assert 32) + (angle float :offset-assert 36) + ) + :method-count-assert 9 + :size-assert #x28 + :flag-assert #x900000028 + ) +|# + +#| +(deftype terraformer-foot-mark-pt-array (basic) + ((points UNKNOWN 20 :offset-assert 16) + (origin vector :inline :offset-assert 976) + (radius float :offset-assert 992) + (current-point int32 :offset-assert 996) + ) + :method-count-assert 12 + :size-assert #x3e8 + :flag-assert #xc000003e8 + (:methods + (terraformer-foot-mark-pt-array-method-9 () none) ;; 9 + (terraformer-foot-mark-pt-array-method-10 () none) ;; 10 + (terraformer-foot-mark-pt-array-method-11 () none) ;; 11 + ) + ) +|# + +#| +(deftype terraformer-node (structure) + ((position vector :inline :offset-assert 0) + (edge-index int16 :offset-assert 16) + (edge-count int16 :offset-assert 18) + (pos-x float :offset-assert 0) + (pos-y float :offset-assert 4) + (pos-z float :offset-assert 8) + ) + :method-count-assert 9 + :size-assert #x14 + :flag-assert #x900000014 + ) +|# + +#| +(deftype terraformer-edge (structure) + ((dest-node-id uint16 :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x2 + :flag-assert #x900000002 + ) +|# + +#| +(deftype terraformer-graph (structure) + ((node-count uint16 :offset-assert 0) + (edge-count uint16 :offset-assert 2) + (node uint32 :offset-assert 4) + (edge uint32 :offset-assert 8) + ) + :method-count-assert 9 + :size-assert #xc + :flag-assert #x90000000c + ) +|# + +#| +(deftype terraformer-ik-setup (structure) + ((elbow-index int32 :offset-assert 0) + (hand-dist float :offset-assert 4) + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +#| +(deftype terraformer-foot-lock (structure) + ((lock cam-float-seeker :inline :offset-assert 0) + (old-position vector :inline :offset-assert 32) + (old-normal vector :inline :offset-assert 48) + (initialized basic :offset-assert 64) + ) + :method-count-assert 9 + :size-assert #x44 + :flag-assert #x900000044 + ) +|# + +#| +(deftype terraformer (process-drawable) + ((graph terraformer-graph :offset-assert 200) + (current-node uint16 :offset-assert 204) + (legs UNKNOWN 6 :offset-assert 208) + (mine-timer uint64 :offset-assert 256) + (mines-to-launch int8 :offset-assert 264) + (launch-drones basic :offset-assert 268) + (old-target-pos vector :inline :offset-assert 272) + (old-target-time uint64 :offset-assert 288) + (older-target-pos vector :inline :offset-assert 304) + (older-target-time uint64 :offset-assert 320) + (anim-speed float :offset-assert 328) + (spooled-anim basic :offset-assert 332) + (desired-nav-mesh-index int8 :offset-assert 336) + (current-nav-mesh-index int8 :offset-assert 337) + (mines UNKNOWN 10 :offset-assert 344) + (jumper uint64 :offset-assert 424) + (drone uint64 :offset-assert 432) + (drone-time uint64 :offset-assert 440) + (jump-dest vector :inline :offset-assert 448) + (target-rot matrix :inline :offset-assert 464) + (mine-rounds-till-drones int8 :offset-assert 528) + ) + :method-count-assert 26 + :size-assert #x211 + :flag-assert #x1a01a00211 + (:state-methods + dormant ;; 20 + frozen ;; 21 + walk ;; 25 + scrub-anim ;; 24 + idle ;; 23 + stand-still-laddie! ;; 22 + ) + ) +|# + +#| +(deftype terraformer-mine (process-focusable) + ((src-pos vector :inline :offset-assert 208) + (dest-pos vector :inline :offset-assert 224) + (traj trajectory :inline :offset-assert 240) + (which-trajectory int8 :offset-assert 280) + (x-rotate float :offset-assert 284) + (y-rotate float :offset-assert 288) + (trail-part basic :offset-assert 292) + (incoming-sound-played basic :offset-assert 296) + (expand-sound-played basic :offset-assert 300) + (exploded basic :offset-assert 304) + ) + :method-count-assert 30 + :size-assert #x134 + :flag-assert #x1e00c00134 + (:state-methods + idle ;; 28 + fly-to-dest ;; 29 + ) + ) +|# + +#| +(deftype terraformer-target (process-focusable) + () + :method-count-assert 29 + :size-assert #xd0 + :flag-assert #x1d005000d0 + (:state-methods + idle ;; 28 + ) + ) +|# + +#| +(deftype terraformer-leg-minimap-dot (process-drawable) + ((minimap connection-minimap :offset-assert 200) + ) + :method-count-assert 21 + :size-assert #xcc + :flag-assert #x15005000cc + (:state-methods + idle ;; 20 + ) + ) +|# + +#| +(deftype terraformer-foot-water-splash (structure) + ((frame float :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x4 + :flag-assert #x900000004 + ) +|# + +#| +(deftype terraformer-leg (process-drawable) + ((prefix basic :offset-assert 200) + (kind int8 :offset-assert 204) + (side int8 :offset-assert 205) + (targets UNKNOWN 6 :offset-assert 208) + (mm-handle uint64 :offset-assert 256) + (joint-ik basic :offset-assert 264) + (foot-lock terraformer-foot-lock :inline :offset-assert 272) + (foot-marks basic :offset-assert 340) + (collision-disable-timer uint64 :offset-assert 344) + (foot-up-frame float :offset-assert 352) + (last-effect int8 :offset-assert 356) + (sand-drop-part basic :offset-assert 360) + (water-drop-part basic :offset-assert 364) + (splash-list basic :offset-assert 368) + (splash-list-index int8 :offset-assert 372) + (stepped-in-water basic :offset-assert 376) + ) + :method-count-assert 21 + :size-assert #x17c + :flag-assert #x150100017c + (:state-methods + idle ;; 20 + ) + ) +|# + +#| +(deftype hud-terraformer (hud) + () + :method-count-assert 27 + :size-assert #xac4 + :flag-assert #x1b0a500ac4 + ) +|# + +#| +(deftype task-manager-terraformer (task-manager) + ((pilot-mode? basic :offset-assert 240) + ) + :method-count-assert 33 + :size-assert #xf4 + :flag-assert #x21008000f4 + (:methods + (task-manager-terraformer-method-32 () none) ;; 32 + ) + ) +|# + +;; (define-extern *terraformer-shadow-control* shadow-control) +;; (define-extern *terraformer-walk-graph* object) +;; (define-extern *terraformer-ik-setup* object) +;; (define-extern *terraformer-lf-water-splash-list* array) +;; (define-extern *terraformer-lm-water-splash-list* array) +;; (define-extern *terraformer-lr-water-splash-list* array) +;; (define-extern *terraformer-rf-water-splash-list* array) +;; (define-extern *terraformer-rm-water-splash-list* array) +;; (define-extern *terraformer-rr-water-splash-list* array) +;; (define-extern terraformer-leg-minimap-dot-init-by-other function) +;; (define-extern terraformer-mine-init-by-other function) +;; (define-extern terraformer-mine-explode function) +;; (define-extern terraformer-mine-handler function) +;; (define-extern terraformer-target-init-by-other function) +;; (define-extern terraformer-leg-frames-since-lift function) +;; (define-extern terraformer-leg-frames-till-down function) +;; (define-extern terraformer-leg-frames-till-up function) +;; (define-extern terraformer-leg-should-be-up? function) +;; (define-extern terraformer-leg-init-by-other function) +;; (define-extern foot-impact function) +;; (define-extern ik-adjust function) ;; (function float :behavior metalkor-legs) +;; (define-extern terraformer-leg-deadly? function) +;; (define-extern terraformer-leg-update-ik function) +;; (define-extern terraformer-always function) +;; (define-extern find-mine-dest function) +;; (define-extern launch-mine function) +;; (define-extern terraformer-init-mine-vars function) +;; (define-extern terraformer-update-mine-vars function) +;; (define-extern terraformer-handler function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; gun-util ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype gun-eject (projectile-bounce) + () + :method-count-assert 44 + :size-assert #x224 + :flag-assert #x2c01b00224 + ) +|# + +#| +(deftype gun-mag-yellow (projectile-bounce) + () + :method-count-assert 44 + :size-assert #x224 + :flag-assert #x2c01b00224 + ) +|# + +#| +(deftype gun-mag-red (projectile-bounce) + () + :method-count-assert 44 + :size-assert #x224 + :flag-assert #x2c01b00224 + ) +|# + +#| +(deftype gun-mag-blue (projectile-bounce) + () + :method-count-assert 44 + :size-assert #x224 + :flag-assert #x2c01b00224 + ) +|# + +#| +(deftype gun-mag-dark (projectile-bounce) + () + :method-count-assert 44 + :size-assert #x224 + :flag-assert #x2c01b00224 + ) +|# + +#| +(deftype last-gun-fire-time (structure) + ((last-fire-times UNKNOWN 12 :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x60 + :flag-assert #x900000060 + ) +|# + +;; (define-extern *beam-info* object) ;; beam-info +;; (define-extern birth-func-setup-beam function) ;; (function int sparticle-cpuinfo sparticle-launchinfo none) +;; (define-extern birth-func-laser-pointer function) ;; (function int sparticle-cpuinfo sparticle-launchinfo none) +;; (define-extern draw-beam function) ;; (function sparticle-launcher vector vector symbol symbol none) +;; (define-extern gun-post function) ;; (function none :behavior gun) +;; (define-extern gun-init function) ;; (function none :behavior gun) +;; (define-extern do-fire-backcheck function) +;; (define-extern get-remaining-player-ammo function) +;; (define-extern adjust-player-ammo function) +;; (define-extern adjust-player-ammo-over-time function) +;; (define-extern truncate-player-ammo function) +;; (define-extern *last-gun-fire-time* object) +;; (define-extern compute-gun-fire-time-index function) +;; (define-extern get-last-fire-time function) +;; (define-extern set-last-fire-time function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; gun-yellow-shot ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype gun-yellow-shot (projectile) + ((hit-actor? symbol :offset-assert 512) ;; guessed by decompiler + (tail-pos vector :inline :offset-assert 528) + (hit-pos vector :inline :offset-assert 544) + (last-hit-time uint64 :offset-assert 560) + (snd-whoosh uint32 :offset-assert 568) + (muzzle-flash-part basic :offset-assert 572) + (main-shot-part basic :offset-assert 576) + (shot-aim-part basic :offset-assert 580) + (shot-ring-part basic :offset-assert 584) + ) + :method-count-assert 44 + :size-assert #x24c + :flag-assert #x2c01d0024c + (:methods + (gun-yellow-shot-method-41 () none) ;; 41 + (gun-yellow-shot-method-42 () none) ;; 42 + (gun-yellow-shot-method-43 () none) ;; 43 + ) + ) +|# + +#| +(deftype gun-yellow-2-proc-ignore (structure) + ((hand uint64 :offset-assert 0) + (time uint64 :offset-assert 8) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype gun-yellow-shot-2 (gun-yellow-shot) + ((last-collide-time uint64 :offset-assert 592) + (snd-trail uint32 :offset-assert 600) + (hit-yet? basic :offset-assert 604) + (actor-deflect? basic :offset-assert 608) + (max-actor-deflect-count int32 :offset-assert 612) + (last-hit-enemy uint64 :offset-assert 616) + (delay-attack uint64 :offset-assert 624) + (delay-norm vector :inline :offset-assert 640) + (enemy-hit-count int32 :offset-assert 656) + (ignore-list UNKNOWN 6 :offset-assert 664) + (last-attack-time uint64 :offset-assert 760) + ) + :method-count-assert 48 + :size-assert #x300 + :flag-assert #x3002800300 + (:methods + (gun-yellow-shot-2-method-44 () none) ;; 44 + (gun-yellow-shot-2-method-45 () none) ;; 45 + (gun-yellow-shot-2-method-46 () none) ;; 46 + (gun-yellow-shot-2-method-47 () none) ;; 47 + ) + (:state-methods + impact ;; 22 + ) + ) +|# + +#| +(deftype gun-yellow-shot-3 (gun-yellow-shot) + () + :method-count-assert 44 + :size-assert #x24c + :flag-assert #x2c01d0024c + ) +|# + +#| +(deftype gun-yellow-3-saucer (projectile-bounce) + ((total-float-time uint64 :offset-assert 552) + (state-time uint64 :offset-assert 192) + (firing? basic :offset-assert 568) + (asleep? basic :offset-assert 572) + (first-fire-time uint64 :offset-assert 576) + (activated? basic :offset-assert 584) + (collided-with-surface? basic :offset-assert 588) + (last-deflect-time uint64 :offset-assert 592) + (last-fire-time uint64 :offset-assert 600) + (spawn-part basic :offset-assert 608) + (last-blink-time uint64 :offset-assert 616) + (finished? basic :offset-assert 624) + (initial-fire-dir vector :inline :offset-assert 640) + (initial-fire-pos vector :inline :offset-assert 656) + (last-deduct-ammo-time uint64 :offset-assert 672) + (total-ammo-drained float :offset-assert 680) + (total-ammo-to-drain float :offset-assert 684) + (total-fire-time uint64 :offset-assert 688) + (snd-hum uint32 :offset-assert 696) + (snd-shoot uint32 :offset-assert 700) + ) + :method-count-assert 54 + :size-assert #x2c0 + :flag-assert #x36024002c0 + (:methods + (gun-yellow-3-saucer-method-44 () none) ;; 44 + (gun-yellow-3-saucer-method-50 () none) ;; 50 + (gun-yellow-3-saucer-method-51 () none) ;; 51 + (gun-yellow-3-saucer-method-52 () none) ;; 52 + (gun-yellow-3-saucer-method-53 () none) ;; 53 + ) + (:state-methods + sitting ;; 41 + burnt-husk ;; 49 + falling-down ;; 48 + impact-explode ;; 47 + moving ;; 23 + navigating ;; 45 + spinning ;; 46 + ) + (:states + gun-yellow-3-saucer-base-state + ) + ) +|# + +#| +(deftype target-quality-info-saucer (structure) + ((targ uint64 :offset-assert 0) + (value float :offset-assert 8) + ) + :method-count-assert 9 + :size-assert #xc + :flag-assert #x90000000c + ) +|# + +#| +(deftype gun-yellow-3-event-msg (structure) + ((activated? basic :offset-assert 0) + (finished? basic :offset-assert 4) + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +;; (define-extern saucer-land-move function) +;; (define-extern gun-fire-yellow-3 function) +;; (define-extern gun-fire-yellow-2 function) +;; (define-extern gun-fire-yellow-1 function) +;; (define-extern target-gun-can-fire-yellow? function) +;; (define-extern target-gun-fire-yellow function) ;; (function (pointer process) :behavior target) +;; (define-extern someone-fire-yellow function) ;; (function process-drawable vector vector (pointer process)) +;; (define-extern gun-yellow-shot-move function) ;; (function gun-yellow-shot none) +;; (define-extern *last-hit-deflect-target-handle* object) +;; (define-extern gun-yellow-shot-do-deflect function) +;; (define-extern gun-yellow-deflect-reaction function) +;; (define-extern gun-yellow-shot-2-move function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; gun-red-shot ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype gun-red-shot (process-drawable) + ((probe-count int32 :offset-assert 200) + (probe-mask uint32 :offset-assert 204) + (actor-count int32 :offset-assert 208) + (attack-id uint32 :offset-assert 212) + (start-pos vector :inline :offset-assert 224) + (start-dir vector :inline :offset-assert 240) + (start-rot vector :inline :offset-assert 256) + (probe-dir vector 19 :offset-assert 272) ;; guessed by decompiler + ) + :method-count-assert 30 + :size-assert #x240 + :flag-assert #x1e01c00240 + (:methods + (gun-red-shot-method-23 () none) ;; 23 ;; (init-probes! (_type_ collide-shape) none 23) + (gun-red-shot-method-24 () none) ;; 24 ;; (gun-red-shot-method-24 (_type_) symbol 24) + (gun-red-shot-method-25 () none) ;; 25 ;; (noop (_type_) none 25) + (gun-red-shot-method-26 () none) ;; 26 ;; (gun-red-shot-method-26 (_type_) none 26) + (gun-red-shot-method-27 () none) ;; 27 ;; (gun-red-shot-method-27 (_type_) none 27) + (gun-red-shot-method-28 () none) ;; 28 ;; (gun-red-shot-method-28 (_type_ vector) sound-id 28) + (gun-red-shot-method-29 () none) ;; 29 ;; (fire! (_type_ process-drawable int) object 29) + ) + (:state-methods + debug-idle ;; 21, old: (debug-idle () _type_ :state 21) + blocked ;; 20, old: (blocked () _type_ :state 20) + idle ;; 22, old: (idle () _type_ :state 22) + ) + ) +|# + +#| +(deftype gun-red-3-grenade (projectile-bounce) + ((blast-radius float :offset-assert 548) + (should-explode-soon? basic :offset-assert 552) + (explode-tick-time uint64 :offset-assert 560) + (birth-time uint64 :offset-assert 568) + (immediate-detonation? basic :offset-assert 576) + (attack-id uint32 :offset-assert 444) + (explode-delay-time uint64 :offset-assert 584) + ) + :method-count-assert 48 + :size-assert #x250 + :flag-assert #x3001d00250 + (:methods + (gun-red-3-grenade-method-45 () none) ;; 45 + (gun-red-3-grenade-method-46 () none) ;; 46 + (gun-red-3-grenade-method-47 () none) ;; 47 + ) + (:state-methods + moving ;; 23 + sitting ;; 41 + impact-tiny ;; 44 + impact ;; 22 + ) + ) +|# + +#| +(deftype shockwave-collision-pt (structure) + ((collision-pt vector :inline :offset-assert 0) + (normal vector :inline :offset-assert 16) + (found? basic :offset-assert 32) + (angle float :offset-assert 36) + ) + :method-count-assert 9 + :size-assert #x28 + :flag-assert #x900000028 + ) +|# + +#| +(deftype gun-red-2-shockwave (process) + ((origin vector :inline :offset-assert 128) + (max-radius float :offset-assert 144) + (strength float :offset-assert 148) + (current-radius float :offset-assert 152) + (current-intensity float :offset-assert 156) + (state-time uint64 :offset-assert 160) + (alpha-scalar float :offset-assert 168) + (base-damage float :offset-assert 172) + (snd-charge uint32 :offset-assert 176) + (min-charge-radius float :offset-assert 180) + (max-charge-radius float :offset-assert 184) + (total-charge-time uint64 :offset-assert 192) + (total-explode-time uint64 :offset-assert 200) + (ring-expansion-time uint64 :offset-assert 208) + (burst-expansion-time uint64 :offset-assert 216) + (warp-expansion-time uint64 :offset-assert 224) + (previously-attacked-targets UNKNOWN 64 :offset-assert 232) + (num-previously-attacked-targets int8 :offset-assert 744) + (start-pilot? basic :offset-assert 748) + (explosion-0 uint64 :offset-assert 752) + (explosion-1 uint64 :offset-assert 760) + (generate-order-array UNKNOWN 127 :offset-assert 768) + (current-stage-t float :offset-assert 896) + (ammo-drained float :offset-assert 900) + (eventual-collision-points UNKNOWN 128 :offset-assert 912) + (next-computed-collision-point int8 :offset-assert 7056) + (num-collision-pts-to-generate int8 :offset-assert 7057) + (show-scorch-marks? basic :offset-assert 7060) + (height-off-ground float :offset-assert 7064) + (max-ground-radius float :offset-assert 7068) + (current-ring-radius float :offset-assert 7072) + (current-ring-alpha float :offset-assert 7076) + (current-warp-radius float :offset-assert 7080) + (current-warp-alpha float :offset-assert 7084) + (current-burst-radius float :offset-assert 7088) + (current-burst-alpha float :offset-assert 7092) + (generating-marks? basic :offset-assert 7096) + (generated-particles? basic :offset-assert 7100) + (charge-part-tracker uint64 :offset-assert 7104) + ) + :method-count-assert 28 + :size-assert #x1bc8 + :flag-assert #x1c1b501bc8 + (:methods + (gun-red-2-shockwave-method-17 () none) ;; 17 + (gun-red-2-shockwave-method-18 () none) ;; 18 + (gun-red-2-shockwave-method-19 () none) ;; 19 + (gun-red-2-shockwave-method-20 () none) ;; 20 + (gun-red-2-shockwave-method-21 () none) ;; 21 + (gun-red-2-shockwave-method-22 () none) ;; 22 + (gun-red-2-shockwave-method-23 () none) ;; 23 + (gun-red-2-shockwave-method-24 () none) ;; 24 + (gun-red-2-shockwave-method-25 () none) ;; 25 + (gun-red-2-shockwave-method-26 () none) ;; 26 + (gun-red-2-shockwave-method-27 () none) ;; 27 + ) + (:state-methods + charging ;; 14 + die ;; 16 + explode ;; 15 + ) + ) +|# + +#| +(deftype gun-red-2-shockwave-init-params (structure) + ((pos vector :inline :offset-assert 0) + (max-radius float :offset-assert 16) + (strength float :offset-assert 20) + ) + :method-count-assert 9 + :size-assert #x18 + :flag-assert #x900000018 + ) +|# + +#| +(deftype gun-red-2-explosion (process-drawable) + () + :method-count-assert 21 + :size-assert #xc8 + :flag-assert #x15005000c8 + (:methods + (gun-red-2-explosion-method-20 () none) ;; 20 + ) + ) +|# + +#| +(deftype red-2-ring (process-drawable) + ((current-alpha float :offset-assert 200) + ) + :method-count-assert 23 + :size-assert #xd8 + :flag-assert #x17006000d8 + (:methods + (red-2-ring-method-21 () none) ;; 21 + (red-2-ring-method-22 () none) ;; 22 + ) + (:state-methods + active ;; 20 + ) + ) +|# + +#| +(deftype red-2-ring-init-params (structure) + ((pos vector :inline :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype red-3-sphere (process-drawable) + ((current-alpha float :offset-assert 200) + ) + :method-count-assert 23 + :size-assert #xd8 + :flag-assert #x17006000d8 + (:methods + (red-3-sphere-method-21 () none) ;; 21 + (red-3-sphere-method-22 () none) ;; 22 + ) + (:state-methods + active ;; 20 + ) + ) +|# + +#| +(deftype red-3-sphere-init-params (structure) + ((pos vector :inline :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +;; (define-extern part-tracker-move-to-target-gun function) +;; (define-extern gun-red-2-shockwave-init-by-other function) +;; (define-extern generate-shockwave-scorch-marks-3 function) +;; (define-extern generate-shockwave-scorch-marks-2 function) +;; (define-extern red-2-ring-event-handler function) +;; (define-extern red-2-ring-init-by-other function) +;; (define-extern *impact-blur* object) +;; (define-extern *shockwave-blur-red-2* object) +;; (define-extern gun-fire-red-2 function) +;; (define-extern red-3-sphere-init-by-other function) +;; (define-extern gun-fire-red-3 function) +;; (define-extern gun-fire-red-1 function) +;; (define-extern target-gun-can-fire-red? function) +;; (define-extern target-gun-fire-red function) ;; (function (pointer gun-red-shot) :behavior target) +;; (define-extern gun-red-shot-event-handler function) ;; (function process-drawable int symbol event-message-block object :behavior gun-red-shot) +;; (define-extern gun-red-shot-init-by-other function) ;; (function vector vector gun-red-shot :behavior gun-red-shot) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; gun-dark-shot ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype gun-dark-shot (projectile) + ((blast-radius float :offset-assert 512) + (core-position vector :inline :offset-assert 528) + (core-velocity vector :inline :offset-assert 544) + (spin-vector vector :inline :offset-assert 560) + (track-target uint64 :offset-assert 576) ;; handle + (size-t float :offset-assert 584) + (result-array handle 16 :offset-assert 592) ;; guessed by decompiler + (result-count int8 :offset-assert 720) + (charge-sound sound-id :offset-assert 724) ;; guessed by decompiler + (fire-sound sound-id :offset-assert 728) ;; guessed by decompiler + (trail-sound sound-id :offset-assert 732) ;; guessed by decompiler + (explode-sound sound-id :offset-assert 736) ;; guessed by decompiler + (start-pilot? basic :offset-assert 740) + (spread-timer uint64 :offset-assert 744) + ) + :method-count-assert 43 + :size-assert #x2f0 + :flag-assert #x2b027002f0 + (:state-methods + startup ;; 41, old: (fizzle () _type_ :state 41) + moving ;; 23 + fizzle ;; 42 + impact ;; 22 + ) + ) +|# + +#| +(deftype gun-dark-3-sphere (process-drawable) + ((alpha-val float :offset-assert 200) + ) + :method-count-assert 21 + :size-assert #xcc + :flag-assert #x15005000cc + (:state-methods + active ;; 20 + ) + ) +|# + +#| +(deftype gun-dark-3-sphere-init-params (structure) + ((pos vector :inline :offset-assert 0) + (size-x float :offset-assert 16) + (size-y float :offset-assert 20) + (alpha-val float :offset-assert 24) + ) + :method-count-assert 9 + :size-assert #x1c + :flag-assert #x90000001c + ) +|# + +#| +(deftype last-active-nuke-info (structure) + ((last-active-nuke uint64 :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +#| +(deftype gun-dark-3-nuke (projectile) + ((flash-time uint64 :offset-assert 512) + (blur-time uint64 :offset-assert 520) + (spawned-mushroom-cloud? basic :offset-assert 528) + (strip basic :offset-assert 532) + (mushroom-top-pos vector :inline :offset-assert 544) + (warp uint64 :offset-assert 560) + (initial-velocity vector :inline :offset-assert 576) + (start-y float :offset-assert 592) + (y-vel-adjust float :offset-assert 596) + (launch-speed float :offset-assert 600) + (launch-sin-region-start float :offset-assert 604) + (launch-sin-region-end float :offset-assert 608) + (launch-stay-state-time uint64 :offset-assert 616) + (launch-next-state basic :offset-assert 624) + (launch-impact-state basic :offset-assert 628) + (launch-y-scale float :offset-assert 632) + (launch-height-t float :offset-assert 636) + (expected-height float :offset-assert 640) + (total-fly-time uint64 :offset-assert 648) + (num-dying-vehicles uint8 :offset-assert 656) + (num-dying-guards uint8 :offset-assert 657) + (num-dying-civilians uint8 :offset-assert 658) + (last-death-sound-play-time uint64 :offset-assert 664) + (blur-curve basic :offset-assert 672) + (fade-curve basic :offset-assert 676) + (num-blur-segments uint8 :offset-assert 680) + (shook-camera? basic :offset-assert 684) + (hit-wall? basic :offset-assert 688) + (killed-everything? basic :offset-assert 696) + (explode-sound uint32 :offset-assert 700) + (explode-wall-sound uint32 :offset-assert 704) + (played-trail? basic :offset-assert 708) + (smoke-trail basic :offset-assert 712) + (killed-objects UNKNOWN 64 :offset-assert 720) + (num-killed-objects int32 :offset-assert 1232) + (last-kill-time uint64 :offset-assert 1240) + ) + :method-count-assert 60 + :size-assert #x4e0 + :flag-assert #x3c046004e0 + (:methods + (gun-dark-3-nuke-method-41 () none) ;; 41 + (gun-dark-3-nuke-method-51 () none) ;; 51 + (gun-dark-3-nuke-method-52 () none) ;; 52 + (gun-dark-3-nuke-method-53 () none) ;; 53 + (gun-dark-3-nuke-method-54 () none) ;; 54 + (gun-dark-3-nuke-method-55 () none) ;; 55 + (gun-dark-3-nuke-method-56 () none) ;; 56 + (gun-dark-3-nuke-method-57 () none) ;; 57 + (gun-dark-3-nuke-method-58 () none) ;; 58 + (gun-dark-3-nuke-method-59 () none) ;; 59 + ) + (:state-methods + launching-base-state ;; 42 + launch-0 ;; 43 + launch-1 ;; 44 + launch-2 ;; 45 + launch-3 ;; 46 + impact-dud ;; 48 + impact-embedded ;; 49 + impact-small ;; 47 + wait-for-alive ;; 50 + impact ;; 22 + ) + ) +|# + +#| +(deftype gravity-spinner (process) + ((cached-damage float :offset-assert 128) + (end-time uint64 :offset-assert 136) + (time-subtract uint64 :offset-assert 144) + (parent-hand uint64 :offset-assert 152) + (rotation-accel vector :inline :offset-assert 160) + (original-sphere-offset sphere :inline :offset-assert 176) + (obj-radius float :offset-assert 192) + (was-hit-previously? basic :offset-assert 196) + (ground-height float :offset-assert 200) + (next-ground-probe-time uint64 :offset-assert 208) + ) + :method-count-assert 25 + :size-assert #xd8 + :flag-assert #x19006000d8 + (:methods + (gravity-spinner-method-16 () none) ;; 16 + (gravity-spinner-method-17 () none) ;; 17 + (gravity-spinner-method-18 () none) ;; 18 + (gravity-spinner-method-19 () none) ;; 19 + (gravity-spinner-method-20 () none) ;; 20 + (gravity-spinner-method-21 () none) ;; 21 + (gravity-spinner-method-22 () none) ;; 22 + (gravity-spinner-method-23 () none) ;; 23 + (gravity-spinner-method-24 () none) ;; 24 + ) + (:state-methods + zero-g-vehicle ;; 15 + zero-g ;; 14 + ) + ) +|# + +#| +(deftype gravity-ring (process-drawable) + ((start-pos vector :inline :offset-assert 208) + (jmod-outer joint-mod-add-local :inline :offset-assert 224) + (jmod-inner joint-mod-add-local :inline :offset-assert 288) + (ring-scale-t float :offset-assert 352) + (current-radius float :offset-assert 356) + (max-radius float :offset-assert 360) + (reverse? basic :offset-assert 364) + (total-time float :offset-assert 368) + (ring-width float :offset-assert 372) + (stop-time uint64 :offset-assert 376) + ) + :method-count-assert 22 + :size-assert #x180 + :flag-assert #x1601000180 + (:methods + (gravity-ring-method-21 () none) ;; 21 + ) + (:state-methods + expand ;; 20 + ) + ) +|# + +#| +(deftype gun-gravity (process-drawable) + ((current-radius float :offset-assert 200) + (max-radius float :offset-assert 204) + (lowest-y float :offset-assert 208) + (start-pos vector :inline :offset-assert 224) + (total-time float :offset-assert 240) + (ring-closest uint64 :offset-assert 248) + (ring-furthest uint64 :offset-assert 256) + (gravity-sound uint32 :offset-assert 264) + ) + :method-count-assert 25 + :size-assert #x10c + :flag-assert #x190090010c + (:methods + (gun-gravity-method-21 () none) ;; 21 + (gun-gravity-method-22 () none) ;; 22 + (gun-gravity-method-23 () none) ;; 23 + (gun-gravity-method-24 () none) ;; 24 + ) + (:state-methods + expand ;; 20 + ) + ) +|# + +;; (define-extern sparticle-lightning-2d-spline-align-plus-rotz function) +;; (define-extern gun-fire-dark-1 function) +;; (define-extern gun-dark-3-sphere-init-by-other function) +;; (define-extern *last-active-nuke* object) +;; (define-extern gun-dark-reaction function) +;; (define-extern nuke-move function) +;; (define-extern target-gun-can-fire-dark? function) +;; (define-extern gun-fire-dark-3 function) +;; (define-extern process-drawable-shock-effect-bullseye function) ;; (function process-focusable process-focusable matrix int sparticle-launcher sparticle-launcher sparticle-launcher none) +;; (define-extern gun-dark-shot-init-fizzle function) ;; (function vector none :behavior gun-dark-shot) +;; (define-extern *gravity-origin-pos* object) +;; (define-extern gravity-spinner-init-by-other function) +;; (define-extern zero-g-wait-for-land function) +;; (define-extern *zero-g-fake-attack-vec* object) +;; (define-extern *gun-gravity-shadow-control* shadow-control) +;; (define-extern gravity-ring-init-by-other function) +;; (define-extern gun-gravity-init-by-other function) +;; (define-extern gun-fire-dark-2 function) +;; (define-extern target-gun-fire-dark function) ;; (function (pointer process) :behavior target) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; gun-states ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; board-util ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern board-post function) ;; (function none :behavior board) +;; (define-extern board-init function) ;; (function none :behavior board) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; kg-squad-member ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; target-board ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *board-walk-mods* surface) ;; surface +;; (define-extern *board-duck-mods* surface) ;; surface +;; (define-extern *board-air-mods* surface) ;; surface +;; (define-extern *board-jump-mods* surface) ;; surface +;; (define-extern *board-ride-jump-mods* surface) ;; surface +;; (define-extern *board-duck-jump-mods* object) ;; surface +;; (define-extern *board-spin-mods* object) ;; surface +;; (define-extern *board-spin-post-mods* object) ;; surface +;; (define-extern *board-flip-mods* object) ;; surface +;; (define-extern *board-wall-kick-mods* surface) ;; surface +;; (define-extern *board-halfpipe-mods* surface) ;; surface +;; (define-extern *board-turn-to-mods* surface) ;; surface +;; (define-extern *board-ride-mods* surface) ;; surface +;; (define-extern *collide-edge-board-halfpipe-spec* object) ;; collide-edge-spec +;; (define-extern target-board-green-eco-attack function) +;; (define-extern target-board-green-eco-use function) +;; (define-extern target-board-handler function) ;; (function process int symbol event-message-block object :behavior target) +;; (define-extern board-turn-around? function) +;; (define-extern target-board-setup function) ;; (function symbol none :behavior target) +;; (define-extern target-board-init function) ;; (function none :behavior target) +;; (define-extern target-board-exit function) ;; (function none :behavior target) +;; (define-extern target-board-falling-anim-trans function) ;; (function none :behavior target) +;; (define-extern board-on-ground? function) ;; (function symbol :behavior target) +;; (define-extern target-board-smack-surface? function) ;; (function symbol :behavior target) +;; (define-extern board-add-thrust function) ;; (function none :behavior target) +;; (define-extern segment-array-vector->index function) ;; (function (inline-array vector) int float float float) +;; (define-extern segment-array-index->vector function) ;; (function (inline-array vector) int float vector int) +;; (define-extern target-board-exit-check function) ;; (function none :behavior target) +;; (define-extern target-board-trail function) +;; (define-extern target-board-effect function) ;; (function none :behavior target) +;; (define-extern target-board-physics function) ;; (function vector none :behavior target) +;; (define-extern target-board-collision function) ;; (function none :behavior target) +;; (define-extern target-board-joint-points function) ;; (function none :behavior target) +;; (define-extern target-board-pre-move function) ;; (function none :behavior target) +;; (define-extern target-board-real-post function) ;; (function none :behavior target) +;; (define-extern probe-test function) ;; (function control-info vector pat-surface symbol) +;; (define-extern target-board-compute-edge function) ;; (function time-frame :behavior target) +;; (define-extern board-ride-add-thrust function) ;; (function vector float none :behavior target) +;; (define-extern target-board-ride-post function) ;; (function none :behavior target) +;; (define-extern target-board-post function) ;; (function none :behavior target) +;; (define-extern target-board-center-anim function) ;; (function none :behavior target) +;; (define-extern target-board-turn-anim function) ;; (function int none :behavior target) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; des-bush ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype task-manager-desert-bbush-ring (task-manager) + ((actor-group uint32 :offset-assert 236) + (actor-group-count int32 :offset-assert 240) + (current-ring int32 :offset-assert 244) + ) + :method-count-assert 34 + :size-assert #xfc + :flag-assert #x22008000fc + (:methods + (task-manager-desert-bbush-ring-method-32 () none) ;; 32 + (task-manager-desert-bbush-ring-method-33 () none) ;; 33 + ) + (:state-methods + resolution ;; 17 + active ;; 15 + fail ;; 18 + ) + ) +|# + +#| +(deftype task-manager-desert-bbush-ring-2 (task-manager-desert-bbush-ring) + () + :method-count-assert 34 + :size-assert #xfc + :flag-assert #x22008000fc + ) +|# + +#| +(deftype task-manager-desert-bbush-ring-3 (task-manager-desert-bbush-ring) + () + :method-count-assert 34 + :size-assert #xfc + :flag-assert #x22008000fc + ) +|# + +#| +(deftype task-manager-desert-bbush-ring-4 (task-manager-desert-bbush-ring) + () + :method-count-assert 34 + :size-assert #xfc + :flag-assert #x22008000fc + ) +|# + +#| +(deftype task-manager-desert-bbush-ring-5 (task-manager-desert-bbush-ring) + () + :method-count-assert 34 + :size-assert #xfc + :flag-assert #x22008000fc + ) +|# + +#| +(deftype task-manager-desert-bbush-ring-6 (task-manager-desert-bbush-ring) + () + :method-count-assert 34 + :size-assert #xfc + :flag-assert #x22008000fc + ) +|# + +#| +(deftype desert-chase-ring (process-drawable) + ((mat matrix :inline :offset-assert 208) + (taskman uint64 :offset-assert 272) + (turbo-handle uint64 :offset-assert 280) + (alt-actor basic :offset-assert 288) + (ring-radius float :offset-assert 292) + (minimap connection-minimap :offset-assert 296) + (is-final? basic :offset-assert 300) + (part-final basic :offset-assert 304) + ) + :method-count-assert 24 + :size-assert #x134 + :flag-assert #x1800c00134 + (:methods + (desert-chase-ring-method-23 () none) ;; 23 + ) + (:state-methods + dormant ;; 20 + idle ;; 21 + die ;; 22 + ) + ) +|# + +#| +(deftype spirit (process-drawable) + ((part-subsampler basic :offset-assert 200) + (sound-id uint32 :offset-assert 204) + (sound-id-2 uint32 :offset-assert 208) + (play-pixie? basic :offset-assert 212) + (goal-part basic :offset-assert 216) + (draw-start-goal? basic :offset-assert 220) + ) + :method-count-assert 23 + :size-assert #xe0 + :flag-assert #x17006000e0 + (:state-methods + explode ;; 22 + dormant ;; 21 + idle ;; 20 + ) + ) +|# + +#| +(deftype hud-spider-killed (hud-goal) + () + :method-count-assert 27 + :size-assert #xac4 + :flag-assert #x1b0a500ac4 + ) +|# + +#| +(deftype task-manager-bbush-egg-spider (task-manager) + ((actor-group uint32 :offset-assert 236) + (actor-group-count int32 :offset-assert 240) + (goal-score uint32 :offset-assert 244) + (hud-score uint64 :offset-assert 252) + (hud-goal uint64 :offset-assert 260) + ) + :method-count-assert 33 + :size-assert #x110 + :flag-assert #x2100900110 + (:methods + (task-manager-bbush-egg-spider-method-32 () none) ;; 32 + ) + (:state-methods + resolution ;; 17 + active ;; 15 + ) + ) +|# + +#| +(deftype task-manager-bbush-spirit-chase (task-manager) + ((actor-group uint32 :offset-assert 236) + (actor-group-count int32 :offset-assert 240) + (path-pos float :offset-assert 244) + (trans vector :inline :offset-assert 252) + (touched basic :offset-assert 268) + (spirit uint64 :offset-assert 276) + (current-curve-distance float :offset-assert 284) + (current-curve-length float :offset-assert 288) + (min-spirit-vel float :offset-assert 292) + (current-spirit-vel float :offset-assert 296) + (high-spirit-vel float :offset-assert 300) + (fail-radius float :offset-assert 304) + (chase-distance float :offset-assert 308) + (start-offset-vel float :offset-assert 312) + (sound-id uint32 :offset-assert 316) + ) + :method-count-assert 36 + :size-assert #x144 + :flag-assert #x2400d00144 + (:methods + (task-manager-bbush-spirit-chase-method-32 () none) ;; 32 + (task-manager-bbush-spirit-chase-method-33 () none) ;; 33 + (task-manager-bbush-spirit-chase-method-34 () none) ;; 34 + (task-manager-bbush-spirit-chase-method-35 () none) ;; 35 + ) + (:state-methods + resolution ;; 17 + active ;; 15 + ) + ) +|# + +#| +(deftype task-manager-bbush-spirit-chase-2 (task-manager-bbush-spirit-chase) + () + :method-count-assert 36 + :size-assert #x144 + :flag-assert #x2400d00144 + ) +|# + +#| +(deftype task-manager-bbush-spirit-chase-3 (task-manager-bbush-spirit-chase) + () + :method-count-assert 36 + :size-assert #x144 + :flag-assert #x2400d00144 + ) +|# + +#| +(deftype bb-score-a-pickup (process-hidden) + () + :method-count-assert 15 + :size-assert #x80 + :flag-assert #xf00000080 + ) +|# + +#| +(deftype bb-score-b-pickup (process-hidden) + () + :method-count-assert 15 + :size-assert #x80 + :flag-assert #xf00000080 + ) +|# + +#| +(deftype bb-score-c-pickup (process-hidden) + () + :method-count-assert 15 + :size-assert #x80 + :flag-assert #xf00000080 + ) +|# + +#| +(deftype score-drop (process-drawable) + ((src vector :inline :offset-assert 208) + (dst vector :inline :offset-assert 224) + (pickup-radius float :offset-assert 240) + (score uint32 :offset-assert 244) + (score-pickup-radius float :offset-assert 248) + (bb-score-type uint8 :offset-assert 252) + (traj trajectory :inline :offset-assert 256) + ) + :method-count-assert 23 + :size-assert #x128 + :flag-assert #x1700b00128 + (:state-methods + dormant ;; 21 + idle ;; 20 + die ;; 22 + ) + ) +|# + +#| +(deftype task-manager-bbush-spirit-drop (task-manager) + ((actor-group uint32 :offset-assert 236) + (actor-group-count int32 :offset-assert 240) + (path-pos float :offset-assert 244) + (trans vector :inline :offset-assert 252) + (touched basic :offset-assert 268) + (spirit uint64 :offset-assert 276) + (score-drop-handles UNKNOWN 64 :offset-assert 284) + (score-drop-num int32 :offset-assert 796) + (current-curve-distance float :offset-assert 800) + (current-curve-length float :offset-assert 804) + (goal-score uint32 :offset-assert 808) + (current-score uint32 :offset-assert 812) + (score-drop-activation-radius float :offset-assert 816) + (min-spirit-vel float :offset-assert 820) + (high-spirit-vel float :offset-assert 824) + (current-spirit-vel float :offset-assert 828) + (fail-radius float :offset-assert 832) + (hud-score uint64 :offset-assert 836) + (hud-goal uint64 :offset-assert 844) + ) + :method-count-assert 39 + :size-assert #x358 + :flag-assert #x2702e00358 + (:methods + (task-manager-bbush-spirit-drop-method-32 () none) ;; 32 + (task-manager-bbush-spirit-drop-method-33 () none) ;; 33 + (task-manager-bbush-spirit-drop-method-34 () none) ;; 34 + (task-manager-bbush-spirit-drop-method-35 () none) ;; 35 + (task-manager-bbush-spirit-drop-method-36 () none) ;; 36 + (task-manager-bbush-spirit-drop-method-37 () none) ;; 37 + (task-manager-bbush-spirit-drop-method-38 () none) ;; 38 + ) + (:state-methods + resolution ;; 17 + active ;; 15 + ) + ) +|# + +;; (define-extern *tex-level-list* array) +;; (define-extern find-level-name function) +;; (define-extern set-ring-particle-texture function) +;; (define-extern *des-ring-times* array) +;; (define-extern *bb-fail* object) +;; (define-extern *bbush-ring-6-kg-squad-member-settings* object) +;; (define-extern desert-chase-ring-cleared? function) +;; (define-extern spirit-init-by-other function) +;; (define-extern bb-score-type->string function) +;; (define-extern score-drop-init-by-other function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; board-states ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern vector-vector-angle function) ;; (function vector vector float) +;; (define-extern target-board-anim-trans function) ;; (function none :behavior target) +;; (define-extern target-board-spin-check function) ;; (function none :behavior target) +;; (define-extern target-board-halfpipe-trans function) ;; (function none :behavior target) +;; (define-extern target-board-resolve-points function) ;; (function none :behavior target) +;; (define-extern target-board-ground-check function) ;; (function none :behavior target) +;; (define-extern target-board-halfpipe-check function) ;; (function collide-action :behavior target) +;; (define-extern target-board-jump-trans function) ;; (function none :behavior target) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; warp-gate ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype warp-gate (process-drawable) + ((level-name uint32 :offset-assert 200) ;; guessed by decompiler + (on-notice pair :offset-assert 204) ;; guessed by decompiler + (on-activate pair :offset-assert 208) ;; guessed by decompiler + (on-close pair :offset-assert 212) ;; guessed by decompiler + (wait-for pair :offset-assert 216) ;; guessed by decompiler + (continue continue-point :offset-assert 220) ;; guessed by decompiler + (distance meters :offset-assert 224) + (anim-speed float :offset-assert 228) + (test-time uint64 :offset-assert 232) ;; time-frame + (center vector :inline :offset-assert 240) + ) + :method-count-assert 26 + :size-assert #x100 + :flag-assert #x1a00800100 + ;; field on-notice uses ~A with a signed load. field on-activate uses ~A with a signed load. field on-close uses ~A with a signed load. + (:methods + (warp-gate-method-23 () none) ;; 23 ;; (init-skel-and-collide (_type_) none 23) + (warp-gate-method-24 () none) ;; 24 ;; (setup-fields (_type_) none 24) + (warp-gate-method-25 () none) ;; 25 ;; (handle-notice (_type_) continue-point 25) + ) + (:state-methods + hidden ;; 22, old: (hidden () _type_ :state 22) + idle ;; 20, old: (idle () _type_ :state 20) + use ;; 21, old: (use (continue-point) _type_ :state 21) + ) + ) +|# + +#| +(deftype air-train (warp-gate) + ((part-exhaust-left sparticle-launch-control :offset-assert 256) ;; guessed by decompiler + (part-exhaust-right sparticle-launch-control :offset-assert 260) ;; guessed by decompiler + (part-dust sparticle-launch-control :offset-assert 264) ;; guessed by decompiler + (dust-y float :offset-assert 268) + (hover-sound sound-id :offset-assert 272) ;; guessed by decompiler + (base-pos vector :inline :offset-assert 288) + ) + :method-count-assert 26 + :size-assert #x130 + :flag-assert #x1a00b00130 + (:state-methods + idle ;; 20 + use ;; 21 + ) + ) +|# + +;; (define-extern warp-gate-init function) ;; (function entity-actor vector none :behavior warp-gate) +;; (define-extern *warp-jump-mods* surface) ;; surface +;; (define-extern *range-warp-dust-color* curve-color-fast) +;; (define-extern *range-warp-dust-alpha* curve2d-fast) +;; (define-extern *range-warp-dust-scale-x* curve2d-fast) +;; (define-extern *range-warp-dust-scale-y* curve2d-fast) +;; (define-extern *curve-warp-dust-alpha* curve2d-fast) +;; (define-extern *curve-warp-dust-scale-x* curve2d-fast) +;; (define-extern *curve-warp-dust-scale-y* curve2d-fast) +;; (define-extern *part-warp-fma-dust-takeoff-curve-settings* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; drawable-group ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; drawable-tree ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; roboguard ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype roboguard (nav-enemy) + ((los los-control :inline :offset-assert 624) + (rotation-matrix matrix :inline :offset-assert 800) + (upper-rotation-matrix matrix :inline :offset-assert 864) + (fire-at-pos vector :inline :offset-assert 928) + (formation-position vector :inline :offset-assert 944) + (focus-formation-source vector :inline :offset-assert 960) + (me-to-focus-dir vector :inline :offset-assert 976) + (me-to-focus-angle float :offset-assert 992) + (flags uint16 :offset-assert 996) + (torso-aim-blend float :offset-assert 1000) + (torso-angle float :offset-assert 1004) + (torso-seek-speed float :offset-assert 1008) + (torso-to-focus-angle float :offset-assert 1012) + (last-torso-frame-num float :offset-assert 1016) + (stand-angle-threshold float :offset-assert 1020) + (arm-rot-mult UNKNOWN 2 :offset-assert 1024) + (arm-rot UNKNOWN 2 :offset-assert 1032) + (fire-time uint64 :offset-assert 1040) + (fire-count uint32 :offset-assert 1048) + (last-attack-time uint64 :offset-assert 1056) + (update-focus-pos basic :offset-assert 1064) + (formation-angle-sign float :offset-assert 1068) + (last-hit-points int32 :offset-assert 1072) + ) + :method-count-assert 197 + :size-assert #x434 + :flag-assert #xc503c00434 + (:methods + (roboguard-method-194 () none) ;; 194 + (roboguard-method-195 () none) ;; 195 + (roboguard-method-196 () none) ;; 196 + ) + (:state-methods + idle ;; 33 + notice ;; 35 + stare ;; 37 + hostile-stand ;; 190 + hostile ;; 38 + knocked ;; 31 + close-attack ;; 191 + shoot-attack ;; 192 + knocked-recover ;; 32 + die ;; 40 + explode ;; 193 + ) + ) +|# + +;; (define-extern *roboguard-exploder-params* joint-exploder-static-params) +;; (define-extern *roboguard-explode-joints* array) +;; (define-extern *roboguard-debris-array-params* array) +;; (define-extern *fact-info-roboguard-defaults* fact-info-enemy-defaults) +;; (define-extern *roboguard-nav-enemy-info* nav-enemy-info) +;; (define-extern roboguard-turn-torso-post function) +;; (define-extern roboguard-turret-code function) +;; (define-extern *roboguard-formation-table* array) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; prototype ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; main-collide ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern drawable-sphere-box-intersect? function) ;; (function drawable bounding-box4w symbol) +;; (define-extern instance-sphere-box-intersect? function) ;; (function drawable instance-tie bounding-box4w symbol) +;; (define-extern instance-tfragment-add-debug-sphere function) ;; (function drawable instance-tie symbol) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; mysql-nav-graph ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype mysql-nav-node (structure) + ((mysql-save-flag mysql-save-flag :offset-assert 0) ;; guessed by decompiler + (runtime-id uint32 :offset-assert 4) + (temp-edge-list (inline-array mysql-nav-edge) :offset-assert 8) ;; guessed by decompiler + (level-node-index int32 :offset-assert 12) + (cam-dist float :offset-assert 16) + (visible symbol :offset-assert 20) ;; guessed by decompiler + (nav_node_id uint32 :offset-assert 24) + (nav_graph_id uint32 :offset-assert 28) + (position vector :inline :offset-assert 32) + (level_name symbol :offset-assert 48) ;; guessed by decompiler + (angle float :offset-assert 52) + (radius float :offset-assert 56) + (nav_node_flag nav-node-flag :offset-assert 60) ;; guessed by decompiler + (nav_mesh_id uint32 :offset-assert 64) + (data_int_0 uint32 :offset-assert 68) + (data_int_1 uint32 :offset-assert 72) + ) + :method-count-assert 11 + :size-assert #x4c + :flag-assert #xb0000004c + (:methods + (mysql-nav-node-method-9 () none) ;; 9 ;; (exec-sql! (_type_) symbol 9) + (mysql-nav-node-method-10 () none) ;; 10 ;; (temp-edge-size (_type_) int 10) + ) + ) +|# + +#| +(deftype mysql-nav-node-array (inline-array-class) + ((data mysql-nav-node :dynamic :offset-assert 16) ;; guessed by decompiler + ) + :method-count-assert 14 + :size-assert #x10 + :flag-assert #xe00000010 + ) +|# + +#| +(deftype mysql-nav-edge (structure) + ((mysql-save-flag mysql-save-flag :offset-assert 0) ;; guessed by decompiler + (runtime-id uint32 :offset-assert 4) + (runtime-node-id-1 int32 :offset-assert 8) + (runtime-node-id-2 int32 :offset-assert 12) + (temp-next-edge mysql-nav-edge :offset-assert 16) + (nav_edge_id uint32 :offset-assert 20) + (nav_graph_id uint32 :offset-assert 24) + (nav_node_id_1 uint32 :offset-assert 28) + (nav_node_id_2 uint32 :offset-assert 32) + (directionality nav-directionality :offset-assert 36) ;; guessed by decompiler + (speed_limit float :offset-assert 40) + (density float :offset-assert 44) + (traffic_edge_flag int32 :offset-assert 48) + (nav_clock_mask nav-clock-mask :offset-assert 52) ;; guessed by decompiler + (nav_clock_type nav-clock-type :offset-assert 56) ;; guessed by decompiler + (nav_territory_type uint32 :offset-assert 60) + (exclusive_data uint32 :offset-assert 64) + (width float :offset-assert 68) + (minimap_edge_flag int32 :offset-assert 72) ;; nav-minimap-edge-flag + ) + :method-count-assert 10 + :size-assert #x4c + :flag-assert #xa0000004c + (:methods + (mysql-nav-edge-method-9 () none) ;; 9 ;; (exec-sql! (_type_) symbol 9) + ) + ) +|# + +#| +(deftype mysql-nav-edge-array (inline-array-class) + ((data mysql-nav-edge :dynamic :offset-assert 16) ;; guessed by decompiler + ) + :method-count-assert 14 + :size-assert #x10 + :flag-assert #xe00000010 + ) +|# + +#| +(deftype mysql-nav-visnode (structure) + ((mysql-save-flag mysql-save-flag :offset-assert 0) ;; guessed by decompiler + (runtime-node-id int32 :offset-assert 4) + (runtime-edge-id int32 :offset-assert 8) + (nav_visnode_id uint32 :offset-assert 12) + (nav_graph_id uint32 :offset-assert 16) + (nav_node_id uint32 :offset-assert 20) + (nav_edge_id uint32 :offset-assert 24) + ) + :method-count-assert 10 + :size-assert #x1c + :flag-assert #xa0000001c + (:methods + (mysql-nav-visnode-method-9 () none) ;; 9 ;; (exec-sql! (_type_) symbol 9) + ) + ) +|# + +#| +(deftype mysql-nav-visnode-array (inline-array-class) + ((data mysql-nav-visnode :dynamic :offset-assert 16) ;; guessed by decompiler + ) + :method-count-assert 14 + :size-assert #x10 + :flag-assert #xe00000010 + ) +|# + +#| +(deftype mysql-nav-pov-conn (structure) + ((runtime-node-id-1 int32 :offset-assert 0) + (runtime-node-id-2 int32 :offset-assert 4) + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +#| +(deftype mysql-nav-graph-level-info (structure) + ((level symbol :offset-assert 0) ;; guessed by decompiler + (level-id uint32 :offset-assert 4) + (node-count int32 :offset-assert 8) + (branch-count int32 :offset-assert 12) + (to-link-count int32 :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x14 + :flag-assert #x900000014 + ) +|# + +#| +(deftype mysql-nav-graph (basic) + ((nav_graph_id uint32 :offset-assert 4) + (graph-type basic :offset-assert 8) + (node-array mysql-nav-node-array :offset-assert 12) ;; guessed by decompiler + (edge-array mysql-nav-edge-array :offset-assert 16) ;; guessed by decompiler + (visnode-array mysql-nav-visnode-array :offset-assert 20) ;; guessed by decompiler + (pov-conn-array uint32 :offset-assert 24) + (pov-conn-array-length int32 :offset-assert 28) + (level-info-array-length int32 :offset-assert 32) + (level-info-last-lookup int32 :offset-assert 36) + (level-info-array mysql-nav-graph-level-info 32 :offset-assert 40) ;; guessed by decompiler + ) + :method-count-assert 24 + :size-assert #x428 + :flag-assert #x1800000428 + (:methods + ;; (new (symbol type string) _type_ 0) + (mysql-nav-graph-method-9 () none) ;; 9 ;; (init-from-sql! (_type_ string string) symbol 9) + (mysql-nav-graph-method-10 () none) ;; 10 ;; (exec-sql! (_type_) symbol 10) + (mysql-nav-graph-method-11 () none) ;; 11 ;; (indexof-nav-node (_type_ int) int 11) + (mysql-nav-graph-method-12 () none) ;; 12 ;; (indexof-nav-edge (_type_ int) int 12) + (mysql-nav-graph-method-13 () none) ;; 13 ;; (alloc-new-node! (_type_) int 13) + (mysql-nav-graph-method-14 () none) ;; 14 ;; (alloc-new-edge! (_type_) int 14) + (mysql-nav-graph-method-15 () none) ;; 15 ;; (indexof-visnode (_type_ int int) int 15) + (mysql-nav-graph-method-16 () none) ;; 16 ;; (alloc-new-visnode! (_type_ int int) int 16) + (mysql-nav-graph-method-17 () none) ;; 17 ;; (mysql-nav-graph-method-17 (_type_) none 17) + (mysql-nav-graph-method-18 () none) ;; 18 ;; (lookup-level-info2 (_type_ mysql-nav-node symbol) mysql-nav-graph-level-info 18) + (mysql-nav-graph-method-19 () none) ;; 19 ;; (mysql-nav-graph-method-19 (_type_) none 19) + (mysql-nav-graph-method-20 () none) ;; 20 ;; (mysql-nav-graph-method-20 (_type_) none 20) + (mysql-nav-graph-method-21 () none) ;; 21 + (mysql-nav-graph-method-22 () none) ;; 22 + (mysql-nav-graph-method-23 () none) ;; 23 + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; foresta-obs ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype water-anim-for (water-anim) + () + :method-count-assert 29 + :size-assert #x100 + :flag-assert #x1d00800100 + ) +|# + +#| +(deftype water-anim-for-a (water-anim-for) + () + :method-count-assert 29 + :size-assert #x100 + :flag-assert #x1d00800100 + ) +|# + +#| +(deftype water-anim-for-b (water-anim-for) + () + :method-count-assert 29 + :size-assert #x100 + :flag-assert #x1d00800100 + ) +|# + +#| +(deftype water-anim-for-c (water-anim-for) + () + :method-count-assert 29 + :size-assert #x100 + :flag-assert #x1d00800100 + ) +|# + +#| +(deftype water-anim-for-d (water-anim-for) + () + :method-count-assert 29 + :size-assert #x100 + :flag-assert #x1d00800100 + ) +|# + +#| +(deftype water-anim-for-e (water-anim-for) + () + :method-count-assert 29 + :size-assert #x100 + :flag-assert #x1d00800100 + ) +|# + +#| +(deftype water-anim-for-f (water-anim-for) + () + :method-count-assert 29 + :size-assert #x100 + :flag-assert #x1d00800100 + ) +|# + +#| +(deftype for-log (process-drawable) + ((shakers UNKNOWN 4 :offset-assert 208) + (last-ridden-time uint64 :offset-assert 464) + (water-anim basic :offset-assert 472) + ) + :method-count-assert 25 + :size-assert #x1dc + :flag-assert #x19016001dc + (:methods + (for-log-method-22 () none) ;; 22 + (for-log-method-23 () none) ;; 23 + (for-log-method-24 () none) ;; 24 + ) + (:state-methods + idle ;; 20 + active ;; 21 + ) + ) +|# + +#| +(deftype for-jump-pad (jump-pad) + () + :method-count-assert 30 + :size-assert #x100 + :flag-assert #x1e00800100 + ) +|# + +#| +(deftype for-pillar (process-drawable) + ((extend-height meters :offset-assert 200) + (id int32 :offset-assert 204) + (sound-id uint32 :offset-assert 208) + (last-ride-time uint64 :offset-assert 216) + (ridden? basic :offset-assert 224) + ) + :method-count-assert 25 + :size-assert #xe4 + :flag-assert #x19007000e4 + (:methods + (for-pillar-method-23 () none) ;; 23 + (for-pillar-method-24 () none) ;; 24 + ) + (:state-methods + idle ;; 20 + rise ;; 21 + complete ;; 22 + ) + ) +|# + +#| +(deftype for-telescope (process-drawable) + ((sound-id uint32 :offset-assert 200) + ) + :method-count-assert 22 + :size-assert #xcc + :flag-assert #x16005000cc + (:methods + (for-telescope-method-21 () none) ;; 21 + ) + (:state-methods + idle ;; 20 + ) + ) +|# + +#| +(deftype for-tower (for-pillar) + ((telescope uint64 :offset-assert 232) + ) + :method-count-assert 25 + :size-assert #xf0 + :flag-assert #x19007000f0 + (:state-methods + complete ;; 22 + ) + ) +|# + +#| +(deftype shoulder-plates (process-drawable) + () + :method-count-assert 21 + :size-assert #xc8 + :flag-assert #x15005000c8 + (:state-methods + idle ;; 20 + ) + ) +|# + +;; (define-extern ripple-for-water-anim-for ripple-wave-set) +;; (define-extern for-log-callback function) +;; (define-extern for-log-event-handler function) +;; (define-extern for-pillar-event-handler function) +;; (define-extern for-telescope-init-by-other function) +;; (define-extern shoulder-plates-init-by-other function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; video ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern set-video-mode function) ;; (function symbol none) +;; (define-extern get-video-mode function) ;; (function symbol) +;; (define-extern set-aspect-ratio function) ;; (function symbol none) +;; (define-extern get-aspect-ratio function) ;; (function symbol) +;; (define-extern set-progressive-scan function) ;; (function symbol none) +;; (define-extern get-progressive-scan function) ;; (function symbol) +;; (define-extern set-graphics-mode function) ;; (function none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; main ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern set-letterbox-frames function) ;; (function time-frame none) +;; (define-extern letterbox function) ;; (function none) +;; (define-extern set-blackout-frames function) ;; (function time-frame none) +;; (define-extern blackout function) ;; (function none) +;; (define-extern add-blackout function) +;; (define-extern paused? function) ;; (function symbol) +;; (define-extern movie? function) ;; (function symbol) +;; (define-extern scene-select? function) +;; (define-extern demo? function) ;; (function symbol) +;; (define-extern kiosk? function) +;; (define-extern *last-master-mode* object) ;; symbol +;; (define-extern set-master-mode function) ;; (function symbol none) +;; (define-extern pause-allowed? function) ;; (function symbol) +;; (define-extern toggle-pause function) ;; (function int) +;; (define-extern *screen-filter* screen-filter) ;; screen-filter +;; (define-extern *cheat-temp* object) ;; (pointer int32) +;; (define-extern *master-exit* object) ;; symbol +;; (define-extern *progress-cheat* object) ;; symbol +;; (define-extern *first-boot* object) ;; symbol +;; (define-extern main-timeouts function) +;; (define-extern main-cheats function) ;; (function int) +;; (define-extern end-display function) ;; (function display none) +;; (define-extern display-loop-main function) ;; (function display none) +;; (define-extern display-loop function) ;; (function int :behavior process) +;; (define-extern on function) ;; (function symbol process) +;; (define-extern off function) ;; (function int) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; collide-cache ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype collide-puls-work (structure) + ((ignore-pat pat-surface :offset-assert 0) ;; guessed by decompiler + (bsphere sphere :inline :offset-assert 16) + (move-dist vector :inline :offset-assert 32) + ) + :method-count-assert 9 + :size-assert #x30 + :flag-assert #x900000030 + ) +|# + +#| +(deftype lsmi-work (structure) + ((best-u float :offset-assert 0) + (orig-best-u float :offset-assert 4) + (action uint32 :offset-assert 8) + (cquery collide-query :inline :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x22c + :flag-assert #x90000022c + ) +|# + +;; (define-extern test-closest-pt-in-triangle function) ;; (function collide-cache symbol) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; des-burning-bush ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype bbush-menu-item (structure) + ((text uint32 :offset-assert 0) + (node uint16 :offset-assert 4) + ) + :method-count-assert 9 + :size-assert #x6 + :flag-assert #x900000006 + ) +|# + +#| +(deftype bbush-menu (structure) + ((title-text uint32 :offset-assert 0) + (req-text uint32 :offset-assert 4) + (req-check basic :offset-assert 8) + (item-count int8 :offset-assert 12) + (items UNKNOWN 10 :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #xb0 + :flag-assert #x9000000b0 + ) +|# + +#| +(deftype des-burning-bush (process-focusable) + ((task basic :offset-assert 208) + (part-off basic :offset-assert 212) + (angle float :offset-assert 216) + (time float :offset-assert 220) + (rotmin float :offset-assert 224) + (rotmax float :offset-assert 228) + (bb-perm entity-perm :offset-assert 232) + (menu bbush-menu :offset-assert 236) + (menu-node basic :offset-assert 240) + (menu-exit? basic :offset-assert 244) + (menu-have-req? basic :offset-assert 248) + (message-id uint32 :offset-assert 252) + (required-vehicles uint64 :offset-assert 256) + ) + :method-count-assert 39 + :size-assert #x108 + :flag-assert #x2700900108 + (:methods + (des-burning-bush-method-32 () none) ;; 32 + (des-burning-bush-method-33 () none) ;; 33 + (des-burning-bush-method-34 () none) ;; 34 + (des-burning-bush-method-35 () none) ;; 35 + (des-burning-bush-method-36 () none) ;; 36 + (des-burning-bush-method-37 () none) ;; 37 + (des-burning-bush-method-38 () none) ;; 38 + ) + (:state-methods + idle ;; 28 + collect-gems ;; 31 + talking ;; 29 + menu ;; 30 + ) + ) +|# + +#| +(deftype burning-bush-get-on-info (structure) + ((trans vector :inline :offset-assert 0) + (quat quaternion :inline :offset-assert 16) + (camera-trans vector :inline :offset-assert 32) + (camera-rot float 9 :offset-assert 48) ;; guessed by decompiler + (time float :offset-assert 84) + (fov float :offset-assert 88) + ) + :method-count-assert 9 + :size-assert #x5c + :flag-assert #x90000005c + ) +|# + +#| +(deftype task-manager-desert-bbush-get-to (task-manager) + ((skill uint64 :offset-assert 240) + (update-fov? basic :offset-assert 248) + ) + :method-count-assert 33 + :size-assert #xfc + :flag-assert #x21008000fc + (:methods + (task-manager-desert-bbush-get-to-method-32 () none) ;; 32 + ) + (:state-methods + active ;; 15 + ) + ) +|# + +#| +(deftype wascity-burning-bush (des-burning-bush) + () + :method-count-assert 39 + :size-assert #x108 + :flag-assert #x2700900108 + ) +|# + +#| +(deftype city-des-burning-bush (des-burning-bush) + () + :method-count-assert 39 + :size-assert #x108 + :flag-assert #x2700900108 + ) +|# + +;; (define-extern *bbush-menu* object) +;; (define-extern *burning-bush-get-on-info* array) ;; (array burning-bush-get-on-info) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; relocate ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; memory-usage ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; memory-usage-block is already defined! + +;; (define-extern mem-size function) ;; (function basic symbol int int) +;; (define-extern *max-dma* object) ;; int + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; tomb-baby-spider ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype tomb-baby-spider (nav-enemy) + () + :method-count-assert 192 + :size-assert #x26c + :flag-assert #xc001f0026c + (:state-methods + active ;; 34 + notice ;; 35 + attack ;; 190 + hostile ;; 38 + attack-stop ;; 191 + ) + ) +|# + +#| +(deftype dig-spider (tomb-baby-spider) + () + :method-count-assert 192 + :size-assert #x26c + :flag-assert #xc001f0026c + ) +|# + +;; (define-extern *tomb-baby-fact-info-enemy* fact-info-enemy-defaults) +;; (define-extern *tomb-baby-spider-nav-enemy-info* nav-enemy-info) ;; nav-enemy-info + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; nav-control ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype nav-control-cfs-work (structure) + ((in-dir vector :inline :offset-assert 0) + (right-dir vector :inline :offset-assert 16) + (best-dir vector 2 :offset-assert 32) ;; guessed by decompiler + (temp-dir vector 2 :offset-assert 64) ;; guessed by decompiler + (away-dir vector :inline :offset-assert 96) + (best-dir-angle degrees 2 :offset-assert 112) ;; guessed by decompiler + (ignore-mask uint64 :offset-assert 120) + (initial-ignore-mask uint64 :offset-assert 128) + (i-sphere int32 :offset-assert 136) + (i-first-sphere int32 :offset-assert 140) + (i-inside-sphere int32 :offset-assert 144) + (inside-sphere-dist float :offset-assert 148) + (sign float :offset-assert 152) + (travel-len float :offset-assert 156) + (dist2 float :offset-assert 160) + (inside-dist float :offset-assert 164) + (rand-angle float :offset-assert 168) + (dir-update basic :offset-assert 172) + (debug-offset vector :inline :offset-assert 176) + ) + :method-count-assert 9 + :size-assert #xc0 + :flag-assert #x9000000c0 + ) +|# + +;; (define-extern *nav-triangle-test-count* object) ;; int +;; (define-extern *nav-last-triangle-test-count* object) ;; int +;; (define-extern debug-nav-validate-current-poly function) ;; (function nav-mesh nav-poly vector symbol) +;; (define-extern debug-report-nav-stats function) ;; (function none) +;; (define-extern get-nav-control function) ;; (function process-drawable nav-mesh none) +;; (define-extern add-nav-sphere function) ;; (function nav-control sphere int none) +;; (define-extern add-collide-shape-spheres function) ;; (function nav-control collide-shape sphere none) +;; (define-extern circle-tangent-directions function) ;; (function vector vector vector vector vector) +;; (define-extern circle-ray-intersection? function) ;; (function vector vector float vector symbol) +;; (define-extern find-closest-circle-ray-intersection function) ;; (function vector vector float int (inline-array vector) int int) +;; (define-extern compute-dir-parm function) ;; (function vector vector vector float) +;; (define-extern vector-rotate-y-sincos! function) ;; (function vector vector float float float) +;; (define-extern test-xz-point-on-line-segment? function) ;; (function vector vector vector float symbol) +;; (define-extern *null-nav-callback-info* object) +;; (define-extern *default-nav-callback-info* object) +;; (define-extern *physics-nav-callback-info* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; mine-mood ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype mineb-light-state (structure) + ((current float :offset-assert 0) + (target float :offset-assert 4) + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +#| +(deftype mineb-states (structure) + ((lights UNKNOWN 3 :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x30 + :flag-assert #x900000030 + ) +|# + +#| +(deftype minec-states (structure) + ((light light-state :inline :offset-assert 0) + (electricity electricity-state :inline :offset-assert 8) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +;; (define-extern init-mood-minea function) +;; (define-extern update-mood-minea function) +;; (define-extern init-mood-mineb function) +;; (define-extern update-mood-mineb function) +;; (define-extern set-mineb-lights! function) +;; (define-extern init-mood-minec function) +;; (define-extern update-mood-minec function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; water-part ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *range-wsplash-color* curve-color-fast) +;; (define-extern *range-wsplash-alpha* curve2d-fast) +;; (define-extern *range-wsplash-scale-x* curve2d-fast) +;; (define-extern *range-wsplash-scale-y* curve2d-fast) +;; (define-extern *curve-wsplash-alpha* curve2d-fast) +;; (define-extern *curve-wsplash-scale-x* curve2d-fast) +;; (define-extern *curve-wsplash-scale-y* curve2d-fast) +;; (define-extern *part-water-splash-curve-settings* object) +;; (define-extern *range-splash-color* curve-color-fast) +;; (define-extern *range-splash-alpha* curve2d-fast) +;; (define-extern *range-splash-scale-x* curve2d-fast) +;; (define-extern *range-splash-scale-y* curve2d-fast) +;; (define-extern *curve-splash-alpha* curve2d-fast) +;; (define-extern *curve-splash-scale-x* curve2d-fast) +;; (define-extern *curve-splash-scale-y* curve2d-fast) +;; (define-extern *part-water-splash-center-curve-settings* object) +;; (define-extern *curve-wsplash-small-scale-x* curve2d-fast) +;; (define-extern *curve-wsplash-small-scale-y* curve2d-fast) +;; (define-extern *part-water-splash-small-curve-settings* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; water ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern check-water-level-drop function) ;; (function sparticle-system sparticle-cpuinfo vector none) +;; (define-extern check-water-level-drop-and-die function) ;; (function sparticle-system sparticle-cpuinfo vector none) +;; (define-extern check-water-level-drop-and-die-motion function) ;; (function sparticle-system sparticle-cpuinfo vector none) +;; (define-extern check-water-level-above-and-die function) ;; (function sparticle-system sparticle-cpuinfo vector none) +;; (define-extern check-water-level-drop-motion function) ;; (function sparticle-system sparticle-cpuinfo vector none) +;; (define-extern *water-simple-alpha-curve-in* object) +;; (define-extern *growing-curve* object) +;; (define-extern *water-simple-alpha-curve-fade-out* object) +;; (define-extern *color-curve-tan-brown* object) +;; (define-extern *water-wake-trail* object) +;; (define-extern part-water-splash-callback function) ;; (function part-tracker none) +;; (define-extern splash-spawn function) ;; (function float vector int none) +;; (define-extern rings-water-spawn function) ;; (function float vector vector float float none) +;; (define-extern water-info<-region function) ;; (function water-info drawable-region-prim collide-shape collide-action water-info) +;; (define-extern find-water-1 function) +;; (define-extern find-water-2 function) +;; (define-extern find-water-with-spheres function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; gem-pool ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern get-gem-pool-size function) +;; (define-extern compare-gems function) +;; (define-extern gems-available? function) +;; (define-extern notify-gem-pickup function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; wcar-mirage ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype v-mirage (wcar-snake-base) + () + :method-count-assert 203 + :size-assert #xd60 + :flag-assert #xcb0ce00d60 + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; task-control ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype resetter-control (basic) + ((process uint64 :offset-assert 8) + (handle-init-hack basic :offset-assert 8) + ) + :method-count-assert 13 + :size-assert #x10 + :flag-assert #xd00000010 + (:methods + (resetter-control-method-9 () none) ;; 9 + (resetter-control-method-10 () none) ;; 10 + (resetter-control-method-11 () none) ;; 11 + (resetter-control-method-12 () none) ;; 12 + ) + ) +|# + +#| +(deftype resetter (process) + ((params resetter-params :inline :offset-assert 128) + (message uint8 :offset-assert 128) + (flags uint16 :offset-assert 130) + (reset-delay uint32 :offset-assert 164) + (task uint8 :offset-assert 168) + (text-message uint32 :offset-assert 172) + (retry resetter-spec :inline :offset-assert 148) + (retry-continue basic :offset-assert 148) + (retry-node uint16 :offset-assert 152) + (retry-reset-mode basic :offset-assert 156) + (fail resetter-spec :inline :offset-assert 132) + (fail-continue basic :offset-assert 132) + (fail-node uint16 :offset-assert 136) + (fail-reset-mode basic :offset-assert 140) + (resetter-id uint32 :offset-assert 176) + (grabbed-player? basic :offset-assert 180) + (grabbed-time uint64 :offset-assert 184) + (dead-player? basic :offset-assert 192) + (retry? basic :offset-assert 196) + (message-id uint32 :offset-assert 200) + (stinger uint32 :offset-assert 204) + (start-time uint64 :offset-assert 208) + ) + :method-count-assert 17 + :size-assert #xd8 + :flag-assert #x11006000d8 + (:methods + (resetter-method-16 () none) ;; 16 + ) + (:state-methods + idle ;; 14 + resetting ;; 15 + ) + ) +|# + +;; (define-extern *resetter-control* resetter-control) +;; (define-extern game-task-node->string function) ;; (function game-task-node string) +;; (define-extern reset-city-squad-control function) +;; (define-extern city-task-faction-commands function) +;; (define-extern evaluate-faction-commands function) +;; (define-extern update-task-masks function) ;; (function symbol int) +;; (define-extern play-clean function) ;; (function symbol int) +;; (define-extern play-task function) ;; (function game-task symbol symbol string) +;; (define-extern restart-mission function) ;; (function int) +;; (define-extern fail-mission function) ;; type +;; (define-extern task-node-by-name function) ;; (function string game-task-node-info) +;; (define-extern task-node-index-by-name function) +;; (define-extern task-resolution-close! function) ;; (function game-task symbol) +;; (define-extern task-close! function) ;; (function string symbol) +;; (define-extern task-closed? function) ;; (function string symbol) +;; (define-extern open-task-nodes function) ;; (function (array game-task-node-info) (array game-task-node-info)) +;; (define-extern task-node-closed? function) ;; (function game-task-node symbol) +;; (define-extern task-node-close! function) ;; (function game-task-node int) +;; (define-extern task-open? function) +;; (define-extern task-node-open? function) ;; (function game-task-node symbol) +;; (define-extern task-node-open! function) ;; (function game-task-node int) +;; (define-extern task-node-close-upwards function) +;; (define-extern task-node-reset function) ;; (function symbol int) +;; (define-extern task-node-dump function) ;; (function symbol symbol) +;; (define-extern resetter-init-by-other function) +;; (define-extern task-manager-init-by-other function) ;; (function game-task-node-info symbol object :behavior task-manager) +;; (define-extern task-manager-event-handler function) ;; (function process int symbol event-message-block object :behavior task-manager) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; sew-laser-guard ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype gun-turret-params (structure) + ((normal-sg skeleton-group :offset-assert 0) ;; guessed by decompiler + (explode-sg skeleton-group :offset-assert 4) ;; guessed by decompiler + (enemy-info enemy-info :offset-assert 8) ;; guessed by decompiler + (idle-anim int32 :offset-assert 12) + (shoot-anim int32 :offset-assert 16) + (track-joint int32 :offset-assert 20) + (barrel-joint int32 :offset-assert 24) + (gun-joint int32 :offset-assert 28) + (hole-joints int32 8 :offset-assert 32) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x40 + :flag-assert #x900000040 + ) +|# + +#| +(deftype sew-laser-guard (enemy) + ((params gun-turret-params :offset-assert 552) + (aim-pos vector :inline :offset-assert 560) + (smoke-part basic :offset-assert 576) + (casing-part basic :offset-assert 580) + (sync-orient sync-linear :inline :offset-assert 584) + (start-orient quaternion :inline :offset-assert 608) + (end-orient quaternion :inline :offset-assert 624) + (last-play-sweep-dir-positive? basic :offset-assert 640) + (last-play-sweep-sync float :offset-assert 644) + (sound-hum uint32 :offset-assert 648) + (sound-scorch uint32 :offset-assert 652) + ) + :method-count-assert 157 + :size-assert #x290 + :flag-assert #x9d02100290 + (:methods + (sew-laser-guard-method-155 () none) ;; 155 + (sew-laser-guard-method-156 () none) ;; 156 + ) + (:state-methods + hostile ;; 38 + hit ;; 30 + stare ;; 37 + die ;; 40 + ) + ) +|# + +#| +(deftype sew-laser-shot (projectile) + () + :method-count-assert 41 + :size-assert #x200 + :flag-assert #x2901800200 + (:state-methods + dissipate ;; 21 + ) + ) +|# + +;; (define-extern sew-laser-shot-move function) +;; (define-extern *sew-laser-guard-enemy-info* enemy-info) +;; (define-extern fire-laser! function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; scene ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype scene-stage (process-hidden) + () + :method-count-assert 15 + :size-assert #x80 + :flag-assert #xf00000080 + ) +|# + +#| +(deftype subtitle-work (structure) + ((draw-tmpl dma-gif-packet :inline :offset-assert 0) + (color0 vector4w :inline :offset-assert 32) + (color1 vector4w :inline :offset-assert 48) + ) + :method-count-assert 9 + :size-assert #x40 + :flag-assert #x900000040 + ) +|# + +;; (define-extern scene-decode-continue function) ;; (function basic continue-point) +;; (define-extern scene-lookup function) ;; (function basic scene) +;; (define-extern *subtitle-work* object) ;; subtitle-work +;; (define-extern draw-subtitle-image function) ;; (function subtitle-image font-context none) +;; (define-extern process-drawable-draw-subtitles function) ;; (function none :behavior process-drawable) +;; (define-extern scene-player-init function) ;; (function object symbol string none :behavior scene-player) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; crates ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype crate-bank (basic) + ((COLLIDE_YOFF float :offset-assert 4) + (COLLIDE_RADIUS float :offset-assert 8) + (DARKECO_EXPLODE_RADIUS float :offset-assert 12) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype crate (process-focusable) + ((smush smush-control :inline :offset-assert 208) + (base vector :inline :offset-assert 240) + (look symbol :offset-assert 256) ;; guessed by decompiler + (defense symbol :offset-assert 260) ;; guessed by decompiler + (incoming-attack-id uint32 :offset-assert 264) + (target uint64 :offset-assert 272) ;; handle + (child-count int32 :offset-assert 280) + (victory-anim spool-anim :offset-assert 284) ;; guessed by decompiler + ) + :method-count-assert 43 + :size-assert #x120 + :flag-assert #x2b00a00120 + (:methods + (crate-method-36 () none) ;; 36 ;; (skel-init! (_type_) none 36) + (crate-method-37 () none) ;; 37 ;; (params-set! (_type_ symbol symbol) none 37) + (crate-method-38 () none) ;; 38 ;; (crate-method-38 (_type_) none 38) + (crate-method-39 () none) ;; 39 ;; (smush-update! (_type_) none 39) + (crate-method-40 () none) ;; 40 ;; (crate-method-40 (_type_) symbol 40) + (crate-method-41 () none) ;; 41 + (crate-method-42 () none) ;; 42 + ) + (:state-methods + hide ;; 28, old: (idle () _type_ :state 28) + idle ;; 29, old: (die (symbol int) _type_ :state 29) + carry ;; 34, old: (fall () _type_ :state 34) + fall ;; 35, old: (crate-init! (_type_ entity-actor) none 35) + bounce-on ;; 32, old: (notice-blue (handle) _type_ :state 32) + notice-blue ;; 33, old: (carry () _type_ :state 33) + die ;; 30, old: (special-contents-die () _type_ :state 30) + special-contents-die ;; 31, old: (bounce-on () _type_ :state 31) + ) + ) +|# + +#| +(deftype pickup-spawner (crate) + ((blocker entity-actor :offset-assert 288) ;; guessed by decompiler + ) + :method-count-assert 43 + :size-assert #x124 + :flag-assert #x2b00b00124 + (:state-methods + idle ;; 29 + ) + ) +|# + +#| +(deftype urn-a (crate) + () + :method-count-assert 43 + :size-assert #x120 + :flag-assert #x2b00a00120 + ) +|# + +#| +(deftype urn-b (crate) + () + :method-count-assert 43 + :size-assert #x120 + :flag-assert #x2b00a00120 + ) +|# + +#| +(deftype urn-c (crate) + () + :method-count-assert 43 + :size-assert #x120 + :flag-assert #x2b00a00120 + ) +|# + +;; (define-extern *CRATE-bank* crate-bank) ;; crate-bank +;; (define-extern collectable-count function) +;; (define-extern crate-post function) ;; (function none :behavior crate) +;; (define-extern crate-standard-event-handler function) ;; (function process int symbol event-message-block object :behavior crate) +;; (define-extern crate-init-by-other function) ;; (function entity vector symbol fact-info-crate none :behavior crate) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; sew-whirlpool ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype sew-whirlpool (process-drawable) + ((spool-sound-id uint32 :offset-assert 200) + ) + :method-count-assert 21 + :size-assert #xcc + :flag-assert #x15005000cc + (:state-methods + idle ;; 20 + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ocean-transition ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; part-tester ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype part-tester (process) + ((root trsqv :offset-assert 128) ;; guessed by decompiler + (part sparticle-launch-control :offset-assert 132) ;; guessed by decompiler + (old-group sparticle-launch-group :offset-assert 136) ;; guessed by decompiler + ) + :method-count-assert 14 + :size-assert #x8c + :flag-assert #xe0010008c + (:states + part-tester-idle ;; associated process guessed by decompiler, old: (state part-tester) + ) + ) +|# + +;; (define-extern *part-tester-name* object) ;; string +;; (define-extern part-tester-init-by-other function) ;; (function vector none :behavior process-drawable) +;; (define-extern *debug-part-dead-pool* object) ;; dead-pool +;; (define-extern start-part function) ;; (function none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ftank-projectile ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype ftank-shot (projectile) + ((hit-actor? basic :offset-assert 512) + (tail-pos vector :inline :offset-assert 528) + ) + :method-count-assert 41 + :size-assert #x220 + :flag-assert #x2901a00220 + (:state-methods + impact ;; 22 + ) + ) +|# + +;; (define-extern ftank-shot-move function) +;; (define-extern spawn-ftank-projectile function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; manipulator ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype manipulator (structure) + ((action uint32 :offset-assert 0) + (mode uint32 :offset-assert 4) + (dragging? basic :offset-assert 8) + (position vector :inline :offset-assert 16) + (speed vector :inline :offset-assert 32) + (drag-ref-position vector :inline :offset-assert 48) + (mouse-ref-position vector :inline :offset-assert 64) + (mat matrix :inline :offset-assert 80) + (rotate-ref int32 :offset-assert 144) + (angles euler-angles :inline :offset-assert 160) + ) + :method-count-assert 15 + :size-assert #xb0 + :flag-assert #xf000000b0 + (:methods + (manipulator-method-9 () none) ;; 9 + (manipulator-method-10 () none) ;; 10 + (manipulator-method-11 () none) ;; 11 + (manipulator-method-12 () none) ;; 12 + (manipulator-method-13 () none) ;; 13 + (manipulator-method-14 () none) ;; 14 + ) + ) +|# + +;; (define-extern draw-axis function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; fac-tower ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype fac-gun-tower-base (process-focusable) + () + :method-count-assert 30 + :size-assert #xd0 + :flag-assert #x1e005000d0 + (:state-methods + explode ;; 29 + idle ;; 28 + ) + ) +|# + +#| +(deftype gun-tower-base (fac-gun-tower-base) + () + :method-count-assert 30 + :size-assert #xd0 + :flag-assert #x1e005000d0 + ) +|# + +;; (define-extern *fac-tower-impact-pos* object) +;; (define-extern *fac-gun-tower-break-anim-idx* object) +;; (define-extern fac-gun-tower-base-broken-init-by-other function) +;; (define-extern fac-gun-tower-break-init-by-other function) +;; (define-extern start-destroyed-fac-gun-tower-base function) +;; (define-extern start-destroyed-fac-gun-tower function) +;; (define-extern fac-gun-tower-standard-event-handler function) +;; (define-extern fac-deg-delta function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; editable-player ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern cleanup-selection function) ;; (function editable-array none) +;; (define-extern insert-box function) ;; (function editable-array vector none) +;; (define-extern insert-wall function) +;; (define-extern update-manipulator-position function) +;; (define-extern execute-select function) ;; (function editable-array editable-command mouse-info symbol) +;; (define-extern execute-mouse-move function) ;; (function editable-array editable-command mouse-info symbol) +;; (define-extern execute-move function) ;; (function editable-array editable-command mouse-info symbol) +;; (define-extern get-light-value function) +;; (define-extern set-light-value function) +;; (define-extern keybd-set-time-of-day! function) +;; (define-extern editable-player-init function) ;; (function symbol none :behavior editable-player) +;; (define-extern set-editable-name function) +;; (define-extern select-editable-by-name function) +;; (define-extern *editable-menu-context* object) ;; debug-menu-context +;; (define-extern editable-menu-command function) ;; (function int none) +;; (define-extern editable-menu-command-no-close function) ;; (function int none) +;; (define-extern dm-region-tree-pick-func function) ;; (function symbol debug-menu-msg symbol) +;; (define-extern dm-editable-flag-pick-func function) ;; (function editable-flag debug-menu-msg symbol) +;; (define-extern dm-editable-filter0-pick-func function) ;; (function editable-filter debug-menu-msg symbol) +;; (define-extern dm-editable-filter1-pick-func function) ;; (function editable-filter debug-menu-msg symbol) +;; (define-extern dm-editable-light-float-func function) ;; (function int debug-menu-msg float float float) +;; (define-extern dm-cam-externalize2 function) ;; (function symbol debug-menu-msg symbol) +;; (define-extern dm-editable-boolean-toggle-pick-func function) ;; (function int debug-menu-msg symbol) +;; (define-extern editable-menu-context-make-menus function) ;; (function debug-menu-context debug-menu-context) +;; (define-extern insert-sample-camera function) ;; (function symbol none) +;; (define-extern *debug-hook* object) ;; pair + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; sewer-obs ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype sew-curved-door (com-airlock) + () + :method-count-assert 30 + :size-assert #x1b0 + :flag-assert #x1e013001b0 + ) +|# + +#| +(deftype sew-floating-plat (elevator) + () + :method-count-assert 52 + :size-assert #x1a0 + :flag-assert #x34012001a0 + ) +|# + +#| +(deftype sew-cam-sequencer (process) + ((activate-script basic :offset-assert 132) + (enter-script basic :offset-assert 136) + (exit-script basic :offset-assert 140) + (timeout uint64 :offset-assert 144) + (offset uint64 :offset-assert 152) + ) + :method-count-assert 15 + :size-assert #xa0 + :flag-assert #xf002000a0 + ;; field activate-script uses ~A with a signed load. field enter-script uses ~A with a signed load. field exit-script uses ~A with a signed load. + (:state-methods + active ;; 14 + ) + ) +|# + +#| +(deftype sew-floor-switch (process-drawable) + () + :method-count-assert 23 + :size-assert #xc8 + :flag-assert #x17005000c8 + (:state-methods + idle-up ;; 20 + going-down ;; 21 + idle-down ;; 22 + ) + ) +|# + +#| +(deftype sew-jump-pad (jump-pad) + () + :method-count-assert 30 + :size-assert #x100 + :flag-assert #x1e00800100 + ) +|# + +#| +(deftype sew-fan (enemy) + ((activate-distance float :offset-assert 552) + (path-pos float :offset-assert 556) + (sweep-dir int8 :offset-assert 560) + (travel-dir int8 :offset-assert 561) + (float-quat quaternion :inline :offset-assert 576) + (base-trans-y float :offset-assert 592) + (base-quat quaternion :inline :offset-assert 608) + (dest-quat quaternion :inline :offset-assert 624) + (fan-rot float :offset-assert 640) + (fan-rot-vel float :offset-assert 644) + (hostile-part basic :offset-assert 648) + (gust-part basic :offset-assert 652) + (sound-fan-loop-id uint32 :offset-assert 656) + ) + :method-count-assert 155 + :size-assert #x294 + :flag-assert #x9b02200294 + (:state-methods + idle ;; 33 + notice ;; 35 + active ;; 34 + hostile ;; 38 + die ;; 40 + ) + ) +|# + +#| +(deftype sew-elevator (process-drawable) + () + :method-count-assert 22 + :size-assert #xc8 + :flag-assert #x16005000c8 + (:methods + (sew-elevator-method-21 () none) ;; 21 + ) + (:state-methods + idle ;; 20 + ) + ) +|# + +#| +(deftype sew-gate (process-drawable) + ((play-time uint64 :offset-assert 200) + (sound-played1 basic :offset-assert 208) + (sound-played2 basic :offset-assert 212) + ) + :method-count-assert 23 + :size-assert #xd8 + :flag-assert #x17006000d8 + (:state-methods + idle ;; 20 + open ;; 21 + opened ;; 22 + ) + ) +|# + +#| +(deftype sew-wall-switch (process-drawable) + ((actor-group uint32 :offset-assert 196) + (actor-group-count int32 :offset-assert 200) + (minimap connection-minimap :offset-assert 204) + ) + :method-count-assert 23 + :size-assert #xd4 + :flag-assert #x17006000d4 + (:state-methods + idle ;; 20 + open ;; 21 + opened ;; 22 + ) + ) +|# + +#| +(deftype sew-fence-gate (process-drawable) + () + :method-count-assert 24 + :size-assert #xc8 + :flag-assert #x18005000c8 + (:state-methods + closed ;; 20 + open ;; 21 + opening ;; 22 + closing ;; 23 + ) + ) +|# + +#| +(deftype sew-vent (process-drawable) + ((sync sync-linear :inline :offset-assert 200) + (attack-id int32 :offset-assert 216) + (last-sync-val float :offset-assert 220) + (vent-sound uint32 :offset-assert 224) + ) + :method-count-assert 21 + :size-assert #xe4 + :flag-assert #x15007000e4 + (:state-methods + idle ;; 20 + ) + ) +|# + +#| +(deftype sew-power-switch (process-drawable) + () + :method-count-assert 22 + :size-assert #xc8 + :flag-assert #x16005000c8 + (:state-methods + idle ;; 20 + turned-off ;; 21 + ) + ) +|# + +#| +(deftype sew-gas-step (base-plat) + ((sound-id uint32 :offset-assert 272) + (sync sync-linear :inline :offset-assert 280) + (last-sync-val float :offset-assert 296) + (gas-time uint64 :offset-assert 304) + (attack-id int32 :offset-assert 312) + ) + :method-count-assert 36 + :size-assert #x13c + :flag-assert #x2400c0013c + (:state-methods + idle ;; 35 + ) + ) +|# + +;; (define-extern sewer-login function) +;; (define-extern sewer-logout function) +;; (define-extern sewb-activate function) +;; (define-extern sewc-activate function) +;; (define-extern sewg-activate function) +;; (define-extern sewl-activate function) +;; (define-extern sewo-activate function) +;; (define-extern sewj-activate function) +;; (define-extern sew-cam-sequencer-init-by-other function) +;; (define-extern sew-cam-eval-script function) +;; (define-extern *sew-fan-enemy-info* enemy-info) +;; (define-extern *sew-fan-exploder-params* joint-exploder-static-params) +;; (define-extern update-surface-float function) +;; (define-extern update-idle function) +;; (define-extern update-hostile function) +;; (define-extern sew-fan-joint-fan function) +;; (define-extern sew-fan-joint-floor function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; nav-mesh-editor ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype triangulation-vert (structure) + ((index uint32 :offset-assert 0) + (ear? basic :offset-assert 4) + (score float :offset-assert 8) + ) + :method-count-assert 9 + :size-assert #xc + :flag-assert #x90000000c + ) +|# + +;; (define-extern snap-level-navmesh function) +;; (define-extern mouse-intersect-triangle function) +;; (define-extern *clean-vertex-array* object) +;; (define-extern *clean-index-array* object) +;; (define-extern poly-flag-to-string function) +;; (define-extern point-in-cone function) +;; (define-extern segment-in-cone function) +;; (define-extern point-in-triangle function) +;; (define-extern segments-intersect function) +;; (define-extern is-diagonal function) +;; (define-extern *verts-buf-1* object) +;; (define-extern *verts-buf-2* object) +;; (define-extern draw-square-point function) +;; (define-extern get-level-id function) +;; (define-extern nav-mesh-editor-new function) +;; (define-extern nav-delete function) +;; (define-extern nav-mesh-editor-translate function) +;; (define-extern nav-mesh-editor-rotate-y function) +;; (define-extern nav-mesh-editor-load function) +;; (define-extern nav-mesh-editor-set-level function) +;; (define-extern nav-set-lev function) +;; (define-extern nav-set-flag function) +;; (define-extern nav-mesh-editor-init function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ctymark-obs-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype market-object (crate) + ((sound-explode basic :offset-assert 288) + (part-explode basic :offset-assert 292) + (explode-matrix matrix :inline :offset-assert 304) + ) + :method-count-assert 43 + :size-assert #x170 + :flag-assert #x2b00f00170 + (:state-methods + idle ;; 29 + die ;; 30 + ) + ) +|# + +#| +(deftype market-basket-a (market-object) + () + :method-count-assert 43 + :size-assert #x170 + :flag-assert #x2b00f00170 + ) +|# + +#| +(deftype market-basket-b (market-object) + () + :method-count-assert 43 + :size-assert #x170 + :flag-assert #x2b00f00170 + ) +|# + +#| +(deftype market-crate (market-object) + () + :method-count-assert 43 + :size-assert #x170 + :flag-assert #x2b00f00170 + ) +|# + +#| +(deftype market-sack-a (market-object) + () + :method-count-assert 43 + :size-assert #x170 + :flag-assert #x2b00f00170 + ) +|# + +#| +(deftype market-sack-b (market-object) + () + :method-count-assert 43 + :size-assert #x170 + :flag-assert #x2b00f00170 + ) +|# + +#| +(deftype fruit-stand (process-focusable) + ((incoming-attack-id uint32 :offset-assert 208) + (hack-counter uint32 :offset-assert 212) + (count-sparts uint32 :offset-assert 216) + (first-sparts uint32 :offset-assert 220) + (num-sparts uint32 :offset-assert 224) + (sparts-index uint32 4 :offset-assert 228) ;; guessed by decompiler + (sparts-pos vector 4 :offset-assert 256) ;; guessed by decompiler + (parts-alive? basic :offset-assert 320) + ) + :method-count-assert 31 + :size-assert #x144 + :flag-assert #x1f00d00144 + (:methods + (fruit-stand-method-28 () none) ;; 28 ;; (fruit-stand-method-28 (_type_) none 28) + (fruit-stand-method-29 () none) ;; 29 ;; (fruit-stand-method-29 (_type_) none 29) + (fruit-stand-method-30 () none) ;; 30 + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; pilot-states ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern target-pilot-bike-anim-loop function) ;; (function none :behavior target) +;; (define-extern target-pilot-car-anim-loop function) ;; (function none :behavior target) +;; (define-extern target-pilot-wcar-anim-loop function) +;; (define-extern target-pilot-glider-anim-loop function) +;; (define-extern target-daxter-pilot-car-anim-loop function) ;; (function none :behavior target) +;; (define-extern target-pilot-trans function) ;; (function none :behavior target) +;; (define-extern target-pilot-signal-ready function) ;; (function object :behavior target) +;; (define-extern *pilot-get-on-mods* object) ;; surface +;; (define-extern *pilot-get-off-mods* object) ;; surface + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; default-menu ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *debug-menu-context* object) ;; debug-menu-context +;; (define-extern *dm-cam-mode-interpolation* object) ;; int +;; (define-extern dm-cam-mode-func function) ;; (function (state camera-slave) debug-menu-msg object) +;; (define-extern dm-cam-mode-default function) ;; (function object debug-menu-msg symbol) +;; (define-extern dm-cam-settings-default function) ;; (function object debug-menu-msg symbol) +;; (define-extern dm-cam-settings-func function) ;; (function int debug-menu-msg symbol) +;; (define-extern dm-cam-settings-func-int function) ;; (function int debug-menu-msg int int int) +;; (define-extern dm-cam-externalize function) ;; (function symbol debug-menu-msg symbol) +;; (define-extern dm-cam-setting-float function) ;; (function float debug-menu-msg float float float) +;; (define-extern dm-cam-render-float function) ;; (function int debug-menu-msg float float float) +;; (define-extern dm-subdiv-float function) ;; (function symbol debug-menu-msg float float float) +;; (define-extern dm-subdiv-int function) ;; (function symbol debug-menu-msg int int int) +;; (define-extern dm-select-race-path function) ;; (function object debug-menu-msg int int) +;; (define-extern dm-setting-language function) ;; (function int debug-menu-msg symbol) +;; (define-extern dm-setting-subtitle-language function) ;; (function int debug-menu-msg symbol) +;; (define-extern dm-setting-audio-language function) +;; (define-extern dm-setting-stereo-mode function) ;; (function object debug-menu-msg symbol) +;; (define-extern dm-current-continue function) ;; (function string debug-menu-msg symbol) +;; (define-extern dm-subdiv-draw-func function) ;; (function int debug-menu-msg symbol) +;; (define-extern dm-scissor-subdiv-draw-func function) ;; (function int debug-menu-msg symbol) +;; (define-extern dm-foreground-subdiv-draw-func function) ;; (function int debug-menu-msg symbol) +;; (define-extern dm-col-rend-on-func function) ;; (function object debug-menu-msg symbol) +;; (define-extern dm-col-rend-outline-func function) ;; (function object debug-menu-msg symbol) +;; (define-extern dm-col-rend-back-face-func function) ;; (function object debug-menu-msg symbol) +;; (define-extern dm-col-rend-normals-func function) ;; (function object debug-menu-msg symbol) +;; (define-extern dm-col-rend-ghost-hidden-func function) ;; (function object debug-menu-msg symbol) +;; (define-extern dm-col-rend-track-func function) ;; (function int debug-menu-msg symbol) +;; (define-extern dm-col-rend-show-only-toggle-func function) ;; (function uint debug-menu-msg symbol) +;; (define-extern dm-col-rend-show-only-set-func function) ;; (function uint debug-menu-msg symbol) +;; (define-extern dm-col-rend-cspec-toggle function) ;; (function uint debug-menu-msg symbol) +;; (define-extern dm-col-rend-size function) ;; (function object debug-menu-msg float float) +;; (define-extern dm-col-rend-cam-dist function) ;; (function object debug-menu-msg float float) +;; (define-extern dm-ocean-height-func function) ;; (function ocean-height-hack debug-menu-msg symbol) +;; (define-extern dm-ocean-subdiv-draw-func function) ;; (function object debug-menu-msg symbol) +;; (define-extern dm-time-of-day-func function) ;; (function dm-time-of-day-setting debug-menu-msg symbol) +;; (define-extern dm-time-of-day-func2 function) ;; (function symbol debug-menu-msg object) +;; (define-extern dm-time-of-day-palette-func function) ;; (function dm-time-of-day-palette-settings debug-menu-msg symbol) +;; (define-extern dm-boolean-toggle-pick-func function) ;; (function symbol debug-menu-msg object) +;; (define-extern dm-time-of-day-pick-func function) ;; (function symbol debug-menu-msg symbol) +;; (define-extern dm-stats-memory-func function) ;; (function int debug-menu-msg symbol) +;; (define-extern dm-actor-marks-pick-func function) ;; (function symbol debug-menu-msg symbol) +;; (define-extern dm-debug-actor-lod-dist function) +;; (define-extern dm-select-race-pick-func function) ;; (function int debug-menu-msg symbol) +;; (define-extern dm-compact-actor-pick-func function) ;; (function symbol debug-menu-msg symbol) +;; (define-extern dm-actor-vis-pick-func function) ;; (function symbol debug-menu-msg symbol) +;; (define-extern dm-game-mode-pick-func function) ;; (function symbol debug-menu-msg symbol) +;; (define-extern dm-game-feature-toggle-pick-func function) ;; (function int debug-menu-msg symbol) +;; (define-extern dm-game-vehicle-toggle-pick-func function) +;; (define-extern dm-game-secret-toggle-pick-func function) ;; (function int debug-menu-msg symbol) +;; (define-extern display-scene-control-toggle-pick-func function) ;; (function int debug-menu-msg symbol) +;; (define-extern display-scene-control-set-pick-func function) ;; (function scene-controls debug-menu-msg symbol) +;; (define-extern display-bot-marks-toggle-pick-func function) ;; (function int debug-menu-msg symbol) +;; (define-extern display-bot-marks-set-pick-func function) ;; (function bot-marks-controls debug-menu-msg symbol) +;; (define-extern display-race-marks-toggle-pick-func function) ;; (function int debug-menu-msg symbol) +;; (define-extern display-race-marks-set-pick-func function) ;; (function race-marks-controls debug-menu-msg symbol) +;; (define-extern dm-vu1-user-toggle-pick-func function) ;; (function vu1-renderer-mask debug-menu-msg symbol) +;; (define-extern dm-vu1-user-all-pick-func function) ;; (function symbol debug-menu-msg symbol) +;; (define-extern dm-vu1-user-none-pick-func function) ;; (function symbol debug-menu-msg symbol) +;; (define-extern dm-texture-user-toggle-pick-func function) ;; (function int debug-menu-msg symbol) +;; (define-extern dm-texture-user-set-pick-func function) ;; (function int debug-menu-msg symbol) +;; (define-extern dm-strip-lines-toggle-pick-func function) ;; (function int debug-menu-msg symbol) +;; (define-extern dm-strip-lines-set-pick-func function) ;; (function strip-lines-controls debug-menu-msg symbol) +;; (define-extern dm-edit-instance-toggle-pick-func function) ;; (function int debug-menu-msg symbol) +;; (define-extern all-texture-tweak-adjust function) ;; (function texture-page-dir float none) +;; (define-extern dm-float-field-tie-rvanish-func function) ;; (function symbol debug-menu-msg float float float) +;; (define-extern dm-float-field-tie-vanish-far-func function) ;; (function symbol debug-menu-msg float float float) +;; (define-extern dm-bug-report-output-pick-func function) ;; (function symbol debug-menu-msg symbol) +;; (define-extern dm-bug-report-report-pick-func function) ;; (function symbol debug-menu-msg none) +;; (define-extern debug-menu-nodestring function) +;; (define-extern set-time-chase-particle-texture function) +;; (define-extern bb-freeze-init-by-other function) +;; (define-extern a-bb-freeze-init-by-other function) +;; (define-extern b-bb-freeze-init-by-other function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ctyslumc-obs ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype cty-elevator (elevator) + () + :method-count-assert 52 + :size-assert #x1a0 + :flag-assert #x34012001a0 + ) +|# + +#| +(deftype ctyslumc-flag (process-drawable) + () + :method-count-assert 21 + :size-assert #xc8 + :flag-assert #x15005000c8 + (:state-methods + idle ;; 20 + ) + ) +|# + +;; (define-extern *ctyslumc-water-texture-anim-array* texture-anim-array) +;; (define-extern ctyslumc-flag-init-by-other function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; guard ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *guard-died-recently?* object) +;; (define-extern *crimson-guard-global-info* guard-global-info) ;; guard-global-info +;; (define-extern *crimson-guard-nav-enemy-info* nav-enemy-info) ;; nav-enemy-info +;; (define-extern *guard-min-id-hack* object) ;; int +;; (define-extern do-spline function) ;; (function vector vector vector vector vector float vector) +;; (define-extern guard-type->city-target-type function) +;; (define-extern orient-towards-code function) +;; (define-extern go-active-if-necessary function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; combx-scenes ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; artifact-race ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype artifact-info (structure) + ((pos vector :inline :offset-assert 0) + (time uint32 :offset-assert 16) + (artifact-type uint8 :offset-assert 20) + ) + :method-count-assert 9 + :size-assert #x15 + :flag-assert #x900000015 + ) +|# + +#| +(deftype was-artifact (process-drawable) + ((pos vector :inline :offset-assert 208) + (angs vector :inline :offset-assert 224) + ) + :method-count-assert 26 + :size-assert #xf0 + :flag-assert #x1a007000f0 + (:methods + (was-artifact-method-23 () none) ;; 23 + (was-artifact-method-24 () none) ;; 24 + (was-artifact-method-25 () none) ;; 25 + ) + (:state-methods + idle ;; 20 + sink ;; 21 + die ;; 22 + ) + ) +|# + +#| +(deftype task-manager-desert-artifact-race (task-manager) + ((count int8 :offset-assert 240) + (max-count int8 :offset-assert 241) + (death-count uint8 :offset-assert 242) + (target-count int8 :offset-assert 243) + (target-speed float :offset-assert 244) + (slave uint64 :offset-assert 248) + (speech-time uint64 :offset-assert 256) + (final-time uint32 :offset-assert 264) + (suck-factor float :offset-assert 268) + (extra-suck-time float :offset-assert 272) + (hit-point-scale float :offset-assert 276) + (dust-begin float :offset-assert 280) + (dust-last-artifact float :offset-assert 284) + (dust-end float :offset-assert 288) + (ent basic :offset-assert 292) + (speech-callback basic :offset-assert 296) + (begin-pos vector :inline :offset-assert 304) + (end-pos vector :inline :offset-assert 320) + (door-plane vector :inline :offset-assert 336) + (objs UNKNOWN 32 :offset-assert 352) + ) + :method-count-assert 35 + :size-assert #x560 + :flag-assert #x2304e00560 + (:methods + (task-manager-desert-artifact-race-method-32 () none) ;; 32 + (task-manager-desert-artifact-race-method-33 () none) ;; 33 + (task-manager-desert-artifact-race-method-34 () none) ;; 34 + ) + (:state-methods + active ;; 15 + complete ;; 16 + fail ;; 18 + ) + ) +|# + +;; (define-extern was-artifact-init-by-other function) +;; (define-extern was-artifact-spawn function) +;; (define-extern *artifact-race-speech-list* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; wvehicle-ai ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; hover-nav-factoryc ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *factoryc-adjacency* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; factoryc-obs ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype generic-spot-shadow-effect (process-drawable) + ((focal-length float :offset-assert 200) + (near-clip float :offset-assert 204) + (far-clip float :offset-assert 208) + (color uint32 :offset-assert 212) + (pre-flicker-pos vector :inline :offset-assert 224) + (jmod-outer joint-mod-add-local :inline :offset-assert 240) + (jmod-inner joint-mod-add-local :inline :offset-assert 304) + ) + :method-count-assert 24 + :size-assert #x170 + :flag-assert #x1800f00170 + (:methods + (generic-spot-shadow-effect-method-22 () none) ;; 22 + (generic-spot-shadow-effect-method-23 () none) ;; 23 + ) + (:state-methods + idle ;; 20 + inactive ;; 21 + ) + ) +|# + +#| +(deftype fac-zapper (process) + ((on-duration uint64 :offset-assert 128) + (off-duration uint64 :offset-assert 136) + (phase-offset uint64 :offset-assert 144) + (beam-is-on basic :offset-assert 152) + (bzzt-sound uint32 :offset-assert 156) + (path basic :offset-assert 160) + (lightning basic :offset-assert 164) + (hilite uint64 :offset-assert 168) + ) + :method-count-assert 15 + :size-assert #xb0 + :flag-assert #xf003000b0 + (:state-methods + idle ;; 14 + ) + ) +|# + +#| +(deftype fac-fire-torch (process-drawable) + ((on-duration uint64 :offset-assert 200) + (off-duration uint64 :offset-assert 208) + (phase-offset uint64 :offset-assert 216) + (fire-is-on basic :offset-assert 224) + (sync sync-eased :inline :offset-assert 232) + (path-pos float :offset-assert 276) + (looping-sound uint32 :offset-assert 280) + (particle-hack matrix :inline :offset-assert 288) + ) + :method-count-assert 21 + :size-assert #x160 + :flag-assert #x1500e00160 + (:state-methods + idle ;; 20 + ) + ) +|# + +#| +(deftype fac-robopod (process-focusable) + ((my-baby UNKNOWN 3 :offset-assert 208) + (num-babies uint32 :offset-assert 232) + (subtask-countdown int32 :offset-assert 236) + (suppressed basic :offset-assert 240) + ) + :method-count-assert 32 + :size-assert #xf4 + :flag-assert #x20008000f4 + (:state-methods + idle ;; 28 + generate ;; 29 + die ;; 30 + already-dead ;; 31 + ) + ) +|# + +#| +(deftype factory-elec-gate (process) + ((path-l basic :offset-assert 124) + (path-r basic :offset-assert 128) + (beams UNKNOWN 4 :offset-assert 132) + (beams-on UNKNOWN 4 :offset-assert 148) + (bzzt-sound uint32 :offset-assert 164) + (blocking-plane uint64 :offset-assert 172) + (actor-group uint32 :offset-assert 180) + (actor-group-count int32 :offset-assert 184) + ) + :method-count-assert 16 + :size-assert #xc0 + :flag-assert #x10004000c0 + (:state-methods + idle ;; 14 + flickering ;; 15 + ) + ) +|# + +;; (define-extern factoryc-activate function) +;; (define-extern factoryc-login function) +;; (define-extern factoryc-logout function) +;; (define-extern generic-spot-shadow-effect-init-by-other function) +;; (define-extern generic-spot-shadow-effect-handler function) +;; (define-extern *fac-robopod-pool-count* object) +;; (define-extern *fac-robopod-exploder-params* joint-exploder-static-params) +;; (define-extern fac-robopod-add-hoverbot function) +;; (define-extern fac-robopod-invalidate-hoverbot function) +;; (define-extern fac-robopod-base-handler function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; factoryc-obs2 ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype fac-break-floor (process-drawable) + ((notify-actor basic :offset-assert 200) + ) + :method-count-assert 22 + :size-assert #xcc + :flag-assert #x16005000cc + (:state-methods + idle ;; 20 + die ;; 21 + ) + ) +|# + +#| +(deftype fac-break-fence (process-focusable) + ((notify-actor basic :offset-assert 208) + ) + :method-count-assert 30 + :size-assert #xd4 + :flag-assert #x1e006000d4 + (:state-methods + idle ;; 28 + die ;; 29 + ) + ) +|# + +#| +(deftype fac-break-fence-a (fac-break-fence) + () + :method-count-assert 30 + :size-assert #xd8 + :flag-assert #x1e006000d8 + (:state-methods + die ;; 29 + ) + ) +|# + +#| +(deftype fac-break-fence-b (fac-break-fence) + () + :method-count-assert 30 + :size-assert #xd8 + :flag-assert #x1e006000d8 + (:state-methods + die ;; 29 + ) + ) +|# + +#| +(deftype fac-break-fence-c (fac-break-fence) + () + :method-count-assert 30 + :size-assert #xd8 + :flag-assert #x1e006000d8 + (:state-methods + idle ;; 28 + die ;; 29 + ) + ) +|# + +#| +(deftype fac-switch (process-drawable) + ((actor-group uint32 :offset-assert 196) + (actor-group-count int32 :offset-assert 200) + (lever-jmod joint-mod-rotate-local :inline :offset-assert 204) + (part-red basic :offset-assert 164) + (part-green basic :offset-assert 236) + (minimap connection-minimap :offset-assert 240) + ) + :method-count-assert 23 + :size-assert #xf8 + :flag-assert #x17008000f8 + (:methods + (fac-switch-method-22 () none) ;; 22 + ) + (:state-methods + idle ;; 20 + done ;; 21 + ) + ) +|# + +#| +(deftype fac-move-plat-a (plat) + ((dead-set-time float :offset-assert 324) + ) + :method-count-assert 40 + :size-assert #x148 + :flag-assert #x2800d00148 + (:methods + (fac-move-plat-a-method-39 () none) ;; 39 + ) + (:state-methods + plat-idle ;; 35 + plat-path-active ;; 36 + locking-down ;; 38 + ) + ) +|# + +#| +(deftype fac-move-plat-b (plat) + () + :method-count-assert 38 + :size-assert #x144 + :flag-assert #x2600d00144 + (:state-methods + plat-idle ;; 35 + plat-path-active ;; 36 + ) + ) +|# + +#| +(deftype fac-rotfan (process-drawable) + ((motor-noise uint32 :offset-assert 200) + (effect-opacity float :offset-assert 204) + (no-collision-timer uint64 :offset-assert 208) + (attack-id int32 :offset-assert 216) + ) + :method-count-assert 24 + :size-assert #xdc + :flag-assert #x18006000dc + (:methods + (fac-rotfan-method-23 () none) ;; 23 + ) + (:state-methods + idle ;; 20 + spindown ;; 21 + out ;; 22 + ) + ) +|# + +#| +(deftype fac-robot-ass-manager (process) + ((name basic :offset-assert 0) + (mask process-mask :offset-assert 4) + (clock basic :offset-assert 8) + (parent uint32 :offset-assert 12) + (brother uint32 :offset-assert 16) + (child uint32 :offset-assert 20) + (ppointer uint32 :offset-assert 24) + (self basic :offset-assert 28) + (pool basic :offset-assert 32) + (status basic :offset-assert 36) + (pid int32 :offset-assert 40) + (main-thread basic :offset-assert 44) + (top-thread basic :offset-assert 48) + (entity basic :offset-assert 52) + (level basic :offset-assert 56) + (state basic :offset-assert 60) + (prev-state basic :offset-assert 64) + (next-state basic :offset-assert 68) + (state-stack basic :offset-assert 72) + (trans-hook basic :offset-assert 76) + (post-hook basic :offset-assert 80) + (event-hook basic :offset-assert 84) + (allocated-length int32 :offset-assert 88) + (heap-base uint32 :offset-assert 92) + (heap-top uint32 :offset-assert 96) + (heap-cur uint32 :offset-assert 100) + (stack-frame-top basic :offset-assert 104) + (heap kheap :inline :offset-assert 92) + (connection-list connectable :inline :offset-assert 108) + (stack UNKNOWN :dynamic :offset-assert 124) + ) + :method-count-assert 15 + :size-assert #x80 + :flag-assert #xf00000080 + (:state-methods + idle ;; 14 + ) + ) +|# + +#| +(deftype factory-conveyor (conveyor) + () + :method-count-assert 29 + :size-assert #x100 + :flag-assert #x1d00800100 + ) +|# + +#| +(deftype fac-punch-wall (process-drawable) + ((notify-actor basic :offset-assert 200) + (spool-sound-id uint32 :offset-assert 204) + ) + :method-count-assert 22 + :size-assert #xd0 + :flag-assert #x16005000d0 + (:state-methods + idle ;; 20 + die ;; 21 + ) + ) +|# + +;; (define-extern *fac-break-floor-exploder-params* joint-exploder-static-params) +;; (define-extern *fac-break-fence-a-exploder-params* joint-exploder-static-params) +;; (define-extern *fac-break-fence-b-exploder-params* joint-exploder-static-params) +;; (define-extern *fac-break-fence-c-exploder-params* joint-exploder-static-params) +;; (define-extern fac-rotfan-part-trans function) +;; (define-extern perish-immediately state) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; target-indax-hang ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *indax-hang-walk-mods* surface) +;; (define-extern *indax-hang-dodge-mods* surface) +;; (define-extern *indax-hang-attack-mods* object) +;; (define-extern target-indax-hang-stance object) +;; (define-extern target-indax-hang-walk object) +;; (define-extern target-indax-hang-dodge object) +;; (define-extern target-indax-hang-attack object) +;; (define-extern target-indax-hang-turn-around object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; cty-hijack-missile ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype cty-hijack-missile-init-params (structure) + ((pos vector :inline :offset-assert 0) + (quat quaternion :inline :offset-assert 16) + (track-obj uint64 :offset-assert 32) + (is-leader? basic :offset-assert 40) + ) + :method-count-assert 9 + :size-assert #x2c + :flag-assert #x90000002c + ) +|# + +#| +(deftype evasive-compare-params (structure) + ((data UNKNOWN 3 :offset-assert 0) + (y-val float :offset-assert 0) + (angular-velocity float :offset-assert 4) + (speed float :offset-assert 8) + ) + :method-count-assert 9 + :size-assert #xc + :flag-assert #x90000000c + ) +|# + +#| +(deftype evasive-action-info (structure) + ((start-values evasive-compare-params :inline :offset-assert 0) + (max-values evasive-compare-params :inline :offset-assert 12) + (difficulty float :offset-assert 24) + (evaded? basic :offset-assert 28) + ) + :method-count-assert 11 + :size-assert #x20 + :flag-assert #xb00000020 + (:methods + (evasive-action-info-method-9 () none) ;; 9 + (evasive-action-info-method-10 () none) ;; 10 + ) + ) +|# + +#| +(deftype hijack-missile-bobber (structure) + ((start-val float :offset-assert 0) + (current-val float :offset-assert 4) + (total-time uint64 :offset-assert 8) + (current-time uint64 :offset-assert 16) + (current-size-scalar float :offset-assert 24) + (dir float :offset-assert 28) + (num-iterations float :offset-assert 32) + (time-scalar float :offset-assert 36) + (start-time-scalar float :offset-assert 40) + (desired-time-scalar float :offset-assert 44) + (scale-min float :offset-assert 48) + (scale-max float :offset-assert 52) + (time-min float :offset-assert 56) + (time-max float :offset-assert 60) + (base-time float :offset-assert 64) + (current-speed float :offset-assert 68) + (output-scale float :offset-assert 72) + (output-val float :offset-assert 76) + (charge-time uint64 :offset-assert 80) + (wait-time uint64 :offset-assert 88) + (turning? basic :offset-assert 96) + ) + :method-count-assert 12 + :size-assert #x64 + :flag-assert #xc00000064 + (:methods + (hijack-missile-bobber-method-9 () none) ;; 9 + (hijack-missile-bobber-method-10 () none) ;; 10 + (hijack-missile-bobber-method-11 () none) ;; 11 + ) + ) +|# + +#| +(deftype cty-hijack-missile (process-focusable) + ((tracked-player-positions basic :offset-assert 208) + (current-track-index uint32 :offset-assert 212) + (last-record-time uint64 :offset-assert 216) + (track-obj uint64 :offset-assert 224) + (current-speed float :offset-assert 232) + (target-speed float :offset-assert 236) + (lunge-speed float :offset-assert 240) + (temp-vec vector :inline :offset-assert 256) + (evasive-info evasive-action-info :inline :offset-assert 272) + (target-pos vector :inline :offset-assert 304) + (flee-vec vector :inline :offset-assert 320) + (is-leader? basic :offset-assert 336) + (offset-dist float :offset-assert 340) + (vel-factor float :offset-assert 344) + (original-quat quaternion :inline :offset-assert 352) + (rotate-deg float :offset-assert 368) + (basetrans vector :inline :offset-assert 384) + (lisa lissajous-interp :inline :offset-assert 400) + (next-lisa-time uint64 :offset-assert 488) + (lisa-pt vector :inline :offset-assert 496) + (circle-mag float :offset-assert 512) + (last-trans vector :inline :offset-assert 528) + (min-chase-speed float :offset-assert 544) + (min-targ-chase-speed float :offset-assert 548) + (max-chase-speed float :offset-assert 552) + (targ-scale-factor float :offset-assert 556) + (scale-factor float :offset-assert 560) + (missile-dist float :offset-assert 564) + (stage int8 :offset-assert 568) + (particle-trail basic :offset-assert 572) + (particle-trail-thrust basic :offset-assert 576) + (peel-off-sound uint32 :offset-assert 580) + (bobber hijack-missile-bobber :inline :offset-assert 584) + ) + :method-count-assert 54 + :size-assert #x2ac + :flag-assert #x36023002ac + (:methods + (cty-hijack-missile-method-29 () none) ;; 29 + (cty-hijack-missile-method-32 () none) ;; 32 + (cty-hijack-missile-method-33 () none) ;; 33 + (cty-hijack-missile-method-34 () none) ;; 34 + (cty-hijack-missile-method-43 () none) ;; 43 + (cty-hijack-missile-method-44 () none) ;; 44 + (cty-hijack-missile-method-45 () none) ;; 45 + (cty-hijack-missile-method-46 () none) ;; 46 + (cty-hijack-missile-method-47 () none) ;; 47 + (cty-hijack-missile-method-48 () none) ;; 48 + (cty-hijack-missile-method-49 () none) ;; 49 + (cty-hijack-missile-method-50 () none) ;; 50 + (cty-hijack-missile-method-51 () none) ;; 51 + (cty-hijack-missile-method-52 () none) ;; 52 + (cty-hijack-missile-method-53 () none) ;; 53 + ) + (:state-methods + lure ;; 36 + idle ;; 28 + initial-launch ;; 41 + explode ;; 31 + die ;; 39 + explode-tiny ;; 40 + lunge-prepare ;; 35 + lure-die ;; 37 + fake-chase ;; 42 + chasing-2 ;; 38 + chasing ;; 30 + ) + ) +|# + +;; (define-extern *missile-dist-near* object) +;; (define-extern *missile-dist-far* object) +;; (define-extern cty-hijack-missile-init-by-other function) +;; (define-extern compute-target-speed function) +;; (define-extern cty-hijack-missile-chase-event-handler function) +;; (define-extern *k0* object) +;; (define-extern *k1* object) +;; (define-extern *missile-dist-start* object) +;; (define-extern *accel-scalar* object) +;; (define-extern *use-lunging* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; spydroid ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype sensor-light-info (structure) + ((joint int16 :offset-assert 0) + (part-index int16 :offset-assert 2) + (offset vector :inline :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x20 + :flag-assert #x900000020 + ) +|# + +#| +(deftype spydroid (kg-squad-member) + ((old-y-deg float :offset-assert 1124) + (diff-angle float :offset-assert 1128) + (desire-turn symbol :offset-assert 1132) ;; guessed by decompiler + (hit-target basic :offset-assert 1136) + (floor float :offset-assert 1140) + (explode-part sparticle-launch-control :offset-assert 1144) ;; guessed by decompiler + (alert-level uint8 :offset-assert 1148) + (next-check-player-time uint64 :offset-assert 1152) + (part-ids UNKNOWN 9 :offset-assert 1160) + (sensor-lights UNKNOWN 3 :offset-assert 1184) + (last-sensor-time uint64 :offset-assert 1280) + (exiting-wait? basic :offset-assert 1288) + ) + :method-count-assert 238 + :size-assert #x50c + :flag-assert #xee0490050c + (:methods + (spydroid-method-226 () none) ;; 226 + (spydroid-method-231 () none) ;; 231 + (spydroid-method-232 () none) ;; 232 + (spydroid-method-233 () none) ;; 233 + (spydroid-method-234 () none) ;; 234 + (spydroid-method-235 () none) ;; 235 + (spydroid-method-236 () none) ;; 236 + (spydroid-method-237 () none) ;; 237 + ) + (:state-methods + search ;; 223 + knocked ;; 31 + scan ;; 225 + die-falling ;; 41 + wait-for-vulnerable ;; 229 + attack ;; 222 + hostile ;; 38 + exit-transport ;; 230 + flip ;; 228 + spydroid-notice ;; 227 + wait ;; 190 + hunting ;; 224 + active ;; 34 + ) + ) +|# + +;; (define-extern *spydroid-debris-params* debris-static-params) +;; (define-extern *spydroid-nav-enemy-info* nav-enemy-info) ;; nav-enemy-info +;; (define-extern wait-for-vulnerable-close state) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; flying-turret ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype ft-gun-info (structure) + ((gun-position float :offset-assert 0) + (fire? basic :offset-assert 4) + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +#| +(deftype flying-turret (kg-squad-member) + ((thrust-dir vector :inline :offset-assert 1136) + (speed float :offset-assert 1152) + (speed-target float :offset-assert 1156) + (ground-height float :offset-assert 1160) + (last-heading-quat quaternion :inline :offset-assert 1168) + (last-roll-quat quaternion :inline :offset-assert 1184) + (thrust-mode uint8 :offset-assert 1200) + (pursuit-start-time uint64 :offset-assert 1208) + (chase-mode uint8 :offset-assert 1216) + (last-check-chase-pos-time uint64 :offset-assert 1224) + (circle-angle float :offset-assert 1232) + (last-fire-time uint64 :offset-assert 1240) + (num-shots-fired int8 :offset-assert 1248) + (ground-point vector :inline :offset-assert 1264) + (guns UNKNOWN 2 :offset-assert 1280) + (turret-aim-blend float :offset-assert 1312) + (hit-player? basic :offset-assert 1316) + (desired-height-offset float :offset-assert 1320) + (float-height float :offset-assert 1324) + (bob-velocity float :offset-assert 1328) + (bouncing? basic :offset-assert 1332) + (bounce-start-time uint64 :offset-assert 1336) + (changed-targets? basic :offset-assert 1344) + (thruster-intensity float :offset-assert 1348) + (up-bobbing? basic :offset-assert 1352) + (bob-scale-factor float :offset-assert 1356) + (bob-scale-target float :offset-assert 1360) + (bob-t float :offset-assert 1364) + (thruster-intensity-scalar float :offset-assert 1368) + (engine-sound uint32 :offset-assert 1372) + (tilt-sound uint32 :offset-assert 1376) + (roll-sound-amount float :offset-assert 1380) + ) + :method-count-assert 231 + :size-assert #x568 + :flag-assert #xe704f00568 + (:methods + (flying-turret-method-225 () none) ;; 225 + (flying-turret-method-226 () none) ;; 226 + (flying-turret-method-227 () none) ;; 227 + (flying-turret-method-228 () none) ;; 228 + (flying-turret-method-229 () none) ;; 229 + (flying-turret-method-230 () none) ;; 230 + ) + (:state-methods + flying-turret-base-state ;; 222 + hostile ;; 38 + active ;; 34 + fire ;; 223 + knocked ;; 31 + exit-transport ;; 224 + ) + ) +|# + +#| +(deftype flying-turret-shot (guard-shot) + () + :method-count-assert 41 + :size-assert #x220 + :flag-assert #x2901a00220 + ) +|# + +;; (define-extern *flying-turret-nav-enemy-info* nav-enemy-info) +;; (define-extern *flying-turret-debris-params* debris-static-params) +;; (define-extern flying-turret-gun-aim-func function) +;; (define-extern flying-turret-gun-recoil-jmod-func function) +;; (define-extern spawn-turret-projectile function) +;; (define-extern update-ft-gun function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; hfrag-common ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; hfrag-texture-anim ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern wang-texture-anim-init function) +;; (define-extern real-wang-texture-anim-func function) +;; (define-extern wang-texture-anim-func function) +;; (define-extern *hfrag-texture-anim-array* texture-anim-array) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; mh-plant ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype eco-green-board-hint (process) + ((state-time uint64 :offset-assert 128) + ) + :method-count-assert 15 + :size-assert #x88 + :flag-assert #xf00100088 + (:state-methods + idle ;; 14 + ) + ) +|# + +#| +(deftype mh-plant (process-focusable) + ((attack-id uint32 :offset-assert 208) + (sound-id uint32 :offset-assert 212) + (sub-state uint32 :offset-assert 216) + (sub-state-time uint64 :offset-assert 224) + ) + :method-count-assert 37 + :size-assert #xe8 + :flag-assert #x25007000e8 + (:methods + (mh-plant-method-32 () none) ;; 32 + (mh-plant-method-33 () none) ;; 33 + (mh-plant-method-34 () none) ;; 34 + (mh-plant-method-35 () none) ;; 35 + (mh-plant-method-36 () none) ;; 36 + ) + (:state-methods + pop-up ;; 28 + idle ;; 29 + repopulate ;; 30 + die ;; 31 + ) + ) +|# + +;; (define-extern eco-green-board-hint-init-by-other function) +;; (define-extern mh-plant-event-handler function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; desert-mood ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype desert-states (structure) + ((light light-state :inline :offset-assert 0) + (flame flames-state :inline :offset-assert 8) + (bsphere0 vector :inline :offset-assert 16) + (bsphere1 vector :inline :offset-assert 32) + ) + :method-count-assert 9 + :size-assert #x30 + :flag-assert #x900000030 + ) +|# + +#| +(deftype desertg-states (structure) + ((light light-state :inline :offset-assert 0) + (flame flames-state :inline :offset-assert 8) + (bsphere vector :inline :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x20 + :flag-assert #x900000020 + ) +|# + +#| +(deftype deswalk-states (structure) + ((light light-state :inline :offset-assert 0) + (flame flames-state :inline :offset-assert 8) + (bsphere0 vector :inline :offset-assert 16) + (bsphere1 vector :inline :offset-assert 32) + ) + :method-count-assert 9 + :size-assert #x30 + :flag-assert #x900000030 + ) +|# + +;; (define-extern update-mood-desert function) +;; (define-extern init-mood-desertg function) +;; (define-extern update-mood-desertg function) +;; (define-extern update-mood-deswalk function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; desert-part ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *range-color-desert-hanging-fire-flame* curve-color-fast) +;; (define-extern *range-alpha-desert-hanging-fire-flame* curve2d-fast) +;; (define-extern *range-scale-desert-hanging-fire-flame-x* curve2d-fast) +;; (define-extern *range-scale-desert-hanging-fire-flame-y* curve2d-fast) +;; (define-extern *r-curve-desert-hanging-fire-flame* curve2d-fast) +;; (define-extern *g-curve-desert-hanging-fire-flame* curve2d-fast) +;; (define-extern *b-curve-desert-hanging-fire-flame* curve2d-fast) +;; (define-extern *curve-alpha-desert-hanging-fire-flame* curve2d-fast) +;; (define-extern *curve-desert-hanging-fire-flame-x* curve2d-fast) +;; (define-extern *curve-desert-hanging-fire-flame-y* curve2d-fast) +;; (define-extern *part-desert-hanging-fire-flame-curve-settings* object) +;; (define-extern *range-color-desert-bowl-fire-flame* curve-color-fast) +;; (define-extern *range-alpha-desert-bowl-fire-flame* curve2d-fast) +;; (define-extern *range-scale-desert-bowl-fire-flame-x* curve2d-fast) +;; (define-extern *range-scale-desert-bowl-fire-flame-y* curve2d-fast) +;; (define-extern *r-curve-desert-bowl-fire-flame* curve2d-fast) +;; (define-extern *g-curve-desert-bowl-fire-flame* curve2d-fast) +;; (define-extern *b-curve-desert-bowl-fire-flame* curve2d-fast) +;; (define-extern *curve-alpha-desert-bowl-fire-flame* curve2d-fast) +;; (define-extern *curve-desert-bowl-fire-flame-x* curve2d-fast) +;; (define-extern *curve-desert-bowl-fire-flame-y* curve2d-fast) +;; (define-extern *part-desert-bowl-fire-flame-curve-settings* object) +;; (define-extern *range-color-desert-small-bowl-fire-flame* curve-color-fast) +;; (define-extern *range-alpha-desert-small-bowl-fire-flame* curve2d-fast) +;; (define-extern *range-scale-desert-small-bowl-fire-flame-x* curve2d-fast) +;; (define-extern *range-scale-desert-small-bowl-fire-flame-y* curve2d-fast) +;; (define-extern *r-curve-desert-small-bowl-fire-flame* curve2d-fast) +;; (define-extern *g-curve-desert-small-bowl-fire-flame* curve2d-fast) +;; (define-extern *b-curve-desert-small-bowl-fire-flame* curve2d-fast) +;; (define-extern *curve-alpha-desert-small-bowl-fire-flame* curve2d-fast) +;; (define-extern *curve-desert-small-bowl-fire-flame-x* curve2d-fast) +;; (define-extern *curve-desert-small-bowl-fire-flame-y* curve2d-fast) +;; (define-extern *part-desert-small-bowl-fire-flame-curve-settings* object) +;; (define-extern *scenecamera-fog-update?* object) +;; (define-extern scenecamera-fog-update function) +;; (define-extern *range-color-desert-palace-fire-beacon-flame* curve-color-fast) +;; (define-extern *range-alpha-desert-palace-fire-beacon-flame* curve2d-fast) +;; (define-extern *range-scale-desert-palace-fire-beacon-flame-x* curve2d-fast) +;; (define-extern *range-scale-desert-palace-fire-beacon-flame-y* curve2d-fast) +;; (define-extern *r-curve-desert-palace-fire-beacon-flame* curve2d-fast) +;; (define-extern *g-curve-desert-palace-fire-beacon-flame* curve2d-fast) +;; (define-extern *b-curve-desert-palace-fire-beacon-flame* curve2d-fast) +;; (define-extern *curve-alpha-desert-palace-fire-beacon-flame* curve2d-fast) +;; (define-extern *curve-desert-palace-fire-beacon-flame-x* curve2d-fast) +;; (define-extern *curve-desert-palace-fire-beacon-flame-y* curve2d-fast) +;; (define-extern *part-desert-palace-fire-beacon-flame-curve-settings* object) +;; (define-extern birth-func-desert-beacon-set-accel function) +;; (define-extern *range-color-desert-totem-head-fire-flame* curve-color-fast) +;; (define-extern *range-alpha-desert-totem-head-fire-flame* curve2d-fast) +;; (define-extern *range-scale-desert-totem-head-fire-flame-x* curve2d-fast) +;; (define-extern *range-scale-desert-totem-head-fire-flame-y* curve2d-fast) +;; (define-extern *r-curve-desert-totem-head-fire-flame* curve2d-fast) +;; (define-extern *g-curve-desert-totem-head-fire-flame* curve2d-fast) +;; (define-extern *b-curve-desert-totem-head-fire-flame* curve2d-fast) +;; (define-extern *curve-alpha-desert-totem-head-fire-flame* curve2d-fast) +;; (define-extern *curve-desert-totem-head-fire-flame-x* curve2d-fast) +;; (define-extern *curve-desert-totem-head-fire-flame-y* curve2d-fast) +;; (define-extern *part-desert-totem-head-fire-flame-curve-settings* object) +;; (define-extern *range-color-firepit-fire-flame* curve-color-fast) +;; (define-extern *range-alpha-firepit-fire-flame* curve2d-fast) +;; (define-extern *range-scale-firepit-fire-flame-x* curve2d-fast) +;; (define-extern *range-scale-firepit-fire-flame-y* curve2d-fast) +;; (define-extern *r-curve-firepit-fire-flame* curve2d-fast) +;; (define-extern *g-curve-firepit-fire-flame* curve2d-fast) +;; (define-extern *b-curve-firepit-fire-flame* curve2d-fast) +;; (define-extern *curve-alpha-firepit-fire-flame* curve2d-fast) +;; (define-extern *curve-firepit-fire-flame-x* curve2d-fast) +;; (define-extern *curve-firepit-fire-flame-y* curve2d-fast) +;; (define-extern *part-firepit-fire-flame-curve-settings* object) +;; (define-extern *stronghold-range-color-flame* curve-color-fast) +;; (define-extern *stronghold-range-alpha-flame* curve2d-fast) +;; (define-extern *stronghold-range-scale-flame-x* curve2d-fast) +;; (define-extern *stronghold-range-scale-flame-y* curve2d-fast) +;; (define-extern *r-stronghold-curve-flame* curve2d-fast) +;; (define-extern *g-stronghold-curve-flame* curve2d-fast) +;; (define-extern *b-stronghold-curve-flame* curve2d-fast) +;; (define-extern *stronghold-curve-alpha-flame* curve2d-fast) +;; (define-extern *stronghold-curve-flame-x* curve2d-fast) +;; (define-extern *stronghold-curve-flame-y* curve2d-fast) +;; (define-extern *part-stronghold-torchfire-flame-curve-settings* object) +;; (define-extern *range-color-desert-bollard-fire-flame* curve-color-fast) +;; (define-extern *range-alpha-desert-bollard-fire-flame* curve2d-fast) +;; (define-extern *range-scale-desert-bollard-fire-flame-x* curve2d-fast) +;; (define-extern *range-scale-desert-bollard-fire-flame-y* curve2d-fast) +;; (define-extern *r-curve-desert-bollard-fire-flame* curve2d-fast) +;; (define-extern *g-curve-desert-bollard-fire-flame* curve2d-fast) +;; (define-extern *b-curve-desert-bollard-fire-flame* curve2d-fast) +;; (define-extern *curve-alpha-desert-bollard-fire-flame* curve2d-fast) +;; (define-extern *curve-desert-bollard-fire-flame-x* curve2d-fast) +;; (define-extern *curve-desert-bollard-fire-flame-y* curve2d-fast) +;; (define-extern *part-desert-bollard-fire-flame-curve-settings* object) +;; (define-extern *range-dessplash-color* curve-color-fast) +;; (define-extern *range-dessplash-alpha* curve2d-fast) +;; (define-extern *range-dessplash-scale-x* curve2d-fast) +;; (define-extern *range-dessplash-scale-y* curve2d-fast) +;; (define-extern *curve-dessplash-alpha* curve2d-fast) +;; (define-extern *curve-dessplash-scale-x* curve2d-fast) +;; (define-extern *curve-dessplash-scale-y* curve2d-fast) +;; (define-extern *part-desert-water-rocks-splash-curve-settings* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; desert-scenes ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern spt-func-part-desert-shot-edges function) +;; (define-extern spt-func-spt-func-part-desert-barrier-puffs function) +;; (define-extern spt-func-spt-func-part-desert-barrier-sparks function) +;; (define-extern *nest-hunt-res-point* array) +;; (define-extern *nest-hunt-res-index* object) +;; (define-extern spt-birth-func-brightness-buggy-fly function) +;; (define-extern spt-birth-func-part-buggy-fly function) +;; (define-extern *range-oasis-hellcat-dust-color* curve-color-fast) +;; (define-extern *range-oasis-hellcat-dust-alpha* curve2d-fast) +;; (define-extern *range-oasis-hellcat-dust-scale-x* curve2d-fast) +;; (define-extern *range-oasis-hellcat-dust-scale-y* curve2d-fast) +;; (define-extern *curve-oasis-hellcat-dust-alpha* curve2d-fast) +;; (define-extern *curve-oasis-hellcat-dust-scale-x* curve2d-fast) +;; (define-extern *curve-oasis-hellcat-dust-scale-y* curve2d-fast) +;; (define-extern *part-oasis-hellcat-dust-trail-curve-settings* object) +;; (define-extern spt-birth-func-brightness-t-foot-impact-dust function) +;; (define-extern *range-terraformer-fma-explo-color* curve-color-fast) +;; (define-extern *range-terraformer-fma-explo-alpha* curve2d-fast) +;; (define-extern *range-terraformer-fma-explo-scale-x* curve2d-fast) +;; (define-extern *range-terraformer-fma-explo-scale-y* curve2d-fast) +;; (define-extern *curve-terraformer-fma-explo-alpha* curve2d-fast) +;; (define-extern *curve-terraformer-fma-explo-scale-x* curve2d-fast) +;; (define-extern *curve-terraformer-fma-explo-scale-y* curve2d-fast) +;; (define-extern *part-terraformer-fma-explosion-texture-curve-settings* object) +;; (define-extern spt-birth-func-brightness-buggy-skid function) +;; (define-extern spt-birth-func-part-buggy-skid function) +;; (define-extern spt-birth-func-brightness-daxter-impact-dust function) +;; (define-extern spt-birth-func-brightness-daxter-run-dust function) +;; (define-extern *range-color-desert-scenes-impact-dust* curve-color-fast) +;; (define-extern *range-alpha-desert-scenes-impact-dust* curve2d-fast) +;; (define-extern *range-scale-desert-scenes-impact-dust-x* curve2d-fast) +;; (define-extern *range-scale-desert-scenes-impact-dust-y* curve2d-fast) +;; (define-extern *curve-alpha-desert-scenes-impact-dust* curve2d-fast) +;; (define-extern *curve-desert-scenes-impact-dust-x* curve2d-fast) +;; (define-extern *curve-desert-scenes-impact-dust-y* curve2d-fast) +;; (define-extern *part-desert-scenes-impact-dust-curve-settings* object) +;; (define-extern spt-birth-func-part-desert-scenes-bits function) +;; (define-extern *range-terexplo-color* curve-color-fast) +;; (define-extern *range-terexplo-alpha* curve2d-fast) +;; (define-extern *range-terexplo-scale-x* curve2d-fast) +;; (define-extern *range-terexplo-scale-y* curve2d-fast) +;; (define-extern *curve-terexplo-alpha* curve2d-fast) +;; (define-extern *curve-terexplo-scale-x* curve2d-fast) +;; (define-extern *curve-terexplo-scale-y* curve2d-fast) +;; (define-extern *part-terraformer-explosion-texture-curve-settings* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ctywide-obs ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype security-wall (process-drawable) + ((pass int32 :offset-assert 200) + (incoming-attack-id uint32 :offset-assert 204) + (next-message-time uint64 :offset-assert 208) ;; int64 + (message int32 :offset-assert 216) + (plane plane :inline :offset-assert 224) + (color vector :inline :offset-assert 240) + (target-pos vector :inline :offset-assert 256) + (flash float :offset-assert 272) + (touch-count int32 :offset-assert 276) + (breach symbol :offset-assert 280) ;; guessed by decompiler + ) + :method-count-assert 25 + :size-assert #x11c + :flag-assert #x1900a0011c + (:methods + (security-wall-method-22 () none) ;; 22 ;; (security-wall-method-22 (_type_ path-control float) vector 22) + (security-wall-method-23 () none) ;; 23 ;; (security-wall-method-23 (_type_) none 23) + (security-wall-method-24 () none) ;; 24 ;; (security-wall-method-24 (_type_) none 24) + ) + (:state-methods + idle-close ;; 21, old: (idle-close () _type_ :state 21) + idle-open ;; 20, old: (idle-open () _type_ :state 20) + ) + ) +|# + +#| +(deftype security-wall-child (security-wall) + ((hidden? basic :offset-assert 284) + ) + :method-count-assert 26 + :size-assert #x120 + :flag-assert #x1a00a00120 + (:state-methods + idle-close ;; 21 + hide-wall ;; 25 + ) + ) +|# + +#| +(deftype parking-spot (process-drawable) + ((vehicle uint64 :offset-assert 200) ;; handle + (spawned symbol :offset-assert 208) ;; guessed by decompiler + (minimap connection-minimap :offset-assert 212) + (test-sphere sphere :inline :offset-assert 224) + (expire-time uint64 :offset-assert 240) + (last-update-time uint64 :offset-assert 248) + ) + :method-count-assert 27 + :size-assert #x100 + :flag-assert #x1b00800100 + (:methods + (parking-spot-method-21 () none) ;; 21 ;; (parking-spot-method-21 (_type_) none 21) + (parking-spot-method-22 () none) ;; 22 ;; (parking-spot-method-22 (_type_) none 22) + (parking-spot-method-23 () none) ;; 23 ;; (parking-spot-method-23 (_type_ uint) none 23) + (parking-spot-method-24 () none) ;; 24 ;; (parking-spot-method-24 (_type_) none 24) + (parking-spot-method-25 () none) ;; 25 + (parking-spot-method-26 () none) ;; 26 + ) + (:state-methods + idle ;; 20, old: (idle () _type_ :state 20) + ) + ) +|# + +#| +(deftype propa (process-focusable) + ((sound-id sound-id :offset-assert 208) ;; guessed by decompiler + (sound-index uint32 :offset-assert 212) + (handle uint64 :offset-assert 216) ;; handle + (y-rot float :offset-assert 224) + (hit-points int32 :offset-assert 228) + (incoming-attack-id uint32 :offset-assert 232) + ) + :method-count-assert 33 + :size-assert #xec + :flag-assert #x21007000ec + (:methods + (propa-method-30 () none) ;; 30 ;; (propa-method-30 (_type_) none 30) + (propa-method-31 () none) ;; 31 ;; (propa-method-31 (_type_ vector) none 31) + (propa-method-32 () none) ;; 32 + ) + (:state-methods + broken ;; 29, old: (propa-method-29 (_type_) none 29) + idle ;; 28, old: (broken () _type_ :state 28) + ) + ) +|# + +#| +(deftype burning-bush (process-focusable) + ((task game-task-control :offset-assert 208) ;; guessed by decompiler + (part-off sparticle-launch-control :offset-assert 212) ;; guessed by decompiler + (part-alert sparticle-launch-control :offset-assert 216) ;; guessed by decompiler + (angle float :offset-assert 220) ;; degrees + (time float :offset-assert 224) + (rotmin float :offset-assert 228) + (rotmax float :offset-assert 232) + (bb-perm entity-perm :offset-assert 236) + ) + :method-count-assert 35 + :size-assert #xf0 + :flag-assert #x23007000f0 + (:methods + (burning-bush-method-32 () none) ;; 32 ;; (burning-bush-method-32 (_type_) object 32) + (burning-bush-method-33 () none) ;; 33 + (burning-bush-method-34 () none) ;; 34 + ) + (:state-methods + collect-gems ;; 31, old: (burning-bush-method-31 (_type_) none 31) + idle ;; 28, old: (talking () _type_ :state 28) + talking ;; 29, old: (menu () _type_ :state 29) + menu ;; 30, old: (burning-bush-method-30 (_type_) none 30) + ) + ) +|# + +#| +(deftype city-burning-bush-get-on-info (structure) + ((trans vector :inline :offset-assert 0) + (quat quaternion :inline :offset-assert 16) + (camera-trans vector :inline :offset-assert 32) + (camera-rot UNKNOWN 9 :offset-assert 48) + (time float :offset-assert 84) + (fov float :offset-assert 88) + ) + :method-count-assert 9 + :size-assert #x5c + :flag-assert #x90000005c + ) +|# + +#| +(deftype task-manager-ctywide-bbush-get-to (task-manager) + ((skill uint64 :offset-assert 240) + ) + :method-count-assert 33 + :size-assert #xf8 + :flag-assert #x21008000f8 + (:methods + (task-manager-ctywide-bbush-get-to-method-32 () none) ;; 32 + ) + (:state-methods + active ;; 15 + ) + ) +|# + +#| +(deftype ctyn-lamp (process-focusable) + () + :method-count-assert 32 + :size-assert #xd0 + :flag-assert #x20005000d0 + (:methods + (ctyn-lamp-method-30 () none) ;; 30 ;; (ctyn-lamp-method-30 (_type_) none 30) + (ctyn-lamp-method-31 () none) ;; 31 + ) + (:state-methods + idle ;; 28, old: (die () _type_ :state 28) + die ;; 29, old: (ctyn-lamp-method-29 (_type_) none 29) + ) + ) +|# + +#| +(deftype fac-lowrez-move (structure) + ((light light-state :inline :offset-assert 0) + (roty float :offset-assert 8) + (rotz float :offset-assert 12) + (rot-bob float :offset-assert 16) + (wobble float :offset-assert 20) + (bob float :offset-assert 24) + ) + :method-count-assert 9 + :size-assert #x1c + :flag-assert #x90000001c + ) +|# + +#| +(deftype fac-lorez (process-drawable) + ((move-info fac-lowrez-move :inline :offset-assert 200) + ) + :method-count-assert 21 + :size-assert #xe4 + :flag-assert #x15007000e4 + (:state-methods + idle ;; 20 + ) + ) +|# + +#| +(deftype flitter-spawner (process-drawable) + ((root basic :offset-assert 124) + (actor-group uint32 :offset-assert 200) + (actor-group-count int32 :offset-assert 204) + (spawner basic :offset-assert 208) + (desired-spawn-count int32 :offset-assert 212) + (spawn-times basic :offset-assert 216) + (last-seen-times basic :offset-assert 220) + ) + :method-count-assert 22 + :size-assert #xe4 + :flag-assert #x16007000e4 + (:methods + (flitter-spawner-method-21 () none) ;; 21 + ) + (:state-methods + active ;; 20 + ) + ) +|# + +#| +(deftype flitter-point (process-hidden) + () + :method-count-assert 15 + :size-assert #x80 + :flag-assert #xf00000080 + ) +|# + +#| +(deftype board-score-hud (hud-goal) + () + :method-count-assert 27 + :size-assert #xac4 + :flag-assert #x1b0a500ac4 + ) +|# + +#| +(deftype task-manager-bbush-board (task-manager) + ((score float :offset-assert 240) + (challenge-done basic :offset-assert 244) + (hud-score uint64 :offset-assert 248) + (hud-goal uint64 :offset-assert 256) + (game-score uint8 :offset-assert 264) + (new-high-score basic :offset-assert 268) + (goal-cup uint8 :offset-assert 272) + (last-cup uint8 :offset-assert 273) + (roll-back-task? basic :offset-assert 276) + ) + :method-count-assert 35 + :size-assert #x118 + :flag-assert #x2300a00118 + (:methods + (task-manager-bbush-board-method-32 () none) ;; 32 + (task-manager-bbush-board-method-33 () none) ;; 33 + (task-manager-bbush-board-method-34 () none) ;; 34 + ) + (:state-methods + active ;; 15 + resolution ;; 17 + ) + ) +|# + +#| +(deftype mh-tower-smoke-cty (process-drawable) + () + :method-count-assert 22 + :size-assert #xc8 + :flag-assert #x16005000c8 + (:state-methods + idle ;; 20 + die ;; 21 + ) + ) +|# + +;; (define-extern security-wall-child-init-by-other function) +;; (define-extern spawn-security-wall function) +;; (define-extern parking-spot-spawn function) +;; (define-extern *propa-sounds* array) ;; (array string) +;; (define-extern *propa-sounds-class-3* array) ;; (array string) +;; (define-extern *propa-sounds-class-2* array) ;; (array string) +;; (define-extern *propa-sounds-class-1* array) ;; (array string) +;; (define-extern *propa-sounds-metalheads* array) ;; (array string) +;; (define-extern *propa-sounds-baron-construction* array) ;; (array string) +;; (define-extern propa-pu->knocked-type function) ;; (function penetrate knocked-type) +;; (define-extern *city-burning-bush-get-on-info* array) +;; (define-extern *ctyn-lamp-exploder-params* joint-exploder-static-params) ;; joint-exploder-static-params + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; squad-control ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; vehicle-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype vehicle-info (structure) + ((handle-by-vehicle-type UNKNOWN 44 :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x160 + :flag-assert #x900000160 + ) +|# + +#| +(deftype vehicle-lookup-info (structure) + ((turn-radius meters :offset-assert 0) + (throttle-turning float :offset-assert 4) + (throttle-straight float :offset-assert 8) + ) + :method-count-assert 9 + :size-assert #xc + :flag-assert #x90000000c + ) +|# + +#| +(deftype vehicle-control-point (structure) + ((local-pos vector :inline :offset-assert 0) + (normal vector :inline :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x20 + :flag-assert #x900000020 + ) +|# + +#| +(deftype vehicle-attach-point (structure) + ((local-pos vector :inline :offset-assert 0) + (rot vector :inline :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x20 + :flag-assert #x900000020 + ) +|# + +#| +(deftype vehicle-wheel-info (structure) + ((local-pos vector :inline :offset-assert 0) + (flags uint64 :offset-assert 16) + (callback basic :offset-assert 24) + (inertia float :offset-assert 28) + (radius float :offset-assert 32) + (susp-arm-length float :offset-assert 36) + (steer-arm-length float :offset-assert 40) + (scale float :offset-assert 44) + (travel float :offset-assert 48) + (probe-y-offset float :offset-assert 52) + (width float :offset-assert 56) + (suspension-spring float :offset-assert 60) + (suspension-damping float :offset-assert 64) + (forward-grip float :offset-assert 68) + (side-grip float :offset-assert 72) + (max-brake-torque float :offset-assert 76) + (camber float :offset-assert 80) + (settle-pos float :offset-assert 84) + (probe-radius float :offset-assert 88) + (tread-texture basic :offset-assert 92) + (tread-tid uint32 :offset-assert 96) + ) + :method-count-assert 9 + :size-assert #x64 + :flag-assert #x900000064 + ) +|# + +#| +(deftype vehicle-engine-info (structure) + ((max-torque float :offset-assert 0) + (inertia float :offset-assert 4) + (drag float :offset-assert 8) + (idle-rpm float :offset-assert 12) + (clutch-min-rpm float :offset-assert 16) + (clutch-max-rpm float :offset-assert 20) + (min-rpm float :offset-assert 24) + (max-rpm float :offset-assert 28) + (peak-torque-rpm float :offset-assert 32) + (powerband-width-rpm float :offset-assert 36) + ) + :method-count-assert 9 + :size-assert #x28 + :flag-assert #x900000028 + ) +|# + +#| +(deftype vehicle-transmission-info (structure) + ((inertia float :offset-assert 0) + (upshift-rpm float :offset-assert 4) + (downshift-rpm float :offset-assert 8) + (final-drive-ratio float :offset-assert 12) + (gear-ratio-array UNKNOWN 8 :offset-assert 16) + (gear-count int8 :offset-assert 48) + ) + :method-count-assert 9 + :size-assert #x31 + :flag-assert #x900000031 + ) +|# + +#| +(deftype vehicle-handling-info (structure) + ((max-engine-thrust meters :offset-assert 0) + (inv-max-engine-thrust float :offset-assert 4) + (engine-response-rate float :offset-assert 8) + (engine-intake-factor float :offset-assert 12) + (brake-factor float :offset-assert 16) + (turbo-boost-factor float :offset-assert 20) + (turbo-boost-duration uint16 :offset-assert 24) + (max-xz-speed meters :offset-assert 28) + (player-turn-anim-bias float :offset-assert 32) + (player-turn-anim-min float :offset-assert 36) + (player-turn-anim-max float :offset-assert 40) + (pilot-x-accel-factor float :offset-assert 44) + (pilot-y-accel-factor float :offset-assert 48) + (pilot-z-accel-factor float :offset-assert 52) + (ground-probe-distance meters :offset-assert 56) + (ground-probe-offset meters :offset-assert 60) + (cos-ground-effect-angle float :offset-assert 64) + (spring-lift-factor float :offset-assert 68) + (air-steering-factor float :offset-assert 72) + (air-drag-factor float :offset-assert 76) + (steering-fin-angle float :offset-assert 80) + (steering-thruster-factor float :offset-assert 84) + (steering-thruster-max-gain float :offset-assert 88) + (steering-thruster-half-gain-speed meters :offset-assert 92) + (tire-steering-angle float :offset-assert 96) + (tire-steering-speed-factor float :offset-assert 100) + (tire-steering-speed-bias float :offset-assert 104) + (ackermann-factor float :offset-assert 108) + (tire-friction-factor float :offset-assert 112) + (tire-static-friction float :offset-assert 116) + (tire-static-friction-speed meters :offset-assert 120) + (tire-dynamic-friction float :offset-assert 124) + (tire-dynamic-friction-speed meters :offset-assert 128) + (tire-inv-max-friction-speed float :offset-assert 132) + (airfoil-factor float :offset-assert 136) + (drag-force-factor float :offset-assert 140) + (rolling-resistance float :offset-assert 144) + (speed-scrubbing-drag float :offset-assert 148) + (speed-limiting-drag float :offset-assert 152) + (pitch-control-factor float :offset-assert 156) + (roll-control-factor float :offset-assert 160) + (roll-angle float :offset-assert 164) + (jump-thrust-factor float :offset-assert 168) + (buoyancy-factor float :offset-assert 172) + (water-drag-factor float :offset-assert 176) + (player-weight float :offset-assert 180) + (player-shift-x meters :offset-assert 184) + (player-shift-z meters :offset-assert 188) + (air-roll-torque float :offset-assert 192) + (air-pitch-torque float :offset-assert 196) + (air-angular-damping float :offset-assert 200) + (hop-turn-torque float :offset-assert 204) + (ground-torque-scale float :offset-assert 208) + (ai-steering-factor float :offset-assert 212) + (ai-throttle-factor float :offset-assert 216) + ) + :method-count-assert 9 + :size-assert #xdc + :flag-assert #x9000000dc + ) +|# + +#| +(deftype vehicle-physics-model-info (structure) + ((lift-thruster-count int8 :offset-assert 0) + (roll-thruster-count int8 :offset-assert 1) + (stabilizer-count int8 :offset-assert 2) + (inv-lift-thruster-count float :offset-assert 4) + (lift-thruster-array UNKNOWN 4 :offset-assert 16) + (roll-thruster-array UNKNOWN 2 :offset-assert 144) + (stabilizer-array UNKNOWN 6 :offset-assert 208) + (engine-thrust-local-pos vector :inline :offset-assert 400) + (brake-local-pos vector :inline :offset-assert 416) + (wheel-count int8 :offset-assert 432) + (drive-wheel-count int8 :offset-assert 433) + (front-wheel vehicle-wheel-info :inline :offset-assert 448) + (rear-wheel vehicle-wheel-info :inline :offset-assert 560) + ) + :method-count-assert 9 + :size-assert #x294 + :flag-assert #x900000294 + ) +|# + +#| +(deftype vehicle-camera-info (structure) + ((string-min-height meters :offset-assert 0) + (string-max-height meters :offset-assert 4) + (string-min-length meters :offset-assert 8) + (string-max-length meters :offset-assert 12) + (min-fov float :offset-assert 16) + (max-fov float :offset-assert 20) + (head-offset float :offset-assert 24) + (foot-offset float :offset-assert 28) + (normal-max-angle-offset float :offset-assert 32) + (air-max-angle-offset float :offset-assert 36) + (max-lookaround-speed float :offset-assert 40) + (look-pos-array UNKNOWN 4 :offset-assert 48) + (look-front vector :inline :offset-assert 48) + (look-left vector :inline :offset-assert 64) + (look-right vector :inline :offset-assert 80) + (look-rear vector :inline :offset-assert 96) + ) + :method-count-assert 9 + :size-assert #x70 + :flag-assert #x900000070 + ) +|# + +#| +(deftype vehicle-sound-loop-info (structure) + ((sound uint128 :offset-assert 0) + (speed float :offset-assert 16) + (min-speed float :offset-assert 20) + (max-speed float :offset-assert 24) + (pitch-offset float :offset-assert 28) + (pitch-scale float :offset-assert 32) + (min-pitch float :offset-assert 36) + (max-pitch float :offset-assert 40) + ) + :method-count-assert 9 + :size-assert #x2c + :flag-assert #x90000002c + ) +|# + +#| +(deftype vehicle-sound-info (structure) + ((engine-pitch-scale float :offset-assert 0) + (engine-pitch-offset float :offset-assert 4) + (engine-pitch-mod-amp float :offset-assert 8) + (engine-sound-select int8 :offset-assert 12) + (thrust-sound uint8 16 :offset-assert 16) ;; field uses ~g print with a quadword load! + (scrape-sound uint8 16 :offset-assert 32) ;; field uses ~g print with a quadword load! + (glance-sound uint8 16 :offset-assert 48) ;; field uses ~g print with a quadword load! + (impact-sound uint8 16 :offset-assert 64) ;; field uses ~g print with a quadword load! + (impact2-sound uint8 16 :offset-assert 80) ;; field uses ~g print with a quadword load! + (explode-sound uint8 16 :offset-assert 96) ;; field uses ~g print with a quadword load! + (explode2-sound uint8 16 :offset-assert 112) ;; field uses ~g print with a quadword load! + (extra-sound uint8 16 :offset-assert 128) ;; field uses ~g print with a quadword load! + (water-sound uint8 16 :offset-assert 144) ;; field uses ~g print with a quadword load! + (jump-sound uint8 16 :offset-assert 160) ;; field uses ~g print with a quadword load! + (turbo-sound uint8 16 :offset-assert 176) ;; field uses ~g print with a quadword load! + (damage-sound uint8 16 :offset-assert 192) ;; field uses ~g print with a quadword load! + (bank-replace basic :offset-assert 208) + (idle-rpm float :offset-assert 212) + (idle-pitch-scale float :offset-assert 216) + (idle-crossover-rpm float :offset-assert 220) + (engine-rpm float :offset-assert 224) + (engine-crossover-rpm float :offset-assert 228) + (start-sound uint8 16 :offset-assert 240) ;; field uses ~g print with a quadword load! + (stop-sound uint8 16 :offset-assert 256) ;; field uses ~g print with a quadword load! + (idle-sound uint8 16 :offset-assert 272) ;; field uses ~g print with a quadword load! + (engine-sound uint8 16 :offset-assert 288) ;; field uses ~g print with a quadword load! + (engine-load-sound uint8 16 :offset-assert 304) ;; field uses ~g print with a quadword load! + (susp-creak-sound uint8 16 :offset-assert 320) ;; field uses ~g print with a quadword load! + (susp-bottom-out-sound uint8 16 :offset-assert 336) ;; field uses ~g print with a quadword load! + (susp-speed-threshold float :offset-assert 352) + (tire-roll-sounds UNKNOWN 4 :offset-assert 368) + (tire-slide-sounds UNKNOWN 2 :offset-assert 560) + (tire-roll-hum-sound vehicle-sound-loop-info :inline :offset-assert 368) + (tire-roll-dirt-sound vehicle-sound-loop-info :inline :offset-assert 416) + (tire-roll-sand-sound vehicle-sound-loop-info :inline :offset-assert 464) + (tire-roll-knobby-sound vehicle-sound-loop-info :inline :offset-assert 512) + (tire-slide-road-sound vehicle-sound-loop-info :inline :offset-assert 560) + (tire-slide-dirt-sound vehicle-sound-loop-info :inline :offset-assert 608) + ) + :method-count-assert 9 + :size-assert #x290 + :flag-assert #x900000290 + ) +|# + +#| +(deftype vehicle-particle-info (structure) + ((headlight-count int8 :offset-assert 0) + (taillight-count int8 :offset-assert 1) + (thruster-flame-width meters :offset-assert 4) + (thruster-flame-length meters :offset-assert 8) + (thruster-local-pos UNKNOWN 2 :offset-assert 16) + (exhaust-local-pos UNKNOWN 2 :offset-assert 48) + (exhaust-local-dir UNKNOWN 2 :offset-assert 80) + (smoke-local-pos UNKNOWN 2 :offset-assert 112) + (smoke-local-vel UNKNOWN 2 :offset-assert 144) + (headlight-local-pos UNKNOWN 3 :offset-assert 176) + (taillight-local-pos UNKNOWN 2 :offset-assert 224) + ) + :method-count-assert 9 + :size-assert #x100 + :flag-assert #x900000100 + ) +|# + +#| +(deftype vehicle-section-info (structure) + ((damage-seg-array uint64 3 :offset-assert 0) ;; guessed by decompiler + (damage-seg-count int8 :offset-assert 24) + ) + :method-count-assert 9 + :size-assert #x19 + :flag-assert #x900000019 + ) +|# + +#| +(deftype vehicle-damage-info (structure) + ((inv-toughness-factor float :offset-assert 0) + (hit-points float :offset-assert 4) + (inv-hit-points float :offset-assert 8) + (hit-threshold float :offset-assert 12) + (hit-small float :offset-assert 16) + (hit-big float :offset-assert 20) + (hit-deadly float :offset-assert 24) + (impact-damage-factor float :offset-assert 28) + (section-count int8 :offset-assert 32) + (section-array UNKNOWN 4 :offset-assert 40) + (section-bike-front vehicle-section-info :inline :offset-assert 40) + (section-bike-rear vehicle-section-info :inline :offset-assert 72) + (section-car-front-left vehicle-section-info :inline :offset-assert 40) + (section-car-rear-left vehicle-section-info :inline :offset-assert 72) + (section-car-front-right vehicle-section-info :inline :offset-assert 104) + (section-car-rear-right vehicle-section-info :inline :offset-assert 136) + ) + :method-count-assert 9 + :size-assert #xa8 + :flag-assert #x9000000a8 + ) +|# + +#| +(deftype vehicle-setup-info (structure) + ((settle-height float :offset-assert 0) + (settle-rot-x float :offset-assert 4) + (shadow-bot-clip float :offset-assert 8) + (shadow-locus-dist float :offset-assert 12) + (look-select uint8 :offset-assert 16) + (color-option-count int8 :offset-assert 17) + (color-option-select int8 :offset-assert 18) + (gun-yaw-min float :offset-assert 24) + (gun-yaw-max float :offset-assert 28) + (gun-pitch-min float :offset-assert 32) + (gun-pitch-max float :offset-assert 36) + (gun-z-offset float :offset-assert 40) + ) + :method-count-assert 9 + :size-assert #x2c + :flag-assert #x90000002c + ) +|# + +#| +(deftype vehicle-seat-info (structure) + ((data uint8 16 :offset-assert 0) ;; guessed by decompiler + (position vector :inline :offset-assert 0) + (pos-x float :offset-assert 0) + (pos-y float :offset-assert 4) + (pos-z float :offset-assert 8) + (angle int16 :offset-assert 12) + (flags uint8 :offset-assert 14) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype vehicle-grab-rail-info (structure) + ((local-pos vector 2 :offset-assert 0) ;; guessed by decompiler + (normal vector :inline :offset-assert 32) + ) + :method-count-assert 9 + :size-assert #x30 + :flag-assert #x900000030 + ) +|# + +#| +(deftype vehicle-rider-info (structure) + ((seat-count int8 :offset-assert 0) + (rider-stance uint8 :offset-assert 1) + (grab-rail-count int8 :offset-assert 2) + (attach-point-count int8 :offset-assert 3) + (grab-rail-array uint32 :offset-assert 4) + (seat-array UNKNOWN 4 :offset-assert 16) + (rider-hand-offset UNKNOWN 2 :offset-assert 80) + (attach-point-array uint32 :offset-assert 112) + ) + :method-count-assert 9 + :size-assert #x74 + :flag-assert #x900000074 + ) +|# + +#| +(deftype vehicle-explosion-info (joint-exploder-static-params) + ((skel skeleton-group :offset-assert 40) ;; guessed by decompiler + (skel-name string :offset-assert 44) ;; guessed by decompiler + (anim int32 :offset-assert 48) + ) + :method-count-assert 9 + :size-assert #x34 + :flag-assert #x900000034 + ) +|# + +#| +(deftype vehicle-particle-common-info (structure) + ((headlight-glow-template sprite-glow-data :offset-assert 28) + (taillight-glow-template sprite-glow-data :offset-assert 32) + (thruster-glow-template sprite-glow-data :offset-assert 36) + ) + :method-count-assert 10 + :size-assert #x28 + :flag-assert #xa00000028 + (:methods + (vehicle-particle-common-info-method-9 () none) ;; 9 + ) + ) +|# + +#| +(deftype rigid-body-vehicle-constants (rigid-body-object-constants) + ((flags uint32 :offset-assert 208) + (object-type uint8 :offset-assert 212) + (guard-type uint8 :offset-assert 213) + (vehicle-type uint8 :offset-assert 214) + (engine vehicle-engine-info :inline :offset-assert 216) + (transmission vehicle-transmission-info :inline :offset-assert 256) + (handling vehicle-handling-info :inline :offset-assert 308) + (target-speed-offset meters :offset-assert 528) + (turning-accel meters :offset-assert 532) + (camera vehicle-camera-info :inline :offset-assert 544) + (sound vehicle-sound-info :inline :offset-assert 656) + (particles vehicle-particle-info :inline :offset-assert 1312) + (damage vehicle-damage-info :inline :offset-assert 1568) + (physics-model vehicle-physics-model-info :inline :offset-assert 1744) + (setup vehicle-setup-info :inline :offset-assert 2404) + (rider vehicle-rider-info :inline :offset-assert 2448) + (explosion vehicle-explosion-info :offset-assert 2564) ;; guessed by decompiler + (explosion-part int32 :offset-assert 2568) + (debris basic :offset-assert 2572) + (name-text uint32 :offset-assert 2576) + (particle-common vehicle-particle-common-info :offset-assert 2580) + ) + :method-count-assert 10 + :size-assert #xa18 + :flag-assert #xa00000a18 + (:methods + (rigid-body-vehicle-constants-method-9 () none) ;; 9 ;; (rigid-body-vehicle-constants-method-9 (_type_) none 9) + ) + ) +|# + +#| +(deftype vehicle-section (structure) + ((damage float :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x4 + :flag-assert #x900000004 + ) +|# + +#| +(deftype vehicle (rigid-body-object) + ((flags vehicle-flag :offset-assert 212) ;; rigid-body-object-flag + (squad basic :offset-assert 300) + (control-hook basic :offset-assert 304) + (controls vehicle-controls :inline :offset-assert 308) + (prev-controls vehicle-controls :inline :offset-assert 332) + (engine-power-factor float :offset-assert 356) + (force-scale float :offset-assert 360) + (target-distance2 meters :offset-assert 364) + (water-flags uint32 :offset-assert 368) + (target-acceleration vector :inline :offset-assert 380) + (impact-pos vector :inline :offset-assert 396) + (impact-local-pos vector :inline :offset-assert 412) + (lin-acceleration vector :inline :offset-assert 428) + (hit-points float :offset-assert 444) + (damage-factor float :offset-assert 448) + (crash-level int8 :offset-assert 452) + (force-level int8 :offset-assert 453) + (traffic-hash-id int8 :offset-assert 454) + (traffic-priority-id int8 :offset-assert 455) + (power-fluctuation-factor float :offset-assert 456) + (power-level float :offset-assert 460) + (overlap-player-counter uint8 :offset-assert 464) + (physics-counter uint8 :offset-assert 465) + (cam-view int8 :offset-assert 466) + (brake-factor float :offset-assert 468) + (cam-speed-interp float :offset-assert 472) + (camera-dist2 float :offset-assert 476) + (player-dist2 float :offset-assert 480) + (bound-radius float :offset-assert 484) + (rider-array handle 4 :offset-assert 492) ;; guessed by decompiler + (impact-proc uint64 :offset-assert 524) + (impact-pat uint32 :offset-assert 532) + (impact-time uint32 :offset-assert 536) + (prev-impact-time uint32 :offset-assert 540) + (sent-attack-time time-frame :offset-assert 544) ;; guessed by decompiler + (air-time time-frame :offset-assert 548) ;; guessed by decompiler + (water-time uint32 :offset-assert 552) + (offscreen-time uint32 :offset-assert 556) + (crash-time time-frame :offset-assert 560) ;; guessed by decompiler + (turbo-boost-time time-frame :offset-assert 564) ;; guessed by decompiler + (player-dismount-time uint32 :offset-assert 568) + (crash-duration uint16 :offset-assert 572) + (turbo-boost-duration uint16 :offset-assert 574) + (turbo-boost-factor float :offset-assert 576) + (crash-impulse float :offset-assert 580) + (water-height float :offset-assert 584) + (lights-factor float :offset-assert 588) + (outgoing-attack-id uint32 :offset-assert 592) + (fog-fade float :offset-assert 596) + (scrape-sound-id sound-id :offset-assert 600) ;; guessed by decompiler + (damage-zap-sound-id sound-id :offset-assert 604) ;; guessed by decompiler + (scrape-sound-envelope float :offset-assert 608) + (exhaust-part-accum basic 2 :offset-assert 612) ;; guessed by decompiler + (smoke-part-accum basic 2 :offset-assert 620) ;; guessed by decompiler + (section-array vehicle-section 4 :offset-assert 628) ;; guessed by decompiler + ) + :method-count-assert 152 + :size-assert #x2b8 + :flag-assert #x98024002b8 + ;; field vehicle-flag is likely a value type. + (:methods + (vehicle-method-56 () none) ;; 56 ;; (vehicle-state-56 () _type_ :state 56) + (vehicle-method-57 () none) ;; 57 ;; (player-control () _type_ :state 57) + (vehicle-method-58 () none) ;; 58 ;; (crash () _type_ :state 58) + (vehicle-method-59 () none) ;; 59 ;; (explode () _type_ :state 59) + (vehicle-method-60 () none) ;; 60 ;; (die () _type_ :state 60) + (vehicle-method-61 () none) ;; 61 ;; (measure-control-parameters () _type_ :state 61) + (vehicle-method-62 () none) ;; 62 ;; (vehicle-method-62 (_type_ float) none 62) + (vehicle-method-63 () none) ;; 63 ;; (vehicle-method-63 (_type_ float) none 63) + (vehicle-method-64 () none) ;; 64 ;; (vehicle-method-64 () none 64) + (vehicle-method-65 () none) ;; 65 ;; (start-jump (_type_) none 65) + (vehicle-method-66 () none) ;; 66 ;; (vehicle-method-66 (_type_) none 66) + (vehicle-method-67 () none) ;; 67 ;; (get-seat-count (_type_) int 67) + (vehicle-method-68 () none) ;; 68 ;; (compute-seat-position (_type_ vector int) none 68) + (vehicle-method-69 () none) ;; 69 ;; (get-rider-in-seat (_type_ int) process 69) + (vehicle-method-70 () none) ;; 70 ;; (vehicle-method-70 (_type_) process 70) + (vehicle-method-71 () none) ;; 71 ;; (put-rider-in-seat (_type_ int process-focusable) none 71) + (vehicle-method-72 () none) ;; 72 ;; (vehicle-method-72 (_type_) uint 72) + (vehicle-method-73 () none) ;; 73 ;; (get-best-seat-for-vehicle (_type_ vector int int) int 73) + (vehicle-method-74 () none) ;; 74 ;; (remove-rider (_type_ process) none 74) + (vehicle-method-75 () none) ;; 75 ;; (vehicle-method-75 (_type_) float 75) + (vehicle-method-76 () none) ;; 76 ;; (vehicle-method-76 (_type_ int uint) none 76) + (vehicle-method-77 () none) ;; 77 ;; (vehicle-method-77 (_type_) none 77) + (vehicle-method-78 () none) ;; 78 ;; (vehicle-method-78 (_type_ int) none 78) + (vehicle-method-79 () none) ;; 79 ;; (vehicle-method-79 (_type_) none 79) + (vehicle-method-80 () none) ;; 80 ;; (vehicle-method-80 (_type_) none 80) + (vehicle-method-81 () none) ;; 81 ;; (vehicle-method-81 (_type_) none 81) + (vehicle-method-82 () none) ;; 82 ;; (vehicle-method-82 (_type_) none 82) + (vehicle-method-83 () none) ;; 83 ;; (vehicle-method-83 (_type_) none 83) + (vehicle-method-84 () none) ;; 84 ;; (draw-thruster (_type_ vector vector float float) none 84) + (vehicle-method-85 () none) ;; 85 ;; (draw-thrusters (_type_) none 85) + (vehicle-method-86 () none) ;; 86 ;; (update-joint-mods (_type_) none 86) + (vehicle-method-87 () none) ;; 87 ;; (vehicle-method-87 (_type_) none 87) + (vehicle-method-88 () none) ;; 88 ;; (vehicle-method-88 (_type_) none 88) + (vehicle-method-89 () none) ;; 89 ;; (vehicle-method-89 (_type_) none 89) + (vehicle-method-90 () none) ;; 90 ;; (vehicle-method-90 (_type_) none 90) + (vehicle-method-91 () none) ;; 91 ;; (vehicle-method-91 (_type_) none 91) + (vehicle-method-92 () none) ;; 92 ;; (vehicle-method-92 (_type_) none 92) + (vehicle-method-93 () none) ;; 93 ;; (vehicle-method-93 (_type_) none 93) + (vehicle-method-94 () none) ;; 94 ;; (vehicle-method-94 (_type_) none 94) + (vehicle-method-95 () none) ;; 95 ;; (vehicle-method-95 (_type_ vector) none 95) + (vehicle-method-96 () none) ;; 96 ;; (vehicle-method-96 (_type_) none 96) + (vehicle-method-97 () none) ;; 97 ;; (vehicle-method-97 (_type_) none 97) + (vehicle-method-98 () none) ;; 98 ;; (vehicle-method-98 (_type_ float) none 98) + (vehicle-method-99 () none) ;; 99 ;; (vehicle-method-99 (_type_ float) none 99) + (vehicle-method-100 () none) ;; 100 ;; (vehicle-method-100 (_type_ float vehicle-physics-work) none 100) + (vehicle-method-101 () none) ;; 101 ;; (vehicle-method-101 (_type_) none 101) + (vehicle-method-102 () none) ;; 102 ;; (shadow-enable (_type_) none 102) + (vehicle-method-103 () none) ;; 103 ;; (shadow-disable (_type_) none 103) + (vehicle-method-104 () none) ;; 104 ;; (vehicle-method-104 (_type_) none 104) + (vehicle-method-105 () none) ;; 105 ;; (vehicle-method-105 (_type_) symbol 105) + (vehicle-method-106 () none) ;; 106 ;; (vehicle-method-106 (_type_) none 106) + (vehicle-method-107 () none) ;; 107 ;; (vehicle-method-107 (_type_) none 107) + (vehicle-method-108 () none) ;; 108 ;; (vehicle-method-108 (_type_) none 108) + (vehicle-method-109 () none) ;; 109 ;; (vehicle-method-109 (_type_) none 109) + (vehicle-method-110 () none) ;; 110 ;; (vehicle-method-110 (_type_) none 110) + (vehicle-method-111 () none) ;; 111 ;; (vehicle-method-111 (_type_ object target) none 111) + (vehicle-method-112 () none) ;; 112 ;; (decrease-traffic-alert-level (_type_ int) int 112) + (vehicle-method-113 () none) ;; 113 ;; (vehicle-method-113 (_type_) none 113) + (vehicle-method-114 () none) ;; 114 ;; (vehicle-method-114 (_type_) none 114) + (vehicle-method-115 () none) ;; 115 ;; (vehicle-method-115 (_type_ vector) none 115) + (vehicle-method-116 () none) ;; 116 ;; (vehicle-method-116 (_type_ (pointer vehicle-controls)) none 116) + (vehicle-method-117 () none) ;; 117 ;; (vehicle-method-117 (_type_ vector int int) none 117) + (vehicle-method-118 () none) ;; 118 ;; (vehicle-method-118 (_type_ int) none 118) + (vehicle-method-119 () none) ;; 119 ;; (vehicle-method-119 (_type_) none 119) + (vehicle-method-120 () none) ;; 120 ;; (vehicle-method-120 (_type_) none 120) + (vehicle-method-121 () none) ;; 121 ;; (vehicle-method-121 (_type_) none 121) + (vehicle-method-122 () none) ;; 122 ;; (vehicle-method-122 (_type_) none 122) + (vehicle-method-123 () none) ;; 123 ;; (vehicle-method-123 (_type_) none 123) + (vehicle-method-124 () none) ;; 124 ;; (vehicle-method-124 (_type_) none 124) + (vehicle-method-125 () none) ;; 125 ;; (vehicle-method-125 (_type_ float) none 125) + (vehicle-method-126 () none) ;; 126 ;; (vehicle-method-126 (_type_ float) none 126) + (vehicle-method-127 () none) ;; 127 ;; (vehicle-method-127 (_type_) none 127) + (vehicle-method-128 () none) ;; 128 ;; (vehicle-method-128 (_type_) none 128) + (vehicle-method-129 () none) ;; 129 ;; (vehicle-method-129 (_type_) none 129) + (vehicle-method-130 () none) ;; 130 ;; (vehicle-method-130 (_type_ traffic-object-spawn-params) none 130) + (vehicle-method-131 () none) ;; 131 ;; (vehicle-method-131 (_type_) none 131) + (vehicle-method-132 () none) ;; 132 ;; (vehicle-method-132 (_type_) none 132) + (vehicle-method-133 () none) ;; 133 ;; (check-player-get-on (_type_) none 133) + (vehicle-method-134 () none) ;; 134 ;; (vehicle-method-134 (_type_ process) none 134) + (vehicle-method-135 () none) ;; 135 ;; (vehicle-method-135 (_type_ traffic-object-spawn-params) none 135) + (vehicle-method-136 () none) ;; 136 ;; (vehicle-method-136 (_type_ traffic-object-spawn-params) none 136) + (vehicle-method-137 () none) ;; 137 ;; (vehicle-method-137 (_type_ traffic-object-spawn-params) none 137) + (vehicle-method-138 () none) ;; 138 ;; (vehicle-method-138 (_type_) none 138) + (vehicle-method-139 () none) ;; 139 ;; (vehicle-method-139 (_type_) none 139) + (vehicle-method-140 () none) ;; 140 ;; (vehicle-method-140 (_type_) none 140) + (vehicle-method-141 () none) ;; 141 ;; (vehicle-method-141 (_type_) none 141) + (vehicle-method-142 () none) ;; 142 ;; (vehicle-method-142 (_type_) none 142) + (vehicle-method-143 () none) ;; 143 ;; (vehicle-method-143 (_type_) none 143) + (vehicle-method-144 () none) ;; 144 + (vehicle-method-145 () none) ;; 145 + (vehicle-method-146 () none) ;; 146 + (vehicle-method-147 () none) ;; 147 + (vehicle-method-148 () none) ;; 148 + (vehicle-method-149 () none) ;; 149 + (vehicle-method-150 () none) ;; 150 + (vehicle-method-151 () none) ;; 151 + ) + ) +|# + +#| +(deftype vehicle-probe-work (structure) + ((local-pos vector :inline :offset-assert 0) + (local-normal vector :inline :offset-assert 16) + (world-pos vector :inline :offset-assert 32) + (world-normal vector :inline :offset-assert 48) + (probe-pos vector :inline :offset-assert 64) + (ground-pos vector :inline :offset-assert 80) + (ground-normal vector :inline :offset-assert 96) + (velocity vector :inline :offset-assert 112) + (tire-force vector :inline :offset-assert 128) + (wheel-axis vector :inline :offset-assert 144) + ) + :method-count-assert 9 + :size-assert #xa0 + :flag-assert #x9000000a0 + ) +|# + +#| +(deftype vehicle-physics-work (structure) + ((mat matrix :inline :offset-assert 0) + (force vector :inline :offset-assert 64) + (velocity vector :inline :offset-assert 80) + (world-pos vector :inline :offset-assert 96) + (world-normal vector :inline :offset-assert 112) + (local-pos vector :inline :offset-assert 128) + (steering-axis vector :inline :offset-assert 144) + (lift-dir vector :inline :offset-assert 160) + (normal vector :inline :offset-assert 176) + (tmp vector :inline :offset-assert 192) + (p-body vector :inline :offset-assert 208) + (axis vector :inline :offset-assert 224) + (dir vector :inline :offset-assert 240) + (ground-normal vector :inline :offset-assert 256) + (impulse float :offset-assert 272) + (vel-dot-norm float :offset-assert 276) + (friction-coef float :offset-assert 280) + (speed-factor float :offset-assert 284) + (probe-work-array vehicle-probe-work 4 :offset-assert 288) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x3a0 + :flag-assert #x9000003a0 + ) +|# + +#| +(deftype vehicle-draw-thruster-params (structure) + ((quat quaternion :inline :offset-assert 0) + (trans vector :inline :offset-assert 16) + (thrust float :offset-assert 32) + (width float :offset-assert 36) + (length float :offset-assert 40) + (fog-fade float :offset-assert 44) + ) + :method-count-assert 9 + :size-assert #x30 + :flag-assert #x900000030 + ) +|# + +;; (deftype debug-vehicle-work (basic) +;; () +;; :flag-assert #x900000070 +;; ) + +;; (define-extern meters-per-sec->mph function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; vehicle ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *debug-vehicle-work* debug-vehicle-work) ;; debug-vehicle-work +;; (define-extern *vehicle-shadow-control* shadow-control) ;; shadow-control +;; (define-extern *vehicle-shadow-control-disabled* shadow-control) ;; shadow-control +;; (define-extern vehicle-event-handler function) ;; (function process int symbol event-message-block object :behavior vehicle) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; mh-squad-control ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *default-mh-squad-member-settings* object) +;; (define-extern *war-mh-squad-member-settings* object) +;; (define-extern set-mh-primary-target function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; templed-obs ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype tpl-break-bridge-panel-info (structure) + ((start-time uint64 :offset-assert 0) + (grace uint64 :offset-assert 8) + (fall-rate float :offset-assert 16) + (fall-rate-realtime float :offset-assert 20) + (time-to-terminal-velocity uint64 :offset-assert 24) + (tumble-axis vector :inline :offset-assert 32) + (tumble-rate-norm float :offset-assert 48) + (tumble-rate-slow float :offset-assert 52) + (detonate-altitude float :offset-assert 56) + ) + :method-count-assert 9 + :size-assert #x3c + :flag-assert #x90000003c + ) +|# + +#| +(deftype tpl-break-bridge (process-drawable) + ((panel-jmods UNKNOWN 21 :offset-assert 208) + (had-particle-spawned UNKNOWN 21 :offset-assert 1552) + (panel-quashed UNKNOWN 21 :offset-assert 1636) + (spool-sound-id uint32 :offset-assert 1720) + ) + :method-count-assert 26 + :size-assert #x6bc + :flag-assert #x1a064006bc + (:methods + (tpl-break-bridge-method-23 () none) ;; 23 + (tpl-break-bridge-method-24 () none) ;; 24 + (tpl-break-bridge-method-25 () none) ;; 25 + ) + (:state-methods + idle ;; 20 + collapsing ;; 21 + done ;; 22 + ) + ) +|# + +#| +(deftype task-manager-temple-tests-stupid-bridge (task-manager) + () + :method-count-assert 32 + :size-assert #xf0 + :flag-assert #x20007000f0 + ) +|# + +;; (define-extern *tpl-bbridge-array* array) +;; (define-extern *tpl-bridge-debris-params-arr* array) +;; (define-extern spt-birth-func-brightness-part-temple-bridge-break-dust function) +;; (define-extern tpl-bbridge-panel function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; vehicle-physics ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; volcano-part ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern spt-func-part-volcano-embers function) +;; (define-extern spt-func-birth-on-pop function) +;; (define-extern *lava-particle-list* array) +;; (define-extern birth-func-texture-group-lava function) +;; (define-extern spt-func-part-lava-ball-spout-puff function) +;; (define-extern spt-birth-func-brightness-part-volcano-leaf-fall function) +;; (define-extern spt-birth-func-part-volcano-leaf-fall function) +;; (define-extern spt-volcano-check-ground-lie-flat function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; vehicle-manager ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype vehicle-manager (process) + ((name basic :offset-assert 0) + (mask process-mask :offset-assert 4) + (clock basic :offset-assert 8) + (parent uint32 :offset-assert 12) + (brother uint32 :offset-assert 16) + (child uint32 :offset-assert 20) + (ppointer uint32 :offset-assert 24) + (self basic :offset-assert 28) + (pool basic :offset-assert 32) + (status basic :offset-assert 36) + (pid int32 :offset-assert 40) + (main-thread basic :offset-assert 44) + (top-thread basic :offset-assert 48) + (entity basic :offset-assert 52) + (level basic :offset-assert 56) + (state basic :offset-assert 60) + (prev-state basic :offset-assert 64) + (next-state basic :offset-assert 68) + (state-stack basic :offset-assert 72) + (trans-hook basic :offset-assert 76) + (post-hook basic :offset-assert 80) + (event-hook basic :offset-assert 84) + (allocated-length int32 :offset-assert 88) + (heap-base uint32 :offset-assert 92) + (heap-top uint32 :offset-assert 96) + (heap-cur uint32 :offset-assert 100) + (stack-frame-top basic :offset-assert 104) + (heap kheap :inline :offset-assert 92) + (connection-list connectable :inline :offset-assert 108) + (stack UNKNOWN :dynamic :offset-assert 124) + ) + :method-count-assert 18 + :size-assert #x80 + :flag-assert #x1200000080 + (:methods + (vehicle-manager-method-16 () none) ;; 16 + (vehicle-manager-method-17 () none) ;; 17 + ) + (:state-methods + idle ;; 14 + active ;; 15 + ) + ) +|# + +;; (define-extern *vehicle-rigid-body-queue* object) +;; (define-extern *vehicle-info* object) +;; (define-extern vehicle-entity-hack function) +;; (define-extern vehicle-manager-event-handler function) +;; (define-extern vehicle-manager-init-by-other function) +;; (define-extern vehicle-manager-start function) +;; (define-extern vehicle-manager-kill function) +;; (define-extern vehicle-init-by-other function) ;; (function traffic-object-spawn-params none :behavior vehicle) +;; (define-extern vehicle-spawn-hack function) +;; (define-extern vehicle-spawn function) ;; (function process type traffic-object-spawn-params process-drawable) +;; (define-extern type-from-vehicle-type function) ;; (function vehicle-type type) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; vehicle-hud ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype hud-vehicle-health (hud) + () + :method-count-assert 27 + :size-assert #xac4 + :flag-assert #x1b0a500ac4 + ) +|# + +;; (define-extern hud-vehicle-health-spawn function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; target-pilot ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *pilot-mods* surface) ;; surface +;; (define-extern target-pilot-handler function) ;; (function process int symbol event-message-block object :behavior target) +;; (define-extern target-pilot-pidax-enter function) ;; (function object :behavior target) +;; (define-extern target-pilot-pidax-exit function) ;; (function object :behavior target) +;; (define-extern target-pilot-exit function) ;; (function object :behavior target) +;; (define-extern target-pilot-init function) ;; (function handle symbol object :behavior target) +;; (define-extern pilot-on-ground? function) ;; (function symbol :behavior target) +;; (define-extern target-pilot-post function) ;; (function none :behavior target) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; vehicle-rider ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype vehicle-rider (process-focusable) + ((squad basic :offset-assert 208) + (flags uint8 :offset-assert 212) + (riding-anim int32 :offset-assert 216) + (anim-t float :offset-assert 220) + (anim-speed float :offset-assert 224) + (seat-index int8 :offset-assert 228) + ) + :method-count-assert 37 + :size-assert #xe5 + :flag-assert #x25007000e5 + (:methods + (vehicle-rider-method-32 () none) ;; 32 ;; (vehicle-rider-method-32 (_type_ traffic-object-spawn-params) none 32) + (vehicle-rider-method-33 () none) ;; 33 ;; (vehicle-rider-method-33 (_type_) none 33) + (vehicle-rider-method-34 () none) ;; 34 ;; (vehicle-rider-method-34 (_type_) none 34) + (vehicle-rider-method-35 () none) ;; 35 ;; (vehicle-rider-method-35 (_type_) none 35) + (vehicle-rider-method-36 () none) ;; 36 + ) + (:state-methods + active ;; 29, old: (taunt () _type_ :state 29) + taunt ;; 30, old: (got-passed () _type_ :state 30) + got-passed ;; 31, old: (initialize-collision (_type_) none 31) + inactive ;; 28, old: (active () _type_ :state 28) + ) + ) +|# + +#| +(deftype citizen-norm-rider (vehicle-rider) + () + :method-count-assert 37 + :size-assert #xe5 + :flag-assert #x25007000e5 + ) +|# + +;; (define-extern vehicle-rider-event-handler function) ;; (function process int symbol event-message-block object :behavior vehicle-rider) +;; (define-extern vehicle-rider-init-by-other function) ;; (function traffic-object-spawn-params none :behavior vehicle-rider) +;; (define-extern vehicle-rider-spawn function) ;; (function vehicle type traffic-object-spawn-params process) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; hvehicle ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; glider-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype glider-thermal-info (structure) + ((pos vector :inline :offset-assert 0) + (r float :offset-assert 12) + (hheight float :offset-assert 16) + (windspeed float :offset-assert 20) + (curpos float :offset-assert 24) + (thermal-time uint64 :offset-assert 32) + ) + :method-count-assert 10 + :size-assert #x28 + :flag-assert #xa00000028 + (:methods + (glider-thermal-info-method-9 () none) ;; 9 + ) + ) +|# + +#| +(deftype glider-ring-info (structure) + ((pos vector :inline :offset-assert 0) + (forw vector :inline :offset-assert 16) + (boost float :offset-assert 32) + (dist float :offset-assert 36) + (xdist float :offset-assert 40) + (ydist float :offset-assert 44) + (toff uint64 :offset-assert 48) + (speedmod float :offset-assert 56) + (shootable basic :offset-assert 60) + (lastring basic :offset-assert 64) + (checkpoint uint8 :offset-assert 68) + ) + :method-count-assert 10 + :size-assert #x45 + :flag-assert #xa00000045 + (:methods + (glider-ring-info-method-9 () none) ;; 9 + ) + ) +|# + +#| +(deftype h-glider (hvehicle) + ((minalt float :offset-assert 944) + (curalt float :offset-assert 948) + (maxalt float :offset-assert 952) + (rollerr float :offset-assert 956) + (pitcherr float :offset-assert 960) + (alterr float :offset-assert 964) + (rolling basic :offset-assert 968) + (speed float :offset-assert 972) + (poierr float :offset-assert 976) + (poipos float :offset-assert 980) + (poivel float :offset-assert 984) + (deathspin basic :offset-assert 988) + (in-thermal basic :offset-assert 992) + (in-thermal-time uint64 :offset-assert 1000) + (min-thermal-time uint64 :offset-assert 1008) + (thermal-start-time uint64 :offset-assert 1016) + (thermal-strength float :offset-assert 1024) + (deathrot vector :inline :offset-assert 1040) + (last-ring-pos vector :inline :offset-assert 1056) + (progression-plane vector :inline :offset-assert 1072) + (birth uint64 :offset-assert 1088) + (stop-time uint64 :offset-assert 1096) + (pitch-down-time uint64 :offset-assert 1104) + (pitch-side-time uint64 :offset-assert 1112) + (ambient-wind-sound-time uint64 :offset-assert 1120) + (thermal-sound-time uint64 :offset-assert 1128) + (updraft-vel float :offset-assert 1136) + (updraft-acc float :offset-assert 1140) + (updraft-err float :offset-assert 1144) + (rel-up-vel float :offset-assert 1148) + (flap-pos float :offset-assert 1152) + (amb-sound uint32 :offset-assert 1156) + (amb-sound-playing basic :offset-assert 1160) + (full-speed-boost? basic :offset-assert 1164) + (lost-lift? basic :offset-assert 1168) + (lost-lift-time uint64 :offset-assert 1176) + (right-rudder joint-mod-rotate-local :inline :offset-assert 1184) + (left-rudder joint-mod-rotate-local :inline :offset-assert 1216) + (right-alerone joint-mod-rotate-local :inline :offset-assert 1248) + (left-alerone joint-mod-rotate-local :inline :offset-assert 1280) + (flap UNKNOWN 6 :offset-assert 1312) + ) + :method-count-assert 163 + :size-assert #x6a0 + :flag-assert #xa3062006a0 + (:methods + (h-glider-method-162 () none) ;; 162 + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; glider-ring ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype light-trail-tracker-glider-ring (light-trail-tracker) + () + :method-count-assert 21 + :size-assert #xac + :flag-assert #x15003000ac + ) +|# + +#| +(deftype glider-prim (simple-prim) + ((far? basic :offset-assert 204) + ) + :method-count-assert 26 + :size-assert #xd0 + :flag-assert #x1a005000d0 + ) +|# + +#| +(deftype glider-ring (process-drawable) + ((touch-time uint64 :offset-assert 200) + (ring-prim uint64 :offset-assert 208) + (minimap connection-minimap :offset-assert 216) + (player-got basic :offset-assert 220) + (persistent basic :offset-assert 224) + (id int8 :offset-assert 228) + (boost float :offset-assert 232) + (plane vector :inline :offset-assert 240) + (save-pos vector :inline :offset-assert 256) + (up vector :inline :offset-assert 272) + (right vector :inline :offset-assert 288) + (part-track uint64 :offset-assert 304) + (mat matrix :inline :offset-assert 320) + (xdist float :offset-assert 384) + (ydist float :offset-assert 388) + (toff uint64 :offset-assert 392) + (speedmod float :offset-assert 400) + (shootable basic :offset-assert 404) + (lastring basic :offset-assert 408) + (shot basic :offset-assert 412) + (checkpoint uint8 :offset-assert 416) + (distant-part basic :offset-assert 420) + (blinky-part basic :offset-assert 424) + (blinky-gone? basic :offset-assert 428) + (do-trails? basic :offset-assert 432) + (trails UNKNOWN 5 :offset-assert 440) + (trail-joint UNKNOWN 5 :offset-assert 480) + (center-joint uint8 :offset-assert 485) + ) + :method-count-assert 26 + :size-assert #x1e6 + :flag-assert #x1a017001e6 + (:methods + (glider-ring-method-22 () none) ;; 22 + (glider-ring-method-23 () none) ;; 23 + (glider-ring-method-24 () none) ;; 24 + (glider-ring-method-25 () none) ;; 25 + ) + (:state-methods + idle ;; 20 + die ;; 21 + ) + ) +|# + +#| +(deftype glider-thermal (process-drawable) + ((id int8 :offset-assert 200) + (part-track uint64 :offset-assert 208) + (mat matrix :inline :offset-assert 224) + ) + :method-count-assert 22 + :size-assert #x120 + :flag-assert #x1600a00120 + (:methods + (glider-thermal-method-21 () none) ;; 21 + ) + (:state-methods + idle ;; 20 + ) + ) +|# + +;; (define-extern *curve-glider-ring-linear-up-red* object) +;; (define-extern *trail-color-curve-glider-ring* curve-color-fast) +;; (define-extern *curve-glider-ring-linear-trail* curve2d-fast) +;; (define-extern *glider-ring-trail* object) +;; (define-extern sparticle-track-joint-glider function) +;; (define-extern glider-part-single-birth function) +;; (define-extern glider-ring-standard-event-handler function) +;; (define-extern *near-thermal-dist-squared* object) +;; (define-extern glider-ring-near-thermal-dist-squared function) +;; (define-extern glider-ring-init-by-other function) +;; (define-extern glider-ring-spawn function) +;; (define-extern glider-thermal-init-by-other function) +;; (define-extern glider-thermal-spawn function) +;; (define-extern glider-launch-mist-particle function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; glider-manager ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype task-manager-desert-glide (task-manager) + ((desert-glide-entity basic :offset-assert 236) + (check-timer uint64 :offset-assert 244) + (start-time uint64 :offset-assert 164) + (thermal-start-time uint64 :offset-assert 260) + (actor-group uint32 :offset-assert 268) + (actor-group-count int32 :offset-assert 272) + (cur-group int8 :offset-assert 276) + (sound-id uint32 :offset-assert 280) + (count int32 :offset-assert 284) + (max-count int32 :offset-assert 288) + (pre-populated-clouds? basic :offset-assert 292) + (creating-thermal? basic :offset-assert 296) + (hud-altitude uint64 :offset-assert 300) + (hud-active? basic :offset-assert 308) + (editing? basic :offset-assert 312) + (did-want-load? basic :offset-assert 316) + (reset-too-low? basic :offset-assert 320) + (last-active-thermal int16 :offset-assert 324) + (whistle-sound uint32 :offset-assert 328) + ) + :method-count-assert 40 + :size-assert #x150 + :flag-assert #x2800d00150 + (:methods + (task-manager-desert-glide-method-32 () none) ;; 32 + (task-manager-desert-glide-method-33 () none) ;; 33 + (task-manager-desert-glide-method-34 () none) ;; 34 + (task-manager-desert-glide-method-35 () none) ;; 35 + (task-manager-desert-glide-method-36 () none) ;; 36 + (task-manager-desert-glide-method-37 () none) ;; 37 + (task-manager-desert-glide-method-38 () none) ;; 38 + (task-manager-desert-glide-method-39 () none) ;; 39 + ) + (:state-methods + active ;; 15 + ) + ) +|# + +#| +(deftype tpl-glider (process-drawable) + () + :method-count-assert 21 + :size-assert #xc8 + :flag-assert #x15005000c8 + (:state-methods + idle ;; 20 + ) + ) +|# + +;; (define-extern *cloud-cube* object) +;; (define-extern pre-populate-clouds function) +;; (define-extern *ring-spawn-id* object) +;; (define-extern *desert-glide-num-rings* object) +;; (define-extern *desert-glide-rings-tmp* object) +;; (define-extern *desert-glide-thermal-effects* object) +;; (define-extern *desert-glide-rings* array) +;; (define-extern *glider-cache-index* object) +;; (define-extern *desert-glide-thermals* array) +;; (define-extern *desert-glide-finish-sphere* object) +;; (define-extern glider-too-low? function) +;; (define-extern *thermal-spawn-id* object) +;; (define-extern *desert-glide-num-thermals* object) +;; (define-extern *desert-glide-thermals-tmp* object) +;; (define-extern glider-thermal-updraft-velocity function) +;; (define-extern desert-glide-task-done function) +;; (define-extern inside-cloudbox? function) +;; (define-extern inside-cloudbox-xz? function) +;; (define-extern move-pos-inside-cloudbox! function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; glider-hud ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; elec-gate ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype elec-gate-params (structure) + ((bolt-spec lightning-spec :offset-assert 0) ;; guessed by decompiler + (ring-spec lightning-spec :offset-assert 4) ;; guessed by decompiler + (ring-radius-min float :offset-assert 8) + (ring-radius-max float :offset-assert 12) + (speed-mult float :offset-assert 16) + (min-dist float :offset-assert 20) + (max-dist float :offset-assert 24) + (plane-expand-xz float :offset-assert 28) + (plane-expand-y float :offset-assert 32) + (plane-shift-z float :offset-assert 36) + ) + :method-count-assert 9 + :size-assert #x28 + :flag-assert #x900000028 + ) +|# + +#| +(deftype elec-gate-bolt (structure) + ((ring lightning-control 2 :offset-assert 0) ;; guessed by decompiler + (bolt lightning-control :offset-assert 8) ;; guessed by decompiler + (ring-radius float :offset-assert 12) + (pos float :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x14 + :flag-assert #x900000014 + ) +|# + +#| +(deftype elec-wall (structure) + ((pos vector :inline :offset-assert 0) + (dir vector :inline :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x20 + :flag-assert #x900000020 + ) +|# + +#| +(deftype elec-gate (process-drawable) + ((params elec-gate-params :offset-assert 200) + (path-l path-control :offset-assert 152) ;; guessed by decompiler + (path-r path-control :offset-assert 204) ;; guessed by decompiler + (l-bolt elec-gate-bolt 5 :offset-assert 208) ;; guessed by decompiler + (part-on sparticle-launch-control :offset-assert 168) ;; guessed by decompiler + (part-off sparticle-launch-control :offset-assert 368) ;; guessed by decompiler + (part-spawner-left part-spawner :offset-assert 372) ;; guessed by decompiler + (part-spawner-right part-spawner :offset-assert 376) ;; guessed by decompiler + (on-start pair :offset-assert 380) ;; guessed by decompiler + (on-stop pair :offset-assert 384) ;; guessed by decompiler + (on-shutdown basic :offset-assert 388) + (on-trigger basic :offset-assert 392) + (dividing-wall elec-wall :inline :offset-assert 400) + (plane elec-wall 2 :offset-assert 432) ;; guessed by decompiler + (wall-y float :offset-assert 496) + (wall-xz float :offset-assert 500) + (lightning-quality float :offset-assert 504) + (quality-enabled? symbol :offset-assert 508) ;; guessed by decompiler + ) + :method-count-assert 31 + :size-assert #x200 + :flag-assert #x1f01800200 + ;; field on-start uses ~A with a signed load. field on-stop uses ~A with a signed load. field on-shutdown uses ~A with a signed load. field on-trigger uses ~A with a signed load. + (:methods + (elec-gate-method-24 () none) ;; 24 ;; (elec-gate-method-24 (_type_) none 24) + (elec-gate-method-25 () none) ;; 25 ;; (set-palette! (_type_) none 25) + (elec-gate-method-26 () none) ;; 26 ;; (set-state! (_type_) none 26) + (elec-gate-method-27 () none) ;; 27 ;; (spawn-particles (_type_ sparticle-launch-control) none 27) + (elec-gate-method-28 () none) ;; 28 ;; (set-elec-scale-if-close! (_type_ float) none 28) + (elec-gate-method-29 () none) ;; 29 ;; (set-elec-scale! (_type_ float) none 29) + (elec-gate-method-30 () none) ;; 30 + ) + (:state-methods + idle ;; 20, old: (idle () _type_ :state 20) + active ;; 21, old: (active () _type_ :state 21) + shutdown-camera ;; 22, old: (shutdown () _type_ :state 22) + shutdown ;; 23, old: (get-params (_type_) elec-gate-params 23) + ) + ) +|# + +#| +(deftype sewer-elec-gate (elec-gate) + ((gate-index int32 :offset-assert 512) + ) + :method-count-assert 31 + :size-assert #x204 + :flag-assert #x1f01900204 + ) +|# + +;; (define-extern *default-elec-gate-params* object) ;; elec-gate-params +;; (define-extern elec-gate-post function) ;; (function none :behavior elec-gate) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; intro-scenes ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; hiphog-obs ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; wcar-catapult ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype catapult-shot-sphere (process-drawable) + ((current-alpha float :offset-assert 200) + ) + :method-count-assert 21 + :size-assert #xd8 + :flag-assert #x15006000d8 + (:state-methods + active ;; 20 + ) + ) +|# + +#| +(deftype catapult-shot-sphere-init-params (structure) + ((pos vector :inline :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype v-catapult-shot (metalhead-grenade-shot) + ((trail-part basic :offset-assert 532) + ) + :method-count-assert 41 + :size-assert #x218 + :flag-assert #x2901a00218 + (:state-methods + impact ;; 22 + ) + ) +|# + +#| +(deftype v-catapult (wcar-base) + ((jmod-axles UNKNOWN 4 :offset-assert 2752) + (jmod-gun-x joint-mod-rotate-local :inline :offset-assert 2880) + (jmod-gun-y joint-mod-rotate-local :inline :offset-assert 2912) + (turret-control turret-control :inline :offset-assert 2944) + (sub-state-time uint32 :offset-assert 3040) + (sub-state int8 :offset-assert 3044) + (launch-projectile? basic :offset-assert 3048) + (targ-pos vector :inline :offset-assert 3056) + (notify-handle uint64 :offset-assert 3072) + (spawn-part? basic :offset-assert 3080) + (charge-time uint64 :offset-assert 3088) + (exploding? basic :offset-assert 3096) + ) + :method-count-assert 205 + :size-assert #xc1c + :flag-assert #xcd0ba00c1c + (:methods + (v-catapult-method-203 () none) ;; 203 + (v-catapult-method-204 () none) ;; 204 + ) + (:state-methods + explode ;; 60 + hostile ;; 152 + die ;; 61 + ) + ) +|# + +;; (define-extern *v-catapult-turret-control-info* object) +;; (define-extern *v-catapult-turret-guard-settings* object) +;; (define-extern *v-catapult-debris-longspike-params* debris-static-params) +;; (define-extern *v-catapult-debris-bar-params* debris-static-params) +;; (define-extern *v-catapult-debris-lpanel-params* debris-static-params) +;; (define-extern *v-catapult-debris-rpanel-params* debris-static-params) +;; (define-extern *v-catapult-debris-lbumperspikes-params* debris-static-params) +;; (define-extern *v-catapult-debris-rbumperspikes-params* debris-static-params) +;; (define-extern *v-catapult-debris-lfspike-params* debris-static-params) +;; (define-extern *v-catapult-debris-rfspike-params* debris-static-params) +;; (define-extern *v-catapult-debris-ltopspike-params* debris-static-params) +;; (define-extern *v-catapult-debris-rtopspike-params* debris-static-params) +;; (define-extern *v-catapult-debris-lsidespikea-params* debris-static-params) +;; (define-extern *v-catapult-debris-lsidespikeb-params* debris-static-params) +;; (define-extern *v-catapult-debris-lsidespikec-params* debris-static-params) +;; (define-extern *v-catapult-debris-lsidespiked-params* debris-static-params) +;; (define-extern *v-catapult-debris-lsidespikee-params* debris-static-params) +;; (define-extern *v-catapult-debris-rsidespikea-params* debris-static-params) +;; (define-extern *v-catapult-debris-rsidespikeb-params* debris-static-params) +;; (define-extern *v-catapult-debris-rsidespikec-params* debris-static-params) +;; (define-extern *v-catapult-debris-rsidespiked-params* debris-static-params) +;; (define-extern *v-catapult-debris-rsidespikee-params* debris-static-params) +;; (define-extern *v-catapult-debris-lfpanela-params* debris-static-params) +;; (define-extern *v-catapult-debris-rfpanela-params* debris-static-params) +;; (define-extern *v-catapult-debris-lfpanelb-params* debris-static-params) +;; (define-extern *v-catapult-debris-rfpanelb-params* debris-static-params) +;; (define-extern *v-catapult-debris-lfpanelc-params* debris-static-params) +;; (define-extern *v-catapult-debris-rfpanelc-params* debris-static-params) +;; (define-extern *v-catapult-debris-lfpaneld-params* debris-static-params) +;; (define-extern *v-catapult-debris-rfpaneld-params* debris-static-params) +;; (define-extern *v-catapult-debris-lmpanela-params* debris-static-params) +;; (define-extern *v-catapult-debris-rmpanela-params* debris-static-params) +;; (define-extern *v-catapult-debris-lmpanelb-params* debris-static-params) +;; (define-extern *v-catapult-debris-rmpanelb-params* debris-static-params) +;; (define-extern *v-catapult-debris-lmpanelc-params* debris-static-params) +;; (define-extern *v-catapult-debris-rmpanelc-params* debris-static-params) +;; (define-extern *v-catapult-debris-lmpaneld-params* debris-static-params) +;; (define-extern *v-catapult-debris-rmpaneld-params* debris-static-params) +;; (define-extern *v-catapult-debris-lrpanela-params* debris-static-params) +;; (define-extern *v-catapult-debris-rrpanela-params* debris-static-params) +;; (define-extern *v-catapult-debris-lrpanelb-params* debris-static-params) +;; (define-extern *v-catapult-debris-rrpanelb-params* debris-static-params) +;; (define-extern *v-catapult-debris-lrpanelc-params* debris-static-params) +;; (define-extern *v-catapult-debris-rrpanelc-params* debris-static-params) +;; (define-extern *v-catapult-debris-lrpaneld-params* debris-static-params) +;; (define-extern *v-catapult-debris-rrpaneld-params* debris-static-params) +;; (define-extern *range-ftexplo-dust-color* curve-color-fast) +;; (define-extern *range-ftexplo-dust-alpha* curve2d-fast) +;; (define-extern *range-ftexplo-dust-scale-x* curve2d-fast) +;; (define-extern *range-ftexplo-dust-scale-y* curve2d-fast) +;; (define-extern *curve-ftexplo-dust-alpha* curve2d-fast) +;; (define-extern *curve-ftexplo-dust-scale-x* curve2d-fast) +;; (define-extern *curve-ftexplo-dust-scale-y* curve2d-fast) +;; (define-extern *part-v-catapult-shot-explosion-dust-in-curve-settings* object) +;; (define-extern *range-ftexplo-color* curve-color-fast) +;; (define-extern *range-ftexplo-alpha* curve2d-fast) +;; (define-extern *range-ftexplo-scale-x* curve2d-fast) +;; (define-extern *range-ftexplo-scale-y* curve2d-fast) +;; (define-extern *curve-ftexplo-alpha* curve2d-fast) +;; (define-extern *curve-ftexplo-scale-x* curve2d-fast) +;; (define-extern *curve-ftexplo-scale-y* curve2d-fast) +;; (define-extern *part-v-catapult-shot-explosion-texture-curve-settings* object) +;; (define-extern catapult-shot-sphere-init-by-other function) +;; (define-extern *v-catapult-shot-impact-blur* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; desert-jump ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype wascity-airlock-debris (process-drawable) + () + :method-count-assert 23 + :size-assert #xc8 + :flag-assert #x17005000c8 + (:methods + (wascity-airlock-debris-method-22 () none) ;; 22 + ) + (:state-methods + idle ;; 20 + explode ;; 21 + ) + ) +|# + +#| +(deftype beam-generator (process-drawable) + ((arrow uint64 :offset-assert 200) + (pos vector :inline :offset-assert 208) + (angs vector :inline :offset-assert 224) + ) + :method-count-assert 24 + :size-assert #xf0 + :flag-assert #x18007000f0 + (:methods + (beam-generator-method-22 () none) ;; 22 + (beam-generator-method-23 () none) ;; 23 + ) + (:state-methods + idle ;; 20 + die ;; 21 + ) + ) +|# + +#| +(deftype hud-wasdoors-health (hud) + () + :method-count-assert 27 + :size-assert #xac4 + :flag-assert #x1b0a500ac4 + ) +|# + +#| +(deftype hud-desert-catapult-count (hud) + () + :method-count-assert 27 + :size-assert #xac4 + :flag-assert #x1b0a500ac4 + ) +|# + +#| +(deftype desjump-point (structure) + ((pos vector :inline :offset-assert 0) + (quat quaternion :inline :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x20 + :flag-assert #x900000020 + ) +|# + +#| +(deftype desjump-vehicle (structure) + ((handle uint64 :offset-assert 0) + (path-type uint8 :offset-assert 8) + (path-pos uint8 :offset-assert 9) + (ready? basic :offset-assert 12) + (kamikaze? basic :offset-assert 16) + (wait-timer uint64 :offset-assert 24) + ) + :method-count-assert 9 + :size-assert #x20 + :flag-assert #x900000020 + ) +|# + +#| +(deftype desert-jump-manager (task-manager) + ((nav-mesh basic :offset-assert 240) + (vehicle UNKNOWN 2 :offset-assert 248) + (vehicle-count uint8 :offset-assert 312) + (v-free-list basic :offset-assert 316) + (total-veh-spawned uint8 :offset-assert 320) + (check-timer uint64 :offset-assert 328) + (hud-wasdoors-health uint64 :offset-assert 216) + (generator uint64 :offset-assert 336) + (interceptor UNKNOWN 4 :offset-assert 344) + (interceptor-count uint8 :offset-assert 472) + (i-free-list basic :offset-assert 476) + (interceptor-timer uint64 :offset-assert 480) + (plane vector :inline :offset-assert 496) + (last-catapult-pos vector :inline :offset-assert 512) + (player-can-win? basic :offset-assert 528) + ) + :method-count-assert 35 + :size-assert #x214 + :flag-assert #x2301a00214 + (:methods + (desert-jump-manager-method-32 () none) ;; 32 + (desert-jump-manager-method-33 () none) ;; 33 + (desert-jump-manager-method-34 () none) ;; 34 + ) + (:state-methods + active ;; 15 + ) + ) +|# + +;; (define-extern *wascity-airlock-exploder-params* joint-exploder-static-params) +;; (define-extern beam-generator-init-by-other function) +;; (define-extern *desjump-wasdoors-pos* object) +;; (define-extern *desjump-vehicle-path* array) +;; (define-extern part-tracker-check-parent function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; desertg-obs ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype desert-elec-gate (elec-gate) + () + :method-count-assert 31 + :size-assert #x200 + :flag-assert #x1f01800200 + ) +|# + +#| +(deftype desert-eggwall (process-drawable) + ((task-node uint16 :offset-assert 200) + ) + :method-count-assert 23 + :size-assert #xca + :flag-assert #x17005000ca + (:methods + (desert-eggwall-method-22 () none) ;; 22 + ) + (:state-methods + idle ;; 20 + die ;; 21 + ) + ) +|# + +#| +(deftype des-cactus-obstacle (process-focusable) + ((explode-time uint64 :offset-assert 208) + ) + :method-count-assert 29 + :size-assert #xd8 + :flag-assert #x1d006000d8 + (:state-methods + idle ;; 28 + ) + ) +|# + +;; (define-extern *desert-elec-gate-params* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; mhcity-part ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype bubbles-path (process-drawable) + () + :method-count-assert 22 + :size-assert #xc8 + :flag-assert #x16005000c8 + (:state-methods + die ;; 21 + active ;; 20 + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; terraformer-drone ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype terraformer-drone (nav-enemy) + ((trail-part basic :offset-assert 620) + (spinner-jm basic :offset-assert 624) + (spinner-angle float :offset-assert 628) + (minimap connection-minimap :offset-assert 632) + (zigzag-counter int8 :offset-assert 636) + (zigzag-timer uint64 :offset-assert 640) + (zigzag-target vector :inline :offset-assert 656) + (floor float :offset-assert 672) + (engine-sound uint32 :offset-assert 676) + (engine-sound-playing basic :offset-assert 680) + ) + :method-count-assert 192 + :size-assert #x2ac + :flag-assert #xc0023002ac + (:state-methods + explode ;; 191 + jump ;; 44 + stare ;; 37 + notice ;; 35 + attack ;; 190 + hostile ;; 38 + ) + ) +|# + +#| +(deftype terraformer-drone-small (terraformer-drone) + () + :method-count-assert 192 + :size-assert #x2ac + :flag-assert #xc0023002ac + ) +|# + +;; (define-extern *range-terraformer-drone-explo-color* curve-color-fast) +;; (define-extern *range-terraformer-drone-explo-alpha* curve2d-fast) +;; (define-extern *range-terraformer-drone-explo-scale-x* curve2d-fast) +;; (define-extern *range-terraformer-drone-explo-scale-y* curve2d-fast) +;; (define-extern *curve-terraformer-drone-explo-alpha* curve2d-fast) +;; (define-extern *curve-terraformer-drone-explo-scale-x* curve2d-fast) +;; (define-extern *curve-terraformer-drone-explo-scale-y* curve2d-fast) +;; (define-extern *part-terraformer-drone-explosion-texture-curve-settings* object) +;; (define-extern *terraformer-drone-nav-enemy-info* nav-enemy-info) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; deswalk-part ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; deswalk-obs ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype dm-urchin (process-drawable) + ((hit-points float :offset-assert 200) + (incoming-attack-id uint32 :offset-assert 204) + ) + :method-count-assert 22 + :size-assert #xd0 + :flag-assert #x16005000d0 + (:state-methods + die ;; 20 + idle ;; 21 + ) + ) +|# + +#| +(deftype desw-eco-tank (process-drawable) + ((hit-points float :offset-assert 200) + (incoming-attack-id uint32 :offset-assert 204) + ) + :method-count-assert 22 + :size-assert #xd0 + :flag-assert #x16005000d0 + (:state-methods + die ;; 20 + idle ;; 21 + ) + ) +|# + +#| +(deftype dm-tentacle-spores (process-focusable) + ((hit-points float :offset-assert 208) + (incoming-attack-id uint32 :offset-assert 212) + (attack-timer uint64 :offset-assert 216) + ) + :method-count-assert 29 + :size-assert #xe0 + :flag-assert #x1d006000e0 + (:state-methods + idle ;; 28 + ) + ) +|# + +#| +(deftype dm-tentacle-ragdoll (ragdoll) + ((chain-pos int8 :offset-assert 11980) + (start-time uint64 :offset-assert 11984) + (mode uint64 :offset-assert 11992) + ) + :method-count-assert 26 + :size-assert #x2ee0 + :flag-assert #x1a00002ee0 + ) +|# + +#| +(deftype dm-tentacle-ragdoll-proc (ragdoll-proc) + ((last-frame-time uint64 :offset-assert 136) + ) + :method-count-assert 20 + :size-assert #x90 + :flag-assert #x1400100090 + (:state-methods + idle ;; 14 + ) + ) +|# + +#| +(deftype dm-tentacle (process-focusable) + ((hit-points float :offset-assert 208) + (incoming-attack-id uint32 :offset-assert 212) + (collision-timer uint64 :offset-assert 216) + (ragdoll-proc uint64 :offset-assert 224) + (flags uint32 :offset-assert 232) + (attack-timer uint64 :offset-assert 240) + (initial-position vector :inline :offset-assert 256) + ) + :method-count-assert 37 + :size-assert #x110 + :flag-assert #x2500900110 + (:methods + (dm-tentacle-method-36 () none) ;; 36 + ) + (:state-methods + die ;; 28 + strike ;; 29 + sweep ;; 30 + whip ;; 31 + spit ;; 32 + retract ;; 33 + extend ;; 34 + idle ;; 35 + ) + ) +|# + +#| +(deftype dm-tentacle-attack (structure) + ((attack-type uint64 :offset-assert 0) + (probability float :offset-assert 8) + (possible basic :offset-assert 12) + (min-dist float :offset-assert 16) + (max-dist float :offset-assert 20) + ) + :method-count-assert 9 + :size-assert #x18 + :flag-assert #x900000018 + ) +|# + +#| +(deftype hud-deswalk (hud) + () + :method-count-assert 27 + :size-assert #xac4 + :flag-assert #x1b0a500ac4 + ) +|# + +#| +(deftype task-manager-deswalk (task-manager) + () + :method-count-assert 32 + :size-assert #xf0 + :flag-assert #x20007000f0 + ) +|# + +#| +(deftype desw-snake-stump (process-drawable) + ((actor-group uint32 :offset-assert 196) + (actor-group-count int32 :offset-assert 200) + (up-timer uint64 :offset-assert 204) + ) + :method-count-assert 24 + :size-assert #xd8 + :flag-assert #x18006000d8 + (:methods + (desw-snake-stump-method-21 () none) ;; 21 + ) + (:state-methods + up ;; 20 + down ;; 22 + moving ;; 23 + ) + ) +|# + +;; (define-extern *dm-urchin-exploder-params* joint-exploder-static-params) +;; (define-extern *desw-eco-tank-exploder-params* joint-exploder-static-params) +;; (define-extern dm-tentacle-spores-init-by-other function) +;; (define-extern *dm-tentacle-exploder-params* joint-exploder-static-params) +;; (define-extern *dm-tentacle-ragdoll-setup* object) +;; (define-extern dm-tentacle-ragdoll-proc-init-by-other function) +;; (define-extern dm-tentacle-adjust-collision function) +;; (define-extern dm-tentacle-handler function) +;; (define-extern *dm-tentacle-attacks* array) +;; (define-extern dm-tentacle-start-ragdoll function) +;; (define-extern desw-snake-stump-should-be-active? function) +;; (define-extern desw-snake-stump-should-be-up? function) +;; (define-extern desw-snake-stump-handler function) +;; (define-extern partway-up state) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; palroof-part ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern check-drop-level-palroof-drop-userdata function) ;; (function sparticle-system sparticle-cpuinfo matrix none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; intro-obs ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype ctypal-ctyfarma (process-drawable) + () + :method-count-assert 21 + :size-assert #xc8 + :flag-assert #x15005000c8 + (:state-methods + idle ;; 20 + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; searchlight ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype searchlight (process-drawable) + ((sync sync-eased :inline :offset-assert 200) + ) + :method-count-assert 21 + :size-assert #xf4 + :flag-assert #x15008000f4 + (:state-methods + idle ;; 20, old: (idle () _type_ :state 20) + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; guide-arrow ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype guide-arrow (process-drawable) + ((bob-dir vector :inline :offset-assert 208) + (base-pos vector :inline :offset-assert 224) + ) + :method-count-assert 23 + :size-assert #xf8 + :flag-assert #x17008000f8 + (:methods + (guide-arrow-method-22 () none) ;; 22 + ) + (:state-methods + idle ;; 20 + die ;; 21 + ) + ) +|# + +#| +(deftype guide-arrow-init-params (structure) + ((pos vector :inline :offset-assert 0) + (facing vector :inline :offset-assert 16) + (twist float :offset-assert 32) + (xz? basic :offset-assert 36) + ) + :method-count-assert 9 + :size-assert #x28 + :flag-assert #x900000028 + ) +|# + +;; (define-extern guide-arrow-init-by-other function) +;; (define-extern spawn-guide-arrow function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; kg-vehicles ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype pickup-sled-sim (billiard-table) + ((mat matrix :inline :offset-assert 96) + (external-force vector :inline :offset-assert 160) + ) + :method-count-assert 16 + :size-assert #xb0 + :flag-assert #x10000000b0 + ) +|# + +#| +(deftype h-kg-pickup (h-car-base) + ((fin-fr joint-mod-rotate-local :inline :offset-assert 960) + (fin-fl joint-mod-rotate-local :inline :offset-assert 992) + (fin-r joint-mod-rotate-local :inline :offset-assert 1024) + (fin-l joint-mod-rotate-local :inline :offset-assert 1056) + (rudder-l joint-mod-rotate-local :inline :offset-assert 1088) + (rudder-r joint-mod-rotate-local :inline :offset-assert 1120) + (turn-rate float :offset-assert 1152) + (target-turn-rate float :offset-assert 1156) + (camera-override? basic :offset-assert 1160) + (initial-creation-time uint64 :offset-assert 1168) + (auto-boost? basic :offset-assert 1176) + (steering-val float :offset-assert 1180) + (sled basic :offset-assert 1184) + (barrels basic :offset-assert 1188) + (taskman uint64 :offset-assert 1192) + (last-jitter-time uint64 :offset-assert 1200) + (last-slide-time uint64 :offset-assert 1208) + ) + :method-count-assert 162 + :size-assert #x4c0 + :flag-assert #xa2044004c0 + ) +|# + +#| +(deftype dark-barrel (process-focusable) + () + :method-count-assert 29 + :size-assert #xd0 + :flag-assert #x1d005000d0 + (:state-methods + idle ;; 28 + ) + ) +|# + +;; (define-extern *hijack-suck-curve* object) +;; (define-extern compute-suck-speed-scalar function) +;; (define-extern *h-kg-pickup-constants* object) +;; (define-extern dark-barrel-init-by-other function) +;; (define-extern spawn-pickup function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; tower-scenes ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *range-dark-tower-explo-color* curve-color-fast) +;; (define-extern *range-dark-tower-explo-alpha* curve2d-fast) +;; (define-extern *range-dark-tower-explo-scale-x* curve2d-fast) +;; (define-extern *range-dark-tower-explo-scale-y* curve2d-fast) +;; (define-extern *curve-dark-tower-explo-alpha* curve2d-fast) +;; (define-extern *curve-dark-tower-explo-scale-x* curve2d-fast) +;; (define-extern *curve-dark-tower-explo-scale-y* curve2d-fast) +;; (define-extern *part-dark-tower-explosion-texture-curve-settings* object) +;; (define-extern *range-tower-dust-color* curve-color-fast) +;; (define-extern *range-tower-dust-alpha* curve2d-fast) +;; (define-extern *range-tower-dust-scale-x* curve2d-fast) +;; (define-extern *range-tower-dust-scale-y* curve2d-fast) +;; (define-extern *curve-tower-dust-alpha* curve2d-fast) +;; (define-extern *curve-tower-dust-scale-x* curve2d-fast) +;; (define-extern *curve-tower-dust-scale-y* curve2d-fast) +;; (define-extern *part-hellcat-tower-dust-landing-curve-settings* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; cty-hijack ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype cty-hijack-manager (task-manager) + ((hpickup uint64 :offset-assert 240) + (missiles basic :offset-assert 248) + (current-leader-missile int8 :offset-assert 252) + (task-arrow uint64 :offset-assert 256) + (alert-expire-time uint64 :offset-assert 264) + (lure-hit-time uint64 :offset-assert 280) + (naughty-ottsel-lure uint64 :offset-assert 288) + (missile-sound uint32 :offset-assert 296) + (vehicle-is-visible? basic :offset-assert 300) + (last-check-vehicle-vis-time uint64 :offset-assert 304) + ) + :method-count-assert 41 + :size-assert #x138 + :flag-assert #x2900c00138 + (:methods + (cty-hijack-manager-method-35 () none) ;; 35 + (cty-hijack-manager-method-36 () none) ;; 36 + (cty-hijack-manager-method-37 () none) ;; 37 + (cty-hijack-manager-method-38 () none) ;; 38 + (cty-hijack-manager-method-39 () none) ;; 39 + (cty-hijack-manager-method-40 () none) ;; 40 + ) + (:state-methods + fail ;; 18 + show-missile-launch ;; 34 + wait ;; 14 + active ;; 15 + decoy-stage ;; 33 + player-riding ;; 32 + ) + ) +|# + +#| +(deftype hijack-speech-instance (speech-instance) + () + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +#| +(deftype hijack-speech-info (structure) + ((speeches basic :offset-assert 0) + (flags uint64 :offset-assert 8) + (play-time uint64 :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x18 + :flag-assert #x900000018 + ) +|# + +#| +(deftype cty-missile-lure-init-params (structure) + ((pos vector :inline :offset-assert 0) + (orient quaternion :inline :offset-assert 16) + (is-naughty-ottsel? basic :offset-assert 32) + ) + :method-count-assert 9 + :size-assert #x24 + :flag-assert #x900000024 + ) +|# + +#| +(deftype cty-missile-lure (process-focusable) + ((state-time uint64 :offset-assert 192) + (minimap connection-minimap :offset-assert 216) + (is-naughty-ottsel? basic :offset-assert 220) + (lock-open? basic :offset-assert 224) + (hum-sound uint32 :offset-assert 228) + (sirens2 basic :offset-assert 232) + (raise-sound uint32 :offset-assert 236) + ) + :method-count-assert 37 + :size-assert #xf0 + :flag-assert #x25007000f0 + (:methods + (cty-missile-lure-method-35 () none) ;; 35 + (cty-missile-lure-method-36 () none) ;; 36 + ) + (:state-methods + naughty-ottsel-lure ;; 34 + naughty-ottsel-wait ;; 33 + idle ;; 28 + complete ;; 30 + opening ;; 32 + closing ;; 31 + active ;; 29 + ) + ) +|# + +#| +(deftype cty-lure-info (structure) + ((pos vector :inline :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype cty-missile-launcher (process-drawable) + () + :method-count-assert 22 + :size-assert #xc8 + :flag-assert #x16005000c8 + (:state-methods + recoil ;; 21 + idle ;; 20 + ) + ) +|# + +#| +(deftype guide-arrow-info (structure) + ((pos vector :inline :offset-assert 0) + (facing vector :inline :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x20 + :flag-assert #x900000020 + ) +|# + +;; (define-extern *cty-hijack-speech-list* object) +;; (define-extern *pickup-start-pos* object) +;; (define-extern *pickup-start-angle* object) +;; (define-extern *hijack-speech* array) +;; (define-extern debug-reset-hijack-speech function) +;; (define-extern cty-missile-lure-init-by-other function) +;; (define-extern *cty-hijack-lure-positions* array) +;; (define-extern *naughty-ottsel-pos* object) +;; (define-extern *ctyport-hijack-fail* object) +;; (define-extern *pre-hijack-kg-squad-member-settings* object) +;; (define-extern *post-hijack-kg-squad-member-settings* object) +;; (define-extern *missile-fire-order* array) +;; (define-extern *missile-fire-frames* array) +;; (define-extern *missile-closer-chase-normal* object) +;; (define-extern *missile-closer-chase-pos* object) +;; (define-extern *guide-arrow-list* array) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; for-turret-shot ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype for-turret-shot (projectile) + ((tail-pos vector :inline :offset-assert 512) + ) + :method-count-assert 41 + :size-assert #x210 + :flag-assert #x2901900210 + ) +|# + +;; (define-extern for-turret-shot-move function) +;; (define-extern spawn-for-turret-projectile function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; for-turret ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; hud-for-turret-health is already defined! + +#| +(deftype for-turret-blocker (process-drawable) + () + :method-count-assert 21 + :size-assert #xc8 + :flag-assert #x15005000c8 + (:state-methods + idle ;; 20 + ) + ) +|# + +#| +(deftype for-turret (target-turret) + ((aim-pos vector :inline :offset-assert 556) + (muzzle-pos vector :inline :offset-assert 572) + (battle-entity basic :offset-assert 588) + (focus-handle uint64 :offset-assert 596) + (task-node-id int32 :offset-assert 604) + (fire-timer uint64 :offset-assert 612) + (nav-mesh basic :offset-assert 620) + (flash-palette-index int32 :offset-assert 624) + (flash-palette-level basic :offset-assert 628) + (blocker uint64 :offset-assert 636) + (actor-group uint32 :offset-assert 644) + (actor-group-count int32 :offset-assert 648) + (last-speed0 float :offset-assert 652) + (minimap connection-minimap :offset-assert 656) + (current-barrel int32 :offset-assert 660) + (barrel-recoil-offset UNKNOWN 2 :offset-assert 664) + ) + :method-count-assert 61 + :size-assert #x2a4 + :flag-assert #x3d023002a4 + (:state-methods + idle ;; 28 + gunner-active ;; 60 + setup ;; 29 + gunner-setup ;; 59 + active ;; 30 + shutdown ;; 31 + die ;; 33 + ) + ) +|# + +;; (define-extern for-turret-blocker-init-by-other function) +;; (define-extern *for-turret-params* object) +;; (define-extern *for-turret-exploder-params* joint-exploder-static-params) +;; (define-extern *for-turret-offset-table* array) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; neo-wasp ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype neo-wasp-shot (metalhead-shot) + () + :method-count-assert 41 + :size-assert #x210 + :flag-assert #x2901900210 + ) +|# + +#| +(deftype neo-wasp (hover-enemy) + ((gun-jmod joint-mod-rotate-local :inline :offset-assert 976) + (entity-group basic :offset-assert 1008) + (smoke-part basic :offset-assert 1012) + (engine-part basic :offset-assert 1016) + (minimap connection-minimap :offset-assert 1020) + (old-gravity float :offset-assert 1028) + (knocked-anim int32 :offset-assert 1032) + (knocked-recover-anim int32 :offset-assert 1036) + (last-fire-time uint64 :offset-assert 1040) + (bridge-index int32 :offset-assert 1048) + (gun-x-angle float :offset-assert 1052) + (gun-x-angle-final float :offset-assert 1056) + (path-u float :offset-assert 1060) + (path-du float :offset-assert 1064) + (path-du-final float :offset-assert 1068) + (path-dest float :offset-assert 1072) + (plat-pos vector :inline :offset-assert 1088) + (sound-id uint32 :offset-assert 1104) + (on-screen-timer uint64 :offset-assert 1112) + (attack-wait-min float :offset-assert 1120) + (attack-wait-max float :offset-assert 1124) + (attack-miss-dist-min float :offset-assert 1128) + (attack-miss-dist-max float :offset-assert 1132) + (attack-miss-dist-curr float :offset-assert 1136) + (mech-flame-texture-id uint32 :offset-assert 1140) + ) + :method-count-assert 185 + :size-assert #x478 + :flag-assert #xb904000478 + (:methods + (neo-wasp-method-182 () none) ;; 182 + (neo-wasp-method-183 () none) ;; 183 + (neo-wasp-method-184 () none) ;; 184 + ) + (:state-methods + ambush ;; 47 + ambush-flying ;; 177 + attack ;; 179 + notice ;; 35 + hostile ;; 38 + ambush-attack ;; 178 + knocked-recover ;; 32 + die-explode ;; 181 + die-now ;; 180 + ) + ) +|# + +#| +(deftype neo-wasp-spawner (process) + ((spawn-pos vector :inline :offset-assert 128) + (spawn-timer uint64 :offset-assert 144) + (enemies-spawned int32 :offset-assert 152) + (enemies-to-spawn int32 :offset-assert 156) + ) + :method-count-assert 16 + :size-assert #xa0 + :flag-assert #x10002000a0 + (:state-methods + idle ;; 14 + die ;; 15 + ) + ) +|# + +;; (define-extern *neo-wasp-debris-params* debris-static-params) +;; (define-extern *fact-info-neo-wasp-defaults* fact-info-enemy-defaults) +;; (define-extern *neo-wasp-enemy-info* enemy-info) +;; (define-extern neo-wasp-spawner-event-handler function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; hover-nav-foresta ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *foresta-adjacency* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; prebot-states ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype task-manager-prebot (task-manager) + ((manager-entity basic :offset-assert 240) + (check-timer uint64 :offset-assert 248) + ) + :method-count-assert 32 + :size-assert #x100 + :flag-assert #x2000800100 + (:state-methods + active ;; 15 + ) + ) +|# + +;; (define-extern prebot-neck-callback function) +;; (define-extern prebot-light-pulse-off function) +;; (define-extern prebot-light-pulse-on function) +;; (define-extern prebot-light-flash function) +;; (define-extern prebot-prespool function) +;; (define-extern prebot-common function) +;; (define-extern prebot-go-next-stage function) +;; (define-extern prebot-handler function) +;; (define-extern prebot-set-cam-slave-fov function) +;; (define-extern prebot-setup-shot-offsets function) +;; (define-extern prebot-fire-tentacle function) +;; (define-extern prebot-launch-critter function) +;; (define-extern prebot-spawn-shockwave function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; neo-spawner ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype hud-neo-spawner-health (hud) + () + :method-count-assert 27 + :size-assert #xac4 + :flag-assert #x1b0a500ac4 + ) +|# + +#| +(deftype neo-spawner-manager (process) + ((actor-group uint32 :offset-assert 124) + (actor-group-count int32 :offset-assert 128) + (total-spawned int32 :offset-assert 132) + (max-spawned int32 :offset-assert 136) + (suppress-spawn basic :offset-assert 140) + ) + :method-count-assert 15 + :size-assert #x94 + :flag-assert #xf00200094 + (:state-methods + idle ;; 14 + ) + ) +|# + +#| +(deftype neo-spawner-type (structure) + ((spawn-type basic :offset-assert 0) + (count uint32 :offset-assert 4) + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +#| +(deftype neo-spawner (process-focusable) + ((info basic :offset-assert 208) + (actor-group uint32 :offset-assert 212) + (actor-group-count int32 :offset-assert 216) + (manager-entity basic :offset-assert 220) + (turret-entity basic :offset-assert 224) + (minimap connection-minimap :offset-assert 228) + (incoming-attack-id int32 :offset-assert 232) + (health float :offset-assert 236) + (health-hud-timer float :offset-assert 240) + (open-time uint64 :offset-assert 248) + (triggered? basic :offset-assert 256) + (hud-health uint64 :offset-assert 264) + (lightning-time uint64 :offset-assert 272) + (dead-part basic :offset-assert 280) + (last-spawn-time uint64 :offset-assert 288) + (state-time uint64 :offset-assert 192) + ) + :method-count-assert 37 + :size-assert #x130 + :flag-assert #x2500b00130 + (:methods + (neo-spawner-method-35 () none) ;; 35 + (neo-spawner-method-36 () none) ;; 36 + ) + (:state-methods + closed ;; 28 + opening ;; 29 + open ;; 30 + spawn-enemy ;; 31 + vulnerable ;; 32 + die ;; 33 + dead ;; 34 + ) + ) +|# + +;; (define-extern foresta-login function) +;; (define-extern foresta-logout function) +;; (define-extern foresta-activate function) +;; (define-extern *neo-spawner-info* array) +;; (define-extern *neo-spawner-debris-params* debris-static-params) +;; (define-extern neo-spawner-handler function) +;; (define-extern neo-spawner-active-post function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; race-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype race-turbo-pad (structure) + ((position vector :inline :offset-assert 0) + (handle uint64 :offset-assert 16) ;; handle + ) + :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) ;; racer-info-flags + (seek-offset int8 :offset-assert 3) + ) + :method-count-assert 9 + :size-assert #x4 + :flag-assert #x900000004 + ) +|# + +#| +(deftype race-info (basic) + ((race-mesh-name string :offset-assert 4) ;; guessed by decompiler + (path-group-name string :offset-assert 8) ;; guessed by decompiler + (task-node uint16 :offset-assert 12) ;; game-task-node + (mesh race-mesh :offset-assert 16) ;; guessed by decompiler + (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) ;; race-info-flags + (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) ;; guessed by decompiler + (racer-array (inline-array race-racer-info) :offset-assert 124) ;; guessed by decompiler + (decision-point-array (inline-array race-decision-point) :offset-assert 128) ;; guessed by decompiler + (level symbol :offset-assert 132) ;; guessed by decompiler + (borrow-level symbol :offset-assert 136) ;; guessed by decompiler + (borrow pair :offset-assert 140) ;; guessed by decompiler + (manager uint64 :offset-assert 144) ;; handle + (manager-handle-init-hack basic :offset-assert 144) + (hatch-actor-name string :offset-assert 152) ;; guessed by decompiler + (countdown-scene string :offset-assert 156) ;; guessed by decompiler + (complete-continue string :offset-assert 160) ;; guessed by decompiler + (start-camera string :offset-assert 164) ;; guessed by decompiler + (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 ;; (initialize-mesh (_type_) none 9) + ) + ) +|# + +#| +(deftype racer-state (structure) + ((position vector :inline :offset-assert 0) + (racer uint64 :offset-assert 16) ;; handle + (flags uint8 :offset-assert 24) ;; racer-flags + (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) ;; guessed by decompiler + (start-position vector :inline :offset-assert 96) + ) + :method-count-assert 14 + :size-assert #x70 + :flag-assert #xe00000070 + (:methods + (racer-state-method-9 () none) ;; 9 ;; (update-lap-distance (_type_ race-state) none 9) + (racer-state-method-10 () none) ;; 10 ;; (begin-lap (_type_ race-state) none 10) + (racer-state-method-11 () none) ;; 11 ;; (end-lap (_type_ race-state) none 11) + (racer-state-method-12 () none) ;; 12 ;; (print-laps (_type_ race-state string) none 12) + (racer-state-method-13 () none) ;; 13 ;; (init-racer! (_type_ process-drawable) none 13) + ) + ) +|# + +#| +(deftype race-state (structure) + ((info race-info :offset-assert 0) ;; guessed by decompiler + (flags uint8 :offset-assert 4) ;; race-flags + (state uint8 :offset-assert 5) ;; race-state-enum + (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) ;; handle + (scene-player uint64 :offset-assert 24) ;; handle + (race-signal uint64 :offset-assert 32) ;; handle + (arrow uint64 :offset-assert 40) ;; handle + (hud-timer uint64 :offset-assert 48) ;; handle + (hud-lap-counter uint64 :offset-assert 56) ;; handle + (hud-turbo-counter uint64 :offset-assert 64) ;; handle + (hud-position uint64 :offset-assert 72) ;; handle + (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) ;; guessed by decompiler + (target-pos float :offset-assert 104) + (suck-factor float :offset-assert 108) + (player-win? basic :offset-assert 112) + (new-score? basic :offset-assert 116) + (racer-array racer-state 10 :offset-assert 128) ;; guessed by decompiler + (player-intro-curve cubic-curve :inline :offset-assert 1248) + ) + :method-count-assert 21 + :size-assert #x520 + :flag-assert #x1500000520 + (:methods + (race-state-method-9 () none) ;; 9 ;; (init-racers! (_type_ process-drawable) none 9) + (race-state-method-10 () none) ;; 10 ;; (begin-race (_type_) none 10) + (race-state-method-11 () none) ;; 11 ;; (update (_type_) none 11) + (race-state-method-12 () none) ;; 12 ;; (update-rankings (_type_) none 12) + (race-state-method-13 () none) ;; 13 ;; (debug-print-rankings (_type_) none 13) + (race-state-method-14 () none) ;; 14 ;; (update-racers (_type_) none 14) + (race-state-method-15 () none) ;; 15 ;; (spawn-race-signal (_type_) none 15) + (race-state-method-16 () none) ;; 16 ;; (initialize (_type_ process race-info) none 16) + (race-state-method-17 () none) ;; 17 ;; (set-speech-tables! (_type_) none 17) + (race-state-method-18 () none) ;; 18 ;; (setup-race (_type_) none 18) + (race-state-method-19 () none) ;; 19 + (race-state-method-20 () none) ;; 20 + ) + ) +|# + +#| +(deftype race-manager (process) + ((race-state race-state :offset-assert 128) + (state-time uint64 :offset-assert 136) ;; time-frame + (player-on-track-time uint64 :offset-assert 144) ;; time-frame + (message-id sound-id :offset-assert 152) ;; guessed by decompiler + (finish-sound-id sound-id :offset-assert 156) ;; guessed by decompiler + (show-stats? basic :offset-assert 160) + ) + :method-count-assert 28 + :size-assert #xa4 + :flag-assert #x1c003000a4 + (:methods + (race-manager-method-14 () none) ;; 14 ;; (idle () _type_ :state 14) + (race-manager-method-15 () none) ;; 15 ;; (active () _type_ :state 15) + (race-manager-method-16 () none) ;; 16 ;; (fail () _type_ :state 16) + (race-manager-method-17 () none) ;; 17 ;; (win () _type_ :state 17) + (race-manager-method-18 () none) ;; 18 ;; (lose () _type_ :state 18) + (race-manager-method-19 () none) ;; 19 ;; (die () _type_ :state 19) + (race-manager-method-20 () none) ;; 20 ;; (update (_type_) int 20) + (race-manager-method-21 () none) ;; 21 ;; (initialize-state (_type_) none 21) + (race-manager-method-22 () none) ;; 22 ;; (race-manager-method-22 (_type_) none 22) + (race-manager-method-23 () none) ;; 23 ;; (initialize-race-state (_type_) none 23) + (race-manager-method-24 () none) ;; 24 ;; (draw-message-continue (_type_) none 24) + (race-manager-method-25 () none) ;; 25 ;; (draw-message-retry (_type_) none 25) + (race-manager-method-26 () none) ;; 26 ;; (save-score (_type_ float) none 26) + (race-manager-method-27 () none) ;; 27 ;; (stop-speech (_type_) none 27) + ) + ) +|# + +#| +(deftype hud-race-timer (hud) + () + :method-count-assert 27 + :size-assert #xac4 + :flag-assert #x1b0a500ac4 + ) +|# + +#| +(deftype hud-race-lap-counter (hud) + () + :method-count-assert 27 + :size-assert #xac4 + :flag-assert #x1b0a500ac4 + ) +|# + +#| +(deftype hud-race-turbo-counter (hud) + () + :method-count-assert 27 + :size-assert #xac4 + :flag-assert #x1b0a500ac4 + ) +|# + +#| +(deftype hud-race-position (hud) + () + :method-count-assert 27 + :size-assert #xac4 + :flag-assert #x1b0a500ac4 + ) +|# + +;; (define-extern *race-manager* object) ;; (pointer race-manager) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; was-leaper-race ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype wascity-race-ring (process-drawable) + ((active? basic :offset-assert 200) + (mat matrix :inline :offset-assert 208) + (taskman uint64 :offset-assert 272) + (player-part basic :offset-assert 280) + (player-ring? basic :offset-assert 284) + (minimap connection-minimap :offset-assert 288) + (is-final? basic :offset-assert 292) + (part-final basic :offset-assert 296) + ) + :method-count-assert 24 + :size-assert #x12c + :flag-assert #x1800b0012c + (:methods + (wascity-race-ring-method-22 () none) ;; 22 + (wascity-race-ring-method-23 () none) ;; 23 + ) + (:state-methods + idle ;; 20 + die ;; 21 + ) + ) +|# + +#| +(deftype task-manager-wascity-leaper-race (task-manager) + ((ring-manager-entity basic :offset-assert 236) + (actor-group uint32 :offset-assert 240) + (actor-group-count int32 :offset-assert 244) + (current-ring uint8 :offset-assert 248) + (challenger-current-ring UNKNOWN 3 :offset-assert 249) + (check-timer uint64 :offset-assert 252) + (hud-position uint64 :offset-assert 212) + (hint-timer uint64 :offset-assert 260) + (played-speeches uint32 :offset-assert 268) + ) + :method-count-assert 35 + :size-assert #x114 + :flag-assert #x2300a00114 + (:methods + (task-manager-wascity-leaper-race-method-32 () none) ;; 32 + (task-manager-wascity-leaper-race-method-33 () none) ;; 33 + (task-manager-wascity-leaper-race-method-34 () none) ;; 34 + ) + (:state-methods + active ;; 15 + fail ;; 18 + ) + ) +|# + +;; (define-extern wascity-race-ring-cleared? function) +;; (define-extern *was-leaper-speech-list* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; race-mesh ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype race-mesh-hash-search (structure) + ((best-dist float :offset-assert 0) + (debug-cells-searched int32 :offset-assert 4) + (debug-slices-searched int32 :offset-assert 8) + (bounds bounding-box4w :inline :offset-assert 16) + (cell-quads vector 2 :offset-assert 48) ;; guessed by decompiler + (slice-quads vector 4 :offset-assert 80) ;; guessed by decompiler + (cell-bits vector16ub 2 :offset-assert 48) ;; guessed by decompiler + (slice-bits vector16ub 2 :offset-assert 80) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x90 + :flag-assert #x900000090 + ) +|# + +#| +(deftype race-mesh-slice-query (structure) + ((slice-id int16 :offset-assert 0) + (lap-dist float :offset-assert 4) + (pt-on-slice vector :inline :offset-assert 16) + (slice-corners vector 4 :offset-assert 32) ;; guessed by decompiler + (search-sphere sphere :inline :offset-assert 96) + ) + :method-count-assert 9 + :size-assert #x70 + :flag-assert #x900000070 + ) +|# + +#| +(deftype race-path-edge-info (structure) + ((sample-t float :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x4 + :flag-assert #x900000004 + ) +|# + +#| +(deftype race-path-sample (structure) + ((bytes uint8 32 :offset-assert 0) ;; guessed by decompiler + (pos vector :inline :offset-assert 0) + (quat quaternion :inline :offset-assert 16) + (stick-x int8 :offset-assert 12) + (stick-y int8 :offset-assert 13) + (throttle uint8 :offset-assert 14) + (flags uint8 :offset-assert 15) + ) + :method-count-assert 9 + :size-assert #x20 + :flag-assert #x900000020 + ) +|# + +#| +(deftype race-path (structure) + ((sample-count uint16 :offset-assert 0) + (record-id int8 :offset-assert 2) + (pad uint8 :offset-assert 3) + (samples (inline-array race-path-sample) :offset-assert 4) ;; guessed by decompiler + (edge-infos (inline-array race-path-edge-info) :offset-assert 8) ;; guessed by decompiler + ) + :method-count-assert 13 + :size-assert #xc + :flag-assert #xd0000000c + (:methods + (race-path-method-9 () none) ;; 9 ;; (draw-path-debug (_type_ rgba rgba) none 9) + (race-path-method-10 () none) ;; 10 ;; (race-path-method-10 (_type_ vector float float) none 10) + (race-path-method-11 () none) ;; 11 ;; (race-path-method-11 (_type_ race-path-sample vector float) none 11) + (race-path-method-12 () none) ;; 12 ;; (race-path-method-12 (_type_ vector float float) float 12) + ) + ) +|# + +#| +(deftype race-path-group (structure) + ((name string :offset-assert 0) ;; guessed by decompiler + (path-count int8 :offset-assert 4) + (pad uint8 3 :offset-assert 5) ;; guessed by decompiler + (paths (inline-array race-path) :offset-assert 8) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #xc + :flag-assert #x90000000c + ) +|# + +#| +(deftype race-mesh-edge (structure) + ((left vector :inline :offset-assert 0) + (right vector :inline :offset-assert 16) + (lap-dist float :offset-assert 12) + ) + :method-count-assert 9 + :size-assert #x20 + :flag-assert #x900000020 + ) +|# + +#| +(deftype race-mesh-slice (structure) + ((edge-index-array uint16 2 :offset-assert 0) ;; guessed by decompiler + (start-edge int16 :offset-assert 0) + (end-edge int16 :offset-assert 2) + ) + :method-count-assert 9 + :size-assert #x4 + :flag-assert #x900000004 + ) +|# + +#| +(deftype race-mesh-hash-cell (structure) + ((first-slice int16 :offset-assert 0) + (slice-count uint8 :offset-assert 2) + (pad uint8 :offset-assert 3) + ) + :method-count-assert 9 + :size-assert #x4 + :flag-assert #x900000004 + ) +|# + +#| +(deftype race-mesh-hash (structure) + ((cells-wide int8 :offset-assert 0) + (cells-tall int8 :offset-assert 1) + (cell-length float :offset-assert 4) + (cells (inline-array race-mesh-hash-cell) :offset-assert 8) ;; guessed by decompiler + (slice-table (inline-array race-mesh-slice) :offset-assert 12) ;; guessed by decompiler + (origin vector :inline :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x20 + :flag-assert #x900000020 + ) +|# + +#| +(deftype race-mesh (basic) + ((version uint8 :offset-assert 4) + (path-group-count uint8 :offset-assert 5) + (flags uint8 :offset-assert 6) ;; race-mesh-flags + (pad uint8 1 :offset-assert 7) ;; guessed by decompiler + (slice-count int16 :offset-assert 8) + (edge-count int16 :offset-assert 10) + (slices (inline-array race-mesh-slice) :offset-assert 12) ;; guessed by decompiler + (edges (inline-array race-mesh-edge) :offset-assert 16) ;; guessed by decompiler + (hash race-mesh-hash :offset-assert 20) + (path-groups (inline-array race-path-group) :offset-assert 24) ;; guessed by decompiler + ) + :method-count-assert 20 + :size-assert #x1c + :flag-assert #x140000001c + (:methods + (race-mesh-method-9 () none) ;; 9 ;; (debug-draw-path (_type_ int int rgba rgba) none 9) + (race-mesh-method-10 () none) ;; 10 ;; (debug-draw-path-from-history (_type_ int int) symbol 10) + (race-mesh-method-11 () none) ;; 11 ;; (debug-draw-slice (_type_ int) none 11) + (race-mesh-method-12 () none) ;; 12 ;; (debug-draw-edges (_type_) none 12) + (race-mesh-method-13 () none) ;; 13 ;; (race-mesh-method-13 (_type_ race-mesh-slice-query) none 13) + (race-mesh-method-14 () none) ;; 14 ;; (race-mesh-method-14 (_type_ race-mesh-slice-query) none 14) + (race-mesh-method-15 () none) ;; 15 ;; (race-mesh-method-15 (_type_ int race-mesh-slice-query) none 15) + (race-mesh-method-16 () none) ;; 16 ;; (race-mesh-method-16 (_type_ race-mesh-slice-query) none 16) + (race-mesh-method-17 () none) ;; 17 ;; (race-mesh-method-17 (_type_ race-mesh-slice-query) symbol 17) + (race-mesh-method-18 () none) ;; 18 ;; (race-mesh-method-18 (_type_ race-mesh-hash-search int int race-mesh-slice-query) none 18) + (race-mesh-method-19 () none) ;; 19 ;; (race-mesh-method-19 (_type_ int race-mesh-slice-query) symbol 19) + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; race-control ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype race-control (structure) + ((state race-state :offset-assert 0) + (mesh race-mesh :offset-assert 4) ;; guessed by decompiler + (path-select int8 :offset-assert 8) + (path-group race-path-group :offset-assert 12) + (path race-path :offset-assert 16) + (path-t float :offset-assert 20) + (racer-state racer-state :offset-assert 24) + (path-sample race-path-sample :inline :offset-assert 32) + (lin-velocity vector :inline :offset-assert 64) + (ang-velocity vector :inline :offset-assert 80) + ) + :method-count-assert 13 + :size-assert #x60 + :flag-assert #xd00000060 + (:methods + (race-control-method-9 () none) ;; 9 ;; (race-control-method-9 (_type_ int vector) none 9) + (race-control-method-10 () none) ;; 10 ;; (race-control-method-10 (_type_ race-state racer-state) none 10) + (race-control-method-11 () none) ;; 11 ;; (race-control-method-11 (_type_ float) none 11) + (race-control-method-12 () none) ;; 12 ;; (race-control-method-12 (_type_ vector) none 12) + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; race-info ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *race-info-array* array) ;; (array race-info) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; blow-tower-obs2 ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype bt-roboguard (blow-tower-enemy) + ((focus-pos vector :inline :offset-assert 256) + (focus uint64 :offset-assert 272) + (rotation-matrix matrix :inline :offset-assert 288) + (me-to-focus-dir vector :inline :offset-assert 352) + (me-to-focus-angle float :offset-assert 368) + (torso-aim-blend float :offset-assert 372) + (torso-angle float :offset-assert 376) + (torso-seek-speed float :offset-assert 380) + (torso-to-focus-angle float :offset-assert 384) + (last-torso-frame-num float :offset-assert 388) + (stand-angle-threshold float :offset-assert 392) + (fire-time uint64 :offset-assert 400) + (fire-count int8 :offset-assert 408) + (fire-delay uint64 :offset-assert 416) + (path-clock-time uint64 :offset-assert 424) + (difficulty float :offset-assert 432) + (active-clock-time uint64 :offset-assert 440) + ) + :method-count-assert 47 + :size-assert #x1c0 + :flag-assert #x2f014001c0 + (:methods + (bt-roboguard-method-40 () none) ;; 40 + (bt-roboguard-method-41 () none) ;; 41 + (bt-roboguard-method-42 () none) ;; 42 + (bt-roboguard-method-43 () none) ;; 43 + (bt-roboguard-method-44 () none) ;; 44 + (bt-roboguard-method-45 () none) ;; 45 + (bt-roboguard-method-46 () none) ;; 46 + ) + (:state-methods + idle ;; 28 + hostile-stand ;; 38 + shoot-attack ;; 39 + ) + ) +|# + +#| +(deftype bt-roboguard-shot (guard-shot) + () + :method-count-assert 41 + :size-assert #x220 + :flag-assert #x2901a00220 + ) +|# + +#| +(deftype kg-flyer (tower-flyer) + () + :method-count-assert 50 + :size-assert #x2b0 + :flag-assert #x32023002b0 + (:state-methods + charging ;; 39 + firing ;; 40 + ) + ) +|# + +#| +(deftype bt-mh-flyer (tower-flyer) + ((rotation-vec vector :inline :offset-assert 688) + (xz-dir vector :inline :offset-assert 704) + (main-joint-movement UNKNOWN 3 :offset-assert 720) + (thrust UNKNOWN 2 :offset-assert 768) + (engine-part basic :offset-assert 776) + ) + :method-count-assert 53 + :size-assert #x30c + :flag-assert #x350290030c + (:methods + (bt-mh-flyer-method-50 () none) ;; 50 + (bt-mh-flyer-method-51 () none) ;; 51 + (bt-mh-flyer-method-52 () none) ;; 52 + ) + (:state-methods + hovering ;; 38 + charging ;; 39 + fleeing ;; 41 + firing ;; 40 + ) + ) +|# + +#| +(deftype bt-grunt (blow-tower-enemy) + ((target uint64 :offset-assert 256) + (last-parent-xform matrix :inline :offset-assert 272) + (idle-time uint64 :offset-assert 336) + (rider-index int16 :offset-assert 344) + (start-pos vector :inline :offset-assert 352) + (jump-cursor blow-tower-path-cursor :inline :offset-assert 368) + (jump-start-pos vector :inline :offset-assert 496) + (jump-start-quat quaternion :inline :offset-assert 512) + (jump-end-pos vector :inline :offset-assert 528) + (jump-end-quat quaternion :inline :offset-assert 544) + (apex-height float :offset-assert 560) + (total-jump-time uint64 :offset-assert 568) + (jump-start-time uint64 :offset-assert 576) + (jump-height-percentage-start float :offset-assert 584) + (jump-height-percentage-end float :offset-assert 588) + (jump-time-offset float :offset-assert 592) + (ragdoll-proc uint64 :offset-assert 600) + (no-real-rider? basic :offset-assert 608) + (jump-time-scalar float :offset-assert 612) + (start-ride-time uint64 :offset-assert 616) + (hit-sound uint32 :offset-assert 624) + (breathe-sound uint32 :offset-assert 628) + (landed-on-player? basic :offset-assert 632) + ) + :method-count-assert 55 + :size-assert #x27c + :flag-assert #x370200027c + (:methods + (bt-grunt-method-46 () none) ;; 46 + (bt-grunt-method-47 () none) ;; 47 + (bt-grunt-method-48 () none) ;; 48 + (bt-grunt-method-49 () none) ;; 49 + (bt-grunt-method-50 () none) ;; 50 + (bt-grunt-method-51 () none) ;; 51 + (bt-grunt-method-52 () none) ;; 52 + (bt-grunt-method-53 () none) ;; 53 + (bt-grunt-method-54 () none) ;; 54 + ) + (:state-methods + riding-idle-ship ;; 44 + idle ;; 28 + waiting-to-jump ;; 38 + jumping-start ;; 43 + jumping ;; 42 + riding-land ;; 39 + riding-idle ;; 40 + riding-attack ;; 41 + dormant ;; 29 + ragdolled ;; 45 + ) + ) +|# + +#| +(deftype bt-missile (blow-tower-enemy) + ((xforms UNKNOWN 4 :offset-assert 256) + (parent-xform xform :inline :offset-assert 256) + (last-parent-quat quaternion :inline :offset-assert 448) + (local-xform xform :inline :offset-assert 304) + (base-y float :offset-assert 464) + (bob-xform xform :inline :offset-assert 352) + (bob-orient xform :inline :offset-assert 400) + (bobbers UNKNOWN 3 :offset-assert 472) + (target uint64 :offset-assert 760) + (chase-start-time uint64 :offset-assert 768) + (chase-end-time uint64 :offset-assert 776) + (chase-start-dist float :offset-assert 784) + (preferred-height-offset float :offset-assert 788) + (particle-trail basic :offset-assert 792) + (travel-sound uint32 :offset-assert 796) + (dumb-fire? basic :offset-assert 800) + (dumb-speed float :offset-assert 804) + (dumb-start vector :inline :offset-assert 816) + (dumb-dest vector :inline :offset-assert 832) + ) + :method-count-assert 41 + :size-assert #x350 + :flag-assert #x2902d00350 + (:methods + (bt-missile-method-40 () none) ;; 40 + ) + (:state-methods + idle ;; 28 + chasing ;; 38 + explode ;; 39 + ) + ) +|# + +#| +(deftype kg-bombbot (bombbot) + ((start-time uint64 :offset-assert 1512) + ) + :method-count-assert 209 + :size-assert #x5f0 + :flag-assert #xd1057005f0 + (:state-methods + hostile ;; 38 + die ;; 40 + ) + ) +|# + +;; (define-extern bt-roboguard-init-by-other function) +;; (define-extern bt-roboguard-turret-code function) +;; (define-extern bt-roboguard-turn-torso-post function) +;; (define-extern spawn-bt-roboguard-projectile function) +;; (define-extern bt-roboguard-fire-backcheck function) +;; (define-extern bt-mh-flyer-flight-code function) +;; (define-extern bt-grunt-init-by-other function) +;; (define-extern bt-grunt-idle-code function) +;; (define-extern *grunt-jump-curve* object) +;; (define-extern *grunt-dists* object) +;; (define-extern grunt-part-callback function) +;; (define-extern *grunt-idle-shift* curve2d-fast) +;; (define-extern bt-missile-init-by-other function) +;; (define-extern kg-bombbot-find-nearest-nav-mesh function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; comba-init ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern comba-login function) +;; (define-extern comba-activate function) +;; (define-extern comba-deactivate function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; race-hud ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; flut-racer ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype flut-racer (nav-enemy) + ((current-ring uint8 :offset-assert 620) + (taskman uint64 :offset-assert 624) + (minimap connection-minimap :offset-assert 632) + (probe vector :inline :offset-assert 640) + (last-speed-update uint64 :offset-assert 656) + ) + :method-count-assert 193 + :size-assert #x298 + :flag-assert #xc102200298 + (:state-methods + wait ;; 190 + race ;; 191 + jump ;; 44 + halt ;; 192 + ) + ) +|# + +;; (define-extern *flut-racer-enemy-info* nav-enemy-info) +;; (define-extern ring-hit-logic function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; factory-boss-part ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *range-factory-boss-shot-explo-color* curve-color-fast) +;; (define-extern *range-factory-boss-shot-explo-alpha* curve2d-fast) +;; (define-extern *range-factory-boss-shot-explo-scale-x* curve2d-fast) +;; (define-extern *range-factory-boss-shot-explo-scale-y* curve2d-fast) +;; (define-extern *curve-factory-boss-shot-explo-alpha* curve2d-fast) +;; (define-extern *curve-factory-boss-shot-explo-scale-x* curve2d-fast) +;; (define-extern *curve-factory-boss-shot-explo-scale-y* curve2d-fast) +;; (define-extern *part-factory-boss-shot-explosion-texture-curve-settings* object) +;; (define-extern *part-factory-boss-machine-explosion-texture-curve-settings* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; missile-bot ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype missile-bot (nav-enemy) + ((traj trajectory :inline :offset-assert 624) + (initial-y float :offset-assert 664) + (top-spin-jm basic :offset-assert 668) + (top-angle float :offset-assert 672) + (main-jm basic :offset-assert 676) + (height-bob bouncing-float :inline :offset-assert 680) + (height-bob-rand delayed-rand-float :inline :offset-assert 720) + (main-wobble oscillating-vector :inline :offset-assert 752) + (main-wobble-rand delayed-rand-vector :inline :offset-assert 816) + (thruster-part basic :offset-assert 864) + (lightning UNKNOWN 6 :offset-assert 868) + (lightning-wobble UNKNOWN 3 :offset-assert 896) + (lightning-wobble-rand UNKNOWN 3 :offset-assert 1088) + (lightning-mode uint64 :offset-assert 1232) + (lightning-timer uint64 :offset-assert 1240) + (lightning-sound uint32 :offset-assert 1248) + (lightning-sound-playing basic :offset-assert 1252) + (glows-on basic :offset-assert 1256) + (spin float :offset-assert 1260) + (engine-sound uint32 :offset-assert 1264) + (engine-sound-playing basic :offset-assert 1268) + (explosion-sound-index int8 :offset-assert 1272) + (spin-whoosh-timer uint64 :offset-assert 1280) + (will-hit-errol basic :offset-assert 1288) + (spark-part basic :offset-assert 1292) + (spark-part-on basic :offset-assert 1296) + (spark-timer uint64 :offset-assert 1304) + ) + :method-count-assert 195 + :size-assert #x520 + :flag-assert #xc304a00520 + (:methods + (missile-bot-method-194 () none) ;; 194 + ) + (:state-methods + jump ;; 44 + kicked ;; 191 + knocked ;; 31 + notice ;; 35 + fizzle ;; 190 + hostile ;; 38 + lift-off ;; 192 + die ;; 40 + explode ;; 193 + ) + ) +|# + +;; (define-extern *missile-bot-nav-enemy-info* nav-enemy-info) +;; (define-extern stunned? function) +;; (define-extern missile-bot-get-kick-time function) +;; (define-extern missile-bot-find-dest function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; factory-boss-scenes ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *range-fbme-dust-color* curve-color-fast) +;; (define-extern *range-fbme-dust-alpha* curve2d-fast) +;; (define-extern *range-fbme-dust-scale-x* curve2d-fast) +;; (define-extern *range-fbme-dust-scale-y* curve2d-fast) +;; (define-extern *curve-fbme-dust-alpha* curve2d-fast) +;; (define-extern *curve-fbme-dust-scale-x* curve2d-fast) +;; (define-extern *curve-fbme-dust-scale-y* curve2d-fast) +;; (define-extern *part-fac-boss-missile-explosion-dust-in-curve-settings* object) +;; (define-extern *range-fbme-color* curve-color-fast) +;; (define-extern *range-fbme-alpha* curve2d-fast) +;; (define-extern *range-fbme-scale-x* curve2d-fast) +;; (define-extern *range-fbme-scale-y* curve2d-fast) +;; (define-extern *curve-fbme-alpha* curve2d-fast) +;; (define-extern *curve-fbme-scale-x* curve2d-fast) +;; (define-extern *curve-fbme-scale-y* curve2d-fast) +;; (define-extern *part-fac-boss-missile-explosion-texture-curve-settings* object) +;; (define-extern spt-birth-func-part-factory-debris-trails function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; nst-eggs-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *nest-eggs-speech-list* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; nst-gas ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype task-manager-nest-cocoon-gas (task-manager) + ((vehicle-handle uint64 :offset-assert 240) + (poison-cloud-timer uint64 :offset-assert 248) + (poison-level float :offset-assert 256) + (played-damus-talkbox? basic :offset-assert 260) + (minimap connection-minimap :offset-assert 264) + (complain-time uint64 :offset-assert 272) + (played-gas-warning basic :offset-assert 280) + (part basic :offset-assert 284) + ) + :method-count-assert 33 + :size-assert #x120 + :flag-assert #x2100a00120 + (:state-methods + active ;; 15 + paused ;; 32 + ) + ) +|# + +;; (define-extern *nest-poison-center* object) +;; (define-extern *garage-center* object) +;; (define-extern set-nst-poison! function) +;; (define-extern birth-func-set-fog-num function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; nst-tasks ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype task-manager-nest-cocoons (task-manager) + ((vehicle-handle uint64 :offset-assert 236) + (cocoon-manager-entity basic :offset-assert 244) + (cocoon-count int32 :offset-assert 248) + (kill-cocoon-speech int32 :offset-assert 252) + (minimap connection-minimap :offset-assert 256) + (actor-group uint32 :offset-assert 260) + (actor-group-count int32 :offset-assert 264) + (tunnel basic :offset-assert 268) + ) + :method-count-assert 36 + :size-assert #x114 + :flag-assert #x2400a00114 + (:methods + (task-manager-nest-cocoons-method-32 () none) ;; 32 + (task-manager-nest-cocoons-method-33 () none) ;; 33 + (task-manager-nest-cocoons-method-34 () none) ;; 34 + (task-manager-nest-cocoons-method-35 () none) ;; 35 + ) + (:state-methods + active ;; 15 + resolution ;; 17 + ) + ) +|# + +;; (define-extern setup-scorpion function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; wcar-marauder ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype v-marauder (wcar-base) + ((jmod-axles UNKNOWN 4 :offset-assert 2752) + (jmod-gun-x joint-mod-rotate-local :inline :offset-assert 2880) + (jmod-gun-y joint-mod-rotate-local :inline :offset-assert 2912) + (jmod-hatch joint-mod-rotate-local :inline :offset-assert 2944) + (turret-control turret-control :inline :offset-assert 2976) + (inaccuracy-factor float :offset-assert 3072) + (sub-state-time uint32 :offset-assert 3076) + (sub-state int8 :offset-assert 3080) + ) + :method-count-assert 204 + :size-assert #xc09 + :flag-assert #xcc0b900c09 + (:methods + (v-marauder-method-203 () none) ;; 203 + ) + (:state-methods + explode ;; 60 + ) + ) +|# + +;; (define-extern *v-marauder-turret-control-info* object) +;; (define-extern *v-marauder-turret-guard-settings* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; desertd-texture ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *desertd-water-texture-anim-array* texture-anim-array) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ctyfarm-obs ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype farm-marrow (process-drawable) + () + :method-count-assert 21 + :size-assert #xc8 + :flag-assert #x15005000c8 + (:state-methods + idle ;; 20 + ) + ) +|# + +#| +(deftype farm-beetree (process-drawable) + () + :method-count-assert 21 + :size-assert #xc8 + :flag-assert #x15005000c8 + (:state-methods + idle ;; 20 + ) + ) +|# + +#| +(deftype farm-cabbage (process-drawable) + () + :method-count-assert 21 + :size-assert #xc8 + :flag-assert #x15005000c8 + (:state-methods + idle ;; 20 + ) + ) +|# + +#| +(deftype farm-small-cabbage (process-drawable) + () + :method-count-assert 21 + :size-assert #xc8 + :flag-assert #x15005000c8 + (:state-methods + idle ;; 20 + ) + ) +|# + +#| +(deftype farm-chilirots (process-drawable) + () + :method-count-assert 21 + :size-assert #xc8 + :flag-assert #x15005000c8 + (:state-methods + idle ;; 20 + ) + ) +|# + +#| +(deftype farm-sprinkler-barrels (process-drawable) + () + :method-count-assert 21 + :size-assert #xc8 + :flag-assert #x15005000c8 + (:state-methods + idle ;; 20 + ) + ) +|# + +;; (define-extern check-farm-piece-ground function) ;; (function sparticle-system sparticle-cpuinfo matrix none) +;; (define-extern farm-activate function) ;; (function level none) +;; (define-extern birth-func-ctyfarma-drip function) ;; (function int sparticle-cpuinfo sparticle-launchinfo none) +;; (define-extern check-drop-level-ctyfarma-drop-userdata function) ;; (function sparticle-system sparticle-cpuinfo matrix none) +;; (define-extern birth-func-ctyfarmb-drip function) ;; (function int sparticle-cpuinfo sparticle-launchinfo none) +;; (define-extern check-drop-level-ctyfarmb-drop-userdata function) ;; (function sparticle-system sparticle-cpuinfo matrix none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ctyfarma-part ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ctyfarmb-part ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; h-warf ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype h-warf (hvehicle) + ((minalt float :offset-assert 944) + (curalt float :offset-assert 948) + (maxalt float :offset-assert 952) + (forward vector :inline :offset-assert 960) + (langvel vector :inline :offset-assert 976) + (rollerr float :offset-assert 992) + (pitcherr float :offset-assert 996) + (straighterr float :offset-assert 1000) + (alterr float :offset-assert 1004) + (rolling basic :offset-assert 1008) + (speed float :offset-assert 1012) + (poierr float :offset-assert 1016) + (poipos float :offset-assert 1020) + (poivel float :offset-assert 1024) + (bigshotcount int8 :offset-assert 1028) + (deathspin basic :offset-assert 1032) + (deathrot vector :inline :offset-assert 1040) + (birth uint64 :offset-assert 1056) + (stop-time uint64 :offset-assert 1064) + (bounce-state? basic :offset-assert 1072) + (bounce-angle float :offset-assert 1076) + (fire-time UNKNOWN 4 :offset-assert 1080) + (l1-fire-time uint64 :offset-assert 1112) + (l1-recharge-time uint64 :offset-assert 1120) + (snd-cmd-time uint64 :offset-assert 1128) + (damage-loop uint32 :offset-assert 1136) + (damage-loop-playing? basic :offset-assert 1140) + (damage-loop-index uint8 :offset-assert 1144) + (engine-sound uint32 :offset-assert 1148) + (engine-boost-sound uint32 :offset-assert 1152) + (wind-noise-sound uint32 :offset-assert 1156) + (wind-noise-playing? basic :offset-assert 1160) + (track-obj uint64 :offset-assert 1168) + (track-joint int8 :offset-assert 1176) + (wind float :offset-assert 1180) + ) + :method-count-assert 165 + :size-assert #x4a0 + :flag-assert #xa5042004a0 + (:methods + (h-warf-method-162 () none) ;; 162 + (h-warf-method-163 () none) ;; 163 + (h-warf-method-164 () none) ;; 164 + ) + ) +|# + +#| +(deftype warf-asc (structure) + ((asc float :offset-assert 0) + (des float :offset-assert 4) + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +;; (define-extern *h-warf-center-of-level* object) +;; (define-extern *h-warf-constants* object) +;; (define-extern impact-reduction function) +;; (define-extern steer-attenuation function) +;; (define-extern ascention-atten! function) +;; (define-extern world-to-local-vec! function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; comb-part ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; hover-nav-factoryd ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *factoryd-adjacency* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; factory-mood ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype factory-states (structure) + ((light light-state :inline :offset-assert 0) + (blink0 float :offset-assert 8) + (blink1 float :offset-assert 12) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype factoryd-states (structure) + ((electricity electricity-state :inline :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +;; (define-extern update-mood-factory function) +;; (define-extern update-mood-factoryd function) +;; (define-extern set-factoryd-light! function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; destroy-dark-eco ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype hud-eco-egg (hud) + () + :method-count-assert 27 + :size-assert #xac4 + :flag-assert #x1b0a500ac4 + ) +|# + +#| +(deftype lightning-bolt-tower (lightning-bolt) + () + :method-count-assert 23 + :size-assert #x74 + :flag-assert #x1700000074 + ) +|# + +#| +(deftype tower-lightning-disc (structure) + ((bolt basic :offset-assert 0) + (orient quaternion :inline :offset-assert 16) + (cur-state basic :offset-assert 32) + (last-spawn-time uint64 :offset-assert 40) + (pts UNKNOWN 8 :offset-assert 48) + (last-rot-angle float :offset-assert 176) + ) + :method-count-assert 9 + :size-assert #xb4 + :flag-assert #x9000000b4 + ) +|# + +#| +(deftype dark-eco-orb (process-focusable) + ((last-attack-id uint32 :offset-assert 208) + (hit-points float :offset-assert 212) + (alt-actor basic :offset-assert 216) + (movie? basic :offset-assert 220) + (minimap connection-minimap :offset-assert 224) + (discs UNKNOWN 2 :offset-assert 240) + (shock-sound uint32 :offset-assert 624) + (plasma-sound uint32 :offset-assert 628) + (shock-spawn-time uint64 :offset-assert 632) + ) + :method-count-assert 32 + :size-assert #x280 + :flag-assert #x2002000280 + (:state-methods + die-movie ;; 31 + die ;; 30 + active ;; 28 + hit ;; 29 + ) + ) +|# + +#| +(deftype dark-eco-tower (process-drawable) + ((puffer? basic :offset-assert 200) + (puffer-h uint64 :offset-assert 208) + (jump-y float :offset-assert 216) + (jump-z float :offset-assert 220) + (creak-sound basic :offset-assert 224) + ) + :method-count-assert 21 + :size-assert #xe4 + :flag-assert #x15007000e4 + (:state-methods + idle ;; 20 + ) + ) +|# + +#| +(deftype tower-wave (structure) + ((start float :offset-assert 0) + (end float :offset-assert 4) + (freq float :offset-assert 8) + (amp float :offset-assert 12) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype task-manager-destroy-darkeco (task-manager) + ((actor-group uint32 :offset-assert 236) + (actor-group-count int32 :offset-assert 240) + (handles UNKNOWN 64 :offset-assert 244) + (orb-handles UNKNOWN 8 :offset-assert 756) + (orb-status UNKNOWN 8 :offset-assert 820) + (counter uint32 :offset-assert 852) + (initial-orb uint64 :offset-assert 860) + ) + :method-count-assert 32 + :size-assert #x368 + :flag-assert #x2002f00368 + ) +|# + +#| +(deftype task-manager-dark-punch-training (task-manager) + ((gui-id uint32 :offset-assert 240) + ) + :method-count-assert 33 + :size-assert #xf4 + :flag-assert #x21008000f4 + (:methods + (task-manager-dark-punch-training-method-32 () none) ;; 32 + ) + (:state-methods + active ;; 15 + ) + ) +|# + +#| +(deftype grind-electricity (process-drawable) + () + :method-count-assert 21 + :size-assert #xc8 + :flag-assert #x15005000c8 + (:state-methods + idle ;; 20 + ) + ) +|# + +;; (define-extern *initial-orb-pos* object) +;; (define-extern dark-eco-orb-event-handler function) +;; (define-extern spawn-shock-effect function) +;; (define-extern *dark-lightning-width* curve2d-fast) +;; (define-extern *dark-tower-lightning* object) +;; (define-extern dark-eco-orb-init-by-other function) +;; (define-extern dark-eco-orb-init-by-other-pos-scale function) +;; (define-extern *dark-eco-tower-waves* array) +;; (define-extern dark-eco-tower-callback function) +;; (define-extern dark-eco-tower-init-by-other function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; factoryc-manager ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype task-manager-factory-assault (task-manager) + ((explode-car-time uint64 :offset-assert 240) + (daxter-done basic :offset-assert 248) + (region-hack basic :offset-assert 252) + ) + :method-count-assert 32 + :size-assert #x100 + :flag-assert #x2000800100 + ) +|# + +;; (define-extern factoryd-activate function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; was-squad-control ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype was-squad-control (squad-control) + ((manager uint64 :offset-assert 816) + (target-count int8 :offset-assert 824) + (process-count int8 :offset-assert 825) + (active-count int8 :offset-assert 826) + (reserve-count int16 :offset-assert 828) + (spawnable-time uint32 :offset-assert 832) + (spawn-time uint32 :offset-assert 836) + (spawn-delay uint32 :offset-assert 840) + (min-spawn-delay uint32 :offset-assert 844) + (max-spawn-delay uint32 :offset-assert 848) + (inaccuracy-factor float :offset-assert 852) + (attack-delay-factor float :offset-assert 856) + (target-speed float :offset-assert 860) + (nav-mesh basic :offset-assert 864) + (units UNKNOWN 10 :offset-assert 872) + ) + :method-count-assert 37 + :size-assert #x3b8 + :flag-assert #x25000003b8 + (:methods + (was-squad-control-method-34 () none) ;; 34 + (was-squad-control-method-35 () none) ;; 35 + (was-squad-control-method-36 () none) ;; 36 + ) + ) +|# + +#| +(deftype was-squad-manager (process) + ((squad basic :offset-assert 128) + ) + :method-count-assert 17 + :size-assert #x84 + :flag-assert #x1100100084 + (:methods + (was-squad-manager-method-15 () none) ;; 15 + (was-squad-manager-method-16 () none) ;; 16 + ) + (:state-methods + idle ;; 14 + ) + ) +|# + +;; (define-extern *was-squad-control* was-squad-control) +;; (define-extern *was-squad-manager* object) +;; (define-extern was-squad-manager-event-handler function) +;; (define-extern was-squad-manager-init-by-other function) +;; (define-extern was-squad-manager-start function) +;; (define-extern was-squad-manager-kill function) +;; (define-extern wvh function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; wvehicle-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype wvehicle-sound-loop-state (structure) + ((id uint32 :offset-assert 0) + (vol float :offset-assert 4) + (pitch float :offset-assert 8) + ) + :method-count-assert 9 + :size-assert #xc + :flag-assert #x90000000c + ) +|# + +#| +(deftype vehicle-wheel-surface (structure) + ((flags vehicle-wheel-surface-flag :offset-assert 0) + (surface-type uint8 :offset-assert 1) + (friction float :offset-assert 4) + (drag float :offset-assert 8) + (depth float :offset-assert 12) + (damage float :offset-assert 16) + (tire-roll-mix UNKNOWN 4 :offset-assert 20) + (tire-roll-hum float :offset-assert 20) + (tire-roll-dirt float :offset-assert 24) + (tire-roll-sand float :offset-assert 28) + (tire-roll-knobby float :offset-assert 32) + (tire-slide-mix UNKNOWN 2 :offset-assert 36) + (tire-slide-road float :offset-assert 36) + (tire-slide-dirt float :offset-assert 40) + ) + :method-count-assert 9 + :size-assert #x2c + :flag-assert #x90000002c + ;; field vehicle-wheel-surface-flag is likely a value type. + ) +|# + +#| +(deftype vehicle-wheel-state (structure) + ((info vehicle-wheel-info :offset-assert 0) + (flags uint8 :offset-assert 4) + (prev-flags uint8 :offset-assert 5) + (handle uint64 :offset-assert 8) + (probe-local-pos vector :inline :offset-assert 16) + (probe-local-dir vector :inline :offset-assert 32) + (local-axis vector :inline :offset-assert 48) + (surface-pos vector :inline :offset-assert 64) + (ground-pos vector :inline :offset-assert 80) + (ground-normal vector :inline :offset-assert 96) + (trans vector :inline :offset-assert 112) + (quat quaternion :inline :offset-assert 128) + (trail-pos UNKNOWN 2 :offset-assert 144) + (surface vehicle-wheel-surface :offset-assert 176) + (pos float :offset-assert 180) + (pos2 float :offset-assert 184) + (inertia float :offset-assert 188) + (steer-angle float :offset-assert 192) + (angle float :offset-assert 196) + (rev float :offset-assert 200) + (x-scale float :offset-assert 204) + (torque float :offset-assert 208) + (braking-torque float :offset-assert 212) + (up-force float :offset-assert 216) + (drive-diff float :offset-assert 220) + (side-vel float :offset-assert 224) + (up-vel float :offset-assert 228) + (forward-vel float :offset-assert 232) + (forward-slip-vel float :offset-assert 236) + (friction-coef float :offset-assert 240) + (sink-depth float :offset-assert 244) + (sin-susp-ang float :offset-assert 248) + (cos-susp-ang float :offset-assert 252) + (part-birth-accum UNKNOWN 4 :offset-assert 256) + (tread-time uint32 :offset-assert 272) + (tread-tracker uint64 :offset-assert 280) + ) + :method-count-assert 9 + :size-assert #x120 + :flag-assert #x900000120 + ) +|# + +#| +(deftype wvehicle-probe-work (structure) + ((local-pos vector :inline :offset-assert 0) + (local-normal vector :inline :offset-assert 16) + (world-pos vector :inline :offset-assert 32) + (world-normal vector :inline :offset-assert 48) + (wheel-axis vector :inline :offset-assert 64) + (side-dir vector :inline :offset-assert 80) + (forward-dir vector :inline :offset-assert 96) + (velocity vector :inline :offset-assert 112) + (probe-uu float :offset-assert 128) + ) + :method-count-assert 9 + :size-assert #x84 + :flag-assert #x900000084 + ) +|# + +#| +(deftype wvehicle-physics-work (structure) + ((mat matrix :inline :offset-assert 0) + (force vector :inline :offset-assert 64) + (velocity vector :inline :offset-assert 80) + (world-pos vector :inline :offset-assert 96) + (world-normal vector :inline :offset-assert 112) + (local-pos vector :inline :offset-assert 128) + (steering-axis vector :inline :offset-assert 144) + (probe-dir vector :inline :offset-assert 160) + (tmp vector :inline :offset-assert 176) + (p-body vector :inline :offset-assert 192) + (axis vector :inline :offset-assert 208) + (dir vector :inline :offset-assert 224) + (ground-normal-sum vector :inline :offset-assert 240) + (ground-pos vector :inline :offset-assert 256) + (forward-dir vector :inline :offset-assert 272) + (side-dir vector :inline :offset-assert 288) + (wheel-axis vector :inline :offset-assert 304) + (wsphere sphere :inline :offset-assert 320) + (friction-coef float :offset-assert 336) + (wheel-radius float :offset-assert 340) + (side-force float :offset-assert 344) + (forward-force float :offset-assert 348) + (max-forward-tire-grip float :offset-assert 352) + (max-side-tire-grip float :offset-assert 356) + (inertia-eff float :offset-assert 360) + (ground-torque float :offset-assert 364) + (braking-torque float :offset-assert 368) + (total-torque float :offset-assert 372) + (limit-braking-torque float :offset-assert 376) + (max-braking-torque float :offset-assert 380) + (surface-drag float :offset-assert 384) + (water-y float :offset-assert 388) + (cur-time uint32 :offset-assert 392) + (surface-type uint8 :offset-assert 396) + (surface-depth float :offset-assert 400) + (material uint64 :offset-assert 408) + (probe-work-array UNKNOWN 4 :offset-assert 416) + (cquery collide-query :inline :offset-assert 992) + ) + :method-count-assert 9 + :size-assert #x5fc + :flag-assert #x9000005fc + ) +|# + +#| +(deftype wvehicle (vehicle) + ((race race-control :inline :offset-assert 704) + (target-status squad-target-status :inline :offset-assert 800) + (ai-controls vehicle-controls :inline :offset-assert 868) + (minimap connection-minimap :offset-assert 892) + (net basic :offset-assert 896) + (engine-rev float :offset-assert 900) + (engine-inertia float :offset-assert 904) + (engine-torque float :offset-assert 908) + (engine-max-torque float :offset-assert 912) + (engine-rpm float :offset-assert 916) + (sound-engine-rpm float :offset-assert 920) + (wheel-rev float :offset-assert 924) + (wheel-inertia float :offset-assert 928) + (wheel-torque float :offset-assert 932) + (wheel-braking-torque float :offset-assert 936) + (wheel-ground-torque float :offset-assert 940) + (clutch-grab float :offset-assert 944) + (gear-ratio float :offset-assert 948) + (final-drive-ratio float :offset-assert 952) + (total-gear-ratio float :offset-assert 956) + (inv-total-gear-ratio float :offset-assert 960) + (avg-drive-wheel-radius float :offset-assert 964) + (drive-wheel-inertia float :offset-assert 968) + (clutch-inertia float :offset-assert 972) + (idle-throttle float :offset-assert 976) + (susp-spring-control float :offset-assert 980) + (jump-control float :offset-assert 984) + (ai-min-speed float :offset-assert 988) + (ai-max-speed float :offset-assert 992) + (shortcut-speed-factor float :offset-assert 996) + (path-deviation float :offset-assert 1000) + (turbo-supply float :offset-assert 1004) + (turbo-ready float :offset-assert 1008) + (ai-state uint8 :offset-assert 1012) + (return-ai-state uint8 :offset-assert 1013) + (i-barrel int8 :offset-assert 1014) + (shift-state uint8 :offset-assert 1015) + (gear-select int8 :offset-assert 1016) + (next-gear-select int8 :offset-assert 1017) + (shift-time uint32 :offset-assert 1020) + (impact rigid-body-impact :inline :offset-assert 1024) + (wheel UNKNOWN 4 :offset-assert 1088) + (gravity-dir vector :inline :offset-assert 2240) + (ai-target-point vector :inline :offset-assert 2256) + (surface-velocity vector :inline :offset-assert 2272) + (turret-local-pos vector :inline :offset-assert 2288) + (gun-local-pos vector :inline :offset-assert 2304) + (gun-local-dir vector :inline :offset-assert 2320) + (gun-aim-yaw float :offset-assert 2336) + (gun-aim-yaw-vel float :offset-assert 2340) + (gun-targ-yaw float :offset-assert 2344) + (gun-targ-pitch float :offset-assert 2348) + (gun-yaw float :offset-assert 2352) + (gun-pitch float :offset-assert 2356) + (gun-yaw-vel float :offset-assert 2360) + (gun-pitch-vel float :offset-assert 2364) + (gun-kick float :offset-assert 2368) + (lock-turret basic :offset-assert 2372) + (tire-roll-loop-state UNKNOWN 4 :offset-assert 2376) + (tire-slide-loop-state UNKNOWN 2 :offset-assert 2440) + (engine1-sound-id uint32 :offset-assert 2472) + (engine2-sound-id uint32 :offset-assert 2476) + (engine3-sound-id uint32 :offset-assert 2480) + (damage-sound-id uint32 :offset-assert 2484) + (water-sound-id uint32 :offset-assert 2488) + (turbo-sound-id uint32 :offset-assert 2492) + (shortcut-time uint32 :offset-assert 2496) + (overturned-time uint32 :offset-assert 2500) + (splash-time uint32 :offset-assert 2504) + (knobby-time uint32 :offset-assert 2508) + (susp-creak-time uint32 :offset-assert 2512) + (shoot-time uint32 :offset-assert 2516) + (shoot-delay uint32 :offset-assert 2520) + (jump-time uint32 :offset-assert 2524) + (ground-time uint32 :offset-assert 2528) + (ram-time uint32 :offset-assert 2532) + (attached-array UNKNOWN 16 :offset-assert 2536) + (eng1-vol float :offset-assert 2664) + (eng2-vol float :offset-assert 2668) + (eng3-vol float :offset-assert 2672) + (eng-pitch-variance float :offset-assert 2676) + (eng-pitch-variance-seek float :offset-assert 2680) + (eng-vol-variance float :offset-assert 2684) + (eng-vol-variance-seek float :offset-assert 2688) + (eng-pitch-offset float :offset-assert 2692) + (eng-flutter-envelope float :offset-assert 2696) + (water-sound-envelope float :offset-assert 2700) + (other-proc uint64 :offset-assert 2704) + (other-pos vector :inline :offset-assert 2720) + ) + :method-count-assert 203 + :size-assert #xab0 + :flag-assert #xcb0a300ab0 + (:methods + (wvehicle-method-152 () none) ;; 152 + (wvehicle-method-153 () none) ;; 153 + (wvehicle-method-154 () none) ;; 154 + (wvehicle-method-155 () none) ;; 155 + (wvehicle-method-156 () none) ;; 156 + (wvehicle-method-157 () none) ;; 157 + (wvehicle-method-158 () none) ;; 158 + (wvehicle-method-159 () none) ;; 159 + (wvehicle-method-160 () none) ;; 160 + (wvehicle-method-161 () none) ;; 161 + (wvehicle-method-162 () none) ;; 162 + (wvehicle-method-163 () none) ;; 163 + (wvehicle-method-164 () none) ;; 164 + (wvehicle-method-165 () none) ;; 165 + (wvehicle-method-166 () none) ;; 166 + (wvehicle-method-167 () none) ;; 167 + (wvehicle-method-168 () none) ;; 168 + (wvehicle-method-169 () none) ;; 169 + (wvehicle-method-170 () none) ;; 170 + (wvehicle-method-171 () none) ;; 171 + (wvehicle-method-172 () none) ;; 172 + (wvehicle-method-173 () none) ;; 173 + (wvehicle-method-174 () none) ;; 174 + (wvehicle-method-175 () none) ;; 175 + (wvehicle-method-176 () none) ;; 176 + (wvehicle-method-177 () none) ;; 177 + (wvehicle-method-178 () none) ;; 178 + (wvehicle-method-179 () none) ;; 179 + (wvehicle-method-180 () none) ;; 180 + (wvehicle-method-181 () none) ;; 181 + (wvehicle-method-182 () none) ;; 182 + (wvehicle-method-183 () none) ;; 183 + (wvehicle-method-184 () none) ;; 184 + (wvehicle-method-185 () none) ;; 185 + (wvehicle-method-186 () none) ;; 186 + (wvehicle-method-187 () none) ;; 187 + (wvehicle-method-188 () none) ;; 188 + (wvehicle-method-189 () none) ;; 189 + (wvehicle-method-190 () none) ;; 190 + (wvehicle-method-191 () none) ;; 191 + (wvehicle-method-192 () none) ;; 192 + (wvehicle-method-193 () none) ;; 193 + (wvehicle-method-194 () none) ;; 194 + (wvehicle-method-195 () none) ;; 195 + (wvehicle-method-196 () none) ;; 196 + (wvehicle-method-197 () none) ;; 197 + (wvehicle-method-198 () none) ;; 198 + (wvehicle-method-199 () none) ;; 199 + (wvehicle-method-200 () none) ;; 200 + (wvehicle-method-201 () none) ;; 201 + (wvehicle-method-202 () none) ;; 202 + ) + ) +|# + +#| +(deftype wvehicle-ai-drop-off-params (structure) + ((dest vector :inline :offset-assert 0) + (proc basic :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x14 + :flag-assert #x900000014 + ) +|# + +;; (define-extern rpm->radians-per-sec function) +;; (define-extern radians-per-sec->rpm function) +;; (define-extern wvehicle-surface-type-from-material function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; wvehicle-part ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern sparticle-motion-blur-dirt function) +;; (define-extern spt-birth-func-brightness-buggy-rocks function) +;; (define-extern spt-birth-func-part-buggy-rocks function) +;; (define-extern spt-birth-func-part-dbuggy-debris function) +;; (define-extern *range-wv-wsplash-color* curve-color-fast) +;; (define-extern *range-wv-wsplash-alpha* curve2d-fast) +;; (define-extern *range-wv-wsplash-scale-x* curve2d-fast) +;; (define-extern *range-wv-wsplash-scale-y* curve2d-fast) +;; (define-extern *curve-wv-wsplash-alpha* curve2d-fast) +;; (define-extern *curve-wv-wsplash-scale-x* curve2d-fast) +;; (define-extern *curve-wv-wsplash-scale-y* curve2d-fast) +;; (define-extern *part-wv-water-splash-curve-settings* object) +;; (define-extern *range-wv-splash-color* curve-color-fast) +;; (define-extern *range-wv-splash-alpha* curve2d-fast) +;; (define-extern *range-wv-splash-scale-x* curve2d-fast) +;; (define-extern *range-wv-splash-scale-y* curve2d-fast) +;; (define-extern *curve-wv-splash-alpha* curve2d-fast) +;; (define-extern *curve-wv-splash-scale-x* curve2d-fast) +;; (define-extern *curve-wv-splash-scale-y* curve2d-fast) +;; (define-extern *part-wv-water-splash-center-curve-settings* object) +;; (define-extern check-scorp-shell-level1 function) +;; (define-extern check-scorp-shell-level2 function) +;; (define-extern *curve-toad-linear-up-red* object) +;; (define-extern *trail-color-curve-toad-grenade* curve-color-fast) +;; (define-extern *curve-grenade-linear-toad-trail* curve2d-fast) +;; (define-extern *toad-grenade-trail* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; vinroom-scenes ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; wvehicle-obs ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype turbo-pickup (process-drawable) + ((available symbol :offset-assert 200) ;; guessed by decompiler + (persistent basic :offset-assert 204) + (birth-time uint64 :offset-assert 208) + (collector uint64 :offset-assert 216) + ) + :method-count-assert 23 + :size-assert #xe0 + :flag-assert #x17006000e0 + (:methods + (turbo-pickup-method-22 () none) ;; 22 ;; (find-ground (_type_) symbol 22) + ) + (:state-methods + idle ;; 20, old: (idle () _type_ :state 20) + die ;; 21, old: (die () _type_ :state 21) + ) + ) +|# + +;; (define-extern turbo-pickup-init-by-other function) ;; (function vector none :behavior turbo-pickup) +;; (define-extern race-turbo-pickup-spawn function) +;; (define-extern turbo-pickup-spawn function) ;; (function process vector turbo-pickup :behavior turbo-pickup) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; wvehicle ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ltnfxhip-texture ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *ltnfxhip-texture-anim-array* texture-anim-array) +;; (define-extern ltnfxhip-texture-anim-func function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; wvehicle-physics ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *wvehicle-surfaces* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; wlander-male ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype wlander (civilian) + ((mad-level float :offset-assert 1128) + (los los-control :inline :offset-assert 1136) + (target-pos vector :inline :offset-assert 1312) + (gun-joint int32 :offset-assert 1328) + (gun-axis int32 :offset-assert 1332) + (gun-length float :offset-assert 1336) + (shoot-time uint64 :offset-assert 1344) + (last-time-far uint64 :offset-assert 1352) + (last-time-los uint64 :offset-assert 1360) + (shot-sound int32 :offset-assert 1368) + (knocked-collide basic :offset-assert 1372) + (knocked-speed-scale float :offset-assert 1384) + (male basic :offset-assert 1388) + ) + :method-count-assert 243 + :size-assert #x570 + :flag-assert #xf304f00570 + (:methods + (wlander-method-238 () none) ;; 238 + (wlander-method-239 () none) ;; 239 + (wlander-method-240 () none) ;; 240 + (wlander-method-241 () none) ;; 241 + (wlander-method-242 () none) ;; 242 + ) + (:state-methods + knocked-recover ;; 32 + knocked ;; 31 + standing ;; 236 + active ;; 34 + gun-shoot ;; 234 + hostile ;; 38 + panic ;; 237 + close-attack ;; 235 + ) + ) +|# + +#| +(deftype wlander-male (wlander) + () + :method-count-assert 243 + :size-assert #x570 + :flag-assert #xf304f00570 + (:state-methods + gun-shoot ;; 234 + standing ;; 236 + close-attack ;; 235 + ) + ) +|# + +#| +(deftype wlander-female (wlander) + ((gunout basic :offset-assert 1392) + ) + :method-count-assert 243 + :size-assert #x574 + :flag-assert #xf305000574 + (:state-methods + wait ;; 190 + close-attack ;; 235 + gun-shoot ;; 234 + ) + ) +|# + +;; (define-extern wlander-travel-anim function) +;; (define-extern *wlander-male-nav-enemy-info* nav-enemy-info) +;; (define-extern wlander-male-joint-callback function) +;; (define-extern *wlander-female-nav-enemy-info* nav-enemy-info) +;; (define-extern wlander-female-joint-callback function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; wvehicle-hud ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype hud-vehicle-turbo (hud) + ((tex-rim basic :offset-assert 2756) + (tex-on basic :offset-assert 2760) + (tex-off basic :offset-assert 2764) + ) + :method-count-assert 27 + :size-assert #xad0 + :flag-assert #x1b0a500ad0 + ) +|# + +;; (define-extern hud-vehicle-turbo-spawn function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; flitter ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype flitter (nav-enemy) + ((move-angle float :offset-assert 620) + (heading basic :offset-assert 624) + (change-dir-time uint64 :offset-assert 632) ;; time-frame + (last-change-dir uint64 :offset-assert 640) + (off-screen-timer uint64 :offset-assert 648) + (amb-sound-timer uint64 :offset-assert 656) + (attack-time uint64 :offset-assert 664) ;; time-frame + (target-pos vector :inline :offset-assert 672) + (attack-pos vector :inline :offset-assert 688) + (base-height float :offset-assert 704) + (minimap connection-minimap :offset-assert 708) + ) + :method-count-assert 196 + :size-assert #x2c8 + :flag-assert #xc4025002c8 + (:methods + (flitter-method-192 () none) ;; 192 + (flitter-method-193 () none) ;; 193 + (flitter-method-194 () none) ;; 194 + (flitter-method-195 () none) ;; 195 + ) + (:state-methods + ambush-jumping ;; 191 + ambush ;; 47 + active ;; 34 + circling ;; 157 + stare ;; 37 + attack ;; 190 + hostile ;; 38 + die ;; 40 + victory ;; 39 + ) + ) +|# + +;; (define-extern check-drop-level-flitter-dirt-rubble function) ;; (function sparticle-system sparticle-cpuinfo vector none) +;; (define-extern *flitter-nav-enemy-info* nav-enemy-info) ;; nav-enemy-info +;; (define-extern flitter-fall-and-play-death-anim function) ;; (function art-joint-anim float time-frame none :behavior flitter) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; comb-field ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype comb-field (process-drawable) + ((pass int32 :offset-assert 200) + (incoming-attack-id uint32 :offset-assert 204) + (next-message-time uint64 :offset-assert 208) + (message int32 :offset-assert 216) + (plane plane :inline :offset-assert 224) + (color vector :inline :offset-assert 240) + (target-pos vector :inline :offset-assert 256) + (hum-sound-id uint32 :offset-assert 272) + (flash float :offset-assert 276) + (touch-count int32 :offset-assert 280) + (touch-time uint64 :offset-assert 288) + (breach basic :offset-assert 296) + ) + :method-count-assert 24 + :size-assert #x12c + :flag-assert #x1800b0012c + (:methods + (comb-field-method-21 () none) ;; 21 + (comb-field-method-22 () none) ;; 22 + (comb-field-method-23 () none) ;; 23 + ) + (:state-methods + idle-close ;; 20 + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; wcar-projectiles ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype v-scorp-shot (projectile) + ((init-pos vector :inline :offset-assert 512) + (init-dir vector :inline :offset-assert 528) + (collide-normal vector :inline :offset-assert 544) + ) + :method-count-assert 41 + :size-assert #x230 + :flag-assert #x2901b00230 + ) +|# + +#| +(deftype v-snake-shot (v-scorp-shot) + () + :method-count-assert 41 + :size-assert #x230 + :flag-assert #x2901b00230 + ) +|# + +#| +(deftype v-rhino-shot (guard-shot) + () + :method-count-assert 41 + :size-assert #x220 + :flag-assert #x2901a00220 + ) +|# + +#| +(deftype v-toad-shot (projectile) + ((trail-tracker uint64 :offset-assert 512) + (blast-radius float :offset-assert 520) + ) + :method-count-assert 42 + :size-assert #x20c + :flag-assert #x2a0190020c + (:methods + (v-toad-shot-method-41 () none) ;; 41 + ) + (:state-methods + impact ;; 22 + ) + ) +|# + +#| +(deftype v-marauder-shot (guard-shot) + () + :method-count-assert 41 + :size-assert #x220 + :flag-assert #x2901a00220 + ) +|# + +;; (define-extern v-scorp-shot-move function) +;; (define-extern cshape-reaction-scorp-shot function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; wcar ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype wcar-base (wvehicle) + ((rider-hand-joint-array UNKNOWN 2 :offset-assert 2736) + ) + :method-count-assert 203 + :size-assert #xab2 + :flag-assert #xcb0a400ab2 + ) +|# + +#| +(deftype wcar-snake-base (wcar-base) + ((local-gun-pos UNKNOWN 2 :offset-assert 2752) + (jmod-axles UNKNOWN 4 :offset-assert 2784) + (jmod-shock-tops UNKNOWN 4 :offset-assert 2912) + (jmod-shock-mids UNKNOWN 4 :offset-assert 3040) + (jmod-guns UNKNOWN 2 :offset-assert 3296) + ) + :method-count-assert 203 + :size-assert #xd60 + :flag-assert #xcb0ce00d60 + ) +|# + +;; (define-extern *v-turtle-constants* object) +;; (define-extern *v-snake-constants* object) +;; (define-extern *v-scorpion-constants* object) +;; (define-extern *v-toad-constants* object) +;; (define-extern *v-fox-constants* object) +;; (define-extern *v-rhino-constants* object) +;; (define-extern *v-mirage-constants* object) +;; (define-extern *v-x-ride-constants* object) +;; (define-extern *v-marauder-constants* object) +;; (define-extern *v-faccar-constants* object) +;; (define-extern *v-catapult-constants* object) +;; (define-extern *wcar-explosion-info* vehicle-explosion-info) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; wcar-turtle ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype v-turtle (wcar-base) + ((jmod-axles UNKNOWN 4 :offset-assert 2752) + (jmod-shock-tops UNKNOWN 4 :offset-assert 2880) + (jmod-shock-mids UNKNOWN 4 :offset-assert 3008) + (jmod-antenna UNKNOWN 4 :offset-assert 3264) + (ant-tip-vel vector :inline :offset-assert 3392) + (spring-pos vector :inline :offset-assert 3408) + (spring-vel vector :inline :offset-assert 3424) + ) + :method-count-assert 203 + :size-assert #xd70 + :flag-assert #xcb0cf00d70 + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; minee-scenes ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype minee-elevator (process-drawable) + () + :method-count-assert 21 + :size-assert #xc8 + :flag-assert #x15005000c8 + (:state-methods + idle ;; 20 + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; stadiuma-mood ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype stadiumb-states (structure) + ((light light-state :inline :offset-assert 0) + (flame flames-state :inline :offset-assert 8) + ) + :method-count-assert 9 + :size-assert #xf + :flag-assert #x90000000f + ) +|# + +#| +(deftype stadiuma-states (structure) + ((light light-state :inline :offset-assert 0) + (electricity UNKNOWN 2 :offset-assert 8) + ) + :method-count-assert 9 + :size-assert #x28 + :flag-assert #x900000028 + ) +|# + +;; (define-extern update-mood-stadiumb function) ;; (function mood-context float int none :behavior time-of-day-proc) +;; (define-extern init-mood-stadiuma function) +;; (define-extern update-mood-stadiuma function) +;; (define-extern set-stadiuma-electricity-scale! function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; wcar-snake ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype v-snake (wcar-snake-base) + () + :method-count-assert 203 + :size-assert #xd60 + :flag-assert #xcb0ce00d60 + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ash ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype ashelin-anim-info (structure) + ((anim-index int32 :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x4 + :flag-assert #x900000004 + ) +|# + +#| +(deftype ashelin-global-info (basic) + ((prev-blue-hit int8 :offset-assert 4) + (blue-hit-anim int32 6 :offset-assert 8) ;; guessed by decompiler + (blue-hit-land-anim int32 6 :offset-assert 32) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x38 + :flag-assert #x900000038 + ) +|# + +;; (define-extern *ashelin-global-info* ashelin-global-info) ;; ashelin-global-info +;; (define-extern *ashelin-nav-enemy-info* nav-enemy-info) ;; nav-enemy-info + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; wcar-toad ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype v-toad (wcar-base) + ((jmod-axles UNKNOWN 4 :offset-assert 2752) + (jmod-shock-tops UNKNOWN 2 :offset-assert 2880) + (jmod-shock-bots UNKNOWN 2 :offset-assert 2944) + ) + :method-count-assert 204 + :size-assert #xc00 + :flag-assert #xcc0b800c00 + (:methods + (v-toad-method-203 () none) ;; 203 + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; wcar-rhino ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype v-rhino (wcar-base) + ((jmod-axles UNKNOWN 4 :offset-assert 2752) + (jmod-gun-kick joint-mod-add-local :inline :offset-assert 2880) + (jmod-gun-turn joint-mod-rotate-local :inline :offset-assert 2944) + ) + :method-count-assert 203 + :size-assert #xba0 + :flag-assert #xcb0b200ba0 + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; w-parking-spot ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype w-parking-spot (process-drawable) + ((vehicle uint64 :offset-assert 200) + (should-spawn? basic :offset-assert 208) + (should-cleanup? basic :offset-assert 212) + (v-type uint8 :offset-assert 216) + (minimap connection-minimap :offset-assert 220) + (test-sphere sphere :inline :offset-assert 224) + (arrow uint64 :offset-assert 240) + ) + :method-count-assert 27 + :size-assert #xf8 + :flag-assert #x1b008000f8 + (:methods + (w-parking-spot-method-21 () none) ;; 21 + (w-parking-spot-method-22 () none) ;; 22 + (w-parking-spot-method-23 () none) ;; 23 + (w-parking-spot-method-24 () none) ;; 24 + (w-parking-spot-method-25 () none) ;; 25 + (w-parking-spot-method-26 () none) ;; 26 + ) + (:state-methods + idle ;; 20 + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ai-task-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype ai-task (basic) + ((next ai-task :offset-assert 4) ;; guessed by decompiler + (prev ai-task :offset-assert 8) ;; guessed by decompiler + (pool ai-task-pool :offset-assert 12) ;; guessed by decompiler + (unique-id uint32 :offset-assert 16) + (bytes int8 16 :offset-assert 32) ;; guessed by decompiler + ) + :method-count-assert 12 + :size-assert #x30 + :flag-assert #xc00000030 + (:methods + (ai-task-method-9 () none) ;; 9 ;; (reset-task! (_type_) none 9) + (ai-task-method-10 () none) ;; 10 ;; (ai-task-method-10 (_type_ bot) none 10) + (ai-task-method-11 () none) ;; 11 ;; (ai-task-method-11 (_type_ bot) none 11) + ) + ) +|# + +#| +(deftype ai-task-pool (basic) + ((anchor ai-task :offset-assert 4) ;; guessed by decompiler + (tasks (pointer uint32) :offset-assert 8) ;; guessed by decompiler + (tasks-length uint32 :offset-assert 12) + (unique-id uint32 :offset-assert 16) + ) + :method-count-assert 12 + :size-assert #x14 + :flag-assert #xc00000014 + (:methods + (ai-task-pool-method-9 () none) ;; 9 ;; (assign-ids! (_type_ type) ai-task 9) + (ai-task-pool-method-10 () none) ;; 10 ;; (set-next-task! (_type_ ai-task) none 10) + (ai-task-pool-method-11 () none) ;; 11 ;; (ai-task-pool-method-11 (_type_) ai-task 11) + ) + ) +|# + +#| +(deftype ai-task-control (basic) + ((anchor ai-task :offset-assert 4) ;; guessed by decompiler + (pool ai-task-pool :offset-assert 8) ;; guessed by decompiler + ) + :method-count-assert 18 + :size-assert #xc + :flag-assert #x120000000c + (:methods + ;; (new (symbol type ai-task-pool) _type_ 0) + (ai-task-control-method-9 () none) ;; 9 ;; (ai-task-control-method-9 (_type_) none 9) + (ai-task-control-method-10 () none) ;; 10 ;; (ai-task-control-method-10 (_type_ bot) none 10) + (ai-task-control-method-11 () none) ;; 11 ;; (get-task-by-type (_type_ type bot) ai-task 11) + (ai-task-control-method-12 () none) ;; 12 ;; (ai-task-control-method-12 (_type_ bot) symbol 12) + (ai-task-control-method-13 () none) ;; 13 ;; (ai-task-control-method-13 (_type_ ai-task bot) ai-task 13) + (ai-task-control-method-14 () none) ;; 14 ;; (ai-task-control-method-14 (_type_ ai-task bot) none 14) + (ai-task-control-method-15 () none) ;; 15 ;; (init-task! (_type_ type bot) ai-task 15) + (ai-task-control-method-16 () none) ;; 16 ;; (set-next-task-for-pool! (_type_ ai-task) none 16) + (ai-task-control-method-17 () none) ;; 17 ;; (set-next-task! (_type_ ai-task) none 17) + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ash-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype ashelin-course (bot-course) + ((ouch-speeches bot-speech-list-shuffle :offset-assert 48) ;; guessed by decompiler + (victory-speeches bot-speech-list-shuffle :offset-assert 52) ;; guessed by decompiler + ) + :method-count-assert 9 + :size-assert #x38 + :flag-assert #x900000038 + ;; field default-check-too-far uses ~A with a signed load. + ) +|# + +#| +(deftype ashelin (bot) + ((knocked-anim art-joint-anim :offset-assert 1008) ;; guessed by decompiler + (travel-anim-interp float :offset-assert 1012) + (fired-gun-count uint32 :offset-assert 1016) + (last-fire-time uint64 :offset-assert 1024) ;; time-frame + (victory-speech-time uint64 :offset-assert 1032) ;; time-frame + (frontline plane :inline :offset-assert 1040) + ) + :method-count-assert 262 + :size-assert #x420 + :flag-assert #x10603a00420 + (:methods + (ashelin-method-237 () none) ;; 237 ;; (fire-projectile (_type_ vector) none 237) + (ashelin-method-238 () none) ;; 238 ;; (ashelin-method-238 (_type_ symbol symbol) symbol 238) + (ashelin-method-239 () none) ;; 239 ;; (ashelin-method-239 (_type_) none 239) + (ashelin-method-240 () none) ;; 240 ;; (ashelin-method-240 (_type_ int) none 240) + (ashelin-method-241 () none) ;; 241 ;; (ashelin-method-241 (_type_) int 241) + (ashelin-method-242 () none) ;; 242 ;; (ashelin-method-242 (_type_) int 242) + (ashelin-method-243 () none) ;; 243 ;; (ashelin-method-243 (_type_ float) int 243) + (ashelin-method-244 () none) ;; 244 ;; (ashelin-method-244 (_type_) none 244) + (ashelin-method-245 () none) ;; 245 ;; (ashelin-method-245 (_type_) none 245) + (ashelin-method-246 () none) ;; 246 ;; (ashelin-method-246 (_type_) int 246) + (ashelin-method-247 () none) ;; 247 ;; (ashelin-method-247 (_type_) symbol 247) + (ashelin-method-248 () none) ;; 248 ;; (ashelin-method-248 (_type_) symbol 248) + (ashelin-method-249 () none) ;; 249 ;; (ashelin-method-249 (_type_) none 249) + (ashelin-method-250 () none) ;; 250 ;; (ashelin-method-250 (_type_ symbol) none 250) + (ashelin-method-251 () none) ;; 251 + (ashelin-method-252 () none) ;; 252 + (ashelin-method-253 () none) ;; 253 + (ashelin-method-254 () none) ;; 254 + (ashelin-method-255 () none) ;; 255 + (ashelin-method-256 () none) ;; 256 + (ashelin-method-257 () none) ;; 257 + (ashelin-method-258 () none) ;; 258 + (ashelin-method-259 () none) ;; 259 + (ashelin-method-260 () none) ;; 260 + (ashelin-method-261 () none) ;; 261 + ) + ) +|# + +#| +(deftype asht-wait-spot (ai-task) + ((check-done (function asht-wait-spot ashelin symbol) :offset-assert 32) ;; guessed by decompiler + (which-spot int8 :offset-assert 36) + (num-spots uint8 :offset-assert 37) + (spot-indexes uint8 6 :offset-assert 38) ;; guessed by decompiler + ) + :method-count-assert 12 + :size-assert #x30 + :flag-assert #xc00000030 + ) +|# + +#| +(deftype asht-fight-focus (ai-task) + () + :method-count-assert 12 + :size-assert #x30 + :flag-assert #xc00000030 + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ash-shot ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype ashelin-shot (projectile) + ((tail-pos vector :inline :offset-assert 512) + (hit-pos vector :inline :offset-assert 528) + ) + :method-count-assert 41 + :size-assert #x220 + :flag-assert #x2901a00220 + ) +|# + +;; (define-extern ashelin-shot-move function) ;; (function ashelin-shot none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ctywide-texture ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *security-texture-anim-array* texture-anim-array) ;; (texture-anim-array texture-anim) +;; (define-extern set-security-color! function) ;; (function vector vector) +;; (define-extern set-security-flash! function) ;; (function vector vector) +;; (define-extern set-security-texture-masks! function) ;; (function vector symbol) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ash-states ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; marauder ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype marauder (nav-enemy) + ((los los-control :inline :offset-assert 624) + (target-pos vector :inline :offset-assert 800) + (jump-attack basic :offset-assert 816) + (jump-info enemy-jump-info :inline :offset-assert 832) + (save basic :offset-assert 920) + (save-pos vector :inline :offset-assert 928) + (ambush? basic :offset-assert 944) + (knocked-back? basic :offset-assert 948) + (run-anim int32 :offset-assert 952) + (gun? basic :offset-assert 956) + (target-last-attacker? basic :offset-assert 960) + (visible-last uint64 :offset-assert 968) + (traj trajectory :inline :offset-assert 976) + (skip-jump basic :offset-assert 1016) + ) + :method-count-assert 199 + :size-assert #x3fc + :flag-assert #xc7038003fc + (:methods + (marauder-method-196 () none) ;; 196 + (marauder-method-197 () none) ;; 197 + (marauder-method-198 () none) ;; 198 + ) + (:state-methods + save ;; 191 + save-wait ;; 192 + hostile ;; 38 + gun-shoot ;; 194 + jump ;; 44 + jump-out ;; 195 + idle ;; 33 + stare ;; 37 + victory ;; 39 + ambush ;; 47 + attack-run ;; 190 + lava-die ;; 193 + knocked ;; 31 + ) + ) +|# + +#| +(deftype marauder-init-by-other-params (enemy-init-by-other-params) + ((multi-focus basic :offset-assert 48) + (skip-jump basic :offset-assert 52) + ) + :method-count-assert 9 + :size-assert #x38 + :flag-assert #x900000038 + ) +|# + +;; (define-extern *fact-info-marauder-defaults* fact-info-enemy-defaults) +;; (define-extern *marauder-nav-enemy-info* nav-enemy-info) +;; (define-extern marauder-init-by-other function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; guard-tazer ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern spread-lightning-lazer function) ;; (function lightning-control vector vector vector none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ash-oasis-course ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype ashelin-oasis (ashelin) + ((player-in-bounds-time uint64 :offset-assert 1056) + (last-speech-time uint64 :offset-assert 1064) + (last-speech-id int32 :offset-assert 1072) + (last-sound-trans vector :inline :offset-assert 1088) + (last-sound-id uint32 :offset-assert 1104) + (minimap connection-minimap :offset-assert 1108) + ) + :method-count-assert 264 + :size-assert #x458 + :flag-assert #x10803e00458 + (:methods + (ashelin-oasis-method-262 () none) ;; 262 + (ashelin-oasis-method-263 () none) ;; 263 + ) + (:state-methods + traveling ;; 241 + knocked ;; 31 + ) + ) +|# + +;; (define-extern *ash-oasis-course* ashelin-course) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; assault-shared ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype assault-cam-info (structure) + ((pos vector :inline :offset-assert 0) + (mat matrix :inline :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x50 + :flag-assert #x900000050 + ) +|# + +#| +(deftype triangle-dists (structure) + ((dist0 float :offset-assert 0) + (dist1 float :offset-assert 4) + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +#| +(deftype assault-room-collision (structure) + ((cam-matrix matrix :inline :offset-assert 0) + (cam-pos vector :inline :offset-assert 64) + (clip-dists triangle-dists :inline :offset-assert 80) + (hoz-clip-dist float :offset-assert 88) + ) + :method-count-assert 9 + :size-assert #x5c + :flag-assert #x90000005c + ) +|# + +#| +(deftype assault-room (structure) + ((center-pos vector :inline :offset-assert 0) + (cam-info assault-cam-info :offset-assert 16) + (collision assault-room-collision :offset-assert 20) + (node-positions basic :offset-assert 24) + ) + :method-count-assert 9 + :size-assert #x1c + :flag-assert #x90000001c + ) +|# + +#| +(deftype assault-speech-instance (speech-instance) + () + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +;; (define-extern *assault-speech-list* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ctyindb-part ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *ctyindb-steam-b-particle-list* array) +;; (define-extern birth-func-texture-group-steam-b-ctyindb function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; basebutton ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype basebutton (process-focusable) + ((button-status uint16 :offset-assert 208) ;; button-status + (notify-actor entity :offset-assert 212) ;; guessed by decompiler + (actor-group (pointer actor-group) :offset-assert 216) ;; guessed by decompiler + (actor-group-count int32 :offset-assert 220) + (timeout float :offset-assert 224) + (button-id int32 :offset-assert 228) + (event-going-down symbol :offset-assert 232) ;; guessed by decompiler + (event-down symbol :offset-assert 236) ;; guessed by decompiler + (event-going-up symbol :offset-assert 240) ;; guessed by decompiler + (event-up symbol :offset-assert 244) ;; guessed by decompiler + (anim-speed float :offset-assert 248) + (move-to-pos vector :inline :offset-assert 256) + (move-to-quat quaternion :inline :offset-assert 272) + ) + :method-count-assert 40 + :size-assert #x120 + :flag-assert #x2800a00120 + (:methods + (basebutton-method-32 () none) ;; 32 ;; (idle-state-transition (_type_) object 32) + (basebutton-method-33 () none) ;; 33 ;; (basebutton-method-33 (_type_) none 33) + (basebutton-method-34 () none) ;; 34 ;; (basebutton-method-34 (_type_) none 34) + (basebutton-method-35 () none) ;; 35 ;; (prepare-trigger-event! (_type_) none 35) + (basebutton-method-36 () none) ;; 36 ;; (send-event! (_type_ symbol) none 36) + (basebutton-method-37 () none) ;; 37 ;; (move-to! (_type_ vector quaternion) none 37) + (basebutton-method-38 () none) ;; 38 ;; (press! (_type_ symbol) entity-perm-status 38) + (basebutton-method-39 () none) ;; 39 + ) + (:state-methods + up-idle ;; 31, old: (reset! (_type_) none 31) + going-down ;; 29, old: (going-up () _type_ :state 29) + down-idle ;; 28, old: (going-down () _type_ :state 28) + going-up ;; 30, old: (up-idle () _type_ :state 30) + ) + ) +|# + +;; (define-extern basebutton-init-by-other function) ;; (function entity-actor vector quaternion entity-actor symbol float none :behavior basebutton) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; mine-obs-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; mine-obs ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype rat-light-manager (process) + ((actor-group uint32 :offset-assert 124) + (actor-group-count int32 :offset-assert 128) + ) + :method-count-assert 17 + :size-assert #x88 + :flag-assert #x1100100088 + (:methods + (rat-light-manager-method-15 () none) ;; 15 + (rat-light-manager-method-16 () none) ;; 16 + ) + (:state-methods + idle ;; 14 + ) + ) +|# + +#| +(deftype min-rat-engine (process-drawable) + ((init-quat quaternion :inline :offset-assert 204) + (force-pos vector :inline :offset-assert 220) + (actor-group uint32 :offset-assert 236) + (actor-group-count int32 :offset-assert 240) + (rot-speed float :offset-assert 244) + (ang-momentum float :offset-assert 248) + (rat-timer uint64 :offset-assert 252) + (notify-actor basic :offset-assert 260) + (sound-id uint32 :offset-assert 264) + (rat-sound-id uint32 :offset-assert 268) + (rat-wheel-sound-id uint32 :offset-assert 272) + (light-index uint32 :offset-assert 276) + (light-target float :offset-assert 280) + (wheel-angle float :offset-assert 284) + (wheel-sound-volume float :offset-assert 288) + (last-turn-time uint64 :offset-assert 292) + (rat-count uint32 :offset-assert 300) + ) + :method-count-assert 29 + :size-assert #x134 + :flag-assert #x1d00c00134 + (:methods + (min-rat-engine-method-24 () none) ;; 24 + (min-rat-engine-method-25 () none) ;; 25 + (min-rat-engine-method-26 () none) ;; 26 + (min-rat-engine-method-27 () none) ;; 27 + (min-rat-engine-method-28 () none) ;; 28 + ) + (:state-methods + inactive ;; 20 + active ;; 21 + running ;; 22 + shutdown ;; 23 + ) + ) +|# + +#| +(deftype min-crane (process-drawable) + () + :method-count-assert 22 + :size-assert #xc8 + :flag-assert #x16005000c8 + (:methods + (min-crane-method-21 () none) ;; 21 + ) + (:state-methods + idle ;; 20 + ) + ) +|# + +#| +(deftype min-target-sign (mine-platform-base) + ((off-part basic :offset-assert 272) + (on-part basic :offset-assert 276) + (track-pos vector :inline :offset-assert 288) + (alt-actor basic :offset-assert 304) + (touched-train? basic :offset-assert 308) + ) + :method-count-assert 43 + :size-assert #x138 + :flag-assert #x2b00c00138 + (:methods + (min-target-sign-method-42 () none) ;; 42 + ) + (:state-methods + dormant ;; 38 + idle ;; 39 + lowering ;; 40 + idle-down ;; 41 + ) + ) +|# + +#| +(deftype min-bomb-elevator (elevator) + ((alt-actor basic :offset-assert 416) + (bomb-train-offset float :offset-assert 420) + (wheel-angle float :offset-assert 424) + ) + :method-count-assert 52 + :size-assert #x1ac + :flag-assert #x34013001ac + (:state-methods + waiting ;; 36 + running ;; 37 + arrived ;; 38 + ) + ) +|# + +#| +(deftype min-elev-doors (process-drawable) + () + :method-count-assert 24 + :size-assert #xc8 + :flag-assert #x18005000c8 + (:methods + (min-elev-doors-method-23 () none) ;; 23 + ) + (:state-methods + idle ;; 20 + open ;; 21 + opened ;; 22 + ) + ) +|# + +#| +(deftype min-crane-switch (basebutton) + ((rog uint64 :offset-assert 288) + ) + :method-count-assert 40 + :size-assert #x128 + :flag-assert #x2800b00128 + (:state-methods + down-idle ;; 28 + up-idle ;; 31 + ) + ) +|# + +#| +(deftype min-door (process-drawable) + () + :method-count-assert 24 + :size-assert #xc8 + :flag-assert #x18005000c8 + (:methods + (min-door-method-22 () none) ;; 22 + (min-door-method-23 () none) ;; 23 + ) + (:state-methods + idle ;; 20 + exploded ;; 21 + ) + ) +|# + +#| +(deftype min-elec-gate (elec-gate) + () + :method-count-assert 31 + :size-assert #x200 + :flag-assert #x1f01800200 + ) +|# + +#| +(deftype min-boss-elev (elevator) + ((going-down? basic :offset-assert 416) + (sound-rotating-loop basic :offset-assert 420) + ) + :method-count-assert 52 + :size-assert #x1a8 + :flag-assert #x34013001a8 + (:state-methods + dormant ;; 35 + running ;; 37 + ) + ) +|# + +#| +(deftype min-airlock-door (com-airlock) + () + :method-count-assert 30 + :size-assert #x1b0 + :flag-assert #x1e013001b0 + ) +|# + +#| +(deftype mine-music-manager (task-manager) + () + :method-count-assert 32 + :size-assert #xf0 + :flag-assert #x20007000f0 + ) +|# + +;; (define-extern mineb-activate function) +;; (define-extern min-rat-engine-handler function) +;; (define-extern min-rat-engine-post function) +;; (define-extern joint-mod-rat-engine-callback function) +;; (define-extern target-sign-event-handler function) +;; (define-extern min-bomb-elevator-callback function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; manta ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype manta (nav-enemy) + ((info rigid-body-object-constants :offset-assert 616) + (move-matrix matrix :inline :offset-assert 620) + (curve-matrix matrix :inline :offset-assert 684) + (move-vel vector :inline :offset-assert 748) + (move-u float :offset-assert 764) + (move-du float :offset-assert 768) + (move-force float :offset-assert 772) + (flags uint16 :offset-assert 776) + (go-enable basic :offset-assert 780) + (orbit-speed float :offset-assert 784) + (max-time-step float :offset-assert 788) + (gravity float :offset-assert 792) + (landed-pos vector :inline :offset-assert 796) + (dest-pos vector :inline :offset-assert 812) + (attack-pos vector :inline :offset-assert 828) + (up-dir vector :inline :offset-assert 844) + (forward-dir vector :inline :offset-assert 860) + (knocked-force vector :inline :offset-assert 876) + (knocked-force-mult float :offset-assert 892) + (default-y-offset float :offset-assert 896) + (y-offset float :offset-assert 900) + (last-attack-time uint64 :offset-assert 908) + (attack-y-offset float :offset-assert 916) + (attack-path-blocked-time uint64 :offset-assert 924) + (track-timer uint64 :offset-assert 932) + (angle-to-player float :offset-assert 940) + (offset-difference float :offset-assert 944) + (sound-volume float :offset-assert 948) + (restart-fly-anims basic :offset-assert 952) + (fly-anim-speed float :offset-assert 956) + (hit-ground-count uint32 :offset-assert 960) + (fade-level float :offset-assert 964) + (actor-group uint32 :offset-assert 496) + (actor-group-count int32 :offset-assert 500) + ) + :method-count-assert 209 + :size-assert #x3d4 + :flag-assert #xd1036003d4 + (:methods + (manta-method-195 () none) ;; 195 + (manta-method-196 () none) ;; 196 + (manta-method-197 () none) ;; 197 + (manta-method-198 () none) ;; 198 + (manta-method-199 () none) ;; 199 + (manta-method-200 () none) ;; 200 + (manta-method-201 () none) ;; 201 + (manta-method-202 () none) ;; 202 + (manta-method-203 () none) ;; 203 + (manta-method-204 () none) ;; 204 + (manta-method-205 () none) ;; 205 + (manta-method-206 () none) ;; 206 + (manta-method-207 () none) ;; 207 + (manta-method-208 () none) ;; 208 + ) + (:state-methods + idle ;; 33 + hostile ;; 38 + land-approach ;; 190 + ambush ;; 47 + land ;; 191 + active ;; 34 + notice-to-fly ;; 192 + stare ;; 37 + attack ;; 193 + attack-end ;; 194 + knocked ;; 31 + knocked-recover ;; 32 + ) + ) +|# + +;; (define-extern *manta-rigid-body-constants* object) +;; (define-extern *fact-info-manta-defaults* fact-info-enemy-defaults) +;; (define-extern *manta-nav-enemy-info* nav-enemy-info) +;; (define-extern manta-hostile-post function) +;; (define-extern manta-attack-post function) +;; (define-extern manta-fly-code function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; rat ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype rat (nav-enemy) + ((init-quat quaternion :inline :offset-assert 624) + (roll-transform transformq :inline :offset-assert 640) + (face-dir vector :inline :offset-assert 688) + (flee-focus-pos vector :inline :offset-assert 704) + (wheel-actor basic :offset-assert 720) + (permanently-scared basic :offset-assert 724) + (slide-sound-id uint32 :offset-assert 728) + (scared-timer uint64 :offset-assert 736) + (scared-interval uint64 :offset-assert 744) + (return-to-nav-mesh? basic :offset-assert 752) + ) + :method-count-assert 198 + :size-assert #x2f4 + :flag-assert #xc6028002f4 + (:methods + (rat-method-195 () none) ;; 195 + ) + (:state-methods + idle ;; 33 + wait-by-wheel-wait ;; 191 + ambush ;; 47 + active ;; 34 + active-turn ;; 192 + notice ;; 35 + hostile ;; 38 + wait-by-wheel-seek ;; 190 + attack ;; 193 + flee ;; 36 + flee-stare ;; 194 + stare ;; 37 + knocked ;; 31 + knocked-recover ;; 32 + running-in-wheel ;; 196 + wheel-die ;; 197 + ) + ) +|# + +#| +(deftype rat-spawner (process) + ((rats-spawned uint32 :offset-assert 124) + (wheel-entity basic :offset-assert 128) + (state-time uint64 :offset-assert 132) + (active? basic :offset-assert 140) + (rats-to-spawn uint32 :offset-assert 144) + (actor-group uint32 :offset-assert 148) + (actor-group-count int32 :offset-assert 152) + ) + :method-count-assert 16 + :size-assert #xa0 + :flag-assert #x10002000a0 + (:state-methods + idle ;; 14 + die ;; 15 + ) + ) +|# + +;; (define-extern *fact-info-rat-defaults* fact-info-enemy-defaults) +;; (define-extern *rat-nav-enemy-info* nav-enemy-info) +;; (define-extern rat-run-code function) +;; (define-extern rat-falling-post function) +;; (define-extern rat-joint-mod-roll function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; des-beast ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype beast-grenade (projectile-bounce) + ((blast-radius float :offset-assert 548) + ) + :method-count-assert 45 + :size-assert #x228 + :flag-assert #x2d01b00228 + (:methods + (beast-grenade-method-44 () none) ;; 44 + ) + (:state-methods + impact ;; 22 + ) + ) +|# + +#| +(deftype beast-rider (enemy) + () + :method-count-assert 155 + :size-assert #x228 + :flag-assert #x9b01b00228 + (:state-methods + idle ;; 33 + ) + ) +|# + +#| +(deftype des-beast (enemy) + ((path-pos float :offset-assert 552) + (path-pos-speed float :offset-assert 556) + (speed-factor float :offset-assert 560) + (main-speed-factor float :offset-assert 564) + (main-speed-factor-dest float :offset-assert 568) + (des-path desbeast-path :offset-assert 572) + (angle-turret float :offset-assert 580) + (angle-gun float :offset-assert 584) + (run-start-frame float :offset-assert 588) + (can-turn? basic :offset-assert 592) + (behind-time uint64 :offset-assert 600) + (target-gun-pos vector :inline :offset-assert 608) + (incoming-attack-id uint32 :offset-assert 624) + (hit-points2 float :offset-assert 632) + (angry float :offset-assert 636) + (attack-next? basic :offset-assert 640) + (minimap connection-minimap :offset-assert 644) + (s-clock float :offset-assert 648) + (attack-id-time uint64 :offset-assert 656) + (oomass float :offset-assert 664) + (jitter float :offset-assert 668) + (next-shoot uint64 :offset-assert 672) + (shoot-delay uint64 :offset-assert 680) + (manager uint64 :offset-assert 688) + (hit-part basic :offset-assert 696) + ) + :method-count-assert 168 + :size-assert #x2bc + :flag-assert #xa8024002bc + (:methods + (des-beast-method-160 () none) ;; 160 + (des-beast-method-161 () none) ;; 161 + (des-beast-method-162 () none) ;; 162 + (des-beast-method-163 () none) ;; 163 + (des-beast-method-164 () none) ;; 164 + (des-beast-method-165 () none) ;; 165 + (des-beast-method-166 () none) ;; 166 + (des-beast-method-167 () none) ;; 167 + ) + (:state-methods + idle ;; 33 + turn-back ;; 155 + falling ;; 156 + die-run ;; 159 + down ;; 157 + get-up ;; 158 + die ;; 40 + ) + ) +|# + +;; (define-extern *curve-beast-linear-up-red* object) +;; (define-extern *trail-color-curve-grenade* curve-color-fast) +;; (define-extern *curve-grenade-linear-trail* curve2d-fast) +;; (define-extern *beast-grenade-trail* object) +;; (define-extern spt-birth-func-brightness-grenade-bits function) +;; (define-extern spt-birth-func-part-grenade-explosion-bits function) +;; (define-extern *range-grenade-explo-dust-color* curve-color-fast) +;; (define-extern *range-grenade-explo-dust-alpha* curve2d-fast) +;; (define-extern *range-grenade-explo-dust-scale-x* curve2d-fast) +;; (define-extern *range-grenade-explo-dust-scale-y* curve2d-fast) +;; (define-extern *curve-grenade-explo-dust-alpha* curve2d-fast) +;; (define-extern *curve-grenade-explo-dust-scale-x* curve2d-fast) +;; (define-extern *curve-grenade-explo-dust-scale-y* curve2d-fast) +;; (define-extern *part-grenade-explosion-dust-in-curve-settings* object) +;; (define-extern *range-grenade-explo-color* curve-color-fast) +;; (define-extern *range-grenade-explo-alpha* curve2d-fast) +;; (define-extern *range-grenade-explo-scale-x* curve2d-fast) +;; (define-extern *range-grenade-explo-scale-y* curve2d-fast) +;; (define-extern *curve-grenade-explo-alpha* curve2d-fast) +;; (define-extern *curve-grenade-explo-scale-x* curve2d-fast) +;; (define-extern *curve-grenade-explo-scale-y* curve2d-fast) +;; (define-extern *part-grenade-explosion-texture-curve-settings* object) +;; (define-extern spt-birth-func-part-beast-fall-bits function) +;; (define-extern spt-birth-func-part-beast-foot-bits function) +;; (define-extern *beast-rider-enemy-info* enemy-info) +;; (define-extern *des-beast-enemy-info* enemy-info) +;; (define-extern beast-rider-init-by-other function) +;; (define-extern *beast-camera-slow-motion* object) +;; (define-extern des-beast-active-post function) +;; (define-extern des-beast-gun-swivel-callback function) +;; (define-extern des-beast-gun-callback function) +;; (define-extern des-beast-init-by-other function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; des-beast-2 ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype quantum-reflector (process-focusable) + ((rod uint64 :offset-assert 208) + (minimap connection-minimap :offset-assert 216) + ) + :method-count-assert 31 + :size-assert #xdc + :flag-assert #x1f006000dc + (:state-methods + hidden ;; 28 + idle ;; 29 + die ;; 30 + ) + ) +|# + +#| +(deftype beast-grenade-2 (projectile-bounce) + ((minimap connection-minimap :offset-assert 548) + (blast-damage basic :offset-assert 552) + (blast-radius float :offset-assert 556) + ) + :method-count-assert 45 + :size-assert #x230 + :flag-assert #x2d01b00230 + (:methods + (beast-grenade-2-method-44 () none) ;; 44 + ) + (:state-methods + moving ;; 23 + impact ;; 22 + dissipate ;; 21 + ) + ) +|# + +#| +(deftype des-beast-2 (des-beast) + ((focus-vel vector :inline :offset-assert 704) + (shot-velocity vector :inline :offset-assert 720) + (vehicle-handle uint64 :offset-assert 736) + (pickup-handle uint64 :offset-assert 744) + (shot-count uint32 :offset-assert 752) + (follow-distance float :offset-assert 756) + (anim-interp float :offset-assert 760) + (last-beast basic :offset-assert 764) + ) + :method-count-assert 168 + :size-assert #x300 + :flag-assert #xa802800300 + (:state-methods + hostile ;; 38 + die-run ;; 159 + die ;; 40 + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; beast-battle-path ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *desbeast-battle-path-table* array) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; cty-protect ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype task-manager-protect-hq (task-manager) + ((gunships UNKNOWN 2 :offset-assert 240) + (spawn-records basic :offset-assert 256) + (spawn-index int8 :offset-assert 260) + (death-count int8 :offset-assert 261) + ) + :method-count-assert 38 + :size-assert #x106 + :flag-assert #x2600900106 + (:methods + (task-manager-protect-hq-method-35 () none) ;; 35 + (task-manager-protect-hq-method-36 () none) ;; 36 + (task-manager-protect-hq-method-37 () none) ;; 37 + ) + (:state-methods + wait ;; 14 + active ;; 15 + fight-gunship ;; 32 + wait-finish ;; 34 + fail ;; 18 + fight-gunship-2 ;; 33 + ) + ) +|# + +#| +(deftype prot-crate (process-drawable) + ((h-crate uint64 :offset-assert 208) + (dummy-ent basic :offset-assert 216) + ) + :method-count-assert 22 + :size-assert #xdc + :flag-assert #x16006000dc + (:methods + (prot-crate-method-21 () none) ;; 21 + ) + (:state-methods + active ;; 20 + ) + ) +|# + +;; (define-extern *protect-object-count* array) +;; (define-extern protect-type->type function) +;; (define-extern *protect-levels* array) +;; (define-extern spawn-protect-enemy function) +;; (define-extern *gunship-start-positions* array) +;; (define-extern *fountain-center-pos* object) +;; (define-extern get-protect-suck-t function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; scorpion-gun ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype speecher (structure) + ((speech-array basic :offset-assert 0) + (next-index uint32 :offset-assert 4) + ) + :method-count-assert 11 + :size-assert #x8 + :flag-assert #xb00000008 + (:methods + (speecher-method-9 () none) ;; 9 + (speecher-method-10 () none) ;; 10 + ) + ) +|# + +#| +(deftype hud-scorpion-gun (hud) + ((offscreen uint8 :offset-assert 2756) + (alpha UNKNOWN 2 :offset-assert 2760) + ) + :method-count-assert 27 + :size-assert #xad0 + :flag-assert #x1b0a500ad0 + ) +|# + +#| +(deftype scorpion-gun-aim (process) + ((hud-aim hud-sprite :inline :offset-assert 128) + (screen-pos vector :inline :offset-assert 192) + (color uint32 :offset-assert 208) + (draw? basic :offset-assert 212) + ) + :method-count-assert 15 + :size-assert #xd8 + :flag-assert #xf006000d8 + (:state-methods + idle ;; 14 + ) + ) +|# + +#| +(deftype scorpion-gun-shot (projectile) + ((init-pos vector :inline :offset-assert 512) + (init-dir vector :inline :offset-assert 528) + (collide-normal vector :inline :offset-assert 544) + ) + :method-count-assert 41 + :size-assert #x230 + :flag-assert #x2901b00230 + ) +|# + +#| +(deftype scorpion-gun (process-drawable) + ((aim-dir vector :inline :offset-assert 208) + (scorp-quat quaternion :inline :offset-assert 224) + (scorp-smooth-quat quaternion :inline :offset-assert 240) + (scorp uint64 :offset-assert 256) + (manager uint64 :offset-assert 264) + (hud-aim uint64 :offset-assert 272) + (barrel-spin-angle float :offset-assert 280) + (barrel-spin-rate float :offset-assert 284) + (barrel-kick float :offset-assert 288) + (last-fire-time uint64 :offset-assert 296) + (valid-target-time uint64 :offset-assert 304) + (valid-target-anim-time uint64 :offset-assert 312) + (target-handle uint64 :offset-assert 320) + (rotx float :offset-assert 328) + (rotxv float :offset-assert 332) + (rotxvv float :offset-assert 336) + (roty float :offset-assert 340) + (rotyv float :offset-assert 344) + (rotyvv float :offset-assert 348) + ) + :method-count-assert 26 + :size-assert #x160 + :flag-assert #x1a00e00160 + (:methods + (scorpion-gun-method-24 () none) ;; 24 + (scorpion-gun-method-25 () none) ;; 25 + ) + (:state-methods + idle ;; 20 + active ;; 21 + firing ;; 22 + die ;; 23 + ) + ) +|# + +#| +(deftype scorpion-gun-spawn-info (structure) + ((enemy-to-spawn basic :offset-assert 0) + (spawn-u float :offset-assert 4) + (use-path-index int32 :offset-assert 8) + (follow-distance float :offset-assert 12) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype scorpion-gun-manager-path (structure) + ((path desbeast-path :offset-assert 0) + (curr-pos float :offset-assert 4) + (next-pos int32 :offset-assert 8) + (prev-pos int32 :offset-assert 12) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype scorpion-gun-manager (process) + ((trans vector :inline :offset-assert 128) + (quat quaternion :inline :offset-assert 144) + (speecher-on-start speecher :inline :offset-assert 160) + (speecher-on-beast-death speecher :inline :offset-assert 168) + (speecher-on-damage speecher :inline :offset-assert 176) + (speecher-on-beast-triggered speecher :inline :offset-assert 184) + (speecher-on-flyer-triggered speecher :inline :offset-assert 192) + (state-time uint64 :offset-assert 200) + (path-info scorpion-gun-manager-path :inline :offset-assert 208) + (enemy UNKNOWN 36 :offset-assert 224) + (last-beast uint64 :offset-assert 512) + (gun uint64 :offset-assert 520) + (scorp uint64 :offset-assert 528) + (hud-health uint64 :offset-assert 536) + (hud-arrows uint64 :offset-assert 544) + (use-camera basic :offset-assert 552) + (last-scorpion-hit-points float :offset-assert 556) + ) + :method-count-assert 23 + :size-assert #x230 + :flag-assert #x1701b00230 + (:methods + (scorpion-gun-manager-method-21 () none) ;; 21 + (scorpion-gun-manager-method-22 () none) ;; 22 + ) + (:state-methods + idle ;; 14 + setup ;; 15 + active ;; 16 + shutdown ;; 17 + fail ;; 18 + restart ;; 19 + die-fast ;; 20 + ) + ) +|# + +;; (define-extern *desert-beast-speech-list* object) +;; (define-extern scorpion-gun-aim-init-by-other function) +;; (define-extern scorpion-gun-shot-move function) +;; (define-extern scorpion-gun-handler function) +;; (define-extern quaternion-seek-by-angle! function) +;; (define-extern control-post function) +;; (define-extern aim-post function) +;; (define-extern scorpion-gun-init-by-other function) +;; (define-extern *scorpion-beast-spawn-info* array) +;; (define-extern scorpion-gun-manager-handler function) +;; (define-extern beast-post function) +;; (define-extern cam-scorpion-gun state) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; lfacrm2-mood ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype fac-elevator-a (elevator) + ((mysound uint32 :offset-assert 416) + ) + :method-count-assert 52 + :size-assert #x1a4 + :flag-assert #x34013001a4 + (:state-methods + running ;; 37 + arrived ;; 38 + waiting ;; 36 + dormant ;; 35 + ) + ) +|# + +#| +(deftype lfacrm2-states (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ) +|# + +;; (define-extern update-mood-lfacrm2 function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; was-pre-game ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype was-pre-game-wave (structure) + ((event-count-min int16 :offset-assert 0) + (event-count-max int16 :offset-assert 2) + (bubble-count-min int16 :offset-assert 4) + (bubble-count-max int16 :offset-assert 6) + (event-interval uint16 :offset-assert 8) + (delay uint16 :offset-assert 10) + (gravity-min meters :offset-assert 12) + (gravity-max meters :offset-assert 16) + (beam-offset-max float :offset-assert 20) + (beam-size-min float :offset-assert 24) + (beam-size-max float :offset-assert 28) + ) + :method-count-assert 9 + :size-assert #x20 + :flag-assert #x900000020 + ) +|# + +#| +(deftype was-pre-game-game (structure) + ((point-win float :offset-assert 0) + (miss-max float :offset-assert 4) + (wave uint32 :offset-assert 8) + ) + :method-count-assert 9 + :size-assert #xc + :flag-assert #x90000000c + ) +|# + +#| +(deftype was-pre-beam-info (structure) + ((index int32 :offset-assert 0) + (min float :offset-assert 4) + (size float :offset-assert 8) + (fire-time uint64 :offset-assert 16) + (beam uint64 :offset-assert 24) + ) + :method-count-assert 10 + :size-assert #x20 + :flag-assert #xa00000020 + (:methods + (was-pre-beam-info-method-9 () none) ;; 9 + ) + ) +|# + +#| +(deftype was-pre-beam (process-drawable) + ((index int32 :offset-assert 200) + ) + :method-count-assert 22 + :size-assert #xcc + :flag-assert #x16005000cc + (:state-methods + idle ;; 20 + attack ;; 21 + ) + ) +|# + +#| +(deftype was-pre-heart (process-drawable) + ((cur-level int32 :offset-assert 200) + ) + :method-count-assert 21 + :size-assert #xcc + :flag-assert #x15005000cc + (:state-methods + idle ;; 20 + ) + ) +|# + +#| +(deftype was-pre-game (process-drawable) + ((task basic :offset-assert 200) + (hud-score uint64 :offset-assert 208) + (hud-goal uint64 :offset-assert 216) + (hud-miss uint64 :offset-assert 224) + (score float :offset-assert 232) + (score-time uint64 :offset-assert 240) + (miss-max int32 :offset-assert 248) + (miss-count int32 :offset-assert 252) + (miss-time uint64 :offset-assert 256) + (point-win float :offset-assert 264) + (game was-pre-game-game :offset-assert 268) + (game-start-time uint64 :offset-assert 272) + (wave-start-time uint64 :offset-assert 280) + (event-start-time uint64 :offset-assert 288) + (wave-index int32 :offset-assert 296) + (event-index int32 :offset-assert 300) + (event-count int32 :offset-assert 304) + (beam-clock float :offset-assert 308) + (speech-time uint64 :offset-assert 312) + (speech-count int32 :offset-assert 320) + (speech-last UNKNOWN 4 :offset-assert 324) + (screen-matrix matrix :inline :offset-assert 352) + (screen-scale vector :inline :offset-assert 416) + (spawn-time uint64 :offset-assert 432) + (beam UNKNOWN 4 :offset-assert 440) + (heart uint64 :offset-assert 568) + ) + :method-count-assert 34 + :size-assert #x240 + :flag-assert #x2201c00240 + (:methods + (was-pre-game-method-26 () none) ;; 26 + (was-pre-game-method-27 () none) ;; 27 + (was-pre-game-method-28 () none) ;; 28 + (was-pre-game-method-29 () none) ;; 29 + (was-pre-game-method-30 () none) ;; 30 + (was-pre-game-method-31 () none) ;; 31 + (was-pre-game-method-32 () none) ;; 32 + (was-pre-game-method-33 () none) ;; 33 + ) + (:state-methods + hide ;; 21 + idle ;; 20 + wait-for-start ;; 22 + active ;; 23 + lose ;; 24 + win ;; 25 + ) + ) +|# + +#| +(deftype pre-game-bubble (process-drawable) + ((screen-pos vector :inline :offset-assert 208) + (bubble-type int32 :offset-assert 224) + (bubble-start-time uint64 :offset-assert 232) + (start-delay uint64 :offset-assert 240) + (gravity meters :offset-assert 248) + (dead? basic :offset-assert 252) + ) + :method-count-assert 22 + :size-assert #x100 + :flag-assert #x1600800100 + (:state-methods + idle ;; 20 + fall ;; 21 + ) + ) +|# + +;; (define-extern birth-func-pre-bubble-pop function) +;; (define-extern birth-func-pre-bubble-birth-pop function) +;; (define-extern *pre-game* object) +;; (define-extern *pre-game-fun* object) +;; (define-extern pre-game-bubble-init function) +;; (define-extern was-pre-beam-init function) +;; (define-extern was-pre-heart-init function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; metalhead-predator ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype metalhead-predator-shot (metalhead-shot) + () + :method-count-assert 41 + :size-assert #x210 + :flag-assert #x2901900210 + ) +|# + +#| +(deftype metalhead-predator (mh-squad-member) + ((los los-control :inline :offset-assert 1088) + (want-stop symbol :offset-assert 1252) ;; guessed by decompiler + (target-pos vector :inline :offset-assert 1264) + (curr-node int32 :offset-assert 1280) + (hide-pos vector :inline :offset-assert 1296) + (next-change uint64 :offset-assert 1312) ;; int64 + (shoot-angle float :offset-assert 1320) ;; degrees + (miss-amount float :offset-assert 1324) + (ambient-sound-id sound-id :offset-assert 1328) ;; guessed by decompiler + (shock-effect-time uint64 :offset-assert 1336) ;; time-frame + (shock-effect-end uint64 :offset-assert 1344) ;; int64 + (fade float :offset-assert 1352) + (dest-fade float :offset-assert 1356) + ) + :method-count-assert 228 + :size-assert #x550 + :flag-assert #xe404d00550 + (:methods + (metalhead-predator-method-224 () none) ;; 224 + (metalhead-predator-method-225 () none) ;; 225 + (metalhead-predator-method-226 () none) ;; 226 + (metalhead-predator-method-227 () none) ;; 227 + ) + (:state-methods + active ;; 34 + die-fast ;; 42 + hostile ;; 38 + fire ;; 222 + close-attack ;; 223 + in-ditch ;; 192 + ) + ) +|# + +;; (define-extern *metalhead-predator-nav-enemy-info* nav-enemy-info) ;; nav-enemy-info + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; templex-part ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *range-color-templex-big-torch-flame* curve-color-fast) +;; (define-extern *range-alpha-templex-big-torch-flame* curve2d-fast) +;; (define-extern *range-scale-templex-big-torch-flame-x* curve2d-fast) +;; (define-extern *range-scale-templex-big-torch-flame-y* curve2d-fast) +;; (define-extern *r-curve-templex-big-torch-flame* curve2d-fast) +;; (define-extern *g-curve-templex-big-torch-flame* curve2d-fast) +;; (define-extern *b-curve-templex-big-torch-flame* curve2d-fast) +;; (define-extern *curve-alpha-templex-big-torch-flame* curve2d-fast) +;; (define-extern *curve-templex-big-torch-flame-x* curve2d-fast) +;; (define-extern *curve-templex-big-torch-flame-y* curve2d-fast) +;; (define-extern *part-templex-big-torch-flame-curve-settings* object) +;; (define-extern *range-color-templex-fire-vase-flame* curve-color-fast) +;; (define-extern *range-alpha-templex-fire-vase-flame* curve2d-fast) +;; (define-extern *range-scale-templex-fire-vase-flame-x* curve2d-fast) +;; (define-extern *range-scale-templex-fire-vase-flame-y* curve2d-fast) +;; (define-extern *r-curve-templex-fire-vase-flame* curve2d-fast) +;; (define-extern *g-curve-templex-fire-vase-flame* curve2d-fast) +;; (define-extern *b-curve-templex-fire-vase-flame* curve2d-fast) +;; (define-extern *curve-alpha-templex-fire-vase-flame* curve2d-fast) +;; (define-extern *curve-templex-fire-vase-flame-x* curve2d-fast) +;; (define-extern *curve-templex-fire-vase-flame-y* curve2d-fast) +;; (define-extern *part-templex-fire-vase-flame-curve-settings* object) +;; (define-extern *range-color-templex-fire-vase-large-flame* curve-color-fast) +;; (define-extern *range-alpha-templex-fire-vase-large-flame* curve2d-fast) +;; (define-extern *range-scale-templex-fire-vase-large-flame-x* curve2d-fast) +;; (define-extern *range-scale-templex-fire-vase-large-flame-y* curve2d-fast) +;; (define-extern *r-curve-templex-fire-vase-large-flame* curve2d-fast) +;; (define-extern *g-curve-templex-fire-vase-large-flame* curve2d-fast) +;; (define-extern *b-curve-templex-fire-vase-large-flame* curve2d-fast) +;; (define-extern *curve-alpha-templex-fire-vase-large-flame* curve2d-fast) +;; (define-extern *curve-templex-fire-vase-large-flame-x* curve2d-fast) +;; (define-extern *curve-templex-fire-vase-large-flame-y* curve2d-fast) +;; (define-extern *part-templex-fire-vase-large-flame-curve-settings* object) +;; (define-extern *range-color-templex-fire-vase-small-flame* curve-color-fast) +;; (define-extern *range-alpha-templex-fire-vase-small-flame* curve2d-fast) +;; (define-extern *range-scale-templex-fire-vase-small-flame-x* curve2d-fast) +;; (define-extern *range-scale-templex-fire-vase-small-flame-y* curve2d-fast) +;; (define-extern *r-curve-templex-fire-vase-small-flame* curve2d-fast) +;; (define-extern *g-curve-templex-fire-vase-small-flame* curve2d-fast) +;; (define-extern *b-curve-templex-fire-vase-small-flame* curve2d-fast) +;; (define-extern *curve-alpha-templex-fire-vase-small-flame* curve2d-fast) +;; (define-extern *curve-templex-fire-vase-small-flame-x* curve2d-fast) +;; (define-extern *curve-templex-fire-vase-small-flame-y* curve2d-fast) +;; (define-extern *part-templex-fire-vase-small-flame-curve-settings* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; terraformer-part ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *range-ter-wsplash-color* curve-color-fast) +;; (define-extern *range-ter-wsplash-alpha* curve2d-fast) +;; (define-extern *range-ter-wsplash-scale-x* curve2d-fast) +;; (define-extern *range-ter-wsplash-scale-y* curve2d-fast) +;; (define-extern *curve-ter-wsplash-alpha* curve2d-fast) +;; (define-extern *curve-ter-wsplash-scale-x* curve2d-fast) +;; (define-extern *curve-ter-wsplash-scale-y* curve2d-fast) +;; (define-extern *part-ter-water-splash-curve-settings* object) +;; (define-extern *range-ter-splash-color* curve-color-fast) +;; (define-extern *range-ter-splash-alpha* curve2d-fast) +;; (define-extern *range-ter-splash-scale-x* curve2d-fast) +;; (define-extern *range-ter-splash-scale-y* curve2d-fast) +;; (define-extern *curve-ter-splash-alpha* curve2d-fast) +;; (define-extern *curve-ter-splash-scale-x* curve2d-fast) +;; (define-extern *curve-ter-splash-scale-y* curve2d-fast) +;; (define-extern *part-ter-water-splash-center-curve-settings* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; freehq-part ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern part-freehq-sphere-vert-line-flicker function) +;; (define-extern birth-func-freehq-sphere function) +;; (define-extern sparticle-kill-at-scale-eqline function) +;; (define-extern sparticle-kill-at-scale-mediumb function) +;; (define-extern sparticle-kill-at-scale function) +;; (define-extern sparticle-kill-at-scale-squares function) +;; (define-extern *range-landscape-scale-x* curve2d-fast) +;; (define-extern *range-landscape-scale-y* curve2d-fast) +;; (define-extern *curve-landscape-scale-x-temp* curve2d-fast) +;; (define-extern *curve-landscape-scale-x* curve2d-fast) +;; (define-extern *curve-landscape-scale-y* curve2d-fast) +;; (define-extern *part-freehq-giant-landscape-curve-settings* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; freehq-scenes ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype freehq-sml-door (com-airlock) + () + :method-count-assert 30 + :size-assert #x1b0 + :flag-assert #x1e013001b0 + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; tower-part ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; waswide-part ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern spt-birth-func-brightness-sat-scrape-dirt function) +;; (define-extern spt-birth-func-part-sat-scrape-dirt function) +;; (define-extern spt-birth-func-part-sat-scrape-rocks function) +;; (define-extern *range-sat-explo-scene-color* curve-color-fast) +;; (define-extern *range-sat-explo-scene-alpha* curve2d-fast) +;; (define-extern *range-sat-explo-scene-scale-x* curve2d-fast) +;; (define-extern *range-sat-explo-scene-scale-y* curve2d-fast) +;; (define-extern *curve-sat-explo-scene-alpha* curve2d-fast) +;; (define-extern *curve-sat-explo-scene-scale-x* curve2d-fast) +;; (define-extern *curve-sat-explo-scene-scale-y* curve2d-fast) +;; (define-extern *part-neo-satellite-explosion-texture-scene-curve-settings* object) +;; (define-extern *range-color-wascity-palace-fire-beacon-flame* curve-color-fast) +;; (define-extern *range-alpha-wascity-palace-fire-beacon-flame* curve2d-fast) +;; (define-extern *range-scale-wascity-palace-fire-beacon-flame-x* curve2d-fast) +;; (define-extern *range-scale-wascity-palace-fire-beacon-flame-y* curve2d-fast) +;; (define-extern *r-curve-wascity-palace-fire-beacon-flame* curve2d-fast) +;; (define-extern *g-curve-wascity-palace-fire-beacon-flame* curve2d-fast) +;; (define-extern *b-curve-wascity-palace-fire-beacon-flame* curve2d-fast) +;; (define-extern *curve-alpha-wascity-palace-fire-beacon-flame* curve2d-fast) +;; (define-extern *curve-wascity-palace-fire-beacon-flame-x* curve2d-fast) +;; (define-extern *curve-wascity-palace-fire-beacon-flame-y* curve2d-fast) +;; (define-extern *part-wascity-palace-fire-beacon-flame-curve-settings* object) +;; (define-extern *range-wrsplash-color* curve-color-fast) +;; (define-extern *range-wrsplash-alpha* curve2d-fast) +;; (define-extern *range-wrsplash-scale-x* curve2d-fast) +;; (define-extern *range-wrsplash-scale-y* curve2d-fast) +;; (define-extern *curve-wrsplash-alpha* curve2d-fast) +;; (define-extern *curve-wrsplash-scale-x* curve2d-fast) +;; (define-extern *curve-wrsplash-scale-y* curve2d-fast) +;; (define-extern *part-water-rocks-splash-curve-settings* object) +;; (define-extern part-wascityb-bird1-path function) +;; (define-extern part-wascityb-bird2-path function) +;; (define-extern part-wascityb-bird3-path function) +;; (define-extern part-wascityb-bird4-path function) +;; (define-extern part-wascityb-bird5-path function) +;; (define-extern part-wascityb-bird6-path function) +;; (define-extern part-wascityb-bird7-path function) +;; (define-extern part-wascityb-bird8-path function) +;; (define-extern part-wascityb-bird9-path function) +;; (define-extern part-wascityb-bird10-path function) +;; (define-extern part-wascitya-fly1-path function) +;; (define-extern part-wascitya-fly2-path function) +;; (define-extern part-wascitya-fly3-path function) +;; (define-extern *range-color-flame* curve-color-fast) +;; (define-extern *range-alpha-flame* curve2d-fast) +;; (define-extern *range-scale-flame-x* curve2d-fast) +;; (define-extern *range-scale-flame-y* curve2d-fast) +;; (define-extern *r-curve-flame* curve2d-fast) +;; (define-extern *g-curve-flame* curve2d-fast) +;; (define-extern *b-curve-flame* curve2d-fast) +;; (define-extern *curve-alpha-flame* curve2d-fast) +;; (define-extern *curve-flame-x* curve2d-fast) +;; (define-extern *curve-flame-y* curve2d-fast) +;; (define-extern *part-gas-lamp-flame-curve-settings* object) +;; (define-extern *part-talltorch-flame-curve-settings* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; tower-obs ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype actor-group-watcher (process) + ((actor-group uint32 :offset-assert 124) + (actor-group-count int32 :offset-assert 128) + (notify-actor basic :offset-assert 132) + ) + :method-count-assert 16 + :size-assert #x8c + :flag-assert #x100010008c + (:state-methods + idle ;; 14 + active ;; 15 + ) + ) +|# + +#| +(deftype tow-large-plat (process-drawable) + ((actor-group uint32 :offset-assert 196) + (actor-group-count int32 :offset-assert 200) + (final-y float :offset-assert 204) + (fade-level float :offset-assert 208) + (sound-id uint32 :offset-assert 212) + ) + :method-count-assert 26 + :size-assert #xdc + :flag-assert #x1a006000dc + (:state-methods + idle ;; 20 + lower ;; 21 + lowered ;; 22 + wait-to-trigger-movie ;; 23 + trigger-movie ;; 24 + die ;; 25 + ) + ) +|# + +#| +(deftype tow-energy-bridge (process-drawable) + () + :method-count-assert 23 + :size-assert #xc8 + :flag-assert #x17005000c8 + (:state-methods + idle ;; 20 + extending ;; 21 + active ;; 22 + ) + ) +|# + +#| +(deftype tow-spawner (process-drawable) + ((spawn-time uint64 :offset-assert 200) + (spawn-count int32 :offset-assert 208) + (spawn-count-final int32 :offset-assert 212) + (nav-mesh basic :offset-assert 216) + ) + :method-count-assert 27 + :size-assert #xdc + :flag-assert #x1b006000dc + (:methods + (tow-spawner-method-25 () none) ;; 25 + (tow-spawner-method-26 () none) ;; 26 + ) + (:state-methods + idle ;; 20 + active ;; 21 + spawning ;; 22 + wait-for-children ;; 23 + done ;; 24 + ) + ) +|# + +#| +(deftype tow-tentacle (process-drawable) + ((attack-id int32 :offset-assert 200) + (no-collision-timer uint64 :offset-assert 208) + ) + :method-count-assert 21 + :size-assert #xd8 + :flag-assert #x15006000d8 + (:state-methods + idle ;; 20 + ) + ) +|# + +#| +(deftype task-manager-tower-destroy (task-manager) + ((creak-sound-id uint32 :offset-assert 240) + (creak-sound-timer uint64 :offset-assert 248) + (creak-sound-duration uint64 :offset-assert 256) + (goo-sound-id uint32 :offset-assert 264) + (goo-sound-timer uint64 :offset-assert 272) + (goo-sound-duration uint64 :offset-assert 280) + (goo-sound-playing basic :offset-assert 288) + (goo-sound-location vector :inline :offset-assert 304) + ) + :method-count-assert 32 + :size-assert #x140 + :flag-assert #x2000c00140 + ) +|# + +;; (define-extern towera-login function) +;; (define-extern towera-logout function) +;; (define-extern towera-activate function) +;; (define-extern wait-for-battle state) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; cty-destroy-grid ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype jinx-hud (hud) + () + :method-count-assert 27 + :size-assert #xac4 + :flag-assert #x1b0a500ac4 + ) +|# + +#| +(deftype jinx (civilian) + ((min-speed float :offset-assert 1124) + (max-speed float :offset-assert 1128) + (follow-offset float :offset-assert 1132) + (travel-anim-interp float :offset-assert 1136) + (travel-prev-ry float :offset-assert 1140) + (travel-prev-ry1 float :offset-assert 1144) + (player-blocking float :offset-assert 1148) + (follow-dir vector :inline :offset-assert 1152) + (destination vector :inline :offset-assert 1168) + (nav-mesh-aid uint32 :offset-assert 1184) + (health-handle uint64 :offset-assert 1192) ;; handle + (box-time float :offset-assert 1200) + (attacker-info city-attacker-info :offset-assert 1016) + (mission-squad basic :offset-assert 1020) + (jinx-flags uint32 :offset-assert 1212) + ) + :method-count-assert 246 + :size-assert #x4c0 + :flag-assert #xf6044004c0 + (:methods + (jinx-method-237 () none) ;; 237 + (jinx-method-240 () none) ;; 240 + (jinx-method-241 () none) ;; 241 + (jinx-method-242 () none) ;; 242 + (jinx-method-243 () none) ;; 243 + (jinx-method-244 () none) ;; 244 + (jinx-method-245 () none) ;; 245 + ) + (:state-methods + wait-for-ride ;; 223 + knocked-recover ;; 32 + move-to-vehicle ;; 224 + board-vehicle ;; 225 + traveling ;; 235 + exit-vehicle ;; 227 + waiting-idle ;; 236 + go-power-box ;; 238 + do-power-box ;; 239 + traveling-blocked ;; 234 + die-fast ;; 42 + die ;; 40 + ) + ) +|# + +#| +(deftype task-manager-city-destroy-grid (task-manager) + ((jinx uint64 :offset-assert 236) + (actor-group uint32 :offset-assert 244) + (actor-group-count int32 :offset-assert 248) + (next-box uint32 :offset-assert 252) + (arrow-h uint64 :offset-assert 260) + (goal-pos vector :inline :offset-assert 268) + (goal-pos-front vector :inline :offset-assert 284) + (sub-state uint32 :offset-assert 300) + (vehicle uint64 :offset-assert 308) + (wall-h uint64 :offset-assert 316) + (sound-name basic :offset-assert 324) + (id uint32 :offset-assert 328) + (delay uint64 :offset-assert 332) + (delay-start uint64 :offset-assert 340) + (start-time uint64 :offset-assert 164) + (end-time uint64 :offset-assert 356) + (intro-play? basic :offset-assert 364) + ) + :method-count-assert 34 + :size-assert #x174 + :flag-assert #x2201000174 + (:methods + (task-manager-city-destroy-grid-method-32 () none) ;; 32 + (task-manager-city-destroy-grid-method-33 () none) ;; 33 + ) + (:state-methods + wait ;; 14 + active ;; 15 + ) + ) +|# + +#| +(deftype com-power-box (process-drawable) + ((sound-id uint32 :offset-assert 200) + ) + :method-count-assert 22 + :size-assert #xcc + :flag-assert #x16005000cc + (:state-methods + idle ;; 20 + explode ;; 21 + ) + ) +|# + +;; (define-extern *jinx-nav-enemy-info* nav-enemy-info) ;; nav-enemy-info +;; (define-extern *citizen-jinx-global-info* civilian-global-info) +;; (define-extern board-vehicle-get-in-car-jump function) +;; (define-extern board-vehicle-get-in-car-land function) +;; (define-extern board-vehicle-get-in-car-sit function) +;; (define-extern board-vehicle-get-in-car-end function) +;; (define-extern *cty-destroy-grid-kg-squad-member-settings* object) +;; (define-extern *cty-destroy-grid-mh-squad-member-settings* object) +;; (define-extern *jinx-exit-vehicle-speech-index* object) +;; (define-extern *jinx-board-vehicle-speech-index* object) +;; (define-extern *jinx-exit-vehicle-speech* array) +;; (define-extern *jinx-board-vehicle-speech* array) +;; (define-extern *combox-debris-params* debris-static-params) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; prim-beam ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype prim-beam (process-drawable) + ((strip basic :offset-assert 200) + (pos0 vector :inline :offset-assert 208) + (pos1 vector :inline :offset-assert 224) + (appearance prim-beam-settings :inline :offset-assert 240) + (duration uint64 :offset-assert 272) + ) + :method-count-assert 26 + :size-assert #x118 + :flag-assert #x1a00a00118 + (:methods + (prim-beam-method-22 () none) ;; 22 + (prim-beam-method-23 () none) ;; 23 + (prim-beam-method-24 () none) ;; 24 + (prim-beam-method-25 () none) ;; 25 + ) + (:state-methods + active ;; 20 + hidden ;; 21 + ) + ) +|# + +#| +(deftype prim-beam-tracker (prim-beam) + ((track-obj1 uint64 :offset-assert 280) + (track-obj2 uint64 :offset-assert 288) + (track-joint1 int32 :offset-assert 296) + (track-joint2 int32 :offset-assert 300) + ) + :method-count-assert 26 + :size-assert #x130 + :flag-assert #x1a00b00130 + ) +|# + +;; (define-extern *default-prim-beam-appearance* object) +;; (define-extern prim-beam-tracker-init-by-other function) +;; (define-extern spawn-prim-beam-tracker function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; precura-mood ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype precura-states (structure) + ((pulse pulse-state :inline :offset-assert 0) + (generator pulse-state :inline :offset-assert 16) + (main float :offset-assert 32) + (target-laser UNKNOWN 2 :offset-assert 36) + (current-laser UNKNOWN 2 :offset-assert 44) + (speed-laser float :offset-assert 52) + (target-bomb float :offset-assert 56) + (current-bomb float :offset-assert 60) + (speed-bomb float :offset-assert 64) + ) + :method-count-assert 9 + :size-assert #x44 + :flag-assert #x900000044 + ) +|# + +#| +(deftype precurb-states (structure) + ((pulse pulse-state :inline :offset-assert 0) + (main float :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x14 + :flag-assert #x900000014 + ) +|# + +#| +(deftype lprecurc-loader (process) + ((name basic :offset-assert 0) + (mask process-mask :offset-assert 4) + (clock basic :offset-assert 8) + (parent uint32 :offset-assert 12) + (brother uint32 :offset-assert 16) + (child uint32 :offset-assert 20) + (ppointer uint32 :offset-assert 24) + (self basic :offset-assert 28) + (pool basic :offset-assert 32) + (status basic :offset-assert 36) + (pid int32 :offset-assert 40) + (main-thread basic :offset-assert 44) + (top-thread basic :offset-assert 48) + (entity basic :offset-assert 52) + (level basic :offset-assert 56) + (state basic :offset-assert 60) + (prev-state basic :offset-assert 64) + (next-state basic :offset-assert 68) + (state-stack basic :offset-assert 72) + (trans-hook basic :offset-assert 76) + (post-hook basic :offset-assert 80) + (event-hook basic :offset-assert 84) + (allocated-length int32 :offset-assert 88) + (heap-base uint32 :offset-assert 92) + (heap-top uint32 :offset-assert 96) + (heap-cur uint32 :offset-assert 100) + (stack-frame-top basic :offset-assert 104) + (heap kheap :inline :offset-assert 92) + (connection-list connectable :inline :offset-assert 108) + (stack UNKNOWN :dynamic :offset-assert 124) + ) + :method-count-assert 16 + :size-assert #x80 + :flag-assert #x1000000080 + (:state-methods + idle ;; 14 + die ;; 15 + ) + ) +|# + +;; (define-extern init-mood-precura function) +;; (define-extern update-precura-lights function) +;; (define-extern update-mood-precura function) +;; (define-extern set-precura-generator-light! function) +;; (define-extern set-precura-laser-light! function) +;; (define-extern set-precura-bomb-light! function) +;; (define-extern init-mood-precurb function) +;; (define-extern update-mood-precurb function) +;; (define-extern lprecurc-loader-init-by-other function) +;; (define-extern precura-login function) +;; (define-extern precura-activate function) +;; (define-extern precura-deactivate function) +;; (define-extern precura-logout function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; factory-hud ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; metalhead-flitter ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype metalhead-flitter (mh-squad-member) + ((move-angle float :offset-assert 1080) + (heading symbol :offset-assert 1084) ;; guessed by decompiler + (change-dir-time uint64 :offset-assert 1088) ;; time-frame + (last-change-dir uint64 :offset-assert 1096) + (off-screen-timer uint64 :offset-assert 1104) + (amb-sound-timer uint64 :offset-assert 1112) + (attack-time uint64 :offset-assert 1120) ;; time-frame + (target-pos vector :inline :offset-assert 1136) + (attack-pos vector :inline :offset-assert 1152) + (base-height float :offset-assert 1168) + ) + :method-count-assert 229 + :size-assert #x494 + :flag-assert #xe504200494 + (:methods + (metalhead-flitter-method-224 () none) ;; 224 + (metalhead-flitter-method-225 () none) ;; 225 + (metalhead-flitter-method-226 () none) ;; 226 + (metalhead-flitter-method-227 () none) ;; 227 + (metalhead-flitter-method-228 () none) ;; 228 + ) + (:state-methods + victory ;; 39 + ambush-jumping ;; 223 + ambush ;; 47 + active ;; 34 + stare ;; 37 + attack ;; 222 + hostile ;; 38 + die ;; 40 + circling ;; 157 + in-ditch ;; 192 + die-fast ;; 42 + ) + ) +|# + +;; (define-extern *fact-info-mh-flitter-defaults* fact-info-enemy-defaults) +;; (define-extern *metalhead-flitter-nav-enemy-info* nav-enemy-info) ;; nav-enemy-info +;; (define-extern metalhead-flitter-fall-and-play-death-anim function) ;; (function int float time-frame none :behavior metalhead-flitter) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; desertf-obs ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype des-jump-bridge (process-drawable) + () + :method-count-assert 23 + :size-assert #xc8 + :flag-assert #x17005000c8 + (:state-methods + idle ;; 20 + raise ;; 21 + up ;; 22 + ) + ) +|# + +#| +(deftype des-draw-bridge (process-drawable) + ((plane vector :inline :offset-assert 208) + ) + :method-count-assert 26 + :size-assert #xe0 + :flag-assert #x1a006000e0 + (:methods + (des-draw-bridge-method-25 () none) ;; 25 + ) + (:state-methods + idle ;; 20 + dormant ;; 21 + lower ;; 22 + down ;; 23 + raise ;; 24 + ) + ) +|# + +#| +(deftype des-garage-door (process-drawable) + () + :method-count-assert 24 + :size-assert #xc8 + :flag-assert #x18005000c8 + (:state-methods + idle ;; 20 + open ;; 21 + opening ;; 22 + closing ;; 23 + ) + ) +|# + +;; (define-extern des-garage-door-handler function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; comb-mood ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype comb-states (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ) +|# + +;; (define-extern init-mood-comb function) +;; (define-extern update-mood-comb function) +;; (define-extern *comb-field-texture-anim-array* texture-anim-array) +;; (define-extern set-comb-field-color! function) +;; (define-extern set-comb-field-flash! function) +;; (define-extern set-comb-field-texture-masks! function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ctyport-part ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype hiphog-exterior-marquee (process-drawable) + ((rot vector :inline :offset-assert 208) + (master-enable uint32 :offset-assert 224) + (mode uint32 :offset-assert 240) + (counter int32 :offset-assert 244) + (parts sparticle-launch-control 1 :offset-assert 248) ;; guessed by decompiler + ) + :method-count-assert 22 + :size-assert #xfc + :flag-assert #x16008000fc + (:methods + (hiphog-exterior-marquee-method-21 () none) ;; 21 ;; (hiphog-exterior-marquee-method-21 (_type_) none 21) + ) + (:state-methods + idle ;; 20, old: (idle () _type_ :state 20) + ) + ) +|# + +#| +(deftype farthy (process-drawable) + ((new-trans-hook basic :offset-assert 200) + (cur-trans-hook basic :offset-assert 204) + ) + :method-count-assert 21 + :size-assert #xd0 + :flag-assert #x15005000d0 + (:state-methods + idle ;; 20, old: (idle () _type_ :state 20) + ) + ) +|# + +;; (define-extern check-drop-level-ctyport-drop-userdata function) ;; (function sparticle-system sparticle-cpuinfo matrix none) +;; (define-extern *hiphog-exterior-marquee* array) ;; (array object) +;; (define-extern ctyport-sparticle-mode-animate function) +;; (define-extern *hiphog-exterior-marquee-group-ids* array) ;; (array int32) +;; (define-extern *hiphog-exterior-marquee-daxter-group-ids* array) ;; (array int32) +;; (define-extern *range-color-rubble-flame* curve-color-fast) +;; (define-extern *range-alpha-rubble-flame* curve2d-fast) +;; (define-extern *range-scale-rubble-flame-x* curve2d-fast) +;; (define-extern *range-scale-rubble-flame-y* curve2d-fast) +;; (define-extern *r-curve-rubble-flame* curve2d-fast) +;; (define-extern *g-curve-rubble-flame* curve2d-fast) +;; (define-extern *b-curve-rubble-flame* curve2d-fast) +;; (define-extern *curve-alpha-rubble-flame* curve2d-fast) +;; (define-extern *curve-scale-rubble-flame-x* curve2d-fast) +;; (define-extern *curve-scale-rubble-flame-y* curve2d-fast) +;; (define-extern *part-ctyport-rubble-fire-flame-curve-settings* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; comb-sentry ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype comb-sentry-shot (guard-shot) + () + :method-count-assert 41 + :size-assert #x220 + :flag-assert #x2901a00220 + ) +|# + +#| +(deftype comb-sentry (process-focusable) + ((target-pos vector :inline :offset-assert 208) + (up-dir vector :inline :offset-assert 224) + (attack-vel vector :inline :offset-assert 240) + (exploder-params basic :offset-assert 256) + (exploder-skel basic :offset-assert 260) + (exploder-anim uint32 :offset-assert 264) + (target-dist float :offset-assert 268) + (path-t float :offset-assert 272) + (path-dt float :offset-assert 276) + (hit-points float :offset-assert 280) + (incoming-attack-id int32 :offset-assert 284) + (angle float :offset-assert 288) + (spin float :offset-assert 292) + (shooting basic :offset-assert 296) + (should-attack basic :offset-assert 300) + (i-barrel int8 :offset-assert 304) + (hum-id uint32 :offset-assert 308) + (shot-time uint64 :offset-assert 312) + (attack-time uint64 :offset-assert 320) + (in-range-time uint64 :offset-assert 328) + (player-vehicle uint64 :offset-assert 336) + ) + :method-count-assert 40 + :size-assert #x158 + :flag-assert #x2800e00158 + (:methods + (comb-sentry-method-31 () none) ;; 31 + (comb-sentry-method-32 () none) ;; 32 + (comb-sentry-method-33 () none) ;; 33 + (comb-sentry-method-34 () none) ;; 34 + (comb-sentry-method-35 () none) ;; 35 + (comb-sentry-method-36 () none) ;; 36 + (comb-sentry-method-37 () none) ;; 37 + (comb-sentry-method-38 () none) ;; 38 + (comb-sentry-method-39 () none) ;; 39 + ) + (:state-methods + idle ;; 28 + path-follow ;; 29 + explode ;; 30 + ) + ) +|# + +#| +(deftype comb-sentinel (comb-sentry) + () + :method-count-assert 40 + :size-assert #x158 + :flag-assert #x2800e00158 + ) +|# + +#| +(deftype rail-sentinel (comb-sentry) + () + :method-count-assert 40 + :size-assert #x158 + :flag-assert #x2800e00158 + ) +|# + +;; (define-extern *comb-sentry-explode-params* joint-exploder-static-params) +;; (define-extern *comb-sentry-glow-template* object) +;; (define-extern *comb-sentry-glow-ring-template* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; comb-scenes ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern comb-lightjak-do-effect function) +;; (define-extern death-precursor death-info) ;; death-info +;; (define-extern start-precursor-effect function) ;; (function manipy none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; h-sled ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype hud-sled-health (hud) + () + :method-count-assert 27 + :size-assert #xac4 + :flag-assert #x1b0a500ac4 + ) +|# + +#| +(deftype pre-sled (process-drawable) + () + :method-count-assert 20 + :size-assert #xc8 + :flag-assert #x14005000c8 + ) +|# + +#| +(deftype sled-shot (projectile) + ((tail-pos vector :inline :offset-assert 512) + ) + :method-count-assert 41 + :size-assert #x210 + :flag-assert #x2901900210 + ) +|# + +#| +(deftype h-sled-probe-work (structure) + ((local-pos vector :inline :offset-assert 0) + (local-normal vector :inline :offset-assert 16) + (world-pos vector :inline :offset-assert 32) + (world-normal vector :inline :offset-assert 48) + (probe-pos vector :inline :offset-assert 64) + (ground-pos vector :inline :offset-assert 80) + (ground-normal vector :inline :offset-assert 96) + (velocity vector :inline :offset-assert 112) + (u-dir vector :inline :offset-assert 128) + (probe-uu float :offset-assert 144) + ) + :method-count-assert 9 + :size-assert #x94 + :flag-assert #x900000094 + ) +|# + +#| +(deftype h-sled-physics-work (structure) + ((mat matrix :inline :offset-assert 0) + (force vector :inline :offset-assert 64) + (velocity vector :inline :offset-assert 80) + (world-pos vector :inline :offset-assert 96) + (world-normal vector :inline :offset-assert 112) + (local-pos vector :inline :offset-assert 128) + (steering-axis vector :inline :offset-assert 144) + (lift-dir vector :inline :offset-assert 160) + (normal vector :inline :offset-assert 176) + (tmp vector :inline :offset-assert 192) + (p-body vector :inline :offset-assert 208) + (axis vector :inline :offset-assert 224) + (dir vector :inline :offset-assert 240) + (ground-normal vector :inline :offset-assert 256) + (edges UNKNOWN 3 :offset-assert 272) + (edge-dirs UNKNOWN 3 :offset-assert 320) + (impulse float :offset-assert 368) + (vel-dot-norm float :offset-assert 372) + (friction-coef float :offset-assert 376) + (speed-factor float :offset-assert 380) + (best-len float :offset-assert 384) + (len float :offset-assert 388) + (i-longest int8 :offset-assert 392) + (probe-work-array UNKNOWN 4 :offset-assert 400) + ) + :method-count-assert 9 + :size-assert #x410 + :flag-assert #x900000410 + ) +|# + +#| +(deftype h-sled (vehicle) + ((health-hud uint64 :offset-assert 696) + (overturned-time uint64 :offset-assert 704) + (shoot-time uint64 :offset-assert 712) + (shoot-delay uint16 :offset-assert 720) + (rider-hand-joint-array UNKNOWN 2 :offset-assert 722) + (i-barrel int8 :offset-assert 724) + (ai-target-speed float :offset-assert 728) + (engine-thrust float :offset-assert 732) + (engine-sound-envelope float :offset-assert 736) + (engine-sound-id uint32 :offset-assert 740) + (steer-sound-id uint32 :offset-assert 744) + (turbo-sound-id uint32 :offset-assert 748) + (engine-sound-envelope float :offset-assert 736) + (in-tunnel basic :offset-assert 756) + (whoosh-time uint64 :offset-assert 760) + (parts UNKNOWN 4 :offset-assert 768) + (gravity-dir vector :inline :offset-assert 784) + (path-pos vector :inline :offset-assert 800) + (path-dir vector :inline :offset-assert 816) + (tunnel-dir vector :inline :offset-assert 832) + (prev-tunnel-dir vector :inline :offset-assert 848) + (sum-ground-normal vector :inline :offset-assert 864) + (normal-dir vector :inline :offset-assert 880) + (impact-normal vector :inline :offset-assert 896) + (side-dir vector :inline :offset-assert 912) + (ai-target-pos vector :inline :offset-assert 928) + (whoosh-pos vector :inline :offset-assert 944) + (ground-pos-array UNKNOWN 4 :offset-assert 960) + ) + :method-count-assert 153 + :size-assert #x400 + :flag-assert #x9903800400 + (:methods + (h-sled-method-152 () none) ;; 152 + ) + (:state-methods + explode ;; 60 + player-control ;; 58 + ) + ) +|# + +;; (define-extern hud-sled-health-spawn function) +;; (define-extern sled-find-mesh-dir function) +;; (define-extern sled-shot-move function) +;; (define-extern sled-shot-reaction function) +;; (define-extern *h-sled-explosion-info* vehicle-explosion-info) +;; (define-extern *h-sled-constants* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; desert-dust-storm ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype desert-dust-storm (process) + ((intensity float :offset-assert 128) + (intensity-rate float :offset-assert 132) + (intensity-target float :offset-assert 136) + (origin vector :inline :offset-assert 144) + (current-wind-angle-speed float :offset-assert 160) + (current-wind-angle float :offset-assert 164) + (dest-wind-angle float :offset-assert 168) + (wind-speed float :offset-assert 172) + (dest-wind-speed float :offset-assert 176) + (stretch-val float :offset-assert 180) + (last-hold-time uint64 :offset-assert 184) + (wind-intensity float :offset-assert 192) + (new-generate-time uint64 :offset-assert 200) + (state-time uint64 :offset-assert 208) + (fog-plane-origin vector :inline :offset-assert 224) + (fog-plane-dir vector :inline :offset-assert 240) + (is-intro? basic :offset-assert 256) + (wind-sound uint32 :offset-assert 260) + (enabled-screen-filter? basic :offset-assert 264) + (dust-storm-clock-scalar float :offset-assert 268) + ) + :method-count-assert 21 + :size-assert #x110 + :flag-assert #x1500900110 + (:methods + (desert-dust-storm-method-17 () none) ;; 17 + (desert-dust-storm-method-18 () none) ;; 18 + (desert-dust-storm-method-19 () none) ;; 19 + (desert-dust-storm-method-20 () none) ;; 20 + ) + (:state-methods + track ;; 14 + hold-pos ;; 15 + die ;; 16 + ) + ) +|# + +#| +(deftype dust-storm-bank (basic) + ((spawn-radius meters :offset-assert 4) + (spawn-rand-xz-min meters :offset-assert 8) + (spawn-rand-xz-max meters :offset-assert 12) + (spawn-rand-y-min meters :offset-assert 16) + (spawn-rand-y-max meters :offset-assert 20) + ) + :method-count-assert 9 + :size-assert #x18 + :flag-assert #x900000018 + ) +|# + +;; (define-extern *duststorm-wind-vec* object) +;; (define-extern *duststorm-wind-vel* object) +;; (define-extern *duststorm-intensity* object) +;; (define-extern *duststorm-stationary?* object) +;; (define-extern *fog-intensity-scalar* object) +;; (define-extern desert-dust-storm-init-by-other function) +;; (define-extern *DUST_STORM-bank* dust-storm-bank) +;; (define-extern sparticle-duststorm-birth-func function) +;; (define-extern sparticle-duststorm-move function) +;; (define-extern compute-wind-angle function) +;; (define-extern create-dust-storm function) +;; (define-extern desert-activate function) +;; (define-extern desert-deactivate function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; credits ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; lfaccar-init ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern lfaccar-activate function) +;; (define-extern lfaccar-deactivate function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; onintent-part ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern check-bubble-surface-onintent function) ;; (function sparticle-system sparticle-cpuinfo matrix symbol) +;; (define-extern check-onintent-bugs function) ;; (function sparticle-system sparticle-cpuinfo matrix none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; stadium-mood ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype stadium-states (structure) + ((light light-state :inline :offset-assert 0) + (flame flames-state :inline :offset-assert 8) + ) + :method-count-assert 9 + :size-assert #xf + :flag-assert #x90000000f + ) +|# + +;; (define-extern update-mood-stadium function) ;; (function mood-context float int none :behavior time-of-day-proc) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; stadium-part ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; wasstad-ocean ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *ocean-colors-wasstad* object) +;; (define-extern *ocean-near-indices-wasstad* ocean-near-indices) +;; (define-extern *ocean-trans-indices-wasstad* ocean-trans-indices) +;; (define-extern *ocean-mid-indices-wasstad* ocean-mid-indices) +;; (define-extern *ocean-mid-masks-wasstad* ocean-mid-masks) +;; (define-extern *ocean-map-wasstad* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; wasstada-texture ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *wasstada-alpha-texture-anim-array* texture-anim-array) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; wasstada-mood ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype wasstada-states (structure) + ((flame0 flames-state :inline :offset-assert 0) + (flame1 flames-state :inline :offset-assert 8) + ) + :method-count-assert 9 + :size-assert #xf + :flag-assert #x90000000f + ) +|# + +;; (define-extern *wasstada-mood-color-table* object) +;; (define-extern *wasstada-mood-fog-table* object) +;; (define-extern update-mood-wasstada function) +;; (define-extern update-mood-copy-wasstada function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; factorya-texture ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *factoryb-water-texture-anim-array* texture-anim-array) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; stadium-scenes ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern spt-birth-func-brightness-buggy-door function) +;; (define-extern spt-birth-func-part-buggy-door function) +;; (define-extern *range-sat-explo-fma-color* curve-color-fast) +;; (define-extern *range-sat-explo-fma-alpha* curve2d-fast) +;; (define-extern *range-sat-explo-fma-scale-x* curve2d-fast) +;; (define-extern *range-sat-explo-fma-scale-y* curve2d-fast) +;; (define-extern *curve-sat-explo-fma-alpha* curve2d-fast) +;; (define-extern *curve-sat-explo-fma-scale-x* curve2d-fast) +;; (define-extern *curve-sat-explo-fma-scale-y* curve2d-fast) +;; (define-extern *part-fma-neo-satellite-explosion-texture-curve-settings* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; factoryb-init ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern factoryb-activate function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; mhcitya-texture ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *lmhcitya-tfrag-texture-anim-array* texture-anim-array) +;; (define-extern *mhcitya-pris-texture-anim-array* texture-anim-array) +;; (define-extern set-mhcity-de-door-skin! function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ctyinda-part ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *ctyinda-steam-particle-list* array) +;; (define-extern birth-func-texture-group-steam-ctyinda function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ctywide-scenes ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern spt-birth-func-brightness-part-fma-dark-eco-steam function) +;; (define-extern *range-fma-city-barrier-explo-big-color* curve-color-fast) +;; (define-extern *range-fma-city-barrier-explo-big-alpha* curve2d-fast) +;; (define-extern *range-fma-city-barrier-explo-big-scale-x* curve2d-fast) +;; (define-extern *range-fma-city-barrier-explo-big-scale-y* curve2d-fast) +;; (define-extern *curve-fma-city-barrier-explo-big-alpha* curve2d-fast) +;; (define-extern *curve-fma-city-barrier-explo-big-scale-x* curve2d-fast) +;; (define-extern *curve-fma-city-barrier-explo-big-scale-y* curve2d-fast) +;; (define-extern *part-fma-city-barrier-explosion-big-texture-curve-settings* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; kanga-lizard ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype waschase-speech-instance (structure) + ((speech uint16 :offset-assert 0) + (probability float :offset-assert 4) + (flags uint64 :offset-assert 8) + (play-count uint32 :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x14 + :flag-assert #x900000014 + ) +|# + +#| +(deftype waschase-speech-info (structure) + ((speeches basic :offset-assert 0) + (play-time uint64 :offset-assert 8) + (current-random uint64 :offset-assert 16) + (minimum-interval uint64 :offset-assert 24) + (random-interval uint64 :offset-assert 32) + (last-played int8 :offset-assert 40) + (flags uint8 :offset-assert 41) + ) + :method-count-assert 9 + :size-assert #x2a + :flag-assert #x90000002a + ) +|# + +#| +(deftype waschase-speech-group (structure) + ((play-time uint64 :offset-assert 0) + (info basic :offset-assert 8) + ) + :method-count-assert 9 + :size-assert #xc + :flag-assert #x90000000c + ) +|# + +#| +(deftype kanga-lizard (nav-enemy) + ((minimap connection-minimap :offset-assert 620) + (last-focus-ping uint64 :offset-assert 624) + (total-flee-time uint64 :offset-assert 632) + (current-flee-start uint64 :offset-assert 640) + (being-attacked basic :offset-assert 648) + ) + :method-count-assert 193 + :size-assert #x28c + :flag-assert #xc10210028c + (:state-methods + flee ;; 36 + reinit-if-find-nav-mesh ;; 191 + knocked ;; 31 + hidden ;; 190 + die-eaten ;; 192 + ) + ) +|# + +#| +(deftype task-manager-kanga-lizard (task-manager) + ((manager-entity basic :offset-assert 236) + (check-timer uint64 :offset-assert 244) + (main-timer uint64 :offset-assert 252) + (actor-group uint32 :offset-assert 260) + (actor-group-count int32 :offset-assert 264) + (dead-mask uint32 :offset-assert 268) + (last-eaten-talk int8 :offset-assert 272) + (last-die-talk int8 :offset-assert 273) + (been-on-flut basic :offset-assert 276) + ) + :method-count-assert 33 + :size-assert #x11c + :flag-assert #x2100a0011c + (:methods + (task-manager-kanga-lizard-method-32 () none) ;; 32 + ) + (:state-methods + active ;; 15 + ) + ) +|# + +;; (define-extern *kanga-lizard-speech-list* object) +;; (define-extern *waschase-speech* object) +;; (define-extern reset-waschase-speeches function) +;; (define-extern waschase-play-speech function) +;; (define-extern *kanga-lizard-nav-enemy-info* nav-enemy-info) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; kg-squad-control ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *default-kg-squad-member-settings* object) +;; (define-extern *alert-kg-squad-member-settings* object) +;; (define-extern *war-kg-squad-member-settings* object) +;; (define-extern set-kg-primary-target function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; hover-nav-lpattack ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *lpattack-adjacency* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; rubble-texture ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *rubblea-water-texture-anim-array* texture-anim-array) +;; (define-extern *rubblea2-water-texture-anim-array* texture-anim-array) +;; (define-extern *rubbleb-water-texture-anim-array* texture-anim-array) +;; (define-extern *rubblec-water-texture-anim-array* texture-anim-array) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; stadiuma-part ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern spt-birth-func-brightness-part-rubble-break-dust function) +;; (define-extern spt-birth-func-brightness-part-rubble-break-dust-trail function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; factory-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype fac-edge-list (basic) + ((edge UNKNOWN 4 :offset-assert 4) + ) + :method-count-assert 9 + :size-assert #xc + :flag-assert #x90000000c + ) +|# + +#| +(deftype factory-inout (structure) + ((lpath int16 :offset-assert 0) + (lpos float :offset-assert 4) + (flags uint8 :offset-assert 8) + ) + :method-count-assert 9 + :size-assert #x9 + :flag-assert #x900000009 + ) +|# + +#| +(deftype factory-pathlist (structure) + ((path UNKNOWN 200 :offset-assert 0) + (inout UNKNOWN 200 :offset-assert 800) + (loops UNKNOWN 200 :offset-assert 4000) + (npath int8 :offset-assert 4400) + (nloop int8 :offset-assert 4401) + (curidx int8 :offset-assert 4402) + ) + :method-count-assert 9 + :size-assert #x1133 + :flag-assert #x900001133 + ) +|# + +#| +(deftype factory-manager (process) + ((nfighters-spawned uint8 :offset-assert 128) + (nfighters-total uint8 :offset-assert 129) + (ntanks-spawned uint8 :offset-assert 130) + (player-born uint64 :offset-assert 136) + (player-died uint64 :offset-assert 144) + (fighter-spawned uint64 :offset-assert 152) + (fighter-killed uint64 :offset-assert 160) + (tank-spawned uint64 :offset-assert 168) + (tank-killed uint64 :offset-assert 176) + (fpath factory-pathlist :inline :offset-assert 184) + (tpath factory-pathlist :inline :offset-assert 4588) + (cur-wave uint8 :offset-assert 8991) + ) + :method-count-assert 17 + :size-assert #x2320 + :flag-assert #x1122a02320 + (:methods + (factory-manager-method-14 () none) ;; 14 + (factory-manager-method-15 () none) ;; 15 + (factory-manager-method-16 () none) ;; 16 + ) + ) +|# + +#| +(deftype factory-fighter (rigid-body-object) + ((first-time? basic :offset-assert 288) + (path-pos float :offset-assert 292) + (forw vector :inline :offset-assert 304) + (upvc vector :inline :offset-assert 320) + (ppos vector :inline :offset-assert 336) + (pvel vector :inline :offset-assert 352) + (pacc vector :inline :offset-assert 368) + (blendpath float :offset-assert 384) + (newpath int8 :offset-assert 388) + (path-idx int8 :offset-assert 389) + (last-hit-time uint64 :offset-assert 392) + (disappear basic :offset-assert 400) + (last-fire uint64 :offset-assert 408) + (turret-gun int8 :offset-assert 416) + (light-trail uint64 :offset-assert 424) + (rot-vel float :offset-assert 432) + (rot-acc float :offset-assert 436) + (engine-sound uint32 :offset-assert 440) + (engine-sound-playing? basic :offset-assert 444) + (last-snd-cmd uint64 :offset-assert 448) + (red-tip-change-time uint64 :offset-assert 456) + (red-tip-on basic :offset-assert 464) + ) + :method-count-assert 63 + :size-assert #x1d4 + :flag-assert #x3f016001d4 + (:methods + (factory-fighter-method-56 () none) ;; 56 + (factory-fighter-method-57 () none) ;; 57 + (factory-fighter-method-58 () none) ;; 58 + (factory-fighter-method-59 () none) ;; 59 + (factory-fighter-method-60 () none) ;; 60 + (factory-fighter-method-61 () none) ;; 61 + (factory-fighter-method-62 () none) ;; 62 + ) + ) +|# + +#| +(deftype fac-target (process-focusable) + ((sync sync-paused :inline :offset-assert 208) + (minimap connection-minimap :offset-assert 232) + (light-jm basic :offset-assert 236) + ) + :method-count-assert 35 + :size-assert #xf0 + :flag-assert #x23007000f0 + (:methods + (fac-target-method-28 () none) ;; 28 + (fac-target-method-29 () none) ;; 29 + (fac-target-method-30 () none) ;; 30 + (fac-target-method-31 () none) ;; 31 + (fac-target-method-32 () none) ;; 32 + (fac-target-method-33 () none) ;; 33 + (fac-target-method-34 () none) ;; 34 + ) + ) +|# + +#| +(deftype fac-gun-tower (process-focusable) + ((yaw float :offset-assert 208) + (yawvel float :offset-assert 212) + (pitch float :offset-assert 216) + (pitchvel float :offset-assert 220) + (dyaw float :offset-assert 224) + (dpitch float :offset-assert 228) + (last-fire uint64 :offset-assert 232) + (last-hit-time uint64 :offset-assert 240) + (gunrot int8 :offset-assert 248) + (muzzle int8 :offset-assert 249) + (gun-idx int8 :offset-assert 250) + (attack-id int32 :offset-assert 252) + (gun-tilt-jm basic :offset-assert 256) + (hit-points float :offset-assert 260) + (invincable basic :offset-assert 264) + (rotate-sound uint32 :offset-assert 268) + (rotate-sound-playing basic :offset-assert 272) + (blade-sound uint32 :offset-assert 276) + (blade-sound-playing basic :offset-assert 280) + (snd-cmd-time uint64 :offset-assert 288) + (minimap connection-minimap :offset-assert 296) + ) + :method-count-assert 38 + :size-assert #x12c + :flag-assert #x2600b0012c + (:methods + (fac-gun-tower-method-28 () none) ;; 28 + (fac-gun-tower-method-29 () none) ;; 29 + (fac-gun-tower-method-30 () none) ;; 30 + (fac-gun-tower-method-31 () none) ;; 31 + (fac-gun-tower-method-32 () none) ;; 32 + (fac-gun-tower-method-33 () none) ;; 33 + (fac-gun-tower-method-34 () none) ;; 34 + (fac-gun-tower-method-35 () none) ;; 35 + (fac-gun-tower-method-36 () none) ;; 36 + (fac-gun-tower-method-37 () none) ;; 37 + ) + ) +|# + +#| +(deftype fac-gun-tower-break (process-drawable) + () + :method-count-assert 22 + :size-assert #xc8 + :flag-assert #x16005000c8 + (:methods + (fac-gun-tower-break-method-20 () none) ;; 20 + (fac-gun-tower-break-method-21 () none) ;; 21 + ) + ) +|# + +#| +(deftype fac-gun-tower-base-broken (process-drawable) + () + :method-count-assert 21 + :size-assert #xc8 + :flag-assert #x15005000c8 + (:methods + (fac-gun-tower-base-broken-method-20 () none) ;; 20 + ) + ) +|# + +#| +(deftype hud-factory-damage (hud) + () + :method-count-assert 27 + :size-assert #xac4 + :flag-assert #x1b0a500ac4 + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; rubble-obs ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype rub-tower (process-focusable) + ((last-attack-time uint64 :offset-assert 208) + (collision-updated? basic :offset-assert 216) + ) + :method-count-assert 35 + :size-assert #xdc + :flag-assert #x23006000dc + (:methods + (rub-tower-method-32 () none) ;; 32 + (rub-tower-method-33 () none) ;; 33 + (rub-tower-method-34 () none) ;; 34 + ) + (:state-methods + idle ;; 28 + unstable ;; 29 + fall ;; 30 + fallen ;; 31 + ) + ) +|# + +#| +(deftype rub-electric-gate-switch (process-focusable) + ((part-sparks basic :offset-assert 208) + ) + :method-count-assert 35 + :size-assert #xd4 + :flag-assert #x23006000d4 + (:methods + (rub-electric-gate-switch-method-31 () none) ;; 31 + (rub-electric-gate-switch-method-32 () none) ;; 32 + (rub-electric-gate-switch-method-33 () none) ;; 33 + (rub-electric-gate-switch-method-34 () none) ;; 34 + ) + (:state-methods + idle ;; 28 + explode ;; 29 + exploded ;; 30 + ) + ) +|# + +#| +(deftype rub-elec-gate (process-drawable) + ((path-l basic :offset-assert 148) + (path-r basic :offset-assert 196) + (actor-group uint32 :offset-assert 200) + (actor-group-count int32 :offset-assert 204) + (width float :offset-assert 208) + (height float :offset-assert 212) + (active? basic :offset-assert 216) + (switch-status uint8 :offset-assert 220) + (palette-id int8 :offset-assert 221) + (hit-sound-id uint32 :offset-assert 224) + (shutoff-delay-time uint64 :offset-assert 228) + ) + :method-count-assert 23 + :size-assert #xf0 + :flag-assert #x17007000f0 + (:methods + (rub-elec-gate-method-22 () none) ;; 22 + ) + (:state-methods + idle ;; 20 + die ;; 21 + ) + ) +|# + +#| +(deftype rub-electric-gate-panel (process-drawable) + () + :method-count-assert 23 + :size-assert #xc8 + :flag-assert #x17005000c8 + (:methods + (rub-electric-gate-panel-method-21 () none) ;; 21 + (rub-electric-gate-panel-method-22 () none) ;; 22 + ) + (:state-methods + idle ;; 20 + ) + ) +|# + +#| +(deftype rub-electric-gate-panel-a (rub-electric-gate-panel) + () + :method-count-assert 23 + :size-assert #xc8 + :flag-assert #x17005000c8 + ) +|# + +#| +(deftype rub-electric-gate-panel-b (rub-electric-gate-panel) + () + :method-count-assert 23 + :size-assert #xc8 + :flag-assert #x17005000c8 + ) +|# + +#| +(deftype rub-electric-gate-panel-c (rub-electric-gate-panel) + () + :method-count-assert 23 + :size-assert #xc8 + :flag-assert #x17005000c8 + ) +|# + +#| +(deftype rub-electric-gate-panel-d (rub-electric-gate-panel) + () + :method-count-assert 23 + :size-assert #xc8 + :flag-assert #x17005000c8 + ) +|# + +;; (define-extern rub-tower-event-handler function) +;; (define-extern *rub-electric-gate-switch-exploder-params* joint-exploder-static-params) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; rapid-gunner ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype rapid-gunner (nav-enemy) + ((dest-quat quaternion :inline :offset-assert 624) + (turret-pos vector :inline :offset-assert 640) + (turret-actor basic :offset-assert 656) + (scared-timer uint64 :offset-assert 664) + ) + :method-count-assert 197 + :size-assert #x2a0 + :flag-assert #xc5022002a0 + (:state-methods + hostile ;; 38 + turret-seek ;; 190 + turret-get-on ;; 191 + turret-active ;; 192 + turret-active-shoot ;; 193 + turret-getting-off ;; 194 + turret-get-off ;; 195 + attack ;; 196 + knocked-recover ;; 32 + ) + ) +|# + +;; (define-extern *rapid-gunner-nav-enemy-info* nav-enemy-info) ;; nav-enemy-info +;; (define-extern rapid-gunner-turret-post function) +;; (define-extern rapid-gunner-turret-code function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; wasstadc-obs ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype task-manager-throne-rog (task-manager) + ((arrow-h uint64 :offset-assert 240) + ) + :method-count-assert 32 + :size-assert #xf8 + :flag-assert #x20008000f8 + (:state-methods + active ;; 15 + ) + ) +|# + +#| +(deftype wstd-fight-plat-box (base-plat) + ((crate-h uint64 :offset-assert 272) + (next-lava-part uint64 :offset-assert 280) + ) + :method-count-assert 41 + :size-assert #x120 + :flag-assert #x2900a00120 + (:methods + (wstd-fight-plat-box-method-37 () none) ;; 37 + (wstd-fight-plat-box-method-38 () none) ;; 38 + (wstd-fight-plat-box-method-39 () none) ;; 39 + (wstd-fight-plat-box-method-40 () none) ;; 40 + ) + (:state-methods + open ;; 36 + active ;; 35 + ) + ) +|# + +#| +(deftype wstd-fight-house-a (process-drawable) + () + :method-count-assert 22 + :size-assert #xc8 + :flag-assert #x16005000c8 + (:state-methods + open ;; 21 + active ;; 20 + ) + ) +|# + +#| +(deftype wstd-fight-plat (base-plat) + ((basepos vector :inline :offset-assert 272) + (box UNKNOWN 4 :offset-assert 288) + (door UNKNOWN 4 :offset-assert 320) + (next-crate-spawn uint64 :offset-assert 352) + (next-box-spawn int32 :offset-assert 360) + (delta-y float :offset-assert 364) + (spawn-lava? basic :offset-assert 368) + (next-lava-part uint64 :offset-assert 376) + (part-lava-pos vector :inline :offset-assert 384) + (attack-pos UNKNOWN 8 :offset-assert 400) + (attack-ang UNKNOWN 8 :offset-assert 528) + (cur-point int32 :offset-assert 560) + (ambient-sound-id uint32 :offset-assert 564) + (depth float :offset-assert 568) + (go-up basic :offset-assert 572) + (translate float :offset-assert 576) + (next-lava-sound uint64 :offset-assert 584) + (next-alarm-sound uint64 :offset-assert 592) + (y-offset-box float :offset-assert 600) + ) + :method-count-assert 41 + :size-assert #x25c + :flag-assert #x2901e0025c + (:methods + (wstd-fight-plat-method-36 () none) ;; 36 + (wstd-fight-plat-method-39 () none) ;; 39 + (wstd-fight-plat-method-40 () none) ;; 40 + ) + (:state-methods + plat-base-state ;; 35 + active ;; 37 + go-down ;; 38 + ) + ) +|# + +#| +(deftype wstd-fight-plat-smlplat (base-plat) + ((basepos vector :inline :offset-assert 272) + (box uint64 :offset-assert 288) + (next-crate-spawn uint64 :offset-assert 296) + (next-box-spawn int32 :offset-assert 304) + (delta-y float :offset-assert 308) + (spawn-lava? basic :offset-assert 312) + (next-lava-part uint64 :offset-assert 320) + (part-lava-pos vector :inline :offset-assert 336) + (ambient-sound-id uint32 :offset-assert 352) + (depth float :offset-assert 356) + (translate float :offset-assert 360) + (angle-move float :offset-assert 364) + (ride-timer uint64 :offset-assert 368) + (lock basic :offset-assert 376) + ) + :method-count-assert 43 + :size-assert #x17c + :flag-assert #x2b0100017c + (:methods + (wstd-fight-plat-smlplat-method-36 () none) ;; 36 + (wstd-fight-plat-smlplat-method-41 () none) ;; 41 + (wstd-fight-plat-smlplat-method-42 () none) ;; 42 + ) + (:state-methods + plat-base-state ;; 35 + active ;; 37 + go-down ;; 38 + go-up ;; 39 + go-up-fma ;; 40 + ) + ) +|# + +#| +(deftype wstd-fight-plat-large (base-plat) + ((basepos vector :inline :offset-assert 272) + (box UNKNOWN 4 :offset-assert 288) + (door UNKNOWN 8 :offset-assert 320) + (next-crate-spawn uint64 :offset-assert 384) + (next-box-spawn int32 :offset-assert 392) + (delta-y float :offset-assert 396) + (spawn-lava? basic :offset-assert 400) + (next-lava-part uint64 :offset-assert 408) + (part-lava-pos vector :inline :offset-assert 416) + (attack-pos UNKNOWN 8 :offset-assert 432) + (attack-ang UNKNOWN 8 :offset-assert 560) + (cur-point int32 :offset-assert 592) + (ambient-sound-id uint32 :offset-assert 596) + (depth float :offset-assert 600) + (go-up basic :offset-assert 604) + (translate float :offset-assert 608) + (next-lava-sound uint64 :offset-assert 616) + (next-alarm-sound uint64 :offset-assert 624) + ) + :method-count-assert 43 + :size-assert #x278 + :flag-assert #x2b02000278 + (:methods + (wstd-fight-plat-large-method-36 () none) ;; 36 + (wstd-fight-plat-large-method-40 () none) ;; 40 + (wstd-fight-plat-large-method-41 () none) ;; 41 + (wstd-fight-plat-large-method-42 () none) ;; 42 + ) + (:state-methods + plat-base-state ;; 35 + active ;; 37 + go-down ;; 38 + end ;; 39 + ) + ) +|# + +#| +(deftype house-info (structure) + ((joint-index uint32 :offset-assert 0) + (y-angle float :offset-assert 4) + (x-offset float :offset-assert 8) + ) + :method-count-assert 9 + :size-assert #xc + :flag-assert #x90000000c + ) +|# + +#| +(deftype marauder-info (structure) + ((handle uint64 :offset-assert 0) + (vis-point int32 :offset-assert 8) + ) + :method-count-assert 9 + :size-assert #xc + :flag-assert #x90000000c + ) +|# + +#| +(deftype task-manager-arena-fight-base (task-manager) + ((marauder UNKNOWN 16 :offset-assert 236) + (last-count uint32 :offset-assert 492) + (count-alive uint32 :offset-assert 496) + (entity basic :offset-assert 52) + (check-timer uint64 :offset-assert 508) + (next-spawn uint64 :offset-assert 516) + (count uint32 :offset-assert 524) + (angle uint32 :offset-assert 528) + (dark basic :offset-assert 532) + (arrow-h uint64 :offset-assert 540) + (snd-id uint32 :offset-assert 548) + (crowd-intensity float :offset-assert 552) + (next-go-down uint64 :offset-assert 556) + (actor-group uint32 :offset-assert 564) + (actor-group-count int32 :offset-assert 568) + (platform UNKNOWN 4 :offset-assert 572) + (gui-id uint32 :offset-assert 604) + (crate-h UNKNOWN 3 :offset-assert 612) + (darkbomb basic :offset-assert 636) + ) + :method-count-assert 37 + :size-assert #x284 + :flag-assert #x2502100284 + (:methods + (task-manager-arena-fight-base-method-32 () none) ;; 32 + (task-manager-arena-fight-base-method-33 () none) ;; 33 + (task-manager-arena-fight-base-method-34 () none) ;; 34 + (task-manager-arena-fight-base-method-35 () none) ;; 35 + (task-manager-arena-fight-base-method-36 () none) ;; 36 + ) + ) +|# + +#| +(deftype task-manager-arena-gun-training (task-manager) + ((gui-id uint32 :offset-assert 240) + (text-id uint32 :offset-assert 244) + ) + :method-count-assert 33 + :size-assert #xf8 + :flag-assert #x21008000f8 + (:methods + (task-manager-arena-gun-training-method-32 () none) ;; 32 + ) + (:state-methods + active ;; 15 + ) + ) +|# + +#| +(deftype task-manager-arena-gun-training-blue (task-manager-arena-gun-training) + () + :method-count-assert 33 + :size-assert #x100 + :flag-assert #x2100800100 + (:state-methods + active ;; 15 + ) + ) +|# + +#| +(deftype task-manager-arena-fight (task-manager-arena-fight-base) + ((display-fire basic :offset-assert 644) + ) + :method-count-assert 40 + :size-assert #x288 + :flag-assert #x2802100288 + (:methods + (task-manager-arena-fight-method-39 () none) ;; 39 + ) + (:state-methods + active ;; 15 + go-down ;; 37 + throne ;; 38 + ) + ) +|# + +#| +(deftype task-manager-arena-fight-2 (task-manager-arena-fight-base) + ((play-hint basic :offset-assert 644) + (hint-time uint64 :offset-assert 648) + (dj-train-time uint64 :offset-assert 656) + (dj-train uint32 :offset-assert 664) + ) + :method-count-assert 40 + :size-assert #x29c + :flag-assert #x280220029c + (:state-methods + active ;; 15 + wait-start ;; 39 + go-down ;; 37 + done ;; 38 + ) + ) +|# + +#| +(deftype task-manager-arena-fight-3 (task-manager-arena-fight-2) + () + :method-count-assert 40 + :size-assert #x29c + :flag-assert #x280220029c + (:state-methods + done ;; 38 + wait-start ;; 39 + ) + ) +|# + +;; (define-extern wstd-fight-plat-box-init-by-other function) +;; (define-extern wstd-fight-house-a-init-by-other function) +;; (define-extern *fight-plat-lava-pos* array) +;; (define-extern wstd-fight-plat-init-by-other function) +;; (define-extern wstd-fight-plat-smlplat-init-by-other function) +;; (define-extern wasstadc-tl function) +;; (define-extern wstd-fight-plat-large-init-by-other function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; target-ladder ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype ladder-info (basic) + ((ladder uint64 :offset-assert 8) + (flip deg :offset-assert 16) + (interp float :offset-assert 20) + (start-mat matrix :inline :offset-assert 32) + ) + :method-count-assert 9 + :size-assert #x60 + :flag-assert #x900000060 + ) +|# + +;; (define-extern *ladder-mods* object) +;; (define-extern target-ladder-start object) +;; (define-extern target-ladder-stance object) +;; (define-extern target-ladder-walk-up object) +;; (define-extern target-ladder-walk-down object) +;; (define-extern target-ladder-slide-down object) +;; (define-extern target-ladder-switch object) +;; (define-extern target-ladder-jump-off object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ladder ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype ladder (process-drawable) + ((rider-unit float :offset-assert 200) + (rider-time uint64 :offset-assert 208) + (art-height meters :offset-assert 216) + (set-height meters :offset-assert 220) + (meters-per-unit meters :offset-assert 224) + (meters-per-rung meters :offset-assert 228) + (options uint32 :offset-assert 232) + ) + :method-count-assert 27 + :size-assert #xec + :flag-assert #x1b007000ec + (:methods + (ladder-method-22 () none) ;; 22 + (ladder-method-23 () none) ;; 23 + (ladder-method-24 () none) ;; 24 + (ladder-method-25 () none) ;; 25 + (ladder-method-26 () none) ;; 26 + ) + (:state-methods + idle ;; 20 + active ;; 21 + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; factory-manager ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype task-manager-factory-sky-battle (task-manager) + ((factory-sky-battle-entity basic :offset-assert 236) + (check-timer uint64 :offset-assert 244) + (ended-timer uint64 :offset-assert 252) + (mission-complete-time uint64 :offset-assert 260) + (actor-group uint32 :offset-assert 268) + (actor-group-count int32 :offset-assert 272) + (cur-group int8 :offset-assert 276) + (hud-delay uint64 :offset-assert 284) + (sound-id uint32 :offset-assert 292) + (hud-damage uint64 :offset-assert 300) + (hint-given basic :offset-assert 308) + ) + :method-count-assert 33 + :size-assert #x13c + :flag-assert #x2100c0013c + (:methods + (task-manager-factory-sky-battle-method-32 () none) ;; 32 + ) + (:state-methods + resolution ;; 17 + ) + ) +|# + +#| +(deftype light-trail-tracker-vehicle (light-trail-tracker) + () + :method-count-assert 21 + :size-assert #xac + :flag-assert #x15003000ac + ) +|# + +#| +(deftype factory-fighter-path (process-drawable) + () + :method-count-assert 20 + :size-assert #xc8 + :flag-assert #x14005000c8 + ) +|# + +#| +(deftype factory-tanks-path (process-drawable) + () + :method-count-assert 20 + :size-assert #xc8 + :flag-assert #x14005000c8 + ) +|# + +;; (define-extern *fac-task-manager* object) +;; (define-extern *fac-fighter-fired* object) +;; (define-extern *fac-wave* object) +;; (define-extern *fac-shotsleft* object) +;; (define-extern *factory-fighter-trail* object) +;; (define-extern fac-count-curves function) +;; (define-extern *fac-tmp-str* object) +;; (define-extern factory-manager-init-by-other function) +;; (define-extern factory-manager-start function) +;; (define-extern *fac-fighter-rigid-body-constants* object) +;; (define-extern *fac-fighter-exploder-params* joint-exploder-static-params) +;; (define-extern fighter-best-birth-path function) +;; (define-extern fighter-birth-path function) +;; (define-extern factory-fighter-standard-event-handler function) +;; (define-extern factory-fighter-init-by-other function) +;; (define-extern factory-fighter-spawn function) +;; (define-extern *fac-target-exploder-params* joint-exploder-static-params) +;; (define-extern hack-wave function) +;; (define-extern fac-target-standard-event-handler function) +;; (define-extern factory-shotsleft function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; cty-sniper-battery ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype cty-sniper-button-top (process-drawable) + ((is-up basic :offset-assert 200) + (colormode uint64 :offset-assert 208) + ) + :method-count-assert 23 + :size-assert #xd8 + :flag-assert #x17006000d8 + (:state-methods + idle ;; 20 + going-up ;; 21 + going-down ;; 22 + ) + ) +|# + +#| +(deftype cty-sniper-button (process-drawable) + ((stay-down-time uint64 :offset-assert 200) + (lid uint64 :offset-assert 208) + ) + :method-count-assert 26 + :size-assert #xd8 + :flag-assert #x1a006000d8 + (:methods + (cty-sniper-button-method-25 () none) ;; 25 + ) + (:state-methods + idle-up ;; 20 + going-down ;; 21 + idle-down ;; 22 + bail-up ;; 23 + moribund ;; 24 + ) + ) +|# + +#| +(deftype cty-sniper-battery (process-focusable) + ((incoming-attack-id uint32 :offset-assert 208) + (actor-group uint32 :offset-assert 212) + (actor-group-count int32 :offset-assert 216) + (known-vulnerable-this-frame basic :offset-assert 220) + (during-movement-sound uint32 :offset-assert 224) + (run-once basic :offset-assert 228) + (halted basic :offset-assert 232) + ) + :method-count-assert 33 + :size-assert #xec + :flag-assert #x21007000ec + (:methods + (cty-sniper-battery-method-32 () none) ;; 32 + ) + (:state-methods + idle ;; 28 + vulnerable ;; 29 + die ;; 30 + explode ;; 31 + ) + ) +|# + +;; (define-extern cty-sniper-button-top-handler function) +;; (define-extern cty-sniper-button-top-genpost function) +;; (define-extern cty-sniper-button-top-init-by-other function) +;; (define-extern *cty-sniper-battery-exploder-params* joint-exploder-static-params) +;; (define-extern cty-sniper-battery-handler function) +;; (define-extern cty-sniper-battery-init-by-other function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; cty-sniper-turret ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype task-manager-city-sniper-fight (task-manager) + ((sniper-turrets-marker-entity basic :offset-assert 236) + (check-timer uint64 :offset-assert 244) + (actor-group uint32 :offset-assert 252) + (actor-group-count int32 :offset-assert 256) + (cur-group int8 :offset-assert 260) + (win-time uint64 :offset-assert 268) + (music-started basic :offset-assert 276) + (torn-said-turret-rising basic :offset-assert 280) + (torn-said-dodge basic :offset-assert 284) + (torn-said-battery-retract basic :offset-assert 288) + (torn-speech-one-down basic :offset-assert 292) + (dax-said-bop-the-core basic :offset-assert 296) + (last-torn-speech-time uint64 :offset-assert 300) + (battery-retractions-since-last-kaboom int32 :offset-assert 308) + (minimap connection-minimap :offset-assert 312) + ) + :method-count-assert 33 + :size-assert #x140 + :flag-assert #x2100c00140 + (:methods + (task-manager-city-sniper-fight-method-32 () none) ;; 32 + ) + (:state-methods + active ;; 15 + wait ;; 14 + ) + ) +|# + +#| +(deftype hud-cty-sniper-fight (hud) + ((buttons uint32 :offset-assert 2756) + (num-buttons int8 :offset-assert 2760) + ) + :method-count-assert 28 + :size-assert #xac9 + :flag-assert #x1c0a500ac9 + (:methods + (hud-cty-sniper-fight-method-27 () none) ;; 27 + ) + ) +|# + +#| +(deftype cty-sniper-turret-shot (projectile) + ((hit-actor? basic :offset-assert 512) + (tail-pos vector :inline :offset-assert 528) + ) + :method-count-assert 41 + :size-assert #x220 + :flag-assert #x2901a00220 + (:state-methods + impact ;; 22 + ) + ) +|# + +#| +(deftype cty-sniper-turret (process-focusable) + ((los los-control :inline :offset-assert 208) + (reticle uint64 :offset-assert 376) + (tank-quat quaternion :inline :offset-assert 384) + (rotate-quat quaternion :inline :offset-assert 400) + (rotate-rate float :offset-assert 416) + (rotate-mult float :offset-assert 420) + (shot-range float :offset-assert 424) + (fov-mult float :offset-assert 428) + (offset vector :inline :offset-assert 432) + (sight-pos vector :inline :offset-assert 448) + (firing-sight-pos vector :inline :offset-assert 464) + (gun-timer uint64 :offset-assert 480) + (gun-elev-jmod joint-mod-rotate-world :inline :offset-assert 496) + (gun-elev-joint-index int32 :offset-assert 528) + (gun-elev-desired-rotation quaternion :inline :offset-assert 544) + (gun-azimuth-jmod joint-mod-rotate-world :inline :offset-assert 560) + (gun-azimuth-joint-index int32 :offset-assert 592) + (gun-azimuth-desired-rotation quaternion :inline :offset-assert 608) + (gun-elev float :offset-assert 624) + (gun-elev-cam float :offset-assert 628) + (gun-aims-from-joint int32 :offset-assert 632) + (gun-spread float :offset-assert 636) + (gun-current-aim-location vector :inline :offset-assert 640) + (gun-elbow-jmod joint-mod-rotate-local :inline :offset-assert 656) + (gun-shoulder-jmod joint-mod-rotate-local :inline :offset-assert 688) + (pos-cam-offset vector :inline :offset-assert 720) + (flags uint16 :offset-assert 736) + (turn-sound-id uint32 :offset-assert 740) + (h-reticle-strip uint64 :offset-assert 744) + (minimap connection-minimap :offset-assert 752) + (actor-group uint32 :offset-assert 756) + (actor-group-count int32 :offset-assert 760) + (hud-buttons uint64 :offset-assert 768) + ) + :method-count-assert 42 + :size-assert #x308 + :flag-assert #x2a02900308 + (:methods + (cty-sniper-turret-method-35 () none) ;; 35 + (cty-sniper-turret-method-36 () none) ;; 36 + (cty-sniper-turret-method-37 () none) ;; 37 + (cty-sniper-turret-method-38 () none) ;; 38 + (cty-sniper-turret-method-39 () none) ;; 39 + (cty-sniper-turret-method-40 () none) ;; 40 + (cty-sniper-turret-method-41 () none) ;; 41 + ) + (:state-methods + waiting-for-batteries ;; 28 + asleep ;; 29 + locked-on ;; 32 + ready ;; 30 + fire ;; 31 + die ;; 33 + explode ;; 34 + ) + ) +|# + +#| +(deftype simple-prim-turret-reticle (simple-prim) + ((h-parent-turret uint64 :offset-assert 208) + ) + :method-count-assert 26 + :size-assert #xd8 + :flag-assert #x1a006000d8 + (:state-methods + active ;; 20 + ) + ) +|# + +#| +(deftype cty-sniper-turret-reticle (process) + ((ring-inner basic :offset-assert 128) + (ring-middle basic :offset-assert 132) + (ring-outer basic :offset-assert 136) + (ring-inner-radius float :offset-assert 140) + (ring-middle-radius float :offset-assert 144) + (ring-outer-radius float :offset-assert 148) + (h-parent-turret uint64 :offset-assert 152) + (root basic :offset-assert 160) + (wander-offset UNKNOWN 2 :offset-assert 176) + (wander-offset-reset-time uint64 :offset-assert 208) + (inner-ring-offset float :offset-assert 216) + (middle-ring-offset float :offset-assert 220) + (outer-ring-offset float :offset-assert 224) + (ring-scale-multiplier float :offset-assert 228) + (reticle-looping-sound uint32 :offset-assert 232) + (reticle-lockon-sound uint32 :offset-assert 236) + (current-color uint32 :offset-assert 240) + (current-alpha uint8 :offset-assert 244) + (lockon-start-time uint64 :offset-assert 248) + (flags uint8 :offset-assert 256) + ) + :method-count-assert 21 + :size-assert #x101 + :flag-assert #x1500900101 + (:methods + (cty-sniper-turret-reticle-method-16 () none) ;; 16 + (cty-sniper-turret-reticle-method-17 () none) ;; 17 + (cty-sniper-turret-reticle-method-18 () none) ;; 18 + (cty-sniper-turret-reticle-method-19 () none) ;; 19 + (cty-sniper-turret-reticle-method-20 () none) ;; 20 + ) + (:state-methods + idle ;; 14 + lock ;; 15 + ) + ) +|# + +;; (define-extern *cty-sniper-fight-kg-squad-member-settings* object) +;; (define-extern *range-ftexplo-dust-color* curve-color-fast) +;; (define-extern *range-ftexplo-dust-alpha* curve2d-fast) +;; (define-extern *range-ftexplo-dust-scale-x* curve2d-fast) +;; (define-extern *range-ftexplo-dust-scale-y* curve2d-fast) +;; (define-extern *curve-ftexplo-dust-alpha* curve2d-fast) +;; (define-extern *curve-ftexplo-dust-scale-x* curve2d-fast) +;; (define-extern *curve-ftexplo-dust-scale-y* curve2d-fast) +;; (define-extern *part-sniper-turret-explosion-dust-in-curve-settings* object) +;; (define-extern *range-ftexplo-color* curve-color-fast) +;; (define-extern *range-ftexplo-alpha* curve2d-fast) +;; (define-extern *range-ftexplo-scale-x* curve2d-fast) +;; (define-extern *range-ftexplo-scale-y* curve2d-fast) +;; (define-extern *curve-ftexplo-alpha* curve2d-fast) +;; (define-extern *curve-ftexplo-scale-x* curve2d-fast) +;; (define-extern *curve-ftexplo-scale-y* curve2d-fast) +;; (define-extern *part-sniper-turret-explosion-texture-curve-settings* object) +;; (define-extern cty-sniper-turret-shot-move function) +;; (define-extern spawn-cty-sniper-turret-projectile function) +;; (define-extern cty-sniper-turret-reticle-init-by-other function) +;; (define-extern sloppy-lead-player-location function) +;; (define-extern cty-sniper-turret-reticle-post function) +;; (define-extern cty-sniper-turret-reticle-handler function) +;; (define-extern *cty-sniper-turret-exploder-params* joint-exploder-static-params) +;; (define-extern citysniper-draw-2d-hud function) +;; (define-extern sniper-turret-post function) +;; (define-extern cty-sniper-turret-handler function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; eco-green-collider ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype eco-green-collider (process-drawable) + () + :method-count-assert 22 + :size-assert #xc8 + :flag-assert #x16005000c8 + (:methods + (eco-green-collider-method-21 () none) ;; 21 + ) + (:state-methods + idle ;; 20 + ) + ) +|# + +;; (define-extern eco-green-collider-init-by-other function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; forest-mood ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype forest-states (structure) + ((light light-state :inline :offset-assert 0) + (gun-values UNKNOWN 3 :offset-assert 8) + (fog-interp float :offset-assert 20) + ) + :method-count-assert 9 + :size-assert #x18 + :flag-assert #x900000018 + ) +|# + +;; (define-extern update-forest-lights function) +;; (define-extern update-mood-forest function) ;; (function mood-context float int none :behavior time-of-day-proc) +;; (define-extern set-forest-gun-flash! function) +;; (define-extern set-forest-fog-interp! function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; mined-texture ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *mined-tfrag-texture-anim-array* texture-anim-array) +;; (define-extern set-mined-pillar-texture! function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; forest-kill-plants ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype hud-forest-plants (hud) + () + :method-count-assert 27 + :size-assert #xac4 + :flag-assert #x1b0a500ac4 + ) +|# + +#| +(deftype hud-green-eco-gauge (hud) + () + :method-count-assert 27 + :size-assert #xac4 + :flag-assert #x1b0a500ac4 + ) +|# + +#| +(deftype eco-green-trail-tracker (light-trail-tracker) + () + :method-count-assert 21 + :size-assert #xac + :flag-assert #x15003000ac + ) +|# + +#| +(deftype task-manager-forest-plants (task-manager) + ((plant-manager-entity basic :offset-assert 236) + (actor-group uint32 :offset-assert 240) + (actor-group-count int32 :offset-assert 244) + (plants basic :offset-assert 248) + (check-timer uint64 :offset-assert 252) + (displayed-hint? basic :offset-assert 260) + (trail-handle uint64 :offset-assert 268) + (hud-green-eco uint64 :offset-assert 212) + (updated-minimap? basic :offset-assert 276) + (cam-setting-timer uint64 :offset-assert 284) + ) + :method-count-assert 33 + :size-assert #x128 + :flag-assert #x2100b00128 + (:methods + (task-manager-forest-plants-method-32 () none) ;; 32 + ) + (:state-methods + active ;; 15 + ) + ) +|# + +;; (define-extern *eco-width-curve* curve2d-fast) +;; (define-extern *eco-alpha-curve* curve2d-fast) +;; (define-extern *eco-color-curve-green* curve-color-fast) +;; (define-extern *eco-green-trail* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; forest-ring-chase ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype for-race-ring-finder (process-drawable) + ((path-pos float :offset-assert 200) + (sound-id uint32 :offset-assert 204) + (ring-finder-speed float :offset-assert 208) + (part-subsampler basic :offset-assert 212) + ) + :method-count-assert 23 + :size-assert #xd8 + :flag-assert #x17006000d8 + (:methods + (for-race-ring-finder-method-22 () none) ;; 22 + ) + (:state-methods + find ;; 20 + die ;; 21 + ) + ) +|# + +#| +(deftype for-race-ring (process-drawable) + ((mat matrix :inline :offset-assert 208) + (taskman uint64 :offset-assert 272) + (is-final? basic :offset-assert 280) + (part-final basic :offset-assert 284) + ) + :method-count-assert 24 + :size-assert #x120 + :flag-assert #x1800a00120 + (:methods + (for-race-ring-method-23 () none) ;; 23 + ) + (:state-methods + dormant ;; 20 + idle ;; 21 + die ;; 22 + ) + ) +|# + +#| +(deftype for-statue (process-drawable) + ((id int32 :offset-assert 200) + (sound-id uint32 :offset-assert 204) + (part-eyes basic :offset-assert 208) + (alpha float :offset-assert 212) + ) + :method-count-assert 29 + :size-assert #xd8 + :flag-assert #x1d006000d8 + (:methods + (for-statue-method-27 () none) ;; 27 + (for-statue-method-28 () none) ;; 28 + ) + (:state-methods + dormant ;; 20 + idle ;; 21 + rise ;; 22 + active ;; 23 + open-eyes ;; 24 + complete ;; 25 + explode ;; 26 + ) + ) +|# + +#| +(deftype hud-forest-ring-chase (hud) + () + :method-count-assert 27 + :size-assert #xac4 + :flag-assert #x1b0a500ac4 + ) +|# + +#| +(deftype forest-path-points-static (structure) + ((points uint32 :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x4 + :flag-assert #x900000004 + ) +|# + +#| +(deftype forest-path-array-static (structure) + ((paths basic :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x4 + :flag-assert #x900000004 + ) +|# + +#| +(deftype forest-ring-path-control (path-control) + () + :method-count-assert 32 + :size-assert #x24 + :flag-assert #x2000000024 + ) +|# + +#| +(deftype forest-path-array (structure) + ((paths basic :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x4 + :flag-assert #x900000004 + ) +|# + +#| +(deftype task-manager-forest-ring-chase (task-manager) + ((ring-manager-entity basic :offset-assert 236) + (actor-group uint32 :offset-assert 240) + (actor-group-count int32 :offset-assert 244) + (current-statue uint8 :offset-assert 248) + (current-ring uint8 :offset-assert 249) + (check-timer uint64 :offset-assert 252) + (use-camera? basic :offset-assert 260) + (path-ctrl UNKNOWN 5 :offset-assert 264) + (ring-finder uint64 :offset-assert 348) + (found-ring? basic :offset-assert 356) + (cam-timer uint64 :offset-assert 364) + (cam-timer-set? basic :offset-assert 372) + ) + :method-count-assert 33 + :size-assert #x17c + :flag-assert #x210100017c + (:methods + (task-manager-forest-ring-chase-method-32 () none) ;; 32 + ) + (:state-methods + active ;; 15 + ) + ) +|# + +#| +(deftype task-manager-forest-ring-resolution (task-manager) + () + :method-count-assert 32 + :size-assert #xf0 + :flag-assert #x20007000f0 + (:state-methods + active ;; 15 + ) + ) +|# + +;; (define-extern print-ring-positions function) +;; (define-extern for-race-ring-finder-init-by-other function) +;; (define-extern for-race-ring-cleared? function) +;; (define-extern *for-statue-played-hint?* object) +;; (define-extern *for-statue-debris-params* debris-static-params) +;; (define-extern *for-ring-times* array) +;; (define-extern *forest-path-array-lengths* array) +;; (define-extern *forest-path-point-lengths* array) +;; (define-extern *forest-ring-paths* array) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; forest-tasks ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype task-manager-forest-machine (task-manager) + ((manager-entity basic :offset-assert 236) + (actor-group uint32 :offset-assert 240) + (actor-group-count int32 :offset-assert 244) + (max-neo-spawned-enemies int32 :offset-assert 248) + ) + :method-count-assert 34 + :size-assert #x100 + :flag-assert #x2200800100 + (:methods + (task-manager-forest-machine-method-32 () none) ;; 32 + (task-manager-forest-machine-method-33 () none) ;; 33 + ) + (:state-methods + active ;; 15 + ) + ) +|# + +#| +(deftype task-manager-forest-machine-resolution (task-manager) + ((manager-entity basic :offset-assert 236) + (actor-group uint32 :offset-assert 240) + (actor-group-count int32 :offset-assert 244) + ) + :method-count-assert 32 + :size-assert #xfc + :flag-assert #x20008000fc + (:state-methods + active ;; 15 + ) + ) +|# + +#| +(deftype railx-states-fora (structure) + ((pulses UNKNOWN 4 :offset-assert 0) + (blue pulse-state :inline :offset-assert 0) + (yellow pulse-state :inline :offset-assert 16) + (warp pulse-state :inline :offset-assert 32) + (spill pulse-state :inline :offset-assert 48) + ) + :method-count-assert 9 + :size-assert #x40 + :flag-assert #x900000040 + ) +|# + +;; (define-extern set-railx-light-brightness-fora! function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; hiphog-scenes ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype hip-door-b (com-airlock) + () + :method-count-assert 30 + :size-assert #x1b0 + :flag-assert #x1e013001b0 + ) +|# + +#| +(deftype hip-mirror (process-drawable) + () + :method-count-assert 21 + :size-assert #xc8 + :flag-assert #x15005000c8 + (:state-methods + idle ;; 20, old: (idle () _type_ :state 20) + ) + ) +|# + +;; (define-extern hiphog-activate function) ;; (function vector) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; target-flut ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype flut-bank (basic) + ((jump-height-min meters :offset-assert 4) + (jump-height-max meters :offset-assert 8) + (double-jump-height-min meters :offset-assert 12) + (double-jump-height-max meters :offset-assert 16) + (air-attack-speed meters :offset-assert 20) + (ground-timeout uint64 :offset-assert 24) + ) + :method-count-assert 9 + :size-assert #x20 + :flag-assert #x900000020 + ) +|# + +;; (define-extern *FLUT-bank* flut-bank) +;; (define-extern *flut-walk-mods* surface) +;; (define-extern *flut-run-racer-mods* surface) +;; (define-extern *flut-run-wild-mods* surface) +;; (define-extern *flut-jump-wild-mods* surface) +;; (define-extern *flut-jump-mods* surface) +;; (define-extern *flut-jump-racer-mods* surface) +;; (define-extern *flut-double-jump-mods* surface) +;; (define-extern *flut-double-jump-racer-mods* surface) +;; (define-extern *flut-run-attack-mods* surface) +;; (define-extern *flut-air-attack-mods* surface) +;; (define-extern flut-leg-ik-callback function) +;; (define-extern flut-update-ik function) +;; (define-extern target-flut-get-off? function) +;; (define-extern target-flut-post-post function) +;; (define-extern target-flut-wild-post function) +;; (define-extern target-flut-post function) +;; (define-extern target-flut-falling-anim-trans function) +;; (define-extern target-flut-hit-ground-anim function) +;; (define-extern target-flut-standard-event-handler function) +;; (define-extern target-flut-dangerous-event-handler function) +;; (define-extern target-fldax-enter function) +;; (define-extern target-fldax-exit function) +;; (define-extern target-flut-run-wild object) +;; (define-extern *flut-get-off-mods* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; tizard ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype tizard (process-focusable) + ((rotation-matrix matrix :inline :offset-assert 208) + (ground-normal UNKNOWN 2 :offset-assert 272) + (path-dir vector :inline :offset-assert 304) + (path-base-u float :offset-assert 320) + (path-u float :offset-assert 324) + (path-du float :offset-assert 328) + (first-run? basic :offset-assert 332) + ) + :method-count-assert 36 + :size-assert #x150 + :flag-assert #x2400d00150 + (:methods + (tizard-method-33 () none) ;; 33 + (tizard-method-34 () none) ;; 34 + (tizard-method-35 () none) ;; 35 + ) + (:state-methods + idle ;; 28 + walk ;; 29 + turn ;; 30 + turning ;; 31 + die ;; 32 + ) + ) +|# + +;; (define-extern tizard-event-handler function) +;; (define-extern tizard-tilt-jmod-func function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; dogat ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype dogat (nav-enemy) + ((rotation-matrix matrix :inline :offset-assert 624) + (scared-timer uint64 :offset-assert 688) + ) + :method-count-assert 192 + :size-assert #x2b8 + :flag-assert #xc0024002b8 + (:methods + (dogat-method-191 () none) ;; 191 + ) + (:state-methods + idle ;; 33 + sit-idle ;; 190 + active ;; 34 + notice ;; 35 + flee ;; 36 + ) + ) +|# + +;; (define-extern *dogat-nav-enemy-info* nav-enemy-info) +;; (define-extern dogat-travel-post function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; mh-squad-member-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype mh-squad-member (citizen-enemy) + ((last-choose-new-enemy-time uint64 :offset-assert 1048) + (current-enemy uint64 :offset-assert 1056) + (choose-new-enemy-delay-time uint64 :offset-assert 1064) + (next-update-target-time uint64 :offset-assert 1072) + ) + :method-count-assert 222 + :size-assert #x438 + :flag-assert #xde03c00438 + (:methods + (mh-squad-member-method-218 () none) ;; 218 + (mh-squad-member-method-219 () none) ;; 219 + (mh-squad-member-method-220 () none) ;; 220 + (mh-squad-member-method-221 () none) ;; 221 + ) + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; blow-tower-shared ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype blow-tower-node-info (structure) + ((speed-scalar float :offset-assert 0) + (accum-dist float :offset-assert 4) + (accum-time float :offset-assert 8) + (accum-time-percentage float :offset-assert 12) + (event-id int32 :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x14 + :flag-assert #x900000014 + ) +|# + +#| +(deftype blow-tower-path (structure) + ((total-time uint64 :offset-assert 0) + (index int16 :offset-assert 8) + (pts uint32 :offset-assert 12) + (node-info uint32 :offset-assert 16) + (num-nodes int16 :offset-assert 20) + ) + :method-count-assert 9 + :size-assert #x16 + :flag-assert #x900000016 + ) +|# + +#| +(deftype surround-spot (structure) + ((y-rot float :offset-assert 0) + (x-rot float :offset-assert 4) + (offset-dir vector :inline :offset-assert 16) + (turret-pos vector :inline :offset-assert 32) + (rider-index int16 :offset-assert 48) + (owner uint64 :offset-assert 56) + ) + :method-count-assert 9 + :size-assert #x40 + :flag-assert #x900000040 + ) +|# + +#| +(deftype blow-tower-path-cursor (structure) + ((curve cubic-curve :inline :offset-assert 0) + (pos vector :inline :offset-assert 64) + (norm vector :inline :offset-assert 80) + (current-time uint64 :offset-assert 96) + (speed float :offset-assert 104) + (path blow-tower-path :offset-assert 108) + (current-tt float :offset-assert 112) + (interp-tt float :offset-assert 116) + (current-node-index int16 :offset-assert 120) + (event-id uint32 :offset-assert 124) + ) + :method-count-assert 13 + :size-assert #x80 + :flag-assert #xd00000080 + (:methods + (blow-tower-path-cursor-method-9 () none) ;; 9 + (blow-tower-path-cursor-method-10 () none) ;; 10 + (blow-tower-path-cursor-method-11 () none) ;; 11 + (blow-tower-path-cursor-method-12 () none) ;; 12 + ) + ) +|# + +#| +(deftype xform (structure) + ((root transformq :inline :offset-assert 0) + ) + :method-count-assert 10 + :size-assert #x30 + :flag-assert #xa00000030 + (:methods + (xform-method-9 () none) ;; 9 + ) + ) +|# + +#| +(deftype blow-tower-clock (structure) + ((elapsed-clock-time uint64 :offset-assert 0) + (debug? basic :offset-assert 8) + (debug-lock-view? basic :offset-assert 12) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype blow-tower-global-target-info (structure) + ((target-handles UNKNOWN 2 :offset-assert 0) + (hellcat uint64 :offset-assert 0) + (pickup uint64 :offset-assert 8) + (mission-time uint64 :offset-assert 16) + (debug? basic :offset-assert 24) + (difficulty-scalar float :offset-assert 28) + (last-player-attack-time uint64 :offset-assert 32) + (clock-scalar float :offset-assert 40) + ) + :method-count-assert 9 + :size-assert #x2c + :flag-assert #x90000002c + ) +|# + +#| +(deftype blow-tower-speech-instance (speech-instance) + () + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +;; (define-extern find-event-id-index function) +;; (define-extern find-path-event-id-index function) +;; (define-extern initialize-hermite-from-path function) +;; (define-extern process-xform-list function) +;; (define-extern *blow-tower-targets* object) +;; (define-extern *blow-tower-speech-list* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; blow-tower-data ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *blow-tower-paths* array) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; blow-tower-script ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype blow-tower-cmd (structure) + ((cmd-type uint8 :offset-assert 0) + (spawn-type uint8 :offset-assert 1) + (entity-name basic :offset-assert 4) + (rotate-amount float :offset-assert 8) + (lock-min float :offset-assert 12) + (lock-max float :offset-assert 16) + (target uint8 :offset-assert 20) + (path-height float :offset-assert 24) + (event-id uint32 :offset-assert 28) + (time-offset float :offset-assert 32) + (clock-scalar float :offset-assert 36) + (entity-name2 basic :offset-assert 40) + (snap-view? basic :offset-assert 44) + (snd-name uint128 :offset-assert 48) + ) + :method-count-assert 9 + :size-assert #x40 + :flag-assert #x900000040 + ) +|# + +#| +(deftype tower-event-group (structure) + ((event-id int32 :offset-assert 0) + (command-list basic :offset-assert 4) + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +;; (define-extern get-blow-tower-target function) +;; (define-extern parse-blow-tower-command function) +;; (define-extern *blow-tower-script* array) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; blow-tower-part ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *range-bt-roboguard-dust-scale-x* curve2d-fast) +;; (define-extern *range-bt-roboguard-dust-scale-y* curve2d-fast) +;; (define-extern *part-bt-roboguard-explosion-dust-in-curve-settings* object) +;; (define-extern *bt-grunt-ragdoll-info* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; blow-tower-extra ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype hud-pickup (hud) + () + :method-count-assert 27 + :size-assert #xac4 + :flag-assert #x1b0a500ac4 + ) +|# + +#| +(deftype hud-hellcat (hud) + () + :method-count-assert 27 + :size-assert #xac4 + :flag-assert #x1b0a500ac4 + ) +|# + +#| +(deftype hud-pickup-arrows (hud) + ((offscreen uint8 :offset-assert 2756) + (alpha UNKNOWN 2 :offset-assert 2760) + ) + :method-count-assert 27 + :size-assert #xad0 + :flag-assert #x1b0a500ad0 + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; cty-blow-tower ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype bombbot-spawn-record (structure) + ((hand uint64 :offset-assert 0) + (ent-name basic :offset-assert 8) + ) + :method-count-assert 9 + :size-assert #xc + :flag-assert #x90000000c + ) +|# + +#| +(deftype task-manager-blow-tower (task-manager) + ((dest-pos vector :inline :offset-assert 240) + (target-handles UNKNOWN 2 :offset-assert 256) + (hellcat uint64 :offset-assert 256) + (pickup uint64 :offset-assert 264) + (hellcat-turret uint64 :offset-assert 272) + (mission-elapsed-clock uint64 :offset-assert 280) + (debug-lock-viewport? basic :offset-assert 288) + (debug-run-events? basic :offset-assert 292) + (script basic :offset-assert 296) + (script-index int16 :offset-assert 300) + (cmd blow-tower-cmd :inline :offset-assert 304) + (event-cursor blow-tower-path-cursor :inline :offset-assert 368) + (last-missile-spawn-time uint64 :offset-assert 496) + (dest-clock-scalar float :offset-assert 504) + (clock-scalar float :offset-assert 508) + (bombbot-path-index int8 :offset-assert 512) + (hud-arrows uint64 :offset-assert 520) + (hud-arrow-state uint32 :offset-assert 528) + (left-arrow-last-time uint64 :offset-assert 536) + (right-arrow-last-time uint64 :offset-assert 544) + (show-skill-time uint64 :offset-assert 552) + (bombbot-records UNKNOWN 3 :offset-assert 560) + (bombbot-record-index int32 :offset-assert 608) + (last-missile-ent basic :offset-assert 612) + (missile-dir-vec vector :inline :offset-assert 624) + ) + :method-count-assert 40 + :size-assert #x280 + :flag-assert #x2802000280 + (:methods + (task-manager-blow-tower-method-37 () none) ;; 37 + (task-manager-blow-tower-method-38 () none) ;; 38 + (task-manager-blow-tower-method-39 () none) ;; 39 + ) + (:state-methods + mission-debug ;; 33 + mission-play ;; 32 + wait-for-exit ;; 34 + active ;; 15 + wind-down-mission ;; 36 + wait-fail ;; 35 + ) + ) +|# + +#| +(deftype bt-gun-manager-target (structure) + ((hand uint64 :offset-assert 0) + (transformed-pos vector4w :inline :offset-assert 16) + (size float :offset-assert 32) + (hit? basic :offset-assert 36) + (alpha float :offset-assert 40) + (target-pers-index int32 :offset-assert 44) + (num-overlap int32 :offset-assert 48) + ) + :method-count-assert 9 + :size-assert #x34 + :flag-assert #x900000034 + ) +|# + +#| +(deftype bt-hud-target-pers (structure) + ((hand uint64 :offset-assert 0) + (rotate float :offset-assert 8) + (alpha float :offset-assert 12) + (size-scalar float :offset-assert 16) + (outer-alpha float :offset-assert 20) + (outer-rotate float :offset-assert 24) + (hold-start-time uint64 :offset-assert 32) + ) + :method-count-assert 9 + :size-assert #x28 + :flag-assert #x900000028 + ) +|# + +#| +(deftype bt-gun-manager (process) + ((root basic :offset-assert 128) + (parent-vehicle uint64 :offset-assert 136) + (params target-turret-params :offset-assert 144) + (roty deg :offset-assert 148) + (rotyv deg :offset-assert 152) + (rotyvv deg :offset-assert 156) + (roty-min deg :offset-assert 160) + (roty-max deg :offset-assert 164) + (rotx deg :offset-assert 168) + (rotxv deg :offset-assert 172) + (rotxvv deg :offset-assert 176) + (rotx-min deg :offset-assert 180) + (rotx-max deg :offset-assert 184) + (dest-roty deg :offset-assert 188) + (dest-rotx deg :offset-assert 192) + (aim-quat quaternion :inline :offset-assert 208) + (parent-quat quaternion :inline :offset-assert 224) + (last-parent-xform matrix :inline :offset-assert 240) + (hit-pos vector :inline :offset-assert 304) + (aim-dir vector :inline :offset-assert 320) + (found-target? basic :offset-assert 336) + (target-hand uint64 :offset-assert 344) + (target-start-find-time uint64 :offset-assert 352) + (hud-aim hud-sprite :inline :offset-assert 368) + (hud-target hud-sprite :inline :offset-assert 432) + (hud-target-inner hud-sprite :inline :offset-assert 496) + (rot-y-shift float :offset-assert 548) + (dest-rot-y-shift float :offset-assert 552) + (enable-controls? basic :offset-assert 556) + (lock-control-time uint64 :offset-assert 560) + (fire-index uint32 :offset-assert 568) + (last-fire-time uint64 :offset-assert 576) + (can-exit? basic :offset-assert 584) + (is-snapping? basic :offset-assert 588) + (onscreen-targets UNKNOWN 32 :offset-assert 592) + (num-onscreen-targets int32 :offset-assert 2640) + (hud-pers UNKNOWN 32 :offset-assert 2648) + (rot-y-seek-rate float :offset-assert 4184) + (cam-quat quaternion :inline :offset-assert 4192) + (dest-roty-max float :offset-assert 4208) + (dest-roty-min float :offset-assert 4212) + (use-roty-min float :offset-assert 4216) + (use-roty-max float :offset-assert 4220) + (x-boost-scalar float :offset-assert 4224) + (y-boost-scalar float :offset-assert 4228) + (servo-sound uint32 :offset-assert 4232) + (servo-sound-state uint64 :offset-assert 4240) + (servo-state-time uint64 :offset-assert 4248) + (aim-pos vector :inline :offset-assert 4256) + (aim-dir vector :inline :offset-assert 320) + (look-cursor blow-tower-path-cursor :inline :offset-assert 4288) + (look-time-offset uint64 :offset-assert 4416) + (look-time-scalar float :offset-assert 4424) + (look-mode uint8 :offset-assert 4428) + (look-ent basic :offset-assert 4432) + (look-proc uint64 :offset-assert 4440) + (last-beep-time uint64 :offset-assert 4448) + ) + :method-count-assert 25 + :size-assert #x1168 + :flag-assert #x1910f01168 + (:methods + (bt-gun-manager-method-17 () none) ;; 17 + (bt-gun-manager-method-18 () none) ;; 18 + (bt-gun-manager-method-19 () none) ;; 19 + (bt-gun-manager-method-20 () none) ;; 20 + (bt-gun-manager-method-21 () none) ;; 21 + (bt-gun-manager-method-22 () none) ;; 22 + (bt-gun-manager-method-23 () none) ;; 23 + (bt-gun-manager-method-24 () none) ;; 24 + ) + (:state-methods + idle ;; 14 + active ;; 16 + setup ;; 15 + ) + ) +|# + +#| +(deftype bt-obj-init-params (structure) + ((pos vector :inline :offset-assert 0) + (quat quaternion :inline :offset-assert 16) + (path blow-tower-path :offset-assert 32) + (task-man uint64 :offset-assert 40) + ) + :method-count-assert 9 + :size-assert #x30 + :flag-assert #x900000030 + ) +|# + +#| +(deftype cast-rider-spot (structure) + ((rider uint64 :offset-assert 0) + (offset-pos vector :inline :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x20 + :flag-assert #x900000020 + ) +|# + +#| +(deftype cast-rider-array (inline-array-class) + ((data UNKNOWN :dynamic :offset-assert 16) + ) + :method-count-assert 14 + :size-assert #x10 + :flag-assert #xe00000010 + ) +|# + +#| +(deftype bt-bouncer (structure) + ((mag-scalar float :offset-assert 0) + (duration uint64 :offset-assert 8) + (num-bounces float :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x14 + :flag-assert #x900000014 + ) +|# + +#| +(deftype bt-vehicle-damage-info (structure) + ((segd uint64 :offset-assert 0) + (seg0 uint64 :offset-assert 8) + (seg1 uint64 :offset-assert 16) + (hp-threshold0 float :offset-assert 24) + (hp-threshold1 float :offset-assert 28) + ) + :method-count-assert 9 + :size-assert #x20 + :flag-assert #x900000020 + ) +|# + +#| +(deftype bt-vehicle (process-focusable) + ((path-cursor blow-tower-path-cursor :inline :offset-assert 208) + (task-man uint64 :offset-assert 336) + (max-hit-points float :offset-assert 344) + (hit-points float :offset-assert 348) + (last-attack-id uint32 :offset-assert 352) + (path-height-offset float :offset-assert 356) + (start-path-height-offset float :offset-assert 360) + (dest-path-height-offset float :offset-assert 364) + (path-height-start uint64 :offset-assert 368) + (path-height-end uint64 :offset-assert 376) + (path-pos vector :inline :offset-assert 384) + (rider-spots basic :offset-assert 400) + (hud-health uint64 :offset-assert 408) + (path-height-vel float :offset-assert 416) + (inited? basic :offset-assert 420) + (pre-bounce-pos vector :inline :offset-assert 432) + (bouncers UNKNOWN 3 :offset-assert 448) + (bounce-start-time uint64 :offset-assert 544) + (barrel-roll-amount float :offset-assert 552) + (barrel-roll-quat quaternion :inline :offset-assert 560) + (barrel-roll-rate-scalar float :offset-assert 576) + (last-speed float :offset-assert 580) + (last-vel vector :inline :offset-assert 592) + (damage-info basic :offset-assert 608) + (damage-state UNKNOWN 4 :offset-assert 612) + (mission-fail? basic :offset-assert 628) + (whoosh-sound uint32 :offset-assert 632) + (boost-thruster? basic :offset-assert 636) + (sound-play-end uint64 :offset-assert 640) + ) + :method-count-assert 44 + :size-assert #x288 + :flag-assert #x2c02100288 + (:methods + (bt-vehicle-method-29 () none) ;; 29 + (bt-vehicle-method-30 () none) ;; 30 + (bt-vehicle-method-31 () none) ;; 31 + (bt-vehicle-method-32 () none) ;; 32 + (bt-vehicle-method-33 () none) ;; 33 + (bt-vehicle-method-34 () none) ;; 34 + (bt-vehicle-method-35 () none) ;; 35 + (bt-vehicle-method-36 () none) ;; 36 + (bt-vehicle-method-37 () none) ;; 37 + (bt-vehicle-method-38 () none) ;; 38 + (bt-vehicle-method-39 () none) ;; 39 + (bt-vehicle-method-40 () none) ;; 40 + (bt-vehicle-method-41 () none) ;; 41 + (bt-vehicle-method-42 () none) ;; 42 + (bt-vehicle-method-43 () none) ;; 43 + ) + (:state-methods + die ;; 28 + ) + ) +|# + +#| +(deftype bt-pickup (bt-vehicle) + ((spots UNKNOWN 4 :offset-assert 656) + (riders UNKNOWN 2 :offset-assert 912) + (quat-before-roll quaternion :inline :offset-assert 928) + (start-hit-time uint64 :offset-assert 944) + (roboguard-attackers UNKNOWN 2 :offset-assert 952) + (desired-thruster-length float :offset-assert 968) + (pickup-barrels UNKNOWN 2 :offset-assert 976) + ) + :method-count-assert 51 + :size-assert #x3e0 + :flag-assert #x33036003e0 + (:methods + (bt-pickup-method-46 () none) ;; 46 + (bt-pickup-method-47 () none) ;; 47 + (bt-pickup-method-48 () none) ;; 48 + (bt-pickup-method-49 () none) ;; 49 + (bt-pickup-method-50 () none) ;; 50 + ) + (:state-methods + wait-for-player ;; 44 + die ;; 28 + path-follow ;; 45 + ) + ) +|# + +#| +(deftype bt-hellcat (bt-vehicle) + ((jmod-turret-guns joint-mod-rotate-world :inline :offset-assert 656) + (child-turret uint64 :offset-assert 688) + (spots UNKNOWN 12 :offset-assert 704) + (assigned-spots UNKNOWN 2 :offset-assert 1472) + (grunt-rider uint64 :offset-assert 1488) + (grunt-rider-boarded? uint64 :offset-assert 1496) + (rider-pitch float :offset-assert 1504) + (pitch-quat quaternion :inline :offset-assert 1520) + (roll-amount float :offset-assert 1536) + (dest-roll-amount float :offset-assert 1540) + (roll-amount-seek-rate float :offset-assert 1544) + (quat-before-bounce quaternion :inline :offset-assert 1552) + (quat-grunt-tilt quaternion :inline :offset-assert 1568) + (jmod-lgun joint-mod-rotate-local :inline :offset-assert 1584) + (jmod-rgun joint-mod-rotate-local :inline :offset-assert 1616) + (jmod-barrels UNKNOWN 4 :offset-assert 1648) + (barrel-fire-state UNKNOWN 4 :offset-assert 1904) + (engine-sound uint32 :offset-assert 1920) + (thrust-sound uint32 :offset-assert 1924) + (land-grunt-offset float :offset-assert 1928) + ) + :method-count-assert 52 + :size-assert #x78c + :flag-assert #x340710078c + (:methods + (bt-hellcat-method-46 () none) ;; 46 + (bt-hellcat-method-47 () none) ;; 47 + (bt-hellcat-method-48 () none) ;; 48 + (bt-hellcat-method-49 () none) ;; 49 + (bt-hellcat-method-50 () none) ;; 50 + (bt-hellcat-method-51 () none) ;; 51 + ) + (:state-methods + wait-for-player ;; 44 + player-riding ;; 45 + ) + ) +|# + +;; (define-extern *blow-tower-bombbat-path-cache* array) +;; (define-extern bt-vehicle-handler function) +;; (define-extern *bt-height-adjust* object) +;; (define-extern *bt-pickup-damage-info* array) +;; (define-extern *bt-hellcat-gun-nodes* array) +;; (define-extern *bt-hellcat-damage-info* array) +;; (define-extern *bt-turret-params* object) +;; (define-extern bt-gun-manager-init-by-other function) +;; (define-extern bt-gun-manager-handler function) +;; (define-extern *fov-to-use* object) +;; (define-extern cam-bt-gun state) +;; (define-extern *bt-clamp-curve-x* object) +;; (define-extern *bt-accel-curve* object) +;; (define-extern bt-hellcat-init-by-other function) +;; (define-extern draw-path-blow-curve function) +;; (define-extern bt-pickup-init-by-other function) +;; (define-extern bt-force-show-hud function) +;; (define-extern *blow-tower-kg-squad-member-settings* object) +;; (define-extern clamp-to-ground function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; lfacrm1-mood ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype lfacrm1-states (structure) + ((door-current-interp float :offset-assert 0) + (door-target-interp float :offset-assert 4) + (blink float :offset-assert 8) + ) + :method-count-assert 9 + :size-assert #xc + :flag-assert #x90000000c + ) +|# + +#| +(deftype lfac-hanger-door (process-drawable) + () + :method-count-assert 21 + :size-assert #xc8 + :flag-assert #x15005000c8 + (:state-methods + idle ;; 20 + ) + ) +|# + +;; (define-extern update-lfacrm1-lights function) +;; (define-extern update-mood-lfacrm1 function) +;; (define-extern set-lfacrm1-door! function) +;; (define-extern lfac-hanger-door-init-by-other function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; gun-dummy-part ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern spt-func-ground-spark-bounce function) +;; (define-extern spt-func-part-dummy-explode-spider-bomb function) +;; (define-extern check-gungame-piece-ground function) ;; (function sparticle-system sparticle-cpuinfo matrix none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; gungame-data ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype gungame-crate (structure) + ((pos vector :inline :offset-assert 0) + (pos-x float :offset-assert 0) + (pos-y float :offset-assert 4) + (pos-z float :offset-assert 8) + (angle float :offset-assert 12) + (ammo int32 :offset-assert 16) ;; pickup-type + (num uint32 :offset-assert 20) + ) + :method-count-assert 9 + :size-assert #x18 + :flag-assert #x900000018 + ) +|# + +;; (define-extern *entrance-gungame-crates-pos* array) ;; (array gungame-crate) +;; (define-extern *gungame-red-crates-pos* array) ;; (array gungame-crate) +;; (define-extern *gungame-yellow-crates-pos* array) ;; (array gungame-crate) +;; (define-extern *gungame-blue-crates-pos* array) ;; (array gungame-crate) +;; (define-extern *gungame-peace-crates-pos* array) ;; (array gungame-crate) +;; (define-extern *course1-path-global-info* array) +;; (define-extern *course2-path-global-info* array) +;; (define-extern *course3-path-global-info* array) +;; (define-extern *course4-path-global-info* array) +;; (define-extern *yellow-training-path-global-info* array) ;; (array tpath-info) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; gungame-obs ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype gungame-door (process-drawable) + ((front? basic :offset-assert 200) + (close-sound sound-id :offset-assert 204) ;; guessed by decompiler + (train uint64 :offset-assert 208) ;; handle + (other-door uint64 :offset-assert 216) + (want-close? basic :offset-assert 224) + ) + :method-count-assert 28 + :size-assert #xe4 + :flag-assert #x1c007000e4 + (:methods + (gungame-door-method-25 () none) ;; 25 + (gungame-door-method-26 () none) ;; 26 + (gungame-door-method-27 () none) ;; 27 + ) + (:state-methods + idle ;; 20, old: (idle () _type_ :state 20) + force-close ;; 23, old: (gungame-door-method-23 (_type_) symbol 23) + opened ;; 24, old: (gungame-door-method-24 (_type_) symbol 24) + open ;; 21, old: (open () _type_ :state 21) + close ;; 22, old: (close () _type_ :state 22) + ) + ) +|# + +;; (define-extern gungame-door-handler function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; gungame-part ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; gungame-scenes ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern spt-birth-func-brightness-part-fma-daxter-guncourse-slide-dust function) +;; (define-extern spt-birth-func-brightness-part-fma-daxter-guncourse-land-dust function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; vinroom-part ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern birth-func-vinroom-sphere function) ;; (function sparticle-system sparticle-cpuinfo sprite-vec-data-3d sparticle-launcher sparticle-launch-state none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; prebot-part ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern birth-func-pillar-rocks-bounce function) +;; (define-extern spt-func-pillar-rocks-bounce1 function) +;; (define-extern spt-func-pillar-rocks-bounce2 function) +;; (define-extern spt-func-pillar-rocks-bounce3 function) +;; (define-extern spt-birth-func-brightness-prebot-eco-pillar-rocks function) +;; (define-extern spt-birth-func-brightness-prebot-eco-pillar-rocks2 function) +;; (define-extern spt-birth-func-brightness-prebot-eco-pillar-rocks3 function) +;; (define-extern spt-birth-func-part-prebot-eco-pillar-rocks function) +;; (define-extern spt-func-part-prebot-eco-pillar-rocks function) +;; (define-extern spt-birth-func-part-prebot-eco-pillar-rocks-bounce1 function) +;; (define-extern spt-func-part-prebot-eco-pillar-rocks-bounce1 function) +;; (define-extern spt-birth-func-part-prebot-eco-pillar-rocks-bounce2 function) +;; (define-extern *range-mine-boss-stuck-flame-color* curve-color-fast) +;; (define-extern *range-mine-boss-stuck-flame-alpha* curve2d-fast) +;; (define-extern *range-mine-boss-stuck-flame-scale-x* curve2d-fast) +;; (define-extern *range-mine-boss-stuck-flame-scale-y* curve2d-fast) +;; (define-extern *r-curve-mine-boss-stuck-flame* curve2d-fast) +;; (define-extern *g-curve-mine-boss-stuck-flame* curve2d-fast) +;; (define-extern *b-curve-mine-boss-stuck-flame* curve2d-fast) +;; (define-extern *curve-mine-boss-stuck-flame-alpha* curve2d-fast) +;; (define-extern *curve-mine-boss-stuck-flame-scale-x* curve2d-fast) +;; (define-extern *curve-mine-boss-stuck-flame-scale-y* curve2d-fast) +;; (define-extern *part-prebot-stuck-flame-curve-settings* object) +;; (define-extern *range-mine-boss-explo-color* curve-color-fast) +;; (define-extern *range-mine-boss-explo-alpha* curve2d-fast) +;; (define-extern *range-mine-boss-explo-scale-x* curve2d-fast) +;; (define-extern *range-mine-boss-explo-scale-y* curve2d-fast) +;; (define-extern *curve-mine-boss-explo-alpha* curve2d-fast) +;; (define-extern *curve-mine-boss-explo-scale-x* curve2d-fast) +;; (define-extern *curve-mine-boss-explo-scale-y* curve2d-fast) +;; (define-extern *part-prebot-chasm-explosion-texture-curve-settings* object) +;; (define-extern *range-final-mine-boss-explo-color* curve-color-fast) +;; (define-extern *range-final-mine-boss-explo-alpha* curve2d-fast) +;; (define-extern *range-final-mine-boss-explo-scale-x* curve2d-fast) +;; (define-extern *range-final-mine-boss-explo-scale-y* curve2d-fast) +;; (define-extern *curve-final-mine-boss-explo-alpha* curve2d-fast) +;; (define-extern *curve-final-mine-boss-explo-scale-x* curve2d-fast) +;; (define-extern *curve-final-mine-boss-explo-scale-y* curve2d-fast) +;; (define-extern *part-final-prebot-chasm-explosion-texture-curve-settings* object) +;; (define-extern spt-birth-func-brightness-prebot-pillar-shatter-rocks function) +;; (define-extern spt-birth-func-part-prebot-eco-pillar-shatter function) +;; (define-extern spt-func-part-prebot-eco-pillar-shatter function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ljkdxvin-texture ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *ljkdxvin-texture-anim-array* texture-anim-array) +;; (define-extern ljkdxvin-texture-anim-func function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; precurc-part ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; external-player-control ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype player-controller-init-params (structure) + ((mode basic :offset-assert 0) + (flags uint32 :offset-assert 4) + (targ-pos vector :inline :offset-assert 16) + (notify-proc uint64 :offset-assert 32) + ) + :method-count-assert 9 + :size-assert #x28 + :flag-assert #x900000028 + ) +|# + +#| +(deftype player-controller (process-focusable) + ((params player-controller-init-params :inline :offset-assert 208) + (targ-pos vector :inline :offset-assert 256) + ) + :method-count-assert 36 + :size-assert #x110 + :flag-assert #x2400900110 + (:methods + (player-controller-method-32 () none) ;; 32 + (player-controller-method-33 () none) ;; 33 + (player-controller-method-34 () none) ;; 34 + (player-controller-method-35 () none) ;; 35 + ) + (:state-methods + idle ;; 28 + clip-to-nav-mesh ;; 30 + lock ;; 31 + active ;; 29 + ) + ) +|# + +;; (define-extern *target-controller-pad* cpad-info) +;; (define-extern setup-control-pad function) +;; (define-extern set-pad-world-dir function) +;; (define-extern override-player-controls function) +;; (define-extern player-controller-init-by-other function) +;; (define-extern player-controller-event-handler function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; wcar-marauder-b ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype v-marauder-b (wcar-base) + ((jmod-axles UNKNOWN 4 :offset-assert 2752) + (jmod-gun-x joint-mod-rotate-local :inline :offset-assert 2880) + (jmod-gun-y joint-mod-rotate-local :inline :offset-assert 2912) + (turret-control turret-control :inline :offset-assert 2944) + ) + :method-count-assert 203 + :size-assert #xbe0 + :flag-assert #xcb0b600be0 + (:state-methods + explode ;; 60 + ) + ) +|# + +;; (define-extern *v-marauder-b-turret-control-info* object) +;; (define-extern *v-marauder-b-turret-guard-settings* object) +;; (define-extern *v-marauder-b-constants* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; desert-chase-path-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype deschase-node (structure) + ((position vector :inline :offset-assert 0) + (pos-x float :offset-assert 0) + (pos-y float :offset-assert 4) + (pos-z float :offset-assert 8) + (speed float :offset-assert 16) + (next-node int32 :offset-assert 20) + ) + :method-count-assert 9 + :size-assert #x18 + :flag-assert #x900000018 + ) +|# + +#| +(deftype deschase-path (structure) + ((node-count uint16 :offset-assert 0) + (node uint32 :offset-assert 4) + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; desert-chase-path ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *desert-chase-marauder-path* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; desert-chase ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype deschase-point (structure) + ((pos vector :inline :offset-assert 0) + (quat quaternion :inline :offset-assert 16) + (i-node int8 :offset-assert 12) + ) + :method-count-assert 9 + :size-assert #x20 + :flag-assert #x900000020 + ) +|# + +#| +(deftype v-catapult-shot-embers (metalhead-grenade-shot) + ((ptracker-proc uint64 :offset-assert 536) + ) + :method-count-assert 41 + :size-assert #x220 + :flag-assert #x2901a00220 + (:state-methods + impact ;; 22 + ) + ) +|# + +#| +(deftype catapult-target (process-drawable) + ((alpha float :offset-assert 200) + ) + :method-count-assert 22 + :size-assert #xcc + :flag-assert #x16005000cc + (:methods + (catapult-target-method-21 () none) ;; 21 + ) + (:state-methods + idle ;; 20 + ) + ) +|# + +#| +(deftype deschase-vehicle (structure) + ((handle uint64 :offset-assert 0) + (wait-timer uint64 :offset-assert 8) + (shot-fired? basic :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x14 + :flag-assert #x900000014 + ) +|# + +#| +(deftype desert-chase-ambush-manager (task-manager) + ((marauder-nav-mesh basic :offset-assert 240) + (marauder UNKNOWN 5 :offset-assert 248) + (m-free-list basic :offset-assert 288) + (marauder-count uint8 :offset-assert 292) + (total-spawned uint8 :offset-assert 293) + (check-timer uint64 :offset-assert 296) + (marauder-entity basic :offset-assert 304) + (h-player-controller uint64 :offset-assert 312) + (player-moved? basic :offset-assert 320) + (vehicle-nav-mesh basic :offset-assert 324) + (vehicle UNKNOWN 4 :offset-assert 328) + (vehicle-count uint8 :offset-assert 456) + (v-free-list basic :offset-assert 460) + (total-veh-spawned uint8 :offset-assert 464) + (target-point UNKNOWN 4 :offset-assert 480) + (last-shot-time uint64 :offset-assert 544) + ) + :method-count-assert 36 + :size-assert #x228 + :flag-assert #x2401b00228 + (:methods + (desert-chase-ambush-manager-method-32 () none) ;; 32 + (desert-chase-ambush-manager-method-33 () none) ;; 33 + (desert-chase-ambush-manager-method-34 () none) ;; 34 + (desert-chase-ambush-manager-method-35 () none) ;; 35 + ) + (:state-methods + active ;; 15 + ) + ) +|# + +#| +(deftype deschase-artifact (process-drawable) + ((arrow uint64 :offset-assert 200) + (pos vector :inline :offset-assert 208) + (angs vector :inline :offset-assert 224) + ) + :method-count-assert 23 + :size-assert #xf0 + :flag-assert #x17007000f0 + (:methods + (deschase-artifact-method-21 () none) ;; 21 + (deschase-artifact-method-22 () none) ;; 22 + ) + (:state-methods + idle ;; 20 + ) + ) +|# + +#| +(deftype hud-desert-chase-marauders (hud) + () + :method-count-assert 27 + :size-assert #xac4 + :flag-assert #x1b0a500ac4 + ) +|# + +#| +(deftype deschase-vehicle-control (structure) + ((vehicle uint64 :offset-assert 0) + (target uint64 :offset-assert 8) + (path deschase-path :offset-assert 16) + (speed float :offset-assert 20) + (i-node int32 :offset-assert 24) + (max-dist float :offset-assert 28) + (speed-factor float :offset-assert 32) + ) + :method-count-assert 13 + :size-assert #x24 + :flag-assert #xd00000024 + (:methods + (deschase-vehicle-control-method-9 () none) ;; 9 + (deschase-vehicle-control-method-10 () none) ;; 10 + (deschase-vehicle-control-method-11 () none) ;; 11 + (deschase-vehicle-control-method-12 () none) ;; 12 + ) + ) +|# + +#| +(deftype desert-chase-chase-manager (task-manager) + ((h-player-controller uint64 :offset-assert 240) + (check-timer uint64 :offset-assert 248) + (speech-time uint64 :offset-assert 256) + (last-speech int8 :offset-assert 264) + (death-count int16 :offset-assert 266) + (max-dist float :offset-assert 268) + (suck-factor float :offset-assert 272) + (player-moved? basic :offset-assert 276) + (control-array UNKNOWN 4 :offset-assert 280) + (minimap connection-minimap :offset-assert 472) + (artifact uint64 :offset-assert 480) + ) + :method-count-assert 34 + :size-assert #x1e8 + :flag-assert #x22017001e8 + (:methods + (desert-chase-chase-manager-method-32 () none) ;; 32 + (desert-chase-chase-manager-method-33 () none) ;; 33 + ) + (:state-methods + active ;; 15 + complete ;; 16 + ) + ) +|# + +;; (define-extern *stronghold-inside-point* object) +;; (define-extern *stronghold-vehicle-stop-point* object) +;; (define-extern *stronghold-player-goto-point* object) +;; (define-extern *stronghold-marauder-start* array) +;; (define-extern *deschase-catapult-spawn-point* array) +;; (define-extern catapult-target-handler function) +;; (define-extern catapult-target-init-by-other function) +;; (define-extern desert-chase-ambush-intro-sequence function) +;; (define-extern deschase-artifact-init-by-other function) +;; (define-extern deschase-artifact-spawn function) +;; (define-extern *stronghold-vehicle-start* array) +;; (define-extern *desert-chase-vehicle-start* array) +;; (define-extern desert-chase-chase-intro-sequence function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; trail-graph ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *trail-graph* trail-graph) ;; trail-graph + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; bike ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype h-bike-base (hvehicle) + () + :method-count-assert 162 + :size-assert #x3b0 + :flag-assert #xa2033003b0 + ) +|# + +#| +(deftype h-bike-a (h-bike-base) + ((fin-fl joint-mod-rotate-local :inline :offset-assert 944) + (fin-fr joint-mod-rotate-local :inline :offset-assert 976) + (fin-rl joint-mod-rotate-local :inline :offset-assert 1008) + (fin-rr joint-mod-rotate-local :inline :offset-assert 1040) + (rudder joint-mod-rotate-local :inline :offset-assert 1072) + (brake-l joint-mod-rotate-local :inline :offset-assert 1104) + (brake-r joint-mod-rotate-local :inline :offset-assert 1136) + ) + :method-count-assert 162 + :size-assert #x490 + :flag-assert #xa204100490 + ) +|# + +#| +(deftype h-bike-b (h-bike-base) + ((fin-rl joint-mod-rotate-local :inline :offset-assert 944) + (fin-rr joint-mod-rotate-local :inline :offset-assert 976) + (rudder joint-mod-rotate-local :inline :offset-assert 1008) + (rudder-f joint-mod-rotate-local :inline :offset-assert 1040) + (brake-l joint-mod-rotate-local :inline :offset-assert 1072) + (brake-r joint-mod-rotate-local :inline :offset-assert 1104) + (flap-l joint-mod-rotate-local :inline :offset-assert 1136) + (flap-r joint-mod-rotate-local :inline :offset-assert 1168) + ) + :method-count-assert 162 + :size-assert #x4b0 + :flag-assert #xa2043004b0 + ) +|# + +#| +(deftype h-bike-c (h-bike-base) + ((fin-fl joint-mod-rotate-local :inline :offset-assert 944) + (fin-fr joint-mod-rotate-local :inline :offset-assert 976) + (fin-rl joint-mod-rotate-local :inline :offset-assert 1008) + (fin-rr joint-mod-rotate-local :inline :offset-assert 1040) + (fin2-fl joint-mod-rotate-local :inline :offset-assert 1072) + (fin2-fr joint-mod-rotate-local :inline :offset-assert 1104) + (rudder joint-mod-rotate-local :inline :offset-assert 1136) + (brake-l joint-mod-rotate-local :inline :offset-assert 1168) + (brake-r joint-mod-rotate-local :inline :offset-assert 1200) + (spoiler-l joint-mod-rotate-local :inline :offset-assert 1232) + (spoiler-r joint-mod-rotate-local :inline :offset-assert 1264) + ) + :method-count-assert 162 + :size-assert #x510 + :flag-assert #xa204900510 + ) +|# + +#| +(deftype h-bike-d (h-bike-a) + () + :method-count-assert 162 + :size-assert #x490 + :flag-assert #xa204100490 + ) +|# + +;; (define-extern *h-bike-explosion-info* vehicle-explosion-info) +;; (define-extern *h-bike-a-constants* object) +;; (define-extern *h-bike-b-constants* object) +;; (define-extern *h-bike-c-constants* object) +;; (define-extern *h-bike-d-constants* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; guard-grenade ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype reload-grenade-spawn-params (structure) + ((owner uint64 :offset-assert 0) + (joint-index uint16 :offset-assert 8) + ) + :method-count-assert 9 + :size-assert #xa + :flag-assert #x90000000a + ) +|# + +#| +(deftype reload-grenade (process-drawable) + ((owner uint64 :offset-assert 200) + (joint-index uint16 :offset-assert 208) + ) + :method-count-assert 25 + :size-assert #xd2 + :flag-assert #x19006000d2 + (:methods + (reload-grenade-method-24 () none) ;; 24 + ) + (:state-methods + dormant ;; 20 + visible ;; 21 + shrinking ;; 22 + die ;; 23 + ) + ) +|# + +;; (define-extern reload-grenade-init-by-other function) +;; (define-extern reload-grenade-spawn function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; guard-states ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern debug-active function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; citizen-norm ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype citizen-norm (civilian) + () + :method-count-assert 235 + :size-assert #x464 + :flag-assert #xeb03f00464 + (:state-methods + knocked ;; 31 + get-up-front ;; 220 + get-up-back ;; 221 + wait ;; 190 + knocked-off-vehicle ;; 234 + ) + ) +|# + +;; (define-extern *citizen-norm-global-info* civilian-global-info) ;; civilian-global-info +;; (define-extern *citizen-norm-nav-enemy-info* nav-enemy-info) ;; nav-enemy-info + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; wasstadb-obs ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype arena-state (structure) + ((time uint64 :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +#| +(deftype hud-timer-training (hud-timer) + () + :method-count-assert 27 + :size-assert #xac4 + :flag-assert #x1b0a500ac4 + ) +|# + +#| +(deftype hud-arena-final-stats (hud) + () + :method-count-assert 27 + :size-assert #xac4 + :flag-assert #x1b0a500ac4 + ) +|# + +#| +(deftype arena-token (process-drawable) + ((trans-y float :offset-assert 200) + (offset float :offset-assert 204) + (gspot vector :inline :offset-assert 208) + (shadow-h uint64 :offset-assert 224) + ) + :method-count-assert 25 + :size-assert #xe8 + :flag-assert #x19007000e8 + (:methods + (arena-token-method-23 () none) ;; 23 + (arena-token-method-24 () none) ;; 24 + ) + (:state-methods + idle ;; 20 + die ;; 21 + hide ;; 22 + ) + ) +|# + +#| +(deftype wstd-training-dummy (process-drawable) + () + :method-count-assert 23 + :size-assert #xc8 + :flag-assert #x17005000c8 + (:methods + (wstd-training-dummy-method-22 () none) ;; 22 + ) + (:state-methods + idle ;; 20 + die ;; 21 + ) + ) +|# + +#| +(deftype task-manager-arena-training (task-manager) + ((judge-h uint64 :offset-assert 236) + (arrow-h uint64 :offset-assert 244) + (hud-stat uint64 :offset-assert 252) + (check-timer uint64 :offset-assert 260) + (actor-group uint32 :offset-assert 268) + (actor-group-count int32 :offset-assert 272) + (checkpoint-timer float :offset-assert 276) + (checkpoint-tokens uint64 :offset-assert 284) + (message-id uint32 :offset-assert 292) + ) + :method-count-assert 38 + :size-assert #x12c + :flag-assert #x2600b0012c + (:methods + (task-manager-arena-training-method-36 () none) ;; 36 + (task-manager-arena-training-method-37 () none) ;; 37 + ) + (:state-methods + wait-touch ;; 32 + wait-more ;; 33 + idle ;; 34 + done ;; 35 + active ;; 15 + ) + ) +|# + +#| +(deftype wstd-trapdoor (process-drawable) + ((notify-actor basic :offset-assert 200) + ) + :method-count-assert 22 + :size-assert #xcc + :flag-assert #x16005000cc + (:state-methods + idle ;; 20 + die ;; 21 + ) + ) +|# + +#| +(deftype wstd-flag (process-drawable) + () + :method-count-assert 21 + :size-assert #xc8 + :flag-assert #x15005000c8 + (:state-methods + idle ;; 20 + ) + ) +|# + +;; (define-extern *arena-state* object) +;; (define-extern *wstd-training-dummy-exploder-params* joint-exploder-static-params) +;; (define-extern *arena-trainer-checkpoint-valid* object) +;; (define-extern *arena-trainer-checkpoint-time* object) +;; (define-extern *arena-trainer-checkpoint-tokens* object) +;; (define-extern *training-fail* object) +;; (define-extern *wstd-trapdoor-exploder-params* joint-exploder-static-params) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; citizen-fat ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype citizen-fat (civilian) + () + :method-count-assert 234 + :size-assert #x464 + :flag-assert #xea03f00464 + (:state-methods + knocked ;; 31 + get-up-front ;; 220 + get-up-back ;; 221 + wait ;; 190 + ) + ) +|# + +;; (define-extern *citizen-fat-global-info* civilian-global-info) ;; civilian-global-info +;; (define-extern *citizen-fat-nav-enemy-info* nav-enemy-info) ;; nav-enemy-info + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; mh-squad-member ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; desert-lizard ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype desert-lizard (nav-enemy) + ((graph lizard-graph :offset-assert 620) + (minimap connection-minimap :offset-assert 624) + (catch-timer uint64 :offset-assert 632) + (closest-dist float :offset-assert 640) + (color-index int32 :offset-assert 644) + (talker-id uint32 :offset-assert 648) + ) + :method-count-assert 193 + :size-assert #x28c + :flag-assert #xc10210028c + (:methods + (desert-lizard-method-192 () none) ;; 192 + ) + (:state-methods + notice ;; 35 + flee ;; 36 + catching-daxter ;; 190 + disappear ;; 191 + ) + ) +|# + +#| +(deftype desert-lizard-spawner (process) + ((state-time uint64 :offset-assert 128) + (death-time uint64 :offset-assert 136) + (lizard uint64 :offset-assert 144) + (suppress-spawn-time uint64 :offset-assert 152) + ) + :method-count-assert 15 + :size-assert #xa0 + :flag-assert #xf002000a0 + (:state-methods + idle ;; 14 + ) + ) +|# + +;; (define-extern *desert-lizard-almost-there-timer* object) +;; (define-extern *desert-lizard-fact-info* fact-info-enemy-defaults) +;; (define-extern *desert-lizard-enemy-info* nav-enemy-info) +;; (define-extern desert-lizard-flee-post function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; cty-borrow-manager ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern cty-borrow-manager-borrow-update function) +;; (define-extern *cty-borrow-manager-list* object) +;; (define-extern get-borrow-slot function) +;; (define-extern parent-also-loaded? function) +;; (define-extern *faction-sound-list* object) +;; (define-extern level->sound-bank-name function) +;; (define-extern insert-into-sound-list function) +;; (define-extern update-sound-info function) +;; (define-extern mark-permanent-holds function) +;; (define-extern city-sound-exists? function) +;; (define-extern sound-bank-mode->use-count function) +;; (define-extern add-city-sound-bank-if-possible function) +;; (define-extern city-sound-expand-want-list function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ctywide-init ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype dummy-alloc (structure) + ((val uint32 :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x4 + :flag-assert #x900000004 + ) +|# + +;; (define-extern update-level-info function) +;; (define-extern ctywide-login function) ;; (function none) +;; (define-extern ctywide-activate function) ;; (function level symbol none) +;; (define-extern ctywide-deactivate function) ;; (function none) +;; (define-extern ctywide-logout function) +;; (define-extern *traffic-alert-level-force* object) ;; symbol +;; (define-extern lwide-activate function) ;; (function level symbol none) +;; (define-extern lwide-deactivate function) ;; (function none) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; mhcity-obs ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype mhcity-dark-eco-door (process-focusable) + ((should-break? basic :offset-assert 208) + (broken-door uint64 :offset-assert 216) + ) + :method-count-assert 33 + :size-assert #xe0 + :flag-assert #x21006000e0 + (:state-methods + broken-idle ;; 32 + idle ;; 28 + cracked ;; 29 + cracked-idle ;; 30 + broken ;; 31 + ) + ) +|# + +#| +(deftype mhcity-dark-eco-door-broken (process-drawable) + () + :method-count-assert 22 + :size-assert #xc8 + :flag-assert #x16005000c8 + (:state-methods + crack ;; 20 + shatter ;; 21 + ) + ) +|# + +#| +(deftype mhcity-lump (process-hidden) + () + :method-count-assert 15 + :size-assert #x80 + :flag-assert #xf00000080 + ) +|# + +#| +(deftype mhcity-dark-eco-nodule (process-drawable) + () + :method-count-assert 22 + :size-assert #xc8 + :flag-assert #x16005000c8 + (:state-methods + idle ;; 20 + explode ;; 21 + ) + ) +|# + +#| +(deftype mhcity-ambient-killable (process-focusable) + ((hit-points float :offset-assert 208) + (drop-type int32 :offset-assert 212) + (drop-amount float :offset-assert 216) + (sphere-size float :offset-assert 220) + (last-attack-id uint32 :offset-assert 224) + ) + :method-count-assert 31 + :size-assert #xe4 + :flag-assert #x1f007000e4 + (:methods + (mhcity-ambient-killable-method-29 () none) ;; 29 + (mhcity-ambient-killable-method-30 () none) ;; 30 + ) + (:state-methods + die-hidden ;; 28 + ) + ) +|# + +#| +(deftype mhcity-vein-writhing-large (mhcity-ambient-killable) + () + :method-count-assert 32 + :size-assert #xe4 + :flag-assert #x20007000e4 + (:state-methods + idle ;; 31 + ) + ) +|# + +#| +(deftype mhcity-vein-writhing-small (mhcity-ambient-killable) + () + :method-count-assert 32 + :size-assert #xe4 + :flag-assert #x20007000e4 + (:state-methods + idle ;; 31 + ) + ) +|# + +#| +(deftype mhcity-claw-finger-small (mhcity-ambient-killable) + ((twitch-speed float :offset-assert 228) + (twitch-angle-current float :offset-assert 232) + (twitch-angle-dest float :offset-assert 236) + (base-quat quaternion :inline :offset-assert 240) + (jitter-count int8 :offset-assert 256) + ) + :method-count-assert 32 + :size-assert #x101 + :flag-assert #x2000900101 + (:state-methods + idle ;; 31 + ) + ) +|# + +#| +(deftype mhcity-twitch-blade (process-drawable) + () + :method-count-assert 21 + :size-assert #xc8 + :flag-assert #x15005000c8 + (:state-methods + idle ;; 20 + ) + ) +|# + +#| +(deftype mhcity-vine-wriggler (mhcity-ambient-killable) + () + :method-count-assert 32 + :size-assert #xe4 + :flag-assert #x20007000e4 + (:state-methods + idle ;; 31 + ) + ) +|# + +#| +(deftype mhcity-vine-wriggler-big (mhcity-ambient-killable) + () + :method-count-assert 32 + :size-assert #xe4 + :flag-assert #x20007000e4 + (:state-methods + idle ;; 31 + ) + ) +|# + +#| +(deftype mhcity-de-tower-undervines (mhcity-ambient-killable) + () + :method-count-assert 32 + :size-assert #xe4 + :flag-assert #x20007000e4 + (:state-methods + idle ;; 31 + ) + ) +|# + +#| +(deftype mhcity-grunt-egg-c (mhcity-ambient-killable) + () + :method-count-assert 32 + :size-assert #xe4 + :flag-assert #x20007000e4 + (:state-methods + idle ;; 31 + ) + ) +|# + +#| +(deftype mhcity-grunt-egg-b (mhcity-ambient-killable) + () + :method-count-assert 32 + :size-assert #xe4 + :flag-assert #x20007000e4 + (:state-methods + idle ;; 31 + ) + ) +|# + +#| +(deftype mhcity-grunt-egg-d (mhcity-ambient-killable) + () + :method-count-assert 32 + :size-assert #xe4 + :flag-assert #x20007000e4 + (:state-methods + idle ;; 31 + ) + ) +|# + +#| +(deftype mhcity-grunt-egg-a (mhcity-ambient-killable) + () + :method-count-assert 32 + :size-assert #xe4 + :flag-assert #x20007000e4 + (:state-methods + idle ;; 31 + ) + ) +|# + +#| +(deftype curve-bubbles-Shape (process-hidden) + () + :method-count-assert 15 + :size-assert #x80 + :flag-assert #xf00000080 + ) +|# + +#| +(deftype mhcity-tower-door (process-drawable) + () + :method-count-assert 21 + :size-assert #xc8 + :flag-assert #x15005000c8 + (:state-methods + idle ;; 20 + ) + ) +|# + +;; (define-extern mhcity-dark-eco-door-broken-init-by-other function) +;; (define-extern *darkeco-nodule-task-nodes* array) +;; (define-extern mhcity-ambient-killable-event-handler function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; assault-cams ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *assault-cams* array) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; assault-script ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype assault-spawn-cmd (structure) + ((spawn-delay uint64 :offset-assert 0) + (command uint8 :offset-assert 8) + (spawn-type uint16 :offset-assert 10) + (count int8 :offset-assert 12) + (spawner-index int8 :offset-assert 13) + (wait-type uint8 :offset-assert 10) + (faction-type uint8 :offset-assert 13) + (wait-time uint64 :offset-assert 0) + (msg basic :offset-assert 16) + (path-id int32 :offset-assert 20) + (event0 int32 :offset-assert 24) + (event1 int32 :offset-assert 28) + (event2 int32 :offset-assert 32) + (speech-type uint64 :offset-assert 40) + (gun-pickup-type int32 :offset-assert 48) + ) + :method-count-assert 9 + :size-assert #x34 + :flag-assert #x900000034 + ) +|# + +#| +(deftype room-powerup-percentage (structure) + ((avg-spawn-rate uint64 :offset-assert 0) + (percentages UNKNOWN 51 :offset-assert 8) + (red2 float :offset-assert 116) + (red3 float :offset-assert 120) + (yellow2 float :offset-assert 128) + (yellow3 float :offset-assert 132) + (blue1 float :offset-assert 136) + (blue2 float :offset-assert 140) + (blue3 float :offset-assert 144) + (darkjak float :offset-assert 36) + (lightjak float :offset-assert 64) + (health float :offset-assert 88) + ) + :method-count-assert 9 + :size-assert #xd4 + :flag-assert #x9000000d4 + ) +|# + +#| +(deftype assault-cmd-context (structure) + ((start-time uint64 :offset-assert 0) + (state-time uint64 :offset-assert 8) + (current-command assault-spawn-cmd :inline :offset-assert 16) + (script basic :offset-assert 68) + ) + :method-count-assert 9 + :size-assert #x48 + :flag-assert #x900000048 + ) +|# + +;; (define-extern *port-assault-speech* array) +;; (define-extern *assault-object-count* array) +;; (define-extern *assault-fade-dist* array) +;; (define-extern *assault-graph-classification* array) +;; (define-extern *assault-faction-lookup* array) +;; (define-extern *assault-guard-count* array) +;; (define-extern *assault-citizen-count* array) +;; (define-extern symbol->assault-target-type function) +;; (define-extern symbol->speech-type function) +;; (define-extern symbol->faction-type function) +;; (define-extern symbol->gun-pickup-type function) +;; (define-extern parse-assault-command function) +;; (define-extern *assault-bombbot-paths* array) +;; (define-extern *assault-scripts* array) +;; (define-extern *room-goal* array) +;; (define-extern *room-powerups* array) +;; (define-extern *room0-script* object) +;; (define-extern *room1-script* object) +;; (define-extern *room2-script* object) +;; (define-extern *room3-script* object) +;; (define-extern *room4-script* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; mh-centipede-part ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern birth-func-ground-dirt-bounce function) +;; (define-extern spt-func-ground-dirt-bounce1 function) +;; (define-extern spt-func-ground-dirt-bounce2 function) +;; (define-extern spt-birth-func-brightness-mh-centipede-rocks function) +;; (define-extern spt-birth-func-brightness-mh-centipede-dirt function) +;; (define-extern spt-birth-func-brightness-mh-centipede-dust function) +;; (define-extern spt-birth-func-part-mh-centipede-before-breach-rocks function) +;; (define-extern spt-func-part-mh-centipede-before-breach-rocks function) +;; (define-extern spt-birth-func-part-mh-centipede-breach-dirt function) +;; (define-extern spt-birth-func-part-mh-centipede-breach-rocks function) +;; (define-extern spt-func-part-mh-centipede-breach-rocks function) +;; (define-extern spt-birth-func-part-mh-centipede-breach-rocks-bounce1 function) +;; (define-extern spt-func-part-mh-centipede-breach-rocks-bounce1 function) +;; (define-extern spt-func-ground-dirt-bounce3 function) +;; (define-extern spt-birth-func-part-mh-centipede-breach-rocks-bounce2 function) +;; (define-extern spt-birth-func-part-mh-centipede-impact-dirt function) +;; (define-extern spt-birth-func-part-mh-centipede-impact-rocks function) +;; (define-extern spt-func-part-mh-centipede-impact-rocks function) +;; (define-extern spt-birth-func-part-mh-centipede-impact-rocks-bounce1 function) +;; (define-extern spt-func-part-mh-centipede-impact-rocks-bounce1 function) +;; (define-extern spt-birth-func-brightness-mh-centipede-blood function) +;; (define-extern spt-birth-func-part-mh-centipede-explosion-lots function) +;; (define-extern spt-birth-func-part-mh-centipede-explosion function) +;; (define-extern *range-mhcent-splash-color* curve-color-fast) +;; (define-extern *range-mhcent-splash-alpha* curve2d-fast) +;; (define-extern *range-mhcent-splash-scale-x* curve2d-fast) +;; (define-extern *range-mhcent-splash-scale-y* curve2d-fast) +;; (define-extern *curve-mhcent-splash-alpha* curve2d-fast) +;; (define-extern *curve-mhcent-splash-scale-x* curve2d-fast) +;; (define-extern *curve-mhcent-splash-scale-y* curve2d-fast) +;; (define-extern *part-mh-centipede-splash-curve-settings* object) +;; (define-extern check-mh-centipede-explosion-level function) +;; (define-extern spt-birth-func-part-mh-centipede-shot-explosion-dirt function) +;; (define-extern spt-birth-func-part-mh-centipede-shot-explosion-dust function) +;; (define-extern spt-birth-func-part-mh-centipede-shot-explosion-bits function) +;; (define-extern *range-mh-centipede-shot-explo-color* curve-color-fast) +;; (define-extern *range-mh-centipede-shot-explo-alpha* curve2d-fast) +;; (define-extern *range-mh-centipede-shot-explo-scale-x* curve2d-fast) +;; (define-extern *range-mh-centipede-shot-explo-scale-y* curve2d-fast) +;; (define-extern *curve-mh-centipede-shot-explo-alpha* curve2d-fast) +;; (define-extern *curve-mh-centipede-shot-explo-scale-x* curve2d-fast) +;; (define-extern *curve-mh-centipede-shot-explo-scale-y* curve2d-fast) +;; (define-extern *part-mh-centipede-shot-explosion-texture-curve-settings* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; mh-centipede ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype nest-hunt-speech-instance (structure) + ((speech uint16 :offset-assert 0) + (probability float :offset-assert 4) + (flags uint64 :offset-assert 8) + (play-count uint32 :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x14 + :flag-assert #x900000014 + ) +|# + +#| +(deftype nest-hunt-speech-info (structure) + ((speeches basic :offset-assert 0) + (play-time uint64 :offset-assert 8) + (current-random uint64 :offset-assert 16) + (minimum-interval uint64 :offset-assert 24) + (random-interval uint64 :offset-assert 32) + (last-played int8 :offset-assert 40) + (flags uint8 :offset-assert 41) + ) + :method-count-assert 9 + :size-assert #x2a + :flag-assert #x90000002a + ) +|# + +#| +(deftype nest-hunt-speech-group (structure) + ((play-time uint64 :offset-assert 0) + (game-counter-last float :offset-assert 8) + (info basic :offset-assert 12) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype rod-spawner (process-drawable) + ((rod uint64 :offset-assert 200) + (minimap connection-minimap :offset-assert 208) + ) + :method-count-assert 23 + :size-assert #xd4 + :flag-assert #x17006000d4 + (:state-methods + wait-for-children ;; 21 + idle ;; 20 + hidden ;; 22 + ) + ) +|# + +#| +(deftype mh-centipede-shot (projectile) + ((trail-part basic :offset-assert 512) + ) + :method-count-assert 41 + :size-assert #x204 + :flag-assert #x2901900204 + (:state-methods + moving ;; 23 + impact ;; 22 + ) + ) +|# + +#| +(deftype mh-centipede-crater-pt (structure) + ((collision-pt vector :inline :offset-assert 0) + (normal vector :inline :offset-assert 16) + (found? basic :offset-assert 32) + (angle float :offset-assert 36) + ) + :method-count-assert 9 + :size-assert #x28 + :flag-assert #x900000028 + ) +|# + +#| +(deftype mh-centipede-crater-pt-array (structure) + ((points UNKNOWN 20 :offset-assert 0) + (origin vector :inline :offset-assert 960) + (radius float :offset-assert 976) + (current-point int32 :offset-assert 980) + ) + :method-count-assert 12 + :size-assert #x3d8 + :flag-assert #xc000003d8 + (:methods + (mh-centipede-crater-pt-array-method-9 () none) ;; 9 + (mh-centipede-crater-pt-array-method-10 () none) ;; 10 + (mh-centipede-crater-pt-array-method-11 () none) ;; 11 + ) + ) +|# + +#| +(deftype mh-centipede-anim (structure) + ((anim int32 :offset-assert 0) + (speed float :offset-assert 4) + (radius float :offset-assert 8) + (vulnerable-start float :offset-assert 12) + (vulnerable-end float :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x14 + :flag-assert #x900000014 + ) +|# + +#| +(deftype mh-centipede (process-focusable) + ((launch-position vector :inline :offset-assert 208) + (landing-position vector :inline :offset-assert 224) + (flags uint32 :offset-assert 240) + (incoming-attack-id uint32 :offset-assert 244) + (hit-points float :offset-assert 248) + (appearance-order int8 :offset-assert 252) + (before-breach-part basic :offset-assert 256) + (breach-part basic :offset-assert 260) + (dirt-fall-part basic :offset-assert 264) + (impact-part basic :offset-assert 268) + (impact-dust-part basic :offset-assert 272) + (out-of-ground-crater mh-centipede-crater-pt-array :inline :offset-assert 288) + (into-ground-crater mh-centipede-crater-pt-array :inline :offset-assert 1280) + (wait-time uint64 :offset-assert 2264) + (pre-breach-time uint64 :offset-assert 2272) + (breach-anims basic :offset-assert 2280) + (shoot-anims basic :offset-assert 2284) + (current-anim mh-centipede-anim :offset-assert 2288) + (nose-smack-time uint64 :offset-assert 2296) + (tail-smack-time uint64 :offset-assert 2304) + (timeout uint64 :offset-assert 2312) + (prev-anim-frame float :offset-assert 2320) + (current-target-position vector :inline :offset-assert 2336) + (prev-target-position vector :inline :offset-assert 2352) + (prev-time uint64 :offset-assert 2368) + (rumble-sound uint32 :offset-assert 2376) + (rumble-sound-playing basic :offset-assert 2380) + (ground-sound uint32 :offset-assert 2384) + (ground-sound-playing basic :offset-assert 2388) + (legs-sound uint32 :offset-assert 2392) + (legs-sound-playing basic :offset-assert 2396) + (minimap connection-minimap :offset-assert 2400) + (mm-handle uint64 :offset-assert 2408) + (effect-sphere sphere :offset-assert 2416) + ) + :method-count-assert 43 + :size-assert #x974 + :flag-assert #x2b09000974 + (:methods + (mh-centipede-method-36 () none) ;; 36 + (mh-centipede-method-37 () none) ;; 37 + (mh-centipede-method-38 () none) ;; 38 + (mh-centipede-method-39 () none) ;; 39 + (mh-centipede-method-40 () none) ;; 40 + (mh-centipede-method-41 () none) ;; 41 + (mh-centipede-method-42 () none) ;; 42 + ) + (:state-methods + hidden ;; 28 + wait-on-minimap ;; 29 + wait-off-minimap ;; 30 + pre-breach ;; 31 + breach ;; 32 + shooting ;; 33 + die ;; 34 + test ;; 35 + ) + ) +|# + +#| +(deftype mh-centipede-minimap-dot (process-drawable) + ((minimap connection-minimap :offset-assert 200) + ) + :method-count-assert 21 + :size-assert #xcc + :flag-assert #x15005000cc + (:state-methods + idle ;; 20 + ) + ) +|# + +#| +(deftype task-manager-mh-centipede (task-manager) + ((vehicle-handle uint64 :offset-assert 236) + (manager-entity basic :offset-assert 244) + (check-timer uint64 :offset-assert 252) + (actor-group uint32 :offset-assert 260) + (actor-group-count int32 :offset-assert 264) + (last-centipede-position vector :inline :offset-assert 268) + (last-target-position vector :inline :offset-assert 284) + ) + :method-count-assert 33 + :size-assert #x130 + :flag-assert #x2100b00130 + (:methods + (task-manager-mh-centipede-method-32 () none) ;; 32 + ) + (:state-methods + active ;; 15 + ) + ) +|# + +#| +(deftype task-manager-nstb-crystal (task-manager) + ((vehicle-handle uint64 :offset-assert 240) + ) + :method-count-assert 32 + :size-assert #xf8 + :flag-assert #x20008000f8 + (:state-methods + active ;; 15 + ) + ) +|# + +;; (define-extern *mh-centipede-sphere-1* object) +;; (define-extern *mh-centipede-sphere-2* object) +;; (define-extern nest-hunt-find-sphere function) +;; (define-extern nest-hunt-same-sphere function) +;; (define-extern nest-hunt-volume function) +;; (define-extern nest-hunt-shake-amp function) +;; (define-extern *nest-hunt-speech-list* object) +;; (define-extern *nest-hunt-speech* object) +;; (define-extern reset-nest-hunt-speeches function) +;; (define-extern nest-hunt-play-speech function) +;; (define-extern *mh-centipede-shadow-control* shadow-control) +;; (define-extern *mh-centipede-exploder-params* joint-exploder-static-params) +;; (define-extern mh-centipede-minimap-dot-init-by-other function) +;; (define-extern mh-centipede-active-handler function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; desert-lizard-task ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype lizard-graph-edge (structure) + ((index UNKNOWN 2 :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +#| +(deftype lizard-graph (structure) + ((point-count int32 :offset-assert 0) + (point uint32 :offset-assert 4) + (edge-count int32 :offset-assert 8) + (edge uint32 :offset-assert 12) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype task-manager-desert-catch-lizards (task-manager) + ((corral-pos sphere :inline :offset-assert 236) + (actor-group uint32 :offset-assert 252) + (actor-group-count int32 :offset-assert 256) + (manager-entity basic :offset-assert 260) + (lizard-count int32 :offset-assert 264) + (lizards-left int32 :offset-assert 268) + (sound-id uint32 :offset-assert 272) + (restart-time uint64 :offset-assert 276) + (vehicle-handle uint64 :offset-assert 284) + (vehicle-hit-points float :offset-assert 292) + (vehicle-turbo-count float :offset-assert 296) + (lizard-in-corral basic :offset-assert 300) + (daxter-comment-time uint64 :offset-assert 308) + (hint-time uint64 :offset-assert 316) + (arrow-handle uint64 :offset-assert 324) + ) + :method-count-assert 35 + :size-assert #x150 + :flag-assert #x2300d00150 + (:methods + (task-manager-desert-catch-lizards-method-33 () none) ;; 33 + (task-manager-desert-catch-lizards-method-34 () none) ;; 34 + ) + (:state-methods + active ;; 15 + paused ;; 32 + resolution ;; 17 + ) + ) +|# + +#| +(deftype kleever-catch-lizards (process-drawable) + () + :method-count-assert 21 + :size-assert #xcc + :flag-assert #x15005000cc + (:state-methods + idle ;; 20 + ) + ) +|# + +#| +(deftype toad-catch-lizards (w-parking-spot) + () + :method-count-assert 27 + :size-assert #xf8 + :flag-assert #x1b008000f8 + ) +|# + +;; (define-extern *desertg-lizard-graph* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; waspal-texture ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *waspal-water-texture-anim-array* texture-anim-array) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; throne-scenes ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; wastrail-graph ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *trail-graph* trail-graph) ;; trail-graph + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; wasall-part ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern spt-birth-func-brightness-buggy-dirt-bits function) +;; (define-extern spt-birth-func-part-buggy-dirt-bits function) +;; (define-extern spt-birth-func-part-buggy-skid-bits function) +;; (define-extern *wasdoors-range-color-flame* curve-color-fast) +;; (define-extern *wasdoors-range-alpha-flame* curve2d-fast) +;; (define-extern *wasdoors-range-scale-flame-x* curve2d-fast) +;; (define-extern *wasdoors-range-scale-flame-y* curve2d-fast) +;; (define-extern *r-wasdoors-curve-flame* curve2d-fast) +;; (define-extern *g-wasdoors-curve-flame* curve2d-fast) +;; (define-extern *b-wasdoors-curve-flame* curve2d-fast) +;; (define-extern *wasdoors-curve-alpha-flame* curve2d-fast) +;; (define-extern *wasdoors-curve-flame-x* curve2d-fast) +;; (define-extern *wasdoors-curve-flame-y* curve2d-fast) +;; (define-extern *part-wasdoors-gas-lamp-flame-curve-settings* object) +;; (define-extern spt-birth-func-brightness-part-desert-boss-slide-dust function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; wasall-tasks ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype dust-storm-randomizer (process) + ((name basic :offset-assert 0) + (mask process-mask :offset-assert 4) + (clock basic :offset-assert 8) + (parent uint32 :offset-assert 12) + (brother uint32 :offset-assert 16) + (child uint32 :offset-assert 20) + (ppointer uint32 :offset-assert 24) + (self basic :offset-assert 28) + (pool basic :offset-assert 32) + (status basic :offset-assert 36) + (pid int32 :offset-assert 40) + (main-thread basic :offset-assert 44) + (top-thread basic :offset-assert 48) + (entity basic :offset-assert 52) + (level basic :offset-assert 56) + (state basic :offset-assert 60) + (prev-state basic :offset-assert 64) + (next-state basic :offset-assert 68) + (state-stack basic :offset-assert 72) + (trans-hook basic :offset-assert 76) + (post-hook basic :offset-assert 80) + (event-hook basic :offset-assert 84) + (allocated-length int32 :offset-assert 88) + (heap-base uint32 :offset-assert 92) + (heap-top uint32 :offset-assert 96) + (heap-cur uint32 :offset-assert 100) + (stack-frame-top basic :offset-assert 104) + (heap kheap :inline :offset-assert 92) + (connection-list connectable :inline :offset-assert 108) + (stack UNKNOWN :dynamic :offset-assert 124) + ) + :method-count-assert 15 + :size-assert #x80 + :flag-assert #xf00000080 + (:state-methods + idle ;; 14 + ) + ) +|# + +#| +(deftype task-manager-temple (task-manager) + ((rod-of-god uint64 :offset-assert 240) + (vehicle uint64 :offset-assert 248) + (minimap connection-minimap :offset-assert 256) + (minimap-temple connection-minimap :offset-assert 260) + ) + :method-count-assert 34 + :size-assert #x108 + :flag-assert #x2200900108 + (:methods + (task-manager-temple-method-32 () none) ;; 32 + (task-manager-temple-method-33 () none) ;; 33 + ) + ) +|# + +#| +(deftype task-manager-temple-climb (task-manager-temple) + () + :method-count-assert 34 + :size-assert #x108 + :flag-assert #x2200900108 + (:state-methods + active ;; 15 + ) + ) +|# + +#| +(deftype task-manager-temple-tests (task-manager-temple) + () + :method-count-assert 34 + :size-assert #x108 + :flag-assert #x2200900108 + (:state-methods + active ;; 15 + ) + ) +|# + +#| +(deftype task-manager-desert-interceptors-attack (task-manager) + ((target-set-time uint64 :offset-assert 240) + ) + :method-count-assert 32 + :size-assert #xf8 + :flag-assert #x20008000f8 + (:state-methods + active ;; 15 + fail ;; 18 + ) + ) +|# + +#| +(deftype task-manager-vehicle-training-1 (task-manager) + () + :method-count-assert 32 + :size-assert #xf0 + :flag-assert #x20007000f0 + (:state-methods + active ;; 15 + ) + ) +|# + +#| +(deftype task-manager-vehicle-training-2 (task-manager) + () + :method-count-assert 32 + :size-assert #xf0 + :flag-assert #x20007000f0 + (:state-methods + active ;; 15 + ) + ) +|# + +#| +(deftype task-manager-highlight-vehicle (task-manager) + () + :method-count-assert 32 + :size-assert #xf0 + :flag-assert #x20007000f0 + ) +|# + +#| +(deftype oasis-defense-intro-manager (task-manager) + () + :method-count-assert 32 + :size-assert #xf0 + :flag-assert #x20007000f0 + (:state-methods + active ;; 15 + ) + ) +|# + +#| +(deftype task-manager-highlight-vehicle-wait (task-manager) + () + :method-count-assert 32 + :size-assert #xf0 + :flag-assert #x20007000f0 + (:state-methods + active ;; 15 + ) + ) +|# + +#| +(deftype task-manager-vehicle-wait (task-manager) + () + :method-count-assert 32 + :size-assert #xf0 + :flag-assert #x20007000f0 + (:state-methods + active ;; 15 + ) + ) +|# + +#| +(deftype task-manager-lock-wasdoors (task-manager) + () + :method-count-assert 32 + :size-assert #xf0 + :flag-assert #x20007000f0 + (:state-methods + active ;; 15 + ) + ) +|# + +#| +(deftype task-manager-get-to-corral (task-manager) + () + :method-count-assert 32 + :size-assert #xf0 + :flag-assert #x20007000f0 + ) +|# + +#| +(deftype task-manager-desert-beast-battle-intro (task-manager) + ((sig-rider-handle uint64 :offset-assert 240) + ) + :method-count-assert 32 + :size-assert #xf8 + :flag-assert #x20008000f8 + ) +|# + +#| +(deftype task-manager-desert-beast-battle (task-manager) + ((sig-rider-handle uint64 :offset-assert 240) + ) + :method-count-assert 32 + :size-assert #xf8 + :flag-assert #x20008000f8 + ) +|# + +#| +(deftype task-manager-desert-beast-battle-end (task-manager) + () + :method-count-assert 32 + :size-assert #xf0 + :flag-assert #x20007000f0 + ) +|# + +#| +(deftype task-manager-nest-hunt (task-manager) + ((vehicle-handle uint64 :offset-assert 240) + (sig-handle uint64 :offset-assert 248) + (minimap-connection connection-minimap :offset-assert 256) + (showing-desert basic :offset-assert 260) + ) + :method-count-assert 32 + :size-assert #x108 + :flag-assert #x2000900108 + ) +|# + +;; (define-extern wasall-kill-duplicate-vehicle function) +;; (define-extern dust-storm-randomizer-init-by-other function) +;; (define-extern spawn-dust-storm-randomizer function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; ffight-projectile ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype ffight-shot (projectile) + ((hit-actor? basic :offset-assert 512) + (tail-pos vector :inline :offset-assert 528) + ) + :method-count-assert 41 + :size-assert #x220 + :flag-assert #x2901a00220 + (:state-methods + impact ;; 22 + ) + ) +|# + +;; (define-extern ffight-shot-move function) +;; (define-extern spawn-ffight-projectile function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; fturret-projectile ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype fturret-shot (projectile) + ((hit-actor? basic :offset-assert 512) + (tail-pos vector :inline :offset-assert 528) + ) + :method-count-assert 41 + :size-assert #x220 + :flag-assert #x2901a00220 + ) +|# + +;; (define-extern fturret-shot-move function) +;; (define-extern spawn-fturret-projectile function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; warf-projectile ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype warf-explosion-sphere (process-drawable) + ((current-alpha float :offset-assert 200) + (expanding? basic :offset-assert 216) + ) + :method-count-assert 23 + :size-assert #xdc + :flag-assert #x17006000dc + (:methods + (warf-explosion-sphere-method-21 () none) ;; 21 + (warf-explosion-sphere-method-22 () none) ;; 22 + ) + (:state-methods + active ;; 20 + ) + ) +|# + +#| +(deftype warf-explosion-sphere-init-params (structure) + ((pos vector :inline :offset-assert 0) + ) + :method-count-assert 9 + :size-assert #x10 + :flag-assert #x900000010 + ) +|# + +#| +(deftype warf-projectile (projectile) + ((hit-actor? basic :offset-assert 512) + (tail-pos vector :inline :offset-assert 528) + (hit-pos vector :inline :offset-assert 544) + (last-hit-time uint64 :offset-assert 560) + (snd-whoosh uint32 :offset-assert 568) + (muzzle-flash-part basic :offset-assert 576) + ) + :method-count-assert 46 + :size-assert #x244 + :flag-assert #x2e01d00244 + (:methods + (warf-projectile-method-41 () none) ;; 41 + (warf-projectile-method-42 () none) ;; 42 + (warf-projectile-method-43 () none) ;; 43 + (warf-projectile-method-44 () none) ;; 44 + (warf-projectile-method-45 () none) ;; 45 + ) + (:state-methods + impact ;; 22 + ) + ) +|# + +#| +(deftype fac-gun-tower-projectile (projectile) + ((hit-actor? basic :offset-assert 512) + (tail-pos vector :inline :offset-assert 528) + ) + :method-count-assert 41 + :size-assert #x220 + :flag-assert #x2901a00220 + (:state-methods + impact ;; 22 + ) + ) +|# + +#| +(deftype gun-warf-shot (projectile) + ((hit-actor? basic :offset-assert 512) + (tail-pos vector :inline :offset-assert 528) + (hit-pos vector :inline :offset-assert 544) + (last-hit-time uint64 :offset-assert 560) + (snd-whoosh uint32 :offset-assert 568) + (muzzle-flash-part basic :offset-assert 572) + (main-shot-part basic :offset-assert 576) + (shot-aim-part basic :offset-assert 580) + ) + :method-count-assert 44 + :size-assert #x248 + :flag-assert #x2c01d00248 + (:methods + (gun-warf-shot-method-41 () none) ;; 41 + (gun-warf-shot-method-42 () none) ;; 42 + (gun-warf-shot-method-43 () none) ;; 43 + ) + ) +|# + +;; (define-extern warf-explosion-sphere-init-by-other function) +;; (define-extern warf-explosion-sphere-event-handler function) +;; (define-extern spawn-warf-projectile function) +;; (define-extern spawn-fac-gun-tower-projectile function) +;; (define-extern warf-projectile-move function) +;; (define-extern spt-func-factory-move function) +;; (define-extern spt-func-part-crystal-torpedo-in function) +;; (define-extern spt-func-part-crystal-torpedo-out function) +;; (define-extern fac-gun-tower-projectile-move function) +;; (define-extern gun-warf-shot-move function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; fac-robotank-h ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; fac-robotank ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype fac-robotank-segment-event (structure) + ((source uint64 :offset-assert 0) + (event-type basic :offset-assert 8) + (actor basic :offset-assert 12) + (pos-norm float :offset-assert 16) + (param basic :offset-assert 20) + ) + :method-count-assert 9 + :size-assert #x18 + :flag-assert #x900000018 + ;; field param uses ~A with a signed load. + ) +|# + +#| +(deftype fac-robotank-segment (structure) + ((flags uint16 :offset-assert 0) + (max-speed float :offset-assert 4) + (next-segment int32 :offset-assert 8) + (next-segment-start float :offset-assert 12) + (event-count int32 :offset-assert 16) + (event-tbl uint32 :offset-assert 20) + ) + :method-count-assert 9 + :size-assert #x18 + :flag-assert #x900000018 + ) +|# + +#| +(deftype fac-robotank-path-info (structure) + ((dir vector :inline :offset-assert 0) + (u float :offset-assert 16) + (du float :offset-assert 20) + (du-final float :offset-assert 24) + (prev-u float :offset-assert 28) + (max-speed float :offset-assert 32) + (dist float :offset-assert 36) + (dir-y-angle float :offset-assert 40) + (start-y-angle float :offset-assert 44) + ) + :method-count-assert 9 + :size-assert #x30 + :flag-assert #x900000030 + ) +|# + +#| +(deftype fac-robotank-path-info-array (inline-array-class) + ((data UNKNOWN :dynamic :offset-assert 16) + ) + :method-count-assert 14 + :size-assert #x10 + :flag-assert #xe00000010 + ) +|# + +#| +(deftype fac-robotank-wheel-info (structure) + ((jmod basic :offset-assert 0) + (radius float :offset-assert 4) + ) + :method-count-assert 9 + :size-assert #x8 + :flag-assert #x900000008 + ) +|# + +#| +(deftype fac-robotank-tread-info (structure) + ((wheel UNKNOWN 7 :offset-assert 0) + (texture texture-anim :offset-assert 112) + (locator-joint int32 :offset-assert 116) + (pos vector :inline :offset-assert 128) + ) + :method-count-assert 9 + :size-assert #x90 + :flag-assert #x900000090 + ) +|# + +#| +(deftype fac-robotank (process-focusable) + ((barrel-part basic :offset-assert 208) + (vibe-jmod joint-mod-blend-local :inline :offset-assert 224) + (tread UNKNOWN 2 :offset-assert 352) + (path-info basic :offset-assert 640) + (flags uint16 :offset-assert 644) + (mgr uint64 :offset-assert 648) + (pov-cam-offset UNKNOWN 2 :offset-assert 656) + (explode-sg basic :offset-assert 688) + (turret uint64 :offset-assert 696) + (no-collision-timer uint64 :offset-assert 704) + (buzz-timer uint64 :offset-assert 712) + (engine-vibe-rate float :offset-assert 720) + (engine-vibe-amp float :offset-assert 724) + (attack-id uint32 :offset-assert 728) + (path-index int32 :offset-assert 732) + (path-count int32 :offset-assert 736) + (continue-index int32 :offset-assert 740) + (hit-points float :offset-assert 744) + (engine-sound uint32 :offset-assert 748) + (engine-sound-playing basic :offset-assert 752) + (snd-cmd-time uint64 :offset-assert 760) + ) + :method-count-assert 35 + :size-assert #x300 + :flag-assert #x2302800300 + (:methods + (fac-robotank-method-32 () none) ;; 32 + (fac-robotank-method-33 () none) ;; 33 + (fac-robotank-method-34 () none) ;; 34 + ) + (:state-methods + turning ;; 28 + moving ;; 29 + pause ;; 30 + die ;; 31 + ) + ) +|# + +;; (define-extern *fac-robotank-exploder-params* joint-exploder-static-params) +;; (define-extern fac-robotank-post function) +;; (define-extern fac-robotank-handler function) +;; (define-extern fac-robotank-birth-path function) +;; (define-extern fac-robotank-init-by-other function) +;; (define-extern fac-robotank-spawn function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; factorya-init ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern factorya-login function) +;; (define-extern factorya-activate function) +;; (define-extern factorya-deactivate function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; mined-scenes ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype cav-airlock-door (com-airlock) + () + :method-count-assert 30 + :size-assert #x1b0 + :flag-assert #x1e013001b0 + ) +|# + +;; (define-extern prebot-darken function) +;; (define-extern scene-prebot-gun-spawn function) +;; (define-extern spt-birth-func-brightness-mine-boss-fma-dust-trailer function) +;; (define-extern spt-birth-func-brightness-mine-boss-fma-dust function) +;; (define-extern spt-birth-func-part-mine-boss-fma-dust function) +;; (define-extern spt-birth-func-part-mine-boss-fma-rocks function) +;; (define-extern spt-birth-func-part-mine-boss-fma-dust2 function) +;; (define-extern spt-birth-func-part-mine-boss-fma-rocks2 function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; volcanox-mood ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype volcanox-states (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ) +|# + +;; (define-extern *volcanox-mood-color-table* object) +;; (define-extern *volcanox-mood-fog-table* object) +;; (define-extern update-mood-volcanox function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; volcanox-obs ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype vol-holo-eye (process-drawable) + ((eyeball-jmod joint-mod-set-world-no-trans :inline :offset-assert 204) + (other-eyeball-jmod joint-mod-set-world :inline :offset-assert 268) + (next-blink-time uint64 :offset-assert 332) + (trigger-radius float :offset-assert 340) + (idle-clock uint64 :offset-assert 348) + (actor-group uint32 :offset-assert 356) + (actor-group-count int32 :offset-assert 360) + (triggered? basic :offset-assert 364) + (untriggered? basic :offset-assert 368) + (kill-quat quaternion :inline :offset-assert 380) + (kill-angle float :offset-assert 396) + (kill-speed float :offset-assert 400) + (init-trans vector :inline :offset-assert 412) + (perm-part uint64 :offset-assert 428) + ) + :method-count-assert 26 + :size-assert #x1b8 + :flag-assert #x1a014001b8 + (:methods + (vol-holo-eye-method-25 () none) ;; 25 + ) + (:state-methods + idle ;; 20 + alert ;; 21 + close ;; 22 + die ;; 23 + die-fast ;; 24 + ) + ) +|# + +#| +(deftype tpl-glider-broken (process-drawable) + () + :method-count-assert 21 + :size-assert #xc8 + :flag-assert #x15005000c8 + (:state-methods + idle ;; 20 + ) + ) +|# + +#| +(deftype dm-spines (process-drawable) + ((alt-actor basic :offset-assert 200) + ) + :method-count-assert 23 + :size-assert #xcc + :flag-assert #x17005000cc + (:state-methods + open ;; 20 + closed ;; 21 + opening ;; 22 + ) + ) +|# + +;; (define-extern sparticle-vol-holo-halo0 function) +;; (define-extern sparticle-vol-holo-halo1 function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; volcanox-scenes ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype monk-mummy (process-taskable) + () + :method-count-assert 40 + :size-assert #x118 + :flag-assert #x2800a00118 + ) +|# + +;; (define-extern spt-birth-func-brightness-volcano-glider-dust function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; volcano-obs2 ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype vol-lava-plat (rigid-body-platform) + ((anchor-point vector :inline :offset-assert 320) + (path-u float :offset-assert 336) + ) + :method-count-assert 60 + :size-assert #x154 + :flag-assert #x3c00e00154 + (:state-methods + active ;; 29 + ) + ) +|# + +#| +(deftype vol-lava-plat-spawner (process) + ((path basic :offset-assert 128) + ) + :method-count-assert 15 + :size-assert #x84 + :flag-assert #xf00100084 + (:state-methods + idle ;; 14 + ) + ) +|# + +#| +(deftype vol-break-ground (process-drawable) + ((ridden basic :offset-assert 200) + (ride-timer uint64 :offset-assert 208) + ) + :method-count-assert 24 + :size-assert #xd8 + :flag-assert #x18006000d8 + (:methods + (vol-break-ground-method-23 () none) ;; 23 + ) + (:state-methods + idle ;; 20 + active ;; 21 + collapse ;; 22 + ) + ) +|# + +#| +(deftype vol-stone-lid (rigid-body-object) + ((to-hole-vec vector :inline :offset-assert 288) + (hole basic :offset-assert 304) + (hole-dist-xz float :offset-assert 308) + (hole-dist-y float :offset-assert 312) + (hole-sync-norm float :offset-assert 316) + (lava-timer uint64 :offset-assert 320) + (stop-timer uint64 :offset-assert 328) + ) + :method-count-assert 58 + :size-assert #x150 + :flag-assert #x3a00d00150 + (:state-methods + idle ;; 28 + active ;; 29 + stopped ;; 56 + die-and-respawn ;; 57 + ) + ) +|# + +;; (define-extern *vol-lava-plat-platform-constants* object) +;; (define-extern vol-lava-plat-init-by-other function) +;; (define-extern *vol-stone-lid-rigid-body-constants* object) +;; (define-extern vol-stone-lid-init-by-other function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; volcano-mood ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype volcano-states (UNKNOWN) + () + :method-count-assert 0 + :size-assert #x0 + :flag-assert #x0 + ) +|# + +;; (define-extern *volcano-mood-color-table* object) +;; (define-extern *volcano-mood-fog-table* object) +;; (define-extern update-mood-volcano function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; spiky-frog ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype spiky-frog (nav-enemy) + ((eye-jmod UNKNOWN 2 :offset-assert 620) + (roll-transform transformq :inline :offset-assert 640) + (time-out uint64 :offset-assert 688) + (sound-id uint32 :offset-assert 696) + ) + :method-count-assert 199 + :size-assert #x2bc + :flag-assert #xc7024002bc + (:methods + (spiky-frog-method-196 () none) ;; 196 + (spiky-frog-method-197 () none) ;; 197 + (spiky-frog-method-198 () none) ;; 198 + ) + (:state-methods + notice ;; 35 + active ;; 34 + pacing ;; 156 + stare ;; 37 + circling ;; 157 + rolling-start ;; 190 + hostile ;; 38 + rolling ;; 191 + rolling-stop ;; 192 + turn ;; 195 + attack ;; 193 + attack-recover ;; 194 + knocked ;; 31 + knocked-recover ;; 32 + ) + ) +|# + +;; (define-extern *fact-info-spiky-frog-defaults* fact-info-enemy-defaults) +;; (define-extern *spiky-frog-nav-enemy-info* nav-enemy-info) +;; (define-extern spiky-frog-hop-slow-code function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; flamer-lava ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; flying-formation is already defined! + +#| +(deftype flamer-lava (nav-enemy) + ((shot-trajectory trajectory :inline :offset-assert 624) + (last-fire-time uint64 :offset-assert 664) + (sync-off uint32 :offset-assert 672) + (base-pos vector :inline :offset-assert 688) + (idle-pos vector :inline :offset-assert 704) + (offset vector :inline :offset-assert 720) + (dest-pos vector :inline :offset-assert 736) + (zone-to-world matrix :inline :offset-assert 752) + (world-to-zone matrix :inline :offset-assert 816) + (formation-entity basic :offset-assert 880) + (flit-joint joint-mod-set-local :inline :offset-assert 896) + (flit-angle float :offset-assert 960) + (flit-timer uint64 :offset-assert 968) + (path-pos float :offset-assert 976) + (sound-volume float :offset-assert 980) + (scale float :offset-assert 984) + (hit-surface? basic :offset-assert 988) + (ground-mode int8 :offset-assert 992) + (init-quat quaternion :inline :offset-assert 1008) + (surface-normal vector :inline :offset-assert 1024) + (main-joint-pos vector :inline :offset-assert 1040) + (main-joint-vel vector :inline :offset-assert 1056) + (main-joint-acc vector :inline :offset-assert 1072) + (main-acceleration float :offset-assert 1088) + (fly-dir vector :inline :offset-assert 1104) + ) + :method-count-assert 205 + :size-assert #x460 + :flag-assert #xcd03e00460 + (:methods + (flamer-lava-method-194 () none) ;; 194 + (flamer-lava-method-195 () none) ;; 195 + (flamer-lava-method-196 () none) ;; 196 + (flamer-lava-method-197 () none) ;; 197 + (flamer-lava-method-198 () none) ;; 198 + (flamer-lava-method-199 () none) ;; 199 + (flamer-lava-method-200 () none) ;; 200 + (flamer-lava-method-201 () none) ;; 201 + (flamer-lava-method-202 () none) ;; 202 + (flamer-lava-method-203 () none) ;; 203 + (flamer-lava-method-204 () none) ;; 204 + ) + (:state-methods + ambush ;; 47 + wait-for-formation ;; 191 + dormant ;; 28 + dormant-aware ;; 29 + exit-ambush-path ;; 193 + idle ;; 33 + active ;; 34 + exit-ambush ;; 192 + notice ;; 35 + hostile ;; 38 + attack ;; 190 + knocked ;; 31 + die-falling ;; 41 + ) + ) +|# + +#| +(deftype flaming-lava (flamer-lava) + () + :method-count-assert 205 + :size-assert #x460 + :flag-assert #xcd03e00460 + ) +|# + +;; (define-extern *flamer-lava-exploder-params* joint-exploder-static-params) +;; (define-extern *flamer-lava-fact-defaults* fact-info-enemy-defaults) +;; (define-extern *flamer-lava-nav-enemy-info* nav-enemy-info) +;; (define-extern flamer-lava-attack-post function) +;; (define-extern flamer-lava-flit-post function) +;; (define-extern flamer-lava-fly-code function) +;; (define-extern vector-square! function) ;; (function vector vector vector) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; protect-script ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype gunship-cmd (structure) + ((command uint8 :offset-assert 0) + (spawn-type uint16 :offset-assert 2) + (count int8 :offset-assert 4) + (wait-type uint8 :offset-assert 2) + (difficulty float :offset-assert 8) + (wait-time uint64 :offset-assert 16) + (timeout-period uint64 :offset-assert 24) + ) + :method-count-assert 9 + :size-assert #x20 + :flag-assert #x900000020 + ) +|# + +#| +(deftype gunship-cmd-context (structure) + ((start-time uint64 :offset-assert 0) + (current-command gunship-cmd :inline :offset-assert 8) + (script basic :offset-assert 40) + (script-jump-point basic :offset-assert 44) + ) + :method-count-assert 9 + :size-assert #x30 + :flag-assert #x900000030 + ) +|# + +;; (define-extern parse-protect-command function) +;; (define-extern *gunship-0-script* object) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; protect-path ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *protect-path* array) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; protect-gunship ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +#| +(deftype fire-missile-state (structure) + ((missile-dest-positions UNKNOWN 16 :offset-assert 0) + (missile-handles UNKNOWN 16 :offset-assert 256) + (beacon-handles UNKNOWN 16 :offset-assert 384) + (last-fire-missile-time uint64 :offset-assert 512) + (last-probe-missile-time uint64 :offset-assert 520) + (launcher-rotate-time uint64 :offset-assert 528) + (num-missiles int8 :offset-assert 536) + (missile-launch-index int8 :offset-assert 537) + (missile-probe-index int8 :offset-assert 538) + (missile-shoot-index int8 :offset-assert 539) + (current-probe-angle float :offset-assert 540) + (probe-angle-shift float :offset-assert 544) + (difficulty-scalar float :offset-assert 548) + ) + :method-count-assert 10 + :size-assert #x228 + :flag-assert #xa00000228 + (:methods + (fire-missile-state-method-9 () none) ;; 9 + ) + ) +|# + +#| +(deftype gunship-info (structure) + ((proc uint64 :offset-assert 0) + (want-target uint8 :offset-assert 8) + (cur-state basic :offset-assert 12) + (difficulty float :offset-assert 16) + ) + :method-count-assert 9 + :size-assert #x14 + :flag-assert #x900000014 + ) +|# + +#| +(deftype gunship-movement-state (structure) + ((state-time uint64 :offset-assert 0) + (next-update-time uint64 :offset-assert 8) + (cur-mode uint8 :offset-assert 16) + (dest-mode uint8 :offset-assert 17) + (dest-pos vector :inline :offset-assert 32) + (completed? basic :offset-assert 48) + ) + :method-count-assert 9 + :size-assert #x34 + :flag-assert #x900000034 + ) +|# + +#| +(deftype gunship-spawn-info (structure) + ((counts UNKNOWN 17 :offset-assert 0) + (next-spawn-time uint64 :offset-assert 24) + ) + :method-count-assert 10 + :size-assert #x20 + :flag-assert #xa00000020 + (:methods + (gunship-spawn-info-method-9 () none) ;; 9 + ) + ) +|# + +#| +(deftype protect-gunship (process-focusable) + ((task-man uint64 :offset-assert 208) + (missile-info fire-missile-state :inline :offset-assert 224) + (stage-index int8 :offset-assert 776) + (num-stages int8 :offset-assert 777) + (hit-points float :offset-assert 780) + (last-attack-id uint32 :offset-assert 784) + (minimap connection-minimap :offset-assert 788) + (ground-pt vector :inline :offset-assert 800) + (basetrans vector :inline :offset-assert 816) + (move-state gunship-movement-state :inline :offset-assert 832) + (reaction-time uint64 :offset-assert 888) + (choose-new-point-time uint64 :offset-assert 896) + (chosen-point vector :inline :offset-assert 912) + (last-repo-pos vector :inline :offset-assert 928) + (suppress-times UNKNOWN 8 :offset-assert 944) + (want uint8 :offset-assert 1008) + (target uint8 :offset-assert 1009) + (spawn-info gunship-spawn-info :inline :offset-assert 1016) + (next-fire-missile-time uint64 :offset-assert 1048) + (next-spin-laser-time uint64 :offset-assert 1056) + (next-spawn-time uint64 :offset-assert 1064) + (last-land-time uint64 :offset-assert 1072) + (last-thrust-vec vector :inline :offset-assert 1088) + (roll-quat quaternion :inline :offset-assert 1104) + (difficulty float :offset-assert 1120) + (base-difficulty float :offset-assert 1124) + (land-start-hp float :offset-assert 1128) + (jmod-turret-twist joint-mod-rotate-local :inline :offset-assert 1136) + (jmod-turret-pitch joint-mod-rotate-local :inline :offset-assert 1168) + (jmod-doors UNKNOWN 4 :offset-assert 1200) + (open-doors uint8 :offset-assert 1328) + (num-open-doors uint8 :offset-assert 1329) + (last-door-index uint8 :offset-assert 1330) + (engines UNKNOWN 4 :offset-assert 1336) + (rotate-start-time uint64 :offset-assert 1368) + (rotate-total-time uint64 :offset-assert 1376) + (rotate-rate float :offset-assert 1384) + (laser-rotate-speed float :offset-assert 1388) + (current-laser-rotate-speed float :offset-assert 1392) + (base-laser-dir vector :inline :offset-assert 1408) + (next-new-laser-rot-time uint64 :offset-assert 1424) + (laser-y float :offset-assert 1432) + (jmod-laser-descend joint-mod-add-local :inline :offset-assert 1440) + (num-hp-per-stage float :offset-assert 1504) + (self-index int8 :offset-assert 1508) + (other-ship-index int8 :offset-assert 1509) + (attacker-info city-attacker-info :offset-assert 1512) + (difficulty-scalar float :offset-assert 1516) + (sound-engine-loop uint32 :offset-assert 1520) + (sound-lock-on uint32 :offset-assert 1524) + (sound-lock-on-hi uint32 :offset-assert 1528) + (alive-engines uint8 :offset-assert 1532) + (last-engine? basic :offset-assert 1536) + (desired-thruster-length float :offset-assert 1540) + (last-thrust vector :inline :offset-assert 1552) + (smoke-parts UNKNOWN 4 :offset-assert 1568) + ) + :method-count-assert 58 + :size-assert #x630 + :flag-assert #x3a05b00630 + (:methods + (protect-gunship-method-36 () none) ;; 36 + (protect-gunship-method-37 () none) ;; 37 + (protect-gunship-method-38 () none) ;; 38 + (protect-gunship-method-39 () none) ;; 39 + (protect-gunship-method-40 () none) ;; 40 + (protect-gunship-method-41 () none) ;; 41 + (protect-gunship-method-42 () none) ;; 42 + (protect-gunship-method-43 () none) ;; 43 + (protect-gunship-method-44 () none) ;; 44 + (protect-gunship-method-45 () none) ;; 45 + (protect-gunship-method-46 () none) ;; 46 + (protect-gunship-method-47 () none) ;; 47 + (protect-gunship-method-48 () none) ;; 48 + (protect-gunship-method-49 () none) ;; 49 + (protect-gunship-method-50 () none) ;; 50 + (protect-gunship-method-51 () none) ;; 51 + (protect-gunship-method-52 () none) ;; 52 + (protect-gunship-method-53 () none) ;; 53 + (protect-gunship-method-54 () none) ;; 54 + (protect-gunship-method-55 () none) ;; 55 + (protect-gunship-method-56 () none) ;; 56 + (protect-gunship-method-57 () none) ;; 57 + ) + (:state-methods + die ;; 35 + protect-gunship-base-state ;; 28 + enemy-spawning ;; 33 + spinning-laser ;; 34 + hover ;; 29 + landed ;; 30 + raising ;; 31 + lowering ;; 32 + ) + ) +|# + +#| +(deftype gunship-engine (process-focusable) + ((hit-points float :offset-assert 208) + (child-index int16 :offset-assert 212) + (last-attack-id uint32 :offset-assert 216) + (attacker-info city-attacker-info :offset-assert 220) + (bolt basic :offset-assert 224) + (hit-recently? basic :offset-assert 228) + (last-hit-time uint64 :offset-assert 232) + ) + :method-count-assert 31 + :size-assert #xf0 + :flag-assert #x1f007000f0 + (:methods + (gunship-engine-method-30 () none) ;; 30 + ) + (:state-methods + explode ;; 29 + idle ;; 28 + ) + ) +|# + +#| +(deftype protect-gunship-init-params (structure) + ((pos vector :inline :offset-assert 0) + (quat quaternion :inline :offset-assert 16) + (task-man uint64 :offset-assert 32) + (script basic :offset-assert 40) + (num-stages int8 :offset-assert 44) + (self-index int8 :offset-assert 45) + (difficulty float :offset-assert 48) + (difficulty-scalar float :offset-assert 52) + ) + :method-count-assert 9 + :size-assert #x38 + :flag-assert #x900000038 + ) +|# + +#| +(deftype protect-gunship-enemy-spawn-params (structure) + ((pos vector :inline :offset-assert 0) + (quat quaternion :inline :offset-assert 16) + (spawn-type uint16 :offset-assert 32) + (parent uint64 :offset-assert 40) + ) + :method-count-assert 9 + :size-assert #x30 + :flag-assert #x900000030 + ) +|# + +#| +(deftype gunship-exploder (process-drawable) + () + :method-count-assert 21 + :size-assert #xc8 + :flag-assert #x15005000c8 + (:state-methods + explode ;; 20 + ) + ) +|# + +#| +(deftype gunship-missile (process-focusable) + ((dest-pos vector :inline :offset-assert 208) + (launch-dir vector :inline :offset-assert 224) + (particle-trail basic :offset-assert 240) + (travel-speed float :offset-assert 244) + (attack-time float :offset-assert 248) + (attack-id uint32 :offset-assert 252) + (index int16 :offset-assert 256) + (swoosh-sound uint32 :offset-assert 260) + ) + :method-count-assert 33 + :size-assert #x108 + :flag-assert #x2100900108 + (:methods + (gunship-missile-method-31 () none) ;; 31 + (gunship-missile-method-32 () none) ;; 32 + ) + (:state-methods + launch ;; 28 + attack-targ ;; 29 + explode ;; 30 + ) + ) +|# + +#| +(deftype gunship-missile-init-params (structure) + ((pos vector :inline :offset-assert 0) + (dest-pos vector :inline :offset-assert 16) + (launch-dir vector :inline :offset-assert 32) + (time-to-targ float :offset-assert 48) + (index int16 :offset-assert 52) + ) + :method-count-assert 9 + :size-assert #x36 + :flag-assert #x900000036 + ) +|# + +;; (define-extern *gunship-nav-mesh* object) +;; (define-extern *range-ffexplo-dust-color* curve-color-fast) +;; (define-extern *range-ffexplo-dust-alpha* curve2d-fast) +;; (define-extern *range-ffexplo-dust-scale-x* curve2d-fast) +;; (define-extern *range-ffexplo-dust-scale-y* curve2d-fast) +;; (define-extern *curve-ffexplo-dust-alpha* curve2d-fast) +;; (define-extern *curve-ffexplo-dust-scale-x* curve2d-fast) +;; (define-extern *curve-ffexplo-dust-scale-y* curve2d-fast) +;; (define-extern *part-grp-gunship-explosion-dust-in-curve-settings* object) +;; (define-extern *range-gunship-explo-color* curve-color-fast) +;; (define-extern *range-gunship-explo-alpha* curve2d-fast) +;; (define-extern *range-gunship-explo-scale-x* curve2d-fast) +;; (define-extern *range-gunship-explo-scale-y* curve2d-fast) +;; (define-extern *curve-gunship-explo-alpha* curve2d-fast) +;; (define-extern *curve-gunship-explo-scale-x* curve2d-fast) +;; (define-extern *curve-gunship-explo-scale-y* curve2d-fast) +;; (define-extern *part-grp-gunship-explosion-texture-curve-settings* object) +;; (define-extern *active-gunships* object) +;; (define-extern *gunship-door-joints* array) +;; (define-extern *gunship-engine-segs-undamaged* array) +;; (define-extern *gunship-engine-segs-damaged* array) +;; (define-extern *gunship-engine-lightning* object) +;; (define-extern gunship-engine-init-by-other function) +;; (define-extern find-nearest-nav-mesh-protect function) +;; (define-extern gunship-event-handler function) +;; (define-extern *gunship-shadow-control* shadow-control) +;; (define-extern protect-gunship-init-by-other function) +;; (define-extern gunship-exploder-init-by-other function) +;; (define-extern gunship-missile-init-by-other function) +;; (define-extern *rand-missile-sound-list* array) +;; (define-extern *missile-launch-locations* array) +;; (define-extern find-reposition-pt function) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; deshover-texture ;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; (define-extern *deshover-texture-anim-array* texture-anim-array) +;; (define-extern deshover-texture-anim-func function) + + diff --git a/decompiler/config/jak3/jak3_config.jsonc b/decompiler/config/jak3/jak3_config.jsonc index dd417762c..f6ecd9952 100644 --- a/decompiler/config/jak3/jak3_config.jsonc +++ b/decompiler/config/jak3/jak3_config.jsonc @@ -125,5 +125,14 @@ "apply_patches": true, // what to patch an object to and what the patch file is "object_patches": { + }, + "version_overrides": { + "ntsc_v1": {}, + "pal": { + "game_name": "jak3_pal", + "expected_elf_name": "SCES_524.60", + "is_pal": true, + "object_patches": {} + } } } diff --git a/decompiler/config/jak3/ntsc_v1/anonymous_function_types.jsonc b/decompiler/config/jak3/ntsc_v1/anonymous_function_types.jsonc index 9e26dfeeb..0967ef424 100644 --- a/decompiler/config/jak3/ntsc_v1/anonymous_function_types.jsonc +++ b/decompiler/config/jak3/ntsc_v1/anonymous_function_types.jsonc @@ -1 +1 @@ -{} \ No newline at end of file +{} diff --git a/decompiler/config/jak3/ntsc_v1/hacks.jsonc b/decompiler/config/jak3/ntsc_v1/hacks.jsonc index 2e4b3989b..02e5d6ac6 100644 --- a/decompiler/config/jak3/ntsc_v1/hacks.jsonc +++ b/decompiler/config/jak3/ntsc_v1/hacks.jsonc @@ -755,14 +755,21 @@ "generic-warp-dest", "generic-warp-envmap-dest", "generic-no-light-proc" - ], "mips2c_jump_table_functions": {}, // there are some missing textures. I don't know what the game actually does here. // the format for entries is [level, tpage, index] - "missing_textures": [["lfac", 0, 0], ["ltow", 0, 0], ["lcit", 0, 0], ["pow", 0, 0], ["wasintro", 0, 0], ["lfacctyb", 0, 0], ["intpfall", 0, 0]], + "missing_textures": [ + ["lfac", 0, 0], + ["ltow", 0, 0], + ["lcit", 0, 0], + ["pow", 0, 0], + ["wasintro", 0, 0], + ["lfacctyb", 0, 0], + ["intpfall", 0, 0] + ], // some object files have garbage pad data at the end which makes the decompiler // assume they must be different files, such as the art group for orb-cache-top. diff --git a/decompiler/config/jak3/ntsc_v1/inputs.jsonc b/decompiler/config/jak3/ntsc_v1/inputs.jsonc index 251012bea..413b438e3 100644 --- a/decompiler/config/jak3/ntsc_v1/inputs.jsonc +++ b/decompiler/config/jak3/ntsc_v1/inputs.jsonc @@ -7,7 +7,7 @@ // most objects are part of CGO/DGO files (both go in dgo_names). This includes levels and the engine // the DGOs will be processed in this order. Usually it's best to have KERNEL, ENGINE, then the levels when // you want to run on the entire game. - "dgo_names":[ + "dgo_names": [ //"CGO/ART.CGO", "CGO/KERNEL.CGO", // "CGO/ENGINE.CGO", @@ -285,7 +285,7 @@ "DGO/LCTYPROT.DGO", "DGO/DESHOVER.DGO", "DGO/DESBOSS2.DGO" -], + ], // some objects are part of STR files (streaming data). "str_file_names": [], diff --git a/decompiler/config/jak3/ntsc_v1/label_types.jsonc b/decompiler/config/jak3/ntsc_v1/label_types.jsonc index 9e26dfeeb..0967ef424 100644 --- a/decompiler/config/jak3/ntsc_v1/label_types.jsonc +++ b/decompiler/config/jak3/ntsc_v1/label_types.jsonc @@ -1 +1 @@ -{} \ No newline at end of file +{} diff --git a/decompiler/config/jak3/ntsc_v1/stack_structures.jsonc b/decompiler/config/jak3/ntsc_v1/stack_structures.jsonc index 9e26dfeeb..0967ef424 100644 --- a/decompiler/config/jak3/ntsc_v1/stack_structures.jsonc +++ b/decompiler/config/jak3/ntsc_v1/stack_structures.jsonc @@ -1 +1 @@ -{} \ No newline at end of file +{} diff --git a/decompiler/config/jak3/ntsc_v1/type_casts.jsonc b/decompiler/config/jak3/ntsc_v1/type_casts.jsonc index 9e26dfeeb..0967ef424 100644 --- a/decompiler/config/jak3/ntsc_v1/type_casts.jsonc +++ b/decompiler/config/jak3/ntsc_v1/type_casts.jsonc @@ -1 +1 @@ -{} \ No newline at end of file +{} diff --git a/decompiler/config/jak3/ntsc_v1/var_names.jsonc b/decompiler/config/jak3/ntsc_v1/var_names.jsonc index 9e26dfeeb..0967ef424 100644 --- a/decompiler/config/jak3/ntsc_v1/var_names.jsonc +++ b/decompiler/config/jak3/ntsc_v1/var_names.jsonc @@ -1 +1 @@ -{} \ No newline at end of file +{} diff --git a/decompiler/types2/ForwardProp.cpp b/decompiler/types2/ForwardProp.cpp index 5226f6bda..d5f5feced 100644 --- a/decompiler/types2/ForwardProp.cpp +++ b/decompiler/types2/ForwardProp.cpp @@ -1368,7 +1368,7 @@ void types2_for_add(types2::Type& type_out, } } - if (env.version == GameVersion::Jak2 && tc(dts, TypeSpec("symbol"), arg1_type) && + if (env.version >= GameVersion::Jak2 && tc(dts, TypeSpec("symbol"), arg1_type) && is_int_or_uint(dts, arg0_type)) { if (arg0_type.is_integer_constant(jak2::SYM_TO_STRING_OFFSET)) { // symbol -> GOAL String diff --git a/game/assets/jak3/game_subtitle.gp b/game/assets/jak3/game_subtitle.gp new file mode 100644 index 000000000..89f54566f --- /dev/null +++ b/game/assets/jak3/game_subtitle.gp @@ -0,0 +1,57 @@ +;; "project file" for subtitles make tool. + +(subtitle-v2 + (file-json + :language-id 0 + :text-version "jak2" + :lines "game/assets/jak2/subtitle/subtitle_lines_en-US.json" + :meta "game/assets/jak2/subtitle/subtitle_meta_en-US.json") + (file-json + :language-id 1 + :text-version "jak2" + :lines "game/assets/jak2/subtitle/subtitle_lines_fr-FR.json" + :meta "game/assets/jak2/subtitle/subtitle_meta_fr-FR.json" + :lines-base "game/assets/jak2/subtitle/subtitle_lines_en-US.json" + :meta-base "game/assets/jak2/subtitle/subtitle_meta_en-US.json") + (file-json + :language-id 2 + :text-version "jak2" + :lines "game/assets/jak2/subtitle/subtitle_lines_de-DE.json" + :meta "game/assets/jak2/subtitle/subtitle_meta_de-DE.json" + :lines-base "game/assets/jak2/subtitle/subtitle_lines_en-US.json" + :meta-base "game/assets/jak2/subtitle/subtitle_meta_en-US.json") + (file-json + :language-id 3 + :text-version "jak2" + :lines "game/assets/jak2/subtitle/subtitle_lines_es-ES.json" + :meta "game/assets/jak2/subtitle/subtitle_meta_es-ES.json" + :lines-base "game/assets/jak2/subtitle/subtitle_lines_en-US.json" + :meta-base "game/assets/jak2/subtitle/subtitle_meta_en-US.json") + (file-json + :language-id 4 + :text-version "jak2" + :lines "game/assets/jak2/subtitle/subtitle_lines_it-IT.json" + :meta "game/assets/jak2/subtitle/subtitle_meta_it-IT.json" + :lines-base "game/assets/jak2/subtitle/subtitle_lines_en-US.json" + :meta-base "game/assets/jak2/subtitle/subtitle_meta_en-US.json") + (file-json + :language-id 5 + :text-version "jak2" + :lines "game/assets/jak2/subtitle/subtitle_lines_jp-JP.json" + :lines-base "game/assets/jak2/subtitle/subtitle_lines_en-US.json" + :meta "game/assets/jak2/subtitle/subtitle_meta_jp-JP.json" + :meta-base "game/assets/jak2/subtitle/subtitle_meta_en-US.json") + (file-json + :language-id 6 + :text-version "jak2" + :lines "game/assets/jak2/subtitle/subtitle_lines_ko-KR.json" + :meta "game/assets/jak2/subtitle/subtitle_meta_ko-KR.json" + :lines-base "game/assets/jak2/subtitle/subtitle_lines_en-US.json" + :meta-base "game/assets/jak2/subtitle/subtitle_meta_en-US.json") + (file-json + :language-id 7 + :text-version "jak2" + :lines "game/assets/jak2/subtitle/subtitle_lines_en-GB.json" + :meta "game/assets/jak2/subtitle/subtitle_meta_en-GB.json" + :lines-base "game/assets/jak2/subtitle/subtitle_lines_en-US.json" + :meta-base "game/assets/jak2/subtitle/subtitle_meta_en-US.json")) diff --git a/game/assets/jak3/game_text.gp b/game/assets/jak3/game_text.gp new file mode 100644 index 000000000..0e7b41c28 --- /dev/null +++ b/game/assets/jak3/game_text.gp @@ -0,0 +1,18 @@ +;; "project file" for text make tool. +;; it's very simple... a list of (action args...) +;; There are two actions: +;; - file-json (A path to a json file) +;; - args: (language_id text_version group_name '(filename list)) +;; - file (A path to a GOAL data file) +;; - the same arguments are provided within the file itself + +(text + ;; NOTE : we compile using the fixed v2 encoding because it's what we use. + (file "$DECOMP/assets/game_text.txt") ;; this is the decompiler-generated file! + ;; add custom files down here + (file-json 0 jak2 "common" '("game/assets/jak3/text/game_custom_text_en-US.json")) + (file-json 5 jak2 "common" '("game/assets/jak3/text/game_custom_text_ja-JP.json")) + (file-json 7 jak2 "common" '("game/assets/jak3/text/game_custom_text_en-GB.json")) + ) + + diff --git a/game/assets/jak3/subtitle/subtitle_lines_de-DE.json b/game/assets/jak3/subtitle/subtitle_lines_de-DE.json new file mode 100644 index 000000000..7942f008b --- /dev/null +++ b/game/assets/jak3/subtitle/subtitle_lines_de-DE.json @@ -0,0 +1,5 @@ +{ + "cutscenes": {}, + "other": {}, + "speakers": {} +} diff --git a/game/assets/jak3/subtitle/subtitle_lines_en-GB.json b/game/assets/jak3/subtitle/subtitle_lines_en-GB.json new file mode 100644 index 000000000..7942f008b --- /dev/null +++ b/game/assets/jak3/subtitle/subtitle_lines_en-GB.json @@ -0,0 +1,5 @@ +{ + "cutscenes": {}, + "other": {}, + "speakers": {} +} diff --git a/game/assets/jak3/subtitle/subtitle_lines_en-US.json b/game/assets/jak3/subtitle/subtitle_lines_en-US.json new file mode 100644 index 000000000..7942f008b --- /dev/null +++ b/game/assets/jak3/subtitle/subtitle_lines_en-US.json @@ -0,0 +1,5 @@ +{ + "cutscenes": {}, + "other": {}, + "speakers": {} +} diff --git a/game/assets/jak3/subtitle/subtitle_lines_es-ES.json b/game/assets/jak3/subtitle/subtitle_lines_es-ES.json new file mode 100644 index 000000000..7942f008b --- /dev/null +++ b/game/assets/jak3/subtitle/subtitle_lines_es-ES.json @@ -0,0 +1,5 @@ +{ + "cutscenes": {}, + "other": {}, + "speakers": {} +} diff --git a/game/assets/jak3/subtitle/subtitle_lines_fr-FR.json b/game/assets/jak3/subtitle/subtitle_lines_fr-FR.json new file mode 100644 index 000000000..7942f008b --- /dev/null +++ b/game/assets/jak3/subtitle/subtitle_lines_fr-FR.json @@ -0,0 +1,5 @@ +{ + "cutscenes": {}, + "other": {}, + "speakers": {} +} diff --git a/game/assets/jak3/subtitle/subtitle_lines_it-IT.json b/game/assets/jak3/subtitle/subtitle_lines_it-IT.json new file mode 100644 index 000000000..7942f008b --- /dev/null +++ b/game/assets/jak3/subtitle/subtitle_lines_it-IT.json @@ -0,0 +1,5 @@ +{ + "cutscenes": {}, + "other": {}, + "speakers": {} +} diff --git a/game/assets/jak3/subtitle/subtitle_lines_jp-JP.json b/game/assets/jak3/subtitle/subtitle_lines_jp-JP.json new file mode 100644 index 000000000..7942f008b --- /dev/null +++ b/game/assets/jak3/subtitle/subtitle_lines_jp-JP.json @@ -0,0 +1,5 @@ +{ + "cutscenes": {}, + "other": {}, + "speakers": {} +} diff --git a/game/assets/jak3/subtitle/subtitle_lines_ko-KR.json b/game/assets/jak3/subtitle/subtitle_lines_ko-KR.json new file mode 100644 index 000000000..7942f008b --- /dev/null +++ b/game/assets/jak3/subtitle/subtitle_lines_ko-KR.json @@ -0,0 +1,5 @@ +{ + "cutscenes": {}, + "other": {}, + "speakers": {} +} diff --git a/game/assets/jak3/subtitle/subtitle_meta_de-DE.json b/game/assets/jak3/subtitle/subtitle_meta_de-DE.json new file mode 100644 index 000000000..495996ba8 --- /dev/null +++ b/game/assets/jak3/subtitle/subtitle_meta_de-DE.json @@ -0,0 +1,4 @@ +{ + "cutscenes": {}, + "other": {} +} diff --git a/game/assets/jak3/subtitle/subtitle_meta_en-GB.json b/game/assets/jak3/subtitle/subtitle_meta_en-GB.json new file mode 100644 index 000000000..495996ba8 --- /dev/null +++ b/game/assets/jak3/subtitle/subtitle_meta_en-GB.json @@ -0,0 +1,4 @@ +{ + "cutscenes": {}, + "other": {} +} diff --git a/game/assets/jak3/subtitle/subtitle_meta_en-US.json b/game/assets/jak3/subtitle/subtitle_meta_en-US.json new file mode 100644 index 000000000..495996ba8 --- /dev/null +++ b/game/assets/jak3/subtitle/subtitle_meta_en-US.json @@ -0,0 +1,4 @@ +{ + "cutscenes": {}, + "other": {} +} diff --git a/game/assets/jak3/subtitle/subtitle_meta_es-ES.json b/game/assets/jak3/subtitle/subtitle_meta_es-ES.json new file mode 100644 index 000000000..495996ba8 --- /dev/null +++ b/game/assets/jak3/subtitle/subtitle_meta_es-ES.json @@ -0,0 +1,4 @@ +{ + "cutscenes": {}, + "other": {} +} diff --git a/game/assets/jak3/subtitle/subtitle_meta_fr-FR.json b/game/assets/jak3/subtitle/subtitle_meta_fr-FR.json new file mode 100644 index 000000000..495996ba8 --- /dev/null +++ b/game/assets/jak3/subtitle/subtitle_meta_fr-FR.json @@ -0,0 +1,4 @@ +{ + "cutscenes": {}, + "other": {} +} diff --git a/game/assets/jak3/subtitle/subtitle_meta_it-IT.json b/game/assets/jak3/subtitle/subtitle_meta_it-IT.json new file mode 100644 index 000000000..495996ba8 --- /dev/null +++ b/game/assets/jak3/subtitle/subtitle_meta_it-IT.json @@ -0,0 +1,4 @@ +{ + "cutscenes": {}, + "other": {} +} diff --git a/game/assets/jak3/subtitle/subtitle_meta_jp-JP.json b/game/assets/jak3/subtitle/subtitle_meta_jp-JP.json new file mode 100644 index 000000000..495996ba8 --- /dev/null +++ b/game/assets/jak3/subtitle/subtitle_meta_jp-JP.json @@ -0,0 +1,4 @@ +{ + "cutscenes": {}, + "other": {} +} diff --git a/game/assets/jak3/subtitle/subtitle_meta_ko-KR.json b/game/assets/jak3/subtitle/subtitle_meta_ko-KR.json new file mode 100644 index 000000000..495996ba8 --- /dev/null +++ b/game/assets/jak3/subtitle/subtitle_meta_ko-KR.json @@ -0,0 +1,4 @@ +{ + "cutscenes": {}, + "other": {} +} diff --git a/game/assets/jak3/text/game_custom_text_en-GB.json b/game/assets/jak3/text/game_custom_text_en-GB.json new file mode 100644 index 000000000..2c63c0851 --- /dev/null +++ b/game/assets/jak3/text/game_custom_text_en-GB.json @@ -0,0 +1,2 @@ +{ +} diff --git a/game/assets/jak3/text/game_custom_text_en-US.json b/game/assets/jak3/text/game_custom_text_en-US.json new file mode 100644 index 000000000..2c63c0851 --- /dev/null +++ b/game/assets/jak3/text/game_custom_text_en-US.json @@ -0,0 +1,2 @@ +{ +} diff --git a/game/assets/jak3/text/game_custom_text_ja-JP.json b/game/assets/jak3/text/game_custom_text_ja-JP.json new file mode 100644 index 000000000..be021bc4b --- /dev/null +++ b/game/assets/jak3/text/game_custom_text_ja-JP.json @@ -0,0 +1,14 @@ +{ + "1a3": "しゅうへん機器をぬいたり, さしたり, 電源を 切ったりは しないでください", + "1b5": "このアイコンが あらわれている間、しゅうへん機器をぬいたり, さしたり, 電源を 切ったりは しないでください", + "1215": "デフォルト", + "1216": "モーフィング・ガン", + "1217": "ジェットボード", + "1218": "タイタンスーツ", + "1219": "ダークジャック", + "121a": "乗り物", + "124d": "オートセーブを無効にする", + "124e": "オートセーブ オフ", + "124f": "オートセーブを切っても よろしいでしょうか?", + "1288": "パーティクル カリング" +} diff --git a/goal_src/goal-lib.gc b/goal_src/goal-lib.gc index e2fef56b5..3afa850af 100644 --- a/goal_src/goal-lib.gc +++ b/goal_src/goal-lib.gc @@ -1193,4 +1193,8 @@ (asm-file "goal_src/jak2/compiler-setup.gc") (seval (fmt #t "Jak 2 Mode\n")) ) + ((eq? GAME_VERSION 'jak3) + (asm-file "goal_src/jak3/compiler-setup.gc") + (seval (fmt #t "Jak 3 Mode\n")) + ) ) diff --git a/goal_src/jak3/compiler-setup.gc b/goal_src/jak3/compiler-setup.gc new file mode 100644 index 000000000..20ea2b105 --- /dev/null +++ b/goal_src/jak3/compiler-setup.gc @@ -0,0 +1,37 @@ +;; +;; Compiler Setup for Jak 3 +;; + +;; load kernel type definitions. +;; these types/functions are provided by Jak 3's runtime. +(asm-file "goal_src/jak3/kernel-defs.gc") + +;; load jak 3 project +(load-project "goal_src/jak3/game.gp") + +(defmacro basic? (obj) + ;; todo, make this more efficient + `(= 4 (logand (the integer ,obj) #b111)) + ) + +(defmacro pair? (obj) + ;; todo, make this more efficient + ;`(= 2 (logand (the integer ,obj) #b111)) + `(< (shl (the-as int ,obj) 62) 0) + ) + +(defmacro not-pair? (obj) + `(>= (shl (the-as int ,obj) 62) 0) + ) + +(defmacro binteger? (obj) + `(zero? (logand (the integer ,obj) #b111)) + ) + +(defmacro rtype-of (obj) + `(cond ((binteger? ,obj) binteger) + ((pair? ,obj) pair) + ((basic? ,obj) (-> (the basic ,obj) type)) + (else symbol) + ) + ) \ No newline at end of file diff --git a/goal_src/jak3/dgos/arenacst.gd b/goal_src/jak3/dgos/arenacst.gd new file mode 100644 index 000000000..378a7a260 --- /dev/null +++ b/goal_src/jak3/dgos/arenacst.gd @@ -0,0 +1,18 @@ +("ARENACST.DGO" + ("tpage-1484.o" + "tpage-1245.go" + "tpage-1248.go" + "tpage-1246.go" + "daxter-highres-ag.go" + "pecker-highres-ag.go" + "jakc-highres-ag.go" + "sig-highres-ag.go" + "king-highres-ag.go" + "seem-highres-ag.go" + "jak-highres-ag.go" + "battle-amulet-ag.go" + "blue-gun-mod-one-ag.go" + "wstd-gate-pass-ag.go" + "yellow-barrel-ag.go" + "arenacst.o" + )) diff --git a/goal_src/jak3/dgos/cfa.gd b/goal_src/jak3/dgos/cfa.gd new file mode 100644 index 000000000..0e8b94aaa --- /dev/null +++ b/goal_src/jak3/dgos/cfa.gd @@ -0,0 +1,21 @@ +("CFA.DGO" + ("ctyfarm-obs.o" + "ctyfarma-part.o" + "ctyfarmb-part.o" + "tpage-246.go" + "tpage-244.go" + "tpage-245.go" + "tpage-243.go" + "tpage-247.go" + "tpage-241.go" + "tpage-238.go" + "com-airlock-outer-ag.go" + "com-airlock-inner-ag.go" + "farm-chilirots-ag.go" + "farm-cabbage-ag.go" + "farm-marrow-ag.go" + "farm-beetree-ag.go" + "farm-small-cabbage-ag.go" + "farm-sprinkler-barrels-ag.go" + "ctyfarma-vis.o" + )) diff --git a/goal_src/jak3/dgos/cfb.gd b/goal_src/jak3/dgos/cfb.gd new file mode 100644 index 000000000..6e78b96cc --- /dev/null +++ b/goal_src/jak3/dgos/cfb.gd @@ -0,0 +1,20 @@ +("CFB.DGO" + ("ctyfarm-obs.o" + "ctyfarma-part.o" + "ctyfarmb-part.o" + "tpage-258.go" + "tpage-256.go" + "tpage-257.go" + "tpage-255.go" + "tpage-259.go" + "tpage-253.go" + "tpage-250.go" + "yakow-ag.go" + "farm-chilirots-ag.go" + "farm-cabbage-ag.go" + "farm-marrow-ag.go" + "farm-beetree-ag.go" + "farm-small-cabbage-ag.go" + "farm-sprinkler-barrels-ag.go" + "ctyfarmb-vis.o" + )) diff --git a/goal_src/jak3/dgos/cgb.gd b/goal_src/jak3/dgos/cgb.gd new file mode 100644 index 000000000..f7e305663 --- /dev/null +++ b/goal_src/jak3/dgos/cgb.gd @@ -0,0 +1,14 @@ +("CGB.DGO" + ("ctygenb-part.o" + "tpage-226.go" + "tpage-224.go" + "tpage-225.go" + "tpage-227.go" + "tpage-222.go" + "tpage-219.go" + "jakc-highres-ag.go" + "city-flitter-ag.go" + "com-airlock-outer-ag.go" + "battle-amulet-ag.go" + "ctygenb-vis.o" + )) diff --git a/goal_src/jak3/dgos/cia.gd b/goal_src/jak3/dgos/cia.gd new file mode 100644 index 000000000..f3609aeed --- /dev/null +++ b/goal_src/jak3/dgos/cia.gd @@ -0,0 +1,15 @@ +("CIA.DGO" + ("elec-gate.o" + "ctyinda-part.o" + "ctyinda-obs.o" + "tpage-180.go" + "tpage-1401.go" + "tpage-179.go" + "tpage-177.go" + "tpage-175.go" + "krimson-wall-ag.go" + "com-airlock-outer-ag.go" + "ctyinda-evil-streetlamp-ag.go" + "vin-door-ctyinda-ag.go" + "ctyinda-vis.o" + )) diff --git a/goal_src/jak3/dgos/cib.gd b/goal_src/jak3/dgos/cib.gd new file mode 100644 index 000000000..164e9f7cb --- /dev/null +++ b/goal_src/jak3/dgos/cib.gd @@ -0,0 +1,11 @@ +("CIB.DGO" + ("ctyindb-part.o" + "ctyindb-obs.o" + "tpage-188.go" + "tpage-186.go" + "tpage-187.go" + "tpage-184.go" + "tpage-181.go" + "krimson-wall-ag.go" + "ctyindb-vis.o" + )) diff --git a/goal_src/jak3/dgos/citycast.gd b/goal_src/jak3/dgos/citycast.gd new file mode 100644 index 000000000..4f74df168 --- /dev/null +++ b/goal_src/jak3/dgos/citycast.gd @@ -0,0 +1,10 @@ +("CITYCAST.DGO" + ("tpage-2094.o" + "tpage-2095.go" + "daxter-highres-ag.go" + "jakc-highres-ag.go" + "torn-highres-ag.go" + "palmpilot-b-ag.go" + "particleman-ag.go" + "citycast.o" + )) diff --git a/goal_src/jak3/dgos/comba.gd b/goal_src/jak3/dgos/comba.gd new file mode 100644 index 000000000..782a11a9f --- /dev/null +++ b/goal_src/jak3/dgos/comba.gd @@ -0,0 +1,50 @@ +("COMBA.DGO" + ("squad-control-h.o" + "squad-control.o" + "vehicle-h.o" + "vehicle-part.o" + "vehicle-effects.o" + "vehicle.o" + "vehicle-util.o" + "vehicle-physics.o" + "vehicle-states.o" + "vehicle-manager.o" + "vehicle-hud.o" + "turret-control.o" + "target-pilot.o" + "pilot-states.o" + "comb-mood.o" + "comb-part.o" + "comb-obs.o" + "comb-sentry.o" + "comb-field.o" + "comb-scenes.o" + "h-sled.o" + "comb-travel.o" + "comba-init.o" + "jak-pilot+0-ag.go" + "jak-pilot-hcar+0-ag.go" + "jak-pilot-wcar+0-ag.go" + "jak-pilot-gun+0-ag.go" + "tpage-2431.go" + "tpage-1577.go" + "tpage-2889.go" + "tpage-2481.go" + "tpage-2496.go" + "tpage-2676.go" + "daxter-highres-ag.go" + "pecker-highres-ag.go" + "jakc-highres-ag.go" + "comb-pillar-ag.go" + "pre-sled-ag.go" + "comb-obstacle-ag.go" + "comb-sentinel-ag.go" + "comb-rail-rider-ag.go" + "comb-energy-ring-ag.go" + "precursor-ag.go" + "vehicle-explosion-ag.go" + "kidmedallion-ag.go" + "particleman-ag.go" + "security-wall-ag.go" + "comba.o" + )) diff --git a/goal_src/jak3/dgos/combb.gd b/goal_src/jak3/dgos/combb.gd new file mode 100644 index 000000000..0d6b9f781 --- /dev/null +++ b/goal_src/jak3/dgos/combb.gd @@ -0,0 +1,4 @@ +("COMBB.DGO" + ("tpage-2189.o" + "combb.o" + )) diff --git a/goal_src/jak3/dgos/combc.gd b/goal_src/jak3/dgos/combc.gd new file mode 100644 index 000000000..e953bda6a --- /dev/null +++ b/goal_src/jak3/dgos/combc.gd @@ -0,0 +1,4 @@ +("COMBC.DGO" + ("tpage-2191.o" + "combc.o" + )) diff --git a/goal_src/jak3/dgos/combd.gd b/goal_src/jak3/dgos/combd.gd new file mode 100644 index 000000000..3d9ad1965 --- /dev/null +++ b/goal_src/jak3/dgos/combd.gd @@ -0,0 +1,4 @@ +("COMBD.DGO" + ("tpage-2199.o" + "combd.o" + )) diff --git a/goal_src/jak3/dgos/combe.gd b/goal_src/jak3/dgos/combe.gd new file mode 100644 index 000000000..9ad20b7a7 --- /dev/null +++ b/goal_src/jak3/dgos/combe.gd @@ -0,0 +1,4 @@ +("COMBE.DGO" + ("tpage-2599.o" + "combe.o" + )) diff --git a/goal_src/jak3/dgos/combn.gd b/goal_src/jak3/dgos/combn.gd new file mode 100644 index 000000000..df1468011 --- /dev/null +++ b/goal_src/jak3/dgos/combn.gd @@ -0,0 +1,7 @@ +("COMBN.DGO" + ("tpage-2210.o" + "tpage-2595.go" + "tpage-2211.go" + "min-elevator-ag.go" + "combn.o" + )) diff --git a/goal_src/jak3/dgos/combx.gd b/goal_src/jak3/dgos/combx.gd new file mode 100644 index 000000000..1f70ade93 --- /dev/null +++ b/goal_src/jak3/dgos/combx.gd @@ -0,0 +1,13 @@ +("COMBX.DGO" + ("pecker-ingame.o" + "combx-obs.o" + "combx-scenes.o" + "tpage-2333.go" + "tpage-2306.go" + "tpage-2334.go" + "daxter-highres-ag.go" + "pecker-ingame-ag.go" + "jakc-highres-ag.go" + "tpl-elevator-ag.go" + "combx.o" + )) diff --git a/goal_src/jak3/dgos/cpo.gd b/goal_src/jak3/dgos/cpo.gd new file mode 100644 index 000000000..347a21b27 --- /dev/null +++ b/goal_src/jak3/dgos/cpo.gd @@ -0,0 +1,16 @@ +("CPO.DGO" + ("ctyport-part.o" + "ctyport-scenes.o" + "tpage-274.go" + "tpage-272.go" + "tpage-273.go" + "tpage-268.go" + "tpage-265.go" + "com-airlock-outer-ag.go" + "broken-mdaxter-ag.go" + "barge-ag.go" + "mecha-daxter-ag.go" + "air-train-ag.go" + "hip-door-a-ag.go" + "ctyport-vis.o" + )) diff --git a/goal_src/jak3/dgos/cta.gd b/goal_src/jak3/dgos/cta.gd new file mode 100644 index 000000000..46b6727a5 --- /dev/null +++ b/goal_src/jak3/dgos/cta.gd @@ -0,0 +1,11 @@ +("CTA.DGO" + ("des-burning-bush.o" + "ctysluma-part.o" + "neon-baron-part.o" + "tpage-136.go" + "tpage-135.go" + "tpage-133.go" + "tpage-131.go" + "des-burning-bush-ag.go" + "ctysluma-vis.o" + )) diff --git a/goal_src/jak3/dgos/ctb.gd b/goal_src/jak3/dgos/ctb.gd new file mode 100644 index 000000000..b8c0026f2 --- /dev/null +++ b/goal_src/jak3/dgos/ctb.gd @@ -0,0 +1,10 @@ +("CTB.DGO" + ("ctyslumb-part.o" + "tpage-166.go" + "tpage-165.go" + "tpage-1743.go" + "tpage-162.go" + "tpage-159.go" + "cty-door-ag.go" + "ctyslumb-vis.o" + )) diff --git a/goal_src/jak3/dgos/ctc.gd b/goal_src/jak3/dgos/ctc.gd new file mode 100644 index 000000000..90abcd95f --- /dev/null +++ b/goal_src/jak3/dgos/ctc.gd @@ -0,0 +1,13 @@ +("CTC.DGO" + ("ctyslumc-part.o" + "ctyslumc-obs.o" + "tpage-174.go" + "tpage-173.go" + "tpage-1505.go" + "tpage-170.go" + "tpage-167.go" + "cty-door-ag.go" + "cty-elevator-ag.go" + "ctyslumc-flag-ag.go" + "ctyslumc-vis.o" + )) diff --git a/goal_src/jak3/dgos/ctycara.gd b/goal_src/jak3/dgos/ctycara.gd new file mode 100644 index 000000000..7772a39e3 --- /dev/null +++ b/goal_src/jak3/dgos/ctycara.gd @@ -0,0 +1,7 @@ +("CTYCARA.DGO" + ("tpage-948.o" + "carc-ag.go" + "cara-ag.go" + "carb-ag.go" + "ctycara.o" + )) diff --git a/goal_src/jak3/dgos/ctycarb.gd b/goal_src/jak3/dgos/ctycarb.gd new file mode 100644 index 000000000..fc0632bc7 --- /dev/null +++ b/goal_src/jak3/dgos/ctycarb.gd @@ -0,0 +1,7 @@ +("CTYCARB.DGO" + ("tpage-949.o" + "bikec-ag.go" + "bikeb-ag.go" + "bikea-ag.go" + "ctycarb.o" + )) diff --git a/goal_src/jak3/dgos/ctycarc.gd b/goal_src/jak3/dgos/ctycarc.gd new file mode 100644 index 000000000..b5756cd5b --- /dev/null +++ b/goal_src/jak3/dgos/ctycarc.gd @@ -0,0 +1,6 @@ +("CTYCARC.DGO" + ("tpage-950.o" + "tpage-951.go" + "hellcat-ag.go" + "ctycarc.o" + )) diff --git a/goal_src/jak3/dgos/ctycarkg.gd b/goal_src/jak3/dgos/ctycarkg.gd new file mode 100644 index 000000000..2517f7972 --- /dev/null +++ b/goal_src/jak3/dgos/ctycarkg.gd @@ -0,0 +1,3 @@ +("CTYCARKG.DGO" + ("ctycarkg.o" + )) diff --git a/goal_src/jak3/dgos/ctypepa.gd b/goal_src/jak3/dgos/ctypepa.gd new file mode 100644 index 000000000..f5225a978 --- /dev/null +++ b/goal_src/jak3/dgos/ctypepa.gd @@ -0,0 +1,7 @@ +("CTYPEPA.DGO" + ("tpage-956.o" + "citizen-fat-ag.go" + "citizen-norm-ag.go" + "citizen-chick-ag.go" + "ctypepa.o" + )) diff --git a/goal_src/jak3/dgos/ctypepb.gd b/goal_src/jak3/dgos/ctypepb.gd new file mode 100644 index 000000000..95f037e45 --- /dev/null +++ b/goal_src/jak3/dgos/ctypepb.gd @@ -0,0 +1,5 @@ +("CTYPEPB.DGO" + ("tpage-958.o" + "predator-ag.go" + "ctypepb.o" + )) diff --git a/goal_src/jak3/dgos/ctypepc.gd b/goal_src/jak3/dgos/ctypepc.gd new file mode 100644 index 000000000..cdf86f6ca --- /dev/null +++ b/goal_src/jak3/dgos/ctypepc.gd @@ -0,0 +1,3 @@ +("CTYPEPC.DGO" + ("ctypepc.o" + )) diff --git a/goal_src/jak3/dgos/ctypesa.gd b/goal_src/jak3/dgos/ctypesa.gd new file mode 100644 index 000000000..16c50131e --- /dev/null +++ b/goal_src/jak3/dgos/ctypesa.gd @@ -0,0 +1,8 @@ +("CTYPESA.DGO" + ("tpage-957.o" + "crimson-guard-ag.go" + "shield-sphere-explode-ag.go" + "shield-sphere-distort-ag.go" + "shield-sphere-ag.go" + "ctypesa.o" + )) diff --git a/goal_src/jak3/dgos/ctypesb.gd b/goal_src/jak3/dgos/ctypesb.gd new file mode 100644 index 000000000..71c1cf278 --- /dev/null +++ b/goal_src/jak3/dgos/ctypesb.gd @@ -0,0 +1,8 @@ +("CTYPESB.DGO" + ("metalhead-grunt.o" + "metalhead-predator.o" + "tpage-1758.go" + "city-grunt-ag.go" + "city-flitter-ag.go" + "ctypesb.o" + )) diff --git a/goal_src/jak3/dgos/ctypesc.gd b/goal_src/jak3/dgos/ctypesc.gd new file mode 100644 index 000000000..702a9d4e5 --- /dev/null +++ b/goal_src/jak3/dgos/ctypesc.gd @@ -0,0 +1,11 @@ +("CTYPESC.DGO" + ("roboguard-city.o" + "spydroid.o" + "flying-turret.o" + "tpage-1244.go" + "roboguard-city-ag.go" + "spydroid-ag.go" + "kg-flying-turret-ag.go" + "kg-debris-ag.go" + "ctypesc.o" + )) diff --git a/goal_src/jak3/dgos/cwi.gd b/goal_src/jak3/dgos/cwi.gd new file mode 100644 index 000000000..e62cb7d36 --- /dev/null +++ b/goal_src/jak3/dgos/cwi.gd @@ -0,0 +1,105 @@ +("CWI.DGO" + ("squad-control-h.o" + "squad-control.o" + "vehicle-h.o" + "vehicle-part.o" + "vehicle-effects.o" + "vehicle.o" + "vehicle-util.o" + "vehicle-physics.o" + "vehicle-states.o" + "vehicle-manager.o" + "vehicle-hud.o" + "turret-control.o" + "target-pilot.o" + "pilot-states.o" + "nav-graph-h.o" + "cty-borrow-manager-h.o" + "cty-faction-h.o" + "traffic-engine-h.o" + "height-map-h.o" + "vehicle-control.o" + "nav-graph.o" + "height-map.o" + "traffic-height-map.o" + "hvehicle-h.o" + "vehicle-rider.o" + "hvehicle.o" + "hvehicle-util.o" + "hvehicle-effects.o" + "hvehicle-physics.o" + "mission-squad-control-h.o" + "citizen-h.o" + "squad-control-city-h.o" + "squad-control-city.o" + "kg-squad-control-h.o" + "ff-squad-control-h.o" + "mh-squad-control-h.o" + "cty-faction.o" + "formations.o" + "formation-object.o" + "ctywide-obs-h.o" + "mission-squad-control.o" + "cty-attack-controller.o" + "flee-info.o" + "citizen.o" + "civilian.o" + "guard-h.o" + "traffic-util.o" + "traffic-engine.o" + "traffic-manager.o" + "cty-guard-projectile.o" + "trail-graph.o" + "bike.o" + "car.o" + "test-bike.o" + "citizen-enemy.o" + "kg-squad-member-h.o" + "mh-squad-member-h.o" + "guard.o" + "guard-grenade.o" + "guard-tazer.o" + "guard-rifle.o" + "guard-states.o" + "citizen-norm.o" + "citizen-fat.o" + "citizen-chick.o" + "kg-squad-member.o" + "mh-squad-member.o" + "metalhead-flitter.o" + "kg-squad-control.o" + "ff-squad-control.o" + "mh-squad-control.o" + "cty-borrow-manager.o" + "ctywide-init.o" + "ctywide-texture.o" + "ctywide-part.o" + "ctywide-obs.o" + "ctywide-tasks.o" + "ctywide-scenes.o" + "ctywide-speech.o" + "ctyport-obs.o" + "mhcity-part.o" + "mhcity-obs.o" + "mhcity-obs2.o" + "krimson-wall.o" + "trail.o" + "searchlight.o" + "jak-pilot+0-ag.go" + "jak-pilot-hcar+0-ag.go" + "jak-pilot-gun+0-ag.go" + "tpage-127.go" + "tpage-125.go" + "tpage-128.go" + "tpage-123.go" + "citizen-norm-rider-ag.go" + "fac-lorez-ag.go" + "vehicle-explosion-ag.go" + "newbike-ag.go" + "ctycrate-ag.go" + "eco-canister-ag.go" + "searchlight-ag.go" + "burning-bush-ag.go" + "security-wall-ag.go" + "ctywide-vis.o" + )) diff --git a/goal_src/jak3/dgos/desa.gd b/goal_src/jak3/dgos/desa.gd new file mode 100644 index 000000000..5f2730878 --- /dev/null +++ b/goal_src/jak3/dgos/desa.gd @@ -0,0 +1,7 @@ +("DESA.DGO" + ("tpage-1372.o" + "tpage-3309.go" + "tpage-1579.go" + "jakc-scarf-ag.go" + "deserta-vis.o" + )) diff --git a/goal_src/jak3/dgos/desb.gd b/goal_src/jak3/dgos/desb.gd new file mode 100644 index 000000000..3d1208a92 --- /dev/null +++ b/goal_src/jak3/dgos/desb.gd @@ -0,0 +1,8 @@ +("DESB.DGO" + ("tpage-1377.o" + "tpage-1378.go" + "tpage-1379.go" + "wascity-airlock-ag.go" + "air-train-ag.go" + "desertb-vis.o" + )) diff --git a/goal_src/jak3/dgos/desbattl.gd b/goal_src/jak3/dgos/desbattl.gd new file mode 100644 index 000000000..4124c194d --- /dev/null +++ b/goal_src/jak3/dgos/desbattl.gd @@ -0,0 +1,21 @@ +("DESBATTL.DGO" + ("target-turret-shot.o" + "target-turret.o" + "jak-turret+0-ag.go" + "desbeast-path-h.o" + "desbeast-path.o" + "des-beast.o" + "mh-flyer.o" + "des-beast-2.o" + "beast-battle-path.o" + "scorpion-gun.o" + "tpage-1853.go" + "tpage-2173.go" + "tpage-2406.go" + "des-beast-ag.go" + "mh-flyer-ag.go" + "scorpion-gun-ag.go" + "quantum-reflector-ag.go" + "mh-flyer-missile-ag.go" + "desbattl.o" + )) diff --git a/goal_src/jak3/dgos/desbcst.gd b/goal_src/jak3/dgos/desbcst.gd new file mode 100644 index 000000000..ce4fd8ee4 --- /dev/null +++ b/goal_src/jak3/dgos/desbcst.gd @@ -0,0 +1,15 @@ +("DESBCST.DGO" + ("tpage-2762.o" + "tpage-2764.go" + "tpage-2763.go" + "daxter-highres-ag.go" + "errol-ag.go" + "jakc-highres-ag.go" + "sig-highres-ag.go" + "ashelin-highres-ag.go" + "des-terraformer-break-ag.go" + "snake-wheel-fma-ag.go" + "particleman-ag.go" + "jakc-scarf-ag.go" + "desbcst.o" + )) diff --git a/goal_src/jak3/dgos/desboss1.gd b/goal_src/jak3/dgos/desboss1.gd new file mode 100644 index 000000000..293820cf9 --- /dev/null +++ b/goal_src/jak3/dgos/desboss1.gd @@ -0,0 +1,23 @@ +("DESBOSS1.DGO" + ("terraformer-drone.o" + "terraformer-part.o" + "terraformer-setup.o" + "tpage-1756.go" + "tpage-3172.go" + "tpage-3176.go" + "tpage-2643.go" + "daxter-highres-ag.go" + "jakc-highres-ag.go" + "terraformer-leg-c-ag.go" + "terraformer-head-ag.go" + "terraformer-ag.go" + "terraformer-leg-b-ag.go" + "terraformer-leg-a-ag.go" + "terraformer-spike-ag.go" + "terraformer-drone-ag.go" + "snake-wheel-fma-ag.go" + "terraformer-mine-ag.go" + "particleman-ag.go" + "terraformer-target-ag.go" + "desboss1.o" + )) diff --git a/goal_src/jak3/dgos/desboss2.gd b/goal_src/jak3/dgos/desboss2.gd new file mode 100644 index 000000000..ef4ddf0bf --- /dev/null +++ b/goal_src/jak3/dgos/desboss2.gd @@ -0,0 +1,17 @@ +("DESBOSS2.DGO" + ("terraformer-drone.o" + "terraformer-head.o" + "tpage-2953.go" + "tpage-3036.go" + "tpage-3175.go" + "daxter-highres-ag.go" + "errol-ag.go" + "jakc-highres-ag.go" + "errol-lowres-ag.go" + "terraformer-head-ag.go" + "snake-wheel-fma-ag.go" + "particleman-ag.go" + "terraformer-laser-end-ag.go" + "terraformer-laser-ag.go" + "desboss2.o" + )) diff --git a/goal_src/jak3/dgos/desc.gd b/goal_src/jak3/dgos/desc.gd new file mode 100644 index 000000000..b3a699332 --- /dev/null +++ b/goal_src/jak3/dgos/desc.gd @@ -0,0 +1,5 @@ +("DESC.DGO" + ("tpage-1371.o" + "tpage-1573.go" + "desertc-vis.o" + )) diff --git a/goal_src/jak3/dgos/deschase.gd b/goal_src/jak3/dgos/deschase.gd new file mode 100644 index 000000000..2dccbd966 --- /dev/null +++ b/goal_src/jak3/dgos/deschase.gd @@ -0,0 +1,21 @@ +("DESCHASE.DGO" + ("marauder.o" + "external-player-control.o" + "wcar-catapult.o" + "desert-jump.o" + "wcar-marauder-b.o" + "desert-chase-path-h.o" + "desert-chase-path.o" + "desert-chase.o" + "tpage-3203.go" + "tpage-2961.go" + "tpage-2962.go" + "tpage-3184.go" + "marauder-male-ag.go" + "catapult-ag.go" + "interceptor-ag.go" + "interceptor-b-ag.go" + "pre-artifact-a-ag.go" + "catapult-target-ag.go" + "deschase.o" + )) diff --git a/goal_src/jak3/dgos/desd.gd b/goal_src/jak3/dgos/desd.gd new file mode 100644 index 000000000..0f9a7ac01 --- /dev/null +++ b/goal_src/jak3/dgos/desd.gd @@ -0,0 +1,12 @@ +("DESD.DGO" + ("des-cactus.o" + "desertd-obs.o" + "desertd-texture.o" + "tpage-1382.go" + "tpage-1383.go" + "tpage-1381.go" + "tpage-3384.go" + "des-cactus-b-ag.go" + "des-cactus-a-ag.go" + "desertd-vis.o" + )) diff --git a/goal_src/jak3/dgos/dese.gd b/goal_src/jak3/dgos/dese.gd new file mode 100644 index 000000000..e3eb96346 --- /dev/null +++ b/goal_src/jak3/dgos/dese.gd @@ -0,0 +1,5 @@ +("DESE.DGO" + ("tpage-1380.o" + "tpage-1597.go" + "deserte-vis.o" + )) diff --git a/goal_src/jak3/dgos/deserrol.gd b/goal_src/jak3/dgos/deserrol.gd new file mode 100644 index 000000000..11e69b423 --- /dev/null +++ b/goal_src/jak3/dgos/deserrol.gd @@ -0,0 +1,6 @@ +("DESERROL.DGO" + ("tpage-3179.o" + "tpage-3180.go" + "errol-ag.go" + "deserrol.o" + )) diff --git a/goal_src/jak3/dgos/desf.gd b/goal_src/jak3/dgos/desf.gd new file mode 100644 index 000000000..a4b5876f3 --- /dev/null +++ b/goal_src/jak3/dgos/desf.gd @@ -0,0 +1,10 @@ +("DESF.DGO" + ("desertf-obs.o" + "tpage-1384.go" + "tpage-2844.go" + "tpage-2871.go" + "des-draw-bridge-ag.go" + "des-jump-bridge-ag.go" + "des-garage-door-ag.go" + "desertf-vis.o" + )) diff --git a/goal_src/jak3/dgos/desg.gd b/goal_src/jak3/dgos/desg.gd new file mode 100644 index 000000000..48a229d23 --- /dev/null +++ b/goal_src/jak3/dgos/desg.gd @@ -0,0 +1,12 @@ +("DESG.DGO" + ("elec-gate.o" + "desertg-obs.o" + "tpage-1373.go" + "tpage-1376.go" + "tpage-1374.go" + "tpage-3409.go" + "desert-eggwall-ag.go" + "des-cactus-obstacle-ag.go" + "particleman-ag.go" + "desertg-vis.o" + )) diff --git a/goal_src/jak3/dgos/desh.gd b/goal_src/jak3/dgos/desh.gd new file mode 100644 index 000000000..292228b10 --- /dev/null +++ b/goal_src/jak3/dgos/desh.gd @@ -0,0 +1,5 @@ +("DESH.DGO" + ("tpage-1385.o" + "tpage-1995.go" + "deserth-vis.o" + )) diff --git a/goal_src/jak3/dgos/deshover.gd b/goal_src/jak3/dgos/deshover.gd new file mode 100644 index 000000000..fbf7f50a5 --- /dev/null +++ b/goal_src/jak3/dgos/deshover.gd @@ -0,0 +1,23 @@ +("DESHOVER.DGO" + ("desbeast-path-h.o" + "desbeast-path.o" + "des-beast.o" + "desert-hover.o" + "deshover-texture.o" + "tpage-1920.go" + "tpage-1598.go" + "tpage-1935.go" + "tpage-1989.go" + "tpage-1998.go" + "tpage-2727.go" + "des-beast-ag.go" + "daxter-highres-ag.go" + "jakc-highres-ag.go" + "beast-rider-ag.go" + "errol-effect-ag.go" + "mh-communicator-ag.go" + "snake-wheel-fma-ag.go" + "eco-crystal-dark-ag.go" + "particleman-ag.go" + "deshover.o" + )) diff --git a/goal_src/jak3/dgos/deshunt.gd b/goal_src/jak3/dgos/deshunt.gd new file mode 100644 index 000000000..591921131 --- /dev/null +++ b/goal_src/jak3/dgos/deshunt.gd @@ -0,0 +1,6 @@ +("DESHUNT.DGO" + ("tpage-1809.o" + "tpage-1808.go" + "sig-highres-ag.go" + "deshunt.o" + )) diff --git a/goal_src/jak3/dgos/desinter.gd b/goal_src/jak3/dgos/desinter.gd new file mode 100644 index 000000000..876c7eb85 --- /dev/null +++ b/goal_src/jak3/dgos/desinter.gd @@ -0,0 +1,7 @@ +("DESINTER.DGO" + ("tpage-1712.o" + "tpage-1713.go" + "interceptor-ag.go" + "interceptor-b-ag.go" + "desinter.o" + )) diff --git a/goal_src/jak3/dgos/desjump.gd b/goal_src/jak3/dgos/desjump.gd new file mode 100644 index 000000000..4a5a1ef0c --- /dev/null +++ b/goal_src/jak3/dgos/desjump.gd @@ -0,0 +1,13 @@ +("DESJUMP.DGO" + ("wcar-catapult.o" + "desert-jump.o" + "tpage-3220.go" + "tpage-2768.go" + "tpage-2769.go" + "tpage-2766.go" + "catapult-ag.go" + "interceptor-ag.go" + "wascity-airlock-debris-ag.go" + "beam-generator-ag.go" + "desjump.o" + )) diff --git a/goal_src/jak3/dgos/desliz.gd b/goal_src/jak3/dgos/desliz.gd new file mode 100644 index 000000000..49cc5bebf --- /dev/null +++ b/goal_src/jak3/dgos/desliz.gd @@ -0,0 +1,18 @@ +("DESLIZ.DGO" + ("flut-part.o" + "flut.o" + "target-flut.o" + "jak-fldax+0-ag.go" + "desert-lizard-h.o" + "desert-lizard-task.o" + "desert-lizard.o" + "tpage-1624.go" + "tpage-1654.go" + "daxter-highres-ag.go" + "kleever-highres-ag.go" + "jakc-highres-ag.go" + "flut-saddle-ag.go" + "snake-wheel-fma-ag.go" + "particleman-ag.go" + "desliz.o" + )) diff --git a/goal_src/jak3/dgos/desoasis.gd b/goal_src/jak3/dgos/desoasis.gd new file mode 100644 index 000000000..3901c5886 --- /dev/null +++ b/goal_src/jak3/dgos/desoasis.gd @@ -0,0 +1,26 @@ +("DESOASIS.DGO" + ("ai-task-h.o" + "simple-focus.o" + "bot-h.o" + "bot.o" + "bot-states.o" + "ash-h.o" + "ash-task.o" + "ash-shot.o" + "ash.o" + "ash-states.o" + "marauder.o" + "oasis-defense.o" + "ash-oasis-course.o" + "tpage-1603.go" + "tpage-2114.go" + "tpage-1605.go" + "tpage-2408.go" + "ashelin-highres-ag.go" + "ashelin-ag.go" + "marauder-male-ag.go" + "hellcat-ag.go" + "interceptor-ag.go" + "interceptor-b-ag.go" + "desoasis.o" + )) diff --git a/goal_src/jak3/dgos/desrace1.gd b/goal_src/jak3/dgos/desrace1.gd new file mode 100644 index 000000000..b40d3e303 --- /dev/null +++ b/goal_src/jak3/dgos/desrace1.gd @@ -0,0 +1,15 @@ +("DESRACE1.DGO" + ("artifact-race.o" + "tpage-1418.go" + "tpage-1300.go" + "tpage-1399.go" + "interceptor-ag.go" + "interceptor-b-ag.go" + "gauntlets-ag.go" + "pre-artifact-a-ag.go" + "pre-artifact-d-ag.go" + "pre-artifact-b-ag.go" + "pre-artifact-c-ag.go" + "was-artifact-ag.go" + "desrace1.o" + )) diff --git a/goal_src/jak3/dgos/desrace2.gd b/goal_src/jak3/dgos/desrace2.gd new file mode 100644 index 000000000..d9e35c594 --- /dev/null +++ b/goal_src/jak3/dgos/desrace2.gd @@ -0,0 +1,8 @@ +("DESRACE2.DGO" + ("artifact-race.o" + "tpage-1408.go" + "tpage-1409.go" + "interceptor-ag.go" + "interceptor-b-ag.go" + "desrace2.o" + )) diff --git a/goal_src/jak3/dgos/desrally.gd b/goal_src/jak3/dgos/desrally.gd new file mode 100644 index 000000000..035a816e8 --- /dev/null +++ b/goal_src/jak3/dgos/desrally.gd @@ -0,0 +1,20 @@ +("DESRALLY.DGO" + ("race-h.o" + "race-mesh.o" + "race-control.o" + "race-info.o" + "race-manager.o" + "race-hud.o" + "pilot-recorder.o" + "turtle-training.o" + "kleever-rider.o" + "course-race.o" + "tpage-2892.go" + "tpage-2893.go" + "tpage-2976.go" + "wland-driver-ag.go" + "interceptor-ag.go" + "interceptor-b-ag.go" + "des-rally-bollard-ag.go" + "desrally.o" + )) diff --git a/goal_src/jak3/dgos/desresc.gd b/goal_src/jak3/dgos/desresc.gd new file mode 100644 index 000000000..ea9212ff3 --- /dev/null +++ b/goal_src/jak3/dgos/desresc.gd @@ -0,0 +1,51 @@ +("DESRESC.DGO" + ("nav-graph-h.o" + "cty-borrow-manager-h.o" + "cty-faction-h.o" + "traffic-engine-h.o" + "height-map-h.o" + "vehicle-control.o" + "nav-graph.o" + "mission-squad-control-h.o" + "citizen-h.o" + "squad-control-city-h.o" + "squad-control-city.o" + "kg-squad-control-h.o" + "ff-squad-control-h.o" + "mh-squad-control-h.o" + "cty-faction.o" + "formations.o" + "formation-object.o" + "ctywide-obs-h.o" + "mission-squad-control.o" + "cty-attack-controller.o" + "flee-info.o" + "citizen.o" + "civilian.o" + "guard-h.o" + "traffic-util.o" + "traffic-engine.o" + "traffic-manager.o" + "desresc-path.o" + "desresc-texture.o" + "desert-rescue.o" + "desert-rescue-bbush.o" + "wland-passenger.o" + "rope-system-h.o" + "rope-system.o" + "rope-prim-system-h.o" + "rope-prim-system.o" + "neo-satellite.o" + "tpage-1599.go" + "tpage-1625.go" + "tpage-1731.go" + "wlander-male-ag.go" + "wland-passenger-ag.go" + "neo-satellite-ag.go" + "neo-satellite-c-ag.go" + "neo-satellite-a-ag.go" + "neo-satellite-b-ag.go" + "eco-crystal-dark-ag.go" + "neo-satellite-shield-ag.go" + "desresc.o" + )) diff --git a/goal_src/jak3/dgos/desrescc.gd b/goal_src/jak3/dgos/desrescc.gd new file mode 100644 index 000000000..2e0ca43e7 --- /dev/null +++ b/goal_src/jak3/dgos/desrescc.gd @@ -0,0 +1,6 @@ +("DESRESCC.DGO" + ("tpage-1717.o" + "daxter-highres-ag.go" + "jakc-highres-ag.go" + "desrescc.o" + )) diff --git a/goal_src/jak3/dgos/desrescg.gd b/goal_src/jak3/dgos/desrescg.gd new file mode 100644 index 000000000..25ee51e4e --- /dev/null +++ b/goal_src/jak3/dgos/desrescg.gd @@ -0,0 +1,8 @@ +("DESRESCG.DGO" + ("tpage-1715.o" + "tpage-1716.go" + "interceptor-ag.go" + "desert-transport-ag.go" + "interceptor-b-ag.go" + "desrescg.o" + )) diff --git a/goal_src/jak3/dgos/destrack.gd b/goal_src/jak3/dgos/destrack.gd new file mode 100644 index 000000000..638c9a2ef --- /dev/null +++ b/goal_src/jak3/dgos/destrack.gd @@ -0,0 +1,26 @@ +("DESTRACK.DGO" + ("race-h.o" + "race-mesh.o" + "race-control.o" + "race-info.o" + "race-manager.o" + "race-hud.o" + "pilot-recorder.o" + "turtle-training.o" + "kleever-rider.o" + "course-race.o" + "tpage-1795.go" + "tpage-1796.go" + "tpage-2363.go" + "tpage-1666.go" + "daxter-highres-ag.go" + "jakc-highres-ag.go" + "wland-driver-ag.go" + "interceptor-ag.go" + "kleever-rider-ag.go" + "interceptor-b-ag.go" + "des-train-barrier-ag.go" + "des-train-stones-ag.go" + "des-train-bollard-ag.go" + "destrack.o" + )) diff --git a/goal_src/jak3/dgos/desw.gd b/goal_src/jak3/dgos/desw.gd new file mode 100644 index 000000000..5aa6760fe --- /dev/null +++ b/goal_src/jak3/dgos/desw.gd @@ -0,0 +1,20 @@ +("DESW.DGO" + ("terraformer-drone.o" + "prebot-eco-creature.o" + "deswalk-part.o" + "deswalk-obs.o" + "tpage-2855.go" + "tpage-2856.go" + "tpage-3134.go" + "tpage-3385.go" + "cav-eco-lg-ag.go" + "dm-tentacle-ag.go" + "dm-urchin-ag.go" + "desw-eco-tank-ag.go" + "terraformer-drone-ag.go" + "dark-eco-vent-ag.go" + "light-eco-vent-ag.go" + "terraformer-mine-ag.go" + "desw-snake-stump-ag.go" + "deswalk-vis.o" + )) diff --git a/goal_src/jak3/dgos/dst.gd b/goal_src/jak3/dgos/dst.gd new file mode 100644 index 000000000..15e437055 --- /dev/null +++ b/goal_src/jak3/dgos/dst.gd @@ -0,0 +1,24 @@ +("DST.DGO" + ("desert-dust-storm.o" + "hfrag-vu1-h.o" + "hfrag-common.o" + "hfrag-vu1.o" + "hfrag.o" + "hfrag-work.o" + "hfrag-texture-anim.o" + "desert-mood.o" + "desert-ocean.o" + "desert-part.o" + "desert-scenes.o" + "tpage-736.go" + "tpage-2304.go" + "tpage-1702.go" + "tpage-1744.go" + "tpage-1653.go" + "tpage-1253.go" + "tpage-976.go" + "tentacle-ag.go" + "des-burning-bush-ag.go" + "wascity-burning-bush-ag.go" + "desert-vis.o" + )) diff --git a/goal_src/jak3/dgos/facb.gd b/goal_src/jak3/dgos/facb.gd new file mode 100644 index 000000000..d8cface7a --- /dev/null +++ b/goal_src/jak3/dgos/facb.gd @@ -0,0 +1,21 @@ +("FACB.DGO" + ("factorya-texture.o" + "factoryb-init.o" + "tpage-1864.go" + "tpage-1866.go" + "tpage-1865.go" + "tpage-1863.go" + "tpage-1319.go" + "daxter-highres-ag.go" + "jakc-highres-ag.go" + "fac-gun-tower-base-ag.go" + "fac-gun-tower-ag.go" + "fac-target-ag.go" + "fac-robotank-ag.go" + "fac-robotank-top-ag.go" + "kg-fighter-ag.go" + "fac-gun-tower-turret-ag.go" + "particleman-ag.go" + "hemisplosion-ag.go" + "factoryb-vis.o" + )) diff --git a/goal_src/jak3/dgos/facc.gd b/goal_src/jak3/dgos/facc.gd new file mode 100644 index 000000000..fa1ecb7b9 --- /dev/null +++ b/goal_src/jak3/dgos/facc.gd @@ -0,0 +1,40 @@ +("FACC.DGO" + ("roboguard.o" + "hover-formation-h.o" + "hover-nav-control-h.o" + "hover-enemy-h.o" + "hover-nav-control.o" + "hover-enemy.o" + "hover-formation.o" + "hover-nav-edit.o" + "robo-hover.o" + "factory-part.o" + "factoryc-mood.o" + "factoryc-texture.o" + "conveyor.o" + "hover-nav-factoryc.o" + "factoryc-obs.o" + "factoryc-obs2.o" + "target-indax.o" + "target-indax-hang.o" + "jak-indax+0-ag.go" + "tpage-2233.go" + "tpage-2305.go" + "tpage-2235.go" + "tpage-2234.go" + "tpage-2332.go" + "tpage-3278.go" + "fac-punch-wall-ag.go" + "spydroid-orig-ag.go" + "fac-robopod-ag.go" + "fac-break-fence-c-ag.go" + "fac-break-fence-b-ag.go" + "fac-break-fence-a-ag.go" + "fac-break-floor-ag.go" + "fac-rotfan-ag.go" + "fac-switch-ag.go" + "fac-move-plat-a-ag.go" + "fac-move-plat-b-ag.go" + "fac-fire-torch-ag.go" + "factoryc-vis.o" + )) diff --git a/goal_src/jak3/dgos/facd.gd b/goal_src/jak3/dgos/facd.gd new file mode 100644 index 000000000..eba14a9eb --- /dev/null +++ b/goal_src/jak3/dgos/facd.gd @@ -0,0 +1,48 @@ +("FACD.DGO" + ("roboguard.o" + "hover-formation-h.o" + "hover-nav-control-h.o" + "hover-enemy-h.o" + "hover-nav-control.o" + "hover-enemy.o" + "hover-formation.o" + "hover-nav-edit.o" + "dp-bipedal-part.o" + "dp-bipedal-shot.o" + "dp-bipedal.o" + "bombbot-h.o" + "bombbot-path.o" + "bombbot.o" + "neo-wasp-part.o" + "neo-wasp.o" + "robo-hover.o" + "factory-boss-part.o" + "factory-boss-setup.o" + "missile-bot.o" + "factory-boss-states.o" + "factory-boss-scenes.o" + "tpage-2881.go" + "tpage-2884.go" + "tpage-2883.go" + "tpage-2882.go" + "tpage-2885.go" + "tpage-2988.go" + "tpage-2736.go" + "kg-grunt-ag.go" + "errol-lowres-ag.go" + "roboguard-ag.go" + "dp-bipedal-ag.go" + "spydroid-orig-ag.go" + "robo-hover-ag.go" + "neo-wasp-b-ag.go" + "missile-bot-ag.go" + "eco-crystal-light-ag.go" + "fac-warp-effect-ag.go" + "shield-sphere-explode-ag.go" + "kg-debris-ag.go" + "neo-debris-ag.go" + "shield-sphere-distort-ag.go" + "fac-drop-plat-ag.go" + "shield-sphere-ag.go" + "factoryd-vis.o" + )) diff --git a/goal_src/jak3/dgos/factorya.gd b/goal_src/jak3/dgos/factorya.gd new file mode 100644 index 000000000..301f05f3b --- /dev/null +++ b/goal_src/jak3/dgos/factorya.gd @@ -0,0 +1,23 @@ +("FACTORYA.DGO" + ("kg-grunt.o" + "hover-nav-factoryd.o" + "fac-part.o" + "factory-mood.o" + "factory-scenes.o" + "factoryc-manager.o" + "factory-part.o" + "spydroid-orig.o" + "tpage-536.go" + "tpage-3011.go" + "tpage-535.go" + "tpage-3102.go" + "daxter-highres-ag.go" + "errol-ag.go" + "jakc-highres-ag.go" + "roboguard-ag.go" + "hellcat-ag.go" + "fac-fma-breaking-bits-ag.go" + "lfac-hanger-door-ag.go" + "particleman-ag.go" + "factorya.o" + )) diff --git a/goal_src/jak3/dgos/freecast.gd b/goal_src/jak3/dgos/freecast.gd new file mode 100644 index 000000000..8cbd91ea9 --- /dev/null +++ b/goal_src/jak3/dgos/freecast.gd @@ -0,0 +1,13 @@ +("FREECAST.DGO" + ("tpage-1967.o" + "tpage-1969.go" + "tpage-1968.go" + "pecker-highres-ag.go" + "keira-highres-ag.go" + "veger-highres-ag.go" + "samos-highres-ag.go" + "ashelin-highres-ag.go" + "onin-highres-ag.go" + "purple-two-ag.go" + "freecast.o" + )) diff --git a/goal_src/jak3/dgos/freehq.gd b/goal_src/jak3/dgos/freehq.gd new file mode 100644 index 000000000..227f906c7 --- /dev/null +++ b/goal_src/jak3/dgos/freehq.gd @@ -0,0 +1,15 @@ +("FREEHQ.DGO" + ("freehq-part.o" + "freehq-scenes.o" + "tpage-798.go" + "tpage-1167.go" + "tpage-1793.go" + "tpage-939.go" + "tpage-1464.go" + "tpage-1035.go" + "daxter-highres-ag.go" + "jakc-highres-ag.go" + "torn-highres-ag.go" + "freehq-sml-door-ag.go" + "freehq.o" + )) diff --git a/goal_src/jak3/dgos/frsta.gd b/goal_src/jak3/dgos/frsta.gd new file mode 100644 index 000000000..34a8a568a --- /dev/null +++ b/goal_src/jak3/dgos/frsta.gd @@ -0,0 +1,38 @@ +("FRSTA.DGO" + ("jump-pad.o" + "forest-obs-h.o" + "eco-green-collider.o" + "forest-part.o" + "forest-mood.o" + "foresta-obs.o" + "forest-bridges.o" + "mh-plant.o" + "forest-kill-plants.o" + "forest-texture.o" + "forest-ring-chase.o" + "forest-tasks.o" + "tpage-773.go" + "tpage-774.go" + "tpage-941.go" + "tpage-1010.go" + "tpage-775.go" + "tpage-3202.go" + "tpage-1357.go" + "tpage-1302.go" + "for-telescope-ag.go" + "dm-ship-ag.go" + "for-telescope-fma-ag.go" + "for-tower-fma-ag.go" + "com-airlock-outer-ag.go" + "time-map-ag.go" + "for-statue-ag.go" + "for-t-fma-ag.go" + "for-tower-ag.go" + "for-break-bridge-ag.go" + "screen-fma-ag.go" + "precur-planet-ag.go" + "warp-telescope-ag.go" + "for-pillar-ag.go" + "particleman-ag.go" + "foresta-vis.o" + )) diff --git a/goal_src/jak3/dgos/frstb.gd b/goal_src/jak3/dgos/frstb.gd new file mode 100644 index 000000000..97a8b21c9 --- /dev/null +++ b/goal_src/jak3/dgos/frstb.gd @@ -0,0 +1,10 @@ +("FRSTB.DGO" + ("tpage-819.o" + "tpage-820.go" + "tpage-1116.go" + "tpage-1117.go" + "tpage-821.go" + "crimson-guard-ag.go" + "transport-ag.go" + "forestb-vis.o" + )) diff --git a/goal_src/jak3/dgos/frstx.gd b/goal_src/jak3/dgos/frstx.gd new file mode 100644 index 000000000..49bb6f76b --- /dev/null +++ b/goal_src/jak3/dgos/frstx.gd @@ -0,0 +1,8 @@ +("FRSTX.DGO" + ("tpage-1838.o" + "tpage-1839.go" + "tpage-3316.go" + "tpage-3317.go" + "com-airlock-inner-ag.go" + "forestx-vis.o" + )) diff --git a/goal_src/jak3/dgos/game.gd b/goal_src/jak3/dgos/game.gd new file mode 100644 index 000000000..671927ebb --- /dev/null +++ b/goal_src/jak3/dgos/game.gd @@ -0,0 +1,465 @@ +("GAME.CGO" + ("types-h.o" + "vu1-macros.o" + "math.o" + "vector-h.o" + "gravity-h.o" + "bounding-box-h.o" + "matrix-h.o" + "quaternion-h.o" + "euler-h.o" + "transform-h.o" + "geometry-h.o" + "trigonometry-h.o" + "transformq-h.o" + "bounding-box.o" + "matrix.o" + "matrix-compose.o" + "transform.o" + "quaternion.o" + "euler.o" + "trigonometry.o" + "gsound-h.o" + "timer-h.o" + "vif-h.o" + "dma-h.o" + "video-h.o" + "vu1-user-h.o" + "profile-h.o" + "dma.o" + "dma-buffer.o" + "dma-bucket.o" + "dma-disasm.o" + "pad.o" + "gs.o" + "display-h.o" + "geometry.o" + "timer.o" + "vector.o" + "file-io.o" + "loader-h.o" + "texture-h.o" + "texture-anim-h.o" + "lights-h.o" + "mood-h.o" + "level-h.o" + "capture-h.o" + "math-camera-h.o" + "math-camera.o" + "font-h.o" + "decomp-h.o" + "time-of-day-h.o" + "profile.o" + "display.o" + "connect.o" + "text-h.o" + "camera-defs-h.o" + "trail-h.o" + "minimap-h.o" + "bigmap-h.o" + "settings-h.o" + "capture.o" + "memory-usage-h.o" + "blit-displays-h.o" + "sky-h.o" + "ocean-h.o" + "texture.o" + "main-h.o" + "mspace-h.o" + "drawable-h.o" + "drawable-group-h.o" + "drawable-inline-array-h.o" + "draw-node-h.o" + "drawable-tree-h.o" + "drawable-actor-h.o" + "region-h.o" + "traffic-h.o" + "game-task-h.o" + "task-control-h.o" + "generic-h.o" + "ocean-trans-tables.o" + "ocean-tables.o" + "ocean-frames.o" + "cloth-art-h.o" + "art-h.o" + "generic-vu1-h.o" + "merc-h.o" + "generic-merc-h.o" + "generic-tie-h.o" + "generic-work-h.o" + "shadow-cpu-h.o" + "shadow-vu1-h.o" + "prim-h.o" + "memcard-h.o" + "game-info-h.o" + "gui-h.o" + "ambient-h.o" + "speech-h.o" + "wind-h.o" + "prototype-h.o" + "joint-h.o" + "bones-h.o" + "foreground-h.o" + "engines.o" + "lightning-h.o" + "res-h.o" + "res.o" + "lights.o" + "dynamics-h.o" + "surface-h.o" + "pat-h.o" + "fact-h.o" + "aligner-h.o" + "penetrate-h.o" + "game-h.o" + "script-h.o" + "scene-h.o" + "sync-info-h.o" + "pov-camera-h.o" + "smush-control-h.o" + "debug-h.o" + "joint-mod-h.o" + "collide-func-h.o" + "collide-mesh-h.o" + "collide-shape-h.o" + "generic-obs-h.o" + "trajectory-h.o" + "collide-target-h.o" + "collide-touch-h.o" + "collide-edge-grab-h.o" + "process-drawable-h.o" + "process-focusable.o" + "process-taskable-h.o" + "focus.o" + "effect-control-h.o" + "collide-frag-h.o" + "collide-hash-h.o" + "water-info-h.o" + "chain-physics-h.o" + "ragdoll-h.o" + "projectile-h.o" + "find-nearest-h.o" + "target-h.o" + "stats-h.o" + "bsp-h.o" + "collide-cache-h.o" + "collide-h.o" + "shrubbery-h.o" + "tie-h.o" + "tfrag-h.o" + "hfrag-h.o" + "background-h.o" + "subdivide-h.o" + "entity-h.o" + "sprite-h.o" + "simple-sprite-h.o" + "eye-h.o" + "camera-h.o" + "cam-interface-h.o" + "sparticle-launcher-h.o" + "sparticle-h.o" + "actor-link-h.o" + "cam-debug-h.o" + "cam-update-h.o" + "hud-h.o" + "progress-h.o" + "rpc-h.o" + "path-h.o" + "nav-mesh-h.o" + "nav-control-h.o" + "spatial-hash-h.o" + "actor-hash-h.o" + "rigid-body-h.o" + "load-dgo.o" + "ramdisk.o" + "gsound.o" + "transformq.o" + "collide-func.o" + "joint.o" + "joint-mod.o" + "wind-work.o" + "wind.o" + "bsp.o" + "subdivide.o" + "sprite.o" + "sprite-distort.o" + "sprite-glow.o" + "debug-sphere.o" + "debug.o" + "history.o" + "merc-vu1.o" + "emerc-vu1.o" + "merc-blend-shape.o" + "merc.o" + "emerc.o" + "ripple.o" + "bones.o" + "debug-foreground.o" + "foreground.o" + "generic-vu0.o" + "generic-vu1.o" + "generic-effect.o" + "generic-merc.o" + "generic-tie.o" + "shadow-cpu.o" + "shadow-vu1.o" + "warp.o" + "texture-anim.o" + "texture-anim-funcs.o" + "texture-anim-tables.o" + "blit-displays.o" + "font-data.o" + "font.o" + "decomp.o" + "background.o" + "draw-node.o" + "shrubbery.o" + "shrub-work.o" + "tfrag-near.o" + "tfrag.o" + "tfrag-methods.o" + "tfrag-work.o" + "tie.o" + "etie-vu1.o" + "etie-near-vu1.o" + "tie-near.o" + "tie-work.o" + "tie-methods.o" + "prim.o" + "sync-info.o" + "trajectory.o" + "sparticle-launcher.o" + "sparticle.o" + "entity-table.o" + "loader.o" + "game-info.o" + "game-task.o" + "game-save.o" + "settings.o" + "mood-tables.o" + "mood-tables2.o" + "mood.o" + "mood-funcs.o" + "mood-funcs2.o" + "weather-part.o" + "time-of-day.o" + "sky-data.o" + "sky-tng.o" + "load-state.o" + "level-info.o" + "level.o" + "text.o" + "collide-hash.o" + "collide-probe.o" + "collide-frag.o" + "collide-mesh.o" + "collide-touch.o" + "collide-edge-grab.o" + "collide-shape.o" + "collide-shape-rider.o" + "collide.o" + "collide-planes.o" + "spatial-hash.o" + "actor-hash.o" + "merc-death.o" + "water-h.o" + "camera.o" + "cam-interface.o" + "cam-master.o" + "cam-states.o" + "cam-states-dbg.o" + "cam-combiner.o" + "cam-update.o" + "vol-h.o" + "cam-layout.o" + "cam-debug.o" + "cam-start.o" + "cloth-h.o" + "cloth.o" + "process-drawable.o" + "curves.o" + "ambient.o" + "speech.o" + "region.o" + "fma-sphere.o" + "prim-beam-h.o" + "script.o" + "generic-obs.o" + "lightning.o" + "light-trails-h.o" + "lightning-new-h.o" + "particle-curves.o" + "light-trails.o" + "lightning-new.o" + "carry-h.o" + "pilot-h.o" + "lightjak-h.o" + "gun-h.o" + "board-h.o" + "darkjak-h.o" + "indax-h.o" + "flut-h.o" + "target-util.o" + "target-part.o" + "gun-part.o" + "collide-reaction-target.o" + "logic-target.o" + "sidekick.o" + "voicebox.o" + "collectables-part.o" + "debug-part.o" + "find-nearest.o" + "task-arrow.o" + "projectile.o" + "ragdoll.o" + "ragdoll-edit.o" + "lightjak-wings.o" + "target-handler.o" + "target-anim.o" + "target.o" + "target2.o" + "target-swim.o" + "target-darkjak.o" + "target-lightjak.o" + "target-invisible.o" + "target-launch.o" + "target-death.o" + "target-gun.o" + "gun-util.o" + "gun-blue-shot.o" + "gun-yellow-shot.o" + "gun-red-shot.o" + "gun-dark-shot.o" + "gun-states.o" + "board-util.o" + "target-board.o" + "board-part.o" + "board-states.o" + "mech-h.o" + "menu.o" + "drawable.o" + "drawable-group.o" + "drawable-inline-array.o" + "drawable-tree.o" + "prototype.o" + "main-collide.o" + "video.o" + "main.o" + "collide-cache.o" + "collide-debug.o" + "relocate.o" + "memory-usage.o" + "entity.o" + "path.o" + "vol.o" + "nav-engine.o" + "nav-mesh.o" + "nav-control.o" + "aligner.o" + "effect-control.o" + "water-part.o" + "water.o" + "water-flow.o" + "gem-pool.o" + "collectables.o" + "vent.o" + "task-control.o" + "scene.o" + "pov-camera.o" + "powerups.o" + "crates.o" + "hud.o" + "hud-classes.o" + "secrets-menu.o" + "progress-static.o" + "progress.o" + "progress-draw.o" + "ocean.o" + "ocean-vu0.o" + "ocean-texture.o" + "ocean-mid.o" + "ocean-transition.o" + "ocean-near.o" + "minimap.o" + "bigmap.o" + "eye.o" + "glist-h.o" + "glist.o" + "anim-tester.o" + "viewer.o" + "part-tester.o" + "manipulator.o" + "editable-h.o" + "editable.o" + "editable-player.o" + "mysql-nav-graph.o" + "nav-graph-editor.o" + "nav-mesh-editor-h.o" + "nav-mesh-editor.o" + "bug-report.o" + "sampler.o" + "default-menu.o" + "visvol-edit.o" + "collision-editor.o" + "speech-manager.o" + "dir-tpages.go" + "tpage-1.go" + "tpage-2.go" + "tpage-3.go" + "texture-upload.o" + "tpage-4.go" + "tpage-6.go" + "tpage-7.go" + "tpage-5.go" + "tpage-8.go" + "tpage-9.go" + "tpage-10.go" + "tpage-11.go" + "tpage-12.go" + "texture-finish.o" + "collectables-ag.go" + "crate-ag.go" + "talk-box-ag.go" + "scenecamera-ag.go" + "hud-ring-ag.go" + "jakb-ag.go" + "daxter-ag.go" + "board-ag.go" + "gun-ag.go" + "jak-gun+0-ag.go" + "jak-board+0-ag.go" + "jak-dark+0-ag.go" + "jak-light+0-ag.go" + "jak-swim+0-ag.go" + "blocking-plane-ag.go" + "com-rod-of-god-ag.go" + "los-control-h.o" + "airlock.o" + "water-anim.o" + "blocking-plane.o" + "idle-control.o" + "proc-focusable-spawner.o" + "enemy-h.o" + "nav-enemy-h.o" + "enemy.o" + "enemy-states.o" + "nav-enemy.o" + "base-plat.o" + "plat.o" + "bouncer.o" + "elevator.o" + "rigid-body.o" + "rigid-body-queue.o" + "joint-exploder.o" + "simple-nav-sphere.o" + "process-taskable.o" + "scene-actor.o" + "warp-gate.o" + "guard-projectile.o" + "metalhead-projectile.o" + "los-control.o" + "enemy-part.o" + "ragdoll-test.o" + "debris.o" + "shield-sphere.o" + )) diff --git a/goal_src/jak3/dgos/gga.gd b/goal_src/jak3/dgos/gga.gd new file mode 100644 index 000000000..68de8e5f0 --- /dev/null +++ b/goal_src/jak3/dgos/gga.gd @@ -0,0 +1,24 @@ +("GGA.DGO" + ("gun-dummy-part.o" + "gun-dummy-art.o" + "gun-dummy.o" + "gungame-data.o" + "gungame-manager.o" + "gungame-texture.o" + "gungame-obs.o" + "gungame-part.o" + "gungame-scenes.o" + "tpage-1393.go" + "tpage-1391.go" + "tpage-1392.go" + "tpage-1557.go" + "tpage-1389.go" + "daxter-highres-ag.go" + "jakc-highres-ag.go" + "tess-highres-ag.go" + "gun-npc-ag.go" + "fort-entry-gate-ag.go" + "hip-door-a-ag.go" + "particleman-ag.go" + "gungame-vis.o" + )) diff --git a/goal_src/jak3/dgos/gridcst.gd b/goal_src/jak3/dgos/gridcst.gd new file mode 100644 index 000000000..8742b0434 --- /dev/null +++ b/goal_src/jak3/dgos/gridcst.gd @@ -0,0 +1,12 @@ +("GRIDCST.DGO" + ("tpage-2967.o" + "tpage-2968.go" + "daxter-highres-ag.go" + "jakc-highres-ag.go" + "jinx-highres-ag.go" + "krimson-wall-break-ag.go" + "cara-ag.go" + "blue-gun-mod-three-ag.go" + "particleman-ag.go" + "gridcst.o" + )) diff --git a/goal_src/jak3/dgos/gungame1.gd b/goal_src/jak3/dgos/gungame1.gd new file mode 100644 index 000000000..386f7399c --- /dev/null +++ b/goal_src/jak3/dgos/gungame1.gd @@ -0,0 +1,5 @@ +("GUNGAME1.DGO" + ("tpage-2274.o" + "yellow-barrel-ag.go" + "gungame1.o" + )) diff --git a/goal_src/jak3/dgos/gungame2.gd b/goal_src/jak3/dgos/gungame2.gd new file mode 100644 index 000000000..8982cfde2 --- /dev/null +++ b/goal_src/jak3/dgos/gungame2.gd @@ -0,0 +1,5 @@ +("GUNGAME2.DGO" + ("tpage-2275.o" + "red-gun-mod-three-ag.go" + "gungame2.o" + )) diff --git a/goal_src/jak3/dgos/halfpipe.gd b/goal_src/jak3/dgos/halfpipe.gd new file mode 100644 index 000000000..2b4cef874 --- /dev/null +++ b/goal_src/jak3/dgos/halfpipe.gd @@ -0,0 +1,22 @@ +("HALFPIPE.DGO" + ("target-ladder.o" + "ladder.o" + "jak-ladder+0-ag.go" + "jak-pole+0-ag.go" + "target-indax.o" + "target-indax-hang.o" + "jak-indax+0-ag.go" + "tpage-13.go" + "tpage-15.go" + "tpage-510.go" + "dark-eco-vent-ag.go" + "light-eco-vent-ag.go" + "dark-maker-idol-ag.go" + "ladder-ag.go" + "ctycrate-ag.go" + "precur-warp-effect-ag.go" + "urn-b-ag.go" + "urn-c-ag.go" + "urn-a-ag.go" + "halfpipe.o" + )) diff --git a/goal_src/jak3/dgos/hga.gd b/goal_src/jak3/dgos/hga.gd new file mode 100644 index 000000000..962938427 --- /dev/null +++ b/goal_src/jak3/dgos/hga.gd @@ -0,0 +1,60 @@ +("HGA.DGO" + ("hfrag-vu1-h.o" + "hfrag-common.o" + "hfrag-vu1.o" + "hfrag.o" + "hfrag-work.o" + "hfrag-texture-anim.o" + "desert-mood.o" + "desert-ocean.o" + "desert-part.o" + "desert-scenes.o" + "squad-control-h.o" + "squad-control.o" + "vehicle-h.o" + "vehicle-part.o" + "vehicle-effects.o" + "vehicle.o" + "vehicle-util.o" + "vehicle-physics.o" + "vehicle-states.o" + "vehicle-manager.o" + "vehicle-hud.o" + "turret-control.o" + "target-pilot.o" + "pilot-states.o" + "nav-graph-h.o" + "cty-borrow-manager-h.o" + "cty-faction-h.o" + "traffic-engine-h.o" + "height-map-h.o" + "vehicle-control.o" + "nav-graph.o" + "height-map.o" + "traffic-height-map.o" + "hvehicle-h.o" + "vehicle-rider.o" + "hvehicle.o" + "hvehicle-util.o" + "hvehicle-effects.o" + "hvehicle-physics.o" + "glider-h.o" + "glider-ring-part.o" + "glider-ring.o" + "h-glider.o" + "glider-manager.o" + "glider-hud.o" + "hanga-init.o" + "jak-pilot-glider+0-ag.go" + "jak-pilot-gun+0-ag.go" + "tpage-3030.go" + "tpage-3031.go" + "tpage-3029.go" + "tpage-1511.go" + "tpage-1676.go" + "tpage-1503.go" + "des-glider-ring-ag.go" + "tpl-glider-ag.go" + "tpl-glider-broken-ag.go" + "hanga-vis.o" + )) diff --git a/goal_src/jak3/dgos/hgb.gd b/goal_src/jak3/dgos/hgb.gd new file mode 100644 index 000000000..915d76dd1 --- /dev/null +++ b/goal_src/jak3/dgos/hgb.gd @@ -0,0 +1,4 @@ +("HGB.DGO" + ("tpage-3028.o" + "hangb-vis.o" + )) diff --git a/goal_src/jak3/dgos/hhg.gd b/goal_src/jak3/dgos/hhg.gd new file mode 100644 index 000000000..291d21369 --- /dev/null +++ b/goal_src/jak3/dgos/hhg.gd @@ -0,0 +1,14 @@ +("HHG.DGO" + ("hiphog-obs.o" + "hiphog-part.o" + "hiphog-scenes.o" + "ltnfxhip-texture.o" + "tpage-1848.go" + "tpage-1849.go" + "tpage-895.go" + "daxter-highres-ag.go" + "jakc-highres-ag.go" + "hip-door-a-ag.go" + "particleman-ag.go" + "hiphog-vis.o" + )) diff --git a/goal_src/jak3/dgos/intpalrf.gd b/goal_src/jak3/dgos/intpalrf.gd new file mode 100644 index 000000000..bc7946cc6 --- /dev/null +++ b/goal_src/jak3/dgos/intpalrf.gd @@ -0,0 +1,6 @@ +("INTPALRF.DGO" + ("tpage-428.o" + "tpage-429.go" + "tpage-430.go" + "intpalrf.o" + )) diff --git a/goal_src/jak3/dgos/introcst.gd b/goal_src/jak3/dgos/introcst.gd new file mode 100644 index 000000000..e767bd9d3 --- /dev/null +++ b/goal_src/jak3/dgos/introcst.gd @@ -0,0 +1,22 @@ +("INTROCST.DGO" + ("intro-part.o" + "intro-scenes.o" + "tpage-1347.go" + "tpage-540.go" + "tpage-544.go" + "tpage-1560.go" + "daxter-highres-ag.go" + "kleever-highres-ag.go" + "pecker-highres-ag.go" + "king-highres-ag.go" + "veger-highres-ag.go" + "jak-highres-ag.go" + "samos-highres-ag.go" + "ashelin-highres-ag.go" + "air-train-fma-ag.go" + "crimson-guard-highres-ag.go" + "handcuffs-ag.go" + "beacon-ag.go" + "particleman-ag.go" + "introcst.o" + )) diff --git a/goal_src/jak3/dgos/inttitle.gd b/goal_src/jak3/dgos/inttitle.gd new file mode 100644 index 000000000..6dc4477ab --- /dev/null +++ b/goal_src/jak3/dgos/inttitle.gd @@ -0,0 +1,4 @@ +("INTTITLE.DGO" + ("tpage-1073.o" + "inttitle.o" + )) diff --git a/goal_src/jak3/dgos/ipf.gd b/goal_src/jak3/dgos/ipf.gd new file mode 100644 index 000000000..29c6ba357 --- /dev/null +++ b/goal_src/jak3/dgos/ipf.gd @@ -0,0 +1,22 @@ +("IPF.DGO" + ("palroof-part.o" + "palcab-part.o" + "intro-obs.o" + "searchlight.o" + "tpage-1438.go" + "tpage-1440.go" + "tpage-1439.go" + "tpage-1441.go" + "tpage-1007.go" + "ctypal-palace-break-ag.go" + "ctypal-ctyfarma-ag.go" + "hellcat-ag.go" + "ctypal-rail-ag.go" + "ctypal-base-break-ag.go" + "ctypal-support-break-ag.go" + "palmpilot-ag.go" + "hellcat-lowres-fma-ag.go" + "ctypal-cable-break-ag.go" + "searchlight-ag.go" + "intpfall-vis.o" + )) diff --git a/goal_src/jak3/dgos/kernel.gd b/goal_src/jak3/dgos/kernel.gd new file mode 100644 index 000000000..426f4499b --- /dev/null +++ b/goal_src/jak3/dgos/kernel.gd @@ -0,0 +1,10 @@ +("KERNEL.CGO" + ("gcommon.o" + "gstring-h.o" + "gkernel-h.o" + "gkernel.o" + "pskernel.o" + "gstring.o" + "dgo-h.o" + "gstate.o" + )) diff --git a/goal_src/jak3/dgos/lashelin.gd b/goal_src/jak3/dgos/lashelin.gd new file mode 100644 index 000000000..74812a7ce --- /dev/null +++ b/goal_src/jak3/dgos/lashelin.gd @@ -0,0 +1,5 @@ +("LASHELIN.DGO" + ("tpage-1222.o" + "ashelin-highres-ag.go" + "lashelin.o" + )) diff --git a/goal_src/jak3/dgos/lbbring1.gd b/goal_src/jak3/dgos/lbbring1.gd new file mode 100644 index 000000000..0918d63ed --- /dev/null +++ b/goal_src/jak3/dgos/lbbring1.gd @@ -0,0 +1,6 @@ +("LBBRING1.DGO" + ("des-bush-part.o" + "des-bush.o" + "tpage-2767.go" + "lbbring1.o" + )) diff --git a/goal_src/jak3/dgos/lbbring2.gd b/goal_src/jak3/dgos/lbbring2.gd new file mode 100644 index 000000000..330b32971 --- /dev/null +++ b/goal_src/jak3/dgos/lbbring2.gd @@ -0,0 +1,6 @@ +("LBBRING2.DGO" + ("des-bush-part.o" + "des-bush.o" + "tpage-2858.go" + "lbbring2.o" + )) diff --git a/goal_src/jak3/dgos/lbbring3.gd b/goal_src/jak3/dgos/lbbring3.gd new file mode 100644 index 000000000..b9457934c --- /dev/null +++ b/goal_src/jak3/dgos/lbbring3.gd @@ -0,0 +1,6 @@ +("LBBRING3.DGO" + ("des-bush-part.o" + "des-bush.o" + "tpage-2859.go" + "lbbring3.o" + )) diff --git a/goal_src/jak3/dgos/lbbring4.gd b/goal_src/jak3/dgos/lbbring4.gd new file mode 100644 index 000000000..8e89e4aad --- /dev/null +++ b/goal_src/jak3/dgos/lbbring4.gd @@ -0,0 +1,6 @@ +("LBBRING4.DGO" + ("des-bush-part.o" + "des-bush.o" + "tpage-2906.go" + "lbbring4.o" + )) diff --git a/goal_src/jak3/dgos/lbbring5.gd b/goal_src/jak3/dgos/lbbring5.gd new file mode 100644 index 000000000..7b96535a9 --- /dev/null +++ b/goal_src/jak3/dgos/lbbring5.gd @@ -0,0 +1,6 @@ +("LBBRING5.DGO" + ("des-bush-part.o" + "des-bush.o" + "tpage-2940.go" + "lbbring5.o" + )) diff --git a/goal_src/jak3/dgos/lbbring6.gd b/goal_src/jak3/dgos/lbbring6.gd new file mode 100644 index 000000000..35f8f47ff --- /dev/null +++ b/goal_src/jak3/dgos/lbbring6.gd @@ -0,0 +1,6 @@ +("LBBRING6.DGO" + ("des-bush-part.o" + "des-bush.o" + "tpage-2954.go" + "lbbring6.o" + )) diff --git a/goal_src/jak3/dgos/lbbsdrp1.gd b/goal_src/jak3/dgos/lbbsdrp1.gd new file mode 100644 index 000000000..2f7dcc710 --- /dev/null +++ b/goal_src/jak3/dgos/lbbsdrp1.gd @@ -0,0 +1,6 @@ +("LBBSDRP1.DGO" + ("des-bush-part.o" + "des-bush.o" + "tpage-3328.go" + "lbbsdrp1.o" + )) diff --git a/goal_src/jak3/dgos/lbbsdrp2.gd b/goal_src/jak3/dgos/lbbsdrp2.gd new file mode 100644 index 000000000..ff58e0791 --- /dev/null +++ b/goal_src/jak3/dgos/lbbsdrp2.gd @@ -0,0 +1,6 @@ +("LBBSDRP2.DGO" + ("des-bush-part.o" + "des-bush.o" + "tpage-3329.go" + "lbbsdrp2.o" + )) diff --git a/goal_src/jak3/dgos/lbbsdrp3.gd b/goal_src/jak3/dgos/lbbsdrp3.gd new file mode 100644 index 000000000..9f870662a --- /dev/null +++ b/goal_src/jak3/dgos/lbbsdrp3.gd @@ -0,0 +1,6 @@ +("LBBSDRP3.DGO" + ("des-bush-part.o" + "des-bush.o" + "tpage-3330.go" + "lbbsdrp3.o" + )) diff --git a/goal_src/jak3/dgos/lbbspid.gd b/goal_src/jak3/dgos/lbbspid.gd new file mode 100644 index 000000000..acdc9c714 --- /dev/null +++ b/goal_src/jak3/dgos/lbbspid.gd @@ -0,0 +1,8 @@ +("LBBSPID.DGO" + ("des-bush-part.o" + "des-bush.o" + "egg-spider.o" + "tpage-2664.go" + "egg-spider-ag.go" + "lbbspid.o" + )) diff --git a/goal_src/jak3/dgos/lbbspirt.gd b/goal_src/jak3/dgos/lbbspirt.gd new file mode 100644 index 000000000..5a27a90a9 --- /dev/null +++ b/goal_src/jak3/dgos/lbbspirt.gd @@ -0,0 +1,5 @@ +("LBBSPIRT.DGO" + ("des-bush-part.o" + "des-bush.o" + "lbbspirt.o" + )) diff --git a/goal_src/jak3/dgos/lbbsprt2.gd b/goal_src/jak3/dgos/lbbsprt2.gd new file mode 100644 index 000000000..eb7e582ee --- /dev/null +++ b/goal_src/jak3/dgos/lbbsprt2.gd @@ -0,0 +1,5 @@ +("LBBSPRT2.DGO" + ("des-bush-part.o" + "des-bush.o" + "lbbsprt2.o" + )) diff --git a/goal_src/jak3/dgos/lbbsprt3.gd b/goal_src/jak3/dgos/lbbsprt3.gd new file mode 100644 index 000000000..8d71a993c --- /dev/null +++ b/goal_src/jak3/dgos/lbbsprt3.gd @@ -0,0 +1,5 @@ +("LBBSPRT3.DGO" + ("des-bush-part.o" + "des-bush.o" + "lbbsprt3.o" + )) diff --git a/goal_src/jak3/dgos/lbbtcha1.gd b/goal_src/jak3/dgos/lbbtcha1.gd new file mode 100644 index 000000000..cff9a5fb1 --- /dev/null +++ b/goal_src/jak3/dgos/lbbtcha1.gd @@ -0,0 +1,7 @@ +("LBBTCHA1.DGO" + ("timer-path.o" + "des-bush-time-chase.o" + "tpage-3378.go" + "tpage-3325.go" + "lbbtcha1.o" + )) diff --git a/goal_src/jak3/dgos/lbbtcha2.gd b/goal_src/jak3/dgos/lbbtcha2.gd new file mode 100644 index 000000000..584189db3 --- /dev/null +++ b/goal_src/jak3/dgos/lbbtcha2.gd @@ -0,0 +1,7 @@ +("LBBTCHA2.DGO" + ("timer-path.o" + "des-bush-time-chase.o" + "tpage-3379.go" + "tpage-3326.go" + "lbbtcha2.o" + )) diff --git a/goal_src/jak3/dgos/lbbtcha3.gd b/goal_src/jak3/dgos/lbbtcha3.gd new file mode 100644 index 000000000..1e4dffb2f --- /dev/null +++ b/goal_src/jak3/dgos/lbbtcha3.gd @@ -0,0 +1,7 @@ +("LBBTCHA3.DGO" + ("timer-path.o" + "des-bush-time-chase.o" + "tpage-3380.go" + "tpage-3327.go" + "lbbtcha3.o" + )) diff --git a/goal_src/jak3/dgos/lbiped.gd b/goal_src/jak3/dgos/lbiped.gd new file mode 100644 index 000000000..c44291b45 --- /dev/null +++ b/goal_src/jak3/dgos/lbiped.gd @@ -0,0 +1,12 @@ +("LBIPED.DGO" + ("dp-bipedal-part.o" + "dp-bipedal-shot.o" + "dp-bipedal.o" + "battle.o" + "tpage-2901.go" + "dp-bipedal-ag.go" + "shield-sphere-explode-ag.go" + "shield-sphere-distort-ag.go" + "shield-sphere-ag.go" + "lbiped.o" + )) diff --git a/goal_src/jak3/dgos/lblowcst.gd b/goal_src/jak3/dgos/lblowcst.gd new file mode 100644 index 000000000..2c2d19296 --- /dev/null +++ b/goal_src/jak3/dgos/lblowcst.gd @@ -0,0 +1,15 @@ +("LBLOWCST.DGO" + ("bombbot-h.o" + "bombbot-path.o" + "bombbot.o" + "tpage-3368.go" + "tpage-3032.go" + "tpage-3033.go" + "tpage-3276.go" + "tpage-3094.go" + "bt-torn-ag.go" + "bt-sig-ag.go" + "bt-jinx-ag.go" + "cty-explode-barrel-ag.go" + "lblowcst.o" + )) diff --git a/goal_src/jak3/dgos/lblowtkg.gd b/goal_src/jak3/dgos/lblowtkg.gd new file mode 100644 index 000000000..4d77dcb2d --- /dev/null +++ b/goal_src/jak3/dgos/lblowtkg.gd @@ -0,0 +1,9 @@ +("LBLOWTKG.DGO" + ("tpage-2977.o" + "bt-wasp-ag.go" + "bombbot-ag.go" + "kg-flying-turret-ag.go" + "cty-homing-missile-ag.go" + "kg-debris-ag.go" + "lblowtkg.o" + )) diff --git a/goal_src/jak3/dgos/lblowtmh.gd b/goal_src/jak3/dgos/lblowtmh.gd new file mode 100644 index 000000000..5ebe6631c --- /dev/null +++ b/goal_src/jak3/dgos/lblowtmh.gd @@ -0,0 +1,6 @@ +("LBLOWTMH.DGO" + ("tpage-2978.o" + "bt-grunt-ag.go" + "bt-roboguard-ag.go" + "lblowtmh.o" + )) diff --git a/goal_src/jak3/dgos/lbombbot.gd b/goal_src/jak3/dgos/lbombbot.gd new file mode 100644 index 000000000..a41a129cc --- /dev/null +++ b/goal_src/jak3/dgos/lbombbot.gd @@ -0,0 +1,12 @@ +("LBOMBBOT.DGO" + ("bombbot-h.o" + "bombbot-path.o" + "bombbot.o" + "tpage-1320.go" + "tpage-2384.go" + "bombbot-ag.go" + "krimson-wall-break-ag.go" + "bombbot-bomb-ag.go" + "kg-debris-ag.go" + "lbombbot.o" + )) diff --git a/goal_src/jak3/dgos/lcitysml.gd b/goal_src/jak3/dgos/lcitysml.gd new file mode 100644 index 000000000..897126b5b --- /dev/null +++ b/goal_src/jak3/dgos/lcitysml.gd @@ -0,0 +1,5 @@ +("LCITYSML.DGO" + ("tpage-2605.o" + "tpage-2606.go" + "lcitysml.o" + )) diff --git a/goal_src/jak3/dgos/lctyass.gd b/goal_src/jak3/dgos/lctyass.gd new file mode 100644 index 000000000..b524154e6 --- /dev/null +++ b/goal_src/jak3/dgos/lctyass.gd @@ -0,0 +1,11 @@ +("LCTYASS.DGO" + ("bombbot-h.o" + "bombbot-path.o" + "bombbot.o" + "tpage-3099.go" + "citizen-norm-ag.go" + "bombbot-ag.go" + "bombbot-bomb-ag.go" + "kg-debris-ag.go" + "lctyass.o" + )) diff --git a/goal_src/jak3/dgos/lctyblow.gd b/goal_src/jak3/dgos/lctyblow.gd new file mode 100644 index 000000000..955c17cba --- /dev/null +++ b/goal_src/jak3/dgos/lctyblow.gd @@ -0,0 +1,18 @@ +("LCTYBLOW.DGO" + ("target-turret-shot.o" + "target-turret.o" + "blow-tower-shared.o" + "blow-tower-data.o" + "blow-tower-speech.o" + "blow-tower-script.o" + "blow-tower-part.o" + "blow-tower-obs.o" + "blow-tower-obs2.o" + "blow-tower-extra.o" + "cty-blow-tower.o" + "tpage-2846.go" + "tpage-2847.go" + "hellcat-tower-ag.go" + "kg-pickup-ag.go" + "lctyblow.o" + )) diff --git a/goal_src/jak3/dgos/lctydest.gd b/goal_src/jak3/dgos/lctydest.gd new file mode 100644 index 000000000..376d13218 --- /dev/null +++ b/goal_src/jak3/dgos/lctydest.gd @@ -0,0 +1,12 @@ +("LCTYDEST.DGO" + ("destroy-dark-eco.o" + "tpage-3147.go" + "tpage-2001.go" + "tpage-2378.go" + "tpage-3197.go" + "mhcity-eco-dark-tower-ag.go" + "mhcity-de-tower-egg-ag.go" + "mhcity-puffer-large-ag.go" + "mhcity-puffer-ag.go" + "lctydest.o" + )) diff --git a/goal_src/jak3/dgos/lctyhijk.gd b/goal_src/jak3/dgos/lctyhijk.gd new file mode 100644 index 000000000..d54afa926 --- /dev/null +++ b/goal_src/jak3/dgos/lctyhijk.gd @@ -0,0 +1,16 @@ +("LCTYHIJK.DGO" + ("billiards.o" + "guide-arrow.o" + "kg-vehicles.o" + "cty-hijack-missile.o" + "cty-hijack.o" + "ctywide-arrow-ag.go" + "tpage-1580.go" + "tpage-1835.go" + "tpage-1836.go" + "cty-decoy-ag.go" + "cty-missile-launcher-ag.go" + "kg-pickup-ag.go" + "cty-homing-missile-ag.go" + "lctyhijk.o" + )) diff --git a/goal_src/jak3/dgos/lctypalt.gd b/goal_src/jak3/dgos/lctypalt.gd new file mode 100644 index 000000000..3e15115ff --- /dev/null +++ b/goal_src/jak3/dgos/lctypalt.gd @@ -0,0 +1,14 @@ +("LCTYPALT.DGO" + ("external-player-control.o" + "bombbot-h.o" + "bombbot-path.o" + "bombbot.o" + "assault-shared.o" + "assault-cams.o" + "assault-path.o" + "assault-enemies.o" + "assault-script.o" + "assault-task.o" + "tpage-3093.go" + "lctypalt.o" + )) diff --git a/goal_src/jak3/dgos/lctypatk.gd b/goal_src/jak3/dgos/lctypatk.gd new file mode 100644 index 000000000..b7e76a636 --- /dev/null +++ b/goal_src/jak3/dgos/lctypatk.gd @@ -0,0 +1,13 @@ +("LCTYPATK.DGO" + ("h-torpedo.o" + "ctyport-attack.o" + "ctyport-attack-bbush.o" + "jak-pidax+0-ag.go" + "tpage-1523.go" + "tpage-1899.go" + "krimson-wall-break-ag.go" + "cty-port-mine-ag.go" + "ctyport-mine-ag.go" + "cty-dax-missile-ag.go" + "lctypatk.o" + )) diff --git a/goal_src/jak3/dgos/lctyprot.gd b/goal_src/jak3/dgos/lctyprot.gd new file mode 100644 index 000000000..84f37d651 --- /dev/null +++ b/goal_src/jak3/dgos/lctyprot.gd @@ -0,0 +1,14 @@ +("LCTYPROT.DGO" + ("protect-script.o" + "protect-path.o" + "protect-gunship.o" + "cty-protect.o" + "tpage-2592.go" + "tpage-3264.go" + "tpage-3269.go" + "kg-robot-transport-break-ag.go" + "kg-robot-transport-ag.go" + "cty-homing-missile-ag.go" + "kg-robot-transport-bomb-ag.go" + "lctyprot.o" + )) diff --git a/goal_src/jak3/dgos/lctysnpr.gd b/goal_src/jak3/dgos/lctysnpr.gd new file mode 100644 index 000000000..ffa9a9c6c --- /dev/null +++ b/goal_src/jak3/dgos/lctysnpr.gd @@ -0,0 +1,17 @@ +("LCTYSNPR.DGO" + ("cty-sniper-battery.o" + "cty-sniper-turret.o" + "tpage-2220.go" + "tpage-2091.go" + "tpage-2177.go" + "tpage-2154.go" + "tpage-3087.go" + "cty-sniper-turret-ag.go" + "cty-sniper-core-ag.go" + "cty-sniper-button-ag.go" + "cty-sniper-battery-ag.go" + "sew-floor-switch-ag.go" + "cty-sniper-turret-reticle-ag.go" + "cty-sniper-button-top-ag.go" + "lctysnpr.o" + )) diff --git a/goal_src/jak3/dgos/ldamklev.gd b/goal_src/jak3/dgos/ldamklev.gd new file mode 100644 index 000000000..db999b353 --- /dev/null +++ b/goal_src/jak3/dgos/ldamklev.gd @@ -0,0 +1,7 @@ +("LDAMKLEV.DGO" + ("tpage-1407.o" + "tpage-1323.go" + "kleever-highres-ag.go" + "king-highres-ag.go" + "ldamklev.o" + )) diff --git a/goal_src/jak3/dgos/ldampeck.gd b/goal_src/jak3/dgos/ldampeck.gd new file mode 100644 index 000000000..533b5f18b --- /dev/null +++ b/goal_src/jak3/dgos/ldampeck.gd @@ -0,0 +1,7 @@ +("LDAMPECK.DGO" + ("tpage-1086.o" + "tpage-1087.go" + "pecker-highres-ag.go" + "king-highres-ag.go" + "ldampeck.o" + )) diff --git a/goal_src/jak3/dgos/ldampksm.gd b/goal_src/jak3/dgos/ldampksm.gd new file mode 100644 index 000000000..c68c449c3 --- /dev/null +++ b/goal_src/jak3/dgos/ldampksm.gd @@ -0,0 +1,8 @@ +("LDAMPKSM.DGO" + ("tpage-1092.o" + "tpage-1093.go" + "pecker-highres-ag.go" + "king-highres-ag.go" + "seem-highres-ag.go" + "ldampksm.o" + )) diff --git a/goal_src/jak3/dgos/ldamsig.gd b/goal_src/jak3/dgos/ldamsig.gd new file mode 100644 index 000000000..dac4a88a7 --- /dev/null +++ b/goal_src/jak3/dgos/ldamsig.gd @@ -0,0 +1,7 @@ +("LDAMSIG.DGO" + ("tpage-1089.o" + "tpage-1088.go" + "sig-highres-ag.go" + "king-highres-ag.go" + "ldamsig.o" + )) diff --git a/goal_src/jak3/dgos/ldax.gd b/goal_src/jak3/dgos/ldax.gd new file mode 100644 index 000000000..60d4f609b --- /dev/null +++ b/goal_src/jak3/dgos/ldax.gd @@ -0,0 +1,5 @@ +("LDAX.DGO" + ("tpage-2130.o" + "daxter-highres-ag.go" + "ldax.o" + )) diff --git a/goal_src/jak3/dgos/ldesgcst.gd b/goal_src/jak3/dgos/ldesgcst.gd new file mode 100644 index 000000000..65308267a --- /dev/null +++ b/goal_src/jak3/dgos/ldesgcst.gd @@ -0,0 +1,9 @@ +("LDESGCST.DGO" + ("tpage-2660.o" + "tpage-2662.go" + "tpage-2661.go" + "daxter-highres-ag.go" + "jakc-highres-ag.go" + "sig-highres-ag.go" + "ldesgcst.o" + )) diff --git a/goal_src/jak3/dgos/ldmpckgn.gd b/goal_src/jak3/dgos/ldmpckgn.gd new file mode 100644 index 000000000..5ba0c8e7c --- /dev/null +++ b/goal_src/jak3/dgos/ldmpckgn.gd @@ -0,0 +1,8 @@ +("LDMPCKGN.DGO" + ("tpage-2348.o" + "tpage-2349.go" + "pecker-highres-ag.go" + "king-highres-ag.go" + "gauntlets-ag.go" + "ldmpckgn.o" + )) diff --git a/goal_src/jak3/dgos/lerrol.gd b/goal_src/jak3/dgos/lerrol.gd new file mode 100644 index 000000000..a7947a342 --- /dev/null +++ b/goal_src/jak3/dgos/lerrol.gd @@ -0,0 +1,3 @@ +("LERROL.DGO" + ("lerrol.o" + )) diff --git a/goal_src/jak3/dgos/lfacb.gd b/goal_src/jak3/dgos/lfacb.gd new file mode 100644 index 000000000..8d08c5a96 --- /dev/null +++ b/goal_src/jak3/dgos/lfacb.gd @@ -0,0 +1,6 @@ +("LFACB.DGO" + ("lfaccity-mood.o" + "tpage-3401.go" + "tpage-3402.go" + "lfacctyb-vis.o" + )) diff --git a/goal_src/jak3/dgos/lfaccar.gd b/goal_src/jak3/dgos/lfaccar.gd new file mode 100644 index 000000000..5fbddde60 --- /dev/null +++ b/goal_src/jak3/dgos/lfaccar.gd @@ -0,0 +1,50 @@ +("LFACCAR.DGO" + ("squad-control-h.o" + "squad-control.o" + "vehicle-h.o" + "vehicle-part.o" + "vehicle-effects.o" + "vehicle.o" + "vehicle-util.o" + "vehicle-physics.o" + "vehicle-states.o" + "vehicle-manager.o" + "vehicle-hud.o" + "turret-control.o" + "target-pilot.o" + "pilot-states.o" + "was-squad-control.o" + "wvehicle-h.o" + "wvehicle-part.o" + "wvehicle-obs.o" + "wvehicle-wheel.o" + "wvehicle-effects.o" + "wvehicle.o" + "wvehicle-util.o" + "wvehicle-ai.o" + "wvehicle-race.o" + "wvehicle-states.o" + "wvehicle-physics.o" + "wvehicle-hud.o" + "wcar-projectiles.o" + "wcar.o" + "wcar-turtle.o" + "wcar-snake.o" + "wcar-scorpion.o" + "wcar-toad.o" + "wcar-fox.o" + "wcar-rhino.o" + "wcar-mirage.o" + "wcar-x-ride.o" + "wcar-marauder.o" + "w-parking-spot.o" + "lfaccar-init.o" + "wcar-faccar.o" + "jak-pilot+0-ag.go" + "jak-pilot-wcar+0-ag.go" + "tpage-2573.go" + "tpage-2867.go" + "faccar-ag.go" + "vehicle-explosion-ag.go" + "lfaccar.o" + )) diff --git a/goal_src/jak3/dgos/lfaccity.gd b/goal_src/jak3/dgos/lfaccity.gd new file mode 100644 index 000000000..da1cdb151 --- /dev/null +++ b/goal_src/jak3/dgos/lfaccity.gd @@ -0,0 +1,6 @@ +("LFACCITY.DGO" + ("lfaccity-mood.o" + "tpage-1950.go" + "tpage-1951.go" + "lfaccity.o" + )) diff --git a/goal_src/jak3/dgos/lfaco.gd b/goal_src/jak3/dgos/lfaco.gd new file mode 100644 index 000000000..1261bac5f --- /dev/null +++ b/goal_src/jak3/dgos/lfaco.gd @@ -0,0 +1,5 @@ +("LFACO.DGO" + ("tpage-3287.o" + "tpage-3288.go" + "lfacout-vis.o" + )) diff --git a/goal_src/jak3/dgos/lfacrm1.gd b/goal_src/jak3/dgos/lfacrm1.gd new file mode 100644 index 000000000..360e37499 --- /dev/null +++ b/goal_src/jak3/dgos/lfacrm1.gd @@ -0,0 +1,8 @@ +("LFACRM1.DGO" + ("lfacrm1-mood.o" + "tpage-1936.go" + "tpage-2070.go" + "lfac-hanger-door-ag.go" + "cty-door-ag.go" + "lfacrm1.o" + )) diff --git a/goal_src/jak3/dgos/lfacrm2.gd b/goal_src/jak3/dgos/lfacrm2.gd new file mode 100644 index 000000000..32937b4e0 --- /dev/null +++ b/goal_src/jak3/dgos/lfacrm2.gd @@ -0,0 +1,13 @@ +("LFACRM2.DGO" + ("lfacrm2-mood.o" + "tpage-2167.go" + "tpage-3017.go" + "tpage-2282.go" + "tpage-2168.go" + "kg-grunt-ag.go" + "roboguard-ag.go" + "robo-hover-ag.go" + "fac-elevator-a-ag.go" + "kg-debris-ag.go" + "lfacrm2.o" + )) diff --git a/goal_src/jak3/dgos/lfactory.gd b/goal_src/jak3/dgos/lfactory.gd new file mode 100644 index 000000000..785378b3f --- /dev/null +++ b/goal_src/jak3/dgos/lfactory.gd @@ -0,0 +1,48 @@ +("LFACTORY.DGO" + ("squad-control-h.o" + "squad-control.o" + "vehicle-h.o" + "vehicle-part.o" + "vehicle-effects.o" + "vehicle.o" + "vehicle-util.o" + "vehicle-physics.o" + "vehicle-states.o" + "vehicle-manager.o" + "vehicle-hud.o" + "turret-control.o" + "target-pilot.o" + "pilot-states.o" + "nav-graph-h.o" + "cty-borrow-manager-h.o" + "cty-faction-h.o" + "traffic-engine-h.o" + "height-map-h.o" + "vehicle-control.o" + "nav-graph.o" + "height-map.o" + "traffic-height-map.o" + "hvehicle-h.o" + "vehicle-rider.o" + "hvehicle.o" + "hvehicle-util.o" + "hvehicle-effects.o" + "hvehicle-physics.o" + "factory-h.o" + "ffight-projectile.o" + "ftank-projectile.o" + "fturret-projectile.o" + "warf-projectile.o" + "h-warf.o" + "fac-gunturret.o" + "fac-robotank-h.o" + "fac-robotank-turret.o" + "fac-robotank.o" + "fac-tower.o" + "factory-manager.o" + "factory-hud.o" + "factorya-init.o" + "jak-pilot+0-ag.go" + "jak-pilot-hcar+0-ag.go" + "lfactory.o" + )) diff --git a/goal_src/jak3/dgos/lform.gd b/goal_src/jak3/dgos/lform.gd new file mode 100644 index 000000000..4b3881294 --- /dev/null +++ b/goal_src/jak3/dgos/lform.gd @@ -0,0 +1,39 @@ +("LFORM.DGO" + ("battle.o" + "hover-formation-h.o" + "hover-nav-control-h.o" + "hover-enemy-h.o" + "hover-nav-control.o" + "hover-enemy.o" + "hover-formation.o" + "hover-nav-edit.o" + "target-turret-shot.o" + "target-turret.o" + "jak-turret+0-ag.go" + "for-turret-shot.o" + "for-turret.o" + "dp-bipedal-part.o" + "dp-bipedal-shot.o" + "dp-bipedal.o" + "neo-wasp-part.o" + "neo-wasp.o" + "hover-nav-foresta.o" + "neo-spawner.o" + "dp-bipedal-turret+0-ag.go" + "tpage-1518.go" + "tpage-1519.go" + "tpage-3249.go" + "tpage-1555.go" + "dp-bipedal-ag.go" + "for-turret-ag.go" + "neo-spawner-ag.go" + "neo-wasp-b-ag.go" + "neo-egg-a-ag.go" + "neo-egg-c-ag.go" + "neo-egg-b-ag.go" + "shield-sphere-explode-ag.go" + "neo-debris-ag.go" + "shield-sphere-distort-ag.go" + "shield-sphere-ag.go" + "lformach-vis.o" + )) diff --git a/goal_src/jak3/dgos/lforp.gd b/goal_src/jak3/dgos/lforp.gd new file mode 100644 index 000000000..028c2cd20 --- /dev/null +++ b/goal_src/jak3/dgos/lforp.gd @@ -0,0 +1,12 @@ +("LFORP.DGO" + ("egg-spider.o" + "tpage-2237.go" + "tpage-2357.go" + "tpage-2402.go" + "daxter-highres-ag.go" + "jakc-highres-ag.go" + "mh-plant-ag.go" + "egg-spider-ag.go" + "shoulder-plates-ag.go" + "lforplnt-vis.o" + )) diff --git a/goal_src/jak3/dgos/lforring.gd b/goal_src/jak3/dgos/lforring.gd new file mode 100644 index 000000000..47c6ed941 --- /dev/null +++ b/goal_src/jak3/dgos/lforring.gd @@ -0,0 +1,4 @@ +("LFORRING.DGO" + ("tpage-1358.o" + "lforring.o" + )) diff --git a/goal_src/jak3/dgos/lfreeout.gd b/goal_src/jak3/dgos/lfreeout.gd new file mode 100644 index 000000000..400e3670d --- /dev/null +++ b/goal_src/jak3/dgos/lfreeout.gd @@ -0,0 +1,4 @@ +("LFREEOUT.DGO" + ("tpage-3158.o" + "lfreeout.o" + )) diff --git a/goal_src/jak3/dgos/lgunnorm.gd b/goal_src/jak3/dgos/lgunnorm.gd new file mode 100644 index 000000000..987a72808 --- /dev/null +++ b/goal_src/jak3/dgos/lgunnorm.gd @@ -0,0 +1,15 @@ +("LGUNNORM.DGO" + ("tpage-3139.o" + "tpage-3170.go" + "gun-kg-target-ag.go" + "gun-kg-target-bonus-ag.go" + "gun-kg-bomb-ag.go" + "gun-kg-target-c-ag.go" + "gun-cit-d-ag.go" + "gun-kg-target-d-ag.go" + "gun-cit-a-ag.go" + "gun-kg-target-b-ag.go" + "gun-cit-b-ag.go" + "gun-cit-c-ag.go" + "lgunnorm.o" + )) diff --git a/goal_src/jak3/dgos/lgunrnc.gd b/goal_src/jak3/dgos/lgunrnc.gd new file mode 100644 index 000000000..2cd59eb64 --- /dev/null +++ b/goal_src/jak3/dgos/lgunrnc.gd @@ -0,0 +1,11 @@ +("LGUNRNC.DGO" + ("tpage-3171.o" + "gun-rc-four-eyes-ag.go" + "gun-rc-three-eyes-ag.go" + "gun-rc-three-eyes-bonus-ag.go" + "gun-clank-ag.go" + "gun-rc-two-eyes-ag.go" + "gun-rc-one-eye-ag.go" + "gun-rachet-ag.go" + "lgunrnc.o" + )) diff --git a/goal_src/jak3/dgos/ljak.gd b/goal_src/jak3/dgos/ljak.gd new file mode 100644 index 000000000..2af11e2d3 --- /dev/null +++ b/goal_src/jak3/dgos/ljak.gd @@ -0,0 +1,5 @@ +("LJAK.DGO" + ("tpage-1527.o" + "jak-highres-ag.go" + "ljak.o" + )) diff --git a/goal_src/jak3/dgos/ljakc.gd b/goal_src/jak3/dgos/ljakc.gd new file mode 100644 index 000000000..938c019eb --- /dev/null +++ b/goal_src/jak3/dgos/ljakc.gd @@ -0,0 +1,6 @@ +("LJAKC.DGO" + ("tpage-1466.o" + "jakc-highres-ag.go" + "red-gun-mod-two-ag.go" + "ljakc.o" + )) diff --git a/goal_src/jak3/dgos/ljakcklv.gd b/goal_src/jak3/dgos/ljakcklv.gd new file mode 100644 index 000000000..0cd786c0d --- /dev/null +++ b/goal_src/jak3/dgos/ljakcklv.gd @@ -0,0 +1,6 @@ +("LJAKCKLV.DGO" + ("tpage-1542.o" + "kleever-highres-ag.go" + "jakc-highres-ag.go" + "ljakcklv.o" + )) diff --git a/goal_src/jak3/dgos/ljakklev.gd b/goal_src/jak3/dgos/ljakklev.gd new file mode 100644 index 000000000..bf43749dd --- /dev/null +++ b/goal_src/jak3/dgos/ljakklev.gd @@ -0,0 +1,6 @@ +("LJAKKLEV.DGO" + ("tpage-1541.o" + "kleever-highres-ag.go" + "jak-highres-ag.go" + "ljakklev.o" + )) diff --git a/goal_src/jak3/dgos/ljakndax.gd b/goal_src/jak3/dgos/ljakndax.gd new file mode 100644 index 000000000..ad7a38c4e --- /dev/null +++ b/goal_src/jak3/dgos/ljakndax.gd @@ -0,0 +1,6 @@ +("LJAKNDAX.DGO" + ("tpage-2362.o" + "daxter-highres-ag.go" + "jakc-highres-ag.go" + "ljakndax.o" + )) diff --git a/goal_src/jak3/dgos/ljaksig.gd b/goal_src/jak3/dgos/ljaksig.gd new file mode 100644 index 000000000..a36c53e96 --- /dev/null +++ b/goal_src/jak3/dgos/ljaksig.gd @@ -0,0 +1,8 @@ +("LJAKSIG.DGO" + ("tpage-1536.o" + "tpage-1538.go" + "tpage-1537.go" + "sig-highres-ag.go" + "jak-highres-ag.go" + "ljaksig.o" + )) diff --git a/goal_src/jak3/dgos/ljinx.gd b/goal_src/jak3/dgos/ljinx.gd new file mode 100644 index 000000000..0dec3136d --- /dev/null +++ b/goal_src/jak3/dgos/ljinx.gd @@ -0,0 +1,9 @@ +("LJINX.DGO" + ("cty-destroy-grid.o" + "tpage-1826.go" + "tpage-2552.go" + "jinx-ag.go" + "krimson-wall-break-ag.go" + "com-power-box-ag.go" + "ljinx.o" + )) diff --git a/goal_src/jak3/dgos/ljkcdmkl.gd b/goal_src/jak3/dgos/ljkcdmkl.gd new file mode 100644 index 000000000..ef464f47d --- /dev/null +++ b/goal_src/jak3/dgos/ljkcdmkl.gd @@ -0,0 +1,8 @@ +("LJKCDMKL.DGO" + ("tpage-1810.o" + "tpage-1811.go" + "kleever-highres-ag.go" + "jakc-highres-ag.go" + "king-highres-ag.go" + "ljkcdmkl.o" + )) diff --git a/goal_src/jak3/dgos/ljkdmpk.gd b/goal_src/jak3/dgos/ljkdmpk.gd new file mode 100644 index 000000000..b95ebacf3 --- /dev/null +++ b/goal_src/jak3/dgos/ljkdmpk.gd @@ -0,0 +1,8 @@ +("LJKDMPK.DGO" + ("tpage-1539.o" + "tpage-1540.go" + "pecker-highres-ag.go" + "jakc-highres-ag.go" + "king-highres-ag.go" + "ljkdmpk.o" + )) diff --git a/goal_src/jak3/dgos/ljkdxvin.gd b/goal_src/jak3/dgos/ljkdxvin.gd new file mode 100644 index 000000000..482f55311 --- /dev/null +++ b/goal_src/jak3/dgos/ljkdxvin.gd @@ -0,0 +1,9 @@ +("LJKDXVIN.DGO" + ("tpage-2601.o" + "tpage-2602.go" + "daxter-highres-ag.go" + "jakc-highres-ag.go" + "vin-effect-ag.go" + "particleman-ag.go" + "ljkdxvin.o" + )) diff --git a/goal_src/jak3/dgos/ljkfeet.gd b/goal_src/jak3/dgos/ljkfeet.gd new file mode 100644 index 000000000..f6ee9eb17 --- /dev/null +++ b/goal_src/jak3/dgos/ljkfeet.gd @@ -0,0 +1,5 @@ +("LJKFEET.DGO" + ("tpage-2658.o" + "jakc-feet-ag.go" + "ljkfeet.o" + )) diff --git a/goal_src/jak3/dgos/ljndklev.gd b/goal_src/jak3/dgos/ljndklev.gd new file mode 100644 index 000000000..c0426ea94 --- /dev/null +++ b/goal_src/jak3/dgos/ljndklev.gd @@ -0,0 +1,7 @@ +("LJNDKLEV.DGO" + ("tpage-1247.o" + "daxter-highres-ag.go" + "kleever-highres-ag.go" + "jakc-highres-ag.go" + "ljndklev.o" + )) diff --git a/goal_src/jak3/dgos/lkeira.gd b/goal_src/jak3/dgos/lkeira.gd new file mode 100644 index 000000000..c99b664d3 --- /dev/null +++ b/goal_src/jak3/dgos/lkeira.gd @@ -0,0 +1,6 @@ +("LKEIRA.DGO" + ("tpage-2131.o" + "tpage-2132.go" + "keira-highres-ag.go" + "lkeira.o" + )) diff --git a/goal_src/jak3/dgos/lkleever.gd b/goal_src/jak3/dgos/lkleever.gd new file mode 100644 index 000000000..ea3010852 --- /dev/null +++ b/goal_src/jak3/dgos/lkleever.gd @@ -0,0 +1,5 @@ +("LKLEEVER.DGO" + ("tpage-1394.o" + "kleever-highres-ag.go" + "lkleever.o" + )) diff --git a/goal_src/jak3/dgos/lmech.gd b/goal_src/jak3/dgos/lmech.gd new file mode 100644 index 000000000..dea349394 --- /dev/null +++ b/goal_src/jak3/dgos/lmech.gd @@ -0,0 +1,10 @@ +("LMECH.DGO" + ("jak-mech+0-ag.o" + "mech-part.o" + "mech.o" + "target-mech.o" + "mech-states.o" + "tpage-2955.go" + "mech-ag.go" + "lmech.o" + )) diff --git a/goal_src/jak3/dgos/lmhca.gd b/goal_src/jak3/dgos/lmhca.gd new file mode 100644 index 000000000..cce6a2383 --- /dev/null +++ b/goal_src/jak3/dgos/lmhca.gd @@ -0,0 +1,4 @@ +("LMHCA.DGO" + ("tpage-3142.o" + "lmhcitya-vis.o" + )) diff --git a/goal_src/jak3/dgos/lmhcb.gd b/goal_src/jak3/dgos/lmhcb.gd new file mode 100644 index 000000000..32db84cd0 --- /dev/null +++ b/goal_src/jak3/dgos/lmhcb.gd @@ -0,0 +1,4 @@ +("LMHCB.DGO" + ("tpage-3141.o" + "lmhcityb-vis.o" + )) diff --git a/goal_src/jak3/dgos/lnstcst.gd b/goal_src/jak3/dgos/lnstcst.gd new file mode 100644 index 000000000..baf18a1b7 --- /dev/null +++ b/goal_src/jak3/dgos/lnstcst.gd @@ -0,0 +1,11 @@ +("LNSTCST.DGO" + ("tpage-1766.o" + "tpage-1768.go" + "tpage-1767.go" + "daxter-highres-ag.go" + "jakc-highres-ag.go" + "sig-highres-ag.go" + "desert-eggwall-break-ag.go" + "scorpion-wheel-fma-ag.go" + "lnstcst.o" + )) diff --git a/goal_src/jak3/dgos/lnstoa.gd b/goal_src/jak3/dgos/lnstoa.gd new file mode 100644 index 000000000..1d4c4507d --- /dev/null +++ b/goal_src/jak3/dgos/lnstoa.gd @@ -0,0 +1,12 @@ +("LNSTOA.DGO" + ("tpage-1520.o" + "tpage-1521.go" + "tpage-1522.go" + "nst-collapsing-stone-bridge-ag.go" + "nst-cocoon-a-ag.go" + "mh-bat-ag.go" + "nst-metalhead-eggs-a-ag.go" + "nst-metalhead-eggs-c-ag.go" + "nst-metalhead-eggs-b-ag.go" + "lnstoba-vis.o" + )) diff --git a/goal_src/jak3/dgos/lnstobb.gd b/goal_src/jak3/dgos/lnstobb.gd new file mode 100644 index 000000000..922016a4a --- /dev/null +++ b/goal_src/jak3/dgos/lnstobb.gd @@ -0,0 +1,10 @@ +("LNSTOBB.DGO" + ("mh-centipede-part.o" + "mh-centipede.o" + "tpage-1337.go" + "tpage-1867.go" + "mh-centipede-ag.go" + "egg-spider-ag.go" + "eco-crystal-light-ag.go" + "lnstobb.o" + )) diff --git a/goal_src/jak3/dgos/lnstobc.gd b/goal_src/jak3/dgos/lnstobc.gd new file mode 100644 index 000000000..2747bdad4 --- /dev/null +++ b/goal_src/jak3/dgos/lnstobc.gd @@ -0,0 +1,3 @@ +("LNSTOBC.DGO" + ("lnstobc.o" + )) diff --git a/goal_src/jak3/dgos/loninsim.gd b/goal_src/jak3/dgos/loninsim.gd new file mode 100644 index 000000000..76c61572a --- /dev/null +++ b/goal_src/jak3/dgos/loninsim.gd @@ -0,0 +1,5 @@ +("LONINSIM.DGO" + ("tpage-3271.o" + "onin-simple-ag.go" + "loninsim.o" + )) diff --git a/goal_src/jak3/dgos/loutro.gd b/goal_src/jak3/dgos/loutro.gd new file mode 100644 index 000000000..a8e8d6d0e --- /dev/null +++ b/goal_src/jak3/dgos/loutro.gd @@ -0,0 +1,11 @@ +("LOUTRO.DGO" + ("tpage-2682.o" + "tpage-2812.go" + "tpage-2657.go" + "daxter-highres-ag.go" + "ottsel-surfer-ag.go" + "ottsel-veger-ag.go" + "ottsel-leader-ag.go" + "precursor-ship-ag.go" + "loutro.o" + )) diff --git a/goal_src/jak3/dgos/loutro2.gd b/goal_src/jak3/dgos/loutro2.gd new file mode 100644 index 000000000..7ec58bdb6 --- /dev/null +++ b/goal_src/jak3/dgos/loutro2.gd @@ -0,0 +1,10 @@ +("LOUTRO2.DGO" + ("tpage-3069.o" + "tpage-3070.go" + "tpage-2746.go" + "ottsel-daxpants-ag.go" + "sig-highres-ag.go" + "ottsel-dummy-ag.go" + "ottsel-tess-ag.go" + "loutro2.o" + )) diff --git a/goal_src/jak3/dgos/loutro3.gd b/goal_src/jak3/dgos/loutro3.gd new file mode 100644 index 000000000..5ed79138f --- /dev/null +++ b/goal_src/jak3/dgos/loutro3.gd @@ -0,0 +1,7 @@ +("LOUTRO3.DGO" + ("tpage-3273.o" + "tpage-3274.go" + "onin-simple-ag.go" + "precursor-ship-door-ag.go" + "loutro3.o" + )) diff --git a/goal_src/jak3/dgos/lpatk.gd b/goal_src/jak3/dgos/lpatk.gd new file mode 100644 index 000000000..c7aed7743 --- /dev/null +++ b/goal_src/jak3/dgos/lpatk.gd @@ -0,0 +1,73 @@ +("LPATK.DGO" + ("hover-formation-h.o" + "hover-nav-control-h.o" + "hover-enemy-h.o" + "hover-nav-control.o" + "hover-enemy.o" + "hover-formation.o" + "hover-nav-edit.o" + "squad-control-h.o" + "squad-control.o" + "vehicle-h.o" + "vehicle-part.o" + "vehicle-effects.o" + "vehicle.o" + "vehicle-util.o" + "vehicle-physics.o" + "vehicle-states.o" + "vehicle-manager.o" + "vehicle-hud.o" + "turret-control.o" + "target-pilot.o" + "pilot-states.o" + "was-squad-control.o" + "wvehicle-h.o" + "wvehicle-part.o" + "wvehicle-obs.o" + "wvehicle-wheel.o" + "wvehicle-effects.o" + "wvehicle.o" + "wvehicle-util.o" + "wvehicle-ai.o" + "wvehicle-race.o" + "wvehicle-states.o" + "wvehicle-physics.o" + "wvehicle-hud.o" + "wcar-projectiles.o" + "wcar.o" + "wcar-turtle.o" + "wcar-snake.o" + "wcar-scorpion.o" + "wcar-toad.o" + "wcar-fox.o" + "wcar-rhino.o" + "wcar-mirage.o" + "wcar-x-ride.o" + "wcar-marauder.o" + "w-parking-spot.o" + "dp-bipedal-part.o" + "dp-bipedal-shot.o" + "dp-bipedal.o" + "neo-wasp-part.o" + "neo-wasp.o" + "king-rider.o" + "rubble-attack.o" + "jak-pilot+0-ag.go" + "jak-pilot-wcar+0-ag.go" + "tpage-3408.go" + "tpage-3263.go" + "tpage-3250.go" + "tpage-3235.go" + "dp-bipedal-ag.go" + "neo-wasp-b-ag.go" + "king-rider-ag.go" + "rhino-ag.go" + "rub-electric-gate-switch-ag.go" + "vehicle-explosion-ag.go" + "dm-missile-target-ag.go" + "shield-sphere-explode-ag.go" + "neo-debris-ag.go" + "shield-sphere-distort-ag.go" + "shield-sphere-ag.go" + "lpattack-vis.o" + )) diff --git a/goal_src/jak3/dgos/lpatkcs.gd b/goal_src/jak3/dgos/lpatkcs.gd new file mode 100644 index 000000000..b542de4fc --- /dev/null +++ b/goal_src/jak3/dgos/lpatkcs.gd @@ -0,0 +1,9 @@ +("LPATKCS.DGO" + ("tpage-2205.o" + "tpage-1987.go" + "tpage-2359.go" + "daxter-highres-ag.go" + "cty-dax-missile-launcher-ag.go" + "particleman-ag.go" + "lpatkcs.o" + )) diff --git a/goal_src/jak3/dgos/lprecc.gd b/goal_src/jak3/dgos/lprecc.gd new file mode 100644 index 000000000..28d5b3e93 --- /dev/null +++ b/goal_src/jak3/dgos/lprecc.gd @@ -0,0 +1,10 @@ +("LPRECC.DGO" + ("tpage-2944.o" + "tpage-2964.go" + "tpage-3251.go" + "precur-door-c-ag.go" + "light-eco-vent-ag.go" + "precur-door-a-ag.go" + "precur-swingpole-pop-ag.go" + "lprecurc-vis.o" + )) diff --git a/goal_src/jak3/dgos/lprenme.gd b/goal_src/jak3/dgos/lprenme.gd new file mode 100644 index 000000000..a8b04d982 --- /dev/null +++ b/goal_src/jak3/dgos/lprenme.gd @@ -0,0 +1,9 @@ +("LPRENME.DGO" + ("tpage-2956.o" + "neo-wasp-b-ag.go" + "dm-ship-break-ag.go" + "dm-ship-tent-brk-ag.go" + "neo-debris-ag.go" + "particleman-ag.go" + "lprenme.o" + )) diff --git a/goal_src/jak3/dgos/lptrl.gd b/goal_src/jak3/dgos/lptrl.gd new file mode 100644 index 000000000..4d0ebdcfa --- /dev/null +++ b/goal_src/jak3/dgos/lptrl.gd @@ -0,0 +1,12 @@ +("LPTRL.DGO" + ("tpage-3280.o" + "tpage-3279.go" + "mantis-ag.go" + "spyder-ag.go" + "rub-dark-jak-door-ag.go" + "dm-mine-spider-ag.go" + "dark-eco-vent-ag.go" + "light-eco-vent-ag.go" + "dm-mine-spider-spawner-ag.go" + "lppatrol-vis.o" + )) diff --git a/goal_src/jak3/dgos/lsamos.gd b/goal_src/jak3/dgos/lsamos.gd new file mode 100644 index 000000000..66c74aef8 --- /dev/null +++ b/goal_src/jak3/dgos/lsamos.gd @@ -0,0 +1,5 @@ +("LSAMOS.DGO" + ("tpage-2133.o" + "samos-highres-ag.go" + "lsamos.o" + )) diff --git a/goal_src/jak3/dgos/lseemwca.gd b/goal_src/jak3/dgos/lseemwca.gd new file mode 100644 index 000000000..5b1763f22 --- /dev/null +++ b/goal_src/jak3/dgos/lseemwca.gd @@ -0,0 +1,5 @@ +("LSEEMWCA.DGO" + ("tpage-2071.o" + "seem-highres-ag.go" + "lseemwca.o" + )) diff --git a/goal_src/jak3/dgos/lsig.gd b/goal_src/jak3/dgos/lsig.gd new file mode 100644 index 000000000..3812fdbaa --- /dev/null +++ b/goal_src/jak3/dgos/lsig.gd @@ -0,0 +1,6 @@ +("LSIG.DGO" + ("tpage-1154.o" + "tpage-1153.go" + "sig-highres-ag.go" + "lsig.o" + )) diff --git a/goal_src/jak3/dgos/lsigjakc.gd b/goal_src/jak3/dgos/lsigjakc.gd new file mode 100644 index 000000000..97d4971e0 --- /dev/null +++ b/goal_src/jak3/dgos/lsigjakc.gd @@ -0,0 +1,8 @@ +("LSIGJAKC.DGO" + ("tpage-1449.o" + "tpage-1451.go" + "tpage-1450.go" + "jakc-highres-ag.go" + "sig-highres-ag.go" + "lsigjakc.o" + )) diff --git a/goal_src/jak3/dgos/lsigklv.gd b/goal_src/jak3/dgos/lsigklv.gd new file mode 100644 index 000000000..ac2eb64df --- /dev/null +++ b/goal_src/jak3/dgos/lsigklv.gd @@ -0,0 +1,8 @@ +("LSIGKLV.DGO" + ("tpage-2292.o" + "tpage-2294.go" + "tpage-2293.go" + "kleever-highres-ag.go" + "sig-highres-ag.go" + "lsigklv.o" + )) diff --git a/goal_src/jak3/dgos/lsnkwhls.gd b/goal_src/jak3/dgos/lsnkwhls.gd new file mode 100644 index 000000000..bd612f1f3 --- /dev/null +++ b/goal_src/jak3/dgos/lsnkwhls.gd @@ -0,0 +1,5 @@ +("LSNKWHLS.DGO" + ("tpage-2588.o" + "snake-wheel-fma-ag.go" + "lsnkwhls.o" + )) diff --git a/goal_src/jak3/dgos/ltnfxhip.gd b/goal_src/jak3/dgos/ltnfxhip.gd new file mode 100644 index 000000000..849dde9d8 --- /dev/null +++ b/goal_src/jak3/dgos/ltnfxhip.gd @@ -0,0 +1,10 @@ +("LTNFXHIP.DGO" + ("tpage-2312.o" + "tpage-2311.go" + "torn-highres-ag.go" + "errol-effect-ag.go" + "samos-effect-ag.go" + "ashelin-effect-ag.go" + "bomb-bot-movie-ag.go" + "ltnfxhip.o" + )) diff --git a/goal_src/jak3/dgos/ltnjxhip.gd b/goal_src/jak3/dgos/ltnjxhip.gd new file mode 100644 index 000000000..4158b2ffa --- /dev/null +++ b/goal_src/jak3/dgos/ltnjxhip.gd @@ -0,0 +1,11 @@ +("LTNJXHIP.DGO" + ("tpage-2355.o" + "tpage-2049.go" + "tpage-2048.go" + "torn-highres-ag.go" + "jinx-highres-ag.go" + "purple-one-ag.go" + "blue-gun-mod-three-ag.go" + "cty-remote-ag.go" + "ltnjxhip.o" + )) diff --git a/goal_src/jak3/dgos/ltorn.gd b/goal_src/jak3/dgos/ltorn.gd new file mode 100644 index 000000000..8c48cf444 --- /dev/null +++ b/goal_src/jak3/dgos/ltorn.gd @@ -0,0 +1,5 @@ +("LTORN.DGO" + ("tpage-1463.o" + "torn-highres-ag.go" + "ltorn.o" + )) diff --git a/goal_src/jak3/dgos/ltornjnx.gd b/goal_src/jak3/dgos/ltornjnx.gd new file mode 100644 index 000000000..9ab91490e --- /dev/null +++ b/goal_src/jak3/dgos/ltornjnx.gd @@ -0,0 +1,6 @@ +("LTORNJNX.DGO" + ("tpage-1479.o" + "torn-highres-ag.go" + "jinx-highres-ag.go" + "ltornjnx.o" + )) diff --git a/goal_src/jak3/dgos/ltornsam.gd b/goal_src/jak3/dgos/ltornsam.gd new file mode 100644 index 000000000..4dcbc6434 --- /dev/null +++ b/goal_src/jak3/dgos/ltornsam.gd @@ -0,0 +1,6 @@ +("LTORNSAM.DGO" + ("tpage-1165.o" + "samos-highres-ag.go" + "torn-highres-ag.go" + "ltornsam.o" + )) diff --git a/goal_src/jak3/dgos/ltowa.gd b/goal_src/jak3/dgos/ltowa.gd new file mode 100644 index 000000000..0cf9f620a --- /dev/null +++ b/goal_src/jak3/dgos/ltowa.gd @@ -0,0 +1,12 @@ +("LTOWA.DGO" + ("tpage-2644.o" + "tpage-2910.go" + "tpage-2645.go" + "tpage-2646.go" + "tpage-3248.go" + "light-eco-vent-ag.go" + "tow-large-plat-ag.go" + "tow-spawner-ag.go" + "tow-tentacle-ag.go" + "ltowera-vis.o" + )) diff --git a/goal_src/jak3/dgos/ltowb.gd b/goal_src/jak3/dgos/ltowb.gd new file mode 100644 index 000000000..b672741f5 --- /dev/null +++ b/goal_src/jak3/dgos/ltowb.gd @@ -0,0 +1,18 @@ +("LTOWB.DGO" + ("tpage-2647.o" + "tpage-2653.go" + "tpage-2648.go" + "tpage-2649.go" + "tpage-2655.go" + "tpage-2654.go" + "errol-ag.go" + "jakc-highres-ag.go" + "sig-highres-ag.go" + "tow-top-ag.go" + "tow-break-base-ag.go" + "hellcat-ag.go" + "tow-warp-effect-ag.go" + "eco-crystal-dark-ag.go" + "particleman-ag.go" + "ltowerb-vis.o" + )) diff --git a/goal_src/jak3/dgos/ltowcity.gd b/goal_src/jak3/dgos/ltowcity.gd new file mode 100644 index 000000000..fa6318f4a --- /dev/null +++ b/goal_src/jak3/dgos/ltowcity.gd @@ -0,0 +1,5 @@ +("LTOWCITY.DGO" + ("tpage-2530.o" + "tpage-2531.go" + "ltowcity.o" + )) diff --git a/goal_src/jak3/dgos/ltrtwhls.gd b/goal_src/jak3/dgos/ltrtwhls.gd new file mode 100644 index 000000000..ef216c494 --- /dev/null +++ b/goal_src/jak3/dgos/ltrtwhls.gd @@ -0,0 +1,5 @@ +("LTRTWHLS.DGO" + ("tpage-2356.o" + "turtle-wheel-fma-ag.go" + "ltrtwhls.o" + )) diff --git a/goal_src/jak3/dgos/lvincst.gd b/goal_src/jak3/dgos/lvincst.gd new file mode 100644 index 000000000..8970af187 --- /dev/null +++ b/goal_src/jak3/dgos/lvincst.gd @@ -0,0 +1,12 @@ +("LVINCST.DGO" + ("tpage-2869.o" + "tpage-2870.go" + "daxter-highres-ag.go" + "jakc-highres-ag.go" + "vin-effect-ag.go" + "torn-effect-ag.go" + "precursor-ag.go" + "cipher-ag.go" + "particleman-ag.go" + "lvincst.o" + )) diff --git a/goal_src/jak3/dgos/lwasbbv.gd b/goal_src/jak3/dgos/lwasbbv.gd new file mode 100644 index 000000000..1d20befbe --- /dev/null +++ b/goal_src/jak3/dgos/lwasbbv.gd @@ -0,0 +1,4 @@ +("LWASBBV.DGO" + ("des-bbush-tasks.o" + "lwasbbv.o" + )) diff --git a/goal_src/jak3/dgos/lwassig.gd b/goal_src/jak3/dgos/lwassig.gd new file mode 100644 index 000000000..62e847116 --- /dev/null +++ b/goal_src/jak3/dgos/lwassig.gd @@ -0,0 +1,12 @@ +("LWASSIG.DGO" + ("nst-eggs-h.o" + "sig-rider.o" + "nst-gas.o" + "nst-tasks.o" + "tpage-1343.go" + "tpage-1488.go" + "tpage-1698.go" + "tpage-1843.go" + "sig-rider-ag.go" + "lwassig.o" + )) diff --git a/goal_src/jak3/dgos/lwlandm.gd b/goal_src/jak3/dgos/lwlandm.gd new file mode 100644 index 000000000..45a7d0051 --- /dev/null +++ b/goal_src/jak3/dgos/lwlandm.gd @@ -0,0 +1,6 @@ +("LWLANDM.DGO" + ("tpage-1550.o" + "tpage-1551.go" + "wlander-male-ag.go" + "lwlandm.o" + )) diff --git a/goal_src/jak3/dgos/lwstdpck.gd b/goal_src/jak3/dgos/lwstdpck.gd new file mode 100644 index 000000000..ae79d747b --- /dev/null +++ b/goal_src/jak3/dgos/lwstdpck.gd @@ -0,0 +1,6 @@ +("LWSTDPCK.DGO" + ("tpage-1367.o" + "pecker-highres-ag.go" + "jakc-highres-ag.go" + "lwstdpck.o" + )) diff --git a/goal_src/jak3/dgos/mhca.gd b/goal_src/jak3/dgos/mhca.gd new file mode 100644 index 000000000..059318620 --- /dev/null +++ b/goal_src/jak3/dgos/mhca.gd @@ -0,0 +1,23 @@ +("MHCA.DGO" + ("mhcitya-texture.o" + "tpage-2342.go" + "tpage-2340.go" + "tpage-2343.go" + "tpage-2389.go" + "tpage-2197.go" + "mhcity-dark-eco-door-break-ag.go" + "mhcity-dark-eco-door-ag.go" + "mhcity-puffer-large-ag.go" + "mhcity-puffer-ag.go" + "mhcity-grunt-egg-b-ag.go" + "com-airlock-outer-mhcity-ag.go" + "mhcity-grunt-egg-c-ag.go" + "mhcity-dark-eco-nodule-ag.go" + "mhcity-vein-writhing-large-ag.go" + "mhcity-vein-writhing-small-ag.go" + "mhcity-vine-wriggler-ag.go" + "mhcity-vine-wriggler-big-ag.go" + "mhcity-claw-finger-small-ag.go" + "mhcity-twitch-blade-ag.go" + "mhcitya-vis.o" + )) diff --git a/goal_src/jak3/dgos/mhcb.gd b/goal_src/jak3/dgos/mhcb.gd new file mode 100644 index 000000000..ec4301fa2 --- /dev/null +++ b/goal_src/jak3/dgos/mhcb.gd @@ -0,0 +1,21 @@ +("MHCB.DGO" + ("mhcityb-texture.o" + "tpage-2345.go" + "tpage-2347.go" + "tpage-2346.go" + "tpage-2198.go" + "mhcity-tower-door-ag.go" + "mhcity-puffer-large-ag.go" + "mhcity-puffer-ag.go" + "mhcity-grunt-egg-b-ag.go" + "com-airlock-outer-mhcity-ag.go" + "mh-spawner-ag.go" + "mhcity-grunt-egg-c-ag.go" + "mhcity-vein-writhing-large-ag.go" + "mhcity-vein-writhing-small-ag.go" + "mhcity-vine-wriggler-ag.go" + "mhcity-vine-wriggler-big-ag.go" + "mhcity-claw-finger-small-ag.go" + "mhcity-twitch-blade-ag.go" + "mhcityb-vis.o" + )) diff --git a/goal_src/jak3/dgos/mhctycst.gd b/goal_src/jak3/dgos/mhctycst.gd new file mode 100644 index 000000000..6aea07953 --- /dev/null +++ b/goal_src/jak3/dgos/mhctycst.gd @@ -0,0 +1,9 @@ +("MHCTYCST.DGO" + ("tpage-2367.o" + "tpage-2379.go" + "daxter-highres-ag.go" + "darkjak-highres-ag.go" + "mhcity-de-tower-egg-ag.go" + "particleman-ag.go" + "mhctycst.o" + )) diff --git a/goal_src/jak3/dgos/mia.gd b/goal_src/jak3/dgos/mia.gd new file mode 100644 index 000000000..473b63f4b --- /dev/null +++ b/goal_src/jak3/dgos/mia.gd @@ -0,0 +1,33 @@ +("MIA.DGO" + ("basebutton.o" + "pecker-ingame.o" + "elec-gate.o" + "mine-obs-h.o" + "mine-part.o" + "mine-mood.o" + "mine-platforms.o" + "mine-obs.o" + "mine-train.o" + "mine-scenes.o" + "mine-ocean.o" + "manta.o" + "gekko.o" + "rat.o" + "monster-frog.o" + "tpage-924.go" + "tpage-925.go" + "tpage-989.go" + "tpage-1727.go" + "daxter-highres-ag.go" + "pecker-ingame-ag.go" + "jakc-highres-ag.go" + "min-bomb-train-ag.go" + "min-bomb-elevator-ag.go" + "min-airlock-door-ag.go" + "leggings-fma-ag.go" + "min-elev-doors-ag.go" + "min-elevator-ag.go" + "min-boss-elev-ag.go" + "min-bomb-train-debris-ag.go" + "minea-vis.o" + )) diff --git a/goal_src/jak3/dgos/mib.gd b/goal_src/jak3/dgos/mib.gd new file mode 100644 index 000000000..60e46bd41 --- /dev/null +++ b/goal_src/jak3/dgos/mib.gd @@ -0,0 +1,22 @@ +("MIB.DGO" + ("tpage-926.o" + "tpage-929.go" + "tpage-928.go" + "tpage-1856.go" + "monster-frog-ag.go" + "min-bomb-train-ag.go" + "rat-ag.go" + "manta-ag.go" + "min-moving-plat-ag.go" + "min-folding-plat-ag.go" + "min-rat-engine-ag.go" + "min-bridge-ag.go" + "min-rotating-plat-ag.go" + "min-crane-ag.go" + "min-elev-track-ag.go" + "min-ramp-ag.go" + "light-eco-vent-ag.go" + "leggings-ag.go" + "min-crane-switch-ag.go" + "mineb-vis.o" + )) diff --git a/goal_src/jak3/dgos/mic.gd b/goal_src/jak3/dgos/mic.gd new file mode 100644 index 000000000..6247ca303 --- /dev/null +++ b/goal_src/jak3/dgos/mic.gd @@ -0,0 +1,19 @@ +("MIC.DGO" + ("grunt.o" + "tpage-930.go" + "tpage-932.go" + "tpage-931.go" + "kg-grunt-ag.go" + "pecker-ingame-ag.go" + "grunt-ag.go" + "gekko-ag.go" + "min-door-break-ag.go" + "manta-ag.go" + "min-falling-elevator-ag.go" + "min-moving-step-ag.go" + "min-target-sign-ag.go" + "min-falling-step-ag.go" + "min-door-ag.go" + "light-eco-vent-ag.go" + "minec-vis.o" + )) diff --git a/goal_src/jak3/dgos/mined.gd b/goal_src/jak3/dgos/mined.gd new file mode 100644 index 000000000..4f598cf3e --- /dev/null +++ b/goal_src/jak3/dgos/mined.gd @@ -0,0 +1,38 @@ +("MINED.DGO" + ("prebot-eco-creature.o" + "mined-mood.o" + "mined-texture.o" + "prebot-part.o" + "prebot-setup.o" + "prebot-states.o" + "prebot-extras.o" + "mined-scenes.o" + "tpage-1620.go" + "tpage-1621.go" + "tpage-1651.go" + "tpage-1691.go" + "tpage-1622.go" + "tpage-1623.go" + "tpage-2776.go" + "tpage-1612.go" + "prebot-ag.go" + "daxter-highres-ag.go" + "jakc-highres-ag.go" + "veger-highres-ag.go" + "cav-prebot-break-ag.go" + "prebot-tentacle-ag.go" + "cav-eco-lg-ag.go" + "min-bomb-train-ag.go" + "cav-railblocker-ag.go" + "com-airlock-inner-ag.go" + "prebot-shockwave-ag.go" + "cav-pillar-ag.go" + "cav-airlock-door-ag.go" + "prebot-camera-ag.go" + "cav-break-bridge-ag.go" + "cav-exit-door-ag.go" + "particleman-ag.go" + "cav-minecar-ag.go" + "blue-two-upgrade-ag.go" + "mined.o" + )) diff --git a/goal_src/jak3/dgos/minee.gd b/goal_src/jak3/dgos/minee.gd new file mode 100644 index 000000000..d1fdea08e --- /dev/null +++ b/goal_src/jak3/dgos/minee.gd @@ -0,0 +1,11 @@ +("MINEE.DGO" + ("minee-scenes.o" + "tpage-2140.go" + "tpage-2142.go" + "tpage-2141.go" + "daxter-highres-ag.go" + "jakc-highres-ag.go" + "com-airlock-inner-ag.go" + "sew-elevator-ag.go" + "minee.o" + )) diff --git a/goal_src/jak3/dgos/museum.gd b/goal_src/jak3/dgos/museum.gd new file mode 100644 index 000000000..65877abdc --- /dev/null +++ b/goal_src/jak3/dgos/museum.gd @@ -0,0 +1,17 @@ +("MUSEUM.DGO" + ("museum-anims+0-ag.o" + "tpage-3296.go" + "tpage-3310.go" + "tpage-3297.go" + "kleever-highres-ag.go" + "pecker-highres-ag.go" + "keira-highres-ag.go" + "jakc-highres-ag.go" + "seem-highres-ag.go" + "samos-highres-ag.go" + "tess-highres-ag.go" + "torn-highres-ag.go" + "ashelin-highres-ag.go" + "onin-highres-ag.go" + "museum.o" + )) diff --git a/goal_src/jak3/dgos/museum2.gd b/goal_src/jak3/dgos/museum2.gd new file mode 100644 index 000000000..3f1bc014a --- /dev/null +++ b/goal_src/jak3/dgos/museum2.gd @@ -0,0 +1,18 @@ +("MUSEUM2.DGO" + ("museum-2-anims+0-ag.o" + "tpage-3311.go" + "tpage-3313.go" + "tpage-3312.go" + "errol-ag.go" + "ottsel-daxpants-ag.go" + "sig-highres-ag.go" + "ottsel-dummy-ag.go" + "king-highres-ag.go" + "veger-highres-ag.go" + "ottsel-surfer-ag.go" + "ottsel-veger-ag.go" + "ottsel-leader-ag.go" + "ottsel-tess-ag.go" + "jinx-highres-ag.go" + "museum2.o" + )) diff --git a/goal_src/jak3/dgos/museum3.gd b/goal_src/jak3/dgos/museum3.gd new file mode 100644 index 000000000..46351e0fe --- /dev/null +++ b/goal_src/jak3/dgos/museum3.gd @@ -0,0 +1,14 @@ +("MUSEUM3.DGO" + ("museum-3-anims+0-ag.o" + "tpage-3360.go" + "tpage-3362.go" + "tpage-3361.go" + "daxter-highres-ag.go" + "keira-highres-ag.go" + "kor-highres-ag.go" + "jak-highres-ag.go" + "samos-highres-ag.go" + "red-crimson-guard-highres-ag.go" + "youngsamos-highres-ag.go" + "museum3.o" + )) diff --git a/goal_src/jak3/dgos/museum3b.gd b/goal_src/jak3/dgos/museum3b.gd new file mode 100644 index 000000000..14f6177de --- /dev/null +++ b/goal_src/jak3/dgos/museum3b.gd @@ -0,0 +1,12 @@ +("MUSEUM3B.DGO" + ("tpage-3415.o" + "tpage-3416.go" + "brutter-highres-ag.go" + "krew-ag.go" + "vin-ag.go" + "crocadog-highres-ag.go" + "baron-highres-ag.go" + "errol-highres-ag.go" + "kid-highres-ag.go" + "museum3b.o" + )) diff --git a/goal_src/jak3/dgos/museum4.gd b/goal_src/jak3/dgos/museum4.gd new file mode 100644 index 000000000..7af91b28d --- /dev/null +++ b/goal_src/jak3/dgos/museum4.gd @@ -0,0 +1,28 @@ +("MUSEUM4.DGO" + ("tpage-3390.o" + "tpage-3365.go" + "tpage-3419.go" + "tpage-3386.go" + "jak-one-ag.go" + "gambler-ag.go" + "ogreboss-ag.go" + "yellowsage-ag.go" + "redsage-ag.go" + "bluesage-ag.go" + "evilsis-ag.go" + "farmer-ag.go" + "evilbro-ag.go" + "minertall-ag.go" + "sidekick-human-ag.go" + "sculptor-ag.go" + "bird-lady-ag.go" + "geologist-ag.go" + "fisher-ag.go" + "explorer-ag.go" + "mayor-ag.go" + "billy-ag.go" + "warrior-ag.go" + "minershort-ag.go" + "flutflut-ag.go" + "museum4.o" + )) diff --git a/goal_src/jak3/dgos/museum4b.gd b/goal_src/jak3/dgos/museum4b.gd new file mode 100644 index 000000000..6684e405b --- /dev/null +++ b/goal_src/jak3/dgos/museum4b.gd @@ -0,0 +1,5 @@ +("MUSEUM4B.DGO" + ("tpage-3417.o" + "babak-ag.go" + "museum4b.o" + )) diff --git a/goal_src/jak3/dgos/nsa.gd b/goal_src/jak3/dgos/nsa.gd new file mode 100644 index 000000000..375eedf70 --- /dev/null +++ b/goal_src/jak3/dgos/nsa.gd @@ -0,0 +1,16 @@ +("NSA.DGO" + ("nstb-texture.o" + "nst-mood.o" + "nst-part.o" + "nst-obs.o" + "mh-bat.o" + "egg-spider.o" + "nest-scenes.o" + "tpage-593.go" + "tpage-795.go" + "tpage-731.go" + "tpage-446.go" + "tpage-1072.go" + "egg-spider-ag.go" + "nsta-vis.o" + )) diff --git a/goal_src/jak3/dgos/nsb.gd b/goal_src/jak3/dgos/nsb.gd new file mode 100644 index 000000000..1f7263476 --- /dev/null +++ b/goal_src/jak3/dgos/nsb.gd @@ -0,0 +1,13 @@ +("NSB.DGO" + ("tpage-605.o" + "tpage-607.go" + "tpage-606.go" + "tpage-604.go" + "tpage-608.go" + "tpage-646.go" + "water-anim-nst-ag.go" + "nst-cocoon-b-ag.go" + "nst-falling-stone-bridge-ag.go" + "nst-falling-stone-bridge-goo-ag.go" + "nstb-vis.o" + )) diff --git a/goal_src/jak3/dgos/oasiscst.gd b/goal_src/jak3/dgos/oasiscst.gd new file mode 100644 index 000000000..e46fc451b --- /dev/null +++ b/goal_src/jak3/dgos/oasiscst.gd @@ -0,0 +1,11 @@ +("OASISCST.DGO" + ("tpage-1600.o" + "tpage-1601.go" + "daxter-highres-ag.go" + "jakc-highres-ag.go" + "ashelin-highres-ag.go" + "interceptor-wheel-fma-ag.go" + "kidmedallion-ag.go" + "particleman-ag.go" + "oasiscst.o" + )) diff --git a/goal_src/jak3/dgos/onintent.gd b/goal_src/jak3/dgos/onintent.gd new file mode 100644 index 000000000..4130bf62f --- /dev/null +++ b/goal_src/jak3/dgos/onintent.gd @@ -0,0 +1,15 @@ +("ONINTENT.DGO" + ("onintent-part.o" + "onintent-scenes.o" + "tpage-1158.go" + "tpage-1156.go" + "tpage-1159.go" + "tpage-1163.go" + "tpage-1157.go" + "daxter-highres-ag.go" + "pecker-highres-ag.go" + "jakc-highres-ag.go" + "samos-highres-ag.go" + "onin-highres-ag.go" + "onintent.o" + )) diff --git a/goal_src/jak3/dgos/outcast3.gd b/goal_src/jak3/dgos/outcast3.gd new file mode 100644 index 000000000..1f415fbd7 --- /dev/null +++ b/goal_src/jak3/dgos/outcast3.gd @@ -0,0 +1,7 @@ +("OUTCAST3.DGO" + ("tpage-3306.o" + "tpage-3307.go" + "torn-simple-ag.go" + "keira-simple-ag.go" + "outcast3.o" + )) diff --git a/goal_src/jak3/dgos/outrocst.gd b/goal_src/jak3/dgos/outrocst.gd new file mode 100644 index 000000000..930b44701 --- /dev/null +++ b/goal_src/jak3/dgos/outrocst.gd @@ -0,0 +1,13 @@ +("OUTROCST.DGO" + ("tpage-2596.o" + "tpage-2597.go" + "kleever-highres-ag.go" + "pecker-highres-ag.go" + "jakc-highres-ag.go" + "seem-highres-ag.go" + "samos-highres-ag.go" + "tess-highres-ag.go" + "ashelin-highres-ag.go" + "particleman-ag.go" + "outrocst.o" + )) diff --git a/goal_src/jak3/dgos/powergd.gd b/goal_src/jak3/dgos/powergd.gd new file mode 100644 index 000000000..050659797 --- /dev/null +++ b/goal_src/jak3/dgos/powergd.gd @@ -0,0 +1,15 @@ +("POWERGD.DGO" + ("tpage-2187.o" + "tpage-2249.go" + "tpage-3164.go" + "tpage-3181.go" + "kg-grunt-ag.go" + "grunt-ag.go" + "flitter-ag.go" + "daxter-pac-man-ag.go" + "cipher-ag.go" + "pow-rings-ag.go" + "switcher-ag.go" + "grunt-head-ag.go" + "powergd.o" + )) diff --git a/goal_src/jak3/dgos/preca.gd b/goal_src/jak3/dgos/preca.gd new file mode 100644 index 000000000..587c92b08 --- /dev/null +++ b/goal_src/jak3/dgos/preca.gd @@ -0,0 +1,43 @@ +("PRECA.DGO" + ("hover-formation-h.o" + "hover-nav-control-h.o" + "hover-enemy-h.o" + "hover-nav-control.o" + "hover-enemy.o" + "hover-formation.o" + "hover-nav-edit.o" + "dp-bipedal-part.o" + "dp-bipedal-shot.o" + "dp-bipedal.o" + "prim-beam.o" + "neo-wasp-part.o" + "neo-wasp.o" + "precurd-obs.o" + "precurd-scenes.o" + "precurd-part.o" + "hover-nav-precura.o" + "precura-mood.o" + "precura-part.o" + "precura-obs.o" + "precura-obs2.o" + "tpage-2632.go" + "tpage-2638.go" + "tpage-2634.go" + "tpage-2635.go" + "tpage-2678.go" + "precur-generator-d-ag.go" + "dp-bipedal-ag.go" + "precur-generator-a-ag.go" + "precur-bomb-ag.go" + "precur-door-d-ag.go" + "precur-door-b-ag.go" + "precur-platform-round-ag.go" + "precur-bomb-spawner-ag.go" + "precur-door-a-ag.go" + "precur-jump-plate-ag.go" + "shield-sphere-explode-ag.go" + "shield-sphere-distort-ag.go" + "precur-generator-d-gem-ag.go" + "shield-sphere-ag.go" + "precura-vis.o" + )) diff --git a/goal_src/jak3/dgos/precb.gd b/goal_src/jak3/dgos/precb.gd new file mode 100644 index 000000000..64390d9f4 --- /dev/null +++ b/goal_src/jak3/dgos/precb.gd @@ -0,0 +1,15 @@ +("PRECB.DGO" + ("tpage-2633.o" + "tpage-2636.go" + "precur-generator-b-ag.go" + "precur-generator-c-ag.go" + "precur-box-ag.go" + "precur-door-d-ag.go" + "precur-door-b-ag.go" + "precur-platform-round-ag.go" + "precur-bomb-spawner-ag.go" + "shield-sphere-explode-ag.go" + "shield-sphere-distort-ag.go" + "shield-sphere-ag.go" + "precurb-vis.o" + )) diff --git a/goal_src/jak3/dgos/precc.gd b/goal_src/jak3/dgos/precc.gd new file mode 100644 index 000000000..149f2dbc8 --- /dev/null +++ b/goal_src/jak3/dgos/precc.gd @@ -0,0 +1,15 @@ +("PRECC.DGO" + ("jak-pole+0-ag.o" + "target-tube.o" + "jak-tube+0-ag.go" + "precurc-part.o" + "precurc-mood.o" + "precurc-obs.o" + "tpage-2640.go" + "tpage-2642.go" + "tpage-2903.go" + "precur-elevator-ag.go" + "precur-door-a-ag.go" + "precur-swingpole-pop-ag.go" + "precurc-vis.o" + )) diff --git a/goal_src/jak3/dgos/precd.gd b/goal_src/jak3/dgos/precd.gd new file mode 100644 index 000000000..8232f57cd --- /dev/null +++ b/goal_src/jak3/dgos/precd.gd @@ -0,0 +1,53 @@ +("PRECD.DGO" + ("prim-beam.o" + "precurd-obs.o" + "precurd-scenes.o" + "precurd-part.o" + "tpage-2637.go" + "tpage-2639.go" + "tpage-2912.go" + "tpage-2712.go" + "tpage-3188.go" + "tpage-3387.go" + "daxter-highres-ag.go" + "errol-ag.go" + "jakc-highres-ag.go" + "terraformer-leg-c-ag.go" + "precur-bridge-path-break-ag.go" + "terraformer-head-ag.go" + "terraformer-ag.go" + "terraformer-leg-b-ag.go" + "dm-ship-break-ag.go" + "terraformer-leg-a-ag.go" + "dm-ship-ag.go" + "terraformer-spike-ag.go" + "dm-ship-tent-brk-ag.go" + "precur-wall-window-big-ag.go" + "precur-bridge-a-path-break-ag.go" + "precur-bridge-a-blocks-break-ag.go" + "precur-bridge-b-path-break-ag.go" + "precur-bridge-e-path-break-ag.go" + "precur-bridge-d-path-break-ag.go" + "precur-bridge-o-blocks-break-ag.go" + "precur-bridge-d-blocks-break-ag.go" + "precur-bridge-c-path-break-ag.go" + "precur-bridge-b-blocks-break-ag.go" + "jakc-wings-ag.go" + "precur-bridge-c-blocks-break-ag.go" + "precur-bridge-h-blocks-break-ag.go" + "precur-bridge-l-blocks-break-ag.go" + "precur-bridge-e-blocks-break-ag.go" + "precur-bridge-k-blocks-break-ag.go" + "precur-bridge-f-blocks-break-ag.go" + "precur-bridge-m-blocks-break-ag.go" + "precur-bridge-i-blocks-break-ag.go" + "precur-bridge-j-blocks-break-ag.go" + "precur-bridge-n-blocks-break-ag.go" + "precur-bridge-p-blocks-break-ag.go" + "precur-door-a-ag.go" + "precur-warp-effect-ag.go" + "precur-planet-ag.go" + "precur-bridge-g-blocks-break-ag.go" + "particleman-ag.go" + "precurd-vis.o" + )) diff --git a/goal_src/jak3/dgos/raila.gd b/goal_src/jak3/dgos/raila.gd new file mode 100644 index 000000000..b2f19e2b7 --- /dev/null +++ b/goal_src/jak3/dgos/raila.gd @@ -0,0 +1,42 @@ +("RAILA.DGO" + ("squad-control-h.o" + "squad-control.o" + "vehicle-h.o" + "vehicle-part.o" + "vehicle-effects.o" + "vehicle.o" + "vehicle-util.o" + "vehicle-physics.o" + "vehicle-states.o" + "vehicle-manager.o" + "vehicle-hud.o" + "turret-control.o" + "target-pilot.o" + "pilot-states.o" + "comb-mood.o" + "comb-part.o" + "comb-obs.o" + "comb-sentry.o" + "comb-field.o" + "comb-scenes.o" + "h-sled.o" + "comb-travel.o" + "comba-init.o" + "jak-pilot+0-ag.go" + "jak-pilot-hcar+0-ag.go" + "jak-pilot-wcar+0-ag.go" + "jak-pilot-gun+0-ag.go" + "tpage-3091.go" + "tpage-2501.go" + "tpage-2905.go" + "tpage-3090.go" + "tpage-3015.go" + "comb-pillar-ag.go" + "pre-sled-ag.go" + "comb-obstacle-ag.go" + "comb-sentinel-ag.go" + "comb-rail-rider-ag.go" + "comb-energy-ring-ag.go" + "vehicle-explosion-ag.go" + "raila.o" + )) diff --git a/goal_src/jak3/dgos/railb.gd b/goal_src/jak3/dgos/railb.gd new file mode 100644 index 000000000..29af86469 --- /dev/null +++ b/goal_src/jak3/dgos/railb.gd @@ -0,0 +1,4 @@ +("RAILB.DGO" + ("tpage-2487.o" + "railb.o" + )) diff --git a/goal_src/jak3/dgos/railb2.gd b/goal_src/jak3/dgos/railb2.gd new file mode 100644 index 000000000..b0980c851 --- /dev/null +++ b/goal_src/jak3/dgos/railb2.gd @@ -0,0 +1,4 @@ +("RAILB2.DGO" + ("tpage-2708.o" + "railb2.o" + )) diff --git a/goal_src/jak3/dgos/railc.gd b/goal_src/jak3/dgos/railc.gd new file mode 100644 index 000000000..0368e34b9 --- /dev/null +++ b/goal_src/jak3/dgos/railc.gd @@ -0,0 +1,4 @@ +("RAILC.DGO" + ("tpage-2484.o" + "railc.o" + )) diff --git a/goal_src/jak3/dgos/railcst.gd b/goal_src/jak3/dgos/railcst.gd new file mode 100644 index 000000000..6bd37be05 --- /dev/null +++ b/goal_src/jak3/dgos/railcst.gd @@ -0,0 +1,24 @@ +("RAILCST.DGO" + ("tpage-2711.o" + "tpage-2512.go" + "tpage-2904.go" + "tpage-2513.go" + "daxter-highres-ag.go" + "jakc-highres-ag.go" + "ottsel-dummy-ag.go" + "veger-highres-ag.go" + "ottsel-surfer-ag.go" + "ottsel-veger-ag.go" + "ottsel-leader-ag.go" + "comb-rail-rider-ag.go" + "precursor-controller-ag.go" + "precursor-ag.go" + "eco-crystal-sphere-simple-ag.go" + "eco-crystal-sphere-ag.go" + "pre-mike-ag.go" + "plat-ag.go" + "fma-gun-ag.go" + "plat-fma-ag.go" + "particleman-ag.go" + "railcst.o" + )) diff --git a/goal_src/jak3/dgos/raild.gd b/goal_src/jak3/dgos/raild.gd new file mode 100644 index 000000000..60dc0e19b --- /dev/null +++ b/goal_src/jak3/dgos/raild.gd @@ -0,0 +1,6 @@ +("RAILD.DGO" + ("tpage-2486.o" + "blocking-plane-ag.go" + "spotlight-ag.go" + "raild.o" + )) diff --git a/goal_src/jak3/dgos/raile.gd b/goal_src/jak3/dgos/raile.gd new file mode 100644 index 000000000..e59f4b853 --- /dev/null +++ b/goal_src/jak3/dgos/raile.gd @@ -0,0 +1,8 @@ +("RAILE.DGO" + ("tpage-2485.o" + "dummy1-ag.go" + "dummy2-ag.go" + "dummy3-ag.go" + "dummy4-ag.go" + "raile.o" + )) diff --git a/goal_src/jak3/dgos/railf.gd b/goal_src/jak3/dgos/railf.gd new file mode 100644 index 000000000..6165fae85 --- /dev/null +++ b/goal_src/jak3/dgos/railf.gd @@ -0,0 +1,4 @@ +("RAILF.DGO" + ("tpage-2483.o" + "railf.o" + )) diff --git a/goal_src/jak3/dgos/railx.gd b/goal_src/jak3/dgos/railx.gd new file mode 100644 index 000000000..a606525e3 --- /dev/null +++ b/goal_src/jak3/dgos/railx.gd @@ -0,0 +1,11 @@ +("RAILX.DGO" + ("railx-mood.o" + "railx-obs.o" + "railx-scenes.o" + "tpage-2336.go" + "rail-warp-gate-ag.go" + "rail-gun-dark-ag.go" + "rail-oracle-door-ag.go" + "rail-oracle-eyes-ag.go" + "railx.o" + )) diff --git a/goal_src/jak3/dgos/rbct.gd b/goal_src/jak3/dgos/rbct.gd new file mode 100644 index 000000000..1ec703a7d --- /dev/null +++ b/goal_src/jak3/dgos/rbct.gd @@ -0,0 +1,17 @@ +("RBCT.DGO" + ("rublcst-scenes.o" + "tpage-3403.go" + "tpage-3405.go" + "tpage-3404.go" + "tpage-3406.go" + "daxter-highres-ag.go" + "darkjak-highres-ag.go" + "king-highres-ag.go" + "veger-highres-ag.go" + "kid-ag.go" + "comb-rail-rider-ag.go" + "rhino-wheel-fma-ag.go" + "kidmedallion-ag.go" + "particleman-ag.go" + "rublcst-vis.o" + )) diff --git a/goal_src/jak3/dgos/ruba.gd b/goal_src/jak3/dgos/ruba.gd new file mode 100644 index 000000000..39ba392aa --- /dev/null +++ b/goal_src/jak3/dgos/ruba.gd @@ -0,0 +1,17 @@ +("RUBA.DGO" + ("tpage-2065.o" + "tpage-2067.go" + "tpage-2066.go" + "tpage-2416.go" + "tpage-2677.go" + "daxter-highres-ag.go" + "pecker-highres-ag.go" + "king-highres-ag.go" + "neo-satellite-ag.go" + "neo-satellite-break-ag.go" + "rub-rhino-door-ag.go" + "rhino-wheel-fma-ag.go" + "particleman-ag.go" + "blocking-plane-ag.go" + "rubblea-vis.o" + )) diff --git a/goal_src/jak3/dgos/ruba2.gd b/goal_src/jak3/dgos/ruba2.gd new file mode 100644 index 000000000..32e9ad1a2 --- /dev/null +++ b/goal_src/jak3/dgos/ruba2.gd @@ -0,0 +1,9 @@ +("RUBA2.DGO" + ("tpage-2508.o" + "tpage-2509.go" + "tpage-2510.go" + "rub-tower-ag.go" + "rub-electric-gate-panel-b-ag.go" + "rub-electric-gate-panel-a-ag.go" + "rubblea2-vis.o" + )) diff --git a/goal_src/jak3/dgos/rubb.gd b/goal_src/jak3/dgos/rubb.gd new file mode 100644 index 000000000..88dc04fc7 --- /dev/null +++ b/goal_src/jak3/dgos/rubb.gd @@ -0,0 +1,11 @@ +("RUBB.DGO" + ("tpage-2058.o" + "tpage-2059.go" + "tpage-2060.go" + "rub-rhino-door-ag.go" + "rub-electric-gate-panel-b-ag.go" + "rub-electric-gate-panel-a-ag.go" + "security-wall-ag.go" + "spotlight-ag.go" + "rubbleb-vis.o" + )) diff --git a/goal_src/jak3/dgos/rubc.gd b/goal_src/jak3/dgos/rubc.gd new file mode 100644 index 000000000..aa24827dd --- /dev/null +++ b/goal_src/jak3/dgos/rubc.gd @@ -0,0 +1,10 @@ +("RUBC.DGO" + ("tpage-2055.o" + "tpage-2056.go" + "tpage-2057.go" + "rub-rhino-door-ag.go" + "rub-tower-ag.go" + "rub-electric-gate-panel-d-ag.go" + "rub-electric-gate-panel-c-ag.go" + "rubblec-vis.o" + )) diff --git a/goal_src/jak3/dgos/sea.gd b/goal_src/jak3/dgos/sea.gd new file mode 100644 index 000000000..b8affe22d --- /dev/null +++ b/goal_src/jak3/dgos/sea.gd @@ -0,0 +1,56 @@ +("SEA.DGO" + ("battle.o" + "chain-physics.o" + "jump-pad.o" + "roboguard.o" + "hover-formation-h.o" + "hover-nav-control-h.o" + "hover-enemy-h.o" + "hover-nav-control.o" + "hover-enemy.o" + "hover-formation.o" + "hover-nav-edit.o" + "robo-hover.o" + "kg-grunt.o" + "hover-nav-sewb.o" + "hover-nav-sewg.o" + "hover-nav-sewl.o" + "hover-nav-sewo.o" + "hover-nav-sewj.o" + "sewer-part.o" + "sewer-mood.o" + "sew-laser-guard.o" + "sewer-obs.o" + "sewer-obs2.o" + "sewer-move-turret.o" + "sewer-scenes.o" + "sew-laser-turret.o" + "sew-platforms.o" + "sew-whirlpool.o" + "saberfish.o" + "saberfish-spawner.o" + "needle-fish.o" + "sewer-frog.o" + "spydroid-orig.o" + "flyingsaw.o" + "sewer-texture.o" + "kg-hopper.o" + "neo-grenadier.o" + "neo-juicer.o" + "mh-wasp-part.o" + "mh-wasp.o" + "tpage-740.go" + "tpage-741.go" + "tpage-800.go" + "tpage-1411.go" + "daxter-highres-ag.go" + "jakc-highres-ag.go" + "roboguard-ag.go" + "saberfish-ag.go" + "sewer-frog-ag.go" + "com-airlock-inner-ag.go" + "sew-elevator-ag.go" + "kg-debris-ag.go" + "particleman-ag.go" + "sewa-vis.o" + )) diff --git a/goal_src/jak3/dgos/seb.gd b/goal_src/jak3/dgos/seb.gd new file mode 100644 index 000000000..f790ca1bb --- /dev/null +++ b/goal_src/jak3/dgos/seb.gd @@ -0,0 +1,13 @@ +("SEB.DGO" + ("tpage-742.o" + "tpage-753.go" + "tpage-743.go" + "kg-grunt-ag.go" + "robo-hover-ag.go" + "com-airlock-outer-ag.go" + "com-airlock-inner-ag.go" + "sew-float-plat-ag.go" + "sew-floor-switch-ag.go" + "kg-debris-ag.go" + "sewb-vis.o" + )) diff --git a/goal_src/jak3/dgos/sec.gd b/goal_src/jak3/dgos/sec.gd new file mode 100644 index 000000000..2806fb9f5 --- /dev/null +++ b/goal_src/jak3/dgos/sec.gd @@ -0,0 +1,13 @@ +("SEC.DGO" + ("tpage-744.o" + "tpage-754.go" + "tpage-745.go" + "tpage-751.go" + "kg-grunt-ag.go" + "kg-hopper-ag.go" + "robo-hover-ag.go" + "com-airlock-outer-ag.go" + "sew-laser-guard-ag.go" + "kg-debris-ag.go" + "sewc-vis.o" + )) diff --git a/goal_src/jak3/dgos/sed.gd b/goal_src/jak3/dgos/sed.gd new file mode 100644 index 000000000..322771723 --- /dev/null +++ b/goal_src/jak3/dgos/sed.gd @@ -0,0 +1,19 @@ +("SED.DGO" + ("target-ladder.o" + "ladder.o" + "jak-ladder+0-ag.go" + "tpage-746.go" + "tpage-752.go" + "tpage-747.go" + "tpage-750.go" + "sew-gunturret-ag.go" + "robo-hover-ag.go" + "sew-laser-turret-ag.go" + "ladder-ag.go" + "sew-jump-pad-ag.go" + "sew-gate-ag.go" + "sew-wall-switch-ag.go" + "kg-debris-ag.go" + "sew-slide-step-ag.go" + "sewd-vis.o" + )) diff --git a/goal_src/jak3/dgos/see.gd b/goal_src/jak3/dgos/see.gd new file mode 100644 index 000000000..1ce01db71 --- /dev/null +++ b/goal_src/jak3/dgos/see.gd @@ -0,0 +1,13 @@ +("SEE.DGO" + ("tpage-748.o" + "tpage-756.go" + "tpage-749.go" + "tpage-755.go" + "kg-grunt-ag.go" + "com-airlock-outer-ag.go" + "sew-moving-step-a-ag.go" + "kg-debris-ag.go" + "sew-power-switch-ag.go" + "sew-moving-step-b-ag.go" + "sewe-vis.o" + )) diff --git a/goal_src/jak3/dgos/sef.gd b/goal_src/jak3/dgos/sef.gd new file mode 100644 index 000000000..59a96a76a --- /dev/null +++ b/goal_src/jak3/dgos/sef.gd @@ -0,0 +1,11 @@ +("SEF.DGO" + ("tpage-757.o" + "tpage-759.go" + "tpage-758.go" + "com-airlock-outer-ag.go" + "com-airlock-inner-ag.go" + "sew-poison-switch-ag.go" + "sew-gas-step-ag.go" + "sew-curved-door-ag.go" + "sewf-vis.o" + )) diff --git a/goal_src/jak3/dgos/seg.gd b/goal_src/jak3/dgos/seg.gd new file mode 100644 index 000000000..561bfdf17 --- /dev/null +++ b/goal_src/jak3/dgos/seg.gd @@ -0,0 +1,14 @@ +("SEG.DGO" + ("tpage-1127.o" + "tpage-1133.go" + "tpage-1128.go" + "tpage-1126.go" + "robo-hover-ag.go" + "com-airlock-inner-ag.go" + "sew-fan-ag.go" + "sew-laser-beam-ag.go" + "sew-jump-pad-ag.go" + "sew-move-plat-ag.go" + "kg-debris-ag.go" + "sewg-vis.o" + )) diff --git a/goal_src/jak3/dgos/seh.gd b/goal_src/jak3/dgos/seh.gd new file mode 100644 index 000000000..fec288a79 --- /dev/null +++ b/goal_src/jak3/dgos/seh.gd @@ -0,0 +1,17 @@ +("SEH.DGO" + ("elec-gate.o" + "tpage-1125.go" + "tpage-1132.go" + "tpage-1129.go" + "tpage-1131.go" + "scoutbot-ag.go" + "kg-hopper-ag.go" + "spydroid-orig-ag.go" + "robo-hover-ag.go" + "sew-laser-beam-ag.go" + "sew-move-turret-ag.go" + "sew-grate-plat-ag.go" + "sew-move-plat-ag.go" + "kg-debris-ag.go" + "sewh-vis.o" + )) diff --git a/goal_src/jak3/dgos/sei.gd b/goal_src/jak3/dgos/sei.gd new file mode 100644 index 000000000..f9b0df091 --- /dev/null +++ b/goal_src/jak3/dgos/sei.gd @@ -0,0 +1,12 @@ +("SEI.DGO" + ("tpage-1123.o" + "tpage-1130.go" + "tpage-1124.go" + "tpage-1122.go" + "com-airlock-outer-ag.go" + "flyingsaw-ag.go" + "sew-fence-gate-ag.go" + "sew-floor-switch-ag.go" + "sew-rove-plat-ag.go" + "sewi-vis.o" + )) diff --git a/goal_src/jak3/dgos/sej.gd b/goal_src/jak3/dgos/sej.gd new file mode 100644 index 000000000..32c900cd0 --- /dev/null +++ b/goal_src/jak3/dgos/sej.gd @@ -0,0 +1,11 @@ +("SEJ.DGO" + ("tpage-1135.o" + "tpage-1137.go" + "tpage-1136.go" + "tpage-1134.go" + "robo-hover-ag.go" + "com-airlock-outer-ag.go" + "com-airlock-inner-ag.go" + "kg-debris-ag.go" + "sewj-vis.o" + )) diff --git a/goal_src/jak3/dgos/sek.gd b/goal_src/jak3/dgos/sek.gd new file mode 100644 index 000000000..224094f6a --- /dev/null +++ b/goal_src/jak3/dgos/sek.gd @@ -0,0 +1,9 @@ +("SEK.DGO" + ("tpage-1121.o" + "tpage-1784.go" + "tpage-1783.go" + "com-airlock-outer-ag.go" + "com-airlock-inner-ag.go" + "sew-curved-door-ag.go" + "sewk-vis.o" + )) diff --git a/goal_src/jak3/dgos/sel.gd b/goal_src/jak3/dgos/sel.gd new file mode 100644 index 000000000..f3dc9610f --- /dev/null +++ b/goal_src/jak3/dgos/sel.gd @@ -0,0 +1,10 @@ +("SEL.DGO" + ("tpage-1143.o" + "tpage-1145.go" + "tpage-1144.go" + "tpage-1142.go" + "neo-wasp-ag.go" + "com-airlock-outer-ag.go" + "com-airlock-inner-ag.go" + "sewl-vis.o" + )) diff --git a/goal_src/jak3/dgos/sem.gd b/goal_src/jak3/dgos/sem.gd new file mode 100644 index 000000000..171ad7aad --- /dev/null +++ b/goal_src/jak3/dgos/sem.gd @@ -0,0 +1,12 @@ +("SEM.DGO" + ("tpage-1138.o" + "tpage-1141.go" + "tpage-1139.go" + "tpage-1140.go" + "needle-fish-ag.go" + "com-airlock-outer-ag.go" + "sew-fan-ag.go" + "sew-jump-pad-ag.go" + "sew-m-gate-ag.go" + "sewm-vis.o" + )) diff --git a/goal_src/jak3/dgos/sen.gd b/goal_src/jak3/dgos/sen.gd new file mode 100644 index 000000000..bee1f697c --- /dev/null +++ b/goal_src/jak3/dgos/sen.gd @@ -0,0 +1,12 @@ +("SEN.DGO" + ("tpage-1971.o" + "tpage-1973.go" + "tpage-1972.go" + "tpage-1970.go" + "neo-juicer-ag.go" + "neo-grenadier-ag.go" + "com-airlock-inner-ag.go" + "sew-fan-ag.go" + "sew-pipe-ag.go" + "sewn-vis.o" + )) diff --git a/goal_src/jak3/dgos/seo.gd b/goal_src/jak3/dgos/seo.gd new file mode 100644 index 000000000..97161d948 --- /dev/null +++ b/goal_src/jak3/dgos/seo.gd @@ -0,0 +1,9 @@ +("SEO.DGO" + ("tpage-1925.o" + "tpage-1927.go" + "tpage-1926.go" + "neo-wasp-ag.go" + "com-airlock-outer-ag.go" + "com-airlock-inner-ag.go" + "sewo-vis.o" + )) diff --git a/goal_src/jak3/dgos/slumbset.gd b/goal_src/jak3/dgos/slumbset.gd new file mode 100644 index 000000000..3dcc7b32c --- /dev/null +++ b/goal_src/jak3/dgos/slumbset.gd @@ -0,0 +1,11 @@ +("SLUMBSET.DGO" + ("ctyslumb-part.o" + "tpage-2428.go" + "tpage-2432.go" + "tpage-2429.go" + "tpage-2430.go" + "daxter-highres-ag.go" + "keira-highres-ag.go" + "jakc-highres-ag.go" + "slumbset.o" + )) diff --git a/goal_src/jak3/dgos/sta.gd b/goal_src/jak3/dgos/sta.gd new file mode 100644 index 000000000..65fe3cb1b --- /dev/null +++ b/goal_src/jak3/dgos/sta.gd @@ -0,0 +1,11 @@ +("STA.DGO" + ("stadium-mood.o" + "stadium-part.o" + "tpage-1591.go" + "tpage-2553.go" + "tpage-1592.go" + "tpage-2514.go" + "daxter-highres-ag.go" + "light-eco-vent-ag.go" + "stadium-vis.o" + )) diff --git a/goal_src/jak3/dgos/staa.gd b/goal_src/jak3/dgos/staa.gd new file mode 100644 index 000000000..5ccd70adf --- /dev/null +++ b/goal_src/jak3/dgos/staa.gd @@ -0,0 +1,24 @@ +("STAA.DGO" + ("elec-gate.o" + "hover-nav-lpattack.o" + "stadiuma-mood.o" + "stadium-obs.o" + "stadium-scenes.o" + "rubblea-init.o" + "rubble-texture.o" + "stadiuma-part.o" + "rubble-part.o" + "rubble-obs.o" + "spyder.o" + "rapid-gunner.o" + "dm-mine-spider.o" + "mantis.o" + "tpage-2814.go" + "tpage-2816.go" + "tpage-2815.go" + "tpage-2598.go" + "tpage-2450.go" + "stadium-sails-left-ag.go" + "stadium-sails-right-ag.go" + "stadiuma-vis.o" + )) diff --git a/goal_src/jak3/dgos/stb.gd b/goal_src/jak3/dgos/stb.gd new file mode 100644 index 000000000..57f16e17d --- /dev/null +++ b/goal_src/jak3/dgos/stb.gd @@ -0,0 +1,9 @@ +("STB.DGO" + ("tpage-319.o" + "tpage-318.go" + "tpage-1974.go" + "tpage-317.go" + "jakc-highres-ag.go" + "rub-falling-step-ag.go" + "stadiumb-vis.o" + )) diff --git a/goal_src/jak3/dgos/tema.gd b/goal_src/jak3/dgos/tema.gd new file mode 100644 index 000000000..5a7357b8a --- /dev/null +++ b/goal_src/jak3/dgos/tema.gd @@ -0,0 +1,61 @@ +("TEMA.DGO" + ("jak-pole+0-ag.o" + "battle.o" + "hover-formation-h.o" + "hover-nav-control-h.o" + "hover-enemy-h.o" + "hover-nav-control.o" + "hover-enemy.o" + "hover-formation.o" + "hover-nav-edit.o" + "dp-bipedal-part.o" + "dp-bipedal-shot.o" + "dp-bipedal.o" + "hover-nav-templea.o" + "temple-part.o" + "temple-obs.o" + "temple-scenes.o" + "temple-obs2.o" + "temple-mood.o" + "templea-texture.o" + "hover-training.o" + "tomb-baby-spider.o" + "flamer-hover.o" + "tpage-2616.go" + "tpage-2621.go" + "tpage-2618.go" + "tpage-3057.go" + "tpage-2615.go" + "tpage-2688.go" + "tpage-2624.go" + "tpage-3043.go" + "daxter-highres-ag.go" + "jakc-highres-ag.go" + "dp-bipedal-ag.go" + "flamer-lava-ag.go" + "tomb-baby-spider-ag.go" + "tpl-break-door-a-ag.go" + "tpl-holo-eye-ag.go" + "tpl-spike-trap-ag.go" + "tpl-outer-airlock-door-ag.go" + "tpl-watcher-ag.go" + "tpl-door-a-ag.go" + "dark-eco-vent-ag.go" + "tpl-door-switch-ag.go" + "tpl-mardoor-ag.go" + "dark-maker-idol-ag.go" + "warp-gate-ag.go" + "jakc-wings-ag.go" + "urn-b-ag.go" + "urn-c-ag.go" + "shield-sphere-explode-ag.go" + "tpl-banner-ag.go" + "urn-a-ag.go" + "kidmedallion-ag.go" + "tpl-bouncer-ag.go" + "particleman-ag.go" + "shield-sphere-distort-ag.go" + "tpl-oracle-eye-ag.go" + "shield-sphere-ag.go" + "templea-vis.o" + )) diff --git a/goal_src/jak3/dgos/temb.gd b/goal_src/jak3/dgos/temb.gd new file mode 100644 index 000000000..e77922458 --- /dev/null +++ b/goal_src/jak3/dgos/temb.gd @@ -0,0 +1,17 @@ +("TEMB.DGO" + ("tpage-2617.o" + "tpage-2628.go" + "tpage-2625.go" + "tpl-break-alcove-ag.go" + "dark-eco-vent-ag.go" + "light-eco-vent-ag.go" + "tpl-gate-ag.go" + "tpl-fan-three-ag.go" + "tpl-door-b-ag.go" + "tpl-fan-two-ag.go" + "tpl-spinning-plat-ag.go" + "tpl-spindle-ag.go" + "tpl-elec-swing-pole-ag.go" + "tpl-oracle-eye-ag.go" + "templeb-vis.o" + )) diff --git a/goal_src/jak3/dgos/temc.gd b/goal_src/jak3/dgos/temc.gd new file mode 100644 index 000000000..de32e0883 --- /dev/null +++ b/goal_src/jak3/dgos/temc.gd @@ -0,0 +1,11 @@ +("TEMC.DGO" + ("tpage-2620.o" + "tpage-2706.go" + "tpage-2626.go" + "tpage-2627.go" + "tpage-2692.go" + "tpage-3041.go" + "tpl-symbol-ag.go" + "tpl-banner-b-ag.go" + "templec-vis.o" + )) diff --git a/goal_src/jak3/dgos/temd.gd b/goal_src/jak3/dgos/temd.gd new file mode 100644 index 000000000..ab06dc398 --- /dev/null +++ b/goal_src/jak3/dgos/temd.gd @@ -0,0 +1,16 @@ +("TEMD.DGO" + ("templed-obs.o" + "tpage-2619.go" + "tpage-2622.go" + "tpage-3101.go" + "tpage-2623.go" + "tpage-2960.go" + "seem-highres-ag.go" + "tpl-break-bridge-ag.go" + "time-map-ag.go" + "dark-eco-vent-ag.go" + "light-eco-vent-ag.go" + "tpl-elevator-ag.go" + "tpl-bridge-debris-ag.go" + "templed-vis.o" + )) diff --git a/goal_src/jak3/dgos/temp.gd b/goal_src/jak3/dgos/temp.gd new file mode 100644 index 000000000..829c376c2 --- /dev/null +++ b/goal_src/jak3/dgos/temp.gd @@ -0,0 +1,5 @@ +("TEMP.DGO" + ("tpage-3228.o" + "precursor-ship-ag.go" + "temp.o" + )) diff --git a/goal_src/jak3/dgos/templee.gd b/goal_src/jak3/dgos/templee.gd new file mode 100644 index 000000000..81a56fff3 --- /dev/null +++ b/goal_src/jak3/dgos/templee.gd @@ -0,0 +1,6 @@ +("TEMPLEE.DGO" + ("tpage-2909.o" + "veger-highres-ag.go" + "seem-highres-ag.go" + "templee.o" + )) diff --git a/goal_src/jak3/dgos/temx.gd b/goal_src/jak3/dgos/temx.gd new file mode 100644 index 000000000..744a47909 --- /dev/null +++ b/goal_src/jak3/dgos/temx.gd @@ -0,0 +1,15 @@ +("TEMX.DGO" + ("templex-part.o" + "templex-mood.o" + "templex-texture.o" + "templex-scenes.o" + "templex-obs.o" + "tpage-2327.go" + "tpage-2330.go" + "tpage-2328.go" + "tpage-2326.go" + "tpage-2169.go" + "tpl-stone-break-ag.go" + "tpl-inner-airlock-door-ag.go" + "templex-vis.o" + )) diff --git a/goal_src/jak3/dgos/title.gd b/goal_src/jak3/dgos/title.gd new file mode 100644 index 000000000..b89dd7c4b --- /dev/null +++ b/goal_src/jak3/dgos/title.gd @@ -0,0 +1,22 @@ +("TITLE.DGO" + ("desert-dust-storm.o" + "0credits-tx.o" + "1credits-tx.o" + "2credits-tx.o" + "3credits-tx.o" + "4credits-tx.o" + "5credits-tx.o" + "6credits-tx.o" + "7credits-tx.o" + "8credits-tx.o" + "9credits-tx.o" + "10credits-tx.o" + "credits-h.o" + "credits.o" + "title-obs.o" + "tpage-1830.go" + "tpage-1854.go" + "tpage-1324.go" + "jakthreelogo-ag.go" + "title.o" + )) diff --git a/goal_src/jak3/dgos/towb.gd b/goal_src/jak3/dgos/towb.gd new file mode 100644 index 000000000..f8d697f58 --- /dev/null +++ b/goal_src/jak3/dgos/towb.gd @@ -0,0 +1,14 @@ +("TOWB.DGO" + ("tpage-2650.o" + "tpage-2948.go" + "tpage-2652.go" + "tpage-2651.go" + "tpage-2949.go" + "neo-wasp-b-ag.go" + "tow-large-plat-ag.go" + "tow-spawner-ag.go" + "tow-energy-bridge-ag.go" + "tow-tentacle-ag.go" + "neo-debris-ag.go" + "towerb-vis.o" + )) diff --git a/goal_src/jak3/dgos/towera.gd b/goal_src/jak3/dgos/towera.gd new file mode 100644 index 000000000..20fbcf1c2 --- /dev/null +++ b/goal_src/jak3/dgos/towera.gd @@ -0,0 +1,31 @@ +("TOWERA.DGO" + ("battle.o" + "hover-formation-h.o" + "hover-nav-control-h.o" + "hover-enemy-h.o" + "hover-nav-control.o" + "hover-enemy.o" + "hover-formation.o" + "hover-nav-edit.o" + "dp-bipedal-part.o" + "dp-bipedal-shot.o" + "dp-bipedal.o" + "prebot-eco-creature.o" + "neo-wasp-part.o" + "neo-wasp.o" + "hover-nav-towera.o" + "tower-part.o" + "tower-mood.o" + "tower-scenes.o" + "tower-obs.o" + "tpage-2698.go" + "tpage-2699.go" + "dp-bipedal-ag.go" + "cav-eco-lg-ag.go" + "neo-wasp-b-ag.go" + "shield-sphere-explode-ag.go" + "neo-debris-ag.go" + "shield-sphere-distort-ag.go" + "shield-sphere-ag.go" + "towera.o" + )) diff --git a/goal_src/jak3/dgos/towerc.gd b/goal_src/jak3/dgos/towerc.gd new file mode 100644 index 000000000..d05f1166b --- /dev/null +++ b/goal_src/jak3/dgos/towerc.gd @@ -0,0 +1,7 @@ +("TOWERC.DGO" + ("tpage-2299.o" + "tpage-2302.go" + "daxter-highres-ag.go" + "tow-break-ag.go" + "towerc.o" + )) diff --git a/goal_src/jak3/dgos/towercst.gd b/goal_src/jak3/dgos/towercst.gd new file mode 100644 index 000000000..62bb7ce9e --- /dev/null +++ b/goal_src/jak3/dgos/towercst.gd @@ -0,0 +1,20 @@ +("TOWERCST.DGO" + ("tpage-3223.o" + "tpage-2983.go" + "tpage-3224.go" + "tpage-3225.go" + "tpage-2985.go" + "tpage-2984.go" + "daxter-highres-ag.go" + "jakc-highres-ag.go" + "sig-highres-ag.go" + "torn-highres-ag.go" + "jinx-highres-ag.go" + "hellcat-ag.go" + "mhcity-tower-door-break-ag.go" + "kg-pickup-ag.go" + "tow-spawner-ag.go" + "particleman-ag.go" + "purple-three-ag.go" + "towercst.o" + )) diff --git a/goal_src/jak3/dgos/vin.gd b/goal_src/jak3/dgos/vin.gd new file mode 100644 index 000000000..709700c23 --- /dev/null +++ b/goal_src/jak3/dgos/vin.gd @@ -0,0 +1,14 @@ +("VIN.DGO" + ("vinroom-scenes.o" + "vinroom-part.o" + "power-game.o" + "ljkdxvin-texture.o" + "jak-indax+0-ag.go" + "tpage-1026.go" + "tpage-1024.go" + "tpage-1023.go" + "warp-gate-ag.go" + "vin-turbine-ag.go" + "vin-door-ctyinda-ag.go" + "vinroom-vis.o" + )) diff --git a/goal_src/jak3/dgos/voca.gd b/goal_src/jak3/dgos/voca.gd new file mode 100644 index 000000000..d76754d2f --- /dev/null +++ b/goal_src/jak3/dgos/voca.gd @@ -0,0 +1,56 @@ +("VOCA.DGO" + ("flut-part.o" + "flut.o" + "target-flut.o" + "jak-flut+0-ag.go" + "target-tube.o" + "jak-tube+0-ag.go" + "target-ladder.o" + "ladder.o" + "jak-ladder+0-ag.go" + "target-indax.o" + "target-indax-hang.o" + "jak-indax+0-ag.go" + "chain-physics.o" + "hover-formation-h.o" + "hover-nav-control-h.o" + "hover-enemy-h.o" + "hover-nav-control.o" + "hover-enemy.o" + "hover-formation.o" + "hover-nav-edit.o" + "volcano-part.o" + "volcano-scenes.o" + "rigid-body-plat.o" + "volcano-obs.o" + "volcano-obs2.o" + "volcano-mood.o" + "volcano-texture.o" + "spiky-frog.o" + "mantis.o" + "flut-wild.o" + "flamer-lava.o" + "tpage-1632.go" + "tpage-1635.go" + "tpage-1633.go" + "tpage-1634.go" + "tpage-3053.go" + "tpage-2050.go" + "mantis-ag.go" + "flamer-lava-ag.go" + "vol-break-ground-ag.go" + "spiky-frog-ag.go" + "flut-saddle-ag.go" + "vol-collapsing-rock-ag.go" + "ladder-ag.go" + "vol-lava-plat-ag.go" + "vol-balance-plat-ag.go" + "vol-lava-ball-ag.go" + "vol-unbroken-ground-ag.go" + "vol-rising-step-b-ag.go" + "vol-rising-step-a-ag.go" + "vol-rising-step-c-ag.go" + "vol-bouncer-ag.go" + "vol-stone-lid-ag.go" + "volcanoa-vis.o" + )) diff --git a/goal_src/jak3/dgos/vocx.gd b/goal_src/jak3/dgos/vocx.gd new file mode 100644 index 000000000..4689808f8 --- /dev/null +++ b/goal_src/jak3/dgos/vocx.gd @@ -0,0 +1,30 @@ +("VOCX.DGO" + ("volcanox-texture.o" + "volcanox-mood.o" + "volcanox-obs.o" + "volcanox-scenes.o" + "flitter.o" + "tpage-1938.go" + "tpage-1517.go" + "tpage-1990.go" + "tpage-2902.go" + "daxter-highres-ag.go" + "jakc-highres-ag.go" + "flitter-ag.go" + "monk-mummy-ag.go" + "tpl-stone-break-ag.go" + "dark-maker-idol-break-ag.go" + "vol-holo-eye-ag.go" + "tpl-glider-ag.go" + "tpl-glider-broken-ag.go" + "tpl-glider-break-ag.go" + "dm-spines-ag.go" + "monk-mummy-finger-explode-ag.go" + "dark-maker-idol-fma-ag.go" + "dark-maker-idol-ag.go" + "warp-gate-ag.go" + "urn-c-ag.go" + "urn-a-ag.go" + "particleman-ag.go" + "volcanox.o" + )) diff --git a/goal_src/jak3/dgos/warpcast.gd b/goal_src/jak3/dgos/warpcast.gd new file mode 100644 index 000000000..15c9060f9 --- /dev/null +++ b/goal_src/jak3/dgos/warpcast.gd @@ -0,0 +1,7 @@ +("WARPCAST.DGO" + ("tpage-2270.o" + "daxter-highres-ag.go" + "jakc-highres-ag.go" + "particleman-ag.go" + "warpcast.o" + )) diff --git a/goal_src/jak3/dgos/wasall.gd b/goal_src/jak3/dgos/wasall.gd new file mode 100644 index 000000000..4069e1114 --- /dev/null +++ b/goal_src/jak3/dgos/wasall.gd @@ -0,0 +1,62 @@ +("WASALL.DGO" + ("squad-control-h.o" + "squad-control.o" + "vehicle-h.o" + "vehicle-part.o" + "vehicle-effects.o" + "vehicle.o" + "vehicle-util.o" + "vehicle-physics.o" + "vehicle-states.o" + "vehicle-manager.o" + "vehicle-hud.o" + "turret-control.o" + "target-pilot.o" + "pilot-states.o" + "was-squad-control.o" + "wvehicle-h.o" + "wvehicle-part.o" + "wvehicle-obs.o" + "wvehicle-wheel.o" + "wvehicle-effects.o" + "wvehicle.o" + "wvehicle-util.o" + "wvehicle-ai.o" + "wvehicle-race.o" + "wvehicle-states.o" + "wvehicle-physics.o" + "wvehicle-hud.o" + "wcar-projectiles.o" + "wcar.o" + "wcar-turtle.o" + "wcar-snake.o" + "wcar-scorpion.o" + "wcar-toad.o" + "wcar-fox.o" + "wcar-rhino.o" + "wcar-mirage.o" + "wcar-x-ride.o" + "wcar-marauder.o" + "w-parking-spot.o" + "des-burning-bush.o" + "wastrail-graph.o" + "trail.o" + "wasall-init.o" + "wasall-part.o" + "wasall-obs.o" + "wasall-tasks.o" + "waswide-mood.o" + "jak-tentacle+0-ag.go" + "jak-pilot+0-ag.go" + "jak-pilot-wcar+0-ag.go" + "tpage-325.go" + "tpage-1427.go" + "scorpion-ag.go" + "snake-ag.go" + "fox-ag.go" + "turtle-ag.go" + "toad-ag.go" + "rhino-ag.go" + "vehicle-explosion-ag.go" + "wasall.o" + )) diff --git a/goal_src/jak3/dgos/wascast.gd b/goal_src/jak3/dgos/wascast.gd new file mode 100644 index 000000000..02358e74e --- /dev/null +++ b/goal_src/jak3/dgos/wascast.gd @@ -0,0 +1,13 @@ +("WASCAST.DGO" + ("tpage-1714.o" + "tpage-2323.go" + "daxter-highres-ag.go" + "jakc-highres-ag.go" + "king-highres-ag.go" + "seem-highres-ag.go" + "breastplate-ag.go" + "eco-crystal-light-ag.go" + "battle-amulet-ag.go" + "particleman-ag.go" + "wascast.o" + )) diff --git a/goal_src/jak3/dgos/waschase.gd b/goal_src/jak3/dgos/waschase.gd new file mode 100644 index 000000000..d1dd00b35 --- /dev/null +++ b/goal_src/jak3/dgos/waschase.gd @@ -0,0 +1,8 @@ +("WASCHASE.DGO" + ("jak-kanga+0-ag.o" + "kanga-lizard.o" + "tpage-1321.go" + "tpage-1356.go" + "kanga-lizard-ag.go" + "waschase.o" + )) diff --git a/goal_src/jak3/dgos/wasdefen.gd b/goal_src/jak3/dgos/wasdefen.gd new file mode 100644 index 000000000..a45091865 --- /dev/null +++ b/goal_src/jak3/dgos/wasdefen.gd @@ -0,0 +1,8 @@ +("WASDEFEN.DGO" + ("tpage-2527.o" + "tpage-2224.go" + "dm-robot-ag.go" + "dm-missile-ag.go" + "dm-debris-ag.go" + "wasdefen.o" + )) diff --git a/goal_src/jak3/dgos/wasleapr.gd b/goal_src/jak3/dgos/wasleapr.gd new file mode 100644 index 000000000..4b37359be --- /dev/null +++ b/goal_src/jak3/dgos/wasleapr.gd @@ -0,0 +1,19 @@ +("WASLEAPR.DGO" + ("race-h.o" + "race-mesh.o" + "race-control.o" + "race-info.o" + "race-manager.o" + "race-hud.o" + "pilot-recorder.o" + "was-leaper-race-h.o" + "flut-racer.o" + "was-leaper-race.o" + "tpage-1663.go" + "tpage-1694.go" + "tpage-1589.go" + "tpage-1707.go" + "monk-ag.go" + "flut-wild-ag.go" + "wasleapr.o" + )) diff --git a/goal_src/jak3/dgos/waspala.gd b/goal_src/jak3/dgos/waspala.gd new file mode 100644 index 000000000..994cc4489 --- /dev/null +++ b/goal_src/jak3/dgos/waspala.gd @@ -0,0 +1,26 @@ +("WASPALA.DGO" + ("waspala-obs.o" + "waspala-part.o" + "waspal-mood.o" + "waspal-texture.o" + "throne-scenes.o" + "tpage-869.go" + "tpage-871.go" + "tpage-980.go" + "tpage-933.go" + "tpage-968.go" + "tpage-872.go" + "tpage-3132.go" + "daxter-highres-ag.go" + "king-highres-ag.go" + "water-anim-waspala-ag.go" + "waspala-paddle-wheel-b-ag.go" + "waspala-paddle-wheel-a-ag.go" + "palmpilot-b-ag.go" + "urn-b-ag.go" + "urn-c-ag.go" + "urn-a-ag.go" + "particleman-ag.go" + "waspala-blocker-ag.go" + "waspala.o" + )) diff --git a/goal_src/jak3/dgos/waspgame.gd b/goal_src/jak3/dgos/waspgame.gd new file mode 100644 index 000000000..daeff40bc --- /dev/null +++ b/goal_src/jak3/dgos/waspgame.gd @@ -0,0 +1,10 @@ +("WASPGAME.DGO" + ("was-pre-game.o" + "tpage-1662.go" + "tpage-1561.go" + "neo-satellite-heart-ag.go" + "neo-satellite-fma-ag.go" + "neo-satellite-game-ring-ag.go" + "neo-satellite-ps-symbols-ag.go" + "waspgame.o" + )) diff --git a/goal_src/jak3/dgos/wasseem.gd b/goal_src/jak3/dgos/wasseem.gd new file mode 100644 index 000000000..83d2407e1 --- /dev/null +++ b/goal_src/jak3/dgos/wasseem.gd @@ -0,0 +1,14 @@ +("WASSEEM.DGO" + ("tpage-1211.o" + "tpage-1533.go" + "tpage-1468.go" + "tpage-1975.go" + "daxter-highres-ag.go" + "jakc-highres-ag.go" + "seem-highres-ag.go" + "monk-ag.go" + "neo-satellite-break-ag.go" + "eco-crystal-dark-ag.go" + "particleman-ag.go" + "wasseem.o" + )) diff --git a/goal_src/jak3/dgos/wasstada.gd b/goal_src/jak3/dgos/wasstada.gd new file mode 100644 index 000000000..5b51c04f8 --- /dev/null +++ b/goal_src/jak3/dgos/wasstada.gd @@ -0,0 +1,21 @@ +("WASSTADA.DGO" + ("arena-scenes.o" + "wasstad-ocean.o" + "wasstada-obs.o" + "wasstada-part.o" + "wasstada-texture.o" + "wasstada-mood.o" + "tpage-405.go" + "tpage-630.go" + "tpage-609.go" + "tpage-591.go" + "wstd-arena-plat-ag.go" + "wstd-door-ag.go" + "urn-a-ag.go" + "wstd-flag-a-ag.go" + "wstd-square-plat-a-ag.go" + "wstd-blocker-ag.go" + "wstd-square-plat-b-ag.go" + "wstd-square-plat-c-ag.go" + "wasstada.o" + )) diff --git a/goal_src/jak3/dgos/wasstadb.gd b/goal_src/jak3/dgos/wasstadb.gd new file mode 100644 index 000000000..d1fc241cd --- /dev/null +++ b/goal_src/jak3/dgos/wasstadb.gd @@ -0,0 +1,14 @@ +("WASSTADB.DGO" + ("wasstadb-obs.o" + "tpage-1085.go" + "tpage-1187.go" + "tpage-1309.go" + "tpage-1485.go" + "wstd-arena-plat-ag.go" + "wstd-training-dummy-ag.go" + "ladder-ag.go" + "wstd-trapdoor-ag.go" + "wstd-flag-ag.go" + "arena-token-ag.go" + "wasstadb.o" + )) diff --git a/goal_src/jak3/dgos/wasstadc.gd b/goal_src/jak3/dgos/wasstadc.gd new file mode 100644 index 000000000..2bdce63b3 --- /dev/null +++ b/goal_src/jak3/dgos/wasstadc.gd @@ -0,0 +1,22 @@ +("WASSTADC.DGO" + ("marauder.o" + "wasstadc-obs.o" + "tpage-1090.go" + "tpage-1251.go" + "tpage-1252.go" + "tpage-1446.go" + "marauder-male-ag.go" + "wlander-male-ag.go" + "wstd-fight-plat-large-ag.go" + "wstd-arena-plat-ag.go" + "wstd-fight-house-a-ag.go" + "wstd-fight-plat-ag.go" + "wstd-fight-house-b-ag.go" + "pre-artifact-a-ag.go" + "pre-artifact-d-ag.go" + "wstd-fight-plat-smlplat-ag.go" + "wstd-fight-plat-box-ag.go" + "pre-artifact-b-ag.go" + "pre-artifact-c-ag.go" + "wasstadc.o" + )) diff --git a/goal_src/jak3/dgos/wca.gd b/goal_src/jak3/dgos/wca.gd new file mode 100644 index 000000000..de4a8f5d4 --- /dev/null +++ b/goal_src/jak3/dgos/wca.gd @@ -0,0 +1,26 @@ +("WCA.DGO" + ("wascitya-obs.o" + "tpage-632.go" + "tpage-635.go" + "tpage-633.go" + "tpage-634.go" + "gekko-ag.go" + "waspala-elevator-ag.go" + "kanga-lizard-ag.go" + "wascity-water-pump-ag.go" + "wascity-elevator-door-ag.go" + "tizard-ag.go" + "dogat-ag.go" + "light-eco-vent-ag.go" + "ladder-ag.go" + "wascity-airlock-small-ag.go" + "market-sack-b-ag.go" + "market-sack-a-ag.go" + "urn-c-ag.go" + "market-crate-ag.go" + "urn-a-ag.go" + "wascity-stad-door-ag.go" + "market-basket-b-ag.go" + "market-basket-a-ag.go" + "wascitya-vis.o" + )) diff --git a/goal_src/jak3/dgos/wcaseem.gd b/goal_src/jak3/dgos/wcaseem.gd new file mode 100644 index 000000000..ca8eebdb3 --- /dev/null +++ b/goal_src/jak3/dgos/wcaseem.gd @@ -0,0 +1,5 @@ +("WCASEEM.DGO" + ("tpage-1812.o" + "seem-highres-ag.go" + "wcaseem.o" + )) diff --git a/goal_src/jak3/dgos/wcb.gd b/goal_src/jak3/dgos/wcb.gd new file mode 100644 index 000000000..2e42fdd66 --- /dev/null +++ b/goal_src/jak3/dgos/wcb.gd @@ -0,0 +1,40 @@ +("WCB.DGO" + ("target-turret-shot.o" + "target-turret.o" + "jak-turret+0-ag.go" + "wasgun-h.o" + "skeet-part.o" + "maker-part.o" + "dm-flyer.o" + "wascity-turret-shot.o" + "wascity-turret.o" + "wasgun-manager.o" + "maker-projectile.o" + "wasdef-manager.o" + "wasdef-hud.o" + "wasgun-hud.o" + "tpage-841.go" + "tpage-844.go" + "tpage-843.go" + "tpage-842.go" + "tpage-947.go" + "tpage-2360.go" + "gekko-ag.go" + "wascity-turret-ag.go" + "kanga-lizard-ag.go" + "wascity-skeet-ag.go" + "wascity-skeet-c-ag.go" + "wascity-skeet-b-ag.go" + "tizard-ag.go" + "dogat-ag.go" + "ladder-ag.go" + "tentacle-ag.go" + "market-sack-b-ag.go" + "market-sack-a-ag.go" + "market-crate-ag.go" + "market-basket-b-ag.go" + "market-basket-a-ag.go" + "wascity-awning-b-ag.go" + "cty-fruit-stand-ag.go" + "wascityb-vis.o" + )) diff --git a/goal_src/jak3/dgos/win.gd b/goal_src/jak3/dgos/win.gd new file mode 100644 index 000000000..4906e7a38 --- /dev/null +++ b/goal_src/jak3/dgos/win.gd @@ -0,0 +1,22 @@ +("WIN.DGO" + ("hfrag-vu1-h.o" + "hfrag-common.o" + "hfrag-vu1.o" + "hfrag.o" + "hfrag-work.o" + "hfrag-texture-anim.o" + "desert-mood.o" + "desert-ocean.o" + "desert-part.o" + "desert-scenes.o" + "des-cactus.o" + "desertd-obs.o" + "desertd-texture.o" + "tpage-1213.go" + "tpage-1214.go" + "tpage-1215.go" + "tpage-1037.go" + "des-cactus-b-ag.go" + "des-cactus-a-ag.go" + "wasintro-vis.o" + )) diff --git a/goal_src/jak3/dgos/wsd.gd b/goal_src/jak3/dgos/wsd.gd new file mode 100644 index 000000000..26927e803 --- /dev/null +++ b/goal_src/jak3/dgos/wsd.gd @@ -0,0 +1,15 @@ +("WSD.DGO" + ("wasdoors-init.o" + "wasdoors-scenes.o" + "tpage-647.go" + "tpage-1322.go" + "tpage-648.go" + "tpage-1696.go" + "daxter-highres-ag.go" + "jakc-highres-ag.go" + "wascity-airlock-ag.go" + "interceptor-wheel-fma-ag.go" + "wascity-airlock-small-ag.go" + "particleman-ag.go" + "wasdoors-vis.o" + )) diff --git a/goal_src/jak3/dgos/wwd.gd b/goal_src/jak3/dgos/wwd.gd new file mode 100644 index 000000000..8b8949d92 --- /dev/null +++ b/goal_src/jak3/dgos/wwd.gd @@ -0,0 +1,68 @@ +("WWD.DGO" + ("target-ladder.o" + "ladder.o" + "jak-ladder+0-ag.go" + "flut-part.o" + "flut.o" + "target-flut.o" + "jak-flut+0-ag.go" + "nav-graph-h.o" + "cty-borrow-manager-h.o" + "cty-faction-h.o" + "traffic-engine-h.o" + "height-map-h.o" + "vehicle-control.o" + "nav-graph.o" + "mission-squad-control-h.o" + "citizen-h.o" + "squad-control-city-h.o" + "squad-control-city.o" + "kg-squad-control-h.o" + "ff-squad-control-h.o" + "mh-squad-control-h.o" + "cty-faction.o" + "formations.o" + "formation-object.o" + "ctywide-obs-h.o" + "mission-squad-control.o" + "cty-attack-controller.o" + "flee-info.o" + "citizen.o" + "civilian.o" + "guard-h.o" + "traffic-util.o" + "traffic-engine.o" + "traffic-manager.o" + "ctymark-obs-h.o" + "ctymark-obs.o" + "wasteland-scenes.o" + "wlander-h.o" + "wlander-male.o" + "wlander-female.o" + "waswide-init.o" + "waswide-part.o" + "waswide-obs.o" + "wascity-ocean.o" + "tizard.o" + "dogat.o" + "tpage-873.go" + "tpage-874.go" + "tpage-1956.go" + "tpage-1075.go" + "tpage-666.go" + "tpage-1254.go" + "wlander-male-ag.go" + "wlander-female-ag.go" + "flut-saddle-ag.go" + "wascity-cactus-ag.go" + "des-burning-bush-ag.go" + "wascity-windmill-ag.go" + "wascity-flag-b-ag.go" + "wascity-flag-d-ag.go" + "wascity-awning-a-ag.go" + "wascity-burning-bush-ag.go" + "wascity-flag-c-ag.go" + "wascity-flag-a-ag.go" + "wascity-wind-fan-ag.go" + "waswide-vis.o" + )) diff --git a/goal_src/jak3/game.gp b/goal_src/jak3/game.gp new file mode 100644 index 000000000..05598460b --- /dev/null +++ b/goal_src/jak3/game.gp @@ -0,0 +1,492 @@ +;;-*-Lisp-*- + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; Jak 3 Project File +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; see goal_src/jak1/game.gp for more detailed explanation + +;;;;;;;;;;;;;;;;;;;;;;; +;; Inputs from ISO +;;;;;;;;;;;;;;;;;;;;;;; + +(cond + ;; extractor can override everything by providing *use-iso-data-path* + (*use-iso-data-path* + (map-path! "$ISO" (string-append *iso-data* "/"))) + ;; if the user's repl-config has a game version folder, use that + ((> (string-length (get-game-version-folder)) 0) + (map-path! "$ISO" (string-append "iso_data/" (get-game-version-folder) "/"))) + ;; otherwise, default to jak3 + (#t + (map-path! "$ISO" "iso_data/jak3/"))) + +;;;;;;;;;;;;;;;;;;;;;;;;;; +;; Inputs from decompiler +;;;;;;;;;;;;;;;;;;;;;;;;;; + +(cond + ;; if the user's repl-config has a game version folder, use that + ((> (string-length (get-game-version-folder)) 0) + (map-path! "$DECOMP" (string-append "decompiler_out/" (get-game-version-folder) "/"))) + ;; otherwise, default to jak3 + (#t + (map-path! "$DECOMP" "decompiler_out/jak3/"))) + +;;;;;;;;;;;;;;;;;;;;;;; +;; Output +;;;;;;;;;;;;;;;;;;;;;;; + +;; NOTE: the game itself will load from out/jak3/iso and out/jak3/fr3. +(map-path! "$OUT" "out/jak3/") + +;; tell the compiler to put its outputs in out/jak3/ +(set-output-prefix "jak3/") + +;; use defmacro to define goos macros. +(define defmacro defsmacro) +(define defun desfun) + +;;;;;;;;;;;;;;;;;;;;;;; +;; Build Groups +;;;;;;;;;;;;;;;;;;;;;;; + +(define *all-cgos* '()) +(define *all-str* '()) +(define *all-vis* '()) +(define *all-mus* '()) +(define *all-sbk* '()) +(define *all-vag* '()) +(define *all-gc* '()) + +(define *file-entry-map* (make-string-hash-table)) + +;; Load required macros +(load-file "goal_src/jak3/lib/project-lib.gp") +(set-gsrc-folder! "goal_src/jak3") + +;;;;;;;;;;;;;;;;; +;; GOAL Kernel +;;;;;;;;;;;;;;;;; + +(cgo-file "kernel.gd" '()) + +;;;;;;;;;;;;;;;;;;;;; +;; misc files +;;;;;;;;;;;;;;;;;;;;; + +;; the VAGDIR file +(defstep :in "$ISO/VAG/VAGDIR.AYB" + :tool 'copy + :out '("$OUT/iso/VAGDIR.AYB")) + +;;;;;;;;;;;;;;;;;;;;; +;; DGOs +;;;;;;;;;;;;;;;;;;;;; + +(defstep :in "$DECOMP/textures/tpage-dir.txt" + :tool 'tpage-dir + :out '("$OUT/obj/dir-tpages.go") + ) +(hash-table-set! *file-entry-map* "dir-tpages.go" #f) + +(cgo-file "game.gd" '("$OUT/obj/gcommon.o" "$OUT/obj/gstate.o" "$OUT/obj/gstring.o" "$OUT/obj/gkernel.o")) + +;; note: some of these dependencies are slightly wrong because cgo-file doesn't really handle +;; the case of a .o appearing in multiple dgos. But, if we depend on the last item in both lists, it +;; works out. + +#| +(define common-dep '("$OUT/obj/cty-guard-turret-button.o" "$OUT/obj/default-menu-pc.o")) +(cgo-file "preca.gd" common-dep) +(cgo-file "outrocst.gd" common-dep) +(cgo-file "ltornsam.gd" common-dep) +(cgo-file "lnstcst.gd" common-dep) +(cgo-file "combx.gd" common-dep) +(cgo-file "lfreeout.gd" common-dep) +(cgo-file "lgunrnc.gd" common-dep) +(cgo-file "ctc.gd" common-dep) +(cgo-file "ltowcity.gd" common-dep) +(cgo-file "temc.gd" common-dep) +(cgo-file "loutro.gd" common-dep) +(cgo-file "railcst.gd" common-dep) +(cgo-file "sem.gd" common-dep) +(cgo-file "dese.gd" common-dep) +(cgo-file "ljkdxvin.gd" common-dep) +(cgo-file "waspgame.gd" common-dep) +(cgo-file "wascast.gd" common-dep) +(cgo-file "lbbsdrp1.gd" common-dep) +(cgo-file "raild.gd" common-dep) +(cgo-file "lwlandm.gd" common-dep) +(cgo-file "gungame2.gd" common-dep) +(cgo-file "railc.gd" common-dep) +(cgo-file "precd.gd" common-dep) +(cgo-file "combe.gd" common-dep) +(cgo-file "lctyhijk.gd" common-dep) +(cgo-file "desoasis.gd" common-dep) +(cgo-file "ctypesc.gd" common-dep) +(cgo-file "wasseem.gd" common-dep) +(cgo-file "towb.gd" common-dep) +(cgo-file "wasstadc.gd" common-dep) +(cgo-file "gungame1.gd" common-dep) +(cgo-file "ljak.gd" common-dep) +(cgo-file "lwassig.gd" common-dep) +(cgo-file "deshover.gd" common-dep) +(cgo-file "wsd.gd" common-dep) +(cgo-file "lsamos.gd" common-dep) +(cgo-file "lfaccity.gd" common-dep) +(cgo-file "lblowtmh.gd" common-dep) +(cgo-file "ljaksig.gd" common-dep) +(cgo-file "ldmpckgn.gd" common-dep) +(cgo-file "lbbtcha1.gd" common-dep) +(cgo-file "railx.gd" common-dep) +(cgo-file "staa.gd" common-dep) +(cgo-file "wcaseem.gd" common-dep) +(cgo-file "dst.gd" common-dep) +(cgo-file "rubc.gd" common-dep) +(cgo-file "ipf.gd" common-dep) +(cgo-file "lnstoa.gd" common-dep) +(cgo-file "railf.gd" common-dep) +(cgo-file "deshunt.gd" common-dep) +(cgo-file "oasiscst.gd" common-dep) +(cgo-file "desinter.gd" common-dep) +(cgo-file "ctypesa.gd" common-dep) +(cgo-file "seo.gd" common-dep) +(cgo-file "railb.gd" common-dep) +(cgo-file "lerrol.gd" common-dep) +(cgo-file "lbbsprt3.gd" common-dep) +(cgo-file "ltowa.gd" common-dep) +(cgo-file "comba.gd" common-dep) +(cgo-file "stb.gd" common-dep) +(cgo-file "desc.gd" common-dep) +(cgo-file "lctyprot.gd" common-dep) +(cgo-file "lctyblow.gd" common-dep) +(cgo-file "voca.gd" common-dep) +(cgo-file "lbbring3.gd" common-dep) +(cgo-file "ctb.gd" common-dep) +(cgo-file "lbbring4.gd" common-dep) +(cgo-file "mic.gd" common-dep) +(cgo-file "lnstobc.gd" common-dep) +(cgo-file "ctypesb.gd" common-dep) +(cgo-file "cia.gd" common-dep) +(cgo-file "ldampksm.gd" common-dep) +(cgo-file "ljndklev.gd" common-dep) +(cgo-file "desrace2.gd" common-dep) +(cgo-file "hhg.gd" common-dep) +(cgo-file "ljakc.gd" common-dep) +(cgo-file "lbombbot.gd" common-dep) +(cgo-file "loutro2.gd" common-dep) +(cgo-file "citycast.gd" common-dep) +(cgo-file "seb.gd" common-dep) +(cgo-file "combn.gd" common-dep) +(cgo-file "lprenme.gd" common-dep) +(cgo-file "rbct.gd" common-dep) +(cgo-file "lbbsdrp2.gd" common-dep) +(cgo-file "lbbring5.gd" common-dep) +(cgo-file "rubb.gd" common-dep) +(cgo-file "ltrtwhls.gd" common-dep) +(cgo-file "ctycarc.gd" common-dep) +(cgo-file "towera.gd" common-dep) +(cgo-file "desw.gd" common-dep) +(cgo-file "lpatk.gd" common-dep) +(cgo-file "ljkdmpk.gd" common-dep) +(cgo-file "ltowb.gd" common-dep) +(cgo-file "destrack.gd" common-dep) +(cgo-file "slumbset.gd" common-dep) +(cgo-file "desboss2.gd" common-dep) +(cgo-file "combb.gd" common-dep) +(cgo-file "precc.gd" common-dep) +(cgo-file "desbcst.gd" common-dep) +(cgo-file "lctypalt.gd" common-dep) +(cgo-file "ltornjnx.gd" common-dep) +(cgo-file "factorya.gd" common-dep) +(cgo-file "ljakklev.gd" common-dep) +(cgo-file "sef.gd" common-dep) +(cgo-file "museum4.gd" common-dep) +(cgo-file "tema.gd" common-dep) +(cgo-file "lbbring1.gd" common-dep) +(cgo-file "ljakndax.gd" common-dep) +(cgo-file "vin.gd" common-dep) +(cgo-file "lfacb.gd" common-dep) +(cgo-file "lashelin.gd" common-dep) +(cgo-file "ljkcdmkl.gd" common-dep) +(cgo-file "lfacrm2.gd" common-dep) +(cgo-file "ljinx.gd" common-dep) +(cgo-file "lfactory.gd" common-dep) +(cgo-file "arenacst.gd" common-dep) +(cgo-file "lbbtcha3.gd" common-dep) +(cgo-file "wasdefen.gd" common-dep) +(cgo-file "templee.gd" common-dep) +(cgo-file "lmhcb.gd" common-dep) +(cgo-file "freecast.gd" common-dep) +(cgo-file "frstx.gd" common-dep) +(cgo-file "sek.gd" common-dep) +(cgo-file "lmhca.gd" common-dep) +(cgo-file "cwi.gd" common-dep) +(cgo-file "lprecc.gd" common-dep) +(cgo-file "hgb.gd" common-dep) +(cgo-file "desrace1.gd" common-dep) +(cgo-file "sea.gd" common-dep) +(cgo-file "nsa.gd" common-dep) +(cgo-file "lbiped.gd" common-dep) +(cgo-file "wasall.gd" common-dep) +(cgo-file "waschase.gd" common-dep) +(cgo-file "desrescc.gd" common-dep) +(cgo-file "desf.gd" common-dep) +(cgo-file "deserrol.gd" common-dep) +(cgo-file "cfb.gd" common-dep) +(cgo-file "lgunnorm.gd" common-dep) +(cgo-file "outcast3.gd" common-dep) +(cgo-file "mhca.gd" common-dep) +(cgo-file "ltnfxhip.gd" common-dep) +(cgo-file "introcst.gd" common-dep) +(cgo-file "cta.gd" common-dep) +(cgo-file "combc.gd" common-dep) +(cgo-file "seh.gd" common-dep) +(cgo-file "lfaccar.gd" common-dep) +(cgo-file "warpcast.gd" common-dep) +(cgo-file "lfacrm1.gd" common-dep) +(cgo-file "wca.gd" common-dep) +(cgo-file "lblowtkg.gd" common-dep) +(cgo-file "onintent.gd" common-dep) +(cgo-file "freehq.gd" common-dep) +(cgo-file "lform.gd" common-dep) +(cgo-file "towercst.gd" common-dep) +(cgo-file "lbbring2.gd" common-dep) +(cgo-file "ctypepc.gd" common-dep) +(cgo-file "lblowcst.gd" common-dep) +(cgo-file "see.gd" common-dep) +(cgo-file "lctysnpr.gd" common-dep) +(cgo-file "desrescg.gd" common-dep) +(cgo-file "mhctycst.gd" common-dep) +(cgo-file "ltorn.gd" common-dep) +(cgo-file "desg.gd" common-dep) +(cgo-file "facd.gd" common-dep) +(cgo-file "desboss1.gd" common-dep) +(cgo-file "lforp.gd" common-dep) +(cgo-file "ljakcklv.gd" common-dep) +(cgo-file "ctycarkg.gd" common-dep) +(cgo-file "temp.gd" common-dep) +(cgo-file "lkeira.gd" common-dep) +(cgo-file "ctypepb.gd" common-dep) +(cgo-file "sej.gd" common-dep) +(cgo-file "desh.gd" common-dep) +(cgo-file "wasstadb.gd" common-dep) +(cgo-file "lbbsprt2.gd" common-dep) +(cgo-file "lbbsdrp3.gd" common-dep) +(cgo-file "museum.gd" common-dep) +(cgo-file "ldesgcst.gd" common-dep) +(cgo-file "ltnjxhip.gd" common-dep) +(cgo-file "ldax.gd" common-dep) +(cgo-file "intpalrf.gd" common-dep) +(cgo-file "lcitysml.gd" common-dep) +(cgo-file "title.gd" common-dep) +(cgo-file "desb.gd" common-dep) +(cgo-file "facb.gd" common-dep) +(cgo-file "mia.gd" common-dep) +(cgo-file "temx.gd" common-dep) +(cgo-file "ctycarb.gd" common-dep) +(cgo-file "hga.gd" common-dep) +(cgo-file "ctycara.gd" common-dep) +(cgo-file "lnstobb.gd" common-dep) +(cgo-file "lmech.gd" common-dep) +(cgo-file "gridcst.gd" common-dep) +(cgo-file "lbbtcha2.gd" common-dep) +(cgo-file "ljkfeet.gd" common-dep) +(cgo-file "mib.gd" common-dep) +(cgo-file "facc.gd" common-dep) +(cgo-file "raile.gd" common-dep) +(cgo-file "combd.gd" common-dep) +(cgo-file "lsigklv.gd" common-dep) +(cgo-file "ldampeck.gd" common-dep) +(cgo-file "deschase.gd" common-dep) +(cgo-file "museum3.gd" common-dep) +(cgo-file "minee.gd" common-dep) +(cgo-file "lctyass.gd" common-dep) +(cgo-file "wcb.gd" common-dep) +(cgo-file "lpatkcs.gd" common-dep) +(cgo-file "cfa.gd" common-dep) +(cgo-file "ruba2.gd" common-dep) +(cgo-file "ldamsig.gd" common-dep) +(cgo-file "precb.gd" common-dep) +(cgo-file "railb2.gd" common-dep) +(cgo-file "lbbspirt.gd" common-dep) +(cgo-file "temd.gd" common-dep) +(cgo-file "mined.gd" common-dep) +(cgo-file "wwd.gd" common-dep) +(cgo-file "loutro3.gd" common-dep) +(cgo-file "sec.gd" common-dep) +(cgo-file "lsnkwhls.gd" common-dep) +(cgo-file "loninsim.gd" common-dep) +(cgo-file "halfpipe.gd" common-dep) +(cgo-file "cib.gd" common-dep) +(cgo-file "inttitle.gd" common-dep) +(cgo-file "desresc.gd" common-dep) +(cgo-file "lwasbbv.gd" common-dep) +(cgo-file "lforring.gd" common-dep) +(cgo-file "museum3b.gd" common-dep) +(cgo-file "gga.gd" common-dep) +(cgo-file "desliz.gd" common-dep) +(cgo-file "desjump.gd" common-dep) +(cgo-file "raila.gd" common-dep) +(cgo-file "lseemwca.gd" common-dep) +(cgo-file "lkleever.gd" common-dep) +(cgo-file "desd.gd" common-dep) +(cgo-file "lfaco.gd" common-dep) +(cgo-file "ldamklev.gd" common-dep) +(cgo-file "powergd.gd" common-dep) +(cgo-file "lptrl.gd" common-dep) +(cgo-file "lsig.gd" common-dep) +(cgo-file "ruba.gd" common-dep) +(cgo-file "win.gd" common-dep) +(cgo-file "wasstada.gd" common-dep) +(cgo-file "sei.gd" common-dep) +(cgo-file "cpo.gd" common-dep) +(cgo-file "waspala.gd" common-dep) +(cgo-file "museum4b.gd" common-dep) +(cgo-file "seg.gd" common-dep) +(cgo-file "frstb.gd" common-dep) +(cgo-file "nsb.gd" common-dep) +(cgo-file "cgb.gd" common-dep) +(cgo-file "lvincst.gd" common-dep) +(cgo-file "sel.gd" common-dep) +(cgo-file "lctydest.gd" common-dep) +(cgo-file "sta.gd" common-dep) +(cgo-file "wasleapr.gd" common-dep) +(cgo-file "desrally.gd" common-dep) +(cgo-file "temb.gd" common-dep) +(cgo-file "ctypepa.gd" common-dep) +(cgo-file "lwstdpck.gd" common-dep) +(cgo-file "museum2.gd" common-dep) +(cgo-file "sed.gd" common-dep) +(cgo-file "desa.gd" common-dep) +(cgo-file "towerc.gd" common-dep) +(cgo-file "desbattl.gd" common-dep) +(cgo-file "frsta.gd" common-dep) +(cgo-file "lsigjakc.gd" common-dep) +(cgo-file "vocx.gd" common-dep) +(cgo-file "lbbspid.gd" common-dep) +(cgo-file "sen.gd" common-dep) +(cgo-file "mhcb.gd" common-dep) +(cgo-file "lctypatk.gd" common-dep) +(cgo-file "lbbring6.gd" common-dep) + |# +;;;;;;;;;;;;;;;;;;;;; +;; ANIMATIONS +;;;;;;;;;;;;;;;;;;;;; + +;; (copy-strs "") + +;;;;;;;;;;;;;;;;;;;;; +;; MUSIC +;;;;;;;;;;;;;;;;;;;;; + +(copy-vag-files "COM" "ENG" "FRE" "GER" "INT" "ITA" "SPA") + +(copy-sbk-files + "BBUSH1" "BBUSH2" "BLOW1" "BLOW2" "BLOW3H" "BLOWBAR1" + "BLOWBAR2" "BLOWBAR3" "BOMBBOT1" "CITYALTH" "CITYBB1" "CITYBBF" + "CITYBBH" "CITYCARH" "CITYFFH" "CITYGRID" "CITYHQ1" "CITYHQ2" + "CITYHQ3" "CITYKGF" "CITYMHF" "CITYPEDH" "CITYPROT" "CMBTASK1" + "CMBTASK2" "CMBTASK3" "COMMON" "COMMONJ" "CTYGNBH" "CTYINDH" + "CTYPORTH" "CTYPRTDH" "CTYSLMAH" "CTYSLMBH" "CTYSLMCH" "CTYSNIP1" + "DARKECO1" "DESBATL1" "DESBATL2" "DESBOS1" "DESBOS2" "DESBST1" + "DESERT1" "DESERT2" "DESERT3" "DESERT4" "DESERT5" "DESERT6" + "DESJUMP1" "DESRESC1" "EMPTY0" "EMPTY1" "EMPTY2" "FACTOR10" + "FACTORY1" "FACTORY2" "FACTORY3" "FACTORY4" "FACTORY5" "FACTORY6" + "FACTORY7" "FACTORY8" "FACTORY9" "FACVEH" "FNLBOSS1" "FNLBOSS2" + "FNLBOSS3" "FOREST1" "FOREST2" "FOREST3" "FOREST4" "FOREST5" + "FOREST6" "FOREST7" "FOREST8" "FOREST9" "GENBAMB" "GENBTSK1" + "GUNGAME1" "GUNGAME2" "HANG1" "HANG2" "HANG3" "HIJACK1" + "INTRO1" "INTRO2" "MECH" "MENU1" "MHCITY1H" "MHCITY2H" + "MINE1" "MINE10" "MINE2" "MINE3" "MINE4" "MINE5" + "MINE6" "MINE7" "MINE8" "MINE9" "MODEBORD" "MODEDARK" + "MODEFLUT" "MODEGUB1" "MODEGUB2" "MODEGUB3" "MODEGUD1" "MODEGUD2" + "MODEGUD3" "MODEGUR1" "MODEGUR2" "MODEGUR3" "MODEGUY1" "MODEGUY2" + "MODEGUY3" "MODEIDAX" "MODELIT" "MODEMECH" "NEST1" "NEST2" + "NEST3" "NEST4" "ONIN1" "PORTATK1" "PORTFITE" "POWERGD1" + "PRECUR1" "PRECUR2" "PRECUR3" "PRECUR4" "PRECUR5" "RUINTSK1" + "RUINTSK2" "RUINTSK3" "RUINTSK4" "RUINTSK5" "SEWER1" "SEWER2" + "SEWER3" "SEWER4" "SEWER5" "SEWER6" "SEWER7" "SEWER8" + "SEWER9" "STRONG1" "STRONG2" "TEMPLE1" "TEMPLE3" "TEMPLE4" + "TEMPLE5" "TEMPLE6" "TOWER1" "TOWER2" "TOWER3" "VINROOMH" + "VOLCANO1" "VOLCANO2" "VOLCANO3" "VOLCANO4" "WASALL1" "WASCITY1" + "WASCITY2" "WASCITY3" "WASCITY4" "WASDEF1" "WASDEF2" "WASDEF3" + "WASGAME1" "WASGUN1" "WASGUN2" "WASKANG1" "WASMIR" "WASPALA1" + "WASRHINO" "WASSCORP" "WASSNAKE" "WASSTAD1" "WASSTAD2" "WASSTAD3" + "WASSTAD4" "WASSTAD5" "WASSTAD6" "WASTOAD" "WASTURT") + +;; Jak 3 has no MUS files +;; (copy-mus-files "" "TWEAKVAL") + +;;;;;;;;;;;;;;;;;;;;; +;; Text +;;;;;;;;;;;;;;;;;;;;; + +(defstep :in "game/assets/jak3/game_text.gp" + :tool 'text + :out '("$OUT/iso/0COMMON.TXT" + "$OUT/iso/1COMMON.TXT" + "$OUT/iso/2COMMON.TXT" + "$OUT/iso/3COMMON.TXT" + "$OUT/iso/4COMMON.TXT" + "$OUT/iso/5COMMON.TXT" + "$OUT/iso/6COMMON.TXT" + "$OUT/iso/7COMMON.TXT") + ) + +(defstep :in "game/assets/jak3/game_subtitle.gp" + :tool 'subtitle-v2 + :out '("$OUT/iso/0SUBTI2.TXT") + ) + +;;;;;;;;;;;;;;;;;;;;; +;; ISO Group +;;;;;;;;;;;;;;;;;;;;; +;; the iso group is a group of files built by the "(mi)" command. + +(group-list "iso" + `("$OUT/iso/0COMMON.TXT" + "$OUT/iso/1COMMON.TXT" + "$OUT/iso/2COMMON.TXT" + "$OUT/iso/3COMMON.TXT" + "$OUT/iso/4COMMON.TXT" + "$OUT/iso/5COMMON.TXT" + "$OUT/iso/6COMMON.TXT" + "$OUT/iso/7COMMON.TXT" + "$OUT/iso/0SUBTI2.TXT" + "$OUT/iso/VAGDIR.AYB" + ,@(reverse *all-vis*) + ,@(reverse *all-str*) + ,@(reverse *all-sbk*) + ,@(reverse *all-vag*) + ,@(reverse *all-cgos*)) + ) + +(group-list "text" + `("$OUT/iso/0COMMON.TXT" + "$OUT/iso/1COMMON.TXT" + "$OUT/iso/2COMMON.TXT" + "$OUT/iso/3COMMON.TXT" + "$OUT/iso/4COMMON.TXT" + "$OUT/iso/5COMMON.TXT" + "$OUT/iso/6COMMON.TXT" + "$OUT/iso/7COMMON.TXT" + "$OUT/iso/0SUBTI2.TXT" + ) + ) + +;; used for the type consistency test. +(group-list "all-code" + `(,@(reverse *all-gc*)) + ) + +(group "engine" + "$OUT/iso/0COMMON.TXT" + "$OUT/iso/0SUBTI2.TXT" + "$OUT/iso/KERNEL.CGO" + "$OUT/iso/GAME.CGO" + "$OUT/iso/VAGDIR.AYB" + "$OUT/iso/VAGWAD.ENG" + ) + diff --git a/goal_src/jak3/kernel-defs.gc b/goal_src/jak3/kernel-defs.gc new file mode 100644 index 000000000..5f7e33ff9 --- /dev/null +++ b/goal_src/jak3/kernel-defs.gc @@ -0,0 +1,338 @@ +;; kernel-defs.gc +;; everything defined in the C Kernel / runtime + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;;; kscheme - InitHeapAndSymbol +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +(defenum kmalloc-flags + :bitfield #t + (align-16 4) + (align-64 6) + (align-256 8) + (memset 12) + (top 13) + ) + +(defenum link-flag + :bitfield #t + :type int32 + (output-load-msg 0) + (output-load-true-msg 1) + (execute-login 2) + (print-login 3) + (force-debug 4) + (fast-link 5) + ) + + +(defenum language-enum + :type int64 + (english) + (french) + (german) + (spanish) + (italian) + (japanese) + (korean) + (uk-english) + ) + +;; fixed symbols +(define-extern #f symbol) +(define-extern #t symbol) +(define-extern function type) +(define-extern basic type) +(define-extern string type) +(define-extern symbol type) +(define-extern type type) +(define-extern object type) +(define-extern link-block type) +(define-extern integer type) +(define-extern sinteger type) +(define-extern uinteger type) +(define-extern binteger type) +(define-extern int8 type) +(define-extern int16 type) +(define-extern int32 type) +(define-extern int64 type) +(define-extern int128 type) +(define-extern uint8 type) +(define-extern uint16 type) +(define-extern uint32 type) +(define-extern uint64 type) +(define-extern uint128 type) +(define-extern float type) +(define-extern process-tree type) +(define-extern process type) +(define-extern thread type) +(define-extern structure type) +(define-extern pair type) +(define-extern pointer type) +(define-extern number type) +(define-extern array type) +(define-extern vu-function type) +(define-extern connectable type) +(define-extern stack-frame type) +(define-extern file-stream type) +(define-extern kheap type) +(define-extern nothing (function none)) +(define-extern delete-basic (function basic none)) +(define-extern static symbol) +(define-extern global kheap) +(define-extern debug kheap) +(define-extern loading-level kheap) ;; not a kheap at boot +(define-extern loading-package kheap) ;; not a kheap at boot +(define-extern process-level-heap kheap) ;; not a kheap at boot +(define-extern stack symbol) +(define-extern scratch symbol) +(define-extern *scratch-top* pointer) +(define-extern zero-func (function int)) + +;; InitHeapAndSymbol +(define-extern _format (function _varargs_ object)) +(define-extern method-set! (function type int object none)) ;; may actually return function. +(define-extern kmemopen (function kheap string none)) +(define-extern kmemclose (function none)) + +(define-extern *enable-method-set* int) + +(define-extern *listener-function* (function object)) +(define-extern *debug-segment* symbol) + +(define-extern dgo-load (function string kheap link-flag int none)) +(define-extern malloc (function symbol int pointer)) +(define-extern loado (function string kheap object)) +(define-extern link (function pointer pointer int kheap int pointer)) + +(declare-type cpad-info basic) +(define-extern cpad-open (function cpad-info int cpad-info)) +(define-extern cpad-get-data (function cpad-info cpad-info)) + +(declare-type mouse-info basic) +(define-extern mouse-get-data (function mouse-info none)) + +(defconstant GAME_TERRITORY_SCEA 0) +(defconstant GAME_TERRITORY_SCEE 1) +(defconstant GAME_TERRITORY_SCEI 2) +(defconstant GAME_TERRITORY_SCEK 3) + +(define-extern scf-get-territory (function int)) ;; not actually a scf function... + +(define-extern scf-get-volume "Defined in the kernel" (function int)) +(define-extern scf-get-language "Defined in the kernel" (function language-enum)) +(define-extern scf-get-aspect "Defined in the kernel" (function uint)) +(define-extern scf-get-timeout (function int)) +(define-extern scf-get-inactive-timeout (function int)) +(define-extern kernel-shutdown (function none)) +(define-extern *boot-video-mode* "Defined in the kernel" int) +(define-extern *kernel-boot-message* symbol) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;;; PC Port functions +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +(defenum pc-renderer-tree-type + (none 0) + (tfrag3 1) + (tie3 2) + (invalid)) + +(defenum pc-collision-mode + (none 0) + (mode 1) + (event 2) + (material 3) + (skip 4) + (skiphide 5)) + +(defenum pc-gfx-hack + (no-tex 0)) + +;; TODO - make a common kernel-defs +(define-extern __read-ee-timer (function uint)) +(define-extern __mem-move (function pointer pointer uint none)) +(define-extern __send-gfx-dma-chain (function object object none)) +(define-extern __pc-texture-upload-now (function object object none)) +(define-extern __pc-texture-relocate (function object object object none)) +(define-extern __pc-get-mips2c (function string function)) +(define-extern __pc-set-levels (function (pointer string) none)) +(define-extern __pc-set-active-levels (function (pointer string) none)) +(define-extern __pc-get-tex-remap (function int int int)) + +;; Input Related Functions +;; TODO - add get current controller index +(define-extern pc-get-controller-count (function int)) +(define-extern pc-get-controller-name (function int string string)) +(deftype bind-assignment-info (structure) + ((port int32) + (device-type int32) + (for-buttons? symbol) + (input-idx int32) + (analog-min-range? symbol))) +(define-extern pc-get-current-bind (function bind-assignment-info string symbol)) +(define-extern pc-waiting-for-bind? (function symbol)) +(define-extern pc-set-waiting-for-bind! (function int symbol symbol int none)) +(define-extern pc-stop-waiting-for-bind! (function none)) +(define-extern pc-set-controller! (function int int none)) +(define-extern pc-set-keyboard-enabled! (function symbol none)) +(define-extern pc-set-mouse-options! (function symbol symbol symbol none)) +(define-extern pc-set-mouse-camera-sens! (function float float none)) +(define-extern pc-current-controller-has-led? (function symbol)) +(define-extern pc-current-controller-has-rumble? (function symbol)) +(define-extern pc-set-controller-led! (function int int int int none)) +(define-extern pc-ignore-background-controller-events! (function symbol none)) +(define-extern pc-reset-bindings-to-defaults! (function int int none)) +(define-extern pc-set-auto-hide-cursor! (function symbol none)) + +;; Display Related Functions +(define-extern pc-get-display-mode (function symbol)) +(define-extern pc-get-active-display-size (function (pointer int32) (pointer int32) none)) +(define-extern pc-get-active-display-refresh-rate (function int)) +(define-extern pc-get-display-count (function int)) +(define-extern pc-get-display-name (function int string)) +(define-extern pc-get-os (function symbol)) +(define-extern pc-get-window-size (function (pointer int32) (pointer int32) none)) +(define-extern pc-get-window-scale (function (pointer float) (pointer float) none)) +(define-extern pc-set-window-size (function int int none)) +(define-extern pc-set-fullscreen-display (function int none)) +(define-extern pc-set-display-mode (function symbol none)) + +(define-extern pc-set-frame-rate (function int none)) +(define-extern pc-set-vsync (function symbol none)) +(define-extern pc-renderer-tree-set-lod (function pc-renderer-tree-type int none)) +(define-extern pc-set-letterbox (function int int none)) +(define-extern pc-set-collision (function symbol none)) +(define-extern pc-set-collision-wireframe (function symbol none)) +(define-extern pc-get-collision-mask (function pc-collision-mode int symbol)) +(define-extern pc-set-collision-mask (function pc-collision-mode int symbol none)) +(define-extern pc-set-collision-mode (function pc-collision-mode none)) +(declare-type discord-info structure) +(define-extern pc-discord-rpc-update (function discord-info none)) +(define-extern pc-discord-rpc-set (function int none)) +(define-extern pc-init-autosplitter-struct (function none)) +(define-extern pc-filepath-exists? (function string symbol)) +(define-extern pc-mkdir-file-path (function string none)) +(define-extern pc-sound-set-flava-hack (function int none)) +(define-extern pc-sound-set-fade-hack (function int none)) +(define-extern pc-set-window-lock (function symbol none)) +(define-extern pc-set-game-resolution (function int int none)) +(define-extern pc-set-msaa (function int none)) +(define-extern pc-set-gfx-hack (function pc-gfx-hack symbol none)) +(define-extern pc-get-unix-timestamp (function int)) +(define-extern pc-filter-debug-string? (function string float symbol)) +(define-extern pc-treat-pad0-as-pad1 (function symbol none)) +(define-extern pc-is-imgui-visible? (function symbol)) +(define-extern pc-rand (function int)) + +(define-extern pc-encode-utf8-string (function string string none)) + +;; Jak 3 Specific Kernel Definitions +(define *pc-waiting-on-rpc?* symbol) +(define *pc-rpc-error?* symbol) +(define-extern pc-get-last-rpc-error (function string none)) +(define-extern pc-fetch-external-race-times (function string none)) +(define-extern pc-fetch-external-speedrun-times (function string none)) +(define-extern pc-fetch-external-highscores (function string none)) +(define-extern pc-get-external-race-time (function string int string (pointer float) none)) ;; returns the score and the name in the given string ptr +(define-extern pc-get-external-speedrun-time (function string int string (pointer float) none)) ;; returns the score and the name in the given string ptr +(define-extern pc-get-external-highscore (function string int string (pointer float) none)) ;; returns the score and the name in the given string ptr +(define-extern pc-get-num-external-race-times (function string int)) +(define-extern pc-get-num-external-speedrun-times (function string int)) +(define-extern pc-get-num-external-highscores (function string int)) + +(define-extern file-stream-open (function file-stream string symbol file-stream)) +(define-extern file-stream-close (function file-stream file-stream)) +(define-extern file-stream-length (function file-stream int)) +(define-extern file-stream-seek (function file-stream int int int)) +(define-extern file-stream-read (function file-stream pointer int int)) +(define-extern file-stream-write (function file-stream pointer uint uint)) + +(define-extern reset-path (function none)) + +(define-extern install-handler (function int function int)) +(define-extern flush-cache (function int none)) +(define-extern gs-store-image (function object object object)) +(define-extern sync-path (function int int int)) + +(define-extern kmalloc (function kheap int kmalloc-flags string pointer)) + +(define-extern *kernel-boot-message* symbol) +(define-extern *user* symbol) + +(define-extern new-dynamic-structure (function symbol type int structure)) + +(define-extern rpc-busy? (function int uint)) +(define-extern rpc-call (function int uint uint uint int uint int uint)) +(define-extern string->symbol (function string symbol)) +(define-extern pc-get-unix-timestamp (function int)) + +(define-extern link-begin (function pointer (pointer uint8) int kheap link-flag int)) +(define-extern link-reset (function none)) + +(define-extern kset-language (function language-enum int)) +(define-extern syncv (function int int)) + +(define-extern put-display-env (function object none)) + +;; +++memcard-h:mc-status-code +(defenum mc-status-code + :type uint32 + (busy 0) + (ok 1) + (bad-handle 2) + (format-failed 3) + (internal-error 4) + (write-error 5) + (read-error 6) + (new-game 7) + (no-memory 8) + (no-card 9) + (no-last 10) + (no-format 11) + (no-file 12) + (no-save 13) + (no-space 14) + (bad-version 15) + (no-process 16) + (no-auto-save 17) + ) +;; ---memcard-h:mc-status-code + +(define-extern mc-run (function none)) +(define-extern mc-format (function int mc-status-code)) +(define-extern mc-unformat (function int mc-status-code)) +(define-extern mc-create-file (function int uint mc-status-code)) +(define-extern mc-save (function int int pointer int mc-status-code)) +(define-extern mc-load (function int int pointer mc-status-code)) +(declare-type mc-slot-info structure) +(define-extern mc-sync (function int)) +(define-extern mc-get-slot-info (function int mc-slot-info none)) + +(define-extern mc-check-result (function mc-status-code)) +;; mc-makefile + +(define-extern __pc-get-mips2c (function string function)) + +(define-extern dma-sync (function pointer int int int)) + +(define-extern __pc-texture-upload-now (function object object none)) +(define-extern __pc-texture-relocate (function object object object none)) + +(define-extern link-resume (function int)) +(define-extern unload (function string none)) + +(define-extern reset-graph (function int int int int none)) + + +;; PC stuff +(defenum pc-prof-event + (begin 0) + (end 1) + (instant 2) + ) +(define-extern pc-prof (function string pc-prof-event none)) + +(define-extern *pc-settings-folder* string) +(define-extern *pc-settings-built-sha* string) + +(define-extern alloc-vagdir-names (function symbol (pointer uint64))) diff --git a/goal_src/jak3/lib/project-lib.gp b/goal_src/jak3/lib/project-lib.gp new file mode 100644 index 000000000..b10872a34 --- /dev/null +++ b/goal_src/jak3/lib/project-lib.gp @@ -0,0 +1,233 @@ +;;-*-Lisp-*- + +;; TODO extract most of this into a common lib that isn't so game dependent + +;;;;;;;;;;;;;;;;;;;;;;; +;; Build system macros +;;;;;;;;;;;;;;;;;;;;;;; + +(defun gc-file->o-file (filename) + "Get the name of the object file for the given GOAL (*.gc) source file." + (string-append "$OUT/obj/" (stem filename) ".o") + ) + +(defmacro goal-src (src-file &rest deps) + "Add a GOAL source file with the given dependencies" + `(let ((output-file ,(gc-file->o-file src-file))) + (set! *all-gc* (cons output-file *all-gc*)) + (defstep :in ,(string-append "goal_src/jak3/" src-file) + ;; use goal compiler + :tool 'goalc + ;; will output the obj file + :out (list output-file) + ;; dependencies are the obj files + :dep '(,@(apply gc-file->o-file deps)) + ) + ) + ) + +(defun make-src-sequence-elt (current previous prefix) + "Helper for goal-src-sequence" + `(let ((output-file ,(gc-file->o-file current))) + (set! *all-gc* (cons output-file *all-gc*)) + (defstep :in ,(string-append "goal_src/jak3/" prefix current) + :tool 'goalc + :out (list output-file) + :dep '(,(gc-file->o-file previous)) + ) + ) + ) + +(defun make-src-sequence-elt-jak1 (current previous prefix) + "Helper for goal-src-sequence" + `(let ((output-file ,(gc-file->o-file current))) + (set! *all-gc* (cons output-file *all-gc*)) + (defstep :in ,(string-append "goal_src/jak1/" prefix current) + :tool 'goalc + :out (list output-file) + :dep '(,(gc-file->o-file previous)) + ) + ) + ) + +;; TODO - deps should probably just treated as a proper list to refactor duplication +(defmacro goal-src-sequence (prefix &key (deps '()) &rest sequence) + "Add a sequence of GOAL files (each depending on the previous) in the given directory, + with all depending on the given deps." + (let* ((first-thing `(goal-src ,(string-append prefix (first sequence)) ,@deps)) + (result (cons first-thing '())) + (iter result)) + + (let ((prev (first sequence)) + (in-iter (rest sequence))) + + (while (not (null? in-iter)) + ;; (fmt #t "{} dep on {}\n" (first in-iter) prev) + (let* ((cur-src-file (first in-iter)) + ;; grotesque temp hack + (next (if (or (eq? "pc/pckernel-h.gc" cur-src-file) + (eq? "pc/pckernel-common.gc" cur-src-file) + (eq? "pc/debug/pc-debug-common.gc" cur-src-file)) + (make-src-sequence-elt-jak1 cur-src-file prev prefix) + (make-src-sequence-elt cur-src-file prev prefix)))) + (set-cdr! iter (cons next '())) + (set! iter (cdr iter)) + ) + + (set! prev (car in-iter)) + (set! in-iter (cdr in-iter)) + ) + ) + + `(begin ,@result) + ) + ) + +(defun cgo (output-name desc-file-name) + "Add a CGO with the given output name (in $OUT/iso) and input name (in goal_src/jak3/dgos)" + (let ((out-name (string-append "$OUT/iso/" output-name))) + (defstep :in (string-append "goal_src/jak3/dgos/" desc-file-name) + :tool 'dgo + :out `(,out-name) + ) + (set! *all-cgos* (cons out-name *all-cgos*)) + ) + ) + +(defun tpage-name (id) + "Get the name of the tpage obj file with the given id" + (fmt #f "tpage-{}.go" id) + ) + +(defmacro copy-texture (tpage-id) + "Copy a texture from the game, using the given tpage ID" + (let* ((path (string-append "$DECOMP/raw_obj/" (tpage-name tpage-id)))) + `(defstep :in ,path + :tool 'copy + :out '(,(string-append "$OUT/obj/" (tpage-name tpage-id)))))) + +(defmacro copy-textures (&rest ids) + `(begin + ,@(apply (lambda (x) `(copy-texture ,x)) ids) + ) + ) + +(defmacro copy-go (name) + (let* ((path (string-append "$DECOMP/raw_obj/" name ".go"))) + `(defstep :in ,path + :tool 'copy + :out '(,(string-append "$OUT/obj/" name ".go"))))) + +(defmacro copy-gos (&rest gos) + `(begin + ,@(apply (lambda (x) `(copy-go ,x)) gos) + ) + ) + +(defmacro group (name &rest stuff) + `(defstep :in "" + :tool 'group + :out '(,(string-append "GROUP:" name)) + :dep '(,@stuff)) + ) + +(defun group-list (name stuff) + (defstep :in "" + :tool 'group + :out `(,(string-append "GROUP:" name)) + :dep stuff) + ) + + +(defun copy-iso-file (name subdir ext) + (let* ((path (string-append "$ISO/" subdir name ext)) + (out-name (string-append "$OUT/iso/" name ext))) + (defstep :in path + :tool 'copy + :out `(,out-name)) + out-name)) + +(defmacro copy-strs (&rest strs) + `(begin ,@(apply (lambda (x) `(set! *all-str* (cons (copy-iso-file ,x "STR/" ".STR") *all-str*))) strs))) + +(defmacro copy-sbk-files (&rest files) + `(begin ,@(apply (lambda (x) `(set! *all-sbk* (cons (copy-iso-file ,x "SBK/" ".SBK") *all-sbk*))) files))) + +(defmacro copy-mus-files (&rest files) + `(begin ,@(apply (lambda (x) `(set! *all-mus* (cons (copy-iso-file ,x "MUS/" ".MUS") *all-mus*))) files))) + +(defmacro copy-vag-files (&rest files) + `(begin ,@(apply (lambda (x) `(set! *all-vag* (cons (copy-iso-file "VAGWAD" "VAG/" (string-append "." ,x)) *all-vag*))) files))) + +(defun reverse-list (list) + (let ((new-list '()) + (curr-elt list)) + (while (not (null? curr-elt)) + (set! new-list (cons (car curr-elt) new-list)) + (set! curr-elt (cdr curr-elt))) + new-list)) + +(defmacro cgo-file (dgo-file-name deps) + ;; First read in the DGO file, it has pretty much everything we need + (let ((dgo-data (car (read-data-file (string-append "goal_src/jak3/dgos/" dgo-file-name))))) + ;; Get the name of the DGO + (let ((dgo-name (car dgo-data)) + (files (cadr dgo-data)) + (gsrc-seq-args '()) + (textures '()) + (gos '())) + ;; create the dgo step + (cgo dgo-name dgo-file-name) + ;; Now we iterate through the list of files, skipping ones we've already processed + ;; and creating steps for the ones that are new! + (while (not (null? files)) + (let ((file-name (car files))) + ;; Check to see if we've already handled this file + (when (not (car (hash-table-try-ref *file-entry-map* file-name))) + ;; Depending on the type of file, generate the appropriate steps + (cond + ((string-ends-with? file-name ".o") + ;; build up a list of all gsrc files needing to be compiled + (let ((base-name (symbol->string (first (string-split file-name "."))))) + (cond + ;; hardcoded cases to grab from jak1... really dont want to copy-paste these all the time! + ((or (eq? base-name "pckernel-h") + (eq? base-name "pckernel-common") + (eq? base-name "pc-debug-common")) + (let ((old-path (get-gsrc-folder)) + (gsrc-path (begin (set-gsrc-folder! "goal_src/jak1") + (get-gsrc-path base-name)))) + (set! gsrc-seq-args (cons gsrc-path gsrc-seq-args)) + (set-gsrc-folder! old-path) + ) + ) + (#t + (let ((gsrc-path (get-gsrc-path base-name))) + (set! gsrc-seq-args (cons gsrc-path gsrc-seq-args))) + ) + )) + ) + ((string-starts-with? file-name "tpage-") + ;; copy textures + (let ((tpage-id (second (string-split (symbol->string (first (string-split file-name "."))) "-")))) + (set! textures (cons tpage-id textures)))) + ((string-ends-with? file-name ".go") + ;; copy art files + (set! gos (cons (stem file-name) gos)))) + ;; Update the map so this file isn't processed again + (hash-table-set! *file-entry-map* file-name #f))) + (set! files (cdr files))) + ;; TODO - need an `append`!, reverse lists by re-cons'ing them for now + (set! gsrc-seq-args (reverse-list gsrc-seq-args)) + (set! textures (reverse-list textures)) + (set! gos (reverse-list gos)) + `(begin + ;; macros can't return nothing, so these macros assume they will be given a non-empty list + (when (not (null? '(,@gsrc-seq-args))) + (goal-src-sequence "" :deps ,(eval deps) ,@gsrc-seq-args)) + (when (not (null? '(,@textures))) + (copy-textures ,@textures)) + (when (not (null? '(,@gos))) + (copy-gos ,@gos))) + ) + )) diff --git a/goalc/emitter/ObjectGenerator.cpp b/goalc/emitter/ObjectGenerator.cpp index 64b6e764e..2f154829e 100644 --- a/goalc/emitter/ObjectGenerator.cpp +++ b/goalc/emitter/ObjectGenerator.cpp @@ -496,6 +496,10 @@ void ObjectGenerator::emit_link_type_pointer(int seg, const TypeSystem* ts) { // the linker/intern_type functions do the +3. out.push_back(ts->get_type_method_count(rec.first) / 4); break; + case GameVersion::Jak3: + // the linker/intern_type functions do the +3. + out.push_back(ts->get_type_method_count(rec.first) / 4); + break; default: ASSERT(false); } diff --git a/scripts/gsrc/skeleton_creation/generate_dgo_files.py b/scripts/gsrc/skeleton_creation/generate_dgo_files.py index bb1fd373c..0b97ec811 100644 --- a/scripts/gsrc/skeleton_creation/generate_dgo_files.py +++ b/scripts/gsrc/skeleton_creation/generate_dgo_files.py @@ -5,6 +5,7 @@ # example - python .\scripts\gsrc\skeleton_creation\generate_dgo_files.py --game jak2 --dgotxt .\decompiler_out\jak2\dgo.txt import argparse +import re parser = argparse.ArgumentParser("generate_dgo_files") parser.add_argument("--game", help="The name of the game", type=str) @@ -18,6 +19,7 @@ with open(args.dgotxt, "r") as f: # so read line by line, assuming each DGO is seperated by an empty line current_dgo_name = None current_dgo_lines = [] + current_o_files = [] for line in lines: if line.strip() == "": # Write out contents to the .gd file @@ -28,11 +30,26 @@ with open(args.dgotxt, "r") as f: wf.writelines(current_dgo_lines) current_dgo_name = None current_dgo_lines = [] + current_o_files = [] 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) + elif current_dgo_name is not None: + match = re.match('\s*\((\"[^ ]+\") (\"[^ ]+\")\)', line) + if match: + o_file = match.groups()[0] + print(" ", o_file) + # collect our output file names + current_o_files.append(o_file) + elif line.strip() == ")": + #end of the DGO, write out collected filenames + current_dgo_lines.append(" ({}\n".format(current_o_files[0])) + #dirty check to sort which files should be .go vs .o TODO confirm this makes sense + for file in current_o_files[1:]: + if "tpage" in file or "-ag" in file: + file = file.replace(".o", ".go") + current_dgo_lines.append(" {}\n".format(file)) + current_dgo_lines.append(" ))\n") diff --git a/scripts/tasks/update-env.py b/scripts/tasks/update-env.py index 9a37284a4..d1b64a499 100644 --- a/scripts/tasks/update-env.py +++ b/scripts/tasks/update-env.py @@ -58,7 +58,8 @@ decomp_config_version_map = { }, # TODO other versions "jak3": { - "ntscv1": "ntsc_v1" + "ntscv1": "ntsc_v1", + "pal": "pal" } }